एकाच वेळी अनेक लॉगिन सुरक्षा (Concurrent Login Security)
अमर्याद लॉगिनमुळे गंभीर बिझनेस लॉजिकमधील त्रुटी लपल्या जाऊ शकतात.
एक वापरकर्ता लॅपटॉपवर लॉगिन करतो. काही सेकंदातच, त्याच खात्यातून दुसऱ्या ब्राउझरवर लॉगिन केले जाते. त्यानंतर मोबाईल डिव्हाइसवर आणि मग API क्लायंटवर. सर्व काही अगदी व्यवस्थित चालते.
हे ठीक वाटते कारण अनेक ॲप्स एकाधिक डिव्हाइसेसना सपोर्ट करतात. पण तुम्हाला स्वतःला विचारले पाहिजे: प्रत्येक ॲप्लिकेशनने अमर्याद सेशन्सना परवानगी दिली पाहिजे का?
काही सिस्टममध्ये, मल्टिपल सेशन्स हे एक वैशिष्ट्य (feature) असते. इतरांमध्ये, ही एक त्रुटी असते ज्याचा वापर हल्लेखोर स्वतःला लपवून ठेवण्यासाठी करतात. ही एक बिझनेस लॉजिक व्हल्नरेबिलिटी (vulnerability) आहे. कोड डिझाइननुसार काम करतो, परंतु डिझाइनच कमकुवत असते.
फरक: • पारंपारिक बग्स (Traditional bugs) कोडिंगमधील चुकांचा फायदा घेतात. • बिझनेस लॉजिक बग्स डिझाइनच्या निर्णयांचा फायदा घेतात.
एखाद्या मूव्ही स्ट्रीमिंग सर्व्हिसचा विचार करा. जर एका सबस्क्रिप्शनमुळे दहा लोकांना एकाच वेळी पाहण्याची परवानगी मिळत असेल, तर लॉगिन सिस्टम व्यवस्थित काम करत आहे, पण बिझनेस रूल (business rule) अयशस्वी ठरत आहे.
हे बँकिंग, ॲडमिन पॅनल्स आणि SaaS उत्पादनांना लागू होते.
याची चाचणी कशी करावी:
- ब्राउझर A द्वारे लॉगिन करा आणि ते सक्रिय ठेवा.
- ब्राउझर B मध्ये इन्कॉग्निटो (incognito) विंडो उघडा.
- त्याच क्रेडेंशियल्ससह (credentials) लॉगिन करा.
- पहिले सेशन अजूनही काम करत आहे का ते तपासा.
- तुम्ही दोन्हीवर संवेदनशील कृती (sensitive actions) करू शकता का ते तपासा.
उच्च-सुरक्षा ॲप्स अनेकदा या नियमांची अंमलबजावणी करतात:
- प्रति खाते एक सक्रिय सेशन.
- नवीन लॉगिन झाल्यावर जुने सेशन्स लॉग आउट करणे.
- डिव्हाइसेस व्यवस्थापित करण्यासाठी नियंत्रणे (controls).
- नवीन लॉगिनसाठी अलर्ट्स.
जर एखाद्या हल्लेखोराने क्रेडेंशियल्स चोरले, तर तुम्ही अमर्याद सेशन्सना परवानगी दिली असल्यास ते कायमस्वरूपी लॉगिन राहू शकतात. खरा वापरकर्ता सक्रिय असताना ते देखील सक्रिय राहतात. दोघांपैकी कोणालाही घुसखोराची जाणीव होत नाही.
संदर्भ सर्व काही आहे. ज्या ॲप्सना अनेक सेशन्सची आवश्यकता असते:
- मेसेजिंग ॲप्स.
- सोशल मीडिया.
- ईमेल सेवा.
ज्या ॲप्सना कडक नियंत्रणाची आवश्यकता असते:
- बँकिंग सिस्टम्स.
- ॲडमिन डॅशबोर्ड्स.
- हेल्थकेअर प्लॅटफॉर्म्स.
हे कसे सुधारावे:
- सक्रिय सेशन आयडी (session IDs) डेटाबेसमध्ये साठवा.
- जेव्हा नवीन लॉगिन होते, तेव्हा जुने सेशन संपवा (kill).
- वापरकर्त्यांना सक्रिय डिव्हाइसेस आणि ठिकाणे पाहू द्या.
- "सर्व डिव्हाइसेसमधून लॉग आउट करा" (Log out from all devices) बटण जोडा.
- नवीन लॉगिनसाठी ईमेल किंवा SMS अलर्ट पाठवा.
फक्त SQL इंजेक्शन सारख्या कोड बग्सच्या शोधात राहू नका. तुमचे ॲप जे करते आणि तुमच्या व्यवसायाला ज्याची आवश्यकता आहे, यामधील तफावत शोधा.
आजच तुमच्या सेशन पॉलिसीचा आढावा घ्या. तुमचा सर्वात मोठा धोका तुटलेला कोड नसेल, तर तो बिघडलेले लॉजिक असू शकतो.