
OpenSSL v.1.1.1h में X.509 प्रमाणपत्र सत्यापन पर उत्परिवर्तन परीक्षण, CVE-2021-3450 पर आधारित।
यह रिपॉजिटरी OpenSSL में X.509 प्रमाणपत्र सत्यापन व्यवहार को लक्षित करते हुए एक विनिर्देश-संचालित म्यूटेशन परीक्षण प्रयोग को कार्यान्वित करती है।
यह प्रयोग म्यूटेशन ऑपरेटर पर आधारित है:
MUT-BC-SS-01
जो BasicConstraints एक्सटेंशन को संशोधित करता है:
CA:TRUE → CA:FALSE
इसका उद्देश्य यह मूल्यांकन करना है कि क्या प्रमाणपत्र सत्यापन RFC 5280 आवश्यकताओं को सही ढंग से लागू करता है और CVE-2021-3450 द्वारा प्रस्तुत भेद्यता वर्ग से संबंधित व्यवहार की जांच करना है।
MUT-BC-SS-01/
│
│
├── configs/
│ ├── ca.cnf
│ └── leaf.cnf
│
├── src/
│ └── poc.c
| └── poc_fixed.c
│
├── check_prerequisites.sh
├── install_openssl111h.sh
├── environment.sh
├── generate_certs.sh
├── build.sh
├── run.sh
├── build_version3.sh
├── run_version3.sh
│
│
└── README.md
यह प्रयोग निम्नलिखित प्रमाणपत्र श्रृंखला बनाता है:
Root CA (CA:TRUE)
│
▼
Mutant Intermediate (CA:FALSE)
│
▼
Subleaf Certificate
उत्परिवर्ती प्रमाणपत्र जानबूझकर इस प्रकार कॉन्फ़िगर किया गया है:
basicConstraints = CA:FALSE
जबकि इसका उपयोग अभी भी दूसरे प्रमाणपत्र पर हस्ताक्षर करने के लिए किया जा रहा है।
सत्यापन हार्नेस मूल्यांकन करता है कि क्या OpenSSL इस अमान्य श्रृंखला को सही ढंग से अस्वीकार करता है।
यह प्रयोग Linux सिस्टम पर परीक्षण किया गया था, जिसमें उपयोग किया गया:
git clone https://github.com/dedellix/MUT-BC-SS-01.git
cd MUT-BC-SS-01
chmod +x *.sh
./check_prerequisites.sh
यह स्क्रिप्ट आवश्यक पैकेजों की जाँच करती है और स्वचालित रूप से किसी भी लापता निर्भरता को स्थापित करती है।
आवश्यक पैकेजों में शामिल हैं:
./install_openssl111h.sh
यह OpenSSL 1.1.1h को स्थानीय रूप से डाउनलोड, बिल्ड और इंस्टॉल करता है:
$HOME/openssl-1.1.1h-install
सिस्टम OpenSSL फ़ाइलों में कोई संशोधन नहीं किया जाता है।
./environment.sh
यह कॉन्फ़िगर करता है:
LD_LIBRARY_PATH
और सत्यापित करता है कि सही OpenSSL लाइब्रेरी लोड की गई हैं।
./generate_certs.sh
यह उत्पन्न करता है:
और उन्हें इसमें संग्रहीत करता है:
certs/
./build.sh
./build_version3.sh
यह संकलित करता है:
src/poc.c
और उत्पन्न करता है:
./poc
प्रोजेक्ट रूट डायरेक्टरी में।
./run.sh
./run_version3.sh
या सीधे:
./poc
उत्पन्न आर्टिफैक्ट्स को पूरी तरह से हटाने के लिए:
rm -rf certs
rm -f poc
स्थानीय OpenSSL स्थापना को हटाने के लिए:
rm -rf $HOME/openssl-1.1.1h-install
rm -rf tls-test
वातावरण चर साफ़ करने के लिए:
unset LD_LIBRARY_PATH
unset OPENSSL111H