बिज़नेस लॉजिक अटैक की व्याख्या
हमलावर पैसे चुराने के लिए हमेशा आपके कोड को नहीं तोड़ते।
कई डेवलपर्स APIs और एन्क्रिप्शन को सुरक्षित करने में महीनों बिताते हैं। वे SQL इंजेक्शन या XSS को रोकने पर ध्यान केंद्रित करते हैं। फिर एक हमलावर बिना किसी सुरक्षा नियंत्रण को तोड़े धन चुरा लेता है।
यह एक बिज़नेस लॉजिक अटैक है।
एप्लिकेशन बिल्कुल वैसे ही काम करती है जैसा उसे डिज़ाइन किया गया है। हमलावर बस आपके ही नियमों का उपयोग आपके विरुद्ध करता है।
एक बैंक वॉल्ट (तिजोरी) के बारे में सोचें। अधिकांश सुरक्षा परीक्षण यह जांचते हैं कि दरवाजा मजबूत है या नहीं। बिज़नेस लॉजिक टेस्टिंग एक अलग सवाल पूछती है। क्या होगा यदि कोई गार्ड को अपने लिए दरवाजा खोलने के लिए मना ले?
वॉल्ट काम करता है। प्रक्रिया विफल हो जाती है।
यहाँ तीन तरीके दिए गए हैं जिनसे हमलावर बैंकिंग लॉजिक का दुरुपयोग करते हैं:
वेटिंग पीरियड (प्रतीक्षा अवधि) को बायपास करना बैंक अक्सर नए प्राप्तकर्ता को जोड़ने के बाद 24 घंटे के इंतजार की आवश्यकता रखते हैं। यह त्वरित चोरी को रोकता है। एक हमलावर ऐसा API एंडपॉइंट ढूंढ सकता है जो इस जांच को छोड़ देता है। वे UI प्रतिबंध को बायपास करते हैं और तुरंत पैसे ट्रांसफर कर देते हैं।
ट्रांजेक्शन लिमिट को तोड़ना एक बैंक 50,000 की दैनिक सीमा निर्धारित कर सकता है। यदि कोड केवल प्रत्येक ट्रांजेक्शन की व्यक्तिगत रूप से जांच करता है, तो एक हमलावर 49,000 के पांच ट्रांसफर भेज सकता है। प्रत्येक ट्रांजेक्शन वैध दिखता है। कुल राशि सीमा से अधिक हो जाती है, लेकिन सिस्टम इसे पकड़ नहीं पाता।
रिवॉर्ड का दुरुपयोग कई ऐप्स बिल भुगतान के लिए कैशबैक देते हैं। एक हमलावर बिल का भुगतान कर सकता है और फिर तुरंत उसे रद्द कर सकता है। यदि सिस्टम रिवॉर्ड वापस नहीं लेता है, तो हमलावर अंतहीन कैशबैक इकट्ठा करने के लिए एक लूप बना लेता है।
ऑटोमेटेड स्कैनर इसे क्यों नहीं पकड़ पाते?
स्कैनर मैलवेयर या इंजेक्शन जैसी तकनीकी खामियों की तलाश करते हैं। एक स्कैनर सफल ट्रांसफर देखता है और 200 OK का स्टेटस देता है। उसे लगता है कि सब कुछ ठीक है।
एक ह्यूमन टेस्टर पूछता है: क्या यह ट्रांसफर होना ही चाहिए था?
इन खामियों को खोजने के लिए, यह पूछना बंद करें कि क्या किसी फीचर को हैक किया जा सकता है। यह पूछना शुरू करें कि क्या किसी फीचर का दुरुपयोग किया जा सकता है।
इन क्षेत्रों की जांच करें:
- क्या उपयोगकर्ता सत्यापन (verification) चरणों को छोड़ सकते हैं?
- क्या उपयोगकर्ता किसी ID का स्वामित्व बदल सकते हैं?
- क्या API के माध्यम से वेटिंग पीरियड को बायपास किया जा सकता है?
- क्या सीमाएं कुल राशि पर लागू होती हैं या केवल प्रति क्लिक?
- क्या रिवॉर्ड्स को कई बार ट्रिगर किया जा सकता है?
एलीट सुरक्षा टीमें केवल 'यूज़ केस' (use cases) नहीं बनातीं। वे 'अब्यूज केस' (abuse cases) बनाती हैं।
"उपयोगकर्ता पैसे ट्रांसफर करता है" का परीक्षण करने के बजाय, "हमलावर सीमा को बायपास करने के लिए 500 छोटे ट्रांसफर करने का प्रयास करता है" का परीक्षण करें।
दूसरा सवाल वास्तविक जोखिम को उजागर करता है।
स्रोत: https://dev.to/arashad_dodhiya_0e4bdba5a/business-logic-attacks-explained-using-a-banking-app-27hj