seccomp
seccomp (اختصارًا للحوسبة الآمنة [ 1 ] ) هي أداة أمان حاسوبية في نواة لينكس . تسمح seccomp للعملية بالانتقال أحادي الاتجاه إلى حالة "آمنة" حيث لا يمكنها إجراء أي استدعاءات نظامية باستثناء استدعاءات exit()SIGKILL و SIGSYS و sigreturn()SIGSYS على واصفات الملفات المفتوحة مسبقًا . في حال محاولتها إجراء أي استدعاءات نظامية أخرى، ستقوم النواة إما بتسجيل الحدث أو إنهاء العملية باستخدام SIGKILL أو SIGSYS . [ 2 ] [ 3 ] وبهذا المعنى، فهي لا تُحاكي موارد النظام، بل تعزل العملية عنها تمامًا.read()write()
يتم تفعيل وضع seccomp عبر استدعاء النظام باستخدام PR_SET_SECCOMPالوسيطة، أو (منذ نواة لينكس 3.17 [ 4 ] ) عبر استدعاء النظام. [ 5 ] كان يتم تفعيل وضع seccomp سابقًا عن طريق الكتابة إلى ملف، /proc/self/seccompولكن تم استبدال هذه الطريقة بـ prctl(). [ 6 ] في بعض إصدارات النواة، يُعطّل وضع seccomp تعليمة RDTSCx86 ، التي تُعيد عدد دورات المعالج المنقضية منذ بدء التشغيل، والمستخدمة للتوقيت عالي الدقة. [ 7 ]
يُعدّ seccomp-bpf امتدادًا لـ seccomp [ 8 ] يسمح بتصفية استدعاءات النظام باستخدام سياسة قابلة للتكوين تُنفّذ باستخدام قواعد Berkeley Packet Filter . ويستخدمه OpenSSH [ 9 ] و vsftpd، بالإضافة إلى متصفحي الويب Google Chrome/Chromium على نظامي التشغيل ChromeOS و Linux. [ 10 ] (في هذا الصدد، يُحقق seccomp-bpf وظائف مشابهة، ولكن بمرونة أكبر وأداء أعلى، مقارنةً بـ systrace الأقدم - الذي يبدو أنه لم يعد مدعومًا لنظام Linux ).
يعتبر البعض أن seccomp قابل للمقارنة مع OpenBSD pledge(2) و FreeBSD capsicum (4) .
تاريخ
تم ابتكار برنامج seccomp لأول مرة من قبل أندريا أركانجيلي في يناير 2005 لاستخدامه في الحوسبة الشبكية العامة ، وكان الهدف منه في الأصل أن يكون وسيلة لتشغيل البرامج غير الموثوقة التي تتطلب موارد حاسوبية كبيرة بأمان. تم دمجه في النواة الرئيسية لنظام لينكس في الإصدار 2.6.12، الذي صدر في 8 مارس 2005. [ 11 ]
البرامج التي تستخدم seccomp أو seccomp-bpf
- يستخدم نظام Android مرشح seccomp-bpf في zygote منذ Android 8.0 Oreo. [ 12 ]
- تعتمد خيارات الحماية في systemd على seccomp. [ 13 ]
- QEMU ، المحاكي السريع، المكون الأساسي للمحاكاة الافتراضية الحديثة جنبًا إلى جنب مع KVM يستخدم seccomp على المعلمة
--sandbox[ 14 ] - دوكر – برنامج يسمح بتشغيل التطبيقات داخل حاويات معزولة. يمكن لدوكر ربط ملف تعريف seccomp بالحاوية باستخدام المعامل
--security-opt. - كان برنامج CPUShare الخاص بأركانجيلي المستخدم الوحيد المعروف لـ seccomp لفترة من الزمن. [ 15 ] وفي فبراير 2009، أعرب لينوس تورفالدز عن شكوكه حول ما إذا كان أي شخص يستخدم seccomp بالفعل. [ 16 ] ومع ذلك، ردّ مهندس من جوجل بأن جوجل تدرس استخدام seccomp لعزل متصفح الويب كروم الخاص بها . [ 17 ] [ 18 ]
- Firejail هو برنامج مفتوح المصدر يعمل في بيئة معزولة لنظام Linux، ويستخدم مساحات أسماء Linux وSeccomp وميزات أمان أخرى على مستوى النواة لعزل تطبيقات Linux و Wine . [ 19 ]
- ابتداءً من الإصدار 20 من متصفح كروم، يتم استخدام seccomp-bpf لعزل مشغل أدوبي فلاش . [ 20 ]
- ابتداءً من الإصدار 23 من متصفح كروم، يتم استخدام seccomp-bpf لعزل أدوات العرض. [ 21 ]
- تحدد Snap شكل صندوق الحماية الخاص بتطبيقها باستخدام "الواجهات" التي يترجمها snapd إلى seccomp و AppArmor وغيرها من هياكل الأمان [ 22 ].
- يستخدم vsftpd تقنية الحماية seccomp-bpf ابتداءً من الإصدار 3.0.0. [ 23 ]
- يدعم OpenSSH برنامج seccomp-bpf منذ الإصدار 6.0. [ 9 ]
- يستخدم Mbox برنامج ptrace مع seccomp-bpf لإنشاء بيئة اختبار آمنة مع تكلفة أقل من استخدام ptrace وحده. [ 24 ]
- LXD، وهو " مشرف " أوبونتو للحاويات [ 25 ] [ 26 ]
- يستخدم كل من Firefox و Firefox OS seccomp-bpf [ 27 ] [ 28 ]
- يدعم Tor بروتوكول seccomp منذ الإصدار 0.2.5.1-alpha [ 29 ]
- يستخدم برنامج Lepton، وهو أداة ضغط JPEG طورتها شركة Dropbox، تقنية seccomp [ 30 ].
- Kafel هي لغة تكوين، تقوم بتحويل السياسات القابلة للقراءة إلى بايت كود seccompb-bpf [ 31 ]
- يستخدم نظام التشغيل Subgraph seccomp-bpf [ 32 ] [ 33 ]
- يستخدم Flatpak seccomp لعزل العمليات [ 34 ]
- Bubblewrap هو تطبيق خفيف الوزن تم تطويره من Flatpak [ 35 ]
- يستخدم minijail [ 36 ] seccomp لعزل العمليات [ 37 ]
- يستخدم SydBox seccomp-bpf [ 38 ] لتحسين وقت التشغيل وأمان ptrace sandboxing المستخدم لعزل حزم البناء على توزيعة Exherbo Linux.
- يستخدم برنامج File، وهو برنامج Unix لتحديد أنواع الملفات، seccomp لتقييد بيئة التشغيل الخاصة به [ 39 ].
- يستخدم برنامج Zathura، وهو عارض مستندات بسيط، مرشح seccomp لتنفيذ أوضاع الحماية المختلفة [ 40 ].
- يستخدم Tracker ، وهو تطبيق فهرسة ومعاينة لبيئة سطح المكتب GNOME، seccomp لمنع الاستغلال التلقائي لثغرات التحليل في ملفات الوسائط [ 41 ].
انظر أيضاً
مراجع
- ↑ : "يعمل استدعاء النظام seccomp() على حالة الحوسبة الآمنة (seccomp)" - دليل مبرمج لينكس - استدعاءات النظام من Manned.org
- ↑ كوربيت، جوناثان (2015-09-02). "نظرة عامة على seccomp" . lwn . تم الاسترجاع في 2017-10-05 .
- ↑ "Documentation/prctl/seccomp_filter.txt" . تم الاطلاع عليه بتاريخ 2017-10-05 .
- ↑ "نواة لينكس 3.17، القسم 11. الأمان" . kernelnewbies.org . 2013-10-05 . تم الاطلاع عليه بتاريخ 2015-03-31 .
- ↑ "seccomp: إضافة استدعاء النظام "seccomp"" . kernel/git/torvalds/linux.git - شجرة مصدر نواة لينكس . kernel.org . 2014-06-25 . تم الاسترجاع في 2014-08-22 .
- ↑ أركانجلي، أندريا (14-06-2007). " [ التصحيح 1 من 2 ] نقل seccomp من /proc إلى prctl" . تم الاطلاع عليه بتاريخ 02-08-2013 .
- ↑ تينيس، جوليان (28 مايو 2009). "شذوذ تعطيل عداد الطابع الزمني في نواة لينكس" . مدونة cr0 . تم الاطلاع عليه بتاريخ 2 أغسطس 2013 .
- ↑ كوربيت، جوناثان (11 يناير 2012). "نهج جديد آخر لأمن المعلومات" . lwn . تم الاطلاع عليه بتاريخ 2 أغسطس 2013 .
- 1 2 "ملاحظات إصدار OpenSSH 6.0" . تم الاطلاع عليها بتاريخ 14-10-2013 .
- ↑ تينيس، جوليان (19 نوفمبر 2012). "بيئة أكثر أمانًا لبرامج عرض الصور في لينكس وكروم أو إس" . مدونة كروميوم . تم الاطلاع عليه بتاريخ 2 أغسطس 2013 .
- ↑ " [ PATCH ] seccomp: دعم الحوسبة الآمنة" . تاريخ نواة لينكس . مستودعات Kernel.org على Git. 8 مارس 2005. تم الاطلاع عليه في 2 أغسطس 2013 .
{{cite web}}: CS1 maint: deprecated archiveal service ( link ) - ↑ "مرشح Seccomp في نظام Android O" . مدونة مطوري Android .
- ↑ "systemd.exec — تهيئة بيئة التنفيذ" . freedesktop.org . تم الاطلاع عليه بتاريخ 14-10-2017 .
- ↑ أوتوبو، إدواردو (15-09-2017). "طلب سحب لنموذج جديد لعزل QEMU" . أرشيف القائمة البريدية qemu-devel .
- ↑ فان دي فين، أرجان (28 فبراير 2009). "ردًا على: [ مستقر ] [ التصحيح 2/2 ] x86-64: seccomp: إصلاح ثغرة استدعاء النظام 32/64" . قائمة بريدية لنواة لينكس . تم الاسترجاع في 2 أغسطس 2013 .
- ↑ تورفالدز، لينوس (28 فبراير 2009). "ردًا على: [ التصحيح 2/2 ] x86-64: seccomp: إصلاح ثغرة استدعاء النظام 32/64" . قائمة بريدية لنواة لينكس . تم الاطلاع عليه في 2 أغسطس 2013 .
- ↑ غوتشكه، ماركوس (2009-05-06). "ردًا على: [ التصحيح 2/2 ] x86-64: seccomp: إصلاح ثغرة استدعاء النظام 32/64" . تم الاطلاع عليه بتاريخ 2013-08-02 .
- ↑ غوتشكه، ماركوس (2009-05-06). "ردًا على: [ التصحيح 2/2 ] x86-64: seccomp: إصلاح ثغرة استدعاء النظام 32/64" . قائمة بريدية لنواة لينكس . تم الاسترجاع في 2013-08-02 .
- ↑ "سجن الحريق" . سجن الحريق . تم الاسترجاع في 26-11-2016 .
- ↑ إيفانز، كريس (2012-07-04). "كروم 20 على لينكس وعزل فلاش" . تم الاسترجاع في 2013-08-02 .
- ↑ تينيس، جوليان (2012-09-06). "تقديم الجيل التالي من بيئة لينكس المعزولة لمتصفح كروم" . مدونة cr0 . تم الاطلاع عليه بتاريخ 2013-08-02 .
- ↑ "سياسة أمان سناب" . مؤرشفة من الأصل بتاريخ 2017-02-04 . تم الاطلاع عليها بتاريخ 2017-02-03 .
- ↑ إيفانز، كريس (9 أبريل 2012). "vsftpd-3.0.0 و seccomp filter sandboxing متوفران الآن!" . تم الاطلاع عليه بتاريخ 2 أغسطس 2013 .
- ↑ "MBOX" . تم الاسترجاع في 20-05-2014 .
- ↑ "LXD هو "مُشرف افتراضي" للحاويات (مبني على liblxc)" . 4 نوفمبر 2014. تم الاطلاع عليه بتاريخ 8 نوفمبر 2014 .
- ↑ "إلى أين نتجه مع LXD" . تم الاطلاع عليه بتاريخ 2014-11-08 .
- ↑ ديستويندر، غيوم (13 سبتمبر 2012). "بيئة اختبار Seccomp لمتصفح فايرفوكس" . موزيلا بوغزيلا . تم الاطلاع عليه بتاريخ 13 يناير 2015 .
- ↑ ديستويندر، غيوم (13 سبتمبر 2012). "بيئة اختبار Seccomp لمتصفح فايرفوكس" . ويكي موزيلا . تم الاطلاع عليه بتاريخ 13 يناير 2015 .
- ↑ "سجل تغييرات تور" .
- ↑ "ضغط الصور بتقنية ليبتون: توفير 22% من حجم الصور دون فقدان البيانات بسرعة 15 ميجابايت/ثانية" . مدونة دروب بوكس التقنية . تاريخ الاطلاع: 15 يوليو 2016 .
- ↑ "Kafel: لغة ومكتبة لتحديد سياسات تصفية استدعاءات النظام" .
- ↑ "نظام تشغيل Subgraph" . Subgraph . تم الاسترجاع في 18-12-2016 .
- ↑ "LoganCIJ16: مستقبل أنظمة التشغيل" . يوتيوب . مؤرشف من الأصل بتاريخ 21-12-2021 . تم الاطلاع عليه بتاريخ 18-12-2016 .
- ↑ "نموذج أمان Flatpak - الجزء 1: الأساسيات" . تم الاطلاع عليه بتاريخ 21-01-2017 .
- ↑ "غلاف الفقاعات" . تم الاسترجاع في 14 أبريل 2018 .
- ↑ "Chromium OS Sandboxing - the Chromium Projects" .
- ↑ "Minijail [ LWN.net ] " . lwn.net . تم الاطلاع عليه بتاريخ 11-04-2017 .
- ↑ "core/trace/use_seccomp" . dev.exherbo.org . تم الاطلاع عليه بتاريخ 31-05-2021 .
- ↑ "عزل تطبيقات الملفات" . GitHub .
- ↑ "تنفيذ Zathura seccomp" .
- ↑ "تنفيذ برنامج Gnome tracker seccomp" .
روابط خارجية
- الموقع الرسمي (أرشيف)
- بيئة اختبار كروميوم من جوجل ، LWN.net ، أغسطس 2009، بقلم جيك إيدج
- seccomp-nurse ، إطار عمل للحماية من الاختراق يعتمد على seccomp
- Documentation/prctl/seccomp_filter.txt ، جزء من وثائق نواة لينكس
- الأمن المتعمق لبرامج لينكس: منع الثغرات الأمنية والتخفيف من آثارها
- ميزات نواة لينكس
- أمن الحاسوب
- هندسة الأمن السيبراني
