
PCAP और OpenSSL CVE-2022-3602 शोषण प्रयासों का पता लगाने के लिए Suricata सिग्नेचर, जिसमें दुर्भावनापूर्ण क्लाइंट/सर्वर ट्रैफ़िक और वैध punycode प्रमाणपत्र उदाहरण शामिल हैं।
PCAPs या यह हुआ ही नहीं
हाल ही में खोजी गई OpenSSL v3.0 से v3.0.6 (CVE-2022-3602) में कमजोरी के मद्देनजर, हमने देखा है कि एक शोषण प्रयास 'वायर पर' कैसा दिखता है। इस रिपॉजिटरी में विभिन्न शोषण परिदृश्यों के PCAPs, साथ ही Suricata के लिए डिटेक्शन नियम शामिल हैं।
इसमें एक PCAP भी शामिल है जिसमें विषय वैकल्पिक नाम में punycode-एन्कोडेड ई-मेल पते के साथ एक वैध प्रमाणपत्र का आदान-प्रदान होता है। हमने इस pcap का उपयोग यह परीक्षण करने के लिए किया कि क्या नियम उन प्रमाणपत्रों पर गलत सकारात्मक परिणाम नहीं देते हैं जिनमें केवल एक छोटा विषय वैकल्पिक नाम होता है, बजाय उस बहुत लंबे नाम के जिसकी हम शोषण प्रयास में उम्मीद करेंगे।
हमने OpenSSL CVE-2022-3602 बग को ट्रिगर करने वाले ट्रैफिक वाली PCAP फाइलें बनाने के लिए निम्नलिखित संसाधनों का उपयोग किया है:
| PCAP | विवरण |
|---|
| spookyssl-windowscrash.pcap | DataDog के Windows Crash PoC का उपयोग करके बनाया गया |
| spookyssl-malicious_client.pcap | DataDog के malicious_client PoC का उपयोग करके बनाया गया |
| spookyssl-malicious_server.pcap | DataDog के malicious_server PoC का उपयोग करके बनाया गया |
| not-spookyssl-certificate.pcap | वैध punycode प्रमाणपत्र (दुर्भावनापूर्ण नहीं) |
OpenSSL CVE-2022-3602 बग का पता लगाने के लिए निम्नलिखित Suricata सिग्नेचर लिखा गया था:
alert tls any any -> any any (msg:"FOX-SRT - Exploit - Possible SpookySSL Certificate Observed (CVE-2022-3602)"; \
flow:established; \
content:"|2b 06 01 05 05 07 08 09|"; fast_pattern; \
content:"|06 03 55 1d 1e|"; content:"xn--"; \
content:!"|81|"; distance:-6; within:1; byte_test:2,>=,500,-6,relative; \
classtype:attempted-user; threshold:type limit,track by_src,count 1,seconds 3600; \
reference:url,www.openssl.org/news/secadv/20221101.txt; \
reference:url,https://github.com/fox-it/spookyssl-pcaps; \
metadata:ids suricata; \
metadata:created_at 2022-11-02; sid:21004268; rev:3;)
सामग्री मिलानों को तोड़ने के लिए:
|2b 06 01 05 05 07 08 09| -- type-id: 1.3.6.1.5.5.7.8.9 (id-pkix.8.9) (id-on-SmtpUTF8Mailbox) का पता लगाता है|06 03 55 1d 1e| -- Extension Id: 2.5.29.30 (id-ce-nameConstraints) (nameConstraints एक्सटेंशन) का पता लगाता है"xn--" -- punycode का पता लगाता है, byte_test कीवर्ड का उपयोग करके punycode मान के आकार के संयोजन में:
byte_test:2,>=,500,-6,relative;हम छोटे punycode मानों के लिए भी स्पष्ट रूप से जांच करते हैं, उस स्थिति में सिग्नेचर को निम्नलिखित का उपयोग करके ट्रिगर नहीं होना चाहिए:
content:!"|81|"; distance:-6; within:1;नेटवर्क सिग्नेचर TLSv1.3 का उपयोग करने वाले सत्रों के लिए काम नहीं करेंगे क्योंकि प्रमाणपत्र तब एन्क्रिप्टेड होते हैं।
आप spookyssl-windowscrash.pcap में क्लाइंट के क्रैश होने के कारण एक रीसेट पैकेट भी देख सकते हैं।
