
Microsoft 위협 인텔리전스 보안 도구
Microsoft 위협 인텔리전스 Python 보안 도구.
msticpy는 Jupyter Notebook에서 정보 보안 조사 및 헌팅을 위한 라이브러리입니다. 다음과 같은 기능을 포함합니다:
또한 쿼리 시간 경계 설정, 목록에서 항목 선택 및 표시, 노트북 환경 구성을 위한 위젯과 같은 시간 절약형 노트북 도구도 포함되어 있습니다.

msticpy 패키지는 원래 Microsoft Sentinel용 Jupyter Notebook 작성을 지원하기 위해 개발되었습니다. Azure Sentinel이 여전히 우리 작업의 큰 초점이지만, 데이터 쿼리/수집 구성 요소를 확장하여 다른 소스(현재 Splunk, Microsoft Defender for Endpoint 및 Microsoft Graph가 지원되지만 다른 SIEM 플랫폼의 데이터 지원을 위해 적극적으로 작업 중입니다)에서 로그 데이터를 가져오고 있습니다. 대부분의 구성 요소는 모든 소스의 데이터와 함께 사용할 수 있습니다. Pandas DataFrame은 거의 모든 구성 요소의 보편적인 입력 및 출력 형식으로 사용됩니다. 또한 로컬 CSV 파일과 피클된 DataFrame에서 데이터를 쉽게 처리할 수 있는 데이터 공급자도 있습니다.
이 패키지는 보안 조사자와 헌터를 위한 세 가지 핵심 요구 사항을 해결합니다:
피드백, 버그 신고, 새로운 기능 제안 및 기여를 환영합니다.
핵심 설치:
pip install msticpy
또는 최신 개발 빌드
pip install git+https://github.com/microsoft/msticpy
msticpy를 최신 공용 비베타 릴리스로 업그레이드하려면 다음을 실행하세요:
pip install --upgrade msticpy
참고: msticpyconfig.yaml을 복사하여 msticpy 폴더 외부의 디스크에 저장하고 환경 변수에서 참조하는 것이 좋습니다. 이렇게 하면 msticpy 설치를 업데이트할 때마다 구성을 잃는 것을 방지할 수 있습니다.
전체 문서는 ReadTheDocs에 있습니다.
많은 모듈의 샘플 노트북은 docs/notebooks 폴더 및 함께 제공되는 노트북에 있습니다.
또한 이 문서 끝에 참조된 샘플 노트북을 탐색하여 컨텍스트에서 사용된 일부 기능을 볼 수 있습니다. mybinder.org의 이 대화형 데모에서 패키지 기능 중 일부를 사용해 볼 수 있습니다.
QueryProvider는 Microsoft Sentinel/Log Analytics, Microsoft XDR, Splunk, OData 및 기타 로그 데이터 소스를 대상으로 하는 확장 가능한 쿼리 라이브러리입니다. 또한 Mordor 데이터 세트 및 로컬 데이터 사용에 대한 특별 지원이 있습니다.
내장된 매개 변수화된 쿼리를 사용하면 단일 함수 호출로 복잡한 쿼리를 실행할 수 있습니다. 간단한 YAML 스키마를 사용하여 자체 쿼리를 추가하세요.
TILookup 클래스는 여러 TI 공급자에서 IoC를 조회할 수 있습니다. 내장 공급자에는 AlienVault OTX, IBM XForce, VirusTotal 및 Azure Sentinel이 포함됩니다.
입력은 단일 IoC 관찰 가능 항목이거나 여러 관찰 가능 항목을 포함하는 pandas DataFrame일 수 있습니다. 공급자에 따라 계정과 API 키가 필요할 수 있습니다. 일부 공급자는 특히 무료 티어의 경우 스로틀링을 적용하여 대량 조회 수행에 영향을 줄 수 있습니다.
TIProviders 및 TILookup Usage Notebook
GeoIP 조회 클래스를 사용하면 다음 중 하나를 사용하여 IP 주소의 지리적 위치를 매칭할 수 있습니다:

AzureData 모듈에는 Azure API를 통해 노출된 추가 호스트 세부 정보로 Azure 호스트 세부 정보에 대한 데이터를 보강하는 기능이 포함되어 있습니다. AzureSentinel 모듈을 사용하면 인시던트를 쿼리하고 탐지기 및 헌팅 쿼리를 검색할 수 있습니다. AzureBlogStorage를 사용하면 blob 저장소에서 데이터를 읽고 쓸 수 있습니다.
Azure Resource APIs, Azure Sentinel APIs, Azure Storage
이 하위 패키지에는 보안 조사 및 헌팅 작업에 유용한 여러 모듈이 포함되어 있습니다:
Office, Active Directory 또는 기타 로그 데이터에서 비정상적인 이벤트 시퀀스를 탐지합니다. 세션(예: 동일한 계정에 의해 시작된 활동)을 추출하고 비정상적인 활동 시퀀스를 식별 및 시각화할 수 있습니다. 예를 들어, 공격자가 누군가의 사서함에 메일 전달 규칙을 설정하는 것을 탐지합니다.
Anomalous Sessions 및 Anomalous Sequence Notebook
시계열 분석을 사용하면 정상적인 계절적 변동(예: 하루 시간, 요일별 이벤트의 규칙적인 증감)을 고려하여 로그 데이터에서 비정상적인 패턴을 식별할 수 있습니다. 분석과 시각화를 모두 사용하면 모든 데이터 세트에서 비정상적인 트래픽 흐름 또는 이벤트 활동을 강조할 수 있습니다.

모든 로그 이벤트를 대화형 타임라인에 표시합니다. Bokeh Visualization Library를 사용하여 타임라인 컨트롤을 사용하면 하나 이상의 이벤트 스트림을 시각화하고, 특정 시간 슬롯으로 대화형 확대/축소를 하고, 플로팅된 이벤트의 세부 정보를 볼 수 있습니다.

프로세스 트리 기능에는 두 가지 주요 구성 요소가 있습니다:
처리된 데이터 세트에서 개별 및 부분 트리를 추출하는 유틸리티 함수 세트가 있습니다.

Process Tree 및 Process Tree Notebook
MSTICPy 기능을 "엔터티 중심" 방식으로 사용할 수 있습니다. 특정 엔터티 유형(예: Host, IpAddress, Url)과 관련된 모든 함수, 쿼리 및 조회는 해당 엔터티 클래스의 메서드로 함께 수집됩니다. 따라서 IP 주소로 작업하려면 IpAddress 엔터티를 로드하고 해당 메서드를 찾아보면 됩니다.
Pivot Functions 및 Pivot Functions Notebook
Base64 및 아카이브(gz, zip, tar) 추출기입니다. base64로 인코딩된 문자열을 식별하고 디코딩을 시도합니다. 결과가 지원되는 아카이브 유형 중 하나처럼 보이면 내용의 압축을 풉니다. 각 디코딩/압축 풀기 결과는 추가 base64 콘텐츠가 있는지 지정된 깊이까지 다시 확인됩니다.
Base64 Decoding 및 Base64Unpack Notebook
정규 표현식을 사용하여 침해 지표(IoC) 패턴(IP 주소, URL, DNS 도메인, 해시, 파일 경로)을 찾습니다. 입력은 단일 문자열 또는 pandas DataFrame일 수 있습니다.