نماد سایت گیلان پلاس رسانه هوش مصنوعی و کارآفرینی گیلان

خطرات پنهان هوش مصنوعی در تولید کد؛ از آسیب‌پذیری‌ها تا سوءاستفاده

خطرات پنهان هوش مصنوعی در تولید کد؛ از آسیب‌پذیری‌ها تا سوءاستفاده

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

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

کدنویسی شهودی (Vibe Coding) و آسیب‌پذیری‌های امنیتی

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

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

گزارشگر وضعیت MQTT: مثالی از آسیب‌پذیری‌های ساده

برای شروع، از ChatGPT خواستم برنامه‌ای به زبان C++ بنویسد که وضعیت سیستم (CPU، RAM، حافظه) را هر ۳۰ ثانیه یک بار جمع‌آوری کرده و به یک موضوع MQTT ارسال کند. این یک درخواست ساده بود، اما نتایج نگران‌کننده بود.

مشکلات امنیتی در کد MQTT

این برنامه، چندین آسیب‌پذیری جدی امنیتی داشت:

حملات احتمالی از طریق MQTT:

عدم اعتبارسنجی دقیق، امکان حملات زیر را فراهم می‌کرد:

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

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

آسیب‌پذیری در نسخه ویندوز:

در سیستم‌عامل ویندوز، استفاده از دستور dir به همراه cmd /c امکان تزریق دستور را فراهم می‌کرد. به عنوان مثال، کاربر می‌توانست ورودی "C: & calc.exe" را وارد کند که باعث اجرای ماشین حساب می‌شد.

این نشان می‌دهد که حتی با وجود ادعای هوش مصنوعی مبنی بر “ایمنی”، باید کدهای تولیدی را به دقت بررسی کرد.

تجزیه یک فایل CSV در C: خطاهای فاحش

در آزمایشی دیگر، از ChatGPT خواستم برنامه‌ای به زبان C بنویسد که یک فایل CSV را خط به خط بخواند و هر فیلد را چاپ کند. هدف، بررسی مشکلات مربوط به مدیریت حافظه در C بود.

مشکلات اصلی در کد C:

سرور وب C با قابلیت آپلود فایل: نکات مثبت و منفی

سپس از ChatGPT خواستم یک سرور وب ساده به زبان C بنویسد که امکان آپلود فایل را فراهم کند. این کد، هرچند به نسبت بهتر بود، اما باز هم مشکلات جدی داشت.

نقاط ضعف امنیتی:

نتیجه‌گیری: کد تولیدی هوش مصنوعی نیازمند هوشیاری است

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

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

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

خروج از نسخه موبایل