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

В кулуарах мероприятия активно обсуждалась тема защиты от целенаправленных атак. Некоторые эксперты выражали мнение, что единственный работающий сейчас путь — это оценивать изменения в окружении каждой рабочей станции. Причем если для 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 для безопасника 🙂

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

  1. 31.07.2014 at 15:24

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

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

Check Also

Скрытая сила пробела. Эксплуатируем критическую уязвимость в Apache Tomcat

В этой статье мы поговорим о баге в Apache Tomcat, популярнейшем веб-сервере для сайтов на…