Статьи

Загроза з BIOS

  1. Про що цей документ Цей звіт - спроба ще раз підняти проблему механізмів безпеки, реалізованих в...
  2. 2. Попередні дослідження
  3. 3. Агент Computrace
  4. 4. Стандартне поведінку ПО Computrace
  5. Фаза 2: autochk.exe
  6. Фаза 3: rpcnetp.exe
  7. Фаза 4: rpcnet.exe
  8. 5. Випадки несанкціонованого активації
  9. система A
  10. система B
  11. система C
  12. Дані з онлайн-форумів
  13. 6. Масштаби потенційної проблеми
  14. 7. Мережевий протокол міні-агента
  15. 8. Висновки
  16. 9. Посилання
  17. Додаток A: Індикатори активності агента Computrace

Про що цей документ

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

1. Введення

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

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

Причиною нестабільного поведінки системи виявилися модулі identprv.dll і wceprv.dll, завантажені в адресний простір одного із системних сервісних процесів (svchost.exe). Швидко з'ясувалося, що ці модулі створені компанією Absolute Software і є частиною її програмного продукту Absolute Computrace. Absolute Software - легальна компанія, і вся інформація про її продуктах доступна на офіційному веб-сайті . Тим часом, власник ноутбука заявляє, що раніше не чув про цю компанію і ніколи не встановлював її продукти. Це дає можливість припустити, що дане програмне забезпечення могло бути встановлено і активовано виробником або продавцем ноутбука. Однак, згідно з технічним описом Absolute Software, активувати програму повинен сам користувач або його IT служба. Якщо ви приватний користувач, який не активували Computrace і не маєте персональної IT-служби, то це означає, що хтось інший потенційно має повний доступ до вашого комп'ютера.

Ми могли б не надати особливого значення подібного одиночному фактом, але дуже скоро це ПО було виявлено на приватних комп'ютерах інших наших колег, також не обізнаних про його існування. Сліди активності цього ПО були виявлені і в нашій корпоративної мережі. Просте замішання швидко переросло в тривогу. Ми вирішили розслідувати цей випадок детально. Це призвело до повноцінного розгляду, підсумком якого і став даний звіт.

2. Попередні дослідження

Головна з робіт, виконаних раніше на цю тему, - дослідження Alfredo Ortega і Anibal Sacco з Core Security Technologies, відбите в їх доповіді «Deactivatethe Rootkit: Attackson BIOS anti-theft technologies» на конференції Blackhat в США в 2009 році. У дослідженні вони описали загальні механізми роботи технології Absolute Computrace для захисту від розкрадання пристроїв.

Автори дослідження розглянули ризик експлуатації систем з вбудованим в код прошивки BIOS програмним забезпеченням для захисту від розкрадання пристрою. Вони продемонстрували докази уразливості подібних модулів проти локальних атак, що мають на увазі наявність фізичного доступу до комп'ютера або можливості виконання на ньому довільного коду. Alfredo Ortega і Anibal Sacco продемонстрували утиліту, яка може бути використана для зміни зашифрованих даних конфігурації Computrace і перенаправлення агента Computrace на довільний сервер.

Ми також знайшли в блозі Bradley Susser запис, датований серпнем 2012, в якій згадувалася вразливість в системі аутентифікації продукту Absolute LoJack (Computrace). Однак його пост не містить достатньо переконливих доказів, і ми прийняли рішення провести власне дослідження на цю тему.

3. Агент Computrace

Агент Computrace - це додаток Windows, яке має дві форми: скорочену і повну. Скорочену форму агента можна характеризувати як має мінімально можливий розмір при максимальній гнучкості і розширюваності. Цей модуль впроваджується в прошивку BIOS (а точніше в PCI Option ROM або як UEFI-модуль). В патенті США за номером 20060272020A1 , Що належить Absolute Software, цей агент описаний як mini CDA (Communications Driver Agent) і призначений для перевірки наявності та працездатності повнорозмірного агента. У разі відсутності повноцінного агента, міні-агент завантажує вміст із сервера в глобальній мережі.

Відповідно до опису в патенті, постійний модуль знаходиться в додатковому BIOS ROM
Відповідно до опису в патенті, постійний модуль знаходиться в додатковому BIOS ROM

Додатковий ROM має невелику секцію з модулями Computrace агента, які додаються виробником BIOS і прошиваються на заводі виробником комп'ютера (а точніше, виробником материнської плати).

Computrace модулі в PCI Option Rom (малюнок з патенту)
Computrace модулі в PCI Option Rom (малюнок з патенту)

В рамках нашого дослідження ми завантажили кілька прошивок BIOS, пропонованих в якості оновлення офіційними службами підтримки виробників ноутбуків. Сучасний EFI BIOS може містити до декількох сотень спеціальних EFI-драйверів, EFI-додатків і інших модулів, упакованих в деякого роду файлову систему. Ми виявили, що один з таких модулів був EFI-додатком або додатковим ROM з Computrace агентом всередині. Таким чином, перепрошивка BIOS лише оновить версію агента.

rpcnetp
rpcnetp.exe> в autochk.exe> в EFI-додатку> в іншому EFI-App> в ROM модулі> в прошивці BIOS

Ми можемо відзначити, що для прошивок, що містять Computrace, відповідні налаштування в BIOS Setup можуть як існувати, так і бути відсутнім.

BIOS Setup Lenovo Thinkpad X1
BIOS Setup Lenovo Thinkpad X1

Немає згадок Computrace в BIOS Setup ASUS X102BA
Немає згадок Computrace в BIOS Setup ASUS X102BA

4. Стандартне поведінку ПО Computrace

Фаза 1: модуль BIOS

У першій фазі відразу після ініціалізації основного BIOS виконуються модулі додаткових ROM, виконуються EFI-додатки. У цій стадії модуль Computrace переглядає FAT / FAT32 / NTFS розділи жорсткого диска в пошуках встановленої ОС Windows. Потім він створює копію системного autochk.exe і переписує його своїм кодом. Системний autochk.exe зберігається під ім'ям autochk.exe.bak на FAT або autochk.exe: BAK в альтернативному потоці даних NTFS.

Фаза 2: autochk.exe

Модифікований autochk.exe, стартуючи під час завантаження, має повний доступ як до локальних файлів, так і до реєстру Windows. Завдяки цьому він благополучно зберігає в папку system32 файл агента rpcnetp.exe і реєструє його в реєстрі Windows в якості нової сервісної служби. Пізніше оригінальний autochk.exe відновлюється з збереженої копії.

Фаза 3: rpcnetp.exe

Саме цей модуль також відомий як міні-агент Computrace агент або mini CDA (Communication Driver Agent). Його розмір відносно невеликий, всього близько 17Kb.

Міні-агент стартує як сервісна служба Windows. Відразу після цього він копіює власний виконуваний EXE-файл під ім'ям rpcnetp.dll, встановлюючи при цьому відповідний прапор в PE заголовку (чим стверджує, що це коректний DLL файл), і завантажує DLL. Потім rpcnetp.exe запускає дочірній процес svchost.exe в загальмованому стані і впроваджує в його пам'ять створений rpcnetp.dll. При поновленні виконання svchost.exe створює дочірній процес браузера iexplore.exe з правами поточного активного користувача. Iexplore.exe також створюється в загальмованому стані і так само отримує ін'єкцію rpcnetp.dll. Модифікований таким чином браузер в автоматичному режимі з'єднується з сервером управління для отримання команд і завантаження додаткових модулів. Це призводить до завантаження та встановлення повнорозмірного агента rpcnet.exe.

rpcnetp
rpcnetp.exe стартував два дочірніх процесу і з'єднується з сервером управління

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

Навіщо для виконання простого завдання завантаження оновлення потрібна така складна схема з декількох процесів? Можливий відповідь - для того, щоб приховати те, що відбувається в програмі з метою захисту модулів від аналізу потенційним атакуючим. Було досить складно проаналізувати діяльність коду, що виконується одночасно в трьох різних процесах і має два різних варіанти запуску - як DLL і як EXE файл. У коді присутні антіотладочние прийоми, а також техніки, що утрудняють дизасемблювання і аналіз.

Після успішного старту rpcnetp.exe видаляє відповідні свого сервісу записи в реєстрі Windows, які будуть повторно створені при наступному старті системи, якщо rpcnetp.exe не вдасться з'єднатися з сервером управління.

Iexplore.exe, ймовірно, запускається, щоб гарантувати доступ до глобальної мережі в обхід локального брандмауера, а також для використання призначених для користувача налаштувань проксі. Запущений з привілеями локальної системи, svchost.exe для передачі даних на сервер управління і назад експлуатує iexplore.exe, який має власні привілеї. Це реалізовано викликом функцій OS CreateRemoteThread, WriteProcessMemory, ReadProcessMemory. Модуль rpcnetp.dll породжує кілька потоків на кожен запит до сервера. Настільки часте створення і знищення потоків створює значне навантаження на центральний процесор і потенційно може сповільнити систему. У нашому експерименті під час з'єднання з сервером міні-агент створив тисячі триста п'ятьдесят п'ять нових потоків в svchost.exe і 452 в iexplore.exe - для того, щоб завантажити менш ніж 150Kb даних. Мережеве взаємодія на швидкому інтернет-каналі зайняло близько 4 хвилин, протягом яких агент відправив 596 POST запитів.

Більш детально протокол мережевої взаємодії ми опишемо нижче.

На жаль, модуль rpcnetp.exe не має ні цифрового підпису, ні будь-якої іншої інформації, що дає можливість користувачеві або системного адміністратора розпізнати в ньому легітимне додаток, так само як і перевірити його цілісність. Ми вважаємо це досить серйозним упущенням в поточній реалізації агента. Більш того, атакуючому досить встановити атрибут «тільки для читання» на модифікованому файлі агента, щоб при наступному запуску системи він не був перезаписан справжньою копією з BIOS.

Rpcnetp.exe має досить дивні мітки часу в PE заголовку, які виглядають так, ніби розробник навмисно змінив молодшу частину мітки так, щоб вона дорівнювала старшої. Нижче наведені деякі приклади в шістнадцятковій формі:

4aa04aa0
4aa44aa4
4aa54aa5
4aa64aa6
...
4f4c4f4c
4f504f50
4f954f95
4fc64fc6

Ці дані не використовуються безпосередньо і до кінця не ясно, яку інформацію вони містять. Ми вважаємо, що вони можуть бути використані для внутрішньої маркування агента.

Фаза 4: rpcnet.exe

Аналогічно міні-агенту rpcnetp.exe повнорозмірний агент rpcnet.exe після старту отримує доступ до сервера управління. Процес з'єднання схожий з rpcnetp - rpcnet.exe запускає svchost.exe, а той стартує iexplore.exe з правами локального користувача. Так само як rpcnetp, він створює безліч потоків під час з'єднання з керуючим сервером. Цей агент шукає свої конфігураційні налаштування в декількох місцях: в певних ключах реєстру, в заданому незайнятому просторі жорсткого диска, і, нарешті, всередині свого тіла. У конфигурационной запису вказується адреса сервера управління, інформація, що ідентифікує обладнання, та ін. Дивно, що він з'єднується з тим же сервером і за тим же порту, що і rpcnetp. Ми ще не виконали повний аналіз цього агента з огляду на його великого розміру, але вже зараз абсолютно ясно, що його головне завдання - надання розширеного віддаленого доступу до машини, на якій він запущений.

5. Випадки несанкціонованого активації

Ми вважаємо, що ідея застосування технологій, що запобігають розкрадання пристроїв, хороша тільки тоді, коли вона працює передбачувано. В іншому випадку технологія, призначена для захисту, стає зброєю нападу. У нас немає доказів того, що Absolute Computrace був використаний як платформа для атак, але ми чітко бачимо можливість цього, і деякі тривожні і незрозумілі факти роблять цю можливість все більш реалістичною.

Ми так і не змогли пояснити, що є справжньою причиною несанкціонованої активації модуля Computrace в BIOS. Але ми виявили кілька систем, на яких модулі Computrace були активовані загадковим чином.

Першою природною реакцією власника такого ПК буде видалити або повністю заборонити запуск подібного бекдора. Один з наших колег навіть вирішив відмовитися від використання Windows на своєму ПК через присутність на ньому активного Absolute Computrace агента.

Ми спробували зібрати інформацію про роботу агента Computrace і часу його активації на декількох системах.

система A

Власник цієї системи заявляє, що він ніколи не зустрічав продукти Absolute Software, що не інсталював і не активував їх. Проте, на системі присутній активний агент Computrace.

Особистий ПК, що належить нашому колезі, з активним агентом Computrace
Особистий ПК, що належить нашому колезі, з активним агентом Computrace

Як стверджує користувач, ноутбук був придбаний 27 квітня 2012. За заявою власника, заводська захисна наклейка на момент покупки не була пошкоджена. Коробка була розкрита при ньому, в магазині перевірка працездатності не проводилася. У той же день власник включив ноутбук і завантажив систему. Час створення папки C: Users на жорсткому диску показує точний час, коли стався перший запуск: 20:31 27 квітня 2012.

Потім власник налаштував доступ в мережу, що призвело до створення файлу профілю бездротової мережі C: ProgramDataMicrosoftWlansvcProfiles, час його створення 20:52 27 квітня 2012.

Незабаром активувався модуль Computrace rpcnetp.exe і почав спроби з'єднання з сервером управління. Скачаний їм повнорозмірний агент був встановлений як C: WindowsSysWOW64rpcnet.exe о 21:29 27 квітня 2012.

Все це говорить про те, що ноутбук або був придбаний з уже активованим агентом, або він активізувався автоматично під час першої установки системи.

Модель ноутбука: ASUS 1225B

система B

Ця система має очевидні ознаки активності Computrace агента, тоді як її власник стверджує, що ніколи не встановлював і не використав продукти Absolute Software.

Особистий ПК іншого нашого колеги
Особистий ПК іншого нашого колеги

Згідно з інформацією файлової системи, папка C: Users була створена 2012-08-11 15:23:45. Власник дізнався цю дату як дату покупки ноутбука.

Виявилися і інші файли:

C: WindowsSysWOW64wceprv.dll - 2012-08-11 19:39:41
C: WindowsSysWOW64rpcnet.exe - 2012-08-11 19:42:29
C: WindowsSysWOW64Upgrd.exe - 2012-08-11 19:42:44
C: WindowsSysWOW64rpcnet.dll - 2012-08-11 19:43:07

Це також підтверджує, що повнорозмірний Computrace агент був активований в день покупки ноутбука. Власник стверджує, що він розкрив упаковку із заводською захисної наклейкою і запустив установку ОС в магазині. Потім, ввечері того ж дня, підключив ноутбук до своєї домашньої мережі Wi-Fi. Як і Система А, Система B містить сліди активації агента в момент першого запуску власником.

Модель ноутбука: Samsung 900X3C

система C

Ми відвідали кілька комп'ютерних ринків і великих магазинів, які торгують комп'ютерами, в спробах знайти ноутбуки з уже активованим агентом Computrace. Ми перевірили близько 150 різних конфігурацій від різних виробників. На наш подив, тільки на одному з перевірених ноутбуків виявився запущений rpcnet.exe - повнорозмірний агент Computrace.

ПК з активним агентом Computrace на прилавку
ПК з активним агентом Computrace на прилавку

У нас не було можливості детально проаналізувати дану систему прямо в магазині, але той факт, що rpcnet.exe виконувався на ній, мав на увазі, що rpcnetp.exe вже відпрацював і успішно скачав rpcnet.exe з Мережі.

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

Модель ноутбука: Samsung NP670Z5E

Ми зв'язали зі службою ТЕХНІЧНОЇ ПІДТРИМКИ Absolute Computrace и нада серійні номери обладнання з підозрілімі екземпляр агентів Computrace. Співробітник служби ПІДТРИМКИ пояснивши, что зазначені серійні номери не значить у їх базах Даних. Ми вважаємо, що це означає, що Computrace ні активований на цих комп'ютерах легальним шляхом з використанням офіційного активатора від Absolute Software.

Як відбулася активація, і хто за цим стоїть, для нас досі залишається загадкою.

Дані з онлайн-форумів

Ми виявили безліч онлайн-повідомлень зі скаргами на несанкціоновані активації Computrace. например:

користувач   стверджує   , Що ніколи не використовував продукти Absolute Software, але бачить їх встановленими на свій ПК
користувач стверджує , Що ніколи не використовував продукти Absolute Software, але бачить їх встановленими на свій ПК

інший користувач   заявляє   про своє абсолютно новому ноутбуці з пре-активованим Computrace
інший користувач заявляє про своє абсолютно новому ноутбуці з пре-активованим Computrace

Скарга   ще одного користувача
Скарга ще одного користувача

Ці та інші заяви власників ноутбуків вказують на можливість широкого поширення несанкціонованих копій агента Computrace.

6. Масштаби потенційної проблеми

Використовуючи хмарний сервіс KSN, ми зібрали статистику по числу комп'ютерів з активним Absolute Computrace агентом. Нижче ви можете бачити карту з географічним розподілом цих комп'ютерів:

Розподіл комп'ютерів з активним Absolute Computrace агентом
Розподіл комп'ютерів з активним Absolute Computrace агентом

Зауважимо, що наша статистика обмежена лише анонімними даними з комп'ютерів користувачів продуктів «Лабораторії Касперського», у яких включено використання KSN, а це лише мала частина від усіх пристроїв, підключених до інтернету. Наша приблизна оцінка загального числа користувачів з активним агентом Computrace перевищує 2 мільйони.

У нас немає інформації, скільки користувачів не підозрюють про активацію та роботі на їх системах агента Computrace.

На додаток до цього, ми зібрали статистику по виробникам материнських плат цих комп'ютерів.

Виробники материнських плат комп'ютерів з активним Absolute Computrace агентом
Виробники материнських плат комп'ютерів з активним Absolute Computrace агентом

Ми провели порівняння цієї діаграми і діаграми найбільш популярних виробників персональних комп'ютерів за даними Gartner за 4-й квартал 2013 року.

Найбільш популярні виробники персональних комп'ютерів за версією Gartner
Найбільш популярні виробники персональних комп'ютерів за версією Gartner

За цими діаграмами видно, що виробники з TOP5 основних гравців на ринку PC входять в TOP6 найбільш поширених виробників материнських плат, на яких були виявлені активні копії агента Computrace. В TOP 6 п'ять цих компаній доповнює Toshiba. Згідно Вікіпедії, «на деяких ноутбуках Toshiba процес rpcnetp.exe встановлено виробником на жорсткий диск до поставки комп'ютера замовнику». Це може пояснити, чому так багато комп'ютерів Toshiba містять працює rpcnet.exe. Однак залишається незрозумілим, чому два провідних виробника PC Lenovo і HP мають відносно малу кількість активованих агентів, в той час як Acer і ASUS, які замикають TOP 5, мають набагато більше таких систем. Ми не знайшли публічної інформації, яка б підтверджувала, що ASUS або Acer встановлювати Computrace на комп'ютери клієнтів.

7. Мережевий протокол міні-агента

Незабаром після свого старту міні-агент rpcnetp.exe починає з'єднуватися зі своїм сервером управління. Адреса сервера записаний в тілі агента, в ключі реєстру Windows і в прихованій області жорсткого диска. Якщо пряме з'єднання по IP-адресою не вдається, агент визначає адресу хоста search.namequery.com і використовує його IP для комунікації.

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

Deploying the Persistence Agent successfully in BIOS, for example, makes heavy use of an extensibility designed into the communications protocol . Without this extensibility the Agent would be larger and require frequent updates to add or change functionality . Such updates are neither practical nor economical, since the BIOS is programmed into the flash EEPROM of the platform and special tools (most often requiring user interaction) must be used to update the BIOS. Also, intensive testing is performed by the OEM on the BIOS since its integrity is critical to the operation of the computer .

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

Ось як виглядає комунікація міні-агента і сервера управління в пакетному мережевому сніфера Wireshark:

Частина комунікації між міні-агентом і сервером управління
Частина комунікації між міні-агентом і сервером управління

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

Існують два типи запитів, які міні-агент може обробити: пакети на читання і запис. Нижче наведена структура таких пакетів:

Нижче наведена структура таких пакетів:

Всі пакети починаються і закінчуються спеціальним символом «~» (0x7E). Цей символ визначає межу пакету (є роздільником). Наступне за ним 4-байтовое поле Address містить адресу в пам'яті, з якої працює даний запит. Якщо пакет призначений для читання, то міні-агент прочитає пам'ять, починаючи з замовленого адреси. Кількість прочитаних байт задано в наступному полі Size (довжиною 2 байта). До кожного пакету додаються 3 байта: 1 байт для поля Seq і ще 2 байта для поля Cksum. Seq - спеціальне 8-бітове значення, яке використовується як ідентифікатор послідовності, який збільшується спеціальним чином сервером і агентом. Cksum - це 2-байтовое поле, що містить контрольну суму (хеш) полів Address, Size і Seq. Якщо Seq або Cksum значення в пакеті не збігаються з обчисленими агентом, то пакет відкидається, і агент повторює свій останній відповідь ще раз. Число з поля Seq підкаже сервера управління, з якого саме пакета треба повторити пересилку.

Найперший пакет від сервера є особливим і використовується для своєрідного «рукостискання». Ось так виглядає подібний пакет:

Поле Address має особливе значення 0xFFFFFFFF, поле Size містить 0x0004, унікальне 4-байтовое значення Session ID повинно бути встановлено сервером. Значення Session ID використовується агентом в усіх наступних пакетах, відправлених сервера.

Відповідь клієнта також має певну структуру:

Відповідь клієнта також має певну структуру:

Як і в разі серверного пакету, відповідь клієнта повинен починатися і закінчуватися роздільником пакетів. Перші чотири байти містять фіксоване 4-байтовое значення Session ID, яке північ вказав в найпершому відповіді. Наступне 2-байтовое поле містить розмір поля Response Data, яке містить дані з відповіддю на запит сервера. Після цього йдуть поля Seq і Cksum, також як і в серверних пакетах.

У разі якщо в пакеті зустрічається байт-роздільник з шістнадцятковим кодом 0x7E, то використовується спеціальне правило, перетворює цей байт в електронних даних 0x7D 0x5E, що фактично збільшує розмір пакета і впливає на контрольну суму. Проте, обробка пакету і розрахунок контрольної суми проходить тільки після зворотної операції, що відновлює оригінальні байти до заміни. Якщо в пакеті знайдено байт із значенням 0x7D, то він замінюється на байти 0x7D 0x5D.

Описане вище, по суті, завершує опис протоколу, який ми спостерігали в комунікації міні-агента. Протокол надає дві примітивні операції:

  1. операція читання
  2. операція запису

На додаток до цього під час «рукостискання» агент надає адресу спеціальної структури (Session) в пам'яті. Цього виявляється досить для виконання довільного коду. На системах з захистами DEP і ASLR додаткові можливості такого рішення можуть істотно полегшити виконання коду, а також підвищити надійність роботи агента. Тому агент проводить додаткову обробку стану структури Session. Агент перевіряє значення особливого поля в цій структурі. Якщо воно відмінно від нульового, то агент може виконати деякі допоміжні операції. Ми виявили наступні операції в коді:

  • Отримати хендл на поточний модуль в пам'яті (викликає GetModuleHandleA)
  • Отримати адресу експортованої процедури (викликає GetProcAddress)
  • виділити пам'ять
  • звільнити пам'ять
  • Виконати ланцюжок команд за вказаною адресою
  • Викликати функцію з передачею параметрів з вказаної адреси

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

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

8. Висновки

Коли ми вперше побачили і проаналізували Computrace, ми помилково прийняли його за шкідливий код, так як агент застосовує безліч прийомів, характерних для шкідливого ПО: використовуються антіотладочние і ускладнюють реверс-інжиніринг техніки, відбуваються ін'єкції в пам'ять інших процесів, відбувається встановлення прихованих з'єднань, модифікуються системні модулі на диску (autochk.exe), шифруються і ховаються конфігураційні файли, і, нарешті, виконувані файли Windows зберігаються на диск прямо з коду прошивки (BIOS).

Настільки агресивна поведінка агента Computrace стало причиною того, що він вже детектувався як шкідливого ПО в минулому. повідомлялося , Що Computrace виявлявся антивірусом Microsoft як VirTool: Win32 / BeeInject. нижче наведено описание , Яке дає енциклопедія шкідливого ПО Microsoft для цього сімейства:

нижче наведено   описание   , Яке дає енциклопедія шкідливого ПО Microsoft для цього сімейства:

Однак детектування модулів Computrace було прибрано Microsoft, так само як і деякими іншими антивірусними компаніями. Зараз ці модулі знаходяться в так званих «білих списках» більшості антивірусів щоб уникнути їх автоматичного детектування евристичними методами.

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

Незважаючи на те, що ми не виявили доказів навмисного прихованої активації модулів Computrace на комп'ютерах, ми вважаємо, що число комп'ютерів з активованим Computrace може виявитися напрочуд великим. Ми не віримо, що компанія Absolute Software або будь-який з названих вище виробників персональних комп'ютерів має причину для прихованої активації Computrace. Однак відповідне повідомлення користувача повинно бути відповідальністю даних компаній. На наш погляд, користувачі повинні знати, що такий компонент працює на їх системах, ніж це їм загрожує, і як вони можуть деактивувати, якщо вони не хочуть користуватися послугами компанії Absolute Software. В іншому випадку ці втрачені агенти продовжать надавати атакуючим можливість для віддаленого захоплення комп'ютерів нічого не підозрюють користувачів.

9. Посилання

  1. http://corelabs.coresecurity.com/index.php?module=Wiki&action=view&type=publication&name=Deactivate_the_Rootkit
  2. http://www.absolute.com/en/partners/bios-compatibility
  3. http://www.absolute.com/en/resources/whitepapers/absolute-persistence-technology
  4. https://www.google.com/patents/US20060272020
  5. http://en.wikipedia.org/wiki/LoJack

Додаток A: Індикатори активності агента Computrace

  1. Один з процесів запущений:
    1. rpcnet.exe
    2. rpcnetp.exe
    3. 32-bitsvchost.exe, що працюють на 64-bitсістеме (непрямий індикатор)
  2. Один з файлів існує на диску:
    1. % WINDIR% System32rpcnet.exe
    2. % WINDIR% System32rpcnetp.exe
    3. % WINDIR% System32wceprv.dll
    4. % WINDIR% System32identprv.dll
    5. % WINDIR% System32Upgrd.exe
    6. % WINDIR% System32autochk.exe.bak (для FAT)
    7. % WINDIR% System32autochk.exe: bak (для NTFS)
  3. Система відправляє DNS-запити для наступних доменів:
    1. search.namequery.com
    2. search.us.namequery.com
    3. search64.namequery.com
    4. bh.namequery.com
    5. namequery.nettrace.co.za
    6. search2.namequery.com
    7. m229.absolute.com або будь-яких m * .absolute.com
  4. Система з'єднується з наступним IP-адресою: 209.53.113.223
  5. Існує один з наступних ключів в реєстрі:
    1. HKLMSystemCurrentControlSetServicesrpcnet
    2. HKLMSystemCurrentControlSetServicesrpcnetp

Додаток B: Хеши файлів

Нижче наведені деякі хеші виконуваних файлів системних сервісів rpcnetp і rpcnet:

0153ad739956b12bf710c7039186728d
01a19f74cfb19cc61d62009bcfa59961
076a360ee0cfc5ca2afc8468fa1ae709
130206a40741aa57f3778bb70e593e16
19a51da66e818f0e10973e1082c79a70
19e67bd685019dafadfe524517dab145
1f2d10f767c7145a8d2a3fbbf66bed7a
27d43a7f03260ebdf81dd6515646510b
3a1ed2730cee3ec7d6d5091be5071eaa
418f527e59508480cfc17644d8387736
4476ccfd883c603cebbc317c6c41c971
4a3b02ac2e1635c0a4603b32d447fbb2
4bcf98b48bee5e7094d0cf026d4edce4
5235a32d018b79f065c64b06bd4001be
5515c17117a37fc808fc7a43a37128b0
5829887d2304c08237a5f43c42931296
5a5bb037b8e256a3304f113a187b1891
5e071026cb4c890a3584e02af1e3daf8
6846e002291086843463238e525c8aaa
77f57671b08e539e3232bf95a2ac8aec
78c696e5fd0041d8a5ce5e5e15b6f2f3
7a7cd44a4113046869be5ab8341f759f
8282e68524af7a46afc1bac2105c6cda
86332af92a6a80660bb8659711378140
8f95ce32c2596771174f7054a78f4a84
925f2df6a96637d23c677b33a07b52c1
961d7bbefa57d1b260db075404454955
a9e0a97c29bd110f54beb465d8ec3e52
aaaee16f8cbd6a35c0f6b37358b3ce54
b4c3723eb687b0e63aeea2974b8d73ba
b7534d5ed3b01ff3a96b43b855b2a103
bb7ef397f31c184f4089fc9bac04566f
c1b19ad11821780b67f4c545beb270c0
c6089ec6ae62fe264896a91d951d0c79
cacebf514be693301c1498e216b12dbb
cbb0d507e47d7f0ae3e5f61ea8feff08
cde233aa0676f5307949c0a957a2f360
cf8bcf7138cc855d885271c4ee7e8a75
d2561d67e34ff53f99b9eaab94e98e2a
e2e9dcce8d87608e4ba48118b296407f
e57892858a7d3a7799eacb06783bd819
e583977f36980125c01898f9e86c6c87
ed9b58f56a13fbb44c30d18b9b5c44d0
ee08ce8247ffb26416b32d8093fe0775
eeab12e6f535ee0973b3ddb99287e06c
ef8d08b07756edc999fbc8cfac32dc23
f03f740fde80199731c507cdd02eb06e
f259382b6fa22cae7a16d2d100eb29e4
f42dbd110320b72d8ff72f191a78e5d5
fc0ba4c9a301b653ee2c437e29ed545e

Навіщо для виконання простого завдання завантаження оновлення потрібна така складна схема з декількох процесів?
Php?

Новости