Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
SockFuzzer — 커버리지 기반 커널 퍼징 프레임워크로, XNU를 사용자 공간 라이브러리로 실행하여 BSD, Mach, 가상 메모리 및 프로세스 서브시스템 전반에서 취약점을 발견합니다. | Kitploit
도구/GitHubGitHub/googleprojectzero/sockfuzzer
Dynamic Analysis (Sandboxing)iOS SecurityVulnerability AnalysisFuzzingArchived
GitHubgoogleprojectzero/sockfuzzer

SockFuzzer

커버리지 기반 커널 퍼징 프레임워크로, XNU를 사용자 공간 라이브러리로 실행하여 BSD, Mach, 가상 메모리 및 프로세스 서브시스템 전반에서 취약점을 발견합니다.

저장소 보기
452551년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

SockFuzzer: XNU 커널 퍼징 프레임워크

프로젝트 현황

SockFuzzer는 원래 macOS 및 iOS에서 사용되는 XNU 커널을 위한 네트워킹 중심 퍼저로 설계되었지만, 현재는 포괄적인 커널 퍼징 프레임워크로 발전했습니다. 원래 이름을 그 기원을 기리는 의미로 유지하면서, SockFuzzer는 이제 BSD, Mach, 가상 메모리 등을 포함한 광범위한 커널 서브시스템을 다룹니다. 이 프로젝트는 XNU 커널을 사용자 공간에서 "부팅"되고 퍼징될 수 있는 라이브러리로 변환하는 독특한 접근 방식을 구현하여, 여러 서브시스템에 걸친 효율적인 취약점 발견 및 재현을 가능하게 합니다.

프로젝트 목표

  1. 통제된 환경에서 XNU 커널을 종합적으로 테스트합니다
  2. 다양한 XNU 서브시스템에서 취약점을 발견하고 재현합니다
  3. XNU 보안의 지속적인 퍼징 및 개선을 위한 프레임워크를 제공합니다
  4. 커널 연구에서 고급 퍼징 기법 구현의 가치를 입증합니다
  5. 복잡한 커널 상호작용 및 서브시스템의 효율적인 테스트를 가능하게 합니다

아키텍처 개요

SockFuzzer는 호스트/"XNU 게스트" 설계를 채택하며, XNU 커널이 라이브러리로 컴파일되어 커스텀 사용자 공간 환경 내에서 실행됩니다. 이 아키텍처는 다음과 같은 여러 핵심 구성 요소로 이루어져 있습니다:

  1. 호스트 환경
  2. XNU 게스트 라이브러리
  3. 커스텀 스케줄러 (Concurrence 기반)
  4. 퍼징 엔진 (Google의 fuzztest 프로젝트의 Centipede)
  5. 테스트 러너 및 하네스

호스트 환경

호스트 환경은 XNU 게스트 라이브러리 실행 및 퍼징 프로세스 관리를 위한 기반을 제공합니다. 여기에는 다음이 포함됩니다:

  • 핵심 커널 서비스의 커스텀 구현
  • 호스트와 XNU 게스트 간 통신을 위한 하이퍼콜 인터페이스
  • 퍼즈 테스트 실행을 위한 테스트 러너 및 하네스

XNU 게스트 라이브러리

XNU 커널은 사용자 공간에서 실행되도록 최소한의 수정만을 가한 라이브러리(libxnu)로 컴파일됩니다. 주요 측면은 다음과 같습니다:

  • 호스트 심볼과의 충돌을 피하기 위한 심볼 접두사 부여 및 관리
  • 버전 스크립트를 통한 내부 XNU 함수의 선택적 노출
  • BSD, Mach, 가상 메모리, 스레드, 프로세스 등 여러 서브시스템 지원
  • 가상 메모리 지원을 위한 널 pmap 레이어 (향후 ARM pmap 지원 계획 포함)

커스텀 스케줄러

개선된 Concurrence 프로젝트를 기반으로, 커스텀 스케줄러는 이제 완전한 스레딩 기능을 지원합니다:

  • Executor: 스레드 생성, 삭제 및 컨텍스트 스위칭 제공
  • FuzzedScheduler: 스레드 상태 및 스케줄링 결정 관리
  • 적절한 멀티스레딩 지원을 위한 XNU 게스트 라이브러리와의 통합

테스트 러너 및 하네스

테스트 러너와 하네스는 퍼즈 테스트의 실행을 관리하고 다음을 제공합니다:

  • XNU 게스트 환경 초기화
  • 다양한 서브시스템에 걸친 퍼즈 입력 실행
  • 크래시 감지 및 보고

주요 기능

  1. 포괄적인 XNU 커널 커버리지: BSD, Mach, 가상 메모리, 스레드 및 프로세스를 포함한 여러 서브시스템 테스트
  2. 사용자 공간 XNU 실행: 통제된 사용자 공간 환경에서 XNU 커널 구성 요소 실행
  3. 완전한 스레딩 지원: 개선된 Concurrence를 활용한 적절한 멀티스레딩 기능
  4. 가상 메모리 지원: ARM pmap 지원 계획과 함께 널 pmap 레이어 활용
  5. MIG 퍼징: Mach Interface Generator(MIG) 인터페이스 퍼징 지원
  6. 하이퍼콜 인터페이스: 호스트와 XNU 게스트 구성 요소 간 통신 지원

지원 기능

  1. BSD
  2. Mach
  3. 가상 메모리 (널 pmap 레이어 포함)
  4. 스레드 및 프로세스
  5. 네트워킹
  6. Mach 메시지
  7. MIG 인터페이스

워크플로우

  1. XNU 커널이 필요한 수정 사항과 함께 라이브러리로 컴파일됩니다
  2. 호스트 환경이 XNU 게스트 라이브러리와 커스텀 스케줄러를 초기화합니다
  3. Centipede가 protobuf 정의를 사용하여 구조화된 입력을 생성합니다
  4. 테스트 하네스가 입력을 실행하여 syscall, Mach 메시지 및 기타 커널 인터페이스를 호출합니다
  5. 커스텀 스케줄러가 XNU 게스트 내에서 스레드 실행을 관리합니다
  6. ASAN이 메모리 손상 문제를 모니터링합니다
  7. 크래시 및 커버리지 정보가 수집되고 분석됩니다

제한 사항 및 향후 작업

  1. IOKit 지원: 현재 구현은 IOKit 서브시스템을 지원하지 않습니다
  2. 바이너리 전용 퍼징: 현재 접근 방식은 모든 모듈을 포함하지 않는 소스 코드에 의존합니다

향후 작업에는 다음이 포함됩니다:

  • IOKit 지원 구현
  • 가상 메모리를 위한 ARM pmap 통합
  • 바이너리 전용 퍼징 시나리오에 대한 기법 적용
  • XNU 서브시스템에 대한 커버리지 및 지원 지속 확장

공개 릴리스 제한 사항

이 저장소의 구조를 깔끔하게 유지하기 위해, 사용자들은 xnu, bootstrap_cmds 및 기타 여러 라이브러리와 같은 일부 종속성을 직접 third_party에 추가해야 합니다.

도구 다운로드