Это руководство представляет собой набор методов повышения безопасности и конфиденциальности компьютеров Apple Silicon Mac, работающих под управлением поддерживаемой в настоящее время версии macOS. Использование компьютеров Mac с процессорами Intel оставляет вас открытым для уязвимостей безопасности на аппаратном уровне, которые Apple не может исправить . Apple Silicon Mac — минимальная рекомендация, но, как правило, новые чипы всегда более безопасны.
Это руководство предназначено для опытных пользователей, которые хотят внедрить безопасность корпоративного уровня, но также подходит для начинающих пользователей, заинтересованных в улучшении своей конфиденциальности и безопасности на Mac.
Если вы обеспечиваете безопасность компьютеров в организации, используйте официальные рекомендации NIST для macOS.
Система безопасна настолько, насколько ее способен обеспечить ее администратор. Не существует единой технологии, программного обеспечения или методики, гарантирующей абсолютную компьютерную безопасность; Современная операционная система и компьютер очень сложны и требуют многочисленных дополнительных изменений для значительного улучшения состояния безопасности и конфиденциальности.
Данное руководство предоставляется «как есть» без каких-либо гарантий. Только вы несете ответственность, если вы что-нибудь сломаете или попадете в неприятности, следуя этому руководству.
Чтобы предложить улучшение, отправьте запрос на включение или откройте проблему.
Общие рекомендации по обеспечению безопасности применяются:
Создайте модель угроз
Поддерживайте систему и программное обеспечение в актуальном состоянии
softwareupdate
— ни одна из них не требует регистрации учетной записи Apple.Шифрование конфиденциальных данных
Обеспечьте доступность данных
Нажмите осторожно
Первым и самым важным шагом для обеспечения безопасности и конфиденциальности является создание модели угроз. Вам необходимо понимать своих противников, чтобы защититься от них. У каждого человека будут свои потребности, поэтому модель угроз у каждого будет разной. Модели угроз имеют тенденцию меняться со временем по мере изменения нашей ситуации, поэтому обязательно периодически переоценивайте свою модель угроз.
Вероятно, это множество вещей: ваш телефон, ноутбук, пароли, хранящиеся на ваших устройствах, история посещений Интернета и т. д. Составьте список, начиная с наиболее важных активов, которые необходимо защитить. Вы можете распределить их по категориям в зависимости от того, насколько они важны: общедоступные, конфиденциальные или секретные.
Определите, от кого вы защищаетесь. Начните с определения мотивации, по которой они могут атаковать ваши активы. Например, финансовая выгода является большим мотиватором для многих злоумышленников.
Чтобы противостоять своим противникам, вам необходимо понять, на что они способны, а на что не способны. Ранжируйте противников от совершенно простых до очень продвинутых. Например, обычный вор не очень искушен; их, скорее всего, остановят такие базовые вещи, как простой пароль и шифрование диска на вашем устройстве. Очень продвинутый злоумышленник, такой как государственный субъект, может потребовать полностью выключить ваше устройство, когда оно не используется, чтобы удалить ключи из ОЗУ и длинный пароль программного обеспечения.
Сейчас вы решаете, как лучше всего противостоять каждой угрозе. Вы можете не записывать пароли на бумаге, чтобы ваш сосед по комнате не смог их найти, или вы можете зашифровать диск на своем компьютере, чтобы вор не смог получить с него данные. Важно сбалансировать безопасность и удобство использования; каждое смягчение должно противодействовать некоторым возможностям ваших противников, иначе вы можете сделать свою жизнь неудобной практически без всякой выгоды. Если вы не можете придумать никаких дополнительных возможностей, которые могут быть у ваших противников, и вы реализовали меры по смягчению последствий для них всех, ваша работа окончена.
Вот пример типа таблицы, которую следует составить для каждого актива, который вы хотите защитить:
Противник | Мотивация | Возможности | смягчение последствий |
---|---|---|---|
Сосед по комнате | Просматривайте частные чаты или историю просмотров | Непосредственная близость; можно видеть экран или часы, введите пароль | Используйте биометрию, используйте экран конфиденциальности, держите телефон заблокированным, когда им не пользуетесь. |
Вор | Разблокировать телефон и украсть личную информацию, опустошить банковские счета, продать телефон за деньги | Плечо, чтобы увидеть пароль, украсть устройство, когда вы не смотрите, пока оно в системе | Всегда держите телефон на виду или при себе, держите его заблокированным, когда он не используется, используйте биометрию, чтобы не вводить пароль публично, используйте функцию «Найти мой» или аналогичный сервис для отслеживания/дистанционного отключения украденного устройства. |
Уголовный | Финансовый | Социальная инженерия, легкодоступное вредоносное ПО, повторное использование паролей, использование уязвимостей | Используйте изолированную программную среду, включите функции безопасности в ОС, обновляйте ОС и все программное обеспечение, а также включайте автоматические обновления. |
Корпорация | Маркетинг пользовательских данных | Сбор телеметрии и поведенческих данных | Блокируйте сетевые подключения, сбрасывайте уникальные идентификаторы, избегайте добавления платежных данных |
Национальное государство/APT | Целенаправленное наблюдение | Пассивное наблюдение за интернет-инфраструктурой, современные компьютеры для взлома шифрования/анализа пакетов. | Используйте e2ee с открытым исходным кодом, используйте надежные пароли для устройств, используйте оборудование с безопасным элементом для безопасного шифрования, выключайте устройства, когда они не используются, программные токены tripwire/honeypot/canary. |
Подробнее о моделировании угроз читайте здесь.
macOS наиболее безопасен при работе на оборудовании Apple с процессором Apple. Чем новее Mac, тем лучше. Избегайте хакинтошей и компьютеров Mac, которые не поддерживают последнюю версию macOS, поскольку Apple не исправляет все уязвимости в не самых последних версиях.
Когда вы покупаете свой Mac, вы, возможно, захотите, чтобы он не был связан с вами. В зависимости от вашей модели угрозы вам следует платить за нее наличными лично, а не заказывать онлайн или совершать покупки с помощью кредитной/дебетовой карты, чтобы никакая идентифицирующая информация не могла быть связана с вашей покупкой.
Если вы хотите использовать беспроводную клавиатуру, мышь, наушники или другой аксессуар, наиболее безопасным вариантом являются устройства Apple, поскольку они будут автоматически обновляться вашей системой. Они также поддерживают новейшие функции Bluetooth, такие как конфиденциальность BLE, которая рандомизирует ваш аппаратный адрес Bluetooth, чтобы предотвратить отслеживание. При использовании аксессуаров сторонних производителей это не является гарантией.
Существует несколько способов установки macOS. Выберите предпочтительный метод из доступных вариантов.
Вам следует установить последнюю версию macOS, совместимую с вашим Mac . В более поздних версиях есть исправления безопасности и другие улучшения, которых нет в старых версиях.
В рамках системы предотвращения краж Apple кремниевые компьютеры Mac Apple необходимо будет активировать на серверах Apple каждый раз, когда вы переустанавливаете macOS, для проверки базы данных украденных или заблокированных компьютеров Mac.
О том, как именно работает этот процесс, вы можете прочитать здесь.
Для использования macOS не требуется создание учетной записи Apple. Для создания учетной записи Apple требуется номер телефона, и по умолчанию она синхронизирует большой объем данных с iCloud, службой облачного хранения Apple. Вы можете отключить синхронизацию позже, если хотите, или включить сквозное шифрование для ваших данных iCloud.
Вы можете контролировать данные, связанные с вашей учетной записью Apple, или полностью удалить их.
Учетная запись Apple необходима для доступа к App Store и использования большинства сервисов Apple, таких как iCloud, Apple Music и т. д.
Mac App Store — это тщательно подобранный репозиторий программного обеспечения, необходимого для использования App Sandbox и Hardened Runtime, а также предлагающий автоматические обновления, интегрируемые с вашей системой.
App Store предлагает самые большие гарантии безопасности для программного обеспечения для macOS, но для этого требуется войти в систему с учетной записью Apple, и Apple сможет связать вашу учетную запись Apple с загруженными вами приложениями.
Вы можете легко запустить macOS на виртуальной машине, используя UTM. На их сайте оно бесплатное, но если вы купите его в App Store, вы получите автоматические обновления.
Следуйте их документации, чтобы установить виртуальную машину macOS всего за несколько кликов.
Другой вариант — VMware Fusion. Вы можете прочитать их документацию, чтобы узнать, как установить виртуальную машину macOS.
При первом запуске macOS вас встретит Ассистент настройки .
При создании первой учетной записи используйте надежный пароль без подсказки.
Если вы вводите свое настоящее имя в процессе настройки учетной записи, имейте в виду, что имя вашего компьютера и локальное имя хоста будут включать это имя (например, MacBook Джона Appleseed ) и, таким образом, будут отображаться в локальных сетях и в различных файлах настроек.
Оба должны быть проверены и обновлены по мере необходимости в разделе «Настройки системы» > «О программе» или с помощью следующих команд после установки:
sudo scutil --set ComputerName MacBook
sudo scutil --set LocalHostName MacBook
Первая учетная запись пользователя всегда является учетной записью администратора. Учетные записи администраторов являются членами группы администраторов и имеют доступ к sudo
, что позволяет им узурпировать другие учетные записи, в частности root, и дает им эффективный контроль над системой. Любая программа, выполняемая администратором, потенциально может получить такой же доступ, что создает угрозу безопасности.
У таких утилит, как sudo
есть недостатки, которыми можно воспользоваться при одновременном запуске программ.
Apple считает лучшей практикой использовать отдельную стандартную учетную запись для повседневной работы и использовать учетную запись администратора для установки и настройки системы.
Не обязательно когда-либо входить в учетную запись администратора через экран входа в macOS. Когда команде Терминала требуются права администратора, система запросит аутентификацию, а Терминал продолжит использовать эти привилегии. С этой целью Apple предоставляет несколько рекомендаций по сокрытию учетной записи администратора и ее домашнего каталога. Это может быть элегантным решением, позволяющим избежать появления видимой «призрачной» учетной записи.
/Applications
(локальный каталог). Finder и Installer отобразят обычному пользователю диалоговое окно аутентификации. Вместо этого многие приложения можно установить в ~/Applications
(каталог можно создать). Эмпирическое правило: приложения, которые не требуют доступа администратора (или не жалуются на то, что их не устанавливают в /Applications
), следует устанавливать в каталог пользователя, а остальные — в локальный каталог. Приложения Mac App Store по-прежнему устанавливаются в каталог /Applications
и не требуют дополнительной аутентификации.sudo
недоступен в оболочках обычного пользователя, что требует использования su
или login
для входа в оболочку учетной записи администратора. Это может усложнить некоторые маневры и требует некоторого базового опыта работы с интерфейсами командной строки.open
утилиту.Учетные записи можно создавать и управлять ими в Системных настройках. В стационарных системах обычно проще создать вторую учетную запись администратора, а затем понизить статус первой учетной записи. Это позволяет избежать миграции данных. Вновь установленные системы также могут просто добавить стандартную учетную запись.
Понизить учетную запись можно либо из новой учетной записи администратора в Системных настройках (из другой учетной записи необходимо выйти), либо выполнив эти команды (возможно, нет необходимости выполнять обе, см. проблему 179):
sudo dscl . -delete /Groups/admin GroupMembership <username>
sudo dscl . -delete /Groups/admin GroupMembers <GeneratedUID>
Чтобы найти GeneratedUID учетной записи:
dscl . -read /Users/<username> GeneratedUID
См. также этот пост для получения дополнительной информации о том, как macOS определяет членство в группах.
Вам следует убедиться, что для настроек безопасности встроенного ПО установлено значение «Полная безопасность», чтобы предотвратить вмешательство в вашу ОС. Это настройка по умолчанию.
Все модели Mac с процессором Apple по умолчанию зашифрованы. Включение FileVault приводит к тому, что вам нужно будет ввести пароль для доступа к данным на вашем диске. У EFF есть руководство по созданию надежных, но запоминающихся паролей.
Ваш пароль FileVault также действует как пароль прошивки, который не позволит людям, которые его не знают, загружаться с чего-либо, кроме назначенного загрузочного диска, получать доступ к восстановлению и восстанавливать его в режиме DFU.
FileVault попросит вас установить ключ восстановления на случай, если вы забудете свой пароль. Храните этот ключ в надежном месте. У вас будет возможность использовать свою учетную запись iCloud, чтобы разблокировать диск; однако любой, у кого есть доступ к вашей учетной записи iCloud, также сможет ее разблокировать.
macOS предлагает режим блокировки — функцию безопасности, которая отключает некоторые функции ОС, что значительно уменьшает поверхность атаки для злоумышленников, сохраняя при этом работоспособность ОС. Вы можете прочитать о том, что именно отключено, и решить для себя, приемлемо ли это для вас.
Когда режим блокировки включен, вы можете отключить его для каждого сайта в Safari на доверенных сайтах.
Для macOS доступно несколько типов брандмауэров.
Встроенный базовый брандмауэр, который блокирует только входящие соединения. Этот брандмауэр не имеет возможности отслеживать и блокировать исходящие соединения.
Им можно управлять с помощью вкладки «Брандмауэр» в разделе «Сеть» в «Системных настройках» или с помощью следующих команд.
Включите брандмауэр с журналированием и скрытым режимом:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setloggingmode on
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode on
Компьютерные хакеры сканируют сети, чтобы попытаться идентифицировать компьютеры для атаки. Вы можете запретить вашему компьютеру реагировать на некоторые из этих сканирований, используя скрытый режим . Когда включен скрытый режим, ваш компьютер не отвечает на запросы проверки связи ICMP и не отвечает на попытки подключения через закрытый порт TCP или UDP. Это усложняет злоумышленникам поиск вашего компьютера.
Чтобы предотвратить автоматическое внесение в белый список встроенного программного обеспечения, а также загружаемого программного обеспечения с кодовой подписью :
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsigned off
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsignedapp off
Приложения, подписанные действительным центром сертификации, автоматически добавляются в список разрешенных приложений, а не запрашивают у пользователя их авторизацию. Приложения, включенные в macOS, подписаны Apple, и им разрешено получать входящие соединения, если этот параметр включен. Например, поскольку iTunes уже подписан Apple, ему автоматически разрешается принимать входящие соединения через брандмауэр.
Если вы запустите неподписанное приложение, которого нет в списке брандмауэра, появится диалоговое окно с параметрами «Разрешить» или «Запретить подключения для приложения». Если вы выберете «Разрешить», macOS подпишет приложение и автоматически добавит его в список брандмауэра. Если вы выберете «Запретить», macOS добавит его в список, но запретит входящие соединения, предназначенные для этого приложения.
После взаимодействия с socketfilterfw
перезапустите процесс, отправив сигнал зависания линии:
sudo pkill -HUP socketfilterfw
Такие программы, как Little Snitch, Radio Silence и LuLu, обеспечивают хороший баланс удобства использования и безопасности.
Эти программы способны отслеживать и блокировать входящие и исходящие сетевые соединения. Однако для них может потребоваться использование системного расширения с закрытым исходным кодом.
Если количество вариантов разрешения/блокировки сетевых подключений огромно, используйте «тихий режим» с разрешенными подключениями, а затем периодически проверяйте конфигурацию, чтобы понять, что делают приложения и что они делают.
Стоит отметить, что эти брандмауэры можно обойти с помощью программ, работающих под root-правами , или через уязвимости ОС (pdf), но их все равно стоит иметь — просто не ждите абсолютной защиты. Однако некоторые вредоносные программы фактически удаляются и не запускаются, если установлен Little Snitch или другое защитное программное обеспечение.
В ядре существует настраиваемый, мощный, но в то же время и сложнейший межсетевой экран. Им можно управлять с помощью pfctl
и различных файлов конфигурации.
pf также можно управлять с помощью приложения с графическим интерфейсом, например Murus.
Существует множество книг и статей на тему брандмауэра pf. Вот лишь один пример блокировки трафика по IP-адресу.
Добавьте следующее в файл pf.rules
:
wifi = "en0"
ether = "en7"
set block-policy drop
set fingerprints "/etc/pf.os"
set ruleset-optimization basic
set skip on lo0
scrub in all no-df
table <blocklist> persist
block in log
block in log quick from no-route to any
block log on $wifi from { <blocklist> } to any
block log on $wifi from any to { <blocklist> }
antispoof quick for { $wifi $ether }
pass out proto tcp from { $wifi $ether } to any keep state
pass out proto udp from { $wifi $ether } to any keep state
pass out proto icmp from $wifi to any keep state
Затем используйте следующие команды для управления брандмауэром:
sudo pfctl -e -f pf.rules
, чтобы включить брандмауэр и загрузить конфигурациюsudo pfctl -d
чтобы отключить брандмауэрsudo pfctl -t blocklist -T add 1.2.3.4
чтобы добавить IP-адрес в черный списокsudo pfctl -t blocklist -T show
, чтобы просмотреть черный списокsudo ifconfig pflog0 create
для создания интерфейса для ведения журналаsudo tcpdump -ni pflog0
для просмотра отфильтрованных пакетовЕсли вы еще не знакомы с фильтрацией пакетов, не рекомендуется тратить слишком много времени на настройку pf. Вероятно, в этом также нет необходимости, если ваш Mac находится за NAT в частной домашней сети.
Можно использовать брандмауэр pf для блокировки доступа к сети для целых диапазонов сетевых адресов, например для всей организации:
Запросите Merit RADb для получения списка сетей, используемых автономной системой, например Facebook:
whois -h whois.radb.net '!gAS32934'
Скопируйте и вставьте список сетей, возвращенный командой blacklist:
sudo pfctl -t blocklist -T add 31.13.24.0/21 31.13.64.0/24 157.240.0.0/16
Подтвердите добавление адресов:
$ 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
Убедитесь, что сетевой трафик на эти адреса заблокирован (DNS-запросы по-прежнему будут работать):
$ dig a +short facebook.com
157.240.2.35
$ curl --connect-timeout 5 -I http://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.80: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.80: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.80: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.80: tcp 0
IP 192.168.1.1.162771 > 157.240.2.35.80: tcp 0
Исходящие пакеты TCP SYN блокируются, поэтому TCP-соединение не устанавливается и, таким образом, веб-сайт эффективно блокируется на уровне IP.
См. drduh/config/scripts/pf-blocklist.sh для получения дополнительной информации.
Службы в macOS управляются launchd . См. launchd.info.
Вы можете управлять и просматривать дополнительную информацию о программном обеспечении, которое запускается при входе в систему, в настройках системы. Вы также можете просмотреть установленные расширения System, Quick Look, Finder и другие расширения в настройках системы.
launchctl list
для просмотра запущенных пользовательских агентовsudo launchctl list
для просмотра запущенных системных демоновlaunchctl list com.apple.Maps.mapspushd
defaults read
для проверки списков заданий в /System/Library/LaunchDaemons
и /System/Library/LaunchAgents
man
и strings
чтобы узнать больше о том, что делает агент/демон.Например, чтобы узнать, что делает демон или агент запуска системы, начните с:
defaults read /System/Library/LaunchDaemons/com.apple.apsd.plist
Посмотрите раздел Program
или ProgramArguments
чтобы узнать, какой двоичный файл запускается, в данном случае apsd
. Чтобы найти дополнительную информацию об этом, посмотрите справочную страницу с man apsd
Примечание. Системные службы защищены SIP. Не отключайте SIP только для того, чтобы поработать с системными службами, поскольку SIP является неотъемлемой частью безопасности в macOS. Отключение системных служб может привести к поломке и нестабильной работе!
Чтобы просмотреть статус услуг:
find /var/db/com.apple.xpc.launchd/ -type f -print -exec defaults read {} ; 2>/dev/null
В этот репозиторий включены аннотированные списки демонов и агентов запуска, соответствующих выполняемых программ и хеш-сумм программ.
Узнайте больше о launchd и о том, где можно найти элементы входа в систему, на веб-сайте Apple.
Apple переходит на обработку на устройстве для многих функций Siri, но некоторая информация по-прежнему отправляется в Apple, когда вы используете предложения Siri или Spotlight. Вы можете прочитать Политику конфиденциальности Apple, чтобы узнать, что именно отправляется и как это отключить.
Если ваша программа недоступна в App Store, вы можете рассмотреть возможность использования Homebrew.
Важный! Homebrew попросит вас предоставить разрешение «Управление приложениями» (или «Полный доступ к диску») вашему терминалу. Это плохая идея, поскольку она снова сделает вас уязвимыми для этих атак: любое приложение, не изолированное в песочнице, может выполнить код с разрешениями TCC вашего терминала, добавив вредоносную команду (например) ~/.zshrc. Предоставление «Управления приложениями» или «Полного доступа к диску» вашему терминалу следует рассматривать как полное отключение TCC.
Не забывайте периодически запускать brew upgrade
в надежных и безопасных сетях для загрузки и установки обновлений программного обеспечения. Чтобы получить информацию о пакете перед установкой, запустите brew info <package>
и проверьте его формулу в Интернете. Вы также можете включить дополнительные параметры безопасности, например HOMEBREW_NO_INSECURE_REDIRECT=1
Согласно анонимной аналитике Homebrew, Homebrew собирает анонимную аналитику и передает ее в автономный экземпляр InfluxDB. Чтобы отказаться от аналитики Homebrew, вы можете установить export HOMEBREW_NO_ANALYTICS=1
в вашей среде или rc-файле оболочки или brew analytics off
В macOS 11 представлены «профили конфигурации DNS» для настройки зашифрованного DNS, фильтрации доменов и использования DNSSEC.
Профили DNS можно создать или получить от таких поставщиков, как Quad9, AdGuard и NextDNS.
Используйте файл хостов, чтобы заблокировать известные вредоносные программы, рекламу или другие нежелательные домены.
Отредактируйте файл хостов как root, например, с помощью sudo vi /etc/hosts
Чтобы заблокировать домен с помощью записи A
, добавьте в /etc/hosts
любую из следующих строк:
0 example.com
0.0.0.0 example.com
127.0.0.1 example.com
Примечание. IPv6 использует тип записи DNS AAAA
, а не тип записи A
, поэтому вы также можете заблокировать эти соединения, включив также записи ::1 example.com
, как показано здесь.
В Интернете доступно множество списков доменов, которые вы можете вставить, просто убедитесь, что каждая строка начинается с 0
, 0.0.0.0
, 127.0.0.1
и включена строка 127.0.0.1 localhost
.
Вот несколько списков популярных и полезных хостов:
Добавьте список хостов с помощью tee
:
curl https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts | sudo tee -a /etc/hosts
Если вы используете брандмауэр, такой как Little Snitch, вы можете использовать StevenBlack/hosts, импортируя правила из репозитория leohidalgo/little-snitch---rule-groups, эти правила обновляются каждые 12 часов из репозитория StevenBlack/hosts.
Чтобы зашифровать DNS-трафик, рассмотрите возможность использования DNSCrypt/dnscrypt-proxy. При использовании в сочетании с dnsmasq и DNSSEC целостность DNS-трафика можно значительно улучшить.
Установите DNSCrypt из Homebrew и следуйте инструкциям по настройке и запуску dnscrypt-proxy
:
brew install dnscrypt-proxy
При использовании в сочетании с Dnsmasq найдите файл homebrew.mxcl.dnscrypt-proxy.plist
запустив
brew info dnscrypt-proxy
который покажет такое местоположение, как /usr/local/etc/dnscrypt-proxy.toml
Откройте его в текстовом редакторе, найдите строку, начинающуюся с listen_addresses =
и отредактируйте ее, чтобы использовать DNScrypt на порте, отличном от 53, например 5355:
listen_addresses = ['127.0.0.1:5355', '[::1]:5355']
Запустите DNSCrypt:
sudo brew services restart dnscrypt-proxy
Убедитесь, что DNSCrypt работает:
$ 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
По умолчанию dnscrypt-proxy работает на локальном хосте (127.0.0.1), порт 53, балансируя трафик по набору преобразователей. Если вы хотите изменить эти настройки, вам придется отредактировать файл конфигурации: $HOMEBREW_PREFIX/etc/dnscrypt-proxy.toml.
Примечание. Приложения и программы могут разрешать DNS, используя собственные серверы. Если используется dnscrypt-proxy, можно отключить весь остальной DNS-трафик, отличный от dnscrypt, с помощью следующих правил pf:
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
См. также Что такое утечка DNS и ipv6-test.com.
Помимо других функций, dnsmasq может кэшировать ответы, предотвращать запросы к восходящим серверам для неполных имен и блокировать целые домены верхнего уровня.
Используйте в сочетании с DNSCrypt для дополнительного шифрования DNS-трафика.
Если вы не хотите использовать DNSCrypt, вам следует хотя бы использовать DNS, не предоставленный вашим интернет-провайдером. Двумя популярными альтернативами являются Google DNS и OpenDNS.
Дополнительный DNSSEC — это набор расширений DNS, которые обеспечивают DNS-клиентам (резольверам) аутентификацию происхождения данных DNS, аутентифицированное отрицание существования и целостность данных. Все ответы из защищенных зон DNSSEC имеют цифровую подпись. Подписанные записи аутентифицируются через цепочку доверия, начиная с набора проверенных открытых ключей для корневой зоны DNS. Текущие якоря доверия корневой зоны можно загрузить с веб-сайта IANA. По DNSSEC существует множество ресурсов, но, пожалуй, лучшим из них является сайт dnssec.net.
Установите DNSmasq:
brew install dnsmasq --with-dnssec
Загрузите и отредактируйте drduh/config/dnsmasq.conf или файл конфигурации по умолчанию.
См. drduh/config/domains для дополнительных примеров блокировки служб по доменам.
Установите и запустите программу (для привязки к привилегированному порту 53 требуется sudo):
sudo brew services start dnsmasq
Чтобы установить dnsmasq в качестве локального DNS-сервера, откройте «Системные настройки» > «Сеть» и выберите активный интерфейс, затем вкладку DNS , выберите + и добавьте 127.0.0.1
или используйте:
sudo networksetup -setdnsservers "Wi-Fi" 127.0.0.1
Убедитесь, что Dnsmasq настроен:
$ 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
Примечание. Некоторые программы VPN переопределяют настройки DNS при подключении. См. проблему 24 и drduh/config/scripts/macos-dns.sh.
Необязательная проверка DNSSEC для подписанных зон: ответ должен иметь статус NOERROR
и содержать флаг ad
:
$ dig +dnssec icann.org | head
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47039
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
Тестовая проверка DNSSEC не удалась для зон, подписанных неправильно — ответ должен иметь статус SERVFAIL
:
$ dig www.dnssec-failed.org | head
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 15190
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
В macOS установлено более 100 корневых сертификатов от таких корпораций, как Apple, Verisign, Thawte, Digicert, а также правительственных учреждений из Китая, Японии, Нидерландов, США и других стран! Эти центры сертификации (ЦС) способны выдавать сертификаты TLS для любого домена, сертификаты подписи кода и т. д. Apple блокирует эти сертификаты, когда ЦС оказывается ненадежным. У них также есть строгие требования, которым должны соответствовать доверенные центры сертификации.
Для получения дополнительной информации посетите веб-сайт CA/Browser Forum.
Проверьте корневые сертификаты системы в Keychain Access на вкладке «Корни системы» или с помощью инструмента командной строки security
и файла /System/Library/Keychains/SystemRootCertificates.keychain
.
Вы можете вручную отключить центры сертификации через Keychain Access, пометив их как Никогда не доверять и закрыв окно:
Предупреждение. Это приведет к тому, что ваш браузер выдаст предупреждение при посещении сайта с использованием сертификатов, подписанных этими центрами сертификации, и может привести к поломке другого программного обеспечения. Не доверяйте корневым сертификатам Apple, иначе это приведет к многочисленным сбоям в работе macOS!
Риск атаки «злоумышленник посередине», при которой вынужденный или скомпрометированный центр сертификации, которому доверяет ваша система, выдает поддельный/мошеннический сертификат TLS, довольно низок, но все же возможен.
Рассмотрите возможность использования Privoxy в качестве локального прокси-сервера для фильтрации веб-трафика.
Установите и запустите privoxy с помощью Homebrew:
brew install privoxy
brew services start privoxy
Кроме того, подписанный установочный пакет для Privoxy доступен на их веб-сайте или в Sourceforge. Подписанный пакет более безопасен, чем версия Homebrew, и получает поддержку проекта Privoxy.
По умолчанию Privoxy прослушивает локальный TCP-порт 8118.
Установите системный HTTP- прокси для активного сетевого интерфейса 127.0.0.1
и 8118
:
sudo networksetup -setwebproxy "Wi-Fi" 127.0.0.1 8118
Установите системный HTTPS- прокси:
sudo networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 8118
Это также можно сделать через «Системные настройки» > «Сеть» > «Дополнительно» > «Прокси».
Подтвердите, что прокси установлен:
$ scutil --proxy
<dictionary> {
ExceptionsList : <array> {
0 : *.local
1 : 169.254/16
}
FTPPassive : 1
HTTPEnable : 1
HTTPPort : 8118
HTTPProxy : 127.0.0.1
}
Хотя сегодня большая часть веб-трафика зашифрована, Privoxy по-прежнему полезен для фильтрации по шаблонам доменных имен и для обновления небезопасных HTTP-запросов.
Например, следующие правила блокируют весь трафик, кроме .net
и github.com
, а также всех доменов apple
:
{ +block{all} }
.
{ -block }
.apple.
.github.com
.net
Или просто заблокировать домены Facebook, например:
{ +block{facebook} }
.facebook*.
.fb.
.fbcdn*.
.fbinfra.
.fbsbx.
.fbsv.
.fburl.
.tfbnw.
.thefacebook.
fb*.akamaihd.net
Подстановочные знаки также поддерживаются.
Дополнительные примеры Privoxy см. в drduh/config/privoxy/config и drduh/config/privoxy/user.action. Privoxy не нужно перезапускать после редактирования правил фильтра user.action
.
Чтобы убедиться, что трафик заблокирован или перенаправлен, используйте Curl или интерфейс Privoxy, доступный по адресу http://pp в браузере:
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
server: GitHub.com
Обратите внимание, что настройки прокси-сервера macOS не являются универсальными; приложения и службы могут не учитывать настройки системного прокси-сервера. Убедитесь, что приложение, которое вы хотите проксировать, настроено правильно, и убедитесь, что соединения не утекают. Кроме того, pf можно настроить для прозрачного проксирования трафика на определенных портах.
Веб-браузер, вероятно, представляет наибольшую угрозу безопасности и конфиденциальности, поскольку его основная задача — загружать и выполнять ненадежный код из Интернета.
Важным свойством современных браузеров является политика одинакового происхождения (SOP), которая не позволяет вредоносному сценарию на одной странице получить доступ к конфиденциальным данным на другой веб-странице через объектную модель документа (DOM). Если SOP скомпрометирован, под угрозу будет поставлена безопасность всего браузера.
Многие браузерные эксплойты основаны на социальной инженерии как средстве обеспечения устойчивости. Всегда будьте осторожны при открытии ненадежных сайтов и особенно осторожны при загрузке нового программного обеспечения.
Еще одним важным фактором безопасности браузера являются расширения. Это проблема, затрагивающая как Firefox, так и Chrome. Использование расширений браузера следует ограничивать только критически необходимыми, опубликованными надежными разработчиками.
Mozilla Firefox, Google Chrome, Safari и Tor Browser — рекомендуемые браузеры для своих уникальных и индивидуальных целей.
Mozilla Firefox — популярный браузер с открытым исходным кодом. Firefox заменил основные части своей инфраструктуры и кодовой базы в рамках проектов Quantum и Photon. Частью проекта Quantum является замена кода C++ на Rust. Rust — это язык системного программирования, ориентированный на безопасность и потокобезопасность. Ожидается, что внедрение Rust значительно улучшит общую безопасность Firefox.
Firefox предлагает модель безопасности, аналогичную Chrome: у него есть программа вознаграждения за обнаружение ошибок, хотя она не так прибыльна. Firefox придерживается четырехнедельного цикла выпуска.
Firefox поддерживает файлы конфигурации, предоставляемые пользователем. Рекомендуемые настройки и меры по усилению защиты см. в drduh/config/firefox.user.js и arkenfox/user.js. Также см. NoScript, расширение, позволяющее выборочную блокировку сценариев.
Firefox уделяет особое внимание конфиденциальности пользователей. Он поддерживает защиту от отслеживания в режиме частного просмотра. Защиту от отслеживания можно включить для учетной записи по умолчанию, хотя это может нарушить работу просмотра на некоторых веб-сайтах. Firefox в режиме строгой защиты от отслеживания будет рандомизировать ваш отпечаток пальца, чтобы помешать базовым сценариям отслеживания. Firefox предлагает отдельные профили пользователей. Вы можете разделить просмотр внутри профиля с помощью контейнеров для нескольких учетных записей.
Firefox поддерживает веб-расширения только через API веб-расширений, который очень похож на Chrome. Отправка веб-расширений в Firefox бесплатна. Веб-расширения в Firefox в большинстве случаев имеют открытый исходный код, хотя некоторые веб-расширения являются проприетарными.
Google Chrome основан на проекте Chromium с открытым исходным кодом и некоторыми проприетарными компонентами:
Chrome предлагает синхронизацию учетной записи между несколькими устройствами. Часть данных синхронизации включает учетные данные для веб -сайтов. Данные зашифрованы с помощью пароля учетной записи.
Веб -магазин Chrome для расширений требует 5 долларов США пожизненной платы, чтобы представить расширения. Низкая стоимость позволяет развивать многие качественные веб -расширения с открытым исходным кодом, которые не направлены на монетизацию с помощью использования.
Chrome имеет наибольшую долю глобального использования и является предпочтительной целевой платформой для большинства разработчиков. Основные технологии основаны на компонентах с открытым исходным кодом Chrome, таких как Node.js, который использует двигатель Chrome V8 и электронную структуру, которая основана на хроме и узле.js. Огромная пользовательская база Chrome делает его наиболее привлекательной целью для актеров -угроз и исследователей безопасности. Несмотря на постоянные атаки, Chrome сохранил впечатляющий послужной список безопасности за эти годы. Это не маленький подвиг.
Chrome предлагает отдельные профили, надежные песочницы, частые обновления и впечатляющие учетные данные. Кроме того, Google предлагает очень выгодную программу наградных для отчетности уязвимостей, а также собственную команду проекта Zero. Это означает, что большое количество очень талантливых и мотивированных людей постоянно аудит и обеспечивает хромированный код.
Создайте отдельные хромированные профили для снижения риска XSS и разделить куки/идентичности. В каждом профиле либо отключите JavaScript в настройках Chrome, так и настройка разрешенного происхождения. Вы также должны отключить оптимизатор V8 для сайтов, где вы используете JavaScript для дальнейшего уменьшения поверхности атаки. Перейдите к настройкам -> Конфиденциальность и безопасность -> Безопасность -> Управление V8 Security -> Не позволяйте сайтам использовать оптимизатор V8
Узнайте больше о преимуществах отключения этого здесь.
Вы можете блокировать трекеры с Ublock Origin Lite.
Измените поисковую систему по умолчанию из Google, чтобы уменьшить дополнительное отслеживание.
Отключите предварительное получение DNS (см. Также предварительное получение DNS и его последствия для конфиденциальности (PDF)). Обратите внимание, что Chrome может попытаться разрешить DNS, используя Google 8.8.8.8
и 8.8.4.4
Общественных имен.
Прочитайте безопасность хрома и конфиденциальность хрома для получения дополнительной информации. Прочитайте Политику конфиденциальности Google, чтобы понять, как личная информация собирается и используется.
Safari - это браузер по умолчанию на MacOS. Это также наиболее оптимизированный браузер для сокращения использования батареи. Safari, как и Chrome, имеет как с открытым исходным кодом, так и собственности. Safari основан на веб -двигателе с открытым исходным кодом Webkit, которая вездесущему среди экосистемы MacOS. Webkit используется приложениями Apple, такими как Mail, iTunes, ibooks и App Store. Двигатель Chrome Blink - это вилка Webkit, и оба двигателя имеют ряд сходств.
Safari поддерживает определенные уникальные функции, которые пользуются безопасностью пользователей и конфиденциальности. Блокаторы контента позволяют создавать правила блокировки контента без использования JavaScript. Этот подход, основанный на правилах, значительно улучшает использование памяти, безопасность и конфиденциальность. Safari 11 представила интеллектуальную профилактику отслеживания, которая удаляет данные отслеживания, хранящиеся в Safari после периода невнимания пользователем с веб-сайта Tracker. Safari может рандомизировать ваш отпечаток пальца, чтобы уменьшить отслеживание. Safari не поддерживает определенные функции, такие как WebusB или API батареи, намеренно по соображениям безопасности и конфиденциальности. В частных вкладках в Safari есть изолированные файлы cookie и кэш, которые разрушаются при закрытии вкладки. Safari также поддерживает профили, которые эквивалентны многочисленным контейнерам Firefox для разделения файлов cookie и просмотра. Safari можно сделать значительно более безопасным с режимом блокировки, который может быть отключен для для каждого места. Узнайте больше о профилактике отслеживания в сафари.
Safari предлагает программу щедрости только для приглашения для отчетности об ошибках для выбранного количества исследователей безопасности. Программа «Награды» была объявлена во время презентации Apple на Blackhat 2016.
Расширения Web в Safari имеют дополнительную опцию для использования собственного кода в среде песочницы Safari, в дополнение к API Web Extension. Расширения Интернета в Safari также распространяются через Apple App Store. Представление App Store поставляется с дополнительным преимуществом кода расширения веб -расширения, который проверяется Apple. С другой стороны, отправка магазина приложений поступает по крутой стоимости. Ежегодная подписка на подписку на разработчик стоит 100 долларов США (в отличие от 5 долларов США и бесплатного подчинения Firefox). Высокая стоимость является непомерной для большинства разработчиков с открытым исходным кодом. В результате Safari имеет очень мало расширений на выбор. Тем не менее, вы должны помнить о высокой стоимости при установке расширений. Ожидается, что у большинства расширений в Интернете будет какой -то способ монетизации использования, чтобы покрыть затраты разработчика. Будьте осторожны с веб -расширениями, исходный код, не открыт.
Safari синхронизирует пользовательские предпочтения и пароли с iCloud для ключей. Чтобы просмотреть в простом тексту, пользователь должен ввести пароль учетной записи текущего устройства. Это означает, что пользователи могут синхронизировать данные между устройствами с добавленной безопасностью.
Safari следует более медленному циклу высвобождения, чем Chrome и Firefox (3-4 незначительных выпуска, 1 крупный выпуск, в год). Новые функции медленнее для применения в стабильный канал. Обновления безопасности в Safari обрабатываются независимыми от графика стабильного выпуска и устанавливаются через App Store.
См. Также EL1T/Ublock-Safari, чтобы отключить маяки для аудита гиперссылки.
Многие браузеры, полученные из хрома, не рекомендуются. Они обычно являются закрытым исходным кодом, плохо обслуживаются и делают сомнительные претензии на защиту конфиденциальности.
Другие разные браузеры, такие как храбрые, не оцениваются в этом руководстве, поэтому не рекомендуются и не активно не отговариваются от использования.
Веб -браузеры показывают информацию несколькими способами, например, через интерфейс Navigator, который может включать такую информацию, как версия браузера, операционная система, разрешения на сайт и уровень батареи устройства. Многие веб -сайты также используют снятие отпечатков пальцев, чтобы уникально идентифицировать пользователей в разных сеансах.
Для получения дополнительной информации о просмотре по сознанию безопасности и о том, какие данные отправляются вашим браузером, см. Howto: конфиденциальность и просмотр конфиденциальности и сознания безопасности, BrowserLeaks.com, я уникален? И EFF покрывает ваши треки ресурсы.
Чтобы препятствовать сторонним трекерам, рекомендуется вообще отключить сторонние печенья . Safari, Firefox и Chrome все блокируют сторонние файлы cookie по умолчанию. Сторонний файл cookie - это файл cookie, связанный с файлом, запрашиваемым другим доменом, чем тот, который в настоящее время просматривает пользователь. Большую часть времени сторонние файлы cookie используются для создания профилей просмотра путем отслеживания движения пользователя в Интернете. Отключение сторонних файлов cookie предотвращает отклики HTTP и сценарии из других доменов на установке файлов cookie. Более того, файлы cookie удаляются из запросов в домены, которые не являются доменом происхождения документа, поэтому файлы cookie отправляются только на текущий сайт, который просмотрено.
Также имейте в виду WEBRTC, который может раскрыть ваш локальный или публичный (если подключен к VPN) IP -адрес (ES). В Firefox и Chrome/Chromium это может быть отключено с помощью расширений, таких как Ublock Origin. Режим блокировки отключает WEBRTC в Safari.
TOR - это анонимизирующая сеть, которую можно использовать для просмотра Интернета с дополнительной конфиденциальностью. Tor Browser - это модифицированная версия Firefox с прокси для доступа к сети TOR.
Скачать браузер Tor из Tor Project.
Не пытайтесь настроить другие браузеры или приложения для использования TOR, поскольку вы можете совершить ошибку, которая поставит под угрозу анонимность.
Загрузите файлы подписи dmg
и asc
, затем убедитесь, что изображение диска было подписано разработчиками TOR:
$ cd ~ /Downloads
$ file Tor *
TorBrowser-8.0.4-osx64_en-US.dmg: bzip2 compressed data, block size = 900k
TorBrowser-8.0.4-osx64_en-US.dmg.asc: PGP signature Signature (old)
$ gpg Tor * asc
[...]
gpg: Can't check signature: No public key
$ gpg --recv 0x4E2C6E8793298290
gpg: key 0x4E2C6E8793298290: public key "Tor Browser Developers (signing key) <[email protected]>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1
$ gpg --verify Tor * asc
gpg: assuming signed data in 'TorBrowser-8.0.4-osx64_en-US.dmg'
gpg: Signature made Mon Dec 10 07:16:22 2018 PST
gpg: using RSA key 0xEB774491D9FF06E2
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: 1107 75B5 D101 FB36 BC6C 911B EB77 4491 D9FF 06E2
Убедитесь, что Good signature from "Tor Browser Developers (signing key) <[email protected]>"
появляется в выводе. Предупреждение о том, что ключ не сертифицирован является доброкачественным, поскольку он еще не был назначен доверием.
Посмотрите, как я могу проверить подпись браузера Tor? для получения дополнительной информации.
Чтобы закончить установку браузера Tor, откройте изображение диска и перетащите его в папку Applications или с:
hdiutil mount TorBrowser-8.0.4-osx64_en-US.dmg
cp -r /Volumes/Tor Browser/Tor Browser.app/ ~/Applications/
Убедитесь, что сигнатура кода приложения TOR была сделана с помощью идентификатора разработчика Apple Apple TOR Madpsayn6t , используя команды spctl -a -v
и/или pkgutil --check-signature
:
$ spctl -a -vv ~ /Applications/Tor Browser.app
/Users/drduh/Applications/Tor Browser.app: accepted
source=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 Mac OS X
Certificate Chain:
1. Developer ID Application: The Tor Project, Inc (MADPSAYN6T)
SHA1 fingerprint: 95 80 54 F1 54 66 F3 9C C2 D8 27 7A 29 21 D9 61 11 93 B3 E8
-----------------------------------------------------------------------------
2. Developer ID Certification Authority
SHA1 fingerprint: 3B 16 6C 3B 7D C4 B7 51 C9 FE 2A FA B9 13 56 41 E3 88 E1 86
-----------------------------------------------------------------------------
3. Apple Root CA
SHA1 fingerprint: 61 1E 5B 66 2C 59 3A 08 FF 58 D1 4A E2 24 52 D1 98 DF 6C 60
Вы также можете использовать команду codesign
для изучения подписи кода приложения:
$ codesign -dvv ~ /Applications/Tor Browser.app
Executable=/Users/drduh/Applications/Tor Browser.app/Contents/MacOS/firefox
Identifier=org.torproject.torbrowser
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=229 flags=0x0(none) hashes=4+3 location=embedded
Library validation warning=OS X SDK version before 10.9 does not support Library Validation
Signature size=4247
Authority=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Signed Time=Dec 10, 2018 at 12:18:45 AM
Info.plist entries=24
TeamIdentifier=MADPSAYN6T
Sealed Resources version=2 rules=12 files=128
Internal requirements count=1 size=188
Чтобы просмотреть полный сертификат для подписанного приложения, извлечь их с помощью codesign
и расшифровать его с помощью openssl
:
$ codesign -d --extract-certificates ~ /Applications/Tor Browser.app
Executable=/Users/drduh/Applications/Tor Browser.app/Contents/MacOS/firefox
$ file codesign *
codesign0: data
codesign1: data
codesign2: data
$ 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=Apple Certification Authority/O=Apple Inc./C=US
notBefore=Apr 12 22:40:13 2016 GMT
notAfter=Apr 13 22:40:13 2021 GMT
$ openssl x509 -inform der -in codesign0 -fingerprint -noout
SHA1 Fingerprint=95:80:54:F1:54:66:F3:9C:C2:D8:27:7A:29:21:D9:61:11:93:B3:E8
$ openssl x509 -inform der -in codesign0 -fingerprint -sha256 -noout
SHA256 Fingerprint=B5:0D:47:F0:3E:CB:42:B6:68:1C:6F:38:06:2B:C2:9F:41:FA:D6:54:F1:29:D3:E4:DD:9C:C7:49:35:FF:F5:D9
Трафик TOR зашифруется в узел выхода (то есть не может быть прочитал пассивным сетевым подслуженным), но использование TOR может быть идентифицировано - например, рукопожатие TLS «Имена хостов» будет отображаться в открытом виде:
$ sudo tcpdump -An " tcp " | grep " www "
listening on pktap, link-type PKTAP (Apple DLT_PKTAP), capture size 262144 bytes
.............". ...www.odezz26nvv7jeqz1xghzs.com.........
.............#.!...www.bxbko3qi7vacgwyk4ggulh.com.........
.6....m.....>...:.........|../* Z....W....X=..6...C../....................................0...0..0.......'....F./0.. *.H........0%1#0!..U....www.b6zazzahl3h3faf4x2.com0...160402000000Z..170317000000Z0'1%0#..U....www.tm3ddrghe22wgqna5u8g.net0..0..
См. Спецификацию протокола TOR и TOR/TLSHISTORY для получения дополнительной информации.
Возможно, вы захотите дополнительно запутать трафик, используя платный транспорт.
Это может быть сделано путем настройки собственного реле TOR или поиска существующего частного или публичного моста, чтобы служить запутывающим узлом входа.
Для дополнительной безопасности используйте TOR внутри виртуализированного VirtualBox или VMware Virtualized GNU/Linux или Entry Extance.
Наконец, помните, что сеть TOR обеспечивает анонимность, которая не обязательно является синонимом конфиденциальности. Сеть TOR не гарантирует защиту от глобального наблюдателя, способного к анализу трафика и корреляции. См. Также поиск анонимности в интернет -паноптиконе (PDF) и корреляции трафика на TOR реалистичными противниками (PDF).
Также см. Невидимый интернет -проект (I2P) и его сравнение TOR.
При выборе службы VPN или настройке самостоятельно, обязательно изучите протоколы, алгоритмы обмена ключами, механизмы аутентификации и тип используемого шифрования. Некоторые протоколы, такие как PPTP, следует избегать в пользу OpenVPN или Linux на основе Wireguard на виртуальной машине Linux или через набор кросс-платформных инструментов.
Некоторые клиенты могут отправлять трафик по следующему доступному интерфейсу, когда VPN прерывается или отключен. См. SCY/8122924 для примера о том, как разрешить трафик только через VPN.
Существует обновленное руководство по настройке IPSEC VPN на виртуальной машине (HWDSL2/SETUP-IPSEC-VPN) или контейнер Docker (HWDSL2/Docker-IPSEC-VPN-Server).
Может быть, стоит рассмотреть географическое местоположение поставщика VPN. См. Дальнейшее обсуждение в выпуске 114.
Также см. В этом техническом обзоре встроенного VPN L2TP/IPSEC и IPEV2 клиента MacOS.
PGP является стандартом для подписания и шифрования данных (особенно по электронной почте), так что только отправитель и получатель могут получить к ним доступ.
GPG, или GNU Privacy Guard , представляет собой программу с открытым исходным кодом с лицензией GPL, соответствующую стандарту PGP.
GPG используется для проверки подписей программного обеспечения, которое вы загружаете и устанавливаете, а также симметрично или асимметрично шифруют файлы и текст.
Установите из Homebrew с brew install gnupg
.
Если вы предпочитаете графическое приложение, загрузите и установите набор GPG.
Загрузите DRDUH/config/gpg.conf, чтобы использовать рекомендуемые настройки:
curl -o ~/.gnupg/gpg.conf https://raw.githubusercontent.com/drduh/config/master/gpg.conf
См. Drduh/Yubikey-Guide, чтобы надежно генерировать и хранить клавиши GPG.
Читайте онлайн -гиды и практикуйте шифрование и расшифровку электронной почты для себя и своих друзей. Заинтересованы в этом материалах!
XMPP-это открытый стандарт, разработанный IETF, который позволяет перекрестно федеративным сообщениям. Есть много вариантов для клиентов. Подумайте о том, чтобы использовать одного из клиентов на основе браузера, чтобы воспользоваться песочницей вашего браузера.
В зависимости от поставщика, вам может не понадобиться ничего, кроме имени пользователя и пароля для настройки вашей учетной записи.
XMPP не e2ee по умолчанию, вам нужно использовать шифрование Omemo, поэтому убедитесь, что ваш клиент поддерживает его.
Сигнал-это расширенный мессенджер E2EE, чей двойной протокол используется бесчисленными другими посланниками, включая WhatsApp, Google Messages и Facebook Messenger.
Сигнал требует номера телефона для регистрации, и вам нужно сначала установить его на телефон, прежде чем вы сможете использовать его на рабочем столе.
Imessage - первый вечеринка Apple. Для его использования требуется учетная запись Apple.
Обязательно включите проверку ключей контакта и проверяйте с любым сообщением, чтобы убедиться, что вы общаясь с правильным человеком.
Вы можете использовать imessage с номером телефона или по электронной почте, поэтому выберите тот, который вам удобно с видящими контактами.
ПРИМЕЧАНИЕ. По умолчанию включено резервное копирование iCloud, в котором хранится копии ваших ключей шифрования сообщения на серверах Apple без E2EE. Либо отключить резервное копирование iCloud, либо включить расширенную защиту данных, чтобы предотвратить это. Также не забудьте сказать своему партнеру по обмену сообщениями, чтобы сделать то же самое!
В дикой природе постоянно увеличивается количество вредоносных программ MAC. Mac не застраховано от вирусов и вредоносного программного обеспечения!
Некоторые вредоносные программы поставляются в комплекте с обоим законным программным обеспечением, такими как панель инструментов Java Bundling Ask, а некоторые с незаконным программным обеспечением, такими как Mac.backdoor.iworm, связанный с пиратскими программами.
См. Методы устойчивости вредоносных программ на Mac OS X (PDF) и устойчивость вредоносных программ на OS X Yosemite, чтобы узнать о том, как функции вредоносных программных программ.
Подпишитесь на обновления в блоге MalwareBytes для текущих новостей о безопасности Mac.
Также ознакомьтесь с Hacking Team Malware для MacOS: корневая установка для MacOS, драйвер поддержки для Mac Agent и RCS Agent для Mac, который является хорошим примером расширенного вредоносного ПО с возможностями скрываться от пользователя (например, ps
, ls
). Для получения дополнительной информации см. Краткий анализ установщика Implant RCS и Reverse.pop.as
Только запуск программ из App Store или нотариальные Apple нотариально поможет смягчить вредоносное ПО. Apple выполняет автоматическое сканирование на нотариально приложениях для вредоносных программ. Приложения App Store подвергаются процессу обзора, чтобы поймать вредоносное ПО.
В противном случае получайте программы из надежных источников, таких как непосредственно с веб -сайта разработчика или GitHub. Всегда убедитесь, что ваш браузер/терминал использует HTTPS при загрузке любой программы.
Вы также должны избегать программ, которые просят много разрешений и сторонних программ с закрытым исходным кодом. Открытый исходный код позволяет любому проверять и проверять код по вопросам безопасности/конфиденциальности.
Проверьте, использует ли программа песочница приложения перед запуском, запустив следующую команду:
codesign -dvvv --entitlements - <path to your app>
Если разрешена песчаная коробка приложения, вы увидите
[Key] com.apple.security.app-sandbox
[Value]
[Bool] true
В качестве альтернативы, вы можете проверить, когда приложение работает, открывая монитор активности и добавив столбец «Песочница».
Все приложения App Store должны использовать песочницу приложения.
Примечание. Такие браузеры, как Google Chrome, используют свою собственную песочницу, чтобы они не использовали песочницу приложения.
Проверьте, использует ли программа закаленное время выполнения перед запуском, используя следующую команду:
codesign --display --verbose /path/to/bundle.app
Если включено закаленное время выполнения, вы увидите flags=0x10000(runtime)
. «Среда выполнения» означает, что закаленное время выполнения включено. Там могут быть и другие флаги, но флаг времени выполнения - это то, что мы ищем здесь.
Вы можете включить столбец в мониторе активности, называемый «ограниченный», который представляет собой флаг, который предотвращает программы инъекции кода через динамический линкер MacOS. В идеале это должно сказать «да».
Нотаризированные приложения необходимы для использования закаленного времени выполнения.
Чтобы сканировать приложение с несколькими продуктами AV и изучить его поведение, загрузите его в virustotal, прежде чем запустить его.
MacOS поставляется со встроенной AV-программой под названием Xprotect. Xprotect автоматически работает в фоновом режиме и обновляет свои подписи, которые он использует для обнаружения вредоносного ПО без необходимости ничего делать. Если он обнаружит, что вредоносное ПО, уже работающее, он будет работать, чтобы удалить и смягчить его, как и любая другая AV -программа.
Такие приложения, как blockblock или maclaunch.sh, могут помочь предотвратить постоянное вредоносное ПО.
Местные антивирусные программы, как правило, представляют собой обоюдоострый меч: они могут поймать вредоносное ПО «разнообразие сада», но также могут увеличить поверхность атаки для сложных противников из-за их привилегированного режима эксплуатации. Они также обычно звонят домой, чтобы отправить образцы, чтобы поймать новейшее вредоносное ПО. Это может быть проблемой конфиденциальности.
См. Sophail: Прикладные атаки против антивируса (PDF), анализ и эксплуатация уязвимости ESET, популярное программное обеспечение для безопасности оказалось в непрекращающихся атаках АНБ и GCHQ, и как Израиль поймал российских хакеры, пробивая мир для нас.
Gatekeeper пытается предотвратить запуск нетарированных приложений.
Если вы попытаетесь запустить приложение, которое не нотариально, привратник предоставит вам предупреждение. Это может быть легко обойти, если вы перейдете в конфиденциальность и безопасность , прокрутите вниз вниз и нажмите «Открыть» на своем приложении. Затем привратник позволит вам запустить его.
Gatekeeper не покрывает все двоичные файлы, только приложения, так что будьте осторожны при запуске других типов файлов.
Для проверки SIP включена, используйте csrutil status
, который должен вернуть: System Integrity Protection status: enabled.
В противном случае включите SIP через режим восстановления.
MacOS прикрепляет метаданные (расширенные атрибуты APFS) к загруженным файлам, которые можно просматривать с помощью команд mdls
и xattr
:
$ ls -l@ ~ /Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
-rw-r--r--@ 1 drduh staff 63M Jan 1 12:00 TorBrowser-8.0.4-osx64_en-US.dmg
com.apple.metadata:kMDItemWhereFroms 46B
com.apple.quarantine 57B
$ mdls ~ /Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
kMDItemContentCreationDate = 2019-01-01 00:00:00 +0000
kMDItemContentCreationDate_Ranking = 2019-01-01 00:00:00 +0000
kMDItemContentModificationDate = 2019-01-01 00:00:00 +0000
kMDItemContentType = "com.apple.disk-image-udif"
kMDItemContentTypeTree = (
"public.archive",
"public.item",
"public.data",
"public.disk-image",
"com.apple.disk-image",
"com.apple.disk-image-udif"
)
kMDItemDateAdded = 2019-01-01 00:00:00 +0000
kMDItemDateAdded_Ranking = 2019-01-01 00:00:00 +0000
kMDItemDisplayName = "TorBrowser-8.0.4-osx64_en-US.dmg"
kMDItemFSContentChangeDate = 2019-01-01 00:00:00 +0000
kMDItemFSCreationDate = 2019-01-01 00:00:00 +0000
kMDItemFSCreatorCode = ""
kMDItemFSFinderFlags = 0
kMDItemFSHasCustomIcon = (null)
kMDItemFSInvisible = 0
kMDItemFSIsExtensionHidden = 0
kMDItemFSIsStationery = (null)
kMDItemFSLabel = 0
kMDItemFSName = "TorBrowser-8.0.4-osx64_en-US.dmg"
kMDItemFSNodeCount = (null)
kMDItemFSOwnerGroupID = 5000
kMDItemFSOwnerUserID = 501
kMDItemFSSize = 65840402
kMDItemFSTypeCode = ""
kMDItemInterestingDate_Ranking = 2019-01-01 00:00:00 +0000
kMDItemKind = "Disk Image"
kMDItemWhereFroms = (
"https://dist.torproject.org/torbrowser/8.0.4/TorBrowser-8.0.4-osx64_en-US.dmg",
"https://www.torproject.org/projects/torbrowser.html.en"
)
$ xattr -l ~ /Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
com.apple.metadata:kMDItemWhereFroms:
00000000 62 70 6C 69 73 74 30 30 A2 01 02 5F 10 4D 68 74 |bplist00..._.Mht|
00000010 74 70 73 3A 2F 2F 64 69 73 74 2E 74 6F 72 70 72 |tps://dist.torpr|
00000020 6F 6A 65 63 74 2E 6F 72 67 2F 74 6F 72 62 72 6F |oject.org/torbro|
[...]
com.apple.quarantine: 0081;58519ffa;Google Chrome.app;1F032CAB-F5A1-4D92-84EB-CBECA971B7BC
Атрибуты метаданных также могут быть удалены с помощью флага -d
:
xattr -d com.apple.metadata:kMDItemWhereFroms ~/Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
xattr -d com.apple.quarantine ~/Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
xattr -l ~/Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
Другие метаданные и артефакты могут быть найдены в каталогах, включая, но не ограничиваясь, ~/Library/Preferences/
, ~/Library/Containers/<APP>/Data/Library/Preferences
, /Library/Preferences
, некоторые из которых подробно описаны ниже.
~/Library/Preferences/com.apple.sidebarlists.plist
содержит исторический список прикрепленных томов. Чтобы очистить его, используйте команду /usr/libexec/PlistBuddy -c "delete :systemitems:VolumesList" ~/Library/Preferences/com.apple.sidebarlists.plist
/Library/Preferences/com.apple.Bluetooth.plist
содержит метаданные Bluetooth, включая историю устройств. Если Bluetooth не используется, метаданные можно очистить:
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist DeviceCache
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist IDSPairedDevices
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist PANDevices
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist PANInterfaces
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist SCOAudioDevices
/var/spool/cups
содержит кеш заданий для принтера. Чтобы очистить его, используйте команды:
sudo rm -rfv /var/spool/cups/c0*
sudo rm -rfv /var/spool/cups/tmp/*
sudo rm -rfv /var/spool/cups/cache/job.cache*
Чтобы очистить список подключенных устройств iOS, используйте:
sudo defaults delete /Users/$USER/Library/Preferences/com.apple.iPod.plist "conn:128:Last Connect"
sudo defaults delete /Users/$USER/Library/Preferences/com.apple.iPod.plist Devices
sudo defaults delete /Library/Preferences/com.apple.iPod.plist "conn:128:Last Connect"
sudo defaults delete /Library/Preferences/com.apple.iPod.plist Devices
sudo rm -rfv /var/db/lockdown/*
Данные QuickLook Thumbnail могут быть очищены с помощью команды qlmanage -r cache
, но это записывает в файл resetreason
в каталогах QuickLook и утверждает, что кэш QuickLook был очищен вручную. Отключить кеш миниатюры с помощью qlmanage -r disablecache
Его также можно очистить, получив имена каталогов с помощью getconf DARWIN_USER_CACHE_DIR
и sudo getconf DARWIN_USER_CACHE_DIR
, затем удалив их:
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/exclusive
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-shm
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-wal
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/resetreason
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.data
Точно так же для корневого пользователя:
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.fraghandler
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/exclusive
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-shm
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-wal
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/resetreason
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.data
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.fraghandler
Также см. Кэш «QuickLook» может протекать зашифрованные данные.
Чтобы очистить предпочтения искателя:
defaults delete ~/Library/Preferences/com.apple.finder.plist FXDesktopVolumePositions
defaults delete ~/Library/Preferences/com.apple.finder.plist FXRecentFolders
defaults delete ~/Library/Preferences/com.apple.finder.plist RecentMoveAndCopyDestinations
defaults delete ~/Library/Preferences/com.apple.finder.plist RecentSearches
defaults delete ~/Library/Preferences/com.apple.finder.plist SGTRecentFileSearches
Дополнительные диагностические файлы могут быть найдены в следующих каталогах, но следует соблюдать осторожность перед удалением любого, так как это может сломать ведение журнала или вызвать другие проблемы:
/var/db/CoreDuet/
/var/db/diagnostics/
/var/db/systemstats/
/var/db/uuidtext/
/var/log/DiagnosticMessages/
MacOS сохранял предпочтительные данные Wi-Fi (включая учетные данные) в NVRAM. Чтобы очистить его, используйте следующие команды:
sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:current-network
sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:preferred-networks
sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:preferred-count
MacOS может собирать конфиденциальную информацию о том, что вы вводите, даже если пользовательский словарь и предложения выключены. Чтобы удалить их и предотвратить их снова создать, используйте следующие команды:
rm -rfv "~/Library/LanguageModeling/*" "~/Library/Spelling/*" "~/Library/Suggestions/*"
chmod -R 000 ~/Library/LanguageModeling ~/Library/Spelling ~/Library/Suggestions
chflags -R uchg ~/Library/LanguageModeling ~/Library/Spelling ~/Library/Suggestions
QuickLook Support Support Metadata можно очистить и заблокировать следующими командами:
rm -rfv "~/Library/Application Support/Quick Look/*"
chmod -R 000 "~/Library/Application Support/Quick Look"
chflags -R uchg "~/Library/Application Support/Quick Look"
Метаданные ревизии документа хранятся в /.DocumentRevisions-V100
-V100 и могут быть очищены и заблокированы следующими командами - следует принимать осторожность, так как это может нарушить некоторые основные приложения Apple:
sudo rm -rfv /.DocumentRevisions-V100/*
sudo chmod -R 000 /.DocumentRevisions-V100
sudo chflags -R uchg /.DocumentRevisions-V100
Сохраненные метаданные состояния приложения могут быть очищены и заблокированы следующими командами:
rm -rfv ~/Library/Saved Application State/*
rm -rfv ~/Library/Containers/<APPNAME>/Data/Library/Saved Application State
chmod -R 000 ~/Library/Saved Application State/
chmod -R 000 ~/Library/Containers/<APPNAME>/Data/Library/Saved Application State
chflags -R uchg ~/Library/Saved Application State/
chflags -R uchg ~/Library/Containers/<APPNAME>/Data/Library/Saved Application State
Метаданные автозавы могут быть очищены и заблокированы следующими командами:
rm -rfv "~/Library/Containers/<APP>/Data/Library/Autosave Information"
rm -rfv "~/Library/Autosave Information"
chmod -R 000 "~/Library/Containers/<APP>/Data/Library/Autosave Information"
chmod -R 000 "~/Library/Autosave Information"
chflags -R uchg "~/Library/Containers/<APP>/Data/Library/Autosave Information"
chflags -R uchg "~/Library/Autosave Information"
База данных Siri Analytics, которая создается, даже если агент запуска Siri отключен, может быть очищена и заблокирована следующими командами:
rm -rfv ~/Library/Assistant/SiriAnalytics.db
chmod -R 000 ~/Library/Assistant/SiriAnalytics.db
chflags -R uchg ~/Library/Assistant/SiriAnalytics.db
~/Library/Preferences/com.apple.iTunes.plist
содержит метаданные iTunes. Недавние данные поиска iTunes могут быть очищены со следующей командой:
defaults delete ~/Library/Preferences/com.apple.iTunes.plist recentSearches
Если вы не используете сервисы Apple, связанные с учетной записью, могут также быть очищены следующие ключи, используя следующие команды:
defaults delete ~/Library/Preferences/com.apple.iTunes.plist StoreUserInfo
defaults delete ~/Library/Preferences/com.apple.iTunes.plist WirelessBuddyID
Все медиа, сыгранные в 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
Генерировать прочные пароли с помощью urandom
и tr
:
tr -dc '[:graph:]' < /dev/urandom | fold -w 20 | head -1
Помощник пароля в доступе к ключам также может генерировать безопасные учетные данные.
Подумайте об использовании Diceware для запоминающихся паролей.
GNUPG также можно использовать для управления паролями и другими зашифрованными файлами (см. DRDUH/кошелек и DRDUH/PWD.SH).
Убедитесь, что все подходящие онлайн-учетные записи имеют многофакторную аутентификацию. Самая сильная форма многофакторной аутентификации-WebAuthn, за которой следуют аутентификаторы на основе приложений, а коды на основе SMS являются самыми слабыми.
Yubikey - доступный аппаратный токен с поддержкой WebAuthn. Его также можно использовать для хранения криптографических ключей для шифрования GNUPG и аутентификации SSH - см. Drduh/Yubikey -Guide.
Зашифруйте файлы локально перед тем, как поддерживать их на внешние медиа или онлайн -сервисы.
Если ваша модель угроз позволяет, вы должны следовать модели резервного копирования 3-2-1, как указано CISA. Держите 3 экземпляра: оригинал и два резервных копирования. Сохраняйте резервные копии на 2 различных типах носителей, например, на локальном диске и облачном хранилище. Хранить 1 копию вне места.
Time Machine-это встроенный инструмент для обработки резервных копий на macOS. Получите внешний диск или сетевой диск для резервного копирования и зашифровать ваши резервные копии.
GNUPG можно использовать со статическим паролем или открытым ключом (с закрытым ключом, хранящимся на Yubikey).
Сжатие и шифровать каталог, используя пароль:
tar zcvf - ~/Downloads | gpg -c > ~/Desktop/backup-$(date +%F-%H%M).tar.gz.gpg
Расшифровывать и распаковать каталог:
gpg -o ~/Desktop/decrypted-backup.tar.gz -d ~/Desktop/backup-*.tar.gz.gpg
tar zxvf ~/Desktop/decrypted-backup.tar.gz
Зашифрованные объемы также могут быть созданы с помощью утилиты диска или hdiutil
:
hdiutil create ~/Desktop/encrypted.dmg -encryption -size 50M -volname "secretStuff"
hdiutil mount ~/Desktop/encrypted.dmg
cp -v ~/Documents/passwords.txt /Volumes/secretStuff
hdiutil eject /Volumes/secretStuff
Дополнительные приложения и услуги, которые предлагают резервные копии, включают:
MacOS помнит точки доступа, к которой он подключился. Как и все беспроводные устройства, Mac будет транслировать все имена точек доступа, которые он помнит (например, MyHomenetWork ) каждый раз, когда он ищет сеть, например, когда пробуждение от сна.
Это риск конфиденциальности, поэтому удалите сети из списка в системных предпочтениях > сети > продвинутые, когда они больше не нужны.
Также см. Сигналы от толпы: раскрытие социальных отношений с помощью зондов смартфона (PDF).
Сохраненная информация Wi-Fi (SSID, последнее соединение и т. Д.) Можно найти в /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist
Вы можете иметь свой случайный MAC -адрес для каждой сети, который вращается с течением времени. Это поможет предотвратить отслеживание вас по сети и в той же сети с течением времени.
MacOS хранит Wi-Fi SSID и пароли в NVRAM, чтобы режим восстановления для доступа к Интернету. Обязательно очистите NVRAM или De-AuthentIcate Your Mac из вашей учетной записи Apple, которая очистит NVRAM, прежде чем пропустить Mac. Сброс SMC очистит некоторые NVRAM, но не все.
Наконец, защита WEP в беспроводных сетях не является безопасной, и вы должны подключаться к защищенным WPA3 сетям, когда это возможно.
Для подключения к исходящим SSH используйте аппаратные или защищенные паролем ключи, настраивайте удаленные хосты и рассмотрите их для дополнительной конфиденциальности. См. DRDUH/CONFIG/SSH_CONFIG для рекомендуемых вариантов клиента.
Вы также можете использовать SSH для создания зашифрованного туннеля для отправки трафика, аналогичного VPN.
Например, для использования Privoxy работает на удаленном хосте порт 8118:
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
Или использовать SSH -соединение в качестве прокси -сервера носков:
ssh -NCD 3000 [email protected]
По умолчанию MacOS не включает в систему SSHD или удаленный вход .
Чтобы включить SSHD и разрешить входящие SSH -соединения:
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
Или используйте системные предпочтения > «Обмен меню».
Если включить SSHD, обязательно отключите аутентификацию пароля и рассмотрите дальнейшее упрочнение вашей конфигурации. См. DRDUH/CONFIG/SSHD_CONFIG для рекомендуемых параметров.
Подтвердите, работает ли SSHD:
sudo lsof -Pni TCP:22
Держите свой Mac физически в безопасности и не оставляйте его без присмотра на публике.
Квалифицированный атакующий с неконтролируемым физическим доступом может установить аппаратный клавиш для записи всех ваших нажатий клавиш. Использование Mac со встроенной клавиатурой или клавиатурой Bluetooth делает его более трудным, так как многие готовые версии этой атаки предназначены для подключения между клавиатурой USB и вашим компьютером.
Чтобы защитить от физической кражи во время использования, вы можете использовать антиформенный инструмент, такой как Buskill или SwiftGuard (обновленный USBKill, с графическим пользовательским интерфейсом). Все реагируют на события USB и могут немедленно выключить ваш компьютер, если ваше устройство физически отделено от вас или подключено несанкционированное устройство.
Рассмотрим покупку экрана/фильтра конфиденциальности/фильтра для использования на публике.
Порные лак и уплотнения для ногтей и уплотнения могут быть нанесены на компоненты для обнаружения фальсификации.
MacOS обладает мощной возможностью аудита OpenBSM (базовый модуль безопасности). Вы можете использовать его для мониторинга выполнения процесса, сетевой активности и многого другого.
Для хвоста журналов аудита используйте утилиту praudit
:
$ sudo praudit -l /dev/auditpipe
header,201,11,execve(2),0,Thu Sep 1 12:00:00 2015, + 195 msec,exec arg,/Applications/.evilapp/rootkit,path,/Applications/.evilapp/rootkit,path,/Applications/.evilapp/rootkit,attribute,100755,root,wheel,16777220,986535,0,subject,drduh,root,wheel,root,wheel,412,100005,50511731,0.0.0.0,return,success,0,trailer,201,
header,88,11,connect(2),0,Thu Sep 1 12:00:00 2015, + 238 msec,argument,1,0x5,fd,socket-inet,2,443,173.194.74.104,subject,drduh,root,wheel,root,wheel,326,100005,50331650,0.0.0.0,return,failure : Operation now in progress,4354967105,trailer,88
header,111,11,OpenSSH login,0,Thu Sep 1 12:00:00 2015, + 16 msec,subject_ex,drduh,drduh,staff,drduh,staff,404,404,49271,::1,text,successful login drduh,return,success,0,trailer,111,
См. Ручные страницы для audit
, praudit
, audit_control
и других файлов в /etc/security
ПРИМЕЧАНИЕ Несмотря на то, что man audit
говорит, что флаг -s
синхронизирует конфигурацию аудита, кажется, необходимым для перезагрузки для вступления в силу.
См. Статьи на ilostmynotes.blogspot.com и derflounder.wordpress.com для получения дополнительной информации.
Защита от целостности системы примечания мешает DTRACE, поэтому невозможно использовать ее в последних версиях MacOS без отключения SIP.
iosnoop
мониторирует диск ввод/выводopensnoop
execsnoop
мониторирует выполнение процессовerrinfo
мониторы неудачных системных вызововdtruss
контролирует все системы системных вызовов См. man -k dtrace
для получения дополнительной информации.
ps -ef
перечисляет информацию обо всех работающих процессах.
Вы также можете просмотреть процессы с монитором активности .
launchctl list
и список sudo launchctl list
Загружены и запущены и запуск системы и агенты.
Список открытых сетевых файлов:
sudo lsof -Pni
Список содержимого различных сетевых структур данных:
sudo netstat -atln
Wireshark можно использовать из командной строки с tshark
.
Мониторинг запросов и ответов DNS:
tshark -Y "dns.flags.response == 1" -Tfields
-e frame.time_delta
-e dns.qry.name
-e dns.a
-Eseparator=,
Мониторинг HTTP -запросов и ответов:
tshark -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
Сертификаты монитора x509 (SSL/TLS):
tshark -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
Google/Santa - это программное обеспечение для безопасности, разработанное для корпоративного флота Google Macintosh и открытых источников.
Санта - это бинарная система авторизации доступа к файлам для MacOS. Он состоит из расширения системы, которое контролирует на казнях, демон, который принимает решения о выполнении, основанные на содержании локальной базы данных, агенте GUI, который уведомляет пользователя в случае блочного решения и утилиты командной строки для управления системой и Синхронизация базы данных с сервером.
Санта использует API авторизации ядра для мониторинга и разрешения/запрета на выполнение в ядре. Двоичные файлы могут быть в списке белого или черного цвета с помощью уникального хэша или подписания сертификата разработчика. Санта может быть использован только для разрешения доверенного выполнения кода или в черном списке известных вредоносных программ от выполнения на Mac, аналогичном программному обеспечению Bit9 для Windows.
Примечание Санта в настоящее время не имеет графического пользовательского интерфейса для управления правилами. Следующие инструкции предназначены только для продвинутых пользователей!
Чтобы установить Санту, посетите страницу выпусков и загрузите последнее изображение диска, установите его и установите пакет с содержащимся:
hdiutil mount ~/Downloads/santa-0.9.20.dmg
sudo installer -pkg /Volumes/santa-0.9.20/santa-0.9.20.pkg -tgt /
По умолчанию Санта устанавливает в режиме «Монитор» (что означает, что ничего не блокируется, только зарегистрировано) и поставляется с двумя правилами: одно для Apple Binary, а другое для самого программного обеспечения Santa.
Убедитесь, что Santa работает, и его модуль ядра загружен:
$ santactl status
>>> Daemon Info
Mode | Monitor
File Logging | No
Watchdog CPU Events | 0 (Peak: 0.00%)
Watchdog RAM Events | 0 (Peak: 0.00MB)
>>> Kernel Info
Kernel cache count | 0
>>> Database Info
Binary Rules | 0
Certificate Rules | 2
Events Pending Upload | 0
$ ps -ef | grep " [s]anta "
0 786 1 0 10:01AM ?? 0:00.39 /Library/Extensions/santa-driver.kext/Contents/MacOS/santad --syslog
$ kextstat | grep santa
119 0 0xffffff7f822ff000 0x6000 0x6000 com.google.santa-driver (0.9.14) 693D8E4D-3161-30E0-B83D-66A273CAE026 <5 4 3 1>
Создайте правило черного списка, чтобы предотвратить выполнение iTunes:
$ sudo santactl rule --blacklist --path /Applications/iTunes.app/
Added rule for SHA-256: e1365b51d2cb2c8562e7f1de36bfb3d5248de586f40b23a2ed641af2072225b3.
Попробуйте запустить iTunes - он будет заблокирован.
$ open /Applications/iTunes.app/
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/iTunes.app.
Чтобы удалить правило:
$ sudo santactl rule --remove --path /Applications/iTunes.app/
Removed rule for SHA-256: e1365b51d2cb2c8562e7f1de36bfb3d5248de586f40b23a2ed641af2072225b3.
Откройте iTunes:
$ open /Applications/iTunes.app/
[iTunes will open successfully]
Создайте новую программу C, пример C:
$ cat << EOF > foo.c
> # include <stdio.h>
> main () { printf( " Hello Worldn”); }
> EOF
Скомпилируйте программу с помощью GCC (требует установки инструментов Xcode или командной строки):
$ gcc -o foo foo.c
$ file foo
foo: Mach-O 64-bit executable x86_64
$ codesign -d foo
foo: code object is not signed at all
Запустить это:
$ ./foo
Hello World
Переключить Санта в режим "блокировки", который позволяет запускать только авторизованные двоичные файлы:
$ sudo defaults write /var/db/santa/config.plist ClientMode -int 2
Попробуйте запустить бессознанный бинар:
$ ./foo
bash: ./foo: Operation not permitted
Santa
The following application has been blocked from executing
because its trustworthiness cannot be determined.
Path: /Users/demouser/foo
Identifier: 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed
Parent: bash (701)
Чтобы санкционировать двоичный файл, определите его сумму SHA-256:
$ santactl fileinfo /Users/demouser/foo
Path : /Users/demouser/foo
SHA-256 : 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed
SHA-1 : 4506f3a8c0a5abe4cacb98e6267549a4d8734d82
Type : Executable (x86-64)
Code-signed : No
Rule : Blacklisted (Unknown)
Добавьте новое правило:
$ sudo santactl rule --whitelist --sha256 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed
Added rule for SHA-256: 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed.
Запустить это:
$ ./foo
Hello World
Это разрешено и работает!
Приложения также могут быть разрешены сертификатом разработчика. Например, загрузите и запустите Google Chrome - он будет заблокирован Santa в режиме "Lockdown":
$ curl -sO https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg
$ hdiutil mount googlechrome.dmg
$ cp -r /Volumes/Google Chrome/Google Chrome.app /Applications/
$ open /Applications/Google Chrome.app/
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/Google Chrome.app.
Разрешить заявку сертификатом разработчика (первый элемент в цепочке подписи):
$ santactl fileinfo /Applications/Google Chrome.app/
Path : /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
SHA-256 : 0eb08224d427fb1d87d2276d911bbb6c4326ec9f74448a4d9a3cfce0c3413810
SHA-1 : 9213cbc7dfaaf7580f3936a915faa56d40479f6a
Bundle Name : Google Chrome
Bundle Version : 2883.87
Bundle Version Str : 55.0.2883.87
Type : Executable (x86-64)
Code-signed : Yes
Rule : Blacklisted (Unknown)
Signing Chain:
1. SHA-256 : 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
SHA-1 : 85cee8254216185620ddc8851c7a9fc4dfe120ef
Common Name : Developer ID Application: Google Inc.
Organization : Google Inc.
Organizational Unit : EQHXZ8M8AV
Valid From : 2012/04/26 07:10:10 -0700
Valid Until : 2017/04/27 07:10:10 -0700
2. SHA-256 : 7afc9d01a62f03a2de9637936d4afe68090d2de18d03f29c88cfb0b1ba63587f
SHA-1 : 3b166c3b7dc4b751c9fe2afab9135641e388e186
Common Name : Developer ID Certification Authority
Organization : Apple Inc.
Organizational Unit : Apple Certification Authority
Valid From : 2012/02/01 14:12:15 -0800
Valid Until : 2027/02/01 14:12:15 -0800
3. SHA-256 : b0b1730ecbc7ff4505142c49f1295e6eda6bcaed7e2c68c5be91b5a11001f024
SHA-1 : 611e5b662c593a08ff58d14ae22452d198df6c60
Common Name : Apple Root CA
Organization : Apple Inc.
Organizational Unit : Apple Certification Authority
Valid From : 2006/04/25 14:40:36 -0700
Valid Until : 2035/02/09 13:40:36 -0800
В этом случае 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
- это SHA -256 Сертификата Google Apple Developer (Team ID EQHX8M8AV) - Авторизировать: Авторизируют его:
$ sudo santactl rule --whitelist --certificate --sha256 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
Added rule for SHA-256: 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153.
Google Chrome теперь должен запустить, и последующие обновления приложения будут продолжать работать до тех пор, пока сертификат подписания кода не изменяется или истекает.
Чтобы отключить режим «блокировки»:
sudo defaults delete /var/db/santa/config.plist ClientMode
/var/log/santa.log
.
Журнал и сервер конфигурации для Санты доступен в Zentral, решении для мониторинга событий с открытым исходным кодом и сервера TLS для Osquery и Santa.
Zentral будет поддерживать Санту как в режиме мониторинга, так и в режиме работы блокировки. Клиенты должны быть зачислены на соединение TLS с синхронизацией правил SANTA, все события Santa от конечных точек агрегируются и зарегистрированы обратно в Zentral. События Санта могут вызвать действия и уведомления из рамки Zentral.
Примечание Python, Bash и другие переводчики разрешены (поскольку они подписаны сертификатом разработчика Apple), поэтому Санта не сможет заблокировать такие сценарии от выполнения. Таким образом, потенциальная невоичная программа, которая отключает Санту,-это слабость (не уязвимость, поскольку это так по замыслу).
Отключить данные диагностики и использования.
Если вы хотите воспроизводить музыку или посмотреть видео , используйте Quicktime Player, встроенный медиаплеер в MacOS. Он использует песочницу приложения, закаленную среду выполнения и выгоду от объема подписанной системы как часть базовой системы.
Если вы хотите использовать торренты , используйте трансмиссию, которая является бесплатной и открытым исходным кодом (примечание: как и все программное обеспечение, даже проекты с открытым исходным кодом, вредоносные программы все еще могут найти свой путь). Вы также можете использовать список блоков, чтобы избежать взгляда с известными плохими хостами - см. Лучший блок -лист для передачи и Johntyree/3331662.
Управление обработчиками файлов по умолчанию.
Мониторинг системных журналов с помощью консольных приложений или команд syslog -w
или /usr/bin/log stream
.
Установите свой экран, чтобы заблокировать, как только начинается заставка:
defaults write com.apple.screensaver askForPassword -int 1
defaults write com.apple.screensaver askForPasswordDelay -int 0
Разоблачить скрытые файлы и библиотечную папку в Finder:
defaults write com.apple.finder AppleShowAllFiles -bool true
chflags nohidden ~/Library
Покажите все расширения имени файла (так что «vil.jpg.App» не может легко маскировать).
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
Не по умолчанию сохранения документов в iCloud:
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
Включите безопасную запись клавиатуры в терминале (если вы не используете Yubikey или такие приложения, как Textexpander).
Отключить репортер сбоев (диалог, который появляется после сбоя приложения и побуждает сообщить о проблеме Apple):
defaults write com.apple.CrashReporter DialogType none
Отключить рекламные объявления о многоадресной расстоянии:
Предупреждение: это вызовет проблемы с Airplay и Airprint!
sudo defaults write /Library/Preferences/com.apple.mDNSResponder.plist NoMulticastAdvertisements -bool YES
Отключите функции передачи и Bluetooth, если они не нужны.
Убедитесь, что ваши приложения находятся в песочнице в мониторе активности.
MacOS поставляется с этой линией в /etc/sudoers
:
Defaults env_keep += "HOME MAIL"
Который мешает Sudo изменять домашнюю переменную, когда вы поднимаете привилегии. Это означает, что он будет выполняться как root the zsh Dotfiles в домашнем каталоге пользователя без корня при запуска "Sudo Zsh". Желательно прокомментировать эту строку, чтобы избежать потенциально простого способа для вредоносных программ или местного злоумышленника, чтобы обострить привилегии для корня.
Если вы хотите сохранить удобство пользователя root, имеющего домашний каталог пользователя, не являющегося корректом, вы можете добавить экспортную линию по адресу /var/root/.zshrc, например:
export HOME=/Users/blah
Установите пользовательский Umask:
sudo launchctl config user umask 077
Перезагрузите, создайте файл в Finder и проверьте его разрешения (MacOS Default позволяет «Group/Other 'Read Access):
$ ls -ld umask *
drwx------ 2 kevin staff 64 Dec 4 12:27 umask_testing_dir
-rw-------@ 1 kevin staff 2026566 Dec 4 12:28 umask_testing_file