paint-brush
কিভাবে মোহন রিপোর্ট নিরাপত্তা সমস্যা সমাধানদ্বারা@socialdiscoverygroup
1,169 পড়া
1,169 পড়া

কিভাবে মোহন রিপোর্ট নিরাপত্তা সমস্যা সমাধান

দ্বারা Social Discovery Group6m2024/04/03
Read on Terminal Reader

অতিদীর্ঘ; পড়তে

সফ্টওয়্যার পরীক্ষকদের পরীক্ষার ফলাফল বুঝতে এবং জ্ঞাত সিদ্ধান্ত নেওয়ার জন্য বিশদ এবং চাক্ষুষভাবে আকর্ষণীয় পরীক্ষার প্রতিবেদনগুলি অত্যন্ত গুরুত্বপূর্ণ। যদিও অ্যাল্যুর একটি দুর্দান্ত সমাধান, এতে নিরাপত্তার অভাব রয়েছে। এই প্রবন্ধে, সোশ্যাল ডিসকভারি গ্রুপের টেস্টিং টিম শেয়ার করে যে তারা কীভাবে একটি সঠিক অ্যালাউর ডকার তৈরি করে এবং স্টোরেজ স্কিম পরিবর্তন করে অ্যালাউর রিপোর্ট সুরক্ষা সমস্যাগুলি সমাধান করতে পেরেছিল৷
featured image - কিভাবে মোহন রিপোর্ট নিরাপত্তা সমস্যা সমাধান
Social Discovery Group HackerNoon profile picture
0-item
1-item


সফ্টওয়্যার পরীক্ষকদের পরীক্ষার ফলাফল বুঝতে এবং জ্ঞাত সিদ্ধান্ত নেওয়ার জন্য বিশদ এবং চাক্ষুষভাবে আকর্ষণীয় পরীক্ষার প্রতিবেদনগুলি অত্যন্ত গুরুত্বপূর্ণ। বিশদটির প্রতি সূক্ষ্মভাবে মনোযোগ দিয়ে, সোশ্যাল ডিসকভারি গ্রুপের টিম অ্যালাউর রিপোর্টের সাহায্যে দৃশ্যত চিত্তাকর্ষক পরীক্ষার রিপোর্ট তৈরি করে - ওপেন-সোর্স পাওয়ার হাউস যা মনে হয় সমস্ত উত্তর আছে। তবুও, আমরা একটি ত্রুটি উন্মোচন করেছি: নিরাপত্তা। লিঙ্ক সহ যে কেউ ভিতরে উঁকি দিতে পারে এবং সাবসিস্টেম জুড়ে এর অভিযোজনযোগ্যতার অভাব ছিল। এই নিবন্ধে, SDG টেস্টিং টিম শেয়ার করে যে তারা কীভাবে একটি সঠিক অ্যালাউর ডকার তৈরি করে এবং স্টোরেজ স্কিম পরিবর্তন করে অ্যালাউর রিপোর্ট নিরাপত্তা সমস্যাগুলি সমাধান করতে পেরেছে৷


SDG ডেভেলপমেন্ট এনভায়রনমেন্ট মাইক্রোসফট পণ্যের উপর ভিত্তি করে তৈরি করা হয়েছে, যার সাথে Azure DevOps ব্যবহার করা হয়েছে CI/CD প্রসেস চালানোর জন্য। সিআই পাইপলাইনের মাধ্যমে, স্বয়ংক্রিয় পরীক্ষার ভাণ্ডার তৈরি করা হয়, তারপরে পরীক্ষা চালানোর জন্য পরীক্ষকদের পছন্দের উপর ভিত্তি করে বেশ কয়েকটি সিডি পাইপলাইনের মাধ্যমে শ্রেণীকরণ করা হয়।


আসুন স্কিমটি বিবেচনা করি যেমন এটি মূলত সেট আপ করা হয়েছিল:



এই সেটআপে, সিডি পাইপলাইন দুটি অ্যালুর রিপোর্টের জন্য জেনারেটর হিসাবেও কাজ করে: একটি স্ল্যাক বিজ্ঞপ্তিগুলির জন্য, পরীক্ষকদের একটি সুবিধাজনকভাবে পঠনযোগ্য লিঙ্ক প্রদান করে যা পর্যায় এবং পরীক্ষার বিভাগগুলি নির্দিষ্ট করে, এবং অন্যটি Azure DevOps-এ অ্যালুর রিপোর্ট রপ্তানি করার জন্য।


Azure DevOps-এ একটি এক্সটেনশন ইনস্টল করার মাধ্যমে এটি অর্জন করা হয়, যা Azure স্টোরেজ অ্যাকাউন্টে স্ট্যাটিক ওয়েবসাইটের জন্য $ওয়েব কন্টেইনারে রিপোর্ট তৈরি এবং পরবর্তীতে আপলোড করতে সক্ষম করে। বেনামী অ্যাক্সেসের সক্ষম কনফিগারেশন একটি লিঙ্কের মাধ্যমে প্রতিবেদনটি প্রদর্শন করার অনুমতি দেয়।



অতিরিক্ত সুবিধার জন্য, বিল্ড পাইপলাইনে অ্যালুর রিপোর্ট প্রদর্শন করতে একটি অতিরিক্ত প্লাগইনও ব্যবহার করা হয়েছিল।




যদিও এই স্কিমটি কার্যকরী, এর কিছু ত্রুটি রয়েছে:


প্রথমত, এই পদ্ধতিতে নিরাপত্তার অভাব রয়েছে কারণ লিংক সহ সকলের কাছে অ্যাল্যুর রিপোর্ট অ্যাক্সেসযোগ্য। পরীক্ষার উপর নির্ভর করে, প্রতিবেদনে পরিষেবাগুলি, তাদের দুর্বলতা এবং অন্য কোনও সংবেদনশীল ডেটা সম্পর্কে গোপনীয় তথ্য থাকতে পারে যা জনসাধারণের অ্যাক্সেস থেকে সীমাবদ্ধ করা উচিত। Azure স্টোরেজ অ্যাকাউন্টে সক্রিয় "বেনামী অ্যাক্সেস" পতাকার কারণে সাধারণ অ্যাক্সেস মঞ্জুর করা হয়, যা যে কাউকে ঠিকানায় অ্যাক্সেস প্রদান করে। এই ফাংশনটি নিষ্ক্রিয় করা হলে অননুমোদিত ব্যক্তিদের জন্য ফাইলগুলিতে বাহ্যিক অ্যাক্সেস বন্ধ হয়ে যাবে, তবে এটি Azure DevOps পৃষ্ঠায় প্রতিবেদনটিকে অ্যাক্সেসযোগ্য করে দেবে।


দ্বিতীয়ত, পদ্ধতিটি সাবসিস্টেম জুড়ে সর্বজনীনভাবে প্রযোজ্য নয়। আমরা যদি CD পাইপলাইনে চাকরির তালিকা পরীক্ষা করি, তাহলে আমরা দেখব যে নেটিভ জব "azcopy" স্টোরেজ অ্যাকাউন্টে রিপোর্ট কপি করতে ব্যবহৃত হয়। এই কাজটি শুধুমাত্র Windows এ এজেন্টদের সাথে পাওয়া যায় এবং Linux ব্যবহার করার সময় এটি একটি ত্রুটি প্রদান করে।




তৃতীয়ত, পরীক্ষার ইতিহাস এবং প্রবণতা দেখার অসুবিধা রয়েছে। রিপোর্টের একমাত্র উপলব্ধ ইতিহাস স্ল্যাক বিজ্ঞপ্তিগুলির মাধ্যমে অ্যাক্সেসযোগ্য, যা নির্দিষ্ট পরীক্ষাগুলি খুঁজে বের করার জন্য একটি সুবিধাজনক পদ্ধতি নয়।


উপরে উল্লিখিত সমস্ত কারণ এই উপসংহারে পৌঁছেছে যে বিদ্যমান সিস্টেমটি সংশোধন করা দরকার। অতএব, এই সমস্যার বেশ কয়েকটি সমাধান বিবেচনা করা হয়েছিল:

  1. একটি ইউনিফাইড .html ফাইল তৈরি করার জন্য একটি পদ্ধতি তৈরি করা যা একটি নথিতে সমগ্র অ্যালাউর রিপোর্ট প্রকল্পকে একত্রিত করবে।

  2. তৃতীয় পক্ষের পরিষেবাগুলি ব্যবহার করা যা রিপোর্ট দেখার জন্য প্রমাণীকরণ অফার করে।

  3. রিপোর্ট দেখার জন্য নিজস্ব প্রমাণীকরণ সহ একটি পূর্ব-তৈরি ছবি অনুসন্ধান করা হচ্ছে।


এখন, আসুন আরও বিশদে এই পয়েন্টগুলির প্রতিটিতে অনুসন্ধান করি।


আগেই উল্লেখ করা হয়েছে, স্টোরেজ অ্যাকাউন্টে "বেনামী অ্যাক্সেস" ফাংশন নিষ্ক্রিয় করা অননুমোদিত ব্যবহারকারীদের জন্য লিঙ্কের মাধ্যমে ফাইলগুলিতে অ্যাক্সেস সীমাবদ্ধ করে। বাইরে থেকে নির্দিষ্ট ব্যক্তিদের অ্যাক্সেস দেওয়ার জন্য, Azure নিজেই বেশ কয়েকটি সম্ভাব্য বিকল্প অফার করে - এর মধ্যে SAS টোকেন প্রদান এবং অ্যাক্সেস নীতিগুলি কনফিগার করা অন্তর্ভুক্ত। যাইহোক, অ্যালাউর রিপোর্ট তৈরি করার প্রকৃতির কারণে, বিশেষ করে index.html ফাইল, যা প্রজেক্টের কাঠামোতে বিদ্যমান জাভাস্ক্রিপ্ট স্ক্রিপ্টের উল্লেখ করে:



প্রতিবেদনটি খোলার সময়, পৃষ্ঠাটি খালি দেখায় কারণ ব্লব স্টোরেজের মধ্যে ফাইলগুলির মধ্যে অ্যাক্সেস সীমাবদ্ধ।


একটি একক .html ফাইল তৈরি করতে, আমরা একটি আবিষ্কার করেছি ইমেজ যেটি, যখন স্থাপন করা হয়, এমবেডেড কমান্ড ব্যবহার করে একটি সম্পূর্ণ অ্যালাউর প্রকল্প থেকে ফাইল তৈরি করতে সহায়তা করে "allure-combine ./path/to/allure/generated/report/folder।" যাইহোক, এই প্রক্রিয়ার জন্য এজেন্টকে পাইথন ইনস্টল করা প্রয়োজন। দুর্ভাগ্যবশত, API পরীক্ষার ফলাফলের সাথে সংযুক্ত ফাইলের অনুপস্থিতির কারণে এই পদ্ধতিটি অকার্যকর প্রমাণিত হয়েছে, যা পরীক্ষকদের কাজের সঠিক কার্যকারিতা নিশ্চিত করার জন্য গুরুত্বপূর্ণ উপাদান।



এটিও লক্ষণীয় যে Azure আইপি হোয়াইটলিস্টিং অফার করে, যা অ্যাক্সেসের প্রয়োজন এমন ব্যক্তিদের ফিল্টার করার অনুমতি দেয়। যাইহোক, যেহেতু অ্যাক্সেসের প্রয়োজন এমন দলের একটি স্ট্যাটিক আইপি ঠিকানা নেই, এই পদ্ধতিটি উপযুক্ত ছিল না।


বিকাশের পরিবেশে পরীক্ষা সংগ্রহের জন্য অ্যাল্যুর একটি জনপ্রিয় অভ্যাস, এই বিষয়টি বিবেচনা করে অনলাইনে অর্থপ্রদানের পরিষেবা পাওয়া যায়। উদাহরণস্বরূপ, https://qameta.io/ পরিষেবাটি ব্যবহারকারী-বান্ধব ওয়েব ইন্টারফেসে স্টোরেজ এবং অ্যালুর রিপোর্ট তৈরি করে। যাইহোক, এই ধরনের পরিষেবাগুলি সাধারণত অর্থ প্রদান করা হয় এবং প্রয়োজনীয় কার্যকারিতা ন্যূনতম। অতএব, আমরা এই বাস্তবায়ন বিকল্পটিকে শেষ অবলম্বন হিসাবে বিবেচনা করেছি।


ইউজার ইন্টারফেস প্যানেলের ইন্টিগ্রেশন ক্ষমতা সহ অ্যাল্যুর-ডকার সার্ভিস ডকার ইমেজ ( https://github.com/fescobar/allure-docker-service ) আমরা যে পছন্দের উপর স্থির হয়েছিলাম ( https://github.com/fescobar/ allure-docker-service-ui ) প্রমাণীকরণ সহ। পরিষেবার সাথে যোগাযোগ HTTP/HTTPS এর মাধ্যমে কনফিগার করা হয়েছে এবং চিত্রটি নিজেই API অনুরোধের মাধ্যমে কার্যকারিতা সমর্থন করে৷


আসুন এই সমাধানটির কিছু সুবিধা তুলে ধরি:

  1. নিরাপত্তা: ডেটা ট্রান্সমিশন SSL এবং TLS প্রক্রিয়া ব্যবহার করে এনক্রিপ্ট করা হয়, এবং চিত্রটি অন্তর্নির্মিত ব্যবহারকারীদের "অ্যাডমিন" এবং "ভিউয়ার" লগইন শংসাপত্রের সাথে প্রদান করে যা ব্যবহারকারীদের প্রয়োজনের ভিত্তিতে পরিবর্তন এবং প্রদান করা যেতে পারে।

  2. সুবিধা: পরিষেবাটি তার নিজস্ব ভিজ্যুয়াল ইন্টারফেসের সাথে আসে যা অ্যালুর রিপোর্টের সাথে কাজ করার জন্য বিভিন্ন কার্যকারিতা অফার করে।

  3. কার্যকারিতা: API অনুরোধের জন্য ধন্যবাদ, Azure DevOps সাইডে রিলিজ পাইপলাইনগুলির সাথে আকর্ষণীয় সমন্বয় তৈরি করা যেতে পারে। উদাহরণস্বরূপ, একটি প্রতিবেদন তৈরি করা, এটি আপলোড করা এবং তারপর একটি একক পর্যায়ে ক্যাশে সাফ করা।


উপসংহারে, আমাদের রিলিজ পাইপলাইনটি এইরকম দেখাচ্ছে:



এটা লক্ষণীয় যে আমরা Azure DevOps এক্সটেনশন থেকে দূরে সরে যাইনি, যা অ্যালুর রিপোর্ট আপলোড করার অনুমতি দেয়, যেহেতু ততক্ষণে, আমরা ইতিমধ্যেই আমাদের নিজস্ব এজেন্টদের কাছে স্থানান্তরিত হয়েছি এবং সবকিছু "নিজে থেকে কাজ করার ধারণাটি মেনে চলেছি। "মেশিন।


স্টোরেজ সম্পর্কে, আমরা Azure স্টোরেজ অ্যাকাউন্টগুলিতে লেখার সাথে পরীক্ষা করেছি, বিশেষত azcopy ইউটিলিটি ব্যবহার করে ফাইল শেয়ার, ব্লব এবং ব্লব-এ আপলোড করা।


ফলাফল উল্লেখযোগ্যভাবে পরিবর্তিত. ফাইল শেয়ার az স্টোরেজ ফাইল আপলোড-ব্যাচের জন্য কমান্ড ব্যবহার করার সময়, আমাদের পরীক্ষার জন্য লেখার গতি এক ঘন্টার বেশি ছিল:



az স্টোরেজ ব্লব আপলোড-ব্যাচ কমান্ডের সাথে ব্লব স্টোরেজ ব্যবহার করার সময়, কার্যক্ষমতা ছয়গুণ উন্নত হয়, প্রায় 11 মিনিট সময় নেয়:



azcopy টুল দ্বারা দ্রুততম ফলাফল ছিল:


রিলিজ পাইপলাইনে azcopy-এর বিল্ট-ইন ইন্টিগ্রেশন ব্যবহার করার সময়, এটি Linux মেশিনের সাথে বেমানান। যাইহোক, Azure CLI কাজ ব্যবহার করে এবং এজেন্টে এই ইউটিলিটি ইনস্টল করার মাধ্যমে, কমান্ডটি আত্মবিশ্বাসের সাথে নিযুক্ত করা যেতে পারে:

azcopy কপি 'SOURCE' 'DESTINATION' --recursive=true


নেটের গভীরতা থেকে অ্যালিউর ডকার ইমেজ আবিষ্কারের জন্য ধন্যবাদ, আমরা রিপোর্টের স্টোরেজ এবং ডিসপ্লে স্কিম পরিবর্তন করতে পেরেছি। ডেটা অ্যাক্সেস এখন পাসওয়ার্ড-সুরক্ষিত, এবং প্রতিবেদন তৈরি এবং প্রক্রিয়াকরণ দ্রুত থাকে। অধিকন্তু, ব্যবহারকারীদের (পরীক্ষকদের) দৃষ্টিকোণ থেকে, পরিবর্তনগুলি ন্যূনতম। সমাধানটি অন্যান্য প্রোগ্রাম থেকে স্বাধীনভাবে কাজ করে, ক্লাস্টারে একটি পৃথক এজেন্টকে ধন্যবাদ, এবং অন্যান্য উন্নয়ন প্রক্রিয়াগুলিকে প্রভাবিত করতে পারে না। এই সমাধানটির ব্যয়-কার্যকারিতা একটি পৃথক স্ব-হোস্টেড এজেন্টের ($15, যদি এটি বিচ্ছিন্ন থাকে) এর সাথে তুলনীয়, যা বিদ্যমান বিকল্পগুলির তুলনায় অনেক সস্তা। উদাহরণস্বরূপ, পূর্বে বিবেচনা করা qameta.io, যেখানে একজন একক ব্যবহারকারীর জন্য মূল্য $30/মাস।


সোশ্যাল ডিসকভারি গ্রুপের মিডল ডেভঅপস ইঞ্জিনিয়ার দিমিত্রিজ গুসারভস লিখেছেন।


সোশ্যাল ডিসকভারি গ্রুপ (SDG) হল একটি বিশ্বব্যাপী প্রযুক্তি কোম্পানি যা ডেটিং, সামাজিক এবং বিনোদনের সংযোগস্থলে সামাজিক আবিষ্কারের অ্যাপ তৈরি করে। কোম্পানির পোর্টফোলিওতে AI, গেম মেকানিক্স এবং ভিডিও স্ট্রিমিং-এর উপর ফোকাস সহ 70টি প্ল্যাটফর্ম রয়েছে। SDG পণ্য 150টি দেশে 500+ মিলিয়ন মানুষ ব্যবহার করে।