Usage of Outdated Softwares

از Secure Coding

آسیب‌پذیری Usage of Outdated Softwares به معنای استفاده از نرم‌افزارهای قدیمی و دارای آسیب‌پذیری‌های امنیتی در برنامه‌های دسکتاپ است. این نوع آسیب‌پذیری از آنجا ناشی می‌شود که برنامه‌های قدیمی برای مدت زیادی توسعه داده شده‌اند و نهایتاً با توجه به تغییرات و به‌روزرسانی‌های سیستم‌عامل و محیط اجرایی، آنها به‌روزرسانی نشده و در نتیجه، به مشکلات امنیتی در برنامه‌های دیگر منتقل می‌شوند.

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

در زیر یک نمونه کد C آسیب‌پذیر به دلیل استفاده از یک کتابخانه قدیمی آورده شده است:


#include <stdio.h>
#include <openssl/md5.h>

void generate_hash(const char *input)
{
    unsigned char result[MD5_DIGEST_LENGTH];
    MD5(input, strlen(input), result);
    
    printf("Input: %s\nHash: ", input);
    for (int i = 0; i < MD5_DIGEST_LENGTH; i++) {
        printf("%02x", result[i]);
    }
    printf("\n");
}

int main()
{
    generate_hash("password");
    return 0;
}


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