
CallStranger(CVE-2020-12695) 시도를 탐지하는 Zeek 플러그인 (http://callstranger.com/)
이 패키지는 CallStranger(CVE-2020-12695) 악용 시도와 데이터 유출을 탐지합니다. 이를 위해 다음 세 가지 주요 사항을 확인합니다:
SUBSCRIBE 명령입니다. 이는 DDoS 증폭 또는 데이터 유출의 전조가 될 수 있습니다.NOTIFY 명령입니다. 이는 활성 DDoS 증폭 또는 데이터 유출을 나타낼 수 있습니다.CallStrangerDetector::exfiltration_threshold 바이트보다 긴 UPnP SUBSCRIBE 명령입니다. 이는 UPnP를 통한 데이터 유출을 나타낼 수 있습니다.이 모듈은 사이트에서 일반적으로 인터넷으로 향하는 UPnP SUBSCRIBE 또는 NOTIFY 명령이 없고, 인터넷에 노출된 UPnP 장치가 없다고 가정합니다. 이 두 가지 중 하나라도 해당되면 오탐(false positive)이 발생할 수 있습니다. 오탐을 유발하는 특정 IP를 CallStrangerDetector::ignore_subnets 집합에 추가하여 무시할 수 있습니다.
PCAP 파일에 대해 이 스크립트를 사용하려면 Git 저장소를 클론하고 zeek -Cr your.pcap scripts/__load__.zeek 명령으로 Zeek를 실행하기만 하면 됩니다.
패키지를 설치하려면 Git 저장소를 클론하고 패키지 디렉터리에서 zkg install .을 실행하세요.
이 모듈은 CallStranger와 유사한 활동을 탐지하면 notice.log에 알림을 추가합니다. 알림은 다음과 같습니다:
CallStranger_Data_Exfiltration_Attempt: UPnP 장치가 트래픽을 유출하도록 하는 시도를 관찰함CallStranger_Data_Exfiltration_Success: 데이터를 유출하는 것으로 보이는 UPnP 장치를 관찰함CallStranger_UPnP_Request_Callback_To_External_Host: UPnP 장치가 외부 호스트로 콜백하도록 하는 시도를 관찰함CallStranger_UPnP_To_External_Host: UPnP 장치가 외부 호스트로 콜백하는 것을 관찰함설정할 수 있는 구성 옵션은 세 가지입니다:
CallStrangerDetector::exfiltration_threshold: UPnP 콜백 URL에서 데이터 유출로 분류하는 데 필요한 바이트 수입니다.CallStrangerDetector::ignore_subnets: UPnP 탐지에서 무시해야 하는 서브넷 집합입니다. UPnP가 합법적으로 인터넷을 경유하는 오탐이 있는 경우 이 옵션을 사용하세요.CallStrangerDetector::strict_upnp_protocol_detection: 이 부울 값은 스크립트가 UPnP SUBSCRIBE 명령을 식별할 때 더 엄격하게 검사할지 여부를 제어합니다. “NT”(Notification Type) 헤더가 관찰되도록 요구하는 방식으로 동작합니다. 기본값은 false입니다. NT 헤더는 실제로 아무런 기능을 하지 않으며 UPnP 사양에 따라 요구되는 것이기 때문입니다. UPnP가 아닌 SUBSCRIBE 트래픽이 있다면 이 값을 true로 설정해야 할 수 있습니다.이 패키지를 로컬 UPnP 트래픽과 CallStranger 작성자가 제공한 개념 증명 코드(https://github.com/yunuscadirci/CallStranger)를 사용해 테스트했습니다. 문제가 있으면 GitHub 이슈를 열거나 문의해 주세요. 감사합니다!