(عذرخواهی برای چند سوال. موضوع یکسان است ، اما موارد بسیار دقیقی وجود دارد.)

مرور وب ، منابع را پیدا می کنم (به تصویر زیر مراجعه کنید) ، اما آنها این موضوع را کاملاً روشن نمی کنند. واقعاً وضعیت چیست ، بنابراین این تلاش من برای روشن کردن و جمع آوری اطلاعاتی است که من از دست می دهم.


راه های انتقال

که من جمع می کنم حداقل سه راه برای انتقال به یک حوزه دیگر وجود دارد. من آنها را به عنوان قوانینی كه توسط sesearch نمایش داده شده است ، فهرست خواهم كرد:

  1. " type_transition : process " – پردازش در منبع دامنه می تواند اجرای شود با file_label ، که پس از آن دامنه هدف را خواهد داشت.
  2. "اجازه: پردازش dntransition

    " – پردازش در منبع دامنه می تواند برای انتقال به دامنه هدف دامنه از / proc / self / attr / فعلی استفاده کند.

  3. "اجازه: پردازش انتقال " – فرآیند در دامنه منبع می تواند از / proc / self / attr / exec برای انتقال به هدف هدف دامنه استفاده کند ، هنگامی که اجرای نامیده می شود.

راه های دیگری وجود دارد؟


حمایت از این انتقال

علاوه بر قوانین فوق ، انتقال نیز نیاز دارد:

  • "اجازه می دهد: پرونده { اجرا خواندن getattr } "(آیا getattr واقعاً لازم است؟ بخوانید؟) – برای type_transition و احتمالاً انتقال
  • "اجازه دهید : پرونده ورودی ورودی " – برای type_transition انتقال
  • "اجازه دهید: پردازش setexec " – برای انتقال
  • "اجازه: تنظیم ] "- برای dntransition

سایر مشکلات احتمالی

  • در مورد memfd _create + exec (" / proc / self / fd /٪ d ") ، پرونده file_label است همان برچسب "سیملینک"؟ من فرض می کنم که سیمکارت معمولی / proc / self / fd / ent دنبال شود ، بنابراین باید صحیح باشد.
  • آیا می توانید یک [فراخوان] ptrace d روند انتقال به یک دامنه دیگر را انجام دهد؟ آزمایشات به من می گویند که exec با EPERM در صورت type_transition شکست خورده است ، و یک عدم انکار وجود دارد زیرا به دلیل وجود روند نامشخص ptrace اجازه از منبع تا هدف ] آیا این کار با کارخانجات است؟

منابع: