Ķīlas izolācijas mehānismu plānots portēt uz Linux

Nesen Cosmopolitan C standarta bibliotēkas autors un Redbean platforma paziņoja caur a paziņoja par ķīlas() izolācijas mehānisma ieviešanu operētājsistēmai Linux.

Fue sākotnēji izstrādāja OpenBSD projekts y ļauj selektīvi aizliegt ka lietojumprogrammas piekļūst neizmantotiem sistēmas zvaniem (aplikācijai tiek izveidots sava veida sistēmas zvanu baltais saraksts un citi zvani ir aizliegti). Atšķirībā no operētājsistēmā Linux pieejamajiem syscall piekļuves kontroles mehānismiem, piemēram, seccomp, ieķīlāšanas mehānisms jau no paša sākuma ir izstrādāts tā, lai tas būtu pēc iespējas lietotājam draudzīgāks.

Neveiksmīgā iniciatīva izolēt lietojumprogrammas OpenBSD bāzes vidē, izmantojot systrace mehānismu, parādīja, ka izolēšana atsevišķu sistēmas izsaukumu līmenī ir pārāk sarežģīta un laikietilpīga.

Kā alternatīva tika piedāvāta ķīla, kas atļauts izveidot izolācijas noteikumus, neiedziļinoties detaļās un manipulējot ar sagatavotajām piekļuves klasēm.

Piemēram, tiek piedāvātas klases: stdio (ievade/izvade), rpath (tikai lasāmi faili), wpath (failu rakstīšana), cpath (failu izveide), tmppath (darbs ar pagaidu failiem), inet (sockets tīkls), unix (unix ligzdas). ), dns (DNS izšķirtspēja), getpw (lasīšanas piekļuve lietotāju datu bāzei), ioctl (ioctl izsaukums), proc (procesu kontrole), exec (startēšanas procesi) un id (atļauju kontrole).

Noteikumi darbam ar sistēmas izsaukumiem ir norādītas anotāciju veidā, kas ietver atļauto sistēmas izsaukuma klašu sarakstu un failu ceļu masīvs, kur piekļuve ir atļauta. Pēc modificētās lietojumprogrammas kompilēšanas un palaišanas kodols pārņem noteikto noteikumu ievērošanas uzraudzību.

Atsevišķi tiek izstrādāta FreeBSD ķīlas ieviešana, kas izceļas ar spēju izolēt lietojumprogrammas, neveicot izmaiņas to kodā, savukārt OpenBSD ķīlas izsaukums ir vērsts uz ciešu integrāciju ar bāzes vidi un anotāciju pievienošanu kodam. no katra.

Ķīla ir kā aizliegtais auglis, kuru mēs visi iekārojam, kad priekšnieks saka, ka mums vajadzētu izmantot tādas lietas kā Linux. Kāpēc tam ir nozīme? Tas ir tāpēc, ka ķīla () faktiski padara drošību saprotamu. Linux nekad īsti nav bijis tāds drošības slānis, ko vienkārši mirstīgie varētu saprast.

Linux ķīlas porta izstrādātāji ņēma piemēru no FreeBSD un tā vietā, lai veiktu koda izmaiņas, viņi sagatavoja papildu utilītu no pledge.com, kas ļauj piemērot ierobežojumus, nemainot lietojumprogrammas kodu. Piemēram, lai palaistu curl utilītu ar piekļuvi tikai stdio, rpath, inet un threadstdio sistēmas izsaukuma klasēm, vienkārši palaidiet "./pledge.com -p 'stdio rpath inet thread' curl http://example.com » .

Lietderība darbojas visos Linux izplatījumos kopš RHEL6 un tai nav nepieciešama root piekļuve. Turklāt, pamatojoties uz kosmopolītisko bibliotēku, tiek nodrošināts API ierobežojumu pārvaldībai C valodas programmu kodā, kas cita starpā ļauj izveidot anklāvus, lai selektīvi ierobežotu piekļuvi saistībā ar noteiktām lietojumprogrammas funkcijām.

Pagātnē ir bijuši daži izstrādātāji, kas to ir izmēģinājuši. Es nemācēšu nosaukt vārdus, jo lielākā daļa šo projektu nekad netika pabeigti. Runājot par SECOMP, tiešsaistes apmācības tikai izskaidro, kā iekļaut sistēmas zvanus baltajā sarakstā, tāpēc lielākā daļa cilvēku zaudē interesi, pirms izdomā, kā filtrēt argumentus. Projektiem, kas virzījās uz priekšu, bija arī tādas nepilnības, piemēram, ļāva mainīt setuid/setgid/sticky bitus. Tāpēc nevajadzētu izmantot nevienu no pašreizējām alternatīvām. Es domāju, ka šie centieni mūs daudz vairāk tuvina solījuma() iegūšanai nekā jebkad agrāk.

Ieviešanai nav nepieciešamas kodola izmaiņas: utilītu ierobežojumi tiek tulkoti SECCOMP BPF noteikumos un apstrādāti, izmantojot Linux vietējo sistēmas zvanu izolācijas mehānismu. Piemēram, solījums ("stdio rpath", 0) tiks pārveidots par BPF filtru

Visbeidzot, ja jūs interesē uzzināt vairāk par to, varat iepazīties ar informāciju Šajā saitē.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.