<
  • Главная
Статьи

еволюція руткітів

  1. вступ
  2. UNIX руткіти
  3. Stealth-віруси
  4. Родоначальники і популяризатори
  5. Перші Windows-руткіти
  6. Вихід руткітів в маси
  7. Руткіт-скандали
  8. Антируткіт-істерія
  9. Незалежні антіруткит-утиліти
  10. Концепт-руткіти
  11. останні тенденції
  12. міфічний руткит
  13. Руткіти для альтернативних ОС
  14. «Недоруткіти»
  15. Так що ж таке руткіти?
  16. Висновок
  17. Примітки

Ця стаття - чергова в циклі статей, присвячених еволюції явищ в світі вірусів і антивірусів. Еволюція - це, з одного боку, хронологія явищ, а з іншого - логіка змін. У кожній статті циклу я дотримуюся завдання висвітлити той чи інший клас явищ антивірусної індустрії логічно і хронологічно і досить просто, щоб зацікавити широке коло читачів.

вступ

Моє перше знайомство з руткитами відбулося в 2004 році. Будучи зовсім недосвідченим вірусним аналітиком і маючи лише невиразні уявлення про руткіти для UNIX, я одного разу натрапила на виконуваний файл для Windows, який після запуску начебто ніяк не виявляв себе. Але щось все-таки привернуло мою увагу, я стала дивитися уважніше і ... виявила в пам'яті комп'ютера завантажений модуль, відсутній на диску. (Очевидно, той руткит містив помилки, тому мені пощастило випадково помітити його неозброєним поглядом - зараз для виявлення руткита може виявитися недостатньо кількох спеціально розроблених утиліт).

Це був далеко не перший Windows-руткіт. Але для мене він відкрив якийсь новий світ, в якому програма могла грати з операційною системою, порушувати її правила і чудесним чином зникати зі списку процесів або файлів. Тоді я витратила багато часу на вивчення драйвера, за допомогою якого програма приховувала свою присутність в системі. Це був цільової руткит - написаний для конкретної системи і впроваджуваний точково - і досить складний для тих часів (Trojan-Dropper.Win32.SmallProxy).

Мова в цій статті піде переважно про Windows-руткіти - їх найбільше, вони активно розвиваються, становлять найбільшу загрозу для користувачів і найбільший інтерес для вірусів в силу популярності Windows. Руткитами вважатимемо програми, що використовують технології приховування системних об'єктів (файлів, процесів, драйверів, сервісів, ключів реєстру, відкритих портів, з'єднань та ін.) За допомогою обходу механізмів цієї операційної системи.

UNIX руткіти

Говорячи про руткіти, неодмінно згадують етимологію терміна rootkit: "root" - привілейований адміністратор UNIX-системи, "kit" - набір інструментів, rootkit - набір утиліт для забезпечення «привілейованого» доступу зловмисника до системи непомітно для справжнього адміністратора. Такі утиліти для UNIX з'явилися на початку 90-х рр. і існують досі, але практично не розвиваються.

Однак часто забувають про те, що у Windows-руткітів був ближчий за функціоналом попередник, ніж UNIX-руткіти - а саме, стелс-віруси для DOS.

Stealth-віруси

Стелс-віруси з'явилися чи не раніше, ніж UNIX-руткіти - близько 1990 У відміну від UNIX-руткітів, основне завдання яких - впустити зловмисника в систему і маскувати його дії, стелс-віруси DOS, заражаючи файли, просто приховували себе від користувача і антивірусних програм. Те ж робить і сучасний Windows-руткіт. Використовувані стелс-вірусами і Windows-руткітом технології також багато в чому схожі. Наприклад, перехоплення системних викликів і маскування шкідливого коду за допомогою видачі неправдивої інформації про вміст диска або пам'яті - одна з технік Windows-руткітів і переважна техніка стелс-вірусів.

Windows-руткіти з'явилися десятьма роками пізніше стелс-вірусів, і те, що їх назвали саме руткитами, а не стелс-вірусами, що було б логічніше, - заслуга виключно Грега Хогланда (Greg Hoglund). Він був одним з перших, хто реалізував з'являються тут і там техніки обходу системних механізмів захисту Windows в формі утиліти, націленої на приховування інформації в системі. Результати його роботи були опубліковані в електронному журналі PHRACK . Утиліта, названа автором NT Rootkit, згодом була застосована в багатьох шкідливих програмах і по сей день надихає дослідників і руткітостроітелей.

Родоначальники і популяризатори

Стаття Хогланда датована 1999 роком. У ній він спирається на дослідження ядра Windows, опубліковані роком раніше в форумах Usenet якимось програмістом з Шрі-Ланки .

Ще раніше, починаючи з 1995, гуру Windows-програмування Джефрі Ріхтер (Jeffrey Richter) у своїй знаменитій книзі «Advanced Windows» і четвертому її виданні «Programming Applications for Microsoft Windows» розкриває технології перехоплення системних викликів на рівні користувача [1] , Які будуть згодом використані в багатьох руткітів з точністю до наведеного в книзі вихідного коду.

Техніки перехоплення системних викликів на рівні ядра загальнодоступним розкриті в двох інших класичних книгах з програмування: С. Шрайбер «Недокументовані можливості Windows 2000», 2001 (Sven Schreiber Undocumented Windows 2000 secrets) і П. Дабак і ін. «Недокументовані можливості Windows NT», 1999 (P. Dabak et al Undocumented Windows NT).

Перші Windows-руткіти

Дослідження системних механізмів захисту Windows продовжилися, і слідом за NTRootkit було випущено ще кілька утиліт, що дозволяють приховувати об'єкти в операційній системі.

2000 р he4hook, проект російського програміста. Утиліта не несе в собі шкідливого функціоналу, але є інструментом для приховування файлів. Працює в режимі ядра. Що характерно, самим автором не позначається як руткіт.
2002 р Hacker Defender (він же HacDef). Це також лише інструмент, але вже більш потужний - за допомогою нього можна приховати будь-який файл, процес або ключ реєстру, параметри гнучко налаштовуються у файлі конфігурації. Працює переважно в режимі користувача.
2003 р Vanquish - інструмент, що дозволяє приховувати файли, директорії і ключі реєстру. Крім того, в ньому вже передбачена шкідлива функція - логгірованіе паролів. Працює в режимі користувача [2] .

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

2003 р Haxdoor (він же A-311 Death і в модифікованому варіанті Nuclear Grabber). Це вже не утиліта, а повноцінний бекдор, який використовує руткіт-технології для самомаскіровкі. Працює в режимі ядра.
2004 р FU - утиліта для приховування процесів. Реалізує принципово нову технологію, засновану на зміні самих системних структур, а не шляхів доступу до них.

Всі перераховані в цій міні-хронології руткіти є ключовими в історії Windows-руткітів. Особливо варто відзначити HacDef, Haxdoor і FU, широко розповсюджувалися in the wild [3] в зв'язці з шкідливими програмами.

Руткіти цього періоду (2000-2004) чітко вписуються в загальноприйняту, але застарілу класифікацію: руткит може функціонувати на рівні користувача (user level) або на рівні ядра (kernel level), на основі модифікації ланцюжка системних викликів (Execution Path Modification) або на основі прямого зміни системних даних (Direct Kernel Objects Manipulation). Ця класифікація багаторазово обговорювалася, тому приводити її я тут не буду; зацікавлені можуть знайти технічні подробиці в статтях моїх колег www.securitylab.ru ; http://z-oleg.com ; www.securityfocus.com

.

Вихід руткітів в маси

Паралельно з освоєнням технологій йшло вбудовування їх у шкідливі програми.
Самостійно реалізувати серйозну маскування в ті часи було складно, оскільки опублікованій документації на цю тему було ще мало. Та невелика ще кількість руткітів-шкідників можна було розділити на три види:

  • Троянці, що використовують для своєї маскування готову утиліту або бібліотеку. Як готових утиліт в основному використовувалися - дуже і дуже масово - Hacker Defender і FU.
  • Готові руткіти-шкідливий, які кожна людина могла завантажити або купити і злегка змінити в своїх цілях. Наприклад, Haxdoor. Так само як і HacDef, він був дуже популярний: восени 2005 р в бази Kaspersky Antivirus щодня додавали по кілька сигнатур нових модифікацій цього руткита.
  • Замовні розробки, призначені для точкового впровадження. Такі руткіти потрапляли в антивірусну лабораторію, як правило, з великих організацій, часто в результаті аналізу комп'ютерних систем клієнта на місці. Технологія розробки цих руткітів була на дуже високому рівні, а кількість - зникаюче мало.

В середині 2000-х близько 80% всіх руткітів доводилося на HacDef і Haxdoor.
Першими серед вже існуючих шкідливих програм, куди почали вбудовуватися руткит-технології, були багатофункціональні бекдори Rbot і SdBot. Це і зрозуміло - будь-який функціональний перевага комерційного троянця обертається вигодою для його господаря, тому власники бот-мереж були першими, хто підхопив нову технологію.

Трохи пізніше - близько 2006 року - руткит-технології почали вбудовувати в популярні e-mail-черви (Bagle) і троянці-шпигуни (Goldun), ще пізніше з'явився Mailbot (Rustock), який опинився серйозним викликом для антивірусних продуктів.
На той час як використання руткит-технологій в троянця стало звичайним явищем, існувало вже кілька антіруткит-утиліт - рівновагу було відновлено.

Руткіт-скандали

У 2005 році руткит-технології стали настільки широко застосовуватися у шкідливих програмах, що привернули увагу великих сек'юріті-вендорів і ЗМІ. Фахівці з Microsoft підняли питання про руткит-загрози на конференції RSA Security.

Один з показників того, що до цього часу історія руткит-технологій досягла піку, - серія скандалів 2006 року, пов'язаних з тим, що в комерційних продуктах використовувалися технології, аналогічні руткит-технологій.

  1. Виявилося, що встановлена ​​на деяких CD захист від копіювання Sony DRM ховає свої файли від користувача. Причому технологія була впроваджена таким чином, що створювала гарну лазівку для зловмисника: йому досить було перелічити будь-які свої файли певним чином, щоб вони автоматично опинилися під прикриттям захисту Sony DRM.
  2. У продукті Symantec була виявлена ​​схожа функція - він використовував папку, приховану від користувача. Цей випадок трохи більше смішний: «захищена корзина» документована Symantec, легко відключається, і ідея ховати в ній файли ненабагато більше цікава, ніж ідея ховати файли в глибині структури системних каталогів, куди ніхто ніколи не заглядає.
  3. Наступною жертвою тестів свіжонаписані антивірусних утиліт виявився продукт Kaspersky Antivirus . Виявилося, що продукт зберігає деяку інформацію в «стрім» файлів, тобто в прихованих від користувача ділянках файлової системи. Чим ця технологія може загрожувати користувачам, так і залишилося загадкою, але слово «руткіт» багатьох налякало.

Антируткіт-істерія

Інша сторона історії з руткитами - антіруткит-істерія. До середини 2006 року всі великі виробники антивірусів усвідомили необхідність реагувати на нову загрозу. Реагували по-різному. Одні допрацювали технології продуктів так, щоб отримувати доступ до прихованих об'єктів в процесі звичайного антивірусного сканування. Інші випускали окремі антіруткит-утиліти. Треті робили щось середнє - вбудовували окрему функцію антіруткит-сканування в інтерфейс антивірусного продукту. Ніхто з пізно прокинулися особливо не досяг успіху - все лише наздоганяли вже пішов поїзд.

У зв'язку з цією гонкою з великих антивірусних виробників варто відзначити хіба що F-Secure: їх антіруткит-утиліта була однією з перших після Rootkit Revealer від Sysinternals. Вона вміла шукати тільки приховані процеси, зате грунтувалася на proof-of-concept-технології.

Незалежні антіруткит-утиліти

Незалежні антіруткит-утиліти почали з'являтися раніше, близько 2005 року. На відміну від аналогічних проектів великих антивірусів, завдання яких - забезпечити безпеку користувача максимально прозоро для нього, завдання безкоштовних утиліт - максимально повно виявити приховану інформацію. Таким чином, вони в масі своїй більш професійні, більш потужні, і набагато більш чутливо реагують на зміну кон'юнктури.

Перші антіруткит-утиліти були націлені на виявлення якогось одного типу об'єктів - наприклад, прихованих файлів. Згодом антіруткіта стають все більш багатофункціональними, що використовують системний підхід. На сьогоднішній день найбільш корисні з утиліт загального призначення, як показує практика, - це GMER і Rootkit Unhooker . Вони дозволяють швидко і з усіх боків оцінити ситуацію в підозрілої системі, а при необхідності можна досліджувати її більш спеціалізованими інструментами.

На даний момент існує кілька десятків безкоштовних антіруткіта , Заснованих на декількох підходах до детектування руткітів (докладніше про підходи до детектування см. http://z-oleg.com
, www.securityfocus.com ). Одна з відносно нових тенденцій в руткітостроітельстве - використання технології апаратної віртуалізації, і старим технікам вона не під силу. В даний час повноцінних антіруткіта, які можуть детектувати руткіти, засновані на апаратній віртуалізації, немає. Незважаючи на те що і реальних руткітів такого типу немає (тільки концептуальні розробки, яким далеко до практичного втілення у шкідливі програми), вже ведуться розробки технологій їх детектування. Мені відомо два відкритих проекту, присвячених розробці антіруткіта на основі апаратної віртуалізації: російський North Security Labs і американський Hypervista Technologies. На сайті другого тільки теоретична інформація, а в першому випадку бета-версія продукту Hypersight Rootkit Detector доступна для скачування, хоча і знаходиться в зародковій стадії розвитку.

Концепт-руткіти

До 2006 року більшість руткітів вже більш-менш успішно виявлялися розплодилися на той час антіруткіта; бум руткітів пішов на спад. Але допитлива дослідницька думка продовжувала пошук нових недетектіруемих технік.

Найбільше ентузіазму викликала ідея використовувати апаратну віртуалізацію, вбудовану в нові процесори від Intel і AMD, для того щоб вирішити завдання перехоплення управління операційною системою. При такому перехопленні жодна антіруткит-утиліта, відома на сьогоднішній день, не може детектувати руткит. Протягом 2006 року було представлено три таких концепції: SubVirt (Pdf), BluePill (Pdf)
і Vitrio (Pdf). Зараз детектування цих руткітів вважається відкритою проблемою - але «в дикій природі» вони не зустрічаються.

Другий напрямок досліджень - завантажувальні руткіти. Вони вирішують все ту ж задачу тотального управління операційною системою, перехоплюючи її на стадії завантаження. Стара ідея записування коду в завантажувальний сектор диска, відома ще з часів DOS-вірусів, відродилася у вигляді концептуального руткита eEye Bootroot (Pdf) в 2005 році. Була ще одна схожа концепт-реалізація - Vbootkit (Pdf) (2007), яка позиціонувалася в першу чергу як дослідження актуального в той момент питання про безпеку MS Vista.

останні тенденції

Після тривалого затишшя (принципово нових руткітів не було) на початку цього року з'явилася нова шкідлива програма, що заражає завантажувальний сектор диска. У антивірусних базах різних виробників він іменується Sinowal, Mebroot, StealthMBR. Більшість антивірусів до сих пір не в змозі його вилікувати.

Цей руткит, більше відомий як «буткіт» в силу своєї «завантажувальної» специфіки, заснований на коді концептуальної розробки eEye Bootroot (трохи зміненому) і являє собою не стільки самостійну шкідливу програму, скільки інструмент для приховування будь-якого троянця. Що дозволяє припускати, що цей руткит поширюється (можливо, не безкоштовно) в певних колах і буде все ширше використовуватися в різних шкідливих програмах.

міфічний руткит

В кінці 2006 року на форумах, присвячених інформаційної безпеки, з'явилися чутки про існування якогось «невловимого руткита» - Rustock.C, продовжує лінійку спам-ботів сімейства Rustock. Через півтора року після появи обговорень цей руткит був виявлений фахівцями з копанні DrWeb, а фахівцями «Лабораторії Касперського» проведений аналіз схем його поширення. В історії з «Русток» до сих пір багато загадок - зокрема, неясний реальний масштаб загрози. Наявні дані дозволяють припускати, що цей масштаб невеликий. Ці ж дані дозволяють припускати, що справжня «дата народження» руткита - вересень 2007 р, а зовсім не кінець 2006 р

Але з упевненістю можна стверджувати, що міф про його «невловимості» - велике перебільшення. Ніяких надприродних технік, які роблять детектування неможливим, в Рутка немає. Він дійсно обходить існуючі засоби захисту - що, загалом, не так вже й складно зробити, якщо задатися такою метою, і що нерідко роблять більш пересічні шкідливі програми. Таким чином, Rustock.c виявляється рядовим зразком «передового ланки» шкідливих програм, «ідеалізованим» виключно за допомогою грамотно спланованої піар-кампанії.

Тобто Rustock.c - набагато більш цікаве явіще з точки зору інформаційних процесів в суспільстві, чем з точки зору технології. Незважаючі на ті что чуйні про его Існування, что розповсюджуваліся з кінця 2006 року, Ніколи и нічім НЕ були Підтверджені - смороду успешно підготувалі інтернет-спільнота до его з'явився. Зокрема, коли сам руткит БУВ Виявлення, спільнота зреагувало на него з перебільшенім ентузіазмом (тієї самий, невловімій!), Чи не встігнувші розібратіся у фактах. Rustock.c - не стільки знаменний руткит, скільки переконлива демонстрація нездатності людей критично оцінювати інформацію.

Історію коду і аналіз шляхів поширення цієї шкідливої ​​програми можна прочитати в нещодавно опублікованій статті моїх колег .

Руткіти для альтернативних ОС

Час від часу в антивірусну лабораторію потрапляє цільової руткит зразок Solaris для мало популярний Unix-ОС.
Іноді в великих організаціях за станом серверів просто не стежать: як налаштували один раз багато років тому, так вони і працюють. Буває, що в якийсь момент систему зламали і встановили в неї руткит - який виявляється випадково через неабияку кількість часу, - і багато мегабайти конфіденційних даних передані зловмисникам. Очевидно, що організації в такому випадку завдано серйозних фінансових збитків.

Для OS X (Macintosh) відомо кілька руткітів, і існує навіть антіруткит-утиліта (OS X Rootkit Hunter). Крім того, оскільки OS X - це UNIX-система, то деякі UNIX-руткіти можна модифікувати так, що вони будуть працювати в OS X. Але в цілому, зараз в області руткітів для Macintosh не спостерігається ні розвитку технологій, ні серйозних загроз .

Руткітів для малих ОС - Windows Mobile, Symbian і т.д. - наскільки мені відомо, не існує. Але для цих ОС і вірусів пишеться мало, і антивіруси використовуються рідко, тому застосовувати просунуті технології руткітів немає необхідності - і так ніхто не отслежіваетспісок процесів.

«Недоруткіти»

За межами описаної в цій статті «еволюції» залишилися деякі цікаві вірусні концепції, які не вписуються у визначення «руткіт» і більшістю фахівців руткитами не зважають. Якщо вважати, що руткит характеризується обходом механізмів захисту ОС і приховуванням своєї активності, то описані нижче зразки виявляються прикордонними по відношенню до руткитам.

По-перше, є шкідливі програми, які «чесно» ховаються в ОС - нічого в ній не змінюючи і не обходячи. Наприклад, шкідливі програми, тіло яких розміщується в «стрім» директорій або файлів. Інший приклад - програми, які використовують документовані системні функції для установки «пасток» на події.

По-друге, є програми, невидимість яких обумовлена ​​їх архітектурою - наприклад, черв'як CodeRed , Що не створює ні файлу на диску, ні самостійного процесу в пам'яті.

По-третє, є гарні техніки обману системи, що використовуються програмою не для приховування слідів своєї діяльності, а для закріплення в системі або для обходу антивіруса. Детальніше ці техніки описані в моїй статті , с.51
(англійською).

Так що ж таке руткіти?

Вищенаведені прикордонні випадки наводять на думку, що немає ніяких шкідливих «руткітів», а є лише якісь техніки - техніки обходу системних механізмів захисту і техніки приховування в системі. Як і будь-яка потужна технологія, вони можуть бути використані як на шкоду, так і на благо. Зокрема, звичайний підхід проактивних антіруткіта - боротися з руткитами їх же зброєю (перехоплення системних функцій і т.д.).

Будь-яка з таких технік в більшій чи меншій мірі вписується в поняття «руткіт», яке кожен сам визначає для себе, так чи інакше спираючись на думку більшості або на точку зору авторитетного меншини фахівців. Для чого потрібно це визначення? Для того щоб не потрапити в пастку слів, коли мова йде про таких прикордонних випадках, як згадане вище скандальне виявлення «руткітів» в комерційних продуктах. Замість того щоб робити поспішні висновки, злякавшись страшного слова «руткіт», варто розібратися, як саме реалізований механізм, оголошений кимось компрометуючих, і які саме загрози він в собі таїть в дійсності. Вельми показовим у цьому сенсі «Скандальний руткит» ; www.kaspersky.com , Виявлений в продукті Kaspersky Antivirus 7.0. Використовувана в продукті техніка, яку визнали компрометуючої, - розміщення службової інформації в «стрім» файлової системи, т. Е. В таких її ділянках, які недоступні при прямому спостереженні. Чи є в цій техніці обхід системних механізмів? ні; «Стрім» - це документована функція операційної системи. Ховається шкідлива активність? ні; ховається тільки службова небінарная інформація. Чи є ця техніка вразливістю - іншими словами, чи може зловмисник скористатися нею в своїх цілях? Ні, він може скористатися лише самими «Стрім» для приховування коду вірусу (що дійсно реалізовано в деяких шкідливих програмах) - але це вже вразливість ОС, а не комерційного продукту. Так і де ж тут руткит?

Ситуація з Sony DRM трохи інша. Використовувана в захисті техніка дійсно була вразливістю в тому сенсі, що дозволяла зловмисникові назвати свої шкідливі програми певним чином, внаслідок чого вони автоматично ставали невидимими. І шкідливі програми, які експлуатують цю уразливість, дійсно існують - правда, з'явилися вони вже після того, як інформація про цю уразливість була опублікована в Інтернеті.

Тимчасова лінійка руткит-подій
Тимчасова лінійка руткит-подій

Висновок

Руткіти в загальних рисах повторюють історію Spyware: виникнувши як самостійний клас шкідливих програм, вони викликали ажіотаж в мас-медіа, спровокували випуск великої кількості «антіутіліт» і пожвавлення в рядах виробників антивірусів - і на цей момент злилися із загальною масою шкідливих програм, ставши цілком повсякденним явищем. Однак проблема обходу системних механізмів захисту з метою маскування явно ще існує, що дозволяє очікувати появи нових загроз в цій області.

Примітки

[1] Рівень системних привілеїв, на якому за замовчуванням працює будь-який користувальницький додаток.

[2] Режим користувача - стандартний, знижений рівень привілеїв ОС; режим ядра - максимальний рівень привілеїв.

[3] У реальності, на комп'ютерах користувачів.

Так що ж таке руткіти?
Для чого потрібно це визначення?
Чи є в цій техніці обхід системних механізмів?
Ховається шкідлива активність?
Чи є ця техніка вразливістю - іншими словами, чи може зловмисник скористатися нею в своїх цілях?
Так і де ж тут руткит?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью