- Чорний DDoS Чимало існує ботів, за допомогою яких зловмисники організовують DDoS-атаки на інтернет-сервера....
- Захисна оболонка
- Інфектор
- впроваджувана dll
- Основні плагіни
- плагін ddos
- плагін syn
- плагін http
- базові команди
- висновок
- Чорний DDoS
- Крок за кроком: складові бота
- Захисна оболонка
- Інфектор
- впроваджувана dll
- Основні плагіни
- плагін ddos
- плагін syn
- плагін http
- базові команди
- висновок
- Чорний DDoS
- Крок за кроком: складові бота
- Захисна оболонка
- Інфектор
- впроваджувана dll
- Основні плагіни
- плагін ddos
- плагін syn
- плагін http
- базові команди
- висновок
- Чорний DDoS
- Крок за кроком: складові бота
- Захисна оболонка
- Інфектор
- впроваджувана dll
- Основні плагіни
- плагін ddos
- плагін syn
- плагін http
- базові команди
- висновок
Чорний DDoS
Чимало існує ботів, за допомогою яких зловмисники організовують DDoS-атаки на інтернет-сервера. Одним з найпопулярніших таких інструментів є Black Energy. На даний момент «Лабораторією Касперського» виявлено та детектується більше 4000 варіацій цієї шкідливої програми. У середині 2008-го року вирусописатели піддали первинну версію бота істотної зміни. З'явився так званий Black Energy 2 ( «Лабораторія Касперського» класифікує його як Backdoor.Win32.Blakken). Про нього і піде мова в цій статті.
Крок за кроком: складові бота
Автор реалізував в боті кілька основних завдань: приховування коду програми від антивірусних продуктів, зараження системних процесів і, нарешті, гнучкий механізм реалізації різної шкідливої активності на зараженій машині по команді з центру управління ботнетом. За виконання кожного завдання відповідають різні складові шкідливої програми.
рис.1 Етапи роботи Black Energy 2
Захисна оболонка
Як і більшість шкідливих програм, Black Energy 2 має якусь захисну оболонку, що приховує шкідливу начинку від антивірусів: шифрування, архівування коду, також можуть бути використані анти-емуляціонние методи.
Після запуску на комп'ютері користувача exe-файлу Black Energy 2 шкідливий додаток виділяє віртуальну пам'ять, копіює в неї код дешіфровщіка і передає на нього управління.
В результаті виконання коду дешіфровщіка в пам'яті з'являється код з функцією Дроппер, виконання якого призводить до створення в системному каталозі «<WINDIR> system32drivers» драйвера-дешіфровщіка з випадковим ім'ям, наприклад, «EIBCRDZB.SYS». Після чого створюється і запускається пов'язана з цим драйвером служба, також з випадковим ім'ям:
Мал. 2 Запуск шкідливого драйвера-дешіфровщіка
Драйвер, як і початкове exe-додаток, що ініціює процес зараження комп'ютера, за своєю суттю є «обгорткою», в якій заховано найцікавіше.
Інфектор
У коді драйвера-дешіфровщіка присутній блок зашифрованих і запакованих даних:
Мал. 3 Зашифровані дані всередині драйвера-дешіфровщіка
Такий блок даних має певну структуру:
Мал. 4 Структура зашифрованих даних
За допомогою ключа з цього блоку будується інший ключ довжиною 100h байт, який використовується для розшифровки архіву. Алгоритм шифрування добре відомий - це RC4. Якщо розмір архіву збігається з розміром даних, то архівація даних відсутній, в іншому випадку розшифрований архів піддається розпакуванню.
Розшифровані дані представляють собою драйвер-інфектор, в функціонал якого закладено впровадження бібліотеки dll в процес користувацького режиму svchost.exe. Щоб запустити драйвер-інфектор, драйвер-дешифровщик виділяє під нього пам'ять, копіює туди розшифрований код, налаштовує під поточне адресний простір і передає управління. Шкідлива бібліотека dll зберігається в в секції «.bdata» драйвера-інфектора. Цей блок даних також має вищезгадану структуру. Драйвером-інфектором знаходиться процес svchost.exe, в його адресному просторі виділяється пам'ять, в неї копіюється шкідлива dll, яка налаштовується під адреси виділеної пам'яті. Код впровадженої бібліотеки з режиму ядра запускається в такий спосіб:
Мал. 5 Запуск впровадженої бібліотеки в svchost.exe
Тут використовується обробка черги APC. Спочатку инициализируется APC з адресою функції DllEntry впровадженої бібліотеки, потім за допомогою KeInsertQueueApc APC ставиться в чергу. Коли svchost.exe буде готовий до обробки APC черзі (що відбувається практично відразу ж), в його контексті запуститься потік з адреси DllEntry.
впроваджувана dll
Впроваджена в svchost.exe бібліотека dll є основним керуючим ланкою по організації DDoS-атаки з зараженого комп'ютера. Також як і драйвер-інфектор, бібліотека має секцію .bdata, в якій зберігається блок зашифрованих даних, що має вже відому нам структуру. Ці дані представляють собою xml-документ, в якому визначені необхідні початкові налаштування бота. Такий документ може виглядати, наприклад, ось так:
Мал. 6 Початкові налаштування бота
Найважливіша інформація - це, звичайно, адреса центру управління ботнетом. В даному випадку для надійності таких адрес вказано два: якщо буде закритий один, і бот до нього не «достукаєтеся», він зможе спробувати встановити зв'язок з господарем по резервному адресою.
На адресу центру управління бот посилає заздалегідь підготовлений http-запит, який представляє собою рядок, що містить ідентифікаційні дані зараженої машини. Ось як може виглядати такий рядок:
id = xCOMPUTERNAME_62CF4DEF & ln = ru & cn = RU & nt = 2600 & bid = 3
Параметр id, ідентифікатор зараженої машини, включає в себе ім'я комп'ютера і серійний номер жорсткого диска, на якому розміщений диск C :. Далі вказуються дані про операційну систему: мова системи, країна, в якій встановлена система, і номер складання системи. В кінці додається ідентифікатор збірки бота (останнє поле «build_id» в xml-документі початкових налаштувань).
Певний вид рядка запиту служить підтвердженням того, що запит робить саме бот. Крім того, для центру управління свого роду паролем може служити також user-agent http-запиту.
Якщо центр управління приймає запит, то у відповідь він посилає файл конфігурації бота також у вигляді зашифрованого xml-документа. Шифрування використовується те ж саме, що і в разі шифрування даних в драйвері і dll - RC4. Ключем є ідентифікатор зараженої машини (параметр id рядка запиту, в наведеному вище прикладі - «xCOMPUTERNAME_62CF4DEF»).
Давайте подивимося на приклад таких інструкцій:
Мал. 7 Файл конфігурації: інструкції з центру управління
Розділ <plugins> повідомляє боту, які модулі є на сервері господаря для організації DDoS-атаки. Якщо у бота ще немає такого модуля, або на сервері новішої версії, то бот посилає запит серверу на скачування плагіна, наприклад:
getp = http & id = xCOMPUTERNAME_62CF4DEF & ln = ru & cn = RU & nt = 2600 & bid = 3
Плагін являє собою бібліотеку dll. Передається вона боту в зашифрованому вигляді. Якщо для шифрування використовується ключ, відмінний від значення параметра id, то він вказується у файлі конфігурації в поле <key>. Після отримання та розшифровки бібліотеки-плагіна, вона розміщується в виділену під неї пам'ять, після чого готова приступити до DDoS-атаці, як тільки прийде відповідна команда.
Модулі завантажуються на заражений комп'ютер регулярно: як тільки вирусописатели поліпшить метод атаки, бот Black Energy 2 довантажити новішу версію плагіна.
Завантажені таким чином плагіни зберігаються на жорсткому диску зараженого комп'ютера в системному каталозі «<WINDIR> system32drivers» під ім'ям «str.sys». Вміст файлу «str.sys» шифрується, ключем є значення параметра id. До шифрування дані, що зберігаються в «str.sys», виглядають так:
Мал. 8 незашифрованому вміст файлу str.sys: сховище плагінів
У кожному плагін є продукція, що експортується функція DispatchCommand, яку викликає основний керуючий модуль - впроваджена в процес svchost.exe бібліотека dll. Функції DispatchCommand передається параметр - одна з команд розділу в файлі конфігурації бота. Після чого плагін виконує дану команду.
Основні плагіни
Основними плагінами Black Energy 2 є ddos, syn і http. Розповімо трохи про кожен з них.
плагін ddos
На вхід плагіну ddos надходить адреса атакується сервера, протокол і порт. Відповідно, не започатковано масові з'єднання з сервером на певний порт за певним протоколу. Після встановлення з'єднання на сервер надсилається заповнений випадковим чином пакет даних. Підтримуються протоколи tcp, udp, icmp і http.
Ось приклад реалізації виконання команди «ddos_start udp <інтернет-адреса> 80»:
Мал. 9 Створення сокета, протокол UDP
Мал. 10-1 Відправка даних: sendto і стек
Мал. 10-2 Відправка даних - куди. pTo: ip-адреса і порт
Мал. 10-3 Відправка даних - що. Data: випадковий набір байт
За протоколом http плагіном ddos за допомогою функцій socket, connect і send на сервер надсилається GET-запит.
плагін syn
На відміну від інших плагінів, згаданих у цій статті, в плагін syn присутній мережевий драйвер. При виконанні функції DllEntry плагіна цей драйвер встановлюється в системний каталог «system32drivers» під ім'ям «synsenddrv.sys». Відправку мережевих пакетів він бере на себе. Функція DispatchCommand, як уже можна здогадатися, чекає від керуючої бібліотеки параметр такого виду: «syn_start» або «syn_stop». У разі отримання першого параметра плагін починає атаку, якщо отриманий другий - припиняє. Атака в даному випадку є множинні запити серверу на установку з'єднання, відкриття мережевий сесії, так званий «обмін рукостисканнями»:
Мал. 11 SYN-атака: SYN-> ACK-> RST
Природно, коли такі множинні запити виходять від великої кількості заражених комп'ютерів, це створює відчутну навантаження на сервер.
плагін http
Проти описаних вище методів DDoS-атак часто застосовується редирект: сервер з інтернет-ресурсами ховається за шлюз, який видно ззовні, а шлюз перенаправляє запити на сервер з ресурсами. Від DDoS-атак шлюз захищається всілякими способами, і «звалити» його не так-то просто. Відповідно, плагінами ddos і syn по IP-адресою може бути атакований тільки шлюз, так як ніякого функціоналу розпізнавання перенаправлення трафіку у них немає, і мережевий «флуд», який вони генерують, до сервера з інтернет-ресурсами просто не доходить. На цей випадок вірусопісателямі і був розроблений плагін http.
Отримавши команду «http_start <url> <port>», плагін http створює COM-об'єкт «Internet Explorer (Ver 1.0)» з інтерфейсом «IWebBrowser2». Викликається метод Navigate з параметром з команди «http_start». В результаті COM-об'єкт «Internet Explorer (Ver 1.0)» реалізує перехід на зазначену сторінку. Далі за допомогою методу Busy шкідлива програма очікує, коли запит повністю відпрацює.
Мал. 12-1 Створення COM-об'єкта
Мал. 12-2 Покажчик на CLSID
Мал. 12-3 Покажчик на ID інтерфейсу
Мал. 13 Виклик методу Navigate
Мал. 14 Виклик методу Busy
Таким чином, повністю емулюється візит на сторінку звичайного користувача. Різниця лише в тому, що, на відміну від користувача, описувана шкідлива програма робить безліч заходів на один і той же адреса був призначений додатковий короткий проміжок часу. Навіть якщо використовується шлюз з перенаправленням, http-запит перенаправляється на захищається сервер з інтернет-ресурсами, і на цей сервер створюється навантаження.
базові команди
Крім завантаження плагінів і виконання команд, пов'язаних з цими плагінами, Black Energy 2 «розуміє» кілька загальних команд, які можуть виходити від центру управління:
rexec - завантажити з інтернету вказаний файл і запустити його;
lexec - запустити вказаний файл, який знаходиться на зараженому комп'ютері;
die - припинити виконання бота;
upd - оновити бот;
setfreq - встановити частоту звернення до центру управління;
http - послати http-запит на вказану статтю в інтернеті.
висновок
Спочатку Black Energy створювався як бот для організації DDoS-атак, але з появою в другій версії плагінів функціонал цього шкідливого сімейства практично не обмежений (правда зловмисники поки використовують його, в основному, як засіб для DDoS). Можна встановити плагін, наприклад, для розсилки спаму, перехоплення даних користувача, організації проксі-сервера і т.д., і т.п. Команда upd дозволяє оновлювати бот, наприклад, по-новому зашифрованою версією. Регулярне оновлення дає боту можливість довгий час ховатися від ряду антивірусних програм, які можуть бути встановлені на зараженому комп'ютері. Потенціал цього шкідливого інструменту досить високий, що, безумовно, є великою небезпекою. Благо в Мережі відсутні так звані публічні версії білдерів для збірки ботів Black Energy 2, тому різні варіації цієї шкідливої програми з'являються не в таких кількостях, як, наприклад, того ж ZeuS або першого Black Energy. Але, судячи за наявними у нас даними, у зловмисників побудовані великі ботнети на платформі Black Energy 2, які вже проявили себе в DDoS-атаках.
Яким чином господарі вирішать використовувати свої ботнети надалі, заздалегідь не вгадаєш. Для вирусописатели нескладно створити плагін і завантажити його на заражені комп'ютери користувачів. При цьому код плагіна проявиться лише в пам'яті зараженого комп'ютера, в інших місцях - при пересиланні даних чи, при зберіганні чи на жорсткому диску - шкідливі модулі будуть зашифровані. До того ж самі по собі плагіни для Black Energy 2 виконуваними файлами «.exe» не є. Модулі завантажуються тільки на заражену машину, відповідно, поширюватися розрахованими на масові зараження методами не будуть і можуть довгий час не потрапляти на очі антивірусним компаніям. Але саме плагіни в кінцевому підсумку виконують задум зловмисника - ті шкідливі дії, заради яких і були заражені Black Energy 2 комп'ютери користувачів. Знати їх необхідно! Для цього в нашій Лабораторії і організований моніторинг підвантажуваних плагінів для Black Energy 2, так що тенденції використання цього зловреда не повинні від нас вислизнути. Будемо тримати в курсі і вас.
(Автор: Дмитро Тараканов , Експерт «Лабораторії Касперського»)
Чорний DDoS
Чимало існує ботів, за допомогою яких зловмисники організовують DDoS-атаки на інтернет-сервера. Одним з найпопулярніших таких інструментів є Black Energy. На даний момент «Лабораторією Касперського» виявлено та детектується більше 4000 варіацій цієї шкідливої програми. У середині 2008-го року вирусописатели піддали первинну версію бота істотної зміни. З'явився так званий Black Energy 2 ( «Лабораторія Касперського» класифікує його як Backdoor.Win32.Blakken). Про нього і піде мова в цій статті.
Крок за кроком: складові бота
Автор реалізував в боті кілька основних завдань: приховування коду програми від антивірусних продуктів, зараження системних процесів і, нарешті, гнучкий механізм реалізації різної шкідливої активності на зараженій машині по команді з центру управління ботнетом. За виконання кожного завдання відповідають різні складові шкідливої програми.
рис.1 Етапи роботи Black Energy 2
Захисна оболонка
Як і більшість шкідливих програм, Black Energy 2 має якусь захисну оболонку, що приховує шкідливу начинку від антивірусів: шифрування, архівування коду, також можуть бути використані анти-емуляціонние методи.
Після запуску на комп'ютері користувача exe-файлу Black Energy 2 шкідливий додаток виділяє віртуальну пам'ять, копіює в неї код дешіфровщіка і передає на нього управління.
В результаті виконання коду дешіфровщіка в пам'яті з'являється код з функцією Дроппер, виконання якого призводить до створення в системному каталозі «<WINDIR> system32drivers» драйвера-дешіфровщіка з випадковим ім'ям, наприклад, «EIBCRDZB.SYS». Після чого створюється і запускається пов'язана з цим драйвером служба, також з випадковим ім'ям:
Рис. 2 Запуск шкідливого драйвера-дешіфровщіка
Драйвер, як і початкове exe-додаток, що ініціює процес зараження комп'ютера, за своєю суттю є «обгорткою», в якій заховано найцікавіше.
Інфектор
У коді драйвера-дешіфровщіка присутній блок зашифрованих і запакованих даних:
Рис. 3 Зашифровані дані всередині драйвера-дешіфровщіка
Такий блок даних має певну структуру:
Рис. 4 Структура зашифрованих даних
За допомогою ключа з цього блоку будується інший ключ довжиною 100h байт, який використовується для розшифровки архіву. Алгоритм шифрування добре відомий - це RC4. Якщо розмір архіву збігається з розміром даних, то архівація даних відсутній, в іншому випадку розшифрований архів піддається розпакуванню.
Розшифровані дані представляють собою драйвер-інфектор, в функціонал якого закладено впровадження бібліотеки dll в процес користувацького режиму svchost.exe. Щоб запустити драйвер-інфектор, драйвер-дешифровщик виділяє під нього пам'ять, копіює туди розшифрований код, налаштовує під поточне адресний простір і передає управління. Шкідлива бібліотека dll зберігається в в секції «.bdata» драйвера-інфектора. Цей блок даних також має вищезгадану структуру. Драйвером-інфектором знаходиться процес svchost.exe, в його адресному просторі виділяється пам'ять, в неї копіюється шкідлива dll, яка налаштовується під адреси виділеної пам'яті. Код впровадженої бібліотеки з режиму ядра запускається в такий спосіб:
Рис. 5 Запуск впровадженої бібліотеки в svchost.exe
Тут використовується обробка черги APC. Спочатку инициализируется APC з адресою функції DllEntry впровадженої бібліотеки, потім за допомогою KeInsertQueueApc APC ставиться в чергу. Коли svchost.exe буде готовий до обробки APC черзі (що відбувається практично відразу ж), в його контексті запуститься потік з адреси DllEntry.
впроваджувана dll
Впроваджена в svchost.exe бібліотека dll є основним керуючим ланкою по організації DDoS-атаки з зараженого комп'ютера. Також як і драйвер-інфектор, бібліотека має секцію .bdata, в якій зберігається блок зашифрованих даних, що має вже відому нам структуру. Ці дані представляють собою xml-документ, в якому визначені необхідні початкові налаштування бота. Такий документ може виглядати, наприклад, ось так:
Рис. 6 Початкові налаштування бота
Найважливіша інформація - це, звичайно, адреса центру управління ботнетом. В даному випадку для надійності таких адрес вказано два: якщо буде закритий один, і бот до нього не «достукаєтеся», він зможе спробувати встановити зв'язок з господарем по резервному адресою.
На адресу центру управління бот посилає заздалегідь підготовлений http-запит, який представляє собою рядок, що містить ідентифікаційні дані зараженої машини. Ось як може виглядати такий рядок:
id = xCOMPUTERNAME_62CF4DEF & ln = ru & cn = RU & nt = 2600 & bid = 3
Параметр id, ідентифікатор зараженої машини, включає в себе ім'я комп'ютера і серійний номер жорсткого диска, на якому розміщений диск C :. Далі вказуються дані про операційну систему: мова системи, країна, в якій встановлена система, і номер складання системи. В кінці додається ідентифікатор збірки бота (останнє поле «build_id» в xml-документі початкових налаштувань).
Певний вид рядка запиту служить підтвердженням того, що запит робить саме бот. Крім того, для центру управління свого роду паролем може служити також user-agent http-запиту.
Якщо центр управління приймає запит, то у відповідь він посилає файл конфігурації бота також у вигляді зашифрованого xml-документа. Шифрування використовується те ж саме, що і в разі шифрування даних в драйвері і dll - RC4. Ключем є ідентифікатор зараженої машини (параметр id рядка запиту, в наведеному вище прикладі - «xCOMPUTERNAME_62CF4DEF»).
Давайте подивимося на приклад таких інструкцій:
Рис. 7 Файл конфігурації: інструкції з центру управління
Розділ <plugins> повідомляє боту, які модулі є на сервері господаря для організації DDoS-атаки. Якщо у бота ще немає такого модуля, або на сервері новішої версії, то бот посилає запит серверу на скачування плагіна, наприклад:
getp = http & id = xCOMPUTERNAME_62CF4DEF & ln = ru & cn = RU & nt = 2600 & bid = 3
Плагін являє собою бібліотеку dll. Передається вона боту в зашифрованому вигляді. Якщо для шифрування використовується ключ, відмінний від значення параметра id, то він вказується у файлі конфігурації в поле <key>. Після отримання та розшифровки бібліотеки-плагіна, вона розміщується в виділену під неї пам'ять, після чого готова приступити до DDoS-атаці, як тільки прийде відповідна команда.
Модулі завантажуються на заражений комп'ютер регулярно: як тільки вирусописатели поліпшить метод атаки, бот Black Energy 2 довантажити новішу версію плагіна.
Завантажені таким чином плагіни зберігаються на жорсткому диску зараженого комп'ютера в системному каталозі «<WINDIR> system32drivers» під ім'ям «str.sys». Вміст файлу «str.sys» шифрується, ключем є значення параметра id. До шифрування дані, що зберігаються в «str.sys», виглядають так:
Рис. 8 незашифрованому вміст файлу str.sys: сховище плагінів
У кожному плагін є продукція, що експортується функція DispatchCommand, яку викликає основний керуючий модуль - впроваджена в процес svchost.exe бібліотека dll. Функції DispatchCommand передається параметр - одна з команд розділу в файлі конфігурації бота. Після чого плагін виконує дану команду.
Основні плагіни
Основними плагінами Black Energy 2 є ddos, syn і http. Розповімо трохи про кожен з них.
плагін ddos
На вхід плагіну ddos надходить адреса атакується сервера, протокол і порт. Відповідно, не започатковано масові з'єднання з сервером на певний порт за певним протоколу. Після встановлення з'єднання на сервер надсилається заповнений випадковим чином пакет даних. Підтримуються протоколи tcp, udp, icmp і http.
Ось приклад реалізації виконання команди «ddos_start udp <інтернет-адреса> 80»:
Рис. 9 Створення сокета, протокол UDP
Рис. 10-1 Відправка даних: sendto і стек
Рис. 10-2 Відправка даних - куди. pTo: ip-адреса і порт
Рис. 10-3 Відправка даних - що. Data: випадковий набір байт
За протоколом http плагіном ddos за допомогою функцій socket, connect і send на сервер надсилається GET-запит.
плагін syn
На відміну від інших плагінів, згаданих у цій статті, в плагін syn присутній мережевий драйвер. При виконанні функції DllEntry плагіна цей драйвер встановлюється в системний каталог «system32drivers» під ім'ям «synsenddrv.sys». Відправку мережевих пакетів він бере на себе. Функція DispatchCommand, як уже можна здогадатися, чекає від керуючої бібліотеки параметр такого виду: «syn_start» або «syn_stop». У разі отримання першого параметра плагін починає атаку, якщо отриманий другий - припиняє. Атака в даному випадку є множинні запити серверу на установку з'єднання, відкриття мережевий сесії, так званий «обмін рукостисканнями»:
Рис. 11 SYN-атака: SYN-> ACK-> RST
Природно, коли такі множинні запити виходять від великої кількості заражених комп'ютерів, це створює відчутну навантаження на сервер.
плагін http
Проти описаних вище методів DDoS-атак часто застосовується редирект: сервер з інтернет-ресурсами ховається за шлюз, який видно ззовні, а шлюз перенаправляє запити на сервер з ресурсами. Від DDoS-атак шлюз захищається всілякими способами, і «звалити» його не так-то просто. Відповідно, плагінами ddos і syn по IP-адресою може бути атакований тільки шлюз, так як ніякого функціоналу розпізнавання перенаправлення трафіку у них немає, і мережевий «флуд», який вони генерують, до сервера з інтернет-ресурсами просто не доходить. На цей випадок вірусопісателямі і був розроблений плагін http.
Отримавши команду «http_start <url> <port>», плагін http створює COM-об'єкт «Internet Explorer (Ver 1.0)» з інтерфейсом «IWebBrowser2». Викликається метод Navigate з параметром з команди «http_start». В результаті COM-об'єкт «Internet Explorer (Ver 1.0)» реалізує перехід на зазначену сторінку. Далі за допомогою методу Busy шкідлива програма очікує, коли запит повністю відпрацює.
Рис. 12-1 Створення COM-об'єкта
Рис. 12-2 Покажчик на CLSID
Рис. 12-3 Покажчик на ID інтерфейсу
Рис. 13 Виклик методу Navigate
Рис. 14 Виклик методу Busy
Таким чином, повністю емулюється візит на сторінку звичайного користувача. Різниця лише в тому, що, на відміну від користувача, описувана шкідлива програма робить безліч заходів на один і той же адреса був призначений додатковий короткий проміжок часу. Навіть якщо використовується шлюз з перенаправленням, http-запит перенаправляється на захищається сервер з інтернет-ресурсами, і на цей сервер створюється навантаження.
базові команди
Крім завантаження плагінів і виконання команд, пов'язаних з цими плагінами, Black Energy 2 «розуміє» кілька загальних команд, які можуть виходити від центру управління:
rexec - завантажити з інтернету вказаний файл і запустити його;
lexec - запустити вказаний файл, який знаходиться на зараженому комп'ютері;
die - припинити виконання бота;
upd - оновити бот;
setfreq - встановити частоту звернення до центру управління;
http - послати http-запит на вказану статтю в інтернеті.
висновок
Спочатку Black Energy створювався як бот для організації DDoS-атак, але з появою в другій версії плагінів функціонал цього шкідливого сімейства практично не обмежений (правда зловмисники поки використовують його, в основному, як засіб для DDoS). Можна встановити плагін, наприклад, для розсилки спаму, перехоплення даних користувача, організації проксі-сервера і т.д., і т.п. Команда upd дозволяє оновлювати бот, наприклад, по-новому зашифрованою версією. Регулярне оновлення дає боту можливість довгий час ховатися від ряду антивірусних програм, які можуть бути встановлені на зараженому комп'ютері. Потенціал цього шкідливого інструменту досить високий, що, безумовно, є великою небезпекою. Благо в Мережі відсутні так звані публічні версії білдерів для збірки ботів Black Energy 2, тому різні варіації цієї шкідливої програми з'являються не в таких кількостях, як, наприклад, того ж ZeuS або першого Black Energy. Але, судячи за наявними у нас даними, у зловмисників побудовані великі ботнети на платформі Black Energy 2, які вже проявили себе в DDoS-атаках.
Яким чином господарі вирішать використовувати свої ботнети надалі, заздалегідь не вгадаєш. Для вирусописатели нескладно створити плагін і завантажити його на заражені комп'ютери користувачів. При цьому код плагіна проявиться лише в пам'яті зараженого комп'ютера, в інших місцях - при пересиланні даних чи, при зберіганні чи на жорсткому диску - шкідливі модулі будуть зашифровані. До того ж самі по собі плагіни для Black Energy 2 виконуваними файлами «.exe» не є. Модулі завантажуються тільки на заражену машину, відповідно, поширюватися розрахованими на масові зараження методами не будуть і можуть довгий час не потрапляти на очі антивірусним компаніям. Але саме плагіни в кінцевому підсумку виконують задум зловмисника - ті шкідливі дії, заради яких і були заражені Black Energy 2 комп'ютери користувачів. Знати їх необхідно! Для цього в нашій Лабораторії і організований моніторинг підвантажуваних плагінів для Black Energy 2, так що тенденції використання цього зловреда не повинні від нас вислизнути. Будемо тримати в курсі і вас.
(Автор: Дмитро Тараканов , Експерт «Лабораторії Касперського»)
Чорний DDoS
Чимало існує ботів, за допомогою яких зловмисники організовують DDoS-атаки на інтернет-сервера. Одним з найпопулярніших таких інструментів є Black Energy. На даний момент «Лабораторією Касперського» виявлено та детектується більше 4000 варіацій цієї шкідливої програми. У середині 2008-го року вирусописатели піддали первинну версію бота істотної зміни. З'явився так званий Black Energy 2 ( «Лабораторія Касперського» класифікує його як Backdoor.Win32.Blakken). Про нього і піде мова в цій статті.
Крок за кроком: складові бота
Автор реалізував в боті кілька основних завдань: приховування коду програми від антивірусних продуктів, зараження системних процесів і, нарешті, гнучкий механізм реалізації різної шкідливої активності на зараженій машині по команді з центру управління ботнетом. За виконання кожного завдання відповідають різні складові шкідливої програми.
рис.1 Етапи роботи Black Energy 2
Захисна оболонка
Як і більшість шкідливих програм, Black Energy 2 має якусь захисну оболонку, що приховує шкідливу начинку від антивірусів: шифрування, архівування коду, також можуть бути використані анти-емуляціонние методи.
Після запуску на комп'ютері користувача exe-файлу Black Energy 2 шкідливий додаток виділяє віртуальну пам'ять, копіює в неї код дешіфровщіка і передає на нього управління.
В результаті виконання коду дешіфровщіка в пам'яті з'являється код з функцією Дроппер, виконання якого призводить до створення в системному каталозі «<WINDIR> system32drivers» драйвера-дешіфровщіка з випадковим ім'ям, наприклад, «EIBCRDZB.SYS». Після чого створюється і запускається пов'язана з цим драйвером служба, також з випадковим ім'ям:
Рис. 2 Запуск шкідливого драйвера-дешіфровщіка
Драйвер, як і початкове exe-додаток, що ініціює процес зараження комп'ютера, за своєю суттю є «обгорткою», в якій заховано найцікавіше.
Інфектор
У коді драйвера-дешіфровщіка присутній блок зашифрованих і запакованих даних:
Рис. 3 Зашифровані дані всередині драйвера-дешіфровщіка
Такий блок даних має певну структуру:
Рис. 4 Структура зашифрованих даних
За допомогою ключа з цього блоку будується інший ключ довжиною 100h байт, який використовується для розшифровки архіву. Алгоритм шифрування добре відомий - це RC4. Якщо розмір архіву збігається з розміром даних, то архівація даних відсутній, в іншому випадку розшифрований архів піддається розпакуванню.
Розшифровані дані представляють собою драйвер-інфектор, в функціонал якого закладено впровадження бібліотеки dll в процес користувацького режиму svchost.exe. Щоб запустити драйвер-інфектор, драйвер-дешифровщик виділяє під нього пам'ять, копіює туди розшифрований код, налаштовує під поточне адресний простір і передає управління. Шкідлива бібліотека dll зберігається в в секції «.bdata» драйвера-інфектора. Цей блок даних також має вищезгадану структуру. Драйвером-інфектором знаходиться процес svchost.exe, в його адресному просторі виділяється пам'ять, в неї копіюється шкідлива dll, яка налаштовується під адреси виділеної пам'яті. Код впровадженої бібліотеки з режиму ядра запускається в такий спосіб:
Рис. 5 Запуск впровадженої бібліотеки в svchost.exe
Тут використовується обробка черги APC. Спочатку инициализируется APC з адресою функції DllEntry впровадженої бібліотеки, потім за допомогою KeInsertQueueApc APC ставиться в чергу. Коли svchost.exe буде готовий до обробки APC черзі (що відбувається практично відразу ж), в його контексті запуститься потік з адреси DllEntry.
впроваджувана dll
Впроваджена в svchost.exe бібліотека dll є основним керуючим ланкою по організації DDoS-атаки з зараженого комп'ютера. Також як і драйвер-інфектор, бібліотека має секцію .bdata, в якій зберігається блок зашифрованих даних, що має вже відому нам структуру. Ці дані представляють собою xml-документ, в якому визначені необхідні початкові налаштування бота. Такий документ може виглядати, наприклад, ось так:
Рис. 6 Початкові налаштування бота
Найважливіша інформація - це, звичайно, адреса центру управління ботнетом. В даному випадку для надійності таких адрес вказано два: якщо буде закритий один, і бот до нього не «достукаєтеся», він зможе спробувати встановити зв'язок з господарем по резервному адресою.
На адресу центру управління бот посилає заздалегідь підготовлений http-запит, який представляє собою рядок, що містить ідентифікаційні дані зараженої машини. Ось як може виглядати такий рядок:
id = xCOMPUTERNAME_62CF4DEF & ln = ru & cn = RU & nt = 2600 & bid = 3
Параметр id, ідентифікатор зараженої машини, включає в себе ім'я комп'ютера і серійний номер жорсткого диска, на якому розміщений диск C :. Далі вказуються дані про операційну систему: мова системи, країна, в якій встановлена система, і номер складання системи. В кінці додається ідентифікатор збірки бота (останнє поле «build_id» в xml-документі початкових налаштувань).
Певний вид рядка запиту служить підтвердженням того, що запит робить саме бот. Крім того, для центру управління свого роду паролем може служити також user-agent http-запиту.
Якщо центр управління приймає запит, то у відповідь він посилає файл конфігурації бота також у вигляді зашифрованого xml-документа. Шифрування використовується те ж саме, що і в разі шифрування даних в драйвері і dll - RC4. Ключем є ідентифікатор зараженої машини (параметр id рядка запиту, в наведеному вище прикладі - «xCOMPUTERNAME_62CF4DEF»).
Давайте подивимося на приклад таких інструкцій:
Рис. 7 Файл конфігурації: інструкції з центру управління
Розділ <plugins> повідомляє боту, які модулі є на сервері господаря для організації DDoS-атаки. Якщо у бота ще немає такого модуля, або на сервері новішої версії, то бот посилає запит серверу на скачування плагіна, наприклад:
getp = http & id = xCOMPUTERNAME_62CF4DEF & ln = ru & cn = RU & nt = 2600 & bid = 3
Плагін являє собою бібліотеку dll. Передається вона боту в зашифрованому вигляді. Якщо для шифрування використовується ключ, відмінний від значення параметра id, то він вказується у файлі конфігурації в поле <key>. Після отримання та розшифровки бібліотеки-плагіна, вона розміщується в виділену під неї пам'ять, після чого готова приступити до DDoS-атаці, як тільки прийде відповідна команда.
Модулі завантажуються на заражений комп'ютер регулярно: як тільки вирусописатели поліпшить метод атаки, бот Black Energy 2 довантажити новішу версію плагіна.
Завантажені таким чином плагіни зберігаються на жорсткому диску зараженого комп'ютера в системному каталозі «<WINDIR> system32drivers» під ім'ям «str.sys». Вміст файлу «str.sys» шифрується, ключем є значення параметра id. До шифрування дані, що зберігаються в «str.sys», виглядають так:
Рис. 8 незашифрованому вміст файлу str.sys: сховище плагінів
У кожному плагін є продукція, що експортується функція DispatchCommand, яку викликає основний керуючий модуль - впроваджена в процес svchost.exe бібліотека dll. Функції DispatchCommand передається параметр - одна з команд розділу в файлі конфігурації бота. Після чого плагін виконує дану команду.
Основні плагіни
Основними плагінами Black Energy 2 є ddos, syn і http. Розповімо трохи про кожен з них.
плагін ddos
На вхід плагіну ddos надходить адреса атакується сервера, протокол і порт. Відповідно, не започатковано масові з'єднання з сервером на певний порт за певним протоколу. Після встановлення з'єднання на сервер надсилається заповнений випадковим чином пакет даних. Підтримуються протоколи tcp, udp, icmp і http.
Ось приклад реалізації виконання команди «ddos_start udp <інтернет-адреса> 80»:
Рис. 9 Створення сокета, протокол UDP
Рис. 10-1 Відправка даних: sendto і стек
Рис. 10-2 Відправка даних - куди. pTo: ip-адреса і порт
Рис. 10-3 Відправка даних - що. Data: випадковий набір байт
За протоколом http плагіном ddos за допомогою функцій socket, connect і send на сервер надсилається GET-запит.
плагін syn
На відміну від інших плагінів, згаданих у цій статті, в плагін syn присутній мережевий драйвер. При виконанні функції DllEntry плагіна цей драйвер встановлюється в системний каталог «system32drivers» під ім'ям «synsenddrv.sys». Відправку мережевих пакетів він бере на себе. Функція DispatchCommand, як уже можна здогадатися, чекає від керуючої бібліотеки параметр такого виду: «syn_start» або «syn_stop». У разі отримання першого параметра плагін починає атаку, якщо отриманий другий - припиняє. Атака в даному випадку є множинні запити серверу на установку з'єднання, відкриття мережевий сесії, так званий «обмін рукостисканнями»:
Рис. 11 SYN-атака: SYN-> ACK-> RST
Природно, коли такі множинні запити виходять від великої кількості заражених комп'ютерів, це створює відчутну навантаження на сервер.
плагін http
Проти описаних вище методів DDoS-атак часто застосовується редирект: сервер з інтернет-ресурсами ховається за шлюз, який видно ззовні, а шлюз перенаправляє запити на сервер з ресурсами. Від DDoS-атак шлюз захищається всілякими способами, і «звалити» його не так-то просто. Відповідно, плагінами ddos і syn по IP-адресою може бути атакований тільки шлюз, так як ніякого функціоналу розпізнавання перенаправлення трафіку у них немає, і мережевий «флуд», який вони генерують, до сервера з інтернет-ресурсами просто не доходить. На цей випадок вірусопісателямі і був розроблений плагін http.
Отримавши команду «http_start <url> <port>», плагін http створює COM-об'єкт «Internet Explorer (Ver 1.0)» з інтерфейсом «IWebBrowser2». Викликається метод Navigate з параметром з команди «http_start». В результаті COM-об'єкт «Internet Explorer (Ver 1.0)» реалізує перехід на зазначену сторінку. Далі за допомогою методу Busy шкідлива програма очікує, коли запит повністю відпрацює.
Рис. 12-1 Створення COM-об'єкта
Рис. 12-2 Покажчик на CLSID
Рис. 12-3 Покажчик на ID інтерфейсу
Рис. 13 Виклик методу Navigate
Рис. 14 Виклик методу Busy
Таким чином, повністю емулюється візит на сторінку звичайного користувача. Різниця лише в тому, що, на відміну від користувача, описувана шкідлива програма робить безліч заходів на один і той же адреса був призначений додатковий короткий проміжок часу. Навіть якщо використовується шлюз з перенаправленням, http-запит перенаправляється на захищається сервер з інтернет-ресурсами, і на цей сервер створюється навантаження.
базові команди
Крім завантаження плагінів і виконання команд, пов'язаних з цими плагінами, Black Energy 2 «розуміє» кілька загальних команд, які можуть виходити від центру управління:
rexec - завантажити з інтернету вказаний файл і запустити його;
lexec - запустити вказаний файл, який знаходиться на зараженому комп'ютері;
die - припинити виконання бота;
upd - оновити бот;
setfreq - встановити частоту звернення до центру управління;
http - послати http-запит на вказану статтю в інтернеті.
висновок
Спочатку Black Energy створювався як бот для організації DDoS-атак, але з появою в другій версії плагінів функціонал цього шкідливого сімейства практично не обмежений (правда зловмисники поки використовують його, в основному, як засіб для DDoS). Можна встановити плагін, наприклад, для розсилки спаму, перехоплення даних користувача, організації проксі-сервера і т.д., і т.п. Команда upd дозволяє оновлювати бот, наприклад, по-новому зашифрованою версією. Регулярне оновлення дає боту можливість довгий час ховатися від ряду антивірусних програм, які можуть бути встановлені на зараженому комп'ютері. Потенціал цього шкідливого інструменту досить високий, що, безумовно, є великою небезпекою. Благо в Мережі відсутні так звані публічні версії білдерів для збірки ботів Black Energy 2, тому різні варіації цієї шкідливої програми з'являються не в таких кількостях, як, наприклад, того ж ZeuS або першого Black Energy. Але, судячи за наявними у нас даними, у зловмисників побудовані великі ботнети на платформі Black Energy 2, які вже проявили себе в DDoS-атаках.
Яким чином господарі вирішать використовувати свої ботнети надалі, заздалегідь не вгадаєш. Для вирусописатели нескладно створити плагін і завантажити його на заражені комп'ютери користувачів. При цьому код плагіна проявиться лише в пам'яті зараженого комп'ютера, в інших місцях - при пересиланні даних чи, при зберіганні чи на жорсткому диску - шкідливі модулі будуть зашифровані. До того ж самі по собі плагіни для Black Energy 2 виконуваними файлами «.exe» не є. Модулі завантажуються тільки на заражену машину, відповідно, поширюватися розрахованими на масові зараження методами не будуть і можуть довгий час не потрапляти на очі антивірусним компаніям. Але саме плагіни в кінцевому підсумку виконують задум зловмисника - ті шкідливі дії, заради яких і були заражені Black Energy 2 комп'ютери користувачів. Знати їх необхідно! Для цього в нашій Лабораторії і організований моніторинг підвантажуваних плагінів для Black Energy 2, так що тенденції використання цього зловреда не повинні від нас вислизнути. Будемо тримати в курсі і вас.
(Автор: Дмитро Тараканов , Експерт «Лабораторії Касперського»)
Чорний DDoS
Чимало існує ботів, за допомогою яких зловмисники організовують DDoS-атаки на інтернет-сервера. Одним з найпопулярніших таких інструментів є Black Energy. На даний момент «Лабораторією Касперського» виявлено та детектується більше 4000 варіацій цієї шкідливої програми. У середині 2008-го року вирусописатели піддали первинну версію бота істотної зміни. З'явився так званий Black Energy 2 ( «Лабораторія Касперського» класифікує його як Backdoor.Win32.Blakken). Про нього і піде мова в цій статті.
Крок за кроком: складові бота
Автор реалізував в боті кілька основних завдань: приховування коду програми від антивірусних продуктів, зараження системних процесів і, нарешті, гнучкий механізм реалізації різної шкідливої активності на зараженій машині по команді з центру управління ботнетом. За виконання кожного завдання відповідають різні складові шкідливої програми.
рис.1 Етапи роботи Black Energy 2
Захисна оболонка
Як і більшість шкідливих програм, Black Energy 2 має якусь захисну оболонку, що приховує шкідливу начинку від антивірусів: шифрування, архівування коду, також можуть бути використані анти-емуляціонние методи.
Після запуску на комп'ютері користувача exe-файлу Black Energy 2 шкідливий додаток виділяє віртуальну пам'ять, копіює в неї код дешіфровщіка і передає на нього управління.
В результаті виконання коду дешіфровщіка в пам'яті з'являється код з функцією Дроппер, виконання якого призводить до створення в системному каталозі «<WINDIR> system32drivers» драйвера-дешіфровщіка з випадковим ім'ям, наприклад, «EIBCRDZB.SYS». Після чого створюється і запускається пов'язана з цим драйвером служба, також з випадковим ім'ям:
Рис. 2 Запуск шкідливого драйвера-дешіфровщіка
Драйвер, як і початкове exe-додаток, що ініціює процес зараження комп'ютера, за своєю суттю є «обгорткою», в якій заховано найцікавіше.
Інфектор
У коді драйвера-дешіфровщіка присутній блок зашифрованих і запакованих даних:
Рис. 3 Зашифровані дані всередині драйвера-дешіфровщіка
Такий блок даних має певну структуру:
Рис. 4 Структура зашифрованих даних
За допомогою ключа з цього блоку будується інший ключ довжиною 100h байт, який використовується для розшифровки архіву. Алгоритм шифрування добре відомий - це RC4. Якщо розмір архіву збігається з розміром даних, то архівація даних відсутній, в іншому випадку розшифрований архів піддається розпакуванню.
Розшифровані дані представляють собою драйвер-інфектор, в функціонал якого закладено впровадження бібліотеки dll в процес користувацького режиму svchost.exe. Щоб запустити драйвер-інфектор, драйвер-дешифровщик виділяє під нього пам'ять, копіює туди розшифрований код, налаштовує під поточне адресний простір і передає управління. Шкідлива бібліотека dll зберігається в в секції «.bdata» драйвера-інфектора. Цей блок даних також має вищезгадану структуру. Драйвером-інфектором знаходиться процес svchost.exe, в його адресному просторі виділяється пам'ять, в неї копіюється шкідлива dll, яка налаштовується під адреси виділеної пам'яті. Код впровадженої бібліотеки з режиму ядра запускається в такий спосіб:
Рис. 5 Запуск впровадженої бібліотеки в svchost.exe
Тут використовується обробка черги APC. Спочатку инициализируется APC з адресою функції DllEntry впровадженої бібліотеки, потім за допомогою KeInsertQueueApc APC ставиться в чергу. Коли svchost.exe буде готовий до обробки APC черзі (що відбувається практично відразу ж), в його контексті запуститься потік з адреси DllEntry.
впроваджувана dll
Впроваджена в svchost.exe бібліотека dll є основним керуючим ланкою по організації DDoS-атаки з зараженого комп'ютера. Також як і драйвер-інфектор, бібліотека має секцію .bdata, в якій зберігається блок зашифрованих даних, що має вже відому нам структуру. Ці дані представляють собою xml-документ, в якому визначені необхідні початкові налаштування бота. Такий документ може виглядати, наприклад, ось так:
Рис. 6 Початкові налаштування бота
Найважливіша інформація - це, звичайно, адреса центру управління ботнетом. В даному випадку для надійності таких адрес вказано два: якщо буде закритий один, і бот до нього не «достукаєтеся», він зможе спробувати встановити зв'язок з господарем по резервному адресою.
На адресу центру управління бот посилає заздалегідь підготовлений http-запит, який представляє собою рядок, що містить ідентифікаційні дані зараженої машини. Ось як може виглядати такий рядок:
id = xCOMPUTERNAME_62CF4DEF & ln = ru & cn = RU & nt = 2600 & bid = 3
Параметр id, ідентифікатор зараженої машини, включає в себе ім'я комп'ютера і серійний номер жорсткого диска, на якому розміщений диск C :. Далі вказуються дані про операційну систему: мова системи, країна, в якій встановлена система, і номер складання системи. В кінці додається ідентифікатор збірки бота (останнє поле «build_id» в xml-документі початкових налаштувань).
Певний вид рядка запиту служить підтвердженням того, що запит робить саме бот. Крім того, для центру управління свого роду паролем може служити також user-agent http-запиту.
Якщо центр управління приймає запит, то у відповідь він посилає файл конфігурації бота також у вигляді зашифрованого xml-документа. Шифрування використовується те ж саме, що і в разі шифрування даних в драйвері і dll - RC4. Ключем є ідентифікатор зараженої машини (параметр id рядка запиту, в наведеному вище прикладі - «xCOMPUTERNAME_62CF4DEF»).
Давайте подивимося на приклад таких інструкцій:
Рис. 7 Файл конфігурації: інструкції з центру управління
Розділ <plugins> повідомляє боту, які модулі є на сервері господаря для організації DDoS-атаки. Якщо у бота ще немає такого модуля, або на сервері новішої версії, то бот посилає запит серверу на скачування плагіна, наприклад:
getp = http & id = xCOMPUTERNAME_62CF4DEF & ln = ru & cn = RU & nt = 2600 & bid = 3
Плагін являє собою бібліотеку dll. Передається вона боту в зашифрованому вигляді. Якщо для шифрування використовується ключ, відмінний від значення параметра id, то він вказується у файлі конфігурації в поле <key>. Після отримання та розшифровки бібліотеки-плагіна, вона розміщується в виділену під неї пам'ять, після чого готова приступити до DDoS-атаці, як тільки прийде відповідна команда.
Модулі завантажуються на заражений комп'ютер регулярно: як тільки вирусописатели поліпшить метод атаки, бот Black Energy 2 довантажити новішу версію плагіна.
Завантажені таким чином плагіни зберігаються на жорсткому диску зараженого комп'ютера в системному каталозі «<WINDIR> system32drivers» під ім'ям «str.sys». Вміст файлу «str.sys» шифрується, ключем є значення параметра id. До шифрування дані, що зберігаються в «str.sys», виглядають так:
Рис. 8 незашифрованому вміст файлу str.sys: сховище плагінів
У кожному плагін є продукція, що експортується функція DispatchCommand, яку викликає основний керуючий модуль - впроваджена в процес svchost.exe бібліотека dll. Функції DispatchCommand передається параметр - одна з команд розділу в файлі конфігурації бота. Після чого плагін виконує дану команду.
Основні плагіни
Основними плагінами Black Energy 2 є ddos, syn і http. Розповімо трохи про кожен з них.
плагін ddos
На вхід плагіну ddos надходить адреса атакується сервера, протокол і порт. Відповідно, не започатковано масові з'єднання з сервером на певний порт за певним протоколу. Після встановлення з'єднання на сервер надсилається заповнений випадковим чином пакет даних. Підтримуються протоколи tcp, udp, icmp і http.
Ось приклад реалізації виконання команди «ddos_start udp <інтернет-адреса> 80»:
Рис. 9 Створення сокета, протокол UDP
Рис. 10-1 Відправка даних: sendto і стек
Рис. 10-2 Відправка даних - куди. pTo: ip-адреса і порт
Рис. 10-3 Відправка даних - що. Data: випадковий набір байт
За протоколом http плагіном ddos за допомогою функцій socket, connect і send на сервер надсилається GET-запит.
плагін syn
На відміну від інших плагінів, згаданих у цій статті, в плагін syn присутній мережевий драйвер. При виконанні функції DllEntry плагіна цей драйвер встановлюється в системний каталог «system32drivers» під ім'ям «synsenddrv.sys». Відправку мережевих пакетів він бере на себе. Функція DispatchCommand, як уже можна здогадатися, чекає від керуючої бібліотеки параметр такого виду: «syn_start» або «syn_stop». У разі отримання першого параметра плагін починає атаку, якщо отриманий другий - припиняє. Атака в даному випадку є множинні запити серверу на установку з'єднання, відкриття мережевий сесії, так званий «обмін рукостисканнями»:
Рис. 11 SYN-атака: SYN-> ACK-> RST
Природно, коли такі множинні запити виходять від великої кількості заражених комп'ютерів, це створює відчутну навантаження на сервер.
плагін http
Проти описаних вище методів DDoS-атак часто застосовується редирект: сервер з інтернет-ресурсами ховається за шлюз, який видно ззовні, а шлюз перенаправляє запити на сервер з ресурсами. Від DDoS-атак шлюз захищається всілякими способами, і «звалити» його не так-то просто. Відповідно, плагінами ddos і syn по IP-адресою може бути атакований тільки шлюз, так як ніякого функціоналу розпізнавання перенаправлення трафіку у них немає, і мережевий «флуд», який вони генерують, до сервера з інтернет-ресурсами просто не доходить. На цей випадок вірусопісателямі і був розроблений плагін http.
Отримавши команду «http_start <url> <port>», плагін http створює COM-об'єкт «Internet Explorer (Ver 1.0)» з інтерфейсом «IWebBrowser2». Викликається метод Navigate з параметром з команди «http_start». В результаті COM-об'єкт «Internet Explorer (Ver 1.0)» реалізує перехід на зазначену сторінку. Далі за допомогою методу Busy шкідлива програма очікує, коли запит повністю відпрацює.
Рис. 12-1 Створення COM-об'єкта
Рис. 12-2 Покажчик на CLSID
Рис. 12-3 Покажчик на ID інтерфейсу
Рис. 13 Виклик методу Navigate
Рис. 14 Виклик методу Busy
Таким чином, повністю емулюється візит на сторінку звичайного користувача. Різниця лише в тому, що, на відміну від користувача, описувана шкідлива програма робить безліч заходів на один і той же адреса був призначений додатковий короткий проміжок часу. Навіть якщо використовується шлюз з перенаправленням, http-запит перенаправляється на захищається сервер з інтернет-ресурсами, і на цей сервер створюється навантаження.
базові команди
Крім завантаження плагінів і виконання команд, пов'язаних з цими плагінами, Black Energy 2 «розуміє» кілька загальних команд, які можуть виходити від центру управління:
rexec - завантажити з інтернету вказаний файл і запустити його;
lexec - запустити вказаний файл, який знаходиться на зараженому комп'ютері;
die - припинити виконання бота;
upd - оновити бот;
setfreq - встановити частоту звернення до центру управління;
http - послати http-запит на вказану статтю в інтернеті.
висновок
Спочатку Black Energy створювався як бот для організації DDoS-атак, але з появою в другій версії плагінів функціонал цього шкідливого сімейства практично не обмежений (правда зловмисники поки використовують його, в основному, як засіб для DDoS). Можна встановити плагін, наприклад, для розсилки спаму, перехоплення даних користувача, організації проксі-сервера і т.д., і т.п. Команда upd дозволяє оновлювати бот, наприклад, по-новому зашифрованою версією. Регулярне оновлення дає боту можливість довгий час ховатися від ряду антивірусних програм, які можуть бути встановлені на зараженому комп'ютері. Потенціал цього шкідливого інструменту досить високий, що, безумовно, є великою небезпекою. Благо в Мережі відсутні так звані публічні версії білдерів для збірки ботів Black Energy 2, тому різні варіації цієї шкідливої програми з'являються не в таких кількостях, як, наприклад, того ж ZeuS або першого Black Energy. Але, судячи за наявними у нас даними, у зловмисників побудовані великі ботнети на платформі Black Energy 2, які вже проявили себе в DDoS-атаках.
Яким чином господарі вирішать використовувати свої ботнети надалі, заздалегідь не вгадаєш. Для вирусописатели нескладно створити плагін і завантажити його на заражені комп'ютери користувачів. При цьому код плагіна проявиться лише в пам'яті зараженого комп'ютера, в інших місцях - при пересиланні даних чи, при зберіганні чи на жорсткому диску - шкідливі модулі будуть зашифровані. До того ж самі по собі плагіни для Black Energy 2 виконуваними файлами «.exe» не є. Модулі завантажуються тільки на заражену машину, відповідно, поширюватися розрахованими на масові зараження методами не будуть і можуть довгий час не потрапляти на очі антивірусним компаніям. Але саме плагіни в кінцевому підсумку виконують задум зловмисника - ті шкідливі дії, заради яких і були заражені Black Energy 2 комп'ютери користувачів. Знати їх необхідно! Для цього в нашій Лабораторії і організований моніторинг підвантажуваних плагінів для Black Energy 2, так що тенденції використання цього зловреда не повинні від нас вислизнути. Будемо тримати в курсі і вас.
(Автор: Дмитро Тараканов , Експерт «Лабораторії Касперського»)