Professional Documents
Culture Documents
Lekcija 11: IT381 - Zaštita I Bezbednost Informacija
Lekcija 11: IT381 - Zaštita I Bezbednost Informacija
Lekcija 11
BEZBEDNOST OS (LINUX)
Igor Franc
PRIRUČNIK ZA STUDENTE
Copyright © 2010 – UNIVERZITET METROPOLITAN, Beograd. Sva prava
zadržana. Bez prethodne pismene dozvole od strane Univerziteta
METROPOLITAN zabranjena je reprodukcija, transfer, distribucija ili
memorisanje nekog dela ili čitavih sadržaja ovog dokumenta.,
kopiranjem, snimanjem, elektronskim putem, skeniranjem ili na bilo koji
drugi način.
Lekcija 11
BEZBEDNOST OS (LINUX)
Bezbednost OS (Linux)
Poglavlje 1: Linux bezbednost
Poglavlje 2: Bezbednost sistema datoteka
Poglavlje 3: Linux/UNIX dozvole
Poglavlje 4: Linux ranjivost
Poglavlje 5: Ojačanje Linux sistema
Poglavlje 6: Bezbednost aplikacija
Poglavlje 7: SELinux
Poglavlje 8: Vežba 11
Poglavlje 9: Domaći zadatak 11
Zaključak
Lekcija 11: Bezbednost OS (Linux)
UVOD
• Linux Bezbednost
• Bezbednost sistema datoteka
• Linux/UNIX dozvole
• Linux ranjivost
• Ojačanje Linux sistema
• Bezbednost aplikacija
• SELinux
• IP tables
4
Poglavlje 1: Linux bezbednost
LINUX BEZBEDNOST
5
Lekcija 11: Bezbednost OS (Linux)
U Linux DAC sistemu, postoje korisnici, od kojih svaki pripada jednoj ili
više grupa; i postoje takođe, objekti (objects): datoteke i direktorijumi.
Korisnici čitaju, pišu i izvršavaju objekte, na osnovu dozvola objekata
(engl. objects’ permissions). Svaki objekat ima tri skupa dozvola:
korisnik-vlasnik objekta, grupni vlasnik, i "drugi" (svi ostali). Ove dozvole
sprovodi Linux kernel-a, "mozak" operativnog sistema, Slika 1.
Vlasnik objekta može postaviti ili promeniti dozvole objekta. Ovde leži
prava slabost Linux DAC modela: nalog superkorisnik (engl. superuser),
pod nazivom "root", ima mogućnost da promeni vlasništvo i dozvole za
sve objekte u sistemu.
6
Poglavlje 1: Linux bezbednost
7
Lekcija 11: Bezbednost OS (Linux)
KORISNICI I GRUPE
8
Poglavlje 2: Bezbednost sistema datoteka
DATOTEKA /ETC/PASSWD
root:$1$sumys0Ch$aO0lLX5MF6U/85b3s5raD/:0:0:root:/root:/bin/bash
bin:*:1:1:bin:/bin:
daemon:*:2:2:daemon:/sbin:
ftp:*:14:50:FTP User:/home/ftp:
nobody:*:99:99:Nobody:/:
alice:$1$hwqqWPmr$TNL0UManaI/v0coS6yvM21:501:501:Alice T.
User:/home/users/alice:/bin/bash
fred:$1$0UDutmr8$TeFJcr9xiaMILQmzU9LW.0:502:502:Fred
Smith:/home/users/fred:/bin/bash
susan:$1$UWT1L5r7$7iMEpzcNd7mVM6CcO0IUR/:503:503:Susan
Jones:/home/users/susan:/bin/bash
9
Lekcija 11: Bezbednost OS (Linux)
DATOTEKA /ETC/GROUP
daemon:x:2:root,bin
finance:x:25:alice,fred,susan
hr:x:37:bob,mary
ROOT NALOG
10
Poglavlje 2: Bezbednost sistema datoteka
11
Lekcija 11: Bezbednost OS (Linux)
Svaka datoteka na UNIX sistemu (koja, kao što smo videli, znači
"praktično svaka stvar na UNIX sistemu"), ima dva vlasnika: korisnik
i grupa, svaki sa svojim skupom vlasničkih dozvola koje opisuju šta
korisnik ili grupa može da radi sa datotekom (čitati, pisati ili brisati i
izvršiti). Treći set dozvola odnosi se na druge, to jest, korisničke naloge
koji nisu vlasnici datoteke ili spadaju u grupu koja nije njen vlasnik.
Svaka datoteka u Linux ili UNIX sistemu datoteka ima skup dozvola
koje opisuje ko može da pristupi datoteci i kako može da joj pristupi.
Svaka datoteka ima vlasnika (jedan nalog povezan sa datotekom) i
grupu vlasnika (jedna grupa povezana sa datotekom). Vlasnik datoteke
(zajedno sa root) može postaviti i promeniti dozvole datoteci.
12
Poglavlje 3: Linux/UNIX dozvole
DOZVOLE DIREKTORIJUMA
13
Lekcija 11: Bezbednost OS (Linux)
SETUID I SETGID
14
Poglavlje 3: Linux/UNIX dozvole
15
Lekcija 11: Bezbednost OS (Linux)
16
Poglavlje 4: Linux ranjivost
LINUX RANJIVOST
• prekoračenje bafera
• problemi sinhronizacije (race)
• DoS napad
• ranjivost Web aplikacija
• napad rootkit.
Kao što je objašnjeno ranije, bilo koji program čija je dozvola "setuid" bit
setovana će se izvršavati sa privilegijama korisnika koji je njegov vlasnik,
a ne onima koji ga izvršavaju. Setuid root program je vlasništvo root
programa sa svojim setuid bit skupom, koji je program koji se izvodi kao
root, bez obzira ko ga izvršava.
17
Lekcija 11: Bezbednost OS (Linux)
Rizik je ovde ako setuid root program može da se iskoristiti ili zloupotrebi
na neki način (npr. preko ranjivosti prepune bafera ili uslova
sinhronizacije (race), zatim da neprivilegovan korisnik može na drugi
način koristit taj program za neovlašćeno upravljanje root dozvolama,
uključujući i eventualno otvaranja root shell (izvršavanje sesije u
komandnoj liniji sa root dozvolama).
WEB RANJIVOST
Dok veb aplikacija napisana u skript jezicima kao što su PHP, Perl, Java ne
moraju da budu sklone klasičnom napadu prepune bafera (zahvaljujući
dodatnim slojevima apstrakcije koji su predstavljeni njihovim jezičkim
tumačenjem), oni su ipak skloni sličnim zloupotrebama, lošim
upravljanjem ulazom, uključujući cross-site scripting, SQL ubačen kod, i
druge propuste.
ROOTKITS
18
Poglavlje 4: Linux ranjivost
19
Lekcija 11: Bezbednost OS (Linux)
OS INSTALACIJA
PATCH MANAGEMENT
20
Poglavlje 5: Ojačanje Linux sistema
21
Lekcija 11: Bezbednost OS (Linux)
ANTIVIRUS SOFTVER
22
Poglavlje 5: Ojačanje Linux sistema
23
Lekcija 11: Bezbednost OS (Linux)
BEZBEDNOST APLIKACIJA
24
Poglavlje 6: Bezbednost aplikacija
MODULARNOST
25
Lekcija 11: Bezbednost OS (Linux)
Popularni Apache veb server nekad monolitni, ali sada podržava module
koda koji se mogu učitati pri pokretanju kada je potrebno; to smanjuje
Apache memoriju za footprint, i smanjuje pretnje koje predstavljaju
ranjivosti na nekorišćenim funkcijama površina.
ŠIFROVANJE
26
Poglavlje 6: Bezbednost aplikacija
27
Lekcija 11: Bezbednost OS (Linux)
Poglavlje 7 SELinux
SELINUX
Objekti koji dobiju akciju, međutim, različiti su. Dok su u Linux DAC
modelu, objekti uvek datoteke i direktorijumi, u SELinux objekti uključuju
ne samo datoteke i direktorijume, već i druge procese, kao i razne
resurse sistema u oba kernel i korisničkom prostoru. SELinux razlikuje
različite "klase" (kategorije) objekata, uključujući: dir, socket, tcp_socket,
unix_stream_socket, filesystem, node, xserver, cursor. Svaka klasa
objekta ima određeni skup mogućih dozvola (akcija). Ovo ima smisla;
postoje stvari koje možete raditi u direktorijumu, na primer, da se
jednostavno ne primenjuje, recimo, X Servers.
SIGURNOSNI SADRŽAJ
28
Poglavlje 7: SELinux
Uloga je kao grupa u Linux DAC sistemu, tako da ulogu može preuzeti
bilo koji od brojnih ovlašćenih korisnika, od kojih svaki može biti ovlašćen
da preuzme različite uloge u različitim vremenima. Razlika je u tome da
u SELinux-u, korisnik može preuzeti samo jednu ulogu u vremenu, i može
promeniti ulogu samo ako i kada je ovlašćen da to uradi.
29
Lekcija 11: Bezbednost OS (Linux)
30
Poglavlje 7: SELinux
31
Lekcija 11: Bezbednost OS (Linux)
Poglavlje 8 Vežba 11
IPTABLES
Upoznavanje sa IPTables
pouzdanosti
inspection). To znači da zaštitni zid prati svaku vezu koja prolazi kroz
njega, a u nekim slučajevima će pregledati sadržaj tokova podataka u
namjeri da predvidi sljedeću akciju kod određenih protokola. To je važna
karakteristika u prilog aktivnog FTP i DNS, kao i mnogih drugih mrežnih
usluga.
32
Poglavlje 8: Vežba 11
• Mogućnost blokiranja nekih vrsta napada kao što su DoS (engl. Denial
of Service)
LINKOVI
http://www.linuxhomenetworking.com/wiki/index.php/
Quick_HOWTO_:_Ch14_:_Linux_Firewalls_Using_iptables#Figure_14-1_Iptables_Pac
https://www.thomas-krenn.com/en/wiki/
Saving_Iptables_Firewall_Rules_Permanently
http://thejimmahknows.com/nat-dynamic-nat-nat-
overloadingmasquerade-with-iptables/
http://www.iptables.info/en/structure-of-iptables.html#MANGLETABLE
https://www.digitalocean.com/community/questions/updating-iptables-
to-block-torrent-traffic
http://www.netfilter.org/documentation/HOWTO/NAT-HOWTO-3.html
http://linux-ip.net/html/nat-dnat.html
33
Lekcija 11: Bezbednost OS (Linux)
DOMAĆI ZADATAK 11
IPTables
Zadatak:
34
Poglavlje 9: Domaći zadatak 11
35
Lekcija 11: Bezbednost OS (Linux)
Zaključak
ZAKLJUČAK
• Linux Bezbednost
• Bezbednost sistema datoteka
• Linux/UNIX dozvole
• Linux ranjivost
• Ojačanje Linux sistema
• Bezbednost aplikacija
• SELinux
• IP tables
36