
macOS 지속성 메커니즘 스캐너 (코드 서명 검증 및 타임라인 추적 포함)
Mac에서 실행되는 모든 것을 확인하세요. 왜 실행되는지 이해하세요. 무엇을 유지할지 결정하세요.


MacPersistenceChecker는 Mac에서 자동으로 실행되는 모든 것을 보여주고, 왜 중요한지 설명하며, 무엇을 유지하거나 제거할지 결정하는 데 도움을 줍니다.
→ 악성코드 찾기 → 숨겨진 지속성 감지 → 시스템을 몇 분 안에 이해하기
MacPersistenceChecker v2.0.0 (DMG) 다운로드
→ 30초 안에 Mac 스캔 → 설치 마법사 없이 열어서 바로 실행 → 네이티브 macOS, 유니버설 (Apple Silicon 및 Intel), macOS 13+
macOS에서 앱이 손상되었다고 표시되면:
xattr -cr /Applications/MacPersistenceChecker.app
앱이 시스템을 학습하고 수천 개의 항목을 자동으로 분류합니다.
빠른 시작:
실제 비용: 활성 사용 시 <월 $1, 정상 상태에서는 무료.
앱은 Mac의 모든 지속성 항목에 대한 지식 그래프를 구축하고 Claude(Anthropic)를 사용하여 추론합니다. 수천 개의 항목을 신속하게 분류하고, 실제로 중요한 것만 에스컬레이션하며, 시스템을 학습하여 추가 AI 호출 없이도 대부분의 질문에 답변할 수 있습니다.
┌──────────────────────────┐
│ Persistence scan │
│ (e.g. 6800 items) │
└─────────────┬────────────┘
▼
┌────────────────────────────────────────┐
│ Concept Extraction (deterministic) │
│ 6 extractors → vendor / software / │
│ pathCategory / pattern / mechanism / │
│ filename. No AI calls here. │
└─────────────┬──────────────────────────┘
▼
┌────────────────────────────────────────┐
│ Knowledge Graph (SQLite) │
│ • concepts (~280 typically) │
│ • concept_links (subsumes / instance) │
│ • item_concepts (m:n) │
│ • concept_verdicts │
└─────────────┬──────────────────────────┘
▼
┌────────────────────────────────────────┐
│ Concept Resolver │
│ for every item, picks the strongest │
│ verdict via a deterministic ladder: │
│ severity → confidence → specificity │
│ → source → recency. │
└─────────────┬──────────────────────────┘
│
┌───────────┴────────────┐
▼ ▼
┌──────────────────┐ ┌──────────────────────┐ │ Item is already │ │ Item is unresolved │ │ classified. │ │ → goes to a cluster. │ │ Filter hides it │ └──────────┬───────────┘ │ from "Suspicious"│ ▼ └──────────────────┘ ┌──────────────────────┐ │ Cluster Builder │ │ groups items by │ │ identical concept │ │ signature (sorted │ │ ids). 6800 items → │ │ ~280 clusters. │ └──────────┬───────────┘ ▼ ┌──────────────────────────────────────────┐ │ User decides per cluster (one click = │ │ N items decided), OR sends batch to AI: │ │ │ │ • Trust / Watch / Block (manual) │ │ • Send unresolved clusters to AI │ │ → Haiku batch (15 cluster per call) │ │ → AI returns verdicts attached to │ │ concepts (not items) — propagate │ │ to ALL items linked to those │ │ concepts, including future ones. │ └──────────────────────────────────────────┘
### AI 도구
| 도구 | 위치 | 모델 | 호출당 비용 |
|---|---|---|---|
| AI로 분석 (단일 항목) | 항목 상세 → 지식 그래프 | Haiku | ~$0.003 |
| 스마트 분류 배치 | 도구 모음 → 분류 | Haiku 배치 | ~$0.005 (15개 클러스터) |
| 시스템 보고서 | 도구 모음 → 보고서 | Sonnet | ~$0.05-0.10 |
| 위협 헌트 | 도구 모음 → 헌트 | Haiku | ~$0.003 |
| 스냅샷 차이 | 기록 → 비교 → AI로 분석 | Haiku | ~$0.003 |
일일 호출 제한(기본 30)은 설정 → AI에서 구성 가능. 하드 상한이며, 도달 시 AI가 자동으로 비활성화됩니다.
### 신뢰 제어
사용자 정의 규칙은 **항상** AI 추출 규칙보다 우선합니다:
- **이 항목 신뢰** — 단일 항목 규칙, 귀하의 판결이 AI 감시 목록보다 우선
- **이 패턴 신뢰** — TeamID/서명 앵커 기반 패턴 규칙 (서명된 바이너리만 해당)
- **신뢰 제거** — 실수로 추가한 사용자 정의 규칙 삭제
- **감시 / 차단** — 스마트 분류에서 전체 클러스터에 감시 목록/악성 판결 적용
</details>
---
## 지속성 스캔
### 핵심 스캐너
- **Launch Daemons** - 시스템 전체 서비스 (`/Library/LaunchDaemons`, `/System/Library/LaunchDaemons`)
- **Launch Agents** - 사용자 수준 에이전트 (`~/Library/LaunchAgents`, `/Library/LaunchAgents`)
- **로그인 항목** - 로그인 시 시작되는 앱
- **커널 확장** - 레거시 kext
- **시스템 확장** - 최신 시스템 확장 (DriverKit, NetworkExtension, EndpointSecurity)
- **권한 있는 도우미 도구** - 상승된 권한을 가진 XPC 서비스
- **Cron 작업** - 예약된 작업
- **구성 프로파일** - MDM 및 구성 프로파일
- **애플리케이션 지원** - 백그라운드 앱 및 도우미
### 확장 스캐너 (선택 사항)
- **주기적 스크립트** - `/etc/periodic/`에 있는 일일, 주간, 월간 스크립트
- **셸 시작 파일** - 의심스러운 패턴 탐지가 적용된 `.zshrc`, `.bashrc`, `/etc/profile`
- **로그인/로그아웃 훅** - `com.apple.loginwindow`를 통한 레거시 로그인 훅
- **인증 플러그인** - `/Library/Security/SecurityAgentPlugins`의 보안 에이전트 플러그인
- **Spotlight 임포터** - 사용자 정의 메타데이터 임포터
- **Quick Look 플러그인** - 악용될 수 있는 미리보기 생성기
- **디렉터리 서비스 플러그인** - 인증 플러그인
- **Finder Sync 확장** - pluginkit를 통한 Finder 확장
- **BTM 데이터베이스** - 백그라운드 작업 관리 항목 (macOS 13+)
- **Dylib 하이재킹** - `DYLD_INSERT_LIBRARIES` 및 의심스러운 dylib 주입 탐지
- **TCC/접근성** - TCC 데이터베이스에서 접근성 권한이 있는 앱
---
## 위험 평가
모든 지속성 항목은 여러 요인에 기반한 **위험 점수(0-100)** 를 받습니다:
- 유효하지 않거나 누락된 코드 서명
- 누락된 하드닝된 런타임 보호
- 임시 서명된 바이너리
- 의심스러운 파일 위치
- 지속적인 자동 시작 구성 (RunAtLoad, KeepAlive)
- 알려진 악성 코드 패턴
**심각도 수준:** 낮음, 중간, 높음, 치명적 - 신속한 위협 식별을 위해 항목이 위험도별로 정렬됩니다.
### 실행 빈도 이상 탐지
- **마이크로 재시작** - StartInterval < 60초 (가능한 워치독 남용)
- **공격적 워치독** - KeepAlive + 낮은 StartInterval 조합
- **조절 제한 없음** - ThrottleInterval 없는 KeepAlive (충돌-재시작 루프 위험)
### 서명되었지만 위험한 탐지
- **위험한 권한** - 위험한 권한 탐지 (`com.apple.security.cs.disable-library-validation` 등)
- **Apple 사칭** - Apple로 보이려는 비 Apple 소프트웨어
- **숨겨진 위치** - 의심스러운 디렉터리에 있는 서명된 앱
- **공증 격차** - 공증이 없는 최근 앱
- **개발자 인증서 분석** - 알려진 공급업체에 대한 TeamID 검증
### LOLBins 탐지 (합법 이진 파일 악용)
지속성 컨텍스트에서 합법적인 macOS 바이너리의 의심스러운 사용을 탐지합니다. **조합이 중요합니다:**