એકસાથે લોગિન સુરક્ષા (Concurrent Login Security)
અમર્યાદિત લોગિન્સ ગંભીર બિઝનેસ લોજિક ખામીઓને છુપાવી શકે છે.
એક વપરાશકર્તા લેપટોપ પર લોગિન કરે છે. થોડી સેકન્ડો પછી, તે જ એકાઉન્ટ બીજા બ્રાઉઝર પર લોગિન થાય છે. પછી એક મોબાઈલ ઉપકરણ. પછી એક API ક્લાયન્ટ. બધું બરાબર કામ કરે છે.
આ બરાબર લાગે છે કારણ કે ઘણા એપ્સ મલ્ટિપલ ડિવાઇસને સપોર્ટ કરે છે. પરંતુ તમારે પૂછવું જોઈએ: શું દરેક એપ્લિકેશનને અમર્યાદિત સેશન્સની મંજૂરી આપવી જોઈએ?
કેટલાક સિસ્ટમ્સમાં, મલ્ટિપલ સેશન્સ એ એક સુવિધા (feature) છે. અન્યમાં, તે એક ખામી છે જેનો ઉપયોગ હુમલાખોરો છુપાયેલા રહેવા માટે કરે છે. આ એક બિઝનેસ લોજિક વલ્નરેબિલિટી (business logic vulnerability) છે. કોડ ડિઝાઇન મુજબ કામ કરે છે, પરંતુ ડિઝાઇન પોતે જ નબળી છે.
તફાવત: • પરંપરાગત બગ્સ કોડિંગની ભૂલોનો ઉપયોગ કરે છે. • બિઝનેસ લોજિક બગ્સ ડિઝાઇનના નિર્ણયોનો ઉપયોગ કરે છે.
એક મૂવી સ્ટ્રીમિંગ સર્વિસ વિશે વિચારો. જો એક સબ્સ્ક્રિપ્શન દસ લોકોને એકસાથે જોવા દે છે, તો લોગિન સિસ્ટમ કામ કરે છે. પરંતુ બિઝનેસ નિયમ નિષ્ફળ જાય છે.
આ બેંકિંગ, એડમિન પેનલ્સ અને SaaS પ્રોડક્ટ્સને લાગુ પડે છે.
આ માટે કેવી રીતે ટેસ્ટ કરવું:
- બ્રાઉઝર A દ્વારા લોગિન કરો અને તેને એક્ટિવ રાખો.
- બ્રાઉઝર B માં ઇન્કોગ્નિટો વિન્ડો ખોલો.
- સમાન ક્રેડેન્શિયલ્સ સાથે લોગિન કરો.
- તપાસો કે પ્રથમ સેશન હજુ પણ કામ કરે છે કે નહીં.
- તપાસો કે તમે બંને પર સંવેદનશીલ ક્રિયાઓ કરી શકો છો કે નહીં.
હાઈ-સિક્યુરિટી એપ્સ ઘણીવાર આ નિયમો લાગુ કરે છે:
- દરેક એકાઉન્ટ દીઠ એક એક્ટિવ સેશન.
- જ્યારે નવું લોગિન થાય ત્યારે જૂના સેશન્સમાંથી લોગ આઉટ કરવું.
- ઉપકરણો (devices) મેનેજ કરવા માટેના નિયંત્રણો.
- નવા લોગિન માટે એલર્ટ્સ.
જો કોઈ હુમલાખોર ક્રેડેન્શિયલ્સ ચોરી લે છે, તો જો તમે અમર્યાદિત સેશન્સની મંજૂરી આપો છો, તો તેઓ કાયમ માટે લોગિન રહી શકે છે. જ્યારે અસલી વપરાશકર્તા એક્ટિવ હોય છે, ત્યારે તેઓ પણ એક્ટિવ રહે છે. કોઈ પણ વ્યક્તિ અજાણ્યા વ્યક્તિ (intruder) પર ધ્યાન આપતી નથી.
સંદર્ભ (Context) જ બધું છે. જે એપ્સને ઘણા સેશન્સની જરૂર છે:
- મેસેજિંગ એપ્સ.
- સોશિયલ મીડિયા.
- ઈમેલ સેવાઓ.
જે એપ્સને કડક નિયંત્રણની જરૂર છે:
- બેંકિંગ સિસ્ટમ્સ.
- એડમિન ડેશબોર્ડ્સ.
- હેલ્થકેર પ્લેટફોર્મ્સ.
તેને કેવી રીતે સુધારવું:
- એક્ટિવ સેશન ID ને ડેટાબેઝમાં સ્ટોર કરો.
- જ્યારે નવું લોગિન થાય, ત્યારે જૂનું સેશન બંધ (kill) કરો.
- વપરાશકર્તાઓને એક્ટિવ ડિવાઇસ અને લોકેશન જોવા દો.
- "Log out from all devices" બટન ઉમેરો.
- નવા લોગિન માટે ઈમેલ અથવા SMS એલર્ટ્સ મોકલો.
ફક્ત SQL ઇન્જેક્શન જેવા કોડ બગ્સ ન શોધો. તમારી એપ્લિકેશન શું કરે છે અને તમારા બિઝનેસની જરૂરિયાત શું છે તે વચ્ચેના અંતરો (gaps) શોધો.
આજે જ તમારી સેશન પોલિસીની સમીક્ષા કરો. તમારું સૌથી મોટું જોખમ કદાચ બ્રોકન કોડ ન પણ હોય. તે કદાચ બ્રોકન લોજિક હોઈ શકે છે.