PyPI ریپوزٹری میں Python پیکجوں کا 46% ممکنہ طور پر غیر محفوظ کوڈ پر مشتمل ہے۔

یونیورسٹی آف ٹرکو (فن لینڈ) کے محققین کے ایک گروپ نے PyPI ذخیرہ میں ممکنہ طور پر خطرناک تعمیرات کے استعمال کے لیے پیکجوں کے تجزیے کے نتائج شائع کیے جو کہ خطرات کا باعث بن سکتے ہیں۔ 197 ہزار پیکجز کے تجزیے کے دوران 749 ہزار ممکنہ سیکیورٹی مسائل کی نشاندہی کی گئی۔ 46% پیکجوں میں کم از کم ایک ایسا مسئلہ ہے۔ سب سے زیادہ عام مسائل میں استثنائی ہینڈلنگ اور کوڈ کے متبادل کی اجازت دینے والی خصوصیات کے استعمال سے متعلق کوتاہیاں ہیں۔

شناخت کیے گئے 749 ہزار مسائل میں سے 442 ہزار (41%) کو معمولی، 227 ہزار (30%) کو درمیانے درجے کے مسائل اور 80 ہزار (11%) کو خطرناک قرار دیا گیا۔ کچھ پیکجز بھیڑ سے الگ ہیں اور ہزاروں مسائل پر مشتمل ہیں: مثال کے طور پر، PyGGI پیکج نے 2589 مسائل کی نشاندہی کی، جو بنیادی طور پر "Try-except-pass" کے استعمال سے متعلق ہیں، اور appengine-sdk پیکیج میں 2356 مسائل پائے گئے۔ genie.libs.ops، pbcore اور genie.libs.parser پیکیجز میں بھی بڑی تعداد میں مسائل موجود ہیں۔

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

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

مطالعہ میں استعمال ہونے والے ٹیسٹوں میں سے:

  • ممکنہ طور پر غیر محفوظ فنکشنز کا استعمال کرتے ہوئے exec، mktemp، eval، mark_safe، وغیرہ۔
  • فائلوں کے لیے رسائی کے حقوق کی غیر محفوظ ترتیب۔
  • نیٹ ورک ساکٹ کو تمام نیٹ ورک انٹرفیس سے منسلک کرنا۔
  • کوڈ میں سختی سے بیان کردہ پاس ورڈز اور کیز کا استعمال۔
  • پہلے سے طے شدہ عارضی ڈائریکٹری کا استعمال۔
  • کیچ آل سٹائل کے استثنائی ہینڈلرز میں پاس اور جاری رکھنا۔
  • فلاسک ویب فریم ورک کی بنیاد پر ڈیبگنگ موڈ کو فعال کرنے کے ساتھ ویب ایپلیکیشنز لانچ کرنا۔
  • غیر محفوظ ڈیٹا ڈی سیریلائزیشن کے طریقے استعمال کرنا۔
  • MD2، MD4، MD5 اور SHA1 ہیش فنکشنز استعمال کرتا ہے۔
  • غیر محفوظ ڈی ای ایس سائفرز اور انکرپشن موڈز کا استعمال۔
  • Python کے کچھ ورژنز میں ایک غیر محفوظ HTTPSConnection نفاذ کا استعمال۔
  • urlopen میں file:// اسکیم کی وضاحت کرنا۔
  • خفیہ نگاری کے کاموں کو انجام دیتے وقت سیوڈورنڈم نمبر جنریٹرز کا استعمال۔
  • ٹیل نیٹ پروٹوکول کا استعمال۔
  • غیر محفوظ XML تجزیہ کاروں کا استعمال۔

مزید برآں، یہ نوٹ کیا جا سکتا ہے کہ PyPI ڈائرکٹری میں 8 بدنیتی پر مبنی پیکیجز کا پتہ چلا۔ ہٹانے سے پہلے، مشکل پیکجوں کو 30 ہزار سے زائد بار ڈاؤن لوڈ کیا گیا تھا. بدنیتی پر مبنی سرگرمی کو چھپانے کے لیے اور پیکجوں میں سادہ جامد تجزیہ کاروں سے انتباہات کو نظرانداز کرنے کے لیے، کوڈ بلاکس کو بیس 64 کا استعمال کرتے ہوئے انکوڈ کیا گیا اور ایول کال کا استعمال کرتے ہوئے ڈی کوڈنگ کے بعد عمل میں لایا گیا۔

noblesse, genesisbot, are, suffer, noblesse2 اور noblesev2 پیکجز میں کروم اور ایج براؤزرز میں ذخیرہ کردہ کریڈٹ کارڈ نمبرز اور پاس ورڈز کو روکنے کے ساتھ ساتھ Discord ایپلیکیشن سے اکاؤنٹ کے ٹوکنز کی منتقلی اور اسکرین کے مواد کے اسکرین شاٹس سمیت سسٹم ڈیٹا بھیجنے کا کوڈ ہوتا ہے۔ pytagora اور pytagora2 پیکجوں میں تھرڈ پارٹی ایگزیکیوٹیبل کوڈ کو لوڈ کرنے اور اس پر عمل درآمد کرنے کی صلاحیت شامل تھی۔

ماخذ: opennet.ru

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