Microsoft Sentinel의 Jupyter Notebook 및 MSTICPy에 대한 고급 구성

이 문서에서는 Microsoft Sentinel에서 Jupyter Notebooks 및 MSTICPy를 사용하기 위한 고급 구성에 대해 설명합니다.

자세한 내용은 Jupyter Notebooks를 사용하여 보안 위협 헌팅자습서: Microsoft Sentinel에서 Jupyter Notebooks 및 MSTICPy 시작을 참조하세요.

필수 조건

이 문서는 자습서: Microsoft Sentinel에서 Jupyter Notebooks 및 MSTICPy 시작에서 이어진 내용입니다. 아래 설명된 고급 절차를 계속 진행하기 전에 자습서를 수행하는 것이 좋습니다.

Azure 및 Microsoft Sentinel API에 대한 인증 매개 변수 지정

이 절차에서는 msticpyconfig.yaml 파일에서 Microsoft Sentinel 및 기타 Azure API 리소스에 대한 인증 매개 변수를 구성하는 방법을 설명합니다.

MSTICPy 설정 편집기에서 Azure 인증 및 Microsoft Sentinel API 설정을 추가하려면 다음을 수행합니다.

  1. 다음 코드를 사용하여 그 다음 셀로 넘어가서 셀을 실행합니다.

    mpedit.set_tab("Data Providers")
    mpedit
    
  2. 데이터 공급자 탭에서 AzureCLIAdd>추가를 선택합니다.

  3. 사용할 인증 방법을 선택합니다.

    • Azure 기본값과 다른 메서드 집합을 사용할 수 있지만 이 사용법은 일반적인 구성이 아닙니다.
    • env(환경 변수) 인증을 사용하지 않으려면 clientId, tenantiId, clientSecret 필드를 비워 둡니다.
    • 권장되지는 않지만 MSTICPy는 클라이언트 앱 ID 및 비밀을 사용한 인증도 지원합니다. 이 경우 데이터 공급자 탭에서 직접 clientId, tenantId, clientSecret 필드를 정의합니다.
  4. 파일 저장을 선택하여 변경 내용을 저장합니다.

자동 로드되는 쿼리 공급자 정의

nbinit.init_notebook 함수를 실행할 때 MSTICPy에서 자동으로 로드하려는 쿼리 공급자를 정의합니다.

새 Notebook을 자주 작성하는 경우 쿼리 공급자를 자동 로드하면 피벗 함수 및 Notebooklet과 같은 필수 공급자가 다른 구성 요소보다 먼저 로드되도록 하여 시간을 절약할 수 있습니다.

자동 로드되는 쿼리 공급자를 추가하려면 다음을 수행합니다.

  1. 다음 코드를 사용하여 그 다음 셀로 넘어가서 셀을 실행합니다.

    mpedit.set_tab("Autoload QueryProvs")
    mpedit
    
  2. QueryProv 자동 로드 탭에서 다음을 수행합니다.

    • Microsoft Sentinel 공급자의 경우 연결하려는 공급자 이름과 작업 영역 이름을 둘 다 지정합니다.
    • 기타 쿼리 공급자의 경우 공급자 이름만 지정합니다.

    각 공급자에는 다음과 같은 선택적 값도 있습니다.

    • 자동 연결: 이 옵션은 기본적으로 True로 정의되어 있으며, MSTICPy가 로드 후 즉시 공급자에 인증을 시도합니다. MSTICPy는 설정에서 공급자에 대한 자격 증명을 구성했다고 가정합니다.

    • 별칭: MSTICPy는 공급자를 로드할 때 Python 변수 이름에 공급자를 할당합니다. 기본적으로 변수 이름은 Microsoft Sentinel 공급자의 경우 qryworkspace_name, 기타 공급자의 경우 qryprovider_name입니다.

      예를 들어 ContosoSOC 작업 영역의 쿼리 공급자를 로드하는 경우 이 쿼리 공급자는 Notebook 환경에서 qry_ContosoSOC라는 이름으로 생성됩니다. 더 짧거나 입력 및 기억하기에 더 쉬운 이름을 사용하려는 경우 별칭을 추가합니다. 공급자 변수 이름은 qry_<alias>가 됩니다. 여기서 <alias>는 사용자가 제공한 별칭 이름으로 바뀝니다.

      이 메커니즘을 통해 로드하는 공급자는 예를 들어 다음 코드에서 사용된 MSTICPy current_providers 특성에도 추가됩니다.

      import msticpy
      msticpy.current_providers
      
  3. 설정 저장을 선택하여 변경 내용을 저장합니다.

자동 로드되는 MSTICPy 구성 요소 정의

이 절차에서는 nbinit.init_notebook 함수를 실행할 때 MSTICPy에서 자동으로 로드되는 기타 구성 요소를 정의하는 방법을 설명합니다.

지원되는 구성 요소는 순서대로 다음과 같습니다.

  1. TILookup:TI 공급자 라이브러리
  2. Geoip: 사용하려는 GeoIP 공급자
  3. AzureData:Azure 리소스에 대한 세부 정보를 쿼리하는 데 사용하는 모듈
  4. AzureSentinelAPI:Microsoft Sentinel API를 쿼리하는 데 사용하는 모듈
  5. Notebooklet:msticnb 패키지의 Notebooklet
  6. Pivot: 피벗 함수

참고 항목

Pivot 구성 요소가 엔터티에 연결하는 피벗 함수를 찾으려면 쿼리 및 기타 공급자가 로드되어 있어야 하므로 구성 요소는 이 순서대로 로드됩니다. 자세한 내용은 MSTICPy 설명서를 참조하세요.

자동 로드되는 MSTICPy 구성 요소를 정의하려면 다음을 수행합니다.

  1. 다음 코드를 사용하여 그 다음 셀로 넘어가서 셀을 실행합니다.

    mpedit.set_tab("Autoload Components")
    mpedit
    
  2. 구성 요소 자동 로드 탭에서 필요에 따라 매개 변수 값을 정의합니다. 예시:

    • GeoIpLookup. 사용하려는 GeoIP 공급자의 이름(GeoLiteLookup 또는 IPStack)을 입력합니다. 자세한 내용은 GeoIP 공급자 설정 추가를 참조하세요.

    • AzureData 및 AzureSentinelAPI 구성 요소. 다음 값을 정의합니다.

      • auth_methods: AzureCLI의 기본 설정을 재정의하고 선택한 메서드를 사용하여 연결합니다.
      • Auto-connect: 연결하지 않고 로드하려면 false로 설정합니다.

      자세한 내용은 Azure 및 Microsoft Sentinel API에 대한 인증 매개 변수 지정을 참조하세요.

    • Notebooklets. Notebooklets 구성 요소에는 단일 매개 변수 블록인 AzureSentinel이 있습니다.

      workspace:\<workspace name> 구문을 사용하여 Microsoft Sentinel 작업 영역을 지정합니다. 작업 영역 이름은 Microsoft Sentinel 탭에서 정의된 작업 영역 중 하나여야 합니다.

      notebooklets init 함수에 보낼 매개 변수를 더 추가하려면 키:값 쌍으로 지정하고 줄 바꿈으로 구분합니다. 예시:

      workspace:<workspace name>
      providers=["LocalData","geolitelookup"]
      

      자세한 내용은 MSTICNB(MSTIC Notebooklets) 설명서를 참조하세요.

    TILookupPivot과 같은 일부 구성 요소에는 매개 변수가 필요하지 않습니다.

  3. 설정 저장을 선택하여 변경 내용을 저장합니다.

Python 3.6 및 3.8 커널 간 전환

Python 3.65 및 3.8 커널 간에 전환하는 경우 MSTICPy와 기타 패키지가 예상대로 설치되지 않는 것을 발견할 수 있습니다.

이 문제는 !pip install pkg 명령이 첫 번째 환경에서는 올바르게 설치되지만 두 번째 환경에서 올바르게 설치되지 않는 경우에 발생할 수 있습니다. 이로 인해 두 번째 환경에서 패키지를 가져오거나 사용할 수 없는 상황이 발생합니다.

!pip install...을 사용하여 Azure ML Notebook에 패키지를 설치하지 않는 것이 좋습니다. 대신, 다음 옵션 중 하나를 사용합니다.

  • Notebook 내에서 %pip 줄 매직 사용. 다음을 실행합니다.

    
    %pip install --upgrade msticpy
    
  • 터미널에서 설치:

    1. Azure ML Notebook에서 터미널을 열고 다음 명령을 실행합니다.

      conda activate azureml_py38
      pip install --upgrade msticpy
      
    2. 터미널을 닫고 커널을 다시 시작합니다.

msticpyconfig.yaml 파일에 대한 환경 변수 설정

Azure ML에서 실행 중이고 사용자 폴더의 루트에 msticpyconfig.yaml 파일이 있는 경우 MSTICPy에서 관련 설정을 자동으로 찾습니다. 그러나 다른 환경에서 Notebook을 실행하는 경우 이 섹션의 지침에 따라 구성 파일의 위치를 가리키는 환경 변수를 설정합니다.

환경 변수에서 msticpyconfig.yaml 파일의 경로를 정의하면 알려진 위치에 파일을 저장하고 항상 동일한 설정을 로드할 수 있습니다.

Notebook마다 다른 설정을 사용하려는 경우 여러 환경 변수와 여러 구성 파일을 사용합니다.

  1. ~/.msticpyconfig.yaml 또는 %userprofile%/msticpyconfig.yaml과 같이 msticpyconfig.yaml 파일의 위치를 결정합니다.

    Azure ML 사용자: Azure ML 사용자 폴더에 구성 파일을 저장하는 경우 MSTICPy init_notebook 함수(초기화 셀에서 실행)가 자동으로 파일을 찾아서 사용하므로 MSTICPYCONFIG 환경 변수를 설정할 필요가 없습니다.

    그러나 파일에 비밀도 저장되어 있으면 컴퓨팅 로컬 드라이브에 구성 파일을 저장하는 것이 좋습니다. 컴퓨팅 내부 스토리지는 컴퓨팅을 만든 사람만 액세스할 수 있는 반면, 공유 스토리지는 Azure ML 작업 영역에 액세스할 수 있는 모든 사용자가 액세스할 수 있습니다.

    자세한 내용은 Azure Machine Learning 컴퓨팅 인스턴스란?을 참조하세요.

  2. 필요한 경우 msticpyconfig.yaml 파일을 선택한 위치에 복사합니다.

  3. 해당 위치를 가리키도록 MSTICPYCONFIG 환경 변수를 설정합니다.

다음 절차 중 하나를 사용하여 MSTICPYCONFIG 환경 변수를 정의합니다.

예를 들어 Windows 시스템에서 MSTICPYCONFIG 환경 변수를 설정하려면 다음을 수행합니다.

  1. 필요에 따라 msticpyconfig.yaml 파일을 Compute 인스턴스로 이동합니다.

  2. 시스템 속성 대화 상자에서 고급 탭을 엽니다.

  3. 환경 변수...를 선택하여 환경 변수 대화 상자를 엽니다.

  4. 시스템 변수 영역에서 새로 만들기...를 선택하고 다음과 같이 값을 정의합니다.

    • 변수 이름: MSTICPYCONFIG로 정의합니다.
    • 변수 값: msticpyconfig.yaml 파일의 경로를 입력합니다.

참고 항목

Linux 및 Windows 옵션의 경우 정의한 환경 변수를 선택하도록 Jupyter 서버를 다시 시작해야 합니다.

다음 단계

자세한 내용은 다음을 참조하세요.

Subject 추가 참조
MSTICPy - MSTICPy 패키지 구성
- MSTICPy 설정 편집기
- Notebook 환경 구성.
- MPSettingsEditor Notebook.

참고: Azure-Sentinel-Notebooks GitHub 리포지토리에는 주석으로 처리된 섹션이 있는 msticpyconfig.yaml 템플릿 파일도 포함되어 있으므로 설정을 이해하는 데 도움이 될 수 있습니다.
Microsoft Sentinel 및 Jupyter Notebooks - 첫 번째 Microsoft Sentinel Notebook 만들기(블로그 시리즈)
- Jupyter Notebook: 소개
- MSTICPy 설명서
- Microsoft Sentinel Notebook 설명서
- Infosec Jupyterbook
- Linux Host Explorer Notebook 연습
- 보안 조사에 Jupyter를 사용하는 이유
- Microsoft Sentinel 및 Notebook을 사용하여 보안 조사
- Pandas 설명서
- Bokeh 설명서