Versiunile mai vechi de WordPress se află sub asediu. SQL Injection
Iată că ne revedem într-o zi de weekend şi nu cu un articol „de compoziţie” (aşa cum mai nou este numit delirul în blogosferă), ci pentru a prezenta o problemă cât de poate de serioasă, şi de actualitate. Începând de ieri, 4 septembrie 2009, mai multe site-uri ce funcţionau pe platforma WordPress, au font ţinta unor atacuri SQL Injection. Responsabil: un vierme (n.r. de internet) care „şi-a depăşit atribuţiile”. Situaţia s-a agravat de la oră la oră, asta şi în datorită comodităţii sau a lipsei de implicare din partea administratorilor, iar în această după-amiază am fost martorul unor anunţuri aproape disperate, prin care cei în măsură să acţioneze erau imploraţi să facă DE URGENŢĂ actualizarea versiunii de WordPress.
Mă alătur demersului şi, dacă încă mai folosiţi WordPress 2.8.3, 2.8.2, 2.8.1 sau… ferească sfântul, 2.6 şi ceva, lăsaţi baltă articolul şi faceţi upgrade-ul la WordPress 2.8.4. Vedeţi că am spus folosit ambii termeni: „upgrade”, respectiv „actualizare”… doar, doar.
Atenţie ! Blogurile găzduite pe domeniul WordPress.com NU SUNT AFECTATE, deoarece acolo instalările sunt actualizate automat. În cazul celorlalte bloguri, doar versiunile anterioare lui WordPress 2.8.4 AU PROBLEME.
Pentru ceilalţi însă, care au căzut din lac în puţ, ori s-au urcat în cireş să dea de pământ cu elefantul, am sintetizat câteva idei despre cum trebuie procedat în cazul unui astfel de atac. Nu este un ghid oficial, ci doar o sinteză bazată pe materialele găsite.
Cum ne dăm seama dacă un site a fost atacat ?
Sunt două indicii:
Primul este modificarea legăturilor permanente (eng. permalinks) care face imposibilă afişarea articolelor de pe blog.
De exemplu:
Vă rog să fiţi atenţie la cuvintele cheie „eval” şi „base64_decode”. De asemenea, fluxul RSS returnează un mesaj de eroare: „error on line 22 at column 71: xmlParseEntityRef: no name wordpress”.
Cum se repară legăturile permanente ?
Pasul 1. Mergem în meniul de administrare pentru WordPress
Pasul 2. Ne ducem pe „Setări” -> „Legături permanente”
Pasul 3. Înlăturăm codul dubios (acesta de mai sus) şi alegem o nostră structură. Poate să fie o setare comună (de exemplu, cea standard) sau una personalizată (/%postname%/).
Al doilea indiciu este dat de existenţa unui cont secret de administrator, o portiţă (eng. back door) şi aici lucrurile devin „tricky” fiindcă în cazul blogurilor cu zeci sau sute de utilizatori înregistraţi, este destul de greu să identificăm făptaşul.
Cum scăpăm de backdoor ?
Pasul 1. Mergem în meniul de administrare pentru WordPress
Pasul 2. Ne ducem pe „Utilizatori”, alegem de sus „Administrator”.
Pasul 3. Cu mausul ne ducem asupra butonului „Modifică”, corespunzător ultimul administrator înregistrat şi copiem url-ul (click dreapta – » Copy link location)
Pasul 4. Într-o fereastră nouă, introducem linkul pe care tocmai la copiat dar, şi aici VĂ ROG SĂ FIŢI ATENŢI, incrementăm valoarea cheii „user_id ”. De exemplu,
linkul:
sitedetest.ro.ro/wp-admin/user-edit.php?user_id=15&wp_http_referer=[...]
devine:
sitedetest.ro.ro/wp-admin/user-edit.php?user_id=16&wp_http_referer=[...]
În cazul nostru, „user_id=15” a devenit „user_id=16”. Aşa accesaţi profilul administratorului ascuns.
Pasul 5. Odată ce l-am ce l-am prins, îl retrogradăm. Ca în liga lui Mitică. Şi în loc de „Administrator”, fantoma noastră devine „Abonat” sau „Subscriber” (eng.).
Pasul 6. Ne ducem, din nou, pe butonul „Utilizatori” şi… o mine. Fantoma retrogradată este acum vizibilă. Suficient. Ştergeţi contul cu pricina.
Atenţie ! Ştergerea conului cu pricina se poate face şi din PHPMyAdmin, dar dacă n-aţi avut treabă pe acolo, mai bine vă limitaţi la panoul de administrare din WordPress.
Ce zice Matt ?
„A stitch in time saves nine” , iar un echivalent românesc al proverbului ar fi „Paza bună trece primejdia rea”.
URL: http://wordpress.org/development/2009/09/keep-wordpress-secure/
Serios acum, pe blogul WordPress, Matt confirmă ce v-am spus de nenumărate ori, pe parcursul zilei anterioare. Toate versiunile WP neactualizate sunt vulnerabile în faţa acestui vierme de internet destul de inteligent. Bine că este viermele inteligent, că în privinţa utilizatorilor ne-am lămurit. Trebuia să se compenseze cumva.
Modul de acţiune este destul de simplu de urmărit. Mai întâi viermele creează un cont de utilizator. Apoi, folosindu-se de breşă de securitate prezentă în instalările WordPress mai vechi, se execută prin structura legăturilor permanente şi îşi arogă drepturi de ADMINISTRARE. Ca şi cum toate acestea n-ar fi fost de ajuns, viermele foloseşte JavaScript pentru a se ASCUNDE, aşa că nu-l veţi găsi dacă vă uitaţi la utilizatorii înregistraţi normal. La final, viermele va începe să-şi facă de cap introducând spam sau malware în articole.
Atenţie ! Dezactivarea opţiunii „Membership – Anyone can register” (ro. „Oricine se poate înregistra”) NU ESTE o metodă de protecţie. Tot la capitolul recomandări trăznite am auzit-o şi pe aceea a ascunderii versiunii de WordPress folosite. Stimaţi cetăţeni ai republicii, voi credeţi că pe tâlhar îl interesează vârsta din buletin ?
Se adevereşte şi ce spuneam ieri într-un comentariu, că NU DISTRUGEREA BLOGULUI era ţinta atacului (aceasta fiind un efect secundar nedorit şi care i-a alertat utilizatori). Este un nou război, purtat însă cu aceleaşi arme, iar dacă viermele şi-ar fi făcut treaba după cum a fost gândit de unele minţi „diabolice”, sute sau chiar mii de bloguri ar fi devenit furnizoare de spam şi malware. Gândiţi-vă doar o secundă ce ar însemna pentru un blog cu 1000 de pagini indexate pe Google şi PR5 să transmită prin comentarii, reclame la cele mai obscure produse. Şi ştiţi bine la ce mă refer. Ca şi în cazul viruşilor nu viermii de internet care ne strică o după-amiază sunt periculoşi, ci aceia care vă pot ruina afacerea… sau chiar viaţa.
Un blog care este furnizor de spam / malware, va fi repede scos din ierarhia Google asta este doar începutul. Nici Matt nu vrea să vă sperie, dar situaţia este una gravă şi bravada unor administratori nu se justifică.
În încheiere…
Doresc să le mulţumesc celor care au scris materiale legate de acest subiec şi au oferit feedback pe parcursul zilei e azi. Atacurile SQL Injection sunt o ameninţare serioasă şi care ne priveşte pe toţi.
Fac un apel la cei care folosesc platforma WordPress. Să treacă NEAPĂRAT la ultima versiune. Nu spun că WordPress 2.8.4 este infailibil (fiindcă aţi văzut ce s-a întâmplat cu 2.8.3), dar în cazul unor probleme există suport tehnic. Aveţi încredere în cei care lucrează, în comunitatea blogărilor. WordPress 2.8 are peste 5 milioane de descărcări.
Am întâlnit şi teama de upgrade. Un drob de sare virtual. Întrebări existenţiale ce nu-şi au rostul.
„Ce se va întâmpla dacă tema nu este compatibilă cu ultimul WordPress ?”
Schimbaţi tema. Sau o modificaţi în consecinţă. Aspectele de securitatea primează în faţa celor de stil… sau cel puţin eu aşa consider.
„Dar dacă apar incompatibilităţi cu anumite plugin-uri ?”
Renunţaţi la acel plugin pentru o scurtă perioadă de timp, iar dacă dezvoltatorul sau comunitatea nu arată nici o intenţie de rezolva problema, schimbaţi-l. Din 6460 de plugin-uri, poate găsiţi câteva care să vă placă şi să funcţioneze corespunzător.
„Eu nu fac upgrade, fiindcă am alte mijloace de protecţie !”
Serios ? Şi cei care au făcut subiectul acestui articol aveau plugin-uri. Sunt slabe şanse ca un plugin să vă protejeze împotriva unei vulnerabilităţi aflate în codul WordPress.
Nu vă descurcaţi cu actualizarea la WordPress ?
Nici o problemă. Găsiţi pe acest site mai multe articole. Despre WordPress 2.8.4, 2.8.3, 2.8.2, etc. sau despre riscurile unei actualizări eşuate şi de ce recomand actualizarea automată.
Materiale bibliografice:
- http://www.andysowards.com/blog/wordpress/breaking-wordpress-mysql-injection-how-to-fix-latest-attack-evalbase64_decode_serverhttp_referer/
- http://www.journeyetc.com/2009/09/04/wordpress-permalink-rss-problems/
- http://www.blog18.ro/2009/09/05/wordpress-sql-injection/
- http://lorelle.wordpress.com/2009/09/04/old-wordpress-versions-under-attack/
- http://mashable.com/2009/09/05/wordpress-attack/





problema cu “nu fac upgrade la wordpress” e asemanatoare cu cea pusa pe WorldIT referitoare la IE6 sau Firefox 2
astept butonul de panica (sper sa fie mare si rosu)
Problema internet-lui este că toată lumea s-a trezit administrator peste noapte. Eu când mai discut subiectul, le spun frumos: încearcă un domeniu pe WordPress, pe Blogspot… şi apoi treci în ograda ta. O perioadă de „ucenicie” nu strică. În ce priveşte relatarea evenimentului confuz de azi, site-urile româneşti (şi în special cele de securitate) au fost la pământ.
@andrei
pentru asta existi tu. sa ne dai cu “teava de net” in cap cand gresim si sa ne arati directia
Problema internetului este nu ca toti ne-am trezit administratori. Problema e ca nu citim si nu ascultam sfaturile celor care citesc
Tu ai avut blog, ştii ce înseamnă un update de securitate. Nu e cazu’. Uită-te însă pe zâtlist. Serios. 5 minute doar. Sunt bloguri care figurează pe primele poziţii şi folosesc WordPress 2.7.1. Îi foare fix în pix de materialele noastre. Data scriu despre mamaia cerbului de aur de la calatis.
@andrei
ai zice ca sunt egoist. atata timp cat pe mine nu ma afecteaza lenea altora, ma doare fix in pix. tu iti faci treaba, ne anunti, esti citit de cei interesati si de cei care raspund chemarii la actiune si iti vezi mai departe de problemele tale. in momentul in care X vine la tine pentru rezolvare, il taxezi.
Daca-mi permiti, revin cu intrebarea: ce rost are sa migrezi pe self-hosted WordPress? In functie de ce-ti doresti, fie, wordpress.com fie blogger sunt mai mult decat suficiente. O intrebare mai la obiect ar fi “oare nu cumva raportul avantaje / dezavantaje este defavorabil self-hosting-ului pe wordpress?”
Desi imi tin toate blogurile pe Blogger, am tinut un blog pe webhostul meu – blogul unui frate geaman in gandire, cracanel.info. Recent, i-am facut update la ultima versiune si a devenit nefunctional. Sigur c-as putea petrece ceva timp eventual reinstaland pocitania, dar n-am timp si nici chef. Imi este mult mai usor si imi ia mult mai putin timp sa-i mut blogul pe blogger, cu atat mai mult cu cat sunt mai putin de 10 articole scrise acolo. Il mut pe http://www.cracanel.info, care n-ar nevoie de constant upgrades si security headaches..
Salut. Ai dreptate cu blogurile găzduite pe WordPress sau Blogger, şi chiar într-un comentariu la articolul scris de @everzor: http://everzor.com/2009/08/12-greseli-facute-de-bloggerii-incepatori/ am spus că nu consider o greşeală domeniul gratuit. Întreţinerea unui site (şi includ aici actualizarea cms-ului folosit, a plugin-urilor sau a temei) cere un efort constant din partea noastră, şi uneori, din motive perfect rezonabile / personale, nu suntem dispuşi să facem această muncă de şmotruială. Pot să merg şi mai departe. Dacă un utilizator doreşte să se concentreze asupra scrisului, a creaţiei, este chiar contraindicat să-şi „prindă urechile” cu nişte chestiuni tehnice care nu-l interesează şi nici nu-l ajută.
P.S. Cred că am să fac un articol legat de utilitatea domeniului propriu, tocmai plecând de la evenimentele din acest weekend.
Gand la gand cu bucurie! Totusi, wordpress.com sau blogger nu implica automat domeniu gratuit. Daca wordpress adauga o taxa la domeniu, blogger nu impune nici o taxa si iti poti cumpara domeniu (gasesti foarte usor .com sau .net cu $10-15 / an) pentru blog.
Nu ştiam că e gratis la blogger. Bravo lor ! Acum ca o paranteză, în cele nouă 9 luni de când administrez acest blog, jumătate din timp l-am pierdut cu probleme tehnice. Inclusiv unele absurdităţi.
Salut Andrei, … am o surpriza pentru tine !
Am urmarit cu mare interes atat articolul, cat si discutia din comentarii. Problema mea este: bun, da’ noi, astia care avem un blog dar nu suntem IT-isti, nu am facut SEO sau HTTP sau cum se cheama, care nu-ntelegem mai nimic din fraza “sa migrezi pe self-hosted” (banuiesc ca inseamna: sa platesti ca sa ai domeniul tau… nu?), deci noi, care avem un blog dar nu stim programare, ce naiba ne facem? Pentru ca daca ma plang ca administrarea pozelor e praf pe WP sau ca nu pot pune clipuri (am pus pana la urma, dar nici nu mai stiu cum), WP imi raspunde: Aaaa, pai ia-ti domeniu! Iar acum, din ce spuneti voi, constat ca daca-ti iei domeniu, trebuie sa fii IT-ist.
WP se lauda: “Oricine poate avea blog, cu text, poze etc”. Buun, si-ti faci blog, si cand sa faci ceva, WP zice: “Aaaa, pai asta nu e pt oricine, frate, iti trebuie self-hosted!”. OK, dar nu puteati spune asta de la inceput?!
Salut
Am existat, cu ceva vreme în urmă o campanie numită „un calculator pentru fiecare” şi atunci s-a vândut un număr record de sisteme, chiar dacă, din punct de vedere calităţii şi al performanţelor oferite, unele dintre acestea puteau ridica semne de întrebare. Acum, odată cu explozia platformelor CMS-uri (adică a site-urilor administrabile), a blogurilor, a plugin-urile avem parte de-un fenomen asemănător. Cu plusuri şi minusuri.
Şi plec exact de la ce spuneai, că „oricine poate avea un blog”. Perfect adevărat. Nu trebuie să ai din start cunoştinţe speciale în domeniu pentru a administra un blog, dar trebuie să le dobândeşti. Iniţial, toate acestea acronime îţi vor părea limbi străine şi fără a fi obligat să devii un expert în programare sau în web-design, trebuie să deprinzi abc-ul. Sunt foarte multe bloguri unde se oferă suport tehnic gratuit, unele găseşti ghiduri de securizate, liste de plugin-uri sau de teme socotite sigure şi dacă adopţi un comportament preventiv (vezi ce s-a discutat legat de securizarea parolelor) ai toate şansele să ajungi cu blogul „la bătrâneţe”.
În schimb, dacă nu vrei sau nu ai timpul fizic să te ocupi de partea de administrare, iar tu eşti o persoană interesată doar să scrie pe blog, aş recomanda folosirea platformei WordPress.com şi achiziţionarea unui nume de domeniu propriu. Aşa eşti degrevat de problema administrării, a backup-ului şi a tuturor angoaselor care decurg din acest aspect. Nu este foarte greu să administrezi un site pe WordPress, dar (asta şi în funcţie de particularităţi) îţi mănâncă timp şi nervi.
Am tot promis să fac un articol legat de beneficiile unui site găzduit personal, adică acel „self hosted”, însă n-am avut timp.
Multumesc frumos pt raspuns. Totusi nu inteleg diferenta dintre migrare pe self-hosted, folosirea platformei WordPress.com şi achiziţionarea unui nume de domeniu propriu etc. Probabil e penibil sa intyreb asta si unii e posibil sa zica: Bine mah, daca nu intelegi asta, ce cauti pe net?, dar, repet, ma intereseaza sa postez pe blog, nu sa fiu inginer IT
(cu toat respectul pt inginerii IT).
Deci dupa cum am inteles eu: poti avea blog cum am eu, veone.wordpress.com, sau poti cumpara de la ei domeniu, nu? Si daca iti cumperi domeniu, nu inseamna ca faci tu treaba tehnica? Pentru ca si fara domeniu de la ei, tot eu administrez etc… sau nu?
Pare putin confuza toata treaba si daca as fi gasit-o undeva explicata clar, nu te-as mai fi batut la cap cu intrebarile astea
Salut. Să ştii că nu e nici un deranj şi dacă pot, şi timpul îmi permite, îţi răspund cu plăcere.
Strict în situaţia de faţă, avem 3 posibilităţi:
1. cea a site-ului găzduit pe WordPress, GRATUIT, când ai un domeniu de forma veone.wordpress.com.
2. cea a site-ului găzduit pe WordPress, CONTRA-COST, http://en.wordpress.com/products/ unde în schimbul taxei ai posibilitatea să-ţi găzduieşti propriul domeniu (numeletau.info, .com, .net / nu ştiu sigur, dar parcă nu se acceptă domeniile .ro), poţi folosi teme personalizate, ai un spaţiu suplimentar alocat pe server, posibliattea ca mai mult de 35 de vizitatori să-ţi viziteze în acelaşi timp site-ul şi scapi şi de reclamele celor de la WordPress.
Domeniul numeletau.com îl poţi cumpăra de la orice firmă care se ocupă cu acest lucru (se plăteşte pentru un an sau doi, aproximativ 35 de lei/an), poţi să-l foloseşti pe WordPress sau pe hosting-ul tău. De asemeni, îl poţi cumpăra şi de la WordPress. Preţurile îţi apar atunci când te duci la secţiunea „Upgrade-uri” şi sunt detaliate.
3. cea a site-ului găzduit în „regie proprie”, acel self hosted. PLĂTEŞTI numele de domeniu şi găzduirea (deşi uneori ele vin la pachet ca parte a unei promoţii), ai accces la panoul de administrare al contului, fiind pe deplin unicul răspunzător cu se întâmplă pe acel cont. Foloseşti ce plugin-uri vrei, ce teme îţi placa, dar actualizarea lor, actualizarea platformei WordPress cade în sarcina ta. Asa spre deosebire de primele două situaţii unde întreţinerea o fac cei de la WordPress.com.
Toate problemele de care am vorbit în acest articol le-au avut doar site-urile găzduite în „regie proprie” şi care nu fuseseră actualizate. Iar dacă te interesează doar să postezi pe blog, a doua soluţie mi se pare cea mai inspirată.
Iti multumesc mult! Acum, in fine, am inteles cum stau lucrurile
Si da, versiunea a doua pare cea mai buna. E foarta buna explicatia ta si cred ca merge si un articol dedicat. Pentru ca am inteles mai mult decat in 6 luni de citit pe wordpress
(si stiu engleza…)