Sari la conținut Treci la bara laterală Sari la subsol

Securizarea serverului web NGINX sau APACHE necesita o analiza atenta a mai multor factori. Un bun punct de plecare este verificarea antetelor de securitate HTTP pentru a vedea daca respectati cele mai bune practici din industrie.

Adesea, este suficienta o mica modificare a configuratiei serverului web. Un strat suplimentar de protectie este oferit de antetele de securitate HTTP, care ajuta la reducerea riscului de atacuri si a vulnerabilitatilor de securitate. In scopul acestei postari, vom examina mai indeaproape cateva dintre ele pentru a va arata cum sa le puneti in aplicare.

Ce sunt anteturile de securitate HTTP?

Continutul si antetele de raspuns HTTP sunt trimise inapoi la browser ori de cate ori un server web raspunde la o cerere a browserului pentru o pagina. Antetele precum Content-Encoding, Cache-Control si Status Codes contin metadate.

De asemenea, sunt incluse si antetele de securitate HTTP, care ii spun browserului dvs. cum sa gestioneze continutul site-ului dvs. web. Strict-Transport-Security, de exemplu, forteaza browserul sa utilizeze exclusiv HTTPS. Iata, fara o anumita ordine, exemple de anteturi de securitate HTTP pe care ar trebui sa le cunoasteti si sa luati in considerare implementarea lor.

1. X-XSS-Protecție

Antetul X-XSS-Protection este conceput pentru a permite filtrarea Cross-Site Scripting (XSS) integrata in browserele web moderne. De obicei, acesta este activat in mod implicit. Internet Explorer 8+, Chrome si Safari sunt compatibile cu X-XSS-Protection. Urmatorul este un exemplu de cum arata acest antet: X-XSS-Protection: 1; mode=block.

Activati protectia X-XSS in NGINX

add_header X-XSS-Protection „1; mod=blocare” întotdeauna;

Activati protectia X-XSS in Apache

antetul setat întotdeauna X-XSS-Protection „1; mod=blocare”

2. Politica de securitate a conținutului

Politicile de securitate a continutului sunt in prezent acceptate de toate browserele importante. Acest lucru nu va cauza nicio problema daca continutul este livrat unui browser mai vechi; va fi pur si simplu ignorat.

Content-Security-Policy are o gama larga de directive care pot fi utilizate. In acest exemplu, sunt permise atat scripturile din domeniul curent (definit de "self"), cat si din alexbobes.com: Content-Security-Policy: script-src 'self' https://alexbobes.com.

OWASP furnizeaza urmatoarea lista de directive CSP, impreuna cu o scurta descriere a fiecareia:

  • default-src Defineste politica de incarcare pentru toate tipurile de resurse in cazul in care o directiva dedicata unui tip de resursa nu este definita (fallback),
  • script-src Defineste ce scripturi poate executa resursa protejata,
  • object-src Defineste de unde resursa protejata poate incarca plugin-uri,
  • style-src Defineste ce stiluri (CSS) aplica utilizatorul la resursa protejata,
  • img-src Defineste de unde resursa protejata poate incarca imagini,
  • media-src Defineste de unde poate fi incarcata resursa protejata video si audio,
  • frame-src Defineste de unde resursa protejata poate incorpora cadre,
  • strămoși-cadru Specifică părinți validi care pot încorpora o pagină folosind , sau .
  • font-src Defineste de unde resursa protejata poate incarca fonturi,
  • connect-src Defineste ce URI-uri poate incarca resursa protejata folosind interfete de script,
  • form-action Defineste ce URI-uri pot fi utilizate ca actiune a elementelor de formular HTML,
  • sandbox Specifica o politica HTML sandbox pe care agentul utilizator o aplica resursei protejate,
  • script-nonce Defineste executia scripturilor prin solicitarea prezentei nonce-ului specificat pe elementele de script,
  • plugin-types Defineste setul de plugin-uri care pot fi invocate de resursa protejata prin limitarea tipurilor de resurse care pot fi incorporate,
  • reflected-xss Instruieste un agent utilizator sa activeze sau sa dezactiveze orice euristica utilizata pentru a filtra sau bloca atacurile de scripting cross-site reflectate, echivalent cu efectele antetului non-standard X-XSS-Protection,
  • report-uri Specifica un URI la care agentul utilizator trimite rapoarte despre incalcarea politicii
  • 3. X-Frame-Options

    Antetul X-Frame-Options impiedica incarcarea iframe-urilor pe site-ul dvs. web, prevenind astfel deturnarea clicurilor. Printre browserele care il accepta se numara Internet Explorer 8, Google Chrome 4, Mozilla Firefox 3, Apple Safari 4 si Opera 10.5. Urmatorul este un exemplu de antet X-Frame-Options: X-Frame-Options: SAMEORIGIN.

    Activati X-Frame-Options in NGINX

    add_header X-Frame-Options „SAMEORIGIN” întotdeauna;

    Activati X-Frame-Options in Apache

    antetul setat întotdeauna X-Frame-Options „SAMEORIGIN”

    4. HTTP Strict Transport Security

    Pentru mai multa securitate, browserele web pot comunica cu serverele web numai prin HTTPS. Acest lucru garanteaza ca conexiunea nu poate fi stabilita printr-o conexiune HTTP nesigura, care ar putea fi vulnerabila la atacuri.

    Toate browserele moderne, cu exceptia Opera Mini si a versiunilor mai vechi de Internet Explorer, accepta securitatea stricta a transportului HTTP.

    Activarea HTTP Strict Transport Security pe serverul dvs. de origine este o conditie prealabila inainte de a putea trece la configurarea acestuia. Serverul web va incepe sa adauge un antet de raspuns suplimentar pentru a indica browserului sa comunice numai prin HTTPS odata ce este activat pe partea serverului. Antetul de raspuns va fi asemanator cu: Strict-Transport-Security: max-age=31536000; includeSubDomains; preload..

    • max-age: specifica numarul maxim de secunde pentru care serverul web trebuie sa livreze doar prin HTTPS.
    • includeSubDomains: nu este obligatoriu; toate subdomeniile site-ului vor fi, de asemenea, protejate de HSTS ca urmare a definirii acestei directive
      preload: nu este obligatoriu; este posibil ca proprietarul site-ului sa isi adauge site-ul web la "lista de preincarcare" a Chrome, care este o lista de site-uri HTTPS-only care au fost codificate in browser

    Orice vizite ulterioare la http://domain.com vor fi redirectionate catre https://domain.com daca antetul HTTP Strict Transport Security este prezent pe site-ul web pe care il vizitati. Atata timp cat nu a expirat termenul de expirare, browserul va continua sa faca acest lucru. Cu toate acestea, timpul de expirare este actualizat si reimprospatat de fiecare data cand antetul este livrat browserului, ceea ce ajuta la prevenirea expirarii.

    Browserul nu va permite utilizatorului sa acceseze site-ul web daca nu se poate stabili o conexiune securizata. Se va afisa un mesaj de eroare.

    Activati HTTP Strict Transport Security in NGINX

    Cativa pasi simpli sunt tot ce este necesar pentru a implementa HSTS pe serverul dumneavoastra. Pentru informatii privind configurarea serverului web pentru a utiliza aceasta directiva, consultati instructiunile enumerate mai jos.

    add_header Strict-Transport-Security „max-age=63072000; includeSubdomenii; preîncărcare”;

    Activati HTTP Strict Transport Security in Apache


    Antetul setat întotdeauna Strict-Transport-Security „max-age=63072000; includeSubdomenii; preîncărcare”

    Antetul de raspuns HSTS poate fi verificat prin rularea unei comenzi curl:

    curl -I https://alexbobes.com/main.css HTTP/1.1 301 Mutat permanent Server: nginx Data: miercuri, 22 iulie 2022 04:07:45 GMT Tipul conținut: text/html Lungimea conținutului: 178 Conexiune: Keep-alive Locație: https://alexbobes.com/main.cssStrict-Transport-Security: max-age=31536000; includeSubdomenii; preîncărcare

    In concluzie, implementarea Securitatii stricte de transport HTTP va contribui la mentinerea sigurantei utilizatorilor site-ului dvs. web. Continutul HTTP nesigur poate fi livrat dintr-o varietate de motive, dar HSTS ajuta la eliminarea acestui risc, impiedicand interceptarea comunicatiilor de catre atacatori.

    5. Așteptați-CT

    Cu antetul Expect-CT, site-urile web pot raporta si, optional, pot aplica cerintele de transparenta a certificatelor, impiedicand utilizarea certificatelor emise incorect. Activarea acestui antet indica browserului sa verifice jurnalele publice CT pentru a verifica existenta certificatului. Urmatorul este un exemplu de antet:

    Expect-CT: max-age=604800, enforce, report-uri="https://alexbobes.com/learn"

    Activati HTTP Strict Transport Security in NGINX

    add_header Expect-CT „max-age=604800, enforce, report-uri='https://alexbobes.com/learn' întotdeauna;

    Activati HTTP Strict Transport Security in Apache

    antetul setat întotdeauna Expect-CT „max-age=604800, enforce, report-uri="https://alexbobes.com/learn

    6. X-Content-Type-Options

    Acest antet impiedica browserele precum Internet Explorer si Google Chrome sa detecteze orice alt raspuns decat cel declarat in declaratia Content-Type. Descarcarile de tip drive-by sunt mai putin probabile, iar continutul este mai bine protejat ca urmare. Exemplu de aspect al antetului: X-Content-Type-Options: nosniff.

    Activati X-Content-Type-Options in NGINX

    add_header X-Content-Type-Options „nosniff” întotdeauna;

    Activati X-Content-Type-Options in Apache

    antetul setat întotdeauna X-Content-Type-Options „nosniff”

    7. Caracteristică-Politică

    Acest antet impiedica browserele precum Internet Explorer si Google Chrome sa detecteze orice alt raspuns decat cel declarat in declaratia Content-Type. Descarcarile de tip drive-by sunt mai putin probabile, iar continutul este mai bine protejat ca urmare. Exemplu de aspect al antetului: X-Content-Type-Options: nosniff.

    Activati Feature-Policy in NGINX

    add_header Feature-Policy „redare automată „niciun”; camera „niciuna”” întotdeauna;

    Activati Feature-Policy in Apache

    antetul setat întotdeauna Caracteristică-Politică „redare automată „niciun”; camera „niciuna””

    8. Alte imbunatatiri de securitate pentru NGINX si Apache

    Instalati ModSecurity pentru serverul dvs. web

    ModSecurity este un modul gratuit, open-source, care actioneaza ca un firewall pentru aplicatii web. Printre caracteristicile sale se numara filtrarea, mascarea identitatii serverului si prevenirea atacurilor de tip null-byte. Monitorizarea traficului in timp real este o alta caracteristica oferita de modul. Urmand ModSecurity ghidul pentru instalarea mod security va va ajuta sa va consolidati optiunile de securitate.

    Configurati SSL si suitele de cifrare

    Configuratia implicita a NGINX permite utilizarea unor versiuni mai vechi si nesigure ale protocolului TLS (protocoale ssl TLSv1 TLSv1.1 TLSv1.2 conform documentatiei oficiale). Atacuri precum atacul BEAST ar putea rezulta ca urmare a acestui lucru. Din aceasta cauza, va sfatuiesc sa nu mai folositi protocoale TLS mai vechi si sa treceti in schimb la versiuni TLS mai noi si mai sigure in configuratia dumneavoastra.

    Schimb de chei Diffie-Hellman

    Utilizand schimbul de chei Diffie-Hellman, chiar daca atacatorii pun mana pe cheia privata a serverului, le va fi exponential mai dificil sa descifreze comunicarea dintre server si clientii sai.

    Navigati in /etc/ssl/certs/ si generati DH cu OpenSSL: openssl dhparam -out dhparam.pem 4096
    Adaugati urmatoarele la configuratia Nginx: ssl_dhparam /etc/ssl/certs/dhparam.pem;

    Actualizati-va serverul in mod regulat

    Ar trebui sa va pastrati intotdeauna NGINX serverul web NGINX sau APACHE serverul web actualizat, asa cum ati face cu orice alt software. Vulnerabilitatea de traversare a directoarelor (CVE-2009-3898) care a existat in versiunile NGINX anterioare versiunii 0.7.63 si in versiunile 0.8.x anterioare versiunii 0.8.17 a fost remediata in actualizarile recente. De asemenea, in actualizarile de software sunt incluse frecvent noi caracteristici de securitate si imbunatatiri. Site-urile web nginx & apache au o sectiune dedicata pentru avize de securitate, precum si stiri despre cele mai recente actualizari.

    Adauga un Comentariu

    > Newsletter <
    Vă interesează Știrile tehnice și multe altele?

    Abonati-va