
مثال لسياسة الكشف والإصلاح.
#+Title: جرد وتصحيح CVE-2016-2118 #+SETUPFILE: ~/src/org-html-themes/setup/theme-readtheorg.setup
[[file:./media/badlock.png]]
يكتشف هذا السياسة المضيفين المعرضين للثغرة [[https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2118][CVE-2016-2118]] (المعروفة باسم [[http://badlock.org][Badlock]]) عن طريق التحقق مما إذا كان إصدار حزمة معروف بأنه معرض للخطر مثبتًا حاليًا. تحافظ سياسة التصحيح على =samba= في الإصدار =latest= المتاح.
ملاحظة: تغطي هذه السياسة حاليًا centos 5 و 6. يُرجى التفكير في المساهمة بدعم لمنصات إضافية.
يتم تثبيت هذه السياسة باستخدام [[file:Makefile][Makefile]] مكتوب بشكل تقليدي (ولكنه سيء). للتثبيت، ما عليك سوى استنساخ هذا المستودع، ثم تشغيل make install MASTERFILES=</path/to/policy_root>.
على سبيل المثال: #+BEGIN_SRC sh :results raw :wrap EXAMPLE make install MASTERFILES=/tmp/example-a10042 #+END_SRC
#+RESULTS: #+BEGIN_EXAMPLE mkdir -p /tmp/example-a10042/services/cfengine-CVE-2016-2118/cfengine-CVE-2016-2118 rsync -avz --exclude /home/nickanderson/vagrant/tmp/eia/CVE/masterfiles/services/cfengine-CVE-2016-2118/* /tmp/example-a10042/services/cfengine-CVE-2016-2118/ sending incremental file list Makefile README.org main.cf data/ data/centos_5.json data/centos_6.json media/ media/badlock.png
sent 19,776 bytes received 165 bytes 39,882.00 bytes/sec total size is 29,079 speedup is 1.46 find /tmp/example-a10042/services/cfengine-CVE-2016-2118/ -type f | xargs chmod 600 find /tmp/example-a10042/services/cfengine-CVE-2016-2118/ -type d | xargs chmod 700 #+END_EXAMPLE
بعد تثبيت السياسة في مجموعة السياسات الخاصة بك، تحتاج إلى إضافتها إلى المدخلات حتى يتم تحليلها.
إذا كنت تستخدم CFEngine =3.7.3= أو =3.8.1= أو أحدث، فيمكنك استخدام [[https://docs.cfengine.com/docs/master/reference-language-concepts-augments.html][ملف الزيادات]] لإضافتها إلى المدخلات.
على سبيل المثال: #+BEGIN_SRC json { "inputs": [ "services/cfengine-CVE-2016-2118/main.cf" ] } #+END_SRC
** =inventory_CVE_2016_2118= يتحقق هذا الحزمة مما إذا كان الإصدار المثبت من samba يطابق إصدارًا معروفًا بأنه معرض للخطر كما هو محدد في =data/$(sys.flavor).json= على سبيل المثال: =data/centos_6.json=. هناك بالطبع طرق أخرى مثل استخدام مدير الحزم نفسه للبحث عن الإصدارات المعرضة للخطر.
هذه حزمة تشغيل تلقائي، لذلك إذا كنت تستخدم [[https://github.com/cfengine/masterfiles/][Masterfiles Policy Framework]] (السياسة الافتراضية التي تأتي مع CFEngine)، فيمكنك ببساطة تعريف الفئة =services_autorun=.
#+BEGIN_SRC json { "inputs": [ "services/cfengine-CVE-2016-2118/main.cf" ], "classes": { "services_autorun": [ "any" ] } } #+END_SRC
ملاحظة: عند تشغيل السياسة واكتشاف مضيف معرض للخطر، فإنها تصدر تقريرًا وتحدد الفئة =CVE_2016_2118=.
على سبيل المثال:
#+BEGIN_EXAMPLE R: Detected Vulnerability: CVE-2016-2118 #+END_EXAMPLE
سيرى مستخدمو CFEngine Enterprise واجهة Inventory Reporting في Mission Portal مزودة بسمة جديدة =Vulnerable CVE(s)=.
على سبيل المثال:
[[file:./media/vulnerable_cves_inventory_attribute.png]]
[[file:./media/inventory_report_vulnerable_cves.png]]
[[file:./media/inventory_report_vulnerable_cves_chart.png]]
[[file:./media/define_alert.png]]
[[file:./media/alert_status_vulnerable_hosts.png]]
** =remediate_CVE_2016_2118= =remediate_CVE_2016_2118= هي أيضًا حزمة تشغيل تلقائي، ولكن فقط عند تعريف الفئة =remediate_CVE_2016_2118=.
هناك العديد من الطرق التي يمكنك من خلالها التعبير بمرونة عن المضيفين الذين يُسمح لهم بالتصحيح التلقائي والفترات الزمنية المسموح بها.
إذا كنت تستخدم =3.7.3= أو =3.8.1= أو أحدث، يمكنك تمكينها لبنية التحتية بأكملها عن طريق إضافتها إلى [[https://docs.cfengine.com/docs/master/reference-language-concepts-augments.html][ملف الزيادات]].
#+BEGIN_SRC json { "inputs": [ "services/cfengine-CVE-2016-2118/main.cf" ], "classes": { "services_autorun": [ "any" ], "remediate_CVE_2016_2118": [ "any" ] } } #+END_SRC
تبحث السياسة عن قائمة الحزم المعروف أنها معرضة للخطر في ملف بيانات JSON مسمى باسم نكهة النظام كما هو محدد بواسطة =$(sys.flavor)=، على سبيل المثال [[file:data/centos_6.json][=centos_6=]].