
Linux-आधारित फर्मवेयर के अनुकरण और गतिशील विश्लेषण के लिए प्लेटफ़ॉर्म
FIRMADYNE एक स्वचालित और स्केलेबल सिस्टम है जो लिनक्स-आधारित एम्बेडेड फर्मवेयर के एम्यूलेशन और डायनामिक विश्लेषण के लिए है। इसमें निम्नलिखित घटक शामिल हैं:
हमने FIRMADYNE सिस्टम का उपयोग करके निम्नलिखित तीन बुनियादी स्वचालित विश्लेषण भी लिखे हैं।
public और private SNMP v2c समुदायों की सामग्री को डिस्क पर डंप करती है।हमारे 2016 के नेटवर्क और डिस्ट्रीब्यूटेड सिस्टम सुरक्षा संगोष्ठी (NDSS) पेपर में, जिसका शीर्षक Towards Automated Dynamic Analysis for Linux-based Embedded Firmware है, हमने FIRMADYNE सिस्टम का 23,035 फर्मवेयर इमेजों के डेटासेट पर मूल्यांकन किया, जिनमें से हम 9,486 निकालने में सक्षम थे। Metasploit फ्रेमवर्क के 60 एक्सप्लॉइट और हमारे द्वारा खोजी गई 14 पहले से अज्ञात भेद्यताओं का उपयोग करके, हमने दिखाया कि 1,971 में से 846 (43%) फर्मवेयर इमेजें कम से कम एक एक्सप्लॉइट के प्रति संवेदनशील थीं, जो हमारे अनुमान के अनुसार 89+ विभिन्न उत्पादों को प्रभावित करती हैं। अधिक विवरण के लिए, ऊपर दिए गए हमारे पेपर को देखें।
नोट: यह प्रोजेक्ट एक शोध उपकरण है, और वर्तमान में उत्पादन के लिए तैयार नहीं है। विशेष रूप से, कुछ घटक काफी अपरिपक्व और खुरदरे हैं। हम सिस्टम को वर्चुअल मशीन के भीतर चलाने का सुझाव देते हैं। कोई समर्थन प्रदान नहीं किया जाता है, लेकिन दस्तावेज़ीकरण, परीक्षण, या कोड के लिए पुल अनुरोधों की बहुत सराहना की जाती है!
पहले, इस रिपॉजिटरी को रिकर्सिव रूप से क्लोन करें और इसकी निर्भरताएँ स्थापित करें।
sudo apt-get install busybox-static fakeroot git dmsetup kpartx netcat-openbsd nmap python-psycopg2 python3-psycopg2 snmp uml-utilities util-linux vlangit clone --recursive https://github.com/firmadyne/firmadyne.gitएक्सट्रैक्टर binwalk टूल पर निर्भर करता है, इसलिए हमें इसे और इसकी निर्भरताओं को स्थापित करने की आवश्यकता है।
git clone https://github.com/ReFirmLabs/binwalk.gitcd binwalksudo ./deps.shsudo python ./setup.py installsudo apt-get install python-lzmasudo -H pip install git+https://github.com/ahupp/python-magicsudo -H pip install git+https://github.com/sviehb/jeffersonअगला, डेटाबेस स्थापित करें, सेटअप करें और कॉन्फ़िगर करें।
sudo apt-get install postgresqlsudo -u postgres createuser -P firmadyne, पासवर्ड firmadyne के साथsudo -u postgres createdb -O firmadyne firmwaresudo -u postgres psql -d firmware < ./firmadyne/database/schemaसभी घटकों के लिए हमारे पूर्व-निर्मित बाइनरी डाउनलोड करने के लिए, निम्नलिखित स्क्रिप्ट चलाएँ:
cd ./firmadyne; ./download.shवैकल्पिक रूप से, स्रोत से संकलन करने के लिए नीचे दिए गए निर्देशों को देखें।
अपने वितरण द्वारा प्रदान किए गए QEMU का उपयोग करने के लिए:
sudo apt-get install qemu-system-arm qemu-system-mips qemu-system-x86 qemu-utilsध्यान दें कि x86-आधारित फर्मवेयर का एम्यूलेशन वर्तमान में समर्थित नहीं है, लेकिन qemu-system-x86 स्थापित करने से कुछ डेबियन-आधारित वितरणों पर पैकेजिंग समस्या हल हो जाती है।
वैकल्पिक रूप से, कुछ फर्मवेयर के लिए हमारा संशोधित संस्करण qemu-linaro का उपयोग करें जो एक निश्चित मेमोरी मैपिंग मानता है (अनुशंसित नहीं), या upstream qemu का उपयोग करें।