Linux에서 엔드포인트용 Microsoft Defender 성능 문제 해결
적용 대상:
- 엔드포인트 서버용 Microsoft Defender
- 서버용 Microsoft Defender
엔드포인트용 Defender를 경험하고 싶으신가요? 무료 평가판을 신청하세요.
이 문서에서는 사용 가능한 진단 도구를 사용하여 기존 리소스 부족 및 시스템을 이러한 상황으로 만드는 프로세스를 이해하고 완화할 수 있도록 Linux의 엔드포인트용 Defender와 관련된 성능 문제를 좁히는 방법에 대한 지침을 제공합니다. 성능 문제는 주로 시스템의 리소스 사용률 프로필에 따라 하나 이상의 하드웨어 하위 시스템에서 병목 현상으로 인해 발생합니다. 경우에 따라 애플리케이션은 디스크 I/O 리소스에 민감하고 더 많은 CPU 용량이 필요할 수 있으며 일부 구성이 지속 가능하지 않고 너무 많은 새 프로세스를 트리거하고 너무 많은 파일 설명자를 열 수 있습니다.
실행 중인 애플리케이션 및 디바이스 특성에 따라 Linux에서 엔드포인트용 Defender를 실행할 때 최적이 아닐 수 있습니다. 특히 짧은 시간 동안 CPU, 디스크 및 메모리와 같은 많은 리소스에 액세스하는 애플리케이션 또는 시스템 프로세스는 Linux의 엔드포인트용 Defender에서 성능 문제를 야기할 수 있습니다.
경고
시작하기 전에 다른 보안 제품이 현재 디바이스에서 실행되고 있지 않은지 확인하세요. 여러 보안 제품이 충돌하여 호스트 성능에 영향을 미칠 수 있습니다.
실시간 보호 통계를 사용하여 성능 문제 해결
적용 대상:
- 바이러스 백신과 관련된 성능 문제만
RTP(실시간 보호)는 위협으로부터 디바이스를 지속적으로 모니터링하고 보호하는 Linux의 엔드포인트용 Defender 기능입니다. 파일 및 프로세스 모니터링 및 기타 추론으로 구성됩니다.
다음 단계를 사용하여 이러한 문제를 해결하고 완화할 수 있습니다.
다음 방법 중 하나를 사용하여 실시간 보호를 사용하지 않도록 설정하고 성능이 향상되는지 확인합니다. 이 방법은 Linux의 엔드포인트용 Defender가 성능 문제에 기여하는지 여부를 좁히는 데 도움이 됩니다. organization 디바이스를 관리하지 않는 경우 명령줄에서 실시간 보호를 사용하지 않도록 설정할 수 있습니다.
mdatp config real-time-protection --value disabled
Configuration property updated
organization 디바이스를 관리하는 경우 Linux의 엔드포인트용 Defender 기본 설정의 지침을 사용하여 관리자가 실시간 보호를 사용하지 않도록 설정할 수 있습니다.
참고
실시간 보호가 해제된 동안 성능 문제가 지속되면 문제의 원본은 EDR(엔드포인트 검색 및 응답) 구성 요소일 수 있습니다. 이 경우 이 문서의 엔드포인트용 Microsoft Defender Client Analyzer를 사용하여 성능 문제 해결 섹션의 단계를 수행하세요.
가장 많은 검사를 트리거하는 애플리케이션을 찾으려면 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
출력 형식이 구문 분석할 준비가 되었는지 확인합니다.이 명령의 출력은 모든 프로세스와 관련 검사 작업을 표시합니다.
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
다음 명령을 입력합니다.
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에 대한 제외 구성 및 유효성 검사를 참조하세요.참고
애플리케이션은 통계를 메모리에 저장하고 파일 작업이 시작되고 실시간 보호가 활성화된 후에만 추적합니다. 실시간 보호가 해제된 이전 또는 기간 동안 시작된 프로세스는 계산되지 않습니다. 또한 검사를 트리거한 이벤트만 계산됩니다.
엔드포인트용 Microsoft Defender Client Analyzer를 사용하여 성능 문제 해결
적용 대상:
- AV 및 EDR과 같은 사용 가능한 모든 엔드포인트용 Defender 구성 요소의 성능 문제
엔드포인트용 Microsoft Defender 클라이언트 분석기(MDECA)는 Linux에서 온보딩된 디바이스의 성능 문제를 해결하기 위해 추적, 로그 및 진단 정보를 수집할 수 있습니다.
참고
- 엔드포인트용 Microsoft Defender 클라이언트 분석기 도구는 MICROSOFT CSS(고객 지원 서비스)에서 IP 주소, 엔드포인트용 Microsoft Defender 발생할 수 있는 문제를 해결하는 데 도움이 되는 PC 이름과 같은 정보를 수집하는 데 정기적으로 사용됩니다. 개인정보처리방침에 대한 자세한 내용은 Microsoft 개인정보처리방침을 참조하세요.
- 일반적으로 엔드포인트용 Microsoft Defender 에이전트를 사용 가능한 최신 버전으로 업데이트하고 추가 조사를 진행하기 전에 문제가 여전히 지속되는지 확인하는 것이 좋습니다.
성능 문제를 해결하기 위해 클라이언트 분석기를 실행하려면 macOS 및 Linux에서 클라이언트 분석기 실행을 참조하세요.
성능 향상을 위해 전역 제외 구성
성능 문제에 기여하는 프로세스 또는 디스크 위치에 대한 제외를 사용하여 Linux에서 엔드포인트용 Microsoft Defender 구성합니다. 자세한 내용은 Linux의 엔드포인트용 Microsoft Defender에 대한 제외 구성 및 유효성 검사를 참조하세요. 여전히 성능 문제가 있는 경우 추가 지침 및 완화를 위해 지원에 문의하세요.
AuditD 성능 문제 해결
배경:
Linux OS 배포판의 엔드포인트용 Microsoft Defender AuditD 프레임워크를 사용하여 특정 유형의 원격 분석 이벤트를 수집합니다.
에 추가
/etc/audit/rules.d/
된 규칙에 의해 캡처된 시스템 이벤트는 audit.log 추가되며 호스트 감사 및 업스트림 컬렉션에 영향을 줄 수 있습니다.linux에서 엔드포인트용 Microsoft Defender 추가한 이벤트에는 키로
mdatp
태그가 지정됩니다.AuditD 서비스가 잘못 구성되었거나 오프라인인 경우 일부 이벤트가 누락될 수 있습니다. 이러한 문제를 해결하려면 Linux에서 엔드포인트용 Microsoft Defender 대한 누락된 이벤트 또는 경고 문제 해결을 참조하세요.
특정 서버 워크로드에서 다음 두 가지 문제가 관찰될 수 있습니다.
High CPU
프로세스에서mdatp_audisp_plugin
리소스 소비./var/log/audit/audit.log
커지거나 자주 회전합니다.
이러한 문제는 AuditD가 넘쳐 나는 많은 이벤트가 있는 서버에서 발생할 수 있습니다. AuditD에 대한 소비자가 여러 개인 경우 또는 엔드포인트용 Microsoft Defender 및 타사 소비자의 조합으로 규칙이 너무 많거나 많은 이벤트를 생성하는 높은 워크로드가 있는 경우 이러한 문제가 발생할 수 있습니다. 이러한 문제를 해결하려면 먼저 영향을 받는 샘플 서버에서 MDEClientAnalyzer 로그를 수집합니다 .
가장 좋은 방법은 최대 파일 크기 제한에 도달할 때 회전하도록 AuditD 로그를 구성하는 것이 좋습니다. 이 구성은 AuditD 로그가 단일 파일에 누적되는 것을 방지하고 회전된 로그 파일을 외부로 이동하여 디스크 공간을 절약할 수 있습니다. 이를 위해 auditd.conf 파일에서 값을 max_log_file_action
rotate
로 설정할 수 있습니다.
참고
일반적으로 엔드포인트용 Microsoft Defender 에이전트를 사용 가능한 최신 버전으로 업데이트하고 추가 조사를 진행하기 전에 문제가 계속 유지되도록 하는 것이 좋습니다. AuditD 하위 시스템 CPU 변형에 영향을 줄 수 있는 추가 구성이 있습니다. 특히 auditd.conf에서 의 값을 disp_qos
로 lossy
설정하여 높은 CPU 사용량을 줄일 수 있습니다. 그러나 이는 CPU 사용량이 많은 동안 일부 이벤트가 삭제될 수 있음을 의미합니다.
XMDEClientAnalyzer
XMDEClientAnalyzer를 사용하는 경우 다음 파일에는 문제를 해결하는 데 도움이 되는 인사이트를 제공하는 출력이 표시됩니다.
auditd_info.txt
auditd_log_analysis.txt
auditd_info.txt
일반 AuditD 구성을 포함하고 다음 정보를 표시합니다.
AuditD 소비자로 등록된 프로세스
Auditctl -s
을 사용하여enabled=2
출력(감사가 변경 불가능한 모드임을 시사합니다.) 구성 변경 내용을 적용하려면 다시 시작해야 합니다.Auditctl -l
output(현재 커널에 로드된 규칙을 보여 줍니다. 이 규칙은 의 디스크/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 제외 – 지원 도구 구문 도움말:
초기자별
-
-e/ -exe
전체 이진 경로 > 이 초기자에 의해 모든 이벤트를 제거합니다.
경로별
-
-d / -dir
디렉터리에 대한 전체 경로이 디렉터리를 > 대상으로 하는 파일 시스템 이벤트를 제거합니다.
예제:
에 /opt/app/cfg/logs/1234.log
쓰는 경우 /opt/app/bin/app
지원 도구를 사용하여 다양한 옵션으로 제외할 수 있습니다.
-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.