
शैक्षिक प्रयोगशाला CVE-2014-0160 (Heartbleed) और TLS हार्टबीट हैंडलिंग में फ्रेमिंग असंगतियों का अध्ययन करने के लिए।
हार्टब्लीड भेद्यता (CVE-2014-0160) का अध्ययन करने के लिए शैक्षिक प्रयोगशाला, जिसमें डॉकर के अंदर एक वास्तविक संवेदनशील OpenSSL वातावरण का उपयोग किया गया है।
यह परियोजना OpenSSL 1.0.1f का उपयोग करके एक संवेदनशील TLS सर्वर को पुनः प्रस्तुत करती है और यह प्रदर्शित करने के लिए एक कस्टम रॉ TLS हार्टबीट क्लाइंट लागू करती है कि कैसे दुर्भावनापूर्ण हार्टबीट पैकेट मेमोरी प्रकटीकरण को ट्रिगर कर सकते हैं।
यह लैब शैक्षिक और अनुसंधान उद्देश्यों के लिए बनाई गई है, विशेष रूप से निम्नलिखित का अध्ययन करने के लिए:
heartbleed-lab/
├── client/
│ ├── attacker.py
│ └── Dockerfile
│
├── vulnerable/
│ ├── Dockerfile
│ └── server/
│
├── fixed/
│ ├── Dockerfile
│ └── server/
│
├── docs/
│ └── diagrams/
│
├── notes/
│
├── docker-compose.yml
├── .gitignore
└── README.md
heartbleed-client
↓
Docker internal network
↓
vulnerable-heartbleed
जहाँ:
heartbleed-client कच्चे TLS रिकॉर्ड भेजता हैvulnerable-heartbleed OpenSSL 1.0.1f चलाता हैसंवेदनशील सर्वर उपयोग करता है:
openssl s_serverवातावरण को मूल हार्टब्लीड व्यवहार को पुनः प्रस्तुत करने के लिए जानबूझकर कॉन्फ़िगर किया गया है।
क्लाइंट कार्यान्वयन:
वर्तमान कार्यान्वयन मूल हार्टब्लीड व्यवहार को एक दुर्भावनापूर्ण हार्टबीट पैकेट भेजकर पुनः प्रस्तुत करता है जहाँ:
payload_length > real payload size
उदाहरण:
Declared payload length: 0x4000
Real payload: 1 byte ("A")
संवेदनशील सर्वर घोषित लंबाई पर गलत तरीके से भरोसा करता है और वास्तविक पेलोड सीमाओं से परे मेमोरी सामग्री के साथ प्रतिक्रिया देता है।
sudo COMPOSE_HTTP_TIMEOUT=300 docker-compose up --build
sudo docker exec -it heartbleed-client bash
python attacker.py
[+] Sending malformed heartbeat
[+] Got TLS record: type=24 version=(3, 2) length=16384
[!!!] Heartbeat response received
यह इंगित करता है कि संवेदनशील सर्वर ने वैध हार्टबीट पेलोड से परे मेमोरी सामग्री लौटा दी।
यह परियोजना निम्नलिखित के बीच संबंध का पता लगाती है:
इस लैब के मुख्य अनुसंधान रुचियों में से एक तुलना करना है:
HTTP Request Smuggling
vs
TLS Heartbeat Parsing Failures
निम्नलिखित दृष्टिकोण से:
नियोजित अगले चरणों में शामिल हैं:
यह भंडार केवल इसके लिए मौजूद है: