𝗛𝗼𝘄 𝗜 𝗧𝗿𝗮𝗰𝗸𝗲𝗱 𝗮 𝗦𝘁𝗲𝗮𝗹𝘁𝗵𝘆 𝗜𝗻𝗷𝗲𝗰𝘁𝗶𝗼𝗻 𝗮𝗻𝗱 𝗛𝗮𝗿𝗱𝗲𝗻𝗲𝗱 𝘁𝗵𝗲 𝗘𝗻𝘃𝗶𝗿𝗼𝗻𝗺𝗲𝗻𝘁
நீங்கள் ஒரு மால்வேர் ஸ்கேன் (malware scan) செய்கிறீர்கள். கோர் கோப்புகளை (core files) மாற்றுகிறீர்கள். பிளகின்களைப் (plugins) புதுப்பித்து கடவுச்சொற்களை மாற்றுகிறீர்கள். தளம் சுத்தமாகத் தெரிகிறது.
இரண்டு நாட்களுக்குப் பிறகு, வாடிக்கையாளர் அழைக்கிறார். புதிய அட்மின் கணக்குகள் மீண்டும் வந்துவிட்டன. பார்வையாளர்கள் தீய இணையதளங்களுக்குத் திருப்பி விடப்படுகிறார்கள் (redirected).
இதுவே 'பெர்சிஸ்டன்ஸ்' (persistence) எனப்படும் விடாப்பிடியான ஊடுருவலின் பயங்கரமான நிலை.
சாதாரண பாதுகாப்பு பிளகின்கள் பெரும்பாலும் தோல்வியடைகின்றன. நுணுக்கமான தாக்குதல்தாரர்கள் ஒரே ஒரு பேலோடை (payload) மட்டும் விடுவதில்லை. அவர்கள் முறையான கோப்புகளுக்குள் மறைந்திருக்கும் சிக்கலான பேக் டோர் (backdoors) வழிகளை உருவாக்குகிறார்கள்.
சமீபத்தில் மூன்று முறை சுத்தம் செய்ய முயன்றும் தோல்வியடைந்த ஒரு வழக்கை நான் கையாண்டேன். அதன் அறிகுறிகள் மிகத் தெளிவாக இருந்தன:
• கோஸ்ட் அட்மின்கள் (Ghost Admins): ஒவ்வொரு 48 மணிநேரத்திற்கும் சீரற்ற பெயர்களுடன் புதிய கணக்குகள் தோன்றின. • நிபந்தனைக்குட்பட்ட ரீடைரக்ட்கள் (Conditional Redirects): தேடுபொறிகளிலிருந்து (search engines) வரும் புதிய பார்வையாளர்களுக்கு மட்டுமே அந்தத் தீய இணையதளம் தெரிந்தது. டெவலப்பர்களுக்கு எதுவும் தெரியவில்லை.
குழு ஏற்கனவே WordPress கோர் கோப்புகளை மாற்றிவிட்டு பிளகின்களைப் புதுப்பித்திருந்தது. ஸ்கேனர்கள் எதையும் காட்டவில்லை. மால்வேர் ஒரு ஹைட்ராவைப் (hydra) போல மீண்டும் மீண்டும் உருவானது.
தாக்குதல்தாரர் தரவுத்தளத்திலோ (database) அல்லது ஒரு cron job-இலோ விடாப்பிடியான ஊடுருவல் முறையை வைத்திருந்தார். குறியீடு (code) தனிப்பயனாக்கப்பட்டதாக (custom) இருந்ததால், தானியங்கி ஸ்கேனர்களால் அதைக் கண்டறிய முடியவில்லை.
உண்மையை கண்டறிய நான் கமெண்ட் லைனை (command line) பயன்படுத்தினேன்.
முதலில், 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 விருப்பத்தின் கீழ் ஒரு ட்ரிக்கரை (trigger) விட்டுச் சென்றிருந்தார். ஒவ்வொரு முறை WordPress cron இயங்கும் போதும், அது ஒரு புதிய பேலோடைப் பதிவிறக்கியது. கோர் கோப்புகள் சுத்தம் செய்யப்பட்ட சில நிமிடங்களிலேயே அவை மீண்டும் தொற்றடைந்தன.
இதைச் சரிசெய்ய, நீங்கள் ஒரு கடுமையான வரிசையைப் பின்பற்ற வேண்டும்:
- தரவுத்தளத்தைச் சுத்தம் செய்தல் (Database Scrubbing)
wp_options-இல் தீய autoload தரவுகளுக்குத் தேடுங்கள்.wp_cron-இல் தெரியாத URL-களைச் சரிபார்க்கவும்.- அங்கீகரிக்கப்படாத பயனர்களை நேரடியாக நீக்க SQL பயன்படுத்தவும்.
- கோப்பு முறைமைத் தூய்மைப்படுத்துதல் (File System Purge)
wp-config.phpமற்றும்wp-content/uploads/தவிர மற்ற அனைத்தையும் நீக்கவும்.- அதிகாரப்பூர்வ களஞ்சியத்திலிருந்து (official repository) புதிய கோப்புகளைக் கொண்டு அனைத்தையும் மாற்றவும்.
- uploads கோப்புறைக்குள் இருக்கும் எந்தவொரு PHP கோப்புகளையும் நீக்கவும்.
- கடவுச்சொற்களை மாற்றுதல் (Credential Rotation)
wp-config.php-இல் உள்ள அனைத்து authentication salts-களையும் மீண்டும் உருவாக்கவும்.- அனைத்து தரவுத்தளம், SSH மற்றும் ஹோஸ்டிங் கடவுச்சொற்களையும் மாற்றவும்.
மீண்டும் இது போன்ற நிகழ்வுகள் நடக்காமல் தடுக்க நான் மூன்று பாதுகாப்பு வழிமுறைகளையும் (guardrails) செயல்படுத்தினேன்:
• விளிம்புப் பாதுகாப்பு (Edge Protection): முக்கியமான கோப்பகங்களுக்கு வரும் சந்தேகத்திற்கிடமான POST கோரிக்கைகளைத் தடுக்க நான் Cloudflare WAF ஐப் பயன்படுத்தினேன். • கோப்பு அனுமதிகள் (File Permissions): நான் கோப்பக அமைப்பைத் (directory structure) பூட்டினேன். கோப்பகங்கள் 755 ஆகவும், கோப்புகள் 644 ஆகவும் மாற்றப்பட்டன. நான் wp-config.php கோப்பை 'read-only' நிலைக்கு மாற்றினேன். • திருத்துவதைத் தடுத்தல் (Disable Editing): நான் wp-config.php கோப்பில் DISALLOW_FILE_EDIT மற்றும் DISALLOW_FILE_MODS ஆகியவற்றைச் சேர்த்தேன். இது டேஷ்போர்டு மூலம் யாராவது குறியீட்டை (code) மாற்றுவதைத் தடுக்கிறது.
ஒரு பிளகினில் (plugin) வரும் பச்சை நிறக் குறியீட்டை (green checkmark) நம்பிவிடாதீர்கள். ஒரு ஊடுருவல் (breach) நடந்துவிட்டதாகக் கருதுங்கள். உங்கள் இணையதளத்தைப் பாதுகாப்பகத்திலிருந்து வெளிப்பக்கமாகப் பாதுகாக்கவும்.
ஆதாரம்: https://dev.to/jahidshah/how-i-tracked-a-stealthy-injection-and-hardened-the-environment-4clm