کامپوننتهای آسیبپذیر و قدیمی(N/A)
استفاده از کتابخانهها، فریمورکها و نرمافزارهایی که دارای آسیبپذیریهای شناخته شده هستند یا بهروزرسانی نشدهاند.
کامپوننتهای آسیبپذیر چیه؟
خلاصه در یه جمله: وقتی از کتابخانهها و فریمورکهای قدیمی یا باگدار استفاده میکنی، هکر از باگهای اونها استفاده میکنه!
فرض کن میخوای خونه بسازی. به جای اینکه خودت آجر بسازی، از کارخونه آجر میخری. اگه کارخونه آجر معیوب داده باشه، خونه تو هم ضعیف میشه! تو برنامهنویسی هم همینطوره — از کتابخانههای دیگران استفاده میکنی. اگه اونها باگ داشته باشن، برنامه تو هم باگ داره .
چرا این اتفاق میافته؟
۱. آپدیت نمیکنی: یه کتابخانه استفاده میکنی، دو سال آپدیتش نمیکنی. تو این دو سال ۱۰ تا آسیبپذیری کشف شده!
۲. Dependencyهای زیاد: یه کتابخانه نصب میکنی، اون ۵۰ تا کتابخانه دیگه نیاز داره. تو نمیدونی اون ۵۰ تا چیان و آسیبپذیرن یا نه!
۳. کتابخانههای نامعتبر: از کتابخانههایی استفاده میکنی که معروف نیستن، نگهداری نمیشن، یا حتی مخربان!
مثال واقعی:
Log4Shell (2021): یه کتابخانه به اسم Log4j (برای لاگ کردن در جاوا) یه باگ وحشتناک داشت. میلیونها برنامه از این استفاده میکردن. هکرها راحت میتونستن کد دلخواهشون رو اجرا کنن! فقط چون یه کتابخانه آپدیت نشده بود .
Equifax (2017): یه شرکت بزرگ اعتبارسنجی، از یه کتابخانه قدیمی Apache Struts استفاده میکرد. باگش رو میدونستن ولی آپدیت نکردن. ۱۴۷ میلیون نفر دادهشون دزدیده شد!
چرا برای امنیت مهمه؟
چون شماره ۶ OWASP Top 10 2021 هست! تو دنیای امروز، ۸۰-۹۰٪ کد برنامهها از کتابخانههای دیگهست. اگه اونها آسیبپذیر باشن، برنامه تو هم آسیبپذیره. برای همین Dependency Scanning و آپدیت منظم مهمه.