زنگ اینڈرائیڈ پلیٹ فارم کی ترقی کے لیے اہم زبانوں میں شامل ہے۔

گوگل نے اینڈرائیڈ پلیٹ فارم تیار کرنے کی اجازت دی گئی زبانوں میں رسٹ پروگرامنگ لینگویج کو شامل کرنے کا اعلان کیا ہے۔ رسٹ لینگویج کمپائلر کو اینڈرائیڈ سورس ٹری میں 2019 میں شامل کیا گیا تھا، لیکن اس زبان کے لیے سپورٹ تجرباتی رہی۔ اینڈرائیڈ کے لیے بنائے گئے پہلے زنگ اجزاء میں سے کچھ میں بائنڈر انٹر پروسیس کمیونیکیشن میکانزم اور بلوٹوتھ اسٹیک کے نئے نفاذ شامل ہیں۔

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

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

اینڈرائیڈ میں، میموری سیفٹی پہلے سے سپورٹ شدہ زبانوں کوٹلن اور جاوا میں فراہم کی جاتی ہے، لیکن اوور ہیڈ کی وجہ سے یہ سسٹم کے پرزہ جات تیار کرنے کے لیے موزوں نہیں ہیں۔ زنگ C اور C++ زبانوں کے قریب کارکردگی کو حاصل کرنا ممکن بناتا ہے، جو اسے پلیٹ فارم کے نچلے درجے کے حصوں اور ہارڈ ویئر کے ساتھ تعامل کے لیے اجزاء تیار کرنے کے لیے استعمال کرنے کی اجازت دیتا ہے۔

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

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

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

گوگل کا مقصد زنگ میں موجودہ C/C++ کوڈ کو دوبارہ لکھنا نہیں ہے، لیکن نئے کوڈ کو تیار کرنے کے لیے اس زبان کو استعمال کرنے کا ارادہ رکھتا ہے۔ نئے کوڈ کے لیے Rust استعمال کرنا سمجھ میں آتا ہے کیونکہ اعدادوشمار کے مطابق زیادہ تر کیڑے نئے یا حال ہی میں تبدیل شدہ کوڈ میں ظاہر ہوتے ہیں۔ خاص طور پر، Android میں تقریباً 50% میموری کی خرابیوں کا پتہ چلا ہے جو ایک سال سے بھی کم عرصہ پہلے لکھے گئے کوڈ میں ہیں۔

زنگ اینڈرائیڈ پلیٹ فارم کی ترقی کے لیے اہم زبانوں میں شامل ہے۔


ماخذ: opennet.ru

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