یک رابط کاربری ساده، زیبا و فارسی برای اسکن امنیتی Docker Imageها با استفاده از Trivy.
این پروژه کمک میکند بدون نیاز به اجرای دستی دستورهای Trivy، ایمیجهای Docker موجود روی سیستم را انتخاب کنید، ایمیجهای ریموت را اسکن کنید، دیتابیس Trivy را بهصورت دستی بهروزرسانی کنید و خروجی گزارش را در فرمتهای مختلف دریافت کنید.
- رابط کاربری فارسی و راستچین
- نمایش نسخه Trivy داخل داشبورد
- انتخاب ایمیج از لیست Docker Image های موجود روی سیستم
- امکان وارد کردن نام/آدرس ایمیج ریموت مثل:
nginx:latest
alpine:3.19
python:3.12-slim- اگر ایمیج روی سیستم وجود نداشته باشد، بهصورت خودکار Pull میشود
- بهروزرسانی دستی دیتابیس Trivy
- جلوگیری از آپدیت دیتابیس در هر اسکن با استفاده از دیتابیس موجود
- اسکن Docker Imageها با Trivy
- نمایش خلاصه آسیبپذیریها بر اساس سطح شدت:
- Critical
- High
- Medium
- Low
- Unknown
- فیلتر نتایج بر اساس Severity
- جستجو داخل نتایج اسکن
- خروجی گزارش در فرمتهای مختلف:
- HTML
- JSON
- SARIF
- TXT
- استفاده از فونت فارسی Vazirmatn
- مناسب برای استفاده در محیطهای DevOps / DevSecOps / Security Lab
روی سیستم باید موارد زیر نصب باشد:
- Docker
- Docker Compose
برای بررسی نصب بودن Docker:
docker --version
docker compose versionابتدا پروژه را کلون کنید:
git clone https://github.com/zakery1369/trivy-ui.git
cd trivy-ui-dockerسپس کانتینر را Build و اجرا کنید:
docker compose up -d --buildبعد از اجرا، UI از طریق آدرس زیر در دسترس است:
http://localhost:8569
اگر تغییری در سورس پروژه دادید:
docker compose down
docker compose build --no-cache
docker compose up -dدر بخش انتخاب ایمیج، لیست Docker Imageهای موجود روی سیستم نمایش داده میشود.
لیست ایمیجها بهصورت خودکار هنگام باز شدن dropdown بهروزرسانی میشود.
اگر ایمیج موردنظر روی سیستم وجود نداشته باشد، میتوانید نام یا آدرس آن را وارد کنید.
مثال:
nginx:latest
ubuntu:22.04
redis:7در صورت نبودن ایمیج روی سیستم، برنامه ابتدا آن را Pull کرده و سپس اسکن میکند.
برنامه بهصورت پیشفرض در هر اسکن دیتابیس Trivy را آپدیت نمیکند.
برای آپدیت دیتابیس، از دکمه مخصوص بهروزرسانی دیتابیس استفاده کنید.
این کار باعث میشود کنترل آپدیت دیتابیس در اختیار کاربر باشد و هر اسکن زمان اضافه برای آپدیت دیتابیس نگیرد.
بعد از اتمام اسکن، میتوانید گزارش را در یکی از فرمتهای زیر دریافت کنید:
- HTML
- JSON
- SARIF
- TXT
trivy-ui-zakops/
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
├── README.md
├──trivy-cache
└── app/
├── main.py
└── static/
├── index.html
├── styles.css
├── app.js
├── security-hexagon.png
└── fonts/
└── Vazirmatn.woff2
این پروژه برای دسترسی به Docker Imageهای سیستم، Docker socket را داخل کانتینر mount میکند:
- /var/run/docker.sock:/var/run/docker.sockاین دسترسی قدرتمند است و در محیط Production باید با احتیاط استفاده شود.
پیشنهاد میشود این ابزار فقط در محیطهای کنترلشده مثل موارد زیر اجرا شود:
- سیستم شخصی
- محیط تست
- شبکه داخلی
- سرورهای DevOps کنترلشده
- Labهای امنیتی
برای تست سریع میتوانید از ایمیجهای زیر استفاده کنید:
alpine:3.19
nginx:latest
ubuntu:22.04
redis:7
python:3.12-slimبرای توقف سرویس:
docker compose downبرای حذف کانتینرها و volumeها:
docker compose down -vTrivy یک ابزار متنباز برای اسکن امنیتی است که توسط Aqua Security توسعه داده شده و میتواند موارد زیر را بررسی کند:
- آسیبپذیریهای OS Packageها
- آسیبپذیریهای Libraryها
- Docker Imageها
- فایلسیستم
- Git Repository
- Kubernetes Manifest
- IaC Misconfiguration
- GitHub: zakery1369
- Telegram: Zakops
- Telegram: DevOpsPersian
- Telegram: DevOpsZakops
- Website: zakops.com
This project is released under the MIT License.
