Segmentation Fault Oriented Programming (SFOP) एक serial code‑reuse attack है। इसमें हमलावर प्रोग्राम को बार‑बार crash होने के लिए मजबूर करते हैं और हर crash के बाद चलने वाले signal handler को नियंत्रण‑प्रवाह के एक नए चरण के रूप में इस्तेमाल करते हैं।
सामान्य तौर पर यह प्रक्रिया कुछ इस तरह चलती है:
यह चक्र बार‑बार दोहराया जाता है। हर crash exploit की एक कड़ी बन जाता है और धीरे‑धीरे हमलावर प्रोग्राम के मौजूदा कोड या लाइब्रेरी का उपयोग करके मनचाहा व्यवहार बनाता है।
यह तरीका पारंपरिक Return‑Oriented Programming (ROP) से अलग है। ROP में return addresses को manipulate किया जाता है, जबकि SFOP में execution को आगे बढ़ाने के लिए लगातार fault‑handling events का इस्तेमाल होता है।
Intel ने Control‑Flow Enforcement Technology (CET) को code‑reuse हमलों को रोकने के लिए बनाया था। यह एक हार्डवेयर आधारित सुरक्षा प्रणाली है जो कई तंत्रों का उपयोग करती है, जैसे:
इसका उद्देश्य यह सुनिश्चित करना है कि प्रोग्राम का नियंत्रण प्रवाह केवल वैध रास्तों से ही गुज़रे।
लेकिन CET मुख्य रूप से प्रोग्राम के सामान्य execution paths के भीतर होने वाले अवैध control‑flow ट्रांसफर को रोकता है।
SFOP की मुख्य समझ यह है कि signal delivery स्वयं ऑपरेटिंग सिस्टम द्वारा नियंत्रित एक वैध control‑flow ट्रांज़िशन है।
हमले का सरलीकृत क्रम इस प्रकार है:
हर signal handler exploit chain की एक कड़ी बन जाता है।
क्योंकि handler तक पहुँचना ऑपरेटिंग सिस्टम द्वारा स्वीकृत control transfer है, इसलिए यह CET द्वारा लागू कई सुरक्षा जाँचों को पार कर सकता है।
इस तरह लगातार crashes और signal handlers की श्रृंखला के माध्यम से हमलावर प्रोग्राम के मौजूदा कोड का उपयोग करते हुए अंततः arbitrary code execution हासिल कर सकते हैं।
Linux में प्रोग्राम SIGSEGV जैसे signals के लिए handlers रजिस्टर कर सकते हैं। इनका उपयोग सामान्यतः:
के लिए किया जाता है।
SFOP इसी सुविधा का दुरुपयोग करता है:
इस तरह signal‑handling प्रणाली खुद exploit chain का हिस्सा बन जाती है।
एक उपाय Linux kernel के signal‑handling व्यवहार को मजबूत बनाना है। शोध के सार्वजनिक सारांशों में संकेत मिलता है कि कुछ kernel‑level patches प्रस्तावित किए गए हैं ताकि segmentation faults और signal handlers को exploit chain के रूप में उपयोग करना कठिन हो जाए। हालांकि इन पैचों के विस्तृत तकनीकी विवरण अभी सीमित रूप से उपलब्ध हैं।
एक और प्रस्तावित सुरक्षा समाधान PLaTypus नाम का hardening तंत्र है।
शोधकर्ताओं ने पाया कि CET सक्रिय होने पर भी हमलावर विभिन्न shared libraries के बीच execution को मोड़ सकते हैं। PLaTypus इस समस्या को कम करने का प्रयास करता है।
यह सुरक्षा परत:
इससे हमलावरों के लिए उपलब्ध code‑reuse targets की संख्या काफी कम हो जाती है।
SFOP यह दिखाता है कि आधुनिक साइबर सुरक्षा में केवल हार्डवेयर सुरक्षा पर निर्भर रहना पर्याप्त नहीं है। यदि ऑपरेटिंग सिस्टम की वैध कार्यप्रणाली—जैसे signal handling—को exploit किया जा सके, तो हमलावर शक्तिशाली सुरक्षा तंत्रों को भी दरकिनार कर सकते हैं।
इसलिए भविष्य की सुरक्षा रणनीतियों में CPU फीचर्स, ऑपरेटिंग सिस्टम और एप्लिकेशन स्तर—तीनों को एक साथ ध्यान में रखना होगा। यही बहु‑स्तरीय दृष्टिकोण आने वाले समय में मजबूत सिस्टम सुरक्षा के लिए आवश्यक माना जा रहा है।