Model hrozeb a specifika hodnocení zranitelností v jádře Linux

Linus Torvalds zařadil do jádra dokument regulující proces zpracování chyb v oblasti bezpečnosti, definující model hrozeb, vysvětlující, jaké chyby v jádře jsou považovány za zranitelnosti, a pojednávající o akcích s chybami odhalenými pomocí AI. Dokument byl připraven Willem Tarreau, autorem HAProxy a dlouholetým vývojářem jádra Linux, který měl na starosti údržbu několika stabilních větví jádra. Jako základ byly použity dohody dosažené v průběhu diskuse o nedávno odhalených kritických zranitelnostech v jádře (1, 2, 3, 4), které byly zveřejněny před vydáním oprav a pro které se díky AI podařilo ihned vytvořit funkční exploit.

Hlavní množství chyb spojených s bezpečností by mělo být zpracováváno veřejně, aby byla přilákána maximálně široká veřejnost a nalezení optimálního řešení. Do samostatného soukromého seznamu rozesílky se navrhuje zasílat pouze urgentní zprávy o zranitelnostech, které jsou snadno zneužitelné, představují hrozbu pro mnoho uživatelů a umožňují získání rozšířených privilegií nebo schopností.

Zranitelnosti odhalené pomocí AI asistentů by měly být vždy diskutovány veřejně, protože podobné problémy jsou často odhalovány více výzkumníky současně. Přitom není třeba odhalovat v reportu exploit – stačí zmínit, že je k dispozici, a předat ho soukromě na základě žádosti správců.

Samostatně jsou popsána pravidla pro předávání reportů vytvořených pomocí AI asistentů. Takových reportů je posíláno velmi mnoho a díky nim se čas od času podaří odhalit chyby v špatně recenzovaných částech kódu, ale správci je často ignorují kvůli nízké kvalitě a nejasnostem. Hlavní požadavky na reporty, které byly vytvořeny s pomocí AI:

  • Stručnost, bez zbytečných informací a s uvedením podstaty a důležitých detailů na začátku.
  • Pouze holý text bez Markdown tagů a dekorací.
  • Porozumění modelu hrozeb a uvedení ověřitelných faktů (například "chyba umožňuje jakémukoli uživateli získat CAP_NET_ADMIN"), a ne teoretických spekulací a domněnek o důsledcích zranitelnosti.
  • Před odesláním zprávy je nutné důkladně otestovat funkčnost exploitů generovaných pomocí AI a zajistit možnost reprodukovat problém.
  • Využití AI pro vývoj a testování opravy zjištěného problému.

Podle statistik správce většina zpráv o chybách zasílaných jako opravy zranitelností vlastně nebyla, a měly by být zpracovány běžným způsobem jako obvyklé chyby. Pro rozlišení mezi zranitelnostmi a běžnými chybami byla navržena model hrozeb jádra Linux. Mezi možnosti a záruky, jejichž porušení může být považováno za zranitelnost, patří:

  • Izolace na úrovni uživatelů: přístup k souborům pouze pro vlastníka, paměť procesu není dostupná jiným uživatelům, ptrace je zakázán pro cizí procesy, izolace IPC a síťové komunikace.
  • Ochrana založená na capabilities: bez CAP_SYS_ADMIN není možné měnit konfiguraci jádra, paměť nebo stav systému, bez CAP_NET_ADMIN není možné měnit síťová nastavení nebo zachytávat provoz, bez CAP_SYS_PTRACE není možné sledovat procesy jiných uživatelů.
  • Prostor jmen uživatelských identifikátorů (CONFIG_USER_NS) umožňuje nepřihlašovaným uživatelům vytvářet své izolované prostředí, z nichž nelze ovlivnit globální prostor jmen, například měnit čas, načítat moduly a montovat bloková zařízení.
  • Ladicí rozhraní (/proc/kmsg, perf, debugfs), skrze která lze získat citlivé informace, jsou dostupná pouze po výslovném udělení přístupu administrátorem.

Schopnosti, které nejsou považovány za zranitelnosti:

  • Použití zastaralých větví jádra.
  • Sestavení se zapnutím voleb pro vývojáře nebo snižujících bezpečnost (např. CONFIG_NOMMU).
  • Nastavení nebezpečných nastavení sysctl, voleb příkazového řádku, přístupových práv v FS, capabilities nebo otevření přístupu k privilegovaným rozhraním nepřihlašovaným uživatelům (např. zápis do procfs a debugfs).
  • Problémy ve funkcích určených pouze pro vývoj a ladění jádra, jako jsou LOCKDEP, KASAN a FAULT_INJECTION, které nejsou určeny k zařazení do pracovních konfigurací.
  • Problémy v ovladačích, modulech a podsystémech nacházejících se v sekci STAGING nebo označených jako experimentální, nebezpečné nebo nefunkční.
  • Používání třetích stran modulů jádra nebo neoficiálních forků jádra.
  • Požadavek na nadbytečná oprávnění, jako je nutnost vykonávat akce s právy root nebo od uživatele disponujícího právy CAP_SYS_ADMIN, CAP_NET_ADMIN, CAP_SYS_RAWIO a CAP_SYS_MODULE.
  • Teoretické útoky vyžadující laboratorní podmínky, miliardy pokusů, emulaci nebo modifikaci hardwaru, nesouměrné náklady a nerealistické konfigurace (např. systémy se stovkami tisíc jádrových CPU).
  • Obcházení mechanismů ochrany (např. ASLR) bez demonstrace exploit. Absence kontrol argumentů a návratových chybových kódů, které nemají jasné důsledky.
  • Náhodné úniky informací, které nejsou pod kontrolou útočníků, jako zbytková data v chybových zprávách a úniky adres/pointers na paměť jádra bez přímé možnosti zneužití.
  • Chyby při montování poškozených obrazů disků, pokud není ovladač deklarován jako vhodný pro použití s nedůvěryhodnými médií. Problémy s obrazy disků, které lze identifikovat a vyřešit pomocí spuštění utility fsck.
  • Útoky vyžadující fyzický přístup k zařízení, modifikaci hardwaru nebo připojení hardwarových zařízení, jako jsou desky pro útok na DMA a logické analyzátory, pokud není systém speciálně nakonfigurován k ochraně před takovými útoky (IOMMU).
  • Regrese s funkčností a výkonem, které se dají odstranit úpravou oprávnění a limitů.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster