Import/Export With External Drive

از Secure Coding

آسیب پذیری Import / Export with external Drive یک نوع حمله به امنیت نرم افزار است که در آن، یک مهاجم می تواند با استفاده از یک درایو خارجی، اطلاعات حساس را از دستگاه هدف خود به دست آورد یا فایل های خبیث را در سیستم هدف قرار دهد. این حمله معمولا با انتقال فایل ها و اطلاعات بدون هیچگونه محدودیت از طریق درایو خارجی به نرم افزار مورد نظر انجام می شود.

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

در ادامه یک نمونه کد C نشان داده شده است که به راحتی مستعد حمله Import / Export with external Drive است:


#include <stdio.h>
#include <stdlib.h>

int main()
{
    char path[100];
    printf("Enter file path: ");
    scanf("%s", path);

    FILE* file = fopen(path, "r");
    if (file == NULL) {
        printf("Error opening file\n");
        exit(1);
    }

    char data[1024];
    while (fgets(data, 1024, file) != NULL) {
        printf("%s", data);
    }

    fclose(file);
    return 0;
}


در این کد، برنامه با استفاده از تابع scanf() مسیر فایل را از کاربر دریافت می کند. سپس فایل را با استفاده از تابع fopen() با حالت "r" باز می کند و اطلاعات را از فایل خوانده و در سیستم هدف چاپ می کند.