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

Linus Torvalds schválil dokument pro jádro, který popisuje proces řešení chyb souvisejících s bezpečností, definuje model hrozeb, objasňuje, které chyby jádra jsou považovány za zranitelnosti, a popisuje, jak řešit chyby identifikované pomocí umělé inteligence. Dokument připravil Willy Tarreau, autor HAProxy a dlouholetý vývojář jádra. Linux, zodpovědný za udržování několika stabilních větví jádra. Rámec byl založen na dohodách dosažených během diskusí o nedávno identifikovaných kritických zranitelnostech jádra (1, 2, 3, 4), které byly odhaleny před vydáním záplat a pro které byly díky umělé inteligenci okamžitě vytvořeny funkční exploity.

Většina chyb souvisejících s bezpečností by měla být veřejně řešena, aby se dostala k co nejširšímu publiku a nalezlo se optimální řešení. Samostatný soukromý mailing list by měl být používán pouze pro zasílání naléhavých hlášení o zranitelnostech, které lze snadno zneužít, představují hrozbu pro mnoho uživatelů a umožňují získání rozšířených oprávnění nebo možností.

Zranitelnosti objevené pomocí asistentů umělé inteligence se vždy doporučují k veřejné diskusi, protože takové problémy často objevuje více výzkumníků současně. Samotný exploit by však neměl být ve zprávě zveřejněn; stačí pouze zmínit jeho dostupnost a sdílet ho soukromě v reakci na žádost správce.

Pravidla pro odesílání reportů generovaných asistenty umělé inteligence jsou popsána samostatně. Takové reporty se odesílají ve velkém množství a občas pomáhají identifikovat chyby ve špatně zkontrolovaných úsecích kódu, ale správci je často ignorují kvůli jejich nízké kvalitě a nepřesnostem. Hlavní požadavky na reporty generované umělou inteligencí jsou:

  • Stručně, bez zbytečných detailů a s podstatou a důležitými detaily uvedenými hned na začátku.
  • Pouze obyčejný text bez tagů Markdown nebo dekorací.
  • Pochopení modelu hrozby a poskytnutí ověřitelných faktů (např. „chyba umožňuje kterémukoli uživateli získat CAP_NET_ADMIN“) spíše než teoretické spekulace a dohady o důsledcích zranitelnosti.
  • Před odesláním hlášení nezapomeňte důkladně otestovat funkčnost zneužití generovaného umělou inteligencí a ujistit se, že lze problém reprodukovat.
  • Zapojení umělé inteligence k vývoji a testování řešení identifikovaného problému.

Podle statistik správců většina hlášení o chybách odeslaných pod rouškou oprav zranitelností ve skutečnosti nejsou zranitelnostmi a měly by být považovány za běžné chyby. Pro rozlišení mezi zranitelnostmi a běžnými chybami byl vyvinut model hrozeb jádra. LinuxMezi funkcemi a zárukami, jejichž porušení lze považovat za zranitelnost:

  • Izolace na úrovni uživatele: přístup k souborům omezený na vlastníka, paměť procesů není přístupná ostatním uživatelům, ptrace je pro ostatní procesy zakázáno, izolace IPC a síťové komunikace.
  • Ochrana založená na schopnostech: bez CAP_SYS_ADMIN nemůžete změnit konfiguraci jádra, paměť ani stav systému; bez CAP_NET_ADMIN nemůžete změnit nastavení sítě ani zachycovat provoz; bez CAP_SYS_PTRACE nemůžete monitorovat procesy ostatních uživatelů.
  • Jmenný prostor uživatelských ID (CONFIG_USER_NS) umožňuje neprivilegovaným uživatelům vytvářet si vlastní izolovaná prostředí, ze kterých nemohou ovlivňovat globální jmenný prostor, jako je změna času, načítání modulů nebo montáž blokových zařízení.
  • Ladicí rozhraní (/proc/kmsg, perf, debugfs), jejichž prostřednictvím lze přistupovat k důvěrným informacím, jsou přístupná pouze po explicitním udělení přístupu administrátorem.

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

  • Používání zastaralých větví jádra.
  • Sestavte s povolenými možnostmi pro vývojáře nebo možnostmi snižujícími zabezpečení (např. CONFIG_NOMMU).
  • Nastavení nebezpečných nastavení sysctl, možností příkazového řádku, přístupových práv k souborovému systému, funkcí nebo povolení přístupu k privilegovaným rozhraním neoprávněným uživatelům (například přístup pro zápis do procfs a debugfs).
  • Problémy s funkcemi určenými pouze pro vývoj a ladění jádra, jako jsou LOCKDEP, KASAN a FAULT_INJECTION, které nejsou určeny k povolení v produkčních konfiguracích.
  • Problémy v ovladačích, modulech a subsystémech, které se nacházejí v sekci STAGING nebo jsou označeny jako experimentální, nebezpečné nebo poškozené.
  • Používání modulů jádra třetích stran nebo neoficiálních forků jádra.
  • Vyžadování nadměrných oprávnění, například požadavek na provádění akcí jako root nebo uživatelem s oprávněními CAP_SYS_ADMIN, CAP_NET_ADMIN, CAP_SYS_RAWIO a CAP_SYS_MODULE.
  • Teoretické útoky, které vyžadují laboratorní podmínky, miliardy pokusů, emulaci nebo modifikaci hardwaru, nepřiměřené náklady a nerealistické konfigurace (např. systémy s desítkami tisíc jader CPU).
  • Obcházení bezpečnostních mechanismů (například ASLR) bez demonstrace zneužití. Nedostatek validace argumentů a návratových kódů chyb, které nemají žádné zjevné důsledky.
  • Náhodné úniky informací mimo kontrolu útočníka, jako jsou zbytková data v chybových zprávách a úniky adres/ukazatelů paměti jádra bez přímého zneužití.
  • Chyby při připojování poškozených obrazů disků, pokud ovladač není deklarován jako vhodný pro použití s ​​nedůvěryhodnými médii. Problémy s obrazy disků lze detekovat a opravit spuštěním utility fsck.
  • Útoky, které vyžadují fyzický přístup k hardwaru, úpravu hardwaru nebo připojení hardwarových zařízení, jako jsou útočné desky DMA a logické analyzátory, pokud není systém speciálně nakonfigurován k ochraně před takovými útoky (IOMMU).
  • Regrese funkčnosti a výkonu byly vyřešeny úpravou oprávnění a limitů.

Zdroj: opennet.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster