yhteenveto: Tässä aiheessa opit, miten suojaat verkkosovelluksiasi (kuten WordPress, Joomla! tai Drupal) hyökkäyksiltä ModSecurityn avulla, joka on avoimen lähdekoodin verkkosovelluksen palomuuri.

Aihe antaa lyhyen yleiskatsauksen ModSecurityn toimintatavasta sekä selittää, miten sen voi ottaa käyttöön ja määrittää.

Verkkosovellusten hyökkäyksiltä suojaamiseksi ja niiden havaitsemiseksi verkkosovelluksen palomuuri (ModSecurity) tarkistaa kaikki verkkopalvelimellesi tulevat pyynnöt ja palvelimen niihin liittyvät vastaukset sääntökokoelmaansa vastaan. Jos tarkistus onnistuu, HTTP-pyyntö välitetään verkkosivustolle sisällön hakemiseksi. Jos tarkistus epäonnistuu, suoritetaan ennalta määritetyt toiminnot.

ModSecurity on tuettu sekä Plesk for Linuxissa että Windowsissa. Se toimii WWW-palvelimen (Apache, Nginx tai IIS) moduulina.

ModSecurityn käyttöön ottaminen

Verkkosovelluksen palomuurin käyttöön ottaminen:

  1. Siirry kohtaan Työkalut ja asetuksetu00a0>u00a0**Verkkosovelluksen palomuuri (ModSecurity)** (kohdassa ”Suojaus”).

    Jos et näe tätä linkkiä, asenna ModSecurity-komponentti Työkalut ja asetuksetu00a0>u00a0**Paivitykset**u00a0>u00a0**Lisää/poista komponentit**u00a0>u00a0**Web-isännöinti**-ryhmään.

    image mode selector

  2. Aseta verkkosovelluksen palomuurin tilaksi On tai Detection only. Jokainen saapuva HTTP-pyyntö ja siihen liittyvä vastaus tarkistetaan sääntökokoelmaa vastaan. Jos tarkistus onnistuu, HTTP-pyyntö välitetään verkkosivustolle sisällön hakemiseksi. Jos tarkistus epäonnistuu, tapahtuma kirjataan lokiin. Detection only -tilassa muita toimia ei suoriteta. On-tilassa HTTP-vastaus annetaan virhekoodilla.

    Muista: Verkkosovelluksen palomuurin tiloja voidaan asettaa palvelin- ja toimialuetasolla. Toimialuetason tila ei kuitenkaan voi olla korkeampi kuin palvelimen asettama tila. Esimerkiksi jos verkkosovelluksen palomuuri toimii palvelintasolla Detection only -tilassa, sitä ei voi vaihtaa On-tilaan toimialueille. Toimialueille näytetään vain Off- ja Detection only -tilat.

  3. (Vain Plesk for Linux) Siirry ”Asetukset”-välilehdelle ja valitse haluamasi ModSecurity-versio pudotusvalikosta Aja säännöt kohteessa:

    • Apache (ModSecurity 2.9) (suositeltava). ModSecurity 2.9 toimii vain toimialueilla, joilla on käytössä ”Välityspalvelintila” kohdassa Apache & nginx Settings.

    • Nginx (ModSecurity 3.0). ModSecurity 3.0 voi käyttää ainoastaan OWASP- ja Comodo-sääntösarjoja. Suosittelemme vahvasti kokeilemaan ModSecurity 3.0 -versiota testipalvelimella ennen sen käyttöönottoa tuotantoympäristössä.

  4. Valitse saatavilla oleva sääntökokoelma, jota verkkosovelluksen palomuurin moottori tarkistaa jokaisen saapuvan HTTP-pyynnön kohdalla, tai lataa mukautettu sääntösarja. Voit valita seuraavat sääntösarjat:

    image rule sets

    • Atomic Standard (ilmainen, voidaan päivittää Atomic Advancedksi). Ilmainen aloitusversio Atomic ModSecurity -säännöistä, joka toimitetaan Plesk-ohjelmiston mukana. Se sisältää tärkeitä turvallisuusominaisuuksia ja virheenkorjauksia, jotka julkaistaan kuukausittain. Tähän sääntösarjaan sisältyvät säännöt ovat luettavissa kohdassa Atomic ModSecurity Rule Sets.

    • OWASP (ilmainen). OWASP ModSecurity Core Rule Set (CRS) tarjoaa yleistä suojausta verkkosovelluksissa usein esiintyviltä tuntemattomilta haavoittuvuuksilta. Tämä sääntösarja toimitetaan ilmaiseksi. Sitä pidetään erittäin rajoittavana sääntösarjana, ja tuotantokäyttöön se vaatii lisäviritystä. Kun tämä sääntösarja on valittu, WordPress ei toimi osittain, eivätkä myöskään WWW-sähköpostipalvelu ja tiedostojen jakaminen toimi. Voit käyttää sen sijaan Atomic- tai Comodo-sääntösarjoja.

    • (Plesk for Linux) Comodo (ilmainen). Ilmainen, helppokäyttöinen, muokattava, sääntöihin perustuva liikenteenhallintajärjestelmä, joka suojaa verkkopohjaisia sovelluksiasi ja estää uusia hakkerointitekniikoita käyttämällä usein päivitettävää sääntötietokantaa.

    • Atomic Advanced. Uusin versio säännöistä, johon sisältyvät kaikki suorituskyvyn parannukset, uudet turvallisuusominaisuudet ja virheenkorjaukset, jotka Atomicorp GotRoot julkaisee päivittäin. Tämä on kaupallinen sääntösarja, jota tuetaan täysin ja suositellaan tuotantokäyttöön. Plesk tarjoaa Security Core Complete by Atomicorp -lisäominaisuuden, jonka avulla voit ottaa tämän sääntösarjan käyttöön Pleskissä. Voit hankkia tämän lisäominaisuuden seuraavilla tavoilla:

      • Osta Advanced ModSecurity Rules by Atomicorp -tuote Plesk Online store -verkkokaupasta.

      • Jos sinulla on jo Plesk-käyttöoikeus, voit lisätä lisäominaisuuden Plesk Partner Central -käyttöliittymän kautta tai Partner API:n kautta (lisätietoja on Partner Central User’s Guide -oppaassa tai Partner API 3.0 reference -viitteessä).

      • Jos sinulla on Plesk-käyttöoikeus, mutta sinulla ei ole pääsyä Plesk Partner Central -palveluun, ota yhteyttä palveluntarjoajaasi.

      Jos sinulla on jo tili Atomic-sivustolla, voit antaa käyttäjätunnuksen ja salasanan tämän sääntösarjan käyttöönottamiseksi.

      Muista: Jos hankit tämän lisäominaisuuden, Plesk-liittymä näyttää Atomic Advanced -nimen Atomic Standard (ilmainen, voidaan päivittää Atomic Advancedksi) -nimen sijaan, ja tämä tarkoittaa todellisuudessa koko Atomic Advanced ModSecurity -sääntösarjaa.

      Tähän sääntösarjaan sisältyvät säännöt ovat luettavissa kohdassa Atomic ModSecurity Rule Sets.

    • Mukautettu sääntösarja. Voit ladata palvelimelle mukautetun verkkosovelluksen palomuurin sääntösarjan, esimerkiksi Atomicin kokeilupaketin tai Comodon ilmaisen paketin. Tuetut muodot: zip, tar.gz, tgz, tar.bz2, conf.

  5. Valitun sääntösarjan automaattista päivitystä varten valitse Update rule set -valintaruutu ja valitse päivitysjakso.

  6. Valitse valmis parametrikokoelma tai määritä mukautetut ModSecurity-direktiivit. Voit valita seuraavat valmiit parametrikokoelmat:

    • Fast, kun HTTP-pyynnön URI ja osa otsikoista analysoidaan. Tämä tila kuluttaa vähiten suoritinta.

    • Tradeoff, kun HTTP-pyynnön URI, otsikot ja pyynnön POST-data analysoidaan. Tämä tila on hyvä tasapaino laadun ja suorituskyvyn välillä.

    • Thorough, kun HTTP-pyynnön koko otsikot, pyynnön POST-data ja HTTP-vastauksen runko analysoidaan. Tämä tila kuluttaa eniten suoritinresursseja, mutta sitä voidaan suositella sivustoille, jotka vaativat erityisiä suojaustoimia. Esimerkiksi verkkokaupat, jotka hyväksyvät korttimaksuja.

      Muista: Optimaalisen suorituskyvyn saavuttamiseksi verkkosovelluksen palomuuri vaatii paikallisen DNS-palvelimen, jossa on pyyntöjen välimuisti käytössä. Muuten verkkosivustot voivat latautua hitaasti, kun verkkosovelluksen palomuuri on käytössä.

      image configuration

Lokitiedostot (Linux)

Linuxissa ModSecurity käyttää lokeihin kahta sijaintia:

  • ModSecurity-tarkastusloki (sijaitsee /var/log/modsec_audit.log) on hyvin yksityiskohtainen ja sitä käyttää koko Plesk-palvelin. Kun ModSecurity havaitsee tapahtuman, se luo merkinnän tarkastuslokitiedostoon. Voit tarkastella ModSecurity-tarkastuslokia siirtymällä kohtaan Työkalut ja asetuksetu00a0>u00a0**Verkkosovelluksen palomuuri (ModSecurity)** ja napsauttamalla ModSecurity audit log -osion Lokiarkisto-linkkiä. Täältä voit tarkastella ModSecurity-lokitiedostoja ja niiden muokkauspäivämääriä sekä ladata lokitiedostot.

  • Toimialueen Apache-virhelokki (sijaitsee /var/www/vhosts/DOMAIN.TLD/logs/error_log) sisältää vain lyhyitä tietoja verkkosivustojen virheistä. Voit tarkastella tietyn verkkosivuston virhelokia Customer Panelissa kohdassa Verkkosivustot ja toimialueet > <domain_name> > Lokit ja valitse oikealla Kaikki lokit -valinnan sijaan vain Apache-virhe ja nginx -virhe.

Lokitiedostot (Windows)

Windowsissa ModSecurity-tarkastuslokit ovat toimialuekohtaisia ja sijaitsevat kansiossa %plesk_dir%ModSecurity\vhosts\<domain's GUID>\logs (missä %plesk_dir% on Plesk-asennuksen oletusasennushakemisto).

Sääntöjen sammuttaminen

Verkkosivusto voi lakata toimimasta odotetusti, kun muutat verkkosovelluksen palomuurin tilan Off- tai Detection only -tilasta On-tilaan. Verkkosivuston virhelokista löydät virhekoodeja, kuten 403, 404 tai 500, ja ne lakkaavat ilmestymästä, kun vaihdat verkkosovelluksen palomuurin tilan takaisin Detection only- tai Off-tilaan. Tässä tapauksessa analysoi ModSecurity-tarkastusloki selvittääksesi, mitä on tapahtumassa. Voit sammuttaa liian rajoittavat turvallisuussäännöt tai säätää verkkosivustoa.

Määritä, miksi HTTP-pyyntöä ei voida suorittaa verkkosivustolla:

  1. Tarkastele verkkosivuston tarkastuslokitiedostoa.

    Plesk for Linuxissa voit tarkastella lokia Plesk-käyttöliittymän avulla: siirry kohtaan Työkalut ja asetuksetu00a0>u00a0**Verkkosovelluksen palomuuri (ModSecurity)** ja napsauta ModSecurity Log File -linkkiä ladataksesi tarkastuslokin ja avataksesi sen uudessa selainikkunassa.

  2. Käytä hakua (useimmissa selaimissa Ctrl+F) etsiäksesi verkkosivuston (toimialuenimen) kanssa ongelmia aiheuttaneita tapahtumia. Esimerkiksi your_domain.tld. Selain korostaa merkinnät, kuten HOST: your_domain.tld. Korostetun merkinnän yläpuolella olevista kolmesta rivistä etsi merkkijono, kuten --eece5138-B--. Kahdeksan merkkiä tavuviivojen välissä (esimerkissämme eece5138) on HTTP-pyynnön aiheuttaman tapahtuman tunnus.

  3. Etsi lisää muita merkintöjä samalla tapahtuman tunnuksella. Hae merkintä, jossa on kirjain H tapahtuman tunnuksen jälkeen (esimerkissämme eece5138-H--). Tämä merkintä sisältää HTTP-pyynnön tarkistuksen aikana laukaistun turvallisuussäännön tunnuksen ja kuvauksen. Turvallisuussäännön tunnus on lainausmerkeissä oleva kokonaisluku, jonka etuliite on id hakasulkeissa (esimerkiksi [id "340003"] tai [id "913102"]).

  4. Etsi tapahtumasta turvallisuussäännön tunnus käyttämällä osamerkkijonoa (esimerkiksi [id "3). Tätä tunnusta voi käyttää sääntöjä sammuttaessa.

Sammuttaaksesi säännön:

  1. Siirry kohtaan Työkalut ja asetuksetu00a0>u00a0**Verkkosovelluksen palomuuri (ModSecurity)**.

  2. Valitse Switch off security rules -osiossa turvallisuussääntö sen tunnuksen (esim. 340003), tunnisteen (esim. CVE-2011-4898) tai säännöllisen lausekkeen (esim. XSS) perusteella ja napsauta OK.