FAQ – Velká příručka bezpečnosti logo

OS Linux


► Obsah

OS Linux pro pokročilé

Linux se díky svému minoritnímu zastoupení na desktopech v porovnání s OS Windows těší řádově menší pozornosti hackerů – většina malware pro Linux je směřována pouze na servery. Malware pro desktopové linuxové distribuce také existuje, akorát v mnohonásobně menším množství. Ačkoliv je tedy stav mnohých desktopových linuxových distribucí z pohledu bezpečnosti tristní, v praxi je riziko infikace nižší nežli u jiných OS. Moderní exploit kity jsou ovšem často multiplatformní a jejich počet roste. Dostatečné zabezpečení OS je proto nezbytné.

Tato kapitola využívá distribuci Arch Linux.

Tato část příručky počítá s tím, že jste pročetli kapitolu OS Linux pro méně pokročilé a máte minimálně znalosti v kapitole rozebírané.

Sekce kapitoly:


Základní bezpečnostní nastavení:

Sudo:

/etc/sudoers
-----------------------------------

Defaults   !visiblepw
Defaults    always_set_home
Defaults    match_group_by_gid
Defaults    always_query_group_plugin

Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"

Defaults    secure_path = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Defaults    use_pty

root        ALL=(ALL)    ALL
uživatel    ALL=(ALL)    ALL

Uzamknutí roota:

sudo passwd -l root




Ochrana proti malware:

Firewall:

Pro běžné počítače stačí zakázat forward chain a bezpečně nastavit input. Nejjednodušší konfiguraci pro ipv4/6 nabízí nftables. Aplikační FW lze implementovat skrz MAC.

► Příklad pravidel pro běžný počítač
/etc/nftables.conf
-----------------------------------

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;
        ct state invalid drop
        ct state established,related accept
        iif "lo" accept
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}

MAC:

MAC se stal důležitou součástí bezpečnostního modelu linuxových distribucí. Implementací existuje více.

SELinux je velmi robustní implementace MAC využívána např. distribucí Fedora nebo OS Android. AppArmor je implementace MAC poskytující nižší úroveň ochrany než SELinux (mj. neumí omezit ioctl) využívána distribucemi openSUSE či Ubuntu. TOMOYO Linux je zajímavou méně známou alternativou, poskytující vyšší úroveň ochrany než AppArmor a zároveň nabízející mnohem jednodušší konfiguraci nežli SELinux.

Na Arch Linux lze bez problému provozovat TOMOYO nebo AppArmor, přičemž pro TOMOYO není třeba kompilovat vlastní kernel. SELinux je o něco složitější.

► Instalace TOMOYO Linux

Info
TOMOYO Linux není příliš rozšířený MAC a velmi těžko někde naleznete profily pro aplikace. Budete si je tedy muset sami vytvořit (příp. přepsat z AppArmor profilů – ty jsou všude). Dokumentaci naleznete zde.

  • Povolte TOMOYO Linux v GRUB:
  • /etc/default/grub
    -----------------------------------
    
    GRUB_CMDLINE_LINUX_DEFAULT="quiet security=tomoyo TOMOYO_trigger=/usr/lib/systemd/systemd"
  • Aktualizujte GRUB (grub-mkconfig -o /boot/grub/grub.cfg).
  • Nainstalujte tomoyo-tools:
  • sudo pacman -S gnupg
    gpg --recv-keys 43C83369623D7AD3A96C2FC7425F128D0C64F52A
    git clone https://aur.archlinux.org/tomoyo-tools.git
    cd tomoyo-tools
    gedit PKGBUILD
  • Zkontrolujte instrukce a spusťte instalaci:
  • makepkg -si
  • Restartujte OS.
► Použití TOMOYO Linux jako aplikační FW
  • Po úspěšné instalaci a restartu OS inicializujte TOMOYO:
  • sudo /usr/lib/tomoyo/init_policy
  • Následně upravte pravidla TOMOYO:
  • /etc/tomoyo/policy/current/profile.conf
    -----------------------------------
    
    PROFILE_VERSION=20110903
    0-COMMENT=-----Disabled Mode-----
    0-PREFERENCE={ max_audit_log=1024 max_learning_entry=2048 }
    0-CONFIG={ mode=disabled grant_log=no reject_log=yes }
    0-CONFIG::network::unix_stream_bind={ mode=disabled grant_log=no reject_log=no }
    0-CONFIG::network::unix_stream_listen={ mode=disabled grant_log=no reject_log=no }
    0-CONFIG::network::unix_stream_connect={ mode=disabled grant_log=no reject_log=no }
    0-CONFIG::network::unix_dgram_bind={ mode=disabled grant_log=no reject_log=no }
    0-CONFIG::network::unix_dgram_send={ mode=disabled grant_log=no reject_log=no }
    0-CONFIG::network::unix_seqpacket_bind={ mode=disabled grant_log=no reject_log=no }
    0-CONFIG::network::unix_seqpacket_listen={ mode=disabled grant_log=no reject_log=no }
    0-CONFIG::network::unix_seqpacket_connect={ mode=disabled grant_log=no reject_log=no }
    0-CONFIG::network={ mode=enforcing grant_log=no reject_log=yes }
    1-COMMENT=-----Disabled Mode (net access)-----
    1-PREFERENCE={ max_audit_log=1024 max_learning_entry=2048 }
    1-CONFIG={ mode=disabled grant_log=no reject_log=no }
    2-COMMENT=-----Learning Mode-----
    2-PREFERENCE={ max_audit_log=1024 max_learning_entry=2048 }
    2-CONFIG={ mode=learning grant_log=no reject_log=yes }
    3-COMMENT=-----Permissive Mode-----
    3-PREFERENCE={ max_audit_log=1024 max_learning_entry=2048 }
    3-CONFIG={ mode=permissive grant_log=no reject_log=yes }
    4-COMMENT=-----Enforcing Mode-----
    4-PREFERENCE={ max_audit_log=1024 max_learning_entry=2048 }
    4-CONFIG={ mode=enforcing grant_log=no reject_log=yes }
  • Restartujte OS.
  • Otevřete konfiguraci TOMOYO pro aplikace:
  • sudo tomoyo-editpolicy

Varování
TOMOYO detekuje pouze aplikace, které byly od jeho aktivace alespoň 1x spuštěny.

  • Šipkami se posunujete mezi aplikacemi. Profil aplikace změníte klávesou S, zadáním čísla profilu a stisknutím Enter.
  • 0     #  bez přístupu k internetu
    1     #  s přístupem k internetu
    
  • Klávesou Q konfiguraci ukončíte.
  • Po dokončení konfigurace ji následně uložte:
  • sudo tomoyo-savepolicy

Hardened alokátor:

Info
Hardened malloc může působit problémy s aplikacemi, instalací znefunkčníte ze standardně využívaných např. man.

  • Stáhněte si nejnovější verzi zdrojového kódu.
  • Rozbalte, přesuňte se do extrahované složky a otevřete terminál. Instalace:
  • make
    sudo cp libhardened_malloc.so /usr/local/lib
  • Vyvořte potřebné konfigurační soubory:
  • /etc/ld.so.preload
    -----------------------------------
    
    /usr/local/lib/libhardened_malloc.so
  • /etc/sysctl.d/hardened_malloc.conf
    -----------------------------------
    
    vm.max_map_count = 524240
  • Restartujte OS.

Hardening aplikací:

Balíčky mohou být kompilovány s memory corruption mitigacemi (ASLR, PIE, RELRO, Canary,…), které následně významně ztěžují jejich exploitaci. Většina balíčků by standardně měla důležité mitigace obsahovat. Balíčky neobsahující zmíněné mitigace je nutné zkompilovat ručně.

► Audit mitigací běžících procesů
checksec --proc-all

Info
Skript checksec je podrobněji rozebírán níže.

► Kompilace aplikace s mitigacemi
  • Nainstalujte si ASP a GPG:
  • sudo pacman -S asp gnupg
    asp export extra/networkmanager
    cd ./networkmanager
  • Zahajte kompilaci + automatickou instalaci:
  • makepkg -si
  • Po úspěšné instalaci restartujte OS.
► Automatizace kompilace problémových balíčků
  • Použijte srcpac.
  • sudo pacman -S srcpac
    man srcpac




Audit:

Rootkit Hunter:

Rootkit Hunter je on-demand skener rootkitů, který umí zachytávat změny v důležitých souborech OS atd. Jedná se o vcelku solidní aplikaci určenou primárně pro servery, neztratí se ovšem ani na desktopu.

► Návod
  • Instalace a spuštění auditu:
  • pacman -S rkhunter
    rkhunter --versioncheck
    rkhunter --propupd
    rkhunter -c --enable all --disable none --rwo
  • Rkhunter vypíše veškerá svá varování, pravděpodobně false positives. Ty je potřeba opravit, aby se již v budoucnu nezobrazovaly.
  • Příklad mých úprav:
  • gedit /etc/rkhunter.conf
    -----------------------------------
    #
    # FP Fix
    SCRIPTWHITELIST="/usr/bin/egrep"
    SCRIPTWHITELIST="/usr/bin/fgrep"
    SCRIPTWHITELIST="/usr/bin/ldd"
    SCRIPTWHITELIST="/usr/bin/vendor_perl/GET"
    ALLOWDEVFILE="/dev/shm/pulse-shm-*"
    ALLOWDEVFILE="/dev/shm/user-Shm_*"
    ALLOWDEVFILE="/dev/shm/user-Valve*"
    ALLOWHIDDENFILE="/etc/.updated"
    ALLOWHIDDENFILE="/usr/share/man/man5/.k5identity.5.gz"
    ALLOWHIDDENFILE="/usr/share/man/man5/.k5login.5.gz"
  • Nyní byste již měli být bez false positive varování a rkhunter by měl být plně funkční. Má uloženou databázi kritických souborů OS, takže v případě jakékoli změny (např. pomocí malware) zobrazí varování. Sken můžete dát do cronu.
  • Více informací naleznete na oficiálních stránkách a zde.

Lynis:

Lynis umožňuje bezpečnostní audit mnoha OS založených na UNIXu. Provádí velmi detailní audit OS a po dokončení auditu zobrazí doporučení pro zvýšení bezpečnosti.

► Návod
  • Instalace a spuštění auditu:
  • pacman -S lynis
    lynis update info
    lynic -c

Checksec:

Checksec je skript určený pro kontrolu nastavení kernelu a zobrazení memory corruption mitigací spustitelných souborů.

► Návod
  • Instalace:
  • pacman -S checksec
  • Můžete auditovat bezpečnost nastavení kernelu:
  • checksec --kernel
  • Dále můžete auditovat bezpečnostní funkce balíčků:
  • checksec --proc-all
  • Více informací naleznete na oficiálních stránkách.



To je vše. Stay safe! smile

Changelog



Handbook 0.5.1 (09.06.2020):

► Seznam změn
  • přepsány úvody pro konzistenci
  • Základy – zkrácení, zjednodušení
  • Internetové prohlížeče – aktualizace Mozilla Firefox
  • OS Windows
    • opravy v sekci Windows Defender
    • odebrán návod pro HitmanPro.Alert
  • OS Linux
    • přidána sekce Práce pod Běžným uživatelem
    • úpravy pro konzistenci
  • OS Android – úpravy pro konzistenci

Starší změny:

► Seznam změn

Handbook 0.5 (01.06.2020):

  • Internetové prohlížeče
    • odebrán WNT Internet Explorer, Chromium
    • nová verze MS Edge
  • OS Windows
    • restrukturalizace
    • aktualizováno pro May 2020 Update
    • odstraněny postupy pro nepodporované verze OS
    • nový konfigurační skript
    • odebrán EOL Kaspersky Software Updater, EMET
    • přepracována sekce Ochrana proti malware
    • návod pro VMware Workstation Player
  • OS Linux
    • aktualizováno pro F32 a GNOME 3.36
    • přepracována sekce Flathub
  • OS Android
    • restrukturalizace
    • aktualizováno pro Q
    • odebrána teorie
    • odebrán účet hosta
    • přidána sekce Bezpečné ROM
  • OS Windows pro pokročilé
    • přepracována sekce ACL
    • odebrána sekce AppContainer
    • odebrán Smart Object Blocker a OSArmor
  • OS Linux pro pokročilé
    • přidána sekce Základní bezpečnostní nastavení
    • rozšířena sekce Hardened alokátor

FAQ 0.3 (17.11.2018):

  • Základní informace
    • přidána sekce Bezpečné používání mobilních zařízení
    • Bitwarden v sekci Doporučené klíčenky
  • Internetové prohlížeče
    • přidán prohlížeč Brave
    • aktualizace pro Firefox
  • OS Windows
    • restrukturalizace
    • aktualizováno pro September 2018 Update
    • rozšířena sekce Virtualizace
    • Heimdal Free vyměněn za Kaspersky Software Updater
    • návod na VirtualBox a Unchecky
  • OS Windows pro pokročilé
    • přepracována sekce Bezpečnostní aplikace
  • OS Linux
    • aktualizováno pro GNOME 3.30
    • návod na vytváření snapshotů v GNOME Boxes
  • OS Linux pro pokročilé
    • odebrána sekce Ostatní doporučení
    • odebrán linux-hardened
  • OS Android
    • restrukturalizace
    • rozšířena sekce Bezpečná zařízení
    • odebrán CopperheadOS

FAQ 0.2.2 (18.02.2018):

  • OS Windows
    • srovnání úrovně podpory aktuální a starší verze OS
    • nová verze SafeSVC
    • rozšířena sekce Bezpečné nastavení sítě
    • rozšířena sekce Antivirus / Antimalware
  • OS Android – rozšíření sekce Bezpečné nastavení OS

FAQ 0.2.1 (04.12.2017):

  • Základní informace – revize bezpečnostních doporučení
  • OS Windows
    • poznámka o podporovaných verzích OS
    • přidáno upozornění k NVT Anti-AutoExec
    • rozšířena sekce Anti-exploit
  • OS Linux
    • přepracováno pro GNOME 3.26 a Fedora 27
    • rozšířena sekce Virtualizace, návod na GNOME Boxes
    • revize sekce Flatpak
  • Internetové prohlížeče
    • přidán prohlížeč Epiphany (GNOME Web)
    • aktualizace pro Firefox 57
  • OS Android
    • přepracováno pro 8.1
    • Blokada v sekci Blokování reklamy

FAQ 0.2 (12.08.2017):

  • WWW – změna URL
  • Základní informace – nová sekce doporučené klíčenky
  • OS Windows
    • přepracováno pro Fall Creators Update
    • nová verze skriptu SafeSVC
    • návod na Heimdal Free a HashTab
    • návod na zakázání AutoPlay
  • OS Windows pro pokročilé
    • přepracováno pro Fall Creators Update
    • restrukturalizace, odebrány zbytečné sekce
  • OS Linux – aktualizace/rozšíření sekce Flatpak, odebrána sekce firejail
  • OS Linux pro pokročilé – odebráno/nahrazeno grsecurity, aktualizace příkazů
  • Internetové prohlížeče
    • návod na používání Chromium na Windows
    • návod na omezení JS ve Chromium / Google Chrome
    • stabilní blokování reklamy pro MS Edge
    • částečná aktualizace nastavení Mozilla Firefox
  • OS Android – přepracováno pro O

Nižší verze:

  • 16.04.2017 – FAQ v0.1.2 dokončeno
    • WWW – upraven design
    • OS Windows – revize, nyní primárně soustředěno na nejnovější verzi OS (W10 CU)
    • OS Linux – revize, přidáno openSUSE a Flatpak
    • OS Windows pro pokročilé – revize pro W10 CU, rozšířena sekce FW, přidány sekce AppContainer, FIDES, MemProtect
    • OS Linux pro pokročilé – overhaul
  • 15.04.2017 – FAQ pro pokročilé – OS Windows – dokončeno
  • 14.04.2017 – započat přechod na FAQ v0.1.2 (chybí FAQ pro pokročilé)
  • 12.11.2016 – aktualizace FAQ dokončena
  • 15.10.2016
    • OS Windows – započata revize sekce, chybí konfigurace pro pokročilé
    • OS Linux – přidán návod na bezpečné nastavení Chromium
  • 27.07.2016
    • OS Linux – dokončeno
    • OS Windows – zrevidována sekce Anti-exploit
    • OS Windows – odebrán audit ovladačů kvůli nízké účinnosti
    • návod na uBlock Origin přepsán do češtiny
  • 14.04.2016 – OS Windows – dokončeno
  • 16.11.2015 – započat převod na stable release včetně Linuxu
  • 02.07.2015 – uvedena beta verze – chybí Linux
  • 21.03.2015 – uvedena alfa verze
Top