Хакер и инженер Майк Арпайя (Mike Arpaia) проводит дни напролёт, взламывая различный софт на серверах и рабочих компьютерах сотрудников Facebook. При этом он предпочитает использовать не только известные программы, но и разрабатывает собственные инструменты для упрощения работы. Фреймворк OSquery, который работает под OS X и Linux — один из таких инструментов.
OSquery осуществляет низкоуровневый мониторинг и анализ процессов, которые происходят в операционной системе с применением SQL-подобных запросов. Чтобы лучше понять принцип работы, посмотрим примеры таких запросов.
--------------------------------------------------------
-- получаем названия, pid и порты всех процессов,
-- которые прослушивают порты во всех интерфейсах
--------------------------------------------------------
SELECT DISTINCT
process.name,
listening.port,
process.pid
FROM processes AS process
JOIN listening_ports AS listening
ON process.pid = listening.pid
WHERE listening.address = '0.0.0.0';
Или вот ещё один запрос, который выводит список всех launch-демонов в OS X, которые 1) запускаются вместе с операционной системой; 2) продолжают выполняться. Запрос возвращает название демона и путь к исполняемому файлу.
SELECT
name,
program || program_arguments AS executable
FROM launchd
WHERE
(run_at_load = 'true' AND keep_alive = 'true')
AND
(program != '' OR program_arguments != '');
Подобными запросами отслеживаются также работающие процессы, загруженные модули ядра и сетевые соединения.