عام Docker ۽ Kubernetes تنصيب جي (غائب) سيڪيورٽي کي ڳولڻ

عام Docker ۽ Kubernetes تنصيب جي (غائب) سيڪيورٽي کي ڳولڻ
مان 20 سالن کان وڌيڪ عرصي کان آئي ٽي ۾ ڪم ڪري رهيو آهيان، پر ڪنهن به طرح مون ڪڏهن به ڪنٽينرز جي ڀرسان نه ويو. نظريي ۾، مون سمجهيو ته اهي ڪيئن ٺهڪندڙ هئا ۽ انهن ڪيئن ڪم ڪيو. پر جيئن ته مان عملي طور تي انهن سان ڪڏهن به منهن نه ڪيو هو، مون کي پڪ نه هئي ته انهن جي ڇت هيٺان گيئر ڪيئن ڦري ۽ ڦري ويا.

ان کان سواء، مون کي ڪا به خبر نه هئي ته انهن جي سيڪيورٽي ڪيئن هئي. پر ٻيهر، نظريو سٺو لڳندو آهي، ۽ پراڻو گيت "جيئن سيڪيورٽي وڌندي آهي، استعمال جي گھٽتائي" منهنجي مٿي ۾ ڦاسي پيو. تنهن ڪري مون سوچيو ته جيئن ته ڪنٽينر سان هر شي ڪرڻ تمام آسان آهي، تنهنڪري اتي جي حفاظت برابر آهي. جيئن اهو نڪتو، مان صحيح هو.

جلدي شروع ڪرڻ لاءِ، مون ڪورسز لاءِ سائن اپ ڪيو ڪارو هٽ 2020 جو عنوان "رڳن کان دولت تائين: دخول ۽ تحفظ Docker Swarm ۽ Kubernetes ماحول».

ڪورس، شيلا اي برٽا ۽ سول اوزان پاران سيکاريو ويو، فوري طور تي هڪ وضاحت سان شروع ڪيو ويو ته ڊاڪر ڪنٽينرز ڪيئن ڪم ڪن ٿا ۽ ڪبرنيٽس ڏانهن موڪلڻ دوران اهي سفر ڪندا آهن. ھي مڪمل طور تي ھٿن وارو ڪلاس ھو - شاگردن کي ڪلاس کان اڳ پنھنجي مشينن تي Docker ۽ microk8s انسٽال ڪرڻا ھئا - ھڪڙو بهترين طريقو ڏسڻ لاءِ ڪيئن اوزار ھڪٻئي سان رابطو ڪن ٿا، ڪمزور پوائنٽون ڳولھيو ۽، سڀ کان اھم، انھن کي بلاڪ ڪرڻ جي ڪوشش ڪريو.

بدقسمتي سان، جيتوڻيڪ ڪورس ٻن ڏينهن کان پوء "شهزادو" ٿيڻ جو واعدو ڪيو، مون محسوس ڪيو ته سڀ ڪجهه شروع ٿي چڪو هو، ۽ مون کي اڃا تائين گهڻو ڪجهه سکڻو هو.

عام Docker ۽ Kubernetes تنصيب جي (غائب) سيڪيورٽي کي ڳولڻ

منهنجي اعليٰ مشاهدن ۾ ڊائيونگ ڪرڻ کان اڳ، اهو بيان ڪرڻ ضروري آهي ته ڪنٽينر ڇا آهي. ترقي جي دنيا ۾، توهان جي ذاتي مشين تي لکيل ڪوڊ کي مڪمل طور تي ڪم ڪرڻ لاء عام سمجهيو ويندو آهي، پر جڏهن توهان ان کي ڪنهن سرور تي هلائڻ جي ڪوشش ڪندا آهيو، اهو صرف ڪم نٿو ڪري. ڪنٽينر پاڻمرادو مشينون مهيا ڪندي هن مسئلي تي قابو پائڻ جي ڪوشش ڪندا آهن ته توهان آساني سان هڪ سرور کان ٻئي ڏانهن منتقل ڪري سگهو ٿا، اهو ڄاڻڻ ته اهي هميشه ڪم ڪندا. جيئن ته نالو مشورو ڏئي ٿو، انهن ۾ ڪوڊ، لائبريريون، ۽ ٻيون سافٽ ويئر شامل آهن جيڪي نوڪري حاصل ڪرڻ لاء گهربل آهن. Kubernetes، ٻئي طرف، آهي ڪنٽينرز لاء آرڪيسٽريشن پليٽ فارم. اصولي طور تي، ان کي استعمال ڪري سگھجي ٿو بيحد منظم ڪرڻ لاءِ سوين يا هزارين مختلف ڪنٽينرز.

هيٺ ڏنل آهن منهنجي ڪجهه نتيجن مان ڳاڙهي ۽ نيري ٽيم جي نقطه نظر کان.

لال ٽيم

اڪثر ڪنٽينر مواد روٽ طور هلندو آهي: هن جو مطلب اهو آهي ته جيڪڏهن ڪنٽينر سمجهوتو آهي، توهان کي ڪنٽينر تائين مڪمل رسائي هوندي. اهو ايندڙ قدمن کي تمام آسان بڻائي ٿو.

هڪ ڪنٽينر اندر docker.sock لڳائڻ خطرناڪ آهي: جيڪڏهن توهان وٽ هڪ ڪنٽينر اندر روٽ آهي ۽ هڪ ڪنٽينر اندر ڊڪر پڻ نصب ڪيو آهي جنهن ۾ هڪ ڊڪر ساڪٽ (/var/run/docker.sock) آهي، توهان وٽ پوري ڪلستر کي ڳولڻ جي صلاحيت آهي، بشمول ڪنهن ٻئي ڪنٽينر تائين رسائي. اهڙي رسائي کي نيٽ ورڪ جي اڪيلائي يا ٻين طريقن سان روڪي نٿو سگهجي.

ماحولياتي متغير اڪثر ڳجهي ڊيٽا تي مشتمل آهن: اڪثر ڪيسن ۾، ماڻهو ڪنٽينر ڏانهن پاس ورڊ موڪليندا آهن عام ماحوليات کي استعمال ڪندي. تنهن ڪري جيڪڏهن توهان وٽ اڪائونٽ تائين رسائي آهي، توهان انهن ماحول جي متغيرن تي جاسوسي ڪري سگهو ٿا ته جيئن بعد ۾ توهان جي طاقت کي وڌايو وڃي.

Docker API تمام گهڻو معلومات ڏئي سگهي ٿو: ڊاڪر API، جڏهن ڊفالٽ ترتيب ڏنل آهي، بغير اجازت جي هلندي آهي ۽ معلومات جي هڪ ٽن پيدا ڪري سگهي ٿي. Shodan استعمال ڪندي، توهان آساني سان کليل بندرگاهن جي هڪ فهرست ڳولي سگهو ٿا، پوء ڪلستر بابت تفصيلي ڄاڻ حاصل ڪريو - ۽ ان جي مڪمل گرفتاري لاء اڳتي وڌو. TrendMicro هن بابت لکيو سڀ کان دلچسپ مضمون.

بليو ٽيم

ڪنٽينر جي مواد کي روٽ طور نه هلايو: جيتوڻيڪ اهو روٽ طور هلائڻ آسان آهي، توهان کي اهو نه ڪرڻ گهرجي. ان جي بدران، ايپليڪيشنن کي ري سيٽ ڪرڻ جي اجازتن سان گڏ ڪريو uid ڏيکاريندي، يا ته استعمال ڪندي --user آپشن کي استعمال ڪندي جڏهن CLI مان هلندي، يا Dockerfile ۾ USER جي وضاحت ڪندي.

سافٽ ويئر کي ڪنٽينرز ۾ نصب ٿيڻ جي اجازت نه ڏيو: لڳ ڀڳ هر حملي جي شروعات ڪجهه پوکڻ سان ٿيندي آهي. nmap کان ifconfig تائين Docker پاڻ (هڪ ڪنٽينر اندر)، ڪنٽينر ۾ ڪا به شيءِ انسٽال ڪرڻ عام ٿي چڪي آهي. ساڳئي سبب لاء، توهان کي هميشه سڀني غير استعمال ٿيل بندرگاهن کي بلاڪ ڪرڻ گهرجي. اهو پڻ مدد ڪري ٿو ڪنٽرول حڪمن کي منتقل ٿيڻ کان روڪڻ ۾ جڏهن توهان جي مشين متاثر ٿيل آهي. پروگرامن جي تنصيب کي روڪڻ کان علاوه، اهو يقيني بڻائڻ جي قابل آهي ته ڪم مڪمل ڪرڻ لاء گهربل ايپليڪيشنن جو گهٽ ۾ گهٽ تعداد پاڻ کي ڪنٽينر ۾ نصب ڪيو وڃي.

محفوظ ڪريو docker.sock: ان کي محفوظ ڪيو وڃي ڇاڪاڻ ته ڪنٽينر ۽ ڪلستر جي وچ ۾ رابطي کي هن ساکٽ ذريعي پروسيس ڪيو ويندو آهي. جيئن ته مان هن مضمون ۾ تفصيل ۾ وڃڻ نٿو چاهيان، پڙهو Docker کان نوٽ، ڇا ٿي سگهي ٿو، ۽ اهو به ته اهو سڀ ڪيئن بلاڪ ڪجي.

ماحول جي متغيرن جي بدران Docker راز استعمال ڪريو: راز آهن اٽڪل 2017 کان وٺي. جيتوڻيڪ اهو محفوظ نه آهي، اهو اڃا به بهتر آهي ماحول جي متغيرن کان کنٽينر تائين ڳجهي ڊيٽا کي منتقل ڪرڻ لاء.

جيڪڏهن آرٽيڪل توهان جي دلچسپي کي ڪنٽينرز ۾ وڌايو آهي، توهان آساني سان انسٽال ڪري سگهو ٿا Docker يا microk8s (Kubernetes جو هڪ ننڍڙو نسخو). اهو آهي لينڪس ۽ MacOS لاءِ ڊڪر انسٽال ڪرڻ لاءِ هدايتون آهن، ۽ هتي - ونڊوز، لينڪس ۽ MacOS لاءِ microk8s انسٽال ڪرڻ لاءِ هدايتون.

انسٽاليشن کان پوء، توهان وڃي سگهو ٿا هي هڪ جلدي شروع ڪرڻ وارو گائيڊ آهي Docker کان، ساڳيو اختيار پيش ڪيل ۽ microk8s لاء.

جيڪڏھن توھان چاھيو ٿا يا ڊاڪر تي ھڪڙو جامع ڪورس وٺڻ جي ضرورت آھي، جنھن ۾ عملي ڳالهائيندڙ ان جي سڀني اوزارن کي جانچيندا آھن: بنيادي تجزين کان وٺي نيٽ ورڪ پيٽرولر تائين، مختلف آپريٽنگ سسٽم ۽ پروگرامنگ ٻولين سان ڪم ڪرڻ جي nuances، پوء ڪوشش ڪريو "Docker وڊيو ڪورس" توهان ٽيڪنالاجي سان واقف ٿي ويندا ۽ سمجھندا ته ڪٿي ۽ ڪيئن استعمال ڪجي بهترين Docker. ۽ ساڳئي وقت، بهترين مشق جا ڪيس حاصل ڪريو - اهو بهتر آهي ته حفاظت ۾ سکڻ ۽ عملي جي مدد سان ريڪ بابت ڪهاڻين کان ذاتي طور تي ريڪ کان پاڻ کي چمڪندڙ هٿن سان.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو