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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
coalmine — Cloud Canary 객체 오케스트레이션 관리 플랫폼 | Kitploit
도구/GitHubGitHub/johnearle/coalmine
Defensive ToolsCloud SecurityIdentity & Access Management (IAM)Intrusion DetectionIncident Response
GitHubjohnearle/coalmine

coalmine

Cloud Canary 객체 오케스트레이션 관리 플랫폼

저장소 보기
826개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Coalmine — 카나리 토큰 관리

클라우드 카나리 토큰 관리 — AWS와 GCP에 걸쳐 가짜 자격증명을 배포, 모니터링, 교체하여 무단 접근을 탐지합니다.

License

[!WARNING] 알파 버전 — Coalmine은 초기 개발 단계입니다. 기본 기능이 현재 우선순위이며, 애플리케이션은 프로덕션 사용을 위해 완전한 보안 테스트를 거친 것으로 간주되어서는 안 됩니다.

상태

기능개발 중 (불안정)할 일
AWS IAM User CanariesGCP Service Account CanariesAzure 지원
AWS S3 Bucket CanariesGCP Bucket CanariesSIEM 통합
CloudTrail MonitoringGCP Audit Log Monitoring
PostgreSQL State Backend자동 교체
REST API (API Key + Session Auth)
WebUI Dashboard
이메일 및 웹훅 알림
자격 증명 및 계정 관리
RBAC (Casbin)

개요

Coalmine은 자동으로 "카나리 토큰"을 배포하고 모니터링합니다. 이는 공격자가 접근하면 알림을 트리거하는 가짜 자격 증명 및 리소스입니다.

지원 제공자:

  • AWS: IAM Users, S3 Buckets
  • GCP: Service Accounts, Cloud Storage Buckets

기능

  • 멀티 클라우드 지원 — 단일 인터페이스로 AWS 및 GCP 지원
  • 자격 증명 및 계정 모델 — CLI, API 또는 YAML 동기화를 통해 클라우드 자격 증명 및 계정 관리
  • 자동 교체 — 구성 가능한 간격으로 자격 증명 교체
  • 중앙 집중식 모니터링 — CloudTrail 및 GCP Audit Log 통합
  • 유연한 알림 — 이메일, 웹훅 및 Syslog 알림
  • 코드형 인프라 — OpenTofu로 관리되는 리소스
  • REST API — API 키 또는 세션 인증을 통한 프로그래매틱 액세스
  • WebUI — /ui에서 브라우저 기반 대시보드
  • RBAC — Casbin 기반 역할 기반 접근 제어
  • CLI — 그룹화된 하위 명령 구조 (coalmine <resource> <action>)

빠른 시작

전제 조건

  • Docker & Docker Compose
  • AWS 자격 증명 (AWS 카나리용)
  • GCP 자격 증명 (GCP 카나리용)

1. 클론 및 구성

root@kitploit:~
git clone https://github.com/yourorg/coalmine.git
cd coalmine
cp .env.example .env
# Edit .env with your database and cloud credentials

2. 서비스 시작

root@kitploit:~
docker compose up -d

이 명령은 API, Celery 워커, Redis 및 PostgreSQL을 시작합니다. WebUI는 http://localhost:8000/ui에서 이용 가능합니다.

3. 자격 증명 및 계정 등록

root@kitploit:~
# AWS 자격 증명 추가
docker compose exec app coalmine credentials add my-aws-cred AWS \
  --secrets '{"access_key_id": "...", "secret_access_key": "...", "region": "us-east-1"}'

# 해당 자격 증명 아래에 계정 추가
docker compose exec app coalmine accounts add prod-east --credential my-aws-cred \
  --account-id 111111111111

# 또는 YAML 구성에서 자격 증명 및 계정 동기화
docker compose exec app coalmine credentials sync --dry-run

4. 로깅 리소스 생성

root@kitploit:~
# CloudTrail 로깅 대상 생성
docker compose exec app coalmine logs create my-trail AWS_CLOUDTRAIL \
  --account <ACCOUNT_ID>

# 로깅 리소스 나열
docker compose exec app coalmine logs list

5. 카나리 배포

root@kitploit:~
# AWS IAM 사용자 카나리 생성
docker compose exec app coalmine canary create my-canary AWS_IAM_USER \
  --account <ACCOUNT_ID> --logging-id <LOGGING_ID>

# 카나리 목록 보기
docker compose exec app coalmine canary list

6. 탐지 확인

root@kitploit:~
# 테스트 알림 트리거
docker compose exec app coalmine canary trigger my-canary

# 모니터링 주기(~1분) 대기 후 알림 확인
docker compose exec app coalmine alerts list

아키텍처

root@kitploit:~
┌─────────────┐   ┌─────────────┐   ┌─────────────┐
│     CLI     │   │  REST API   │   │   WebUI     │
│  (coalmine) │   │  (FastAPI)  │   │  (React)    │
└──────┬──────┘   └──────┬──────┘   └──────┬──────┘
       │                 │                 │
       └────────┬────────┴────────┬────────┘
                │                 │
                │          ┌──────▼──────┐
                │          │Auth / RBAC  │
                │          │  (Casbin)   │
                │          └──────┬──────┘
                │                 │
         ┌──────▼─────────────────▼──────┐
         │         Celery Workers        │
         │  (Canary · Monitoring · Logs) │
         └──────────────┬────────────────┘
                        │
      ┌─────────────────┼─────────────────┐
      │                 │                 │
┌─────▼─────┐   ┌──────▼──────┐   ┌──────▼──────┐
│ OpenTofu  │   │  Monitors   │   │Notifications│
│ Templates │   │(CloudTrail/ │   │(Email/Hook/ │
│           │   │ Audit Logs) │   │   Syslog)   │
└─────┬─────┘   └──────┬──────┘   └─────────────┘
      │                │
┌─────▼─────┐   ┌──────▼──────┐
│ AWS / GCP │   │   Alerts    │
│(Resources)│   │    (DB)     │
└───────────┘   └─────────────┘

          ┌─────────────────┐
          │   PostgreSQL    │
          │   (Inventory)   │
          └────────┬────────┘
                   │
          ┌────────▼────────┐
          │   Celery Beat   │
          │   (Scheduler)   │
          └─────────────────┘

CLI 참조

명령은 패턴 coalmine <resource> <action> [options]을 따릅니다.

카나리 명령

자격 증명 명령

계정 명령

로깅 명령

명령어설명
logs create <name> <type>로깅 리소스 생성
logs list로깅 리소스 나열
logs scan --account <id>기존 CloudTrail 스캔

알림 명령

명령어설명
alerts list [--canary <name>]보안 알림 보기

인증 명령

명령어설명
auth key listAPI 키 나열
auth key add <name>API 키 추가
auth session list활성 세션 나열

사용자 명령

명령어설명
user list모든 사용자 나열
user roles사용 가능한 역할 나열

작업 명령

명령어설명
task list최근 비동기 작업 보기
task status <task_id>작업 결과 확인

도움말

root@kitploit:~
docker compose exec app coalmine --help
docker compose exec app coalmine canary --help

REST API

API는 http://localhost:8000에서 실행되며, API 키 헤더 또는 세션 쿠키를 통한 인증이 필요합니다.

구성 (config/api_keys.yaml)

root@kitploit:~
api_keys:
  - key: "your-api-key-here"
    name: "admin"
    permissions: ["read", "write"]
    scopes: ["all"]

예제 요청

root@kitploit:~
# List canaries
curl -H "X-API-Key: your-api-key" http://localhost:8000/api/v1/canaries

# Create a canary
curl -X POST -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"name": "api-canary", "resource_type": "AWS_IAM_USER", "account_id": "...", "logging_id": "..."}' \
  http://localhost:8000/api/v1/canaries

API 문서

대화형 API 문서는 http://localhost:8000/docs(Swagger UI)에서 이용 가능합니다.

구성

모든 구성은 config/ 디렉터리에 있습니다. 자세한 내용은 config/README.md를 참조하세요.

자격 증명 (config/credentials.yaml)

root@kitploit:~
credentials:
  my-aws-cred:
    provider: AWS
    auth_type: STATIC
    secrets:
      access_key_id: ${AWS_ACCESS_KEY_ID}
      secret_access_key: ${AWS_SECRET_ACCESS_KEY}
      region: ${AWS_DEFAULT_REGION:-us-east-1}
    accounts:
      - name: prod-east
        account_id: "111111111111"

동기화: docker compose exec app coalmine credentials sync

알림 출력 (config/alert_outputs.yaml)

root@kitploit:~
outputs:
  email_admin:
    type: "email"
    enabled: true
    smtp_host: "smtp.example.com"
    smtp_port: 587
    to_addrs: ["[email protected]"]
  
  webhook_siem:
    type: "webhook"
    enabled: true
    url: "https://siem.example.com/webhook"

리소스 유형

개발

root@kitploit:~
# 모든 테스트 실행
docker compose run --rm app pytest -v

# 단위 테스트만 실행
docker compose run --rm app pytest tests/unit/ -v

# 통합 테스트 실행
docker compose run --rm app pytest tests/integration/ -v

# 워커 로그 보기
docker compose logs -f worker

# 코드 변경 후 다시 빌드
docker compose build && docker compose up -d

보안 고려 사항

  • 자격 증명을 절대 커밋하지 마세요 — .env 파일 또는 비밀 관리자 사용
  • 관리자 자격 증명 교체 — 카나리를 관리하는 데 사용되는 클라우드 자격 증명
  • 네트워크 격리 — 보안 네트워크 세그먼트에서 Coalmine 실행
  • 최소 권한 원칙 — 카나리 자격 증명은 최소 권한을 가져야 함
  • API 키 보안 — API 키를 안전하게 저장하고 정기적으로 교체

라이선스

Apache License 2.0 — 자세한 내용은 LICENSE 파일을 참조하세요.

기여

기여 지침은 CONTRIBUTING.md를 참조하세요.

도구 다운로드
명령어설명
canary create <name> <type>새 카나리 생성
canary list모든 카나리 나열
canary delete <name_or_id>카나리 삭제
canary creds <name>카나리 자격 증명 가져오기
canary trigger <name_or_id>카나리 탐지 테스트
명령어설명
credentials list모든 자격 증명 나열
credentials add <name> <provider>자격 증명 추가
credentials update <name_or_id>자격 증명 업데이트
credentials remove <name_or_id>자격 증명 제거
credentials validate <name_or_id>자격 증명 상태 확인
credentials sync [--dry-run]YAML 구성에서 동기화
명령어설명
accounts list [--credential <name>]모든 계정 나열
accounts add <name>계정 추가
accounts update <name_or_id>계정 업데이트
accounts enable <name_or_id>계정 활성화
accounts disable <name_or_id>계정 비활성화
accounts remove <name_or_id>계정 제거
accounts validate <name_or_id>계정 상태 확인
유형제공자설명
AWS_IAM_USERAWS액세스 키가 있는 IAM 사용자
AWS_BUCKETAWS로깅이 있는 S3 버킷
GCP_SERVICE_ACCOUNTGCP키가 있는 서비스 계정
GCP_BUCKETGCPCloud Storage 버킷