Урок 3 из 4 · 10 мин
Журналирование и обнаружение
Что стоит журналировать на одном Mac, и конкретные признаки — маячки, аномалии DNS, неподписанные исполняемые файлы — того, что нужно присмотреться внимательнее.
Файрвол, который ничего не блокирует и ничего не журналирует, — это лишь половина защиты. Обнаружение — вторая половина: замечать, когда что-то на машине ведёт себя не так, как должно. На одном Mac для этого не нужен центр мониторинга безопасности, но нужно достаточно хорошо знать, как выглядит обычное подключение, чтобы заметить необычное.
Что стоит журналировать
На одном компьютере полезные категории журналов повторяют то, что отслеживал бы более крупный центр сетевых операций, только в уменьшенном масштабе: какие приложения устанавливали какие подключения, к каким адресам и когда; какие приложения запускались и были ли они подписаны известным разработчиком; изменения в связанных с безопасностью настройках, таких как файрвол или Gatekeeper. Сама macOS ведёт единый журнал, охватывающий системные события и события приложений, доступный для просмотра в приложении «Консоль» или командой log show, и решения самого Файрвола приложений тоже записываются туда. Большинству людей не хватает не журналирования как такового, поскольку macOS и так журналирует очень много, а именно удобочитаемого представления исходящих подключений, потому что именно в этом направлении компрометация, скорее всего, проявится в первую очередь.
Чтение журналов подключений: как выглядит норма
Журнал подключений полезен только тогда, когда у вас есть приблизительное представление о том, что нормально для данного приложения: браузер, часто подключающийся ко множеству разных доменов, — это ожидаемо; приложение для заметок, делающее то же самое, — нет. Три детали, на которые стоит обращать внимание для любого подключения, — это адрес назначения (домен или IP-адрес и, в идеале, кто им управляет), время (однократно, время от времени или через фиксированный интервал) и приложение, ответственное за него.
Признак: маячки (beaconing)
Маячок (beaconing) — это повторяющееся, часто точно рассчитанное по времени исходящее подключение, которое программа использует для «отметки» у удалённого сервера, иногда чтобы получить дальнейшие инструкции. Фреймворк ATT&CK от MITRE описывает этот паттерн трафика управления и контроля на уровне приложений как то, что защитники ищут именно по «интервалам, похожим на маячки» (beacon-like intervals): регулярному ритму, который обычное, управляемое пользователем приложение — подключающееся, когда вы им пользуетесь, и молчащее в остальное время — не создавало бы. Одно приложение, тихо подключающееся к одному и тому же адресу каждые несколько минут, круглосуточно, независимо от того, пользуетесь вы им или нет, — это паттерн, который стоит расследовать, а не игнорировать.
Признак: аномалии DNS
Каждый поиск доменного имени проходит через DNS ещё до того, как вообще устанавливается подключение, что делает DNS-трафик удобным местом для поиска странностей: приложение, разрешающее необычно длинное или выглядящее случайно сгенерированным доменное имя, всплеск запросов к незнакомым вам доменам, или DNS-запросы такого объёма и характера, которые не соответствуют обычному просмотру сайтов. Объяснение туннелирования DNS от Cloudflare описывает одну из причин, почему это происходит: кодирование данных внутри DNS-запросов и ответов можно использовать для перемещения информации внутрь сети или наружу из неё в обход средств контроля, которые проверяют только обычный веб-трафик. Вам не нужно самостоятельно полностью диагностировать технику; того, что вы заметили необычную активность DNS от конкретного приложения, уже достаточно, чтобы присмотреться внимательнее или попросить о помощи.
Признак: неподписанные исполняемые файлы
Ожидается, что каждое законное приложение для Mac подписано кодом, а большинство ещё и нотаризовано (это рассматривается в курсе «Защита macOS» на этом сайте). Проверить, подписано ли конкретное приложение, можно из Терминала:
codesign -dv --verbose=4 /Applications/SomeApp.app
Executable=/Applications/SomeApp.app/Contents/MacOS/SomeApp
Identifier=com.example.someapp
...Приложение, которое вообще не подписано или чей идентификатор не соответствует ожидаемому для этого приложения, стоит воспринимать с подозрением, особенно если оно к тому же оказывается в списке процессов и устанавливает сетевые подключения, которые вы не можете объяснить. Эта проверка только для чтения: она изучает подпись, но не запускает и не изменяет приложение.
IDS/IPS в личном масштабе
Система обнаружения вторжений (IDS) наблюдает за трафиком и поднимает тревогу при подозрительных паттернах; система предотвращения вторжений (IPS) идёт дальше и автоматически блокирует такой трафик. Корпоративные версии этих систем сверяют трафик с обширными, постоянно обновляемыми наборами известных сигнатур атак и поведенческих моделей. На одном Mac файрвол уровня приложений, который отмечает новый или необычный адрес назначения и даёт вам решить, функционирует как облегчённая, персональная версия той же идеи: обнаружение с возможностью действовать, в масштабе одной машины, а не целой сети.
Главное
- Самое полезное, что стоит журналировать на одном Mac, — это исходящие подключения по приложениям, поскольку macOS и так журналирует большинство системных событий и событий безопасности в других местах.
- Маячок (beaconing) — это повторяющееся, часто регулярно рассчитанное по времени исходящее подключение, не зависящее от того, пользуетесь ли вы активно ответственным за него приложением.
- Необычная активность DNS (длинные или выглядящие случайными доменные имена, всплески незнакомых запросов) может указывать на перемещение данных в обход обычных средств контроля веб-трафика.
- `codesign -dv --verbose=4 <путь>` — способ только для чтения проверить, подписано ли приложение кодом и кем.
- Персональный файрвол уровня приложений, отмечающий необычные адреса назначения, функционирует как облегчённая IDS для одной машины: обнаружение с возможностью выбора действия.
Проверьте себя
1. Что делает «маячок» (beaconing) подозрительным, а не просто обычным подключением?
- Он использует HTTPS
- Он происходит только один раз
- Это повторяющееся, часто регулярно рассчитанное по времени подключение, не зависящее от того, используется ли приложение активно — Верно.
- Он идёт из браузера
Обычные приложения подключаются наружу, когда вы ими пользуетесь; регулярные, «часовые» отметки независимо от активности — это паттерн, который MITRE ATT&CK связывает с трафиком управления и контроля.
2. Почему стоит обращать внимание на необычную активность DNS?
- DNS всегда зашифрован, поэтому аномалии редки
- Данные можно закодировать в DNS-запросах и ответах, чтобы перемещать информацию в обход средств контроля, проверяющих только веб-трафик — Верно.
- Запросы DNS никогда не происходят на обычном Mac
- Это важно только для веб-серверов, а не для персональных компьютеров
Туннелирование DNS скрывает данные внутри DNS-трафика именно потому, что многие средства защиты проверяют DNS не так тщательно, как трафик HTTP.
3. Что делает команда `codesign -dv --verbose=4 <путь к приложению>`?
- Удаляет неподписанное приложение
- Показывает подпись кода и идентификатор приложения, не изменяя его — Верно.
- Блокирует запуск приложения
- Устанавливает правило файрвола для приложения
Это команда проверки только для чтения, показывающая информацию о подписи для указанного приложения, полезная для проверки того, законно ли оно подписано.
Примените на практике в FireAI
Примените этот урок на своём Mac.
- Правила: приложение, сайт, домен, IP или диапазон, навсегда или до перезагрузки — Напишите правило, точное как один адрес, или широкое как целый домен.
- Аварийный выключатель (kill switch) — Отключите свой Mac от интернета в один клик, когда что-то кажется неладным.
- Исследовать подключение — Принимайте решение, опираясь на факты перед глазами, а не на смутное предупреждение.
- Активность: каждое приложение, вышедшее в сеть, и поиск по истории обычными словами — Видьте каждое приложение, вышедшее в сеть сегодня, и управляйте любым из них в один клик.
Источники
- MITRE ATT&CK: Application Layer Protocol (T1071)
- Cloudflare Learning: What is DNS tunneling?
- Apple Platform Security: App code signing process
Примените это на своём Mac
Все функции бесплатно на 17 дней, без банковской карты.