개요

Datadog 애플리케이션 보안 관리(ASM)에서 예기치 않은 동작이 발생하는 경우, 하단에 언급된 것처럼 조사할 수 있는 일반적인 문제가 있습니다. 문제가 계속되면 Datadog 지원 팀에 문의하여 추가 지원을 받으세요.

ASM 속도 제한

ASM 트레이스는 전송 속도가 초당 100 트레이스로 제한됩니다. 한도 초과 후 전송된 트레이스는 보고되지 않습니다. 한도를 변경해야 하는 경우 Datadog 지원 팀에 문의하세요.

ASM가 보안 트레이스를 감지하지 않음

위협 정보가 ASM 트레이스 및 신호 탐색기에 표시되려면 일련의 단계를 성공적으로 실행해야 합니다. 본 문제를 조사할 때는 각 단계를 점검하는 것이 중요합니다. 특정 언어에 대한 추가 트러블슈팅 단계는 마지막의 언어 탭에서 확인할 수 있습니다.

ASM이 활성화되어 있는지 확인

ASM이 실행 중인 경우 메트릭 datadog.apm.appsec_host 점검을 사용합니다.

  1. Datadog에서 메트릭 > 요약으로 이동합니다.
  2. 메트릭 datadog.apm.appsec_host을 검색합니다. 메트릭이 없으면 ASM을 실행 중인 서비스가 없는 것입니다. 메트릭이 있는 경우 서비스는 메트릭 태그 hostservice와 함께 보고됩니다.
  3. 메트릭을 선택하고, 태그 섹션에서 service를 검색하여 어떤 서비스가 ASM을 실행 중인지 확인합니다.

datadog.apm.appsec_host가 표시되지 않는 경우 앱 내 지침을 확인하여 초기 설정의 모든 단계가 완료되었는지 확인합니다.

ASM 데이터는 애플리케이션 성능 모니터링(APM) 트레이스로 전송됩니다. 애플리케이션 성능 모니터링(APM) 트러블슈팅를 참조하여 애플리케이션 성능 모니터링 설치를 확인하고 연결 오류를 점검하세요.

애플리케이션에 테스트 공격 전송하기

ASM 설정을 테스트하려면 다음 Curl 스크립트가 포함된 파일을 실행하여 감지된 보안 스캐너 규칙을 트리거합니다.

for ((i=1;i<=250;i++));
do
# Target existing service's routes
curl https://your-application-url/existing-route -A dd-test-scanner-log;
# Target non existing service's routes
curl https://your-application-url/non-existing-route -A dd-test-scanner-log;
done

애플리케이션을 활성화 및 실행하고 몇 분 후 위협 정보가 트레이스 및 신호 탐색기에 표시됩니다.

태그, 메트릭, 제안 단계, 위협과 관련된 공격자 IP 주소를 나타내는 Security Signal 상세 페이지.

필요한 트레이서 통합이 비활성화되어있는지 점검

ASM은 특정 트레이서 통합에 의존합니다. 해당 통합이 비활성화되어 있으면 ASM이 작동하지 않습니다. 해당 통합이 비활성화되어 있는지 확인하려면 시작 로그에서 disabled_integrations을 검색합니다.

필요한 통합은 언어에 따라 다릅니다.

파이썬(Python)의 경우, WSGI 통합은 사용하는 프레임워크용 통합과 함께 필요합니다. Django 또는 Flask 통합이 이에 해당됩니다.

Datadog 에이전트 설정 점검

프로세스의 해당 단계 문제를 해결하려면 다음 작업을 수행합니다.

  • 이 주소 http://<agent-machine-name>:<agent-port>/info에서 실행 중인 에이전트의 세부 정보를 확인합니다(보통 http://localhost:8126/info).
  • 트레이서 로그에 스팬(span)과 관련된 에이전트 전송 오류가 없는지 확인합니다.
  • 에이전트가 별도의 머신에 설치된 경우 DD_AGENT_HOST를 확인하고, 옵션으로 DD_TRACE_AGENT_PORT가 설정되거나 DD_TRACE_AGENT_URL가 애플리케이션 추적 라이브러리용으로 설정되었는지 확인합니다.

스팬(span)이 Datadog으로 성공적으로 전송되었는지 확인

ASM 데이터는 스팬(span)을 통해 전송됩니다. 스팬(span)이 Datadog으로 성공적으로 전송되었는지 확인하려면 트레이서 로그에 다음과 유사한 로그가 포함되어 있는지 확인합니다.

2021-11-29 21:19:58 CET | TRACE | INFO | (pkg/trace/info/stats.go:111 in LogStats) | [lang:.NET lang_version:5.0.10 interpreter:.NET tracer_version:1.30.1.0 endpoint_version:v0.4] -> traces received: 2, traces filtered: 0, traces amount: 1230 bytes, events extracted: 0, events sampled: 0

스팬(span)이 전송되지 않는 경우 트레이서 로그에는 다음과 유사한 로그가 포함됩니다.

2021-11-29 21:18:48 CET | TRACE | INFO | (pkg/trace/info/stats.go:104 in LogStats) | No data received

언어별 트러블슈팅

다음은 특정 언어별 추가 트러블슈팅 단계입니다.

파이썬(Python) 애플리케이션의 트레이스 및 신호 탐색기에 ASM 위협 정보가 표시되지 않는 경우, ASM이 실행 중이고 트레이서가 작동 중인지 확인하세요.

  1. 애플리케이션의 로그 레벨을 DEBUG로 설정하여 ASM이 실행 중인지 확인합니다.

    import logging
    logging.basicConfig(level=logging.DEBUG)
    

    그런 다음 애플리케이션에 대한 HTTP 호출을 실행합니다. 다음 로그가 표시되어야 합니다.

    DEBUG:ddtrace.appsec.processor:[DDAS-001-00] Executing AppSec In-App WAF with parameters:
    

    로그가 없다면 ASM이 실행되지 않는 것입니다.

  2. 트레이서가 작동하나요? 애플리케이션 성능 모니터링(APM) 대시보드에서 관련 트레이스를 확인할 수 있나요?

    ASM은 트레이서에 의존하므로 트레이스가 표시되지 않으면 트레이서가 작동하지 않는 것일 수도 있습니다. 애플리케이션 성능 모니터링(APM) 트러블슈팅을 참조하세요.

소프트웨어 구성 분석으로 탐지된 취약점이 없음

취약점 정보가 소프트웨어 카탈로그 보안 보기 또는 취약점 탐색기에 표시되려면 일련의 단계가 성공적으로 실행되어야 합니다. 이 문제를 조사할 때는 각 단계를 점검하는 것이 중요합니다.

ASM이 활성화되어 있는지 확인

ASM이 실행 중인 경우 메트릭 datadog.apm.appsec_host 점검을 사용합니다.

  1. Datadog에서 메트릭 > 요약으로 이동합니다.
  2. 메트릭 datadog.apm.appsec_host을 검색합니다. 메트릭이 없으면 ASM을 실행 중인 서비스가 없는 것입니다. 메트릭이 있는 경우 서비스는 메트릭 태그 hostservice와 함께 보고됩니다.
  3. 메트릭을 선택하고, 태그 섹션에서 service를 검색하여 어떤 서비스가 ASM을 실행 중인지 확인합니다.

datadog.apm.appsec_host가 표시되지 않는 경우 앱 내 지침을 확인하여 초기 설정의 모든 단계가 완료되었는지 확인합니다.

ASM 데이터는 애플리케이션 성능 모니터링(APM) 트레이스로 전송됩니다. 애플리케이션 성능 모니터링(APM) 트러블슈팅를 참조하여 애플리케이션 성능 모니터링 설치를 확인하고 연결 오류를 점검하세요.

트레이서 버전이 업데이트되었는지 확인

올바른 버전의 트레이서를 사용하고 있는지 확인하려면 애플리케이션 보안 프로덕트 설정 설명서를 참조하세요. 라이브러리 정보가 포함된 텔레메트리 데이터 전송을 시작하려면 해당 최소 버전이 필요합니다.

텔레메트리 데이터 통신 확인

DD_INSTRUMENTATION_TELEMETRY_ENABLED 환경 변수(Node.js의 경우DD_TRACE_TELEMETRY_ENABLED)가 true로 설정되어 있거나 고객님이 사용하는 언어에 해당하는 시스템 속성이 활성화되어 있는지 확인합니다. 예를 들어 자바(Java)의 경우 -Ddd.instrumentation.telemetry.enabled=true입니다.

위협 관리 및 보호 비활성화하기

위협 관리를 비활성화하려면 애플리케이션 설정에서 DD_APPSEC_ENABLED=true 환경 변수를 삭제하고 서비스를 다시 시작합니다.

서비스에 DD_APPSEC_ENABLED=true 환경 변수가 설정되어 있지 않은 경우 다음 작업 중 하나를 수행합니다.

  • PHP 서비스의 경우 환경 변수를 DD_APPSEC_ENABLED=false로 명시적으로 설정하고 서비스를 다시 시작합니다.
  • 원격 설정으로 위협 관리를 활성화한 경우 다음 작업을 수행합니다.
    1. 서비스(ASM > 카탈로그 > 서비스)로 이동합니다.
    2. 모니터링 모드에서 위협 관리를 선택합니다.
    3. 위협 관리 패싯에서 모니터링 전용, 데이터 없음, 차단 준비를 활성화합니다.
    4. 서비스를 클릭합니다.
    5. 서비스 세부 정보의 위협 탐지에서 비활성화를 클릭합니다.
원격 설정으로 위협 관리를 활성화한 경우 비활성화 버튼을 사용할 수 있습니다. 로컬 설정으로 위협 관리를 활성화한 경우 비활성화 버튼은 옵션이 아닙니다.
  • 서비스에서 위협 관리를 사용하지 않도록 일괄 설정하려면 다음에 따릅니다.
    1. 서비스로 이동합니다.
    2. 위협 관리 패싯에서 모니터링 전용, 데이터 없음, 차단 준비를 활성화합니다.
    3. 위협 탐지를 사용하지 않도록 설정하려는 서비스의 점검 확인란을 선택합니다.
    4. 일괄 작업에서 서비스(개수)에 대한 위협 탐지 비활성화를 선택합니다.

코드 보안 비활성화

코드 보안을 비활성화하려면 애플리케이션 설정에서 DD_IAST_ENABLED=true 환경 변수를 삭제하거나 falseDD_IAST_ENABLED=false로 설정하고 서비스를 다시 시작합니다.

더 많은 지원이 필요하세요?

ASM에 계속 문제가 있는 경우 다음 정보와 함께 Datadog 지원 팀으로 문의하세요.

참고 자료

PREVIEWING: joepeeples/10234-ci-health
Your Privacy Choices