개요
Microsoft Defender XDR 통합(INT-021)은 Microsoft Defender for Endpoint(MDE) 및 Microsoft Defender XDR를 포함한 Microsoft의 확장 탐지 및 대응 플랫폼과 CaseBender 간에 양방향 동기화를 제공합니다.인바운드 수집
Defender 알림 및 인시던트가 CaseBender로 수집되어 정규화되고, 관찰 가능 항목과 MITRE
ATT&CK 기법으로 보강되어 알림/케이스로 변환됩니다.
아웃바운드 동기화
CaseBender 케이스가 종료되면 연결된 Defender 알림/인시던트가 Microsoft Graph를 통해 상태,
분류 및 감사 코멘트와 함께 업데이트됩니다.
이 통합은 Microsoft Graph 보안 API(
https://graph.microsoft.com/v1.0/security)를
사용합니다. OAuth2 클라이언트 자격 증명 흐름을 사용하여 Azure AD(Entra ID) 애플리케이션으로
인증합니다.기능
| 기능 | 방향 | 설명 |
|---|---|---|
| 알림 수집 | 인바운드 | Defender 알림을 CaseBender 알림으로 정규화 |
| 인시던트 수집 | 인바운드 | Defender 인시던트(하위 알림 포함) 수집 |
| 관찰 가능 항목 추출 | 인바운드 | 증거에서 IP, URL, 파일 해시, 파일 이름, 호스트 이름, 사용자 계정 추출 |
| 자산 추출 | 인바운드 | devices[]에서 디바이스 호스트 이름, IP, OS 플랫폼 캡처 |
| MITRE ATT&CK 상관 관계 | 인바운드 | 기법 ID를 태그 및 TTP로 추가(예: mitre:T1078) |
| 알림 동기화 | 아웃바운드 | 케이스 종료 시 status, classification, determination, 코멘트 전송 |
| 인시던트 동기화 | 아웃바운드 | 케이스 종료 시 status, classification, determination, 코멘트 전송 |
| 연결 테스트 | 양방향 | OAuth2 자격 증명 및 Graph 보안 API 액세스 검증 |
사전 요구 사항
Microsoft Defender / Entra ID 액세스
Microsoft Defender XDR 또는 Microsoft Defender for Endpoint가 라이선스되고 활성화된
Microsoft Entra ID(Azure AD) 테넌트. 애플리케이션을 등록하고 관리자 동의를 부여할 권한이
필요합니다.
네트워크 송신
CaseBender 배포는 다음에 연결할 수 있어야 합니다:
https://login.microsoftonline.com(OAuth2 토큰 엔드포인트)https://graph.microsoft.com(Graph 보안 API)
파트 A — Azure AD 애플리케이션 등록
앱 등록 생성
Microsoft Entra 관리 센터에서 ID → 애플리케이션 →
앱 등록 → 새 등록으로 이동합니다. 이름(예:
CaseBender Defender Integration)을 지정하고
등록합니다.파트 B — CaseBender에서 통합 구성
Azure AD 자격 증명 입력
파트 A에서 캡처한 값을 입력합니다:
| 필드 | 설명 |
|---|---|
tenantId | 디렉터리(테넌트) ID |
clientId | 애플리케이션(클라이언트) ID |
clientSecret | 클라이언트 비밀 값 |
동기화 옵션 구성
필요한 동작을 활성화합니다:
| 옵션 | 효과 |
|---|---|
syncCaseUpdates | 케이스 업데이트를 Defender로 전송 |
syncCaseClose | 케이스 종료를 Defender로 전송 |
autoCreateCases | 수집된 Defender 인시던트에서 케이스 자동 생성 |
closeAlertsOnCaseClose | 케이스 종료 시 연결된 Defender 알림 해결 |
closeIncidentsOnCaseClose | 케이스 종료 시 연결된 Defender 인시던트 해결 |
인바운드: Defender 알림 및 인시던트 수집
엔드포인트
Defender(또는 Logic Apps, Sentinel, 웹훅 전달자와 같은 중개자)는 알림/인시던트 페이로드를 CaseBender 수집 엔드포인트로 전송합니다:x-api-key 헤더의 통합 API 키로 인증됩니다(authorization: Bearer <key> 헤더도
허용됨). Defender 웹훅 API 키에는 sk_def_ 접두사가 붙습니다.
페이로드 형식
배치 형식(Graphvalue[] 배열)과 단일 알림 개체가 모두 지원됩니다.
202 Accepted를 반환합니다:
처리 파이프라인
데이터 매핑 참조
심각도 매핑(Defender → CaseBender 1–4):| Defender 심각도 | CaseBender 심각도 |
|---|---|
high | 1 |
medium | 2 |
low | 3 |
informational | 4 |
unknown | 3 |
evidence[]에서):
| 증거 필드 | 관찰 가능 항목 유형 |
|---|---|
ipAddress | ip |
url | url |
sha256 | hash |
fileName | filename |
deviceDnsName | hostname |
userAccount | user(DOMAIN\account) |
defender, xdr, service:<serviceSource>,
category:<category>, incident(인시던트의 경우), 그리고 각 MITRE 기법당 하나의
mitre:<technique> 태그가 포함됩니다. 수집된 레코드는 기본적으로 TLP:2 및 PAP:2를
사용합니다.
아웃바운드: 케이스 처리 결과를 Defender로 동기화
CaseBender에서 케이스가 종료되면case_closed 이벤트가 Defender 핸들러로 디스패치됩니다.
케이스가 Defender 알림 또는 인시던트에 연결되어 있으면 CaseBender는 Graph 보안 API를 통해
해결 결과를 전송합니다.
연결된 Defender 엔터티가 해결되는 방식
핸들러는 다음 순서로 Defender 식별자를 찾습니다:extraData.defenderAlertId/extraData.defenderIncidentIdextraData.source === "defender"일 때sourceRef- Defender 알림 참조처럼 보일 때
sourceRef(접두사da)
해결 → 분류 매핑
| CaseBender 해결 | Defender 분류 |
|---|---|
TruePositive | truePositive |
FalsePositive | falsePositive |
Duplicate | informationalExpectedActivity |
NoImpact | informationalExpectedActivity |
| (기타 / 없음) | truePositive(기본값) |
status를 resolved로 설정하고, 매핑된 classification을
적용하며, 다음과 같은 코멘트를 추가합니다:
아웃바운드 알림 업데이트에는
closeAlertsOnCaseClose가 활성화되어야 하며, 인시던트
업데이트에는 closeIncidentsOnCaseClose가 필요합니다. 둘 다 활성화되지 않으면 아웃바운드
동기화가 발생하지 않습니다.보안 고려 사항
- 비밀 처리 — 클라이언트 비밀은 통합 설정에 저장됩니다. 조직에서 요구하는 일정에 따라 교체하고 교체 시 통합을 업데이트하십시오.
- 최소 권한 —
SecurityAlert.ReadWrite.All및SecurityIncident.ReadWrite.All만 부여하십시오. 더 광범위한 Graph 범위를 추가하지 마십시오. - 토큰 캐싱 — 액세스 토큰은 통합별로 메모리에 캐시되고 만료 1분 전에 갱신됩니다. 토큰은 디스크에 유지되지 않습니다.
- 웹훅 키 —
sk_def_API 키를 비밀로 취급하십시오. 노출되면 교체하고 발신자 구성을 업데이트하십시오. - 네트워크 — 송신을
login.microsoftonline.com및graph.microsoft.com으로 제한하십시오.
문제 해결
연결 테스트가 OAuth2 오류로 실패함
연결 테스트가 OAuth2 오류로 실패함
tenantId, clientId, clientSecret을 확인하십시오. 클라이언트 비밀이 만료되지 않았고
Graph 애플리케이션 권한에 대해 관리자 동의가 부여되었는지 확인하십시오.수집이 401 Unauthorized를 반환함
수집이 401 Unauthorized를 반환함
수집이 400 'No alerts in payload'를 반환함
수집이 400 'No alerts in payload'를 반환함
페이로드에
value[] 배열이나 최상위 id가 없습니다. Graph 배치 개체 또는 단일 알림 개체를
보내십시오.케이스 종료가 Defender를 업데이트하지 않음
케이스 종료가 Defender를 업데이트하지 않음
closeAlertsOnCaseClose / closeIncidentsOnCaseClose가 활성화되어 있고 케이스에 Defender
알림/인시던트 ID(extraData 또는 sourceRef를 통해)가 있는지 확인하십시오.아웃바운드 업데이트가 403을 반환함
아웃바운드 업데이트가 403을 반환함
Azure AD 앱에 쓰기 권한이 없습니다.
SecurityAlert.ReadWrite.All 및
SecurityIncident.ReadWrite.All이 관리자 동의와 함께 부여되었는지 확인하십시오.