شکستهای یکپارچگی نرمافزار و داده(N/A)
آسیبپذیریهایی که به مهاجمان اجازه میدهد کد یا دادهها را بدون تأیید اعتبار تغییر دهند یا دستکاری کنند.
شکستهای یکپارچگی نرمافزار چیه؟
خلاصه در یه جمله: وقتی نتونی مطمئن بشی کد یا دادهها دستکاری نشدن، هکر میتونه کد مخرب تزریق کنه!
فرض کن یه بسته از پست میگیری. از کجا مطمئن میشی کسی بازش نکرده و چیزی توش نذاشته؟ اگه پلمپ داشته باشه و پلمپ سالم باشه، مطمئنی. تو نرمافزار هم همینطوره — باید بتونی چک کنی کد یا داده دستکاری نشده .
انواع شکستهای یکپارچگی:
۱. آپدیتهای بدون امضا: برنامهت آپدیت رو از سرور میگیره بدون اینکه چک کنه واقعاً از طرف تو اومده. هکر سرور رو هک میکنه، آپدیت مخرب میفرسته، همه کاربرای تو آلوده میشن!
۲. CI/CD Pipeline ناامن: سیستمی که کد رو Deploy میکنه امن نیست. هکر واردش میشه، کد مخرب تزریق میکنه، کد مخرب Deploy میشه روی تولید!
۳. Dependencyهای تأیید نشده: کتابخانهها رو بدون چک کردن Hash یا امضا نصب میکنی. هکر کتابخانه رو آلوده کرده، تو نصب میکنی!
۴. Deserialization ناامن: دادههای Serialized رو بدون تأیید اعتبار Deserialize میکنی. هکر داده مخرب میفرسته، کد اجرا میشه!
۵. Trust Boundary اشتباه: به دادههای خارجی (مثل CDN، APIهای سوم) اعتماد میکنی بدون تأیید.
مثال واقعی:
SolarWinds (2020): هکرها وارد سیستم Build SolarWinds شدن، کد مخرب به آپدیتها اضافه کردن. هزاران شرکت آپدیت رو نصب کردن و آلوده شدن! چون آپدیتها امضا داشتن و شرکتها فکر میکردن امنه .
چرا برای امنیت مهمه؟
چون شماره ۸ OWASP Top 10 2021 هست! اگه یکپارچگی کد تأیید نشه، هکر میتونه کد مخرب رو به میلیونها کاربر برسونیه. این نوع حملات خیلی خطرناکن چون از طرف منبع معتبر میان و کسی شک نمیکنه.