FAQ – Velká kniha bezpečnosti logo

OS Windows


► Obsah

FAQ – OS Windows

Windows se jakožto nejrozšířenější desktopový OS těší velké pozornosti hackerů, jeho dostatečné zabezpečení je proto velmi důležité.

V FAQ pro pokročilé se budeme věnovat hlavně vestavěným funkcím OS – cílem je dosáhnout špičkového zabezpečení za použití co nejméně řádků kódu, jejichž počet s 3-P aplikacemi rapidně roste.

Tato sekce FAQ počítá s tím, že jste pročetli FAQ OS Windows pro méně pokročilé uživatele a máte znalosti ve zmíněné sekci rozebírané.

FAQ se dělí na několik sekcí:

  • vrstvy zabezpečení
  • integritní politika
  • ACL
  • AppContainer

Vrstvy zabezpečení:

Firewall:

Windows obsahují vestavěný Windows Defender Firewall (WDF), který je na velmi dobré úrovni.

Použití FW třetí strany je zbytečné rozšiřování attack surface. Základem síťového zabezpečení v domácnosti je rozumný router s použitelným FW (NAT; např. Mikrotik, kde si FW ovšem samozřejmě musíte nastavit).

Co se blokování odchozí komunikace týče, Windows Defender Firewall tuto funkci podporuje a umožňuje vcelku jednoduše nastavit.

Info
Návod měl původně být v sekci pro méně pokročilé, ovšem z důvodu nepříjemného bugu (nebo funkce) Windows 10, automatické aktualizace OS nelze ve whitelistu rozumně definovat.

► Konfigurace WDF pro blokování odchozí komunikace
  • Otevřete si hledání Windows, do vyhledávacího pole zadejte:
  • wf.msc
  • Na nalezenou položku klikněte pravým tlačítkem a zvolte možnost: admin Spustit jako správce.
  • wdf
  • Otevře se pokročilé nastavení Windows Firewall. V prostředním sloupci zvolte možnost Vlastnosti brány Firewall v programu Windows Defender.
  • V horním panelu si otevřete záložku Privátní profil. U položky Odchozí připojení zvolte možnost Blokovat.
  • wdf1
  • Postup zopakujte pro záložku Veřejný profil.
  • Klikněte na OK.
  • wdf2

Úspěch
Nyní WDF blokuje veškerou odchozí komunikaci, která není na whitelistu. Dále je třeba nastavit whitelist.

► Povolení odchozí komunikace pro všechny moderní aplikace
  • V levém sloupci otevřete Odchozí pravidla.
  • V pravém sloupci zvolte možnost Nové pravidlo...
  • Jako typ pravidla zvolte Program a klikněte na tlačítko Další.
  • Zvolte možnost Všechny programy a klikněte na tlačítko Další.
  • Zvolte možnost Povolit připojení a klikněte na tlačítko Další.
  • Zkontrolujte zatržítka u všech položek a klikněte na tlačítko Další.
  • Zadejte název pravidla – v tomto případě např. All MoUI Apps
  • Klikněte na Dokončit.
  • Nové pravidlo otevřete. Přesuňte se do záložky Programy a služby a v sekci Balíčky aplikací klikněte na Nastavení...
  • wdf3
  • Zvolte možnost Použít pouze pro balíčky aplikací a potvrďte. Následně uložte změny v pravidle.
  • wdf4
► Povolení odchozí komunikace pro všechny služby Windows
  • V pravém sloupci zvolte možnost Nové pravidlo...
  • Jako typ pravidla zvolte Program a klikněte na tlačítko Další.
  • Zvolte možnost Všechny programy a klikněte na tlačítko Další.
  • Zvolte možnost Povolit připojení a klikněte na tlačítko Další.
  • Zkontrolujte zatržítka u všech položek a klikněte na tlačítko Další.
  • Zadejte název pravidla – v tomto případě např. All Services
  • Klikněte na Dokončit.
  • Nové pravidlo otevřete. Přesuňte se do záložky Programy a služby a v sekci Služby klikněte na Nastavení...
  • Zvolte možnost Použít pouze pro balíčky aplikací a potvrďte. Následně uložte změny v pravidle.
  • wdf5
► Povolení odchozí komunikace pro důležité aplikace
  • V pravém sloupci zvolte možnost Nové pravidlo...
  • Jako typ pravidla zvolte Program a klikněte na tlačítko Další.
  • Zvolte možnost Cesta k tomuto programu a do textového pole vložte cestu k následujícímu souboru:
  • %SystemRoot%\System32\smartscreen.exe
  • wdf6
  • Klikněte na tlačítko Další.
  • Zvolte možnost Povolit připojení a klikněte na tlačítko Další.
  • Zkontrolujte zatržítka u všech položek a klikněte na tlačítko Další.
  • Zadejte název pravidla – v tomto případě např. SmartScreen
  • Klikněte na Dokončit.
  • Stejný postup aplikujte pro následující aplikace:
  • %SystemRoot%\ImmersiveControlPanel\SystemSettings.exe
    %programfiles%\Windows Defender\MsMpEng.exe
    %programfiles%\Windows Defender\MpUXSrv.exe
    %programfiles%\Windows Defender\MpCmdRun.exe
    %programfiles%\Windows Defender\wdnsfltr.exe
► Windows Update na Windows 10

Od verze Windows 10 Creators Update není možné rozumně povolit Windows Update – nestačí povolit pouze nezbytné služby, je nutné povolit celý svchost.exe.

Je zde několik možností:

  • Permanentně povolit SVCHost.exe pro porty 80 a 443. (nedoporučeno)
  • Povolit SVCHost.exe pouze po dobu instalace aktualizací.
  • Instalovat aktualizace 1x měsíčně ručně a WU neřešit.
  • ...

Problémem ovšem je, že přes WU se aktualizují definice Windows Defender, které je důležité mít aktuální.

Jako nejrozumnější varianta se tedy jeví následující:

Vytvořit pravidlo pro povolení celého SVCHost.exe ve WDF, pojmenovat jej SVCHost a pravidlo zakázat (pravým tlačítkem). Následně pro aktualizaci definicí WD napsat jednoduchý skript a naplánovat v Plánovači úloh jeho spuštění 1x za 6 hodin.

@echo off
netsh advfirewall firewall set rule name="SVCHost" new enable=yes
"%programfiles%\Windows Defender\MpCmdRun.exe" -SignatureUpdate
netsh advfirewall firewall set rule name="SVCHost" new enable=no
pause

Windows Update následně můžete řešit libovolným způsobem.


FIDES:

FIDES je drobný ovladač na úrovni kernelu, který si můžete představit jako nějakou obdobu MAC na Linuxu – program určuje, které procesy mají ke kterým souborům přístup. Jedná se o špičkové řešení, jehož konfigurace je vcelku jednoduchá, syntax konfiguračního souboru je triviální.

Existuje demo verze, která je po nějakou dobu (obvykle rok) plně funkční, akorát podporuje konfigurační soubor pouze do velikosti 2 kB, což není dostatek pro pokročilé nastavení. Doporučuji tedy investovat do plné verze a podpořit vývojáře.

► Instalace FIDES
  • Stáhněte si demo verzi ze stránek výrobce, soubor spusťte a aplikaci vybalte.
  • V závislosti na bitové verzi OS otevřete složku 32-bit / 64-bit.
  • Klikněte pravým tlačítkem na INF soubor a zvolte Install.
  • Vraťte se do rootu aplikace a otevřete Pumpernickel.ini.
  • Otevře se konfigurační soubor, kde definujete pravidla. V základu tam naleznete pravidlo, že Notepad nemá právo k modifikaci žádného souboru kromě TXT na Plochách uživatelů. RTFM, je v rootu aplikace.
  • Po dokončení úprav konfiguračního souboru jej přesuňte do lokace C:\Windows.
  • Následně ovladač aktivujte pomocí net start pumpernickel.

MemProtect:

MemProtect je drobný ovladač na úrovni kernelu, který určuje, které procesy mají přístup k ostatním procesům v RAM. Jedná se o špičkové řešení nejen proti řadám rodin exploitům, jehož konfigurace je vcelku jednoduchá, syntax konfiguračního souboru je triviální.

Existuje demo verze, která je po nějakou dobu (obvykle rok) plně funkční, akorát podporuje konfigurační soubor pouze do velikosti 2 kB, což není dostatek pro pokročilé nastavení. Doporučuji tedy investovat do plné verze a podpořit vývojáře.

► Instalace MemProtect
  • Stáhněte si demo verzi ze stránek výrobce, soubor spusťte a aplikaci vybalte.
  • V závislosti na bitové verzi OS otevřete složku 32-bit / 64-bit.
  • Klikněte pravým tlačítkem na INF soubor a zvolte Install.
  • Vraťte se do rootu aplikace a otevřete MemProtect.ini.
  • Otevře se konfigurační soubor, kde definujete pravidla. V základu tam naleznete pravidlo, že Notepad nemá právo k modifikaci žádného souboru kromě TXT na Plochách uživatelů. RTFM, je v rootu aplikace.
  • Po dokončení úprav konfiguračního souboru jej přesuňte do lokace C:\Windows.
  • Následně ovladač aktivujte pomocí net start MemProtect.
► Příklady MemProtect
  • Zablokování přístupu všem nesystémovým procesům k procesům VoodooShield – jednoduché ztížení exploitace:
  • [LETHAL]
    [LOGGING]
    [DEFAULTALLOW]
    [WHITELIST]
    !C:\Program Files\VoodooShield\*>C:\Program Files\VoodooShield\*
    !C:\Windows\explorer.exe>C:\Program Files\VoodooShield\*
    !C:\Windows\System32\*>C:\Program Files\VoodooShield\*
    !C:\Windows\SystemApps\*>C:\Program Files\VoodooShield\*
    !C:\Program Files\Windows Defender\*>C:\Program Files\VoodooShield\*
    [BLACKLIST]
    *>C:\Program Files\VoodooShield\*
    [EOF]
    
  • ...




ACL:

Access Control List je součást bezpečnostního modelu OS, s jejíž pomocí můžeme zakázat např. spuštění aplikací v určité složce.

► Nutná teorie k ACL

ACL je seznam záznamů (jednotlivý záznam je nazýván ACE) určujících, který subjekt má jaké pravomoce pro manipulaci se zabezpečeným objektem (konkrétně se budeme bavit pouze o DACL). Při přihlášení je uživateli přiřazen přístupový token, který následně přebírají všechny aplikace spuštěné daným uživatelem. Pokud proces chce operovat se zabezpečeným objektem, kontrola přístupu se podívá na jeho token a na deskriptor zabezpečení u objektu.

Token obsahuje mnoho věcí, pro nás je ale aktuálně důležitá jedna položka: SID.

SID je unikátní hodnota určená k identifikaci vlastníka – uživatelského účtu nebo uživatelské skupiny. Např.: S-1-5-32-544.

Kontrola přístupu z tokenu aplikace získá jeho SID a následně v ACL seznamu vyhledá veškeré záznamy (ACE), ve kterých je daný SID. Následně všechny nalezené ACE sekvenčně prozkoumá, dokud nenalezne ACE, který přístup k objektu explicitně zakáže/povolí. ACE zakazující přístup jsou zkoumány přednostně.

Pokud jste si přečetli teorii, snad máte alespoň matnou představu o tom, jak ACL a kontrola přístupu funguje.

ACL můžeme využít následovně: můžeme zakázat spouštění spustitelných souborů v uživatelských složkách. Běžný uživatel nepotřebuje spouštět ve svých složkách spustitelné soubory – a pokud ano, nic mu nebrání v přesunutí souboru mimo jeho osobní složky. Výhody jsou doufám jasné – pokud se malware dostane na disk, nespustí se.

Návody:

► Odebrání pravomoce exekuce souborů v uživatelských složkách
  • Stiskněte kláv. zkratku win + X a z nabídky vyberte Windows PowerShell (správce).
  • wx
  • Do příkazové řádky zadejte následující příkazy (cestu ke složce uživatele patřičně upravte):
  • icacls "C:\Users\(uživ. jméno)" /c /inheritance:d
    icacls "C:\Users\(uživ. jméno)" /c /deny Everyone:(OI)(CI)(X)
► Opětovné přidání pravomoce exekuce souborů v uživatelské složce
  • Stiskněte kláv. zkratku win + X a z nabídky vyberte Windows PowerShell (správce).
  • wx
  • Do příkazové řádky zadejte následující příkaz (cestu ke složce patřičně upravte):
  • icacls "C:\Users\User\AppData\Local\Temp" /remove Everyone /t

Info
V příkladu byla použita složka Temp, jejíž pravomoc exekuce obsahujících souborů může být vyžadována některými aplikacemi (včetně systémových – MS Edge). Každopádně z bezpečnostního hlediska není úplně ideální exekuci ve složce povolit.





Integritní politika:

Pomocí integritní politiky – součásti bezpečnostního modelu OS – je možné omezit přístup aplikacím s nízkou úrovní integrity do osobních složek.

► Nutná teorie k úrovním integrity a integritní politice

Windows obsahuje mechanismus jménem Kontrola přístupu, který by se dal označit za základ bezpečnostního modelu Windows. Vždy, když libovolná aplikace žádá o přístup k nějakému objektu apod., musí projít Kontrolou přístupu. Bezpečnostní systém Windows získá tzv. token aplikace, což je zjednodušeně řečeno souhrn důkazů, proč má, potažmo nemá aplikace právo na vykonání dané akce. Na druhé straně (u požadovaného objektu) leží tzv. deskriptor zabezpečení, který říká, kdo k objektu má/nemá přístup a pravomoci k jeho manipulaci. Tokeny a deskriptory zabezpečení obsahují mnoho věcí, pro nás jsou ale důležité dvě položky: úroveň integrity a integritní politika.

Úroveň integrity je číslo udávající důvěryhodnost aplikace/objektu. Existují následující úrovně integrity:

  • AppContainer
  • nedůvěryhodná
  • nízká
  • střední
  • vysoká
  • Systémová

Pokud je úroveň integrity tokenu menší než úroveň integrity deskriptoru, dochází k aplikaci právě integritní politiky. Zde začíná pro nás zábava a pro hackera noční můra.

Integritní politika určuje pravomoce procesů s nižší úrovní integrity k operaci s objekty s vyšší úrovní integrity. To znamená, že může např. malware s nízkou úrovní integrity zamezit práva zápisu do složky střední/vysoké integrity. Pro nás jsou nejzajímavější následující pravidla integritní politiky:

  • NO_READ_UP – omezuje práva ke čtení
  • NO_WRITE_UP – omezuje práva k zápisu
  • NO_EXECUTE_UP – omezuje práva ke spouštění

Pravidla určovaná integritní politikou jsou absolutní – aplikaci je natvrdo zamezen přístup a jediné, co s tím může dělat, je úroveň integrity navýšit. Což může pouze skrz UAC dialog, rozhodnutí je následně samozřejmě na uživateli. Malware ovšem obvykle chce zůstat utajen, dokud nedokončí svoji práci – UAC dialog by ho tak nějak prozradil.

Většina lépe naprogramovaného malware pozná, že běží s nízkou integritou, a hrdě spáchá seppuku. Exploitace UAC (samo-povýšení) je v jistých případech teoreticky možná a proveditelná se střední úrovní integrity – proces s nízkou úrovní integrity nemůže nic, maximálně se pokusit o exploitaci kernelu.

Níže naleznete návod na konfiguraci integritní politiky pro osobní složky – střední integrita, NO_WRITE_UP, NO_EXECUTE_UP. Možností je ovšem více. Můžete například osobním složkám (kromě Stažených soborů) nastavit místo střední integrity vysokou integritu a tím zamezit většině uživatelských aplikací manipulaci s daty. V takovém případě soubory, které budete chtít v uživatelské aplikaci upravit, budete muset dočasně překopírovat jinam a následně zpět.

Kromě složek můžete přenastavit nižší úroveň integrity i aplikacím. Mělo by se jednat o aplikace, které nepotřebují zapisovat do osobních složek – PDF prohlížeč, VLC etc. Nejedná se ovšem o komfortní a jednoduchou konfiguraci. Pro nastavení přístupu aplikací k disku je doporučeno použít FIDES.


► Instalace CHML

Windows má vestavěný nástroj jménem icacls, který umožňuje měnit úrovně integrity, neumožňuje ovšem pokročilé nastavení integritní politiky. Z tohoto důvodu je nutné použít drobný nástroj třetí strany.

  • Stáhněte si chml (by Mark Minasi) a uložte jej na Plochu.
  • Zkontrolujte checksums aplikace:
  • SHA-256: 59aa55d2eac6b295d42ef2aadc607b759f034f4557a66dec0214a4cc032ecc17
    SHA-512: a22317552f90e896fb6f0e4a30f7834baf97a771211a37aca12f52d55ff8b85212d4ded5138ab66a70eaaa1193002b98158938bc17185ea94ccc9f7f4b8120f4
  • Aplikaci zkopírujte do umístění: C:\Windows\System32
  • Smažte chml z původní lokace.
  • Stiskněte kláv. zkratku win + X a z nabídky vyberte Windows PowerShell (správce).
  • wx
  • Do příkazové řádky zadejte následující příkaz pro validaci úspěšné instalace aplikace:
  • chml /?
  • Pokud chml zareagoval svým výstupem, je správně nainstalován.
► Nastavení integritní politiky osobních složek
  • Nyní můžeme nastavit integritní politiku osobních složek, jejichž obsah chceme chránit před malware. Cestu ke složkám tedy upravte pro váš OS.:
  • chml C:\Users\[uživatel]\Documents -i:m -nw -nx
    chml C:\Users\[uživatel]\Pictures -i:m -nw -nx
    chml C:\Users\[uživatel]\Music -i:m -nw -nx
    chml C:\Users\[uživatel]\Videos -i:m -nw -nx
    
    /* -i:l (nízká úroveň integrity)
    -i:m (střední úroveň integrity)
    -i:h (vysoká úroveň integrity)
    -nw (NO_WRITE_UP)
    -nx (NO_EXECUTE_UP)
    -nr (NO_READ_UP) */
  • Stejným způsobem můžete nastavit integritu pro libovolnou privátní složku na disku. Úroveň integrity a integritní politika se dědí, není tedy potřeba nastavovat integritu pro složky nacházející se v již nakonfigurovaných složkách.

Úspěch
Nyní máte nastavenou integritní politiku pro vaše privátní složky.





AppContainer:

AppContainer je implementace sandboxu integrovaná v OS od Windows 8. Je vyvinut pro ModernUI aplikace a např. MS Edge na něm má postavený svůj bezpečnostní model (používá několik AppContainerů zároveň). Existují také možnosti, jak upravit Win32 aplikaci, aby běžela v AppContainer, viz. zde nebo zde.

AppContainer odděluje aplikace od sebe a částí OS. Podobnou snahu můžeme pozorovat i u Linuxu (Flatpak). Více o izolaci si můžete přečíst zde.




To je vše. Stay safe! smile


Changelog



FAQ 2.2.1 (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
► Starší změny

FAQ 2.2 (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 2.1 (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

FAQ 2.0 a starší:

  • 16.04.2017 – FAQ v2 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 v2 (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 proti moderním rootkitům
    • 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