이 문서에서는 Microsoft Sentinel Jupyter Notebook 및 MSTICPy를 사용하기 위한 고급 구성에 대해 설명합니다.
자세한 내용은 Jupyter Notebook을 사용하여 보안 위협 찾기 및 Microsoft Sentinel Jupyter Notebook 및 MSTICPy 시작을 참조하세요.
필수 구성 요소
이 문서는 Microsoft Sentinel Jupyter Notebook 및 MSTICPy 시작의 연속입니다. 이 문서에 설명된 고급 절차를 계속 진행하기 전에 자습서를 수행하는 것이 좋습니다.
Azure 및 Microsoft Sentinel API에 대한 인증 매개 변수 지정
이 절차에서는 msticpyconfig.yaml 파일에서 Microsoft Sentinel 및 기타 Azure API 리소스에 대한 인증 매개 변수를 구성하는 방법을 설명합니다.
MSTICPy 설정 편집기에서 Azure 인증 및 Microsoft Sentinel API 설정을 추가하려면 다음을 수행합니다.
다음 코드를 사용하여 다음 셀로 이동하여 실행합니다.
mpedit.set_tab("Data Providers") mpedit데이터 공급자 탭에서 AzureCLI>추가를 선택합니다.
사용할 인증 방법을 선택합니다.
- 기본값과 다른 메서드 집합을 사용할 수 있지만 이 사용법은 일반적인 구성이 아닙니다. 자세한 내용은 시작 가이드 for Azure Sentinel ML Notebooks Notebook을 참조하세요.
- env(환경 변수) 인증을 사용하지 않으려면 clientId, tenantId 및 clientSecret 필드를 비워 둡니다.
- 권장되지는 않지만 MSTICPy는 인증에 클라이언트 앱 ID 및 비밀 사용을 지원합니다. 이러한 경우 데이터 공급자 탭에서 직접 clientId, tenantId 및 clientSecret 필드를 정의합니다.
파일 저장을 선택하여 변경 내용을 저장합니다.
자동 로드 쿼리 공급자 정의
함수를 실행할 때 MSTICPy에서 자동으로 로드하려는 쿼리 공급자를 nbinit.init_notebook 정의합니다.
새 Notebook을 자주 작성하는 경우 쿼리 공급자를 자동 로드하면 피벗 함수 및 Notebooklet과 같은 다른 구성 요소 앞에 필요한 공급자가 로드되도록 하여 시간을 절약할 수 있습니다.
자동 로드 쿼리 공급자를 추가하려면 다음을 수행합니다.
다음 코드를 사용하여 다음 셀로 이동하여 실행합니다.
mpedit.set_tab("Autoload QueryProvs") mpeditQueryProv 자동 로드 탭에서 다음을 수행합니다.
- Microsoft Sentinel 공급자의 경우 연결하려는 공급자 이름과 작업 영역 이름을 모두 지정합니다.
- 다른 쿼리 공급자의 경우 공급자 이름만 지정합니다.
각 공급자에는 다음과 같은 선택적 값도 있습니다.
자동 연결: 이 옵션은 기본적으로 True 로 정의되며 MSTICPy는 로드 직후 공급자에 인증을 시도합니다. MSTICPy는 설정에서 공급자에 대한 자격 증명을 구성한 것으로 가정합니다.
별칭: MSTICPy는 공급자를 로드할 때 공급자를 Python 변수 이름에 할당합니다. 기본적으로 변수 이름은 Microsoft Sentinel 공급자에 대해 qryworkspace_name 다른 공급자의 경우 qryprovider_name.
예를 들어 ContosoSOC 작업 영역에 대한 쿼리 공급자를 로드하는 경우 이 쿼리 공급자는 이름이
qry_ContosoSOC인 Notebook 환경에서 만들어집니다. 더 짧거나 더 쉽게 입력하고 기억하기 쉬운 항목을 사용하려면 별칭을 추가합니다. 공급자 변수 이름은 입니다qry_<alias>. 여기서<alias>는 사용자가 제공한 별칭 이름으로 바뀝니다.이 메커니즘을 통해 로드하는 공급자도 MSTICPy
current_providers특성에 추가됩니다. 예를 들어 다음 코드에서 사용됩니다.import msticpy msticpy.current_providers
설정 저장을 선택하여 변경 내용을 저장합니다.
자동 로드된 MSTICPy 구성 요소 정의
이 절차에서는 함수를 실행할 nbinit.init_notebook 때 MSTICPy에서 자동으로 로드되는 다른 구성 요소를 정의하는 방법을 설명합니다.
지원되는 구성 요소는 다음 순서로 포함됩니다.
- TILookup: 사용하려는 TI 공급자 라이브러리
- Geoip: 사용하려는 GeoIP 공급자
- AzureData:Azure 리소스에 대한 세부 정보를 쿼리하는 데 사용하는 모듈
- AzureSentinelAPI:Microsoft Sentinel API를 쿼리하는 데 사용하는 모듈
- Notebooklet:msticnb 패키지의 Notebooklet
- 피벗: 피벗 함수
피벗 구성 요소에는 엔터티에 연결되는 피벗 함수를 찾기 위해 쿼리 및 로드된 다른 공급자가 필요하기 때문에 구성 요소가 이 순서로 로드됩니다. 자세한 내용은 MSTICPy 설명서를 참조하세요. 자세한 내용은 시작 가이드 for Azure Sentinel ML Notebooks Notebook을 참조하세요.
자동 로드된 MSTICPy 구성 요소를 정의하려면 다음을 수행합니다.
다음 코드를 사용하여 다음 셀로 이동하여 실행합니다.
mpedit.set_tab("Autoload Components") mpedit구성 요소 자동 로드 탭에서 필요에 따라 매개 변수 값을 정의합니다. 예시:
GeoIpLookup. 사용하려는 GeoIP 공급자의 이름( GeoLiteLookup 또는 IPStack)을 입력합니다.
AzureData 및 AzureSentinelAPI 구성 요소. 다음 값을 정의합니다.
- auth_methods: AzureCLI에 대한 기본 설정을 재정의하고 선택한 메서드를 사용하여 연결합니다.
- 자동 연결: 연결하지 않고 로드하려면 false로 설정합니다.
자세한 내용은 Azure 및 Microsoft Sentinel API에 대한 인증 매개 변수 지정을 참조하세요.
Notebooklet. Notebooklets 구성 요소에는 단일 매개 변수 블록인 AzureSentinel이 있습니다.
구문을
workspace:\<workspace name>사용하여 Microsoft Sentinel 작업 영역을 지정합니다. 작업 영역 이름은 Microsoft Sentinel 탭에 정의된 작업 영역 중 하나여야 합니다.함수에 보낼
notebooklets init매개 변수를 더 추가하려면 키:값 쌍으로 지정하고 줄 바꿈으로 구분합니다. 예시:workspace:<workspace name> providers=["LocalData","geolitelookup"]
TILookup 및 Pivot과 같은 일부 구성 요소에는 매개 변수가 필요하지 않습니다.
설정 저장을 선택하여 변경 내용을 저장합니다.
Python 3.6과 3.8 커널 간 전환
Python 3.65와 3.8 커널 간에 전환하는 경우 MSTICPy 및 기타 패키지가 예상대로 설치되지 않을 수 있습니다.
이 문제는 명령이 !pip install pkg 첫 번째 환경에 올바르게 설치되지만 두 번째 환경에서는 올바르게 설치되지 않을 때 발생할 수 있습니다. 이렇게 하면 두 번째 환경에서 패키지를 가져오거나 사용할 수 없는 상황이 발생합니다.
Azure Machine Learning Notebook에 패키지를 설치하는 데 사용하지 !pip install... 않는 것이 좋습니다. 대신 다음 옵션 중 하나를 사용합니다.
Notebook 내에서 %pip 줄 매직을 사용합니다. 실행:
%pip install --upgrade msticpy터미널에서 설치:
Azure Machine Learning Notebook에서 터미널을 열고 다음 명령을 실행합니다.
conda activate azureml_py38 pip install --upgrade msticpy터미널을 닫고 커널을 다시 시작합니다.
msticpyconfig.yaml 파일에 대한 환경 변수 설정
Azure Machine Learning에서 를 실행하고 사용자 폴더의 루트에 msticpyconfig.yaml 파일이 있는 경우 MSTICPy는 이러한 설정을 자동으로 찾습니다. 그러나 다른 환경에서 Notebook을 실행하는 경우 이 섹션의 지침에 따라 구성 파일의 위치를 가리키는 환경 변수를 설정합니다.
환경 변수에서 msticpyconfig.yaml 파일의 경로를 정의하면 알려진 위치에 파일을 저장하고 항상 동일한 설정을 로드할 수 있습니다.
다른 Notebook에 대해 다른 설정을 사용하려는 경우 여러 환경 변수와 함께 여러 구성 파일을 사용합니다.
~/.msticpyconfig.yaml 또는 %userprofile%/msticpyconfig.yaml과 같은 msticpyconfig.yaml 파일의 위치를 결정합니다.
ML 사용자 Azure: Azure Machine Learning 사용자 폴더에 구성 파일을 저장하는 경우 MSTICPy
init_notebook함수(초기화 셀에서 실행)가 자동으로 파일을 찾아서 사용하며 MSTICPYCONFIG 환경 변수를 설정할 필요가 없습니다.그러나 파일에 비밀도 저장된 경우 구성 파일을 컴퓨팅 로컬 드라이브에 저장하는 것이 좋습니다. 컴퓨팅 내부 스토리지는 컴퓨팅을 만든 사람만 액세스할 수 있는 반면, 공유 스토리지는 Azure Machine Learning 작업 영역에 액세스할 수 있는 모든 사용자가 액세스할 수 있습니다.
자세한 내용은 Azure Machine Learning 컴퓨팅 instance?을 참조하세요.
필요한 경우 msticpyconfig.yaml 파일을 선택한 위치에 복사합니다.
MSTICPYCONFIG 환경 변수를 해당 위치를 가리키도록 설정합니다.
다음 절차 중 하나를 사용하여 MSTICPYCONFIG 환경 변수를 정의합니다.
예를 들어 Windows 시스템에서 MSTICPYCONFIG 환경 변수를 설정하려면 다음을 수행합니다.
필요에 따라 msticpyconfig.yaml 파일을 Compute instance 이동합니다.
시스템 속성 대화 상자를 고급 탭으로 엽니다.
환경 변수...를 선택하여 환경 변수 대화 상자를 엽니다.
시스템 변수 영역에서 새로 만들기...를 선택하고 다음과 같이 값을 정의합니다.
-
변수 이름: 다음으로 정의
MSTICPYCONFIG - 변수 값: msticpyconfig.yaml 파일의 경로를 입력합니다.
-
변수 이름: 다음으로 정의
참고
Linux 및 Windows 옵션의 경우 정의한 환경 변수를 선택하려면 Jupyter 서버를 다시 시작해야 합니다.
다음 단계
자세한 내용은 다음을 참조하세요.
| 제목 | 추가 참조 |
|---|---|
| MSTICPy |
-
MSTICPy 패키지 구성 - MSTICPy 설정 편집기 - Notebook 환경 구성 - MPSettingsEditor Notebook. 참고: Azure-Sentinel-Notebooks GitHub 리포지토리에는 주석 처리된 섹션이 있는 템플릿 msticpyconfig.yaml 파일도 포함되어 있어 설정을 이해하는 데 도움이 될 수 있습니다. |
| Microsoft Sentinel 및 Jupyter Notebook |
-
첫 번째 Microsoft Sentinel 전자 필기장 만들기(블로그 시리즈) - Jupyter Notebooks: 소개 - MSTICPy 설명서 - notebooks 설명서 Microsoft Sentinel - The Infosec Jupyterbook - Linux 호스트 Explorer Notebook 연습 - 보안 조사에 Jupyter를 사용하는 이유 - Microsoft Sentinel & Notebook을 사용하여 보안 조사 - Pandas 설명서 - Bokeh 설명서 |