Cum să-ţi securizezi site-ul

Disclaimer: sfaturile vin de la cineva care a devenit delăsător şi care, deci, a fost hackerit.

Nu există un manual general valabil în care să scrie cum să-ţi securizezi site-ul şi nu este o singură metodă care aplicată să dea rezultate spectaculoase. Din contră, pentru a ajunge la un nivel de securitate de 99% (rezistă la majoritatea atacurilor) trebuie depusă multă muncă.

Acest articol este scris din perspectiva unuia care foloseşte Joomla! pentru site. Alţii folosesc altceva. Este doar o chestie de gust (preferinţe).

Acestea fiind spuse, să începem cu prezentarea subiectului. Pentru a-ţi securiza site-ul iată nişte sfaturi de bun simţ:

  • Foloseşte un CMS (Joomla!, WordPress, Drupal, etc) sigur. Joomla! este sigură (Top 3) însă nu toate extensiile acesteia sunt sigure. Dacă:
    • Foloseşti Joomla! înainte de a instala ceva uită-te în Joomla! Vulnerable Extensions List şi upgradează cât mai repede la ultima versiune. Mai mult, upgradează periodic extensiile, mai ales dacă ai vreuna în stadiu de beta.
    • Foloseşti alt CMS uită-te ce extensii sunt periculoase, upgradează la ultima versiune, etc.
  • Foloseşte cu atenţie permisiunile la fişiere. După ce am fost hackerit toate folderele şi fişierele mele sunt read only după principiul "paranoia e mai bună decât paguba".
  • Dacă nu este musai ca utilizatorii să aibe parte de o funcţie de upload (încărcare a fişierelor pe server) atunci cel mai bine este să o dezactivezi de tot. Dacă este musai ca utilizatorii să aibe parte de upload, atunci trebuie să verifici ca toate fişierele uploadate să fie de tipul declarat, adică să nu urce cineva un script PHP dar redenumit ca şi GIF sau mai ştiu eu ce.
  • Fişierul .htaccess este mama şi tata securităţii. Este plin de tutoriale pe internet despre cum se foloseşte pentru a securiza site-ul. Eu vă spun doar atât, cu titlu de exemplu:

    #Begin blindness code

    php_value display_errors Off
    php_flag html_errors "0"
    php_flag display_startup_errors "0"
    php_flag log_errors "1"
    php_flag allow_url_fopen "0"
    php_flag register_globals Off

    #End blindness code

    #Begin SQL injection protection

    php_flag magic_quotes_gpc Off
    php_flag magic_quotes_runtime Off

    #End SQL injection protection

    #Begin some code injection protection

    php_flag allow_url_fopen off

    #End some code injection protection

    Funcţiile shell_exec, passtru, etc trebuiesc oprite. Dacă hosting-ul le are activate (hosting prost, că ăia buni nu fac de-astea) le opriţi manual, folosind:

    php_flags nume_variabilă valoare (ca în exemplele de mai sus).

    Accesul la fişierele .htaccess (puteţi avea câte unul pentru fiecare director) îl tăiaţi cu:

    # Disable .htaccess viewing from browser
    <Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
    </Files>

  • Site-ul este la fel de sigur ca şi cea mai slabă verigă (server, site, ciomputerul administratorului) aşa că mare grijă la ce instalaţi pe computerul sau computerele de pe care accesaţi site-ul propriu, în special panoul de control.
  • Să foloseşti parole puternice şi nume de utilizator greu de ghicit. De exemplu nici eu nu ştiu unele parole de la site, dar le "calculez" şi aşa reuşesc să intru pe site. De paranoic ce sunt. Şi nu, parolele nu se spun şi nici nu se scriu pe foaie sau în vreun fişier aflat pe hard disk sau un alt dispozitiv de stocare.
  • Dacă eşti hackerit roagă-te să ai hosting bun şi să aibe un backup recent. Dai restore la backup-ul respectiv, nu înainte de a tăia complet accesul la site cu:

    order deny, allow
    deny from all
    #eventual permiţi accesul doar de la IP-ul propriu dar nu prea ajută în caz de IP spoofing.
    allow from 12.34.56.78

  •  Testează-ţi singur site-ul. Sunt exemple pe internet.

Legat de testare trebuie să vorbesc despre un program extrem de bun, numit Acunetix Web Vulnerability Scanner. Versiunea gratuită vă ajută să vă scanaţi site-ul pentru a vedea dacă este vulnerabil la XSS (Cross Site Scripting). Versiunea cu plată vă ajută să scanaţi site-ul şi împotriva altor genuri de atacuri.

Nu am testat decât versiunea gratuită. ATENŢIE: Eu am primit ban de la hosting (am scris deja că am primit ban) aşa că mare grijă! No bun. Să vorbim un pic despre acest program. AWVS permite scanarea unui site, care scanare se realizează în mai mulţi paşi:

  • Sunt indexate paginile site-ului. Dacă aveţi câteva mii, ca mine, va dura ceva, poate chiar câteva ore.
  • Fiecare pagină este testată împotriva unor tipuri de atacuri. De aceea nu mai am nici forum şi nici carte de oaspeţi. Această operaţie durează extrem de mult la site-uri mari.

Versiunea gratuită are nişte limitări, adică testează doar XSS şi doar pe un singur site.

Pentru a scana site-ul Dvs. la pornire vă va apărea automat un fel de wizard (ca la instalarea de software) de unde puteţi selecta nişte opţiuni. De exemplu eu am scanat:

  • www.robintel.ro
  • use heuristics
  • optimize for PHP (dar ştie şi ASP, etc)
  • restul opţiunilor îmi scapă şi nu mai pornesc programul ca să nu îmi iau iarăşi ban.

Dacă wizard-ul nu vă apare (am impresia că apare o singură dată) faceţi în felul următor, indicat şi în imaginile următoare. Porniţi programul. Vă apare mesajul cu limitările. Daţi OK. Apoi vă apare fereasta principală. Selectaţi Web Scanner.

Apoi daţi click pe Start (dreapta sus)

Vă va apărea fereastra de scanare.

După ce se termină scanarea verificaţi log-ul fără să închideţi aplicaţia (mi se pare că versiunea gratuită nu îl salvează, dar nu mai ştiu). Veţi vedea acolo nişte treburi pe care trebuie să le corelaţi (eventual reparaţi) cu .htaccess (dacă este posibil) sau cu o altă metodă. Nu pot să ofer exemple specifice, pentru că nu mai am instalate extensiile problemă (logic, nu?). Ştiu, însă, că a găsit probleme şi singura rezolvare rezonabilă a fost dezinstalarea lor. Oricum programul vă va spune.

Dintre "bunătăţile" pe care le scanează enumăr câteva (din 659 de fişiere ce conţin minim o vulnerabilitate):

  • Drupal_v.4.7.2_Cross-Site_Scripting
  • Joomla_v.1.5.5_Remote_Admin_Password_Change
  • Joomla_v.1.5_beta_2__Remote_Code_Execution
  • phpBB_2.0.15_Viewtopic.php_Remote_Code_Execution_Vulnerability
  • phpBB_Addon__Hacks_List_v.1.20_Local_File_Inclusion
  • phpBB_XS_Build_058_File_Inclusion
  • PHP_multiple_vulnerabilities
  • WordPress_database_credentials_disclosure
  • WordPress_v.2.0.1_Path_Disclosure
  • WordPress_v.2.0.3_SQL_Injection
  • WordPress_v.2.0.5_Trackback_UTF-7_SQL_Injection
  • WordPress_v.2.0.6_Trackback_(Zend_Hash_Del_Key_Or_Index)_Injection
  • WordPress_v.2.1.1_-_Compromised_Installation
  • WordPress_v.2.1.2_(year)_Cross-Site_Scripting
  • WordPress_v.2.3.1_(GBK_Big5_s)_SQL_Injection
  • WordPress_v.2.3_(edit-post-rows.php)_Cross-Site_Scripting
  • WordPress_v.2.x_(Text_Link_Ads)_SQL-Injection

Deci sfatul meu este să scanaţi, pe cât posibil şi fără să luaţi ban, site-urile voastre. Spor la treabă!

4 Comentarii

  1. fetebaieti.com 10 iunie 2009 la 16:27 - Raspunde

    foarte tare programul , multumesc mult , lam folosit pentru http://www.fetebaieti.com si mi-a fost de mare ajutor , inca odata 10x :cheer:

  2. fetebaieti.com 10 iunie 2009 la 20:56 - Raspunde

    oricum , sper sa nu contina nici un fel de scam…. , ca in ultima vreme m-am cam ars cu diverse scripturi gen viralinviter si altele de acest gen 🙁 :unsure:

    • Robin Molnar 10 iunie 2009 la 21:10 - Raspunde

      😆 Dude, crezi sincer că îmi bat joc de cititori? 😆

Lasa un raspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Vreau să fiu părtaș la faptă. Poți, de asemenea, să fii părtaș și fără martori.

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Robintel
Despre Politica de Confidențialitate

Acest website are nevoie să folosească cookies, care sunt niște fișiere text de mici dimensiuni ce conțin referințe specifice, dar nu explicite, stocate pe computerul voastru, astfel încât, de exemplu, atunci când lăsați un comentariu, datele din formular să se salveze, dar nu numai.

Fără acces la cookies, aceste date nu se vor salva.

Pentru a afla mai multe despre cum folosim informațiile și despre dreptul vostru asupra datelor voastre, vă rugăm să consultați pagina Politica de Confidențialitate.

Puteți modifica accesul la aceste cookies accesând taburile din stânga.