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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
brawl-public-game-001 — BRAWL 자동화 적대자 모의 훈련 데이터 | Kitploit
도구/GitHubGitHub/mitre/brawl-public-game-001
Penetration Testing FrameworksDigital ForensicsCloud SecurityThreat IntelligenceLearning & EducationRed TeamingIncident ResponseLog AnalysisAdversarial AttackLabs & Practice
GitHubmitre/brawl-public-game-001

brawl-public-game-001

215398년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

BRAWL 자동화 적대자 모의 훈련 데이터

저장소 보기

BRAWL

사이버 보안 연구자들이 탐지 및 대응 능력을 개발할 때 직면하는 어려운 문제 중 하나는 가설과 능력을 테스트할 현실적인 환경을 찾는 것입니다.

가장 저렴한 방법은 소규모 연구실 네트워크에서 능력을 테스트하는 것입니다. 하지만 이 환경은 실제 기업 네트워크의 규모와 탐지를 훨씬 더 어렵게 만드는 실제 환경의 노이즈가 부족합니다. 여러 가지 면에서, 최적의 환경은 통제된 현실적인 공격자와 사용자, 시스템 관리자, 타사 소프트웨어/장치로 인한 실제 노이즈가 있는 여러 기업 규모의 네트워크에서 테스트하는 것입니다. 이 환경에서 테스트할 때의 문제는 비용이 많이 들고 일부 시나리오에서는 위험이 높다는 점입니다.

BRAWL은 클라우드 환경 내에서 자동으로 기업 네트워크를 생성하는 시스템을 만들어 절충안을 모색합니다. OpenStack이 현재 유일하게 지원되는 환경이지만, 향후 다른 클라우드 환경도 쉽게 지원할 수 있도록 설계되고 있습니다. BRAWL은 또한 LogStash와 Kafka를 사용한 데이터 수집 및 처리 파이프라인이 포함된 분석 네트워크를 구축합니다. 분석 네트워크의 일부로 Elasticsearch와 Kibana를 사용한 이벤트 저장 및 검색 시스템을 만듭니다. BRAWL은 Windows 이미지를 사용하여 기업 네트워크 "Game Board"를 가동합니다. 이 이미지에는 Microsoft Sysmon 및 기타 센서가 이미 설치 및 구성되어 있어 데이터 수집 프레임워크로 로그를 전달합니다.

BRAWL은 또한 봇(bot) 개념을 가지고 있으며, 이는 Red, Blue 또는 Gray일 수 있습니다. Red 봇은 공격적이고, Blue 봇은 방어적이며, Gray 봇은 탐지를 더 어렵게 만들기 위해 노이즈를 제공하기 위해 합법적인 사용자 행동을 에뮬레이션합니다. 사용자가 연구 가설을 테스트하려면 BRAWL 봇을 구현합니다. BRAWL 봇은 BRAWL 컨트롤러에 등록하고, 컨트롤러는 Game Board에서 BRAWL 봇 간의 게임을 조정합니다.

데이터 릴리스

참고: 파일 크기와 GitHub 할당량 문제로 인해 모든 파일을 일반 텍스트로 git 저장소에 남겨 두는 대신 zip 파일로 배치합니다. 모든 데이터는 파일에 있습니다.

이 릴리스는 BRAWL 프로토타입의 일부 데이터로 구성됩니다. 아래에 설명된 대로 소규모 기업 네트워크를 만들었습니다. 그런 다음 MITRE CALDERA 연구 프로젝트를 Red 봇으로 사용하여 단일 게임을 실행했습니다.

CALDERA는 Adversarial Tactics, Techniques, and Common Knowledge (ATT&CK) 모델의 정보를 기반으로 적 에뮬레이션 활동을 자동화하는 관련 MITRE 연구 프로젝트입니다. 이는 ATT&CK 전술 및 기술 세트를 구현하고 계획 시스템(https://dl.acm.org/citation.cfm?id=2991111)을 사용하여 해당 기술의 실행을 자동화하고 기업 네트워크 내에서 사후 침해 적 행동을 생성합니다.

이 데이터는 Creative Commons BY License에 따라 릴리스됩니다.

네트워크 및 센서 설명

우리의 소규모 기업 네트워크는 도메인 컨트롤러(dc.brawlco.com)와 16개의 워크스테이션으로 구성된 플랫 네트워크입니다. 각 PC는 PC 이름에 기본 사용자의 이름이 있습니다(예: 사용자 beane은 일반적으로 beane-pc에 로그인함). 해당 사용자는 컴퓨터에 대한 로컬 관리자 권한을 가지고 있습니다.

모든 PC는 Windows 8.1을 실행합니다. 도메인 컨트롤러는 Windows Server 2012 R2를 실행합니다.

Windows 8 PC에서 다음 레지스트리 명령을 사용하여 WDigest가 LSASS 메모리에 일반 텍스트 비밀번호를 유지하도록 변경했습니다: reg ADD HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\ /v UseLogonCredential /t REG_DWORD /d 1 /F

시나리오 설명

이 실습에서 CALDERA는 유일한 BRAWL 봇이었습니다. 개념적으로 BRAWL은 다양한 공격자 행동과 탐지를 테스트하는 데 사용될 수 있지만, MITRE의 많은 연구 노력은 '침해 가정(assume breach)' 철학을 따릅니다. 따라서 우리는 실습 시작 시 CALDERA에게 네트워크 상의 한 상자에 로컬 관리자로서의 시작점을 제공합니다.

또한 Gray 봇이 다른 호스트에 로그온을 수행하지 않으면 BRAWL Game Board는 Red 봇이 도난 및 사용할 수 있는 자격 증명 측면에서 무균 상태입니다. 측면 이동을 활성화하기 위해 BRAWL 컨트롤러는 psexec를 사용하여 네트워크의 다른 사용자 자격 증명으로 호스트에 로그온 이벤트를 생성합니다.

CALDERA는 실습 중에 다음 ATT&CK 기술을 수행했습니다:

  • 계정 발견
  • 자격 증명 덤핑
  • 로컬 네트워크 구성 발견
  • 권한 그룹 발견
  • PowerShell
  • 레지스트리 실행 키 / 시작 폴더
  • 원격 파일 복사
  • 원격 시스템 발견
  • Windows 관리 공유
  • Windows Management Instrumentation

데이터

이 저장소에는 다섯 가지 유형의 데이터가 있습니다. 각각은 data/ 폴더에 별도의 파일로 포함되어 있습니다.

BRAWL 공유 형식

Red 봇과 Blue 봇은 BRAWL 공유 형식(BSF)으로 활동 또는 탐지에 대한 정보를 기록하는 것이 권장됩니다. 이는 Blue 봇의 탐지/작업과 Red 봇의 작업을 더 쉽게 비교할 수 있도록 하기 위함입니다.

형식은 현재 개발 중이며 향후 데이터 세트에서 변경될 수 있습니다.

BSF의 필드는 아래 데이터 소스 세부 정보 섹션에 설명되어 있습니다.

시간에 관한 참고 사항

BRAWL의 다른 이벤트 소스는 시간을 다르게 처리합니다. 시간은 이벤트가 로깅 수집 프레임워크에 도달한 시간, 호스트/엔드포인트에서 이벤트가 생성된 시간, 또는 네트워크의 봇이 기록한 시간입니다. 일반적으로 이러한 시간은 서로 수 밀리초 이내여야 합니다. 가능한 경우 로깅 수집 프레임워크는 수집 노드에 도달하는 시간 대신 이벤트에 저장된 이벤트 시간을 사용합니다. 아래 표는 각 데이터 유형에 사용된 방법을 자세히 설명합니다.

데이터 소스 세부 정보

game_metadata

sysmon

Sysmon v3.11을 사용하고 있습니다. sysmon_config.txt에는 구성을 자세히 설명하는 sysmon -c 명령의 출력이 포함되어 있습니다.

Sysmon은 다양한 종류의 이벤트를 생성하며, 이는 서로 다른 CAR 객체/작업 쌍에 매핑됩니다. 각 유형의 필드는 CAR 웹사이트에서 더 자세히 설명됩니다: https://car.mitre.org/wiki/Data_Model

구성에서 Sysmon에 의해 생성되는 객체/작업 쌍은 다음과 같습니다:

  • driver/load
  • file/attr_modify
  • flow/start
  • module/load
  • process/create
  • process/terminate
  • thread/create
  • threat/remote_create

CAR 데이터 모델을 사용하여 위의 각 객체/작업 쌍에 대한 data_model.fields.*에 포함된 필드 이름과 의미를 확인하세요.

win_event

computer_properties

이 데이터는 MITRE의 PowerShell Utilities for Security Situational Awareness에서 unified_json.ps1 모듈을 사용하여 주기적으로 수집되었습니다. userinfo 필드는 Mimikatz와 같은 자격 증명 덤퍼가 시스템에서 실행된 경우 어떤 자격 증명이 손상되었을 수 있는지 확인하는 데 유용할 수 있습니다.

bsf

bsf 배열 필드 내부의 객체는 operation, step 또는 event 유형입니다. 모든 객체에는 객체 유형을 결정하는 데 사용할 수 있는 nodetype 필드가 있습니다.

event BSF 객체

이벤트 객체에 대한 객체/작업/필드 정보

CAR 데이터 모델에서 관련 객체를 찾아 필수 및 선택적 필드의 의미에 대해 자세히 알아볼 수 있습니다.

step BSF 객체

Step 객체는 하나 이상의 이벤트를 더 높은 수준의 활동 그룹으로 연결합니다. 또한 step 객체는 BSF 생성자가 활동에 ATT&CK 레이블을 지정할 수 있는 위치를 제공합니다.

operation BSF 객체

Operation 객체는 여러 step 객체를 함께 연결합니다. 그러나 이 데이터 세트에는 Operation 객체가 없습니다.

일반 BSF 참고 사항

이벤트 필드에 대한 설명 및 참고 사항(특히 "다음 중 하나 이상"):1. 시간 필드.

  1. 순간적 시간. 파일 삭제와 같은 활동은 본질적으로 순간적이며, time 필드를 통해 제공할 수 있는 단일 발생 시간을 갖습니다. 그러나 레드와 블루 모두 이 정확한 타임스탬프를 알지 못할 수 있습니다. 예를 들어, 레드 봇은 특정 시간 창 내에서 어떤 작업을 수행하기 위해 프로세스를 생성할 수 있지만, 작업이 발생한 정확한 시간은 알 수 없습니다. 블루 봇은 탐지 지연이 수반될 수 있는 센서를 사용할 수 있습니다. 따라서 BSF는 또한 happened_after와 happened_before라는 두 시간 필드를 각각 시간상의 왼쪽 및 오른쪽 괄호로 제공하여 실제 이벤트에 대한 불확실성 구간의 경계를 정의합니다. 이 세 필드(즉, time, happened_after, happened_before) 중 적어도 하나는 각 event 객체와 함께 보고되어야 합니다. 다른 필드는 선택 사항이지만, 알려진 대로 보고되어야 합니다. 특히, 봇은 정확한 시간을 모르더라도 최선의 추정치인 "time" 값을 보고하는 것이 권장됩니다.
  2. 지속 시간. 플로우와 같은 활동은 본질적으로 지속적이며, 시간 범위에 걸쳐 있습니다. BSF는 일반적으로 지속적 활동의 구간 종점을 순간적 시간으로 기록하여 처리합니다. 따라서 플로우 시작 이벤트는 {time, happened_after, happened_before} 중 하나를 필요로 하며, 플로우 종료 이벤트도 마찬가지입니다. 그러나 일부 블루 센서는 진행 중인 지속적 활동을 탐지할 수 있습니다(예: 모든 프로세스의 상태를 주기적으로 스캔하고 하나가 악성임을 판단하는 스캐너). 플로우의 경우, 중간 과정 플로우 탐지는 "flow, message, time, ... (other fields)"로 보고될 수 있습니다. 프로세스의 경우, 중간 과정 플로우 탐지는 "process, scanned, time, ... (other fields)"로 보고될 수 있습니다.
  3. 프로세스 식별. 이상적으로는 pid가 프로세스를 식별하는 데 사용되지만, 특히 레드 봇에게 pid가 항상 알려진 것은 아닙니다. 대안으로, 프로세스를 생성한 command_line 또는 실행된 exe / image_path를 제공할 수 있습니다.
  4. 플로우 포트. 플로우의 소스 및 대상 포트는 호스트 이름 또는 IP 주소 중 하나로 설명될 수 있습니다.
  5. 이 데이터 세트에서 참여하는 유일한 봇은 CALDERA이므로, 존재하는 유일한 BSF 레코드는 CALDERA로부터의 것입니다.

부록

이 게임을 위한 BRAWL 네트워크의 호스트:

  • beane-pc.brawlco.com
  • colgan-pc.brawlco.com
  • dc.brawlco.com
  • escue-pc.brawlco.com
  • fulco-pc.brawlco.com
  • harley-pc.brawlco.com
  • kressierer-pc.brawlco.com
  • mims-pc.brawlco.com
  • minahan-pc.brawlco.com
  • ostermeyer-pc.brawlco.com
  • peele-pc.brawlco.com
  • platten-pc.brawlco.com
  • santilli-pc.brawlco.com
  • sespinosa-pc.brawlco.com
  • sounder-pc.brawlco.com
  • teston-pc.brawlco.com
  • zissler-pc.brawlco.com
도구 다운로드
데이터 유형
설명
game_metadataBRAWL 시나리오를 설명하는 데이터
sysmon각 워크스테이션에서 실행 중인 Sysmon에서 수집된 데이터
win_eventWindows 이벤트 로그
computer_properties네트워크 내 컴퓨터에 대한 일부 정보를 제공하는 사용자 정의 스크립트에서 수집된 데이터
bsfBRAWL 공유 형식(BSF)의 Red 봇 작업
데이터 소스시간 참고 사항
computer_propertiestime 필드에서 가져옴
game_metadata수집 프레임워크에 도달한 시간
sysmonutc_time 필드에서 가져옴
win_eventWindows 이벤트 시간에서 가져옴
bsf@timestamp 필드는 수집 프레임워크에 도달한 시간입니다. 그러나 시간 관련 BSF 필드(예: happened_after,happened_before 등)는 CALDERA의 명령 및 제어 서버 시간을 기준으로 이벤트가 시작되거나 종료된 시간입니다.
필드 이름설명
@timestamp이벤트와 관련된 시간. 위의 시간 참고 사항을 참조하세요.
@uuid고유 이벤트 ID
game_id이 실습의 고유 게임 ID.
type이벤트 유형. 이러한 레코드의 경우 항상 game_metadata
hosts실습에 참여했으며 Red 봇이 '경계 내'에 있는 호스트 목록
randomization_seedBRAWL 봇 참가자가 BRAWL 실행 전반에 걸쳐 동일한 '무작위' 행동을 구현하는 데 사용할 수 있는 시드
starting_hostRed 봇이 시작하는 호스트
필드 이름설명
@timestamp이벤트와 관련된 시간. 위의 시간 참고 사항을 참조하세요.
@uuid고유 이벤트 ID
type이벤트 유형. 이러한 레코드의 경우 항상 sysmon
game_id이 실습의 고유 게임 ID.
data_model.object작업이 수행되는 CAR 객체.
data_model.action객체에 대해 수행되는 CAR 작업. 이 필드는 배열입니다. 일부 이벤트는 CAR 데이터 모델에서 두 개 이상의 작업에 해당할 수 있기 때문입니다. 원격 스레드 생성 이벤트가 그 예입니다.
data_model.fields.*주어진 객체/작업 쌍에 관련된 필드.
game_id이 실습의 고유 게임 ID.
host이벤트가 기록된 호스트 이름.
필드 이름설명
@timestamp이벤트와 관련된 시간. 계산 방법에 대한 자세한 내용은 아래 각 이벤트를 참조하세요.
@uuid고유 이벤트 ID
type이벤트 유형. 이러한 레코드의 경우 항상 win_event
game_id이 실습의 고유 게임 ID.
host이벤트를 기록한 호스트
raw원시 XML 형식의 Windows 이벤트 로그 항목
data_model.fields.log_nameWindows 로그 이름(Application, System 또는 Security)
data_model.fields.log_type주어진 log_name에 대한 로그 유형
필드 이름설명
@timestamp이벤트와 관련된 시간. 위의 시간 참고 사항을 참조하세요.
@uuid고유 이벤트 ID
type이벤트 유형. 이러한 레코드의 경우 항상 computer_properties
game_id이 실습의 고유 게임 ID.
host스크립트가 실행된 컴퓨터 이름
netinfonetinfo 객체의 컬렉션
netinfo.DNSServers이 호스트에 대해 구성된 DNS 확인자의 컬렉션
netinfo.Gateway이 인터페이스의 게이트웨이
netinfo.IPAddress이 인터페이스의 IP 주소
netinfo.IsDHCPEnabledDHCP가 활성화되었습니까?
netinfo.MACAddress이 인터페이스의 MAC 주소
netinfo.SubnetMask각 IP 주소의 서브넷 마스크
pcinfoPC에 대한 정보를 설명하는 객체
pcinfo.AssetTag액세스 가능한 경우 자산 태그
pcinfo.CPUCPU에 대한 정보
pcinfo.ChassisTypeBRAWL에서 사용되지 않음. "Unknown"
pcinfo.Disks연결된 디스크에 대한 정보
pcinfo.DomainName시스템이 속한 도메인
pcinfo.LastBootUpTime시스템이 부팅된 시간
pcinfo.Memory시스템의 메모리에 대한 정보
pcinfo.OS실행 중인 OS에 대한 정보
pcinfo.SerialNumber하드웨어 일련 번호
time스크립트가 실행된 시간
userinfo마지막 부팅 이후 시스템에 로그온한 사용자를 설명하는 userinfo 객체를 포함하는 배열
userinfo.AuthenticationPackage인증에 사용된 인증 패키지
userinfo.Domain계정이 속한 도메인(또는 로컬 PC)
userinfo.LogonId로그온 ID
userinfo.LogonTime로그온 시간
userinfo.LogonTypeWindows 로그온 유형 상수
userinfo.LogonTypeNameLogonType에 대한 설명
userinfo.UserName로그온하는 주체의 사용자 이름
필드 이름설명
@timestamp이벤트와 관련된 시간. 위의 시간 참고 사항을 참조하세요.
@uuid고유 이벤트 ID
type이벤트 유형. 이러한 레코드의 경우 항상 bsf_events
game_id이 실습의 고유 게임 ID.
bsf봇 활동을 설명하는 BSF 이벤트의 배열. 이 배열의 필드는 아래에서 더 자세히 설명됩니다.
bsf_versionbsf 이벤트 배열에 사용된 BSF 스키마 버전
producer_id이 BSF 데이터를 생성한 봇.
필드설명
id각 이벤트의 고유 식별자.
nodetype이 노드의 유형. {"operation", "step", "event"} 중 하나.
host이 이벤트가 실행/탐지된 호스트 이름 또는 IP.
time참고: 다음 세 가지 시간 필드(즉, "time", "happened_after" 또는 "happened_before") 중 하나 이상을 보고해야 합니다. "time"이 특히 바람직하며, 모두 권장됩니다. 아래 일반 참고 사항의 참고 1을 참조하세요.

시간 형식에 대한 참고: 모든 시간 정보는 ISO 8601 형식이어야 합니다. 보다 구체적으로: 'yyyy-mm-ddThh:nn:ss.llll00'. 여기서 y는 연도, m은 월, d는 일, h는 시, n은 분, s는 초, l은 밀리초(뒤에 두 개의 0이 옴)입니다. 예: 2017-02-22T18:38:14.060000

선택 사항: 이 이벤트가 발생한 시간의 추정치.
happened_after선택 사항: "time"의 불확실성에 대한 하한("시간적 왼쪽 괄호").
happened_before선택 사항: "time"의 불확실성에 대한 상한("시간적 오른쪽 괄호").
confidence선택 사항: Blue 봇이 이 이벤트의 공격 연관성에 대한 신뢰도(0.0에서 1.0 사이의 실수)를 전달할 수 있도록 합니다.
object작업이 수행된 객체. 허용 가능한 값은 아래 표를 참조하세요. CAR 데이터 모델을 기반으로 합니다.
action주어진 객체에 대한 작업. CAR 데이터 모델을 기반으로 합니다.
specific_field_1 .. N1-N개의 설명 속성(아래 참조). CAR 데이터 모델을 기반으로 합니다.
객체작업필수 필드선택적 필드
processcreate
terminate
scanned
다음 중 하나 이상:
     {pid, command_line, exe, image_path}
fqdn
hostname
md5_hash
parent_exe
parent_image_path
ppid
sha1_hash
sha256_hash
sid
signer
user
flowstart
end
message
다음 중 하나 이상:
    {src_hostname,src_ip}
다음 중 하나 이상:
    {dest_hostname, dest_ip}
다음 중 하나 이상:
     {src_port, dest_port, protocol}
content
dest_fqdn
exe
flags
fqdn
hostname
image_path
packet_count
pid
ppid
proto_info
src_fqdn
user
filecreate
delete
modify
read
timestomp
write
file_pathcompany
file_name
fqdn
hostname
image_path
md5_hash
pid
ppid
sha1_hash
sha256_hash
signer
user
필드 이름설명
id작업 단계의 고유 식별자.
nodetype이 노드의 유형. {"operation", "step", "event"} 중 하나.
attack_info이 단계가 ATT&CK 분류와 어떻게 관련되는지 설명하는 기술 객체(아래 표에 정의됨)의 배열. 왜 배열인가? 단일 기술이 종종 단계와 모든 이벤트를 설명하지만, 경우에 따라 여러 기술이 구현될 수 있습니다.
attack_info.technique_id이 단계와 참조된 이벤트에서 Red가 사용한 공격 메커니즘을 설명하는 ATT&CK 기술 ID(예: "T1059").
attack_info.technique_name이 기술을 설명하는 사람이 읽을 수 있는 문자열(예: "Command-Line Interface").
attack_info.tactic이 기술의 의도/전략을 설명하는 하나 이상의 ATT&CK 전술 레이블 배열. (단일 기술이 여러 전술을 실행할 수 있습니다.) 예: ["Lateral Movement", "Execution"]
description선택 사항: 이 단계에 대한 메모 또는 주석이 여기에 들어갑니다.
events이 단계를 구성하는 event 객체의 ID 배열.