Bezbjednosne preporuke za Apache web server

Similar documents
Water Scrum Fall. nova metodologija ili kako treba raditi u stvarnosti

1. Unix/Linux. 1.1 Organiz acija podataka na disku

Sv. NIKOLA 2016 Pula. St. NICHOLAS 2016 Pula SAILING INSTRUCTIONS UPUTE ZA JEDRENJE

30. KUP MLADOSTI / 30th YOUTH CUP 2018

ISO/IEC 17799:2005 CCERT-PUBDOC

Sv. NIKOLA 2015 Pula. St. NICHOLAS 2015 Pula SAILING INSTRUCTIONS UPUTE ZA JEDRENJE

Scrum vodič. Uputstvo za Scrum: Pravila igre. Juli Razvijaju i održavaju Ken Schwaber i Jeff Sutherland

The MQ Console and REST API

Deep dive SSL. Created for CUSTOMER

USING DAPHNIA BIO-SENSOR FOR RANDOM NUMBER GENERATION UDC 504.4: :004=111. Đorđe Đorđević 1, Srbislav Nešić 2

Robot automatski čistaći/usisavači za čišćenje bazena Dolphin cijena-forum

COLREGs in STCW Convention

REPUBLIKA HRVATSKA. LDDU - Zračna luka DUBROVNIK/Čilipi - Privremena suspenzija RNAV (GNSS) RWY12 i probni PBN zrakoplovni navigacijski postupci

Iurii TABUNSHCHIKOV *, Marianna BRODACH, Moscow Architectural Institute, Moskow, Ruska Federacija.

Naslov: Oznaka: Izmjena: Upute za korištenje ECDIS-a na brodovima koji uplovljavaju u luke Australije QC-T-259 0

15 th BELGRADE TROPHY 2014 POOMSAE

FLOORPLANS STRUKTURE TIPSKIH STANOVA.

Čoh, M. and Krašna, S.: Biophysical model of the golf swing technique Sport Science 7 (2014) 2: BIOPHYSICAL MODEL OF THE GOLF SWING TECHNIQUE

Sport Center Vozdovac Banjica, Crnotravska 4, Belgrade

KUP GRADA SAMOBORA U PREPONSKOM JAHANJU CITY OF SAMOBOR CUP

BELGRADE TROPHY rd POOMSAE OPEN

PROBLEM OF TRANSPORT OF DANGEROUS MATTERS BY ROAD TRANSPORT IN TERMS OF ROAD SAFETY IN CZECH REPUBLIC

Univerzalan algoritam za rad sa EEPROM memorijom velikog memorijskog kapaciteta

9th Zrenjanin Open 2019 Sports hall Crystal hall Kyorugi/Poomsae/Kick Pioneers-Cadets-Juniors-Seniors

VMware Inc., NSX Edge SSL VPN-Plus

INVESTIGATION OF ROAD ENVIROMENT EFFECTS ON CHOICE OF URBAN AND INTERURBAN DRIVING SPEED

REF DODACI SU TAKOĐE DOSTUPNI POJEDINAČNO OPT 6CG UKOLIKO SE PRODAJE UZ VOZILO

git: distribuirana kontrola verzije softvera

XC2 Client/Server Installation & Configuration

Informacije o proizvodu

ID: Cookbook: browseurl.jbs Time: 15:40:31 Date: 11/04/2018 Version:

USPOREDBA SUSTAVA PROŠIRENE STVARNOSTI

ID: Cookbook: browseurl.jbs Time: 03:38:04 Date: 30/04/2018 Version:

OPIS PROMJENA U STRUKTURI FININIH DIGITALNIH CERTIFIKATA. Verzija 1.1

PRIME Plus (pametni telefon)

Specifikacija usluga: Ultra MAX paketi

SQL LiteSpeed 3.0 Installation Guide

High usability and simple configuration or extensive additional functions the choice between Airlock Login or Airlock IAM is yours!

KORISNIČKO UPUSTVO UTOK 430 Q

A local passenger train passed through level crossing on which half barriers were open.

BICIKLI i AUTOBUSI. Give Cycling a Push. Ukratko. Osnovne informacije. Primjena. Infrastruktura. Info-list o provedbi

[CROSS COUNTRY SCORING]

Regulativa i normizacija

ELEKTRONSKO POSLOVANJE

OCCUPATIONAL SAFETY IN HAZARDOUS CONFINED SPACE

ONSIGHT FIREWALL CONFIGURATION GUIDE

ONSIGHT FIREWALL CONFIGURATION GUIDE

Integrate Riverbed SteelHead. EventTracker v8.x and above

MORPHOLOGICAL CHARACTERISTICS OF BOSNIAN FIRST LEAGUE FEMALE BASKETBALL PLAYERS

Opća pravila pružanja usluga certificiranja i Pravilnik o postupcima certificiranja za Fina Root CA FINA

ID: Cookbook: browseurl.jbs Time: 01:54:38 Date: 10/05/2018 Version:

SUBJECTIVE WELLBEING OF CYCLISTS AND PHYSICALLY INACTIVE SUBJECTS

ID: Cookbook: browseurl.jbs Time: 19:33:28 Date: 25/04/2018 Version:

Bareos, ZFS and Puppet. Christian Reiß Symgenius

Diver-Office Uputstvo za upotrebu

MODULATION OF MOTORIC PROCESSES ON THE BASIS OF TAIJIQUAN MOVEMENT PRINCIPLES

TOPFIELD & BROADBAND TELE Najveći svjetski satelitski časopis. Vodeći u kućnoj multimediji. Test uređaja

Raspoređivanje procesa (CPU Scheduling) Osnovni koncepti. Raspoređivanje u višeprocesorskoj okolini. Raspoređivanje u realnom vremenu

Eksponencijalno širenje

Fencing Time Version 4.3

Generated by Foxit PDF Creator Foxit Software

A19 Plus. Quick Start Up Guide and Legal Information. Dual SIM Android TM. Srpski

FISHERIES POLICY OF ICELAND

36v 5,2 ah integrated LIGHT: COBRA BOX d.o.o. - Poslovnica 1: Josipa Strganca 6, Zagreb, Tel: +385 (0)

RELEASE NOTES Onsight Connect for ios Software Version 8.1

ID: Cookbook: browseurl.jbs Time: 20:25:07 Date: 07/05/2018 Version:

[CROSS COUNTRY SCORING]

Podzemne vode rešenja za monitoring i komunikaciju. Diver /e-sense AP.P N

Ertugrul Ozturk M. et al.: The evaluation of cramping and injury occurrence state... Sport Science 9 (2016) Suppl 1: 29-33

BOWFLARE IMPACT LOADS ON CONTAINERSHIPS

ID: Cookbook: browseurl.jbs Time: 17:57:53 Date: 27/04/2018 Version:

ANALYSIS OF TRAFFIC ACCIDENTS IN THE AREA OF SMALL TOWNS IN THE REPUBLIC OF CROATIA

SteelHead SaaS User s Guide

ID: Sample Name: sentenza berwind.pdf Cookbook: defaultwindowspdfcookbook.jbs Time: 21:41:19 Date: 11/04/2018 Version: 22.0.

ID: Cookbook: browseurl.jbs Time: 18:33:33 Date: 06/04/2018 Version:

API Reference for Cisco Enterprise Network Function Virtualization Infrastructure Software

Upute za primjenu EU Direktive 94/9/EC

Security & Stability Advisory Committee. Update of Activities

ZAKON O PLATNIM TRANSAKCIJAMA BR KO DISTRIKTA BOSNE I HERCEGOVINE

Republic of Serbia, Traffic Safety Review, with special review on years 2009 and 2010

THE MANAGEMENT OF HEALTH RISKS FROM MICROBIOLOGICAL DANGERS WHILE USING SWIMMING POOL WATER FOR SWIMMING AND RECREATION

Primjena trappinga u grafičkoj pripremi

AN-140. Protege WX SALLIS Integration Application Note

RELIABILITY AND FACTORIAL VALIDITY OF BASKETBALL SHOOTING ACCURACY TESTS

Cisco SIP Proxy Server (CSPS) Compliance Information

ID: Cookbook: browseurl.jbs Time: 22:08:00 Date: 05/07/2018 Version:

APP NOTES Onsight Connect Cisco Integration. July 2016

Preporuke za korištenje nacionalnog čvora za međusobnu razmjenu internetskog prometa (CIX) Svi putevi vode kroz CIX

Airflow Options for Cisco MDS 9396S SAN Switch

FAQs GOLF CANADA KIOSK

DIREKTNI MARKETING NEISKORIŠĆENI POTENCIJAL POŠTANSKIH SISTEMA

PITANJA ZA SUDIJE KUMITE R.B. TAČNO NETAČNO - SECTION 1 1. UKUPNA POVRŠINA BORILIŠTA I SIGURNOSNOG POJASA JE 8x8 m.

CAPACITY ANALYSIS PROCEDURE FOR FOUR-LEG NON-STANDARD UNSIGNALISED INTERSECTIONS

Where and How Data is Stored

HyperSecureLink V6.0x User Guide

ACI_Release_Notes.txt VERSION Fixed Tank info for ELITE in Dive section 2. Fixed USB port initializing for old DC VERSION

ID: Cookbook: urldownload.jbs Time: 15:58:06 Date: 04/06/2018 Version:

Version 3.1.0: New Features/Improvements: Improved Bluetooth connection on Windows 10

IBM MQ Console and REST

FILTRI I OSCILATORI SA CCII

Transcription:

Bezbjednosne preporuke za Apache web server AUTOR : ALEKSANDAR ĐURIĆ ODGOVORNO LICE: SRĐAN RAJČEVIĆ AGENCIJA ZA INFORMACIONO DRUŠTVO REPUBLIKE SRPSKE ODJELJENJE ZA INFORMACIONU BEZBJEDNOST 0

Agencija za informaciono društvo Republike Srpske Odjeljenje za informacionu bezbjednost Publikacija OIBRS-PUB-S1 Autor: Aleksandar Đurić, aleksandar.djuric@aidrs.org Urednik izdanja: mr Srđan Rajčević, srdjan.rajcevic@aidrs.org http://oib.aidrs.org http://www.aidrs.org Ovaj dokument je redigovana i prevedena verzija originalnog dokumenta pod nazivom CIS Apache HTTP Server 2.4 Benchmark dostupnog na adresi https://www.cisecurity.org/cisbenchmarks/. 1

CONTENTS 1. Planiranje i instalacija... 5 1.1 Planiranje pred instalaciju... 5 1.2 Ne instalirati sistem sa više uloga... 5 1.3 Instalacija Apache-a... 6 2. Redukcija Apache modula... 6 2.1 Omogućiti samo potrebne module za autentikaciju i autorizaciju... 6 2.2 Omogućiti Log_config modul... 6 2.3 Onemogućiti WebDAV modul... 6 2.4 Onemogućiti Status modul... 7 2.5 Onemogućiti Autoindex modul... 7 2.6 Onemogućiti Proxy module... 7 2.7 Onemogućiti User Directories module... 7 2.8 Onemogućiti Info module... 8 3. Principi, ovlaštenja i vlasništvo... 8 3.1 Pokretati Apache web server kao non-root korisnik... 8 3.2 Dati Apache User nalogu Invalid Shell... 8 3.3 Zaključati Apache korisnički nalog... 8 3.4 Podesiti vlasništvo nad Apache direktorijima i fajlovima... 9 3.5 Podesiti Group Id nad Apache direktorijima i fajlovima... 9 3.6 Ograničiti Other Write pristup nad Apache direktorijima i fajlovima... 9 3.7 Osigurati Core Dump direktorij... 9 3.8 Osigurati Lock fajl... 9 3.9 Osigurati Pid fajl... 10 3.10 Osigurati ScoreBoard file... 10 3.11 Ograničiti Group write pristup nad Apache direktorijima i fajlovima... 10 3.12 Ograničiti Group Write pristup nad Document Root direktorijima i fajlovima.... 10 4. Apache Access Control... 11 4.1 Zabraniti pristup OS Root direktoriju... 11 4.2 Dozvoliti odgovarajući pristup web sadržaju... 11 4.3 Ograničiti OverRide za OS Root direktorije... 11 4.4 Ograničiti Override za sve direktorije... 12 5. Umanjiti broj mogućnosti, sadržaj i podešavanja... 12 5.1 Ograničiti opcije nad OS Root direktorijem... 12 5.2 Ograničiti opcije nad Web Root direktorijem... 12 5.3 Redukovati opcije nad Other direktorijima... 12 2

5.4 Ukloniti default HTML sadržaj... 13 5.5 Ukloniti standardni CGI sadržaj, printenv... 13 5.6 Ukloniti default CGI sadržaj, test-cgi... 13 5.7 Ograničiti HTTP request metode... 13 5.8 Onemogućiti HTTP TRACE metodu... 13 5.9 Ograničiti verzije HTTP protokola... 14 5.10 Ograničiti pristup.ht* fajlovima... 14 5.11 Ograničiti ekstenzije fajlova... 14 5.12 Odbaciti zahtjeve zasnovane na IP adresi... 14 5.13 Ograničiti Listen direktivu... 14 5.14 Ograničiti Browser Frame opcije... 15 6. Logovanje, nadgledanje i održavanje... 15 6.1 Konfigurisati Error Log... 15 6.2 Konfigurisati Syslog za Error logovanje... 15 6.3 Konfigurisati Access Log... 15 6.4 Rotacija i spremanje logova... 15 6.5 Primjeniti Patch... 16 6.6 Instalirati i omogućiti ModSecurity... 16 6.7 Instalirati i omogućiti OWASP ModSecurity Core set pravila... 16 7. Koristit SSL/TLS... 16 7.1 Instalirati mod_ssl i/ili mod_nss... 16 7.2 Instalirati validni Trusted certifikat... 17 7.3 Zaštitit privatne ključeve servera... 17 7.4 Onemogućiti slabe SSL protokole... 17 7.5 Ograničiti slabe SSL šifrate... 17 7.6 Ograničiti nesigurno SSL ponovno pregovaranje... 17 7.7 Onemogućiti SSL kompresiju... 17 7.8 Onemogućiti TLSv1.0 protokol... 18 7.9 Omogućiti OCSP stapling... 18 7.10 Omogućiti HTTP Strict Transport Security... 18 8. Odljev informacija... 18 8.1 Podesiti ServerToken na "Prod"... 18 8.2 Podesiti ServerSignature na "Off"... 18 8.3 Odljev informacija putem Default Apache sadržaja... 19 9. Denial of Service... 19 9.1 Podesiti TimeOut na 10 ili manje... 19 9.2 Podesiti Keep alive na "On"... 19 3

9.3 Podesiti MaxKeepAliveRequests na 100 ili više... 19 9.4 Podesiti KeepAliveTimeout na 15 ili manje... 20 9.5 Podesiti Timeout Limits za request hedere... 20 9.6 Podesiti Timeout Limits za request body... 20 10. Ograničavanje zahtjeva... 20 10.1 Podesiti LimitRequestLine direktivu na 512 ili manje... 20 10.2 Osigurati da je LimitRequestFields direktiva podešena na 100 ili manje... 20 10.3 Podesiti LimitRequestFieldsize direktivu na 1024 ili manje... 21 10.4 Podesiti LimitRequestBody direktivu na 102400 ili manje... 21 11. Omogućiti SELinux u svrhu restrikcije Apache procesa... 21 11.1 Omogućiti SELinux u Enforcing modu... 21 11.2 Pokrenut Apache procese u httpd_t Confined kontekstu... 21 11.3 Osigurati da httpd_t nije u Permissive modu... 22 11.4 Osigurati da su samo potrebne SELinux Boolean vrjednosti omogućene... 22 12. Omogućiti AppArmor u svrhu restrikcije Apache procesa... 22 12.1 Omogućiti AppArmor framework... 22 12.2 Podesiti Apache AppArmor profil... 22 12.3 Osigurati da Apache AppArmor profil nije u Enforce modu... 23 4

1. PLANIRANJE I INSTALACIJA Ova sekcija sadrži preporuke pri planiranju i instalaciji Apache HTTP servera. 1.1 PLANIRANJE PRED INSTALACIJU Implementirati sledeće stavke po potrebi: Implementirati bezbjednu infrastrukturu kontrolišući pristup web serveru koristeći firewall-e, rutere i switch-eve. Ojačati temeljni operativni sistem web servera umanjujući broj listening servisa, primjenjujući odgovarajuće patch-eve i očvršćavanjem podešavanja. Implementirati korištenje centralnog procesa nadgledanja logova. Implementirati korištenje procesa nadgledanja disk prostora i korištenje mehanizma za rotaciju logova. Osigurati da WHOIS domain informacije ne otkrivaju povjerljive podatke o zaposlenima koji se mogu koristit u svrhe social engineering-a (imena pojedinaca), war dialing-a (brojevi telefona) i brute force napada (email adrese koje odgovaraju imenu korsnika sistema). Osigurati da su Domain Name Service (DNS) serveri adekvatno zaštićeni od napada. Implementirati korištenje Intrusion Detection System-a (IDS) nadgledanja pokušaja napada na web servere. 1.2 NE INSTALIRATI SISTEM SA VIŠE ULOGA Standardna podešavanja servera sadrže veliki broj servisa koji nepotrebno izlažu server riziku i čine ga ranjivim. Broj servisa na Apache web serveru bi se trebao ograničiti samo na neophodne. Jedina funkcija web servera treba biti funkcionisanje kao web server. 5

1.3 INSTALACIJA APACHE-A Prije stavljanja u produkciju svaka nova instalacija se mora testirati u datom okruženju. Preporučeno je korištenje vendor paketa sa obzirom da sadrži veliki broj prednosti poput lakoće sprovođenja instalacije, prilagođenosti operativnom sistemu, unaprijed je testirano a bezbjednosne postavke su lakše primjenljive kao i nadogradnje verzije. 2 REDUKCIJA APACHE MODULA Od velike je važnosti da Apache instalacija bude minimalna i kompaktna u skladu sa dokumentovanim poslovnim potrebama. 2.1 OMOGUĆITI SAMO POTREBNE MODULE ZA AUTENTIKACIJU I AUTORIZACIJU Autentikacija i autorizacija su ulazna vrata prema zaštićenim informacijama na web site-u. Većina instalacija zahtjeva mali broj dostupnih modula. Umanjujući broj modula na broj samo onih modula koji se koriste umanjuje se broj "vrata" i time smanjuje površina za napadanje na web site-u. Manji broj modula predstavlja ujedno i manji broj software-a koji je potencijalno ranjiv. 2.2 OMOGUĆITI LOG_CONFIG MODUL Log_config modul omogućava logovanje korisničkih zahtjeva i podešavanje informacija za svaki log. Logovanje je krucijalno zbog nadgledanja saobraćaja i uočavanja potencijalnih prijetnji web serveru. 2.3 ONEMOGUĆITI WEBDAV MODUL WebDAV je ekstenzija za HTTP koja klijentima omogućava stvaranje, premještanje i brisanje fajlova i resursa na web serveru. WebDAV se rijetko koristi i predstavlja bezbjednosni rizik zbog toga što klijentima dopušta nedozvoljeno modificiranje fajlova na web serveru, iz tog razloga WebDAV moduli mod_dav i mod_dav_fs moraju biti onemogućeni. 6

2.4 ONEMOGUĆITI STATUS MODUL Mod_status modul pruža uvid u trenutnu statistiku performansi servera. Postoje prednosti dostupnosti statusa performansi servera ali je preporučeno onemogućiti ovaj modul. 2.5 ONEMOGUĆITI AUTOINDEX MODUL Autoindex modul automatski generiše listing sadržaja direktorija na serveru. Automatsko izlistavanje direktorija ne bi trebalo biti omogućeno pošto ono ujedno otkriva informacije koje mogu ići u korist malicioznim akterima pri otkrivanju konvencija u imenovanju, putanja u direktoriju i može otkriti fajlove koji ne bi trebalo da budu otkriveni. 2.6 ONEMOGUĆITI PROXY MODULE Proxy moduli dozvoljavaju serveru da se ponaša kao proxy za HTTP i druge protokole sa dodatnim modulima. Ukoliko instalacija nije namjenjena da služi kao proxy ovi moduli bi trebali biti onemogućeni. Kada su ispravno konfigurisani proxy serveri mogu biti bitan bezbjednosni faktor, ali iz bezbjednosnih razloga web server mora imati funkciju ili web servera ili kao proxy, ne oboje. Skeniranje u potrazi za web serverima koji rade kao proxy je čest napad iz razloga što su ti serveri korisni za anonimizaciju napada na druge servere i čak omogućavanje slanja zahtjeva na inače zaštićenu mrežu. 2.7 ONEMOGUĆITI USER DIRECTORIES MODULE UserDir moduli moraju biti onemogućeni tako da se korisničkim direktorijima ne može pristupiti preko web stranice putem korišćena tilde (~) ispred korisničkog imena. Korisnički direktoriji ne bi trebali biti omogućeni globalno sa obzirom da to dozvoljava anoniman pristup sadržaju koji korisnici žele podjeliti sa drugim korisnicima preko mreže. Treba imati na umu da kada se god kreira novi nalog na sistemu stvara se potencijalno novi sadržaj dostupan preko web stranice. 7

2.8 ONEMOGUĆITI INFO MODULE Mod_info modul pruža na uvid informacije o podešavanju servera putem pristupa /server-info URL lokaciji. Postoje prednosti dostupnosti informacija o podešavanju servera u obliku web stranice ali je preporučeno onemogućavanje ovog modula. 3 PRINCIPI, OVLAŠTENJA I VLASNIŠTVO Bezbjednost na nivou operativnog sistema je temelj za bezbjedan web server. 3.1 POKRETATI APACHE WEB SERVER KAO NON-ROOT KORISNIK Jedan od najboljih načina da se smanji izloženost napadima je da se kreira jedinstveni user i group set permisija bez privilegija za serversku aplikaciju. "Nobody" i "daemon" user i group setovi koji po standardu dolaze uz Unix varijante se ne bi smjeli koristiti da pokreću web servere, sa obzirom da se ti nalozi koriste sa druge daemon servise. Treba se koristiti samo nalog za Apache software koji neće imati pristup drugim nepotrebnim servisima. 3.2 DATI APACHE USER NALOGU INVALID SHELL Apache nalog se ne smije koristiti kao regularni login nalog i treba mu biti dodjeljen nologin shell da bi se osiguralo da se nalog ne može koristiti za login. Servisni nalozi predstavljaju rizik ako mogu ostvariti login shell na sistemu. 3.3 ZAKLJUČATI APACHE KORISNIČKI NALOG Kao bezbjednosna mjera korisnički nalog pod kojim se pokreće Apache ne bi trebao imati validnu šifru nego bi trebao biti zaključan. 8

3.4 PODESITI VLASNIŠTVO NAD APACHE DIREKTORIJIMA I FAJLOVIMA Vlasništvo nad Apache fajlovima i direktorijima bi trebalo biti root. Ovo se odnosi na sav instalirani apache software. Ograničavanje vlasništva nad Apache fajlovima i direktorijima će smanjiti mogućnost neautorizovane modifikacije tih resursa. 3.5 PODESITI GROUP ID NAD APACHE DIREKTORIJIMA I FAJLOVIMA Apache fajlovi i direktoriji bi trebalo da imaju group Id root-a ( ili grupe ekvivalentne root-u). Ovo podrazumjeva sav Apache software i na sve instalirane direktorije i fajlove. Jedina iznimka je što će $APACHE_PREFIX/htdocs zahtjevati posebnu grupu koja će dozvoljavati web sadržaju da se ažurira. Ovaj proces će smanjiti mogućnost neautorizovane modifikacije resursa. 3.6 OGRANIČITI OTHER WRITE PRISTUP NAD APACHE DIREKTORIJIMA I FAJLOVIMA Permisije na Apache direktorijima bi trebali biti rwxr-xr-x (755) dok bi na fajlovima bilo isto osim u slučaju kada izvršenje nije prikladno. Ovo se odnosi na sav Apache software i izuzetak jedino može biti $APACHE_PREFIX/htdocs koji zahtjeva posebnu grupu koja će dozvoljavati web sadržaju da se ažurira. Ni jedan od Apache fajlova i direktorija, uključujući Web document root ne smije dopustiti other grupi write pristup. Other write pristup će se vjerovatno koristiti za neautorizovane modifikacije web sadržaja, podešavanja fajlova ili software-a u svrhu malicioznih napada. 3.7 OSIGURATI CORE DUMP DIREKTORIJ Core dump-ovi su slike memorije i mogu sadržati povjerljive i bitne informacije koje ne bi trebale biti dostupne other grupi naloga na sistemu. 3.8 OSIGURATI LOCK FAJL Ukoliko se LockFile nalazi u writable direktoriju, other nalozi mogu pokrenuti denial of service (DOS) napad i spriječiti server od pokretanja kreirajući lock fajl sa istim imenom. 9

3.9 OSIGURATI PID FAJL Ukoliko se PidFile nalazi u writable direktoriju, other nalozi mogu pokrenuit denial of service (DOS) napad i spriječiti server od pokretanja kreirajući pid fajl sa istim imenom. 3.10 OSIGURATI SCOREBOARD FILE Ukoliko se ScoreBoardFile nalazi u writable direktoriju, other nalozi mogu pokrenuti denial of service (DOS) napad i spriječiti server od pokretanja kreirajući fajl sa istim imenom i users nalozi mogu nadzirati i poremetiti komunikaciju između procesa otvaranjem i mjenjanjem dokumenta. 3.11 OGRANIČITI GROUP WRITE PRISTUP NAD APACHE DIREKTORIJIMA I FAJLOVIMA Group permisije na Apache direktorijima bi trebalo da budu r-x a na fajlovima bez mogućnosti izvršenja ukoliko to nije potrebno. Restrikcija permisije vršenja izmjena na Apache fajlovima i direktorijima može spriječiti napade koji modifikuju web sadržaj u cilju ostvarivanja neautorizovanog pristupa ili napada na web klijente. 3.12 OGRANIČITI GROUP WRITE PRISTUP NAD DOCUMENT ROOT DIREKTORIJIMA I FAJLOVIMA. Grupne permisije na Apache Document Root direktoriju $DOCROOT moraju dopuštati izmjenjivanje od strane grupa koje rade na razvoju, podršci i produkcijskom sadržaju. Bitno je da Apache grupa koja pokreće server nema write pristup direktorijima i fajlovima na document root-u. 10

4 APACHE ACCESS CONTROL Preporuke se odnose na podešavanja kontrole pristupa koja je dostupna u Apache HTTP serveru. 4.1 ZABRANITI PRISTUP OS ROOT DIREKTORIJU Apache Directory direktiva omogućava podešavanja specifična za kontrolu pristupa i druge opcije. Ova direktiva je korisna pri stvaranju jedinstvene polise zabrane pristupa OS direktorijima i fajlovima, osim onima koji su specifično izuzeti. Ograničavanje pristupa se može postići korištenjem Apache Deny direktive zajedno sa Order direktivom ili korištenjem Apache Require direktive. Korištenje ovih direktiva spriječava nepoželjan pristup, u ovom slučaju ograničavajući dostupnost OS root direktorija. 4.2 DOZVOLITI ODGOVARAJUĆI PRISTUP WEB SADRŽAJU Da bi se obezbjedila dostupnost web sadržaja Apache Allow direktiva se koristi za određivanje pristupa direktorijima, lokacijama i virtuelnim hostovima koji sadrže web sadržaj. Unutar direktorija, lokacije ili drugog sadržaja se može koristit Allow ili Require direktiva da se omogući određeni pristup. Allow, Deny, Order su zastarjele direktive i trebalo bi ih zamjeniti sa Require direktivom. 4.3 OGRANIČITI OVERRIDE ZA OS ROOT DIREKTORIJE Apache OverRide direktiva dopušta korištenje.htaccess fajlova za zaobilaženje podešavanja koja se tiču autentikacije, rukovanja sa tipovima dokumenata, auto generisanih indeksa, pristupnih kontrola i podešavanja. Kada server pronadje.htaccess fajl, on mora znati koje direktive mogu zaobići prijašnje pristupne informacije. Neke od poznatih ranjivosti na web serveru dopuštaju pregled ili izmjenu web fajlova i iz tog razloga je loša praksa držati podešavanja web servera u.htaccess fajlovima. 11

4.4 OGRANIČITI OVERRIDE ZA SVE DIREKTORIJE Apache AllowOverride direktiva dopušta korištenje.htaccess fajlova za zaobilaženje podešavanja koja se tiču autentikacije, rukovanja sa tipovima dokumenata, auto generisanih indeksa, pristupnih kontrola i podešavanja. Kada server pronađe.htaccess fajl, on mora znati koje direktive mogu zaobići prijašnje pristupne informacije. Neke od poznatih ranjivosti na web serveru dopuštaju pregled ili izmjenu web fajlova i iz tog razloga je loša praksa držati podešavanja web servera u.htaccess fajlovima. 5 UMANJITI BROJ MOGUĆNOSTI, SADRŽAJ I PODEŠAVANJA. Preporuke se odnose na smanjivanje efektivne površine napada na Apache HTTP server 5.1 OGRANIČITI OPCIJE NAD OS ROOT DIREKTORIJEM Apache Options direktiva dozvoljava posebna podešavanja opcija. Direktiva se koristi da bi se stvorila minimalna polisa opcija koja dozvoljava samo minimalne opcije na root direktorij nivou. Za posebne web stranice ili dijelove web stranica opcije se mogu omogućiti po potrebi kada je to poželjno. Ni jedna opcija ne bi trebala biti omogućena i vrijednost za Options direktivu treba biti None. 5.2 OGRANIČITI OPCIJE NAD WEB ROOT DIREKTORIJEM Apache Options direktiva na web root ili dokument root nivou mora biti ograničena na minimalne potrebne opcije. Vrijednost None je preporučena osim u slučaju pregovaranja po pitanju sadržaja u slučaju korištenja podrške za više jezika. Ostale opcije ne bi trebale biti omogućene. 5.3 REDUKOVATI OPCIJE NAD OTHER DIREKTORIJIMA Opcije za other direktorije i hostove trebaju biti ograničene na minimum potrebnih opcija. Preporučeno je podešavanje None ali neke od opcija poput Multiviews, ExecCGI, FollowSymLinks, SymLinksIfOwnerMatch, Includes, IncludesNOEXEC i Indexes mogu biti izuzete u nekim slučajevima. 12

5.4 UKLONITI DEFAULT HTML SADRŽAJ Apache instalacija uobičajeno ima sadržaj koji nije potreban ili prilakadan za produkcijske svrhe. Primarna funkcija ovog sadržaja jeste da pruži uobičajenu web stranicu, korisničke upute ili da demonstrira specijalne mogućnosti web servera. Sav nepotrebni sadržaj treba biti uklonjen. 5.5 UKLONITI STANDARDNI CGI SADRŽAJ, PRINTENV Apache instalacija ima standardni CGI sadržaj koji nije potreban ili prikladan za produkcijske svrhe. Primarna funkcija ovih programa jeste da demonstrira mogućnosti web servera. Jedan uobičajen dio CGI sadržaja za Apache instalaciju jeste skripta printenv. Ova skripta vraća sve varijable CGI okruženja što uključuje veliki broj detalja podešavanja servera i sistemskih putanja. 5.6 UKLONITI DEFAULT CGI SADRŽAJ, TEST-CGI Apache instalacija ima uobičajeni CGI sadržaj koji nije potreban ili prikladan za produkcijske svrhe. Primarna fukncija ovih programa jeste da demonstrira mogućnosti web servera. Jedan uobičajen dio CGI sadržaja za Apache instalaciju jeste skripta test-cgi. Ova skripta vraća sve varijable CGI okruženja što uključuje veliki broj detalja podešavanja servera. 5.7 OGRANIČITI HTTP REQUEST METODE Ograničiti neobavezne HTTP request metode Apache LimitExcept direktivom tako da web server prihvata i procesuira samo GET, HEAD, POST i OPTIONS HTTP request metode. Ove metode će omogućiti normalan rad web servera dok metode poput PUT i DELETE mogu modifikovati resurse na web serveru i ne smiju biti primjenljive. 5.8 ONEMOGUĆITI HTTP TRACE METODU Onemogućiti HTTP TRACE request metodu korištenjem TraceEnable direktive. 13

5.9 OGRANIČITI VERZIJE HTTP PROTOKOLA Odbaciti korištenje zastarjelih HTTP verzija korištenjem Apache modula mod_rewrite ili mod_security. Veliki broj malicioznih automatizovanih programa i skenera ranjivosti šalje abnormalne HTTP verzije da utvrdi način na koji će server odgovoriti. 5.10 OGRANIČITI PRISTUP.HT* FAJLOVIMA Onemogućiti pristup svih fajlovima koji počinju sa.ht korištenjem FilesMatch direktive. Uobičajeno ime fajla za pristup koji dozvoljava fajlovima u web direktorijima da prevaziđu Apache podešavanja jeste.htaccess. Ime fajlova za za web lozinke i group fajlove jeste.htpasswd i htgroup. Ni jedan od ovih dokumenata ne bi trebao biti u root-u ali u slučaju da jesu FilesMatch direktiva može biti korištena da se onemogući njihov pregled od strane web klijenata. 5.11 OGRANIČITI EKSTENZIJE FAJLOVA Onemogućiti pristup neprikladnim file ekstenzijama od kojih se ne očekuje da su legitiman dio web stranice korištenjem FilesMatch direktive. 5.12 ODBACITI ZAHTJEVE ZASNOVANE NA IP ADRESI Apache modul mod_rewrite se može korisiti za odbacivanje pristupa putem korištenja IP adrese. Većina normalnih zahtjeva preko browsera i automatizovanog software-a će koristiti host ime i sadržati ime u HTTP HOST hederu. Malware i automatski skeneri mreža koriste IP adrese sa obzirom da ih je lakše automatizovat. Onemogućavanjem IP web zahtjeva ovim automatizovanim tehnikama će biti onemogućen pristup. 5.13 OGRANIČITI LISTEN DIREKTIVU Apache Listen direktiva određuje IP adrese i portove na kojima će Apache web server slušati. Umjesto da sluša na svim IP adresama dostupnim na sistemu, specifična IP adresa ili adrese moraju biti određene. Listen direktiva bez određene IP adrese ne bi trebala biti korištena. 14

5.14 OGRANIČITI BROWSER FRAME OPCIJE Header direktiva dopušta server HTTP response hederima da budu dodani, zamjenjeni ili spojeni. Ovo omogućava embedovanje malicioznog sadržaja sa očekivanim web sadržajem. 6 LOGOVANJE, NADGLEDANJE I ODRŽAVANJE Za zaštitu web servera i infrastrukture su vitalne procedure logovanja, nadgledanja i održavanja. 6.1 KONFIGURISATI ERROR LOG LogLevel direktiva se koristi za konfiguraciju nivoa štetnosti error logova. Vrijednosti error logova debug, info, notice, warn, error, crit, alert, i emer. Preporučeni nivo jeste notice, tako da se loguje sve od emerg nivoa do notice nivoa. 6.2 KONFIGURISATI SYSLOG ZA ERROR LOGOVANJE ErrorLog direktiva bi trebala biti konfigurisana tako da šalje logove u syslog tako da Apache error logovi mogu biti procesuirani i nadgledani zajedno sa sistemskim logovima. 6.3 KONFIGURISATI ACCESS LOG LogFormat direktiva definiše format i informacije koje će biti uključene u access logove. Server access logovi se mogu koristit u svrhu otkrivanja resursa koji se najviše koriste, oni se mogu koristit za istraživanje neobičnog ponašanja koje može biti indikacija napada koji se sprema ili se već odigrao. 6.4 ROTACIJA I SPREMANJE LOGOVA Bitno je osigurati adekvatan prostor na disku na particiji koja će sadržati log fajlove. Treba imati na umu da je generisanje logova pod potencijalnom kontrolom malicioznih aktera i iz tog razloga ne treba Apache log fajlove čuvati na root particiji OS-a. Log fajlovi bi trebali biti 15

spremani na posebnoj particiji a bitno je čuvati bar 3 mjeseca logova dostupno za istragu u slučaju incidenta. 6.5 PRIMJENITI PATCH Primenjivati dostupne Apache zakrpe unutar jednog mjeseca od dostupnosti istih. 6.6 INSTALIRATI I OMOGUĆITI MODSECURITY ModSecurity je open source web application firewall (WAF) za nadgledanje, logovanje i kontrolu pristupa web aplikaciji. Omogućava set pravila koja se mogu koristiti za detekciju i prevenciju poznatih vrsta napada na web aplikaciju. 6.7 INSTALIRATI I OMOGUĆITI OWASP MODSECURITY CORE SET PRAVILA OWASP ModSecurity Core Rules Set (CRS) je set open source defanzivnih pravila za ModSecurity web application firewall (WAF) koja pružaju osnovnu zaštitu od mnogih poznatih vrsta napada. 7 KORISTITI SSL/TLS Preporuke se tiču podešavanja SSL/TLS aspekta Apache HTTP servera. 7.1 INSTALIRATI MOD_SSL I/ILI MOD_NSS Mod_ssl je standardni, najčešće korišteni način implementacije SSL/TLS-a za Apache. Mod_nss je Apache modul za implementaciju Network Security Services (NSS) software-a koji pored TLS-a sadrži veliki broj kriptografskih funkcija. 16

7.2 INSTALIRATI VALIDNI TRUSTED CERTIFIKAT Default SSL certifikat je self-signed i nije trusted. Instalirati validan certifikat potpisan od strane trusted certifikat authority tijela. Da bi bio validan certifikat mora biti potpisan od strane trusted authority tijela, ne smije isteći i mora imati ime koje se slaže sa host imenom web servera. 7.3 ZAŠTITIT PRIVATNE KLJUČEVE SERVERA Od kritične je važnosti da se zaštiti privatni key servera. Kao vid zaštite se koristi enkripcija, enkripcija podrazumjeva korištenje lozinke svaki put kada se server pokreće i lozinka zahtjeva svoju zaštitu. 7.4 ONEMOGUĆITI SLABE SSL PROTOKOLE Apache SSLProtocol direktiva određuje dozvoljene SSL i TLS protokole. SSLv2 i SSLv3 protokoli bi trebali biti onemogućeni a samo TLS protokol bi trebao biti omogućen. 7.5 OGRANIČITI SLABE SSL ŠIFRATE Onemogućiti slabo SSL šifrovanje korištenjem SSLCipherSuite-a i SSLHonorCipherOrder direktive. SSLCipherSuite određuje algoritme za šifrovanje koje su dozvoljeni u pregovaranju sa klijentom. SSLHonocCipherOrder određuje korištenje šifrovanja koje preferira server umjesto onog koji preferira klijent. 7.6 OGRANIČITI NESIGURNO SSL PONOVNO PREGOVARANJE Preporučeno je nadograđivanje poboljšanih SSL/TLS protokola i onemogućavanje nesigurnog ponovnog pregovaranja onemogućavanjem SSLInsecureRenegotiation direktive. 7.7 ONEMOGUĆITI SSL KOMPRESIJU SSLCompression direktiva kontroliše da li Apache koristi SSL kompresiju prilikom serviranja sadržaja preko HTTPS-a. Preporučeno je da SSLCompression direktiva bude ugašena. 17

7.8 ONEMOGUĆITI TLSV1.0 PROTOKOL TLSv1.0 protokol bi trebao biti onemogućen putem SSLProtocol direktiva, sa obzirom da je ranjiv na odljev informacija. 7.9 OMOGUĆITI OCSP STAPLING Apache SSLUseStapling direktiva i SSLStaplingCache direktiva su preporučene za omogućavanje OCSP Stapling-a od strane web servera. Online Certificate Status Protocol pruža trenutni revocation status X.509 cetrifikata i omogućava ukidanje validnosti potpisanog certifikata prije isteka njegovog roka. 7.10 OMOGUĆITI HTTP STRICT TRANSPORT SECURITY HTTP Strict Transport Securty (HSTS) je web server sigurnosna polisa koju određuje HTTP Server header. HSTS header deklariše da se samo HTTPS komunikacija treba koristiti a ne HTTP komunikacija. 8 ODLJEV INFORMACIJA Preporuke se odnose na umanjivanje izloženosti osjetljivih informacija 8.1 PODESITI SERVERTOKEN NA "PROD" Apache ServerTokens direktiva treba biti konfigurisana da pruža minimum informacija. Postavljanjem vrijednosti na Prod ili ProductOnly jedina pružena informacija o verziji će biti "Apache", bez detalja o modulima i instaliranoj verziji. 8.2 PODESITI SERVERSIGNATURE NA "OFF" Onemogućiti server potpis koji sadrži informacije u futeru dokumenata generisanih od strane severa. Ukoliko je ServerSignature direktiva prisutna u Apache podešavanjima njenu vrijednost staviti na Off. 18

8.3 ODLJEV INFORMACIJA PUTEM DEFAULT APACHE SADRŽAJA Da bi se odljev informacija spriječio potrebno je ukloniti standardni sadržaj sa web servera. Da bi se identifikovao tip web servera i verzije instaliranog software-a potencijalni napadači koriste skenove u potrazi za ikonama ili posebnim sadržajem specifičnim za tip i verziju servera. 9 DENIAL OF SERVICE Denial of Service (DoS) napadi imaju namjeru da umanje sposobnost servisa da procesuira i odgovori na zahtjeve. DoS napadi pokušavaju iscrpiti mrežne, procesorske, disk i memorijske resurse. Preporuke služe otpornosti na DoS napade. 9.1 PODESITI TIMEOUT NA 10 ILI MANJE TimeOut direktiva kontroliše maksimalno vrijeme u sekundama koje će Apache HTTP server čekati da se Input/Output poziv završi. Preporučeno je konfigurisanje TimeOut direktive na 10 ili manje. 9.2 PODESITI KEEP ALIVE NA "ON" KeepAlive direktiva kontroliše Apache podešavanje o korištenju iste TCP konekcije po klijentu da procesuira HTTP podzahtjeve od tog klijenta. Preporučeno je podešavanje KeepAlive direktive na On. 9.3 PODESITI MAXKEEPALIVEREQUESTS NA 100 ILI VIŠE MaxKeepAliveRequest direktiva ograničava broj dopuštenih zahtjeva po konekciji kada je KeepAlive uključen, ako je namješten na 0, broj zahtjeva če biti neograničen. Preporučeno je da MaxKeepAliveRequest direktiva bude namještena na 100 ili više. 19

9.4 PODESITI KEEPALIVETIMEOUT NA 15 ILI MANJE KeepAliveTimeout direktiva određuje broj sekundi koji će Apache čekati na podzahtjev prije nego zatvori konekciju koja se čuva živom. 9.5 PODESITI TIMEOUT LIMITS ZA REQUEST HEDERE RequestReadTimeout direktiva dozvoljava podešavanje limita za timeout klijentskih zahtjeva. Preporučena podešavanja su da maksimum timeout bude 40 sekundi ili manje. 9.6 PODESITI TIMEOUT LIMITS ZA REQUEST BODY RequestReadTimeout direktiva omogućava postavljane timeout vrijednosti na djelove zahtjeva. Preporučena podešavanja limita su da maksimum bude 20 sekundi ili manje. 10 OGRANIČAVANJE ZAHTJEVA Preporuke se odnose na ograničavanje maksimalne veličine parametara za zahtjeve. Preporučeno je testiranje svih postavi prije puštanja u produkciju. 10.1 PODESITI LIMITREQUESTLINE DIREKTIVU NA 512 ILI MANJE LimitRequestLine direktiva određuje maksimalni broj bajta koje će Apache čitati za svaku liniju HTTP zahtjeva. Preporučena postavka za LimitRequestLine jeste 512 ili manje. 10.2 OSIGURATI DA JE LIMITREQUESTFIELDS DIREKTIVA PODEŠENA NA 100 ILI MANJE LimitRequestFields direktiva određuje maksimalni limit na broj HTTP request headera po zahtjevu. Preporučena postavka za LimitRequestFields direktivu jeste 100 ili manje. 20

10.3 PODESITI LIMITREQUESTFIELDSIZE DIREKTIVU NA 1024 ILI MANJE LimitRequestFieldSize direktiva određuje maksimalnu veličinu HTTP request header polja. Preporučena postavka za LimitRequestFieldSize direktivu jeste 1024 ili manje. 10.4 PODESITI LIMITREQUESTBODY DIREKTIVU NA 102400 ILI MANJE LimitRequestBody direktiva određuje maksimalnu veličinu za HTTP request body. Preporučena postavka za LimitRequestBody direktivu jeste 102400 ili manje. 11 OMOGUĆITI SELINUX U SVRHU RESTRIKCIJE APACHE PROCESA Preporuke se odnose na osnovna podešavanja pri korištenju SELinux kernel modula. SELinux pruža dodatno ojačavanje bezbjednosti koje će spriječiti pristup resursima, fajlovima i direktorijima putem httpd procesa čak i u slučajevima u kojima bi aplikacijska ili serverska ranjivost mogla pružiti nedozvoljeni pristup. AppArmor i SELinux sadrže slične mogućnosti i podešavanja ali ih nije preporučeno koristiti na istom sistemu. 11.1 OMOGUĆITI SELINUX U ENFORCING MODU SELinux (Security-Enhanced Linux) je Linux kernel sigurnosni modul. SELinux podešavanja pristupa pružaju mnogo sigurniji model koji se koristi za implementiranje deny-by-default politike koja će dopuštati samo ono što je eksplicitno dopušteno. 11.2 POKRENUT APACHE PROCESE U HTTPD_T CONFINED KONTEKSTU SELinux sadrži specifične polise koje se mogu podešavati tako da dodjele Apache HTTPD serveru minimalne privilegije zbog kojih bi imao minimalni pristup specifičnim direktorijima, fajlovima i portovima. Adekvatna implementacija SELinux-a može spriječiti eksploataciju ranjivosti u web aplikaciji primjenom dodatnih restrikcija. 21

11.3 OSIGURATI DA HTTPD_T NIJE U PERMISSIVE MODU Pored podešavanja cjelokupnog SELinux postavki u permissive mod, moguće je postavljati individualne tipove procesa poput httpd_t u permissive mod. Permissive mod neće spriječiti bilo kakav pristup ili djelovanja, on će sve akcije koje bi bile spriječene logovati. 11.4 OSIGURATI DA SU SAMO POTREBNE SELINUX BOOLEAN VRJEDNOSTI OMOGUĆENE Omogućavanje samo potrebnih boolean vrijednosti vezanih uz HTTPD pruža zaštitu koja će odbiti sve akcije koje se ne koriste ili ne očekuju. 12 OMOGUĆITI APPARMOR U SVRHU RESTRIKCIJE APACHE PROCESA Preporuke se odnose na osnovna podešavanja pri korištenju AppArmor kernel modula. AppArmor pruža dodatno ojačavanje bezbjednosti koje će spriječiti pristup resursima, fajlovima i direktorijima putem apache2 procesa čak i u slučajevima u kojima bi aplikacijska ili serverska ranjivost mogla pružiti nedozvoljeni pristup. AppArmor i SELinux sadrže slične mogućnosti i podešavanja ali ih nije preporučeno koristiti na istom sistemu. 12.1 OMOGUĆITI APPARMOR FRAMEWORK AppArmor je Linux kernel sigurnosni modul koji pruža obavezne kontrole pristupa sa bezbjednosnim polisama. AppArmor može prisiliti pravila na programe za pristup fajlovima i mrežnoj konekciji i ograničiti akcije u skladu sa definisanim politikama. 12.2 PODESITI APACHE APPARMOR PROFIL AppArmor sadrži specifične polise koje se mogu podešavati tako da dodjele Apache HTTPD serveru minimalne privilegije zbog kojih bi imao minimalni pristup specifičnim direktorijima, fajlovima i portovima. Adekvatna implementacija AppArmor-a može sprječiti eksploataciju ranjivosti u web aplikaciji primjenom dodatnih restrikcija. 22

12.3 OSIGURATI DA APACHE APPARMOR PROFIL NIJE U ENFORCE MODU AppArmor profili mogu biti u 3 moda, disabled, complain ili enforce. U complain modu sva narušavanja kontrola pristupa se loguju ali se restrikcije ne primjenjuju. Pri promjeni moda profila preporučuje se restartovanje Apache servera sa obzirom da procesi u toku neće biti zahvaćeni polisom. 23