( _Franko_ | 2024. 05. 06., h – 13:18 )

Attól, hogy te okosabbnak tartod magad mindenkinél, meg hogy vannak rá példáid a trehány kódolás kapcsán, még nem lesz igazad. A noexec,nosuid,nodev kockázatot csökkentő intézkedés, senki sem mondta, hogy a bölcsek köve.

Szépen belinkeltem, hogy miért nem csökkent kockázatot: kikerülhető, mégpedig könnyedén. Bekapcsolva csak magadat szopatod, a rosszarcúak úgy mennek rajta keresztül, mint meleg kés a vajon. Felmásolnak egy shell fájlt és a binárist, ami meghívható noexec esetén is a script-en keresztül, ami beolvassa a binárist a saját memóriájába a /proc/self/mem device-on keresztül, aztán memóriából elindítja a binárist és kész is vagyunk. Ezeregy demó van rá, ha érdekel részletesen.

Mit értél el a noexec használatával? Semmit, magadat szopattad.

Ami meg nem megy miatta, azt ki kell kalapálni.

A legjobb kikalapálás a Debian-ban volt, amelyik update előtt preExec kikapcsolta a noexec flag-et, letolta az update-et, aztán visszakapcsolta. Olyan, mint az a koton, ami mindig a farkadon van, kivéve amikor baszol. :D

(Néztem néhány tool-t, amit nálad szerintem sokkal több tudást birtokló, kifejezetten security-ben utazó cégek raktak össze, és érdekes módon mindegyik(!) jelezte azon a gépen, ahol ez nem így volt, hogy például a /tmp mount paramétereiből a fentiek hiányoznak...)

Ja, hogyne, én is találkoztam ilyenekkel, aztán meg jött az, hogy szarrá kell minden konfigurálni, a rosszarcú meg bejön és futtat, amit akar, merthogy tud. Ezek ilyen sok éves rutinok, a bejövő szarok pedig már rég meghaladták ezeket a sok éves rutinokat. Ha a fenti trükköt nem ismeri a security ember, az szégyen, ha meg a trükk ismeretében is veri az asztalt a noexec miatt, akkor nem csak szégyen, hanem felháborító szégyen.

De felőlem mindenki azzal szopatja magát, amivel akarja, csak azt tartsa fejben, hogy a noexec a valóságban nem véd az égvilágon semmitől, mármint a 2.6.39 kernel óta. A SELinux és társai megoldják, mert tudják korlátozni a /proc/self/mem írását, de gondolom azt nem használod, hanem hiszel a noexec működésében.

Legutoljára idén februárban nyünnyögtek a kernel listán erről, hogy 20 - azaz húsz - év elteltével kellene már valamit kezdeni, ha már több mint 7 - azaz hét - éve közkézen forog az exploit, de mindig az lesz a vége, hogy a user használja inkább SELinux és társait, mert a /proc/self/mem piszkálása miatt túl sok minden eltörne.

Szóval újra és röviden: a noexec semmi ellen nem véd kurva sok ideje. Aki meg 20 év alatt nem jött erre rá, az menjen inkább kukoricát kapálni és ne ossza az észt security területen.