Analysts Welcome NSA's Advice for Developers to Adopt Memory-Safe Languages PlatoBlockchain Data Intelligence. Vertical Search. Ai.

تجزیہ کاروں نے NSA کے ڈویلپرز کے لیے یادداشت سے محفوظ زبانیں اپنانے کے مشورے کا خیرمقدم کیا

سیکیورٹی تجزیہ کاروں نے گزشتہ ہفتے امریکی نیشنل سیکیورٹی ایجنسی (NSA) کی جانب سے سافٹ ویئر ڈویلپرز کے لیے ایک سفارش کا خیرمقدم کیا ہے کہ وہ کوڈ میں میموری سے متعلق کمزوریوں کو کم کرنے کے لیے C#، Go، Java، Ruby، Rust، اور Swift جیسی زبانوں کو اپنانے پر غور کریں۔

NSA نے ان کو "میموری محفوظ" زبانوں کے طور پر بیان کیا ہے جو کمپیوٹر کی زبان کے حصے کے طور پر خود بخود میموری کو منظم کرتی ہیں۔ NSA نے کہا کہ وہ میموری کی حفاظت کو لاگو کرنے کے لیے پروگرامر پر انحصار نہیں کرتے ہیں اور اس کے بجائے کمپائل ٹائم اور رن ٹائم چیکس کو میموری کی غلطیوں سے بچانے کے لیے استعمال کرتے ہیں۔

یادداشت سے محفوظ زبانوں کا کیس

10 نومبر کو NSA کی کسی حد تک غیر معمولی ایڈوائزری نے C اور C++ جیسی وسیع پیمانے پر استعمال ہونے والی زبانوں کی طرف اشارہ کیا پروگرامرز پر بہت زیادہ انحصار کرنا یادداشت سے متعلق غلطیاں نہ کرنا، جو اس نے نوٹ کیا، سافٹ ویئر میں سیکورٹی کے کمزوریوں کی سب سے بڑی وجہ ہے۔ پچھلی مطالعات - ایک ایک کرکے مائیکروسافٹ 2019 میں اور ایک سے 2020 میں گوگل اس کے کروم براؤزر سے متعلق — مثال کے طور پر، دونوں نے پایا کہ 70% کمزوریاں میموری کی حفاظت کے مسائل ہیں، NSA نے کہا۔

NSA نے کہا، "عام طور پر استعمال ہونے والی زبانیں، جیسے C اور C++، میموری کے نظم و نسق میں بہت زیادہ آزادی اور لچک فراہم کرتی ہیں جبکہ میموری کے حوالوں پر ضروری جانچ پڑتال کرنے کے لیے پروگرامر پر بہت زیادہ انحصار کرتے ہیں۔" اس کا نتیجہ اکثر عام غلطیوں جیسے بفر اوور فلو کی غلطیاں، میموری مختص کرنے کے مسائل، اور دوڑ کے حالات سے منسلک استحصالی کمزوریوں کی صورت میں نکلتا ہے۔

NSA نے اپنی ایڈوائزری میں کہا کہ C#، Go، Java، Ruby، Rust، Swift اور دیگر میموری سے محفوظ زبانیں ان مسائل کے خطرے کو مکمل طور پر ختم نہیں کرتی ہیں۔ ان میں سے زیادہ تر میں، مثال کے طور پر، کم از کم چند کلاسز یا فنکشنز شامل ہیں جو غیر میموری سے محفوظ ہیں اور پروگرامر کو ممکنہ طور پر غیر محفوظ میموری مینجمنٹ فنکشن انجام دینے کی اجازت دیتے ہیں۔ یادداشت سے محفوظ زبانوں میں بعض اوقات ایسی زبانوں میں لکھی گئی لائبریریاں بھی شامل ہو سکتی ہیں جو ممکنہ طور پر غیر محفوظ میموری کے افعال پر مشتمل ہوتی ہیں۔

لیکن ان انتباہات کے ساتھ بھی، یادداشت سے محفوظ زبانیں۔ سافٹ ویئر میں کمزوریوں کو کم کرنے میں مدد کر سکتا ہے۔ NSA نے کہا کہ ناقص اور لاپرواہ میموری مینجمنٹ کے نتیجے میں۔

Synopsys Cybersecurity Research Center کے پرنسپل سیکیورٹی اسٹریٹجسٹ، Tim Mackey، NSA کی سفارش کا خیرمقدم کرتے ہیں۔ وہ کہتے ہیں کہ میموری سے محفوظ زبانوں کا استعمال درحقیقت زیادہ تر ایپلی کیشنز کے لیے ڈیفالٹ ہونا چاہیے۔ "عملی مقاصد کے لیے، نئے فیچرز کو پروگرام کرنے کے بجائے میموری مینجمنٹ کے مسائل پر توجہ مرکوز کرنے کے لیے ڈویلپرز پر انحصار کرنا جدت پر ٹیکس کی نمائندگی کرتا ہے،" وہ کہتے ہیں۔ میکی کا کہنا ہے کہ میموری سے محفوظ پروگرامنگ زبانوں اور متعلقہ فریم ورک کے ساتھ، یہ زبان کے مصنفین ہیں جو میموری کے مناسب انتظام کو یقینی بناتے ہیں نہ کہ ایپلیکیشن ڈویلپرز، میکی کہتے ہیں۔

شفٹ چیلنجنگ ہو سکتا ہے۔

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

اس کے علاوہ، تنظیموں کو اس بات پر غور کرنے کی ضرورت ہوگی کہ وہ سیکورٹی اور کارکردگی کے درمیان کتنا سودا کرنے کو تیار ہیں۔ "میموری کی حفاظت کارکردگی اور لچک میں مہنگی ہو سکتی ہے،" NSA نے خبردار کیا۔ "انتہائی سطح کے موروثی تحفظ کے ساتھ زبانوں کے لیے، جانچ پڑتال اور تحفظات کی وجہ سے صرف پروگرام کو مرتب کرنے کے لیے کافی کام کی ضرورت پڑ سکتی ہے۔"

ولکن سائبر کے سینئر ٹیکنیکل انجینئر مائیک پارکن کا کہنا ہے کہ جب کسی ایپلیکیشن کو ایک زبان سے دوسری زبان میں پورٹ کرنے کی کوشش کی جاتی ہے تو اس میں بے شمار متغیرات ہوتے ہیں۔ پارکن کا کہنا ہے کہ "بہترین صورت حال میں تبدیلی آسان ہے، اور ایک تنظیم نسبتاً درد کے بغیر اسے پورا کر سکتی ہے،" پارکن کہتے ہیں۔ "دوسروں میں، ایپلی کیشن ان خصوصیات پر انحصار کرتی ہے جو اصل زبان میں معمولی ہیں لیکن نئی زبان میں دوبارہ تخلیق کرنے کے لیے وسیع اور مہنگی ترقی کی ضرورت ہے۔"

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

میکی کا کہنا ہے کہ ایک پروگرامنگ زبان سے دوسری پروگرامنگ زبان میں منتقل ہونا ایک خطرناک تجویز ہے جب تک کہ آپ کے پاس ایسا عملہ نہ ہو جو پہلے سے پرانی اور نئی دونوں زبانوں کو سمجھتا ہو۔ "اس طرح کی منتقلی اس وقت بہترین ہوتی ہے جب ایپلیکیشن بڑے ورژن کی تازہ کاری سے گزر رہی ہو۔ بصورت دیگر اس بات کا امکان ہے کہ نقل مکانی کی کوششوں کے حصے کے طور پر نادانستہ کیڑے متعارف کرائے جائیں،" وہ نوٹ کرتا ہے۔

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

اقدام کرنا

Statista کے حالیہ اعداد و شمار سے پتہ چلتا ہے کہ بہت سے ڈویلپر پہلے ہی استعمال کر رہے ہیں۔ وہ زبانیں جنہیں یادداشت محفوظ سمجھا جاتا ہے۔ تقریباً دو تہائی (65.6%)، مثال کے طور پر، JavaScript استعمال کرتے ہیں، تقریباً نصف (48.06%) Python استعمال کرتے ہیں، ایک تہائی جاوا استعمال کرتے ہیں، اور تقریباً 28% C# استعمال کرتے ہیں۔ ایک ہی وقت میں، کافی تناسب اب بھی غیر محفوظ زبانیں استعمال کر رہا ہے جیسے C++ (22.5%) اور C (19.25%)۔

SANS ٹیکنالوجی انسٹی ٹیوٹ کے ڈین آف ریسرچ جوہانس الریچ کہتے ہیں، "میرے خیال میں بہت سی تنظیمیں نہ صرف میموری کی حفاظت کے مسئلے کے لیے، بلکہ ترقی اور دیکھ بھال کی مجموعی آسانی کے لیے پہلے سے ہی C/C++ سے دور ہو رہی ہیں۔" "لیکن اب بھی میراثی کوڈ کے اڈے ہوں گے جنہیں آنے والے کئی سالوں تک برقرار رکھنا پڑے گا۔"

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

ٹائم اسٹیمپ:

سے زیادہ گہرا پڑھنا