이 가이드는 현재 지원되는 macOS 버전을 실행하는 Apple 실리콘 Mac 컴퓨터의 보안 및 개인 정보 보호를 향상하기 위한 기술 모음입니다. Intel CPU가 탑재된 Mac을 사용하면 Apple이 패치할 수 없는 하드웨어 수준의 보안 취약성에 노출됩니다 . Apple Silicon Mac은 최소 권장 사항이지만 일반적으로 최신 칩이 항상 더 안전합니다.
이 가이드는 엔터프라이즈 표준 보안을 채택하려는 고급 사용자를 대상으로 하지만 Mac에서 개인 정보 보호 및 보안을 향상하는 데 관심이 있는 초보 사용자에게도 적합합니다.
조직의 컴퓨터를 보호하는 경우 macOS에 대한 공식 NIST 지침을 사용하세요.
시스템은 관리자가 만들 수 있는 만큼만 안전합니다. 완벽한 컴퓨터 보안을 보장하는 단일 기술, 소프트웨어, 기술은 없습니다. 최신 운영 체제와 컴퓨터는 매우 복잡하며 보안 및 개인 정보 보호 정책을 의미 있게 개선하려면 수많은 점진적인 변경이 필요합니다.
이 가이드는 어떠한 종류의 보증도 없이 '있는 그대로' 제공됩니다. 이 가이드를 따르면서 무엇이든 파손하거나 어떤 종류의 문제가 발생한 경우 책임은 전적으로 귀하에게 있습니다.
개선 사항을 제안하려면 끌어오기 요청을 보내거나 문제를 개설하세요.
일반적인 보안 모범 사례가 적용됩니다.
위협 모델 만들기
시스템과 소프트웨어를 최신 상태로 유지하세요
softwareupdate
명령줄 유틸리티를 사용할 수도 있습니다. 둘 다 Apple 계정을 등록할 필요가 없습니다.민감한 데이터 암호화
데이터 가용성 보장
조심스럽게 클릭하세요
보안 및 개인 정보 보호를 위한 첫 번째이자 가장 중요한 단계는 위협 모델을 만드는 것입니다. 적을 방어하려면 적을 이해해야 합니다. 각 사람마다 고유한 요구 사항이 있으므로 모든 사람의 위협 모델이 다릅니다. 위협 모델은 상황이 변화함에 따라 시간이 지남에 따라 발전하는 경향이 있으므로 위협 모델을 주기적으로 재평가해야 합니다.
여기에는 휴대폰, 노트북, 장치에 저장된 비밀번호, 인터넷 검색 기록 등 많은 것들이 포함될 수 있습니다. 보호해야 할 가장 중요한 자산부터 목록을 만드세요. 중요도에 따라 공개, 민감, 비밀 카테고리로 분류할 수 있습니다.
당신이 누구를 방어할지 정의하십시오. 그들이 귀하의 자산을 공격해야 할 동기를 정의하는 것부터 시작하십시오. 예를 들어 금전적 이득은 많은 공격자에게 큰 동기를 부여합니다.
적에게 맞서기 위해서는 그들이 무엇을 할 수 있고 무엇을 할 수 없는지 이해해야 합니다. 전혀 정교하지 않은 것부터 매우 진보된 것까지 적의 순위를 매기십시오. 예를 들어, 일반적인 도둑은 그다지 정교하지 않습니다. 단순히 장치에 비밀번호를 설정하고 드라이브를 암호화하는 등의 기본적인 작업으로 인해 차단될 가능성이 높습니다. 국가 행위자와 같은 매우 지능적인 공격자는 RAM에서 키를 지우고 긴 다이스웨어 비밀번호를 삭제하기 위해 사용하지 않을 때 장치를 완전히 꺼야 할 수도 있습니다.
이제 각 위협에 대응하는 최선의 방법을 결정할 때입니다. 룸메이트가 비밀번호를 찾을 수 없도록 종이에 비밀번호를 적는 것을 피하거나, 도둑이 데이터를 가져갈 수 없도록 컴퓨터의 드라이브를 암호화할 수도 있습니다. 보안과 유용성의 균형을 맞추는 것이 중요합니다. 모든 완화 조치는 적의 일부 능력에 대응해야 합니다. 그렇지 않으면 이득이 거의 또는 전혀 없이 삶을 불편하게 만들 수 있습니다. 적이 가질 수 있는 더 이상 능력을 생각할 수 없고 그들 모두에 대한 완화 조치를 구현했다면 작업은 완료된 것입니다.
보호하려는 각 자산에 대해 만들어야 하는 테이블 유형의 예는 다음과 같습니다.
적 | 동기 부여 | 기능 | 완화 |
---|---|---|---|
룸메이트 | 비공개 채팅 또는 검색 기록 보기 | 근접성; 비밀번호로 화면이나 시계 유형을 볼 수 있습니다. | 생체 인식 사용, 개인 정보 보호 화면 사용, 휴대폰을 사용하지 않을 때 잠금 상태 유지 |
도둑 | 전화 잠금을 해제하고 개인 정보를 훔치고 은행 계좌를 빼내고 돈을 위해 전화를 판매하십시오. | 비밀번호를 보기 위한 숄더 서핑, 로그인된 동안 보지 않을 때 장치를 훔침 | 휴대폰을 항상 눈에 띄거나 가까이에 두고, 사용하지 않을 때는 잠긴 상태로 유지하고, 공공 장소에서 비밀번호를 입력하지 않도록 생체 인식을 사용하고, 나의 찾기 또는 유사한 서비스를 사용하여 도난당한 장치를 추적/원격으로 비활성화하세요. |
범인 | 재정적인 | 사회 공학, 쉽게 사용할 수 있는 악성 코드, 비밀번호 재사용, 취약점 악용 | 샌드박스 사용, OS의 보안 기능 활성화, OS 및 모든 소프트웨어 업데이트 유지, 자동 업데이트 켜기 |
법인 | 사용자 데이터 마케팅 | 원격 측정 및 행동 데이터 수집 | 네트워크 연결 차단, 고유 식별자 재설정, 결제 데이터 추가 방지 |
국가/APT | 표적 감시 | 인터넷 인프라의 수동적 감시, 패킷 암호화/분석을 위한 고급 컴퓨터 | 오픈 소스 e2ee 사용, 장치에 강력한 다이스웨어 비밀번호 사용, 보안 암호화를 위해 보안 요소가 포함된 하드웨어 사용, 장치를 사용하지 않을 때는 장치 종료, 소프트웨어 트립와이어/허니팟/카나리아 토큰 |
여기에서 위협 모델링에 대해 자세히 알아보세요.
macOS는 Apple 실리콘이 탑재된 Apple 하드웨어에서 실행되는 것이 가장 안전합니다. Mac은 최신일수록 좋습니다. Apple은 최신 버전이 아닌 버전의 모든 취약점을 패치하지 않으므로 최신 macOS를 지원하지 않는 해킨토시와 Mac을 피하세요.
Mac을 구입할 때 Mac이 다시 연결되는 것을 피하고 싶을 수도 있습니다. 위협 모델에 따라 온라인으로 주문하거나 신용/직불 카드로 구매하는 대신 현금으로 직접 결제해야 합니다. 이렇게 하면 식별 정보가 구매와 다시 연결될 수 없습니다.
무선 키보드, 마우스, 헤드폰 또는 기타 액세서리를 사용하려는 경우 시스템에서 자동으로 업데이트되므로 가장 안전한 옵션은 Apple 제품입니다. 또한 추적을 방지하기 위해 Bluetooth 하드웨어 주소를 무작위로 지정하는 BLE 개인 정보 보호와 같은 최신 Bluetooth 기능도 지원합니다. 타사 액세서리의 경우 이는 보장되지 않습니다.
macOS를 설치하는 방법에는 여러 가지가 있습니다. 사용 가능한 옵션 중에서 원하는 방법을 선택하세요.
Mac과 호환되는 최신 버전의 macOS를 설치해야 합니다 . 최신 버전에는 이전 버전에 부족한 보안 패치 및 기타 개선 사항이 있습니다.
Apple의 도난 방지 시스템의 일환으로, Apple 실리콘 Mac은 macOS를 다시 설치할 때마다 Apple 서버로 활성화하여 도난되었거나 활성화가 잠긴 Mac의 데이터베이스를 확인해야 합니다.
여기에서 이 프로세스가 어떻게 작동하는지 정확하게 읽을 수 있습니다.
macOS를 사용하기 위해 Apple 계정을 만들 필요는 없습니다. Apple 계정을 만들려면 전화번호가 필요하며 기본적으로 Apple의 클라우드 스토리지 서비스인 iCloud에 많은 데이터가 동기화됩니다. iCloud 데이터에 대한 종단 간 암호화를 원하거나 활성화하려면 나중에 동기화를 비활성화할 수 있습니다.
귀하는 귀하의 Apple 계정과 관련된 데이터를 제어하거나 완전히 삭제할 수 있습니다.
App Store에 접속하고 iCloud, Apple Music 등과 같은 대부분의 Apple 서비스를 사용하려면 Apple 계정이 필요합니다.
Mac App Store는 App Sandbox 및 강화된 런타임을 활용하고 시스템과 통합되는 자동 업데이트를 제공하는 데 필요한 선별된 소프트웨어 저장소입니다.
App Store는 macOS 소프트웨어에 대해 최고의 보안을 보장하지만, 이를 위해서는 Apple 계정으로 로그인해야 하며 Apple은 귀하의 Apple 계정을 다운로드한 앱에 연결할 수 있습니다.
UTM을 사용하면 기본적으로 가상 머신에서 macOS를 쉽게 실행할 수 있습니다. 해당 사이트에서는 무료이지만 App Store에서 구매하면 자동 업데이트를 받을 수 있습니다.
설명서에 따라 몇 번의 클릭만으로 macOS VM을 설치하세요.
또 다른 옵션은 VMware Fusion입니다. 해당 설명서를 읽고 macOS VM을 설치하는 방법을 확인할 수 있습니다.
macOS가 처음 시작되면 설정 도우미 가 나타납니다.
첫 번째 계정을 만들 때 힌트가 없는 강력한 비밀번호를 사용하세요.
계정 설정 과정에서 실명을 입력하는 경우 컴퓨터 이름과 로컬 호스트 이름이 해당 이름(예: John Appleseed의 MacBook )으로 구성되므로 로컬 네트워크 및 다양한 기본 설정 파일에 표시됩니다.
필요에 따라 시스템 설정 > 정보 에서 또는 설치 후 다음 명령을 사용하여 둘 다 확인하고 업데이트해야 합니다.
sudo scutil --set ComputerName MacBook
sudo scutil --set LocalHostName MacBook
첫 번째 사용자 계정은 항상 관리자 계정입니다. 관리자 계정은 관리자 그룹의 구성원이며 sudo
에 액세스할 수 있습니다. 이를 통해 다른 계정, 특히 루트를 탈취할 수 있고 시스템에 대한 효과적인 제어권을 부여받을 수 있습니다. 관리자가 실행하는 모든 프로그램은 잠재적으로 동일한 액세스 권한을 얻을 수 있으므로 보안 위험이 발생합니다.
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>
계정의 생성된 UID를 찾으려면:
dscl . -read /Users/<username> GeneratedUID
macOS가 그룹 멤버십을 결정하는 방법에 대한 자세한 내용은 이 게시물을 참조하세요.
OS 변조를 방지하려면 펌웨어 보안 설정이 전체 보안으로 설정되어 있는지 확인해야 합니다. 이것이 기본 설정입니다.
Apple 실리콘이 탑재된 모든 Mac 모델은 기본적으로 암호화됩니다. FileVault를 활성화하면 드라이브의 데이터에 액세스하려면 비밀번호를 입력해야 합니다. EFF에는 강력하지만 기억에 남는 비밀번호를 생성하는 방법에 대한 가이드가 있습니다.
FileVault 암호는 암호를 모르는 사람이 지정된 시동 디스크가 아닌 다른 곳에서 부팅하고, 복구에 액세스하고, DFU 모드로 되살리는 것을 방지하는 펌웨어 암호 역할도 합니다.
FileVault는 비밀번호를 잊어버린 경우 복구 키를 설정하라는 메시지를 표시합니다. 이 키를 안전한 곳에 보관하세요. iCloud 계정을 사용하여 디스크를 잠금 해제할 수 있는 옵션이 있습니다. 그러나 귀하의 iCloud 계정에 접근할 수 있는 사람은 누구나 해당 계정을 잠금 해제할 수 있습니다.
macOS는 OS 전체의 여러 기능을 비활성화하는 보안 기능인 잠금 모드를 제공하여 OS를 계속 사용 가능하게 유지하면서 공격자의 공격 표면을 크게 줄입니다. 무엇이 비활성화되었는지 정확히 읽고 그것이 허용되는지 스스로 결정할 수 있습니다.
잠금 모드가 켜져 있으면 신뢰할 수 있는 사이트의 Safari에서 사이트별로 비활성화할 수 있습니다.
macOS에는 여러 유형의 방화벽을 사용할 수 있습니다.
들어오는 연결만 차단하는 기본 방화벽이 내장되어 있습니다. 이 방화벽에는 나가는 연결을 모니터링하거나 차단하는 기능이 없습니다.
시스템 설정 의 네트워크 에 있는 방화벽 탭이나 다음 명령을 사용하여 제어할 수 있습니다.
로깅 및 스텔스 모드로 방화벽을 활성화합니다.
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setloggingmode on
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode on
컴퓨터 해커는 공격할 컴퓨터를 식별하기 위해 네트워크를 검사합니다. 스텔스 모드를 사용하면 컴퓨터가 이러한 검색 중 일부에 응답하지 않도록 할 수 있습니다. 스텔스 모드가 활성화되면 컴퓨터는 ICMP ping 요청에 응답하지 않으며 닫힌 TCP 또는 UDP 포트의 연결 시도에도 응답하지 않습니다. 이로 인해 공격자가 귀하의 컴퓨터를 찾는 것이 더 어려워집니다.
내장된 소프트웨어 와 코드 서명되어 다운로드된 소프트웨어가 자동으로 허용 목록에 추가되는 것을 방지하려면 다음을 따르세요.
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsigned off
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsignedapp off
유효한 인증 기관에서 서명한 애플리케이션은 사용자에게 인증하라는 메시지를 표시하지 않고 허용된 앱 목록에 자동으로 추가됩니다. macOS에 포함된 앱은 Apple에서 서명했으며 이 설정이 활성화되면 들어오는 연결을 수신할 수 있습니다. 예를 들어, iTunes는 이미 Apple에서 서명했기 때문에 자동으로 방화벽을 통해 들어오는 연결을 수신하도록 허용됩니다.
방화벽 목록에 나열되지 않은 서명되지 않은 앱을 실행하는 경우 해당 앱에 대한 연결을 허용하거나 거부하는 옵션이 포함된 대화 상자가 나타납니다. "허용"을 선택하면 macOS가 애플리케이션에 서명하고 자동으로 방화벽 목록에 추가합니다. "거부"를 선택하면 macOS는 이를 목록에 추가하지만 이 앱에 대한 수신 연결을 거부합니다.
socketfilterfw
fw와 상호작용한 후 회선 끊기 신호를 전송하여 프로세스를 다시 시작합니다.
sudo pkill -HUP socketfilterfw
Little Snitch, Radio Silence 및 LuLu와 같은 프로그램은 유용성과 보안의 적절한 균형을 제공합니다.
이러한 프로그램은 들어오고 나가는 네트워크 연결을 모니터링하고 차단할 수 있습니다. 그러나 폐쇄형 소스 시스템 확장을 사용해야 할 수도 있습니다.
네트워크 연결 허용/차단 선택 항목의 수가 너무 많으면 연결이 허용된 자동 모드를 사용한 다음 주기적으로 구성을 확인하여 애플리케이션과 해당 애플리케이션이 수행하는 작업을 이해하세요.
루트 로 실행되는 프로그램이나 OS 취약점(pdf)을 통해 이러한 방화벽을 우회할 수 있다는 점은 주목할 가치가 있지만 여전히 사용할 가치가 있습니다. 절대적인 보호를 기대하지 마십시오. 그러나 일부 악성코드는 Little Snitch나 기타 보안 소프트웨어가 설치된 경우 실제로 스스로 삭제되어 실행되지 않습니다.
고도로 사용자 정의 가능하고 강력하지만 가장 복잡한 방화벽이 커널에 존재합니다. pfctl
및 다양한 구성 파일을 사용하여 제어할 수 있습니다.
pf는 Murus와 같은 GUI 애플리케이션을 사용하여 제어할 수도 있습니다.
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 방화벽을 사용하여 전체 네트워크 주소 범위(예: 전체 조직)에 대한 네트워크 액세스를 차단할 수 있습니다.
Facebook과 같은 자율 시스템에서 사용 중인 네트워크 목록을 보려면 Merit RADb를 쿼리하세요.
whois -h whois.radb.net '!gAS32934'
반환된 네트워크 목록을 복사하여 blocklist 명령에 붙여넣습니다.
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를 참조하세요.
시스템 설정에서 로그인 시 실행되는 소프트웨어에 대한 자세한 정보를 관리하고 확인할 수 있습니다. 시스템 설정에서도 설치된 시스템, Quick Look, Finder 및 기타 확장 프로그램을 볼 수 있습니다.
launchctl list
사용하여 실행 중인 사용자 에이전트 보기sudo launchctl list
사용하여 실행 중인 시스템 데몬 보기launchctl list com.apple.Maps.mapspushd
defaults read
사용하여 /System/Library/LaunchDaemons
및 /System/Library/LaunchAgents
에서 작업 plist를 검사합니다.man
및 strings
사용하세요.예를 들어 시스템 시작 데몬이나 에이전트의 기능을 알아보려면 다음으로 시작하세요.
defaults read /System/Library/LaunchDaemons/com.apple.apsd.plist
Program
또는 ProgramArguments
섹션을 보고 어떤 바이너리가 실행되는지 확인하세요(이 경우 apsd
. 이에 대한 더 많은 정보를 찾으려면 man apsd
포함된 매뉴얼 페이지를 살펴보십시오.
참고 시스템 서비스는 SIP로 보호됩니다. SIP는 macOS 보안의 필수적인 부분이므로 시스템 서비스를 조작하기 위해 SIP를 비활성화하지 마십시오. 시스템 서비스를 비활성화하면 파손 및 불안정한 동작이 발생할 수 있습니다!
서비스 상태를 보려면:
find /var/db/com.apple.xpc.launchd/ -type f -print -exec defaults read {} ; 2>/dev/null
시작 데몬과 에이전트의 주석이 달린 목록, 실행된 각 프로그램, 프로그램의 해시 합계가 이 저장소에 포함되어 있습니다.
출시에 대한 자세한 내용과 Apple 웹사이트에서 로그인 항목을 찾을 수 있는 위치를 읽어보세요.
Apple은 다양한 Siri 기능을 기기 내 처리로 전환하고 있지만 Siri 제안 또는 Spotlight를 사용할 때 일부 정보가 여전히 Apple로 전송됩니다. Apple의 개인 정보 보호 정책을 읽고 전송된 내용과 비활성화 방법을 정확히 확인할 수 있습니다.
App Store를 통해 프로그램을 사용할 수 없는 경우 Homebrew 사용을 고려할 수 있습니다.
중요한! Homebrew는 터미널에 "앱 관리"(또는 "전체 디스크 액세스") 권한을 부여하도록 요청합니다. 이는 나쁜 생각입니다. 이렇게 하면 이러한 공격에 다시 취약해질 수 있습니다. 샌드박스가 적용되지 않은 응용 프로그램은 ~/.zshrc에 악성 명령을 추가하여 터미널의 TCC 권한으로 코드를 실행할 수 있습니다. 터미널에 "앱 관리" 또는 "전체 디스크 액세스" 권한을 부여하는 것은 TCC를 완전히 비활성화하는 것과 동일하게 간주되어야 합니다.
소프트웨어 업데이트를 다운로드하고 설치하려면 신뢰할 수 있고 안전한 네트워크에서 주기적으로 brew upgrade
실행하는 것을 잊지 마십시오. 설치 전에 패키지에 대한 정보를 얻으려면 brew info <package>
실행하고 온라인에서 공식을 확인하세요. HOMEBREW_NO_INSECURE_REDIRECT=1
과 같은 추가 보안 옵션을 활성화할 수도 있습니다.
Homebrew의 익명 분석에 따르면 Homebrew는 익명 분석을 수집하여 이를 자체 호스팅 InfluxDB 인스턴스에 보고합니다. Homebrew의 분석을 옵트아웃하려면 환경 또는 쉘 rc 파일에서 export HOMEBREW_NO_ANALYTICS=1
설정하거나 brew analytics off
됩니다.
macOS 11에는 암호화된 DNS를 구성하고, 도메인을 필터링하고, DNSSEC를 사용하기 위한 "DNS 구성 프로필"이 도입되었습니다.
DNS 프로필은 Quad9, AdGuard 및 NextDNS와 같은 공급자로부터 생성하거나 얻을 수 있습니다.
호스트 파일을 사용하여 알려진 맬웨어, 광고 또는 원치 않는 도메인을 차단하세요.
예를 들어 sudo vi /etc/hosts
사용하여 호스트 파일을 루트로 편집합니다.
A
레코드로 도메인을 차단하려면 다음 줄 중 하나를 /etc/hosts
에 추가하세요.
0 example.com
0.0.0.0 example.com
127.0.0.1 example.com
참고 IPv6은 A
레코드 유형이 아닌 AAAA
DNS 레코드 유형을 사용하므로 여기에 표시된 것처럼 ::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와 같은 방화벽을 사용하는 경우 leohidalgo/little-snitch---rule-groups 저장소에서 규칙을 가져오는 StevenBlack/hosts를 사용할 수 있습니다. 이러한 규칙은 StevenBlack/hosts 저장소에서 12시간마다 업데이트됩니다.
DNS 트래픽을 암호화하려면 DNSCrypt/dnscrypt-proxy 사용을 고려하세요. dnsmasq 및 DNSSEC와 함께 사용하면 DNS 트래픽의 무결성이 크게 향상될 수 있습니다.
Homebrew에서 DNSCrypt를 설치하고 지침에 따라 dnscrypt-proxy
구성하고 시작합니다.
brew install dnscrypt-proxy
Dnsmasq와 함께 사용하는 경우 다음을 실행하여 homebrew.mxcl.dnscrypt-proxy.plist
파일을 찾으세요.
brew info dnscrypt-proxy
/usr/local/etc/dnscrypt-proxy.toml
과 같은 위치가 표시됩니다.
텍스트 편집기에서 열고, listen_addresses =
로 시작하는 줄을 찾아 5355와 같이 53이 아닌 포트에서 DNScrypt를 사용하도록 해당 줄을 편집합니다.
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는 localhost(127.0.0.1), 포트 53에서 실행되어 일련의 확인자 간에 트래픽 균형을 조정합니다. 이러한 설정을 변경하려면 $HOMEBREW_PREFIX/etc/dnscrypt-proxy.toml 구성 파일을 편집해야 합니다.
참고 응용 프로그램과 프로그램은 자체적으로 제공되는 서버를 사용하여 DNS를 확인할 수 있습니다. dnscrypt-proxy를 사용하는 경우 다음 pf 규칙을 사용하여 dnscrypt가 아닌 다른 모든 DNS 트래픽을 비활성화할 수 있습니다.
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를 사용하지 않으려면 최소한 ISP에서 제공하지 않는 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에는 Apple, Verisign, Thawte, Digicert와 같은 기업과 중국, 일본, 네덜란드, 미국 등의 정부 기관에서 설치된 100개 이상의 루트 기관 인증서가 함께 제공됩니다. 이러한 CA(인증 기관)는 모든 도메인, 코드 서명 인증서 등에 대해 TLS 인증서를 발급할 수 있습니다. Apple은 CA가 신뢰할 수 없는 것으로 판명되면 이러한 인증서를 차단합니다. 또한 신뢰할 수 있는 CA가 충족해야 하는 엄격한 요구 사항도 있습니다.
자세한 내용은 CA/브라우저 포럼 웹사이트를 참조하세요.
시스템 루트 탭 아래의 키체인 액세스 에서 또는 security
명령줄 도구 및 /System/Library/Keychains/SystemRootCertificates.keychain
파일을 사용하여 시스템 루트 인증서를 검사합니다.
인증 기관을 신뢰하지 않음 으로 표시하고 창을 닫아 키체인 접근을 통해 수동으로 인증 기관을 비활성화할 수 있습니다.
경고: 이로 인해 이러한 CA가 서명한 인증서를 사용하는 사이트를 방문할 때 브라우저가 경고를 표시하게 되며 다른 소프트웨어가 손상될 수 있습니다. Apple 루트 인증서를 불신하지 마십시오. 그렇지 않으면 macOS에서 많은 손상이 발생할 수 있습니다!
시스템에서 신뢰하는 강제되거나 손상된 인증 기관이 가짜/불량 TLS 인증서를 발급하는 중간자 공격의 위험은 매우 낮지만 여전히 가능합니다.
웹 트래픽을 필터링하려면 Privoxy를 로컬 프록시로 사용하는 것이 좋습니다.
Homebrew를 사용하여 privoxy를 설치하고 시작합니다.
brew install privoxy
brew services start privoxy
또는 Privoxy의 서명된 설치 패키지를 해당 웹사이트나 Sourceforge에서 구할 수 있습니다. 서명된 패키지는 Homebrew 버전보다 더 안전하며 Privoxy 프로젝트의 지원을 받습니다.
기본적으로 Privoxy는 로컬 TCP 포트 8118에서 수신 대기합니다.
활성 네트워크 인터페이스 127.0.0.1
및 8118
에 대한 시스템 HTTP 프록시를 설정합니다.
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을 참조하세요. user.action
필터 규칙을 편집한 후 Privoxy를 다시 시작할 필요가 없습니다 .
트래픽이 차단되거나 리디렉션되는지 확인하려면 브라우저의 http://pp에서 사용할 수 있는 컬 또는 Privoxy 인터페이스를 사용하십시오.
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를 구성할 수 있습니다.
웹 브라우저는 기본 작업이 인터넷에서 신뢰할 수 없는 코드를 다운로드하고 실행하는 것이므로 가장 큰 보안 및 개인 정보 보호 위험을 초래할 수 있습니다.
최신 브라우저의 중요한 속성은 한 페이지의 악성 스크립트가 DOM(문서 개체 모델)을 통해 다른 웹 페이지의 민감한 데이터에 액세스하는 것을 방지하는 SOP(동일 출처 정책)입니다. SOP가 손상되면 전체 브라우저의 보안이 손상됩니다.
많은 브라우저 공격은 지속성을 확보하기 위한 수단으로 사회 공학을 기반으로 합니다. 신뢰할 수 없는 사이트를 열지 않도록 항상 주의하고 새 소프트웨어를 다운로드할 때는 특히 주의하세요.
브라우저 보안에 대한 또 다른 중요한 고려 사항은 확장 기능입니다. 이는 Firefox와 Chrome 모두에 영향을 미치는 문제입니다. 브라우저 확장 프로그램의 사용은 신뢰할 수 있는 개발자가 게시한 매우 필요한 확장 프로그램으로만 제한되어야 합니다.
Mozilla Firefox, Google Chrome, Safari 및 Tor 브라우저는 모두 고유하고 개별적인 목적에 따라 권장되는 브라우저입니다.
Mozilla Firefox는 인기 있는 오픈 소스 브라우저입니다. Firefox는 Quantum 및 Photon 프로젝트에 따라 인프라 및 코드 기반의 주요 부분을 교체했습니다. Quantum 프로젝트의 일부는 C++ 코드를 Rust로 바꾸는 것입니다. Rust는 보안과 스레드 안전에 중점을 둔 시스템 프로그래밍 언어입니다. Rust 채택으로 Firefox의 전반적인 보안 상태가 크게 향상될 것으로 예상됩니다.
Firefox는 Chrome과 유사한 보안 모델을 제공합니다. 수익성이 좋지는 않지만 버그 포상금 프로그램이 있습니다. Firefox는 4주 릴리스 주기를 따릅니다.
Firefox는 사용자가 제공한 구성 파일을 지원합니다. 권장되는 기본 설정 및 강화 조치는 drduh/config/firefox.user.js 및 arkenfox/user.js를 참조하세요. 또한 선택적 스크립트 차단을 허용하는 확장인 NoScript를 참조하세요.
Firefox는 사용자 개인 정보 보호에 중점을 둡니다. 프라이빗 브라우징 모드에서 추적 보호를 지원합니다. 기본 계정에 대해 추적 보호를 활성화할 수 있지만 일부 웹사이트에서는 검색 환경이 손상될 수 있습니다. 엄격한 추적 보호 모드의 Firefox는 지문을 무작위로 추출하여 기본 추적 스크립트를 무력화합니다. Firefox는 별도의 사용자 프로필을 제공합니다. 다중 계정 컨테이너를 사용하면 프로필 내에서 탐색을 분리할 수 있습니다.
Firefox는 Chrome과 매우 유사한 Web Extension Api를 통해서만 웹 확장을 지원합니다. Firefox에서 웹 확장을 제출하는 것은 무료입니다. Firefox의 웹 확장은 대부분 오픈 소스이지만 특정 웹 확장은 독점입니다.
Google 크롬은 특정 독점 구성 요소가 포함된 오픈 소스 Chromium 프로젝트를 기반으로 합니다.
Chrome은 여러 장치간에 계정 동기화를 제공합니다. 동기화 데이터의 일부에는 웹 사이트에 대한 자격 증명이 포함됩니다. 데이터는 계정 비밀번호로 암호화됩니다.
연장을위한 Chrome의 웹 스토어에는 확장을 제출하기 위해서는 5 USD 평생 수수료가 필요합니다. 저렴한 비용으로 인해 사용량을 통해 수익을 창출하지 않는 많은 품질의 오픈 소스 웹 확장을 개발할 수 있습니다.
Chrome은 글로벌 사용량의 가장 큰 부분을 보유하고 있으며 대부분의 개발자에게 선호되는 목표 플랫폼입니다. 주요 기술은 Chrome의 V8 엔진과 Chromium 및 Node.js를 기반으로하는 Node.js와 같은 Chrome의 오픈 소스 구성 요소를 기반으로합니다. Chrome의 방대한 사용자 기반은 위협 행위자와 보안 연구원에게 가장 매력적인 목표입니다. 끊임없는 공격에도 불구하고 Chrome은 수년에 걸쳐 인상적인 보안 기록을 유지했습니다. 이것은 작은 위업이 아닙니다.
Chrome은 별도의 프로필, 강력한 샌드 박스, 빈번한 업데이트를 제공하며 인상적인 자격 증명을 제공합니다. 또한 Google은 자체 프로젝트 제로 팀과 함께 취약성을보고하기위한 매우 유리한 현상금 프로그램을 제공합니다. 이는 많은 재능이 있고 동기 부여 된 사람들이 크롬 코드를 지속적으로 감사하고 보장하고 있음을 의미합니다.
별도의 크롬 프로파일을 만들어 XSS 위험을 줄이고 쿠키/아이덴티티를 구획화하십시오. 각 프로파일에서 크롬 설정에서 JavaScript를 비활성화하고 허용 된 원산지를 구성하십시오. 또한 자바 스크립트를 사용하여 공격 표면을 더욱 줄이는 사이트의 V8 Optimizer를 비활성화해야합니다. 설정 -> 개인 정보 및 보안 -> 보안 -> V8 보안 관리 -> 사이트가 V8 Optimizer를 사용하도록 허용하지 마십시오.
이를 비활성화하는 이점에 대해 자세히 알아보십시오.
Ublock Origin Lite로 트래커를 차단할 수 있습니다.
추가 추적을 줄이려면 Google에서 기본 검색 엔진을 변경하십시오.
DNS 프리 페치 비활성화 (DNS 프리 페치 및 개인 정보 영향 (PDF) 참조). Chrome은 Google의 8.8.8.8
및 8.8.4.4
공개 이름 서버를 사용하여 DNS를 해결하려고 시도 할 수 있습니다.
자세한 내용은 Chromium Security 및 Chromium Privacy를 읽으십시오. 개인 정보 수집 및 사용 방법을 이해하려면 Google의 개인 정보 보호 정책을 읽으십시오.
Safari는 MacOS의 기본 브라우저입니다. 또한 배터리 사용을 줄이기위한 가장 최적화 된 브라우저이기도합니다. Chrome과 마찬가지로 Safari는 오픈 소스 및 독점 구성 요소를 모두 가지고 있습니다. Safari는 오픈 소스 웹 엔진 Webkit을 기반으로하며, 이는 MacOS 생태계 중 유비쿼터스입니다. WebKit은 Mail, iTunes, iBooks 및 App Store와 같은 Apple 앱에서 사용됩니다. Chrome의 깜박임 엔진은 Webkit의 포크이며 두 엔진 모두 여러 가지 유사성을 공유합니다.
Safari는 사용자 보안 및 개인 정보에 도움이되는 특정 고유 한 기능을 지원합니다. 컨텐츠 차단제를 사용하면 JavaScript를 사용하지 않고 컨텐츠 차단 규칙을 생성 할 수 있습니다. 이 규칙 기반 접근 방식은 메모리 사용, 보안 및 개인 정보를 크게 향상시킵니다. Safari 11은 지능형 추적 방지를 도입하여 추적기 웹 사이트에서 사용자가 비 상호 작용 한 후 Safari에 저장된 추적 데이터를 제거합니다. Safari는 지문을 무작위 화하여 추적을 줄일 수 있습니다. Safari는 보안 및 개인 정보 보호 이유로 의도적으로 WebUSB 또는 배터리 API와 같은 특정 기능을 지원하지 않습니다. Safari의 개인 탭에는 탭을 닫을 때 파괴되는 쿠키와 캐시가 분리되어 있습니다. Safari는 또한 쿠키 및 브라우징 분리를위한 Firefox의 Multi-Account 컨테이너와 동등한 프로파일을 지원합니다. Safari는 잠금 모드를 통해 훨씬 더 안전하게 만들 수 있으며, 이는 사이트별로 비활성화 될 수 있습니다. Safari의 추적 방지에 대해 자세히 알아보십시오.
Safari는 선택된 수의 보안 연구원에게 버그보고를위한 초대 전용 현상금 프로그램을 제공합니다. 현상금 프로그램은 Blackhat 2016에서 Apple의 프레젠테이션에서 발표되었습니다.
Safari의 웹 확장에는 웹 확장 API 외에도 Safari의 샌드 박스 환경에서 기본 코드를 사용할 수있는 추가 옵션이 있습니다. Safari의 웹 확장은 Apple의 App Store를 통해 배포됩니다. App Store Submission에는 Apple이 감사하는 웹 확장 코드의 추가 이점이 제공됩니다. 반면에 App Store Submission은 가파른 비용으로 제공됩니다. 연간 개발자 구독료 비용은 100 USD입니다 (Chrome의 5 USD 수수료 및 Firefox의 무료 제출과 달리). 높은 비용은 대다수의 오픈 소스 개발자에게는 엄청납니다. 결과적으로 Safari는 선택할 확장 기능이 거의 없습니다. 그러나 확장을 설치할 때 높은 비용을 염두에 두어야합니다. 대부분의 웹 확장은 개발자 비용을 충당하기 위해 어떤 방법으로 사용을 수익을 올릴 것으로 예상됩니다. 소스 코드가 열리지 않은 웹 확장에주의하십시오.
Safari는 사용자 기본 설정 및 암호를 iCloud 키 체인과 동기화합니다. 일반 텍스트로 보려면 사용자가 현재 장치의 계정 비밀번호를 입력해야합니다. 이는 사용자가 추가 보안으로 장치에서 데이터를 동기화 할 수 있음을 의미합니다.
Safari는 Chrome and Firefox (3-4 마이너 릴리스, 1 주요 릴리스, 연간)보다 느린 방출주기를 따릅니다. 최신 기능은 안정적인 채널에 채택 되기에는 느리게 채택됩니다. Safari의 보안 업데이트는 안정적인 릴리스 일정과 독립적으로 처리되며 App Store를 통해 설치됩니다.
하이퍼 링크 감사 비콘을 비활성화하려면 EL1T/UBLOCK-SAFARI를 참조하십시오.
많은 크롬 유래 브라우저는 권장되지 않습니다. 그들은 일반적으로 폐쇄 소스이며, 잘 관리되지 않았으며, 개인 정보를 보호하기위한 모호한 주장을합니다.
Brave와 같은 다른 기타 브라우저는이 안내서에서 평가되지 않으므로 사용을 권장하거나 적극적으로 낙담하지 않습니다.
웹 브라우저는 브라우저 버전, 운영 체제, 사이트 권한 및 장치의 배터리 레벨과 같은 정보를 포함 할 수있는 네비게이터 인터페이스를 통해 여러 가지 방법으로 정보를 공개합니다. 많은 웹 사이트는 또한 캔버스 지문을 사용하여 세션에서 사용자를 고유하게 식별합니다.
보안 의식 브라우징 및 브라우저에서 전송하는 데이터에 대한 자세한 내용은 Howto : 개인 정보 및 보안 의식 브라우징, BrowserLeaks.com, 고유합니까? 그리고 Eff는 당신의 트랙 자원을 덮습니다.
타사 추적기를 방해하려면 타사 쿠키를 모두 비활성화하는 것이 좋습니다. Safari, Firefox 및 Chrome은 모두 타사 쿠키를 기본적으로 차단합니다. 타사 쿠키는 사용자가 현재보고있는 다른 도메인과 다른 도메인에서 요청한 쿠키와 관련된 쿠키입니다. 대부분의 경우 타사 쿠키는 웹에서 사용자의 움직임을 추적하여 브라우징 프로파일을 만드는 데 사용됩니다. 타사 쿠키를 비활성화하면 쿠키 설정에서 다른 도메인의 HTTP 응답 및 스크립트를 방지합니다. 또한 쿠키는 요청에서 문서 원점 도메인이 아닌 도메인으로 제거되므로 쿠키는보고있는 현재 사이트로만 전송됩니다.
또한 WEBRTC에주의하십시오. 이는 귀하의 지역 또는 공개 (VPN에 연결된 경우) IP 주소 (ES)를 공개 할 수 있습니다. Firefox 및 Chrome/Chromium에서는 Ublock 원점과 같은 확장으로 비활성화 될 수 있습니다. 잠금 모드는 Safari에서 WebRTC를 비활성화합니다.
Tor는 추가 개인 정보를 사용하여 웹을 탐색하는 데 사용할 수있는 익명화 네트워크입니다. Tor Browser는 TOR 네트워크에 액세스하기 위해 프록시가있는 수정 된 Firefox 버전입니다.
Tor Project에서 Tor 브라우저를 다운로드하십시오.
익명 성을 손상시키는 실수를 저지르기 때문에 다른 브라우저 나 응용 프로그램을 TOR을 사용하도록 구성하려고 시도하지 마십시오 .
dmg
및 asc
서명 파일을 모두 다운로드 한 다음 Tor Developers가 디스크 이미지를 서명했는지 확인하십시오.
$ 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 Browser의 서명을 어떻게 확인할 수 있습니까? 자세한 내용은
Tor Browser 설치를 마치려면 디스크 이미지를 열고 IT를 Applications 폴더로 끌어 올리거나 다음과 같습니다.
hdiutil mount TorBrowser-8.0.4-osx64_en-US.dmg
cp -r /Volumes/Tor Browser/Tor Browser.app/ ~/Applications/
Tor Project의 Apple 개발자 ID MadpSayn6t 와 함께 spctl -a -v
및/또는 pkgutil --check-signature
명령을 사용하여 TOR Application의 코드 서명을 확인하십시오.
$ 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 트래픽은 출구 노드로 암호화되어 있습니다 (즉, 수동 네트워크 도청 퍼에서 읽을 수 없음). 예를 들어 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 가상화 된 GNU/Linux 또는 OpenBSD 인스턴스 내부에서 Tor를 사용하십시오.
마지막으로, TOR 네트워크는 익명 성을 제공하며, 이는 개인 정보와 반드시 동의어가 아닙니다. TOR 네트워크는 트래픽 분석 및 상관 관계가 가능한 글로벌 관찰자에 대한 보호를 보장하지 않습니다. 인터넷 파노 티콘 (PDF)에서 익명 성과 현실적인 대적 (PDF)의 TOR에 대한 트래픽 상관 관계도 참조하십시오.
또한 Invisible Internet Project (I2P) 및 Tor 비교를 참조하십시오.
VPN 서비스를 선택하거나 직접 설정할 때 프로토콜, 주요 교환 알고리즘, 인증 메커니즘 및 사용중인 암호화 유형을 조사하십시오. PPTP와 같은 일부 프로토콜은 Linux VM 또는 크로스 플랫폼 도구 세트를 통해 OpenVPN 또는 Linux 기반 와이어 가우드를지지해야합니다.
일부 클라이언트는 VPN이 중단되거나 단절 될 때 다음 사용 가능한 인터페이스를 통해 트래픽을 보낼 수 있습니다. VPN을 통해서만 트래픽을 허용하는 방법에 대한 예는 Scy/8122924를 참조하십시오.
가상 머신 (HWDSL2/SETUP-IPSEC-VPN) 또는 Docker 컨테이너 (HWDSL2/Docker-IPSEC-VPN-Server)에 IPSEC VPN을 설정하기위한 업데이트 된 안내서가 있습니다.
VPN 제공 업체의 지리적 위치를 고려하는 것이 좋습니다. 문제 114에서 추가 논의를보십시오.
또한 MACOS 내장 VPN L2TP/IPSEC 및 IKEV2 클라이언트의 기술 개요도 참조하십시오.
PGP는 데이터 서명 및 암호화 (특히 이메일) 엔드 투 엔드의 표준이므로 발신자와 수신자 만 액세스 할 수 있습니다.
GPG 또는 GNU 개인 정보 보호 가드 는 PGP 표준을 준수하는 GPL 라이센스 오픈 소스 프로그램입니다.
GPG는 다운로드 및 설치 소프트웨어의 서명을 확인하는 데 사용됩니다.
brew install gnupg
사용하여 홈브리에서 설치하십시오.
그래픽 응용 프로그램을 선호하는 경우 GPG 제품군을 다운로드하여 설치하십시오.
권장 설정을 사용하려면 drduh/config/gpg.conf를 다운로드하십시오.
curl -o ~/.gnupg/gpg.conf https://raw.githubusercontent.com/drduh/config/master/gpg.conf
GPG 키를 안전하게 생성하고 저장하려면 Drduh/Yubikey-Guide를 참조하십시오.
온라인 가이드를 읽고 자신과 친구들에게 이메일을 암호화하고 해독하는 연습을하십시오. 이 물건에 관심을 갖도록!
XMPP는 IETF가 크로스 플랫폼 연합 메시징을 허용하는 개방형 표준입니다. 고객을위한 많은 옵션이 있습니다. 브라우저 기반 클라이언트 중 하나를 사용하여 브라우저의 샌드 박스를 활용하십시오.
공급자에 따라 계정을 설정하기 위해 사용자 이름과 비밀번호 이외의 것이 필요하지 않을 수 있습니다.
XMPP는 기본적으로 E2EE가 아니므로 Omemo 암호화를 사용해야하므로 클라이언트가 지원해야합니다.
신호는 WhatsApp, Google 메시지 및 Facebook 메신저를 포함한 수많은 다른 메신저가 더블 래칫 프로토콜을 사용하는 고급 E2EE 메신저입니다.
신호에는 가입해야 할 전화 번호가 필요하며 데스크탑에서 사용하기 전에 먼저 휴대 전화에 설치해야합니다.
Imessage는 Apple의 첫 파티 메신저입니다. 사용하려면 Apple 계정이 필요합니다.
연락처 키 확인을 활성화하고 메시지를 확인하여 올바른 사람에게 메시지를 보내도록하십시오.
전화 번호 나 이메일로 iMessage를 사용할 수 있으므로 연락처에서 편안한 것을 선택하십시오.
참고 : 기본적으로 ICLOUD 백업은 E2EE가없는 Apple 서버에 메시지 암호화 키의 사본을 저장하는 활성화됩니다. iCloud 백업을 비활성화하거나 고급 데이터 보호를 활성화하여이를 방지하십시오. 또한 메시징 파트너에게도 마찬가지라고 말하십시오!
야생에는 점점 더 많은 MAC 맬웨어가 있습니다. Mac은 바이러스와 악의적 인 소프트웨어로부터 면역력이 없습니다!
일부 맬웨어에는 Java Bundling Ask 툴바와 같은 합법적 인 소프트웨어와 Mac.backdoor.iworm과 같은 불법 소프트웨어가 포함 된 일부 맬웨어는 해적 된 프로그램과 함께 제공됩니다.
Mac OS X (PDF) 및 OS X Yosemite의 맬웨어 지속성 방법을 참조하여 정원-다양한 맬웨어 작동 방식에 대해 알아보십시오.
Malwarebytes 블로그에서 현재 Mac Security News를 보려면 업데이트를 구독하십시오.
또한 MacOS : MacOS 용 루트 설치, Mac Agent의 지원 드라이버 및 Mac 용 RCS 에이전트의 해킹 팀 맬웨어를 확인하십시오. 이는 사용자 랜드 (예 : ps
, ls
)에서 숨길 수있는 고급 맬웨어의 좋은 예입니다. 자세한 내용은 RCS 임플란트 설치 프로그램 및 Reverse.put.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
또는 Activity Monitor를 열고 "샌드 박스"열을 추가하여 앱이 실행되는 동안 확인할 수 있습니다.
모든 앱 스토어 앱은 앱 샌드 박스를 사용해야합니다.
참고 : Google Chrome과 같은 브라우저는 자체 샌드 박스를 사용하여 앱 샌드 박스를 사용하지 않습니다.
다음 명령을 사용하여 프로그램을 실행하기 전에 프로그램이 강화 런타임을 사용하는지 확인하십시오.
codesign --display --verbose /path/to/bundle.app
강화 런타임이 활성화되면 flags=0x10000(runtime)
표시됩니다. "런타임"은 강화 된 런타임이 활성화되었음을 의미합니다. 다른 플래그가있을 수 있지만 런타임 플래그는 우리가 여기에서 찾고있는 것입니다.
MacOS의 동적 링커를 통해 프로그램이 코드를 주입하는 것을 방지하는 플래그 인 "제한 된"활동 모니터의 열을 활성화 할 수 있습니다. 이상적으로는 "예"라고 말해야합니다.
강화 된 런타임을 사용하려면 공증 된 앱이 필요합니다.
여러 AV 제품으로 응용 프로그램을 스캔하고 동작을 검사하려면 실행하기 전에 Virustotal에 업로드하십시오.
MacOS에는 XProtect라는 내장 AV 프로그램이 제공됩니다. XProtect는 자동으로 백그라운드에서 실행되며 아무것도하지 않고도 맬웨어를 감지하는 데 사용하는 서명을 업데이트합니다. 이미 실행중인 맬웨어를 감지하면 다른 AV 프로그램과 마찬가지로 제거하고 완화하기 위해 작동합니다.
BlockBlock 또는 Maclaunch.sh와 같은 응용 프로그램은 지속적인 맬웨어를 방지하는 데 도움이 될 수 있습니다.
로컬로 설치된 바이러스 백신 프로그램은 일반적으로 이중 조리 검입니다. 그들은 "정원 품종"맬웨어를 잡을 수 있지만 특권 운영 모드로 인해 정교한 적의 공격 표면을 증가시킬 수도 있습니다. 그들은 또한 일반적으로 최신 맬웨어를 잡기 위해 샘플을 보내기 위해 전화 집으로 전화합니다. 이것은 프라이버시 문제가 될 수 있습니다.
사절보기 : 안티 바이러스 (PDF)에 대한 적용 공격, ESET 취약성 분석 및 착취, 대중 보안 소프트웨어는 끊임없는 NSA 및 GCHQ 공격에 따라 이스라엘이 어떻게 미국의 비밀을 위해 러시아 해커를 잡았는지
게이트 키퍼는 비 통화되지 않은 앱이 실행되는 것을 방지하려고합니다.
공증되지 않은 앱을 실행하려고하면 게이트 키퍼가 경고를 제공합니다. 개인 정보 보호 및 보안 으로 이동하여 아래로 스크롤하여 앱을 클릭 하면 쉽게 우회 할 수 있습니다. 그런 다음 게이트 키퍼를 사용하면 실행할 수 있습니다.
GateKeeper는 모든 바이너리를 다루지 않으며 다른 파일 유형을 실행할 때 조심해야합니다.
SIP가 활성화되어 있는지 확인하려면 csrutil status
명령을 사용하여 반환해야합니다. System Integrity Protection status: enabled.
그렇지 않으면 복구 모드를 통한 SIP를 활성화하십시오.
MacOS는 mdls
및 xattr
명령으로 볼 수있는 Metadata (APFS 확장 된 속성)를 다운로드 한 파일에 첨부합니다.
$ 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/*
qlmanage -r cache
명령을 사용하여 QuickLook Thumbnail 데이터를 지울 수 있지만 QuickLook 디렉토리의 파일 resetreason
에 기록되며 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는 NVRAM에서 우선 Wi-Fi 데이터 (자격 증명 포함)를 저장했습니다. 지우려면 다음 명령을 사용하십시오.
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 Application 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
에 저장되며 다음 명령으로 지우고 잠글 수 있습니다. 핵심 애플 애플리케이션을 중단 할 수 있으므로주의해야합니다.
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
Autosave 메타 데이터를 다음 명령으로 지우고 잠글 수 있습니다.
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 Launch Agent가 비활성화 된 경우에도 생성 된 SIRI Analytics 데이터베이스는 다음 명령으로 지우고 잠글 수 있습니다.
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 플레이어에서 플레이 한 모든 미디어는 다음과 같이 찾을 수 있습니다.
~/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/Purse 및 Drduh/Pwd.sh 참조).
모든 자격이있는 온라인 계정에 다단계 인증이 활성화되어 있는지 확인하십시오. 가장 강력한 형태의 다중 인증 인증은 webauthn이고 앱 기반 인증자가 이어지고 SMS 기반 코드가 가장 약합니다.
Yubikey는 WebAuthn 지원을 제공하는 저렴한 하드웨어 토큰입니다. 또한 GNUPG 암호화 및 SSH 인증을위한 암호화 키를 저장하는 데 사용될 수 있습니다. Drduh/Yubikey -Guide를 참조하십시오.
파일을 외부 미디어 또는 온라인 서비스로 백업하기 전에 로컬로 암호화합니다.
위협 모델이 허용되면 CISA가 요약 한 3-2-1 백업 모델을 따라야합니다. 원본과 2 개의 백업 3 부를 보관하십시오. 로컬 드라이브 및 클라우드 스토리지에서 2 가지 미디어 유형에 백업을 유지하십시오. 오프 사이트 1 복사를 저장하십시오.
타임머신은 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, Last Connection 등)는 /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist
에서 찾을 수 있습니다.
시간이 지남에 따라 회전하는 각 네트워크에 대해 다른 임의의 MAC 주소를 가질 수 있습니다. 이를 통해 시간이 지남에 따라 네트워크와 동일한 네트워크에서 추적되는 것을 방지 할 수 있습니다.
MacOS는 복구 모드가 인터넷에 액세스하기 위해 NVRAM에 Wi-Fi SSID 및 비밀번호를 저장합니다. NVRAM을 지우거나 Apple 계정에서 MAC를 확인하십시오. Mac을 통과하기 전에 NVRAM을 지울 수 있습니다. SMC를 재설정하면 NVRAM의 일부가 제거되지만 전부는 아닙니다.
마지막으로, 무선 네트워크의 WEP 보호는 안전하지 않으며 가능하면 WPA3 보호 네트워크에만 연결해야합니다.
나가는 SSH 연결의 경우 하드웨어 또는 비밀번호로 보호 된 키를 사용하고 원격 호스트를 설정하고 추가 개인 정보 보호를 위해 해싱을 고려하십시오. 권장 클라이언트 옵션은 drduh/config/ssh_config를 참조하십시오.
SSH를 사용하여 VPN과 유사하게 트래픽을 보내기 위해 암호화 된 터널을 만들 수 있습니다.
예를 들어, 원격 호스트 포트 8118에서 실행되는 privoxy를 사용하려면 :
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을 항상 육체적으로 안전하게 유지하고 공개적으로 방치하지 마십시오.
감독되지 않은 물리적 액세스를 가진 숙련 된 공격자는 하드웨어 키로거를 설치하여 모든 키 스트로크를 기록 할 수 있습니다. 내장 키보드 또는 Bluetooth 키보드가있는 Mac을 사용하면이 공격의 많은 비유 버전이 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,
/etc/security
의 audit
, praudit
, audit_control
및 기타 파일에 대한 매뉴얼 페이지를 참조하십시오.
man audit
따르면 -s
플래그는 감사 구성을 동기화 할 것이라고 말하지만 변경 사항을 발효하려면 재부팅해야합니다.
자세한 내용은 ilostmynotes.blogspot.com 및 derflounder.wordpress.com의 기사를 참조하십시오.
참고 시스템 무결성 보호는 DTRACE를 방해하므로 SIP를 비활성화하지 않고 최근 MACOS 버전에서 사용할 수 없습니다.
iosnoop
디스크 I/O를 모니터링합니다opensnoop
Monitors 파일이 열립니다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의 Corporate Macintosh 함대 및 오픈 소스 용으로 개발 된 보안 소프트웨어입니다.
산타는 MACOS의 이진 및 파일 액세스 권한 부여 시스템입니다. 이는 실행을위한 모니터링하는 시스템 확장으로 구성됩니다. 로컬 데이터베이스의 내용을 기반으로 실행 결정을 내리는 데몬, 블록 결정 및 시스템 관리 및 지휘관 유틸리티가있는 경우 사용자에게 알리는 GUI 에이전트 인 데몬으로 구성됩니다. 데이터베이스를 서버와 동기화합니다.
산타는 커널 권한 API를 사용하여 이진이 커널에서 실행되는 것을 모니터링하고 허용/허용합니다. Binaries는 고유 한 해시 또는 서명 개발자 인증서로 화이트 또는 검은 색으로 등록 할 수 있습니다. 산타는 신뢰할 수있는 코드 실행 만 허용하거나 Windows 용 Bit9 소프트웨어와 유사한 Mac에서 실행되는 블랙리스트에만 사용될 수 있습니다.
참고 산타에는 현재 규칙을 관리하기위한 그래픽 사용자 인터페이스가 없습니다. 다음 지침은 고급 사용자만을위한 것입니다!
산타를 설치하려면 릴리스 페이지를 방문하여 최신 디스크 이미지 인 마운트를 다운로드하고 포함 된 패키지를 설치하십시오.
hdiutil mount ~/Downloads/santa-0.9.20.dmg
sudo installer -pkg /Volumes/santa-0.9.20/santa-0.9.20.pkg -tgt /
기본적으로 Santa는 "모니터"모드로 설치하고 (의미, 아무것도 차단되지 않으며, 로그인 한 경우에만) 두 가지 규칙이 제공됩니다. 하나는 Apple Binaries와 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 프로그램 작성 :
$ 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 크롬 다운로드 및 실행 - 산타는 "잠금"모드로 차단됩니다.
$ 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
은 Google의 Apple Developer 인증서 (Team ID EQHXZ8M8AV)의 SHA -256입니다.
$ 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, 오픈 소스 이벤트 모니터링 솔루션 및 Osquery 및 Santa 용 TLS 서버에서 사용할 수 있습니다.
Zentral은 모니터링 및 잠금 작동 모드에서 산타를 지원합니다. 클라이언트는 TLS 연결과 함께 등록되어 산타 규칙을 동기화해야하며 엔드 포인트의 모든 산타 이벤트는 Zentral에 집계되어 다시 기록됩니다. 산타 이벤트는 Zentral 프레임 워크 내에서 작업 및 알림을 유발할 수 있습니다.
참고 Python, Bash 및 기타 통역사는 (Apple의 개발자 인증서에 서명하므로) 승인되므로 Santa는 그러한 스크립트가 실행되는 것을 막을 수 없습니다. 따라서 산타를 비활성화하는 잠재적 인 이진 프로그램은 약점 (디자인별로 취약성이 아님)에 주목해야합니다.
진단 및 사용 데이터를 비활성화합니다.
음악을 연주하거나 비디오를 보려면 MacOS의 내장 미디어 플레이어 인 Quicktime Player를 사용하십시오. 앱 샌드 박스, 강화 런타임 및 기본 시스템의 일부로 서명 된 시스템 볼륨의 혜택을 사용합니다.
급류를 사용하려면 무료 및 오픈 소스 인 Transmission을 사용하십시오 (참고 : 모든 소프트웨어와 마찬가지로 오픈 소스 프로젝트조차도 맬웨어가 여전히 찾을 수 있습니다). 또한 알려진 나쁜 호스트로 피어링을 피하기 위해 블록 목록을 사용하고 싶을 수도 있습니다. 전송 및 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
모든 파일 이름 확장자를 보여주십시오 ( "Evil.jpg.app"이 쉽게 가장 무도 할 수 없습니다).
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
iCloud에 문서를 저장하는 데 기본값을하지 마십시오.
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
터미널에서 보안 키보드 항목을 활성화하십시오 (Yubikey 또는 Textexpander와 같은 응용 프로그램을 사용하지 않는 한).
Crash Reporter (응용 프로그램이 충돌 한 후 나타나는 대화 상자 및 Apple에 문제를보고하라는 프롬프트) :
defaults write com.apple.CrashReporter DialogType none
Bonjour 멀티 캐스트 광고 비활성화 :
경고 : 이것은 AirPlay 및 AirPrint에 문제가 발생합니다!
sudo defaults write /Library/Preferences/com.apple.mDNSResponder.plist NoMulticastAdvertisements -bool YES
필요하지 않은 경우 핸드 오프 및 블루투스 기능을 비활성화하십시오.
앱이 활동 모니터에 샌드 박스가 있는지 확인하십시오.
MacOS는이 라인과 함께 /etc/sudoers
에 제공됩니다.
Defaults env_keep += "HOME MAIL"
권한을 높일 때 Sudo가 주택 변수를 변경하지 못하게합니다. 즉, "Sudo Zsh"를 실행할 때 뿌리가 아닌 사용자의 홈 디렉토리에서 root the Zsh Dotfiles로 실행됩니다. 맬웨어 나 지역 공격자가 권한을 루트로 확대 할 수있는 잠재적 인 쉬운 방법을 피하기 위해이 라인을 언급하는 것이 좋습니다.
루트가 아닌 사용자의 홈 디렉토리를 갖는 루트 사용자의 편의를 유지하려면 /var/root/.zshrc로 내보내기 라인을 추가 할 수 있습니다.
export HOME=/Users/blah
사용자 정의 UMASK 설정 :
sudo launchctl config user umask 077
재부팅, Finder에서 파일을 작성하고 권한을 확인하십시오 (MacOS 기본값은 '그룹/기타'읽기 액세스 허용) :
$ 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