BIOS-ний троян від Absolute Software
Технічні подробиці роботи "BIOS-агента" систем Computrace ( LoJack ітп співтовариші) від Absolute Software .
Історія
Система базується на різних способах впровадження в комп'ютерну систему. У самих старих версіях - це було лише додаток під Windows (прихований сервіс). Згодом була використана поширена техніка використання зміненого MBR. Це, з одного боку, давало логічні переваги простоти реалізації (завантаження до старту ОС), з іншого боку - серйозні обмеження, як з боку антивірусів, благополучно блокують і усувають подібні методики, так і з боку "простого" використання, тому що будь-який нестандартний вид MBR унеможливлював установку / функціонування "агента". Крім того, старі системи були орієнтовані на DialUp, що вимагало досить громіздких і щодо железозавісімих процедур по ініціалізації модемів (а також використовуваних ними COM-портів). Повсюдне розвиток інтернету дозволило орієнтуватися на з'єднання через LAN / Ethernet, і приблизно в 2004-му році була реалізована схема, яка зараз є основною і підтримана багатьма виробниками (як комп'ютерів - HP, Dell, Lenovo і ін., Так і BIOS - Phoenix / Award, AMI, UEFI) - коли код для запуску / інсталяції зберігається в FlashROM BIOS. Модуль Computrace вбудований в BIOS як PCI-ROM, тобто використовує звичайний стандарт, який потрібен для всіх завантажувальних PCI -устройств в системі - будь то мережева карта (c її BootROM на борту) або SCSI, SATA-контролер і т.д. В процесі роботи POST (в її кінцевої частини) скануються так звана Option ROM область пам'яті (де розташовуються модулі PCI-ROM), підраховується їх CRC і якщо все нормально BIOS їм передає їм управління для установки потрібних їх роботі ресурсів. Таким чином, подібна методика передбачає початкове знаходження даного модуля в вихідному BIOS системи. Відповідно це передбачає нові комп'ютери, з виробниками яких підписано угоду про використання в їх BIOS даного модуля (виробник BIOS сам вбудовує його в исходник власними силами). Або, в крайньому випадку, це оновлення BIOS з сайту виробника ноутбука (по тій же домовленості - BIOS також робиться виробником), і тоді процес перешивки цілком лягає на користувача.
Отримавши управління, PCI-ROM модуль Computrace резервує у вільній пам'яті блок об'ємом 64 Кб, куди розшифровує / розпаковує свій код.
У разі відсутності вільної пам'яті використовуються кілька общезвестних трюків, в т.ч. використання сегмента відеопам'яті.
В розпакованому / розшифрованому коді міститься процедура пошуку на вінчестері каталогу з Windows (підтримується FAT і NTFS) і два запускной exe-файлу.
Точніше - файл, в який инкапсулирован ще один файл, який отримують пізніше.
Стартовий файл для установки агента заміщає собою autochk.exe в windows / system32, перейменовуючи оного в autochk.bak.
При старті Windows підроблений autochk.exe, отримавши управління, витягує зі свого тіла файл rpcnet.exe і прописує його в реєстр для роботи / автозавантаження в якості сервісу.
Після одержання керування від Windows вже в якості сервісу (rpcnet) він при наявності доступу в інтернет з'єднується з одним з керівників серверів 209.53.113.xxx (xxx.absolute.com).
З нього викачується повна версія, яка встановлюється на вінчестер в якості "звичайного" файлу (rpcnetp.dll) і вся основна робота вже покладається саме на його плечі.
C його допомогою комп'ютер управляється дистанційно - він приймає на виконання як "внутрішні" команди, так і, встановивши свій API-інтерфейс, дозволяє (віддалено) викликати стандартні Windows-процедури (application -рівня).
Сервіс забезпечує періодичний сигнал (раз на чотири години) до сервера на запит управління ім. У разі отримання відповіді від сервера про встановлений рівні втрати нотбука клієнт починає "довбати" вже кожні п'ятнадцять хвилин.
Встановивши віддалене управління, сервер може виконати різні команди, наприклад, за бажанням клієнта - видалити потрібні (або все) файли з диска.
Як доказ виробленої роботи на сторону сервера передається лог про всі віддалених файлах.
Основні патенти по темі:
п.с. стаття написана на початку 2007-го року, опублікована 22.08.2009.