Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
macOS-Security-and-Privacy-Guide — Курируемое руководство по безопасности и конфиденциальности macOS с практическими инструкциями по моделированию угроз, шифрованию диска, настройке брандмауэра, безопасной аутентификации и укреплению сети. | Kitploit
Инструменты/GitHubGitHub/drduh/macos-security-and-privacy-guide
Сетевая безопасностьБезопасность беспроводных сетейКриптографияКонфиденциальностьАутентификацияОбучение и ОбразованиеПодобранные Ресурсы
GitHubdrduh/macos-security-and-privacy-guide

macOS-Security-and-Privacy-Guide

Курируемое руководство по безопасности и конфиденциальности macOS с практическими инструкциями по моделированию угроз, шифрованию диска, настройке брандмауэра, безопасной аутентификации и укреплению сети.

Репозиторий
22.5k1.5k9 ч 32 мин назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

Это руководство представляет собой сборник методов повышения безопасности и конфиденциальности macOS на Mac с Apple silicon. Оно рассчитано на опытных пользователей, которые хотят применять методы обеспечения безопасности, обычно используемые организациями, но также подходит новичкам, интересующимся конфиденциальностью и безопасностью.

Для Mac, управляемых организацией, см. Проект обеспечения безопасности macOS, поддерживаемый Национальным институтом стандартов и технологий США.

Это руководство предоставляется «как есть» — без каких-либо гарантий. Вы несёте полную ответственность за любые последствия его использования.

  • Основы
  • Модель угроз
    • Активы
    • Противники
    • Возможности
    • Контрмеры
    • Пример модели
  • Аппаратное обеспечение
  • Установка macOS
    • Активация системы
    • Учётная запись Apple
    • App Store
    • Виртуализация
      • Контейнеры Apple
  • Первая загрузка
  • Учётные записи администратора и пользователя
    • Предостережения
    • Настройка
  • Прошивка
  • FileVault
  • Режим блокировки
  • Брандмауэр
    • Межсетевой экран уровня приложений
      • Скрытый режим
      • Подписанные приложения
      • Перезагрузка брандмауэра
      • Получение состояния
      • AirDrop
    • Сторонние брандмауэры
    • Пакетный фильтр
      • Пример конфигурации pf
      • Команды брандмауэра
      • Блокировка сетей
  • Службы
  • Предложения Siri и Spotlight
  • Homebrew
  • DNS
    • Профили DNS
    • Файл hosts
    • DNSCrypt
    • Dnsmasq
  • Центры сертификации
  • Privoxy
  • Браузер
    • Firefox
    • Chrome
    • Safari
    • Конфиденциальность веб-браузера
  • Tor
  • VPN
  • PGP/GPG
  • Электронная почта
    • Thunderbird
  • Мессенджеры
    • XMPP
    • Signal
    • iMessage
  • Вредоносное ПО
    • Загрузка программного обеспечения
    • App Sandbox
    • Hardened Runtime
    • Антивирус
    • Gatekeeper
  • Защита целостности системы
  • Метаданные и артефакты
  • Аутентификация
  • Резервное копирование
  • Wi-Fi
  • SSH
  • Физический доступ
  • Мониторинг
    • Журналы
    • DTrace
    • Процессы
    • Сеть
      • Wireshark
  • Разное
    • Заставка
    • Диагностические данные
    • Медиаплеер
    • Обработчики файлов
    • Параметры Finder
    • Пользовательская umask
    • Ввод с клавиатуры
    • Укрепление сети
    • Sudoers
  • Связанное программное обеспечение
  • Дополнительные ресурсы

Основы

Применяйте общие рекомендации по безопасности:

  • Создайте модель угроз

    • Является ли ваш противник локальным подслушивающим, преступником, использующим распространённое вредоносное ПО, или хорошо финансируемой и высококвалифицированной организацией?
    • Определите угрозы или группы, от которых вы защищаетесь, и что они могут реалистично сделать.
  • Поддерживайте актуальность системы и программного обеспечения

    • Регулярно устанавливайте доступные обновления для операционной системы и всех приложений.
    • Обновления устанавливаются в Системных настройках или с помощью служебной программы командной строки softwareupdate. Ни то, ни другое не требует учётной записи Apple.
    • Подпишитесь на список рассылки Apple security-announce или проверяйте выпуски обновлений безопасности Apple.
  • Шифруйте конфиденциальные данные

    • Включите FileVault для шифрования внутреннего накопителя.
    • Используйте менеджер паролей для учётных данных и рассмотрите возможность отдельного шифрования особо чувствительных файлов.
  • Обеспечьте доступность данных

    • Регулярно создавайте резервные копии критически важных данных и будьте готовы восстановить данные из резервной копии в случае компрометации.
    • Шифруйте резервные копии перед копированием на внешние носители или стороннее облачное хранилище. В качестве альтернативы используйте сервис резервного копирования, обеспечивающий сквозное шифрование.
    • Проверяйте резервные копии, обращаясь к ним на регулярной основе по расписанию.

Модель угроз

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

Активы

Активы могут включать телефон, ноутбук, учётные данные и личную информацию, например историю просмотров.

Перечислите их в порядке важности, начиная с тех, которые больше всего стоит защищать.

Противники

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

Возможности

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

Контрмеры

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

Безопасность должна быть сбалансирована с удобством использования: каждая контрольная мера должна противодействовать некоторым возможностям противника, чтобы оправдать любые неудобства. Прекращайте добавлять защиту, когда оставшиеся риски приемлемы для ситуации. Пересматривайте модель при изменении устройств, данных, поездок, работы или противников.

Пример модели

Следующая таблица является примером простой модели угроз:

Подробнее о моделировании угроз.

Аппаратное обеспечение

Аппаратное обеспечение Apple silicon предоставляет аппаратно-поддерживаемые функции безопасности, включая защиту ключей на основе Secure Enclave и более строгие параметры безопасности загрузки. Оно, как правило, является предпочтительной платформой для мер защиты, рассматриваемых в этом руководстве.

Некоторые Mac на базе Intel, особенно модели с уязвимым оборудованием эпохи T2, подвержены аппаратным уязвимостям, которые невозможно полностью устранить обновлением macOS.

Избегайте не-Apple аппаратного обеспечения под управлением macOS и систем, не поддерживающих последнюю версию macOS, поскольку Apple не исправляет все уязвимости в старых версиях.

Аксессуары Apple обычно получают обновления прошивки через macOS и поддерживают текущие функции безопасности Bluetooth. Например, конфиденциальность Bluetooth Low Energy (BLE) использует сменные адреса устройств для снижения отслеживания; сторонние аксессуары могут не поддерживать эту функцию.

Установка macOS

Существует несколько способов установить macOS.

Устанавливайте последнюю поддерживаемую версию macOS; в новых версиях macOS содержатся исправления безопасности и другие улучшения, недоступные в предыдущих выпусках.

Активация системы

Во время установки Mac на Apple silicon связываются со службой активации Apple, чтобы подтвердить, что устройство не зарегистрировано как потерянное или украденное. Подробнее о том, как работает этот процесс.

Учётная запись Apple

Учётная запись Apple необязательна для базового использования macOS, но требуется для App Store и многих сервисов Apple. Перед включением функций ознакомьтесь с настройками конфиденциальности данных.

Включите сквозное шифрование для iCloud и проверьте данные учётной записи Apple.

App Store

App Store — это платформа распространения программного обеспечения, где приложения проверяются компанией Apple.

Приложения App Store обязаны использовать App Sandbox и Hardened Runtime (функции безопасности, ограничивающие возможности приложений, что затрудняет некоторые атаки). Также доступны автоматические обновления программного обеспечения.

Использование App Store требует учётной записи Apple, что может представлять риск для конфиденциальности.

Виртуализация

Виртуализация позволяет запускать другую операционную систему в изолированной виртуальной машине. На Apple silicon macOS может запускать поддерживаемые гостевые системы macOS и Windows 11 для ARM с помощью таких приложений, как:

  • UTM — Следуйте документации, чтобы создать macOS и другие виртуальные машины.
  • VirtualBuddy — Приложение для виртуализации macOS 12+ на Apple silicon.
  • Bushel — Лёгкое бесплатное приложение. При первом запуске выберите «Попросить приложение не отслеживать».
  • VMware Fusion — Теперь бесплатно в рамках Broadcom. Чистый интерфейс, простая настройка macOS и поддержка Windows 11 ARM.
  • tart (CLI) — Приложение командной строки, устанавливаемое через Homebrew.
  • Parallels — Платная опция с глубокой интеграцией.

[!WARNING] VMware требует учётную запись Broadcom и принятие соглашений перед загрузкой. Parallels требует учётную запись, платёжные данные и другую информацию — см. уведомление о конфиденциальности.

Контейнеры Apple

Apple Container — это инструмент командной строки для запуска Linux-контейнеров на macOS. В отличие от сред выполнения контейнеров, которые используют одну общую виртуальную машину Linux, Apple Container запускает каждый контейнер в изолированной легковесной виртуальной машине, используя возможности виртуализации macOS. Это обеспечивает более прочную границу изоляции между рабочими нагрузками и хост-операционной системой.

Первая загрузка

Когда macOS запускается в первый раз, Ассистент настройки требует создания основной учётной записи.

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

Избегайте личных имен: имя компьютера (например, «MacBook Джона Эпплсида») передаётся по локальной сети и видно другим устройствам.

Имя системы можно настроить в Системных настройках > О системе или с помощью команд scutil:```bash sudo scutil --set ComputerName MacBook sudo scutil --set HostName MacBook sudo scutil --set LocalHostName MacBook

root@kitploit:~
# Администратор и пользовательские учетные записи

Первая созданная учетная запись является учетной записью администратора. Администраторы могут изменять общесистемные настройки и выполнять команды с помощью [sudo](https://en.wikipedia.org/wiki/Sudo), который временно предоставляет повышенные привилегии. Любая программа, запущенная администратором, может получить такой же доступ; в sudo также могут быть [уязвимости](https://bogner.sh/2014/03/another-mac-os-x-sudo-password-bypass/).

Рекомендуется использовать выделенную стандартную учетную запись для обычной повседневной работы и применять учетную запись администратора только для установки программного обеспечения и системных настроек, конфигурации и обновлений — это считается [лучшей практикой](https://help.apple.com/machelp/mac/10.12/index.html#/mh11389).

Нет необходимости когда-либо входить в учетную запись администратора через экран входа macOS. Когда команде Terminal требуются привилегии администратора, система запросит аутентификацию, и Terminal продолжит использовать эти привилегии. Для этого Apple предоставляет [рекомендации](https://support.apple.com/102099) по скрытию учетной записи администратора и ее домашнего каталога.

## Предостережения

- Только администраторы могут устанавливать приложения в общесистемный каталог `/Applications`. Finder и Installer запрашивают у стандартного пользователя ввод учетных данных администратора, когда требуется одобрение. Некоторые приложения можно установить в `~/Applications`; приложения, не требующие прав администратора, следует устанавливать в пользовательский каталог. Приложения из App Store по-прежнему устанавливаются в `/Applications` и не требуют дополнительной аутентификации.
- Стандартный пользователь обычно не имеет права использовать `sudo`. Когда требуются привилегии администратора, macOS запрашивает учетные данные администратора, либо задачу можно выполнить из учетной записи администратора.
- Системные настройки и некоторые системные утилиты (например, Wi-Fi Diagnostics) требуют разрешения администратора для полной функциональности. Некоторые разделы Системных настроек необходимо разблокировать, выбрав значок замка. Некоторые приложения просто запрашивают аутентификацию при открытии, другие должны быть открыты непосредственно из учетной записи администратора для доступа ко всем функциям (например, Console).
- Некоторые сторонние приложения предполагают, что текущий пользователь является администратором, и не будут работать из стандартной учетной записи.
- См. [issue 167](https://github.com/drduh/macOS-Security-and-Privacy-Guide/issues/167) для дополнительных сведений.

## Настройка

Учетные записи можно создавать и администрировать в Системных настройках. На существующих системах обычно проще создать вторую учетную запись администратора, а затем изменить исходную учетную запись с администраторской на стандартную. На новых установленных системах после настройки следует добавить стандартную учетную запись.

Понизить уровень учетной записи можно из новой учетной записи администратора в Системных настройках.

См. также [этот пост](https://superuser.com/a/395738) для получения дополнительной информации о том, как macOS определяет членство в группах.

# Прошивка

Убедитесь, что безопасность прошивки установлена на [Full Security](https://support.apple.com/guide/mac-help/mchl768f7291/mac), чтобы предотвратить вмешательство в систему. Это настройка по умолчанию.

# FileVault

Mac на Apple silicon по умолчанию используют аппаратное шифрование хранилища. [FileVault](https://support.apple.com/guide/mac-help/protect-data-on-your-mac-with-filevault-mh11785/mac) дополнительно требует пароль авторизованного пользователя для разблокировки загрузочного тома после перезагрузки.

На Apple silicon авторизация FileVault также защищает [прошивку](https://support.apple.com/102384), что предотвращает загрузку с чего-либо, кроме назначенного загрузочного диска, доступ к [Recovery](https://support.apple.com/guide/mac-help/macos-recovery-a-mac-apple-silicon-mchl82829c17/15.0/mac/15.0#mchl5abfbb29) и восстановление Mac с помощью режима обновления прошивки устройства (DFU).

FileVault предложит задать ключ восстановления, который при использовании следует хранить в безопасном месте. FileVault также предлагает возможность использовать iCloud для восстановления.

Проверьте состояние FileVault:```bash
fdesetup status

Режим блокировки

Режим блокировки значительно снижает поверхность атаки, отключая системные и прикладные функции, которые часто используются при сложных атаках.

Когда режим блокировки включён, в Safari есть возможность исключить доверенные веб-сайты из ограничений.

Брандмауэр

Для macOS доступно несколько типов брандмауэров.

[!NOTE] Если вредоносное ПО получит контроль администратора, оно может отключить или обойти политики брандмауэра; не полагайтесь на локальный брандмауэр как на надёжную защиту от полной компрометации системы.

Брандмауэр уровня приложений

Встроенный брандмауэр обеспечивает базовую защиту и блокирует только входящие соединения. Он не может отслеживать или блокировать исходящие соединения.

Управлять им можно через вкладку Брандмауэр в разделе Сеть в Системных настройках или с помощью следующей команды:```bash sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on

root@kitploit:~
### Режим скрытности

Злоумышленники часто сканируют сети, чтобы обнаружить цели для атаки. Когда включен [режим скрытности](https://support.apple.com/guide/mac-help/use-stealth-mode-to-keep-your-mac-more-secure-mh17133/mac), ответы на попытки подключения к закрытым портам не отправляются, что делает систему более труднодоступной для обнаружения.

Включите режим скрытности:```bash
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode on

Подписанные приложения

По умолчанию брандмауэр разрешает входящие подключения для программного обеспечения, подписанного Apple или идентифицированным разработчиком. Отключение этих правил заставляет macOS спрашивать разрешение перед тем, как разрешить приложению принимать входящие подключения:```bash sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsigned off sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsignedapp off

root@kitploit:~
### Перезагрузка брандмауэра

После изменения настроек с помощью `socketfilterfw` перезагрузите службу брандмауэра, чтобы применить новую конфигурацию:```bash
sudo pkill -HUP socketfilterfw

Получить состояние

Подтвердить состояние брандмауэра:```bash for firewallFlag in
--getglobalstate
--getblockall
--getallowsigned
--getstealthmode
--listapps do /usr/libexec/ApplicationFirewall/socketfilterfw "$firewallFlag" done

root@kitploit:~
Или с помощью [system profiler](https://ss64.com/mac/system_profiler.html):```bash
system_profiler SPFirewallDataType

AirDrop

Включение межсетевого экрана уровня приложений и отключение входящих подключений для встроенного ПО препятствует работе AirDrop. Чтобы AirDrop работал, предоставьте исключения брандмауэра для sharingd и rapportd:```bash sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/libexec/rapportd sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/libexec/sharingd sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/libexec/rapportd sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/libexec/sharingd

root@kitploit:~
## Сторонние брандмауэры

Такие приложения, как [Little Snitch](https://www.obdev.at/products/littlesnitch/index.html), [Radio Silence](https://radiosilenceapp.com/) и [LuLu](https://objective-see.com/products/lulu.html), обеспечивают баланс между удобством использования и безопасностью.

Эти программы способны отслеживать и блокировать как входящие, так и исходящие соединения. Однако для них может потребоваться [системное расширение](https://support.apple.com/HT210999) с закрытым исходным кодом.

Если частые запросы на разрешение или блокировку становятся утомительными, временно разрешите соединения, одновременно записывая их ([режим Silent Allow](https://help.obdev.at/littlesnitch6/concepts-opmodes) в Little Snitch). Изучите конфигурацию, чтобы понять и контролировать сетевую активность.

## Пакетный фильтр

macOS также включает [pf](https://en.wikipedia.org/wiki/PF_(firewall)) — межсетевой экран с фильтрацией пакетов, настраиваемый из командной строки. Он мощный, но значительно сложнее встроенного брандмауэра приложений.

pf также можно управлять с помощью графического приложения, например [Murus](https://www.murusfirewall.com/).

Многие [книги](https://nostarch.com/book-of-pf-4e) и [руководства](https://www.openbsd.org/faq/pf/) посвящены межсетевому экрану pf. В следующем примере показано, как настроить базовую политику.

### Пример конфигурации pf

Добавьте следующие правила в файл с именем `pf.rules`:```console
# Define interface
wifi = "en0"

# Global options
set block-policy drop
set skip on lo0
set state-policy if-bound
set ruleset-optimization basic

# Normalize
scrub in on $wifi all fragment reassemble

# Define tables
table <blocklist> persist

# Deny and log blocked traffic
block log all
block quick from no-route to any
antispoof quick for $wifi

# Enforce blocklist
block log quick on $wifi from <blocklist> to any
block log quick on $wifi from any to <blocklist>

# Allow DHCP
pass out on $wifi proto udp from any port 68 to any port 67 keep state
pass in  on $wifi proto udp from any port 67 to any port 68 keep state

# Allow outbound TCP
pass out on $wifi proto tcp from ($wifi) to any flags S/SA keep state

# Allow outbound UDP
pass out on $wifi proto udp from ($wifi) to any keep state

# Allow outbound ICMP (ping)
pass out on $wifi proto icmp from ($wifi) to any keep state

An advanced example of configuring pf is available in pf/pf.rules.

Команды межсетевого экрана

Для управления межсетевым экраном:

CommandTask
sudo pfctl -e -f pf.rulesвключить межсетевой экран с файлом конфигурации
sudo pfctl -t blocklist -T add 1.2.3.4добавить IPv4-адрес в таблицу blocklist
sudo pfctl -dотключить межсетевой экран

Для мониторинга межсетевого экрана:

Блокировка сетей

pf может блокировать диапазоны сетевых адресов, например, целую организацию. Запросите Merit RADb для получения списка сетей, используемых автономной системой (большая сеть, управляемая одной организацией), например Facebook:```bash whois -h whois.radb.net '!gAS32934'

root@kitploit:~
Добавьте возвращённый список сетей в блок-лист:```bash
sudo pfctl -t blocklist -T add $(whois -h whois.radb.net '!gAS32934' | sed -n '2p')

Подтвердите, что адреса были добавлены:```console $ sudo pfctl -t blocklist -T show No ALTQ support in kernel ALTQ related functions disabled 31.13.24.0/21 31.13.64.0/24 157.240.0.0/16 ...

root@kitploit:~
Убедитесь, что сетевой трафик к этим адресам заблокирован (DNS-запросы по-прежнему будут работать):```console
$ dig a +short facebook.com
157.240.2.35

$ curl --connect-timeout 5 -I https://facebook.com/
*   Trying 157.240.2.35...
* TCP_NODELAY set
* Connection timed out after 5002 milliseconds
* Closing connection 0
curl: (28) Connection timed out after 5002 milliseconds

$ sudo tcpdump -tqni pflog0 'host 157.240.2.35'
IP 192.168.1.1.62771 > 157.240.2.35.443: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.443: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.443: tcp 0

Брандмауэр отбрасывает начальные пакеты, необходимые для установления TCP-соединения, поэтому соединение истекает по тайм-ауту.

См. drduh/config/scripts/pf-blocklist.sh для дополнительных идей.

Службы

Многие системные и пользовательские фоновые службы управляются launchd.

Учетные записи администратора могут изменять службы и расширения в Системных настройках.

Чтобы прочитать конфигурацию службы:```bash defaults read /System/Library/LaunchAgents/com.apple.Finder

root@kitploit:~
> [!IMPORTANT]
> Системные службы защищены с помощью [SIP](https://github.com/drduh/macOS-Security-and-Privacy-Guide#system-integrity-protection); отключение SIP для изменения системных служб может поставить под угрозу безопасность и вызвать нестабильность системы.

Чтобы просмотреть статус служб:```bash
find /var/db/com.apple.xpc.launchd \
  -type f -print -exec defaults read {} \; 2>/dev/null

Дополнительную информацию см. в разделах управление скриптами с помощью launchd и launchd.info.

Предложения Siri и Spotlight

Предложения Siri и Spotlight могут отправлять в Apple некоторые запросы или сведения об использовании, в зависимости от включённых функций. В Системных настройках найдите Siri и Spotlight, затем отключите онлайн-предложения и настройте категории, которые следует исключить из индексации или предложений. Ознакомьтесь с политикой Apple «Поиск и конфиденциальность» для получения дополнительной информации.

Homebrew

Если программа недоступна в App Store, рассмотрите возможность использования Homebrew.

[!IMPORTANT] Некоторые процессы установки или управления Homebrew могут запрашивать разрешения на управление приложениями (App Management) или полный доступ к диску. Предоставляйте эти разрешения только тогда, когда они полностью понятны и необходимы.

Периодически запускайте brew upgrade в доверенных и безопасных сетях для установки обновлений программного обеспечения. Чтобы получить информацию о пакете перед установкой, выполните brew info <package> и просмотрите его формулу онлайн. Включите дополнительные параметры безопасности, например HOMEBREW_NO_INSECURE_REDIRECT=1

Согласно анонимной аналитике Homebrew, Homebrew собирает анонимные данные об использовании и отправляет их в самостоятельно размещённый экземпляр InfluxDB.

Чтобы отказаться от аналитики Homebrew, выполните brew analytics off или задайте HOMEBREW_NO_ANALYTICS=1 в стартовом файле оболочки.

DNS

Профили DNS

В macOS есть «профили конфигурации DNS» для настройки шифрованного DNS, фильтрации и DNSSEC.

Профили DNS можно создать или получить от таких провайдеров, как Quad9, AdGuard и NextDNS.

Файл hosts

Используйте файл hosts, чтобы блокировать домены, связанные с вредоносным ПО, рекламой и другими нежелательными сервисами.

Чтобы заблокировать домен по A-записи, добавьте одну из следующих строк в /etc/hosts:``` 0 example.com 0.0.0.0 example.com 127.0.0.1 example.com

root@kitploit:~
> [!NOTE]
> В IPv6 используются AAAA-записи, а не A-записи: блокируйте IPv6-подключения, добавляя записи вида `::1 example.com`.

В интернете доступно множество списков доменов. Прежде чем добавлять какой-либо из них в `/etc/hosts`, убедитесь, что каждая запись начинается с `0`, `0.0.0.0` или `127.0.0.1`, и сохраните запись `127.0.0.1 localhost`.

Популярные списки hosts:
- [StevenBlack/hosts](https://github.com/StevenBlack/hosts)
- [Sinfonietta/hostfiles](https://github.com/Sinfonietta/hostfiles)
- [someonewhocares.org](https://someonewhocares.org/hosts/zero/hosts)

Чтобы загрузить список и добавить его в файл hosts, используйте команду [tee](https://man7.org/linux/man-pages/man1/tee.1.html):```bash
curl https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts |
  sudo tee -a /etc/hosts

Little Snitch также поддерживает блок-списки.

DNSCrypt

Чтобы зашифровать DNS-трафик, рассмотрите DNSCrypt/dnscrypt-proxy. При настройке с доверенным резолвером DNSCrypt шифрует DNS-запросы. DNSSEC дополнительно может проверять подписанные DNS-ответы там, где это поддерживается.

Установите DNSCrypt через Homebrew и следуйте инструкциям, чтобы настроить и запустить dnscrypt-proxy:```bash brew install dnscrypt-proxy

root@kitploit:~
При использовании DNSCrypt с Dnsmasq найдите файл конфигурации DNSCrypt, выполнив следующую команду:```bash
brew info dnscrypt-proxy | grep dnscrypt-proxy.toml | head -1

Эта команда должна вывести путь, например /opt/homebrew/etc/dnscrypt-proxy.toml.

По умолчанию dnscrypt-proxy прослушивает 127.0.0.1:53 и отправляет запросы одному или нескольким настроенным DNS-провайдерам. Измените конфигурацию и укажите в listen_addresses порт, отличный от 53, например 5355:```toml listen_addresses = ['127.0.0.1:5355', '[::1]:5355']

root@kitploit:~
Запуск DNSCrypt:```bash
sudo brew services restart dnscrypt-proxy

Убедитесь, что DNSCrypt запущен:```console $ sudo lsof +c 15 -Pni UDP:5355 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dnscrypt-proxy 15244 nobody 7u IPv4 0x1337f85ff9f8beef 0t0 UDP 127.0.0.1:5355 dnscrypt-proxy 15244 nobody 10u IPv6 0x1337f85ff9f8beef 0t0 UDP [::1]:5355 dnscrypt-proxy 15244 nobody 12u IPv4 0x1337f85ff9f8beef 0t0 UDP 127.0.0.1:5355 dnscrypt-proxy 15244 nobody 14u IPv6 0x1337f85ff9f8beef 0t0 UDP [::1]:5355

root@kitploit:~
Кроме того, эти правила pf блокируют обычный DNS-трафик на порт 53 за пределами интерфейса loopback, чтобы снизить риск [утечек DNS](https://dnsleaktest.com/):```console
block drop quick on !lo0 proto udp from any to any port = 53
block drop quick on !lo0 proto tcp from any to any port = 53

Dnsmasq

dnsmasq может кэшировать ответы, предотвращать вышестоящие запросы для неквалифицированных имён и блокировать целые домены верхнего уровня.

Используйте его в сочетании с DNSCrypt для шифрования DNS-трафика.

Если вы не используете DNSCrypt, как минимум выберите DNS-резолвер, отличный от того, который предоставляет интернет-провайдер. Две популярные альтернативы: Google DNS и OpenDNS.

Установите Dnsmasq:```bash brew install dnsmasq

root@kitploit:~
Скачайте и отредактируйте [drduh/config/dnsmasq.conf](https://github.com/drduh/config/blob/main/dnsmasq.conf) или файл конфигурации по умолчанию.

Примеры списков доменов, которые можно добавить для блокировки определённых адресов, смотрите в [drduh/config/domains](https://github.com/drduh/config/tree/main/domains).

Установите и запустите программу (для привязки к [привилегированному порту](https://unix.stackexchange.com/questions/16564/why-are-the-first-1024-ports-restricted-to-the-root-user-only) 53 требуются права sudo):```bash
sudo brew services start dnsmasq

Чтобы настроить dnsmasq в качестве локального DNS-сервера, откройте Системные настройки > Сеть и выберите используемое в данный момент сетевое подключение (например, Wi-Fi), затем откройте вкладку DNS, выберите + и добавьте 127.0.0.1, или используйте:```bash sudo networksetup -setdnsservers "Wi-Fi" 127.0.0.1

root@kitploit:~
Убедитесь, что Dnsmasq настроен:```console
$ scutil --dns | head
DNS configuration

resolver #1
  search domain[0] : whatever
  nameserver[0] : 127.0.0.1
  flags    : Request A records, Request AAAA records
  reach    : 0x00030002 (Reachable,Local Address,Directly Reachable Address)

$ networksetup -getdnsservers "Wi-Fi"
127.0.0.1

[!NOTE] Некоторые VPN-приложения переопределяют настройки DNS при подключении. См. issue 24 и drduh/config/scripts/macos-dns.sh.

Центры сертификации

macOS включает набор доверенных корневых центров сертификации (CA), управляемых корпорациями, правительствами и другими организациями по всему миру. Доверенный CA может выпускать сертификаты, которые macOS и браузеры могут принимать для HTTPS-соединений, что делает хранилище корневых CA критически важной частью доверительной границы системы.

Проверьте System Roots, чтобы понять, как выглядит предоставляемое Apple хранилище доверенных корней, с помощью Keychain Access или инструмента командной строки security и файла /System/Library/Keychains/SystemRootCertificates.keychain. Keychain Access также можно запустить командой:```bash open "/System/Library/CoreServices/Applications/Keychain Access.app"

root@kitploit:~
Также проверьте все сертификаты, которые могли быть добавлены пользователем, администратором, VPN-клиентом, средством безопасности или приложением управления мобильными устройствами, в связках ключей **login**, **Local Items** и **System**.

Чтобы отключить выбранный сертификат, измените его параметр доверия на **Never Trust** и закройте окно для подтверждения. Это может снизить риск атак [MITM](https://wikipedia.org/wiki/Man-in-the-middle_attack), при которых мошеннический сертификат используется для [скрытого перехвата](https://en.wikipedia.org/wiki/DigiNotar#Issuance_of_fraudulent_certificates) зашифрованного трафика.

> [!WARNING]
> Удаление или изменение параметров доверия к центрам сертификации может нарушить работу веб-сайтов, обновлений ПО, корпоративных сетей, VPN, captive-порталов и других сервисов.

См. списки [доступных доверенных сертификатов](https://support.apple.com/103723) и [заблокированных сертификатов](https://support.apple.com/103247#blocked) Apple для получения актуальной информации о хранилище доверия.

# Privoxy

Рассмотрите возможность использования [Privoxy](https://www.privoxy.org/) в качестве локального прокси для фильтрации веб-трафика.

Установите и запустите Privoxy с помощью Homebrew:```bash
brew install privoxy
brew services start privoxy

В качестве альтернативы, подписанный установочный пакет для Privoxy доступен на их веб-сайте или Sourceforge. Подписанный пакет более безопасен, чем версия Homebrew, и получает поддержку от проекта Privoxy.

По умолчанию Privoxy прослушивает локальный TCP-порт 8118.

Установите системный HTTP-прокси для активного сетевого интерфейса на 127.0.0.1 и порт 8118:```bash sudo networksetup -setwebproxy "Wi-Fi" 127.0.0.1 8118

root@kitploit:~
Настройте системный **HTTPS** прокси:```bash
sudo networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 8118

Прокси-сервер также можно настроить в Системные настройки > Сеть > Детали > Прокси.

Убедитесь, что прокси настроен:```console $ scutil --proxy { ExceptionsList : { 0 : *.local 1 : 169.254/16 } FTPPassive : 1 HTTPEnable : 1 HTTPPort : 8118 HTTPProxy : 127.0.0.1 HTTPSEnable : 1 HTTPSPort : 8118 HTTPSProxy : 127.0.0.1 }

root@kitploit:~
Хотя большая часть веб-трафика зашифрована, Privoxy может фильтровать запросы по имени хоста. Например, следующие правила блокируют весь трафик, кроме трафика к доменам .net, github.com и Apple:```console
{ +block{all} }
.

{ -block }
.apple.
.github.com
.net

Чтобы заблокировать домены Facebook:```console { +block{facebook} } .cdninstagram. .facebook*. .fb. .fbcdn*. .fbinfra. .fbsbx. .fbstatic*. .fbsv. .fburl. .instagr.am .tfbnw. .thefacebook. fb*.akamaihd.net

root@kitploit:~
См. [drduh/config/privoxy/config](https://github.com/drduh/config/blob/main/privoxy/config) и [drduh/config/privoxy/user.action](https://github.com/drduh/config/blob/main/privoxy/user.action) для дополнительных примеров Privoxy. Privoxy **не** нужно перезапускать после редактирования правил фильтрации.

Чтобы проверить, блокируется или перенаправляется ли трафик, используйте [curl](https://en.wikipedia.org/wiki/CURL) или откройте интерфейс Privoxy по адресу <http://p.p> в браузере:```console
$ ALL_PROXY=127.0.0.1:8118 curl example.com -IL | head
HTTP/1.1 403 Request blocked by Privoxy
Content-Length: 9001
Content-Type: text/html
Cache-Control: no-cache
Pragma: no-cache

$ ALL_PROXY=127.0.0.1:8118 curl github.com -IL | head
HTTP/1.1 302 Local Redirect from Privoxy
Location: https://github.com/
Content-Length: 0

HTTP/1.1 200 Connection established

HTTP/2 200
content-type: text/html; charset=utf-8

[!NOTE] Приложения и службы могут игнорировать настройки прокси. pf может перенаправлять трафик через прокси без отдельной настройки каждого приложения.

Браузер

Веб-браузеры создают значительные риски для безопасности и конфиденциальности, поскольку они загружают и выполняют недоверенный интернет-контент.

Ключевая граница безопасности браузера — политика одинакового источника (SOP), которая не позволяет одному веб-сайту читать данные другого веб-сайта. Её обход может раскрыть данные или действия с других сайтов в том же профиле браузера.

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

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

Используйте отдельные профили браузера для разных личностей и целей. Если это практично, отключите JavaScript и разрешайте его только на доверенных сайтах с помощью разрешений сайта браузера.

Mozilla Firefox, Google Chrome, Safari и Tor Browser — популярные браузеры, каждый со своими уникальными возможностями и назначением.

Firefox

Firefox модернизировал значительные части своей кодовой базы в рамках проектов Quantum и Photon. Quantum включает перенос некоторых компонентов с C++ на Rust — язык программирования, разработанный для повышения безопасности памяти и безопасности параллелизма.

Firefox предлагает модель безопасности, сопоставимую с Chrome, включая программу вознаграждений за обнаружение ошибок за ответственное раскрытие уязвимостей. Firefox придерживается четырёхнедельного цикла выпуска.

См. drduh/config/firefox.user.js и arkenfox/user.js для рекомендуемых конфигураций. Также см. NoScript — расширение, которое позволяет выборочно блокировать скрипты.

Firefox уделяет внимание конфиденциальности пользователей. Он поддерживает защиту от отслеживания в режиме приватного просмотра. Защиту от отслеживания можно включить для обычной учётной записи, хотя это может ухудшить работу на некоторых сайтах. Firefox в строгом режиме защиты от отслеживания будет рандомизировать отпечатки пальцев для защиты от отслеживания. Firefox предлагает отдельные профили пользователя. Просмотр также можно разделять с помощью Multi-Account Containers.

Firefox поддерживает только веб-расширения через WebExtension API, который очень похож на Chrome. Подача веб-расширений в Firefox бесплатна. Веб-расширения в Firefox в большинстве случаев имеют открытый исходный код, хотя некоторые веб-расширения являются проприетарными.

Chrome

Google Chrome основан на открытом проекте Chromium. Chrome включает некоторые проприетарные компоненты, автоматические обновления, просмотрщик PDF, поддержку медиа-кодеков, отправку сведений о сбоях и интеграцию с учётной записью Google. Для получения дополнительной информации ознакомьтесь с настройками конфиденциальности Chrome и политиками конфиденциальности Google.

Chrome предлагает синхронизацию учётной записи между несколькими устройствами, включая учётные данные; данные шифруются паролем учётной записи.

Chrome имеет самую большую долю мирового использования и является предпочтительной целевой платформой для большинства разработчиков. Крупные технологии основаны на открытых компонентах Chrome, таких как node.js, использующий движок V8 от Chrome, и фреймворк Electron, основанный на Chromium и node.js. Огромная база пользователей Chrome делает его самой привлекательной целью для злоумышленников и исследователей безопасности. Несмотря на постоянные атаки, Chrome на протяжении многих лет сохранял впечатляющие показатели безопасности. Это немалый подвиг.

Chrome предлагает отдельные профили, надёжную изоляцию (sandboxing), частые обновления и имеет впечатляющие показатели. Кроме того, Google предлагает очень щедрую программу вознаграждений за сообщение об уязвимостях, а также собственную команду Project Zero. Это означает, что большое количество высококвалифицированных и мотивированных людей постоянно проверяют и защищают код Chrome.

Рассмотрите возможность отключения оптимизации V8 (функций производительности JavaScript-движка) в настройках браузера — см. это объяснение о компромиссах безопасности.

Блокируйте трекеры с помощью uBlock Origin Lite.

Отключите предварительную выборку DNS (см. DNS Prefetching and Its Privacy Implications). Chrome может пытаться разрешать DNS с использованием публичных DNS-серверов Google 8.8.8.8 и 8.8.4.4.

См. Безопасность Chromium и Конфиденциальность Chromium для получения дополнительной информации. Прочтите политику конфиденциальности Google, чтобы понять, как собираются и используются личные данные.

Safari

Safari — встроенный браузер Apple, интегрированный с macOS и обеспечивающий повышение эффективности работы от аккумулятора на оборудовании Apple.

Safari имеет как открытые, так и проприетарные компоненты. Safari основан на открытом веб-движке WebKit, который широко распространён в экосистеме macOS. WebKit используется приложениями Apple, такими как Mail, Books и App Store. Движок Chrome Blink является ответвлением WebKit, и оба движка имеют ряд сходств.

Safari поддерживает некоторые уникальные функции, которые повышают безопасность и конфиденциальность пользователей. Блокировщики контента позволяют создавать правила блокировки контента без использования JavaScript. Такой подход на основе правил значительно улучшает использование памяти, безопасность и конфиденциальность. Safari 11 представил Intelligent Tracking Prevention, которая удаляет данные отслеживания, хранящиеся в Safari, после периода бездействия пользователя на сайте трекера. Safari может рандомизировать отпечаток браузера для уменьшения отслеживания. Safari намеренно не поддерживает некоторые функции, такие как WebUSB или Battery API, по соображениям безопасности и конфиденциальности. Приватные вкладки в Safari имеют изолированные файлы cookie и кэш, которые уничтожаются при закрытии вкладки. Safari также поддерживает профили, эквивалентные Multi-Account Containers в Firefox, для разделения файлов cookie и просмотра. Safari можно сделать значительно более безопасным с помощью режима блокировки, который можно отключать для отдельных сайтов. Подробнее о защите от отслеживания в Safari.

Веб-расширения в Safari, помимо Web Extension API, имеют дополнительную возможность использования нативного кода в песочнице Safari. Веб-расширения в Safari также распространяются через Apple App Store. Публикация в App Store даёт дополнительное преимущество: код веб-расширений проверяется Apple. С другой стороны, публикация в App Store стоит немалых денег. Ежегодная подписка разработчика стоит 100 долларов США (в отличие от сбора в 5 долларов в Chrome и бесплатной подачи в Firefox). Высокая стоимость является препятствием для большинства разработчиков открытого ПО. В результате в Safari очень мало расширений на выбор. Однако помните о высокой стоимости при установке расширений. Ожидается, что большинство веб-расширений будут иметь какой-то способ монетизации использования для покрытия затрат на разработку. Избегайте веб-расширений без доступного для проверки открытого исходного кода.

Safari синхронизирует пользовательские настройки и пароли с iCloud Keychain. Для просмотра сохранённого пароля требуется аутентификация с помощью пароля текущей учётной записи устройства или другого настроенного метода аутентификации.

Safari внедряет новые веб-функции медленнее, чем Chrome или Firefox, но исправления безопасности доставляются быстро через системные обновления.

См. также el1t/uBlock-Safari, чтобы отключить маячки аудита гиперссылок.

Конфиденциальность веб-браузера

Веб-сайты получают информацию о браузере и устройстве на основе настроек, шрифтов, размера экрана, языка, IP-адреса и поведения браузера. Эта информация способствует формированию цифрового отпечатка браузера.

Для получения дополнительной информации о безопасном просмотре веб-страниц и о том, какие данные отправляет браузер, см. ресурсы Как пользоваться браузером с учётом конфиденциальности и безопасности, browserleaks.com, Am I Unique? и EFF Cover Your Tracks.

Чтобы уменьшить межсайтовое отслеживание, блокируйте сторонние файлы cookie.

Также помните о WebRTC, который может раскрывать локальные или публичные (при подключении к VPN) IP-адреса. В Firefox и Chrome/Chromium эту функцию можно отключить с помощью uBlock Origin. Режим блокировки также отключает WebRTC в Safari.

Tor

Tor — это анонимная сеть, которая может обеспечить дополнительную конфиденциальность при просмотре веб-страниц. Tor Browser — это модифицированный браузер на основе Firefox, настроенный на использование сети Tor.

Скачайте Tor Browser с сайта Tor Project, включая файлы dmg и asc для проверки:```console $ cd ~/Downloads

$ file tor-browser-macos-* tor-browser-macos-15.0.17.dmg: XZ compressed data, checksum NONE tor-browser-macos-15.0.17.dmg.asc: PGP signature Signature (old)

$ gpg --verify tor-browser-macos-*.asc [...] gpg: Can't check signature: No public key

$ gpg --auto-key-locate nodefault,wkd --locate-keys [email protected] gpg: key 0x4E2C6E8793298290: public key "Tor Browser Developers (signing key) [email protected]" imported gpg: Total number processed: 1 gpg: imported: 1 pub rsa4096/0x4E2C6E8793298290 2014-12-15 [C] [expires: 2027-07-15] Key fingerprint = EF6E 286D DA85 EA2A 4BA7 DE68 4E2C 6E87 9329 8290 uid [ unknown] Tor Browser Developers (signing key) [email protected] sub rsa4096/0x157432CF78A65729 2024-07-15 [S] [expires: 2026-10-26] Key fingerprint = CAAE 408A EBE2 288E 96FC 5D5E 1574 32CF 78A6 5729

$ gpg --verify tor-browser-macos-*.asc gpg: assuming signed data in 'tor-browser-macos-15.0.17.dmg' gpg: Signature made Sun Jun 28 15:35:20 2026 PDT gpg: using RSA key CAAE408AEBE2288E96FC5D5E157432CF78A65729 gpg: Good signature from "Tor Browser Developers (signing key) [email protected]" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: EF6E 286D DA85 EA2A 4BA7 DE68 4E2C 6E87 9329 8290 Subkey fingerprint: CAAE 408A EBE2 288E 96FC 5D5E 1574 32CF 78A6 5729

root@kitploit:~
Убедитесь, что в выводе присутствует `Good signature from "Tor Browser Developers (signing key) <[email protected]>"`. Предупреждение ожидаемо, поскольку ключ не был лично проверен и добавлен в доверенную связку ключей.

Дополнительную информацию см. в статье [Как проверить подпись Tor Browser?](https://support.torproject.org/tbb/how-to-verify-signature/).

Чтобы завершить установку Tor Browser, откройте образ диска и перетащите его в папку Applications или используйте команды:```bash
hdiutil mount tor-browser-macos-15.0.17.dmg
cp -r /Volumes/Tor\ Browser/Tor\ Browser.app/ ~/Applications/

Проверьте, что приложение подписано идентификатором разработчика Apple проекта Tor (MADPSAYN6T):```console $ spctl --assess -vv ~/Applications/Tor\ Browser.app /Users/user1/Applications/Tor Browser.app: accepted source=Notarized Developer ID origin=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)

$ pkgutil --check-signature ~/Applications/Tor\ Browser.app Package "Tor Browser.app": Status: signed by a certificate trusted by macOS Certificate Chain: 1. Developer ID Application: The Tor Project, Inc (MADPSAYN6T) Expires: 2028-10-11 17:57:46 +0000 SHA256 Fingerprint: 76 3C 89 02 ED CB AD 8E 59 86 1E 93 D3 05 5B 28 F9 04 0C 96 03 8B 16 28 9F 38 64 ED 53 45 B4 DA ------------------------------------------------------------------------ 2. Developer ID Certification Authority Expires: 2031-09-17 00:00:00 +0000 SHA256 Fingerprint: F1 6C D3 C5 4C 7F 83 CE A4 BF 1A 3E 6A 08 19 C8 AA A8 E4 A1 52 8F D1 44 71 5F 35 06 43 D2 DF 3A ------------------------------------------------------------------------ 3. Apple Root CA Expires: 2035-02-09 21:40:36 +0000 SHA256 Fingerprint: B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C 68 C5 BE 91 B5 A1 10 01 F0 24

root@kitploit:~
Команда `codesign` также может использоваться для проверки подписи кода приложения:```console
$ codesign -dvv ~/Applications/Tor\ Browser.app
Executable=/Users/user1/Applications/Tor Browser.app/Contents/MacOS/firefox
Identifier=org.torproject.torbrowser
Format=app bundle with Mach-O universal (x86_64 arm64)
CodeDirectory v=20500 size=805 flags=0x10000(runtime) hashes=14+7 location=embedded
Signature size=9054
Authority=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=Jun 28, 2026 at 14:01:57
Notarization Ticket=stapled
Info.plist entries=27
TeamIdentifier=MADPSAYN6T
Runtime Version=15.5.0
Sealed Resources version=2 rules=13 files=208
Internal requirements count=1 size=188

Чтобы просмотреть полные сведения о сертификате подписанного приложения, извлеките их с помощью codesign и декодируйте с помощью openssl:```console $ codesign -d --extract-certificates ~/Applications/Tor\ Browser.app Executable=/Users/user1/Applications/Tor Browser.app/Contents/MacOS/firefox

$ file codesign* codesign0: Certificate, Version=3 codesign1: Certificate, Version=3 codesign2: Certificate, Version=3 Certificate, Version=02

$ openssl x509 -inform der -in codesign0 -subject -issuer -startdate -enddate -noout subject= /UID=MADPSAYN6T/CN=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)/OU=MADPSAYN6T/O=The Tor Project, Inc/C=US issuer= /CN=Developer ID Certification Authority/OU=G2/O=Apple Inc./C=US notBefore=Oct 11 17:57:47 2023 GMT notAfter=Oct 11 17:57:46 2028 GMT

$ openssl x509 -inform der -in codesign0 -fingerprint -noout SHA256 Fingerprint=76:3C:89:02:ED:CB:AD:8E:59:86:1E:93:D3:05:5B:28:F9:04:0C:96:03:8B:16:28:9F:38:64:ED:53:45:B4:DA

root@kitploit:~
Tor Browser может использовать специальные методы подключения, называемые [подключаемыми транспортами](https://support.torproject.org/tor-browser/circumvention/), чтобы затруднить идентификацию или блокировку трафика. Это можно сделать, настроив [ретранслятор](https://support.torproject.org/relays/) или используя существующий [мост](https://bridges.torproject.org/).

Сеть Tor обеспечивает [анонимность](https://www.privateinternetaccess.com/blog/2013/10/how-does-privacy-differ-from-anonymity-and-why-are-both-important/), что не обязательно то же самое, что приватность. Сеть не защищает от глобального наблюдателя, способного к анализу трафика и корреляции. См. также [В поисках анонимности в интернет-паноптикуме](https://bford.info/pub/net/panopticon-cacm.pdf) и [Корреляцию трафика в Tor реальными противниками](https://www.ohmygodel.com/publications/usersrouted-ccs13.pdf).

См. [Спецификацию протокола Tor](https://spec.torproject.org/tor-spec/) для получения дополнительной информации.

Также см. [Invisible Internet Project (I2P)](https://geti2p.net/en/about/intro) и его [сравнение с Tor](https://geti2p.net/en/comparison/tor).

# VPN

Выберите VPN-провайдера или самостоятельно развёрнутое решение с документированным современным протоколом и клиентами, прошедшими тщательный аудит. Избегайте устаревших протоколов, таких как [PPTP](https://en.wikipedia.org/wiki/Point-to-Point_Tunneling_Protocol#Security), в пользу [OpenVPN](https://en.wikipedia.org/wiki/OpenVPN) или [WireGuard](https://www.wireguard.com/) [на Linux VM](https://github.com/mrash/Wireguard-macOS-LinuxVM) или через набор [кроссплатформенных инструментов](https://www.wireguard.com/xplatform/).

Некоторые VPN-клиенты могут отправлять трафик через следующий доступный сетевой интерфейс при прерывании или разрыве соединения. См. [scy/8122924](https://gist.github.com/scy/8122924) для примера, как разрешить трафик только через VPN.

См. руководства по настройке VPN на основе [IPsec](https://en.wikipedia.org/wiki/Ipsec) на виртуальной машине ([hwdsl2/setup-ipsec-vpn](https://github.com/hwdsl2/setup-ipsec-vpn)) или в Docker-контейнере ([hwdsl2/docker-ipsec-vpn-server](https://github.com/hwdsl2/docker-ipsec-vpn-server)).

Возможно, стоит рассмотреть географическое расположение VPN-провайдера. Дальнейшее обсуждение см. в [issue 114](https://github.com/drduh/macOS-Security-and-Privacy-Guide/issues/114).

Также см. этот [технический обзор](https://blog.timac.org/2018/0717-macos-vpn-architecture/) встроенного в macOS VPN-клиента L2TP/IPsec и [IKEv2](https://en.wikipedia.org/wiki/IKEv2).

# PGP/GPG

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

GPG (GNU Privacy Guard) — это программа с открытым исходным кодом, распространяемая под лицензией GPL и соответствующая стандарту PGP. Она может проверять подписи программного обеспечения и шифровать файлы [симметрично](https://en.wikipedia.org/wiki/Symmetric-key_algorithm) или с использованием [открытых ключей](https://en.wikipedia.org/wiki/Public-key_cryptography).

Установите GnuPG через Homebrew (`brew install gnupg`) или установите [GPG Suite](https://gpgtools.org/).

Загрузите [gpg.conf](https://github.com/drduh/YubiKey-Guide/blob/main/config/gpg.conf), чтобы использовать рекомендуемые настройки:```bash
curl -o ~/.gnupg/gpg.conf \
  https://raw.githubusercontent.com/drduh/YubiKey-Guide/main/config/gpg.conf

См. drduh/YubiKey-Guide для создания учётных данных и управления ими.

Электронная почта

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

Thunderbird

Thunderbird — бесплатный почтовый клиент с открытым исходным кодом, поддерживающий стандартные IMAP, POP, CalDAV и CardDAV. Это подходящий выбор для доступа к почте и сохранения локальных копий вместо исключительной зависимости от удалённого сервера поставщика.

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

Функция архивирования сообщений позволяет перемещать сообщения с удалённых почтовых серверов в локальную папку, повышая конфиденциальность.

Мессенджеры

XMPP

XMPP — это открытый протокол, разработанный IETF, который поддерживает кроссплатформенный федеративный обмен сообщениями. Существует множество вариантов клиентов. Рассмотрите возможность использования одного из браузерных клиентов, чтобы воспользоваться песочницей браузера.

В зависимости от поставщика вам может не понадобиться ничего, кроме имени пользователя и пароля, для создания учётной записи.

XMPP не является сквозным шифрованием (E2EE) по умолчанию; используйте OMEMO с совместимым клиентом.

Signal

Signal — популярный мессенджер с сквозным шифрованием, чей протокол double-ratchet используется во многих других приложениях, включая WhatsApp, Google Messages и Facebook Messenger.

Для использования настольного приложения Signal необходимо сначала установить Signal на телефон.

Дополнительные рекомендации см. в руководстве по Signal от EFF.

iMessage

iMessage — это фирменный мессенджер Apple. Для его использования требуется учётная запись Apple.

Включите проверку ключей контактов и проверяйте контакты.

iMessage можно использовать с номером телефона или адресом электронной почты.

[!WARNING] По умолчанию включена резервная копия iCloud, которая сохраняет копии ключей шифрования сообщений на серверах Apple без E2EE. Чтобы предотвратить это, либо отключите резервное копирование iCloud, либо включите расширенную защиту данных. Напомните получателям сообщений сделать то же самое.

Вредоносное ПО

См. Methods of malware persistence on Mac OS X и Malware Persistence on OS X Yosemite, чтобы узнать, как обычно сохраняется вредоносное ПО в macOS.

Примеры расширенных возможностей вредоносного ПО для macOS см. в материалах Hacking Team. Для дальнейшего анализа см. root installation for MacOS, support driver for Mac Agent и RCS Agent for Mac.

Также см. A Brief Analysis of an RCS Implant Installer и reverse.put.as.

Загрузка программного обеспечения

Приложения из App Store или нотариально заверенные Apple могут снизить риск вредоносного ПО, но ни один из этих процессов не гарантирует безопасность. Apple выполняет автоматические проверки нотариально заверенных приложений, а приложения App Store проходят проверку. В остальных случаях получайте программное обеспечение из источников, указанных разработчиком как официальные, и убедитесь, что загрузка с веб-сайта или из командной строки использует HTTPS.

App Sandbox

Проверьте, использует ли приложение App Sandbox:```bash codesign --display --entitlements -
/System/Applications/Calculator.app 2>&1 | grep -A2 com.apple.security.app-sandbox

root@kitploit:~
При включенном App Sandbox вывод должен быть:```console
[Key] com.apple.security.app-sandbox
[Value]
    [Bool] true

Activity Monitor также может показывать, включён ли он, при отображении столбца «Sandbox»:```bash defaults write com.apple.ActivityMonitor "UserColumnsPerTab v6.0"
-dict-add 0 '(Command, CPUUsage, CPUTime, Threads, IdleWakeUps, Architecture, GPUUsage, GPUTime, PID, UID, Sandbox, restricted)'

root@kitploit:~
Для использования App Sandbox требуется программное обеспечение App Store. Такие приложения, как Google Chrome, используют собственную [песочницу](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/design/sandbox.md) и могут не использовать App Sandbox.

> [!NOTE]
> Песочница ограничивает доступ приложения по умолчанию, но entitlements и разрешения, предоставленные пользователем, могут расширять доступ.

## Hardened Runtime

Проверьте, использует ли приложение [Hardened Runtime](https://developer.apple.com/documentation/security/hardened_runtime):```bash
codesign --display --verbose /path/to/application.app

Если включен Hardened Runtime, в выводе появится flags=0x10000(runtime).

Перечислите все приложения, у которых включена эта функция:```bash for app in /Applications/.app /System/Applications/.app; do if codesign -dvv "$app" 2>&1 | grep -q 'flags=0x10000(runtime)'; then echo "$app" fi done

root@kitploit:~
**Activity Monitor** имеет опцию отображения столбца "Restricted", который указывает, что программа ограничена в возможности внедрения кода через [динамический компоновщик](https://pewpewthespells.com/blog/blocking_code_injection_on_ios_and_os_x.html) macOS.

Усиленная среда выполнения является обязательным условием для нотаризации распространяемых приложений.

## Антивирус

Чтобы проверить файлы и приложения, рассмотрите возможность загрузки их на [VirusTotal](https://www.virustotal.com/gui/home/upload), помня, что это сделает их публично доступными.

macOS включает встроенное антивирусное программное обеспечение под названием [XProtect](https://support.apple.com/guide/security/protecting-against-malware-sec469d47bd8), которое работает в фоновом режиме и автоматически обновляет сигнатуры, используемые для обнаружения вредоносных программ. Если вредоносная программа обнаружена, XProtect пытается удалить её и поместить в карантин.

Проверка статуса обновления XProtect:```bash
xprotect version

Applications such as BlockBlock or hazcod/maclaunch might help prevent or detect persistent malware.

Антивирусное программное обеспечение может помочь обнаружить распространённое вредоносное ПО, но оно также может увеличить поверхность атаки, поскольку часто работает с обширными системными привилегиями. Некоторые продукты также могут отправлять телеметрию или образцы вендору.

См. Sophail: Прикладные атаки на антивирусы, Анализ и эксплуатация уязвимости ESET, Популярное защитное ПО подверглось безжалостным атакам АНБ и GCHQ и Как Израиль поймал российских хакеров, искавших по всему миру американские секреты.

Gatekeeper

Gatekeeper проверяет нотариальное заверение и происхождение программного обеспечения.

Gatekeeper предупреждает при открытии приложения без нотариального заверения. Его можно обойти, выбрав приложение в списке Системные настройки > Конфиденциальность и безопасность после неудачной попытки.

Проверьте, включён ли Gatekeeper:```bash spctl --status --verbose

root@kitploit:~
# Защита целостности системы

Чтобы проверить, включена ли защита целостности системы, используйте команду `csrutil status`, которая должна вернуть: `System Integrity Protection status: enabled.` В противном случае [включите SIP](https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection) с помощью [режима восстановления](https://support.apple.com/102518).

# Метаданные и артефакты

macOS добавляет к файлам метаданные ([расширенные атрибуты APFS](https://en.wikipedia.org/wiki/Extended_file_attributes#macOS)).

Некоторые атрибуты метаданных можно просматривать и удалять с помощью команд [`mdls`](https://ss64.com/mac/mdls.html) и [`xattr`](https://ss64.com/mac/xattr.html). Файлы параметров (`plist`) можно читать и изменять с помощью [`defaults`](https://ss64.com/mac/defaults.html).

Метаданные системы и приложений можно найти в:

- `~/Library/Preferences/`
- `~/Library/Containers/<APP>/Data/Library/Preferences`
- `/Library/Preferences`

Информация Bluetooth:

- `/Library/Preferences/com.apple.Bluetooth.plist`

Кэш заданий печати:

- `/var/spool/cups`

Ранее подключённые устройства iOS:

- `/Users/$USER/Library/Preferences/com.apple.iPod.plist`
- `/Library/Preferences/com.apple.iPod.plist`

Параметры Finder:

- `~/Library/Preferences/com.apple.finder.plist`
- `~/Library/Preferences/com.apple.sidebarlists.plist`

Диагностические данные:

- `/var/db/CoreDuet`
- `/var/db/diagnostics`
- `/var/db/systemstats`
- `/var/db/uuidtext`
- `/var/log/DiagnosticMessages`

Подсказки по правописанию и языку:

- `~/Library/LanguageModeling`
- `~/Library/Spelling`
- `~/Library/Suggestions`

Состояние приложений:

- `~/Library/Saved\ Application\ State`
- `~/Library/Containers/<APPNAME>/Data/Library/Saved\ Application\ State`

Метаданные автосохранения:

- `~/Library/Containers/<APP>/Data/Library/Autosave\ Information`
- `~/Library/Autosave\ Information`

Аналитика Siri:

- `~/Library/Assistant/SiriAnalytics.db`

История QuickTime Player:

- `~/Library/Containers/com.apple.QuickTimePlayerX/Data/Library/Preferences/com.apple.QuickTimePlayerX.plist`

Прочие метаданные:

- `~/Library/Containers/com.apple.appstore/Data/Library/Preferences/com.apple.commerce.knownclients.plist`
- `~/Library/Preferences/com.apple.commerce.plist`
- `~/Library/Preferences/com.apple.QuickTimePlayerX.plist`

# Аутентификация

Приложение [Passwords](https://support.apple.com/guide/passwords/the-passwords-app-mchl901b1b95/mac) создаёт [надёжные учётные данные](https://support.apple.com/guide/security/automatic-strong-passwords-secc84c811c4/web). Оно поддерживает [passkeys](https://fidoalliance.org/passkeys/) — учётные данные, предназначенные для защиты от фишинга при использовании с совместимыми сервисами.

[KeePassXC](https://keepassxc.org/) — это кроссплатформенный менеджер паролей с открытым исходным кодом, который стоит рассмотреть. Он поддерживает надёжную аутентификацию с помощью совместимых аппаратных токенов и расширение для браузера для автоматического ввода учётных данных.

Запоминающиеся пароли можно создавать с помощью [Diceware](https://secure.research.vt.edu/diceware/).

Убедитесь, что для онлайн-аккаунтов включена [многофакторная аутентификация](https://en.wikipedia.org/wiki/Multi-factor_authentication). Предпочитайте устойчивую к фишингу аутентификацию, например аппаратные токены или passkeys в поддерживаемых сервисах. Приложения-аутентификаторы предпочтительнее SMS-кодов, но любая MFA лучше, чем аутентификация только по паролю.

[YubiKey](https://www.yubico.com/products/) — популярный аппаратный токен аутентификации. Он также может хранить ключи для задач шифрования, подписания и аутентификации — см. [drduh/YubiKey-Guide](https://github.com/drduh/YubiKey-Guide).

GnuPG также может управлять паролями и другими зашифрованными файлами — см. [drduh/Purse](https://github.com/drduh/Purse) и [drduh/pwd.sh](https://github.com/drduh/pwd.sh).

# Резервное копирование

Шифруйте файлы локально перед резервным копированием на внешние носители или в онлайн-сервисы.

Следуйте [модели резервного копирования 3-2-1](https://www.cisa.gov/sites/default/files/publications/data_backup_options.pdf): храните три копии важных данных, размещайте их как минимум на двух разных типах носителей и держите хотя бы одну копию в отдельном физическом месте.

## Time Machine

[Time Machine](https://support.apple.com/104984) — встроенный инструмент для резервного копирования в macOS. Используйте внешний диск или сетевое хранилище для создания [зашифрованных](https://support.apple.com/guide/mac-help/keep-your-time-machine-backup-disk-secure-mh21241) резервных копий.

## GnuPG

[GnuPG](https://www.gnupg.org/) можно использовать с паролем или открытым ключом, а закрытый ключ хранить на [YubiKey](https://github.com/drduh/YubiKey-Guide).

Сожмите и зашифруйте каталог с помощью пароля:```bash
tar zcvf - ~/Downloads |
  gpg -c > ~/Downloads/backup-$(date +%F-%H%M%S).tar.gz.gpg

Расшифруйте и распакуйте каталог:```bash gpg -o ~/Downloads/decrypted-backup.tar.gz -d ~/Downloads/backup-*.tar.gz.gpg tar zxvf ~/Downloads/decrypted-backup.tar.gz

root@kitploit:~
## Дисковая утилита

Зашифрованные тома можно создать с помощью [Дисковой утилиты](https://support.apple.com/guide/disk-utility/toc) или `hdiutil`:```bash
hdiutil create ~/Downloads/encrypted.dmg -encryption -size 50M -volname "secretStuff"
hdiutil mount ~/Downloads/encrypted.dmg
cp -v ~/Documents/passwords.txt /Volumes/secretStuff
hdiutil eject /Volumes/secretStuff

Other

Tresorit и restic также могут представлять интерес.

Wi-Fi

Имена Wi-Fi сетей, называемые SSID, и поведение устройств при сканировании могут раскрывать информацию о ближайших и ранее использовавшихся сетях. Скрытые сети не обеспечивают значимой конфиденциальности и могут вызывать активное сканирование устройств в поисках этих сетей.

Настройте частный Wi-Fi адрес, чтобы снизить отслеживание в сети.

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

SSH

Для удалённых SSH-подключений используйте уникальный SSH-ключ, защищённый парольной фразой или аппаратным токеном, проверяйте ключи хоста сервера и избегайте аутентификации по паролю. Рекомендуемые параметры клиента см. в drduh/config/ssh_config.

SSH-туннель может безопасно маршрутизировать трафик через другой компьютер, аналогично VPN. Чтобы использовать Privoxy, запущенный на удалённом хосте на порту 8118:```bash ssh -C -L 5555:127.0.0.1:8118 [email protected] sudo networksetup -setwebproxy "Wi-Fi" 127.0.0.1 5555 sudo networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 5555

root@kitploit:~
Или чтобы использовать SSH-соединение как [SOCKS-прокси](https://www.mikeash.com/ssh_socks.html):```bash
ssh -NCD 3000 [email protected]

По умолчанию в macOS не включен Удаленный вход (SSH-сервер).

Чтобы включить SSH и разрешить входящие подключения, используйте Системные настройки > Основные > Общий доступ или команду:```bash sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

root@kitploit:~
Отключите аутентификацию по паролю и рассмотрите возможность дальнейшего [укрепления](https://stribika.github.io/2015/01/04/secure-secure-shell.html) конфигурации SSH-сервера. См. [drduh/config/sshd_config](https://github.com/drduh/config/blob/main/sshd_config) для рекомендуемых параметров.

Убедитесь, что SSH-сервер запущен:```bash
sudo lsof -Pni TCP:22

Physical access

Не оставляйте компьютер без присмотра в небезопасных местах. Опытный злоумышленник, имеющий физический доступ без наблюдения, может установить аппаратный кейлоггер для записи нажатий клавиш, включая пароли. Использование Mac со встроенной или bluetooth-клавиатурой затрудняет эту атаку, поскольку многие готовые варианты таких устройств рассчитаны на подключение между USB-клавиатурой и компьютером.

Чтобы уменьшить последствия кражи во время использования Mac, рассмотрите применение buskill/buskill-app или Lennolium/swiftGuard.

Рассмотрите возможность приобретения защитного экрана/фильтра конфиденциальности для использования в общественных местах.

Лак для ногтей и индикаторные пломбы можно наносить на компоненты для обнаружения вмешательства.

Мониторинг

Журналы

Отслеживайте системные журналы с помощью Консоли или команды log stream.

Выведите все системные журналы за последние 5 минут в классическом формате syslog:```bash log show --last 5m --style syslog

root@kitploit:~
I don't see any content in the INPUT section to translate. The chunk appears to be empty. Please provide the actual Markdown content for chunk 115, and I'll translate it to Russian following all the specified rules.```bash
log show --last 5m --style json

Вывод JSON, разделённого переводами строк (по одному объекту JSON на строку); требуется для jq:```bash log show --last 5m --style ndjson

root@kitploit:~
Фильтруйте сообщения по подсистеме, например из `com.apple.SoftwareUpdate`:```bash
log show --last 1h --style json \
  --predicate 'subsystem == "com.apple.SoftwareUpdate"'

Фильтруйте сообщения по содержимому, например содержащие failed:```bash log show --last 1h --predicate 'eventMessage CONTAINS "failed"'

root@kitploit:~
Фильтрация сообщений без учёта регистра:```bash
log show --last 1h --predicate 'eventMessage CONTAINS[c] "error"'

Подсчитайте количество уникальных сообщений об ошибках с помощью jq:```bash log show --last 1h --style ndjson
--predicate 'eventMessage CONTAINS[c] "error"' | jq -r '.eventMessage' | sort | uniq -c | sort -nr | head -100

root@kitploit:~
Экспортируйте журналы в архив, который можно открыть в Console:```bash
log collect --last 1h --output ~/Downloads/logs-$(date +%F-%H%M).logarchive

DTrace

System Integrity Protection мешает работе DTrace, и её необходимо частично отключить перед использованием.

  • iosnoop отслеживает дисковый ввод-вывод
  • opensnoop отслеживает открытие файлов
  • execsnoop отслеживает процессы
  • errinfo отслеживает сбойные системные вызовы
  • dtruss отслеживает все системные вызовы

Для получения дополнительной информации выполните man -k dtrace.

Процессы

Перечислите запущенные процессы с помощью Activity Monitor или команды ps.

Сеть

Перечислите открытые сетевые соединения:```bash sudo lsof -Pni

root@kitploit:~
Перечислите содержимое различных сетевых структур данных:```bash
sudo netstat -n -p tcp
sudo netstat -n -p udp | sort | uniq

Wireshark

Wireshark можно использовать из командной строки с помощью tshark.

Замените en0 на активный интерфейс, показанный командой networksetup -listallhardwareports.

[!IMPORTANT] Захватывайте трафик только в тех сетях и на тех системах, которые вам разрешено контролировать.

Мониторинг DNS:```bash /Applications/Wireshark.app/Contents/MacOS/tshark -i en0
-Y "dns.flags.response == 1" -Tfields
-e frame.time_delta
-e dns.qry.name
-e dns.a
-Eseparator=,

root@kitploit:~
Мониторинг HTTP:```bash
/Applications/Wireshark.app/Contents/MacOS/tshark -i en0 \
  -Y "http.request or http.response" -Tfields \
  -e ip.dst \
  -e http.request.full_uri \
  -e http.request.method \
  -e http.response.code \
  -e http.response.phrase \
  -Eseparator=/s

Мониторинг TLS-сертификатов:```bash /Applications/Wireshark.app/Contents/MacOS/tshark -i en0
-Y "ssl.handshake.certificate" -Tfields
-e ip.src
-e x509sat.uTF8String
-e x509sat.printableString
-e x509sat.universalString
-e x509sat.IA5String
-e x509sat.teletexString
-Eseparator=/s -Equote=d

root@kitploit:~
# Разное

## Хранитель экрана

Установите блокировку экрана сразу после запуска хранителя экрана:```bash
defaults write com.apple.screensaver askForPassword -int 1
defaults write com.apple.screensaver askForPasswordDelay -int 0

Диагностические данные

Отключите «Диагностика и данные об использовании».

Отключите репортёр сбоев (диалоговое окно, которое появляется после сбоя приложения и предлагает сообщить о проблеме в Apple):```bash defaults write com.apple.CrashReporter DialogType none

root@kitploit:~
## Медиаплеер

Используйте [QuickTime Player](https://en.wikipedia.org/wiki/Quicktime_player), встроенное медиаприложение, для воспроизведения музыкальных и видеофайлов. Оно использует [App Sandbox](https://developer.apple.com/documentation/security/app_sandbox/protecting_user_data_with_app_sandbox), [Hardened Runtime](https://developer.apple.com/documentation/xcode/configuring-the-hardened-runtime) и получает преимущества от [Signed System Volume](https://support.apple.com/guide/security/signed-system-volume-security-secd698747c9/web) как части базовой системы.

## Обработчики файлов

Управляйте [обработчиками файлов по умолчанию](https://support.apple.com/guide/mac-help/choose-an-app-to-open-a-file-on-mac-mh35597), чтобы снизить риск открытия определенных типов файлов.

Измените приложение по умолчанию для файлов сценариев, чтобы при их открытии отображалось содержимое, а не выполнялся скрипт.

В Finder найдите и выберите любой файл .sh, щелкните по нему правой кнопкой мыши и выберите «Свойства» или нажмите <kbd>Command</kbd> + <kbd>I</kbd>. В разделе «Открыть в приложении» выберите TextEdit из раскрывающегося меню. Если его нет в списке, выберите «Другое...» и Applications > TextEdit.app. Нажмите «Изменить все...» и подтвердите, выбрав «Продолжить».

## Параметры Finder

Показывать скрытые файлы и папку Library в Finder:```bash
defaults write com.apple.finder AppleShowAllFiles -bool true
chflags nohidden ~/Library

Показать все расширения имен файлов:```bash defaults write NSGlobalDomain AppleShowAllExtensions -bool true

root@kitploit:~
Не сохраняйте документы в iCloud по умолчанию:```bash
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false

Настраиваемый umask

Установите настраиваемый umask:```bash sudo launchctl config user umask 077

root@kitploit:~
Перезагрузитесь, затем создайте файл/каталог и проверьте разрешения (в macOS по умолчанию разрешено чтение для 'group/other'):```console
$ ls -ld umask*
drwx------@ 2 user1 staff  64 Jul 26 12:00 umask.dir
-rw-------@ 1 user1 staff  32 Jul 26 12:00 umask.txt

Ввод с клавиатуры

Включите защищённый ввод с клавиатуры в Terminal (это может мешать работе таких приложений, как TextExpander).

Усиление безопасности сети

Отключите многоадресные объявления Bonjour (это также отключает функции AirPlay и AirPrint):```bash sudo defaults write /Library/Preferences/com.apple.mDNSResponder
NoMulticastAdvertisements -bool YES

root@kitploit:~
[Отключите Handoff](https://support.apple.com/guide/mac-help/change-airdrop-handoff-settings-mchl6a407f99) и [Bluetooth](https://support.apple.com/guide/mac-help/turn-bluetooth-on-or-off-blth1008).

## Sudoers

macOS поставляется с этой строкой в `/etc/sudoers`:```bash
Defaults env_keep += "HOME MAIL"

Это предотвращает изменение sudo переменной HOME при повышении привилегий. В результате программы, запускаемые с sudo, могут использовать файлы конфигурации из домашнего каталога вызывающего пользователя. Рассмотрите возможность удаления HOME из env_keep, если такое поведение не требуется специально.

Чтобы сохранить удобство, когда root-пользователь имеет доступ к домашнему каталогу не-root-пользователя, добавьте строку экспорта в /var/root/.zshrc, например:```bash export HOME=/Users/user1

root@kitploit:~
# Связанное программное обеспечение

Программное обеспечение | Категория | Описание
:-: | :-: | :-
[lynis](https://github.com/CISOfy/lynis) | Сканер аудита | Кроссплатформенный инструмент аудита безопасности, который проверяет конфигурацию системы и предлагает улучшения для её укрепления.
[zentral](https://github.com/zentralopensource/zentral) | Платформа мониторинга и управления конфигурацией | Сервер управления парком устройств macOS; собирает данные инвентаризации, события, аудиты и результаты osquery. Лучше всего подходит для управляемых сред.
[osquery](https://github.com/osquery/osquery) | Механизм мониторинга | Предоставляет состояние операционной системы в виде SQL-таблиц, позволяя выполнять повторяемые проверки процессов, пользователей, элементов автозапуска, сетевых подключений и многого другого.
[pareto-mac](https://github.com/paretoSecurity/pareto-mac) | Сканер аудита | Приложение в строке меню, которое проверяет Mac на соответствие распространённым базовым рекомендациям по безопасности.

# Дополнительные ресурсы

- [Обзор безопасности и конфиденциальности iCloud](https://support.apple.com/102651)
- [Руководство EFF по самозащите от слежки](https://ssd.eff.org/)
- [beerisgood/macOS_Hardening](https://github.com/beerisgood/macOS_Hardening)
- [Блог о реверс-инжиниринге macOS](https://reverse.put.as/)
- [Ресурсы по реверс-инжинирингу](http://samdmarshall.com/re.html)
- [Блог Malwarebytes](https://www.malwarebytes.com/blog)
- [Блог Objective-See](https://objective-see.com/blog.html)
- [Бенчмарки CIS](https://www.cisecurity.org/benchmark/apple_os/)
- [Открытый исходный код Apple](https://opensource.apple.com/)

Read more

Скачать инструмент
  • Кликайте осторожно

    • В конечном счёте, безопасность системы зависит от возможностей и привычек её администратора.
    • Будьте внимательны при установке нового программного обеспечения: устанавливайте его только из источников, которые разработчик указывает как официальные, например, их веб-сайт или репозиторий GitHub.
  • ПротивникМотивацияВозможностиКонтрмеры
    Сосед по комнатеУвидеть личные чаты или историю просмотровБлизкое нахождение; может видеть экран или подглядывать учётные данныеИспользуйте биометрическую аутентификацию (отпечаток пальца или лицо), применяйте защитную плёнку экрана, держите телефон заблокированным, когда не используете его
    ВорРазблокировать телефон, украсть личную информацию и опустошить банковские счета, продать телефон за деньгиМожет подсмотреть вводимый пароль, украсть незаблокированное устройство, оставленное без присмотраДержите устройство при себе всё время, блокируйте устройства, когда не используете их, не вводите пароль в общественных местах на виду, используйте Find My или аналогичные сервисы для отслеживания или удалённой блокировки украденных устройств
    ПреступникФинансовая выгодаСоциальная инженерия (обман пользователя с целью раскрытия информации или совершения опасных действий), легкодоступное вредоносное ПО, повторное использование паролей, эксплуатация уязвимостейИзолируйте программное обеспечение в песочнице, включайте функции безопасности ОС, автоматически устанавливайте обновления ПО
    КорпорацияМаркетинг на основе пользовательских данныхСбор телеметрии и поведенческих данныхБлокируйте сетевые подключения, сбрасывайте идентификаторы устройства, избегайте добавления платёжных данных
    Государство/APTЦеленаправленная слежкаПассивное наблюдение за интернет-инфраструктурой, продвинутый анализ шифрованияИспользуйте открытое ПО, стойкие кодовые фразы diceware, аппаратное обеспечение с защищённым элементом, выключайте устройства, когда не используете их, сигналы-ловушки/приманки/канареечные токены
    CommandTask
    sudo pfctl -t blocklist -T showпоказать blocklist
    sudo pfctl -s rulesпоказать активные правила
    sudo pfctl -s statesпоказать таблицу состояний
    sudo ifconfig pflog0 createсоздать интерфейс журнала пакетов
    sudo tcpdump -ni pflog0отслеживать заблокированные пакеты
    КомандаЗадача
    launchctl listпросмотр пользовательских заданий
    sudo launchctl listпросмотр системных заданий
    launchctl list com.apple.Finderизучение службы
    systemextensionsctl listсписок системных расширений
    ls /System/Library/LaunchDaemonsсписок системных демонов
    ls /System/Library/LaunchAgentsсписок системных агентов