Munkám során gyakran találkozom olyan oldalakkal, amelyek már tartalmaznak WordPress kártevőt. Néha még az is előfordul, hogy egy, a Webshield által védett oldalon jelenik meg valamilyen kártevő. Ilyenkor pedig mindig elemzem, hogy mit csinál a vírus.
Egy védett oldalra hogyan fészkelheti be magát egy ilyen vírus?
Hogyan ismered fel?
Hogyan lehet elemezni a kártevőt?
Hogyan kerülhet kártevő a weboldaladra?
A teljesség igénye nélkül, íme pár gyakori lehetőség:
- Új sérülékenységet fedeznek fel a WordPress-ben vagy valamelyik általad használt bővítményben.
- Valakinek kiszivárog a WordPress-jelszava.
- Valakinek kiszivárog azt ftp jelszava.
- Valakinek fertőzött a gépe és a gépen keresztül a vírus feltölti magát a WordPress-oldalra.
Azonnal feltűnik, ha kártevővel van dolgod?
Sajnos nem.
Sokszor olyan ügyesen el vannak rejtve a kódban a vírusok, hogy az emberek észre sem veszik a jelenlétüket. Az is megnehezítheti a felfedezésüket, ha olyan hosszú space sorozattal van felvezetve, hogy ha akarnád sem látod, -mert kilóg a képernyőből.
Az ember azt gondolná, hogy a vírusellenőrzők minden esetben kiszűrik a kártevőket, azonban ez sincs feltétlenül így, mert ha új variánssal állnak szemben, sokszor zavarba jönnek.
Én mindenesetre szeretem megvizsgálni, pontosan mit csinál a kártevő és ezt most be is mutatom egy példán keresztül.
Így elemezzük a kártevőt
Ha ránézünk az előttünk álló feladványra, néhány tízsoros, szóköz nélküli katyvaszt látunk, amely az emberi szemnek olvashatatlan. De mivel a php szöveges nyelvét dolgozza fel, bárhogy legyen offuszkálva ez a kód, a visszafejtése lehetséges, hiszen a php is megteszi ugyanezt ahhoz, hogy le tudja futtatni.
Ez a visszafejtés lehet egyszerű feladat, de lehet bicskanyitogatóan nehéz is.
A szemléltetéshez kiszedtem egy vírust egy fertőzött fájlból. Egy hosszú sort látsz, amiben benne van az értelmezhetetlen kód. Ahhoz, hogy megtudjuk, mi ennek a vírusnak a feladata, elemeznem kell.
Az elemzés lépései
- Először olvasható formára kell hozni a kódot. Phpban a sorok végét pontosvessző zárja le, ezeket a pontosvesszőket kell megkeresni, és ez alapján betördelhető a kód.
- Létrehozunk egy fura nevű változót, hogy lássuk, mit csinál ez a kód.
- Létrehozunk egy másik változót, kizáró vaggyal (logikai művelet, amit karakterenként lehet értelmezni), amit összehozunk az előző változónkkal. . Ezzel a művelettel az előző értékből és a katyvaszból létrehoz egy új értéket.
- Ezt a változót kimásolom és kiiratom a képernyőre, hogy mi a tartalma
- Befejezem a program futását.
- Elmentem.
- Új ablakban lefuttatom, megnézem mi lesz az eredmény.
Kaptunk egy jól értelmezhető php kódot. Ez alapján már egyértelműen látjuk, hogy a vírus bármit lefuttathat a gazdájának, mert ez egy univerzális vírus.
Így működik a kártevők visszafejtése.
Majdnem az összes ilyen vírus tartalmaz egy olyan kis részt, ami jelszót vár, ha pedig nem kapja meg, nem hajlandó működni. Tehát a vírust is levédik abból a célból, hogy ne használhassa olyan ember a kártevőt, aki nem a gazdája.