Project ad portum pignus solitudo mechanismum ad Linux

Auctor bibliothecae Cosmopolitanae C et suggestus Redbean exsecutionem pignoris () mechanismum pro Linux solitudo denuntiavit. Pignus ab OpenBSD inceptum primum evolvit ac permittit ut applicationes selective prohibeas ne accessus systematis insueti vocationum (quaedam album systematis vocatuum album ad applicationem formatum est, et aliae vocationes prohibentur). Dissimile systematis vocationis restrictionis mechanismi praesto in Linux, ut seccomp, mechanismum pignoris primitus designatum est quam simplex fieri potest.

Defecit inceptum ad applicationes segregandas in ambitu systraeorum mechanismo in OpenBSD base utens ostendit solitarium in ambitu vocationis singularum systematum nimis compositum esse et tempus consumens. Ut joco, pignus propositum est, quod effecit ut praecepta solitaria creandi sine singulis ingrederetur et classium accessio abusionibus promptae factae essent. Exempli gratia, classes oblatae stdio sunt (input/output), rpath (litteras tantum legere), wpath (limas scribere), cpath (limas creare), tmppath (operare cum fasciculis temporariis), inet (basibus retiacula), unix ( unix bases , dns (DNS resolution), getpw (legendi accessum ad datorum usoris), ioctl (ioctl vocatio), proc (processus administratio), exec (processus launch) et id (aditus iura procuratio).

Regulae ad operandum cum vocationibus systematis specificantur in annotationibus, incluso indice permissorum ordinum vocatorum systematis et ordinatae viae documentorum quibus aditus permittitur. Post aedificationem et applicationem mutationis deductis, nucleus operam occupat vigilantiae obsequii cum regulis definitis.

Exsecutio pignoris separatim augetur pro FreeBSD, quae facultatem segregandi applicationes sine mutationibus ad suum codicem distinguit, cum in OpenBSD vocationis pignus intendatur ad integram integrationem cum basi ambitu ac annotationibus ad codicem cuiusque addendo. adhibitis.

Tincimenta pignoris portus pro Linux exemplum FreeBSD sumpserunt et, pro mutando codice, additamentum ad utilitatem pignoris paraverunt.com id permittit ut restrictiones adhibere sine codice applicationis mutato. Exempli causa, ut curram utilitatem cum accessu solum ad stdio, rpath, inet et threadstdio systematis vocant classes, mox currere "./pledge.com -p 'stdio rpath inet thread' crispum http://example.com".

Fides utilitas opera in omnibus distributionibus Linux incipientibus a RHEL6 et radicibus accessum non requirit. Accedit in bibliotheca cosmopolitana fundata, API praebetur restrictiones in codice programmatis in lingua C disponendi, quae, inter alia, clavos creare permittit ut accessum selective restringat in relatione ad quasdam functiones applicationes.

Exsecutio mutationes nuclei - pignoris restrictiones in SECCOMP BPF transferuntur et processus utens systema Linux indigena mechanismum vocationis solitudo. Exempli gratia, vocatio pignoris ("stdio rpath", 0) convertetur ad colum staticum BPF structum sock_filter kFilter[] = { /* L0*/ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, syscall, 0, 14-1 ), /* L1*/ BPF_STMT(BPF_LD | BPF_W | BPF_ABS, ON(args[0])), /* L2*/ BPF_JUMP(BPF_JMP | / BPF_JUMP( BPF_JMP | BPF_JEQ | BPF_K, 2, 4, 3 - 0), /* L3*/ BPF_STMT(BPF_LD | BPF_W | BPF_K, ~10x0), /* L13*/ BPF_JUMP(BPF_JMP|BPF_JEQ| BPF_K, 4, 4 - 1, 5), /* L0*/ BPF_JUMP(BPF_JMP|BPF_K, 80800, 6, 1-8); , /* L7*/ BPF_STMT(BPF_LD | BPF_W | BPF_ABS, OFF(args[0)), /* L7*/ BPF_JUMP(BPF_JMP | BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, 2, 0 - 13, 8), /*L8*/ BPF_JUMP(BPF_JQ. SECCOMP_RET_ALLOW), /*L2*/ BPF_STMT(BPF_LD | BPF_W | BPF_ABS, OFF(nr)), /*L9*/ /* altera colum */};

Source: opennet.ru