দুর্বলতা oauth | কিভাবে আপনার ওয়েব অ্যাপ্লিকেশন নিরাপদ অনুমোদন বাস্তবায়ন

Anonim
দুর্বলতা oauth | কিভাবে আপনার ওয়েব অ্যাপ্লিকেশন নিরাপদ অনুমোদন বাস্তবায়ন 2740_1

এই নিবন্ধটি সুপরিচিত OAUTH দুর্বলতা মোকাবেলা করবে। পাঠকরা কীভাবে ওয়েব অ্যাপ্লিকেশনে নিরাপদ এবং সুরক্ষিত অনুমোদন বাস্তবায়ন করতে শিখবেন।

Oauth একটি নির্ভরযোগ্য প্রোটোকল, কিন্তু অনুমোদন বাস্তবায়ন করার সময় ওয়েব ডেভেলপারদের সচেতনতার উপর নির্ভর করে। এই তথ্য নিরাপত্তা পেশাদারদের জন্য এই বিষয় অত্যন্ত গুরুত্বপূর্ণ করে তোলে। তারা তাদের ব্যবহারকারীদের অ্যাকাউন্টের একটি উচ্চ স্তরের সুরক্ষা প্রদান করতে হবে। এটি কার্যকরী অনুশীলনকারীদের সাথে পরিচিত হওয়ার সময়, যারা দরিদ্র বিক্রি oauth এর বিপদ হ্রাস করতে সাহায্য করবে।

ভূমিকা

OAuth 2.0 প্রোটোকল বর্তমানে বিভিন্ন অ্যাপ্লিকেশন ব্যাপকভাবে ব্যবহৃত হয়। এটি ব্যবহার করে, একটি সুবিধাজনক ব্যবহারকারী ইন্টারফেসটি ব্যবহারকারীর নাম এবং পাসওয়ার্ড প্রবেশ করার জন্য ঐতিহ্যগত পদ্ধতির তুলনায় একটি সুবিধাজনক প্রমাণীকরণ এবং অনুমোদন পাওয়া যায়। সঠিক এবং চিন্তাশীল বাস্তবায়ন সঙ্গে, OAuth প্রোটোকলটি ঐতিহ্যগত অনুমোদনের চেয়ে নিরাপদ থাকবে, কারণ ব্যবহারকারীদের একটি নির্দিষ্ট সংস্থার অ্যাক্সেসের জন্য তৃতীয় পক্ষের অ্যাপ্লিকেশনের সাথে তাদের অ্যাকাউন্টিং ডেটা ভাগ করতে হবে না। ব্যবহারকারীরা প্রায়শই তাদের Google অ্যাকাউন্ট, ফেসবুক বা লিঙ্কডইন ব্যবহার করে লগ ইন করতে পছন্দ করে, যা আপনাকে একটি নতুন অ্যাকাউন্ট তৈরি করার পরিবর্তে আপনাকে কিছু ওয়েব সাইটে নিবন্ধন করতে হবে। সুতরাং, OAuth প্রোটোকল ব্যাপকভাবে আমাদের জীবন সহজ করে তোলে।

সাধারণভাবে, জনপ্রিয় OAuth পরিষেবা প্রদানকারীরা খুব নির্ভরযোগ্য। গুগল বা ফেসবুক একাউন্টে লগ ইন করুন নিরাপত্তার একটি নির্দিষ্ট অর্থে অনুপ্রাণিত করে এবং এটি সঠিক। প্রোটোকল সাবধানে বিশেষজ্ঞদের দ্বারা পরীক্ষা করা হয়। সমস্ত উপলব্ধ দুর্বলতা সবসময় বিকাশকারী দলের দ্বারা দ্রুত সংশোধন করা হয়। যাইহোক, সম্পূর্ণ নিরাপত্তার অনুভূতি মিথ্যা হতে পারে তা উল্লেখযোগ্য।

OAUTH পরিষেবা সরবরাহকারীরা তাদের প্রোগ্রামগুলির নিরাপত্তা প্রতিদ্বন্দ্বিতা করার জন্য অ্যাপ্লিকেশন ডেভেলপারদের অনেকগুলি কারণ রেখেছে। আসলে, প্রাথমিকভাবে সুরক্ষিত OAuth পরিষেবা, তার ইনস্টলেশনের প্রক্রিয়াতে ভুলভাবে প্রয়োগ করা হয়েছে, অনুপ্রবেশকারীদের জন্য একটি সহজ লক্ষ্য হতে পারে। যেমন preoccupacy ব্যবহারকারীদের ব্যক্তিগত তথ্য চুরি হতে হবে।

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

রেফারেন্স হেডার ব্যবহার করে OAuth Tockey চুরি

যখন অ্যাপ্লিকেশনটি OAuth সার্ভারে ব্যবহারকারীর পক্ষে অনুমোদন অনুরোধ করে, তখন একজন ব্যক্তি কোডটি প্রবেশ করতে এবং পরবর্তী চেকের জন্য সার্ভারে পাঠানোর জন্য কোডটি পায়। যদি কাজ চলাকালীন ব্যবহারকারীকে অন্য পৃষ্ঠায় পুনঃনির্দেশিত করা হবে, তবে HTTP অনুরোধের "রেফারার" শিরোনামে কোডটি দেখা যাবে। সুতরাং, কোডটি বাইরের ওয়েবসাইটে পতিত হবে, যা OAuth সার্ভারে নিবন্ধিত ব্যবহারকারী ডেটা হুমকি দেবে।

দ্রষ্টব্য: রেফারার হেডার একটি HTTP ক্যোয়ারী হেডার, এটি ইউআরএল হোস্ট প্রেরণ করে যা থেকে অনুরোধ পাঠানো হয়।

এই দুর্বলতার পরিণতিগুলি নরম করার জন্য, বিকাশকারীকে অবশ্যই নিশ্চিত করতে হবে যে তার ওয়েব অ্যাপ্লিকেশনটিতে কোনও HTML ইনজেকশন নেই। ইনজেকশন সনাক্ত করা হলে, আক্রমণকারী সহজেই ইমেজ ট্যাগটি তার ওয়েব সার্ভারে সেট করতে পারে এবং এটি ব্যবহারকারীকে পুনঃনির্দেশিত করার উপায় খুঁজে বের করতে পারে। সুতরাং, তিনি HTTP অনুরোধের "রেফারার" শিরোনাম থেকে কোডটি চুরি করার সুযোগ পাবেন।

Redirect_uri পরামিতি ব্যবহার করে OAuth Tokkey চুরি

অ্যাপ্লিকেশনটি OAuth সার্ভারের একটি অনুরোধ পাঠিয়ে অনুমোদন প্রক্রিয়াটি শুরু করে:

https://www.example.com/signin/authorize? pla..llâdredirect_uri=httpps://demo.example.com/loginsuccessful।

ক্যোয়ারী সর্বদা "Redirect_uri" প্যারামিটারটি OAuth সার্ভার দ্বারা ব্যবহৃত টোকেন পাঠানোর পরে ব্যবহারকারীর সম্মতি দেওয়ার পরে ব্যবহৃত টোকেন পাঠানোর জন্য ব্যবহৃত হয়। যদি এই প্যারামিটারের মানটি নিয়ন্ত্রিত না হয় বা চেক করা হয় না তবে আক্রমণকারীটি সহজেই এটি পরিবর্তন করতে পারে এবং তার ওয়েবসাইটের অনুরোধটি পুনঃনির্দেশিত করতে পারে, যেখানে এটি টোকেন প্রক্রিয়াকরণের জন্য একটি বিশেষ প্রোগ্রাম ব্যবহার করে এবং সীমিত সংস্থার অ্যাক্সেস লাভের জন্য একটি বিশেষ প্রোগ্রাম ব্যবহার করে।

https://www.example.com/signin/authorize? pla..llâdlundirect_uri=httpps://localhost.evil.com।

কখনও কখনও অনুরূপ ইউআরএল ব্লক করা হয়। আক্রমণকারীটি খোলা URL এ প্রাপ্ত ডেটা পুনঃনির্দেশিত করতে পারে, এটির মতো:

https://www.example.com/oauth20_authorize.srf? phartmps://acredirect_uri=httpps://accounts.google.com/bacttoouthsubtarget?next=httpset://evil.com।

অথবা এটা:

https://www.example.com/oauth2/authorize? [...]% irect_uri = https% 3A% 2F% 2fapps.facebook.com% 2Fattacker% 2F।

OAUTH বাস্তবায়ন করার সময়, আপনি হোয়াইট তালিকাতে সম্পূর্ণ ডোমেনগুলি অন্তর্ভুক্ত করতে পারবেন না। শুধুমাত্র কয়েকটি URL গুলি "Redirect_uri" যোগ করা উচিত নয় পুনঃনির্দেশনার একটি অনুরোধ পুনঃনির্দেশিত করা হবে না।

ক্রস লাইন অনুরোধ জালিয়াতি

একটি intsight অনুরোধের জালিয়াতি ঘটতে পারে যখন একজন আক্রমণকারী শিকারকে তার লিঙ্কে ক্লিক করতে এবং, একটি অনুরোধ তৈরি করতে পারে এমন একটি অনুরোধ তৈরি করতে পারে যা তিনি উৎপন্ন করতে যাচ্ছেন না। ক্রস-লাইনের অনুরোধগুলির জালিয়াতি সাধারণত সিএসআরআরএফ টোকেনের সাথে নরম হয়ে যায়, যা ব্যবহারকারী সেশনের সাথে যুক্ত। এটি আবেদনটি পাঠানোর একজন ব্যক্তির চেক করার জন্য অ্যাপ্লিকেশনটিকে সহায়তা করে। OAUTH প্রোটোকলের "স্টেট" প্যারামিটার সিএসআরআরএফ টোকেন হিসাবে কাজ করে।

এটি কীভাবে ওআউথের উপর সিএসআরআরএফ আক্রমণ চালানো হয় এবং "রাষ্ট্র" পরামিতিটি দুর্বলতার প্রভাবগুলি হ্রাস করার জন্য ব্যবহার করা যেতে পারে।

হ্যাকার একটি ওয়েব অ্যাপ্লিকেশন খোলে এবং OAUTH ব্যবহার করে পরিষেবা সরবরাহকারীর অ্যাক্সেস করার জন্য অনুমোদন প্রক্রিয়াটি চালু করে। অ্যাপ্লিকেশন প্রদান করা প্রয়োজন যে অ্যাক্সেস করতে একটি সেবা প্রদানকারী অনুরোধ। হ্যাকারটি পরিষেবা সরবরাহকারী ওয়েবসাইটে আপনাকে পুনঃনির্দেশিত করা হবে, যেখানে আপনাকে সাধারণত অ্যাক্সেস অনুমোদন করতে আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ডটি প্রবেশ করতে হবে। পরিবর্তে, হ্যাকার ক্যাচ এবং এই অনুরোধটিকে বাধা দেয় এবং তার URL সংরক্ষণ করে। হ্যাকার কোনভাবে শিকার এই ইউআরএল খুলতে কারণ। যদি শিকারটি তার অ্যাকাউন্টটি ব্যবহার করে পরিষেবা সরবরাহকারীর সিস্টেমে প্রবেশ করে তবে তার প্রমাণপত্রাদি একটি অনুমোদন কোড দেওয়ার জন্য ব্যবহার করা হবে। অনুমোদন কোড এক্সচেঞ্জ এক্সেস টোকেন অ্যাক্সেস। এখন অ্যাপ্লিকেশন হ্যাকার অ্যাকাউন্ট অনুমোদিত। এটা শিকার এর অ্যাকাউন্ট অ্যাক্সেস করতে পারেন।

সুতরাং, আমি কিভাবে এই পরিস্থিতিটি "স্টেট" প্যারামিটার ব্যবহার করে প্রতিরোধ করতে পারি?

আবেদনটি অবশ্যই একটি মান তৈরি করতে হবে যা সোর্স অ্যাকাউন্টের উপর ভিত্তি করে (উদাহরণস্বরূপ, ব্যবহারকারী সেশন হ্যাশ কী ব্যবহার করুন)। এটি কী গুরুত্বপূর্ণ নয়, মূল বিষয়টি হল যে মানটি মূল ব্যবহারকারীর সম্পর্কে ব্যক্তিগত তথ্য ব্যবহার করে অনন্য এবং তৈরি করা হয়। এটি "রাষ্ট্র" পরামিতি বরাদ্দ করা হয়।

পুনঃনির্দেশিত করার সময় এই মানটি পরিষেবা প্রদানকারীর কাছে প্রেরণ করা হয়। এখন হ্যাকার শিকারকে ইউআরএল খুলতে আমন্ত্রণ জানিয়েছে, যা তিনি বজায় রেখেছিলেন।

অনুমোদন কোডটি জারি করা হয় এবং "স্টেট" প্যারামিটারের সাথে সেশনে ক্লায়েন্টকে ফেরত পাঠানো হয়।

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

OAUTH প্রয়োগ করার সময় অন্যান্য দুর্বলতাগুলি সনাক্ত করা হয়েছে যখন "Redirect_uri" প্যারামিটারটি ব্যবহার করে XSS (ক্রস-সাইট স্ক্রিপ্টিং) সঞ্চালনের ক্ষমতা রয়েছে, হ'ল ব্যক্তিগত কী সেটিং (কোনও মোবাইল অ্যাপ্লিকেশনটি ডেকম্পিংয়ের সময় কখনও কখনও প্রাপ্ত হতে পারে) এবং অনুমোদন কোড নিয়ম লঙ্ঘন (যখন একাধিক অ্যাক্সেস টোকেন ইস্যু করার জন্য অনুমোদন কোড একাধিকবার ব্যবহার করা যেতে পারে)। এই দুর্বলতাগুলি উপরে বর্ণিতদের চেয়ে কম সাধারণ, তবে এটি তাদের কম বিপজ্জনক করে না। ডেভেলপারটি তার ওয়েব অ্যাপ্লিকেশনের নির্ভরযোগ্য ক্রিয়াকলাপ নিশ্চিত করার জন্য প্রয়োজনীয় সমস্ত প্রয়োজনীয় অনুশীলনগুলি জানা উচিত।

অনুবাদ নিবন্ধটির লেখক: সাইমন সলিবা।

গুরুত্বপূর্ণ! একাডেমিক উদ্দেশ্যে শুধুমাত্র তথ্য। আইন মেনে চলুন এবং অবৈধ উদ্দেশ্যে এই তথ্যটি প্রয়োগ করবেন না।

Cisoclub.ru উপর আরো আকর্ষণীয় উপাদান। আমাদের সাবস্ক্রাইব করুন: ফেসবুক | ভি কে | টুইটার |. Instagram |. টেলিগ্রাম |. জেন |. মেসেঞ্জার | আইকিজি নিউ | ইউটিউব |. স্পন্দন.

আরও পড়ুন