
MITRE ATT&CK, Sigma 및 Atomic Red Team 데이터를 BloodHound 그래프로 집계하여 SOC 분석가가 탐지 범위를 매핑하고, 공백을 식별하며, Cypher 쿼리로 인시던트를 조사할 수 있게 합니다.

BloodSOCer는 여러 소스(Mitre ATT&CK, Sigma 규칙, Atomic Red Team)에서 위협 인텔리전스 데이터를 수집하고 OpenGraph 형식으로 BloodHound에 수집하기 위한 JSON 파일을 생성하는 Python 자동화 도구입니다. BloodSOCer는 구성에 API 토큰이 정의되어 있으면 파일을 BloodHound에 업로드하고 사용자 지정 객체에 대한 아이콘을 설정할 수도 있습니다. 보안 분석가는 그런 다음 모든 각도에서 데이터를 시각화할 수 있으며, 시작하는 데 도움이 되는 몇 가지 Cypher 쿼리가 제공됩니다.
이 프로젝트의 배경 아이디어는 SOC가 Mitre ATT&CK 프레임워크에 대한 적용 범위를 매핑하고, 인시던트 대응 중 블라인드 스팟이 있을 수 있는 위치를 신속하게 식별하도록 돕는 것입니다. 이상적으로 SOC는 Sigma의 "기성" 탐지 규칙이 아닌 자체 탐지 규칙을 매핑해야 합니다. 오해하지 마세요. Sigma는 제가 가장 좋아하는 오픈 소스 프로젝트 중 하나이지만, 대부분의 탐지 규칙은 실행 가능한 티켓을 생성하기보다는 컨텍스트/강화 또는 위협 헌팅 단서 생성에 더 적합합니다.
제가 SOC에 있을 때 우리는 종종 탐지 규칙이 ATT&CK 프레임워크에 어떻게 매핑되는지 보여주려고 노력했습니다. 저는 항상 BloodHound 유형의 그래프가 이에 완벽할 것이라고 생각했고, 이 프로젝트가 동료 블루 팀원들이 적용 범위와 다양한 요소들이 어떻게 서로 연결되어 있는지 시각화하는 데 도움이 되기를 바라며 만들었습니다.
ART를 수집하면 어떤 TTP가 테스트하기 쉬운지, 어떤 TTP는 쉽게 테스트할 수 없는지도 확인할 수 있습니다.
탐지/테스트가 없는 TTP에 대해 탐지 규칙이나 테스트를 만든다면 Sigma Rules와 ART를 원래 프로젝트에 다시 공유할 것을 적극 권장합니다.
UL-Cyphers.py 또는 --setup을 통해 번들된 Cypher 쿼리를 BloodHound로 가져오기http://127.0.0.1:8080)리포지토리를 클론합니다:
git clone https://github.com/yourusername/BloodSOCer.git
cd BloodSOCer
종속성을 설치합니다:
pip3 install -r requirements.txt
BloodSOCer.py에서 API 자격 증명을 구성합니다:
apikey = "your-api-key-here"
apiid = "your-api-id-here"
python3 BloodSOCer.py
python3 BloodSOCer.py -h
python3 BloodSOCer.py --mitre, -m
python3 BloodSOCer.py --sigma, -s
python3 BloodSOCer.py --art, -r
python3 BloodSOCer.py --define-icons, -di
python3 BloodSOCer.py --setup, -st
python3 BloodSOCer.py --upload-only, -ul
python3 BloodSOCer.py --all, -a
python3 BloodSOCer.py --mitre --sigma --define-icons
python3 BloodSOCer.py --clear-db
참고: --define-icons 및 --upload-only의 경우 API 키와 API 시크릿이 BloodSOCer.py에 반드시 정의되어 있어야 합니다.
BloodSOCer.py를 편집하여 다음을 사용자 지정합니다:
http://127.0.0.1:8080)BloodSOCer/
├── BloodSOCer.py # 메인 엔트리 포인트
├── MitreHound.py # MITRE ATT&CK 데이터 가져오기
├── ARTHound.py # Atomic Red Team 데이터 가져오기
├── SigmaHound.py # Sigma 규칙 데이터 가져오기
├── Define-Icons.py # BloodHound 아이콘 사용자 지정 도구
├── UL-Cyphers.py # 수집된 데이터를 쿼리하는 데 도움이 되는 사용자 지정 Cypher 업로드
├── Cyphers/ # 저장된 쿼리(Cypher) JSON
├── ressources/ # 이미지/다이어그램(화살표 그래프, 로고)
├── README.md # 이 파일
├── requirements.txt # Python 종속성
└── output/ # 생성된 *_graph.json 파일
이 프로젝트는 다음 노드 유형을 추가합니다
이 프로젝트는 다음 엣지/관계를 추가합니다
Exploits(악용)Uses(사용)PartOf(일부)SubTechniqueOf(하위 기법)DetectedBy(탐지됨)TestedBy(테스트됨)InvestigateWith(조사)BloodSOCer 화살표 그래프
이 Arrows.app 그래프의 json 파일을 다운로드하려면 여기를 클릭하세요.
Mimikatz를 사용하는 FIN7에 대한 탐지

FIN7이 사용하는 전술

FIN7 활동에 대한 탐지 및 테스트

FIN7 및 Scattered Spider 활동을 조사하기 위한 플레이북

Define-Icons.py에 정의된 사용자 지정 아이콘은 BloodHound 인터페이스에 적용됩니다.Apache 2.0
제가 OpenGraph에 대해 처음 들었을 때, Mitre ATT&CK 프레임워크를 수집하고 BloodHound로 시각화하는 데 좋은 방법이 될 것이라고 즉시 생각했습니다. Olaf Hartong은 몇 년 전에 그 작업을 수행했습니다(그의 블로그 참조), 분명히 현재 제 동료인 SadProcessor에게서 영감을 받은 것입니다. 우리는 이로써 완전한 순환을 이루었습니다.
풀 리퀘스트와 이슈를 환영합니다.