Linux에서 엔드포인트용 Microsoft Defender eBPF 기반 센서 사용
참고
Linux의 엔드포인트용 Defender부터 버전 101.2408.0000
, AuditD는 더 이상 보조 이벤트 공급자로 지원되지 않습니다. 자세한 내용은 이 문서의 끝에 있는 FAQ를 참조하세요.
linux의 엔드포인트용 Microsoft Defender 대한 확장된 버클리 패킷 필터(eBPF)는 Linux 운영 체제에 대한 추가 이벤트 데이터를 제공합니다. eBPF는 AuditD 이벤트 공급자와 관련된 여러 가지 문제를 해결하는 데 도움이 되며 성능 및 시스템 안정성 영역에서 유용합니다.
주요 이점은 다음과 같습니다.
- 시스템 전체 AuditD 관련 로그 노이즈 감소
- 애플리케이션 간에 충돌을 일으키는 최적화된 시스템 전체 이벤트 규칙
- 파일 이벤트(파일 읽기/열기) 모니터링에 대한 오버헤드 감소
- 향상된 이벤트 속도 처리량 및 메모리 공간 감소
- 특정 구성에 최적화된 성능
eBPF 작동 방식
eBPF를 사용하면 AuditD 이벤트 공급자에서 이전에 가져온 이벤트가 이제 eBPF 센서에서 흐릅니다. 이는 시스템 안정성에 도움이 되며, CPU 및 메모리 사용률을 개선하고, 디스크 사용량을 줄입니다. eBPF는 사용자 지정 규칙이 필요하지 않은 애플리케이션 간의 충돌 가능성을 줄이는 데 도움이 됩니다. eBPF와 관련된 데이터는 /var/log/microsoft/mdatp/microsoft_defender_core.log 파일에 로그인됩니다.
또한 eBPF 센서는 시스템 안정성을 높이는 데 도움이 되는 커널 모듈을 사용할 필요 없이 Linux 커널의 기능을 사용합니다.
시스템 필수 구성 요소
Linux의 엔드포인트용 Microsoft Defender 위한 eBPF 센서는 다음과 같은 최소 배포 및 커널 버전에서 지원됩니다.
Linux 배포 | 배포 버전 | 커널 버전 |
---|---|---|
Ubuntu | 16.04 | 4.15.0 |
페도라 | 33 | 5.8.15 |
CentOS | 7.6 | 3.10.0-957.10 |
SLES | 15 | 5.3.18-18.47 |
RHEL | 7.6 | 3.10.0-957.10 |
Debian | 9.0 | 4.19.0 |
Oracle Linux RHCK | 7.9 | 3.10.0-1160 |
Oracle Linux UEK | 7.9 | 5.4 |
Amazon Linux 2 | 2 | 5.4.261-174.360 |
Rocky Linux 8 | 8.7 | 4.18.0-425 |
Rocky Linux 9 | 9.2 | 5.14.0-284 |
Alma Linux 8 | 8.4 | 4.18.0-305 |
Alma Linux 9 | 9.2 | 5.14.0-284 |
참고
커널 버전 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 있는 Oracle Linux 8.8은 eBPF를 보조 하위 시스템 공급자로 사용하도록 설정하면 커널이 중단됩니다. 이 커널 버전은 eBPF 모드에 사용하면 안 됩니다. 완화 단계는 문제 해결 및 진단 섹션을 참조하세요.
eBPF 사용
eBPF 센서는 에이전트 버전 101.23082.0006
이상에 대해 기본적으로 모든 고객에 대해 자동으로 사용하도록 설정됩니다. 고객은 이 기능을 경험하려면 지원되는 버전으로 업데이트해야 합니다. 엔드포인트에서 eBPF 센서를 사용하도록 설정하면 Linux의 엔드포인트용 Defender가 supplementary_events_subsystem ebpf로 업데이트됩니다.
eBPF를 수동으로 사용하지 않도록 설정하려는 경우 다음 명령을 실행할 수 있습니다.
sudo mdatp config ebpf-supplementary-event-provider --value [enabled/disabled]
mdatp_managed.json 파일을 업데이트할 수도 있습니다.
{
"features": {
"ebpfSupplementaryEventProvider": "disabled"
}
}
자세한 샘플 json 파일 - Linux의 엔드포인트용 Microsoft Defender 대한 기본 설정 설정은 링크를 참조하세요.
중요
eBPF를 사용하지 않도록 설정하거나 특정 커널에서 eBPF가 지원되지 않는 경우 보조 이벤트 공급자는 Netlink로 전환합니다. 모든 프로세스 작업은 원활하게 계속 진행되지만 eBPF가 캡처하는 특정 파일 및 소켓 관련 이벤트를 놓칠 수 있습니다.
Microsoft Defender Portal에서 고급 헌팅을 사용하여 linux 엔드포인트에서 eBPF(사용/사용 안 함)의 상태 검사 수 있습니다. 단계는 다음과 같습니다.
Microsoft Defender 포털로 이동하여 로그인합니다.
탐색 창에서 헌팅고급 헌팅>으로 이동합니다.
고급 헌팅에서 Defender 취약성 관리 이동합니다.
다음 쿼리를 실행합니다
DeviceTvmInfoGathering
.출력의 추가 필드 열에서 자세히 표시를 선택한 다음 , EBPF 상태: true를 찾습니다.
감사의 변경할 수 없는 모드
변경할 수 없는 모드에서 AuditD를 사용하는 고객의 경우 엔드포인트용 Microsoft Defender 추가한 감사 규칙을 지우기 위해 eBPF를 사후 사용하도록 설정해야 합니다. 이 요구 사항은 규칙 파일을 중지하고 편집/덮어쓰기를 금지하는 변경할 수 없는 AuditD 모드의 제한 사항입니다. 이 문제는 다시 부팅으로 해결됩니다.
다시 부팅 후 다음 명령을 실행하여 감사 규칙이 지워진 경우 검사.
% sudo auditctl -l
이전 명령의 출력에는 규칙이나 사용자가 추가한 규칙이 표시되지 않아야 합니다. 규칙이 제거되지 않은 경우 다음 단계를 수행하여 감사 규칙 파일을 지웁합니다.
- ebpf 모드로 전환합니다.
- 파일을
/etc/audit/rules.d/mdatp.rules
제거합니다. - 컴퓨터를 다시 부팅합니다.
문제 해결 및 진단
상태 명령을 실행 mdatp
하여 에이전트 상태 상태 검사 수 있습니다. 다음 명령줄을 사용하여 현재 커널 버전을 확인하여 Linux의 엔드포인트용 Defender용 eBPF 센서가 지원되는지 확인합니다.
uname -a
알려진 문제
SAP를 사용하여 RHEL 8.1 버전에서 eBPF를 사용하도록 설정하면 커널 패닉이 발생할 수 있습니다. 이 문제를 완화하려면 다음 단계 중 하나를 수행할 수 있습니다.
- RHEL 8.1보다 높은 배포판을 사용합니다.
- RHEL 8.1 버전을 사용해야 하는 경우 AuditD 모드로 전환합니다.
커널 버전 5.15.0-0.30.20.el8uek.x86_64 Oracle Linux 8.8을 사용하면 5.15.0-0.30.20.1.el8uek.x86_64 커널 패닉이 발생할 수 있습니다. 이 문제를 완화하려면 다음 단계 중 하나를 수행할 수 있습니다.
- eBPF를 보조 하위 시스템 공급자로 사용하려는 경우 Oracle Linux 8.8에서 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 보다 높거나 낮은 커널 버전을 사용합니다. Oracle Linux의 최소 커널 버전은 RHCK 3.10.0이고 Oracle Linux UEK는 5.4입니다.
- 동일한 커널 버전을 사용해야 하는 경우 AuditD 모드로 전환
sudo mdatp config ebpf-supplementary-event-provider --value disabled
다음 두 데이터 집합은 잠재적인 문제를 분석하고 가장 효과적인 해결 옵션을 결정하는 데 도움이 될 수 있습니다.
Linux의 엔드포인트용 Microsoft Defender 성능 문제 해결 지침을 사용하여 클라이언트 분석기 도구에서 진단 패키지를 수집합니다.
엔드포인트용 Defender가 Linux 리소스에서 엔드포인트용 Microsoft Defender 지침을 사용하여 높은 리소스를 활용하는 경우 디버그 진단 패키지를 수집합니다.
성능 문제 해결
엔드포인트에서 Microsoft Defender 리소스 사용량이 증가하는 경우 대부분의 CPU/메모리 사용률을 유발하는 프로세스/탑재 지점/파일을 식별하는 것이 중요합니다. 그런 다음 필요한 제외를 적용할 수 있습니다. 가능한 바이러스 백신 제외를 적용한 후 (부모 프로세스)가 여전히 리소스를 사용하는 경우 wdavdaemon
ebpf-statistics 명령을 사용하여 상위 시스템 호출 수를 가져옵니다.
sudo mdatp diagnostic ebpf-statistics
Output
Monitor 20 seconds
Top file paths:
/var/log/microsoft/mdatp/microsoft_defender.log : 10
/var/log/microsoft/mdatp/rotated/microsoft_defender.log00001 : 2
/var/log/microsoft/mdatp/rotated/microsoft_defender.log : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374993 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374991 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374989 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374987 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374985 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374983 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374981 : 1
Top initiator paths:
/usr/bin/stress-ng : 50000
/opt/microsoft/mdatp/sbin/wdavdaemon : 13
Top syscall ids:
82 : 1699333
90 : 10
87 : 3
이전 출력에서 stress-ng는 많은 수의 이벤트를 생성하는 최상위 프로세스이며 성능 문제가 발생할 수 있음을 알 수 있습니다. 대부분의 경우 stress-ng는 ID가 82인 시스템 호출을 생성합니다. Microsoft에서 티켓을 만들어 이 프로세스를 제외할 수 있습니다. 향후 개선 사항의 일환으로 이러한 제외를 적용할 수 있는 더 많은 제어 권한이 있습니다.
AuditD에 적용된 제외는 eBPF로 마이그레이션하거나 복사할 수 없습니다. 시끄러운 로그, 커널 패닉, 시끄러운 syscall과 같은 일반적인 문제는 이미 내부적으로 eBPF에 의해 처리됩니다. 추가 제외를 추가하려는 경우 Microsoft에 연락하여 필요한 제외를 적용합니다.
FAQ - eBPF로 전환
1. eBPF로 이동하는 것을 고려해야 하는 이유는 무엇인가요?
Linux의 엔드포인트용 Microsoft Defender 대한 eBPF(확장 버클리 패킷 필터)는 AuditD에 대한 효율적인 대안으로 사용되며 AuditD 이벤트 공급자와 관련된 다양한 문제를 해결하는 동시에 성능 및 시스템 안정성 측면에서 상당한 이점을 제공합니다. 몇 가지 주요 이점은 다음과 같습니다.
성능: eBPF는 AuditD에 비해 시스템 리소스의 오버헤드를 줄여 성능을 크게 향상시킵니다.
리소스 효율성: eBPF는 적은 리소스를 사용하므로 부하가 많은 조건에서도 시스템 안정성을 유지하는 데 도움이 됩니다.
확장성: eBPF의 아키텍처는 확장성이 향상되어 워크로드가 증가하거나 복잡한 환경에 더 적합합니다.
최신 기술: eBPF는 향후 Linux 커널 개발에 부합하는 현대적이고 미래 지향적인 기술을 나타내며 더 나은 장기 지원을 보장합니다.
2. Auditd를 계속 사용하려면 어떻게 해야 하나요?
AuditD를 계속 사용하려면 다음을 수행합니다.
지원되는 버전: Linux 버전 101.24072.0000의 엔드포인트용 Defender에 남아 있을 수 있습니다. 이 버전은 빌드 유효성 검사 중 AuditD를 지원하며 이는 약 9개월입니다. 이렇게 하면 eBPF로의 이동을 계획하기에 충분한 전환 기간이 제공됩니다. Linux 서버에서 명령을
mdatp health
실행하여 만료 날짜를 확인할 수 있습니다.Long-Term 계획: 빌드를
101.24072.0000
유지하는 것이 옵션이지만 최신 보안 및 성능 향상을 활용하고 지속적인 지원을 받을 수 있도록 이 기간 내에 eBPF로의 전환을 계획하는 것이 좋습니다.
즉, eBPF를 기본 이벤트 공급자로 사용하도록 이동하는 것이 좋습니다.
3. 일부 시나리오에서 eBPF가 지원되지 않으면 어떻게 되나요?
eBPF가 지원되지 않는 경우:
Netlink 대체: 시스템은 Netlink 이벤트 공급자를 사용하는 것으로 대체됩니다. Netlink는 프로세스 이벤트(예:
exec
, ,fork
exit
,gid
또는tid
)를 계속 캡처하지만 파일 시스템 관련 이벤트(예: ,rename
unlink
) 또는 소켓 이벤트를 지원하지 않습니다.영향: 워크로드가 중단되지는 않지만 eBPF에서 캡처할 특정 파일 및 소켓 관련 이벤트를 놓칠 수 있습니다.
4. 업데이트된 버전을 사용하여 제외를 어떻게 관리할 수 있나요?
다음은 AuditD에 대한 제외를 배치하는 몇 가지 일반적인 이유입니다.
일부 syscall 또는 프로세스로 인한 성능으로 많은 노이즈가 발생합니다.
커널 패닉, 특히 네트워크/파일 시스템 호출을 많이 호출하면 커널 패닉이 발생하는 경우가 있습니다.
감사 로그가 디스크 공간을 사용하는 노이즈 로그. 고객은 로그 크기를 줄이기 위해 노이즈 프로세스에 대한 제외를 배치했습니다.
eBPF를 사용하는 동안 처음 두 가지 사용 사례는 마이그레이션의 후보입니다. 로그는 더 이상 eBPF에 문제가 되지 않습니다. 처음 두 가지 사용 사례의 경우 다음 옵션 중에서 선택할 수 있습니다.
지원 담당자에게 문의: 백 엔드에서 제외를 적용하려면 Microsoft에 문의하세요.
전역 제외: Linux의 엔드포인트용 Defender 업데이트 버전에서 제외는 전역 제외로 관리할 수 있습니다. 전역 제외는 바이러스 백신과 EDR 모두에 적용되며 현재 관리되는 json을 통해 구성할 수 있습니다. 자세한 내용은 Linux의 엔드포인트용 Microsoft Defender에 대한 제외 구성 및 유효성 검사를 참조하세요.
5. 문제가 있는 경우 어떻게 해야 하나요?
지원팀에 문의: eBPF로 전환하는 동안 또는 전환 후 문제가 발생하는 경우 기술 지원팀에 문의하여 도움을 받으세요. 우리는 원활한 전환을 보장하기 위해 최선을 다하고 있으며, 당신이 직면 할 수있는 문제를 resolve 데 도움이 될 수 있습니다.
지원 채널: Microsoft Defender 포털을 통해 지원에 문의할 수 있습니다. 또한 기술 자료 및 커뮤니티 포럼은 일반적인 문제를 해결하는 데 유용한 리소스입니다.