پروگرام کوڈ میں کمزوریوں کو تلاش کرنے کے لیے ایک سادہ افادیت کا استعمال کیسے کریں۔

Graudit متعدد پروگرامنگ زبانوں کو سپورٹ کرتا ہے اور آپ کو کوڈ بیس سیکیورٹی ٹیسٹنگ کو براہ راست ترقیاتی عمل میں ضم کرنے کی اجازت دیتا ہے۔

پروگرام کوڈ میں کمزوریوں کو تلاش کرنے کے لیے ایک سادہ افادیت کا استعمال کیسے کریں۔
ماخذ: Unsplash سے (مارکس سپیسکے)

ٹیسٹنگ سافٹ ویئر ڈویلپمنٹ لائف سائیکل کا ایک اہم حصہ ہے۔ جانچ کی بہت سی قسمیں ہیں، ان میں سے ہر ایک اپنا مسئلہ حل کرتا ہے۔ آج میں کوڈ میں سیکیورٹی کے مسائل تلاش کرنے کے بارے میں بات کرنا چاہتا ہوں۔

ظاہر ہے، سافٹ ویئر ڈویلپمنٹ کی جدید حقیقتوں میں، عمل کی حفاظت کو یقینی بنانا ضروری ہے۔ ایک وقت میں، خاص اصطلاح DevSecOps بھی متعارف کرائی گئی تھی۔ اس اصطلاح سے مراد طریقہ کار کی ایک سیریز ہے جس کا مقصد کسی درخواست میں موجود کمزوریوں کی شناخت اور اسے ختم کرنا ہے۔ معیارات کے مطابق کمزوریوں کی جانچ کرنے کے لیے خصوصی اوپن سورس حل موجود ہیں۔ OWASP، جو سورس کوڈ میں کمزوریوں کی مختلف اقسام اور رویے کو بیان کرتا ہے۔

سیکیورٹی کے مسائل کو حل کرنے کے لیے مختلف طریقے ہیں، جیسے کہ سٹیٹک ایپلیکیشن سیکیورٹی ٹیسٹنگ (SAST)، ڈائنامک ایپلیکیشن سیکیورٹی ٹیسٹنگ (DAST)، انٹرایکٹو ایپلیکیشن سیکیورٹی ٹیسٹنگ (IAST)، سافٹ ویئر کمپوزیشن اینالیسس، وغیرہ۔

جامد ایپلی کیشن سیکیورٹی ٹیسٹنگ پہلے سے لکھے گئے کوڈ میں موجود غلطیوں کی نشاندہی کرتی ہے۔ اس نقطہ نظر کو ایپلیکیشن کو چلانے کی ضرورت نہیں ہے، اسی لیے اسے جامد تجزیہ کہا جاتا ہے۔

میں جامد کوڈ کے تجزیہ پر توجہ دوں گا اور ہر چیز کو عملی طور پر ظاہر کرنے کے لیے ایک سادہ اوپن سورس ٹول استعمال کروں گا۔

میں نے جامد کوڈ سیکیورٹی تجزیہ کے لیے اوپن سورس ٹول کا انتخاب کیوں کیا۔

اس کی کئی وجوہات ہیں: سب سے پہلے، یہ مفت ہے کیونکہ آپ ہم خیال لوگوں کی کمیونٹی کے ذریعہ تیار کردہ ایک ٹول استعمال کر رہے ہیں جو دوسرے ڈویلپرز کی مدد کرنا چاہتے ہیں۔ اگر آپ کے پاس ایک چھوٹی ٹیم یا اسٹارٹ اپ ہے، تو آپ کے پاس اپنے کوڈ بیس کی سیکیورٹی کو جانچنے کے لیے اوپن سورس سافٹ ویئر استعمال کرکے پیسے بچانے کا بہترین موقع ہے۔ دوم، یہ آپ کے لیے ایک علیحدہ DevSecOps ٹیم کی خدمات حاصل کرنے کی ضرورت کو ختم کرتا ہے، اور آپ کے اخراجات کو مزید کم کرتا ہے۔

اچھے اوپن سورس ٹولز ہمیشہ لچک کے لیے بڑھتی ہوئی ضروریات کو مدنظر رکھتے ہوئے بنائے جاتے ہیں۔ لہذا، وہ تقریبا کسی بھی ماحول میں استعمال کیا جا سکتا ہے، کاموں کی ایک وسیع رینج کا احاطہ کرتا ہے. ڈویلپرز کے لیے ایسے ٹولز کو اس سسٹم کے ساتھ جوڑنا بہت آسان ہے جو وہ اپنے پروجیکٹس پر کام کرتے ہوئے پہلے ہی بنا چکے ہیں۔

لیکن ایسے وقت بھی ہو سکتے ہیں جب آپ کو کسی ایسی خصوصیت کی ضرورت ہو جو آپ کے منتخب کردہ ٹول میں دستیاب نہ ہو۔ اس صورت میں، آپ کے پاس موقع ہے کہ اس کے کوڈ کو فورک کریں اور اس کی بنیاد پر اپنی ضرورت کے مطابق اپنا ٹول تیار کریں۔

چونکہ زیادہ تر معاملات میں اوپن سورس سافٹ ویئر کی نشوونما کمیونٹی سے فعال طور پر متاثر ہوتی ہے، اس لیے تبدیلیاں کرنے کا فیصلہ بہت تیزی سے کیا جاتا ہے اور اس حد تک: اوپن سورس پروجیکٹ کے ڈویلپرز اپنی رپورٹس پر صارفین کے تاثرات اور تجاویز پر انحصار کرتے ہیں۔ غلطیاں پائی گئیں اور دیگر مسائل۔

کوڈ سیکورٹی تجزیہ کے لیے Graudit کا استعمال

آپ جامد کوڈ کے تجزیہ کے لیے مختلف اوپن سورس ٹولز استعمال کر سکتے ہیں؛ تمام پروگرامنگ زبانوں کے لیے کوئی آفاقی ٹول نہیں ہے۔ ان میں سے کچھ کے ڈویلپر OWASP کی سفارشات پر عمل کرتے ہیں اور زیادہ سے زیادہ زبانوں کا احاطہ کرنے کی کوشش کرتے ہیں۔

یہاں ہم استعمال کریں گے۔ گراڈیٹ، ایک سادہ کمانڈ لائن افادیت جو ہمیں اپنے کوڈ بیس میں کمزوریوں کو تلاش کرنے کی اجازت دے گی۔ یہ مختلف زبانوں کو سپورٹ کرتا ہے، لیکن پھر بھی ان کا سیٹ محدود ہے۔ Graudit کو grep یوٹیلیٹی یوٹیلیٹی کی بنیاد پر تیار کیا گیا ہے، جو کبھی GNU لائسنس کے تحت جاری کیا گیا تھا۔

جامد کوڈ کے تجزیہ کے لیے ملتے جلتے ٹولز ہیں - رف آڈیٹنگ ٹول فار سیکیورٹی (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. جامد کوڈ کا تجزیہ کرنا آسان ہے، لیکن یہ صرف شروعات ہے۔ اپنے کوڈبیس کی حفاظت کے بارے میں مزید جاننے کے لیے، آپ کو اپنے سافٹ ویئر ڈویلپمنٹ لائف سائیکل میں ٹیسٹنگ کی دیگر اقسام کو ضم کرنے کی ضرورت ہے۔

ایڈورٹائزنگ کے حقوق پر

قابل اعتماد VPS اور ٹیرف پلان کا صحیح انتخاب آپ کو ناخوشگوار مسائل کی وجہ سے ترقی سے کم توجہ ہٹانے کی اجازت دے گا - ہر چیز ناکامی کے بغیر اور بہت زیادہ اپ ٹائم کے ساتھ کام کرے گی!

پروگرام کوڈ میں کمزوریوں کو تلاش کرنے کے لیے ایک سادہ افادیت کا استعمال کیسے کریں۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں