Graudit متعدد پروگرامنگ زبانوں کو سپورٹ کرتا ہے اور آپ کو کوڈ بیس سیکیورٹی ٹیسٹنگ کو براہ راست ترقیاتی عمل میں ضم کرنے کی اجازت دیتا ہے۔
ماخذ:
ٹیسٹنگ سافٹ ویئر ڈویلپمنٹ لائف سائیکل کا ایک اہم حصہ ہے۔ جانچ کی بہت سی قسمیں ہیں، ان میں سے ہر ایک اپنا مسئلہ حل کرتا ہے۔ آج میں کوڈ میں سیکیورٹی کے مسائل تلاش کرنے کے بارے میں بات کرنا چاہتا ہوں۔
ظاہر ہے، سافٹ ویئر ڈویلپمنٹ کی جدید حقیقتوں میں، عمل کی حفاظت کو یقینی بنانا ضروری ہے۔ ایک وقت میں، خاص اصطلاح DevSecOps بھی متعارف کرائی گئی تھی۔ اس اصطلاح سے مراد طریقہ کار کی ایک سیریز ہے جس کا مقصد کسی درخواست میں موجود کمزوریوں کی شناخت اور اسے ختم کرنا ہے۔ معیارات کے مطابق کمزوریوں کی جانچ کرنے کے لیے خصوصی اوپن سورس حل موجود ہیں۔
سیکیورٹی کے مسائل کو حل کرنے کے لیے مختلف طریقے ہیں، جیسے کہ سٹیٹک ایپلیکیشن سیکیورٹی ٹیسٹنگ (SAST)، ڈائنامک ایپلیکیشن سیکیورٹی ٹیسٹنگ (DAST)، انٹرایکٹو ایپلیکیشن سیکیورٹی ٹیسٹنگ (IAST)، سافٹ ویئر کمپوزیشن اینالیسس، وغیرہ۔
جامد ایپلی کیشن سیکیورٹی ٹیسٹنگ پہلے سے لکھے گئے کوڈ میں موجود غلطیوں کی نشاندہی کرتی ہے۔ اس نقطہ نظر کو ایپلیکیشن کو چلانے کی ضرورت نہیں ہے، اسی لیے اسے جامد تجزیہ کہا جاتا ہے۔
میں جامد کوڈ کے تجزیہ پر توجہ دوں گا اور ہر چیز کو عملی طور پر ظاہر کرنے کے لیے ایک سادہ اوپن سورس ٹول استعمال کروں گا۔
میں نے جامد کوڈ سیکیورٹی تجزیہ کے لیے اوپن سورس ٹول کا انتخاب کیوں کیا۔
اس کی کئی وجوہات ہیں: سب سے پہلے، یہ مفت ہے کیونکہ آپ ہم خیال لوگوں کی کمیونٹی کے ذریعہ تیار کردہ ایک ٹول استعمال کر رہے ہیں جو دوسرے ڈویلپرز کی مدد کرنا چاہتے ہیں۔ اگر آپ کے پاس ایک چھوٹی ٹیم یا اسٹارٹ اپ ہے، تو آپ کے پاس اپنے کوڈ بیس کی سیکیورٹی کو جانچنے کے لیے اوپن سورس سافٹ ویئر استعمال کرکے پیسے بچانے کا بہترین موقع ہے۔ دوم، یہ آپ کے لیے ایک علیحدہ DevSecOps ٹیم کی خدمات حاصل کرنے کی ضرورت کو ختم کرتا ہے، اور آپ کے اخراجات کو مزید کم کرتا ہے۔
اچھے اوپن سورس ٹولز ہمیشہ لچک کے لیے بڑھتی ہوئی ضروریات کو مدنظر رکھتے ہوئے بنائے جاتے ہیں۔ لہذا، وہ تقریبا کسی بھی ماحول میں استعمال کیا جا سکتا ہے، کاموں کی ایک وسیع رینج کا احاطہ کرتا ہے. ڈویلپرز کے لیے ایسے ٹولز کو اس سسٹم کے ساتھ جوڑنا بہت آسان ہے جو وہ اپنے پروجیکٹس پر کام کرتے ہوئے پہلے ہی بنا چکے ہیں۔
لیکن ایسے وقت بھی ہو سکتے ہیں جب آپ کو کسی ایسی خصوصیت کی ضرورت ہو جو آپ کے منتخب کردہ ٹول میں دستیاب نہ ہو۔ اس صورت میں، آپ کے پاس موقع ہے کہ اس کے کوڈ کو فورک کریں اور اس کی بنیاد پر اپنی ضرورت کے مطابق اپنا ٹول تیار کریں۔
چونکہ زیادہ تر معاملات میں اوپن سورس سافٹ ویئر کی نشوونما کمیونٹی سے فعال طور پر متاثر ہوتی ہے، اس لیے تبدیلیاں کرنے کا فیصلہ بہت تیزی سے کیا جاتا ہے اور اس حد تک: اوپن سورس پروجیکٹ کے ڈویلپرز اپنی رپورٹس پر صارفین کے تاثرات اور تجاویز پر انحصار کرتے ہیں۔ غلطیاں پائی گئیں اور دیگر مسائل۔
کوڈ سیکورٹی تجزیہ کے لیے Graudit کا استعمال
آپ جامد کوڈ کے تجزیہ کے لیے مختلف اوپن سورس ٹولز استعمال کر سکتے ہیں؛ تمام پروگرامنگ زبانوں کے لیے کوئی آفاقی ٹول نہیں ہے۔ ان میں سے کچھ کے ڈویلپر OWASP کی سفارشات پر عمل کرتے ہیں اور زیادہ سے زیادہ زبانوں کا احاطہ کرنے کی کوشش کرتے ہیں۔
یہاں ہم استعمال کریں گے۔
جامد کوڈ کے تجزیہ کے لیے ملتے جلتے ٹولز ہیں - رف آڈیٹنگ ٹول فار سیکیورٹی (RATS)، Securitycompass Web Application Analysis Tool (SWAAT)، فلا فائنڈر وغیرہ۔ لیکن Graudit بہت لچکدار ہے اور اس میں کم سے کم تکنیکی تقاضے ہیں۔ تاہم، آپ کو ایسے مسائل ہو سکتے ہیں جنہیں Graudit حل نہیں کر سکتا۔ پھر آپ یہاں دوسرے اختیارات تلاش کر سکتے ہیں۔
ہم اس ٹول کو ایک مخصوص پروجیکٹ میں ضم کر سکتے ہیں، یا اسے کسی منتخب صارف کے لیے دستیاب کر سکتے ہیں، یا اسے اپنے تمام پروجیکٹس میں بیک وقت استعمال کر سکتے ہیں۔ یہ وہ جگہ ہے جہاں Graudit کی لچک کام میں آتی ہے۔ تو آئیے پہلے ریپو کو کلون کریں:
$ git clone https://github.com/wireghoul/graudit
اب Graudit کو کمانڈ فارمیٹ میں استعمال کرنے کے لیے ایک علامتی لنک بنائیں
$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit
آئیے .bashrc میں ایک عرف شامل کریں (یا جو بھی کنفیگریشن فائل آپ استعمال کر رہے ہیں):
#------ .bashrc ------
alias graudit="~/bin/graudit"
دوبارہ شروع کریں:
$ source ~/.bashrc # OR
$ exex $SHELL
آئیے چیک کریں کہ آیا انسٹالیشن کامیاب رہی:
$ graudit -h
اگر آپ کچھ ایسا ہی دیکھتے ہیں، تو سب کچھ ٹھیک ہے.
میں اپنے موجودہ منصوبوں میں سے ایک کی جانچ کروں گا۔ ٹول کو چلانے سے پہلے، اسے اس زبان کے مطابق ڈیٹا بیس پاس کرنے کی ضرورت ہے جس میں میرا پروجیکٹ لکھا گیا ہے۔ ڈیٹا بیس ~/gradit/signatures فولڈر میں موجود ہیں:
$ graudit -d ~/gradit/signatures/js.db
لہذا، میں نے اپنے پروجیکٹ سے دو js فائلوں کا تجربہ کیا، اور Graudit نے میرے کوڈ میں موجود خطرات کے بارے میں معلومات کنسول میں ظاہر کی:
آپ اپنے پروجیکٹس کو اسی طرح آزما سکتے ہیں۔ آپ مختلف پروگرامنگ زبانوں کے لیے ڈیٹا بیس کی فہرست دیکھ سکتے ہیں۔
Graudit کے فائدے اور نقصانات
Graudit کئی پروگرامنگ زبانوں کو سپورٹ کرتا ہے۔ لہذا، یہ صارفین کی ایک وسیع رینج کے لیے موزوں ہے۔ یہ مناسب طریقے سے کسی بھی مفت یا ادا شدہ اینالاگ کے ساتھ مقابلہ کر سکتا ہے۔ اور یہ بہت اہم ہے کہ پروجیکٹ میں ابھی بھی بہتری لائی جا رہی ہے، اور کمیونٹی نہ صرف ڈویلپرز کی بلکہ دوسرے صارفین کی بھی مدد کرتی ہے جو اس ٹول کا پتہ لگانے کی کوشش کر رہے ہیں۔
یہ ایک آسان ٹول ہے، لیکن اب تک یہ ہمیشہ اس بات کی نشاندہی نہیں کر سکتا کہ کوڈ کے مشتبہ ٹکڑے میں مسئلہ کیا ہے۔ ڈویلپرز Graudit کو بہتر بناتے رہتے ہیں۔
لیکن کسی بھی صورت میں، اس طرح کے ٹولز کا استعمال کرتے وقت کوڈ میں ممکنہ حفاظتی مسائل پر توجہ دینا مفید ہے۔
شروع ہو رہا ہے…
اس مضمون میں، میں نے کمزوریوں کو تلاش کرنے کے بہت سے طریقوں میں سے صرف ایک کو دیکھا - static application security testing. جامد کوڈ کا تجزیہ کرنا آسان ہے، لیکن یہ صرف شروعات ہے۔ اپنے کوڈبیس کی حفاظت کے بارے میں مزید جاننے کے لیے، آپ کو اپنے سافٹ ویئر ڈویلپمنٹ لائف سائیکل میں ٹیسٹنگ کی دیگر اقسام کو ضم کرنے کی ضرورت ہے۔
ایڈورٹائزنگ کے حقوق پر
ماخذ: www.habr.com