ما بعد فحص الحاويات: لماذا يعتبر Trivy من Aqua Security الأداة الشاملة لـ DevSecOps
اكتشف Trivy، الماسح الأمني الرائد مفتوح المصدر من Aqua Security. تعرف على كيفية توحيد فحص الحاويات، وIaC، وKubernetes، والملفات السرية، وSBOM في أداة Go برمجية واحدة عالية الأداء.
نظرة عامة / مقدمة
في عصر الحوسبة السحابية والنشر السريع، لم يعد من الممكن ترك الأمن كخطوة لاحقة تلي عملية التطوير. تتطلب ممارسة "التحول الأمني يساراً" (Shift-Left Security) من المطورين البحث عن الثغرات الأمنية، والتكوينات الخاطئة، والرموز السرية المسربة قبل وقت طويل من وصول الكود إلى بيئة الإنتاج. ومع ذلك، فإن استخدام أدوات متعددة لفحص الحاويات، والبنية التحتية كتعليمات برمجية (IaC)، وتحديد الأسرار، وتوليد قائمة المواد البرمجية (SBOM) يؤدي إلى تشتيت الجهود وتعقيد مسارات CI/CD.
هنا يأتي دور Trivy (من تطوير Aqua Security). يبرز Trivy، المكتوب بلغة Go، كأداة الفحص الأمني المثالية مفتوحة المصدر. حيث يدمج العديد من نماذج الفحص الأمني في أداة واجهة سطر أوامر (CLI) واحدة سريعة وموثوقة للغاية. يحظى Trivy بشعبية متزايدة لأنه يحل مشكلة تشتت الأدوات في بيئات DevSecOps الحديثة، من خلال توفير إعدادات خالية من التعقيد، وقاعدة بيانات ضخمة للثغرات، وتكامل سلس مع مستودعات الحاويات وأدوات CI/CD.
الميزات الرئيسية
- فحص متعدد الأهداف (الكل في واحد): لا يقتصر Trivy على فحص صور الحاويات فحسب، بل يفحص أيضاً أنظمة الملفات المحلية، ومستودعات Git، وصور الأجهزة الافتراضية، ومجموعات Kubernetes، والبيئات السحابية (مثل AWS).
- كشف شامل للثغرات: يكتشف الثغرات الأمنية (CVEs) في حزم أنظمة التشغيل (Alpine, Ubuntu, RedHat، إلخ) وحزم الاعتماديات على مستوى التطبيقات (npm, pip, Go modules, Cargo، إلخ).
- تحليل التكوينات الخاطئة لـ IaC: دعم جاهز لفحص ملفات Terraform، وCloudFormation، وDockerfile، وKubernetes manifests، وHelm charts لمنع التكوينات غير الآمنة.
- فحص الأسرار والبيانات الحساسة: مسح مدمج ومبني على قواعد استدلالية للبحث في سجلات الكود عن المفاتيح السرية المخزنة بشكل صلب (Hardcoded API keys)، والرموز المميزة (Tokens)، والمفاتيح الخاصة والشهادات.
- دعم من الدرجة الأولى لـ SBOM: إنشاء وفحص قائمة المواد البرمجية للبرمجيات (SBOM) بتنسيقات قياسية دولية مثل CycloneDX وSPDX.
- سرعة فائقة وبصمة خفيفة: تم تصميمه بلغة Go ليترجم إلى ملف تنفيذي واحد دون متطلبات تشغيل خارجية، مع تحديث قاعدة البيانات عند الطلب وتخزينها مؤقتاً بذكاء.
البدء / مثال برمي
البدء في استخدام Trivy غاية في السهولة، حيث يمكن تثبيته عبر مديري الحزم على أنظمة التشغيل Linux وmacOS وWindows.
التثبيت
على نظام macOS (باستخدام Homebrew):
brew install aquasecurity/trivy/trivy
على نظام Debian/Ubuntu:
sudo apt-get install wget apt-transport-https gnupg lsb-release
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | gpg --dearmor | sudo tee /usr/share/keyrings/trivy.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/trivy.list
sudo apt-get update
sudo apt-get install trivy
أمثلة عملية للاستخدام
1. فحص صورة حاوية بحثاً عن الثغرات الأمنية
trivy image --severity HIGH,CRITICAL node:18-alpine
2. فحص مجلد محلي بحثاً عن التكوينات الخاطئة والأسرار المسربة
trivy fs --scanners vuln,misconfig,secret ./my-app-directory
3. توليد ملف SBOM بصيغة CycloneDX من صورة حاوية
trivy image --format cyclonedx --output sbom.json alpine:latest
4. دمج Trivy في سير عمل GitHub Actions
name: security-scan
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@master
with:
image-ref: 'docker.io/my-organization/my-app:${{ github.sha }}'
format: 'table'
exit-code: '1'
ignore-unfixed: true
severity: 'CRITICAL,HIGH'
حالات الاستخدام والجمهور المستهدف
- مهندسو DevSecOps: أتمتة اختبارات الامتثال وضوابط الأمان داخل Jenkins، أو GitHub Actions، أو GitLab CI.
- مهندسو السحابية والحاويات: تدقيق ملفات تهيئة Kubernetes والبيئات السحابية للتأكد من أمان البنية التحتية قبل النشر الفعلي.
- مطوروا البرمجيات: فحص مستودعات الكود محلياً للتخلص من ثغرات الاعتماديات قبل دفع التغييرات إلى الفرع الرئيسي.
- مسؤولو الامتثال الأمني: صياغة وتقييم قوائم SBOM بدقة لتتوافق مع معايير أمان سلاسل التوريد البرمجية الحديثة.
لماذا للأمر أهمية كبيرة؟
أعاد Trivy تعريف معايير أدوات DevSecOps مفتوحة المصدر. بدلاً من صيانة مجموعة معقدة من الماسحات الأمنية المتباينة وغير المتوافقة، تتبنى الفرق الأمنية والتقنية أداة Trivy كحل متكامل يحمي الحاوية، والكود، والتكوين، والبيانات الحساسة في آن واحد. من خلال تسهيل سبل الحماية ومخرجاتها المهيكلة (JSON, SARIF)، يمنح Trivy المطورين القدرة على كتابة برمجيات آمنة ومتوافقة دون التأثير سلباً على إنتاجيتهم اليومية.
الأسئلة الشائعة
ما هو aquasecurity/trivy وماذا يفعل؟
ما بعد فحص الحاويات: لماذا يعتبر Trivy من Aqua Security الأداة الشاملة لـ DevSecOps هو مشروع مفتوح المصدر رائج مكتوب بلغة Go. اكتشف Trivy، الماسح الأمني الرائد مفتوح المصدر من Aqua Security. تعرف على كيفية توحيد فحص الحاويات، وIaC، وKubernetes، والملفات السرية، وSBOM في أداة Go برمجية واحدة عالية الأداء.
أين يمكنني العثور على الكود المصدري الرسمي لـ trivy؟
يمكن الوصول إلى الكود المصدري الرسمي ومتعقب المشكلات والوثائق على GitHub على https://github.com/aquasecurity/trivy.
كيف يمكنني المساهمة في aquasecurity/trivy؟
يمكنك المساهمة عن طريق الإبلاغ عن الأخطاء، أو اقتراح ميزات جديدة، أو تحسين الوثائق، أو تقديم طلبات سحب (pull requests) مباشرة على مستودع GitHub الرسمي.