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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/trailofbits/sinter
Defensive ToolsConfiguration AuditingIncident ResponseArchived
GitHubtrailofbits/sinter

sinter

Swift로 작성된 MacOS용 사용자 모드 애플리케이션 인증 시스템

저장소 보기웹사이트
299155년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Sinter

Build Status

Sinter는 macOS 10.15 이상을 위한 100% 사용자 모드 엔드포인트 보안 에이전트이며, Swift로 작성되었습니다.

Sinter는 사용자 모드 EndpointSecurity API를 사용하여 macOS 커널로부터 인증 콜백을 구독하고 수신하며, 일련의 보안 관련 이벤트 유형을 처리합니다. 현재 버전의 Sinter는 프로세스 실행을 허용/차단하는 기능을 지원합니다. 향후 버전에서는 파일, 소켓, 커널 이벤트와 같은 다른 유형의 이벤트도 지원할 계획입니다.

Sinter는 작업 진행 중입니다. 피드백을 환영합니다. 잠재력을 실현하는 데 기여하거나 후원하는 데 관심이 있다면, 연락 주세요.

Features

  • 코드 디렉토리 해시(일명 "CD 해시")로 프로세스 실행 허용 또는 차단
    • 모든 알 수 없는 프로그램(명시적으로 허용되지 않은 프로그램)을 차단하는 옵션
    • 모든 서명되지 않은 프로그램을 차단하는 옵션
    • 유효하지 않은 서명이 있는 모든 프로그램을 차단하는 옵션
  • 모든 프로세스 실행 이벤트를 추적하고 기록(허용)하는 "모니터" 모드
  • Santa 동기화 서버로부터 허용/차단 규칙을 수락
  • 로컬 또는 동기화 서버에서 제공된 JSON으로 차단 규칙 구성
  • 구조화된 JSON 형식으로 로컬 파일 시스템에 로깅

계획된 향후 기능:

  • 실행 파일 경로로 프로세스 실행 차단
  • 인증서 팀 ID로 프로세스 실행 차단

Anti-Features

  • 커널 확장을 사용하지 않음(macOS 11 Big Sur에서 공식적으로 폐기 예정)
  • 레거시 macOS(10.14 이하)를 지원하지 않음
  • 메모리 안전하지 않은 코드를 사용하지 않음
  • 타사 라이브러리 의존성 제한
  • 안티멀웨어 또는 안티바이러스가 아닙니다. 서명 데이터베이스가 없습니다. 규칙을 사용하여 지시한 것만 차단합니다.

Background

프로세스 허용/차단을 위한 최초의 오픈소스 macOS 솔루션은 Google Santa였습니다. 우리는 Santa의 팬이며, 과거에 그 코드베이스에 기여한 적이 있습니다. 그러나 오랫동안 macOS 커뮤니티의 많은 사람들은 프로세스 이벤트뿐만 아니라 더 많은 것을 추적하고 관리할 수 있는 오픈소스 솔루션을 요청해 왔습니다.

우리는 macOS 10.15의 EndpointSecurity API로 그러한 기능을 구축하기에 이상적인 플랫폼을 보았습니다. 순수 사용자 모드 API를 중심으로 처음부터 새로 구축함으로써 더 단순한 설계를 시도하고, 더 안전한 메모리 처리와 더 나은 성능을 갖춘 현대적인 프로그래밍 언어를 사용할 수 있었습니다. 그래서 우리는 Sinter를 개발하기 시작했습니다. Sinter는 "Sinter Klausen"의 줄임말로, 산타클로스의 다른 이름입니다.

Getting Started

최신 버전의 Sinter를 Releases 페이지의 pkg 설치 프로그램 링크를 사용하여 다운로드하고 설치합니다.

Sinter를 설치한 후에는 Sinter.app에 대해 '전체 디스크 접근' 권한을 활성화해야 합니다. 시스템 환경설정, 보안 및 개인정보 보호, 개인정보 보호 탭, 전체 디스크 접근을 열어 수행합니다. Sinter.app 항목을 체크합니다. MDM을 사용하는 경우 엔드포인트에서 이 권한을 자동으로 활성화할 수 있으며, 사용자 상호작용이 필요하지 않습니다.

Configuration

Sinter requires a configuration file to be present at /etc/sinter/config.json. An example is provided in the source tree at ./config/config.json:

root@kitploit:~
{
  "Sinter": {
    "decision_manager": "local",
    "logger": "filesystem",

    "allow_unsigned_programs": "true",
    "allow_invalid_programs": "true",
    "allow_unknown_programs": "true",
    "allow_expired_auth_requests": "true",
    "allow_misplaced_applications": "true",

    "config_update_interval": 600,

    "allowed_application_directories": [
      "/bin",
      "/usr/bin",
      "/usr/local/bin",
      "/Applications",
      "/System",
      "/usr/sbin",
      "/usr/libexec",
    ],
  },
  
  "FilesystemLogger": {
    "log_file_path": "/var/log/sinter.log",
  },

  "RemoteDecisionManager": {
    "server_url": "https://server_address:port",
    "machine_identifier": "identifier",
  },

  "LocalDecisionManager": {
    "rule_database_path": "/etc/sinter/rules.json",
  }
}

결정 관리자 플러그인은 decision_manager 값을 변경하여 선택할 수 있습니다. local 플러그인은 LocalDecisionManager 구성 섹션을 활성화하여 Sinter가 지정된 경로에 있는 로컬 규칙 데이터베이스를 사용하도록 합니다. sync-server 플러그인을 대신 사용하면 Santa 호환 동기화 서버를 사용할 수 있습니다. 이렇게 하면 RemoteDecisionManager 구성 섹션이 활성화되어 서버 URL과 머신 식별자를 설정할 수 있습니다.

현재 두 가지 로거 플러그인이 구현되어 있습니다:

  1. filesystem: FilesystemLogger.log_file_path에 지정된 경로를 사용하여 파일에 메시지를 기록합니다.
  2. unifiedlogging: com.trailofbits.sinter를 하위 시스템으로 사용하여 통합 로깅을 통해 로그를 내보냅니다.

Allowed application directories

허용된 폴더에서 시작되지 않은 애플리케이션을 기록하고 선택적으로 차단하도록 Sinter를 구성할 수 있습니다.

  • allow_misplaced_applications: true로 설정하면 잘못 배치된 애플리케이션은 경고만 생성합니다. false로 설정하면 유효한 경로에서 시작되지 않은 모든 실행이 차단됩니다.
  • allowed_application_directories: 비어 있지 않으면 애플리케이션이 잘못된 폴더에 배치되었는지 확인하는 데 사용됩니다.

Enabling UI notifications

  1. 알림 서버 설치(PKG 설치 프로그램이 자동으로 수행합니다): sudo /Applications/Sinter.app/Contents/MacOS/Sinter --install-notification-server
  2. 에이전트 시작: /Applications/Sinter.app/Contents/MacOS/Sinter --start-notification-server

Configuring Sinter in MONITOR mode

Sinter에서는 모든 것이 규칙 기반이므로 모드가 구현되어 있지 않습니다. 다음 설정을 조정하여 모니터링 기능을 구현할 수 있습니다:

  • allow_unsigned_programs: 서명되지 않은 애플리케이션 허용
  • allow_invalid_programs: 서명 검사에 실패한 애플리케이션 허용
  • allow_unknown_programs: 활성 규칙 데이터베이스에 포함되지 않은 애플리케이션을 자동으로 허용
  • allow_expired_auth_requests: EndpointSecurity API는 Sinter가 지정되지 않은 시간 프레임(일반적으로 1분 미만) 내에 인증 요청에 응답하도록 요구합니다. Xcode와 같은 대규모 애플리케이션은 확인하는 데 상당한 시간이 걸립니다. 이러한 실행은 기본적으로 차단되며, 사용자는 애플리케이션이 확인된 후 다시 시도해야 합니다. 이 구성을 true로 설정하면 이러한 요청이 항상 허용되도록 동작이 변경됩니다.

Rule format

규칙 데이터베이스는 JSON 형식으로 작성됩니다. 다음은 cmake.org의 CMake 애플리케이션 번들을 허용하는 예제 데이터베이스입니다:

root@kitploit:~
{
  "rules": [
    {
      "rule_type": "BINARY",
      "policy": "ALLOWLIST",
      "sha256": "BDD0AF132D89EA4810566B3E1E0D1E48BAC6CF18D0C787054BB62A4938683039",
      "custom_msg": "CMake"
    }
  ]
}

Sinter는 현재 ALLOWLIST 또는 DENYLIST 정책을 사용하는 BINARY 규칙만 지원합니다. 코드 디렉토리 해시 값은 codesign 도구 출력에서 가져올 수 있습니다(예: codesign -dvvv /Applications/CMake.app). CLI 도구는 전체 SHA256 해시를 획득할 수 있지만, 커널/EndpointSecurity API는 처음 20바이트로 제한됩니다.

Building from Source

Sinter를 빌드하려면 Apple이 조직에 부여해야 하는 특정 코드 서명 인증서와 자격이 필요합니다. 그러나 SIP가 비활성화된 테스트 시스템에서 소스에서 빌드하여 로컬로 실행할 수 있습니다. 자세한 지침은 Sinter 위키를 참조하세요.

License

Sinter는 AGPLv3 라이선스에 따라 라이선스가 부여되고 배포됩니다. 약관에 대한 예외가 필요한 경우 문의해 주세요.

도구 다운로드