Bezpečnosť v Unixe znamená spôsoby zabezpečenia unixového alebo Unix-like operačného systému. Bezpečné prostredie je dosiahnuté nielen návrhom dizajnu týchto operačných systémov, ale aj pomocou pozorných užívateľských a administrátorských praktík.
Koncept dizajnu Prístupové práva Jedným zo základných znakov v týchto systémoch je systém prístupových práv. Všetky súbory v Unix-ových súborových systémoch môžu dovoľovať rôzny prístup k súborom na základe určených prístupových práv.
Prístupové práva pre súbor sú zvyčajne nastavované pomocou príkazu chmod a zobrazované cez príkaz ls. Napríklad: -r-xr-xr-x 1 root wheel 745720 Sep 8 2002 /bin/sh
Unix-ové práva povoľujú prístup k súboru rôznym používateľom. Rôzne skupiny používateľov majú rôzne prístupové práva k súboru.
Zložitejšie Unix-ové súborové systémy obsahujú Access Control List (zoznam kontroly prístupu), koncept, ktorý umožňuje udeľovať práva viacerým užívateľom alebo skupinám. Access Control List môže byť použitý na udelenie práv ďalším jednotlivým užívateľom alebo skupinám. Napríklad: /pvr [u::rwx,g::r-x,o::r-x/u::rwx,u:peter:rwx,g::r-x,m::rwx,o::r-x]
V tomto príklade, ktorý pochádza z príkazu chacl v Linux-ových operačných systémoch, užívateľovi peter sú udelené zapisovacie práva na zložku /pvr.
Skupiny používateľov Užívatelia pod Unix-ovými operačnými systémami často patria do skupín so špecifickými prístupovými právami. Toto umožňuje zoskupovať užívateľov podľa toho, aké veľké práva majú mať v systéme. Veľa Unix-ových implementácií pridáva ďalšiu úroveň ochrany vyžadovaním členstva užívateľa vowheel user privileges group, ak chcú spúšťať príkaz su.
Problémy Väčšina Unix-ových a Unix-like systémov má účet alebo skupinu, ktorá umožňuje užívateľovi kompletnú kontrolu nad systémom. Takýto účet sa nazýva root. Ak prístup k takémuto účtu získa nechcený používateľ, znamená to úplný prienik do systému. Účet root je ale nevyhnutný pre administrovanie systému, a pre spomenuté bezpečnostné dôvody je málokedy používaný pre každodenné potreby (častejšie sa používa program sudo). Takto sa používanie tohto účtu dá precíznejšie monitorovať.
Kto pozná Supermana, môže si predstaviť ako by malo vyzerať používanie root-a cez nasledujúcu analógiu:
Používanie root účtu je ako byť Supermanom, pričom administrátorov bežný účet je skôr ako Clark Kent. Clark Kent sa stáva Supermanom len vtedy, keď je to potrebné, aby zachránil ľudí. Potom sa znova vracia do svojho "prevleku". Root prístup by mal byť používaný rovnako. Prevlek Clarka Kenta ho však neobmedzuje, keďže stále je schopný používať svoje super schopnosti. Toto je analógia k sudo programu.
Užívateľské a administratívne techniky Unix má veľmi veľa nástrojov, ktoré dokážu zlepšiť bezpečnosť, ak sú vhodne použité užívateľmi či administrátormi.
Heslá Výber silného hesla a jeho stráženie sú pravdepodobne najdôležitejšie veci, ktoré môže užívateľ urobiť pre zvýšenie bezpečnosti Unix-u. V Unix-ových systémoch, najdôležitejšie údaje o hesle sú uložené v súbore /etc/passwd. Tento súbor udržuje prehľad o užívateľoch a ich hlavných nastaveniach. Heslá, resp. hash-e hesiel môžu byť tiež uložené na rovnakom mieste. Záznamy v /etc/passwd každý zaberajú presne jeden riadok a majú nasledujúcu formu:
nickname:hash_hesla:UserID:GroupID:kompletné_meno:domovský_adresár:shell_bin Napríklad: xfze:$1$zuW2nX3sslp3qJm9MYDdglEApAc36r/:1000:100:José Carlos D. S. Saraiva:/home/xfze:/bin/bash
Keďže všetci užívatelia musia mať práva na čítanie tohto súboru (aby systém vedel skontrolovať prihlasovacie heslo), vznikol jeden bezpečnostný problém: hocikto vedel prečítať tento súbor a získať hash-e hesiel ostatných užívateľov. Preto bol pre uchovávanie hash-ov hesiel vytvorený súbor /etc/shadow , na ktorý mal práva na čítanie iba root. Pri utajovaní hesiel, druhá položka v riadku v súbore /etc/passwd (hash hesla) je nahradená 'x' ktoré hovorí systému, aby našiel príslušné heslo cez súbor /etc/shadow.
Súbor /etc/shadow zvyčajne obsahuje iba prvé dve hodnoty:
xfze:$1$zuW2nX3sslp3qJm9MYDdglEApAc36r/:::::
Zvyšné hodnoty v súbore /etc/shadow obsahujú: Minimálny počet dní medzi zmenami hesla Maximálny počet dní predtým, než musí byť heslo zmenené Počet dní s varovaním predtým, než musí byť heslo zmenené Počet dní, po ktorých musí byť heslo zmenené, keď sa účet stane nepoužiteľný Dátum (vyjadrené ako počet dní od 1. januára, 1970) kedy platnosť účtu vyprší
Tieto hodnoty môžu byť použité na zvýšenie Unix-ovej bezpečnosti prinútením užívateľov zaoberať sa heslami.
Užívatelia a účty Administrátori by mali mazať staré účty okamžite. su, sudo, sudosh, ssh iba, žiadne vzdialené prístupy na root
Softvérová údržba Patchovanie Operačné systémy, tak ako každý softvér, môžu obsahovať chyby žiadajúce opravu alebo môžu byť vylepšované pridávaním nových funkcií. Bezpečné patchovanie operačného systému vyžaduje, aby softvér pochádzal z dôveryhodného zdroja a nebol pozmenený pred zabalením. Medzi bežné metódy overujúce, či patche pre operačné systémy neboli pozmenené, patrí použitie kryptografického hashu, ako napríklad MD5 suma, alebo použitie read-only média.
Z bezpečnostného uhla pohľadu, špecifické metódy balenia, ako napríklad RPM Package Manager formát pôvodne od Red Hat Linux nie sú až tak dôležité ako zabezpečenie integrity samotného patchu.
Distribúcia zdrojových kódov Distribúcia zdrojových kódov znamená možnosť prehľadať kód na podozrivý obsah. Mínusom ale je, že užívateľ musí byť schopný vykonať bezpečnostnú analýzu kódu sám.
RPM balenia Linuxové distribúcie, ktoré používajú RPM Package Manager formát pre zabezpečenie základnej funkcionality a softvérových updatov, využívajú MD5 a GPG pre zabezpečenie integrity obsahu. Hodnoty hash-ov sú zabalené spolu so súbormi RPM a overované, keď je balík inštalovaný.
Debian balenia Linuxové distribúcie, ktoré používajú Debian .deb balíkový formát pre zabezpečenie základnej funkcionality a softvérových updatov, využívajú GPG podpisy pre zabezpečenie integrity obsahu. Podpis je vypočítaný, keď je balík vyrobený a neskôr overovaný, keď sa balík inštaluje.
Ostatní predajcovia a distribúcie Bez ohľadu na predajcu alebo distribúciu, všetky softvérové distribúcie by mali poskytovať mechanizmus na overenie, či je softvér legitímny, a či nebol modifikovaný od času, keď bol pôvodne zabalený.
Služby
Nepotrebný systémový softvér by nemal byť inštalovaný ani konfigurovaný na systéme. Softvér, ktorý je ďalej nepotrebný by mal byť pokiaľ možno kompletne odstránený. Identifikácia bežiacich služieb netstat -na lsof nmap sockstat -4 (FreeBSD)
Príkazy inetd a xinetd sa správajú ako super-servery pre množstvo sieťových protokolov, napríklad ako rlogin, telnet a ftp.
Vypnutie nepotrebných služieb
použitím chkconfig na Red Hat Linux použitím /etc/rc.conf a /usr/local/etc/rc.d na FreeBSD (/etc/rc.local) použitím rc-update na Gentoo Linux
Tento prístup je bežne nazývaný proaktívna bezpečnosť. Existujú operačné systémy, ktoré sú prirodzene bezpečné. Popri iných, voľné BSD distribúcie (FreeBSD, NetBSD, a OpenBSD) sú proaktívne bezpečné. Napríklad, výstup z netstat-u na NetBSD 3.0 pracovnej stanici jasne podčiarkuje túto techniku: $ netstat -a Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost.smtp *.* LISTEN tcp 0 0 *.ssh *.* LISTEN Active Internet6 connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp6 0 0 localhost.smtp *.* LISTEN tcp6 0 0 *.ssh *.* LISTEN Active UNIX domain sockets Address Type Recv-Q Send-Q Inode Conn Refs Nextref Addr c0d10d80 dgram 0 0 0 c0cd8680 0 c0cb7000 -> /var/run/log c0cb7000 dgram 0 0 0 c0cd8680 0 0 -> /var/run/log c0cd8680 dgram 0 0 cb9639e8 0 c0d10d80 0 /var/run/log
Nasledujúci príklad je z BSD systému $ sockstat -4 USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS root sendmail 569 4 tcp localhost.smtp *.* root sshd 593 4 tcp *.ssh *.*
Ukazuje, že na tomto stroji iba služba SSH počúva na verejnom sieťovom rozhraní počítača. sendmail počúva iba na loopback rozhraní. Prístup k službe môže byť ďalej obmedzený použitím firewallu.
Súborové systémy Bezpečnosť súborových systémov Bezpečnosť súborových systémov v UNIX a Unix-like systémoch je založená na 9 bitoch, ktoré znamenajú prístupové práva, set user a group ID bitoch, a na sticky bite, čo spolu dáva 12 bitov. Tieto práva sa aplikujú rovnako takmer na všetky objekty súborového systému ako sú súbory, adresáre a zariadenia.
9 prístupových bitov je rozdelených do troch skupín po troch bitoch. Prvá skupina popisuje práva vlastníka súboru, druhá skupina popisuje práva skupiny asociovanej s vlastníkom súboru alebo s adresárom, ktorý súbor obsahuje a tretia skupina popisuje práva asociované s procesom, ktorý nemá rovnaké user ID ako súbor. Každá skupina troch bitov obsahuje bity označujúce povolenie prístupu na čítanie, zapisovanie alebo spúšťanie. V prípade adresárov znamená právo na spúšťanie právo prezerať daný adresár.
Set user ID a set group ID bity, bežne skracované ako set-UID a set-GID, sú používané na zmenu identity procesu, ktorý spúšťa súbor, ktorý má nastavený jeden alebo oba tieto bity. Súbor s nastaveným prístupovým bitom set-UID spôsobí, že proces, ktorý súbor spustil dočasne zmení effective user ID na user ID vlastníka súboru. Súbor s nastaveným prístupovým bitom set-GID spôsobí, že proces, ktorý súbor spustil dočasne zmení effective group ID na group ID súboru. Proces potom môže meniť effective user alebo group ID, ktoré zdedil zo súboru, a medzi real user alebo group ID, ktoré zdedil, keď sa užívateľ prihlásil do systému. Toto predstavuje spôsob, akým proces môže limitovať prístupové práva, ktoré vlastní, voči častiam kódu (code regions), ktoré tieto prístupové práva vyžadujú. Toto je forma bezpečnostnej technológie nazývanej privilege separation (privilegované rozdeľovanie) a zvyšuje bezpečnosť programov limitovaním nechcených alebo neplánovaných činností procesu.
Adresár, ktorý má nastavený set-GID bit spôsobí, že novo vytvorené súbory budú mať počiatočnú hodnotu skupinu rovnakú ako je skupina adresára. Toto predstavuje spôsob, kde subsystém, napríklad mailový subsystém, môže vytvárať súbory, ktoré majú bežnú hodnotu skupiny, takže set-GID procesy v rámci subsystému sú potom schopné prečítať a zapísať do súboru.
Sticky bit, formálne známy ako save text on swap bit, odvádza svoje meno od svojho pôvodného účelu. Sticky bit pôvodne znamenal, že pamäťový obraz (image) procesu bol uložený ako spojitý obraz na disku, ktorý bol používaný na uchovávanie reálnych pamäťových stránok, keď neboli používané. Toto zvyšovalo výkon bežne spúšťaných procesov, keďže počiatočný obraz pamäte bol ľahko dostupný. Moderné UNIX-ové systémy už ďalej nevykonávajú túto funkciu, ak je sticky bit nastavený, napriek tomu názov ostal. V prípade súborov, sticky bit môže byť použitý systémom na indikovanie spôsobu, akým má byť vykonané uzamknutie súboru. V prípade adresárov, sticky bit zabraňuje vymazanie súboru v rámci adresára hocijakému procesu, okrem procesu, ktorý má super-user (root) práva alebo má nastavené effective user ID ako má vlastník súboru. Sticky bit je najbežnejšie používaný vo verejne zapisovateľných adresároch, akými sú napríklad rôzne dočasné pracovné adresáre v systéme.
Vírusy a vírusové skenery