본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 18. 22:35

Darkmoon: 오픈 소스 자율 침투 테스트 플랫폼 구축하기

요약

Darkmoon은 GPLv3 라이선스로 공개된 오픈 소스 자율 침투 테스트 플랫폼입니다. 단순한 취약점 스캐너를 넘어, 복잡한 인프라 환경에서 공격 경로를 결정하고 적응하는 의사 결정 과정을 자동화하는 것을 목표로 합니다.

핵심 포인트

  • GPLv3 라이선스의 투명하고 감사 가능한 오픈 소스 코어 지향
  • Active Directory, Kubernetes, 클라우드 등 복잡한 환경 대응
  • 단순 스캐닝을 넘어 공격 경로 우선순위 결정 및 적응형 워크플로 구현
  • 보안 실무자가 시스템의 동작 원리를 이해할 수 있도록 설계

Darkmoon은 GPLv3 라이선스로 출시된 오픈 소스 자율 침투 테스트 (Penetration Testing) 플랫폼입니다.

AI, 에이전트 (Agents) 또는 대시보드 (Dashboards)에 대해 이야기하기 전에, 이 프로젝트가 투명하고 감사 가능한 (Auditable) 오픈 소스 코어를 중심으로 구축되었다는 점을 이해하는 것이 중요합니다.

지난 몇 년 동안 우리는 수많은 보안 제품들을 테스트해 왔습니다.

어떤 것들은 훌륭한 스캐너 (Scanners)였습니다.

어떤 것들은 괜찮은 보고서를 생성했습니다.

어떤 것들은 AI 지원 워크플로 (AI-assisted workflows)를 실험했습니다.

하지만 우리가 실제 전문적인 업무 수행 중에 마주하는 환경에서 그것들을 사용하려고 했을 때, 한계점들이 빠르게 드러났습니다.

실제 평가 (Assessment)는 단일 웹 애플리케이션으로 구성되는 경우가 드뭅니다.

대개 대상은 다음과 같은 요소들의 조합입니다:

  • Active Directory
  • Kubernetes
  • 클라우드 인프라 (Cloud infrastructure)
  • API
  • CMS 플랫폼
  • 내부 네트워크 (Internal networks)
  • 레거시 시스템 (Legacy systems)

그곳이 바로 우리 침투 테스터 (Pentesters)들이 대부분의 시간을 보내는 곳입니다.

그리고 그것이 결국 우리가 Darkmoon을 구축하게 된 계기가 되었습니다.

우리가 Darkmoon을 구축한 이유

Darkmoon은 AI 프로젝트로 시작되지 않았습니다.

그것은 실질적인 질문과 함께 시작되었습니다:

모든 것을 취약점 스캐너 (Vulnerability scanner)로 축소하지 않으면서, 침투 테스트의 일부를 자동화할 수 있을까?

대부분의 보안 도구들은 이미 정보를 수집하는 데 매우 능숙합니다.

어려운 부분은 다음에 무엇을 할지 결정하는 것입니다.

숙련된 침투 테스터는 새로운 정보에 기반하여 끊임없이 적응합니다.

그들은 방향을 바꿉니다.

공격 경로 (Attack paths)의 우선순위를 정합니다.

막다른 길은 포기합니다.

중요한 기술에 집중합니다.

우리는 인간이 평가를 통제하는 상태를 유지하면서, 그러한 의사 결정 과정의 일부를 재현할 수 있을지 탐구하고 싶었습니다.

오픈 소스 우선

한 가지 결정은 매우 초기에 내려졌습니다.

Darkmoon은 반드시 오픈 소스여야 했습니다.

보안 팀들은 이미 다루어야 할 블랙박스 (Black boxes)가 충분히 많기 때문입니다.

자율 시스템 (Autonomous system)이 보안 평가 (Security assessments)에 참여하려면, 실무자들은 시스템이 무엇을 왜 하고 있는지 이해할 수 있어야 합니다.

그것이 Darkmoon이 GPLv3 라이선스로 공개된 이유입니다.

소스 코드가 공개되어 있습니다.

방법론 (Methodologies)이 공개되어 있습니다.

오케스트레이션 로직 (Orchestration logic)이 공개되어 있습니다.

배포 프로세스 (Deployment process)가 공개되어 있습니다.

만약 평가가 수행되는 방식에 동의하지 않는다면, 방법론을 검토하고 수정할 수 있습니다.

우리에게는 투명성 (Transparency)이 그 어떤 AI 기능보다 중요합니다.

현재 이 프로젝트는 다음을 포함합니다:

  • 18개의 특화된 방법론 에이전트 (Methodology agents)
  • 80개 이상의 통합 공격 보안 도구 (Offensive security tools)
  • Active Directory 워크플로우 (Workflows)
  • Kubernetes 워크플로우 (Workflows)
  • 클라우드 인프라 평가 (Cloud infrastructure assessments)
  • API 보안 테스트 (API security testing)
  • CMS 보안 테스트 (CMS security testing)
  • 인프라 매핑 (Infrastructure mapping)
  • 증거 수집 (Evidence collection)
  • 자동화된 보고 (Automated reporting)

GitHub:
https://github.com/ASCIT31/Dark-Moon

Documentation:
https://docs.dark-moon.org/

숨겨진 프롬프트 대신 방법론을 사용

우리가 가장 자주 받는 질문 중 하나는 다음과 같습니다:

에이전트들이 어떻게 작동하나요?

답변은 의도적으로 매우 단순합니다.

그것들은 마크다운 (Markdown) 파일입니다.

각 방법론은 Darkmoon이 특정 기술 스택 (Technology stack)에 어떻게 접근하는지를 설명합니다.

검토 가능하며 (Reviewable),

버전 관리 (Version-controlled)가 되고,

사용자 정의 (Customizable)가 가능하며,

가시적 (Visible)입니다.

많은 AI 기반 보안 제품들과 달리, 추론 과정 (Reasoning process)이 독점적인 프롬프트 (Proprietary prompts) 뒤에 숨겨져 있지 않습니다.

WordPress 평가는 Active Directory 작업과 동일한 방법론을 따르지 않습니다.

Kubernetes 클러스터는 GraphQL API와 동일한 워크플로우를 트리거하지 않습니다.

방법론은 평가를 실행하기 전에 검토할 수 있습니다.

우리에게 이것은 매우 중요한 요구 사항입니다.

Agent Selection Matrix

타겟 이해하기 (Understanding the Target)

Darkmoon은 평가 중인 환경에 대한 내부 모델을 지속적으로 구축합니다.

도구들을 맹목적으로 실행하는 대신, 타겟으로부터 기술적 신호 (technical signals)를 수집합니다:

  • 서비스 (Services)
  • 기술 (Technologies)
  • 프레임워크 (Frameworks)
  • CMS 플랫폼 (CMS platforms)
  • API (APIs)
  • 인프라 구성 요소 (Infrastructure components)

그러고 나서 이러한 신호들은 어떤 방법론 (methodologies)을 활성화해야 할지 결정하는 데 사용됩니다.

서로 다른 기술은 서로 다른 워크플로우 (workflows)를 트리거합니다.

WordPress 배포 환경은 다음과 같은 환경과 동일한 접근 방식을 필요로 하지 않습니다:

  • Active Directory
  • Kubernetes
  • GraphQL
  • ASP.NET
  • Spring Boot
  • 클라우드 인프라 (Cloud infrastructure)

Environment Enumeration

목표는 모든 타겟에 대해 모든 도구를 실행하는 것이 아닙니다.

목표는 실제로 발견된 내용에 기반하여 가장 관련성이 높은 방법론을 선택하는 것입니다.

기존 보안 도구를 중심으로 구축하기 (Building Around Existing Security Tools)

우리는 20년 동안 축적된 공격 보안 (offensive security) 도구들을 재발명하려고 시도하지 않았습니다.

Darkmoon은 다음과 같은 기존 프로젝트들에 크게 의존합니다:

  • Nuclei
  • SQLMap
  • NetExec
  • BloodHound
  • Impacket
  • FFUF
  • Hydra
  • Kubescape
  • Kubeletctl
  • WPScan
  • CMSeeK
  • Naabu
  • Masscan

그리고 그 외에도 많이 있습니다.

흥미로운 부분은 도구 그 자체가 아닙니다.

흥미로운 부분은 다음과 같은 사항을 결정하는 것입니다:

  • 어떤 도구를 실행해야 하는가
  • 언제 실행해야 하는가
  • 왜 실행해야 하는가
  • 결과가 다음 단계에 어떻게 영향을 미쳐야 하는가

그것이 바로 우리 작업의 대부분이 투입된 지점입니다.

커뮤니티 에디션 및 프로페셔널 에디션 (Community Edition and Professional Edition)

Darkmoon은 오픈 소스 GPLv3 코어를 중심으로 구축되었습니다.

커뮤니티 에디션 (Community Edition)은 다음을 포함합니다:

  • 자율 엔진 (Autonomous engine)
  • 방법론 (Methodologies)
  • 오케스트레이션 로직 (Orchestration logic)
  • Docker 배포 (Docker deployment)
  • 평가 워크플로우 (Assessment workflows)
  • 보고 기능 (Reporting capabilities)

더 큰 규모의 프로젝트를 수행하는 조직을 위해, 저희는 Professional Edition (프로페셔널 에디션) 또한 유지 관리하고 있습니다.

Professional Edition은 프로젝트의 철학을 바꾸기보다는 운영 워크플로우 (Operational workflows)에 집중합니다.

이는 다음과 같은 기능으로 오픈 소스 기반을 확장합니다:

  • 캠페인 관리 (Campaign management)
  • 인프라 시각화 (Infrastructure visualization)
  • 중앙 집중식 대시보드 (Centralized dashboards)
  • 강화된 보고 (Enhanced reporting)
  • 운영 모니터링 (Operational monitoring)
  • 팀 중심 워크플로우 (Team-oriented workflows)
  • 취약점 분석 (Vulnerability analytics)
  • 과거 캠페인 추적 (Historical campaign tracking)

아래 스크린샷은 Professional Edition에서 가져온 것입니다.

목표는 오픈 소스 에디션을 대체하는 것이 아닙니다.

목표는 Darkmoon을 대규모로 운영하는 팀들에게 운영 역량을 제공하는 것입니다.

증거가 중요합니다 (Evidence Matters)

자동화된 보안 제품을 사용할 때 느끼는 가장 큰 좌절감 중 하나는 문맥(Context)의 부재입니다.

증거가 없는 탐지 결과(Finding)는 신뢰하기 어렵습니다.

Darkmoon은 다음 사항들을 보존하려고 시도합니다:

  • 실행된 명령 (Commands executed)
  • 수집된 출력값 (Outputs collected)
  • 뒷받침하는 증거 (Supporting evidence)
  • 공격 경로 (Attack paths)
  • 심각도 정보 (Severity information)

목표는 단순히 탐지 결과를 생성하는 것이 아닙니다.

목표는 이해할 수 있고, 검증 가능하며, 조치를 취할 수 있는 탐지 결과를 생성하는 것입니다.

Darkmoon Logs

배포 (Deployment)

설치는 의도적으로 단순하게 설계되었습니다.

git clone https://github.com/ASCIT31/Dark-Moon.git
cd Dark-Moon

...

설치가 완료되면:

./darkmoon.sh

또는 타겟을 직접 지정하여 실행할 수 있습니다:

./darkmoon.sh "TARGET: https://target.example"

Docker가 환경과 의존성(Dependencies)을 처리합니다.

Assessment Startup

원하는 모델을 직접 선택하세요 (Bring Your Own Model)

Darkmoon은 사용자를 단일 제공업체에 종속시키지 않습니다.

지원되는 옵션은 다음과 같습니다:

  • OpenAI
  • Anthropic
  • OpenRouter
  • Ollama
  • llama.cpp
  • OpenAI 호환 엔드포인트 (OpenAI-compatible endpoints)

조직은 다음 중 하나를 선택할 수 있습니다:

  • 최대 성능 (Maximum performance)
  • 최대 개인정보 보호 (Maximum privacy)
  • 완전 로컬 배포 (Fully local deployments)

Provider Configuration

아직 개선이 필요한 부분 (What Still Needs Work)

Darkmoon은 아직 완성된 단계와는 거리가 멉니다.

현재:

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0