11
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SEMINAR IZ PREDMETA RAČUNALNA FORENZIKA Mjere za povećanje sigurnosti javno dostupnih Linux poslužitelja Željko Baranek Zagreb, siječanj 2018.

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I …nevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 2018-01-25 · do 2030. godine kada se očekuje da će superračunala

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I …nevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 2018-01-25 · do 2030. godine kada se očekuje da će superračunala

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

SEMINAR IZ PREDMETA RAČUNALNA FORENZIKA

Mjere za povećanje sigurnosti javno dostupnih Linux poslužitelja

Željko Baranek

Zagreb, siječanj 2018.

Page 2: SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I …nevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 2018-01-25 · do 2030. godine kada se očekuje da će superračunala

Sadržaj

Uvod ........................................................................................................................................... 3

Definicija sigurnosti sustava ................................................................................................... 3

Sigurnost udaljenog pristupa ljusci operacijskog sustava .......................................................... 4

Problemi autentifikacije lozinkom.......................................................................................... 4

Promjena vrata za SSH poslužitelj .......................................................................................... 5

Korištenje asimetrične kriptografije ....................................................................................... 5

Odabir algoritma i veličine ključa asimetrične kriptografije .................................................. 6

Onemogućavanje prijave korijenskom korisniku ................................................................... 6

Prava pristupa ............................................................................................................................ 7

Blokiranje pristupa nakon određenog broja neuspjelih pokušaja prijava ............................. 7

Dodavanje korisnika s ograničenim pravima ......................................................................... 7

Redovita ažuriranja .................................................................................................................... 8

Sigurnosna stijena (firewall) ....................................................................................................... 9

Zaključak ................................................................................................................................... 10

Reference ................................................................................................................................. 11

Page 3: SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I …nevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 2018-01-25 · do 2030. godine kada se očekuje da će superračunala

Uvod

Početak 21. stoljeća obilježen je prožimanjem infrastrukture Interneta diljem svijeta i usluga

koje se pružaju tim putem. Osim mrežne infrastrukture, za pružanje usluga potrebna je i

računalna infrastruktura u vidu podatkovnih središta – mjesta koja udomljavaju računalne i

ostale resurse. Cijene zakupa takvih resursa osjetno je pala, a znanje koje je potrebno za

njihovo postavljanje i upravljanje postalo je široko dostupno svakome s pristupom Internetu.

Kao posljedica se pojavljuje sve veći broj poslužitelja kojima upravljaju pojedinci ili manja

društva čija primarna djelatnost nije održavanje tih sustava. Dodatno, razina primjenjivosti,

kvalitete i održavanosti besplatne programske potpore otvorenog koda je u porastu i postaje

čest odabir u odnosu na komercijalna rješenja. Razvoj programske potpore postaje lakši, brži

i jeftiniji dostupnošću mnogih besplatnih, gotovih komponenti i razvojnih okvira pa time i

razvoj web-aplikacija i ostalih usluga koje se pružaju putem Interneta.

Svi prethodno navedeni faktori dovode do velikog broja poslužiteljskih računala koji pružaju

javno dostupne usluge putem Interneta. Jednostavnost i brzina korištenja takvih usluga u

odnosu na neinformatizirane klasične načine ne dolazi bez troška – zaštita sigurnosti sustava

usložnjava njihov razvoj, održavanje i konačnu cijenu takvoga sustava jer zahtijeva dodatna

ekspertna znanja, iskustva i procedure. Gleda li se aspekt sigurnosti operacijskog sustava i

web-poslužitelja, moguće je izdvojiti mjere koje je općenito poželjno poduzeti da bi se

povećala razina sigurnosti bilo kojeg sustava kao cjeline.

U radu se navode jednostavne i preporučene mjere koje treba poduzeti prilikom početnog

postavljanja operacijskog sustava. Pretpostavlja se korištenje Linux operacijskog sustava,

točnije, popularne Ubuntu distribucije koja se temelji na distribuciji Debian. Preporučene

mjere se može izvesti na veoma slične načine, ali ponekad uporabom drugih sličnih alata i

naredbi, za bilo koju distribuciju Linux operacijskog sustava.

Definicija sigurnosti sustava

Da bi se sustav smatrao sigurnim, podrazumijeva zadovoljenje osnovnih sigurnosnih zahtjeva:

• Povjerljivost – pristup podacima dopušten samo ovlaštenim korisnicima

• Cjelovitost – izmjena podataka po zadanim pravilima i samo ovlaštenim korisnicima

• Raspoloživost – dostupnost podataka unatoč nepredviđenim događajima

Postoje i dodatni sigurnosti zahtjevi koji proizlaze iz osnovnih:

• Autentifikacija – dokazivanje da se doista radi o korisniku za kojeg se predstavlja

• Neporecivost – nije moguće prikriti tragove nastale obavljanjem radnji u sustavu

• Kontrola pristupa – granulacija prava korisnika u sustavu

[1]

Page 4: SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I …nevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 2018-01-25 · do 2030. godine kada se očekuje da će superračunala

Sigurnost udaljenog pristupa ljusci operacijskog sustava

SSH (Secure Shell) je aplikacijski protokol koji nudi pristup ljusci (primjerice, bash) operacijskog

sustava udaljenog računala. Može ga se smatrati nasljednikom starijeg protokola TELNET koji

ima istu svrhu, ali za razliku od protokola SSH, ne primjenjuje nikakvo šifriranje za prijenos

podataka pa se narušava povjerljivost tih podataka. Zbog toga se TELNET uopće ne bi trebao

koristiti, već je SSH alternativa. Pristup i upravljanje udaljenim računalima, posebice

poslužiteljima, uobičajeno se vrši udaljeno putem ljuske, obzirom da je to za naprednije

korisnike učinkovitije sučelje od grafičkog, te često fizički pristup poslužitelju nije dostupan ili

jeftin. Napadačeva uspješna prijava u ljusku operacijskog sustava ne ostavlja dobre izglede za

daljnju sigurnost sustava – potencijalno su narušeni svi sigurnosni zahtjevi jer napadač može

izvršavati proizvoljne naredbe.

SSH daemon program, odnosno SSH poslužitelj, može se konfigurirati. Njegova konfiguracija

nalazi se u tekstualnoj datoteci /etc/ssh/sshd_config.

Problemi autentifikacije lozinkom

Nakon instalacije OS-a na poslužitelju, inicijalno je uobičajeno da je omogućen SSH pristup uz

zadani način autentifikacije lozinkom. U konfiguracijskoj datoteci to je zadano sljedećim

retkom:

PasswordAuthentication yes

Autentifikacija lozinkom predstavlja sigurnosni rizik jer računalo s javnom IP adresom i

otvorenim vratima 22 za SSH protokol odmah postaje meta napada – najčešće automatiziranih

skripti koje pokušavaju upasti u sustav primjenom grube sile (isprobavanjem lozinki).

Takvi napadi, temeljem IP adresa poslužitelja s kojih su upućeni, u pravilu dolaze iz zemalja sa

slabijom provedbom legislative u području kiberkriminala (npr. Kina, Rusija, Brazil). Za takve

pokušaje napada prisutan je žargonski naziv Script Kiddie. Skripte u slučaju uspješnog prijave

mogu instalirati malware, računalo učiniti dijelom botnet mreže, dojaviti autoru pristupne

podatke ili pokrenuti bilo kakav proizvoljan kôd. [2]

Navedeni napadi ne predstavljaju ozbiljnu prijetnju u slučaju primjene sljedeće navedenih

mjera.

Page 5: SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I …nevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 2018-01-25 · do 2030. godine kada se očekuje da će superračunala

Promjena vrata za SSH poslužitelj

Vrata 22, po organizaciji IANA, službeno su namijenjena za korištenje protokola SSH. Tu

činjenicu iskorištavaju prethodno spomenute skripte te bilo tko može provesti port scanning

(primjerice alatom NMAP).

Vrata na kojima će SSH daemon raditi može se podesiti što je u konfiguracijskoj datoteci već

prva stavka:

Port 22

Promjenom na vrata na neku veću vrijednost, većina automatiziranih skripti odustaje daljnje

pokušaje napada. Na taj se način barem smanjuje broj zapisa u auth.log datoteci, što je

vjerojatno i jedina prednost ove mjere.

Važno je voditi računa o sigurnosnim stijenama kojima prolazi promet kada želimo uspostaviti

SSH vezu. On je najčešće podešen da propušta promet na vratima 22. Ako promijenimo vrata

na neku drugu vrijednost, postoji opasnost od nemogućnosti spajanja na SSH iz određenih

mreža, što se s aspekta dostupnosti ne smatra sigurnosnim sustavom. Nadalje, ova mjera

nikako nije dovoljna i jedina mjera na kojoj treba stati jer se naizgled sigurnost postiže načelom

„Security through obscurity“ koje ne bi trebalo biti jedini način zaštite, ako i uopće jedan od

načina. [3]

Korištenje asimetrične kriptografije

Asimetrična kriptografija ili kriptografija javnog ključa (Public-key cryptography, PKI) može se

koristiti kao način autentifikacije tako da se na poslužitelj za pojedinog korisnika sustava

postavi javni ključ kao jedan redak u datoteci:

/home/user/.ssh/authorized_keys

S druge strane, SSH klijent (primjerice, PuTTY) kojim se korisnik spaja na poslužitelj, posjeduje

privatni ključ. Privatni ključ može dodatno biti zaštićen lozinkom (passphrase) koju korisnik iz

SSH klijenta mora unijeti da bi ga klijent mogao poslati poslužitelj u ispravnom obliku. Ako se

poslani privatni ključ i javni ključ na poslužitelju podudaraju (čine par ključeva asimetričnog

kriptografskog sustava), autentifikacija je uspješna.

Ovim načinom se složenost napada grubom silom usložnjava do te mjere da je neisplativ za

prosječnog korisnika. Ipak, pojedini algoritmi asimetrične kriptografije i veličine ključeva se

smatraju manje sigurnima.

Po uspješnom podešavanju načina autentifikacije asimetričnom kriptografijom, smisleno je

onemogućeni autentifikaciju lozinkom što se može postići promjenom retka u datoteci

/etc/ssh/sshd_config na

PasswordAuthentication no

Page 6: SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I …nevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 2018-01-25 · do 2030. godine kada se očekuje da će superračunala

Odabir algoritma i veličine ključa asimetrične kriptografije

Postoji nekoliko algoritama i veličina ključeva koje oni podržavaju. Najčešći za SSH su:

• DSA (Digital Signature Algorithm)

• RSA (Rivest–Shamir–Adleman)

• ECDSA (Elliptic Curve Digital Signature Algorithm)

[4]

RSA ključevi od 1024 bita ili manje smatraju se nesigurnima jer već današnja superračunala

mogu uporabom grube sile u razumnom vremenu probiti takvu zaštitu, odnosno provesti

potrebu faktorizaciju. Veličine RSA ključa od 2014 bita trenutno se smatra sigurnom, ali samo

do 2030. godine kada se očekuje da će superračunala u razumnom vremenu i njih moći

probijati. [5]

ECDSA je varijanta DSA algoritma i po performansama i veličini ključa je to trenutno

najisplativiji algoritam. Drugim riječima, za iste veličine ključeva za DSA ili RSA algoritam,

mnogo je teže probiti ECDSA s tom veličinom ključa. Postoje ranjivosti ako se radi o

neispravnoj implementaciji koje mogu smanjiti složenost probijanja. Ipak, njegova ispravna

implementacija trenutno nema poznatih ranjivosti pa se preporuča njegova primjena. [6]

Onemogućavanje prijave korijenskom korisniku

Korisnik root spada u grupu superuser, ima sve ovlasti u sustavu i prijava njegovim računom

putem SSH protokola ne bi trebala biti izravno omogućena. Ako postoji potreba za

izvršavanjem radnji koje zahtijevaju povećanje ovlasti u sustavu, preporuča korištenje sudo

naredbe za izvršavanje pod grupom superuser. Svaka tako izvršena naredba se zapisuje i u

auth.log dnevnik.

U prethodno spomenutoj SSH daemon konfiguracijskoj datoteci potrebno je osigurati

postojanje sljedećeg retka

PermitRootLogin no

Page 7: SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I …nevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 2018-01-25 · do 2030. godine kada se očekuje da će superračunala

Prava pristupa

Blokiranje pristupa nakon određenog broja neuspjelih pokušaja prijava

Nastavno na sigurnost udaljenog pristupa ljusci operacijskog sustava, Postoje alati koji mogu

pratiti svaki pokušaj prijave iz datoteke auth.log i temeljem nje uporabom sigurnosne

stijene onemogućiti daljnje pokušaje prijava s te IP adrese. Jedan takav alat je Fail2Ban. [7]

Općenita konfiguracijska datoteka tog alata jest /etc/fail2ban/fail2ban.conf u kojoj

se, između ostalog, podešava gdje zapisivati dnevnik blokiranja (koja je IP adresa, kada i zašto

bila blokirana i odblokirana).

U drugoj konfiguracijskoj datoteci /etc/fail2ban/jail.conf podešavaju se primjerice:

• Vremenski interval praćenja neuspjelih pokušaja prijave

• Koliko neuspjelih prijava je dopušteno u tom intervalu

• Na koliko dugo se blokira IP adresa nakon dosegnutog broja u intervalu

• …

Fail2Ban alat, osim za praćenje SSH prijava iz auth.log dnevnika, može pratiti i mnoge ostale

dnevnike različitih skupova aplikacija. Neke od njih su:

• Web-mail (Horde, Roundcube, SquirrelMail)

• Web CMS sustavi (Drupal)

• Web-poslužitelje (Apache, Nginx, Squid)

• FTP poslužitelje (ProFTPd, PureFTPd)

• Mail poslužitelje (CourierSMTP, Postfix, Sendmail, Dovecot)

• Baze podataka (MySQL)

Obzirom da prethodno navedene aplikacije, za razliku od SSH protokola, nisu u mogućnosti

koristiti autentifikaciju primjenom asimetrične kriptografije, nego isključivo lozinkom, za njih

ima još više smisla koristiti ovaj alat jer je izvjesnost pokušaja napada grubom silom velika.

Dodavanje korisnika s ograničenim pravima

Iz dodatnih sigurnosnih zahtjeva – kontrola pristupa – proizlazi potreba za ovom radnjom.

Poželjno je precizno odrediti prava, odnosno radnje koje su dostupne nad direktorijima

svakom korisniku koji će pokretati određeni program. Korisniku pod kojim se program pokreće

se dodjeljuju prava dovoljna da program može funkcionirati, ali ne i viša nego što su programu

potrebna. Na taj se način osigurava da napadač koji iskorištavanjem ranjivosti unutar

programa primjenom shellcode-a (kôd koji ubacuje u aplikaciju s ciljem njegovog izvršavanja

izravno u ljusci operacijskog sustava), taj kôd bude izvršen sa što nižim pravima. Tako ubačen

kôd može napraviti mnogo manju štetu ako se ne izvršava pod superuser pravima.

Page 8: SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I …nevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 2018-01-25 · do 2030. godine kada se očekuje da će superračunala

Dodavanje korisnika vrši se naredbom adduser example_user, dodavanje korisnika u

grupu adduser example_user example_group. Naredba chown omogućava promjene

vlasništva nad datotekama i direktorijima. [8]

Redovita ažuriranja

Svakim danom otkivaju se ranjivosti bilo koje vrste programe potpore: operacijskog sustava,

korisničkih aplikacija, ali i u implementacijama prethodno opisanih kriptografskih algoritama.

Kada se sigurnosni propusti otkriju, u pravilu se brzo pojave ažuriranja i zakrpe koje u novoj

inačici više ne pate od otkrivene ranjivosti.

Otkrivene ranjivosti se objavljuju u pod nazivom CVE (Common Vulnerabilities and Exposures)

te njihovom oznakom, najčešće godinom i rednim brojem. Postoje javno dostupne baze

podataka CVE-ova [9] po kategorijama (OS, tehnologija, itd.) na koje se može pretplatiti, što je

preporučeno jer se na taj način brzo može saznati o ranjivostima sustava i primijeniti

odgovarajuća zakrpa ili dodatne radnje ako je to potrebno.

Ubuntu pruža mogućnost automatskih nenadziranih ažuriranja operacijskog sustava pod

nazivom Unattended Upgrades ili Automatic Security Updates korištenjem apt upravitelja

paketa. Moguće je podesiti na koje se pakete primjenjuje. Uobičajeno se postavlja automatsko

ažuriranje samo za sigurnosne nadogradnje obzirom da novije inačice programa mogu biti

nekompatibilne s ostalim dijelovima sustava ili drugih programa s kojima komuniciraju pa bi

automatsko ažuriranje moglo prouzročiti prestanak ispravnog rada sustava kao cjeline. [10]

Usprkos automatskim ažuriranjima, ponekad je potrebno ponovno pokretanje sustava

(restart) da bi određena ažuriranja mogla biti primijenjena. Stoga je ipak povremeno potrebno

i ručno pratiti stanja ažuriranih paketa.

Page 9: SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I …nevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 2018-01-25 · do 2030. godine kada se očekuje da će superračunala

Sigurnosna stijena (firewall)

Sigurnosna stijena služi filtriranju prometa definiranjem parametara veza za dopuštanje ili

zabranu. Primjeri parametara koje se može podešavati su:

• Izvorišne i odredišne IP adrese

• Izvorišna i odredišna vrata (ili pretpostavljeni aplikacijski protokol koji koristi ta vrata)

• Transportni protokol (TCP ili UDP)

Postoje dva pristupa prilikom podešavanja sigurnosne stijene: whitelisting i blacklisting. U

prvome popisujemo parametre veza koje želimo dopuštati, a sve ostale zabranjujemo. U

drugom popisujemo parametre veza koje ne želimo dopustiti, a sve ostale dopuštamo. Pristupi

se mogu kombinirati gdje se prioritet primijenjenog određuje redoslijedom definiranja ili

prioritetnim brojem.

Preporučeno je podesiti da sigurnosna stijena zabranjuje sve veze koje nisu dopuštene,

odnosno whitelisting pristup. U pravilu se uspostavljanje veze klijenta prema poslužitelju

omogućava na vratima iza kojih doista postoji program. S druge strane, također je uputno

dopuštati uspostavljanje veze sa strane poslužitelja prema vanjskoj mreži samo na vratima i

prema adresama koja su opravdana i očekivana za pojedini program. [11]

Page 10: SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I …nevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 2018-01-25 · do 2030. godine kada se očekuje da će superračunala

Zaključak

Sigurnost sustava definirana je njegovom dostupnošću i cjelovitošću te povjerljivošću

podataka koje obrađuje. Očuvanje određenih zahtjeva ostvaruje se autentifikacijom koja se

često provodi lozinkom. Taj način autentifikacije podložan je pokušajima napada primjenom

grube sile. Za dijelove sustava koji mogu podržati autentifikaciju asimetričnom kriptografijom,

poželjno je uvesti taj način te onemogućiti autentifikaciju lozinkom. Prilikom odabira i

generiranja para privatnog i javnog ključa treba obratiti pažnju na algoritam i za njega

prikladnu veličinu ključa. Za dijelove sustava gdje je jedini podržan način autentifikacije

lozinka, uputno je primijeniti alate koji će onemogućiti daljnje pokušaje autentifikacije

korisniku nakon što se premaši njihov neuspješan broj u nekom vremenskom intervalu.

Programe ne treba izvršavati pod korisnikom s ovlastima višima nego što to program zahtijeva.

Uputno je stvarati korisnike i grupe korisnika kojima se dodjeljuju ograničena prava nad

sustavom te obavljati radnje i izvršavati programe pod njima, a ne kao privilegirani korisnik.

Ažuriranja sustava potrebno je redovito vršiti, posebice sigurnosna ažuriranja, koja je moguće

automatizirati da se vrše i bez nadzora. Postavke sigurnosne stijene trebaju biti takve da

onemogućavaju sve veze koje nisu eksplicitno dopuštene, a dopuštene veze treba popisati po

potrebama programa koji ih žele ostvarivati.

Page 11: SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I …nevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 2018-01-25 · do 2030. godine kada se očekuje da će superračunala

Reference

[1] F. ZTEL, »Prikaznice iz predmeta "Sigurnost u Internetu",« 2017. [Mrežno].

[2] S. ". v. Broucke, »Running A SSH Honeypot With Kippo: Let’s Catch Some Script Kiddies,« 10 05 2011. [Mrežno]. Available: http://blog.macuyiko.com/post/2011/running-a-ssh-honeypot-with-kippo-lets-catch-some-script-kiddies.html. [Pokušaj pristupa 1 2018].

[3] Wikipedia, »Security through obscurity,« [Mrežno]. Available: https://en.wikipedia.org/wiki/Security_through_obscurity#Criticism. [Pokušaj pristupa 01 2018].

[4] rakhesh.com, »Notes on Cryptography Ciphers,« [Mrežno]. Available: https://rakhesh.com/infrastructure/notes-on-cryptography-ciphers-rsa-dsa-aes-rc4-ecc-ecdsa-sha-and-so-on/. [Pokušaj pristupa 01 2018].

[5] R. Laboratories, »TWIRL and RSA Key Size,« [Mrežno]. Available: https://web.archive.org/web/20170417095741/https://www.emc.com/emc-plus/rsa-labs/historical/twirl-and-rsa-key-size.htm. [Pokušaj pristupa 01 2018].

[6] S. Levy, »Performance and Security of ECDSA,« [Mrežno]. Available: https://koclab.cs.ucsb.edu/teaching/ecc/project/2015Projects/Levy.pdf.

[7] »Fail2Ban,« [Mrežno]. Available: https://www.fail2ban.org/wiki/index.php/Main_Page.

[8] C. Hope, »Linux chown command,« [Mrežno]. Available: https://www.computerhope.com/unix/uchown.htm. [Pokušaj pristupa 01 2018].

[9] MITRE, » Common Vulnerabilities and Exposures,« [Mrežno]. Available: https://cve.mitre.org/.

[10] Canonical, »Ubuntu AutomaticSecurityUpdates,« [Mrežno]. Available: https://help.ubuntu.com/community/AutomaticSecurityUpdates. [Pokušaj pristupa 01 2018].

[11] Rackspace, »Best practices for firewall rules configuration,« [Mrežno]. Available: https://support.rackspace.com/how-to/best-practices-for-firewall-rules-configuration/. [Pokušaj pristupa 1 2018].