Detecting Ladder Logic Bombs in IEC 61131-3 PLC Programs using ESBMC-PLC+: A Formal Verification Approach with Trigger Synthesis
यह शोध पत्र ESBMC-LLB प्रस्तुत करता है, जो एक औपचारिक सत्यापन ढांचा (formal verification framework) है जो IEC 61131-3 PLC प्रोग्रामों में लैडर लॉजिक बमों (Ladder Logic Bombs) का पता लगाने के लिए ESBMC-PLC+ का विस्तार करता है, जो छिपे हुए फंक्शन-ब्लॉक लॉजिक को उजागर करके और ट्रिगर्स को सिंथेसाइज करके, सार्वजनिक डेटासेट्स पर मौजूदा तरीकों की विफलता के बावजूद, लगभग पूर्ण डिटेक्शन दर और अनुकूलनशील ट्रिगर्स (adaptive triggers) के विरुद्ध मजबूती प्राप्त करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि एक प्रोग्रामेबल लॉजिक कंट्रोलर (PLC) एक फैक्ट्री के मस्तिष्क की तरह है, जो लगातार एक लूप चला रहा है: वह सेंसर को देखता है, निर्णय लेता है, एक मशीन को चलाता है, और फिर एक सेकंड के बहुत छोटे हिस्से में यह सब फिर से शुरू कर देता है। अब, कल्पना कीजिए कि एक चालाक हैकर इस मस्तिष्क के अंदर एक "लॉजिक बम" छिपा रहा है। यह बम एक सोते हुए ड्रैगन की तरह है; जब तक फैक्ट्री सामान्य रूप से चल रही है, यह कुछ नहीं करता, लेकिन जैसे ही कोई विशिष्ट, छिपी हुई स्थिति होती है (जैसे काउंटर का एक निश्चित संख्या तक पहुँचना), यह जाग जाता है और तबाही मचा देता है—चाहे वह मशीन को फ्रीज कर दे, सेंसर रीडिंग के बारे में झूठ बोले, या किसी वाल्व को तब खोल दे जब उसे बंद रहना चाहिए।
लंबे समय तक, इन फैक्ट्री मस्तिष्क को जाँचने वाले उपकरणों में एक अंधा धब्बा (blind spot) था। वे मुख्य कोड को तो देखते थे लेकिन "फंक्शन ब्लॉक्स" को अनदेखा कर देते थे—जो मुख्य कोड के भीतर छोटे उप-रूटीन या मिनी-प्रोग्राम की तरह होते हैं। पेपर बताता है कि सोते हुए ड्रैगन (बम) इन्हीं अनदेखे फंक्शन ब्लॉक्स के अंदर छिपे हुए थे। क्योंकि पुराने उपकरण इन ब्लॉक्स को अपनी दृष्टि से बाहर कर देते थे, इसलिए दुर्भावनापूर्ण कोड और सुरक्षित कोड जांचकर्ता के लिए बिल्कुल एक जैसे दिखते थे। यह भीड़ में जासूस को खोजने जैसा था जहाँ आप केवल लोगों के चेहरों को देख रहे हैं, जबकि जासूस उस कोट के अंदर छिपा हुआ है जिसे जांचकर्ता ने देखा तक नहीं।
बड़ी सुधार: कोट को खोलना
लेखकों, पियरे डैंटस, लुकास कॉर्डेरो और वाल्डिर जूनियर ने एक नई विधि बनाई जिसे ESBMC-LLB कहा जाता है। उनकी मुख्य तरकीब सरल लेकिन शक्तिशाली थी: उन्होंने जांचकर्ता को फंक्शन ब्लॉक्स के अंदर देखने के लिए प्रेरित किया। उन्होंने एक "ट्रांसलेशन लेयर" जोड़ी जो इन ब्लॉक्स के भीतर के छिपे हुए कोड को लेती है और उसे समतल (flat) बिछा देती है ताकि जांचकर्ता उसे देख सके।
एक बार जब कोड दृश्यमान हो जाता है, तो वे बम को पकड़ने के लिए दो चतुर तरीकों का उपयोग करते हैं:
- स्टॉपवॉच (स्कैन-वॉचडॉग): यदि बम प्रोग्राम को अनंत लूप (endless loop) में चलाकर मशीन को फ्रीज करने की कोशिश करता है, तो जांचकर्ता एक सख्त रेफरी की तरह स्टॉपवॉच के साथ काम करता है। वह कहता है, "तुम्हारे पास इस कार्य को पूरा करने के लिए 100 स्टेप्स हैं। यदि तुम इससे ऊपर गए, तो तुम बाहर हो!" यदि बम अनंत काल तक लूप चलाने की कोशिश करता है, तो जांचकर्ता उसे तुरंत पकड़ लेता है।
- वायर टेस्टर (आउटपुट वायरिंग): यदि बम किसी सेंसर के बारे में झूठ बोलने या किसी मशीन को चलाने के लिए मजबूर करने की कोशिश करता है, तो जांचकर्ता छिपे हुए कोड से मुख्य सिस्टम तक के तारों को जोड़ता है। यदि छिपा हुआ कोड एक "झूठ" भेजने की कोशिश करता है (जैसे कि वाल्व को तब खोलने के लिए कहना जब उसे नहीं खोलना चाहिए), तो जांचकर्ता देखता है कि यह सुरक्षा नियमों को तोड़ रहा है।
जादुई परिणाम: "गुप्त कोड" को खोजना
सबसे शानदार हिस्सा यहाँ है। जब जांचकर्ता को बम मिलता है, तो वह केवल "Error!" नहीं कहता। वह वास्तव में सटीक ट्रिगर निकाल कर देता है। यह ऐसा है जैसे जांचकर्ता कह रहा हो, "मुझे ड्रैगन मिल गया है, और यहाँ वह गुप्त पासवर्ड है जो उसे जगाता है: 'यदि काउंटर 12 तक पहुँचता है'।" इसे "ट्रिगर सिंथेसिस" कहा जाता है।
यह कितना अच्छा काम कर गया?
टीम ने अपने तरीके का परीक्षण डेटा के कई सेटों पर किया, और परिणाम प्रभावशाली थे, लेकिन इनके कुछ महत्वपूर्ण सीमित दायरे भी हैं:
- सार्वजनिक परीक्षण: 60 प्रोग्रामों (30 सुरक्षित, 30 बमों के साथ) के एक प्रसिद्ध डेटासेट पर, उनकी विधि ने सभी 30 बमों को खोज निकाला। इसने हर एक को पकड़ा और प्रत्येक के लिए गुप्त ट्रिगर खोज लिया। इसने यह भी साबित किया कि 29 सुरक्षित प्रोग्राम वास्तव में सुरक्षित थे। एक सुरक्षित प्रोग्राम इतना जटिल था कि जांचकर्ता उसके बारे में 100% सुनिश्चित नहीं हो सका (उसने "सुरक्षित" कहने के बजाय "मुझे नहीं पता" कहा), लेकिन उसने गलत तरीके से उस पर आरोप नहीं लगाया।
- "स्मार्ट" हैकर टेस्ट: उन्होंने गणितीय पहेलियों (जैसे कि एक साधारण संख्या के बजाय एक जटिल गणना का उपयोग करके) में ट्रिगर छिपाकर अपने सिस्टम को चकमा देने की कोशिश की। पुराने उपकरण जो केवल पैटर्न देखते थे, वे इन चालों को मिस कर गए। हालाँकि, ESBMC-LLB ने गणित के अर्थ को समझा और इन सभी 5 चालाकी भरे संस्करणों को पकड़ा।
- बड़े पैमाने का परीक्षण: उन्होंने गति का परीक्षण करने के लिए 310 प्रोग्राम (155 सुरक्षित, 155 बमों के साथ) बनाए। सिस्टम ने औसतन 70 मिलीसेकंड (जो एक पलक झपकने से भी तेज़ है!) में 100% बमों को पकड़ा।
- वास्तविक दुनिया के वाटर प्लांट का परीक्षण: उन्होंने इसे एक जल उपचार संयंत्र (SWaT कॉर्पस) के वास्तविक दुनिया के सिमुलेशन पर परखा।
- पुराने डेटा (सरल गणित ट्रिगर्स के साथ) पर, उन्होंने शून्य गलत अलार्म के साथ 150 में से 149 बमों (99%) को खोजा।
- सीमा: जब उन्होंने बहुत जटिल, नॉन-लीनियर मैथ (जैसे एक संख्या को बार-बार खुद से गुणा करना) वाले नए संस्करण के साथ परीक्षण किया, तो सिस्टम अटक गया। गणित जांचकर्ता के लिए हल करने हेतु बहुत कठिन था, और डिटेक्शन गिरकर 49% रह गया। पेपर यहाँ बहुत स्पष्ट है: उनका तरीका मानक तर्क और सरल गणित के लिए महान है, लेकिन जटिल, नॉन-लीनियर मैथ के मामले में, यह एक दीवार से टकरा जाता है। उन विशिष्ट मामलों में, दूसरे प्रकार के टूल (जिसे CFG-ट्राइएज डिटेक्टर कहा जाता है) का उपयोग करना अभी भी बेहतर है।
वे क्या दावा नहीं करते
लेखक इस बारे में बहुत ईमानदार हैं कि उनका टूल क्या नहीं कर सकता है। वे स्पष्ट रूप से कहते हैं कि यदि कोई बम अपना कार्य जल्दी समाप्त करने के लिए डिज़ाइन किया गया है (अनंत लूप में चले बिना) और किसी भी विशिष्ट सुरक्षा नियम को नहीं तोड़ता है जिसे जांचकर्ता को देखने के लिए बताया गया है, तो टूल उसे मिस कर सकता है। यह हर संभावित बुरी चीज़ को खोजने वाला जादुई डंडा नहीं है; यह उन बमों को खोजता है जो या तो सिस्टम को फ्रीज कर देते हैं या उन सुरक्षा नियमों को तोड़ते हैं जिन्हें उन्होंने परिभाषित किया है।
निष्कर्ष
यह पेपर दिखाता है कि केवल फंक्शन ब्लॉक्स के अंदर देखने के लिए "कोट को खोलकर" और एक स्मार्ट जांचकर्ता का उपयोग करके जो कोड के अर्थ को समझता है, हम उन चालाक औद्योगिक बमों को पकड़ सकते हैं जो पहले सामने दिखते हुए भी छिपे रहते थे। यह बमों को ढूंढता है, हमें बताता है कि उन्हें कैसे ट्रिगर किया जाए (ताकि हम उन्हें रोक सकें), और यह साबित करता है कि बाकी सिस्टम सुरक्षित है—जब तक कि गणित बहुत ज्यादा पागल न हो जाए, जिस स्थिति में हमें एक अलग प्रकार के जासूस की आवश्यकता होती है। लेखक इसे एक शक्तिशाली नए उपकरण के रूप में प्रस्तुत करते हैं जो मौजूदा तरीकों को बदलने के बजाय उनके साथ मिलकर काम करता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।