Este guia é uma coleção de técnicas para melhorar a segurança e a privacidade de computadores Apple Silicon Mac que executam uma versão atualmente suportada do macOS. Usar Macs com CPUs Intel deixa você vulnerável a vulnerabilidades de segurança no nível de hardware que a Apple não consegue corrigir . Os Macs de silício da Apple são a recomendação mínima, mas como regra geral, os chips mais novos são sempre mais seguros.
Este guia é direcionado a usuários avançados que desejam adotar segurança padrão empresarial, mas também é adequado para usuários novatos com interesse em melhorar sua privacidade e segurança em um Mac.
Se você estiver protegendo computadores para uma organização, use as diretrizes oficiais do NIST para macOS.
Um sistema é tão seguro quanto seu administrador for capaz de torná-lo. Não existe uma tecnologia, software ou técnica única que garanta a segurança informática perfeita; um sistema operacional e um computador modernos são muito complexos e exigem inúmeras mudanças incrementais para melhorar significativamente a postura de segurança e privacidade.
Este guia é fornecido “no estado em que se encontra”, sem quaisquer garantias de qualquer tipo. Somente você é responsável se quebrar alguma coisa ou tiver algum tipo de problema ao seguir este guia.
Para sugerir uma melhoria, envie uma solicitação pull ou abra um problema.
Aplicam-se as melhores práticas gerais de segurança:
Crie um modelo de ameaça
Mantenha o sistema e software atualizados
softwareupdate
- nenhum deles requer o registro de uma conta Apple.Criptografe dados confidenciais
Garanta a disponibilidade dos dados
Clique com cuidado
O primeiro e mais importante passo para segurança e privacidade é criar um modelo de ameaça. Você precisa entender seus adversários para se defender deles. Cada pessoa terá suas próprias necessidades, portanto o modelo de ameaça de cada um será diferente. Os modelos de ameaças tendem a evoluir ao longo do tempo à medida que a nossa situação muda, por isso reavalie periodicamente o seu modelo de ameaças.
Provavelmente são muitas coisas: seu telefone, seu laptop, senhas armazenadas em seus dispositivos, histórico de navegação na Internet, etc. Faça uma lista começando pelos ativos mais importantes a serem protegidos. Você pode colocá-los em categorias com base em sua importância: públicos, confidenciais ou secretos.
Defina contra quem você está se defendendo. Comece definindo a motivação que eles podem ter para atacar seus ativos. O ganho financeiro é um grande motivador para muitos invasores, por exemplo.
Para combater seus adversários, você precisará entender do que eles são capazes e do que não são capazes. Classifique os adversários de totalmente pouco sofisticados a muito avançados. Por exemplo, um ladrão comum não é muito sofisticado; eles provavelmente serão interrompidos por coisas básicas, como simplesmente ter uma senha e criptografia de unidade em seu dispositivo. Um adversário muito avançado, como um ator estatal, pode exigir o desligamento total do dispositivo quando não estiver em uso para limpar as chaves da RAM e uma senha longa de diceware.
Agora é quando você decide a melhor maneira de combater cada ameaça. Você pode evitar anotar as senhas no papel para que seu colega de quarto não possa encontrá-las ou pode criptografar a unidade do seu computador para que um ladrão não consiga obter dados dela. É importante equilibrar segurança e usabilidade; toda mitigação deve contrariar alguma capacidade de seus adversários; caso contrário, você poderá tornar sua vida inconveniente com pouco ou nenhum ganho. Se você não consegue pensar em mais capacidades que seus adversários possam ter e implementou mitigações para todos eles, seu trabalho está concluído.
Aqui está um exemplo do tipo de tabela que você deve fazer para cada ativo que deseja proteger:
Adversário | Motivação | Capacidades | Mitigação |
---|---|---|---|
Colega de quarto | Veja bate-papos privados ou histórico de navegação | Proximidade; pode ver a tela ou assistir, digite a senha | Use biometria, use a tela de privacidade, mantenha o telefone bloqueado quando não estiver em uso |
Ladrão | Desbloqueie o telefone, roube informações pessoais e drene contas bancárias, venda o telefone por dinheiro | Navegue para ver a senha, roube o dispositivo quando não estiver olhando enquanto estiver conectado | Mantenha o telefone sempre à vista ou pessoalmente, mantenha-o bloqueado quando não estiver em uso, use a biometria para evitar digitar a senha em público, use o Find My ou serviço semelhante para rastrear/desativar remotamente o dispositivo roubado |
Criminal | Financeiro | Engenharia social, malware prontamente disponível, reutilização de senhas, exploração de vulnerabilidades | Use sandboxing, habilite recursos de segurança no sistema operacional, mantenha o sistema operacional e todos os softwares atualizados e ative atualizações automáticas |
Corporação | Marketing de dados do usuário | Telemetria e coleta de dados comportamentais | Bloqueie conexões de rede, redefina identificadores exclusivos, evite adicionar dados de pagamento |
Estado-nação/APT | Vigilância direcionada | Vigilância passiva da infraestrutura da Internet, computadores avançados para quebrar criptografia/análise de pacotes | Use e2ee de código aberto, use senhas fortes de diceware para dispositivos, use hardware com elemento seguro para criptografia segura, desligue dispositivos quando não os estiver usando, software tripwire/honeypot/canary tokens |
Leia mais sobre modelagem de ameaças aqui.
O macOS é mais seguro em execução em hardware Apple com silício Apple. Quanto mais novo for o Mac, melhor. Evite hackintoshes e Macs que não suportam o macOS mais recente, pois a Apple não corrige todas as vulnerabilidades em versões que não sejam as mais recentes.
Ao comprar seu Mac, você pode querer evitar que ele seja vinculado a você. Dependendo do seu modelo de ameaça, você deve pagar em dinheiro pessoalmente, em vez de fazer o pedido on-line ou comprar com cartão de crédito/débito, dessa forma, nenhuma informação de identificação poderá ser vinculada à sua compra.
Se você deseja utilizar teclado, mouse, fones de ouvido ou outro acessório sem fio, a opção mais segura são os da Apple, pois serão atualizados automaticamente pelo seu sistema. Eles também suportam os recursos Bluetooth mais recentes, como BLE Privacy, que randomiza seu endereço de hardware Bluetooth para evitar rastreamento. Com acessórios de terceiros, isso não é uma garantia.
Existem várias maneiras de instalar o macOS. Escolha o seu método preferido entre as opções disponíveis.
Você deve instalar a versão mais recente do macOS compatível com o seu Mac . Versões mais recentes possuem patches de segurança e outras melhorias que faltam nas versões mais antigas.
Como parte do sistema de prevenção de roubo da Apple, os Macs de silício da Apple precisarão ser ativados com os servidores da Apple sempre que você reinstalar o macOS para verificar o banco de dados de Macs roubados ou com ativação bloqueada.
Você pode ler exatamente como esse processo funciona aqui.
Não é necessário criar uma conta Apple para usar o macOS. Criar uma conta Apple requer um número de telefone e, por padrão, sincronizará muitos dados com o iCloud, o serviço de armazenamento em nuvem da Apple. Você pode desativar a sincronização mais tarde, se desejar, ou ativar a criptografia ponta a ponta para seus dados do iCloud.
Você pode controlar os dados associados à sua conta Apple ou excluí-los completamente.
É necessária uma conta Apple para acessar a App Store e usar a maioria dos serviços Apple, como iCloud, Apple Music, etc.
A Mac App Store é um repositório com curadoria de software necessário para utilizar o App Sandbox e o Hardened Runtime, além de oferecer atualizações automáticas que se integram ao seu sistema.
A App Store oferece as maiores garantias de segurança para software no macOS, mas exige que você faça login com uma conta Apple e a Apple poderá vincular sua conta Apple aos aplicativos baixados.
Você pode executar facilmente o macOS nativamente em uma máquina virtual usando UTM. É gratuito no site deles, mas se você comprá-lo na App Store, receberá atualizações automáticas.
Siga a documentação para instalar uma VM macOS com apenas alguns cliques.
Outra opção é o VMware Fusion. Você pode ler a documentação para ver como instalar uma VM macOS.
Quando o macOS for iniciado pela primeira vez, você será saudado pelo Assistente de Configuração .
Ao criar a primeira conta, use uma senha forte e sem dicas.
Se você inserir seu nome real no processo de configuração da conta, esteja ciente de que o nome do seu computador e o nome do host local incluirão esse nome (por exemplo, MacBook de John Appleseed ) e, portanto, aparecerão em redes locais e em vários arquivos de preferências.
Ambos devem ser verificados e atualizados conforme necessário em Configurações do sistema > Sobre ou com os seguintes comandos após a instalação:
sudo scutil --set ComputerName MacBook
sudo scutil --set LocalHostName MacBook
A primeira conta de usuário é sempre uma conta de administrador. As contas de administrador são membros do grupo admin e têm acesso ao sudo
, o que lhes permite usurpar outras contas, em particular o root, e lhes dá controle efetivo sobre o sistema. Qualquer programa executado pelo administrador pode potencialmente obter o mesmo acesso, tornando isso um risco de segurança.
Utilitários como sudo
têm pontos fracos que podem ser explorados por programas em execução simultânea.
É considerada uma prática recomendada pela Apple usar uma conta padrão separada para o trabalho diário e usar a conta de administrador para instalações e configuração do sistema.
Não é estritamente necessário fazer login na conta de administrador por meio da tela de login do macOS. Quando um comando do Terminal requer privilégios de administrador, o sistema solicitará autenticação e o Terminal continuará usando esses privilégios. Para esse fim, a Apple fornece algumas recomendações para ocultar a conta de administrador e seu diretório inicial. Esta pode ser uma solução elegante para evitar ter uma conta “fantasma” visível.
/Applications
(diretório local). O Finder e o Installer solicitarão ao usuário padrão uma caixa de diálogo de autenticação. Muitos aplicativos podem ser instalados em ~/Applications
(o diretório pode ser criado). Como regra geral: aplicativos que não requerem acesso de administrador – ou que não reclamam de não serem instalados em /Applications
– devem ser instalados no diretório do usuário, o restante no diretório local. Os aplicativos da Mac App Store ainda estão instalados em /Applications
e não requerem autenticação adicional.sudo
não está disponível em shells do usuário padrão, o que requer o uso de su
ou login
para entrar em um shell da conta de administrador. Isso pode tornar algumas manobras mais complicadas e requer alguma experiência básica com interfaces de linha de comando.open
.As contas podem ser criadas e gerenciadas nas Preferências do Sistema. Em sistemas liquidados, geralmente é mais fácil criar uma segunda conta de administrador e depois rebaixar a primeira conta. Isso evita a migração de dados. Os sistemas recém-instalados também podem simplesmente adicionar uma conta padrão.
O rebaixamento de uma conta pode ser feito a partir da nova conta de administrador nas Preferências do Sistema – a outra conta deve estar desconectada – ou executando estes comandos (pode não ser necessário executar ambos, consulte o problema 179):
sudo dscl . -delete /Groups/admin GroupMembership <username>
sudo dscl . -delete /Groups/admin GroupMembers <GeneratedUID>
Para encontrar o GeneratedUID de uma conta:
dscl . -read /Users/<username> GeneratedUID
Consulte também esta postagem para obter mais informações sobre como o macOS determina a associação ao grupo.
Você deve verificar se as configurações de segurança do firmware estão definidas como Segurança Total para evitar adulterações no seu sistema operacional. Esta é a configuração padrão.
Todos os modelos de Mac com Apple Silicon são criptografados por padrão. A ativação do FileVault faz com que você precise inserir uma senha para acessar os dados em sua unidade. A EFF possui um guia sobre como gerar senhas fortes, mas memoráveis.
Sua senha do FileVault também atua como uma senha de firmware que impedirá que pessoas que não a conheçam inicializem a partir de qualquer coisa que não seja o disco de inicialização designado, acessem o Recovery e o revivam com o modo DFU.
FileVault solicitará que você defina uma chave de recuperação caso você esqueça sua senha. Mantenha esta chave armazenada em algum lugar seguro. Você terá a opção de usar sua conta iCloud para desbloquear seu disco; no entanto, qualquer pessoa com acesso à sua conta iCloud também poderá desbloqueá-la.
O macOS oferece o Modo Lockdown, um recurso de segurança que desativa vários recursos do sistema operacional, reduzindo significativamente a superfície de ataque para invasores e, ao mesmo tempo, mantendo o sistema operacional utilizável. Você pode ler exatamente o que está desativado e decidir por si mesmo se é aceitável para você.
Quando o modo de bloqueio está ativado, você pode desativá-lo por site no Safari em sites confiáveis.
Existem vários tipos de firewalls disponíveis para macOS.
Firewall básico integrado que bloqueia apenas conexões de entrada . Este firewall não tem capacidade de monitorar nem bloquear conexões de saída .
Ele pode ser controlado pela guia Firewall de Rede em Configurações do sistema ou com os seguintes comandos.
Habilite o firewall com registro e modo furtivo:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setloggingmode on
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode on
Os hackers de computador examinam as redes para tentar identificar os computadores a serem atacados. Você pode impedir que seu computador responda a algumas dessas verificações usando o modo furtivo . Quando o modo furtivo está ativado, seu computador não responde às solicitações de ping ICMP e não responde às tentativas de conexão de uma porta TCP ou UDP fechada. Isso torna mais difícil para os invasores encontrarem o seu computador.
Para evitar que software integrado, bem como software baixado e assinado por código, sejam colocados automaticamente na lista de permissões :
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsigned off
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsignedapp off
Os aplicativos assinados por uma autoridade de certificação válida são automaticamente adicionados à lista de aplicativos permitidos, em vez de solicitar ao usuário que os autorize. Os aplicativos incluídos no macOS são assinados pela Apple e têm permissão para receber conexões de entrada quando esta configuração está habilitada. Por exemplo, como o iTunes já é assinado pela Apple, ele tem permissão automática para receber conexões de entrada através do firewall.
Se você executar um aplicativo não assinado que não esteja listado na lista de firewalls, uma caixa de diálogo será exibida com opções para permitir ou negar conexões para o aplicativo. Se você escolher “Permitir”, o macOS assina o aplicativo e o adiciona automaticamente à lista de firewalls. Se você escolher "Negar", o macOS o adicionará à lista, mas negará as conexões de entrada destinadas a este aplicativo.
Após interagir com socketfilterfw
, reinicie o processo enviando um sinal de desligamento de linha:
sudo pkill -HUP socketfilterfw
Programas como Little Snitch, Radio Silence e LuLu fornecem um bom equilíbrio entre usabilidade e segurança.
Esses programas são capazes de monitorar e bloquear conexões de rede de entrada e saída . No entanto, eles podem exigir o uso de uma extensão de sistema de código fechado.
Se o número de opções para permitir/bloquear conexões de rede for excessivo, use o Modo Silencioso com conexões permitidas e verifique periodicamente a configuração para entender os aplicativos e o que eles estão fazendo.
É importante notar que esses firewalls podem ser contornados por programas executados como root ou por meio de vulnerabilidades do sistema operacional (pdf), mas ainda assim vale a pena tê-los - só não espere proteção absoluta. No entanto, alguns malwares são excluídos e não são executados se o Little Snitch ou outro software de segurança estiver instalado.
Um firewall altamente personalizável, poderoso, mas também muito complicado, existe no kernel. Ele pode ser controlado com pfctl
e vários arquivos de configuração.
pf também pode ser controlado com um aplicativo GUI como o Murus.
Existem muitos livros e artigos sobre o tema firewall PF. Aqui está apenas um exemplo de bloqueio de tráfego por endereço IP.
Adicione o seguinte em um arquivo chamado 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
Em seguida, use os seguintes comandos para manipular o firewall:
sudo pfctl -e -f pf.rules
para habilitar o firewall e carregar a configuraçãosudo pfctl -d
para desabilitar o firewallsudo pfctl -t blocklist -T add 1.2.3.4
para adicionar um endereço IP à lista de bloqueiosudo pfctl -t blocklist -T show
para visualizar a lista de bloqueiossudo ifconfig pflog0 create
para criar uma interface para registrosudo tcpdump -ni pflog0
para visualizar pacotes filtradosA menos que você já esteja familiarizado com a filtragem de pacotes, não é recomendado gastar muito tempo configurando o PF. Provavelmente também é desnecessário se o seu Mac estiver atrás de um NAT em uma rede doméstica privada.
É possível usar o firewall PF para bloquear o acesso à rede para intervalos inteiros de endereços de rede, por exemplo, para uma organização inteira:
Consulte o Merit RADb para obter a lista de redes em uso por um sistema autônomo, como o Facebook:
whois -h whois.radb.net '!gAS32934'
Copie e cole a lista de redes retornada no comando blocklist:
sudo pfctl -t blocklist -T add 31.13.24.0/21 31.13.64.0/24 157.240.0.0/16
Confirme se os endereços foram adicionados:
$ 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
Confirme se o tráfego de rede está bloqueado para esses endereços (as solicitações de DNS ainda funcionarão):
$ 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
Os pacotes TCP SYN de saída são bloqueados, portanto, uma conexão TCP não é estabelecida e, portanto, um site é efetivamente bloqueado na camada IP.
Consulte drduh/config/scripts/pf-blocklist.sh para obter mais inspiração.
Os serviços no macOS são gerenciados por launchd . Consulte launchd.info.
Você pode gerenciar e ver mais informações sobre o software executado no login nas Configurações do sistema. Você também pode ver o sistema instalado, Quick Look, Finder e outras extensões nas configurações do sistema.
launchctl list
para visualizar os agentes de usuário em execuçãosudo launchctl list
para visualizar daemons do sistema em execuçãolaunchctl list com.apple.Maps.mapspushd
defaults read
para examinar listas de tarefas em /System/Library/LaunchDaemons
e /System/Library/LaunchAgents
man
e strings
para descobrir mais sobre o que um agente/daemon fazPor exemplo, para saber o que um daemon ou agente de inicialização do sistema faz, comece com:
defaults read /System/Library/LaunchDaemons/com.apple.apsd.plist
Veja a seção Program
ou ProgramArguments
para ver qual binário é executado, neste caso apsd
. Para encontrar mais informações sobre isso, consulte a página de manual com man apsd
Nota Os serviços do sistema são protegidos pelo SIP, não desative o SIP apenas para mexer nos serviços do sistema, pois o SIP é parte integrante da segurança no macOS. Desativar os serviços do sistema pode causar falhas e comportamento instável!
Para visualizar o status dos serviços:
find /var/db/com.apple.xpc.launchd/ -type f -print -exec defaults read {} ; 2>/dev/null
Listas anotadas de daemons e agentes de inicialização, o respectivo programa executado e as somas de hash dos programas estão incluídas neste repositório.
Leia mais sobre o launchd e onde os itens de login podem ser encontrados no site da Apple.
A Apple está migrando para o processamento no dispositivo para muitas funções do Siri, mas algumas informações ainda são enviadas à Apple quando você usa as sugestões do Siri ou o Spotlight. Você pode ler a Política de Privacidade da Apple para ver exatamente o que é enviado e como desativá-lo.
Se o seu programa não estiver disponível na App Store, você pode considerar usar o Homebrew.
Importante! O Homebrew pede que você conceda permissão de “Gerenciamento de aplicativos” (ou “Acesso total ao disco”) ao seu terminal. Esta é uma má ideia, pois tornaria você vulnerável a esses ataques novamente: qualquer aplicativo que não esteja em sandbox pode executar código com as permissões TCC do seu terminal adicionando um comando malicioso a (por exemplo) ~/.zshrc. Conceder “Gerenciamento de aplicativos” ou “Acesso total ao disco” ao seu terminal deve ser considerado o mesmo que desabilitar completamente o TCC.
Lembre-se de executar periodicamente brew upgrade
em redes confiáveis e seguras para baixar e instalar atualizações de software. Para obter informações sobre um pacote antes da instalação, execute brew info <package>
e verifique sua fórmula online. Você também pode ativar opções de segurança adicionais, como HOMEBREW_NO_INSECURE_REDIRECT=1
De acordo com o Anonymous Analytics do Homebrew, o Homebrew coleta análises anônimas e as reporta para uma instância InfluxDB auto-hospedada. Para cancelar as análises do Homebrew, você pode definir export HOMEBREW_NO_ANALYTICS=1
em seu ambiente ou arquivo shell rc ou usar brew analytics off
O macOS 11 introduziu "perfis de configuração de DNS" para configurar DNS criptografado, filtrar domínios e usar DNSSEC.
Perfis DNS podem ser criados ou obtidos de provedores como Quad9, AdGuard e NextDNS.
Use o arquivo hosts para bloquear malware conhecido, publicidade ou domínios indesejados.
Edite o arquivo hosts como root, por exemplo com sudo vi /etc/hosts
Para bloquear um domínio por registro A
, anexe qualquer uma das seguintes linhas a /etc/hosts
:
0 example.com
0.0.0.0 example.com
127.0.0.1 example.com
Observação O IPv6 usa o tipo de registro DNS AAAA
, em vez do tipo de registro A
, portanto, você também pode querer bloquear essas conexões incluindo também entradas ::1 example.com
, como mostrado aqui.
Existem muitas listas de domínios disponíveis online que você pode colar, apenas certifique-se de que cada linha comece com 0
, 0.0.0.0
, 127.0.0.1
e a linha 127.0.0.1 localhost
esteja incluída.
Aqui estão algumas listas de hosts populares e úteis:
Anexe uma lista de hosts com tee
:
curl https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts | sudo tee -a /etc/hosts
Se você estiver usando um firewall como o Little Snitch, você pode usar o StevenBlack/hosts importando as regras do repositório leohidalgo/little-snitch---rule-groups, essas regras são atualizadas a cada 12 horas no repositório StevenBlack/hosts.
Para criptografar o tráfego DNS, considere usar DNSCrypt/dnscrypt-proxy. Usado em combinação com dnsmasq e DNSSEC, a integridade do tráfego DNS pode ser significativamente melhorada.
Instale o DNSCrypt do Homebrew e siga as instruções para configurar e iniciar dnscrypt-proxy
:
brew install dnscrypt-proxy
Se estiver usando em combinação com Dnsmasq, encontre o arquivo homebrew.mxcl.dnscrypt-proxy.plist
executando
brew info dnscrypt-proxy
que mostrará um local como /usr/local/etc/dnscrypt-proxy.toml
Abra-o em um editor de texto, encontre a linha que começa com listen_addresses =
e edite essa linha para usar DNScrypt em uma porta diferente de 53, como 5355:
listen_addresses = ['127.0.0.1:5355', '[::1]:5355']
Inicie o DNSCrypt:
sudo brew services restart dnscrypt-proxy
Confirme se o DNSCrypt está em execução:
$ 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
Por padrão, o dnscrypt-proxy é executado em localhost (127.0.0.1), porta 53, equilibrando o tráfego em um conjunto de resolvedores. Se desejar alterar essas configurações, você terá que editar o arquivo de configuração: $HOMEBREW_PREFIX/etc/dnscrypt-proxy.toml
Nota Aplicativos e programas podem resolver DNS usando seus próprios servidores fornecidos. Se o dnscrypt-proxy for usado, é possível desabilitar todos os outros tráfegos DNS não-dnscrypt com as seguintes regras de 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
Veja também O que é um vazamento de DNS e ipv6-test.com
Entre outros recursos, o dnsmasq é capaz de armazenar respostas em cache, evitar consultas upstream para nomes não qualificados e bloquear domínios inteiros de nível superior.
Use em combinação com DNSCrypt para criptografar adicionalmente o tráfego DNS.
Se você não deseja usar o DNSCrypt, você deve pelo menos usar DNS não fornecido pelo seu ISP. Duas alternativas populares são Google DNS e OpenDNS.
DNSSEC opcional é um conjunto de extensões para DNS que fornece aos clientes DNS (resolvedores) autenticação de origem de dados DNS, negação de existência autenticada e integridade de dados. Todas as respostas das zonas protegidas DNSSEC são assinadas digitalmente. Os registros assinados são autenticados por meio de uma cadeia de confiança, começando com um conjunto de chaves públicas verificadas para a zona raiz do DNS. As atuais âncoras de confiança da zona raiz podem ser baixadas do site da IANA. Existem vários recursos sobre DNSSEC, mas provavelmente o melhor é o site dnssec.net.
Instale o Dnsmasq:
brew install dnsmasq --with-dnssec
Baixe e edite drduh/config/dnsmasq.conf ou o arquivo de configuração padrão.
Consulte drduh/config/domains para obter exemplos anexáveis sobre como bloquear serviços por domínios.
Instale e inicie o programa (sudo é necessário para vincular à porta privilegiada 53):
sudo brew services start dnsmasq
Para definir o dnsmasq como o servidor DNS local, abra Preferências do Sistema > Rede e selecione a interface ativa, depois a guia DNS , selecione + e adicione 127.0.0.1
ou use:
sudo networksetup -setdnsservers "Wi-Fi" 127.0.0.1
Confirme se o Dnsmasq está configurado:
$ 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
Nota Alguns softwares VPN substituem as configurações de DNS na conexão. Consulte a edição 24 e drduh/config/scripts/macos-dns.sh.
Teste opcional de validação DNSSEC para zonas assinadas - a resposta deve ter o status NOERROR
e conter sinalizador 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
O teste de validação de DNSSEC falha em zonas assinadas incorretamente - a resposta deve ter o status 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
O macOS vem com mais de 100 certificados de autoridade raiz instalados por empresas como Apple, Verisign, Thawte, Digicert e agências governamentais da China, Japão, Holanda, EUA e muito mais! Essas Autoridades de Certificação (CAs) são capazes de emitir certificados TLS para qualquer domínio, certificados de assinatura de código, etc. A Apple bloqueia esses certificados quando uma CA se mostra não confiável. Eles também têm requisitos rigorosos que as CAs confiáveis devem atender.
Para obter mais informações, consulte o site do CA/Browser Forum.
Inspecione os certificados raiz do sistema em Keychain Access , na guia System Roots ou usando a ferramenta de linha de comando security
e o arquivo /System/Library/Keychains/SystemRootCertificates.keychain
.
Você pode desativar manualmente as autoridades de certificação por meio do Keychain Access, marcando-as como Never Trust e fechando a janela:
Aviso: Isso fará com que seu navegador emita um aviso quando você visitar um site usando certificados assinados por essas CAs e poderá causar falhas em outros softwares. Não desconfie dos certificados raiz da Apple ou isso causará muitas falhas no macOS!
O risco de um ataque man in the middle, no qual uma autoridade de certificação coagida ou comprometida, confiável para o seu sistema, emite um certificado TLS falso/não autorizado é bastante baixo, mas ainda possível.
Considere usar o Privoxy como proxy local para filtrar o tráfego da Web.
Instale e inicie o privoxy usando Homebrew:
brew install privoxy
brew services start privoxy
Alternativamente, um pacote de instalação assinado para Privoxy está disponível em seu site ou no Sourceforge. O pacote assinado é mais seguro que a versão Homebrew e recebe suporte do projeto Privoxy.
Por padrão, o Privoxy escuta na porta TCP local 8118.
Configure o proxy HTTP do sistema para a interface de rede ativa 127.0.0.1
e 8118
:
sudo networksetup -setwebproxy "Wi-Fi" 127.0.0.1 8118
Defina o proxy HTTPS do sistema:
sudo networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 8118
Isso também pode ser feito em Preferências do Sistema > Rede > Avançado > Proxies
Confirme se o proxy está definido:
$ scutil --proxy
<dictionary> {
ExceptionsList : <array> {
0 : *.local
1 : 169.254/16
}
FTPPassive : 1
HTTPEnable : 1
HTTPPort : 8118
HTTPProxy : 127.0.0.1
}
Embora a maior parte do tráfego da Web hoje seja criptografado, o Privoxy ainda é útil para filtrar por padrões de nomes de domínio e para atualizar solicitações HTTP inseguras.
Por exemplo, as regras a seguir bloqueiam todo o tráfego, exceto .net
e github.com
e todos os domínios apple
:
{ +block{all} }
.
{ -block }
.apple.
.github.com
.net
Ou apenas para bloquear domínios do Facebook, por exemplo:
{ +block{facebook} }
.facebook*.
.fb.
.fbcdn*.
.fbinfra.
.fbsbx.
.fbsv.
.fburl.
.tfbnw.
.thefacebook.
fb*.akamaihd.net
Curingas também são suportados.
Consulte drduh/config/privoxy/config e drduh/config/privoxy/user.action para obter exemplos adicionais de Privoxy. O Privoxy não precisa ser reiniciado após a edição das regras de filtro user.action
.
Para verificar se o tráfego está bloqueado ou redirecionado, use curl ou a interface Privoxy disponível em http://pp no navegador:
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
Observe que as configurações de proxy do macOS não são universais; aplicativos e serviços podem não respeitar as configurações de proxy do sistema. Certifique-se de que o aplicativo que você deseja fazer proxy esteja configurado corretamente e verifique se as conexões não vazam. Além disso, o PF pode ser configurado para fazer proxy de tráfego de forma transparente em determinadas portas.
O navegador da Web provavelmente representa o maior risco de segurança e privacidade, já que sua função fundamental é baixar e executar códigos não confiáveis da Internet.
Uma propriedade importante dos navegadores modernos é a Política de Mesma Origem (SOP), que evita que um script malicioso em uma página obtenha acesso a dados confidenciais em outra página da web por meio do Document Object Model (DOM). Se o SOP for comprometido, a segurança de todo o navegador ficará comprometida.
Muitas explorações de navegador são baseadas em engenharia social como meio de ganhar persistência. Esteja sempre atento ao abrir sites não confiáveis e tenha cuidado especial ao baixar novo software.
Outra consideração importante sobre a segurança do navegador são as extensões. Este é um problema que afeta tanto o Firefox quanto o Chrome. O uso de extensões de navegador deve ser limitado apenas às extremamente necessárias, publicadas por desenvolvedores confiáveis.
Mozilla Firefox, Google Chrome, Safari e Tor Browser são navegadores recomendados para seus propósitos únicos e individuais.
Mozilla Firefox é um navegador popular de código aberto. O Firefox substituiu grande parte de sua infraestrutura e base de código nos projetos Quantum e Photon. Parte do projeto Quantum é substituir o código C++ por Rust. Rust é uma linguagem de programação de sistemas com foco em segurança e segurança de thread. Espera-se que a adoção do Rust melhore muito a postura geral de segurança do Firefox.
O Firefox oferece um modelo de segurança semelhante ao Chrome: possui um programa de recompensa por bugs, embora não seja tão lucrativo. O Firefox segue um ciclo de lançamento de quatro semanas.
O Firefox suporta arquivos de configuração fornecidos pelo usuário. Consulte drduh/config/firefox.user.js e arkenfox/user.js para preferências recomendadas e medidas de proteção. Veja também NoScript, uma extensão que permite o bloqueio seletivo de scripts.
O Firefox se concentra na privacidade do usuário. Suporta proteção de rastreamento no modo de navegação privada. A proteção contra rastreamento pode ser habilitada para a conta padrão, embora possa prejudicar a experiência de navegação em alguns sites. O Firefox no modo de proteção de rastreamento estrito irá randomizar sua impressão digital para evitar scripts básicos de rastreamento. O Firefox oferece perfis de usuário separados. Você pode separar sua navegação dentro de um perfil com contêineres multicontas.
O Firefox só oferece suporte a extensões da Web por meio da API de extensão da Web, que é muito semelhante ao Chrome. O envio de extensões da Web no Firefox é gratuito. As extensões da Web no Firefox na maioria das vezes são de código aberto, embora certas extensões da Web sejam proprietárias.
O Google Chrome é baseado no projeto de código aberto Chromium com determinados componentes proprietários:
O Chrome oferece sincronização de conta entre vários dispositivos. Parte dos dados de sincronização inclui credenciais para sites. Os dados são criptografados com a senha da conta.
A Web Store do Chrome para extensões requer uma taxa vitalícia de 5 US $ para enviar extensões. O baixo custo permite o desenvolvimento de muitas extensões da Web de código aberto de qualidade que não pretendem monetizar através do uso.
O Chrome tem a maior parte do uso global e é a plataforma de destino preferida para a maioria dos desenvolvedores. As principais tecnologias são baseadas nos componentes de código aberto do Chrome, como o Node.js, que utilizam o motor V8 do Chrome e a estrutura de elétrons, que é baseada em cromo e node.js. A vasta base de usuários do Chrome o torna o alvo mais atraente para atores de ameaças e pesquisadores de segurança. Apesar dos ataques constantes, o Chrome manteve um impressionante histórico de segurança ao longo dos anos. Este não é um pequeno feito.
O Chrome oferece perfis separados, sandboxing robusto, atualizações frequentes e carrega credenciais impressionantes. Além disso, o Google oferece um programa de recompensa muito lucrativo para relatar vulnerabilidades, juntamente com sua própria equipe do Projeto Zero. Isso significa que um grande número de pessoas altamente talentosas e motivadas está constantemente auditando e protegendo o código do Chrome.
Crie perfis cromados separados para reduzir o risco de XSS e compartimentar cookies/identidades. Em cada perfil, desative o JavaScript nas configurações do Chrome e configure origens permitidas. Você também deve desativar o otimizador V8 para sites onde usa JavaScript para reduzir ainda mais a superfície de ataque. Vá para Configurações -> Privacidade e Segurança -> Segurança -> Gerenciar V8 Segurança -> Não permita que sites usem o otimizador V8
Leia mais sobre os benefícios de desativar isso aqui.
Você pode bloquear rastreadores com o Ublock Origin Lite.
Altere o mecanismo de pesquisa padrão do Google para reduzir o rastreamento adicional.
Desative a pré -busca do DNS (consulte também a pré -busca do DNS e suas implicações de privacidade (PDF)). Observe que o Chrome pode tentar resolver o DNS usando 8.8.8.8
e 8.8.4.4
do Google servidores de nomes públicos.
Leia a segurança do cromo e a privacidade do cromo para obter mais informações. Leia a política de privacidade do Google para entender como as informações pessoais são coletadas e usadas.
Safari é o navegador padrão no macOS. É também o navegador mais otimizado para reduzir o uso da bateria. O Safari, como o Chrome, possui componentes de código aberto e proprietários. O Safari é baseado no webkit de mecanismo da web de código aberto, que é onipresente entre o ecossistema MacOS. O WebKit é usado por aplicativos da Apple, como Mail, iTunes, iBooks e App Store. O mecanismo Blink do Chrome é um garfo de webkit e ambos os motores compartilham várias semelhanças.
O Safari suporta certos recursos exclusivos que beneficiam a segurança e a privacidade do usuário. Os bloqueadores de conteúdo permitem a criação de regras de bloqueio de conteúdo sem usar o JavaScript. Essa abordagem baseada em regra melhora bastante o uso de memória, segurança e privacidade. O Safari 11 introduziu a prevenção inteligente de rastreamento, que remove os dados de rastreamento armazenados no Safari após um período de não interação do usuário do site do rastreador. O Safari pode randomizar sua impressão digital para reduzir o rastreamento. O Safari não suporta certos recursos como o Webusb ou a API da bateria intencionalmente por motivos de segurança e privacidade. As abas privadas no Safari têm cookies e cache isolados que são destruídos quando você fecha a guia. O Safari também suporta perfis equivalentes aos contêineres multi-contas do Firefox para separar cookies e navegar. O Safari pode ser tornado significativamente mais seguro com o modo de bloqueio, que pode ser desativado por local. Leia mais sobre o rastreamento de prevenção no Safari.
O Safari oferece um programa de recompensa somente para convidados para relatórios de bugs para um número selecionado de pesquisadores de segurança. O programa de recompensa foi anunciado durante a apresentação da Apple em Blackhat 2016.
As extensões da Web no Safari têm uma opção adicional para usar o código nativo no ambiente de sandbox do Safari, além das APIs de extensão da Web. As extensões da Web no Safari também são distribuídas pela App Store da Apple. O envio da App Store vem com o benefício adicional do código de extensão da Web sendo auditado pela Apple. Por outro lado, o envio da App Store tem um custo acentuado. A taxa anual de assinatura do desenvolvedor custa 100 USD (em contraste com a taxa de 5 dólares do Chrome e o envio gratuito do Firefox). O alto custo é proibitivo para a maioria dos desenvolvedores de código aberto. Como resultado, o Safari tem muito poucas extensões para escolher. No entanto, você deve ter em mente o alto custo ao instalar extensões. Espera -se que a maioria das extensões da Web tenha alguma maneira de monetizar o uso para cobrir os custos dos desenvolvedores. Desconfie de extensões da Web cujo código -fonte não está aberto.
O Safari sincroniza as preferências e as senhas do usuário com o icloud Keychain. Para ser visualizado em texto simples, um usuário deve inserir a senha da conta do dispositivo atual. Isso significa que os usuários podem sincronizar dados entre dispositivos com segurança adicional.
O Safari segue um ciclo de liberação mais lento que o Chrome e o Firefox (3-4 liberações menores, 1 liberação principal, por ano). Os recursos mais recentes são mais lentos a serem adotados para o canal estável. As atualizações de segurança no Safari são tratadas independentemente do cronograma de liberação estável e são instaladas na App Store.
Veja também El1T/Ublock-Safari para desativar os beacons de auditoria de hiperlink.
Muitos navegadores derivados de cromo não são recomendados. Eles geralmente são de código fechado, mal mantidos e fazem reivindicações duvidosas para proteger a privacidade.
Outros navegadores diversos, como o Brave, não são avaliados neste guia, por isso não são recomendados nem desencorajados ativamente do uso.
Os navegadores da Web revelam informações de várias maneiras, por exemplo, através da interface do navegador, que podem incluir informações como a versão do navegador, o sistema operacional, as permissões do site e o nível da bateria do dispositivo. Muitos sites também usam impressão digital de lona para identificar exclusivamente usuários em sessões.
Para obter mais informações sobre a navegação consciente da segurança e quais dados são enviados pelo seu navegador, consulte Howto: Navegação consciente da privacidade e segurança, Browserleaks.com, sou único? e EFF cobre seus recursos de faixas.
Para impedir os rastreadores de terceiros, é recomendável desativar completamente os cookies de terceiros . Safari, Firefox e Chrome bloqueiam todos os cookies de terceiros por padrão. Um cookie de terceiros é um cookie associado a um arquivo solicitado por um domínio diferente do que o usuário está visualizando atualmente. Na maioria das vezes, os cookies de terceiros são usados para criar perfis de navegação, rastreando o movimento de um usuário na web. Desativar cookies de terceiros impede as respostas e scripts HTTP de outros domínios de definir cookies. Além disso, os cookies são removidos das solicitações para domínios que não são o domínio de origem do documento, de modo que os cookies são enviados apenas para o site atual que está sendo visto.
Esteja ciente do WebRTC, que pode revelar o (s) Endereço (s) local ou público (se conectado ao VPN). No Firefox e Chrome/Chromium, isso pode ser desativado com extensões como a origem ublock. O modo de bloqueio desativa o WebRTC no Safari.
O TOR é uma rede anonimizada que pode ser usada para navegar na Web com privacidade adicional. O navegador Tor é uma versão modificada do Firefox com um proxy para acessar a rede Tor.
Faça o download do navegador Tor do TOR Project.
Não tente configurar outros navegadores ou aplicativos para usar o TOR, pois você pode cometer um erro que comprometerá o anonimato.
Faça o download dos arquivos de assinatura dmg
e asc
e verifique se a imagem do disco foi assinada pelos desenvolvedores da 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
Verifique se Good signature from "Tor Browser Developers (signing key) <[email protected]>"
aparece na saída. O aviso sobre a chave não ser certificada é benigna, pois ainda não recebeu confiança.
Veja como posso verificar a assinatura do navegador Tor? para mais informações.
Para terminar de instalar o navegador Tor, abra a imagem do disco e arraste a pasta de aplicativos ou com:
hdiutil mount TorBrowser-8.0.4-osx64_en-US.dmg
cp -r /Volumes/Tor Browser/Tor Browser.app/ ~/Applications/
Verifique se a assinatura do código do aplicativo TOR foi feita com o desenvolvedor da Apple do Tor Project Madpsayn6T , usando os comandos spctl -a -v
e/ou 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
Você também pode usar o comando codesign
para examinar a assinatura de código de um aplicativo:
$ 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
Para visualizar os detalhes do certificado completo para um aplicativo assinado, extrai -os com codesign
e decodifique com 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
O tráfego do Tor é criptografado para o nó de saída (ou seja, não pode ser lido por uma escavação passiva de escuta de rede), mas o uso de tor pode ser identificado - por exemplo, o hand -shake TLS "HostNames" aparecerá em texto simples:
$ 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..
Consulte a especificação do protocolo TOR e o Tor/Tlshistory para obter mais informações.
Você pode querer ofuscar adicionalmente o tráfego do TOR usando um transporte flasgável.
Isso pode ser feito configurando seu próprio retransmissão do Tor ou encontrando uma ponte pública ou privada existente para servir como um nó de entrada ofuscante.
Para segurança extra, use o Tor dentro de uma instância virtual ou VMware Virtualized GNU/Linux ou OpenBSD.
Por fim, lembre -se de que a rede Tor fornece anonimato, que não é necessariamente sinônimo de privacidade. A rede Tor não garante proteção contra um observador global capaz de análise e correlação de tráfego. Veja também buscando anonimato em um panopticon da Internet (PDF) e correlação de tráfego no TOR por adversários realistas (PDF).
Consulte também o Invisible Internet Project (I2P) e sua comparação do TOR.
Ao escolher um serviço VPN ou configurar o seu próprio, pesquise os protocolos, algoritmos de troca de chaves, mecanismos de autenticação e tipo de criptografia que estão sendo usados. Alguns protocolos, como o PPTP, devem ser evitados em favor do Wireguard baseado em OpenVPN ou Linux em uma VM Linux ou através de um conjunto de ferramentas de plataforma cruzada.
Alguns clientes podem enviar tráfego pela próxima interface disponível quando a VPN for interrompida ou desconectada. Consulte SCY/8122924 para um exemplo de como permitir o tráfego apenas sobre a VPN.
Existe um guia atualizado para configurar uma VPN IPSEC em uma máquina virtual (HWDSL2/Setup-iPsec-VPN) ou um contêiner do docker (hwdsl2/docker-ipsec-vpn-server).
Pode valer a pena considerar a localização geográfica do provedor da VPN. Veja uma discussão adicional na edição 114.
Veja também esta visão geral do MacOS VPN L2TP/IPSEC e IKEV2 Integrado.
O PGP é um padrão para assinar e criptografar dados (especialmente email) de ponta a ponta, portanto, apenas o remetente e o destinatário podem acessá-los.
GPG, ou Guard de privacidade da GNU , é um programa de código aberto licenciado por GPL compatível com o padrão PGP.
O GPG é usado para verificar as assinaturas de software que você baixar e instalar, além de arquivos e texto simetricamente ou assimtricamente criptografados.
Instale do Homebrew com brew install gnupg
.
Se você preferir um aplicativo gráfico, faça o download e instale o GPG Suite.
Baixe drduh/config/gpg.conf para usar as configurações recomendadas:
curl -o ~/.gnupg/gpg.conf https://raw.githubusercontent.com/drduh/config/master/gpg.conf
Consulte Drduh/Yubikey-Guide para gerar e armazenar com segurança as teclas GPG.
Leia os guias on -line e pratique criptografar e descriptografar e -mails para você e seus amigos. Apresente -os nessas coisas!
O XMPP é um padrão aberto desenvolvido pelo IETF que permite mensagens federadas de plataforma cruzada. Existem muitas opções para os clientes. Considere usar um dos clientes baseados em navegador para aproveitar a caixa de areia do seu navegador.
Dependendo do provedor, você pode não precisar de nada além de um nome de usuário e senha para configurar sua conta.
O XMPP não é E2EE por padrão, você precisará usar a criptografia OMEMO, portanto, verifique se o seu cliente o suporta.
O Signal é um Mensageiro E2EE avançado cujo protocolo de dupla execução é usado por inúmeros outros mensageiros, incluindo o WhatsApp, o Google Message e o Facebook Messenger.
O sinal requer um número de telefone para se inscrever e você precisará instalá -lo no seu telefone antes de poder usá -lo na área de trabalho.
IMESSAGE é o primeiro mensageiro de parte da Apple. Requer uma conta da Apple para usá -la.
Certifique -se de ativar a verificação da chave de contato e verifique com qualquer pessoa que você tenha uma mensagem para garantir que você esteja enviando mensagens para a pessoa certa.
Você pode usar o iMessage com um número de telefone ou um email, então escolha um que você se sinta confortável com seus contatos vendo.
NOTA: Por padrão, o backup do iCloud está ativado, que armazena cópias das suas teclas de criptografia de mensagem nos servidores da Apple sem o E2EE. Desative o backup do iCloud ou habilite a proteção de dados avançada para evitar isso. Lembre -se também de dizer aos seus parceiros de mensagens para fazer o mesmo!
Há uma quantidade cada vez maior de malware MAC na natureza. Os Macs não são imunes a vírus e software malicioso!
Algum malware vem com o software legítimo, como a barra de ferramentas Java Bundling Ask e alguns com software ilegítimo, como Mac.backdoor.iworm, empacotado com programas piratas.
Consulte Métodos de persistência de malware no Mac OS X (PDF) e persistência de malware no OS X Yosemite para aprender sobre como as funções de malware da variedade de jardins.
Inscreva -se em atualizações no blog MalwareBytes para obter as notícias atuais de segurança do Mac.
Confira também Malware da equipe de hackers para MacOS: Instalação raiz para macOS, driver de suporte para Mac Agent e RCS Agent for Mac, que é um bom exemplo de malware avançado com recursos para se esconder da Userland (por exemplo, ps
, ls
). Para mais informações, consulte uma breve análise de um instalador de implante RCS e reverse.put.as
Somente programas de execução da App Store ou que são autenticados pela Apple ajudarão a mitigar o malware. A Apple executa uma varredura automatizada em aplicativos autenticados para malware. Os aplicativos da App Store passam por um processo de revisão para capturar malware.
Caso contrário, obtenha programas de fontes confiáveis, como diretamente no site ou no Github do desenvolvedor. Sempre verifique se o seu navegador/terminal está usando o HTTPS ao baixar qualquer programa.
Você também deve evitar programas que solicitem muitas permissões e programas de fonte fechada de terceiros. O código -fonte aberto permite que qualquer pessoa audite e examine o código para problemas de segurança/privacidade.
Verifique se um programa usa o aplicativo Sandbox antes de executá -lo executando o seguinte comando:
codesign -dvvv --entitlements - <path to your app>
Se o aplicativo Sandbox estiver ativado, você verá
[Key] com.apple.security.app-sandbox
[Value]
[Bool] true
Como alternativa, você pode verificar enquanto o aplicativo estiver em execução abrindo o monitor de atividades e adicionando a coluna "Sandbox".
Todos os aplicativos da App Store são obrigados a usar o aplicativo Sandbox.
Nota: Navegadores como o Google Chrome usam sua própria caixa de areia para não usar a caixa de areia do aplicativo.
Verifique se um programa usa o tempo de execução endurecido antes de executá -lo usando o seguinte comando:
codesign --display --verbose /path/to/bundle.app
Se o tempo de execução endurecido estiver ativado, você verá flags=0x10000(runtime)
. O "tempo de execução" significa que o tempo de execução endurecido está ativado. Pode haver outras bandeiras, mas a bandeira de tempo de execução é o que estamos procurando aqui.
Você pode ativar uma coluna no monitor de atividades chamado "restrito", que é um sinalizador que impede que os programas injetem código através do ligante dinâmico do MacOS. Idealmente, isso deve dizer "sim".
Os aplicativos autenticados são obrigados a usar o tempo de execução endurecido.
Para digitalizar um aplicativo com vários produtos AV e examinar seu comportamento, envie -o para o Virustototal antes de executá -lo.
O MacOS vem com um programa AV integrado chamado XProtect. O XProtect é executado automaticamente em segundo plano e atualiza suas assinaturas que ele usa para detectar malware sem que você faça nada. Se ele detectar malware já em execução, funcionará para removê -lo e mitigá -lo como qualquer outro programa de AV.
Aplicativos como Blockblock ou Maclaunch.sh podem ajudar a evitar malware persistente.
Os programas antivírus instalados localmente são geralmente uma faca de dois gumes: eles podem capturar malware de "variedade de jardins", mas também podem aumentar a superfície de ataque para adversários sofisticados devido ao seu modo de operação privilegiado. Eles também costumam telefonar para casa para enviar amostras para capturar o mais novo malware. Isso pode ser uma preocupação de privacidade.
Veja Sowhail: Applicou Attacks Against Antivirus (PDF), Análise e Exploração de uma vulnerabilidade ESET, o software de segurança popular ficou sob ataques incansáveis da NSA e GCHQ e como Israel pegou hackers russos vasculhando o mundo para os segredos dos EUA.
O Gatekeeper tenta impedir que os aplicativos não notarizados sejam executados.
Se você tentar executar um aplicativo que não seja notado, o Gatekeeper lhe dará um aviso. Isso pode ser facilmente ignorado se você for para privacidade e segurança , role para baixo até a parte inferior e clique em Abrir no seu aplicativo. Então o Gatekeeper permitirá que você o execute.
O Gatekeeper não cobre todos os binários, apenas aplicativos, portanto, tenha cuidado ao executar outros tipos de arquivos.
Para verificar o SIP está ativado, use o csrutil status
, que deve retornar: System Integrity Protection status: enabled.
Caso contrário, ative o SIP no modo de recuperação.
MacOS anexa metadados (atributos estendidos APFs) a arquivos baixados, que podem ser visualizados com os comandos mdls
e 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
Os atributos de metadados também podem ser removidos com o sinalizador -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
Outros metadados e artefatos ~/Library/Containers/<APP>/Data/Library/Preferences
ser encontrados /Library/Preferences
diretórios, incluindo, entre ~/Library/Preferences/
abaixo.
~/Library/Preferences/com.apple.sidebarlists.plist
contém lista histórica de volumes anexados. Para esclarecer, use o comando /usr/libexec/PlistBuddy -c "delete :systemitems:VolumesList" ~/Library/Preferences/com.apple.sidebarlists.plist
/Library/Preferences/com.apple.Bluetooth.plist
contém metadados bluetooth, incluindo histórico de dispositivos. Se o Bluetooth não for usado, os metadados poderão ser limpos com:
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
contém o cache do trabalho da impressora. Para esclarecer, use os comandos:
sudo rm -rfv /var/spool/cups/c0*
sudo rm -rfv /var/spool/cups/tmp/*
sudo rm -rfv /var/spool/cups/cache/job.cache*
Para limpar a lista de dispositivos iOS conectados, use:
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/*
Os dados da miniatura do QuickLook podem ser limpos usando o comando qlmanage -r cache
, mas isso grava no arquivo resetreason
nos diretórios do QuickLook e afirma que o cache do Quicklook foi limpo manualmente. Desative o cache de miniatura com qlmanage -r disablecache
Também pode ser liberado obtendo os nomes de diretórios com getconf DARWIN_USER_CACHE_DIR
e sudo getconf DARWIN_USER_CACHE_DIR
, depois removê -los:
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
Da mesma forma, para o usuário raiz:
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
Consulte também o cache 'Quicklook' pode vazar dados criptografados.
Para limpar as preferências do localizador:
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
Arquivos de diagnóstico adicionais podem ser encontrados nos seguintes diretórios - mas deve ser tomado com cuidado antes de remover qualquer um, pois pode quebrar o registro ou causar outros problemas:
/var/db/CoreDuet/
/var/db/diagnostics/
/var/db/systemstats/
/var/db/uuidtext/
/var/log/DiagnosticMessages/
O MacOS armazenou dados Wi-Fi preferidos (incluindo credenciais) no NVRAM. Para esclarecer, use os seguintes comandos:
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
O MacOS pode coletar informações confidenciais sobre o que você digita, mesmo que o dicionário e as sugestões do usuário estejam desligadas. Para removê -los e impedir que sejam criados novamente, use os seguintes comandos:
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
Os metadados do suporte do aplicativo QuickLook podem ser limpos e bloqueados com os seguintes comandos:
rm -rfv "~/Library/Application Support/Quick Look/*"
chmod -R 000 "~/Library/Application Support/Quick Look"
chflags -R uchg "~/Library/Application Support/Quick Look"
Os metadados da revisão do documento são armazenados em /.DocumentRevisions-V100
e podem ser limpos e travados com os seguintes comandos - deve ser tomado com cuidado, pois isso pode quebrar alguns aplicativos principais da Apple:
sudo rm -rfv /.DocumentRevisions-V100/*
sudo chmod -R 000 /.DocumentRevisions-V100
sudo chflags -R uchg /.DocumentRevisions-V100
Os metadados do estado do aplicativo salvo podem ser limpos e travados com os seguintes comandos:
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
Os metadados automáticos podem ser limpos e trancados com os seguintes comandos:
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"
O banco de dados Siri Analytics, que é criado mesmo se o agente de lançamento da Siri desativado, pode ser limpo e bloqueado com os seguintes comandos:
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
contém metadados do iTunes. Os dados recentes de pesquisa do iTunes podem ser liberados com o seguinte comando:
defaults delete ~/Library/Preferences/com.apple.iTunes.plist recentSearches
Se você não usar serviços vinculados à conta da Apple, as seguintes chaves também poderão ser limpas, usando os seguintes comandos:
defaults delete ~/Library/Preferences/com.apple.iTunes.plist StoreUserInfo
defaults delete ~/Library/Preferences/com.apple.iTunes.plist WirelessBuddyID
Toda a mídia jogada no Quicktime Player pode ser encontrada em:
~/Library/Containers/com.apple.QuickTimePlayerX/Data/Library/Preferences/com.apple.QuickTimePlayerX.plist
Metadados adicionais podem existir nos seguintes arquivos:
~/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
Gerar senhas fortes usando urandom
e tr
:
tr -dc '[:graph:]' < /dev/urandom | fold -w 20 | head -1
O assistente de senha no acesso do chaveiro também pode gerar credenciais seguras.
Considere usar o Diceware para senhas memoráveis.
O GNUPG também pode ser usado para gerenciar senhas e outros arquivos criptografados (consulte Drduh/Purse e DRDUH/PWD.SH).
Verifique se todas as contas on-line elegíveis têm autenticação multifatorial ativada. A forma mais forte de autenticação de vários fatores é o WebAuthn, seguido por autenticadores baseados em aplicativos, e os códigos baseados em SMS são mais fracos.
Yubikey é um token de hardware acessível com suporte a webauthn. Também pode ser usado para armazenar chaves criptográficas para criptografia GNUPG e autenticação SSH - consulte Drduh/Yubikey -Guide.
Criptografar arquivos localmente antes de apoiá -los para mídia externa ou serviços on -line.
Se o seu modelo de ameaça permitir, siga o modelo de backup 3-2-1, conforme descrito pela CISA. Mantenha 3 cópias: o original e dois backups. Mantenha backups em 2 tipos de mídia diferentes, por exemplo, uma unidade local e armazenamento em nuvem. Armazene 1 copie fora do local.
O Time Machine é a ferramenta embutida para lidar com backups no macOS. Obtenha uma unidade externa ou uma unidade de rede para voltar e criptografar seus backups.
O GNUPG pode ser usado com uma senha estática ou chave pública (com a chave privada armazenada no Yubikey).
Compressa e criptografar um diretório usando com uma senha:
tar zcvf - ~/Downloads | gpg -c > ~/Desktop/backup-$(date +%F-%H%M).tar.gz.gpg
Descriptografar e descomprimir o diretório:
gpg -o ~/Desktop/decrypted-backup.tar.gz -d ~/Desktop/backup-*.tar.gz.gpg
tar zxvf ~/Desktop/decrypted-backup.tar.gz
Os volumes criptografados também podem ser criados usando o Disk Utility ou 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
Aplicações e serviços adicionais que oferecem backups incluem:
MacOS se lembra de pontos de acesso aos quais ele conectou. Como todos os dispositivos sem fio, o Mac transmitirá todos os nomes de pontos de acesso que se lembra (por exemplo, myhomenetwork ) cada vez que procura uma rede, como ao acordar do sono.
Este é um risco de privacidade; portanto, remova as redes da lista em preferências do sistema > Rede > Avançado quando não forem mais necessárias.
Veja também Sinais da multidão: descobrindo as relações sociais por meio de sondas de smartphone (PDF).
Informações Wi-Fi salvas (SSID, última conexão, etc.) podem ser encontradas em /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist
Você pode ter um endereço MAC aleatório e diferente para cada rede que gira ao longo do tempo. Isso ajudará a impedir que você seja rastreado nas redes e na mesma rede ao longo do tempo.
O MacOS armazena ssids e senhas Wi-Fi no NVRAM para que o modo de recuperação acesse a Internet. Certifique-se de limpar o NVRAM ou desarticar o seu Mac da sua conta da Apple, que limpará o NVRAM, antes de passar um Mac. A redefinição do SMC limpará parte do NVRAM, mas não tudo.
Por fim, a proteção WEP em redes sem fio não é segura e você deve se conectar apenas às redes protegidas pelo WPA3, quando possível.
Para conexões SSH de saída, use teclas de hardware ou protegidas por senha, configure hosts remotos e considere-os hash de privacidade adicional. Consulte Drduh/config/ssh_config para obter opções recomendadas do cliente.
Você também pode usar o SSH para criar um túnel criptografado para enviar tráfego, semelhante a uma VPN.
Por exemplo, para usar o Privoxy em uma porta remota de host 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
Ou usar uma conexão SSH como proxy de meias:
ssh -NCD 3000 [email protected]
Por padrão, o MacOS não possui login SSHD ou remoto ativado.
Para ativar o SSHD e permitir conexões SSH de entrada:
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
Ou use as preferências do sistema > Menu de compartilhamento .
Se habilitar o SSHD, desative a autenticação de senha e considere endurecer ainda mais sua configuração. Consulte drduh/config/sshd_config para obter opções recomendadas.
Confirme se o SSHD está em execução:
sudo lsof -Pni TCP:22
Mantenha seu Mac fisicamente seguro o tempo todo e não o deixe desacompanhado em público.
Um atacante qualificado com acesso físico não supervisionado pode instalar um KeyLogger de hardware para gravar todas as suas teclas. O uso de um MAC com um teclado embutido ou um teclado Bluetooth torna isso mais difícil, pois muitas versões prontas para uso desse ataque são projetadas para serem conectadas entre um teclado USB e seu computador.
Para proteger contra roubo físico durante o uso, você pode usar uma ferramenta anti-forense como Buskill ou SwiftGuard (USBKill atualizado, com interface gráfica do usuário). Todos respondem aos eventos USB e podem desligar imediatamente o computador se o seu dispositivo estiver fisicamente separado de você ou um dispositivo não autorizado estiver conectado.
Considere comprar uma tela/filtro de privacidade para uso em público.
As vedações de esmalte e vanguarda podem ser aplicadas aos componentes para detectar adulteração.
O MacOS possui um poderoso recurso de auditoria OpenBSM (Módulo de Segurança Básico). Você pode usá -lo para monitorar a execução do processo, a atividade de rede e muito mais.
Para fazer os registros de auditoria, use o utilitário 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,
Consulte as páginas manuais para audit
, praudit
, audit_control
e outros arquivos em /etc/security
Nota, embora man audit
diga que o sinalizador -s
sincronizará a configuração da auditoria, parece necessário reiniciar as alterações para entrar em vigor.
Consulte Artigos no Ilostmynotes.blogspot.com e Derflounder.wordpress.com para obter mais informações.
Nota A proteção da integridade do sistema interfere no DTRACE; portanto, não é possível usá -lo nas versões recentes do MacOS sem desativar o SIP.
iosnoop
monitora a e/o do discoopensnoop
abreexecsnoop
monitora a execução de processoserrinfo
monitores falhados no sistema chamadasdtruss
monitora todas as chamadas do sistema Veja man -k dtrace
para obter mais informações.
ps -ef
lista informações sobre todos os processos em execução.
Você também pode visualizar processos com o monitor de atividades .
launchctl list
E sudo launchctl list
Carregado e executando o usuário e o sistema Lançando daemons e agentes.
Liste arquivos de rede abertos:
sudo lsof -Pni
Liste o conteúdo de várias estruturas de dados relacionadas à rede:
sudo netstat -atln
O Wireshark pode ser usado na linha de comando com tshark
.
Monitore consultas e respostas DNS:
tshark -Y "dns.flags.response == 1" -Tfields
-e frame.time_delta
-e dns.qry.name
-e dns.a
-Eseparator=,
Monitore solicitações e respostas 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
Monitor X509 (SSL/TLS) Certificados:
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
O Google/Santa é um software de segurança desenvolvido para a frota corporativa do Google e a Frota e de origem aberta.
Papai Noel é um sistema de autorização de acesso a arquivos e de arquivo para macOS. Consiste em uma extensão do sistema que monitora as execuções, um daemon que toma decisões de execução com base no conteúdo de um banco de dados local, um agente da GUI que notifica o usuário em caso de decisão em bloco e um utilitário de linha de comando para gerenciar o sistema e Sincronizando o banco de dados com um servidor.
O Papai Noel usa a API de autorização do kernel para monitorar e permitir que os binários não sejam executados no kernel. Os binários podem ser listados em branco ou preto por hash exclusivo ou certificado de desenvolvedor de assinatura. O Papai Noel pode ser usado para permitir apenas a execução de código confiável ou a lista negra de malware conhecido da execução de um Mac, semelhante ao software Bit9 para Windows.
Nota O Papai Noel atualmente não possui uma interface gráfica do usuário para gerenciar regras. As seguintes instruções são apenas para usuários avançados!
Para instalar o Papai Noel, visite a página de lançamentos e faça o download da imagem mais recente do disco, o Mount It e instale o pacote contido:
hdiutil mount ~/Downloads/santa-0.9.20.dmg
sudo installer -pkg /Volumes/santa-0.9.20/santa-0.9.20.pkg -tgt /
Por padrão, o Papai Noel instala no modo "Monitor" (ou seja, nada é bloqueado, apenas registrado) e vem com duas regras: uma para binários de maçã e outro para o próprio software Santa.
Verifique o Papai Noel está em execução e seu módulo do kernel está carregado:
$ 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>
Crie uma regra da lista negra para impedir que o iTunes seja executado:
$ sudo santactl rule --blacklist --path /Applications/iTunes.app/
Added rule for SHA-256: e1365b51d2cb2c8562e7f1de36bfb3d5248de586f40b23a2ed641af2072225b3.
Tente iniciar o iTunes - ele será bloqueado.
$ open /Applications/iTunes.app/
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/iTunes.app.
Para remover a regra:
$ sudo santactl rule --remove --path /Applications/iTunes.app/
Removed rule for SHA-256: e1365b51d2cb2c8562e7f1de36bfb3d5248de586f40b23a2ed641af2072225b3.
Abrir o iTunes:
$ open /Applications/iTunes.app/
[iTunes will open successfully]
Crie um novo programa Exemplo C:
$ cat << EOF > foo.c
> # include <stdio.h>
> main () { printf( " Hello Worldn”); }
> EOF
Compilar o programa com o GCC (requer a instalação das ferramentas Xcode ou de linha de comando):
$ 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
Execute:
$ ./foo
Hello World
TOGLE O Papai Noel no modo "Lockdown", que apenas permite que os binários autorizados sejam executados:
$ sudo defaults write /var/db/santa/config.plist ClientMode -int 2
Tente executar o binário não assinado:
$ ./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)
Para autorizar um binário, determine sua soma 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)
Adicione uma nova regra:
$ sudo santactl rule --whitelist --sha256 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed
Added rule for SHA-256: 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed.
Execute:
$ ./foo
Hello World
É permitido e funciona!
Os aplicativos também podem ser permitidos pelo certificado de desenvolvedor. Por exemplo, baixe e execute o Google Chrome - ele será bloqueado pelo Papai Noel no modo "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.
Autorizar o aplicativo pelo certificado de desenvolvedor (primeiro item na cadeia de assinaturas):
$ 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
Nesse caso, 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
é o SHA -256 do certificado de desenvolvedor da Apple do Google (Team ID Eqhxz8m8AV) - Autora
$ sudo santactl rule --whitelist --certificate --sha256 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
Added rule for SHA-256: 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153.
O Google Chrome agora deve ser lançado e as atualizações subsequentes do aplicativo continuarão funcionando desde que o certificado de assinatura de código não altere ou expire.
Para desativar o modo "bloqueio":
sudo defaults delete /var/db/santa/config.plist ClientMode
Veja /var/log/santa.log
para monitorar e negar decisões de execução.
Um servidor de log e configuração do Santa está disponível no Zentral, uma solução de monitoramento de eventos de código aberto e servidor TLS para Osquery e Santa.
O Zentral apoiará o Papai Noel no modo de operação de monitoramento e bloqueio. Os clientes precisam estar matriculados com uma conexão TLS para sincronizar as regras do Santa, todos os eventos do Papai Noel dos pontos de extremidade são agregados e registrados no Zentral. Os eventos do Papai Noel podem desencadear ações e notificações de dentro da estrutura Zentral.
Nota Python, Bash e outros intérpretes estão autorizados (pois são assinados pelo certificado de desenvolvedor da Apple), para que o Papai Noel não possa impedir que esses scripts sejam executados. Assim, um programa potencial não binário que desativa o Papai Noel é uma fraqueza (não vulnerabilidade, pois é assim por design) tomar nota.
Desative dados de diagnóstico e uso.
Se você quiser tocar música ou assistir a vídeos , use o QuickTime Player, o mídia embutido no macOS. Ele usa a caixa de areia do aplicativo, o tempo de execução endurecido e os benefícios do volume do sistema assinado como parte do sistema base.
Se você deseja usar torrents , use a transmissão que seja gratuita e de código aberto (Nota: como todo o software, mesmo projetos de código aberto, o malware ainda pode encontrar o seu caminho). Você também pode usar uma lista de blocos para evitar pescar com hosts ruins conhecidos - veja qual é a melhor lista de bloqueios para transmissão e JohntyRee/3331662.
Gerencie os manipuladores de arquivos padrão.
Monitore logs do sistema com os comandos do aplicativo de console ou syslog -w
ou /usr/bin/log stream
.
Defina a tela para bloquear assim que o protetor de tela iniciar:
defaults write com.apple.screensaver askForPassword -int 1
defaults write com.apple.screensaver askForPasswordDelay -int 0
Exponha arquivos ocultos e pasta da biblioteca no Finder:
defaults write com.apple.finder AppleShowAllFiles -bool true
chflags nohidden ~/Library
Mostre todas as extensões de nome do arquivo (para que "Evil.jpg.app" não possa se disfarçar facilmente).
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
Não padrão a salvar documentos no iCloud:
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
Ative a entrada segura do teclado no terminal (a menos que você use Yubikey ou aplicativos como o Textexpander).
Desative o Crash Reporter (a caixa de diálogo que aparece após um aplicativo travar e solicitar relatar o problema à Apple):
defaults write com.apple.CrashReporter DialogType none
Desative os anúncios Bonjour multicast:
AVISO: Isso causará problemas com o AirPlay e o Airprint!
sudo defaults write /Library/Preferences/com.apple.mDNSResponder.plist NoMulticastAdvertisements -bool YES
Desative os recursos de transferência e Bluetooth, se não forem necessários.
Verifique se seus aplicativos estão em caixa de areia no monitor de atividades.
MacOS vem com esta linha em /etc/sudoers
:
Defaults env_keep += "HOME MAIL"
O que impede Sudo de mudar a variável doméstica quando você eleva os privilégios. Isso significa que ele será executado como raiz dos zsh dotfiles no diretório inicial do usuário que não é da raiz quando você executa "Sudo Zsh". É aconselhável comentar essa linha para evitar uma maneira potencialmente fácil de malware ou um invasor local escalar privilégios para root.
Se você deseja manter a conveniência do usuário raiz ter um diretório inicial de um usuário que não seja uma raízes, pode anexar uma linha de exportação a /var/root/.zshrc, por exemplo:
export HOME=/Users/blah
Defina um UMASK personalizado:
sudo launchctl config user umask 077
Reinicie, crie um arquivo no Finder e verifique suas permissões (o padrão do macOS permite 'grupo/outro' acesso de leitura):
$ 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