
MITRE ATT&CK® 엔터프라이즈 데이터셋과 상호작용하기 위한 경량 Python 모듈입니다. 최소한의 의존성으로 속도에 중점을 두고 제작되었습니다. 자세한 내용은 [문서](https://gitlab.com/xakepnz/enterpriseattack/tree/main/docs)를 참조하세요.
MITRE ATT&CK 엔터프라이즈 데이터셋과 상호작용하기 위한 경량 Python 모듈입니다. 속도와 최소한의 종속성 덕분에 프로덕션 애플리케이션에서 사용하도록 제작되었습니다. 자세한 내용은 문서를 참조하세요.
MITRE ATT&CK®는 실제 관측에 기반한 적대자 전술과 기법에 대한 전 세계적으로 접근 가능한 지식 기반입니다. ATT&CK 지식 기반은 민간 부문, 정부, 사이버보안 제품 및 서비스 커뮤니티에서 특정 위협 모델과 방법론 개발의 기초로 사용됩니다.
pip3 install enterpriseattack
git clone https://gitlab.com/xakepnz/enterpriseattack.git
cd enterpriseattack
python3 setup.py install
(맨 위로)
docker build enterpriseattack:0.1.8 .
docker tag enterpriseattack:0.1.8 enterpriseattack:latest
docker run enterpriseattack
(맨 위로)
import enterpriseattack
attack = enterpriseattack.Attack()
특정 객체를 찾기 위해 반복하지 않고 Attack 클래스에서 직접 모든 객체에 접근합니다.
attack = enterpriseattack.Attack(subscriptable=True)
wizard_spider = attack.groups.get('Wizard Spider')
print(len(wizard_spider.tactics))
execution = attack.tactics.get('Execution')
print(len(execution.techniques))
이 예시에서는 통과할 프록시를 포함하여 공식 Mitre Att&ck json을 다운로드할 위치를 선택할 수 있습니다. 또는 json 파일을 별도 위치에 저장하려면 enterprise_json 인자를 변경할 수 있습니다. 기본적으로 기본 site-packages 위치에 저장됩니다.
enterprise_json - (선택 사항) enterprise json 파일의 위치 (pip 위치에 자동 저장됨)url - (선택 사항) 다운로드할 enterprise json 파일의 위치.update - (선택 사항) 호출할 때마다 새로고침 다운로드를 강제하여 이전 파일을 덮어쓰는 불리언 값.include_deprecated - (선택 사항) MITRE ATT&CK에서 폐기된(이전 Att&ck 버전의) 객체를 포함할지 여부를 나타내는 불리언 값.mitre_version - (선택 사항) MITRE ATT&CK 데이터 버전을 지정합니다.proxies - (선택 사항) enterprise-attack.json을 위해 MITRE GitHub에 도달하기 위해 통과할 프록시 dict.attack = enterpriseattack.Attack(
enterprise_json=None,
url='https://raw.githubusercontent.com/mitre/cti/master/enterprise-attack/enterprise-attack.json',
include_deprecated=False,
update=False,
subscriptable=True,
mitre_version='latest',
proxies={'http':'http://127.0.0.1:1337'}
)
attack = enterpriseattack.Attack(
mitre_version='11.3',
update=True
)
print(attack.mitre_version)
attack = enterpriseattack.Attack()
for tactic in attack.tactics:
print(tactic.name)
for technique in tactic.techniques:
print(technique.name)
print(technique.detection)
for software in attack.software:
for technique in software.techniques:
for sub_technique in technique.sub_techniques:
print(software.name, technique.name, sub_technique.name)
attack = enterpriseattack.Attack()
for tactic in attack.tactics:
print(tactic.to_json())
for group in attack.groups:
print(group.to_json())
...
더 많은 예시는 문서를 참조하세요.
(맨 위로)