
Citrix NetScaler 로그를 파싱하여 CVE-2023-4966 악용 징후를 확인합니다.
CVE-2023-4966 악용 징후를 확인하기 위해 Citrix NetScaler 로그를 분석합니다.
작성자: Otmar Lendl.
./citrix-anomaly.pl [-d] [-v] [-h] [-p file] [-a X] [logfiles]
This script parse citrix netscale syslog files and looks for session
reconnects that might be the result of a CVE-2023-4966 exploitation.
Parameters:
-d Debug
-v Verbose
-h This help
-a Set aggregation type. Possible values
b (default) simple /24 aggregation
a aggregate by ASN
p aggregate to routing table prefix
-p path to a routing table dump. Syntax: "prefix asn" per line
이 스크립트는 Net::CIDR 및 Net::Patricia가 필요합니다. (-p 기능을 사용하려면 Net::Patricia가 필요합니다.) 일부 Linux 서버에는 설치되어 있지 않을 수 있습니다. Debian 계열 시스템에서는 다음 명령으로 설치할 수 있습니다.
sudo apt install libnet-cidr-perl libnet-patricia-perl
2023-10-27 기준 전역 라우팅 테이블 파일이 이 저장소에 포함되어 있습니다. 압축을 풀어야 합니다.
로그 라인 접두사는 시스템/로그 데몬에 따라 다를 수 있습니다. 이 코드는 이제 라인 접두사를 무시하고 Citrix가 제공하는 타임스탬프를 기준으로 매칭을 시도합니다. (이 타임스탬프는 로케일 설정에 따라 달라질 수 있습니다.)
CVE-2023-4966은 세션 쿠키를 유출하여 공격자가 기존 Citrix 세션에 다시 연결할 수 있게 합니다.
이 스크립트는 "SSLVPN LOGIN" 및 "SSLVPN TCPCONNSTAT" syslog 라인을 찾습니다. (grep으로 이 라인들을 사전 필터링하는 것이 좋습니다.) 그리고 일치하는 LOGIN 라인이 없거나 세션 기간 동안 클라이언트 IP 주소가 변경된 세션을 확인합니다.
이 스크립트는 성공적인 초기 로그인을 해당 소스 네트워크가 안전하다는 신호로 간주합니다. 소스 네트워크에서 재연결만 있고 초기 연결이 없는 경우 해당 재연결은 의심스럽습니다. 이는 순수한 IP 주소 기준으로 수행되지 않으며, 다음과 같은 세 가지 집계 방식이 구현되어 있습니다.
후자의 두 알고리즘은 프리픽스를 ASN에 매핑하는 파일이 필요합니다. 이 저장소에 예시가 포함되어 있습니다.