Технические подробности работы “BIOS-агента” систем Computrace (LoJack итп сотоварищи) от Absolute Software.
Система базируется на разных способах внедрения в компьютерную систему. В самых старых версиях – это было лишь приложение подWindows (скрытый сервис). Впоследствии была использована распространённая техника использования изменённого MBR. Это, с одной стороны, давало логичные преимущества простоты реализации (загрузки до старта ОС), с другой стороны – серьёзные ограничения, как со стороны антивирусов, благополучно блокирующие и устраняющие подобные методики, так и со стороны “простого” использования, т.к. любой нестандартный вид MBR делал невозможным установку/функционирование “агента”. Кроме того, старые системы были ориентированы на DialUp, что требовало достаточно громоздких и относительно железозависимых процедур по инициализации модемов (а также используемых ими COM-портов). Повсеместное развитие интернета позволило ориентироваться на соединение через LAN/Ethernet, и примерно в 2004-м году была реализована схема, которая сейчас является основной и поддержана многими производителями (как компьютеров – HP, Dell, Lenovo и др., так и BIOS – Phoenix/Award, AMI, UEFI) – когда код для запуска/инсталляции хранится в FlashROM BIOS.
Принцип работы Computrace
Модуль 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-уровня).
Сервис обеспечивает периодический сигнал (раз в четыре часа) к серверу на запрос управления им. В случае получения ответа от сервера об установленном уровне утери нотбука клиент начинает “долбиться” уже каждые пятнадцать минут.
Установив удалённое управление, сервер может выполнить различные команды, например, по желанию клиента – удалить нужные (или все) файлы с диска.
В качестве доказательства произведённой работы на сторону сервера передаётся лог обо всех удалённых файлах.
Основные патенты по теме:
- Security apparatus and method (5,764,892, September 1, 1998)
- Computer security monitoring apparatus and system (6,507,914, January 14, 2003)
- Apparatus and method for monitoring electronic devices via a global network (6,300,863, October 9, 2001)
- Method and apparatus to monitor and locate an electronic device using a secured intelligent agent via a global network (6,300,863, October 9, 2001)
- Persistent servicing agent (20060272020, November 30, 2006)
- и другие схожие по теме от Intel, HP и др.
п.с. статья написана в начале 2007-го года, опубликована 22.08.2009
здесь список производителей, де эта гадость установлена
http://www.absolute.com/en/partners/bios-compatibility.aspx