ఆగస్ట్ 3, 2007

వెబ్ అప్లికేషన్లలో సెక్యూరిటీ సమస్యలు …

Posted in టెక్నాలజీ, వెబ్, సెక్యూరిటీ వద్ద 8:16 సా. ద్వారా Praveen Garlapati

ఇంతకు ముందు కొన్ని సార్లు నేను సెక్యూరిటీ గురించి చెప్పాను నా బ్లాగులో…

ఈ సారి వెబ్ అప్లికేషన్లు బ్రేక్ చెయ్యడానికి వాడే కొన్ని నాకు తెలిసిన పద్ధతుల గురించి చెబుతాను.

మొదట గుర్తు పెట్టుకోవాల్సింది మీ రహస్య పదం (Password) మీ బలహీనమయిన లంకె (weak link). అది గానీ ఎవరి చేతనయినా చిక్కిందంటే అంతే సంగతులు. అదీ కాక మనందరికీ చాలా చోట్ల ఒకే రహస్య పదం వాడే అలవాటుంటుంది కాబట్టి ఒక చోట గనక అది క్రాక్ చెయ్యబడితే మన అన్ని అకౌంట్లకూ ముప్పే.

సరే ఈ పాస్వర్డులని ఎలా బ్రేక్ చేస్తారు ?

మొదటిది బ్రూట్‌ఫోర్స్ అంటే బలం ఉపయోగించి బ్రేక్ చెయ్యడం. అంటే అన్ని కాంబినేషన్లనూ ఉపయోగించి మీ పాస్వర్డ్ని సంగ్రహించడం. ఇదెలా అంటే ఆల్ఫబెట్స్, నంబర్స్, స్పెషల్ కారెక్టర్స్ మొదలయిన వాటి కాంబినేషన్లు ఉపయోగించి రక రకాల పాస్వర్డులు ఉత్పన్నం చేసి ప్రయత్నిస్తారు. ఇది చాలా క్లిష్టతరం. ఎందుకంటే ఎన్నెన్నో రకాల కాంబినేషన్లు సాధ్యం. కానీ ఇప్పుడున్న కంప్యూటింగ్ పవరుకి దీని ద్వారా కూడా పాస్వర్డ్ తెలుసుకోవడం కష్టం కాదు. దీనిని అరికట్టడానికే కొన్ని వెబ్సైట్లు మూడు సార్లు తప్పు పాస్వర్డులు ఇస్తే అకౌంట్ ని లాక్ చేసేస్తాయి.

రెండోది డిక్షనరీ అటాక్. అంటే డిక్షనరీ లో ఉండే పదాలతో ప్రయత్నించడం. చాలా మంది తమకు నచ్చిన నటీ నటుల పేర్లో, వస్తువుల పేర్లో, రంగుల పేర్లో, భార్యా, ప్రియురాలు మొదలయిన పేర్లో ఉపయోగిస్తారు పాస్వర్డులుగా. లేదా కార్టూన్ కారెక్టర్లు, తమకు నచ్చిన కార్లు మొదలయినవి కూడా. వీటన్నిటినీ డిక్షనరీ వర్డ్స్ అనుకుందాము. వీటి లిస్టు ఒకటి తయారు చెసి వాడితే ? అదే డిక్షనరీ అటాక్.

ఇవన్నీ ఒక ఎత్తయితే సింపుల్ గా నెట్వర్కు ని స్నిఫ్ చేసి ఇలాంటి విషయాలని లాగటం ఇంకో ఎత్తు. పాస్వర్డ్ ఎంత బలంగా పెట్టుకున్నా అది కానీ ఎంక్రిప్ట్ చెయ్యకుండా పంపబడిందనుకోండి సర్వర్ మీదకి దానిని మధ్యలో ఎవరయినా పట్టెయ్యచ్చు. పెద్ద వెబ్సైట్లన్నీ ఇలాంటి వాటికి జాగ్రత్తలు తీసుకుంటాయి అని మీరు అనుకుంటే పప్పులో కాలేసినట్టే. ఎన్నో వెబ్సైటులు వీటిని సరిగా చెయ్యవు. మీకు గనక నమ్మకం కలగకపోతే వైర్‌షార్క్, http headers లాంటి ఉపకరణాలు వాడి మీ కంప్యూటర్ లోంచి బయటకు పంపబడే డాటా ని గమనించండి. https వాడటం వల్ల కొంత వరకూ ఈ ముప్పుని తప్పించచ్చు కానీ దానికీ కొన్ని లిమిటేషన్లున్నాయి.

ఇక పాస్వర్డుల గురించి వదిలేస్తే

XSS: వెబ్ అప్లికేషన్లకి ఉండే ఇతర వలనరబిలిటీ XSS అంటే Cross Site Scripting అంటే మీకు హాని కలిగించేలా మీ వెబ్సైటులో కోడ్ ని ప్రవేశపెట్టడం. ఎక్కువగా ఇది జావాస్క్రిప్ట్ వల్ల సాధ్యమవుతుంది. ఉదాహరణకి సరయిన వాలిడేషన్లు గనక చెయ్యకపోతే మీ బ్రౌజర్ కుకీలు కూడా దొంగిలించటం సాధ్యమవుతుంది.

ఉదా: ఈ వల్నరబిలిటీ ఉన్న వెబ్సైటుకి వెళ్ళినప్పుడు మీరు URL Bar లో గనక టాగులు ఉపయోగించగలిగితే వాటి ద్వారా మీరు మీకు కావలసిన కుకీ సమాచారం దొంగిలించవచ్చు. ఎలా అంటే ఒక్కసారి document.cookie లాంటి మెథడ్లని జావాస్క్రిప్టులో ఉపయోగించి ఆ సమాచారాన్ని లాగవచ్చు.

SQL Injection: అన్ని వెబ్ అప్లికేషన్లలూ దాదాపు డాటాబేస్ ఉపయోగిస్తాయి. ఉదాహరణకి లాగిన్, సెర్చ్ ఏదయినా సరే. ఈ డాటా అంతా Database Query ల ద్వారా సంభాషించబడుతుంది. ఈ క్వేరీలను ఉపయోగించి మీకు కావలసిన సమాచారాన్ని రాబట్టుకునే పద్ధతినే SQL Injection అంటారు.

ఉదా: యూజర్నేం ఇస్తే వారి డీటెయిల్స్ చూపించే ఓ సెర్చ్ బాక్సుందనుకుందాము. సెర్చ్ బాక్స్ కోసం ఇలాంటి కోడ్ వాడారనుకోండి

select * from users where username like ‘$user’;

అప్పుడు మీరు సెర్చ్ బాక్సులో గనక ఇలా ఎంటర్ చేస్తే ఏమవుతుంది

‘; delete * from users;

మొత్తం యూజర్ల డాటా అంతా తొలగించబడుతుంది. ఇలా అనుకోని విధంగా Queries ని మార్చి మనకు చెందని డాటా ని రాబట్టడమో, లేదా తొలగించడమో చెయ్యడాన్నే SQL Injection అంటారు.


Session Hijacking:
వెబ్ అప్లికేషన్లలు మిమ్మల్ని గుర్తు పెట్టుకోవడానికి సెషన్లని వాడతాయి. దాంట్లో మీ నుంచి వచ్చే రిక్వెస్టులను గుర్తించడానికి Session ID లు వాడతారు. ఎవరయినా వాటిని గనక పట్టుకోగలిగితే మీ సెషన్ ని హైజాక్ చెయ్యచ్చన్నమాట. అంటే మీరు పంపించినట్టు సమాచారం పంపించచ్చన్నమాట.


Cookie Poisoning:
కుకీలలో ఉండే సమాచారాన్ని మార్చి హాని కలిగే సమాచారాన్ని ఉంచడం ఈ పద్ధతి. ఇది మీ సిస్టం లో కుకీ ఉంచేటప్పుడయినా జరగచ్చు, అంటే దారిలో దానిని మార్చి మీ సిస్టం లో ఆ మార్చిన కుకీ ని ఉంచవచ్చు. లేదా అప్పటికే మీ సిస్టం లో ఉన్న కుకీ ని మార్చే ప్రయత్నం కావచ్చు.

URL Rewriting: మీరు మామూలుగా చూస్తుంటారు URL లు కొన్ని ఇలా ఉంటాయి http://abc.com/id=123 . వీటిలో సమస్యేమిటి అంటే అందులో డాటా ని మార్చవచ్చు. ఉదాహరణకి ఇద్=123 బదులు నేను ఇద్=456 అని రాసి ప్రయత్నించవచ్చు. అప్పుడు నాకు ఇంకెవరిదన్నా డాటా రావచ్చు.

పైన చెప్పినవి నాకు తెలిసిన కొన్ని పద్ధతులు, ఇంకా ఎన్నో ఉన్నాయి. ఇన్నిటి మధ్య మనం హాయిగా బ్రౌజ్ చేసుకుంటున్నాము 🙂