antenna17 Продолжаем развивать тему сложных радиоэлектронных атак, затронутую в двух заметках ранее (это заметки о “радиоэлектронных вторжениях” и “атаках на вскрытие управления“). Вкратце: речь идёт о том, можно ли не просто ставить “помеху на отказ в обслуживании” комплексу, не просто готовить сложную активную помеху, а вообще дистанционно вмешиваться в управление комплексом, дезинформируя его операторов (понятно, что грубую помеху операторы тут же видят, то есть она сама по себе демаскирует действия атакующей стороны).

Вообще “радиофизические” побочные эффекты работы микроэлектроники постоянно сбрасывают со счетов при рассуждениях о возможностях активной помехопостановки. Но ещё интереснее, что “побочные эффекты” обязательно есть и на другом уровне, на уровне архитектурной реализации используемых протоколов обмена. Сами по себе эти протоколы, может быть, и хорошо защищены, на уровне “чистой математики”, но конкретная инженерная реализация – хромает и создаёт уязвимости.

По вполне понятным причинам, примеры давайте возьмём не из области систем ПВО, а из другой области. Так, наработан целый пучок использующих аппаратные особенности работы микропроцессоров атак на реализации RSA, AES и других широко распространённых криптосистем. Это именно атаки на конкретные реализации алгоритмов, использующие, например, анализ характеристик энергопотребления процессора во время работы процедур шифрования/дешифрования или умело эксплуатирующие работу кеша процессора в многопотоковой среде ОС. Грубо говоря, сам криптографический алгоритм весьма стоек (например, RSA с длинным ключом), но во время вычисления шифрованных данных “внешние признаки” работы процессора позволяют атакующему получить важную дополнительную информацию, с помощью которой с небольшими вычислительными ресурсами можно систему взломать.

Другой пример: известна атака на защищённые сети Wi-Fi (Wi-Fi chopchop), которая основана на том эффекте, что многие точки доступа Wi-Fi по-разному отвечают на верный по структуре, но “не авторизованный” пакет, и на пакет с ошибкой в структуре (в атаке используются контрольные суммы). Понятно, что речь о пакетах данных в эфире. Такое поведение устройства позволяет атакующему свободно изменять “по кусочкам” перехваченные пакеты и тестировать изменённые пакеты на “верный/дефектный”, частично раскрывая содержимое трафика, даже не зная ключа доступа (собственно, атака вообще не направлена на ключ, но позволяет читать данные).

Да, рассуждая на затронутую тему, можно заметить, что общедоступные коммуникационные устройства проектируют гражданские инженеры – и это другая ситуация, отличная от разработки военного оборудования. Отчасти это так. Но, с другой стороны, военные системы, во-первых, используют либо те же самые процессоры (см. пример с криптосистемами и процессорами), либо близкородственные процессоры – индустрия тут становится всё более “однородной”. Во-вторых, тот же Wi-Fi вполне себе используется в системах вооружений (там просто немного другой стандарт на защищённость оборудования). Ну и ситуация сильно меняется, если речь – о системах “на экспорт”: всё ж работать с “коммерческим железом” – проще, дешевле, удобнее, а для экспортных систем ограничения специальных военных гос. структур, обусловленные национальной безопасностью, отменяются. А кроме того инженеры-программисты “разных заказчиков” бывают очень схожи.

Так что судите сами, насколько же реальны “вторжения в систему управления комплекса ПВО”.



Комментарии (4) »

Вот пишут, что штатовский сайт Касперских сломали, утащив базу пользователей вместе с активационными ключами. Пока не ясно, насколько это соответствует реальности. Но если у Касперских на сайте ПО действительно допускает SQL-инъекции, то это ой-ой как плохо – потому что тогда придётся отказываться от их антивирусных-защитных продуктов.

Действительно, ведь их клиентское ПО ходит обновляться на их сервер. Если злоумышленник укатит логины/ключи с сервера, то до перехвата канала обновления уже совсем не далеко. В результате, доверенное ПО на компьютере получает возможность делать что угодно – вот вам и поддельный антивирус.

Update (07/02): Продолжение от The Register, сведения подтверждаются. (Вообще, SQL-инъекция – это, конечно, сильнейший удар по репутации, тут сказать нечего.)



Комментарии (11) »

Популярный сетевой червь Downadup (или Net-Worm.Win32.Kido, а также Conficker), между прочим, на практике демонстрирует разнообразие своего сетевого инструментария.

Например, как пишут в блоге Symantec, процедура сканирования доступных машин на предмет заражения и передачи обновлений (через механизм P2P) оценивает ширину канала в Интернет, доступную заражённому компьютеру, и согласно этой оценке планирует свою активность по распространению и сканированию. Понятно, что это делается для того, чтобы меньше беспокоить админов локальных сетей и (даже более важно) админов интернет-провайдеров, дабы они не очень торопились принимать меры.

Кроме того, механизм сканирования сетей содержит “чёрный список” IP-адресов, принадлежащих компаниям, связанным с обеспечением компьютерной безопасности, – по этим адресам червь с попытками заражения не обращается.

Самое интересное, что W32.Downadup/Net-Worm.Win32.Kido ещё и умеет анализировать сетевую инфраструктуру. Алгоритм заражения, включающий несколько этапов, требует, чтобы заражаемая машина инициировала соединение через Интернет с заражающей и скачала к себе основной код вируса. Понятно, что брандмауэры, установленные в модемах и маршрутизаторах, обычно противятся такой активности локальных машин. Более того, заражённые машины вероятно располагаются за NATом. Поэтому код Downadup предварительно обнаруживает шлюзы в локальной сети, проверяет их настройки (всё через UPnP), организует себе такой канал, который шлюз будет пропускать в обратном направлении (из внешней сети вовнутрь) и уже с использованием этого канала заражает другие машины.

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



Comments Off on W32.Downadup: развитие сетевых технологий

Jus fi, flickr До сих пор в Интернете популярна авторизация по IP-адресу, например в тех же CMS (но не только). Например, помимо предъявления авторизационного куки-файла, для авторизации требуется, чтобы и запрос был с заданного IP-адреса, скажем с того же, с которого делался логин, породивший куку, или просто готовится “белый список” допустимых IP-адресов.

С одной стороны, это увеличивает “стойкость”, так как, на первый взгляд, если злоумышленник “угнал куки” или подслушал снифером пароль, то авторизоваться в системе со своей машины он не сможет, так как у этой машины, предположительно, другой IP-адрес.

А вот с другой стороны в реальности есть хитрости. Например, пользователи, которым требуется авторизация в “защищаемой системе”, могут располагаться за тем или иным NATом – это приводит к тому, что извне IP-адрес соединения пользователя будет выглядеть другим, нежели внутренний адрес этого пользователя. Но не это главное. Главное, что “внешний” адрес разделяется между многими пользователями внутренней сети, то есть с точки зрения внешнего сервера разные компьютеры всех этих пользователей будут выглядеть как имеющие один и тот же IP-адрес. Это сейчас очень и очень распространённая ситуация и в корпоративных сетях, и у “домовых” интернет-провайдеров: IP-адреса – ресурс дефицитный. При этом пользователь, не будучи подкован в технических вопросах, может и не подозревать о том, как хитро всё работает и что он разделяет с соседями один “внешний” IP-адрес.

Теперь приплюсуем сюда такой момент: прослушивать, с целью похищения “куков и паролей”, сетевой трафик данного пользователя минимальными затратами, скорее всего, могут его соседи по сети (скажем, “хакеры-пионеры” балуются в плохо настроенных “домовых сетях”). Выходит, что похитивший авторизационные данные нехороший сосед, очень вероятно, автоматом имеет возможность работать с внешним сервером с того же IP-адреса, что и пострадавший пользователь.

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

Интересен и другой практический эффект: в системах онлайн-голосования за всякие рейтинги и конкурсы запрет повторного голосования с одного IP-адреса в течение некоторого отрезка времени (типа, защита от накруток, вспоминаем “Премию Рунета”) приводит к тому, что множество добросовестных пользователей вообще не могут проголосовать (они, волей админов, сидят за общим “IPшником”), а владелец среднего ботнета (или социальной сети) элементарно накручивает голосовалку, действуя с набора разных IP-адресов, да ещё и с нужным разбросом по времени.



Комментарии (5) »

Credit: jonathanb1989, flickr Кстати, важный аспект, в смысле помехопостановки и использования всяческих ложных целей, – вычислительная мощность компьютеров, и, кроме того, оптимальные алгоритмы.

Например, комплекс ПВО: тут требуется вычислять параметры цели, сопровождать её перемещение (а это означает, что необходимо записывать данные о скорости цели, аппроксимировать траекторию и т.п.). Теперь предположим, что одну реальную цель сопровождает множество ложных. Достаточно большое количество более или менее хитрых ложных целей будет перегружать вычислительную систему комплекса уже задачей распознавания того, что эти цели ложные (даже, если комплекс научили их распознавать). Конечно, совсем простые “обманки” не помогут: можно так настроить радар, что сигналы от них будут отсеиваться ещё на самых ранних этапах обработки. Но, как говорится, беспилотники в помощь.

Другой пример: перспективные спутниковые системы слежения за передвижением объектов на больших территориях. Для чего такие системы мониторинга строятся? Вовсе не для изучения миграций тюленей или круторогих северных оленей. Строятся они для оперативного мониторинга перемещения мобильных ракетных комплексов (с МБР, конечно). Тут куда как более серьёзные требования к вычислительным системам – требуются суперкомпьютеры.

Почему? Потому что, понятно, для маскировки комплексов используются нетривиальные методы, и для того, чтобы в данный момент времени хорошо знать вероятное положение комплекса, нужно уметь выделять возможные районы его нахождения (комплексы пока что не телепортируются), предвычислять возможные маршруты, распознавать “ложные объекты” (в случае со спутниковой группировкой, мониторящей поверхность Земли, “ложные цели” создаются, например, атмосферными эффектами) и считать другие хитрые вещи.

При этом точность определения местоположения мобильного объекта целиком и полностью зависит от “глубины” и непрерывности записанной в базах данных “истории” этого объекта перемещений (вчера, два дня назад, месяц назад и т.д.). А ещё нужно сводить воедино сведения от разных датчиков и спутников, учитывать прогнозы (и погоды, и перемещений).

Впрочем, вычислительные мощности и дисковое пространство для долговременного хранения данных теперь сильно подешевели.



Комментарии (12) »

padlock by Augapfel, Flickr Вновь приходится слышать от разработчиков CMS старую песню: “мы закрываем исходный код, потому что там наверняка уязвимости, а в закрытом коде найти их сложнее”. Речь о коммерческой CMS, о PHP, а “закрывают код”, понятно, с помощью Zend Optimizer.

А вот интересно разобраться, кому в действительности нужно, чтобы код был закрыт подобным образом. Разбираемся. Например, раз уязвимости есть (а они есть), то наверняка среди них полно шаблонных решений. Разработчики-то, собственно, нормальные, как и у других продуктов, поэтому нужно ожидать неистребимых SQL injection и далее по списку. То есть, обнаружению и использованию типичных уязвимостей закрытый код не помешал. Не удивительно – ведь от того, что код закрыт, дыры не исчезли, их просто хуже видно.

Но это одно дело. Теперь предположим, что некий квалифицированный специалист-хакер решил найти особую дыру в данной конкретной CMS. CMS эта не самая распространённая, а значит специалиста заинтересовала не просто так, но с точки зрения атаки конкретного сервера. Потому что ради спортивного интереса специалисты не работают по мелочи, а вот под заказ – вполне. (Заказ может быть и “имиджевым”, кстати. Для этого сайт-цель должен быть очень известным.) Специалист либо приобретает демо-версию, либо покупает лицензию – и, так как он специалист, “раскрывает для себя” исходный код и исследует его. То есть, особенных препятствий нет, и специалисту “закрытый код” не очень помешает – всё ж технологии используются известные. Так что опять концепция “спрятанных под Zend`ом дыр” промахивается.

А вот “хакеры-дети” (“пионеры”), которым не все технологии понятны – может, им помешает “закрытый код”? Нет, оказывается, что “пионеры” либо используют готовый инструментарий, который ищет шаблонные уязвимости (от доступности исходных кодов не зависят), либо просто отправляются атаковать другой сервер. Предположить, что этот тип атакующего станет тратить сутки на тщательный аудит кода одной CMS, когда на сайтах вокруг полно других соблазнов, будет, мягко говоря, странным – потому что это уже не начинающий хакер выходит, а тот самый спец, работающий под заказ. То есть, “закрытый код” тут просто не играет роли, которую ему приписывают.

Итак, против кого работают “спрятанные дыры”? Оказывается, что только против добропорядочных веб-мастеров и админов, которые хотели бы поверхностно взглянуть, что же там внутри CMS, которую планируют поставить на свой любимый сервер. Хотя бы с целью оценить стиль, прикинуть возможности “адаптации”, а вовсе и не для поиска дыр. Для них создаются дополнительные трудности, вполне ощутимые.

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

Так вот. Требуйте открытых исходников CMS – проще будет эксплуатировать ПО.



Комментарии (23) »

tools Кстати, особенностей CMS касается вот какой момент. CMS, в подавляющем большинстве случаев, служат для управления веб-сайтом, который предназначен для публикации (то есть распространения) данных через Интернет – всё это очевидно. Так что “дыра”, уязвимость в CMS годится не только для того, чтобы просто “взломать сайт”. Как показывает практика, нынче уязвимость CMS оказывается более востребованной в качестве инструмента рассаживания червей и вирусов с добропорядочного сайта.

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

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

Более того, с рассылкой вирусов компьютером клерка админы локальных сетей могут эффективно побороться – всё ж это нетипичная активность для пользователя-клерка, легко обнаруживаемая сетевыми мониторами. В случае сайта, который специально предназначен для рассылки информации во внешнюю сеть, всё бывает не так уж и просто, обнаружить “лишний модуль” могут не сразу.

А при этом механизмы автоматического обновления всё популярнее у создателей CMS. Есть “самообновляющиеся” коммерческие CMS. Для планирования рисков, связанных с корпоративным сайтом, хорошо бы знать, откуда и как получают свои обновления эти системы? Насколько надёжен канал? Когда его захватят злоумышленники, чтобы успешно рассадить трояны по многим сайтам? Всё это хитрые вопросы. Ответы на которые ещё сложнее отыскать, если используется CMS с “закрытым кодом”, работающая неясным способом и “обложенная” изнутри какими-то якобы “защитными модулями”.



Комментарии (2) »

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

Вкратце, история там такая: группа исследователей на практике (с помощью кластера из игровых приставок Sony PS 3 – это к слову о вычислениях на графических ускорителях) продемонстрировала умение выпускать поддельные SSL-сертификаты, “подписанные” настоящим удостоверяющим центром. То есть такие сертификаты будут полностью проходить валидацию в браузере (по крайней мере, до внесения изменений в процедуры браузеров). Понятно, что подобный поддельный сертификат можно использовать в, например, фишерских атаках.

Почему подделка оказалась возможной? Потому что удостоверяющие центры продолжают использовать MD5 (хеш-функция, нужная при генерации электронных подписей), хотя алгоритмы быстрого нахождения коллизий в MD5 известны уже несколько лет (коллизии, грубо говоря, позволяют переносить, сохраняя валидность, подпись с одних данных на другие; скажем, с легитимных на поддельные, зловредные).

Выводы: как ни крути, а выходит, что отдельные, делающие бизнес на сертификатах, компании, мягко говоря, игнорируют реальную ситуацию с безопасностью этих сертификатов. При этом для рядовых пользователей вроде бы надёжная и безопасная SSL-система ситуацию с безопасностью сильно ухудшает. Дело в том, что этих пользователей приучили сильнее доверять безопасным сайтам, работающим по https, имеющим хорошие цифровые сертификаты. Так что такому сайту даже осторожный пользователь передаст свои данные (номера банковских карт, как обычно). То есть создаётся ложное чувство безопасности – что не есть хорошо.

Интересно, что вот введут DNSSEC для доменов, появится возможность удостоверять ответы DNS. И на каком-то этапе нерадивая компания из сферы “безопасности” напутает с ключами – а уже даже самые “параноидальные админы” DNSу верят на слово. Вот будет неприятность, почище, чем с BGP.

Впрочем, с другой стороны, от такого сценария развития деваться некуда – новые системы всё равно лучше полностью незащищённых старых: по крайней мере, известно, с кого спрашивать, можно найти, кто нарушал протоколы. Ну, если, конечно, уязвимость достаточно рано обнаружат.



Комментарии (1) »

В блоге от Symantec пишут, что новый червь Downadup для обновления своего кода помимо известного канала с DNS (через доменные имена) использует механизм типа P2P.

То есть, как пишут, червь на уже заражённой машине мониторит новые попытки заражения, и если обнаруживает, что другая копия Downadup пытается заразить машину, спрашивает у этой копии про обновления, загружает таковые к себе. При этом, понятно, полученные обновления передаются дальше, на доступные компьютеры. Так что сеть может децентрализованно обновляться. При этом, опять же, если верить сообщению, используется шифрование (и/или электронная подпись) – что, впрочем, ни разу не удивительно.

Что там авторы нового мощного ботнета подготовили, какую “деструктивную нагрузку” – пока не ясно.



Comments Off on W32.Downadup – технологии P2P в действии

virusic Между прочим, ещё каких-то лет 16-17 назад, компьютерные вирусы, распространявшиеся в среде ОС MS-DOS на IBM PC-совместимых персональных компьютерах, имели размеры программного кода около сотни байтов. Очень не много, если учесть, что такой вирус должен был суметь получить управление при запуске заражённого файла, установиться в память “резидентом” (то есть, остаться там после завершения программы-носителя) и перехватить хотя бы парочку системных функций – что необходимо для эффективного заражения других файлов. Понятно, конечно, что суперкороткие вирусы и тогда были лишь исключением – типичный размер измерялся несколькими сотнями байтов и килобайтами.

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



Комментарии (17) »

Часто приводят разную статистику по российским коммерческим CMS – сколько у кого установок. Измеряют, обычно, тысячами. При этом отчего-то регулярно забывают такой “масштабирующий” фактор, как отношение к реально лидирующим CMS – “опенсорсным”, тем самым искажая “ситуацию на рынке”. Между тем оценить масштабы не сложно.

Скажем, сейчас “Яндекс.блоги” “знают” около 186 000 автономных блогов (так пишет сам сервис). Беглая оценка списка плюс учёт тенденций в блогосфере позволяют ввести разумную “оценку снизу”: что-нибудь около 70% от этого числа – блоги на WordPress. То есть, уже по “Яндекс.блогам” выходит, что только WordPress – опенсорсная CMS – может записать на свой счёт около 130 000 установок в Рунете. Понятно, что реально WordPress гораздо больше, но даже и 130 тысяч – это уже другая весовая категория.

А ведь ещё есть Drupal, Joomla и т.д.



Комментарии (2) »