October 25

Web3. Безопасность. Аудит и мониторинг macOS. Часть I. База

Мак

Дисклеймер

Конечно, лучше Linux для криптомира вы ничего не найдёте: Ubuntu, Mint и др. дистрибутивы. Но видео верстать на Linux & Mac - это небо и земля, как и ряд других вещей. Поэтому я за внешнюю децентрализацию и здесь. И это не значит, что если вы работаете на "линухе", а под Mac только мастерите ролики, то последний не нуждается в постоянном мониторинге: ещё как нуждается.

Быстрый ввод в дело

Перечень:

  1. Бесплатный курс по безопасности: там же можно найти и др.
  2. И главное - это поиск по ключевику безопасность в https://t.me/web3news

Поехали!

Много лет я посвятил изучению Windows, не так много, но значимо - Linux, совсем чуть-чуть - BSD и вот решил освоить несколько лет назад MaкОсь. Не буду уходить в теоретические дебри, что от чего пошло и как устроено, - это всё есть в Сети.

Но дам конкретные инструкции по настройке, если вы работаете с крито-активами.

Базовая защита

Та же, что и везде:

  1. Знание системы;
  2. Кастомизация её;
  3. Резервное хранение.

Но есть нюансы...

System Integrity Protection (SIP)

По факту это строенный в macOS механизм безопасности на уровне ядра, который защищает системные файлы и процессы от любых изменений, даже если злоумышленник получил root-доступ. Apple ввела SIP начиная с macOS El Capitan (10.11).

Команда простая:

csrutil status

Статус должен быть:

enabled
csrutil

Gatekeeper

Это уже встроенный в macOS механизм безопасности, который проверяет цифровую подпись и источник любого приложения перед его запуском. Он не даёт системе запустить вредоносное или подменённое приложение, если оно: не подписано сертифицированным разработчиком Apple; изменено после подписи; загружено из подозрительного источника (например, из интернета :)); или установлено вне App Store без подтверждения.

Здесь команда тоже простая:

spctl --status 

И ответ такой же (правильный):

enabled
spctl

Автозагрузка

Она есть как в GUI-форме, так и через командную строку:

sudo launchctl list

Если выгрузка не ясна, спросите у ИИ и поиска, что за процесс (который вас интересует). Можно сохранить в док:

sudo launchctl list > 1.txt

И анализировать уже списком.

И можно проверить ещё директории отдельно:

sudo ls /Library/LaunchAgents /Library/LaunchDaemons ~/Library/LaunchAgents

Проверка бинарников

Здесь есть разные способы, начиная с:

lsof | grep -i "unknown"

И заканчивая:

sudo netstat -anv | grep ESTABLISHED

Проверка прав (доступа)

sudo find /private/var/db -type f -perm -u+w -ls

Суть вот в чём:

  1. Проверка целостности системных прав. В норме большинство файлов в /private/var/db должны принадлежать root и иметь права только на чтение.
    Если вдруг окажется, что пользователь может туда записывать (-u+w), - это потенциальная уязвимость.
  2. Поиск следов вредоносной активности. Вредоносное ПО иногда создаёт или изменяет файлы в /private/var/db, чтобы сохраняться между перезагрузками (persistency). Например, подделывает кеши или настройки.
  3. Диагностика нарушений безопасности. Например, если антивирус или MDM сообщает, что у системы нарушены права доступа, - эта команда помогает найти конкретные файлы.

Отключить не нужное

Отключение

Например: Remote Login, Screen Sharing, Bluetooth Sharing.

Целостность системных файлов

Здесь работает:

sudo /usr/bin/mdutil -E /

А также:

sudo /usr/bin/fsck_apfs -n /dev/disk1s1

Часто второй запрос будет требовать разных шагов, поэтому можно пойти проще:

diskutil verifyVolume /

Но есть и другие подходы.

Защита браузера

Обязательно - иметь разные учётные записи. Обязательно - отключить автозапуск скриптов и тем более не нужный Flash. Расширений много разных, скажем: uBlock Origin, HTTPS Everywhere и подобные.

Утилиты дополнительные

BlockBlock

В описании указано буквально следующее: "Вредоносное ПО устанавливается на постоянной основе, чтобы обеспечить его автоматическое (повторное) выполнение. BlockBlock отслеживает распространенные места постоянного хранения и предупреждает о добавлении любого постоянного компонента".

BlockBlock

Но здесь нужен разумный тест, т.к. чересчур большой уровень доверия лишь навредит.

KnockKnock

Здесь описание схожее (и всё же - функция защиты иная): "Вредоносное ПО часто устанавливается на постоянной основе, чтобы гарантировать его автоматическое (повторное) запускание при каждом перезапуске компьютера. KnockKnock обнаруживает постоянно установленное программное обеспечение, чтобы выявить такое вредоносное ПО".

KnockKnock

Malwarebytes

Тоже бесплатный сканер безопасности.

LuLu firewall

Тут всё понятно: файрвол как он есть. Со всеми базовыми настройками.

Dr.Web

Сканер простой и понятный, но использовать можно и нужно только как доп. инструмент.

Общие рекомендации по доп. ПО

Но всё подобное ПО рекомендую ставить только после:

  1. Тщательного анализа;
  2. Когда базовые настройки уже в деле;
  3. Есть не поверхностное понимание устройства ОС.

До этого - всё может работать не на пользу.

Выводы и итоги

Безусловно, это НЕ полная инструкция, а лишь набросок первой части, поэтому больше узнаете в https://t.me/web3news и здесь, в блоге, а пока всё и

До!