میں 20 سال سے زیادہ عرصے سے آئی ٹی میں کام کر رہا ہوں، لیکن کسی نہ کسی طرح میں کبھی کنٹینرز تک نہیں پہنچا۔ نظریہ میں، میں سمجھ گیا کہ ان کی ساخت کیسے تھی اور وہ کیسے کام کرتے تھے۔ لیکن چونکہ میں نے عملی طور پر کبھی ان کا سامنا نہیں کیا تھا، مجھے یقین نہیں تھا کہ ان کے ہڈ کے نیچے والے گیئرز بالکل کیسے مڑے اور کیسے مڑے۔
اس کے علاوہ، مجھے کوئی اندازہ نہیں تھا کہ ان کی سیکیورٹی کیسی ہے۔ لیکن ایک بار پھر، تھیوری اچھی لگتی ہے، اور پرانا گانا "جیسے جیسے سیکیورٹی بڑھتا ہے، استعمال میں کمی آتی ہے" میرے سر میں پھنس گیا۔ تو میں نے سوچا کہ چونکہ کنٹینرز کے ساتھ سب کچھ کرنا بہت آسان ہے، تو وہاں کی حفاظت برابر ہے۔ جیسا کہ یہ پتہ چلتا ہے، میں صحیح تھا.
جلدی شروع کرنے کے لیے، میں نے کورسز کے لیے سائن اپ کیا۔
شیلا اے برٹا اور سول اوزان کی طرف سے سکھایا جانے والا کورس، فوری طور پر اس تفصیل کے ساتھ شروع ہوا کہ ڈوکر کنٹینرز کیسے کام کرتے ہیں اور کبرنیٹس میں تعینات ہونے پر وہ کیا سفر کرتے ہیں۔ یہ مکمل طور پر ہینڈ آن کلاس تھی - طلباء کو کلاس سے پہلے اپنی مشینوں پر Docker اور microk8s انسٹال کرنا پڑتا تھا - یہ دیکھنے کا ایک بہترین طریقہ کہ ٹولز کس طرح ایک دوسرے کے ساتھ تعامل کرتے ہیں، کمزور پوائنٹس تلاش کرتے ہیں اور، سب سے اہم بات، انہیں بلاک کرنے کی کوشش کرتے ہیں۔
بدقسمتی سے، اگرچہ کورسز نے دو دن بعد "شہزادہ" بننے کا وعدہ کیا تھا، لیکن میں نے محسوس کیا کہ سب کچھ ابھی شروع ہوا ہے، اور مجھے ابھی بھی بہت کچھ سیکھنا ہے۔
میرے بلند و بالا مشاہدات میں غوطہ لگانے سے پہلے، یہ بتانا ضروری ہے کہ کنٹینر کیا ہے۔ ترقی کی دنیا میں، آپ کی ذاتی مشین پر لکھے گئے کوڈ کا بالکل کام کرنا معمول سمجھا جاتا ہے، لیکن جب آپ اسے کسی سرور پر چلانے کی کوشش کرتے ہیں، تو یہ کام نہیں کرتا۔ کنٹینرز خود ساختہ مشینیں فراہم کرکے اس مسئلے پر قابو پانے کی کوشش کرتے ہیں جنہیں آپ آسانی سے ایک سرور سے دوسرے سرور میں منتقل کر سکتے ہیں، یہ جانتے ہوئے کہ وہ ہمیشہ کام کریں گی۔ جیسا کہ نام سے پتہ چلتا ہے، ان میں کوڈ، لائبریریاں، اور کام کرنے کے لیے درکار دیگر سافٹ ویئر ہوتے ہیں۔ دوسری طرف، Kubernetes ہے
ذیل میں سرخ اور نیلی ٹیم کے نقطہ نظر سے میرے کچھ نتائج ہیں۔
ریڈ ٹیم
زیادہ تر کنٹینر کا مواد جڑ کے طور پر چلتا ہے۔: اس کا مطلب ہے کہ اگر کنٹینر سے سمجھوتہ کیا جاتا ہے، تو آپ کو کنٹینر تک مکمل رسائی حاصل ہوگی۔ یہ اگلے اقدامات کو بہت آسان بنا دیتا ہے۔
کنٹینر کے اندر ڈوکر ساک لگانا خطرناک ہے۔: اگر آپ کی جڑ کسی کنٹینر کے اندر ہے اور آپ نے ڈوکر کو کسی کنٹینر کے اندر بھی انسٹال کیا ہے جس میں Docker ساکٹ (/var/run/docker.sock) ہے، تو آپ کے پاس کسی دوسرے کنٹینر تک رسائی سمیت پورے کلسٹر کو تلاش کرنے کی صلاحیت ہے۔ نیٹ ورک کی تنہائی یا دیگر ذرائع سے اس طرح کی رسائی کو روکا نہیں جا سکتا۔
ماحولیاتی متغیرات میں اکثر خفیہ ڈیٹا ہوتا ہے۔: زیادہ تر معاملات میں، لوگ عام ماحول کے متغیرات کا استعمال کرتے ہوئے کنٹینر کو پاس ورڈ بھیجتے ہیں۔ لہذا اگر آپ کو اکاؤنٹ تک رسائی حاصل ہے، تو آپ بعد میں اپنے اختیارات کو بڑھانے کے لیے ان ماحولیاتی متغیرات کی جاسوسی کر سکتے ہیں۔
Docker API بہت ساری معلومات دے سکتا ہے۔: Docker API، جب بطور ڈیفالٹ کنفیگر ہوتا ہے، اجازت کے بغیر چلتا ہے اور بہت ساری معلومات پیدا کر سکتا ہے۔ شوڈان کا استعمال کرتے ہوئے، آپ آسانی سے کھلی بندرگاہوں کی فہرست تلاش کر سکتے ہیں، پھر کلسٹر کے بارے میں تفصیلی معلومات حاصل کر سکتے ہیں - اور اس کی مکمل گرفتاری کے لیے آگے بڑھیں۔ TrendMicro نے اس کے بارے میں لکھا
بلیو ٹیم
کنٹینر کے مواد کو جڑ کے طور پر نہ چلائیں۔: اگرچہ جڑ کے طور پر چلانا آسان ہے، آپ کو ایسا نہیں کرنا چاہیے۔ اس کے بجائے، یو آئی ڈی کو دکھا کر ری سیٹ کی اجازت کے ساتھ ایپلیکیشنز چلائیں، یا تو CLI سے چلتے وقت --user آپشن کا استعمال کریں، یا Dockerfile میں USER کی وضاحت کر کے۔
سافٹ ویئر کو کنٹینرز میں انسٹال کرنے کی اجازت نہ دیں۔: تقریباً ہر حملہ کچھ نہ کچھ لگانے سے شروع ہوتا ہے۔ nmap سے ifconfig تک خود ڈوکر تک (کنٹینر کے اندر)، کنٹینر میں کچھ بھی انسٹال کرنا عام بات ہے۔ اسی وجہ سے، آپ کو ہمیشہ تمام غیر استعمال شدہ بندرگاہوں کو بلاک کرنا چاہیے۔ یہ آپ کی مشین کے متاثر ہونے پر کنٹرول کمانڈز کو منتقل ہونے سے روکنے میں بھی مدد کرتا ہے۔ پروگراموں کی تنصیب کو روکنے کے علاوہ، یہ یقینی بنانا ضروری ہے کہ کام کو مکمل کرنے کے لیے درکار ایپلی کیشنز کی کم از کم تعداد کنٹینر میں ہی انسٹال ہو۔
docker.sock کی حفاظت کریں۔: اسے محفوظ کیا جانا چاہیے کیونکہ کنٹینر اور کلسٹر کے درمیان مواصلات اس ساکٹ کے ذریعے عمل میں آتے ہیں۔ چونکہ میں اس مضمون کی تفصیل میں نہیں جانا چاہتا، پڑھ لیں۔
ماحولیاتی متغیرات کے بجائے ڈوکر راز استعمال کریں۔: راز ہیں۔
اگر مضمون نے کنٹینرز میں آپ کی دلچسپی پیدا کردی ہے، تو آپ آسانی سے Docker یا microk8s (Kubernetes کا ایک چھوٹا ورژن) انسٹال کر سکتے ہیں۔
تنصیب کے بعد آپ جا سکتے ہیں۔
اگر آپ Docker پر ایک جامع کورس کرنا چاہتے ہیں یا اس کی ضرورت ہے، جس میں عملی مقررین اس کے تمام ٹولز کا جائزہ لیتے ہیں: بنیادی تجرید سے لے کر نیٹ ورک کے پیرامیٹرز تک، مختلف آپریٹنگ سسٹمز اور پروگرامنگ زبانوں کے ساتھ کام کرنے کی باریکیاں، پھر کوشش کریں "
ماخذ: www.habr.com