고급 헌팅 API
적용 대상:
엔드포인트용 Microsoft Defender를 경험하고 싶으신가요? 무료 평가판을 신청하세요.
참고
미국 정부 고객인 경우 미국 정부 고객용 끝점용 Microsoft Defender에나열된 URIS를 사용하시기 바랍니다.
팁
성능을 향상시키려면 서버를 지리적 위치에 더 가깝게 사용할 수 있습니다.
- api-us.securitycenter.microsoft.com
- api-eu.securitycenter.microsoft.com
- api-uk.securitycenter.microsoft.com
참고
이 API는 엔드포인트용 Microsoft Defender 속하는 테이블만 쿼리할 수 있습니다. 다른 Microsoft 365 Defender 서비스에 속하는 테이블에는 Microsoft 365 Defender 고급 헌팅 API를 사용해야 합니다.
제한 사항
지난 30일 동안의 데이터에 대해서만 쿼리를 실행할 수 있습니다.
결과에는 최대 100,000개의 행이 포함됩니다.
테넌트당 실행 수가 제한됩니다.
- API 호출: 분당 최대 45개의 호출, 시간당 최대 1,500개의 호출
- 실행 시간: 1시간마다 10분의 실행 시간 및 하루 3시간의 실행 시간입니다.
단일 요청의 최대 실행 시간은 200초입니다.
429 응답은 요청 수 또는 CPU별로 할당량 한도에 도달하는 것을 나타냅니다. 응답 본문을 읽어 어떤 제한에 도달했는지 이해합니다.
단일 요청의 최대 쿼리 결과 크기는 124MB를 초과할 수 없습니다. 초과하면 HTTP 400 잘못된 요청이 "쿼리 실행이 허용된 결과 크기를 초과했습니다. 결과 수를 제한하여 쿼리를 최적화하고 다시 시도하세요."
사용 권한
이 API를 호출하려면 다음 권한 중 하나가 필요합니다. 사용 권한을 선택하는 방법을 포함하여 자세한 내용은 엔드포인트용 Microsoft Defender API 사용을 참조하세요.
| 사용 권한 유형 | 사용 권한 | 사용 권한 표시 이름 |
|---|---|---|
| 응용 프로그램 | AdvancedQuery.Read.All | '고급 쿼리 실행' |
| 위임됨(회사 또는 학교 계정) | AdvancedQuery.Read | '고급 쿼리 실행' |
참고
사용자 자격 증명을 사용하여 토큰을 가져오는 경우:
- 사용자에게 '데이터 보기' AD 역할이 있어야 합니다.
- 사용자는 디바이스 그룹 설정에 따라 디바이스에 액세스할 수 있어야 합니다(자세한 내용은 디바이스 그룹 만들기 및 관리 참조).
HTTP 요청
POST https://api.securitycenter.microsoft.com/api/advancedqueries/run
요청 헤더
| 헤더 | 값 |
|---|---|
| 권한 부여 | 전달자 {token}. 필수입니다. |
| Content-Type | application/json |
요청 본문
요청 본문에서 JSON 개체에 다음 매개 변수를 제공합니다.
| 매개 변수 | 유형 | 설명 |
|---|---|---|
| 쿼리 | 텍스트 | 실행할 쿼리입니다. 필수입니다. |
응답
성공하면 이 메서드는 응답 본문에 200 OK 및 QueryResponse 개체를 반환합니다.
예제
요청 예제
다음은 요청의 예입니다.
POST https://api.securitycenter.microsoft.com/api/advancedqueries/run
{
"Query":"DeviceProcessEvents
|where InitiatingProcessFileName =~ 'powershell.exe'
|where ProcessCommandLine contains 'appdata'
|project Timestamp, FileName, InitiatingProcessFileName, DeviceId
|limit 2"
}
응답 예제
다음은 응답의 예입니다.
참고
여기에 표시된 응답 개체는 간결하게 잘립니다. 모든 속성은 실제 호출에서 반환됩니다.
{
"Schema": [
{
"Name": "Timestamp",
"Type": "DateTime"
},
{
"Name": "FileName",
"Type": "String"
},
{
"Name": "InitiatingProcessFileName",
"Type": "String"
},
{
"Name": "DeviceId",
"Type": "String"
}
],
"Results": [
{
"Timestamp": "2020-02-05T01:10:26.2648757Z",
"FileName": "csc.exe",
"InitiatingProcessFileName": "powershell.exe",
"DeviceId": "10cbf9182d4e95660362f65cfa67c7731f62fdb3"
},
{
"Timestamp": "2020-02-05T01:10:26.5614772Z",
"FileName": "csc.exe",
"InitiatingProcessFileName": "powershell.exe",
"DeviceId": "10cbf9182d4e95660362f65cfa67c7731f62fdb3"
}
]
}