ఫజ్ చేయడం అంటే ఏమిటి?
ఉపోద్ఘాతం: ఫజ్ చేయడం అంటే ఏమిటి?
2014లో చైనీస్ హ్యాకర్లు కమ్యూనిటీ హెల్త్ సిస్టమ్స్లోకి హ్యాక్ చేయబడింది, లాభాపేక్షతో కూడిన US హాస్పిటల్ చైన్ మరియు 4.5 మిలియన్ల రోగుల డేటాను దొంగిలించింది. హ్యాక్కి కొన్ని నెలల ముందు OpenSSL క్రిప్టోగ్రఫీ లైబ్రరీలో కనుగొనబడిన హార్ట్బ్లీడ్ అనే బగ్ను హ్యాకర్లు ఉపయోగించుకున్నారు.
హార్ట్బ్లీడ్ అనేది దాడి వెక్టర్ల తరగతికి ఒక ఉదాహరణ, ఇది ప్రాథమిక తనిఖీలను పాస్ చేయడానికి తగినంత చెల్లుబాటు అయ్యే తప్పుగా రూపొందించిన అభ్యర్థనలను పంపడం ద్వారా లక్ష్యాన్ని యాక్సెస్ చేయడానికి దాడి చేసేవారిని అనుమతిస్తుంది. యాప్లోని వివిధ భాగాలపై పనిచేసే నిపుణులు దాని భద్రతను నిర్ధారించడానికి తమ వంతు కృషి చేస్తున్నప్పుడు, యాప్ను విచ్ఛిన్నం చేసే లేదా అభివృద్ధి సమయంలో హాని కలిగించే అన్ని మూలల గురించి ఆలోచించడం అసాధ్యం.
ఇక్కడే 'ఫజింగ్' వస్తుంది.
అస్పష్టమైన దాడి అంటే ఏమిటి?
ఫజ్ చేయడం, ఫజ్ టెస్టింగ్ లేదా ఫజ్జింగ్ అటాక్ అనేది యాదృచ్ఛికంగా, ఊహించని లేదా చెల్లని డేటాను (ఫజ్ అని పిలుస్తారు) ప్రోగ్రామ్లోకి ఫీడ్ చేయడానికి ఉపయోగించే ఆటోమేటెడ్ సాఫ్ట్వేర్ టెస్టింగ్ టెక్నిక్. బఫర్ ఓవర్ఫ్లోలు, క్రాష్లు, మెమరీ లీకేజీలు, థ్రెడ్ హ్యాంగ్లు మరియు రీడ్/రైట్ యాక్సెస్ ఉల్లంఘనల వంటి అసాధారణమైన లేదా ఊహించని ప్రవర్తనల కోసం ప్రోగ్రామ్ పర్యవేక్షించబడుతుంది. అసాధారణ ప్రవర్తన యొక్క కారణాన్ని వెలికితీసేందుకు గజిబిజి సాధనం లేదా ఫజర్ ఉపయోగించబడుతుంది.
అన్ని సిస్టమ్లు కనుగొనబడటానికి వేచి ఉన్న బగ్లను కలిగి ఉంటాయి మరియు అలా చేయడానికి తగినంత సమయం మరియు వనరులను అందించగలవు అనే ఊహపై అస్పష్టత ఆధారపడి ఉంటుంది. చాలా సిస్టమ్లు చాలా మంచి పార్సర్లు లేదా ఇన్పుట్ ధ్రువీకరణ నిరోధించడాన్ని కలిగి ఉన్నాయి cybercriminals ప్రోగ్రామ్లోని ఏదైనా ఊహాజనిత బగ్లను ఉపయోగించడం నుండి. అయితే, మేము పైన చెప్పినట్లుగా, అభివృద్ధి సమయంలో అన్ని మూలల కేసులను కవర్ చేయడం కష్టం.
నిర్మాణాత్మక ఇన్పుట్ను తీసుకునే లేదా ఒకరకమైన ట్రస్ట్ సరిహద్దును కలిగి ఉండే ప్రోగ్రామ్లలో ఫజర్లు ఉపయోగించబడతాయి. ఉదాహరణకు, PDF ఫైల్లను ఆమోదించే ప్రోగ్రామ్లో ఫైల్కు .pdf పొడిగింపు మరియు PDF ఫైల్ను ప్రాసెస్ చేయడానికి పార్సర్ ఉందని నిర్ధారించుకోవడానికి కొంత ధ్రువీకరణ ఉంటుంది.
సమర్థవంతమైన ఫజర్ ఈ సరిహద్దులను దాటడానికి తగినంత చెల్లుబాటు అయ్యే ఇన్పుట్లను ఉత్పత్తి చేయగలదు, అయితే ప్రోగ్రామ్కు దూరంగా ఊహించని ప్రవర్తనను కలిగించేంత చెల్లదు. ఇది చాలా ముఖ్యమైనది ఎందుకంటే కేవలం ధృవీకరణలను అధిగమించగలగడం వల్ల ఎటువంటి హాని జరగకపోతే పెద్దగా అర్థం కాదు.
SQL ఇంజెక్షన్, క్రాస్-సైట్ స్క్రిప్టింగ్, బఫర్ ఓవర్ఫ్లో మరియు డినాయల్-ఆఫ్-సర్వీస్ అటాక్లతో సహా చాలా సారూప్యమైన దాడి వెక్టర్లను ఫజర్లు కనుగొంటారు. ఈ దాడులన్నీ ఊహించని, చెల్లని లేదా యాదృచ్ఛిక డేటాను సిస్టమ్లోకి అందించడం వల్ల సంభవించినవి.
ఫజర్స్ రకాలు
కొన్ని లక్షణాల ఆధారంగా ఫ్యూజర్లను వర్గీకరించవచ్చు:
- దాడి లక్ష్యాలు
- ఫజ్ సృష్టి పద్ధతి
- ఇన్పుట్ నిర్మాణంపై అవగాహన
- కార్యక్రమం నిర్మాణంపై అవగాహన
1. దాడి లక్ష్యాలు
ఈ వర్గీకరణ ఫజర్ని పరీక్షించడానికి ఉపయోగించే ప్లాట్ఫారమ్ రకంపై ఆధారపడి ఉంటుంది. Fuzzers సాధారణంగా నెట్వర్క్ ప్రోటోకాల్లు మరియు సాఫ్ట్వేర్ అప్లికేషన్లతో ఉపయోగించబడతాయి. ప్రతి ప్లాట్ఫారమ్ ఒక నిర్దిష్ట రకమైన ఇన్పుట్ను అందుకుంటుంది మరియు అందువల్ల వివిధ రకాల ఫజర్లు అవసరం.
ఉదాహరణకు, అప్లికేషన్లతో వ్యవహరించేటప్పుడు, యూజర్ ఇంటర్ఫేస్, కమాండ్-లైన్ టెర్మినల్, ఫారమ్లు/టెక్స్ట్ ఇన్పుట్లు మరియు ఫైల్ అప్లోడ్లు వంటి అప్లికేషన్ యొక్క వివిధ ఇన్పుట్ ఛానెల్లలో అన్ని అస్పష్టమైన ప్రయత్నాలు జరుగుతాయి. కాబట్టి ఫజర్ ద్వారా ఉత్పత్తి చేయబడిన అన్ని ఇన్పుట్లు ఈ ఛానెల్లతో సరిపోలాలి.
కమ్యూనికేషన్ ప్రోటోకాల్లతో వ్యవహరించే ఫజర్లు ప్యాకెట్లతో వ్యవహరించాలి. ఈ ప్లాట్ఫారమ్ను లక్ష్యంగా చేసుకున్న ఫజర్లు నకిలీ ప్యాకెట్లను రూపొందించవచ్చు లేదా అడ్డగించిన ప్యాకెట్లను సవరించడానికి మరియు వాటిని రీప్లే చేయడానికి ప్రాక్సీలుగా కూడా పని చేయవచ్చు.
2. ఫజ్ క్రియేషన్ మెథడ్
ఫజ్లు ఫజ్ చేయడానికి డేటాను ఎలా సృష్టిస్తాయనే దాని ఆధారంగా కూడా వర్గీకరించవచ్చు. చారిత్రాత్మకంగా, ఫజర్లు మొదటి నుండి యాదృచ్ఛిక డేటాను రూపొందించడం ద్వారా ఫజ్ను సృష్టించారు. ఈ టెక్నిక్ను ప్రారంభించిన ప్రొఫెసర్ బార్టన్ మిల్లర్ మొదట్లో దీన్ని ఎలా చేసారు. ఈ రకమైన ఫజర్ను a అంటారు తరం ఆధారిత ఫజర్.
ఏది ఏమైనప్పటికీ, ట్రస్ట్ సరిహద్దును దాటవేసే డేటాను సిద్ధాంతపరంగా రూపొందించగలిగినప్పటికీ, అలా చేయడానికి గణనీయమైన సమయం మరియు వనరులు పడుతుంది. అందువల్ల ఈ పద్ధతి సాధారణంగా సాధారణ ఇన్పుట్ నిర్మాణాలతో కూడిన సిస్టమ్లకు ఉపయోగించబడుతుంది.
ఈ సమస్యకు పరిష్కారం ఏమిటంటే, ట్రస్ట్ సరిహద్దును దాటడానికి తగినంత చెల్లుబాటు అయ్యే డేటాను రూపొందించడానికి చెల్లుబాటు అయ్యే డేటాను మార్చడం, అయితే సమస్యలను కలిగించేంత చెల్లదు. దీనికి మంచి ఉదాహరణ ఎ DNS ఫజర్ ఇది డొమైన్ పేరును తీసుకుంటుంది మరియు పేర్కొన్న డొమైన్ యజమానిని లక్ష్యంగా చేసుకుని సంభావ్య హానికరమైన డొమైన్లను గుర్తించడానికి డొమైన్ పేర్ల యొక్క పెద్ద జాబితాను రూపొందిస్తుంది.
ఈ విధానం మునుపటి కంటే తెలివైనది మరియు సాధ్యమయ్యే ప్రస్తారణలను గణనీయంగా తగ్గిస్తుంది. ఈ పద్ధతిని ఉపయోగించే ఫజర్స్ అంటారు మ్యుటేషన్-ఆధారిత ఫ్యూజర్లు.
దుర్బలత్వాలను రూట్ చేయడానికి అవసరమైన సరైన గజిబిజి డేటాను కలిపేందుకు జన్యు అల్గారిథమ్లను ఉపయోగించుకునే మూడవ ఇటీవలి పద్ధతి ఉంది. ప్రోగ్రామ్లో ఫీడ్ చేసినప్పుడు ప్రతి టెస్ట్ డేటా పనితీరును పరిగణనలోకి తీసుకుని, దాని ఫజ్ డేటాను నిరంతరం మెరుగుపరచడం ద్వారా ఇది పనిచేస్తుంది.
డేటా పూల్ నుండి చెత్తగా పని చేస్తున్న డేటా సెట్లు తీసివేయబడతాయి, అయితే ఉత్తమమైనవి పరివర్తన చెందుతాయి మరియు/లేదా కలపబడతాయి. కొత్త తరం డేటా మళ్లీ ఫజ్ టెస్ట్ చేయడానికి ఉపయోగించబడుతుంది. ఈ ఫజర్లను ఇలా సూచిస్తారు పరిణామాత్మక మ్యుటేషన్-ఆధారిత ఫజర్లు.
3. ఇన్పుట్ నిర్మాణంపై అవగాహన
ఈ వర్గీకరణ ఫజ్ డేటాను రూపొందించడంలో ప్రోగ్రామ్ యొక్క ఇన్పుట్ నిర్మాణాన్ని ఫజర్కు తెలుసు మరియు చురుకుగా ఉపయోగిస్తుందా అనే దానిపై ఆధారపడి ఉంటుంది. ఎ మూగ ఫజర్ (ప్రోగ్రామ్ యొక్క ఇన్పుట్ నిర్మాణం గురించి తెలియని ఫజర్) ఎక్కువగా యాదృచ్ఛిక పద్ధతిలో ఫజ్ను ఉత్పత్తి చేస్తుంది. ఇందులో జనరేషన్ మరియు మ్యుటేషన్ ఆధారిత ఫజర్లు రెండూ ఉండవచ్చు.
ప్రోగ్రామ్ యొక్క ఇన్పుట్ మోడల్తో ఫజర్ అందించబడితే, ఫజర్ అందించిన ఇన్పుట్ మోడల్తో సరిపోలే డేటాను రూపొందించడానికి లేదా మార్చడానికి ప్రయత్నించవచ్చు. ఈ విధానం చెల్లని డేటాను రూపొందించడానికి ఖర్చు చేసిన వనరుల మొత్తాన్ని మరింత తగ్గిస్తుంది. అటువంటి ఫజర్ను a అంటారు స్మార్ట్ ఫజర్.
4. ప్రోగ్రామ్ నిర్మాణంపై అవగాహన
ఫజ్లు వారు మసకబారుతున్న ప్రోగ్రామ్ యొక్క అంతర్గత పనితీరు గురించి వారికి తెలుసా అనే దాని ఆధారంగా కూడా వర్గీకరించవచ్చు మరియు ఫజ్ డేటా ఉత్పత్తికి సహాయపడటానికి ఆ అవగాహనను ఉపయోగిస్తుంది. ప్రోగ్రామ్ని దాని అంతర్గత నిర్మాణాన్ని అర్థం చేసుకోకుండా పరీక్షించడానికి ఫజర్లను ఉపయోగించినప్పుడు, దానిని బ్లాక్-బాక్స్ టెస్టింగ్ అంటారు.
బ్లాక్-బాక్స్ పరీక్ష సమయంలో ఉత్పత్తి చేయబడిన ఫజ్ డేటా సాధారణంగా యాదృచ్ఛికంగా ఉంటుంది, ఫజర్ అనేది పరిణామాత్మక మ్యుటేషన్-ఆధారిత ఫజర్ అయితే, అది దాని గజిబిజి ప్రభావాన్ని పర్యవేక్షించడం ద్వారా మరియు దానిని ఉపయోగించడం ద్వారా 'నేర్చుకుంటుంది' సమాచారం దాని ఫజ్ డేటా సెట్ను మెరుగుపరచడానికి.
మరోవైపు వైట్-బాక్స్ టెస్టింగ్ ఫజ్ డేటాను రూపొందించడానికి ప్రోగ్రామ్ యొక్క అంతర్గత నిర్మాణం యొక్క నమూనాను ఉపయోగిస్తుంది. ఈ విధానం ఫజర్ని ప్రోగ్రామ్లోని క్లిష్టమైన స్థానాలకు వెళ్లి పరీక్షించడానికి అనుమతిస్తుంది.
జనాదరణ పొందిన ఫజింగ్ సాధనాలు
చాలా గజిబిజి ఉన్నాయి టూల్స్ అక్కడ పెన్ టెస్టర్లు ఉపయోగించారు. అత్యంత ప్రజాదరణ పొందిన వాటిలో కొన్ని:
గజిబిజి యొక్క పరిమితులు
ఫజ్ చేయడం అనేది నిజంగా ఉపయోగకరమైన పెన్-టెస్టింగ్ టెక్నిక్ అయితే, దాని లోపాలు లేకుండా కాదు. వీటిలో కొన్ని:
- ఇది అమలు చేయడానికి చాలా సమయం పడుతుంది.
- ప్రోగ్రామ్ యొక్క బ్లాక్-బాక్స్ టెస్టింగ్ సమయంలో కనుగొనబడిన క్రాష్లు మరియు ఇతర ఊహించని ప్రవర్తనలను విశ్లేషించడం లేదా డీబగ్ చేయడం అసాధ్యం కాకపోయినా కష్టంగా ఉంటుంది.
- స్మార్ట్ మ్యుటేషన్-ఆధారిత ఫజర్ల కోసం మ్యుటేషన్ టెంప్లేట్లను సృష్టించడం చాలా సమయం తీసుకుంటుంది. కొన్నిసార్లు, ఇన్పుట్ మోడల్ యాజమాన్యం లేదా తెలియని కారణంగా అది సాధ్యం కాకపోవచ్చు.
ఏది ఏమైనప్పటికీ, చెడు వ్యక్తుల కంటే ముందుగా దోషాలను కనుగొనాలనుకునే ఎవరికైనా ఇది చాలా ఉపయోగకరమైన మరియు అవసరమైన సాధనం.
ముగింపు
Fuzzing అనేది సాఫ్ట్వేర్లోని దుర్బలత్వాలను వెలికితీసేందుకు ఉపయోగించే శక్తివంతమైన పెన్-టెస్టింగ్ టెక్నిక్. అనేక రకాల ఫజర్లు ఉన్నాయి మరియు కొత్త ఫజర్లు ఎప్పటికప్పుడు అభివృద్ధి చేయబడుతున్నాయి. మసకబారడం అనేది చాలా ఉపయోగకరమైన సాధనం అయితే, దానికి దాని పరిమితులు ఉన్నాయి. ఉదాహరణకు, ఫజర్లు చాలా దుర్బలత్వాలను మాత్రమే కనుగొనగలవు మరియు అవి చాలా వనరులను కలిగి ఉంటాయి. అయితే, మీరు మీ కోసం ఈ అద్భుతమైన టెక్నిక్ని ప్రయత్నించాలనుకుంటే, మా వద్ద ఒక ఉంది మీరు మా ప్లాట్ఫారమ్లో ఉపయోగించగల ఉచిత DNS ఫజర్ API.
కాబట్టి మీరు దేనికి వేచి ఉన్నారు?