devAlice
← Mac

macOS 보안 기본 — FileVault · Firewall · Gatekeeper · XProtect

Mac을 사기 직후 켜야 할 보안 기능 4종. 디스크 암호화·방화벽·앱 검증·악성코드 검역의 동작과 셋업.

macOS는 기본값이 합리적인 편이지만, 개발자 머신에는 추가로 켜둬야 할 보안 기능이 있다. FileVault (디스크 암호화), Firewall (방화벽), Gatekeeper (앱 서명 검증), XProtect (악성코드 검역) 네 가지가 핵심.

이 가이드는 Mac 초기 셋업 완료 후 보안 기본기를 30분 안에 끝내는 셋업. 회사 머신·노트북·소스코드 보관 머신은 모두 필수.

TL;DR

  1. FileVault ON — 디스크 분실/도난 시 데이터 보호 (가장 중요)
  2. Firewall ON — 인바운드 연결 차단 + 스텔스 모드
  3. Gatekeeper 기본 유지 — App Store + 식별된 개발자만 허용
  4. XProtect 자동 동작 — 별도 셋업 없음, 자동 업데이트만 확인
  5. 회사 노트북은 (1)+(2) 필수, (3) 변경 금지

사전 조건

  • macOS 14+ (Sonoma 이상)
  • Admin 계정
  • Apple ID 로그인 (FileVault 복구 키 백업용)

1. FileVault — 디스크 암호화 (필수)

1.1 왜 필수인가

  • 분실/도난 시 데이터 노출 차단 — 키 없으면 디스크 내용 무의미
  • macOS는 기본 OFF — Apple Silicon은 하드웨어 암호화하지만 FileVault 키가 없으면 풀림
  • 회사 보안 정책 99% 요구사항

1.2 활성화

System Settings → Privacy & Security → FileVault → Turn On

복구 옵션 두 가지 중 선택:

  • iCloud로 복구 허용 (편함, Apple ID 분실 시 데이터 영구 손실)
  • 복구 키 생성 (28자 — 안전한 곳에 저장, 1Password 등)

권장: 복구 키 생성 + 1Password 같은 password manager에 저장. iCloud 의존성 제거.

활성화 직후 디스크 암호화 진행. 사용은 계속 가능하지만 첫 1-2시간은 약간 느림. 진행률은 같은 설정 페이지에서 확인.

1.3 검증

fdesetup status
# FileVault is On.

또는:

diskutil apfs list | grep -i encrypted
# Encrypted:                  Yes (Unlocked)

1.4 주의사항

  • 복구 키 분실 + Apple ID 분실 = 데이터 영구 손실. 두 곳 이상에 백업
  • 회사 머신: 회사가 escrow (복구 키 보관) 정책 가질 수 있음 — IT 정책 확인
  • 외장 SSD도 별도 FileVault 적용 가능 (diskutil apfs encryptVolume)

2. Firewall — 방화벽 (필수)

2.1 활성화

System Settings → Network → Firewall → Turn On

옵션:

  • Block all incoming connections — 거의 모든 인바운드 차단 (서비스/공유 불필요한 경우)
  • Automatically allow signed software — 서명된 앱은 자동 허용 (기본 권장)
  • Enable stealth mode — ping/probe 무응답 (공개 Wi-Fi 추천)

2.2 추천 설정

환경권장
집·신뢰 네트워크Firewall ON + 서명 앱 자동 허용
회사 사무실Firewall ON + 서명 앱 자동 허용
카페·공항·호텔 Wi-Fi+ Stealth mode ON + 가능하면 Block all incoming ON

2.3 앱별 인바운드 허용

특정 앱이 인바운드 필요 (예: 개발 서버, 게임 호스트):

Firewall → Options → + → 앱 추가 → "Allow incoming connections"

또는 첫 실행 시 macOS가 자동 prompt — 그때 허용.

2.4 검증

sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
# Firewall is enabled. (State = 1)
 
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getstealthmode
# Stealth mode enabled

3. Gatekeeper — 앱 검증

3.1 동작

macOS가 앱을 처음 실행할 때:

  1. 코드 서명 확인 (Apple Developer ID 또는 App Store)
  2. notarization 확인 (Apple이 악성코드 스캔 통과시킨 흔적)
  3. 위 둘 다 통과해야 실행

3.2 기본 설정 유지

System Settings → Privacy & Security → Security:

  • App Store — 가장 제한적
  • App Store and identified developers기본값 (권장)
  • "Anywhere" 옵션은 macOS 14에서 제거됨 (전용 명령으로만 우회 가능)

3.3 미서명 앱 일회성 허용 (개발 빌드 등)

예외적으로 미서명 앱 실행:

# 방법 A: 우클릭 + Open
# Finder에서 앱 우클릭 → Open → 경고에서 Open 클릭 → 이후 정상 실행
 
# 방법 B: 격리 속성 제거 (위험 — 신뢰 가능 앱만)
xattr -d com.apple.quarantine /path/to/MyApp.app

3.4 Gatekeeper 비활성화 (절대 금지)

# ❌ 절대 실행하지 말 것
sudo spctl --master-disable

이 명령은 모든 앱 서명 검증을 끄며 시스템을 위험에 노출. 개발자라도 비활성화 금지 — 미서명 빌드는 위 §3.3의 일회성 방식으로.

3.5 검증

spctl --status
# assessments enabled    ← 정상
 
# 특정 앱 검증 상태
spctl --assess --verbose /Applications/SomeApp.app

4. XProtect — 악성코드 검역

4.1 동작

macOS에 내장된 백그라운드 악성코드 스캐너. 별도 셋업 불필요.

  • 알려진 악성코드 시그니처 자동 검사
  • 다운로드 파일·실행 직전 앱 스캔
  • Apple이 정의를 자동 업데이트 (시스템 업데이트와 별개로 silent)

4.2 자동 업데이트 확인

System Settings → General → Software Update → Automatic Updates:

  • Install Security Responses and system files — XProtect 정의 포함, 반드시 ON

4.3 검증

# 마지막 XProtect 업데이트 시각
defaults read /Library/Apple/System/Library/CoreServices/XProtect.bundle/Contents/Info CFBundleShortVersionString
 
# 또는
sudo /usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" /Library/Apple/System/Library/CoreServices/XProtect.bundle/Contents/Info.plist

2026-xx-xx 형태의 최근 날짜면 정상.

4.4 보조 안티바이러스

XProtect는 알려진 악성코드만 차단. 0-day나 정교한 공격은 별도. 권장:

  • Malwarebytes — Mac 전용 free tier
  • CrowdStrike / SentinelOne — 기업용 EDR

개인 개발자는 XProtect + Malwarebytes 정도면 충분. Antivirus 과다 설치는 성능 저하.


5. SIP (System Integrity Protection)

5.1 동작

루트 권한으로도 system 폴더 수정 불가. macOS 자체 보호 메커니즘.

  • /System, /usr 보호
  • 커널 확장 차단
  • 시스템 프로세스 디버깅 차단

5.2 상태 확인

csrutil status
# System Integrity Protection status: enabled.

enabled 정상. 절대 비활성화 금지 — 매우 위험.

비활성화는 macOS Recovery에서만 가능 → 일반 사용자에게 절대 불필요.


6. 추가 권장 — 잠금·자동 잠금

6.1 화면 잠금 단축키

System Settings → Lock ScreenTurn display off when inactive: 5 minutes

빠른 잠금 단축키:

  • Ctrl + Cmd + Q — 즉시 잠금

6.2 자동 로그인 OFF

System Settings → Users & Groups → Login Options:

  • Automatic login: Off

6.3 메시지·알림 잠금 화면 숨기기

System Settings → Notifications → Show previews → "When unlocked"

잠금 화면에서 메시지 내용 노출 금지. 회사 메시지·SMS 인증 코드 노출 차단.


7. SSH 키 보안

macOS의 SSH 키는 평문으로 디스크에 저장. 보강:

7.1 passphrase 사용

# 키 생성 시 passphrase 입력
ssh-keygen -t ed25519 -C "you@example.com"

빈 passphrase는 편하지만 키 유출 시 즉시 사용 가능 — 권장 X.

7.2 macOS Keychain 활용

~/.ssh/config:

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

passphrase를 macOS Keychain에 저장 → 입력 1회 후 자동.

7.3 1Password SSH agent (선택)

가장 안전. SSH 키 자체를 1Password vault에 저장 + Touch ID로 매번 인증.

자세히: /multi-os/password-manager.


8. 검증 — 한 번에 점검

echo "=== FileVault ==="
fdesetup status
 
echo "=== Firewall ==="
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getstealthmode
 
echo "=== Gatekeeper ==="
spctl --status
 
echo "=== SIP ==="
csrutil status
 
echo "=== Auto Login ==="
defaults read /Library/Preferences/com.apple.loginwindow autoLoginUser 2>/dev/null && echo "AUTO LOGIN ON — disable it" || echo "auto login OFF"

기대 출력:

FileVault is On.
Firewall is enabled. (State = 1)
Stealth mode enabled
assessments enabled
System Integrity Protection status: enabled.
auto login OFF

5개 모두 통과해야 안전한 baseline.


9. 트러블슈팅

FileVault 켜고 부팅 후 비밀번호 두 번 입력

  • 정상 동작 — 부팅 시 EFI 단계 1회 + 로그인 1회
  • 단일 입력 원하면 System Settings → Users & Groups → Login Options → Show fast user switching menu 끄기

특정 앱이 Firewall 때문에 동작 안 함

  • 인바운드 필요 앱일 가능성 (개발 서버, 게임 host)
  • Firewall → Options → + 로 명시적 허용
  • 또는 첫 실행 시 prompt에서 Allow

Gatekeeper가 신뢰하는 개발자의 앱을 차단

  • 종종 발생 — Apple notarization 일시 지연
  • 잠시 후 (5-30분) 재시도. 또는 앱 우클릭 → Open

XProtect 정의가 오래됨

  • Software Update에서 자동 업데이트 ON
  • 수동 트리거: 재부팅

M1/M2/M3에서 미서명 kext (커널 확장) 필요

  • Reduced Security 모드 전환 필요 (macOS Recovery → Startup Security Utility)
  • 가능하면 회피 — 대체 software 찾기 우선

"이 앱은 손상되었습니다" (앱 못 엶)

  • Apple Silicon에서 ARM 미지원 앱
  • 또는 quarantine 속성 누락된 사용자 빌드 — xattr -cr /path/to/App.app 후 다시 시도 (신뢰 가능한 출처만)

10. 다음 단계


참고

변경 이력

  • 2026-05-16: 첫 작성. FileVault + Firewall + Gatekeeper + XProtect + SIP + SSH 보안 + 일괄 검증 스크립트 + 트러블슈팅 6종.

댓글