다음을 통해 공유


Jupyter Notebook을 사용하여 보안 위협 헌팅

보안 조사 및 헌팅의 일환으로 Jupyter Notebooks를 실행하고 실행하여 데이터를 프로그래밍 방식으로 분석합니다.

이 문서에서는 Azure Machine Learning 작업 영역을 만들고, Microsoft Sentinel에서 Azure Machine Learning 작업 영역으로의 Notebook을 시작하고, Notebook에서 코드를 실행합니다.

Important

이제 Microsoft Sentinel이 Microsoft Defender 포털의 Microsoft 통합 보안 운영 플랫폼 내에서 일반 공급됩니다. 자세한 내용은 Microsoft Defender 포털의 Microsoft Sentinel을 참조하세요.

필수 조건

이 문서의 단계를 완료하기 전에 Microsoft Sentinel Notebooks에 대해 알아보는 것이 좋습니다. Jupyter Notebook을 사용하여 보안 위협 헌팅을 참조하세요.

Microsoft Sentinel Notebooks를 사용하려면 다음 역할 및 권한이 있어야 합니다.

Type 세부 정보
Microsoft Sentinel - Microsoft Sentinel에서 Notebooks를 저장하고 실행하기 위한 Microsoft Sentinel 기여자 역할
Azure Machine Learning - 필요한 경우 새 Azure Machine Learning 작업 영역을 만들기 위한 리소스 그룹 수준 소유자 또는 기여자 역할.
- Microsoft Sentinel Notebooks를 실행하는 Azure Machine Learning 작업 영역의 기여자 역할.

자세한 내용은 Azure Machine Learning 작업 영역 액세스 관리를 참조하세요.

Microsoft Sentinel에서 Azure Machine Learning 작업 영역 만들기

작업 영역을 만들려면 공용 엔드포인트를 사용할지 아니면 프라이빗 엔드포인트를 사용할지에 따라 다음 탭 중 하나를 선택합니다.

  • Microsoft Sentinel 작업 영역에 퍼블릭 엔드포인트가 있는 경우 잠재적인 네트워크 통신 문제를 방지하기 위해 이 엔드포인트를 사용하는 것이 좋습니다.
  • 가상 네트워크에서 Azure Machine Learning 작업 영역을 사용하려면 프라이빗 엔드포인트를 사용합니다.
  1. Azure Portal의 Microsoft Sentinel에 대해서는 위협 관리에서 Notebook을 선택합니다.
    Defender 포털의 Microsoft Sentinel에 대해서는 Microsoft Sentinel>위협 관리>Notebook을 선택합니다.

  2. Azure Machine Learning 구성>새 AML 작업 영역 만들기를 참조하세요.

  3. 다음 세부 정보를 입력하고 다음을 선택합니다.

    필드 Description
    구독 사용할 Azure 구독을 선택합니다.
    리소스 그룹 구독의 기존 리소스 그룹을 사용하거나 이름을 입력하여 새 리소스 그룹을 만듭니다. 리소스 그룹은 Azure 솔루션에 관련된 리소스를 보유합니다.
    작업 영역 이름 작업 영역을 식별하는 고유한 이름을 입력합니다. 이름은 리소스 그룹 전체에서 고유해야 합니다. 다른 사용자가 만든 작업 영역과 구별되고 기억하기 쉬운 이름을 사용하세요.
    지역 사용자 및 데이터 리소스와 가장 가까운 위치를 선택하여 작업 영역을 만듭니다.
    스토리지 계정 스토리지 계정은 작업 영역의 기본 데이터 저장소로 사용됩니다. 새 Azure Storage 리소스를 만들거나 구독의 기존 리소스를 선택할 수 있습니다.
    KeyVault 키 자격 증명 모음은 작업 영역에 필요한 비밀과 기타 중요한 정보를 저장하는 데 사용됩니다. 새 Azure Key Vault 리소스를 만들거나 구독의 기존 리소스를 선택할 수 있습니다.
    애플리케이션 인사이트 작업 영역은 Azure Application Insights를 사용하여 배포된 모델에 대한 모니터링 정보를 저장합니다. 새 Azure Application Insights 리소스를 만들거나 구독의 기존 리소스를 선택할 수 있습니다.
    컨테이너 레지스트리 컨테이너 레지스트리는 교육과 배포에서 사용되는 docker 이미지를 등록하는 데 사용됩니다. 비용을 최소화하기 위해 첫 번째 이미지를 빌드한 후에만 새 Azure Container Registry 리소스가 생성됩니다. 또는 지금 리소스를 만들도록 선택하거나, 구독의 기존 리소스를 선택하거나, 컨테이너 레지스트리를 사용하지 않으려는 경우 없음을 선택할 수 있습니다.
  4. 네트워킹 탭에서 모든 네트워크에서 공용 액세스 사용을 선택합니다.

    고급 또는 태그 탭에서 관련 설정을 정의한 다음, 검토 + 만들기를 선택합니다.

  5. 검토 + 만들기 탭에서 정보를 검토하여 올바른지 확인한 다음, 만들기를 선택하여 작업 영역 배포를 시작합니다. 예시:

    Microsoft Sentinel에서 Machine Learning 작업 영역을 검토하고 만듭니다.

    클라우드에서 작업 영역을 만드는 데 몇 분 정도 걸릴 수 있습니다. 이 시간 동안 작업 영역 개요 페이지에는 현재 배포 상태가 표시되고, 배포가 완료되면 업데이트됩니다.

배포가 완료되면 Microsoft Sentinel의 Notebook으로 돌아가 새 Azure Machine Learning 작업 영역에서 Notebook을 시작합니다.

여러 Notebook이 있는 경우 Notebook을 시작할 때 사용할 기본 AML 작업 영역을 선택해야 합니다. 예시:

Notebook의 기본 AML 작업 영역 선택

Azure Machine Learning 작업 영역에서 Notebook 시작

Azure Machine Learning 작업 영역을 만든 후 Microsoft Sentinel의 해당 작업 영역에서 Notebook을 시작합니다. Azure 스토리지 계정에서 프라이빗 엔드포인트를 사용하도록 설정한 경우 Microsoft Sentinel의 Azure Machine Learning 작업 영역에서 Notebook을 시작할 수 없습니다. Microsoft Sentinel에서 Notebook 템플릿을 복사하고 Azure Machine Learning 스튜디오에 Notebook을 업로드해야 합니다.

Azure Machine Learning 작업 영역에서 Microsoft Sentinel Notebook을 시작하려면 다음 단계를 완료합니다.

  1. Azure Portal의 Microsoft Sentinel에 대해서는 위협 관리에서 Notebook을 선택합니다.
    Defender 포털의 Microsoft Sentinel에 대해서는 Microsoft Sentinel>위협 관리>Notebook을 선택합니다.

  2. 템플릿 탭을 선택하여 Microsoft Sentinel에서 제공하는 Notebook을 확인합니다.

  3. Notebook을 선택하여 해당 설명, 필수 데이터 형식, 데이터 원본을 확인합니다.

  4. 사용할 Notebook을 찾았으면 템플릿에서 만들기저장을 선택하여 사용자 고유의 작업 영역에 복제합니다.

  5. 필요에 따라 이름을 편집합니다. Notebook이 작업 영역에 이미 있는 경우 기존 Notebook을 덮어쓰거나 새로 만듭니다. 기본적으로 Notebook은 선택한 AML 작업 영역의 /Users/<Your_User_Name>/ 디렉터리에 저장됩니다.

    Notebook을 저장하여 사용자 고유의 작업 영역에 복제

  6. Notebook을 저장한 후에는 Notebook 저장 단추가 Notebook 시작으로 변경됩니다. Notebook 시작을 선택하여 AML 작업 영역에서 엽니다.

    예시:

    AML 작업 영역에서 Notebook을 시작합니다.

  7. 페이지 맨 위에서 Notebook 서버에 사용할 컴퓨팅 인스턴스를 선택합니다.

    컴퓨팅 인스턴스가 없는 경우 새로 만듭니다. 컴퓨팅 인스턴스가 중지된 경우 인스턴스를 시작해야 합니다. 자세한 내용은 Azure Machine Learning 스튜디오에서 Notebook 실행을 참조하세요.

    사용자가 만든 컴퓨팅 인스턴스만 보고 사용할 수 있습니다. 사용자 파일은 VM과 별도로 저장되고 작업 영역의 모든 컴퓨팅 인스턴스 간에 공유됩니다.

    Notebook을 테스트하기 위해 새 컴퓨팅 인스턴스를 만드는 경우 범용 범주를 사용하여 컴퓨팅 인스턴스를 만듭니다.

    커널도 Azure Machine Learning 창의 오른쪽 위에 표시됩니다. 필요한 커널이 선택되지 않은 경우 드롭다운 목록에서 다른 버전을 선택합니다.

  8. Notebook 서버가 만들어지고 시작되면 Notebook 셀을 실행합니다. 각 셀에서 실행 아이콘을 선택하여 Notebook 코드를 실행합니다.

    자세한 내용은 명령 모드 바로 가기를 참조하세요.

  9. Notebook이 중단되거나 다시 시작하려는 경우 커널을 다시 시작하고 Notebook 셀을 처음부터 다시 실행할 수 있습니다. 커널을 다시 시작하면 변수 및 기타 상태가 삭제됩니다. 다시 시작한 후 초기화 및 인증 셀을 다시 실행합니다.

    다시 시작하려면 커널 작업>커널 다시 시작을 선택합니다. 예시:

    Notebook 커널을 다시 시작합니다.

Notebook에서 코드 실행

항상 Notebook 코드 셀을 순서대로 실행합니다. 셀을 건너뛰면 오류가 발생할 수 있습니다.

Notebook에서,

  • Markdown 셀에는 HTML을 포함한 텍스트와 정적 이미지가 있습니다.
  • 코드 셀에는 코드가 포함되어 있습니다. 코드 셀을 선택한 후 셀 왼쪽에서 재생 아이콘을 선택하거나 SHIFT+ENTER를 눌러 셀에서 코드를 실행합니다.

예를 들어 Notebook에서 다음 코드 셀을 실행합니다.

# This is your first code cell. This cell contains basic Python code.

# You can run a code cell by selecting it and then selecting
# the Play button to the left of the cell, or by pressing SHIFT+ENTER.
# Code output displays below the code.

print("Congratulations, you just ran this code cell")

y = 2 + 2

print("2 + 2 =", y)

샘플 코드는 다음 출력을 생성합니다.

Congratulations, you just ran this code cell

2 + 2 = 4

Notebook 코드 셀 내에 설정된 변수는 셀 간에 유지되므로 셀을 함께 연결할 수 있습니다. 예를 들어 다음 코드 셀은 이전 셀의 y 값을 사용합니다.

# Note that output from the last line of a cell is automatically
# sent to the output cell, without needing the print() function.

y + 2

출력은 다음과 같습니다.

6

모든 Microsoft Sentinel Notebook 다운로드

이 섹션에서는 Git을 사용하여 Microsoft Sentinel GitHub 리포지토리에서 사용할 수 있는 모든 Notebook을 Microsoft Sentinel Notebook 내부에서 Azure Machine Learning 작업 영역으로 직접 다운로드하는 방법을 설명합니다.

Microsoft Sentinel Notebook을 Azure Machine Learning 작업 영역에 저장하면 쉽게 업데이트할 수 있습니다.

  1. Microsoft Sentinel Notebook에서 다음 코드를 빈 셀에 입력한 다음, 셀을 실행합니다.

    !git clone https://github.com/Azure/Azure-Sentinel-Notebooks.git azure-sentinel-nb
    

    GitHub 리포지토리 콘텐츠의 복사본이 Azure Machine Learning 작업 영역의 사용자 폴더에 있는 azure-Sentinel-nb 디렉터리에 만들어집니다.

  2. 이 폴더에서 원하는 Notebook을 작업 디렉터리에 복사합니다.

  3. Notebook을 GitHub의 최근 변경 내용으로 업데이트하려면 다음을 실행합니다.

    !cd azure-sentinel-nb && git pull