میں نے ایک سیکیورٹی ٹول بنایا۔ اس نے اپنے اندر ہی ایک سنگین خامی تلاش کر لی۔
میں ایک کوڈ سیکیورٹی اینالائزر بنا رہا ہوں۔ میں اسے vibeanalyzer کہتا ہوں۔
مقصد سادہ ہے۔ اب بہت سے لوگ "vibe-code" کرتے ہیں۔ وہ AI ایجنٹس کو کوڈ لکھنے دیتے ہیں۔ کوڈ صاف ستھرا نظر آتا ہے۔ ٹیسٹ پاس ہو جاتے ہیں۔ لیکن ڈویلپر کو اندازہ ہی نہیں ہوتا کہ پروجیکٹ کے اندر اصل میں کیا ہے۔
اس کام میں مکمل طور پر اترنے سے پہلے، میں نے وہ کام کیا جو مجھے بہت پہلے کر لینا چاہیے تھا۔ میں نے چیک کیا کہ کیا موجودہ ٹولز نے پہلے ہی اس کا حل نکال لیا ہے۔ انہوں نے نکال لیا تھا۔ Semgrep، CodeQL، اور Snyk جیسے ٹولز مجھ سے کہیں بہتر ہیں۔
میں نے اپنے ہی پروجیکٹ پر Semgrep چلایا۔ نتائج نے حقیقت کا سامنا کروا دیا۔
Semgrep نے میری dependencies میں چھ مسائل تلاش کیے:
• ایک ہیش (hash) کے انتخاب سے متعلق معمولی مسئلہ۔ • esbuild اور vite میں دو High severity مسائل۔ • path traversal سے متعلق تین Medium severity مسائل۔ • vitest میں ایک Critical مسئلہ۔
vitest والا مسئلہ ایک path traversal vulnerability تھا۔ یہ کسی کو پروجیکٹ سے باہر کی فائلیں پڑھنے یا چلانے کی اجازت دے سکتا تھا۔ میں نے خود وہ dependency شامل کی تھی۔
ایک سیکیورٹی ٹول میں سنگین خامی کیسے ہو سکتی ہے؟
اس کا جواب supply chain ہے۔ میرا کوڈ شاید ایماندارانہ ہو۔ لیکن وہ ٹولز جن پر میں تعمیر کرتا ہوں، وہ ہمیشہ محفوظ نہیں ہوتے۔ اگر میں نے سیکیورٹی ٹول بناتے وقت اسے نظر انداز کر دیا، تو ایک عام ڈویلپر کے لیے اسے پکڑنے کا کوئی امکان ہی نہیں ہے۔
یہی وجہ ہے کہ میں اب بھی بنا رہا ہوں۔
Semgrep جیسے موجودہ ٹولز خطرے کے پیٹرنز تلاش کرتے ہیں۔ وہ معلوم شدہ vulnerabilities تلاش کرتے ہیں۔ لیکن وہ intent کو نہیں سمجھتے۔ انہیں یہ نہیں معلوم ہوتا کہ آپ کا کوڈ اصل میں کیا کرنے کے لیے بنایا گیا تھا۔
وہ یہ نہیں بتا سکتے کہ آیا کوئی فنکشن محفوظ ہے لیکن وہ کسی ایسے مسئلے کو حل کر رہا ہے جو آپ کے پروجیکٹ میں ہونا ہی نہیں چاہیے تھا۔
میں اسے intent gap کہتا ہوں۔ یہ کوڈ اور اس کے مقصد کے درمیان کا فاصلہ ہے۔
Vibeanalyzer اسی خلا پر توجہ مرکوز کرتا ہے۔ یہ ٹول آپ سے پروجیکٹ کے intent اور اس کے non-goals کے بارے میں پوچھتا ہے۔ یہ guardrails مقرر کرتا ہے۔ جب AI کوڈ کا جائزہ لیتا ہے، تو اسے مقصد معلوم ہوتا ہے۔ اسے معلوم ہوتا ہے کہ کیا چیز حدود سے باہر ہے۔
میں نے intent loading والا حصہ مکمل کر لیا ہے۔ میرے پاس بنیادی TypeScript analysis اور folder structure graphs موجود ہیں۔ اگلا مرحلہ AI layer بنانا ہے۔ مجھے نہیں معلوم کہ کیا AI واقعی intent کے مطابق کوڈ کا جائزہ لے سکتا ہے۔ ہو سکتا ہے کہ یہ صرف false alarms پیدا کرے۔ میں یہ جاننے کے لیے اسے کھلے عام بناؤں گا۔
میں نے اپنی dependencies کو اپ ڈیٹ کیا اور معلوم بگ (bugs) کو ختم کر دیا۔ لیکن نامعلوم خامیاں اور logic errors اب بھی موجود ہیں۔ اسی لیے کام جاری ہے۔
Optional learning community: https://t.me/GyaanSetuAi
