seccomp

seccomp (اختصارًا للحوسبة الآمنة [ 1 ] ) هي أداة أمان حاسوبية في نواة لينكس . تسمح seccomp للعملية بالانتقال أحادي الاتجاه إلى حالة "آمنة" حيث لا يمكنها إجراء أي استدعاءات نظامية باستثناء استدعاءات exit()SIGKILL و SIGSYS و sigreturn()SIGSYS على واصفات الملفات المفتوحة مسبقًا . في حال محاولتها إجراء أي استدعاءات نظامية أخرى، ستقوم النواة إما بتسجيل الحدث أو إنهاء العملية باستخدام SIGKILL أو SIGSYS . [ 2 ] [ 3 ] وبهذا المعنى، فهي لا تُحاكي موارد النظام، بل تعزل العملية عنها تمامًا.read()write()

يتم تفعيل وضع seccomp عبر prctl(2)استدعاء النظام باستخدام PR_SET_SECCOMPالوسيطة، أو (منذ نواة لينكس 3.17 [ 4 ] ) عبر seccomp(2)استدعاء النظام. [ 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

انظر أيضاً

مراجع

  1. : "يعمل استدعاء النظام seccomp() على حالة الحوسبة الآمنة (seccomp)" - دليل مبرمج لينكس - استدعاءات النظام من Manned.orgseccomp(2)   
  2. كوربيت، جوناثان (2015-09-02). "نظرة عامة على seccomp" . lwn . تم الاسترجاع في 2017-10-05 .
  3. "Documentation/prctl/seccomp_filter.txt" . تم الاطلاع عليه بتاريخ 2017-10-05 .
  4. "نواة لينكس 3.17، القسم 11. الأمان" . kernelnewbies.org . 2013-10-05 . تم الاطلاع عليه بتاريخ 2015-03-31 .
  5. "seccomp: إضافة استدعاء النظام "seccomp"" . kernel/git/torvalds/linux.git - شجرة مصدر نواة لينكس . kernel.org . 2014-06-25 . تم الاسترجاع في 2014-08-22 .
  6. أركانجلي، أندريا (14-06-2007). " [ التصحيح 1 من 2 ] نقل seccomp من /proc إلى prctl" . تم الاطلاع عليه بتاريخ 02-08-2013 .
  7. تينيس، جوليان (28 مايو 2009). "شذوذ تعطيل عداد الطابع الزمني في نواة لينكس" . مدونة cr0 . تم الاطلاع عليه بتاريخ 2 أغسطس 2013 .
  8. كوربيت، جوناثان (11 يناير 2012). "نهج جديد آخر لأمن المعلومات" . lwn . تم الاطلاع عليه بتاريخ 2 أغسطس 2013 .
  9. 1 2 "ملاحظات إصدار OpenSSH 6.0" . تم الاطلاع عليها بتاريخ 14-10-2013 .
  10. تينيس، جوليان (19 نوفمبر 2012). "بيئة أكثر أمانًا لبرامج عرض الصور في لينكس وكروم أو إس" . مدونة كروميوم . تم الاطلاع عليه بتاريخ 2 أغسطس 2013 .
  11. " [ PATCH ] seccomp: دعم الحوسبة الآمنة" . تاريخ نواة لينكس . مستودعات Kernel.org على Git. 8 مارس 2005. تم الاطلاع عليه في 2 أغسطس 2013 .{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  12. "مرشح Seccomp في نظام Android O" . مدونة مطوري Android .
  13. "systemd.exec — تهيئة بيئة التنفيذ" . freedesktop.org . تم الاطلاع عليه بتاريخ 14-10-2017 .
  14. أوتوبو، إدواردو (15-09-2017). "طلب سحب لنموذج جديد لعزل QEMU" . أرشيف القائمة البريدية qemu-devel .
  15. فان دي فين، أرجان (28 فبراير 2009). "ردًا على: [ مستقر ] [ التصحيح 2/2 ] x86-64: seccomp: إصلاح ثغرة استدعاء النظام 32/64" . قائمة بريدية لنواة لينكس . تم الاسترجاع في 2 أغسطس 2013 .
  16. تورفالدز، لينوس (28 فبراير 2009). "ردًا على: [ التصحيح 2/2 ] x86-64: seccomp: إصلاح ثغرة استدعاء النظام 32/64" . قائمة بريدية لنواة لينكس . تم الاطلاع عليه في 2 أغسطس 2013 .
  17. غوتشكه، ماركوس (2009-05-06). "ردًا على: [ التصحيح 2/2 ] x86-64: seccomp: إصلاح ثغرة استدعاء النظام 32/64" . تم الاطلاع عليه بتاريخ 2013-08-02 .
  18. غوتشكه، ماركوس (2009-05-06). "ردًا على: [ التصحيح 2/2 ] x86-64: seccomp: إصلاح ثغرة استدعاء النظام 32/64" . قائمة بريدية لنواة لينكس . تم الاسترجاع في 2013-08-02 .
  19. "سجن الحريق" . سجن الحريق . تم الاسترجاع في 26-11-2016 .
  20. إيفانز، كريس (2012-07-04). "كروم 20 على لينكس وعزل فلاش" . تم الاسترجاع في 2013-08-02 .
  21. تينيس، جوليان (2012-09-06). "تقديم الجيل التالي من بيئة لينكس المعزولة لمتصفح كروم" . مدونة cr0 . تم الاطلاع عليه بتاريخ 2013-08-02 .
  22. "سياسة أمان سناب" . مؤرشفة من الأصل بتاريخ 2017-02-04 . تم الاطلاع عليها بتاريخ 2017-02-03 .
  23. إيفانز، كريس (9 أبريل 2012). "vsftpd-3.0.0 و seccomp filter sandboxing متوفران الآن!" . تم الاطلاع عليه بتاريخ 2 أغسطس 2013 .
  24. "MBOX" . تم الاسترجاع في 20-05-2014 .
  25. "LXD هو "مُشرف افتراضي" للحاويات (مبني على liblxc)" . 4 نوفمبر 2014. تم الاطلاع عليه بتاريخ 8 نوفمبر 2014 .
  26. "إلى أين نتجه مع LXD" . تم الاطلاع عليه بتاريخ 2014-11-08 .
  27. ديستويندر، غيوم (13 سبتمبر 2012). "بيئة اختبار Seccomp لمتصفح فايرفوكس" . موزيلا بوغزيلا . تم الاطلاع عليه بتاريخ 13 يناير 2015 .
  28. ديستويندر، غيوم (13 سبتمبر 2012). "بيئة اختبار Seccomp لمتصفح فايرفوكس" . ويكي موزيلا . تم الاطلاع عليه بتاريخ 13 يناير 2015 .
  29. "سجل تغييرات تور" .
  30. "ضغط الصور بتقنية ليبتون: توفير 22% من حجم الصور دون فقدان البيانات بسرعة 15 ميجابايت/ثانية" . مدونة دروب بوكس ​​التقنية . تاريخ الاطلاع: 15 يوليو 2016 .
  31. "Kafel: لغة ومكتبة لتحديد سياسات تصفية استدعاءات النظام" .
  32. "نظام تشغيل Subgraph" . Subgraph . تم الاسترجاع في 18-12-2016 .
  33. "LoganCIJ16: مستقبل أنظمة التشغيل" . يوتيوب . مؤرشف من الأصل بتاريخ 21-12-2021 . تم الاطلاع عليه بتاريخ 18-12-2016 .
  34. "نموذج أمان Flatpak - الجزء 1: الأساسيات" . تم الاطلاع عليه بتاريخ 21-01-2017 .
  35. "غلاف الفقاعات" . تم الاسترجاع في 14 أبريل 2018 .
  36. "Chromium OS Sandboxing - the Chromium Projects" .
  37. "Minijail [ LWN.net ] " . lwn.net . تم الاطلاع عليه بتاريخ 11-04-2017 .
  38. "core/trace/use_seccomp" . dev.exherbo.org . تم الاطلاع عليه بتاريخ 31-05-2021 .
  39. "عزل تطبيقات الملفات" . GitHub .
  40. "تنفيذ Zathura seccomp" .
  41. "تنفيذ برنامج Gnome tracker seccomp" .