SAP BTP용 Microsoft Sentinel 솔루션 배포

이 문서에서는 SAP BTP(비즈니스 기술 플랫폼) 시스템용 Microsoft Sentinel 솔루션을 배포하는 방법을 설명합니다. SAP BTP용 Microsoft Sentinel 솔루션은 SAP BTP 시스템을 모니터링하고 보호합니다. BTP 인프라 및 BTP 기반 앱에서 감사 로그와 활동 로그를 수집한 다음 위협, 의심스러운 활동, 불법 작업 등을 검색합니다. 솔루션에 대해 자세히 알아보세요.

필수 조건

시작하기 전에 다음을 수행했는지 확인합니다.

  • Microsoft Sentinel 솔루션이 사용하도록 설정되어 있습니다.
  • 정의된 Microsoft Sentinel 작업 영역이 있으며 작업 영역에 대한 읽기 및 쓰기 권한이 있습니다.
  • 조직에서 SAP BTP(Cloud Foundry 환경)를 사용하여 SAP 애플리케이션 및 기타 비즈니스 애플리케이션과의 상호 작용을 간소화합니다.
  • (Cloud Foundry 환경에서 BTP 계정을 지원하는) SAP BTP 계정이 있습니다. SAP BTP 평가판 계정을 사용할 수도 있습니다.
  • SAP BTP auditlog-management 서비스 및 서비스 키가 있습니다( BTP 계정 및 솔루션 설정 참조).
  • 대상 Microsoft Sentinel 작업 영역에 대한 Microsoft Sentinel 기여자 역할이 있습니다.

BTP 계정 및 솔루션 설정

BTP 계정 및 솔루션을 설정하려면 다음을 수행합니다.

  1. BTP 계정에 로그인할 수 있게 되면(필수 조건 참조) SAP BTP 시스템에서 감사 로그 검색 단계를 따릅니다.

  2. SAP BTP Cockpit에서 감사 로그 관리 서비스를 선택합니다.

    BTP 감사 로그 관리 서비스 선택을 보여 주는 스크린샷.

  3. BTP 하위 계정에 감사 로그 관리 서비스의 인스턴스를 만듭니다.

    BTP 하위 계정의 인스턴스 만들기를 보여 주는 스크린샷.

  4. 서비스 키를 만들고 url, uaa.clientid, uaa.clientecretuaa.url의 값을 기록합니다. 이러한 값은 데이터 커넥터를 배포하는 데 필요합니다.

    다음은 이러한 필드 값의 예입니다.

    • url: https://auditlog-management.cfapps.us10.hana.ondemand.com
    • uaa.clientid: 00001111-aaaa-2222-bbbb-3333cccc4444|auditlog-management!b1237
    • uaa.clientsecret: aaaaaaaa-0b0b-1c1c-2d2d-333333333333
    • uaa.url: https://trial.authentication.us10.hana.ondemand.com
  5. Azure Portal에 로그인합니다.

  6. Microsoft Sentinel 서비스로 이동합니다.

  7. 콘텐츠 허브를 선택하고 검색 창에서 BTP를 검색합니다.

  8. SAP BTP를 선택합니다.

  9. 설치를 선택합니다.

    솔루션 구성 요소를 관리하는 방법에 대한 자세한 내용은 기본 제공 콘텐츠 검색 및 배포를 참조하세요.

  10. 만들기를 실행합니다.

    SAP BTP용 Microsoft Sentinel 솔루션을 만드는 방법을 보여 주는 스크린샷.

  11. 솔루션을 배포할 리소스 그룹과 Microsoft Sentinel 작업 영역을 선택합니다.

  12. 유효성 검사를 통과할 때까지 다음을 선택한 후 만들기를 선택합니다.

  13. 솔루션 배포가 완료되면 Microsoft Sentinel 작업 영역으로 돌아가서 데이터 커넥터를 선택합니다.

  14. 검색 창에 BTP를 입력한 다음 SAP BTP를 선택합니다.

  15. 커넥터 페이지 열기를 선택합니다.

  16. 커넥터 페이지에 나열된 필수 조건을 충족하는지 확인하고 구성 단계를 완료합니다. 준비가 되면 계정 추가를 선택합니다.

  17. 구성 중에 이전에 정의한 매개 변수를 지정합니다. 지정된 하위 계정 이름은 SAPBTPAuditLog_CL 테이블의 열로 예상되며 하위 계정이 여러 개인 경우 로그를 필터링하는 데 사용할 수 있습니다.

    참고 항목

    전역 계정에 대한 감사를 검색해도 하위 계정에 대한 감사가 자동으로 검색되지는 않습니다. 모니터링하려는 각 하위 계정에 대한 커넥터 구성 단계를 따르고 전역 계정에 대해서도 다음 단계를 수행합니다. 이러한 계정 감사 구성 고려 사항을 검토합니다.

  18. BTP 로그가 Microsoft Sentinel 작업 영역으로 흐르는지 확인합니다.

    1. BTP 하위 계정에 로그인하고 로그인, 사용자 추가, 권한 변경, 설정 변경 등 로그를 생성하는 몇 가지 작업을 실행합니다.
    2. 로그가 흐르기 시작하는 데 20~30분 정도 걸립니다.
    3. SAP BTP 커넥터 페이지에서 Microsoft Sentinel이 BTP 데이터를 수신하는지 확인하거나 SAPBTPAuditLog_CL 테이블을 직접 쿼리합니다.
  19. 이 지침에 따라 솔루션의 일부로 제공되는 통합 문서분석 규칙을 사용하도록 설정합니다.

계정 감사 구성 고려

배포 프로세스의 마지막 단계는 전역 계정 및 하위 계정 감사 구성을 고려하는 것입니다.

전역 계정 감사 구성

전역 계정에 대한 BTP Cockpit에서 감사 로그 검색을 사용하도록 설정할 때: 감사 로그 관리 서비스에 대한 권한을 부여하려는 하위 계정이 디렉터리 아래에 있는 경우 먼저 디렉터리 수준에서 서비스에 대한 권한을 부여해야 합니다. 그래야만 하위 계정 수준에서 서비스 권한을 부여할 수 있습니다.

하위 계정 감사 구성

하위 계정에 대한 감사를 사용하도록 설정하려면 SAP 하위 계정 감사 검색 API 설명서의 단계를 완료합니다.

API 설명서에서는 Cloud Foundry CLI를 사용하여 감사 로그 검색을 사용하도록 설정하는 방법을 설명합니다.

UI를 통해 로그를 검색할 수도 있습니다.

  1. SAP Service Marketplace의 하위 계정에서 감사 로그 관리 서비스 인스턴스를 만듭니다.
  2. 새 인스턴스에서 서비스 키를 만듭니다.
  3. 서비스 키를 보고 데이터 커넥터 UI 구성 지침의 4단계에서 필수 매개 변수를 검색합니다(url, uaa.url, uaa.clientid, 및 uaa.clientsecret).

BTP 클라이언트 암호 회전

BPT 하위 계정 클라이언트 암호를 주기적으로 회전하는 것이 좋습니다. 다음 샘플 스크립트는 Azure Key Vault에서 가져온 새 비밀로 기존 데이터 커넥터를 업데이트하는 프로세스를 보여 줍니다.

시작하기 전에 다음을 포함하여 스크립트 매개 변수에 필요한 값을 수집합니다.

  • Microsoft Sentinel 작업 영역에 대한 구독 ID, 리소스 그룹 및 작업 영역 이름입니다.
  • 키 자격 증명 모음 및 키 자격 증명 모음 비밀의 이름입니다.
  • 새 비밀로 업데이트하려는 데이터 커넥터의 이름입니다. 데이터 커넥터 이름을 식별하려면 Microsoft Sentinel 데이터 커넥터 페이지에서 SAP BPT 데이터 커넥터를 엽니다. 데이터 커넥터 이름의 구문은 다음과 같습니다. BTP_{커넥터 이름}
param(
    [Parameter(Mandatory = $true)] [string]$subscriptionId,
    [Parameter(Mandatory = $true)] [string]$workspaceName,
    [Parameter(Mandatory = $true)] [string]$resourceGroupName,
    [Parameter(Mandatory = $true)] [string]$connectorName,
    [Parameter(Mandatory = $true)] [string]$clientId,
    [Parameter(Mandatory = $true)] [string]$keyVaultName,
    [Parameter(Mandatory = $true)] [string]$secretName
)

# Import the required modules
Import-Module Az.Accounts
Import-Module Az.KeyVault

try {
    # Login to Azure
    Login-AzAccount

    # Retrieve BTP client secret from Key Vault
    $clientSecret = (Get-AzKeyVaultSecret -VaultName $keyVaultName -Name $secretName).SecretValue
    if (!($clientSecret)) {
        throw "Failed to retrieve the client secret from Azure Key Vault"
    }

    # Get the connector from data connectors API
    $path = "/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.OperationalInsights/workspaces/{2}/providers/Microsoft.SecurityInsights/dataConnectors/{3}?api-version=2024-01-01-preview" -f $subscriptionId, $resourceGroupName, $workspaceName, $connectorName
    $connector = (Invoke-AzRestMethod -Path $path -Method GET).Content | ConvertFrom-Json
    if (!($connector)) {
        throw "Failed to retrieve the connector"
    }

    # Add the updated client ID and client secret to the connector
    $connector.properties.auth | Add-Member -Type NoteProperty -Name "clientId" -Value $clientId
    $connector.properties.auth | Add-Member -Type NoteProperty -Name "clientSecret" -Value ($clientSecret | ConvertFrom-SecureString -AsPlainText)

    # Update the connector with the new auth object
    Invoke-AzRestMethod -Path $path -Method PUT -Payload ($connector | ConvertTo-Json -Depth 10)
}
catch {
    Write-Error "An error occurred: $_"
}