Egyesekben felmerülhet kérdés, hogy mi szükség van erre a megoldásra, hiszen a felhasználók évek óta tudnak privilégium nélkül mount-olni. A válasz az, hogy a jelenlegi mechanizmusnak számos hiányossága van. Minden egyes privilégium nélküli mount-ot engedélyezni kell a /etc/fstab file-ban. E mechanizmus egyszerű helyzetekben - például a felhasználó számára lehetővé tenni a CD vagy az USB pendrive mount-olását - működő megoldás lehet, de bonyolultabb esetekben - például amikor a felhasználó FUSE filerendszereket akar mount-olni - már nem hatékony.
Emellett a meglevő mechanizmus igényli, hogy a mount segédprogram "setuid root"-os legyen. Minden setuid-os bináris potenciális biztonsági rés, tehát a rendszerből való eltávolításuk nagyonis kívánatos. Amellett, hogy az "unprivileged mounts" segít megszabadulni a "setuid root"-os mount-tól, policy-alapú felügyeletet ad a mount / umount felett a rendszeradminisztrátor kezébe. Szóval, előzetes hírek szerint - hacsak valami komolyabb probléma közbe nem jön - a privilégium nélküli mount patch-nek jó esélye van arra, hogy bekerüljön a 2.6.25-ös kernelbe.
A cikk elolvasása jelenleg csak LWN előfizetők számára lehetséges. A HUP támogatóinak köszönhetően azonban HUP olvasóknak lehetőségük van az infókhoz hamarabb hozzájutni.
- A hozzászóláshoz be kell jelentkezni
- 3598 megtekintés
Hozzászólások
Korábban írtam, hogy a HUP támogatóinak adományából előfizettem az LWN-re, egy évre. Lehetőségem van az ott olvasható cikkeket kifele publikálni egy privát linken keresztül, de nem vagyok benne biztos, hogy ennek a funkciónak "normális használatába" belefér az, ha belinkelem egy nagyobb látogatottságú oldalon. Ezt még lelevelezem az illetékesekkel. Addig forrás nélkül álljon itt a cikk.
--
trey @ gépház
- A hozzászóláshoz be kell jelentkezni
a HUP támogatóinak adományából előfizettem az LWN-re, egy évre.
Na végre! :)
- A hozzászóláshoz be kell jelentkezni
Na igen, de 1 het utan szabadon olvashato, annyit meg ki lehet birni, foleg mivel az LKML-t is olvasom, igaz csak futolag, de legalabb valami ralatasom van, hogy epp mit csinalnak arrafele az emberek es mit nem ... Na persze attol jo otlet ilyet csinalni trey, bocsi, nem ezt ohajtottam ketsegbe vonni, persze.
- A hozzászóláshoz be kell jelentkezni
"a CD vagy az USB pendrive mount-olását"
az automount nem erre valo? a usernek van irasjoga a dolgokhoz ha jol tudom, es nem kell legyen az fstabba!? csak kerdem
- A hozzászóláshoz be kell jelentkezni
Gnomenal automount FUSE cuccokat is felmountol fstab nelkul (ntfs-3g). Mondjuk ez lehet hogy setuid mount-al tortenik, nem vagom:)
- A hozzászóláshoz be kell jelentkezni
ez oké, de ha nincs Gnome, mondjuk egy serveren, amihez csak grafikus felületen tudsz hozzá férni, és ott szeretnél mondjuk gmailfs-t mountolni, akkor azt hogy tudod megcsinálni root privilégiumok nélkül, és fstab nélkül?
- A hozzászóláshoz be kell jelentkezni
Arról nem is beszélve, hogy a Gnome is feltehetően valami SUID binárist használ a művelet végrehajtására...
- A hozzászóláshoz be kell jelentkezni
remek. már csak 1-2 grsec-szerű dolgot kéne beletenni (pl. pax igazán mehetne bele)
tényleg, mi is lesz itt valamelyik következő kiadásban? valami über megoldás rémlik, amit szeretnének beletenni (ilyen sec. dolog)
- A hozzászóláshoz be kell jelentkezni
PaX bekerülése a vanillába esélytelen, még Ingo ExecShield-je is csak a RedHat kernelében van, mert Linus nem akar ilyesmit látni a saját fájában...
- A hozzászóláshoz be kell jelentkezni
mi a gondja vele (az ilyesmikkel)?
- A hozzászóláshoz be kell jelentkezni
Linus saját bevallása szerint paranoid.
Ezek paranoidoknak szánt megoldások még sem érdeklik.., vajon miért...
- A hozzászóláshoz be kell jelentkezni
oké, de akkor a smack miért? az kevésbé paranoid? :)
amúgy meg szerintem vége van azoknak a "boldog békeévek"-nek, amikor az ilyen dolgokat hanyagolhattuk még; szóval linus-nak se ártana kicsit újítania a szemléletén (szvsz)
- A hozzászóláshoz be kell jelentkezni
Egész más tészta.
- A hozzászóláshoz be kell jelentkezni
kifejtenéd?
- A hozzászóláshoz be kell jelentkezni
"The goal of the PaX project is to research various defense mechanisms
against the exploitation of software bugs that give an attacker arbitrary
read/write access to the attacked task's address space."
"MAC secures information by assigning sensitivity labels on information and comparing this to the level of sensitivity a user is operating at."
Megneheziteni egy kod hiba kihasznalsat vs. ujabb hozzaferes szabajzasi mod.
- A hozzászóláshoz be kell jelentkezni
Mert olyan mint a boszorkanyoknal a sepru, olyan mintha tudnanak vele repulni, holott, azert tudnak repulni, mert boszorkanyok. Nincs ertelme. Persze Linusnak erre mas publikus magyarazata van.
- A hozzászóláshoz be kell jelentkezni
A legelső non-exec stack/heap kernel patchek (pl. Solar Designer owl patche) elég könnyen kijátszhatók voltak és Linus akkor eldöntötte, hogy ilyen jellegű megoldás nem kerül be a kernelbe, mert nem nyújt garantált védelmet.
- A hozzászóláshoz be kell jelentkezni
hehe. erről az old spice szlogen jutott eszembe...
- A hozzászóláshoz be kell jelentkezni
Az hogy egyenlőre nincs olyan módszer, ami 100% biztonsággal örökre védene a programhibák ellen. Addig meg bármi cucc a körülötte keltett marketing hype-al arányos méretű hamis biztonságérzetet kelt. A megoldás az, hogy tessék kijavítgatni a buffer overflow-kat, meg off by one hibákat.
Valakik kitalálták hogy a non exec stack az ultimate solution. Ja, amíg el nem terjedtek a return-to-libc támadások. És így tovább ez állandó macska-egér harc lesz. A linux kernel persze csendben tartalmaz számos védelmet, ami azért erősen lelassítja egy programhiba kihasználhatóságát.
2.6.23, saját tapasztalat:
- stack layout randomization: a stack 4096 féle virtuális címen kezdődhet, minden indításkor máshol.
- library layout randomization: kb. ugyan ez a dinamikusan linkelt lib-ekre. Egyszerű return-to-libc-ről ennyit.
Ping-of-death jellegű "egy csomag/request és bennvagyok" dolgoknak lőttek. Persze nem csodaszer. Ha valami service ész nélkül újraindulgat (sikertelen támadás == segfault, gondolom ez trivi) akkor ezek a cuccok nem védenek, előbb utóbb stimmelni fog a layout, ezt is kipróbáltam.
Mindezek ellenére lehet csinálni return-to-libc-t csak ahhoz rendelkezni kell a támadott bináris pontos másolatával és strippelt binárisok esetén komoly szívás megtatálni a PLT-ben a keresett fuggvényt. A PLT fix futásról futásra.
- A hozzászóláshoz be kell jelentkezni
stack layout randomization -> ezek mikor jelentek meg?
2.6.XX?
linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.16-pancs1
- A hozzászóláshoz be kell jelentkezni
Pontosan nem tudom. Lehet hogy nem ez a pontos neve. Régen ki lehetett találni, hogy a dinamikus linker milyen belépési pontokkal teszi le a lib függvényeket. Ezek a címek fixek voltak, de 2.6.23 esetén futásról futásra mások. Sikeres return-to-libc támadáshoz az adott binárisban kell megtalálnod azt a call-t ami azt a függvényt hívja, amit használni akarsz. Strip-elt bináris esetén én kifogytam a tudományból.
- A hozzászóláshoz be kell jelentkezni
Ez a Pax része ha jól tudom :)
És 2.4-es kernelhez is elérhető.
--
http://kac.duf.hu/~balage/blog
- A hozzászóláshoz be kell jelentkezni
igen, azt tudom, hogy a Pax része, de a mainline-ba mikor került bele, mert google-val csak patch foszlányoknat találtok 2.6.10-rcY-os időkből ...
linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.16-pancs1
- A hozzászóláshoz be kell jelentkezni
Le tudom tiltani a randomizaciokat, egy adott proramnal mondjuk ? (as root)
- A hozzászóláshoz be kell jelentkezni
echo 0 > /proc/sys/kernel/randomize_va_space
(??)
csak ez os szint és nem csak egy program
linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.16-pancs1
- A hozzászóláshoz be kell jelentkezni
thx
- A hozzászóláshoz be kell jelentkezni
paxctl?
-. . - -... ... -..
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
jaja, erre gondoltam, kösz
- A hozzászóláshoz be kell jelentkezni
E mechanizmus egyszerű helyzetekben - például a felhasználó számára lehetővé tenni a CD vagy az USB pendrive mount-olását - működő megoldás lehet, de bonyolultabb esetekben - például amikor a felhasználó FUSE filerendszereket akar mount-olni - már nem hatékony.
És most emiatt az uram bocsá igencsak szűk réteg (ótómata FUSE-izó user) miatt kell megint szétverni egy évek óta működő szisztémát. grat. :-(
Emellett a meglevő mechanizmus igényli, hogy a mount segédprogram "setuid root"-os legyen. Minden setuid-os bináris potenciális biztonsági rés, tehát a rendszerből való eltávolításuk nagyonis kívánatos.
Ezt nem vitatom, de azért ez az említett setuidos program (mount) azért már jópár éves, megkockáztatom hogy kinőtte gyerekbetegségeit, és talán nem kellene szétverni mint működő rendszert.
Megkockáztatom azt is, hogy a setuid-rootos mount ma már nem jelent akkora biztonsági rizikót, mint egy kezdetleges "privilégium nélküli mount patch" közvetlenül a kernelben...
Nagyon remélem megoldják úgy hogy a kernelben "opcionális" lesz. Tehát ha akarom, akkor enélküli kernelt használok.
-----------------
Nem a zsömle kicsi, a pofátok nagy...
- A hozzászóláshoz be kell jelentkezni
Mit értesz az alatt, hogy "szétverni"? Talán azt, hogy ezután a mount parancs CD-t fog írni? Vagy mit?
--
trey @ gépház
- A hozzászóláshoz be kell jelentkezni
Arra értem a "szétverni"-t, hogy kvázi pl. az fstab jóeséllyel megszűnik a jelenlegi formájában.
Ill. talán még a jelenlegi udev-es rendszer is értelmét veszti. Mert minek kell pl. a kötetcimke alapú becsatolás, ha mindenki azt csatol be a rendszerbe, és oda ahova és amit akar ? A kettő valahol üti egymást.
Legalábbis nekem úgy tűnik. Megdugom a kasznit egy usb pendrive-al, udev érzékeli a kötetcimkét fstab alapján lehetőséget biztosít az usernek, hogy becsatolja a megadott opciókkal.
Ha unprigvileged mount van, akkor ugye kvázi nincs fstab. nem tiszta az egész. (nekem). vagy mi van akkor ha van egy fstab bejegyzés a kötetcimkére, de az eszköz amit becsatolnék unprivileged mount ? Akkor máris van egy logikai ellentmondás, amiből vagy kernelpanic (=local DoS) lesz, vagy high critical szintű local security bypass.
Akkor ugye vannak bizonyos biztonsági opciók, mint a noexec, nodev, stb. Ha user csatol be közvetlenül akkor nyílván ezek sem játszanak, ergo idegen binárist könnyebben juttat be a rendszerbe. mi értelme van a /home-t noexeccel becsatolni ha /home/badguy/pendrive1-en meg futnak a binárisok, mert user úgy csatolja be ahogy akarja...
De azért nyugtassuk magunkat azzal, hogy legalább egy setuid rootos programmal kevesebb.
meg mondjuk talán nem volna jó mindenféle fájlrendszert userrel becsatoltatni. Pl. sysfs, tmpfs, proc meg hasonlókat... marha jól nézne ki egy "klón-sysfs" a /home/badguy/sys/devices/system-ben pl. ... biztonsági szempontból.. :(((
Mivel nem írtál fájlrendszertől való függőséget, valószínűleg nem egy plusz "nopriv" mount() opció lesz, amit mondjuk eszköznévhez/partícióhoz/stb. biggyesztve az fstabban, az fstab kvázi "lepasszolja" magáról az eszközzel való esetleges tennivalókat. Ez a lehetőség ugye fájlrendszerfüggő, mert ha az adott fájlrendszertípus nem ismeri a nopriv-et akkor nem fog vele foglalkozni.
Persze ez mind találgatás amit írok, mert én nem vagyok LWN előfizető, nem látok bele abba hogy miképpen is működik a patch, de a cikk alapján meglehetős fenntartásokkal fogadom.
És akkor még nem volt szó a különféle alternatív biztonsági megoldásokról melyek további korlátozási lehetőséget biztosítanak a mount() jelenlegi formájára. Ezt is mind át kell variálni (=szét kell verni). Mindezt azért mert van egy pár százaléknyi elmeroggyant, aki össze vissza csatol be a rendszerébe mindenféle fusis fájlrendszert és lusta rá sudo-s szkripteket csinálni ha az fstab-bal user kapcsolóval nem tudja megetetni. Inkább turjunk kernelt mind ahányan csak vagyunk... :((
------
Nem a zsömle kicsi, a pofátok nagy...
- A hozzászóláshoz be kell jelentkezni
v6 -> v7:
- add '/proc/sys/fs/types/<type>/usermount_safe' tunable (new patch)
- do not make FUSE safe by default, describe possible problems
associated with unprivileged FUSE mounts in patch header
- return EMFILE instead of EPERM, if maximum user mount count is exceeded
- rename option 'nomnt' -> 'nosubmnt'
- clean up error propagation in dup_mnt_ns
- update util-linux-ng patch
v5 -> v6:
- update to latest -mm
- preliminary util-linux-ng support (will post right after this series)
v4 -> v5:
- fold back Andrew's changes
- fold back my update patch:
o use fsuid instead of ruid
o allow forced unpriv. unmounts for "safe" filesystems
o allow mounting over special files, but not over symlinks
o set nosuid and nodev based on lack of specific capability
- patch header updates
- new patch: on propagation inherit owner from parent
- new patch: add "no submounts" mount flag
v3 -> v4:
- simplify interface as much as possible, now only a single option
("user=UID") is used to control everything
- no longer allow/deny mounting based on file/directory permissions,
that approach does not always make sense
v1 -> v3:
- add mount flags to set/clear mnt_flags individually
- add "usermnt" mount flag. If it is set, then allow unprivileged
submounts under this mount
- make max number of user mounts default to 1024, since now the
usermnt flag will prevent user mounts by default
- Miklos Szeredi @ [patch 00/10] mount ownership and unprivileged mount syscall (v7)
linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.16-pancs1
- A hozzászóláshoz be kell jelentkezni
akkor te sem vagy az olyan rendszerek híve, amik mindent megcsinálnak helyetted, szereted kézben tartani, hogy mi mit csinál.
igen érdekes lesz, hogy minden user azt csatolgathat, amit akar, de szvsz ennek lesznek hátrányai is ... pl megjelennek az olyan fincsi programok, amik direkt erre mennek rá, hogy egy file-t felcsatolnak (N+1)*M-szer ls ezzel legyilkolják a VFS-t ...
linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.16-pancs1
- A hozzászóláshoz be kell jelentkezni
"igen érdekes lesz, hogy minden user azt csatolgathat, amit akar"
vs.
"Amellett, hogy az "unprivileged mounts" segít megszabadulni a "setuid root"-os mount-tól, policy-alapú felügyeletet ad a mount / umount felett a rendszeradminisztrátor kezébe."
- A hozzászóláshoz be kell jelentkezni
igen, de a setuid-es módszernél fstab-ot kellett beállítani, hogy ki mit hová és oda nem adok meg annyit, hogy a rendszert szétcsessze ...
linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.16-pancs1
- A hozzászóláshoz be kell jelentkezni
Van egy rendszerszintű számláló, amely nyilvántartja az unprivileged mount-ok számát. Ha ez eléri a maximumot, addig nem lehetséges új unprivileged mount-ot csinálni, amíg valaki nem umount-ol előtte. A vfsmount struktúrába bekerül egy új mező (uid), így kernel userre lebontva tudni fogja, hogy ki mennyit mount-olt. Később igény esetén system wide limit helyett a limit akár userre is megadható lenne.
--
trey @ gépház
- A hozzászóláshoz be kell jelentkezni
majd ránézek a forrásra
meg arra leszek kiváncsi, hogy a kezdeti commitkor mekkora fennakadás lesz
linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.16-pancs1
- A hozzászóláshoz be kell jelentkezni
És, hogy magyarázod el az fstab-nak, hogy pendrive 31. particióját a user, hova tudja mountolni ?
Mekkora fstabbal szaladgálsz ?
- A hozzászóláshoz be kell jelentkezni
Van egy udev nevű jószág, ahol a partíciókat UID, és kötetcimke alapján is be lehet csatolni, tehát nem a pendrive 31. particióját csatoljuk be, hanem a
/dev/disk/by-label/***
-t.
-----
Nem a zsömle kicsi, a pofátok nagy...
- A hozzászóláshoz be kell jelentkezni
a policy dologra kíváncsi lennék...
egyébként a levélben az áll, hogy
"After much sitting in -mm, Andrew dropped this patchset due to
conflicts with other stuff. It would be nice, if it could be reviewed
in time for 2.6.26 (2.6.25 is closed as far as I understand)."
nem találtam olyan választ, ahol ezt cáfolták volna
- A hozzászóláshoz be kell jelentkezni
patch:
[00/10] mount ownership and unprivileged mount syscall (v7)
[01/10] unprivileged mounts: add user mounts to the kernel
[02/10] unprivileged mounts: allow unprivileged umount
[03/10] unprivileged mounts: propagate error values from clone_mnt
[04/10] unprivileged mounts: account user mounts
[05/10] unprivileged mounts: allow unprivileged bind mounts
[06/10] unprivileged mounts: allow unprivileged mounts
[07/10] mount ownership and unprivileged mount syscall (v7)
[08/10] unprivileged mounts: make fuse safe
[09/10] unprivileged mounts: propagation: inherit owner from parent
[10/10] unprivileged mounts: add "no submounts" flag
linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.16-pancs1
- A hozzászóláshoz be kell jelentkezni
http://lkml.org/lkml/2008/1/16/96
Nah, ha csak egy nosubmnt-al kell ellátni az összes fájlrendszert az fstabban és marad a régi rendszer, az már sz'tem alapvetően jó. :-)
A régi rendszer egyszerűen túl jól megy sz'tem ahhoz hogy csak úgy kidobjuk.
SZERK:A régi rendszer egyszerűen túl jól megy sz'tem ahhoz hogy csak úgy kidobjuk.
Mentségemre szóljon hogy jópár éve debiant használok, és alapvetően immunis vagyok az olyan változásokra, melyek számomra akármilyen pluszmunkát is jelentenek, és nem látom hogy számomra - önző disznó na! - értelme van. Legyen az egy új ACPI megvalósítás a kernelben, UTF-8, vagy unprivileged mount. :)))
/SZERK_vége.
Esetleg még egy apró megjegyzés: azért a fejlesztő is látja hogy potenciálisan gyengítheti a motyója a rendszerbiztonságot:
For "safe" filesystems allow unprivileged mounting and forced
unmounting.
A filesystem type is considered "safe", if mounting it by an
unprivileged user may not cause a security problem. This is somewhat
subjective
---------
Nem a zsömle kicsi, a pofátok nagy...
- A hozzászóláshoz be kell jelentkezni
maradunk a debiannal és én a 2.6.22.y kernelnél :D ezt már eldöntöttem majd 2.6.26 vagy 2.6.28-ra átváltok, ha olyannak találom, de addig még sok bit folyik át a duna alatti vezetékeken.
linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.16-pancs1
- A hozzászóláshoz be kell jelentkezni