رفتن به محتوا
IROSG.
اپلیکیشن‌های امنیتی

Trivy؛ ارزیابی امنیت ایمیج و وابستگی پیش از انتشار

راهنمای استفاده از Trivy برای تحلیل آسیب‌پذیری، تفسیر گزارش و ساخت سیاست انتشار قابل اجرا.

نشان یا نمای رسمی Trivy
سازندهAqua Security / Trivy contributors
حوزهاسکن امنیت زنجیره تأمین نرم‌افزار
پلتفرم‌هاLinux · macOS · Windows
مجوز / مدلApache-2.0
صفحهٔ رسمی ↗دانلود رسمی ↓

Trivy در کجای فرایند توسعه قرار می‌گیرد؟

Trivy یک ابزار متن‌باز برای بررسی امنیتی دارایی‌های نرم‌افزاری است. بررسی آسیب‌پذیری بسته‌ها، بعضی پیکربندی‌های نادرست و اسرار افشاشده از حوزه‌های آن هستند؛ نوع هدف و گزینه‌های اجرا تعیین می‌کنند کدام بررسی انجام شود. تصور اینکه یک فرمان همیشه همه این حوزه‌ها را پوشش می‌دهد، برداشت دقیقی نیست. در یک تیم توسعه، جای مناسب ابزار نزدیک فرایند ساخت و انتشار است؛ همان جایی که وابستگی‌ها و ایمیج نهایی هنوز قابل اصلاح‌اند. خروجی ابزار باید به مسئول تغییر برسد و به تصمیم روشن درباره رفع، پذیرش موقت یا بررسی بیشتر منجر شود.

راهنمای رسمی Trivy اهداف و قابلیت‌های مختلف را تفکیک می‌کند. اسکن یک ایمیج با اسکن پوشه کد تفاوت دارد: ایمیج شامل بسته‌های موجود در خروجی ساخت است، در حالی که مخزن ممکن است وابستگی توسعه، فایل قفل و تنظیمات استقرار داشته باشد. بررسی هر دو دید مکمل ایجاد می‌کند. اگر فقط مخزن را بررسی کنید، بسته‌ای که در مرحله ساخت از تصویر پایه وارد شده ممکن است از دید فرایند شما دور بماند. اگر فقط ایمیج را بررسی کنید، برخی تنظیمات خطرناک یا اسرار موجود در فایل‌های خارج از خروجی نهایی دیده نمی‌شوند.

تعریف هدف پیش از اجرای اسکن

ابتدا مشخص کنید چه چیزی قرار است منتشر شود. نام برچسب ایمیج مانند latest هویت ثابت نیست و در طول زمان به محتوای دیگری اشاره می‌کند. برای گزارش قابل پیگیری، شناسه تغییر کد، شناسه ساخت و digest ایمیج را کنار نتیجه ثبت کنید. این اتصال کمک می‌کند تیم عملیات بداند گزارش دقیقاً به کدام خروجی مربوط است. اسکن موفق یک ایمیج در صبح، درباره ایمیج دیگری که عصر با همان برچسب جایگزین شده چیزی ثابت نمی‌کند. سیاست انتشار باید از این ابهام جلوگیری کند.

همچنین محیط اجرا را روشن کنید. یک بسته ممکن است در ایمیج موجود باشد ولی در مسیر کاری سرویس استفاده نشود؛ این موضوع به معنای بی‌اهمیت بودن خودکار یافته نیست، بلکه یکی از عوامل ارزیابی ریسک است. دسترسی شبکه، مجوز پردازش، نوع داده و امکان رسیدن ورودی مهاجم به بخش آسیب‌پذیر اهمیت دارند. تیم باید میان شدت اعلام‌شده آسیب‌پذیری و اولویت اصلاح در محیط خود تفاوت بگذارد. این تفاوت نباید به بهانه‌ای برای نادیده گرفتن یافته‌ها تبدیل شود؛ باید با دلیل و مسئول تصمیم ثبت گردد.

خواندن گزارش بدون شمارش ساده هشدارها

تعداد زیاد یافته لزوماً به معنای خطر بیشتر از سرویسی با تعداد کمتر نیست. ممکن است ده‌ها شناسه به یک بسته پایه مربوط باشند و با یک ارتقا رفع شوند. در مقابل یک یافته منفرد در مؤلفه در معرض اینترنت می‌تواند اولویت بسیار بالایی داشته باشد. گزارش را بر اساس بسته، مسیر ورود و امکان اصلاح گروه‌بندی کنید. این کار از ساخت ده‌ها وظیفه تکراری جلوگیری می‌کند و مسئول توسعه را به اقدام مشخص هدایت می‌کند. نسخه نصب‌شده و نسخه اصلاح‌شده باید از همان منبع گزارش خوانده شوند و با توزیع مورد استفاده تطبیق داده شوند.

در توزیع‌های سیستم‌عامل، اصلاح امنیتی ممکن است به نسخه بسته موجود بازگردانده شده باشد. مقایسه ساده شماره نسخه با نسخه بالادستی می‌تواند برداشت نادرست ایجاد کند. به همین دلیل زمینه توزیع و داده‌ای که اسکنر برای تشخیص استفاده کرده مهم است. اگر تیم درباره نتیجه اختلاف دارد، به اعلامیه رسمی توزیع و بسته مراجعه کند. تغییر دستی شدت یا پنهان کردن شناسه بدون ثبت علت، کیفیت تصمیم را پایین می‌آورد. گزارش باید به منبع قابل بررسی متصل بماند تا شخص دیگری بتواند تصمیم را بازبینی کند.

ساخت یک آزمایش اولیه

یک سرویس کم‌خطر و کوچک انتخاب کنید و ابتدا فقط گزارش بگیرید. هدف مرحله اول شکستن خط ساخت نیست؛ باید ببینید چه نوع یافته‌هایی تولید می‌شوند، اجرای اسکن چقدر طول می‌کشد و چه کسی امکان اصلاح آن‌ها را دارد. یک ایمیج قدیمی کنترل‌شده و یک ساخت تازه از همان سرویس برای مقایسه مناسب است. تفاوت گزارش نشان می‌دهد ارتقای تصویر پایه چه اثری دارد و کدام مسائل به وابستگی برنامه مربوط هستند. این آزمایش باید با نسخه مشخص ابزار و پایگاه داده انجام شود.

سپس یک تغییر واقعی اما محدود انجام دهید، مانند ارتقای بسته‌ای که نسخه اصلاح‌شده آن موجود است. دوباره ایمیج بسازید و گزارش را مقایسه کنید. اگر یافته هنوز وجود دارد، بررسی کنید بسته قدیمی در لایه دیگر یا در مسیر دیگری باقی نمانده باشد. همچنین مطمئن شوید هدف اسکن همان خروجی تازه است. این تمرین، اتصال کد، ساخت، رجیستری و گزارش را آزمایش می‌کند. بسیاری از خطاهای عملیاتی از اسکن خروجی اشتباه ناشی می‌شوند و با تغییر گزینه‌های تشخیص رفع نخواهند شد.

سیاست توقف انتشار

پس از شناخت گزارش، سیاست توقف را تدریجی طراحی کنید. یک قاعده ساده مانند توقف برای هر یافته ممکن است تیم را با بدهی امنیتی قدیمی روبه‌رو کند و باعث استثناهای گسترده شود. می‌توان ابتدا یافته‌های تازه با اهمیت مشخص را هدف گرفت و برای یافته‌های قدیمی برنامه اصلاح جداگانه داشت. با این حال این انتخاب باید مستند باشد تا گزارش سبز به اشتباه به معنای نبود همه مشکلات تلقی نشود. وضعیت پذیرش موقت با وضعیت رفع‌شده یکسان نیست و بهتر است در داشبورد نیز جدا دیده شود.

استثنا باید به شناسه یافته، دارایی و بازه زمانی محدود باشد. ذکر «فعلاً لازم نیست» توضیح کافی نیست؛ باید معلوم باشد چرا اصلاح فوری ممکن نیست، چه کنترل جبرانی وجود دارد و چه زمانی تصمیم بازبینی می‌شود. تغییر تصویر پایه یا محیط استقرار ممکن است اعتبار دلیل قبلی را از بین ببرد. در نتیجه استثنا باید بخشی از فرایند بازبینی انتشار باشد، نه فایل فراموش‌شده‌ای در مخزن. مالک سرویس باید بتواند فهرست استثناهای فعال خود را به سادگی ببیند.

پایگاه داده و اجرای قابل بازتولید

نتیجه اسکن به داده‌های آسیب‌پذیری وابسته است و با گذر زمان تغییر می‌کند، حتی اگر ایمیج ثابت بماند. این رفتار طبیعی است؛ اطلاعات تازه ممکن است مشکل پیش‌تر ناشناخته‌ای را آشکار کند. بنابراین ثبت تاریخ اسکن و وضعیت دریافت پایگاه ضروری است. برای محیط محدود از نظر شبکه، روش رسمی آماده‌سازی داده و کش را بررسی کنید. اسکن آفلاین با داده قدیمی باید همین محدودیت را در گزارش نشان دهد. نبود اتصال نباید به نتیجه ظاهراً پاک و مبهم تبدیل شود.

در خط ساخت پرتکرار، کش می‌تواند زمان و مصرف شبکه را کاهش دهد، اما دسترسی نوشتن به آن باید کنترل شود. داده مشترک میان پروژه‌ها نباید به مسیری تبدیل شود که یک کار غیرقابل اعتماد محتوای اسکن دیگری را تغییر دهد. علاوه بر آن، نسخه خود ابزار را ثابت و ارتقا را برنامه‌ریزی کنید. تغییر هم‌زمان موتور، سیاست و تصویر پایه تشخیص علت اختلاف گزارش را دشوار می‌کند. بهتر است ارتقا ابتدا در اجرای مقایسه‌ای بررسی شود و سپس به مسیر اصلی برسد.

اسرار و گزارش‌های حساس

وقتی اسکن اسرار فعال است، خروجی می‌تواند به محل یک کلید یا مقدار حساس اشاره کند. گزارش نباید بدون بررسی در خروجی عمومی ساخت منتشر شود. حتی اگر ابزار بخشی از مقدار را مخفی کند، مسیر فایل و زمینه ممکن است اطلاعات داخلی را آشکار کند. دسترسی به گزارش را با سطح حساسیت مخزن هماهنگ کنید. پیدا شدن یک کلید واقعی فقط با حذف آن از آخرین نسخه فایل حل نمی‌شود؛ باید امکان سوءاستفاده، تاریخچه انتشار و نیاز به تعویض کلید بررسی شود. این اقدام باید در فرایند مدیریت اعتبارنامه انجام گیرد.

در بررسی پیکربندی نیز نتیجه باید با نحوه استقرار واقعی تطبیق داده شود. یک فایل نمونه آموزشی ممکن است در تولید استفاده نشود، اما قرار دادن آن در فهرست استثنا بدون فهم نقش فایل اشتباه است. از سوی دیگر فایل تولیدی که در مرحله دیگری ساخته می‌شود شاید اصلاً در هدف اولیه اسکن موجود نباشد. فهرست دارایی‌های بررسی‌شده را ثبت کنید و نقاط خارج از پوشش را مشخص سازید. پوشش روشن و محدود از ادعای مبهم بررسی همه چیز مفیدتر است.

SBOM و پیگیری پس از انتشار

صورت‌مواد نرم‌افزاری می‌تواند به نگهداری فهرست اجزای خروجی کمک کند، اما وجود آن به تنهایی خطر را رفع نمی‌کند. ارزش عملی زمانی ایجاد می‌شود که فهرست به شناسه ساخت متصل باشد و تیم بتواند پس از اعلام آسیب‌پذیری جدید، سرویس‌های متأثر را پیدا کند. قالب و جزئیات خروجی مورد نیاز را با مصرف‌کننده هماهنگ کنید. فایل بزرگی که هیچ سامانه‌ای آن را نمی‌خواند و هیچ مسئولی نگهداری نمی‌کند، بیشتر بایگانی است تا کنترل امنیتی. اعتبار و تازگی این فهرست نیز باید بررسی شود.

اسکن را فقط به لحظه انتشار محدود نکنید. ایمیجی که ماه‌ها تغییر نکرده ممکن است با دانش تازه آسیب‌پذیر شناخته شود. برنامه بازاسکن دوره‌ای باید مالک و زمان پاسخ داشته باشد. نتیجه جدید باید به همان تیم مسئول سرویس برگردد و مشخص شود آیا ایمیج هنوز در حال اجراست یا فقط در رجیستری باقی مانده است. این تفکیک به اولویت‌بندی کمک می‌کند. پاک‌سازی تصاویر بلااستفاده و اصلاح تصاویر فعال دو کار متفاوت هستند و گزارش باید هر دو را قابل تشخیص کند.

معیار موفقیت

موفقیت استفاده از Trivy فقط کاهش تعداد قرمزها نیست. زمان رسیدن یافته به مالک، نسبت یافته‌های قابل اقدام، مدت رفع و تعداد استثناهای منقضی‌شده شاخص‌های عملی‌تری هستند. یک تمرین انتشار با خطای عمدی و بی‌خطر نشان می‌دهد سیاست واقعاً اجرا می‌شود یا فقط گزارش تولید می‌کند. همچنین توقف شبکه و خرابی دریافت داده را آزمایش کنید تا وضعیت شکست روشن باشد. مخزن رسمی Trivy و مستندات پروژه مرجع دریافت و جزئیات هستند. ابزار زمانی سودمند است که به تصمیم مهندسی قابل پیگیری متصل شود و حدود پوشش آن برای توسعه‌دهنده و مدیر عملیات یکسان فهمیده شود.

در قرارداد میان تیم امنیت و توسعه، مشخص کنید چه کسی در صورت خرابی خود اسکنر تصمیم می‌گیرد. عبور اضطراری از دروازه انتشار باید با دلیل، زمان و مسئول ثبت شود و پس از بازگشت سرویس، اسکن جبرانی انجام گیرد. چنین مسیری برای شرایط واقعی مفید است، اما نباید به عادت روزمره تبدیل شود. مرور دوره‌ای دفعات عبور اضطراری نشان می‌دهد سیاست بیش از حد شکننده است یا زیرساخت بررسی به ظرفیت بیشتری نیاز دارد.

TRACEABLE KNOWLEDGE

منابع و مطالعهٔ بیشتر

01
وب‌سایت Trivyhttps://trivy.dev/
02
مستنداتhttps://trivy.dev/docs/
03
مخزن رسمیhttps://github.com/aquasecurity/trivy

آخرین بررسی تحریریه:

IROSG / EDITORIAL

خبرها و معرفی مشاهیر با نگارش مستقل و ذکر منبع تهیه شده‌اند. اعتبار و مجوز تصاویر در بخش منابع همین صفحه نگه‌داری می‌شود تا متن زیر عکس‌ها شلوغ نشود. داده‌های مرجع CVE با اعتباردهی به منابع اصلی ارائه می‌شوند.

سیاست تألیف و حقوق تصاویر ↗
عکس یا نمودار واقعی مرتبط: SpiderFootاپلیکیشن‌های امنیتی
امنیت سایبری

SpiderFoot؛ کشف سطح حمله و گردآوری OSINT برای دارایی‌های تحت مدیریت

SpiderFoot ابزار خودکارسازی بخشی از گردآوری اطلاعات عمومی درباره دامنه، IP، نام سرویس و دارایی مرتبط است. برای تیم دفاع می‌تواند به ساخت نمایی از سطح حمله بیرونی کمک کند؛ البته کیفیت نتایج به منابع داده، تنظیم ماژول‌ها و محدودیت نرخ سرویس‌ها بستگی دارد. هر دامنه دیده‌شده در خروجی لزوماً مالک مشترک یا مسیر نفوذ فعال ندارد.

10 دقیقه مطالعهبخوانید
عکس یا نمودار واقعی مرتبط: Mobile Security Framework (MobSF)اپلیکیشن‌های امنیتی
امنیت سایبری

MobSF؛ تحلیل امنیت APK و iOS برای پیدا کردن مجوزهای خطرناک و ضعف API

MobSF چارچوب متن‌باز تحلیل امنیت برنامه‌های موبایل است که قابلیت‌هایی برای بررسی ایستا و پویا در اختیار تیم توسعه و ارزیابی امنیت قرار می‌دهد. برای APK می‌توان مجوزها، پیکربندی‌های مشکوک، کتابخانه‌ها و بخشی از نحوه استفاده از API را بررسی کرد. نتیجه اسکن خودکار نیازمند تأیید است؛ وجود مجوز به معنای سوءاستفاده قطعی برنامه نیست.

9 دقیقه مطالعهبخوانید
عکس یا نمودار واقعی مرتبط: Pwndbgاپلیکیشن‌های امنیتی
امنیت سایبری

Pwndbg؛ دیباگ حرفه‌ای باینری لینوکس روی GDB برای پژوهش آسیب‌پذیری

Pwndbg افزونه‌ای برای GDB است که مشاهده حافظه، ثبات‌ها، Stack و وضعیت اجرای برنامه را هنگام اشکال‌زدایی ساده‌تر می‌کند. در پژوهش امنیت باینری، شناخت رفتار حافظه و کنترل مسیر اجرای برنامه اهمیت دارد. ابزار نه جایگزین تحلیل دقیق کد است و نه مجوزی برای بررسی نرم‌افزار دیگران؛ بهترین کاربرد آموزشی آن روی برنامه‌های آزمایشگاهی و نمونه‌های مجاز است.

10 دقیقه مطالعهبخوانید