
사고를 유발한 가장 유력한 APT 그룹 식별
인시던트의 배후로 가장 유력한 APT 그룹 식별
이 프로그램은 사이버 보안 인시던트 보고서에서 해당 인시던트에 사용된 것으로 탐지된 MITRE ATT&CK 기법들이 포함된 보고서를 입력받아, 해당 인시던트의 배후로 가장 유력한 APT 그룹을 식별하려고 시도합니다.
이 스크립트는 다양한 MITRE ATT&CK 기법과 그룹에 쉽게 접근하기 위해 enterpriseattack 모듈에 의존하므로, 스크립트를 사용하려면 먼저 이 모듈을 설치해야 합니다. 해당 모듈은 Python 3.6 이상 버전을 요구하므로, 이 스크립트도 그러한 Python 버전에서만 실행됩니다.
저장소를 클론합니다:
git clone https://gitlab.com/bontchev/whodunit.git
스크립트 디렉토리로 이동합니다:
cd whodunit
의존성을 설치합니다:
pip install -r requirements.txt
python whodunit.py [-h] [-v] [-n NUMGROUPS] [-b] [-u] [-d] techniques
이 스크립트는 다음 명령줄 옵션을 지원합니다:
-h, --help 스크립트 사용 방법과 명령줄 옵션에 대한 간단한 설명을 표시합니다.
-v, --version 스크립트 버전을 표시하고 종료합니다.
-n NUMGROUPS, --numgroups NUMGROUPS 나열할 가장 근접한 그룹의 수 (기본값: 10).
-b, --verbose 보고서의 MITRE ATT&CK 기법들을 나열합니다.
-u, --update MITRE ATT&CK 데이터의 로컬 사본을 업데이트합니다.
-d, --deprecated 폐기된(deprecated) ATT&CK 기법도 사용합니다.
techniques 사이버 보안 인시던트 중 관찰된 MITRE ATT&CK 기법 목록이 포함된 텍스트 파일입니다. 빈 줄은 무시되며, 줄에서 # 문자 뒤의 내용은 주석으로 간주되어 무시됩니다. 한 줄에 여러 기법을 나열할 수 있으며, 이 경우 하나 이상의 공백으로 구분해야 합니다.
저장소에는 report.txt 파일에 (가상의) 사이버 보안 인시던트 보고서가 포함되어 있습니다. 관찰된 내용에 대한 자연어 설명은 주석에 있습니다. 다음과 같이 스크립트로 이 보고서를 처리할 수 있습니다:
python whodunit.py -u -b -n 5 report.txt
이 명령은 스크립트가 MITRE ATT&CK 데이터의 로컬 사본을 업데이트하고(-u 옵션), 인시던트 보고서에서 인식된 기법들을 나열하며(-b 옵션), 인시던트의 배후로 가장 유력한 5개의 APT 그룹을 출력하도록 합니다(-n 5 옵션):
Processing report file "report.txt"...
Observed techniques:
T1003.001
T1005
T1039
T1059.001
T1068
T1078.003
T1110.003
T1114.001
T1133
T1213.002
T1486
T1548.002
T1560
T1562.001
T1573.002
The 5 APT groups most likely responsible:
G0007 (APT28 ): 60.00%
G0016 (APT29 ): 53.33%
G0037 (FIN6 ): 46.67%
G0060 (BRONZE BUTLER ): 40.00%
G0114 (Chimera ): 40.00%
이 스크립트는 각 APT 그룹이 사용하는 것으로 알려진 기법 집합과 인시던트 보고서에 나열된 기법 집합의 교집합을 찾아, 해당 교집합이 인시던트 보고서에 나열된 기법들의 가장 큰 부분집합을 이루는 그룹을 더 높은 신뢰도로 보고하는 방식으로 작동합니다.
첫 번째 열은 MITRE ATT&CK 프레임워크의 APT 그룹 식별자이고, 두 번째 열은 해당 그룹의 일반적인 이름이며, 세 번째 열은 인시던트 보고서의 기법 중 해당 APT 그룹이 사용하는 것으로 알려진 기법의 비율입니다.
참고: MITRE ATT&CK 프레임워크의 Enterprise 매트릭스만 지원됩니다(예를 들어 Mobile 또는 ICS 매트릭스는 지원되지 않음). 이는 enterpriseattack 모듈이 지원하는 범위이기 때문입니다.
이 프로젝트는 GNU v3.0 라이선스에 따라 라이선스가 부여됩니다.