𝗖𝗼𝗻𝗰𝘂𝗿𝗿𝗲𝗻𝘁 𝗟𝗼𝗴𝗶𝗻 𝗦𝗲𝗰𝘂𝗿𝗶𝘁𝘆 (ஒரே நேரத்தில் உள்நுழைவதற்கான பாதுகாப்பு)
வரம்பற்ற உள்நுழைவுகள் (logins) கடுமையான வணிகத் தர்க்கக் குறைபாடுகளை (business logic flaws) மறைக்கக்கூடும்.
ஒரு பயனர் மடிக்கணினியில் உள்நுழைகிறார். சில வினாடிகளுக்குப் பிறகு, அதே கணக்கு ஒரு வேறு உலாவியில் (browser) உள்நுழைகிறது. பிறகு ஒரு மொபைல் சாதனம். பிறகு ஒரு API கிளையண்ட். அனைத்தும் சரியாக வேலை செய்கின்றன.
பல செயலிகள் பல சாதனங்களை ஆதரிப்பதால் இது சரியாகத் தோன்றலாம். ஆனால் நீங்கள் கேட்க வேண்டிய கேள்வி: ஒவ்வொரு செயலியும் வரம்பற்ற அமர்வுகளை (sessions) அனுமதிக்க வேண்டுமா?
சில அமைப்புகளில், பல அமர்வுகள் ஒரு வசதியாகும் (feature). மற்றவற்றில், தாக்குபவர்கள் மறைந்திருக்கப் பயன்படுத்தும் ஒரு குறைபாடாகும். இது ஒரு வணிகத் தர்க்க பாதிப்பு (business logic vulnerability). குறியீடு (code) வடிவமைக்கப்பட்டபடி வேலை செய்கிறது, ஆனால் அந்த வடிவமைப்பே பலவீனமாக உள்ளது.
வித்தியாசம்: • பாரம்பரிய பிழைகள் (Traditional bugs) குறியீட்டுத் தவறுகளைப் பயன்படுத்துகின்றன. • வணிகத் தர்க்கப் பிழைகள் (Business logic bugs) வடிவமைப்பு முடிவுகளைப் பயன்படுத்துகின்றன.
ஒரு திரைப்பட ஸ்ட்ரீமிங் சேவையை நினைத்துப் பாருங்கள். ஒரு சந்தா (subscription) பத்து பேர் ஒரே நேரத்தில் பார்ப்பதற்கு அனுமதித்தால், உள்நுழைவு அமைப்பு சரியாக வேலை செய்கிறது. ஆனால் வணிக விதி (business rule) தோல்வியடைகிறது.
இது வங்கிச் சேவைகள், நிர்வாகப் பலகைகள் (admin panels) மற்றும் SaaS தயாரிப்புகளுக்கும் பொருந்தும்.
இதை எவ்வாறு சோதனை செய்வது:
- Browser A மூலம் உள்நுழைந்து அதைச் செயல்பாட்டில் வைத்திருக்கவும்.
- Browser B இல் ஒரு இன்காக்னிட்டோ (incognito) சன்னலைத் திறக்கவும்.
- அதே விவரங்களைக் கொண்டு உள்நுழையவும்.
- முதல் அமர்வு (session) இன்னும் வேலை செய்கிறதா என்று பார்க்கவும்.
- இரண்டிலும் முக்கியமான செயல்களைச் செய்ய முடிகிறதா என்று சரிபார்க்கவும்.
அதிக பாதுகாப்பு தேவைப்படும் செயலிகள் பெரும்பாலும் இந்த விதிகளைப் பின்பற்றுகின்றன:
- ஒரு கணக்கிற்கு ஒரு செயல்பாட்டு அமர்வு மட்டுமே.
- புதிய உள்நுழைவு ஏற்படும் போது பழைய அமர்வுகளை வெளியேற்றுதல் (logging out).
- சாதனங்களை நிர்வகிக்கக் கட்டுப்பாடுகள்.
- புதிய உள்நுழைவுகளுக்கான எச்சரிக்கைகள்.
ஒரு தாக்குபவர் உங்கள் விவரங்களைத் திருடிவிட்டால், நீங்கள் வரம்பற்ற அமர்வுகளை அனுமதித்தால், அவர் எப்போதும் உள்நுழைந்தே இருக்க முடியும். உண்மையான பயனர் செயல்பாட்டில் இருக்கும்போதே அவரும் செயல்பாட்டில் இருப்பார். இருவரில் யாருக்கும் அந்த ஊடுருவல் தெரியாது.
சூழலே முக்கியமானது. பல அமர்வுகள் தேவைப்படும் செயலிகள்:
- செய்தி அனுப்பும் செயலிகள் (Messaging apps).
- சமூக ஊடகங்கள்.
- மின்னஞ்சல் சேவைகள்.
கடுமையான கட்டுப்பாடு தேவைப்படும் செயலிகள்:
- வங்கி அமைப்புகள்.
- நிர்வாகத் தரவுப் பலகைகள் (Admin dashboards).
- சுகாதாரத் தளங்கள் (Healthcare platforms).
இதை எவ்வாறு சரி செய்வது:
- செயல்பாட்டு அமர்வு ஐடிகளை (session IDs) ஒரு தரவுத்தளத்தில் (database) சேமிக்கவும்.
- புதிய உள்நுழைவு ஏற்படும் போது, பழைய அமர்வை முடிவுக்குக் கொண்டு வரவும்.
- பயனர்கள் தங்களின் செயல்பாட்டு சாதனங்கள் மற்றும் இருப்பிடங்களைக் காண அனுமதிக்கவும்.
- "அனைத்து சாதனங்களிலிருந்தும் வெளியேறு" (Log out from all devices) என்ற பொத்தானைச் சேர்க்கவும்.
- புதிய உள்நுழைவுகளுக்கு மின்னஞ்சல் அல்லது SMS எச்சரிக்கைகளை அனுப்பவும்.
SQL injection போன்ற குறியீட்டுப் பிழைகளை மட்டும் தேடாதீர்கள். உங்கள் செயலி செய்வதற்கும் உங்கள் வணிகத்திற்குத் தேவைப்படுவதற்கும் இடையிலான இடைவெளிகளைத் தேடுங்கள்.
இன்று உங்கள் அமர்வு கொள்கையை (session policy) மறுஆய்வு செய்யுங்கள். உங்கள் மிகப்பெரிய ஆபத்து முறிந்த குறியீடு (broken code) அல்ல; அது முறிந்த தர்க்கமாக (broken logic) இருக்கலாம்.