Неожиданно для себя оказался на конференции по безопасности АСУ ТП (промышленного производства). Если ты уже спешишь закрыть страницу, не пугайся — колонка ни в коем случае не о том, как я защищал инфраструктуру очистительных сооружений для водоканала г. Мухосранск (хотя не без этого — читай ниже).

В кулуарах мероприятия активно обсуждалась тема защиты от целенаправленных атак. Некоторые эксперты выражали мнение, что единственный работающий сейчас путь — это оценивать изменения в окружении каждой рабочей станции. Причем если для Windows решений довольно много, то OS X (то есть для Mac’ов) security-утилит не так уж и много. И что делать, если у тебя в компании таких машин сотни или даже тысячи?

У меня у самого свежа в памяти попытка установить антивирус на OS X, после чего я впервые увидел kernel panic системы. Такой авер сразу пришлось снести и забыть как страшный сон. Тем не менее вопрос безопасности остался открытым. Система без антивируса и вообще без всякой защиты или мониторинга в нашем жестоком мире — роскошь непозволительная.

На виндовой системе я довольно хорошо представляю, где может прописаться малварь и как ее можно задетектить, в том числе с помощью специализированных утилит вроде GMER. Для OS X подобных утилит я до недавнего времени не знал.

Решение от Facebook и Etsy

Тем радостнее для меня оказалась новость, что security-команды Facebook и Etsy зарелизили фреймворк MIDAS (Mac Intrusion Detection Analysis System), предназначенный как раз для обнаружения зловредной активности в системе.

Это не антивирус, нет. Это вообще не готовый продукт — это очень продвинутый и кастомизируемый фреймворк, с помощью которого можно анализировать большое количество рабочих станций на OS X, чтобы обнаружить аномалии в поведении, характерные для малвари. Может показаться, что использовать такой тулкит у себя на рабочей машине подобно стрельбе из пушки по воробью, но в действительности ничего похожего я пока не видел.

Структура фреймворка

У MIDAS модульная структура, самой важной частью которой являются так называемые helper’ы (они находятся в папке midas/lib/helper) — это уже написанные скрипты по анализу различной активности в системе. С их помощью можно, например:

  • показать все слабые SSH-ключи на хосте;
  • найти все файлы в заданной директории с нужными разрешениями;
  • отобразить все элементы из автозапуска;
  • перечислить все LaunchAgents, LaunchDaemons и так далее;
  • запросить все расширения ядра;
  • выяснить SSID текущей Wi-Fi-сети, к которой подключена машина;
  • вернуть IP- и MAC-адреса используемого шлюза;
  • проверить настройки DNS.

И это лишь малая часть того, что умеют helper’ы из коробки. На основе хелперов пишутся модули, которые выполняют уже вполне конкретные проверки (например, поиск новых приложений, которые прописываются для старта вместе с системой, или расширения ядра). Вместе с MIDAS идет модуль-пример (midas/modules/example.py), который проверяет LaunchAgents и LaunchDaemons в системе и логирует любые найденные изменения. Понятно, что для хранения состояния нужно иметь некоторую базу данных — так вот, в MIDAS реализована своя простенькая ORM-система, так что на этот счет можно не волноваться. Сами модули могут быть написаны как на Python, так и на Ruby или простом Bash.

Из питоньих хелперов MIDAS’а можно со- брать свой кастомный сценарий аудита
Из питоньих хелперов MIDAS’а можно собрать свой кастомный сценарий аудита

В масштабах компании

Как разработчики видят использование MIDAS в больших компаниях? Сценарий предельно понятный:

  • создается форк MIDAS (каждая компания использует его лишь как основу);
  • добавляются модули и хелперы, которые реализуют необходимые проверки;
  • все это деплоится на рабочие станции компании;
  • через crontab/LaunchAgent прописывается автоматический запуск MIDAS в заданном интервале;
  • для агрегации логов с различных систем используется syslog или другой похожий инструмент;
  • по собранным данным проводится анализ, и, если обнаружены аномалии, генерируются предупреждения.

Разработать правильные модули и алерты — задача не из простых. Но теперь у нас есть хороший конструктор, на базе которого это можно сделать.

P. S.

В самом начале статьи я говорил, что не защищал никакие инфраструктурные объекты. Это не совсем так :). Организаторы конференции  придумали очень прикольную и занимательную игру, которая заставила прочувствовать всю боль директора по информационной безопасности промышленного предприятия. Все участники разбивались в команды, каждой команде выдавалось игровое поле (схема водоочистительной станции с указанием ИТ-инфраструктуры: SCADA, PLC-контролеры, рабочая станция инженера и прочее), а также набор карт (провести пентест, установить патч, поменять пароли и так далее). В каждом из пяти раундов приходили какие-то вводные данные и надо было использовать самые нужные карты, имея ограничение времени и бюджета (каждая карта «стоила» по-разному). Несмотря на сильную команду, мы облажались и оказались почти на последнем месте: пару недель линии не работали из-за отказавших контроллеров :). Если бы это было реальное производство, то убытки могли бы составить сотни тысяч долларов. Провал :).

Напоследок хочу спросить: как тебе идея сделать что-то подобное для настольных игр дома? Мы готовы в этом максимально поучаствовать.

Настоящая MTG для безопасника :)
Настоящая MTG для безопасника 🙂

Степа Ильин

Главный редактор «Хакера» с 2012 по начало 2014 года. Сейчас с командой единомышленников строит компанию Wallarm, разрабатывающую решения для защиты веб-приложений от хакерских атак и обнаружения в них уязвимостей.

Теги:

1 комментарий

  1. 31.07.2014 at 15:24

    И статья, и идея для «игро-лабов» шикарны! Мне повезло «сбежать» из АСУТП в коммерческую организацию, но если бы там возникла подобная идея защиты ИС это были бы колоссальные убытки «с последствиями» )))))

Оставить мнение

Check Also

Эхо кибервойны. Как NotPetya чуть не потопил крупнейшего морского перевозчика грузов

Российское кибероружие, построенное на утекших у АНБ эксплоитах, маскировалось под вирус-в…