- بواسطة x32x01 ||
قصة حقيقية: لما الذكاء الاصطناعي يكتب الكود… ومشكلة أمنية تكلف آلاف الدولارات 💻💸
في الفترة الأخيرة بقى فيه مصطلح منتشر جدًا بين المبرمجين اسمه Vibe Coding 🤖والمقصود بيه إن المطور يعتمد بشكل كبير على الذكاء الاصطناعي في كتابة الكود بدل ما يكتب كل حاجة بنفسه.
الفكرة شكلها مغرية جدًا…
تكتب وصف بسيط للمشكلة، والـ AI يطلع لك كود جاهز خلال ثواني.
لكن زي ما هتشوف في القصة دي 👇
الاعتماد الكامل على الذكاء الاصطناعي ممكن يسبب مشاكل أمنية خطيرة جدًا.
إيه اللي حصل مع صاحب شركة Glossa؟ 🚨
في مطور اسمه Anton Karbanovich وهو صاحب شركة اسمها Glossa.المطور ده قرر يبني موقع الشركة باستخدام أسلوب Vibe Coding، يعني اعتمد بدرجة كبيرة على أدوات الذكاء الاصطناعي في كتابة الكود الخاص بالموقع.
المشكلة بدأت لما الموقع كان متصل بمنصة الدفع Stripe عشان يستقبل المدفوعات من العملاء 💳
لكن حصل خطأ أمني مهم جدًا في التعامل مع Stripe API Keys.
المشكلة بدأت من مفاتيح API الخاصة بـ Stripe 🔑
في أنظمة الدفع زي Stripe، الموقع بيستخدم حاجة اسمها API Keys عشان يقدر يتعامل مع النظام.المفاتيح دي تعتبر زي مفتاح باب البنك تقريبًا.
لو حد وصل لها… ممكن يعمل عمليات مالية من خلال الحساب.
اللي حصل إن المهاجم قدر يوصل لمفاتيح الـ API واستغلها في تنفيذ عمليات دفع متكررة.
الهجوم حصل بسرعة قبل ما يتم اكتشافه ⚠️
المهاجم بدأ يعمل عمليات دفع بقيمة 500 دولار في كل مرة.وخلال وقت قصير حصل التالي:
- تم تنفيذ 175 عملية دفع
- قيمة كل عملية 500 دولار
- وتم سحب المبلغ قبل ما صاحب الموقع ياخد باله
وبالتالي صاحب الموقع خسر حوالي 2500 دولار رسوم معاملات فقط 💸
ليه المشكلة حصلت أساسًا؟ 🤔
المطور نفسه وضّح إن المشكلة مش بسبب الذكاء الاصطناعي بشكل مباشر.لكن السبب الحقيقي كان:
- الاعتماد الزائد على AI في كتابة الكود
- عدم مراجعة الكود أمنيًا
- عدم تأمين مفاتيح الـ API بشكل صحيح
الذكاء الاصطناعي كتب الكود… لكن الأمان لازم يراجعه المطور بنفسه.
مثال بسيط على الخطأ اللي ممكن يحصل في الكود ⚡
أحيانًا المطور يضع مفتاح API مباشرة داخل الكود.مثال خطير جدًا 👇
JavaScript:
const stripe = require("stripe")("sk_test_123456789"); - GitHub
- JavaScript frontend
- أو ملف عام
الطريقة الصحيحة لتخزين مفاتيح API 🔐
الأفضل دائمًا تخزين المفاتيح داخل Environment Variables.مثال أكثر أمانًا 👇
JavaScript:
const stripe = require("stripe")(process.env.STRIPE_SECRET_KEY); .env Code:
STRIPE_SECRET_KEY=sk_live_xxxxxxxxx نصائح مهمة لتأمين مواقع الدفع الإلكتروني 🛡️
لو عندك موقع بيستخدم Stripe أو أي Payment API لازم تنتبه للنقط دي:1️⃣ لا تضع API Keys داخل الكود
استخدم دائمًا environment variables.2️⃣ فعل Webhooks validation
عشان تتأكد إن العمليات جاية من Stripe فعلًا.3️⃣ استخدم Rate Limiting
لتقليل عمليات الدفع المتكررة.4️⃣ راقب العمليات المالية باستمرار
خصوصًا لو الموقع جديد.5️⃣ اعمل Rotation لمفاتيح API
غير المفاتيح بشكل دوري.هل Vibe Coding فكرة سيئة؟ 🤖
الإجابة: لا.الذكاء الاصطناعي بقى أداة قوية جدًا في تطوير البرمجيات.
لكن المشكلة بتحصل لما:
- المطور يعتمد عليه بشكل كامل
- بدون مراجعة الكود
- أو بدون اختبار أمني
الـ AI يقدر يساعدك تكتب الكود بسرعة… لكن المسؤولية الأمنية تظل على المطور.
الدرس المهم لأي مطور أو Pentester 🧠
القصة دي بتوضح حاجة مهمة جدًا في عالم الأمن السيبراني وتطوير الويب:مش كل كود مكتوب بشكل صحيح… يكون آمن.
وده سبب إن مراجعة الكود أمنيًا Code Security Review بقت خطوة أساسية في أي مشروع.
خصوصًا في الأنظمة اللي بتتعامل مع: المدفوعات - الحسابات المالية - بيانات المستخدمين