బిజినెస్ లాజిక్ దాడులు వివరణ
డబ్బు దొంగిలించడానికి దాడులు చేసేవారు (Attackers) ఎల్లప్పుడూ మీ కోడ్ను బ్రేక్ చేయరు.
చాలా మంది డెవలపర్లు APIలు మరియు ఎన్క్రిప్షన్ను సురక్షితం చేయడానికి నెలల తరబడి సమయం కేటాయిస్తారు. వారు SQL injection లేదా XSS వంటి వాటిని అడ్డుకోవడంపై దృష్టి పెడతారు. కానీ, ఒక్క సెక్యూరిటీ కంట్రోల్ను కూడా బ్రేక్ చేయకుండానే ఒక అటాకర్ నిధులను దొంగిలిస్తాడు.
ఇదే బిజినెస్ లాజిక్ అటాక్ (Business logic attack).
అప్లికేషన్ సరిగ్గా డిజైన్ చేసిన విధంగానే పనిచేస్తుంది. అటాకర్ కేవలం మీ స్వంత నియమాలను మీకే వ్యతిరేకంగా ఉపయోగిస్తాడు.
ఒక బ్యాంక్ వాల్ట్ (Bank vault) గురించి ఆలోచించండి. చాలా వరకు సెక్యూరిటీ టెస్టులు తలుపు బలంగా ఉందో లేదో తనిఖీ చేస్తాయి. బిజినెస్ లాజిక్ టెస్టింగ్ వేరే ప్రశ్న అడుగుతుంది. ఒకవేళ ఎవరైనా గార్డ్ను నమ్మించి, తమ కోసం తలుపు తెరవమని చెబితే ఏమవుతుంది?
వాల్ట్ సరిగ్గా పనిచేస్తుంది. కానీ ప్రక్రియ (Process) విఫలమవుతుంది.
బ్యాంకింగ్ లాజిక్ను అటాకర్లు దుర్వినియోగం చేసే మూడు మార్గాలు ఇక్కడ ఉన్నాయి:
వెయిటింగ్ పీరియడ్స్ను బైపాస్ చేయడం (Bypassing Waiting Periods) బ్యాంకులు తరచుగా కొత్త రిసిపియంట్ను జోడించిన తర్వాత 24 గంటల వేచి ఉండే సమయాన్ని (wait period) కోరుతాయి. ఇది తక్షణ దొంగతనాన్ని నివారిస్తుంది. ఒక అటాకర్ ఈ తనిఖీని దాటవేసే API endpointను కనుగొనవచ్చు. వారు UI పరిమితిని బైపాస్ చేసి, వెంటనే డబ్బును బదిలీ చేస్తారు.
ట్రాన్సాక్షన్ లిమిట్లను బ్రేక్ చేయడం (Breaking Transaction Limits) ఒక బ్యాంక్ రోజువారీ పరిమితిని 50,000గా నిర్ణయించవచ్చు. కోడ్ ప్రతి ట్రాన్సాక్షన్ను విడివిడిగా మాత్రమే తనిఖీ చేస్తే, అటాకర్ 49,000 చొప్పున ఐదు బదిలీలను పంపగలడు. ప్రతి ట్రాన్సాక్షన్ సరైనదే అనిపిస్తుంది. మొత్తం మొత్తం పరిమితిని మించిపోతుంది, కానీ సిస్టమ్ దానిని గుర్తించదు.
రివార్డ్ దుర్వినియోగం (Reward Abuse) చాలా యాప్లు బిల్లు చెల్లింపులకు క్యాష్బ్యాక్ ఇస్తాయి. ఒక అటాకర్ బిల్లు చెల్లించి, వెంటనే దానిని ర