నేను ఒక రహస్య ఇంజెక్షన్ను ఎలా గుర్తించాను మరియు ఎన్విరాన్మెంట్ను ఎలా బలోపేతం చేశాను
మీరు మాల్వేర్ స్కాన్ చేస్తారు. మీరు కోర్ ఫైళ్లను రీప్లేస్ చేస్తారు. మీరు ప్లగిన్లను అప్డేట్ చేస్తారు మరియు పాస్werడ్లను మారుస్తారు. సైట్ క్లీన్గా కనిపిస్తుంది.
రెండు రోజుల తర్వాత, క్లయింట్ ఫోన్ చేస్తారు. కొత్త అడ్మిన్ అకౌంట్లు మళ్ళీ వచ్చేశాయి. సందర్శకులు మాల్వేర్ సైట్లకు రీడైరెక్ట్ అవుతున్నారు.
ఇది పర్సిస్టెన్స్ (persistence) యొక్క పీడకల.
సాధారణ సెక్యూరిటీ ప్లగిన్లు తరచుగా విఫలమవుతాయి. అధునాతన దాడులు చేసేవారు కేవలం ఒక పేలోడ్ను మాత్రమే వదిలిపెట్టరు. వారు చట్టబద్ధమైన ఫైళ్లలో దాగి ఉండే నెస్టెడ్ బ్యాక్డోర్లను (nested backdoors) నిర్మిస్తారు.
ఇటీవల నేను మూడు క్లీనప్ ప్రయత్నాలు విఫలమైన ఒక కేసును హ్యాండిల్ చేశాను. దాని లక్షణాలు ఇలా ఉన్నాయి:
• ఘోస్ట్ అడ్మిన్స్ (Ghost Admins): ప్రతి 48 గంటలకు ఒకసారి రాండమ్ పేర్లతో కొత్త అకౌంట్లు ప్రత్యక్షమవుతున్నాయి. • కండిషనల్ రీడైరెక్ట్స్ (Conditional Redirects): సెర్చ్ ఇంజన్ల నుండి వచ్చే కొత్త సందర్శకులకు మాత్రమే మాల్వేర్ సైట్ కనిపిస్తోంది. డెవలపర్లకు ఏమీ కనిపించడం లేదు.
టీమ్ ఇప్పటికే WordPress కోర్ను ఓవర్రైట్ చేసి, ప్లగిన్లను అప్డేట్ చేసింది. స్కానర్లు ఏమీ చూపించలేదు. మాల్వేర్ ఒక హైడ్రా (hydra) వలె మళ్ళీ మళ్ళీ పుట్టుకొస్తోంది.
దాడి చేసిన వ్యక్తి డేటాబేస్లో లేదా ఒక cron jobలో పర్సిస్టెన్స్ మెకానిజమ్ను ఉంచారు. కోడ్ కస్టమ్ కావడంతో ఆటోమేటెడ్ స్కానర్లు దానిని గుర్తించలేకపోయాయి.
నిజం తెలుసుకోవడానికి నేను కమాండ్ లైన్ను ఉపయోగించాను.
మొదట, నేను checksums ఉపయోగించి కోర్ ఫైళ్లను వెరిఫై చేశాను:
wp core verify-checksums
కోర్ క్లీన్గా ఉంది. బ్యాక్డోర్ wp-content లేదా డేటాబేస్లో ఉంది.
గత 7 రోజుల్లో మార్చబడిన ఫైళ్ల కోసం నేను వెతికాను:
find . -type f -mtime -7 -name "*.php"
ఆ తర్వాత, eval() లేదా base64_decode() వంటి అనుమానాస్పద ఫంక్షన్ల కోసం వెతికాను:
grep -rnw './wp-content/' -e 'eval(' -e 'base64_decode('
పాతబడిన ప్రీమియం ప్లగిన్లో ఒక దాగి ఉన్న ఫైల్ను నేను కనుగొన్నాను. కానీ ఆ ప్లగిన్ను డిలీట్ చేయడం వల్ల ఇన్ఫెక్షన్ ఆగలేదు.
దాడి చేసిన వ్యక్తి wp_options టేబుల్లో cron ఆప్షన్ కింద ఒక ట్రిగ్గర్ను వదిలివెళ్లారు. ప్రతిసారి WordPress cron రన్ అయినప్పుడల్లా, అది కొత్త పేలోడ్ను తీసుకువస్తోంది. కోర్ ఫైళ్లను క్లీన్ చేసిన కొద్ది నిమిషాలకే అవి మళ్ళీ ఇన్ఫెక్ట్ అవుతున్నాయి.
దీనిని పరిష్కరించడానికి, మీరు కచ్చితమైన క్రమాన్ని పాటించాలి:
- డేటాబేస్ స్కబ్బింగ్ (Database Scrubbing)
- మాల్వేర్ ఉన్న autoload డేటా కోసం
wp_optionsలో వెతకండి. - తెలియని URLల కోసం
wp_cronను తనిఖీ చేయండి. - అనధికారిక వినియోగదారులను నేరుగా తొలగించడానికి SQL ఉపయోగించండి.
- ఫైల్ సిస్టమ్ పర్జ్ (File System Purge)
wp-config.phpమరియుwp-content/uploads/తప్ప మిగిలినవన్నీ డిలీట్ చేయండి.- అన్నింటినీ అధికారిక రిపోజిటరీ నుండి కొత్త ఫైళ్లతో రీప్లేస్ చేయండి.
uploadsఫోల్డర్ లోపల ఉన్న ఏవైనా PHP ఫైళ్లను డిలీట్ చేయండి.
- క్రెడెన్షియల్ రొటేషన్ (Credential Rotation)
wp-config.phpలో అన్ని authentication saltsలను రీజనరేట్ చేయండి.- డేటాబేస్, SSH, మరియు హోస్టింగ్ పాస్వర్డ్లన్నింటినీ రీసెట్ చేయండి.
మళ్ళీ ఇలా జరగకుండా ఉండటానికి నేను మూడు గార్డ్రైల్స్ను (guardrails) కూడా అమలు చేశాను:
• ఎడ్జ్ ప్రొటెక్షన్: సున్నితమైన డైరెక్టరీలకు వచ్చే అనుమానాస్పద POST రిక్వెస్ట్లను బ్లాక్ చేయడానికి నేను Cloudflare WAFని ఉపయోగించాను. • ఫైల్ పర్మిషన్స్: నేను డైరెక్టరీ నిర్మాణాన్ని లాక్ చేశాను. డైరెక్టరీలను 755గా మరియు ఫైళ్లను 644గా మార్చాను. నేను wp-config.phpని రీడ్-ఓన్లీ (read-only)గా సెట్ చేశాను. • ఎడిటింగ్ను నిలిపివేయడం: నేను wp-config.phpకి DISALLOW_FILE_EDIT మరియు DISALLOW_FILE_MODSలను జోడించాను. ఇది ఎవరైనా డ్యాష్బోర్డ్ ద్వారా కోడ్ను మార్చకుండా నిరోధిస్తుంది.
ప్లగిన్ ఇచ్చే గ్రీన్ చెక్మార్క్ను నమ్మకండి. బ్రీచ్ జరిగిందని భావించండి. మీ సైట్ను లోపలి నుండి బయట వరకు రక్షించుకోండి.
మూలం: https://dev.to/jahidshah/how-i-tracked-a-stealthy-injection-and-hardened-the-environment-4clm