Share via


Linux에서 엔드포인트용 Microsoft Defender 성능 문제 해결

적용 대상:

엔드포인트용 Defender를 경험하고 싶으신가요? 무료 평가판을 신청하세요.

이 문서에서는 사용 가능한 진단 도구를 사용하여 기존 리소스 부족 및 시스템을 이러한 상황으로 만드는 프로세스를 이해하고 완화할 수 있도록 Linux의 엔드포인트용 Defender와 관련된 성능 문제를 좁히는 방법에 대한 지침을 제공합니다. 성능 문제는 주로 시스템의 리소스 사용률 프로필에 따라 하나 이상의 하드웨어 하위 시스템에서 병목 현상으로 인해 발생합니다. 경우에 따라 애플리케이션은 디스크 I/O 리소스에 민감하고 더 많은 CPU 용량이 필요할 수 있으며 일부 구성이 지속 가능하지 않고 너무 많은 새 프로세스를 트리거하고 너무 많은 파일 설명자를 열 수 있습니다.

실행 중인 애플리케이션 및 디바이스 특성에 따라 Linux에서 엔드포인트용 Defender를 실행할 때 최적이 아닐 수 있습니다. 특히 짧은 시간 동안 CPU, 디스크 및 메모리와 같은 많은 리소스에 액세스하는 애플리케이션 또는 시스템 프로세스는 Linux의 엔드포인트용 Defender에서 성능 문제를 야기할 수 있습니다.

경고

시작하기 전에 다른 보안 제품이 현재 디바이스에서 실행되고 있지 않은지 확인하세요. 여러 보안 제품이 충돌하여 호스트 성능에 영향을 미칠 수 있습니다.

실시간 보호 통계를 사용하여 성능 문제 해결

적용 대상:

  • AV와 관련된 성능 문제만

RTP(실시간 보호)는 위협으로부터 디바이스를 지속적으로 모니터링하고 보호하는 Linux의 엔드포인트용 Defender 기능입니다. 파일 및 프로세스 모니터링 및 기타 추론으로 구성됩니다.

다음 단계를 사용하여 이러한 문제를 해결하고 완화할 수 있습니다.

  1. 다음 방법 중 하나를 사용하여 실시간 보호를 사용하지 않도록 설정하고 성능이 향상되는지 확인합니다. 이 방법은 Linux의 엔드포인트용 Defender가 성능 문제에 기여하는지 여부를 좁히는 데 도움이 됩니다.

    organization 디바이스를 관리하지 않는 경우 명령줄에서 실시간 보호를 사용하지 않도록 설정할 수 있습니다.

    mdatp config real-time-protection --value disabled
    
    Configuration property updated
    

    organization 디바이스를 관리하는 경우 Linux의 엔드포인트용 Defender 기본 설정의 지침을 사용하여 관리자가 실시간 보호를 사용하지 않도록 설정할 수 있습니다.

    참고

    실시간 보호가 해제된 동안 성능 문제가 지속되면 문제의 원본은 EDR(엔드포인트 검색 및 응답) 구성 요소일 수 있습니다. 이 경우 이 문서의 엔드포인트용 Microsoft Defender Client Analyzer를 사용하여 성능 문제 해결 섹션의 단계를 수행하세요.

  2. 가장 많은 검사를 트리거하는 애플리케이션을 찾으려면 Linux의 엔드포인트용 Defender에서 수집한 실시간 통계를 사용할 수 있습니다.

    참고

    이 기능은 버전 100.90.70 이상에서 사용할 수 있습니다.

    이 기능은 및 InsiderFast 채널에서 Dogfood 기본적으로 사용하도록 설정됩니다. 다른 업데이트 채널을 사용하는 경우 명령줄에서 이 기능을 사용하도록 설정할 수 있습니다.

    mdatp config real-time-protection-statistics --value enabled
    

    이 기능을 사용하려면 실시간 보호가 필요합니다. 실시간 보호의 상태 검사 다음 명령을 실행합니다.

    mdatp health --field real_time_protection_enabled
    

    항목이 real_time_protection_enabled 인지 확인합니다 true. 그렇지 않으면 다음 명령을 실행하여 사용하도록 설정합니다.

    mdatp config real-time-protection --value enabled
    
    Configuration property updated
    

    현재 통계를 수집하려면 다음을 실행합니다.

    mdatp diagnostic real-time-protection-statistics --output json
    

    참고

    (이중 대시 참고)를 사용하면 --output json 출력 형식이 구문 분석할 준비가 되었는지 확인합니다.

    이 명령의 출력에는 모든 프로세스 및 관련 검사 작업이 표시됩니다.

  3. Linux 시스템에서 명령을 사용하여 샘플 Python 파서 high_cpu_parser.py 다운로드합니다.

    wget -c https://raw.githubusercontent.com/microsoft/mdatp-xplat/master/linux/diagnostic/high_cpu_parser.py
    

    이 명령의 출력은 다음과 유사해야 합니다.

    --2020-11-14 11:27:27-- https://raw.githubusercontent.com/microsoft.mdatp-xplat/master/linus/diagnostic/high_cpu_parser.py
    Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.xxx.xxx
    Connecting to raw.githubusercontent.com (raw.githubusercontent.com)| 151.101.xxx.xxx| :443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 1020 [text/plain]
    Saving to: 'high_cpu_parser.py'
    100%[===========================================>] 1,020    --.-K/s   in 0s
    
  4. 다음으로 다음 명령을 입력합니다.

    mdatp diagnostic real-time-protection-statistics --output json | python high_cpu_parser.py
    

    위의 출력은 성능 문제에 대한 상위 기여자 목록입니다. 첫 번째 열은 PID(프로세스 식별자)이고, 두 번째 열은 프로세스 이름이며, 마지막 열은 영향별로 정렬된 검사된 파일 수입니다. 예를 들어 명령의 출력은 아래와 같습니다.

    ... > mdatp diagnostic real-time-protection-statistics --output json | python high_cpu_parser.py | head
    27432 None 76703
    73467 actool    1249
    73914 xcodebuild 1081
    73873 bash 1050
    27475 None 836
    1    launchd     407
    73468 ibtool     344
    549  telemetryd_v1   325
    4764 None 228
    125  CrashPlanService 164
    

    Linux에서 엔드포인트용 Defender의 성능을 향상시키려면 행 아래에 가장 많은 수를 가진 엔드포인트를 Total files scanned 찾아 제외를 추가합니다. 자세한 내용은 Linux의 엔드포인트용 Defender에 대한 제외 구성 및 유효성 검사를 참조하세요.

    참고

    애플리케이션은 통계를 메모리에 저장하고 파일 작업이 시작되고 실시간 보호가 활성화된 후에만 추적합니다. 실시간 보호가 해제된 이전 또는 기간 동안 시작된 프로세스는 계산되지 않습니다. 또한 검사를 트리거한 이벤트만 계산됩니다.

  5. 성능 문제에 기여하고 실시간 보호를 다시 사용하도록 설정하는 프로세스 또는 디스크 위치에 대한 제외를 사용하여 Linux에서 엔드포인트용 Microsoft Defender 구성합니다.

    자세한 내용은 Linux의 엔드포인트용 Microsoft Defender에 대한 제외 구성 및 유효성 검사를 참조하세요.

엔드포인트용 Microsoft Defender Client Analyzer를 사용하여 성능 문제 해결

적용 대상:

  • AV 및 EDR과 같은 사용 가능한 모든 엔드포인트용 Defender 구성 요소의 성능 문제

엔드포인트용 Microsoft Defender 클라이언트 분석기(MDECA)는 Linux에서 온보딩된 디바이스의 성능 문제를 해결하기 위해 추적, 로그 및 진단 정보를 수집할 수 있습니다.

참고

성능 문제를 해결하기 위해 클라이언트 분석기를 실행하려면 macOS 및 Linux에서 클라이언트 분석기 실행을 참조하세요.

참고

위의 단계를 수행한 후 성능 문제가 지속되는 경우 고객 지원팀에 문의하여 추가 지침 및 완화를 받으세요.

AuditD 성능 문제 해결

배경:

  • Linux OS 배포판의 엔드포인트용 Microsoft Defender AuditD 프레임워크를 사용하여 특정 유형의 원격 분석 이벤트를 수집합니다.

  • 에 추가 /etc/audit/rules.d/ 된 규칙에 의해 캡처된 시스템 이벤트는 audit.log 추가되며 호스트 감사 및 업스트림 컬렉션에 영향을 줄 수 있습니다.

  • linux에서 엔드포인트용 Microsoft Defender 추가한 이벤트에는 키로 mdatp 태그가 지정됩니다.

  • AuditD 서비스가 잘못 구성되었거나 오프라인인 경우 일부 이벤트가 누락될 수 있습니다. 이러한 문제를 해결하려면 Linux에서 엔드포인트용 Microsoft Defender 대한 누락된 이벤트 또는 경고 문제 해결을 참조하세요.

특정 서버 워크로드에서 다음 두 가지 문제가 관찰될 수 있습니다.

  • mdatp_audisp_plugin 프로세스에서 높은 CPU 리소스 사용량

  • /var/log/audit/audit.log 크거나 자주 회전합니다.

이러한 문제는 AuditD가 넘쳐 나는 많은 이벤트가 있는 서버에서 발생할 수 있습니다.

참고

가장 좋은 방법은 최대 파일 크기 제한에 도달할 때 회전하도록 AuditD 로그를 구성하는 것이 좋습니다.

이렇게 하면 AuditD 로그가 단일 파일에 누적되는 것을 방지하고 회전된 로그 파일을 외부로 이동하여 디스크 공간을 절약할 수 있습니다.

이를 위해 auditd.conf 파일에서 회전max_log_file_action 값을 설정할 수 있습니다.

AuditD에 대한 소비자가 여러 개 있거나 엔드포인트용 Microsoft Defender 및 타사 소비자의 조합으로 규칙이 너무 많거나 많은 이벤트를 생성하는 높은 워크로드가 있는 경우에 발생할 수 있습니다.

이러한 문제를 해결하려면 먼저 영향을 받는 샘플 서버에서 MDEClientAnalyzer 로그를 수집합니다 .

참고

일반적으로 엔드포인트용 Microsoft Defender 에이전트를 사용 가능한 최신 버전으로 업데이트하고 추가 조사를 진행하기 전에 문제가 계속 유지되도록 하는 것이 좋습니다.

AuditD 하위 시스템 CPU 변형에 영향을 줄 수 있는 추가 구성이 있습니다.

특히 auditd.conf에서 disp_qos 값을 "손실"로 설정하여 높은 CPU 사용량을 줄일 수 있습니다.

그러나 이는 CPU 사용량이 많은 동안 일부 이벤트가 삭제될 수 있음을 의미합니다.

XMDEClientAnalyzer

XMDEClientAnalyzer를 사용하는 경우 다음 파일에는 문제를 해결하는 데 도움이 되는 인사이트를 제공하는 출력이 표시됩니다.

  • auditd_info.txt
  • auditd_log_analysis.txt

auditd_info.txt

일반 AuditD 구성을 포함하고 다음을 표시합니다.

  • AuditD 소비자로 등록된 프로세스

  • Auditctl -s output with enabled=2

    • 감사가 변경할 수 없는 모드임을 시사합니다(구성 변경 내용을 적용하려면 다시 시작해야 합니다).
  • Auditctl -l 출력

    • 현재 커널에 로드된 규칙을 표시합니다("/etc/auditd/rules.d/mdatp.rules"의 디스크에 있는 규칙과 다를 수 있음).

    • 엔드포인트용 Microsoft Defender 관련된 규칙을 표시합니다.

auditd_log_analysis.txt

AuditD 성능 문제를 조사할 때 유용한 중요한 집계 정보를 포함합니다.

  • 가장 보고된 이벤트를 소유하는 구성 요소(엔드포인트용 Microsoft Defender 이벤트는 )로 key=mdatp태그가 지정됩니다.

  • 상위 보고 초기자입니다.

  • 가장 일반적인 시스템 호출(네트워크 또는 파일 시스템 이벤트 등).

  • 가장 시끄러운 파일 시스템 경로는 무엇인가요?

대부분의 AuditD 성능 문제를 완화하려면 AuditD 제외를 구현할 수 있습니다. 지정된 제외가 성능을 개선하지 않는 경우 속도 제한기 옵션을 사용할 수 있습니다. 이렇게 하면 AuditD에서 생성되는 이벤트 수가 모두 줄어듭니다.

참고

낮은 위협 및 높은 노이즈 초기자 또는 경로에 대해서만 제외해야 합니다. 예를 들어 큰 사각지대를 만들 위험이 있는 /bin/bash는 제외하지 마세요. 제외를 정의할 때 피해야 하는 일반적인 실수입니다.

제외 유형

XMDEClientAnalyzer 지원 도구에는 AuditD 제외 구성 규칙을 추가하는 데 사용할 수 있는 구문이 포함되어 있습니다.

AuditD 제외 – 지원 도구 구문 도움말:

AuditD 제외 구성 규칙을 추가하는 데 사용할 수 있는 구문

초기자별

  • -e/ -exe 전체 이진 경로 > 이 초기자에 의해 모든 이벤트를 제거합니다.

경로별

  • -d / -dir 디렉터리에 대한 전체 경로는 이 디렉터리를 > 대상으로 하는 파일 시스템 이벤트를 제거합니다.

예제:

"/opt/app/bin/app"가 "/opt/app/cfg/logs/1234.log"에 쓰는 경우 지원 도구를 사용하여 다양한 옵션으로 제외할 수 있습니다.

-e /opt/app/bin/app

-d /opt/app/cfg

-x /usr/bin/python /etc/usercfg

-d /usr/app/bin/

추가 예제:

./mde_support_tool.sh exclude -p <process id>

./mde_support_tool.sh exclude -e <process name>

둘 이상의 항목을 제외하려면 제외를 한 줄로 연결합니다.

./mde_support_tool.sh exclude -e <process name> -e <process name 2> -e <process name3>

-x 플래그는 특정 초기자에 의해 하위 디렉터리에 대한 액세스를 제외하는 데 사용됩니다. 예를 들면 다음과 같습니다.

./mde_support_tool.sh exclude -x /usr/sbin/mv /tmp

위의 내용은 mv 프로세스에서 액세스할 때 /tmp 하위 폴더의 모니터링을 제외합니다.

속도 제한

XMDEClientAnalyzer 지원 도구에는 auditD 플러그 인에서 보고되는 이벤트 수를 제한하는 데 사용할 수 있는 구문이 포함되어 있습니다. 이 옵션은 AuditD에 대한 속도 제한을 전역적으로 설정하여 모든 감사 이벤트가 감소합니다.

참고

이 기능은 감사된 하위 시스템이 전체적으로 보고하는 이벤트 수를 제한하기 위해 신중하게 사용해야 합니다. 이렇게 하면 다른 구독자에 대한 이벤트 수도 줄어들 수 있습니다.

ratelimit 옵션을 사용하여 이 속도 제한을 사용하거나 사용하지 않도록 설정할 수 있습니다.

사용: ./mde_support_tool.sh ratelimit -e true

비활성화: ./mde_support_tool.sh ratelimit -e false

ratelimit를 사용하도록 설정하면 2500개 이벤트/초를 처리하기 위한 규칙이 AuditD에 추가됩니다.

참고

AuditD 관련 성능 문제를 분석 및 완화하거나 대규모로 AuditD 제외를 배포하는 데 도움이 필요한 경우 Microsoft 지원에 문의하세요.

참고 항목

더 자세히 알아보고 싶으신가요? 기술 커뮤니티: 엔드포인트용 Microsoft Defender Tech Community의 Microsoft 보안 커뮤니티와 Engage.