Tuesday, December 1, 2009
Автозапуск
Posted by Amiran Alavidze 0 comments
Labels: Fun, Malware, Microsoft, Mobile Devices
Thursday, November 19, 2009
Liberty Shredder
Проблема противодействия работодателей и работников вечна. Первые хотят минимизируя затраты получить максимум отдачи, вторые ... в принципе то же самое, но находятся по другую сторону баррикад.
Учитывая то, что служба безопасности находится на стороне работодателя, посмотрим, как можно помочь начальникам.
Вводная: денег нет, людей нет, есть желание\требование руководства.
Организационные процедуры.
1. Руководитель сотрудника, мониторинг которого будет проводиться, либо специалист службы безопасности отдела\филиала\дочернего общества пишут служебную записку на руководителя службы безопасности с просьбой организовать мониторинг работы сотрудника с даты1 до даты2.
2. Запрос рассматривается, в случае утверждения...
3. В службу технической поддержки передается запрос на добавление в группу локальных администраторов компьютера сотрудника учетной записи для выполнения работ по мониторингу.
4. Запускается мониторинг.
5. Мониторинг приостанавливаем, результаты передаем креатору служебной записки для анализа.
Недостатком можно считать участие большого количества людей в процедуре организации мониторинга, но с другой стороны это позволяет минимизировать вероятность самоуправства со стороны сотрудников службы безопасности предприятия.
Но как быть с тем, что у нас нет денег на приобретение программного обеспечения?!
Решим это через использование свободного программного обеспечения. Устанавливаем любимый вариант свободной операционной системы на компьютер. Учитывая особенности задачи, это не обязательно должен быть сервер за несколько тысяч долларов. Хватит исправного компьютера, обреченного на списание.
Обязательным к установке программным обеспечением являются:
1. Пакет, содержащий утилиту smbclient (обычно это одноименный пакет, либо пакет samba);
2. Пакет, содержащий утилиту convert (обычно это пакет imagemagic);
3. Устанавливаем на сервер утилиту winexe. Самый простой вариант, установить статически-скомпилированный бинарный файл. Внимание! Утилита должна лежать в каталоге, входящем в переменную окружение PATH, либо лежать в каталоге, где будут лежать файлы конфигурации. Предпочтительным считаю второй вариант, дабы соблюсти чистоту дистрибутива.
4. Собственно утилиту для выполнения нужной нам работы boxcutter-fs. У нее есть старший брат, boxcutter, который отличается большей функциональностью и информативностью. Есть аналог screenshot-cmd, но он был вторым кандидатом, до которого очередь не дошла. Утилиту так же кладем в каталог с файлами конфигурации.
Сервер готов. Приступаем к настройке, предполагая, что рабочим каталогом является /usr/local/LS. LS расшифровываем как "liberty shredder", hol's der teufel!
1. В рабочем каталоге размещаем скрипт. Имя не важно. Мне нравится run (скрипты "готовящие" солянку из разных утилит).
---------------
#!/usr/bin/bash
BASE=/usr/local/LS
OUTPUT=$BASE/output
INPUT=$BASE/users.ip
PASS=$BASE/passwd
BIN_BASE="$BASE/bin"
BIN="boxcutter-fs.exe" #можно переименовать во что-нибудь вроде svchosts.exe
filename=`date +%d%m%y-%H%M.jpg`
if [ ! -d $OUTPUT ] ; then mkdir $OUTPUT; fi
for i in `cat $INPUT`; do
if [ ! -d $OUTPUT/$i ]; then mkdir $OUTPUT/$i; fi
smbclient -A $PASS //$i/admin$ -c "put $BIN_BASE/$BIN $BIN"
$BIN_BASE/winexe --system --interactive=1 -A $PASS //$i "$BIN c:\windows\temp\ASPNETSetup.log"
smbclient -A $PASS //$i/admin$ -c "get temp\ASPNETSetup.log $BASE/tmp.bmp; del $BIN; del temp\ASPNETSetup.log"
convert -quality 20 $BASE/tmp.bmp $OUTPUT/$i/$filename #-quality 20 помогает снизив качество уменьшить размер файла.
rm $BASE/tmp.bmp
done
2. В каталоге /usr/local/LS создаем подкаталог bin. Копируем в него утилиты boxcutter-fs.exe и winexe.
3. В каталоге /usr/local/LS создаем файлы:
- passwd для аутентификации на наблюдаемом компьютере в формате
username =
password =
domain = - users.ip, содержащий в строках ip-адреса компьютеров, на которых работают пользователи.
*/5 * * * *
Все. Начиная с ближайшей круглой минуты, без остатка делящейся на 5,в каталоге /usr/local/LS/output/
PS. Не забывайте постоянно напоминать пользователям, что компания имеет право следить за тем, чем они занимаются в рабочее время. Постоянно и ненавязчиво.
PSS. Экран размером 1280х1024 порождает файлы размером от 28кб до 165 кб, средний размер 97кб
Итог: Задача выполнена. Финансирование не понадобилось, дополнительный сотрудник не понадобился, руководство удовлетворено.
Желаю Вам, чтобы Ваш файл users.ip всегда был пустым.
Posted by Igor Gots 0 comments
Labels: Enterprise Security, Software
Tuesday, November 17, 2009
Зубная Щетка
Posted by Amiran Alavidze 2 comments
Labels: Fun, Miscellaneous
Tuesday, October 6, 2009
Infosecurity Moscow 2009: Безопасность ERP
1 октября побывал на конференции, был соведущим круглого стола "Основные проблемы безопасности бизнес-приложений и ЕRP-систем". Фактически я всего лишь сказал вступительную речь и пытался выкрикивать комментарии на возникающие у аудитории вопросы. Речь моя, конечно, не слово в слово, приводится в конце данного поста. В двух словах она о том, что в случае ERP совсем недостаточно защитить ОС и приложение, закрыть все порты и поставить патчи и антивирус, - сама логика работы бизнес-приложения может содержать уязвимости и никакие технические контроли эти уязвимости не закроют. Причем эффект от закрытия уязвимостей бизнес-процессов несравненно больше, чем от закрытия технических, тогда как и те и другие стоят денег... Я проверил это на собственном опыте разбора случаев мошенничества с использованием информационных систем и нисколько в этом не сомневаюсь.
У меня вызывает улыбку тот факт что и та, единственная публикация, которую я нашел в Сети и общий ход круглого стола в итоге имели приоритет именно в сторону технических контролей, анализа технических уязвимостей, тогда как уязвимостям бизнес процессов был посвящен только один доклад по SOD-конфликтам. Вероятно, связано это с тем, что у нас есть хорошие технические специалисты и хорошие бизнес-менеджеры, а вот на белых шляп с пограничными знаниями - не хватает :-(. Надо работать над собой.
Мое вступительное слово.
Мы много говорим о безопасности системного ПО, сетевого оборудования и прочих инфраструктурных вещах. Согласен, что ИТ-инфрастуктура представляет собой фундамент построения любого, используемого в Компании, бизнес-приложения, а в случае низкого качества фундамента не стоит питать надежды на высокую надежность всего строения. Но, ситуация такова, что непосредственно бизнес-данные, защиту которых необходимо обеспечить, хранятся и обрабатываются именно в приложении, что, на мой взгляд, предъявляет к нему определенного рода требования по безопасности. О чем сегодня и пойдет речь.
Ни в коем случае не желаю унизить необходимость высокого уровня безопасности инфраструктурных систем (системного уровня), поскольку они выступают гарантом эффективной работы механизмов обеспечения безопасности бизнес-приложений (прикладного уровня).
Почему мы должны говорить о ERP?
1. Википедия: "В основе ERP-систем лежит принцип создания единого хранилища данных, содержащего всю корпоративную бизнес-информацию и обеспечивающего одновременный доступ к ней любого необходимого количества сотрудников предприятия, наделённых соответствующими полномочиями". Помимо того, что там ВСЕ данные, там работают ВСЕ сотрудники! Очевидно, что при таком положении вещей проблемы конфиденциальности, целостности и доступности стоят особенно остро.
2. ИТ - сервис бизнеса. Само по себе ИТ (в непрофильной компании) не нужно, так как не приносит дохода. Не нужны сети и корпоративные каталоги (MS Active Directory) сами по себе, они - лишь вспомогательные средства, необходимые для работы бизнес-приложений/ERP-систем. А именно они [бизнес-приложения] необходимы для эффективной работы бизнеса.
3. Исторически сложилось, что инфраструктурные системы защищены лучше, чем бизнес-приложения. Попробую подумать вслух почему:
- Инфр. системы используются практически всеми, тогда как бизнес-приложения - нет.
- Инфраструктурные системы могут использоваться в агрессивных средах (интернет), как следствие их безопасность - конкурентное преимущество; у бизнес-приложений основное - функциональность, и безопасность не является конкурентным преимуществом.
С т.з. ИТ-безопасности, факт, но бизнес-приложения защищены значительно хуже.
4. ERP-системы, будучи используемые бизнесом имеют еще одну немаловажную особенность, - уязвимости бизнес-процессов. Причем такие уязвимости не закрываются никакими техническими контролями. Аналогия здесь может быть такова: представьте, что у нас есть ограждение, которым мы гарантируем, что из-за заграждения невозможно проникновение. Техконтроли гарантируют, что забор достаточно прочен, чтобы его сломать, и высок, чтобы его перелезть, тогда как контроли бизнес-процессов должны гарантировать, что в заборе нет "легитимных" калиток/лазеек, чтобы он конструкционно был совершенен. Для обеспечения эффективной работы бизнес-процессов, исключая факты мошенничества, техконтроли не помогут, - и в этом, на мой взгляд, основная специфика бизнес-приложений в целом, и ERP в частности. Т.е., помимо того, что Система должна быть технически совершенной (чтобы хакеры не проникли в обход имеющихся механизмов ИБ), имеющиеся механизмы должны предоставлять возможность и быть настроены так, чтобы максимально снизить возможность мошенничества со стороны легитимных пользователей.
По современным статистическим данным, более 85% последних компрометаций были выполнены инсайдерами, т.е. легитимными пользователями бизнес-приложений с соответствующими правами, ситуация ухудшилась в связи с кризисом, поскольку сотрудники ИТ первыми попали под сокращение. Повлиять на эти риски могут только бизнес-контроли, как например, контроль SOD-конфликтов, управление персоналом и т.п., а не тот или иной патч на ОС. Вероятность того, что легитимный пользователь (очень вероятен сговор с ИТ) бизнес-системы выполнит вредоносное действие в рамках своих прав много выше, чем того внешний хакер, эксплуатируя техническую уязвимость сделает то же самое.
Posted by Sergey Soldatov 2 comments
Labels: Enterprise Security, SAP
Thursday, August 20, 2009
NIST SP 800-53 Updated (Recommended Security Controls for Federal Information Systems and Organizations)
- Полностью переработанные приложения G и H с описанием требований к "программе обеспечения информатионной безопасности" и привязкой контролей SP 800-53 к ISO 27001.
- Для каждого контроля теперь определен приоритет.
- Текст/содержание контролей сильно пререработан.
- Много новых дополнений (enhancements) - опциональных компонентов контролей, которые могут применяться в зависимости от классификации системы.
- Целый ряд новых контролей. Некоторые старые контроли убраны или объединены с существующими, при этом нумерация была сохранена.
NIST SP 800-53 rev.3: http://csrc.nist.gov/publications/nistpubs/800-53-Rev3/sp800-53-rev3-final-errata.pdf
Список всех NIST SP: http://csrc.nist.gov/publications/PubsSPs.html
Posted by Amiran Alavidze 0 comments
Thursday, August 6, 2009
Transparent NTLM in Firefox
network.automatic-ntlm-auth.trusted-urisnetwork.negotiate-auth.trusted-uris
Posted by Amiran Alavidze 0 comments
Labels: Miscellaneous, Web
Thursday, July 2, 2009
Криптография в жизни
Одним из принципов крипторафических методов защиты информации заключается в том, чтобы стоимость усилий, затраченные на расшифровку информации значительно превышали соимость информации.
Похоже, этот же принцип используется и в различных схемах использования льгот, которых и так-то немного в России. Я составил микро-рейтинг известных мне случаев, к некоторым из к которым был сам причастен. Если уважаемым читателям известны еще какие криптографические схемы в жизни, пожалуйста, пишите, интересно.
На последнем месте рассказ моего коллеги по работе. У него больные родители, они не пользуются льготами, так как не ходят, поэтому им положена монетизация льгот. Проблема в том, что они не ходят и приходить забирать свои монетизированные льготы они технически не могут. Есть способ - оформить нотариальную доверенность на человека, который технически сожет ходить за деньгами, например, на моего коллегу. Для того, чтобы это сделать надо вызвать нотариуса домой (так как льготники не ходят), но вызов этот стоит немаленьких денег, превышающих выручку за льготы. В итоге, мой коллега не монетизирует льготы, так как выгода от этой монетизации отрицательная.
Немногим более интересна моя ситуация. Мне, как многодетному отцу положен льготный проезд и этот проездной надо получать в соцзащите. В целом неплохая схема, если бы я не жил в пригороде и не работал в городе, причем от места жительства до места работы я добираюсь 2 часа. Соцзащита работает только по будням и не с 6 утра. Технически это означает, что для получения этот проездного, а он может быть получен только мной, так как я за него расписываюсь, я раз в месяц должен приходить на работу на 3 часа позже. В целом не проблема отпрашиваться, но все же неудобно. Почему бы эту карточку не давать в кассах метрополитена, или по месту работы, или сделать, чтобы соцзащита работала в субботу? Еще интересный момент: я езжу на электричке и не метро, причем, электричка в два раза дороже метро, на метро у меня есть льгота, а не электричку нет (интересно, да?). В данной схеме, мне проще не мотаться за этим проездным ежемесячно, чем отпрашиваться с работы и сидеть в этих очередях в соцзащите.
Но наибоее интересна схема льготных коммунальных платежей. Как многодетные родители мы можем платить 50% за квартиру, за свет и за воду. Но как это организовано (!): я плачу 100%, потом эти квиточки копирую и несу, вместе с копиями, в соцзащиту. После этого, когда-то на счет в Сбербанке мне вернутся переплаченные 50%. У меня нет слов критиковать эту схему, мне кажется, что она специально придумана такой, чтобы этим никто не пользовался - процесс слишком дорог, по сравнению с его результатом. Криптография, одним словом.
Posted by Sergey Soldatov 1 comments
Wednesday, June 10, 2009
О "неправильном" вредоносном ПО, продолжение.
Я искренне верю, что это - последняя статья в этой печальной серии, поскольку мне действительно не хочется писать про одно и то же. Но здесь, при всей своей печальности ситуация более чем смешная.
Корпоративная служба безопасности, анализируя статистику вирусных заражений обнаружила, что существует ряд компьютеров, которые постоянно заражаются вирусами, несмотря на то, что на них стоит и исправно работает антивирусное ПО. Корреляция с журналами системы контроля доступа к периферийным устройствам показала, что заражающийся компьютер на съемные носители постоянно записывает autorun.exe размером 37376 байт. При этом, наше антивирусное ПО никак не реагирует на этот autorun.exe. Согласитесь, подозрительно. Проверка альтенативным антивирусом обнаружила:
Еще более интересно, что оба файла имели одинаковый размер (те самые 37376) и одинковую сумму MD5 (ca82b32253f1cb11cf9e5ff83d87e01a):
Все банально и просто: вот оно, Virustotal подтвердил:
Антивирус | Версия | Обновление | Результат | |||
a-squared | 4.5.0.18 | 2009.06.09 | P2P-Worm.Win32.Socks!IK | |||
AhnLab-V3 | 5.0.0.2 | 2009.06.08 | Win32/Socks.worm.37376 | |||
AntiVir | 7.9.0.180 | 2009.06.08 | Worm/Socks.FO | |||
Antiy-AVL | 2.0.3.1 | 2009.06.08 | Worm/Win32.Socks | |||
Authentium | 5.1.2.4 | 2009.06.08 | W32/Backdoor2.DJBR | |||
Avast | 4.8.1335.0 | 2009.06.08 | Win32:Trojan-gen {Other} | |||
AVG | 8.5.0.339 | 2009.06.08 | Win32/Heur | |||
BitDefender | 7.2 | 2009.06.09 | Worm.Generic.28689 | |||
CAT-QuickHeal | 10.00 | 2009.06.09 | I-Worm.Socks.fo | |||
ClamAV | 0.94.1 | 2009.06.08 | - | |||
Comodo | 1289 | 2009.06.09 | Worm.Win32.Socks.~C | |||
DrWeb | 5.0.0.12182 | 2009.06.09 | Win32.HLLW.Alupco.2 | |||
eSafe | 7.0.17.0 | 2009.06.07 | Suspicious File | |||
eTrust-Vet | 31.6.6548 | 2009.06.08 | Win32/Ruternam.CZ | |||
F-Prot | 4.4.4.56 | 2009.06.08 | W32/Backdoor2.DJBR | |||
F-Secure | 8.0.14470.0 | 2009.06.08 | P2P-Worm.Win32.Socks.fo | |||
Fortinet | 3.117.0.0 | 2009.06.08 | W32/Socks.FO!worm.p2p | |||
GData | 19 | 2009.06.09 | Worm.Generic.28689 | |||
Ikarus | T3.1.1.59.0 | 2009.06.09 | - | |||
K7AntiVirus | 7.10.757 | 2009.06.08 | P2P-Worm.Win32.Socks | |||
Kaspersky | 7.0.0.125 | 2009.06.09 | P2P-Worm.Win32.Socks.fo | |||
McAfee | 5640 | 2009.06.08 | potentially unwanted program Generic PUP | |||
McAfee+Artemis | 5640 | 2009.06.08 | potentially unwanted program Generic PUP | |||
McAfee-GW-Edition | 6.7.6 | 2009.06.09 | Worm.Socks.FO | |||
Microsoft | 1.4701 | 2009.06.08 | VirTool:Win32/Obfuscator.BO | |||
NOD32 | 4139 | 2009.06.08 | Win32/Zalup | |||
Norman | 6.01.09 | 2009.06.08 | W32/Socks.BT | |||
nProtect | 2009.1.8.0 | 2009.06.09 | Worm/W32.Socks.37376 | |||
Panda | 10.0.0.14 | 2009.06.08 | W32/Socks.E.worm | |||
PCTools | 4.4.2.0 | 2009.06.06 | - | |||
Prevx | 3.0 | 2009.06.09 | High Risk Cloaked Malware | |||
Rising | 21.33.10.00 | 2009.06.09 | - | |||
Sophos | 4.42.0 | 2009.06.09 | Troj/Agent-HMB | |||
Sunbelt | 3.2.1858.2 | 2009.06.09 | P2P-Worm.Win32.Socks.fo | |||
Symantec | 1.4.4.12 | 2009.06.09 | W32.Mandaph | |||
TheHacker | 6.3.4.3.342 | 2009.06.08 | W32/Socks.fo | |||
TrendMicro | 8.950.0.1092 | 2009.06.08 | WORM_SOCKS.CN | |||
VBA32 | 3.12.10.6 | 2009.06.08 | P2P-Worm.Win32.Socks.fo | |||
ViRobot | 2009.6.8.1773 | 2009.06.08 | - | |||
VirusBuster | 4.6.5.0 | 2009.06.08 | Worm.P2P.Socks.EY |
Дополнительная информация |
File size: 37376 bytes |
MD5...: ca82b32253f1cb11cf9e5ff83d87e01a |
SHA1..: ab73e86f1bbc3c27cfc1bf59424b8c6c682138ef |
SHA256: b7a70b27c031e909ce6b83424f9689820b8a9eae588ae13d2161f38d2f79d57a |
ssdeep: - |
PEiD..: - |
TrID..: File type identification |
PEInfo: PE Structure information |
PDFiD.: - |
RDS...: NSRL Reference Data Set |
Prevx info: http://info.prevx.com/aboutprogramtext.asp?PX5=D23C58B2006B8FC292B400BD8F4B1A00FBB8E8A8> |
Видим, что написано у McAfee? Потенциально нежелательное ПО! Т.е. "потенциально нежелательное ПО" превращает мою машину в рассадник вирусов и прочего фактические нежелательного ПО.
Почитаем на Symantec: "W32.Mandaph is a worm that spreads through mapped and fixed drives and may download additional malware on to the compromised computer".
От себя хочу уточнить, что это этот червяк не просто "может" загружать вредоносный код, а фактически это делает, что мы и наблюдаем. И при всем при этом (самостоятельное распространение, загрузка из Интернет прочего вредоносного ПО) McAfee не удаляет это из принципиальных соображений - ответ от поддержки в данном случае был ровно как и в этом: докупите модуль "Anti-Spyware Enterprise" и все будет хорошо. Бред. Мне, как конечному пользователю, все равно, как классифицировал вендор эту нечисть, поставив антивирус, я хочу, чтобы он делал свою работу!
Вообще, в моей практике я видел массу случаев, когда антивирус не спасал. У коллеги начали уже появляться мысли о смене антивирусного вендора, но лично я не поддерживаю эту идею. Мое мнение таково, что какой бы не был антивирусный вендор, все равно будут находиться "экземпляры", которые он не определяет. Проблема здесь в концепции "Enumerated Badness", которая уже давно устарела. Наступит время, когда размер сигнатурных баз привысит порог, позволяющий антивирусу работать "в реальном времени" (да и вообще работать), и это время не за горами. Мой небольшой опыт использования CureIT показал, что за последние 2 года его размер увеличился почти в 3 раза! В общем, прогноз таков, что сигнатурные антивирусы доживают последние времена, поэтому, менять вендора не имеет смысла.
Что делать? Скажу банальные слова: используйте эшелонированную оборону: несколько систем безопасности и коррелируйте их журналы. Каждая система имеет свои приемущества, они дополнять друг друга.
Posted by Sergey Soldatov 0 comments
Labels: Malware
Tuesday, June 2, 2009
Гибкость и сложность
Где начало того конца, которым оканчивается начало?
Козьма Прутков. Мысли и афоризмы.
Нам часто приходится выбирать то или иное техническое решение на основании сравнения с аналогами. Как правило, при этом в приоритете оказываются решения, предоставляющие наибольшую гибкость: больше возможностей по настройке, больше функциональная область покрытия. При этом на этапе выбора никто не задумывается, что оборотная сторона гибкости - сложность настройки и, как следствие, последующей поддержки и обслуживания.
Не буду много вещать в защиту вышеупомяноутого тезиса, думаю, это очевидно: взяв самое гибкое из возможных решений, позволяющее удовлетворить любые требования к системе, - IDE , мы сталкиваемся с высокой сложностью настройки нашего решения (в данном примере - с необходимостью программирования). Пример представляет собой некую крайность, но позволяет понять суть. Как же выбрать эту "золотую середину", это тонкое лезвие бритвы, эту красоту баланса гибкости и сложности?
Прежде всего давайте поймем, почему же мы вожделеем гибкость.
1. На момент выбора решения не известно что конкретно хочется. Действительно, аппетит появляется во время еды. Да, я знаю, что во всех книжках написано, что подход такой неправильный и что надо на момент выбора решения знать все, что хочется, но на практике, к сожалению, это так.
2. В России очень трудно прогнозировать. На практике все меняется самым непредполагаемым образом: вчера мы поклонялись коммунистам и были пионерами, сейчас узнали, что коммунисты были нехорошие люди, так как уничтожили духовность.... Как следствие, приходится закладываться на все "случаи жизни" - вместо восседания на одной бочке с порохом, сидеть на двух, а может, и больше, чтобы, в случае взрыва одной, успеть перескочить на следующую.
Что можно с этим поделать?
Мне кажется, что лучший вариант здесь либо первоначальное пилотное внедрение (чтобы понять аппетит), либо стого ограничить внедряемый функционал и согласовать его на максимально высоком уровне. Последнее - очевидное требование, которое по-хорошему надо выполнять всегда, но хочется же все и сразу...
Всегда помние, что увеличивая гибкость, вы увеличиваете сложность, с которой затем на протяжении всего жизненного цикла надо будет что-то делать. Оценивайте потребность в той или иной "штуке" и затраты на нее и ее поддержку в будущем.
Posted by Sergey Soldatov 4 comments
Labels: Architecture, Enterprise Security, Project Management, Russia, Technology
Friday, May 29, 2009
Quick check of lan subnet
Simple script (linux, bash, samba3) for quick checking of lan subnet for:
1. SMS-agent properly work at all objects of subnet (query for sms report look at the end of post);
2. List of local administrators group;
3. List of shares.
NET="192.168.1.0/24"Query for sms report:
NET_SMS=`echo $NET | sed s/\.0\\\/.*//g`
DIR=/tmp/`echo $NET_SMS | sed s/192.168.//`
RES="$DIR/RESULT"
PASS='P@ssword'
export LANG=en_US.CP1251
rm -Rf $DIR
mkdir $DIR
wget --no-proxy --http-user="/ " --http-password=$PASS "http:// /SMS/Report.asp?ReportID= &variable=$NET_SMS.%25" -O - | \
lynx -stdin -dump -width=380 | grep Microsoft | sed s/Microsoft.*192.168./192.168./g | sed 's/\(192.168.[0-9\.]*\).*/\1/g' | sort | uniq >> $DIR/sms;
nmap -sP --max-retries 10 $NET -oG $DIR/nmap_ping.grep | tee -a $DIR/nmap_ping
cat $DIR/nmap_ping.grep | grep Host | awk '{print $2}' | nmap -sV -PN -p 23,22,21,445,139,80,8081,3389,53,389,3268,9100 -iL - -oG $DIR/nmap.grep | tee -a $DIR/nmap
echo "############################################################" > $RES
echo "# Computers not connectet to SMS #" >> $RES
echo "############################################################" >> $RES
echo >> $RES
cat $DIR/sms | awk -F "192" '{print "192"$2" ("}' | grep -v $DIR/nmap.grep -f - | grep Host >> $RES
echo >> $RES
echo "#############################################################" >> $RES
echo "# Local admins #" >> $RES
echo "#############################################################" >> $RES
echo >> $RES
for i in `cat $DIR/nmap.grep | grep 445/open | grep Host | awk '{print $2}'`; do
net rpc group MEMBERS Administrators -U%$PASS -W -S $i
EXITSTATUS="$?"
if [ "$EXITSTATUS" -eq "255" ]; then
echo "== $i ==" >> $RES;
echo "Can't logon to host">> $RES
echo >> $RES;
else
ADMINS=""
ADMINS=`net rpc group MEMBERS Администраторы -U%$PASS -W -S $i | egrep -v "Domain Admins|Adm"`
if [ -n "$ADMINS" ]; then
echo "== $i ==" >> $RES;
echo "$ADMINS" >> $RES;
echo >> $RES;
fi
ADMINS=""
ADMINS=`net rpc group MEMBERS Administrators -U%$PASS -W -S $i | egrep -v "Domain Admins|Adm"`
if [ -n "$ADMINS" ]; then
echo "== $i ==" >> $RES;
echo "$ADMINS" >> $RES;
echo >> $RES;
fi
fi
done
echo "#############################################################" >> $RES
echo "# Network shares #" >> $RES
echo "#############################################################" >> $RES
echo >> $RES
for i in `cat $DIR/nmap.grep | grep 445/open | grep Host | awk '{print $2}'`; do
net rpc share -U%$PASS -W -S $i
EXITSTATUS="$?"
if [ "$EXITSTATUS" -eq "255" ]; then
echo "== $i ==" >> $RES;
echo "Can't logon to host">> $RES
else
SHARES=""
SHARES=`net rpc share -U%$PASS -W -S $i | egrep -v "C\\\\$|D\\\\$|E\\\\$|ADMIN\\\\$|print\\\\$|NETLOGON|SYSVOL"`
if [ -n "$SHARES" ] ; then
echo "== $i ==" >> $RES;
echo "$SHARES" >> $RES;
echo >> $RES;
fi
fi
done
SELECT distinct SYS.Netbios_Name0, SYS.User_Name0, SYS.User_Domain0, SYS.Resource_Domain_OR_Workgr0, OPSYS.Caption0 as C054, OPSYS.Version0, MEM.TotalPhysicalMemory0, IPAddr.IP_Addresses0, WS.LastHWScan
FROM v_R_System SYS
LEFT JOIN v_RA_System_MACAddresses MAC on SYS.ResourceID = MAC.ResourceID
LEFT JOIN v_RA_System_IPAddresses IPAddr on SYS.ResourceID = IPAddr.ResourceID
LEFT JOIN v_GS_X86_PC_MEMORY MEM on SYS.ResourceID = MEM.ResourceID
LEFT JOIN v_GS_COMPUTER_SYSTEM CSYS on SYS.ResourceID = CSYS.ResourceID
LEFT JOIN v_GS_PROCESSOR Processor on Processor.ResourceID = SYS.ResourceID
LEFT JOIN v_GS_OPERATING_SYSTEM OPSYS on SYS.ResourceID=OPSYS.ResourceID
left JOIN v_GS_DISK Pdisk ON SYS.ResourceID = Pdisk.ResourceID
LEFT JOIN PC_BIOS_DATA Bios on SYS.ResourceID = Bios.MachineID
LEFT JOIN v_GS_WORKSTATION_STATUS WS on SYS.ResourceID = WS.ResourceID
WHERE IPAddr.IP_Addresses0 like @variable and WS.LastHWScan > DATEADD(week,-4,GETDATE())
ORDER BY SYS.Netbios_Name0, SYS.Resource_Domain_OR_Workgr0
Posted by Igor Gots 0 comments
Labels: Audit
Tuesday, May 19, 2009
On CCTV Cameras
Actually, I'm a fan of Schneier and I'm agree almost with every his idea. He mastered the art of speaking simply about difficult things in Applied Cryptography (Russian translation to my mind is very good) and The Psychology of Security is one of the most interesting security publication I've ever seen. But I let myself to disagree with this. Before explaining my thoughts I'd like to confess that I work in field of information security and physical security is not where I'm professional, but I think that Shon Harris' physical security domain is enough to have an opinion on this topic, also CCTV is not difficult to understand - that's why I'm writing this post.
To my mind saying that CCTV cameras are ineffective is the same as saying that IDS is dead. Well, I was disagree with this declaration in 2003 and haven't changed my mind now. Every technology in amateur's hands is ineffective and it's not the matter of goodness or badness of technology. But let's go further and look on some quotations.
"Most CCTV footage is never looked at until well after a crime is committed". Yes, that's right, but why in this case nobody challenge the idea of collecting systems logs? Of course it's better when every camera picture is analyzed by operator in real time and in most cases known to me when one wants to use cameras more effectively it's done in that way: operator can remotely operate camera to clarify image of interesting object or subject. I predict your objections about bad comparison camera footage with system logs because by system logs in most cases you can exactly say what had happened and video is not able to provide you with the same rate of assurance because "Lighting is bad and images are grainy, and criminals tend not to stare helpfully at the lens". But this is still better than nothing because: this deter huge per cent of "kids", this still can help in postmortem analysis in case of the same "kids". Stored somewhere CCTV recordings is not a weapon against "professional criminals". It's all about the same costs of threats and costs of countermeasures: professionals can be caught only by professions with comprehensive tools and methods. The same idea with IDS - for example, you can simply evade scanning detection by increasing timeouts.
"The solution isn't for police to watch the cameras". Again this is the matter of costs. Let's assume one policeman can watch 5 cameras operating in 5 different places. It's obvious that one man and 5 cameras cost less than 5 men communicating with each other. If policeman can operate cameras: turn it around, change look-up angle, change focal distance, etc. and perform this professionally, to my mind, the effect will be the same as five different policemen walking around.
"Criminals know this, and can easily adapt by moving their crimes to someplace not watched by a camera" . Let's cameras change their look-up angle randomly or use fish-eye, or both, use remotely operated cameras.
"The funds spent on CCTV cameras would be far better spent on hiring experienced police officers" Nobody says that if we use CCTV we can allow ourselves to hire unexperienced officers. Moreover, the more complicated systems we use, the more professional staff we need. Amateur will not see crime and it doesn't matter whether he or she looks "by eyes" or through camera. We should always educate security personnel because attacking techniques, tools, aims, etc. are changing.
"But the question really isn't whether cameras reduce crime; the question is whether they're worth it." Completely agree! As I said earlier it depends on threat and possible impact. Before choosing countermeasure/control it's always good idea to perform Risk Assessment and be sure that cost of countermeasure is less then possible damage. In one situation just dumb cameras will be enough, in others - advanced remotely controlled cameras is OK, and in case of high probability of professional criminals attack you need to use professionals to withstand i.e. only highly educated police officers can help you.
Posted by Sergey Soldatov 1 comments
Labels: Physical Security
Thursday, May 14, 2009
Бизнес для Бизнеса
Мы часто слышим упоминания о том, что большинство проблем в безопасности тех или иных программных продуктов так или иначе связаны с недочетами, допущенными при разработке. Действительно, многочисленные уязвимости, закрываемые бесконечными заплатками, по сути своей являются в большинстве случаев попросту ошибками программистов. Не стоит забывать и об архитектурных просчетах, которые уже простым патчем не поправить и, как следствие, такого рода ошибки исправляются новыми релизами ПО.
Вроде как всем понятна проблема и, если верить словам, все хотят поправить ситуацию: лучше продумывать архитектуру, более тщательно подходить к разработке, лучше тестироваться и т.п. НО, не является секретом тот факт, что для того, чтобы какое-либо изменение произошло, как минимум важна заинтересованность кого-либо в этом изменении. Так кто же заинтересован в разработке качественного ПО?
Разработчик? - Нет. Предположим гипотетически, что кто-то разработал ПО, которое не нуждается в постоянных обновлениях (исправлении ошибок), выпуске новых релизов (добавление новых возможностей и исправление архитектурных просчетов). Такой разработчик сможет заработать только однажды, продав право пользования своим ПО. Целый пласт доходов, связанных необходимостью поддержки, будет недоступен.
Еще один момент, который стоит учесть - это то, что есть некая зависимость количества программых ошибок от объема кода. В двух словах: чем больше кода, тем больше в нем ошибок. Как мне кажется, без ущерба для смысла, можно сказать и так: чем меньше ошибок, тем меньше кода. Наш разрабочик написал код с примерно нулевым количеством ошибок, значит его код невелик, а, следовательно, не велика и функциональность его кода. Поскольку, как правило, потребитель хочет "таблетку от всех болезней", не функциональный продукт будет плохо продаваться, дешево стоить, - в общем, доход от его продаж будет невелик, что не выгодно разработчику. Итого, как это не прискорбно, разработчик будет писать большой многофункциональный код, с большим количеством багов, которые потом будет исправлять во время всего жизненного цикла своего детища. При этом, безусловно, зарабатывая на этом.
Отрасль информационной безопасности? - Нет. Целый ряд уязвимостей будет искоренен как класс. Не будут нужны куча административных и технических контрмер, предпринимаемых в настоящее время для снижения ущерба от использования уязвимого ПО. Будут не нужны люди, задействованные в реализации этих контрмер: не нужны исследовательские институты, занимающиеся поиском уязвимостей, не будут нужны различные сканеры безопасности и те, кто ими пользуются, не будут нужны сложные процессы по управлению обновлениями ПО, их тестированию, пр.
В общем, к сожалению, только потребитель в проигрыше. Что, как это не цинично звучит, в общем-то нормально. Ведь кто-то должен оплачивать всех перечисленных выше....
Я писал применительно к программногому обеспечению, но, в целом, как это не прискорбно, принцип работает практически везде: АвтоВАЗ делает плохие машины и при этом еще зарабатывает на сервисе и запчастях, ресурс которых значительно ниже чем у кого бы то ни было, как, собственно, и самого автомобиля; средняя выслуга современной стиральной машины, из собственного опыта, не более 5 лет, тогда как у меня есть знакомые, которые покупали стиральную машину 15 лет назад (!) и она до сих пор исправно работет - действительно, производителю выгодно, чтобы я покупал его продукт каждые 5 лет, а не раз на всю жизнь.
Можно подумать о каких-либо мероприятиях по противодействию. Наверно, здесь поможет сертификация, но опять же сложность современных продуктов не позволяет обеспечить должную глубину проверки, а грубая поверхностная проверка не гарантирует желаемого качества.
Posted by Sergey Soldatov 6 comments
Labels: Architecture, Operating Systems, Security, Software
Thursday, March 19, 2009
Контроль сменных носителей
Контроль сменных носителей - тема нынче весьма популярная и обсуждаемая.
Но бесплатных средств, работающих под ОС Windows и более менее управляемых в небольшой сети, найти не удалось.
Платные средства дешевле 500 рублей за рабочее место не существуют, что в нынешних условиях непосильные деньги для многих компаний. Посему на коленке был сделан небольшой скрипт, который каждый час запускается на АРМ пользователей. Запуск и его контроль осуществляется средствами Microsoft SMS (который уже есть в наличии).
Данный скрипт позволяет довольно успешно контролировать работу сменных носителей в небольшом домене, содержащем чуть более 150 рабочих станций и серверов.
Скрипт может запускаться так же средствами групповой политики Active Directory, но механизм этот не столь гибок, сколь хотелось бы.
Небольшие комментарии по коду:
- первый цикл определяет имя пользователя вошедшего в систему
- второй цикл определяет входит ли пользователь в доменную группу "UsbFullControl", назначение группы понятно из её названия
- третий цикл делает то же для группы "UsbReadOnly"
- если пользователь не входит ни в одну из групп, значит ему не повезло - выключается возможность работы со всеми сменными устройствами
- иначе делаются настройки облегчающие работу с флешками и разрешающие работу с дискетами и оптическими дисками
- Для работы скрипта нужны административные права, либо права SYSTEM, то есть он не эффективен в сети, где большое число пользователей имеет права локальных администраторов.
Источники идеи уже не найду. Среди них результаты поиска по словам "usb control security", а так же материалы с сайта Microsoft.
---------------
@ECHO OFF
:: delims is a TAB followed by a space
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName') DO SET LastLogon=%%B
For /F "tokens=1" %%A in ('net user %LastLogon% /domain ^| find /i "UsbFullControl"') Do Set Group=%%A
IF NOT "%Group%"=="" GOTO UsbFullControl
For /F "tokens=1" %%A in ('net user %LastLogon% /domain ^| find /i "UsbReadOnly"') Do Set Group=%%A
IF NOT "%Group%"=="" GOTO UsbReadOnly
:UsbDenyAll
move %SystemRoot%\Inf\Usbstor.pnf %SystemRoot%\Inf\Usbstor.pnf.old
move %SystemRoot%\Inf\Usbstor.inf %SystemRoot%\Inf\Usbstor.inf.old
> "%Temp%.\usb.reg" echo REGEDIT4
>>"%Temp%.\usb.reg" echo.
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Flpydisk]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000004
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Sfloppy]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000004
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdrom]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000004
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000004
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\StorageDevicePolicies]
>>"%Temp%.\usb.reg" echo "WriteProtect"=dword:00000001
>>"%Temp%.\usb.reg" echo.
start /wait regedit /s "%Temp%.\usb.reg"
del "%Temp%.\usb.reg"
GOTO End
:UsbFullControl
move %SystemRoot%\Inf\Usbstor.pnf.old %SystemRoot%\Inf\Usbstor.pnf
move %SystemRoot%\Inf\Usbstor.inf.old %SystemRoot%\Inf\Usbstor.inf
> "%Temp%.\usb.reg" echo REGEDIT4
>>"%Temp%.\usb.reg" echo.
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Flpydisk]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000003
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Sfloppy]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000003
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdrom]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000003
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000003
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\StorageDevicePolicies]
>>"%Temp%.\usb.reg" echo "WriteProtect"=dword:00000000
>>"%Temp%.\usb.reg" echo.
start /wait regedit /s "%Temp%.\usb.reg"
del "%Temp%.\usb.reg"
GOTO End
:UsbReadOnly
move %SystemRoot%\Inf\Usbstor.pnf.old %SystemRoot%\Inf\Usbstor.pnf
move %SystemRoot%\Inf\Usbstor.inf.old %SystemRoot%\Inf\Usbstor.inf
> "%Temp%.\usb.reg" echo REGEDIT4
>>"%Temp%.\usb.reg" echo.
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Flpydisk]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000003
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Sfloppy]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000003
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdrom]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000003
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor]
>>"%Temp%.\usb.reg" echo "Start"=dword:00000003
>>"%Temp%.\usb.reg" echo [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\StorageDevicePolicies]
>>"%Temp%.\usb.reg" echo "WriteProtect"=dword:00000001
>>"%Temp%.\usb.reg" echo.
start /wait regedit /s "%Temp%.\usb.reg"
del "%Temp%.\usb.reg"
GOTO End
:End
Posted by Igor Gots 2 comments
Labels: Client security, Operating Systems
Wednesday, February 18, 2009
Нас снова обманывают?
Хотел сделать подборочку ссылочек, но потом подумал, что это очевидно, - стандартный аргумент в пользу перехода на более новые версии ПО: они более безопасны. Про Windows Vista даже писали, что код ее написан заново и по этой причине все старые проблемы к ней не относятся. А что мы имеем по факту? Практически все обнаруживаемые новые уязвимости относятся ко всем версиям того или иного продукта Microsoft, т.е:
- не стоит верить, что код нового продукта написан с нуля, даже в случае, когда об этом явно указывается;
- если даже это так, то это только ухудшает ситуацию, поскольку сложный код, который, как мы видим на практике, достигал зрелости годами, нельзя написать сразу без ошибок;
- не стоит верить в то, что новая версия безопаснее, поскольку практически все новые уязвимости характерны для всех версий ПО и не важно что у вас Windows 2000, XP, Vista или 7.
Posted by Sergey Soldatov 2 comments
Labels: Microsoft
Monday, February 2, 2009
О "неправильном" вредоносном ПО
Системы обнаружения зафиксировали странные попытки подключения на 69.46.18.49 по порту 14001/TCP. Google привел вот на эту статью. "Дело в шляпе", - подумал я. Поскольку с нашим антивирусом достаточно часты случаи ложного несрабатывания, у меня уже есть алгоритм, заключающийся в том, что надо "заловить" образец и послать его моему антивирусу вместе с отчетом от virustotal.com. Образец легко нашел (он называется services), получил отчет от Virustotal.com, кстати, вот он:
Видно, что подавляющее большинство антивирусов (в том числе те, кому я традиционно доверяю, отечественного производства) считают моего "подопечного" трояном, и действительно из описания следует именно это. Но McAfee считет это "потенциально нежелательным ПО", а Microsoft вообще считает это утилитой для аудита!
Не буду скрывать, что я - пользователь McAfee, и моему негодованию нет предела, поскольку перед вот этим монстром McAfee осавил меня беззащитным, и бедные ребята из службы поддержки пользователей (helpdesk) вынуждены удалять его вручную из всех мест, где он себя создает.
Поддержка McAfee, кстати, предложила мне прикупить дополнительный модуль, "Anti-Spyware Enterprise", который сможет удалить эту нечисть, ну и подобную. Таков печальный итог.
Вообще, конечно, - это идея для нечестных производителей антивирусов, не успевающих во время выпускать сигнатуры, придумывать загадочные классификации вредоносного программного обеспечения и под каждый из придуманных классов выпускать модуль, за который требовать с покупателя отдельную плату. Действительно, купив банку кетчупа ее можно значительно более выгодно продать порциями по чайной ложке, автомашину, которая уже давно сама не перемещается, все еще можно разобрать на запчати и продать с ненулевой прибылью и т.п. Но давайте не будем давать себя обманывать: вредоносное ПО - это то, что имеет некую составляющую, способную навредить вашим данным, даже потенциально (понятно, что надо взвешивать пользу и вред и отъявленные философы (типа меня самого) могут заявить, что любое ПО всегда имеет опасную и полезную составляющие и вопрос лишь в том, что для вас важнее, но сейчас не о том речь), а все остальное не имеет значения. И не стоит вредоносное ПО пытаться на практике классифицировать: virus, trojan, backdoor, spy, *wire, пр - оставим эту тематику для научных трудов студентов специализированных вузов в качестве возможности написать что-то новое на уже сто раз перепаханном поле борьбы с вирусами. Соответственно, производителям Антивирусного ПО тоже не следует заниматься этой ерундой, особенно, если это влияет на безопасность, цель, ради достижения которой мы покупаем их продукты, как в случае, что я здесь описал.
Posted by Sergey Soldatov 1 comments
Tuesday, January 27, 2009
There's no antivirus against stupidity
There is no antivirus against stupidity, this is all I can say after reading news about a trojan horse being distributed in illegal copies of the new Apple iWork 09. It is better to think about trustworthiness of the source of software before running it, than to worry about removing some nasty trojan after having run it. Also, it is apparent that OS X platform no longer sneaks under a radar of attackers.
Posted by Amiran Alavidze 0 comments