Aj po prijatí zásadných bezpečnostných opatrení si bohužiaľ bezpečnostné zraniteľnosti stále nájdu cestu do bezpečných systémov. Jedným zo spôsobov, ako spravovať a chrániť váš systém, je obmedzenie možného poškodenia, akonáhle dôjde k útoku.
V tomto výučbe sa budeme zaoberať procesom používania chrootového väzenia na správu poškodenia systému v prípade útoku. Pozrime sa na to, ako izolovať procesy a podprocesy do konkrétneho prostredia s falošnými oprávneniami root. Týmto spôsobom obmedzíte proces na konkrétny adresár a odmietnete prístup do ďalších oblastí systému.
Stručný úvod do chroot väzenia
Chroot väzenie je metóda izolácie procesov a ich čiastkových procesov od hlavného systému pomocou falošných práv root.
Ako už bolo spomenuté, izolácia konkrétneho procesu pomocou falošných oprávnení root obmedzuje škody v prípade škodlivého útoku. Chrootované služby sú obmedzené na adresáre a súbory v ich adresároch a po reštarte služby nie sú trvalé.
Prečo používať chrootské väzenie
Hlavným účelom väzenia chroot je ako bezpečnostné opatrenie. Program Chroot je tiež užitočný pri obnovení stratených hesiel pripojením zariadení zo živých médií.
Nastavenie chroot väzenia má rôzne výhody a nevýhody. Tie obsahujú:
Výhody
- Obmedzuje prístup: V prípade bezpečnostného kompromisu sú poškodené iba adresáre, ktoré sa nachádzajú vo väzení chroot.
- Limity príkazov: Používatelia alebo procesy sa môžu obmedziť na príkazy povolené vo väzení.
Nevýhody
- Nastavenie môže byť náročné.
- Vyžaduje si veľa práce - Ak potrebujete ďalší príkaz, ako je predvolene povolené, musíte ho zahrnúť manuálne.
Ako vytvoriť základné chroot väzenie
V tomto procese vytvoríme základné chroot väzenie s 3 príkazmi obmedzenými na tento priečinok. Pomôže to ilustrovať, ako vytvoriť väzenie a prideľovať rôzne príkazy.
Začnite vytvorením hlavného priečinka. Tento priečinok si môžete predstaviť ako priečinok / v hlavnom systéme. Názov priečinka môže byť akýkoľvek. V našom prípade to nazývame / chrootjail
sudo mkdir / chrootjailTento adresár použijeme ako falošný koreň obsahujúci príkazy, ktoré mu priradíme. Pri príkazoch, ktoré použijeme, budeme vyžadovať adresár bin (obsahuje spustiteľné súbory príkazov) a atď., adresár (obsahujúci konfiguračné súbory príkazov).
V priečinku / chrootjail vytvorte tieto dva priečinky:
sudo mkdir / chrootjail / etc, bin
Ďalším krokom je vytvorenie adresárov pre dynamicky prepojené knižnice pre príkazy, ktoré chceme zahrnúť do väzenia. V tomto príklade použijeme príkazy bash, ls a grep.
Pomocou príkazu ldd zobrazte zoznam závislostí týchto príkazov, ako je uvedené nižšie:
sudo ldd / bin / bash / bin / ls / bin / grep
Ak sa nenachádzate v priečinku bin, musíte zadať úplnú cestu k príkazom, ktoré chcete použiť. Napríklad ldd / bin / bash alebo ldd / bin / grep
Z vyššie uvedeného výstupu ldd potrebujeme adresáre lib64 a / lib / x86_64-linux-gnu. Vytvorte tieto priečinky vo väzení.
sudo mkdir -p / chrootjail lib / x86_64-linux-gnu, lib64Keď už máme vytvorené adresáre dynamickej knižnice, môžeme ich vypisovať pomocou stromu, ako je uvedené nižšie:
Ako budeme postupovať, začnete mať jasnú predstavu o tom, čo znamená chrootské väzenie.
Vytvárame prostredie podobné normálnemu koreňovému adresáru systému Linux. Rozdiel je v tom, že v tomto prostredí sú povolené iba konkrétne príkazy a prístup je obmedzený.
Teraz, keď sme vytvorili kôš. atď., lib a lib64, môžeme pridať požadované súbory do ich príslušných adresárov.
Začnime s dvojhviezdami.
sudo cp / bin / bash / chrootjail / bin && sudo cp / bin / ls / chrootjail / bin && sudo cp / bin / grep / chrootjail / bin
Po skopírovaní binárnych súborov pre príkazy, ktoré potrebujeme, potrebujeme knižnice pre každý príkaz. Na prezeranie súborov, ktoré chcete kopírovať, môžete použiť príkaz ldd.
Začnime bash. Pre bash požadujeme nasledujúce knižnice:
/ lib / x86_64-linux-gnu / libtinfo.tak.6/ lib / x86_64-linux-gnu / libdl.tak.2
/ lib / x86_64-linux-gnu / libc.tak.6
/ lib64 / ld-linux-x86-64.tak.2
Namiesto toho, aby sme všetky tieto súbory kopírovali jeden po druhom, môžeme pomocou jednoduchej cyklu for skopírovať každú knižnicu zo všetkých knižníc do priečinka / chrootjail / lib / x86_64-linux-gnu
Zopakujme tento postup pre príkaz ls aj grep:
Pre príkaz ls:
Pre príkaz grep:
Ďalej máme v adresári lib64 jednu zdieľanú knižnicu vo všetkých binárnych súboroch. Môžeme ho jednoducho skopírovať pomocou jednoduchého príkazu cp:
Ďalej upravíme hlavný prihlasovací súbor bash (nachádza sa v / etc / bash.bashrc v Debiane), aby sme mohli bash výzvu vylepšiť podľa našich predstáv. Pomocou jednoduchých príkazov echo a tee, ako je to znázornené:
sudo echo 'PS1 = "CHROOTJAIL #"' | sudo tee / chrootjail / etc / bash.bashrcPo dokončení všetkých vyššie uvedených krokov sa môžeme prihlásiť do prostredia väzenia pomocou príkazu chroot, ako je to znázornené.
sudo chroot / chrootjail / bin / bashS výzvou získate oprávnenie root, podobné tým, ktoré sú vytvorené vo vyššie uvedenom príkaze echo a tee.
Po prihlásení uvidíte, že máte prístup iba k príkazom, ktoré ste zadali pri vytváraní väzenia. Ak požadujete viac príkazov, musíte ich pridať manuálne.
POZNÁMKA: Pretože ste zahrnuli bash shell, budete mať prístup ku všetkým integrovaným príkazom bash. To vám umožní opustiť väzenie pomocou príkazu exit.
Záver
Tento výukový program sa venoval tomu, čo je chroot väzenie a ako ho môžeme použiť na vytvorenie izolovaného prostredia od hlavného systému. Techniky popísané v príručke môžete použiť na vytvorenie izolovaných prostredí pre kritické služby.
Aby ste si osvojili to, čo ste sa naučili, skúste vytvoriť väzenie apache2.
TIP: Začnite vytvorením koreňového adresára, pridajte konfiguračné súbory (etc / apache2), pridajte koreň dokumentu (/ var / www / html), pridajte binárny súbor (/ usr / sbin / apache2) a nakoniec pridajte požadované knižnice (ldd / usr / sbin / apache2)