개요

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

참고: dd-test-scanner-log 값은 최신 릴리스에서 지원됩니다.

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

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

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

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

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

PHP의 경우 본 통합이 필요하지 않습니다.

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

언어별 트러블슈팅

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

PHP의 경우 Datadog ASM 확장으로 문제 트러블슈팅을 시작하려면 ASM 확장 .ini 파일에서 디버그 로그를 사용하도록 설정합니다.

확장자의 ini 파일은 보통 /etc/php/<version>/xxx/conf.d/98-ddtrace.ini에서 찾을 수 있지만, 위치는 설치 환경에 따라 다를 수 있습니다. phpinfo() 출력값의 시작 부분을 확인하여 .ini 파일을 스캔하는 디렉토리가 있는지 확인합니다(해당되는 경우). .ini 파일에서 다음 설정 옵션을 아래와 같이 설정합니다.

datadog.appsec.log_level='debug'
datadog.appsec.helper_extra_args='--log_level=debug'
datadog.appsec.helper_log_file='/tmp/helper.log'

확장 출력값은 로그를 기본 php_error 로그 파일에 저장합니다. 파일에 로그가 없는 경우 .ini 파일에 다음을 추가합니다.

datadog.appsec.log_file='tmp/extension.log'

설치 중 PHP 찾기 실패

설치 스크립트에서 올바른 PHP 버전을 찾을 수 없는 경우 --php-bin을 PHP 바이너리 위치로 설정할 수 있습니다. 예시:

$ php datadog-setup.php --php-bin /usr/bin/php7.4 --enable-appsec

도우미 연결 실패

ASM 확장이 도우미 프로세스와 연결할 수 없는 경우 다음 경고 메시지가 표시됩니다.

PHP Warning:  Unknown: [ddappsec] Connection to helper failed and we are not going to attempt to launch it: dd_error

경고 뒤에 다음 오류 메시지 중 하나가 표시될 수 있습니다.

PHP Warning:  Unknown: [ddappsec] Could not open lock file /tmp/ddappsec.lock: Permission denied in Unknown on line 0
PHP Warning:  Unknown: [ddappsec] Call to bind() failed: Permission denied
PHP Warning:  Unknown: [ddappsec] Failed to unlink /tmp/ddappsec.sock: Operation not permitted

이는 확장이 사용하는 잠금 파일 또는 소켓 파일의 권한이 올바르지 않거나, PHP 프로세스를 실행하는 사용자에게 tmp 디렉토리 쓰기 권한이 없음을 나타냅니다.

잠금 파일이나 소켓 파일의 권한이 올바르지 않은 경우, 해당 파일을 삭제하고 Apache/FPM을 다시 시작하거나 user:group을 Apache/FPM에서 사용된 권한과 일치하도록 조정할 수 있습니다(예: www-data).

사용자가 tmp 디렉터리 쓰기 권한이 없는 경우 확장의 .ini 파일에서 다음 설정을 수정하여 잠금 파일 및 소켓 파일의 위치를 변경합니다.

datadog.appsec.helper_runtime_path = /<directory with compatible permissions>/

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

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

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: vishalshah/add-missing-functions-sql-reference
Your Privacy Choices