понедельник, 18 апреля 2011 г.

Отношение к специалистам. Пример реальный

«Больно мне за наш СССР»

В.С.Высоцкий

Говорить о том, как обстоят дела с кибер безопасностью в России, наверное, так же, как и описывать ситуацию с энергетикой: специалисты есть, что-то делается, приказы исполняются, отчеты пишутся, планы переносятся…

Готовя очередной перевод из блога Марка Руссинович, вспомнил себя в военкомате и, хотя это отдельная самостоятельная история, иллюстрирующая отношение нашего государства к системе информационной безопасности, привести ее можно и в этом блоге.

Суть сводится к тому, что на комиссии звучит фраза (она должна агитировать за армию этого государства): «Идут разработки своей собственной операционной системы». Военком, или навел справки, или угадал, но в тот момент я серьезно занимался изучением теории операционных систем, предложение меня заинтересовало – военный институт по переработки пингвина в военных целях – вещь сама по себе очень интересная и довольно таки забавная, но вот гарантию, что я в этот институт попаду он мне дал. Вопрос: зачем тогда что-то говорить, если не знаешь наверняка? Подход явно не инженеров.

Все наши разработки, увы, но умерли, когда мы стали следовать принципу: «Зачем нам что-то придумывать: возьмем напильник и у американцев архитектуру угоним!» наугонялись. Так же точно обстоят дела и с осью – проще говоря, никак.

Долго и усиленно ходят слухи о перевооружении школ. Выделяются деньги. Вопрос: куда они уходят? Лично я, не верю в хорошую переработку Пингвина для наших школ, но это тоже отдельная тема для большого и обстоятельного разговора. Просто две эти темы связаны и идут бок о бок. Мы наблюдаем подбор кадров для разработок систем, тихонько впадаем в панику, видим лоббирование интересов безграмотных депутатов в управление энергетиков: их попытки поставить на руководящие должности в районные сети своих детей (может быть и грамотных специалистов, но совершенно из другой области). «Само же собой напрашивается: хорошего механика перевести в повара, а повара в механики. Тут не то что двадцать два часа – двадцать два года заполнить можно». И пока все будет делаться с этой логикой, ничего путного не будет. И вся информзащита будет на плечах хакеров-интузиастов, основная работа которых к вычислительной технике имеет на такое уж и близкое отношение.

понедельник, 11 апреля 2011 г.

Zero Day. Поиск издания

В этом посте Марк Руссинович описывает, как охотился на издателя. По своей сути пост показывает, как непросто найти издателя, даже если у тебя есть известность, но в другой области. Еще одни пример того, что никогда не стоит унывать и сдаваться после первой неудачи – трудности закаляют, один из девизов хакеров.

Но пост от Марка Руссиновича, приятного чтения:

В книгах, которые я покупал, были списки редакций, специализирующихся на отдельных жанрах. Я отобрал двадцатку редакций, специализирующихся на триллерах, послал им письмо, краткую биографию и 50 листов романа. Все книги о написании книг предупреждали, что достаточно сложно опубликовать свою первую работу, но, как я упоминал в предыдущем посте, я надеялся на свою славу признанного эксперта, популярность блогов и Sysinternals, чтобы привлечь более пристальный интерес к своей работе. Оказалось, что я был не прав.

За следующий квартал я получал с дюжину ответов. Половина редакций сообщала, что, хотя книга и выглядит многообещающей, их она не заинтересовала. Другая же половина писем, в своей сущности, сообщала тоже самое, но с допиской, что они с большим удовольствием напечатали меня, принеси я им техническую работу.

Меня слегка удивило отсутствие успеха, но без всякого зазора совести, я послал пакет корреспонденции в другую двадцатку издательств. Следующие три месяца мне шли аналогичные письма. Пришлось принять решение, публиковаться самостоятельно, но одни из друзей сказал, что он знает рекламное агентство “agent agent” – суть в том, что это агентство работает с другими агентствами (вот что я называю двойное агентство). Я просто плачу ему фиксированную сумму, и оно находит мне издателей за три месяца, в противном же случае книга просто не пригодна для больших тиражей.

Двойной агент начал прорабатывать свои связи, и одни за одним получать отказы. В этот раз издательства читали полный текст романа, но вместо какой либо полезной критики приходил все тот же ответ: книга достаточно хорошая, но, увы, не жизнеспособная, не то, что издательства хотели бы видеть. Понятно, что это вежливый намек на то, что материал в книге сырой.

В конце концов, спустя полтора месяца, Анн Колит из Helen Rees Literary Agency сказала, что по ее мнению у книги большой потенциал, и она возьмется за ее публикацию. После того, как я связался с ней, он отредактировала рукопись и дала несколько советов по созданию интриги в сюжете. Я последовал ее советам, сделал некоторую переработку, и началась следующая фаза работы над изданием – поиски основного редактора и главного коммерческого издателя. Она отослала книгу по списку из десяти издательств, и в течении нескольких недель мы получали тот же ответ, что и в начале моей охоты на издателя. Но за тем нам пришел положительный ответ от редактора одного большого издания. Он говорил, что ему книга понравилась, и он готов сделать следующие шаги для ее продажи и прочей работы команды маркетологов. Мои надежды стали расти. Но несколько дней спустя, он сообщил, что не может добиться поддержки у себя в издании. Ничего не получилось.

Анн разослала книгу в редакции второй волной. И снова, пошли те же самые ответы, что и в начале. Сейчас я начал получать рекомендации. Это, спустя два года, как я закончил первый черновик и уже получил дюжины отказов. Я задумался над ситуацией и объявил Анн, что буду издаваться сам. Я уже принялся искать возможности для самостоятельного издания. Но Анн сказала, что мои трудности общие для всех, книга достаточно хорошая для большого тиража – все получится, надо только немного подождать. Я ей поверил.

Осенью 2008 Джон Шонфельдер из Thomas Dunne Books заинтересовался работой. Я навел некие справки про Thomas Dunne Books и узнал, что это подразделение St. Martin’s Press, одного из больших издательств. Мы отослали полный черновик книги осенью 2009 года, и, спустя несколько недель, пришел ответ, что сам Томас Данн прочитал книгу, и она ему понравилась. Я был в восторге. Охота на редактора была завершена, все решилось. К слову, в это время я читал роман Дэна Брауна «Цифровая крепость», и Ден Браун благодарил Томаса Данна за то, что тот был его редактором. Так что я попал в хорошую компанию.

среда, 6 апреля 2011 г.

Для самых маленьких. Zero Day атака

Сегодня этому блогу исполняется месяц. Мне, как его родителю, приятно наблюдать за его ростом и развитием. Да, с недавнего времени, блог начал развиваться уже не зависимо от меня. мне это приятно. Но в самый первый его юбилей, мне хочется стартовать еще одну рубрику (в рамках тематики блога) "для самых маленьких", в которой я планирую разбирать основополагающие вещи - определения, необходимые для понимания материала, посвященного информационной безопасности.
Начну с самых простых вещей:

ОПРЕДЕЛЕНИЯ:

Zero-Day (zero-hour или day zero, или zero-day уязвимость) атака или угроза – это компьютерная угроза, которая пытается эксплуатировать уязвимости в приложениях, которые еще не известны другим и разработчикам, приложений.

Zero Day эксплоиты (программное обеспечение, которое использует дыры в защите программ для атаки на них) используются атакующими прежде, чем разработчики узнают о брешах в защите.

Термин производный от возраста эксплоита. Zero day атака происходит в первый (или же до него) день осведомленности разработчиков о наличии бреши в их продукте - до того, как они могут что либо предпринять для защиты приложения.

Тем, кому необходимо, изучайте определения, ну а примеры ищите в блоге - тут их предостаточно. Да прибудет с Вами сила

пятница, 1 апреля 2011 г.

Арсенал для ведения кибер войн. Stuxnet распространение и работа

Оружие не может быть ни плохим, ни хорошим. Собственно говоря, мое отношение к жанру фэнтази основано именно на формуле: «нет ни добра, нет ни зла – есть только наше отношение к происходящему».

Начав в предыдущих постах рассказ об арсенале для видения кибер войн, я руководствовался именно этим подходом к жизни: оружие может служить добру, может служить злу. И винить оружие или его разработчика в чем либо нельзя. Рассудят только факты.

Еще одна простая формула: есть оружие – есть броня от него. Как противостоять Stuxnet, используя утилиты от Sysinternals, я начну рассказывать в самое ближайшее время. Сейчас же настало время, чтобы коротко и сухо изложить, то против чего нам предстоит бороться.

Итак, небольшое техническое описание Stuxnet (разумеется, исключительно из свободнодоступного материала сети, и никакого творчества от автора блога, так как тематика блога – описательного характера)

Распространение

Stuxnet – червь.

Механизм размножения — через USB-флешки.

Использует уязвимость, которая позволяет загружать произвольную .DLL-библиотеку, как только пользователь открывает содержимое флэш-накопителя.

На флэшке лежит .DLL-файл с вредоносным кодом (ну, фактически расширение, в случае с червем, — .TMP) и .LNK-файл. Файл с расширением .LNK - обычный ярлык. Но здесь с боевой начинкой. При отображении ярлыка в стандартной оболочке или Total Commander автоматически выполнится лежащий рядом .DLL-файл со всеми вытекающими отсюда последствиями!

Ярлык указывает на исполняемый файл и при двойном щелчке вызывает его. Но тут все без кликов, да и .DLL-файл так не выполняется.

В ярлыке указан путь на .DLL. Кроме того, это не обычный ярлычок, а ярлычок на элемент панели управления. Любой элемент панели управления — .CPL-апплет. Но CPL — это, по сути, простая .DLL, поэтому ярлык для панели управления особый, он понимает, что имеет дело с .DLL. Кроме того, такой ярлык пытается ВЫТАЩИТЬ иконку из DLL, чтобы отобразить ее в проводнике. Но для того, чтобы вытащить иконку, надо подгрузить библиотеку, что, оболочка и делает, с помощью вызова LoadLibraryW().

Вызов данной функции автоматически влечет за собой выполнение функции DllMain() из подгружаемой библиотеки. Поэтому, если такой ярлык будет указывать не на .CPL-апплет, а на злую библиотеку со злым кодом (в функции DllMain()), то код выполнится АВТОМАТИЧЕСКИ при просмотре иконки ярлыка.

Кроме интересного метода распространения удивила и боевая нагрузка — никаких ботнетов, краж банковских паролей, номеров CC. Все оказалось куда масштабнее. Уязвимость .LNK провоцирует загрузку скрытого файла с именем ~wtr4141.tmp, лежащего рядом с ярлыком. Файл этот исполняемый, но маленький (всего 25 Кб). Как отметили специалисты из Symantec, очень важно на первых порах скрыть свое присутствие, пока система еще не заражена. С учетом специфики 0day-уязвимости, которая действует, как только пользователь увидит иконки, сработает и ~wtr4141.tmp, который в первую очередь вешает перехваты системных вызовов в kernel32.dll. Перехватываемые вызовы:

  • FindFirstFileW
  • FindNextFileW
  • FindFirstFileExW

Хуки также вешаются и на некоторые функции из ntdll.dll:

  • NtQueryDirectoryFile
  • ZwQueryDirectoryFile

Все эти функции обрабатываются со следующей логикой — если файл начинается с "~wtr" и заканчивается на ".tmp" (или на ".lnk"), то удалить его из возвращенного оригинальной функцией значения, а затем вернуть, что осталось. Другими словами, скрыть свое присутствие на диске. Поэтому пользователь просто не увидит файлы на флешке. После этого ~wtr4141.tmp подгружает второй файл с диска (~wtr4132.tmp). Делает он это не совсем стандартно — установкой хуков в ntdll.dll на вызовы:

  • ZwMapViewOfSection
  • ZwCreateSection
  • ZwOpenFile
  • ZwCloseFile
  • ZwQueryAttributesFile
  • ZwQuerySection

Затем с помощью вызова LoadLibrary он пытается подгрузить несуществующий файл со специальным именем, на это дело срабатывают ранее установленные хуки и грузят второй файл, уже реально существующий — ~wtr4132.tmp, вернее, его незакодированную часть, которая раскодирует вторую часть (по факту — UPX-сжатие). Вторая часть представляет собой некие ресурсы, другие файлы, которые вступают в дело после расшифровки и экспорта (аналогичным извращенным методом с хуками на API функции).

Первым делом устанавливаются два драйвера — mrxcls.sys и mrxnet.sys (именно из-за этих файлов червь получил такое название — Stuxnet). Устанавливаются они в системную директорию, а функционал на них — руткит уровня ядра с той же логикой, что и в первом файле. Это обеспечит защиту червя после перезагрузки и завершения процесса ~wtr4141.tmp.

Драйвера эти, как уже было сказано, имеют легитимный сертификат Realtek, поэтому их установка пройдет без проблем (на данный момент сертификат уже отозван). Кроме руткита распаковываются файлы шаблона ярлыка и ~wtr4141.tmp для организации заражения других USB-устройств. Потом экспортируется код, который инъектится в системные процессы и добавляет в реестр вышеотмеченные .SYS-файлы руткита (HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MRxCls). Далее раскодируются два .DLL-файла, которые заменяют существующие файлы системы SCADA — Siemens Step 7.

Таким образом, все вызовы из системы SCADA переходят в поддельные библиотеки. Там происходит "нужная" обработка, после чего вызовы передаются в оригинальные .DLL (остальную часть функций Stuxnet и вовсе эмулирует самостоятельно).

Кроме всего перечисленного, червь блокирует процессы антивирусов и пытается найти сервера СУБД (MSSQL). Найдя таковые, он пробует выполнить вход с учетной записью WinCCConnect и паролем по умолчанию — 2WSXcder. Это учетная запись от БД SCADA типа Siemens Simatic WinCC. Как видно, червь заточен именно под продукт Siemens. Если аутентификация прошла успешно, шпион выкачивает данные о процессах и прочую секретную инфу. Кроме того, он не гнушается поискать в локальных файлах полезную для шпионов информацию. Если удается обнаружить выход в интернет, то червь лезет на один из командных серверов:

  • mypremierfutbol.com
  • todaysfutbol.com

Туда Stuxnet и пытался достучаться и "что-то" слить в зашифрованном виде. Благодаря Symantec ясно, что шифрование представляет собой побайтовую операцию XOR с 31-битным ключом, который был прошит в одной из .DLL-библиотек. Ответ с сервера также приходит в XOR-виде, правда, используется уже другой ключ из той же библиотеки. Троян отсылает на сервер общую информацию о зараженной машине (версия винды, имя компьютера, адреса сетевых интерфейсов, а также флаг наличия SCADA). В ответ от командного центра могут приходить вызовы RPC для работы с файлами, создания процессов, внедрения в процесс и загрузки новых библиотек и др.

Ну пока, в общем и все, что следует знать об нашем звери, а вот как эти знания применить для борьбы с Stuxnet рассмотрим в ближайшее время.