Securitate pentru Wordpress.

Monday, 17 August, Year 1 d.Tr. | Author: Mircea Popescu

Un element de baza pentru securitatea blogului dvs este protejarea paginii de login pentru administrator. Sigur ca ori de cate ori cineva obtine acces fara autorizatie, proprietarul blogului va da vina pe "hackeri", "buguri" si asa mai departe. Uneori atari chestiuni oculte chiar sunt cauza, dar destul de des punctul slab il constituie chiar procesul de autentificare, in special parolele slabe alese de proprietarii de bloguri, precum si obiceiul prost de a folosi aceeasi parola pe mai multe site-uri.

Nimeni nu-si doreste, si putina lume reuseste sa retina parole de cate 16 caractere, precum +h9wr8spe=+4aReT sau yu$e&Ete$reg9V?W. Alternativa este atunci protejarea fisierului wp-login.php. Cum se realizeaza asa ceva ?

Introduceti in fisierul .htaccess din blogul dvs, imediat dupa linia
# END WordPress,
urmatorul fragment de cod :

<FilesMatch "wp-login.php">
Order deny,allow
Deny from all
Allow from xx.xx.xx.xx
</FilesMatch>

Unde inlocuiti bineinteles xx.xx.xx.xx cu IP-ul dvs propriu. In cazul in care aveti nevoie sa va logati in interfata de administrare din mai multe locuri (ceea ce de fapt nu este recomandabil), pur si simplu repetati linia allow from pentru fiecare dintre ele.

Astfel va asigurati ca nimeni nu ruleaza pe tacute un script care sa incerce sa va sparga parola, si inca mai important, daca site-ul x sau y, unde folositi intamplator aceeasi parola este atacat, si hackerii obtin baza de date, nu vor reusi sa va compromita si blogul (un link spre care ar gasi, nu-i asa, in profilul dvs de pe site-ul respectiv).

Securitatea este pana la urma o problema de prevedere.

Category: 3 ani experienta
Comments feed : RSS 2.0. Leave your own comment below, or send a trackback.

11 Responses

  1. In cazul in care aveti nevoie sa va logati in interfata de administrare din mai multe locuri (ceea ce de fapt nu este recomandabil), pur si simplu repetati linia allow from pentru fiecare dintre ele.

    Problema aici e că mulți vor să își permită libertatea aia de a scrie de unde îi taie pe ei capul (adică și din Cluj și din Iași și din București). Ar fi fain ca mașina cu IP-ul din listă să poată fi accesată cumva remote (VNC, RDP) și să se poată face publicarea direct de pe ea, dar nu știu câți se complică la așa ceva.

    Ar mai fi și alte variante (https, blocarea IP-ului care insistă un număr de ori fără succes), dar nu știu în ce măsură pot fi aplicate la wordpress.

  2. Mircea Popescu`s avatar
    2
    Mircea Popescu 
    Monday, 17 August 2009

    Bun, stii, cine dracu merge in Italia dar nu stie ca va merge in Italia ? Daca e, pui acolo Allow from 87 sau cat are Italia, si-ti lasa toata clasa A.

  3. Așa mai bine faci deny la Rusia și China și ai rezolvat trei sferturi din problemă.

  4. Mircea Popescu`s avatar
    4
    Mircea Popescu 
    Tuesday, 18 August 2009

    Pai da, da' daca esti rapit in miezul noptii de agenti KGB si dus intr-o barca pescareasca la Novosibiirks, intr-o inchisoare secreta de unde reusesti sa evadezi cu ajutorul blondei Katja si al surorii ei gemene Tanja, mai tanara cu 2 ani si cu sani mai fermi, si iei legatura cu CIA dar ei au nevoie sa-ti confirme identitatea si tu nu te poti loga in wordpress ? Hm ? HMM ?

  5. :))

    I got your point, e foarte bun de folosit pe cazuri particulare, da' eu mi-am exprimat punctul de vedere în ideea că sunt mulți indivizi care nu au cum să se logheze de pe IP fix, dintr-un motiv sau altul. Dacă dai allow la clase, deja ajungi de unde ai plecat. Pentru un atac targetat, individul se conectează prin proxy și tot dă în tine, poate doar la frecvență mai mică.

    Părerea mea de nespecialist în rețelistică e că securizarea trebuie să se creeze la alt nivel. Atacuri vin nu numai pe http, ci și pe alte căi. De-aia există iptables și log-uri de acces. Altfel n-am mai pune parolă la wordpress, ci am crea sesiune automat pentru adresa x, idee foarte bună în teorie, dar rea în practică, din cauză că http-ul e prăpăstios de felul lui și n-a fost proiectat tocmai pentru scopurile în care e folosit web-ul astăzi.

  6. Mircea Popescu`s avatar
    6
    Mircea Popescu 
    Tuesday, 18 August 2009

    :P Si uite asa am scris un scenariu de film de actiune, pe ecrane cel mai probabil in 2012.

    Eu am creat solutii de securizare bazate in parte pe IP locking, si s-au dovedit solide. Cred sincer in combinatia IP restriction + parola pentru orice sistem de identificare a utilizatorului, din aceleasi motive fundamentale pentru care cred sincer in combinatia achizitie analogica date + proceduri randomizare pentru orice generator de numere aleatorii.

    Sigur, atacuri asupra sistemului pot aparea din tot felul de surse, http e doar o mica felie. Dar toate atacurile asupra identitatii utilizatorilor se bazeaza pe ambiguitatea sursei. Atata timp cat aceasta ambiguitate nu este absoluta, solutii de atac scalabile devin cvasi-imposibile.

  7. Mă gândesc că soluția blocării e destul de bună în contextul în care dau un Allow pe rețeaua locală pentru wp-admin.php și mă strecor apoi pe mașina de acasă printr-un VPN dacă sunt în altă parte.

    Ce m-a deranjat mereu la wordpress e imposibilitatea de a scăpa de userul "admin" fără a-i modifica numele din baza de date. În momentul în care schimb user-ul din "admin" în "terente", atacatorului îi va veni destul de greu să ghicească dacă există sau nu un user terente pe wordpress-ul respectiv, caz în care eu sunt în mare măsură în siguranță, asta dacă nu există un backdoor în wordpress.

  8. Mircea Popescu`s avatar
    8
    Mircea Popescu 
    Tuesday, 18 August 2009

    Bun, dar gandeste-te : intre user ionel pw 12345 si user admin pw 1234567890 nu exista o diferenta reala de securitate, cryptografic vorbind. Deci nu conteaza chiar asa mult.

  9. Criptografic vorbind nu, practic contează. Fiind user default (și imposibil de schimbat din interfață), un atac bazat pe dicționar (unde admin poate fi chiar singurul user din dicționar) are șanse considerabil mai mari de reușită. Dacă folosesc și diacritice în numele user-ului, contul va fi practic imposibil de spart, doar dacă nu se gândesc cumva crackerii că pe românul nostru îl cheamă "pârțoșel" (exemplu ales special pentru cele trei diacritice).

    Ăsta este motivul pentru care administratorii de sisteme unix blochează de obicei accesul direct la contul de root. Încă 5-6 caractere în plus la complexitate se simt. În plus, schimbarea parolei odată la câteva luni e un rău necesar, considerându-se că o parolă e mai ușor de schimbat decât o broască de la ușă.

    O tehnică și mai interesantă e păstrarea unui cont "admin", dar cu privilegii 0. Contul respectiv va fi doar o momeală pentru cei însetați de spargeri. În orice caz, se constată că un sistem bine securizat va fi atacat la greu (ceea ce îl poate încărca destul de mult, mai ales în cazul wordpress-ului), poate chiar mult mai mult decât unul cu o securitate mai laxă, caz în care se preferă folosirea unor astfel de momeli, pentru a le da hecărilor de lucru.

  10. Ha!Ha!Ha!
    Meseriase comentariile.
    Super site-ul dvs "crai de ghinda".
    Daca tot va pricepeti ceva ptr blogger:)))), ar fi bine venite, mai ales pentru blonde:)))
    aaaaaaaaa si nu schema logica/html, ci pur si simplu poze + instrumente de utilizare (a pozelor evident):))))))
    o zi buna iti doresc
    multumesc ptr vizita!

  11. Mircea Popescu`s avatar
    11
    Mircea Popescu 
    Thursday, 8 October 2009

    Sa traiesti. Sa notez un fapt oarecum amuzant : la cateva zile dupa ce-am facut eu aceasta modificare, s-a descoperit un bug in wordpress care ingaduia mismasuri folosind exact scriptul de autentificare. Ceea ce a dus la un update de urgenta (care a acoperit gaura doar in parte, asa incat a fost urmat de inca un update de urgenta).

    Evident, respectivele hack-uri erau in lucru cu putin timp inainte de-a fi descoperite, deci eu m-am blindat cu ore, poate minute inaintea construirii exploit-ului de catre hackeri. Copil inspirat divin ce mi-s.

Add your cents! »
    If this is your first comment, it will wait to be approved. This usually takes a few hours. Subsequent comments are not delayed.