syd-sec - ابزار
بررسی و
اعتبارسنجی
فیلترهای
امنیتی seccomp در
Syd
syd-sec [-ahikprsxAIKPRSX] {command
[args...]}
در صورت
عدم ارائه
هیچ
آرگومانی،
اطلاعات
مربوط به
بیتهای
امنیتی
فرآیند (securebits)
را در قالب
فشرده JSON چاپ
میکند.
در صورت
عدم ارائه
دستور،
میتوان یک
یا چند مورد
از
گزینههای
بیتهای
امنیتی [-aikprsx]
را برای
بررسی
بیتهای
امنیتی
مشخص کرد.
برای بررسی
نسخههای
قفلشده
بیتهای
امنیتی
مربوطه، از
گزینههای
دارای حروف
بزرگ [-AIKPRSX]
استفاده
کنید.
در صورت
ارائه یک
دستور و
آرگومانهای
آن به همراه
حداقل یکی
از
گزینههای
بیتهای
امنیتی
[-aikprsxAIKRSX]،
بیتهای
امنیتی
مشخصشده
را تنظیم
کرده،
دستور را
اجرا
میکند و با
همان وضعیت
خروج
فرآیند
پایان
مییابد.
| -p, -P |
تنظیم/بررسی
ویژگی no_new_privs
فرآیند. |
| -r, -R |
تنظیم/بررسی
بیت امنیتی
SECBIT_NOROOT. |
| -s, -S |
تنظیم/بررسی
بیت امنیتی
SECBIT_NO_SETUID_FIXUP. |
| -k, -K |
تنظیم/بررسی
بیت امنیتی
SECBIT_KEEP_CAPS. |
| -a, -A |
تنظیم/بررسی
بیت امنیتی
SECBIT_NO_CAP_AMBIENT_RAISE. |
| -x, -X |
تنظیم/بررسی
بیت امنیتی
SECBIT_EXEC_RESTRICT_FILE. |
| -i, -I |
تنظیم/بررسی
بیت امنیتی
SECBIT_EXEC_DENY_INTERACTIVE. |
| بیت
امنیتی (Securebit) |
توضیحات |
نیاز به
CAP_SETPCAP؟ |
| NO_NEW_PRIVS |
هنگامی که
فعال باشد،
execve(2)
امتیازات
جدیدی اعطا
نخواهد کرد
(برای مثال،
بیتهای
دسترسی set-user-ID/set-group-ID
و
قابلیتهای
فایل
نادیده
گرفته
میشوند).
این ویژگی
از طریق fork(2)،
clone(2) و execve(2) به
ارث
میرسد؛ پس
از فعال
شدن،
غیرفعالسازی
آن
امکانپذیر
نیست. |
خیر |
| NOROOT |
رفتار
ویژه شناسه
کاربری UID 0 را
برای کسب
قابلیتها
در هنگام exec/setuid
غیرفعال
میکند.
عبارت NOROOT_LOCKED
قفل مربوط
به NOROOT است (از
تغییرات
بیشتر
جلوگیری
میکند؛
غیرقابل
برگشت). |
بله |
| NO_SETUID_FIXUP |
تنظیمات
هسته روی
مجموعههای
قابلیتهای
مجاز (permitted)،
مؤثر (effective) و
محیطی (ambient) را
هنگامی که
شناسههای
کاربری
مؤثر/سیستمفایل
(UIDs) بین ۰ و
غیرصفر
تغییر
وضعیت
میدهند،
متوقف
میسازد.
عبارت NO_SETUID_FIXUP_LOCKED
قفل مربوط
به NO_SETUID_FIXUP است
(از تغییرات
بیشتر
جلوگیری
میکند؛
غیرقابل
برگشت). |
بله |
| KEEP_CAPS |
اجازه حفظ
قابلیتهای
مجاز (permitted capabilities) را
هنگام
تغییر همه
شناسههای
کاربری (UIDs) از
۰ به غیرصفر
میدهد؛
این بیت
همیشه در
هنگام execve(2)
پاک میشود.
عبارت KEEP_CAPS_LOCKED
قفل مربوط
به KEEP_CAPS است (از
تغییرات
بیشتر
جلوگیری
میکند؛
غیرقابل
برگشت). |
بله |
| NO_CAP_AMBIENT_RAISE |
افزایش
قابلیتهای
محیطی (ambient capabilities)
را از طریق
prctl(PR_CAP_AMBIENT_RAISE)
غیرمجاز
میکند.
عبارت NO_CAP_AMBIENT_RAISE_LOCKED
قفل مربوط
به NO_CAP_AMBIENT_RAISE است
(از تغییرات
بیشتر
جلوگیری
میکند؛
غیرقابل
برگشت). |
بله |
| EXEC_RESTRICT_FILE |
مفسر یا
پیونددهنده
پویا تنها
در صورتی
باید یک
فایل را
اجرا کند که
فراخوان
سیستمی execveat(2)
با فلگ AT_EXECVE_CHECK
روی
توصیفکننده
فایل (file descriptor)
مربوطه
موفقیتآمیز
باشد. عبارت
EXEC_RESTRICT_FILE_LOCKED قفل
مربوط به
EXEC_RESTRICT_FILE است (از
تغییرات
بیشتر
جلوگیری
میکند؛
غیرقابل
برگشت). |
خیر |
| EXEC_DENY_INTERACTIVE |
مفسر
نباید
دستورات
تعاملی
کاربر را
بپذیرد؛
محتوا از
طریق
توصیفکننده
فایل (file descriptor)
تنها در
صورتی مجاز
است که
فراخوان
execveat(2) با فلگ
AT_EXECVE_CHECK
موفقیتآمیز
باشد. عبارت
EXEC_DENY_INTERACTIVE_LOCKED قفل
مربوط به
EXEC_DENY_INTERACTIVE است (از
تغییرات
بیشتر
جلوگیری
میکند؛
غیرقابل
برگشت). |
خیر |
هنگام
استعلام
بیتهای
امنیتی،
اگر تمام
بیتهای
امنیتی
مشخصشده
در بیتهای
امنیتی
فرآیند
تنظیم شده
باشند، syd-sec
با وضعیت
موفقیتآمیز
خارج
میشود.
هنگام
اجرای یک
دستور، syd-sec
با همان کد
خروج
فرآیند
فرزند خارج
میشود. اگر
عملیات prctl(2)
از نوع PR_SET_SECUREBITS(2const)
پیش از
اجرای
دستور با
خطا مواجه
شود، syd-sec با
مقدار errno(3)
پایان
مییابد.
syd(1), syd(2), syd(5), syd-lock(1),
syd-mdwe(1), syd-ofd(1), syd-pds(1),
syd-ring(1), syd-tsc(1), PR_GET_SECUREBITS(2const),
PR_SET_SECUREBITS(2const)
صفحه
خانگی syd:
https://sydbox.exherbo.org