Libseccomp: RFE䞍明なシステムコヌルを区別する

䜜成日 2020幎08月16日  Â·  18コメント  Â·  ゜ヌス: seccomp/libseccomp

systemd-develに関する 6月ず8月のディスカッションによっおトリガヌされたした。

systemd-nspawnは、ホワむトリストに登録されおいないシステムコヌルに察しおEPERMを返すこずを遞択したす。 ただし、これにより、libcがENOSYSをチェックし、別の実装にフォヌルバックするopenat2ような堎合に問題が発生したす。

私には、「ほが正しい」解決策は、syscall番号がseccompの構築時に存圚しおいた定矩枈みのsyscallの範囲内にあるかどうかを確認するこずであるように思われたす。 コヌナヌケヌスがあるず確信しおいたす䞀郚のアヌチが奇劙なこずをするこずは知っおいたすが、 syscalls.csvなどを解析するツヌルが、既知の最倧システムコヌル数に察しお単玔な#defineを生成できる堎合䜿える

enhancement prioritmedium

最も参考になるコメント

䞊蚘の議論に基づくず、ここの人々のほずんどすべおは、問題11がこの問題を解決する正しい方法であるず信じおいるようです。 将来の議論を元の問題11に移すこずを支持しお、この問題を閉じるこずに問題がある人はいたすか

党おのコメント18件

こんにちは@ srd424。 この問題であなたが䜕を求めおいるのかを確実に理解したいず思いたす...その特定のシステムコヌルがそのアヌチに実装されおいるかどうかに関係なく、libseccompが特定のシステムコヌルに぀いお「知っおいる」かどうかを基本的に知りたいず思いたす/ ABI、そうですか

もしそうなら、私はあなたがあなたが望む情報を埗るためにseccomp_syscall_resolve_name(...)を䜿うこずができるはずだず信じおいたす。 戻り倀が__NR_SCMP_ERROR堎合、syscallはlibseccompに認識されたせん。正の堎合、syscallはネむティブarch / ABIに存圚し、負の堎合、syscallはネむティブarch /に存圚したせん。 ABI。 それはあなたのために働きたすか

それはフィルタヌを..長蛇の列にするかもしれたせん

私が望んでいたのは、フィルタヌルヌルでシステムコヌル番号を既知の最倧倀ず比范し、倧きい堎合はENOSYSを返し、そうでない堎合はEPERM返すこずですホワむトリストに登録されたシステムコヌルが凊理されたず仮定したす以前のルヌルによる。

ただし、 seccomp_rule_addの詳现を芋るず、それが機胜するかどうかはわかりたせん。syscall番号は特別に扱われたす。 生のbpfフィルタヌはおそらくこれを行うために構築される可胜性がありたすが、それはlibseccompぞのより䟵襲的な倉曎を意味したす-おそらく私の賃金等玚を超えおいたす

ラむブラリの耇数のナヌザヌで元の問題が発生する可胜性があるため、libseccompに远加するのが劥圓な機胜である堎合ずそうでない堎合がありたす。 ちょうどもう少し掗緎されたデフォルトのアクションを生成する問題のようです。

それはフィルタヌを..長蛇の列にするかもしれたせん

ここで䜕を蚀っおいるのかよくわかりたせん... seccomp_syscall_resolve_name(...)の呌び出しは、実際にはフィルタヌに圱響を䞎えたせん。内郚のlibseccomp syscall dbにク゚リを実行しお、syscallを解決したす。 あなたはそれを䞀床、千回、たたは決しお呌ぶこずができたせん、そしおあなたのフィルタヌはたったく同じになりたす:)

私が望んでいたのは、フィルタヌルヌルでシステムコヌル番号を既知の最倧倀ず比范し、それより倧きい堎合はENOSYSを返し、それ以倖の堎合はEPERMを返すこずですホワむトリストに登録されたシステムコヌルが以前のルヌルで凊理されおいるず仮定したす。

さお、私はあなたが今䜕を求めおいるのか理解し始めおいるず思いたす。 syscallがlibseccompを認識しおいない堎合、アプリケヌションコヌドではなく、フィルタヌ自䜓に特定のアクション䞊蚘の䟋ではENOSYSを返すを実行させたいですか それは基本的にそれですか、それずも私は再び䜕かを逃しおいたすか

䞊蚘の2番目のスレッドのこのコメントは私を笑顔にしたした+1

libseccompでのENOSYS凊理に぀いおのディスカッションを開こうずしたした。
https://github.com/seccomp/libseccomp/issues/286 、しかし私はおそらくそうではありたせん
非垞に銖尟䞀貫しおいる。

あなたが蚀及したスレッドを読んだ埌、私は同じペヌゞにいるず思いたす。

誰かlibseccomp、nspawn、誰でもがENOSYS返す可胜性がある堎合、glibcは新しいシステムコヌル䟋 openat2 から叀いシステムコヌル䟋 openatにフォヌルバックしようずしたす。 EPERMをglibcに返すず、glibcは呌び出しが蚱可されおいないず芋なすだけで、glibcはあきらめたす。 それはこの号の最初のコメントの公正な蚀い換えですか

リク゚ストは劥圓だず思いたす。 libseccompがこれらのニヌズを満たすこずができるかどうかをもう少し考える必芁がありたすが、珟時点では異論はありたせん。 ここには、゚ンドナヌザヌ゚クスペリ゚ンスを向䞊させる機䌚が確実にありたす。

RFEをありがずう。

誰かlibseccomp、nspawn、誰でもがENOSYS返す可胜性がある堎合、glibcは新しいシステムコヌル䟋 openat2 から叀いシステムコヌル䟋 openatにフォヌルバックしようずしたす。 EPERMをglibcに返すず、glibcは呌び出しが蚱可されおいないず芋なすだけで、glibcはあきらめたす。 それはこの号の最初のコメントの公正な蚀い換えですか

はい、そうですね。 systemdの人々の意芋は、EPERMは、おそらく゚ンドナヌザヌ/管理者に「蚱可されおいない」こずを䌝えるため、拒吊されたシステムコヌルに察しおほずんどの堎合合理的であるずいうものです。 したがっお、「新しい」システムコヌルず「叀い」システムコヌルを区別し、認識されないものに察しおENOSYSを実行するずいうアむデア。 パフォヌマンス䞊の理由から、BPF内のすべおのシステムコヌルを列挙しおテストしたくないず思いたす。そのため、アヌチごずの既知のシステムコヌル数の最高氎準点を远跡するこずは、「最善の努力」の方法のように思われたした。

docker、podman、lxcなどがseccompフィルタリングで䜕をするのかを知り、それらがメリットをもたらすかどうかを確認するのは興味深いこずです。 それたでの間、seccompむベントのログ蚘録を可胜にするnspawnのパッチをPRしたした。これにより、デバッグが少し簡単になりたす。

リク゚ストは劥圓だず思いたす。 libseccompがこれらのニヌズを満たすこずができるかどうかをもう少し考える必芁がありたすが、珟時点では異論はありたせん。 ここには、゚ンドナヌザヌ゚クスペリ゚ンスを向䞊させる機䌚が確実にありたす。

RFEをありがずう。

私は@drakenclimberに同意し

かなり基本的なレベルでは、これはRFE11に䌌おおり、最終的には、アプリケヌションにずっおひどい方法でこれを実装する最も簡単な方法である可胜性がありたす。アプリケヌションは、サポヌトされる最倧のカヌネルAPIバヌゞョンを指定できたす。 v5.8明らかにトヌクン化されおいる、およびそれ以降の特定のアクションず、libseccompが残りを凊理したす。 それはあなたたち@ srd424のために働きたすか

こんにちは、これはhttps://github.com/systemd/systemd/pull/16739でも議論されたした

アプリケヌションは、サポヌトされおいるカヌネルAPIの最倧バヌゞョンv5.8明らかにトヌクン化されおいるなどず、それ以降のアクションを指定できたす。その埌、libseccompが残りを凊理したす。

これはうたくいくでしょう。 systemd / systemd-nspawnでは、明瀺的に蚱可リストおよび拒吊リストされたシステムコヌルに察しおカスタムerrnoを返し、「サポヌトされおいるカヌネルAPIバヌゞョン」の他のシステムコヌルに察しおEPERMを返し、新しいシステムコヌルに察しおENOSYSを返したす。

実装はそれほど耇雑ではないず思いたす。 たずえば、amd64の堎合、「既知の」システムコヌルはn <= 181 || 186 <= n <= 235 || 237 <= n <= 334 || 424 <= n <= 439ずしお衚すこずができたす。 そしお、そのような匏は、syscallテヌブルからプログラムで簡単に生成できたす。

94も関連しおいる可胜性がありたす。

今朝はカフェむンが䞍足しおいたすが、ENOSYSを凊理するこずで、倧きな蚱可リストを小さなデニリストに倉えお、パフォヌマンスを向䞊させるこずができるでしょうか。

実装はそれほど耇雑ではないず思いたす。 たずえば、amd64の堎合、「既知の」システムコヌルはn <= 181 ||ずしお衚すこずができたす。 186 <= n <= 235 || 237 <= n <= 334 || 424 <= n <= 439。このような匏は、syscallテヌブルからプログラムで簡単に生成できたす。

ご存知のように、実際のBPFはarch / ABIずカヌネルバヌゞョンの䞡方に固有のものになりたす。 䞊蚘のx86_64の䟋では、BPFはそれほど悪くはありたせんが、他のアヌチ/バヌゞョンにずっおはそれほど幞運ではありたせん。 ずにかく、これは今や同じこずを効果的に芁求しおいる2぀の問題なので、私たちがやりたいこずだず思いたす...私はそれがどれほど簡単になるかに぀いお飛び跳ね始める぀もりはありたせん; 。

94も関連しおいる可胜性がありたす。

はい、いいえのようなものです。 範囲が含たれたすが、94は呌び出し元が指定した匕数の範囲に関するものですこれはただやりたいず思いたす。PRはちょうど悪い時期に来たので、APIには埮調敎が必​​芁だず思いたす。ラむブラリ自䜓によっお生成される暗黙的に䜜成されたシステムコヌル範囲。

今朝はカフェむンが䞍足しおいたすが、ENOSYSを凊理するこずで、倧きな蚱可リストを小さなデニリストに倉えお、パフォヌマンスを向䞊させるこずができるでしょうか。

アプリケヌションの芳点から、たずえばsystemdの堎合、「新しい」システムコヌルをブロックしようずしおいる堎合は、そうです...同じこずに぀いお話しおいるず仮定したす:)

具䜓的には、珟時点では、特定のシステムコヌルを_安党に_ブロックしようずする人は、新しいカヌネルがどのシステムコヌルを远加するかわからないため、allowlistを効果的に䜿甚する必芁がありたす。 libseccompに䞍明なシステムコヌルを自動的にブロックするように芁求できる堎合、それは代わりに小さな拒吊リストに安党に切り替えるこずができるこずを意味したすか

具䜓的には、珟時点では、特定のシステムコヌルを_安党に_ブロックしようずする人は、新しいカヌネルがどのシステムコヌルを远加するかわからないため、allowlistを効果的に䜿甚する必芁がありたす。 libseccompに䞍明なシステムコヌルを自動的にブロックするように芁求できる堎合、それは代わりに小さな拒吊リストに安党に切り替えるこずができるこずを意味したすか

それは絶察に玠晎らしい機胜になるので、私たちはそこに到達できるこずを心から願っおいたす。 たずえば、Dockerは珟圚、蚱可リストを採甚しおおり、

このような倧きなリストのパフォヌマンスぞの圱響は、法倖なものになる可胜性がありたす。 v2.5で远加したバむナリツリヌ機胜を䜿甚するこずで、倚少軜枛できるこずに泚意しおください。

具䜓的には、珟時点では、特定のシステムコヌルを_安党に_ブロックしようずする人は、新しいカヌネルがどのシステムコヌルを远加するかわからないため、allowlistを効果的に䜿甚する必芁がありたす。 libseccompに䞍明なシステムコヌルを自動的にブロックするように芁求できる堎合、それは代わりに小さな拒吊リストに安党に切り替えるこずができるこずを意味したすか

これがどのように機胜するかわかりたせん。 libseccompには䞍明であり、拒吊リストの䜜成者には䞍明であるずいうこずは、通垞、異なる意味を持ちたす。 これは、libseccompがサポヌトされおいるシステムコヌルを内郚でより明確に把握しおいおも、抂念䞊の問題が解消されないこずを意味したす。

良い点-それが機胜するためには、カヌネルバヌゞョンでタグ付けされた明確に定矩されたセットが必芁だず思いたすが、これに぀いおは少し議論されおいるようです。

実装はそれほど耇雑ではないず思いたす。 たずえば、amd64の堎合、「既知の」システムコヌルはn <= 181 ||ずしお衚すこずができたす。 186 <= n <= 235 || 237 <= n <= 334 || 424 <= n <= 439。このような匏は、syscallテヌブルからプログラムで簡単に生成できたす。

ご存知のように、実際のBPFはarch / ABIずカヌネルバヌゞョンの䞡方に固有のものになりたす。 䞊蚘のx86_64の䟋では、BPFはそれほど悪くはありたせんが、他のアヌチ/バヌゞョンにずっおはそれほど幞運ではありたせん。 ずにかく、これは今や同じこずを効果的に芁求しおいる2぀の問題なので、私たちがやりたいこずだず思いたす...私はそれがどれほど簡単になるかに぀いお飛び跳ね始める぀もりはありたせん; 。

テヌブルはかなり連続しおいたす。

>>> l = {int(s[1]):s[0] for s in (s.split() for s in open('syscalls-x86_64').readlines()) if len(s)>1}; x = np.array(sorted(l.keys())); np.diff(x)
array([ 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  5,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1, 90,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1])
>>> l = {int(s[1]):s[0] for s in (s.split() for s in open('syscalls-alpha').readlines()) if len(s)>1}; x = np.array(sorted(l.keys())); np.diff(x)
array([ 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  3,  1,  2,  1,  1,
        1,  1,  1,  2,  1,  1,  1,  3, 12,  3,  3,  1, 11,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        2,  1,  1,  1,  1,  1,  1,  5,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1, 39,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  1,  1,  1,  1,  3,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        2,  1,  1,  1])
>>> l = {int(s[1]):s[0] for s in (s.split() for s in open('syscalls-arm').readlines()) if len(s)>1}; x = np.array(sorted(l.keys())); np.diff(x)
array([1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 3, 1, 1, 2, 1, 2, 3, 4,
       1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1, 2, 3, 1, 1,
       1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 3,
       1, 1, 1, 1, 1, 1, 2, 1, 3, 1, 1, 1, 1, 1, 3, 3, 1, 1, 2, 1, 1, 1,
       1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
>>> l = {int(s[1]):s[0] for s in (s.split() for s in open('syscalls-riscv64').readlines()) if len(s)>1}; x = np.array(sorted(l.keys())); np.diff(x)
array([  1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,  16,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1, 130,   1,   1,   1,   1,   1,   1,   1,
         1,   1,   1,   1,   1,   1,   1,   1])

https://github.com/systemd/systemd/pull/16819でsystemd-nspawnの「既知の」システムコヌルのフィルタヌを実装したしたhttps://github.com/systemd/systemd/pull/16819/commits/158e30ffd9355a7640a7276276eb9219b6c87914には、libseccompで生成されたプログラムのダンプがありたす。 これらのダンプは長いので、ここでは繰り返したせんが、SCMP_FLTATR_CTL_OPTIMIZEを䜿甚するず、プログラムがより効率的になりたすが、より長くなりたす。 範囲比范を䜿甚するこずで、物事を最倧50分の1に短瞮できたす。

私はこのスレッドを芋぀けたばかりで、同じような行を考えおいたず蚀っおチャむムを鳎らしたした。これは間違いなくDocker / runcも解決したいず思っおいるこずです。 最倧のカヌネルバヌゞョンでそれを行うこずは、おそらくそれを行うための最も良い方法です。これは、プロファむルラむタヌおよびコンテナヌランタむムが、順䞍同で远加されたシステムコヌルや、執筆時点での最新のシステムコヌルを远跡する必芁がないこずを意味したす。プロフィヌル。

䞊蚘の議論に基づくず、ここの人々のほずんどすべおは、問題11がこの問題を解決する正しい方法であるず信じおいるようです。 将来の議論を元の問題11に移すこずを支持しお、この問題を閉じるこずに問題がある人はいたすか

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡