Ресурсы: техническое описание TLS, LaTeX - в картинки (img), криптографическая библиотека Arduino, шифр "Кузнечик" на ассемблере AMD64/AVX и ARM64
Сегодня в воскресном юморе – очередной конспирологический рассказ.
Многие и многие персональные компьютеры работают под управлением операционной системы Microsoft Windows (XP, Vista, 7 и т.п.). Добротно сконфигурированный компьютер периодически загружает обновления с серверов Microsoft. Для чего можно было бы использовать такое положение вещей?
Во-первых, понятно, что можно все эти миллионы компьютеров негласно привлечь к распределённым вычислениям (есть ведь и вполне гласные подобные инициативы, правильно?). Данные для обсчёта передаются вместе с обновлениями, обратно при этом приходит результат предыдущего вычисления. Операционная система довольно хорошо нагружает всякими задачами быстродействующие компьютеры, поэтому рядовой пользователь вообще ничего не почувствует. Возникает проблема со специалистами, которые исследуют код и сам процесс получения обновлений.
Оказывается, блокировать проявления здорового любопытства специалистами можно, правильно преобразовав алгоритмы. Не секрет, например, что многие задачи криптоанализа сводятся к операциям с квадратичными формами, с матрицами и тому подобными математическими объектами. Эти же объекты привычно используются в других задачах, скажем, при определении оптимального способа размещения файлов, при поиске строк, заданных регулярными выражениями, в какой-нибудь базе данных и всяких других проблемах (кому интересно – читайте что-нибудь по дискретной математике, а в воскресной юмористической записке не место подробному экскурсу в теорию).
Грубо говоря, одни задачи могут быть сведены к другим с точностью до переименования элементов потока данных (традиционный способ, не правда ли?), таким образом достигается сокрытие истинных целей алгоритмов. В коде операционной системы используются далеко не оптимальные реализации алгоритмов (они кого-нибудь удивляют в применении к миру ПК? меня – уже давно нет). А это – дополнительный ход, ещё больше затрудняющий анализ. Так что всё довольно хорошо скрыто.
Многие миллионы компьютеров – это большая вычислительная сила, даже если “клиентские алгоритмы” реализованы не оптимально. При этом расходы энергии, затраты на покупку вычислителей – все они ложатся на пользователей компьютеров. Экономически очень выгодно (да ещё и за лицензию на использование продукта отчисления идут). Не удивительно, что сейчас софтверные компании, регулярно работающие “по обновлению ПО”, – скажем, производители антивирусов, – запускают и продвигают создание вычислительных сетей из ПК своих клиентов. А можно ведь и не афишировать такую деятельность.
Это было во-первых. Теперь – во-вторых. Операционная система типа Windows, нацеленная, прежде всего, на пользовательский интерфейс, обязательно “знает” в деталях, что в данный момент пользователь делает на компьютере. Это очевидно. Запуск программ, загрузка программных библиотек, типы этих программ и библиотек, ввод с мыши, ввод с клавиатуры, информация с джойстика, интенсивность использования видеокарты – это только часть тех генерируемых пользователем сигналов, которые пропускает через себя и обрабатывает операционная система. Существуют специально созданные исследователями компьютерные игры, позволяющие строить некий психологический профиль человека по его, этого человека, действиям в игре. Тут, сами понимаете, нет ничего удивительного: зашить в игру набор интерактивных психологических тестов – невелика задача для современного “геймдевелопмента”.
Операционная система, конечно, не может предъявлять пользователю психологические тесты. Да. Зато она имеет все данные для определения, например, уровня реакции пользователя “на раздражители” – как быстро “обрабатываются” диалоговые окна? И операционная система может, ну, в теории, вычислять психоэмоциональные показатели – как двигается мышь? ошибки при вводе? “лихорадочная” работа с файлами? Не забывайте: соответствующий модуль операционки достаточно давно следит за пользователем, накапливает статистику, позволяющую качественно детектировать “аномалии”, изменения психологического состояния.
Сложно ли замаскировать программный код, ведущий подобный мониторинг? Не сложно. Но возникает вопрос: а зачем его скрывать? Обработка всех упомянутых “пользовательских сигналов” – стандартная функциональность, чего там прятать? Нужно лишь так подготовить алгоритмы, чтобы при проявлении некоторых наборов “сигналов” по нескольким каналам (например, клавиатура, мышь, используемые программы) возникал, скажем, сбой (“исключение”). Этот сбой будет служить семафором. О “сбое” сообщается на центральный сервер (либо в “отчёте о проблеме”, либо в момент обновления операционной системы).
Что получается в итоге? Получается гигантская система из миллионов ПК, которая информирует владельцев центральных серверов о психологической атмосфере в самых разных сообществах, которые составляют пользователи операционной системы. Где-то какая-то массовая паника. Где-то – все отдыхают. И так – по всему миру. Если что, то на основе информации, собираемой подобной “суперсистемой”, можно автоматически отключать компьютеры, выдавая им “левые обновления”.
А Google – это только прикрытие для настоящего “Большого Брата”.
Вот.
Шутка.
(А объединять первое и второе наблюдения – будем в следующий раз, а то совсем страшно получится.)
Комментарии (5) »
Снова спрашивают про одноразовые пароли, которые сейчас можно без особых проблем прикрутить к авторизационной системе CMS, при этом пароль генерируется специальным брелоком. Почему-то многие считают, что использование такого брелка и одноразовых паролей выводит защищённость “от взлома” всей системы авторизации на уровень, требующий физически украсть брелок – а это очень сложно и, поэтому, надёжно: типа, такой “сейф” получается (сейфы, как известно, дистанционно обычно не взламывают, нужно персонально выезжать на место). А про “токены”, выдающие пароли, говорят, мол, даже если и скопировали пароль от сайта, всё равно он – одноразовый.
Вообще, известно, что это опасное заблуждение. Так, пароли от хостингов, сайтов, и CMS, как показывает статистика работы саппорта, обычно крадут не удалённым сетевым снифером, а с помощью троянской программы, внедрённой непосредственно на ПК жертвы. Понятно, что модифицировать троянскую программу, наделив её возможностями по перехвату (до использования) одноразового пароля, – не такая уж сложная для профессионального взломщика задача. (Задача, судя по всему, много раз решена теми спецами, которые работают в направлении систем интернет-банкинга.) Конечно, механизм поддаётся полной автоматизации.
Более того, если предположить, что “многоразовый” пароль крадётся из открытой сети – обычно в пример приводят общедоступный Wi-Fi, – то в этом случае атакующий может вмешаться в трафик, перенаправить атакуемого на другой ресурс и там запросить у него хоть бы и сразу пять-десять одноразовых паролей впрок (тоже схема не новая). Есть и другие способы борьбы с “одноразовыми”.
Да, конечно, брелок-генератор одноразовых паролей – вещь полезная. Если правильно встроен в процесс пользования системой авторизации (SSL никто не отменяет!), то защищённость повышает, но сводить всё к необходимости кражи брелка – это большая ошибка. Система с таким брелком не надёжнее, чем защита компьютера, который используется для ввода одноразовых кодов-паролей.
Комментарии (7) »
В продолжение темы про взлом шифрования GSM хочется отметить несколько важных моментов – наверное, нужно было их включить в предыдущую заметку по теме, но там уже и места-то не было.
Во-первых, речь в исходной работе, действительно, шла только о демонстрации атаки на сам шифр, а не о полноценном перехвате GSM. Это важно, потому что разговор нужно ещё записать из эфира (что, впрочем, задача многократно реализованная – ведь, очевидно, сами операторы связи и телефонные аппараты её с лёгкостью решают).
Во-вторых, странно ожидать от операторов связи какой-то особенной реакции на очередную демонстрацию слабостей GSM в плане обеспечения секретности переговоров абонентов. Операторам действительно должно быть мало дела до секретности мобильных коммуникаций. Например, традиционная проводная телефония технически никак не защищена вообще – и что? Повышенная безопасность услуг связи обычных пользователей – никогда не была приоритетной задачей провайдеров связи (иначе они бы просто разорились на массовых услугах). Например, в случае с доступом к Интернету, провайдеры сколь-нибудь реально озаботились всякими ботнетами когда стали замечать ущерб для себя. При этом люди постоянно используют незащищённые каналы связи: вспомните Wi-Fi (который часто плохо настроен, открыт) и другие беспроводные технологии, нешифрованные сообщения e-mail, беседы “по аське” и тому подобные вещи. Так что проблема не в защите каналов, а в верном использовании этих каналов. И тут как раз начинается “в-третьих”.
Итак, в-третьих, проблемы как раз создаёт то, что каналы GSM иногда используют без дополнительной защиты в самых разных приложениях, требующих секретности связи (одноразовые пароли по SMS, связь платёжных терминалов, – даже банкоматов, – с процессинговым центром и тому подобные решения). Понятно, что все подобные решения должны исходить из открытости сетей связи, учитывать возможность перехвата и самостоятельно обеспечивать защиту по схеме “точка-точка”. И GSM тут не виноват. Скажем, для телефонии есть специальные криптофоны, или, на худой конец, какой-нибудь Skype+Интернет.
Кстати, в случае с Интернетом, ситуация ничуть не лучше: пароли постоянно пересылаются по электронной почте, на эту же почту завязываются “напоминалки” паролей, логины на сайты проходят через обычный http, или, хуже того, через простые гиперссылки “с ключами” (привет, “Мой Круг” “Яндекса”) и творятся ещё всякие неприятные штуки, разнообразие которых велико.
Комментарии (9) »
В СМИ сегодня пишут (вот, например, на “Ленте”), что “хакер взломал GSM”. Речь идёт о работе Карстена Нола (Karsten Nohl), а точнее, речь о завершении важного этапа работы. Подробности реального положения дел такие: атаки на алгоритм шифрования A5/1, используемый GSM для защиты переговоров в радиоэфире, известны уже лет десять. Правда, известны они были скорее в теории, а не на практике. Для получения доступного практичного механизма перехвата и дешифровки GSM-разговоров (SMS, конечно, тоже) в пассивном режиме не хватало предвычисленной базы данных (таблиц ключей), делающей возможным раскрытие произвольного ключа за разумное время.
Нол в 2008-2009 гг. создал проект по генерации нужных таблиц, предложив поучаствовать в создании распределённой вычислительной сети добровольцам. В итоге, сейчас нужные таблицы вычислены общими усилиями и, как утверждают, доступны в P2P-сетях. Тут нужно отметить, что полная “таблица ключей” для A5/1 – требует очень большого объёма для хранения, и огромного машинного времени для вычисления. Поэтому использовался отработанный на “взломах” хешированных (например, MD5) паролей метод: в БД сохранются не все возможные “ключевые варианты” (в таком случае, дискового пространства потребовалось бы слишком много), а лишь определённая их часть, представленная в виде “сжатой” структуры (так называемые rainbow tables), многократно ускоряющей перебор ключей. Это известный в криптологии подход, позволяющий найти “алгоритмический компромисс” между количеством вычислений и объёмом памяти. В данном случае подход, похоже, качественно реализовали на практике (что далеко не всегда удаётся).
Интересно, что для генерации таблиц ключей использовались системы с современными графическими ускорителями (3D-ускорители для игрушек), которые, как известно, позволяют многократно ускорить многие криптографические операции. Вот какая польза от компьютерных игр. (Между прочим, летом 2008-го года с помощью кластера из нескольких сотен Sony PlayStation исследователи реализовали на практике уязвимость в SSL, выпустив полностью валидный, но при этом поддельный SSL-сертификат.)
Кстати, имея соответствующее радиооборудование, получать ключи для дешифрования GSM-трафика можно было и раньше, в активном режиме, используя запрос к телефону с фиктивной базовой станции. Сейчас же речь идёт о быстром пассивном методе: записали трафик из эфира и за какие-то минуты (быстрее?) расшифровали, вычислив ключ.
Комментарии (13) »
Шумная история: “вдруг” выяснилось, что видеопотоки, транслируемые самыми разными штатовскими летательными аппаратами на землю – не шифруются, и, более того, не удостоверяются. Некая система ROVER, построенная, как говорят, на гражданских технологиях, массово установлена на самых разных военных самолётах (в том числе, на A-10 и т.п.) и беспилотниках.
Этот ROVER (там есть приёмники и передатчики) как раз используется для обеспечения канала загрузки видео в реальном времени. “Гражданские технологии” не используют криптографии – видео можно смотреть с помощью слегка модифицированного приёмника спутникового сигнала (гражданского, опять же). Хуже того, понятно, что если обладать более совершенным инструментарием, то, при определённых обстоятельствах, можно сигнал подменять.
Возможно, конечно, что журналисты преувеличивают, рисуют ситуацию в более страшных красках. Скорее всего, внедряя подобную систему, штатовские “ответственные лица” руководствовались не только соображениями “подешевле”, но и соображениями “попроще”: потому что система распределения ключей сильно усложнила бы использование полезного технологического решения. С ключами – нужен некий компетентный “шифровальщик”; в открытом варианте, без использования ключей – смотреть трансляцию, используя нехитрое оборудование, могут практически все, независимо от квалификации. Простые “автоматические” схемы с распределением ключей не слишком улучшают секретность: посмотрите, как обходятся подобные схемы в практике платного спутникового телевидения. (А вот удостоверять источник, кстати, можно было бы и в автоматическом режиме – там всё равно для проверки используются открытые ключи.)
Важный момент: наверняка расчёт делался на технологическое отставание противника, над территорией которого подобная технология используется – всё ж нужна “спутниковая тарелка”, ноутбук, специальная программа и умение всё это устанавливать.
Теперь, соответственно, выводы. Как-то в этом интернет-журнале публиковалось несколько заметок о возможностях технологически продвинутой стороны дистанционно вмешиваться во внутреннюю работу комплексов ПВО, ставя очень сложные “интеллектуальные” помехи его работе и даже перехватывая управление.
Собственно, одна из тех заметок рассказывала о сложных атаках-взломах, использующих побочные эффекты работы электронных систем, а другие о, например, “вторжениях” в системы управления и об автоматическом анализе внутренней работы комплекса ПВО. В комментариях читатели сильно сомневались, что рассуждения полностью применимы к практике военных систем – мол, там все каналы проектируются криптографически защищёнными и устойчивыми к атакам. Так вот реальность очередной раз показала, что даже в Штатах (а как ни крути – технологический лидер) – это далеко не так: каналы и архитектуру систем не делают стойкими, напротив, разработчики и функционеры-администраторы больше надеются на “технологический авось” и на то, что противник ничего не слышал, скажем, о спутниковых системах связи, да и ноутбуков у него нет.
Комментарии (32) »
Чтение комментариев к заметке про эффективный и практичный способ уничтожения данных на жёстком диске приводит к мысли о том, что “программистский подход” всё ещё силён в понимании вопросов безопасности.
(Напомню, что речь в той заметке про уничтожение жёсткого диска ударом молотка, и о том, почему достаточно одного удара по шпинделю – брутально, да, но эффективно.)
1.
Первый момент из комментариев: давайте будем шифровать данные, а ключ уничтожим (спрячем, удалим и т.п.). Вроде, утеря ключа для хорошей криптосистемы похожа на уничтожение данных, а молотком бить не нужно – так рассуждают комментаторы.
В реальности, же ситуация именно похожа на уничтожение, но не более: в случае шифрованного массива, данные всё равно остаются потенциально доступны, зато возникает дополнительная задача уничтожения ключа. В случае удара молотком – всё предельно понятно, отлично справится всякий доверенный человек, обладающий даже самой минимальной технической грамотностью. Подход типа “раз, два – и готово” именно потому и используется, что можно чётко прогнозировать риски.
В случае с защитой криптографическим ключом возникает вообще иной комплекс проблем с этими рисками: нужно налаживать административные меры по управлению ключом. Грамотная эксплуатация криптосистемы, управление ключами – это довольно сложные технические задачи, требующие, в отличие от молотка, большого количества специальных знаний и соблюдения строгих процедур. Если же процедуры и знания не применяются, то ключ кто-то может заранее скопировать (преднамеренно или непреднамеренно) и вся схема нарушается.
Да, действительно, можно скопировать и все данные с жёсткого диска. Это так, но к задаче уничтожения данных возможность такого копирования прямого отношения не имеет. Учитывайте, что в обсуждаемой схеме как раз данные-то на исходном диске не уничтожаются, и копия ключа позволит не только их прочитать, но и строго показать, что именно эти данные находятся именно на этом диске и к ним подходит именно этот ключ. В определённых условиях (варианты каждый может с лёгкостью придумать самостоятельно), такая цепочка содержит кучу дополнительной важной информации. Вот именно для того, чтобы исключить возникновение подобных цепочек, используются простые и надёжные схемы уничтожения данных, без заморочек с секретными ключами, переводящих задачу в другой класс.
2.
Второй момент из комментариев – это ставшие уже традиционными оценки “стойкости ключей” (шифров). Снова и снова предлагают “для пущей надёжности” шифрования использовать ключ длинной в “миллион бит”, “сто мегабайт” итд, итп. – подставляем любое удобное большое число. В данном случае предлагалось “уничтожаемые данные” зашифровать с таким сверхдлинным ключом, чтобы математики через несколько лет не догадались.
Но давно известно, что, грубо говоря, идеальная симметричная криптосистема с ключом длиной в 128 бит – уже нераскрываема на практике, потому что полный перебор хотя бы половины из 2128 вариантов отнимет у атакующего слишком много времени (а квантовый компьютер – это фантастика).
При этом любительские шифры с “мегаключом” длинной в “стопятсот” байтов – раскрываются специалистами с лёгкостью, так как содержат тривиальные алгоритмические дефекты. И, конечно, атаки на современные практические криптосистемы также используют дефекты проектирования этих систем, ошибки в алгоритмах и в реализациях алгоритмов. (Длинные ключи – в 1024 бита и больше – в случае криптографии с открытым ключом, имеют под собой иную математическую основу, как раз связанную с особенностями используемых алгоритмов.) “Мегадлинный” ключ не является достаточным условием стойкости криптосистемы, а скорее наоборот – свидетельствует о том, что это наивная криптосистема.
Комментарии (18) »
Как известно, на сданных в утиль жестких дисках от ПК частенько обнаруживают всякую ценную информацию (типа паролей и, даже, секретных планов). А вот часто спрашивают: как же гарантированно уничтожить данные на жестком диске? Особенно важны быстрые способы, целиком и безвозвратно данные уничтожающие, пусть и с разрушением самого носителя – ведь на фоне убытков от утечки данных, стоимость носителя исчезающе мала.
Вообще, есть разное ПО, затирающее уничтожаемые данные непосредственно на диске (обычное удаление файлов средствами ОС далеко не всегда реально данные с диска убирает). Но чтобы затереть несколько гигабайт требуется заметное время, а это не всегда приемлемо.
Ещё есть специальные устройства, такие “кассеты” для винчестеров, при нажатии “тревожной кнопки” они портят диск, который установлен внутри кассеты, при помощи мощного магнитного поля. Пока кнопку не нажали – диск работает с ПК штатным образом. Но, возникают трудности с электропитанием (внезапно обесточено помещение), и случайным нажатием на кнопку.
А между прочим, есть и более простой, но очень действенный способ: хороший молоток. Все данные на диске можно практически безвозвратно “удалить”, если нанести пару-тройку весомых ударов молотком по шпинделю (где находится шпиндель, обычно вполне можно уяснить бегло осмотрев внешний корпус винчестера). Главное, достичь смещения и повреждения магнитных поверхностей. Технология позволяет работать быстро: вынули винчестер (установлен в специальные салазки) и молотком – хрясь! хрясь! – готово.
Этот дешёвый способ работает вот почему: механизм записи данных в современных винчестерах так устроен, что если геометрия поверхностей (“элементарных дисков”) нарушена, изменилась их (и шпинделя) взаимная ориентация, относительно заводских установок, то найти где там и что на этих поверхностях записано – становится задачей практически неразрешимой.
Ну, то есть, да, в теории, можно взять какой-нибудь атомно-силовой микроскоп и тщательно сканировать изуродованные после удара поверхности. А собрав терабайты данных о микроструктуре “магнитных моментов”, можно попытаться на суперкомпьютере вычислить, где там технические метки, а где биты файлов, и в каком порядке эти биты в файлы сливались. Но вряд ли ваши данные реально кому-то настолько нужны.
Если принести сломанный (не разбитый!) винчестер в компанию по восстановлению данных, то инженеры, после того, как отпадут наиболее явные способы реанимации (типа, “повертеть в разных положениях”, “подержать в холодильнике”), попробуют заменить микроэлектронную начинку (если удастся найти подходящего донора); в некоторых случаях – попытаются заменить блок магнитных головок (уже очень сложно); ну, может, что-то ещё попытаются заменить, с тем чтобы прочитать данные с временно ожившего диска. Но попробуйте принести на восстановление разбитый винчестер с искривлёнными поверхностями и вам скажут, что вариант заведомо проигрышный, “надо было чаще делать бэкапы”.
Комментарии (40) »
Предположим, что некий сервис распространяет программу для мобильных устройств, предлагающую какие-то услуги и при этом передающую обратно провайдерам сервиса данные о положении мобильного устройства (используется GPS-модуль). За примерами не нужно далеко ходить: вот вам “Мобильные Яндекс.Карты” – там, очевидно, передача сведений о местоположении устройства-носителя “на центральный сервер” в разные моменты времени используется для построения карты “свободных дорог”.
Допустим, что само мобильное приложение – “анонимное”, при загрузке из Интернета не требует идентифицировать загружающего. Можно ли позже, с помощью анализа перемещения устройства, выяснить, с хорошей точностью, персональные данные пользователя? При этом, понятно, никаких исходных персональных данных программа не собирает: это же не программа-шпион, правда? В записной книжке коммуникатора приложение не роется, каких-то уникальных параметров-идентификаторов из сети оператора связи не получает, и вообще, возможно, код приложения полностью открыт – всё должно быть строго, иначе такую программу перестанут использовать.
На первый взгляд, подобная задача может показаться невероятно сложной, даже неразрешимой: “чистая” программа, анонимная загрузка – есть только данные о вероятном местонахождении конкретного владельца. Как тут этого владельца-то вычислить?
Прежде, отметим один момент: формальной анонимности пользователя вовсе не противоречит создание на сервисе уникального аккаунта, привязанного к данной копии программы. Это необходимо и для обновлений, и для придания устойчивости системе в целом (помогает бороться с “поддельными запросами” злых хакеров и т.д.) Только по аккаунту личность пользователя установить нельзя.
Теперь о том, как же вычислить пользователя. Вот как: фиксируются его места пребывания в рабочее время, и в не рабочее время. Приехал человек на работу, находится долго “на одном месте” – несложно вычислить и место, и, собственно, рабочее время, так как людям свойственно действовать по некоторому графику. Вычисляется всё автоматически, никакой “сложной эвристики”.
Аналогично определяется вероятное место жительства – после работы люди едут домой, понятно. Итак, есть уже пара “точек на карте”, привязанных к одному пользователю. Понятно, что координаты у этих точек размытые, но “размытость” тут будет близка к масштабу с разрешающей способностью типа “с точностью до дома”. То есть, один-два дома вероятного пребывания определить можно в очень многих случаях. Опять же, определяется всё автоматически, “сложной эвристики” – снова не требуется.
Оказывается, что пара характеристик пользователя вида “приблизительный адрес места жительства”-“приблизительный адрес места работы” позволяет с большой точностью определить единственного кандидата, который и живёт, и работает в тех “размытых районах”, куда указывает эта “адресная пара”.
Действительно, если известен только приблизительный район места жительства пользователя, то “идентифицировать” его персону, по крайней мере, в случае с современным мегаполисом, невозможно: в том же районе прописаны тысячи людей. Но эти тысячи людей совсем не обязательно и работают в одном и том же небольшом районе. Поэтому добавление к “запросу” второго параметра – приблизительный адрес места работы, район – моментально урезает число вариантов до минимума.
Пользователь “вычислен персонально”.
Более того, можно составить чёткие критерии, когда программа “извлечения данных” определила пользователя точно, а когда – нет: просто учитывается число оставшихся возможных вариантов.
Да, конечно же, нужны базы данных с адресами, с указанием работодателя и места его нахождения. Но, с другой стороны, такие базы данных существуют, а “недостающие поля в таблицах” можно построить, сведя вместе несколько баз (это ещё и точность увеличивает).
Главное тут вот что: в приведённом решении хитрой задачи достигается “полная анонимность”, “полное обезличивание” на этапе сбора исходных данных; а позже, совсем другими серверами, из этих “обезличенных данных” восстанавливаются вполне точные персональные данные. Такая вот реконструкция алгоритмами data mining.
Кому интересно, вот ссылка на работу с исследованием этой темы: On the Anonymity of Home/Work Location Pairs. Также, около года назад, я писал про очень логически близкие к только что описанной технологии построения поведенческих профилей посетителей веб-сайтов.
Для тех, кто предпочитает сразу тему развивать: подумайте, что, в теории, аналогичная схема сработает и при анализе пользовательского интернет-трафика.
Комментарии (9) »
Сегодня немного “техничная” записка. Есть такой положительно оцениваемый админами и, очевидно, отличный продукт: веб-сервер nginx, единолично поддерживаемый автором – Игорем Сысоевым. Nginx очень популярен, используется массово.
Ну, думаю, понятно, что как всякий нормальный “интернетовский” серверный продукт nginx работает на платформе Unix/Linux. И вот на ReMIX в этом году Сысоев анонсировал бинарную версию nginx для Windows.
Что в этом особенно интересного?
А вот что: есть такая технология в DNS, называется fast-flux. В рамках этой технологии штатными средствами DNS быстро меняется соответствие конкретного доменного имени и IP-адреса сервера. Я как-нибудь напишу про fast-flux в подробностях, сейчас важен лишь один момент: fast-flux активно используется злоумышленниками для размещения вредоносного и просто “неправового” контента в Интернете. Злоумышленникам, fast-flux, применяемый вместе с ботнетом, позволяет скрывать следы и преодолевать провайдерские фильтры, блокирующие доступ по IP-адресам.
Важно: при этом сама технология fast-flux – не является “зловредной”, не использует какие-то уязвимости в DNS, а вполне “легитимна”. Но злоумышленники нашли ей своё применение.
Я только что упомянул ботнет, важный для “зловредного” fast-flux: элементы этого ботнета либо сами раздают “нехороший контент”, либо работают proxy, то есть, передают запросы-ответы между клиентом и каким-то скрытым веб-сервером, где плохой контент лежит. И в первой, и во второй схеме требуется специальное ПО на заражённой машине: веб-сервер, либо реверсивный proxy. Нужно ли говорить, что nginx отлично работает и в первой роли, и во второй? Наверное, нет – сами догадались. (При этом nginx ещё умеет и нагрузку балансировать, и кешировать.)
Специалисты из рабочей группы ICANN, занимающейся fast-flux, включили nginx, отвечающий на http-запросы под “исследуемым доменом”, в список признаков “злонамеренного fast-flux”. Это произошло ещё до выхода Windows-версии nginx. И казалось странным. Но, вообще говоря, появление такого пункта указывало на то, что в Сети есть некоторое заметное число захваченных злоумышленниками unix-серверов.
Ну да, уязвимости есть в разных ОС.
При этом, естественно, подавляющая масса компьютеров, составляющих ботнет работает под управлением Windows.
Для хостингов, для нагруженных серверов веб-сайтов – ОС линейки Windows пока не актуальны. Но, понятно, для Microsoft, особенно в Рунете, портирование nginx под Windows – это важное событие: MS активно пробирается на “хостинговый” рынок. Поэтому, можно предположить, что Microsoft активно поддерживала идею пересаживания nginx на дополнительную платформу (хотя, сам автор nginx говорил на ReMIX, что исходная задумка очень старая; но факты таковы: бета-версия появилась только в 2009 году и анонсировалась на майкрософтовской конференции).
Если взглянуть на практическую сторону: довольно сложно придумать, где бы, на каком бы узле системы предоставления услуг типичного современного хостинг-провайдера windows-nginx мог с выгодой крутиться (за исключением, разве что, windows-хостеров). Дело в том, что там же везде и давно FreeBSD, ну или что-то близкородственное. И nginx давно есть.
Зато вот для использования в ботнетах, работающих на fast-flux, где Windows безоговорочно лидирует – очень кстати соответствующий “бинарник” nginx. Вот такой выходит неожиданный поворот.
Ещё раз отмечу, чтобы избежать кривотолков: nginx – очевидно, хороший эффективный рабочий инструмент, который злоумышленники просто возьмут на вооружение. (Nginx даже гораздо “легитимнее” fast-flux, если так можно сравнивать.) А интересным аспектом здесь будет то, у кого же больше окажется востребована версия nginx под Windows.
Комментарии (1) »
В конце апреля “Би-Би-Си” процитировали штатовского полковника (Charlie Williamson), который в выступлении по радио высказывался за создание “официальных” ботнетов (ну, почему-то именно ботнетов) и средств нападения в киберпространстве Интернета.
Понятно, конечно, что использование термина “ботнет” можно воспринимать как утрированный пример, приведённый полковником для публики. Но вообще – ситуация интересная, ведь понятно, что такие публичные заявления не делаются на пустом месте. Вспомним известный вариант: самая распространённая в мире персональных компьютеров ОС – разработана, тиражируется в США и автоматически ходит обновляться на серверы, подконтрольные известной штатовской “микропрограммной” компании. Ну чем не потенциальный ботнет? И даже не нужно находить уязвимости.
Другой момент (обсуждающийся в речах пентагоновских “спикеров”): если появятся “официальные” программы-зловреды, лицензированные на деятельность в интересах правительства США, то как будет решаться вопрос с производителями антивирусного ПО? Надо же им будет как-то выдавать сигнатуры “своих” агентов и регулировать “взаимодействие”. (При этом, как и пишут/говорят, нелицензированные зловреды уже используются специальными службами – ну и это не удивительно, конечно.)
Ещё интереснее: как будут взаимодействовать с независимыми разработчиками, которые возьмут лицензированные штатами зловреды, исследуют их и выпустят бесплатное противодействующее ПО? Наверное, нужно будет как-то поправлять законы в США?
(В скобках поясню: имея в руках рычаги управления адресным пространством Интернета, вообще довольно странно желать именно ботнет; можно же любую по мощности атаку в Интернете провести, используя штатные средства. Скажем, даже и какую-то чужую действующую атаку можно переправить по другому адресу. То есть, ботнет – это абсурд, в данном контексте. Поэтому намёки, всё ж, делаются именно на компьютерные зловреды, действующие по лицензии штатовского правительства. Ведь для скрытного проникновения на атакуемые системы обычные средства управления Интернетом не годятся – у них избирательности недостаточно.)
Комментарии (15) »
Telnic для использования нового домена первого уровня TEL предлагает плагин к MS Outlook. Плагин, понятно, для того, чтобы сразу загружать контактные данные, размещённые под доменом .tel, в Outlook (обратную функциональность также обещают). Напомню, что TEL – он позиционируется как глобальное хранилище контактных данных, использующее для хранения этих данных DNS.
Как это связано с безопасностью? Очень даже напрямую: данные из .tel передаются через запросы DNS, которые, хоть и уже являются источником “дыр” на клиентской стороне, но пока что носят “вторичный характер” в качестве потенциала “угроз”. Плагины (и другое ПО), обрабатывающие информацию .tel – это новый источник “дыр”. При этом плагин для Outlook – это дополнительный программный код, исполняемый на клиентской машине (ну почти что браузер).
Записи с полезной информацией из доменов .tel допускают использование шифрования, регулярных выражений и, таким образом, могут содержать довольно хитрые структуры данных. Известно, что чем хитрее допустимая структура входных данных для некоторой программы, тем больше возможностей у злоумышленника изменить эти данные таким образом, чтобы вызвать сбой в программе (и даже формальная строгость структуры положение не спасает: можно вспомнить недавние дыры в FireFox, связанные с обработкой некорректно сформированных XML-документов). То есть, фундамент для эксплуатации ошибок в ПО, работающем с доменами .tel – есть. Этот фундамент позволяет превратить ошибки в уязвимости.
При этом все данные передаются через DNS, а за этим трафиком админы корпоративных (и, скажем, “домовых”) сетей следят не слишком внимательно (они и вообще редко задумываются о DNS).
Возникает резонный вопрос, а что можно протолкнуть через DNS на клиентскую машину? Неспециалистам это кажется странным, но протолкнуть можно всё что угодно, только скорость будет не очень большая. Главное, чтобы на клиентской машине было ПО, готовое принимать данные через DNS-туннель.
Туннели организуются для “обычных” DNS-записей, с использованием подконтрольного злоумышленнику сервера имён, на котором настраивается зона для, опять же, подконтрольного злоумышленнику домена. Но в случае с .tel сам сервис предоставляет богатые возможности по размещению дополнительной информации внутри зоны. Да, эту информацию придётся оформлять как “контактную”. Но нет технологических запретов, которые не позволят записям содержать программный код зловреда, оформленный тем или иным образом.
То есть, предположим, внутри ПО для работы с адресной книгой (пусть это и не плагин для Outlook, про который не известно, что там и как) есть уязвимость. Злоумышленнику остаётся заманить пользователя атакуемой системы на специально подготовленный домен .tel, после чего, по известному из браузерной действительности сценарию, на клиентскую машину проталкивается червь. Но, в отличие от браузерной действительности, червь проталкивается через DNS, так что в итоге на клиентскую машину его засунет вполне “доверенный” DNS-сервер, который обычно даже и находится в локальной сети с атакуемой машиной (а значит тут действуют другие политики безопасности). Ну и напомню ещё раз, DNS-трафик мало кто фильтрует.
Вот такие новые угрозы с новыми доменами.
Comments Off on .TEL, новинки плагинов и компьютерная безопасность
Новый