আমি যদি কেবল ব্যবহারকারীর নাম / পাসওয়ার্ড ভিত্তিক প্রমাণীকরণ ব্যবহার করি তবে সেগুলি কি যথেষ্ট নিরাপদ থাকবে না?
না, কারণ আপনি কেবল ডাব্লুএইচও সনাক্ত করছেন যা এপিআই সার্ভারটি অ্যাক্সেস করছে তবে WHAT এটি অ্যাক্সেস করছে না।
WHO এবং WHAT এর মধ্যে পার্থক্যটি API সার্ভারটি অ্যাক্সেস করছে
WHO এবং WHAT এর মধ্যে পার্থক্যগুলি আরও ভালভাবে বোঝার জন্য একটি API সার্ভার অ্যাক্সেস করছে, আসুন এই চিত্রটি ব্যবহার করুন:
ইনটেন্ডেড কমিউনিকেশন চ্যানেল কোনও প্রতারণামূলক উদ্দেশ্য ছাড়াই কোনও আইনজীবি ব্যবহারকারী, মোবাইল অ্যাপের একটি অপ্রতিরোধ্য সংস্করণ ব্যবহার করে, এবং মিডল অ্যাটাকের মানুষ না হয়ে সরাসরি এপিআই সার্ভারের সাথে যোগাযোগ করার মাধ্যমে আপনার প্রত্যাশা অনুযায়ী মোবাইল অ্যাপটি প্রতিনিধিত্ব করছে represents
আসল চ্যানেলটি বিভিন্ন বিভিন্ন পরিস্থিতিতে প্রতিনিধিত্ব করতে পারে, যেমন কোনও দূষিত অভিপ্রায় সহীর্ণ ব্যবহারকারী যা মোবাইল অ্যাপের পুনঃপ্রেরণিত সংস্করণ ব্যবহার করতে পারে, মোবাইল অ্যাপ্লিকেশনটির খাঁটি সংস্করণ ব্যবহার করে এমন একটি হ্যাকার, যখন মাঝখানে মানুষ এটি আক্রমণ করে, বুঝতে কীভাবে আপনার অ্যাপ্লিকেশনটির বিরুদ্ধে আক্রমণগুলি স্বয়ংক্রিয় করতে সক্ষম হওয়ার জন্য মোবাইল অ্যাপ্লিকেশন এবং এপিআই সার্ভারের মধ্যে যোগাযোগ করা হচ্ছে। অন্যান্য অনেক পরিস্থিতিতে সম্ভব, তবে আমরা এখানে প্রতিটি গণনা করব না।
আমি আশা করি যে এখন দ্বারা আপনি ইতিমধ্যে একটি সুরুক থাকতে পারে কেন হু এবং কি একই হয় না, কিন্তু যদি না এক মুহূর্তের মধ্যে পরিষ্কার হয়ে যাবে।
হু মোবাইল অ্যাপ্লিকেশন যে আমরা, এ প্রমাণীকৃত অনুমোদন এবং থেকে OpenID বা OAUTH2 প্রবাহিত ব্যবহার করার মত বিভিন্নভাবে চিহ্নিত করতে পারেন ব্যবহারকারী।
OAuth
সাধারণত, OAuth ক্লায়েন্টদের কোনও সংস্থার মালিকের পক্ষে সার্ভার সংস্থানগুলিতে একটি "সুরক্ষিত প্রতিনিধি অ্যাক্সেস" সরবরাহ করে। এটি সংস্থার মালিকদের তাদের শংসাপত্রগুলি ভাগ না করেই তাদের সার্ভার সংস্থানগুলিতে তৃতীয় পক্ষের অ্যাক্সেসকে অনুমোদন দেওয়ার জন্য একটি প্রক্রিয়া নির্দিষ্ট করে। হাইপারটেক্সট ট্রান্সফার প্রোটোকল (এইচটিটিপি) এর সাথে কাজ করার জন্য বিশেষভাবে নকশাকৃত, OAuth অ্যাসেস টোকেনগুলি তৃতীয় পক্ষের ক্লায়েন্টদের কোনও অনুমোদনের সার্ভারের মাধ্যমে সংস্থান মালিকের অনুমোদনে জারি করার অনুমতি দেয়। তৃতীয় পক্ষটি এরপরে সংস্থান সার্ভার দ্বারা হোস্ট করা সুরক্ষিত সংস্থানগুলি অ্যাক্সেস করতে অ্যাক্সেস টোকেন ব্যবহার করে।
ওপেনআইডি কানেক্ট
ওপেনআইডি কানেক্ট 1.0 টি OAuth 2.0 প্রোটোকলের উপরে একটি সাধারণ পরিচয় স্তর of এটি ক্লায়েন্টগুলিকে কোনও অনুমোদন সার্ভার দ্বারা সম্পাদিত প্রমাণীকরণের উপর ভিত্তি করে এন্ড-ব্যবহারকারীর পরিচয় যাচাই করার পাশাপাশি আন্তঃব্যক্তিমূলক এবং আরএসটি-জাতীয় মত পদ্ধতিতে এন্ড-ব্যবহারকারীর সম্পর্কে প্রাথমিক প্রোফাইল তথ্য পেতে অনুমতি দেয়।
ব্যবহারকারী প্রমাণীকরণ API সার্ভার জানাতে পারে হু API ব্যবহার করে করা হয়, এটা নিশ্চয়তা দিতে পারে না অনুরোধ সম্ভূত থেকে কি আশা, মোবাইল অ্যাপ্লিকেশন মূল সংস্করণ।
এখন আমরা সনাক্ত করার জন্য একটি উপায় প্রয়োজন যা API সার্ভার কল করছে, এবং এখানে কিছু চেয়ে সবচেয়ে ডেভেলপারদের মনে হতে পারে আরো চতুর হয়ে। কি API সার্ভার অনুরোধ উপার্জন জিনিস। এটি কি সত্যিই মোবাইল অ্যাপের প্রকৃত উদাহরণ, বা কোনও বট, একটি স্বয়ংক্রিয় স্ক্রিপ্ট বা কোনও আক্রমণকারী ম্যানুয়ালি এপিআই সার্ভারের সাহায্যে পোস্টম্যানের মতো একটি সরঞ্জাম ব্যবহার করে ঘুরে বেড়াচ্ছে?
আপনার বিস্ময়ের জন্য আপনি আবিষ্কার করতে পারেন যে মোবাইল অ্যাপ্লিকেশনটির একটি পুনরায় বাক্য সংস্করণ ব্যবহার করে বা অ্যাপ্লিকেশন দ্বারা সরবরাহিত পরিষেবার সুবিধা গ্রহণ করার চেষ্টা করছে এমন একটি স্বয়ংক্রিয় স্ক্রিপ্ট ব্যবহার করা বৈধ ব্যবহারকারীদের মধ্যে অন্যতম হতে পারে।
ঠিক আছে, WHAT সনাক্ত করতে , বিকাশকারীরা এমন একটি API কী অবলম্বন করেন যা সাধারণত তাদের মোবাইল অ্যাপ্লিকেশনটির কোডগুলিতে হার্ড-কোড করে code কিছু বিকাশকারী অতিরিক্ত মাইল যান এবং মোবাইল অ্যাপ্লিকেশনটিতে রান-টাইমে কীটি গণনা করেন, সুতরাং কোনও স্ট্যাটিক গোপন কোডটিতে এম্বেড থাকা অবস্থায় এটি পূর্বের পদ্ধতির বিপরীতে একটি রানটাইম সিক্রেট হয়ে যায়।
উপরের লেখাটি আমার লেখা একটি নিবন্ধ থেকে বের করা হয়েছিল, শিরোনাম আপনার মোবাইল অ্যাপ্লিকেশনটি কোনও এপিআই কী দরকার? , এবং আপনি এখানে পুরোপুরি পড়তে পারেন , এটি API কীগুলি সম্পর্কে নিবন্ধের সিরিজের প্রথম নিবন্ধ।
ক্লায়েন্ট ডিভাইসে সংবেদনশীল ডেটা সঞ্চয় করা
এবং আমি অবশ্যই সুরক্ষার কারণে ডিভাইসে সেই ব্যবহারকারীর নাম / পাসওয়ার্ডটি সংরক্ষণ করতে পারি না? আমি কি সাইন-আপ এ প্রত্যেক ব্যবহারকারীর জন্য একটি জিইউইডি ইস্যু করব, তাদের ডিভাইসে এটি সংরক্ষণ করুন এবং এপিআই অনুরোধের সময় প্রতিবার পুনরুদ্ধার করব?
ডিভাইসে আপনি যে কোনও কিছু সঞ্চয় করুন, এমনকি এনক্রিপ্ট করা থাকলেও ফ্রিদা বা এক্সপোজডের মতো সরঞ্জামগুলির সাথে রান-টাইমে বিপরীত ইঞ্জিনিয়ার করা যেতে পারে।
frida
ব্ল্যাক বক্স প্রসেসগুলিতে আপনার নিজের স্ক্রিপ্টগুলি ইনজেক্ট করুন। কোনও ফাংশন হুক করুন, ক্রিপ্টো এপিআইতে গুপ্তচর বা ব্যক্তিগত অ্যাপ্লিকেশন কোডটি সন্ধান করুন, কোনও উত্স কোডের প্রয়োজন নেই। সম্পাদনা করুন, সংরক্ষণ করুন এবং তাত্ক্ষণিকভাবে ফলাফলগুলি দেখুন। সমস্ত সংকলন পদক্ষেপ বা প্রোগ্রাম পুনরায় আরম্ভ ছাড়া।
xPosed
এক্সপোজ হ'ল মডিউলগুলির জন্য একটি কাঠামো যা কোনও APK ব্যবহার না করে সিস্টেম এবং অ্যাপ্লিকেশনগুলির আচরণ পরিবর্তন করতে পারে। এটি দুর্দান্ত কারণ এটির অর্থ হল মডিউলগুলি কোনও পরিবর্তন ছাড়াই বিভিন্ন সংস্করণ এবং এমনকি রমগুলির জন্যও কাজ করতে পারে (যতক্ষণ না মূল কোড পর্যন্ত
একটি ডিভাইসে আক্রমণকারী নিয়ন্ত্রণ করে তিনি মিডল অ্যাটাকের একজন মানুষ সঞ্চালনের জন্য একটি প্রক্সিও ব্যবহার করতে পারেন আপনি WHAT বা WHO সনাক্তকরণের জন্য ব্যবহার করতে পারেন এমন কোনও গোপন তথ্য বের করতে যেমন আমি নিবন্ধে দেখছি যে আক্রমণটিতে একজনের সাথে সেই API কী চুরি করুন :
যদিও আমরা মোবাইল অ্যাপ্লিকেশন কোডটিতে API কীটি আড়াল করতে জেএনআই / এনডিকে এর মতো উন্নত কৌশলগুলি ব্যবহার করতে পারি, এটি এপিআই কীটি চুরি করার জন্য কাউকে এমআইটিএম আক্রমণ করতে বাধা দেয় না। আসলে একটি এমআইটিএম আক্রমণ এমন পর্যায়ে সহজ যে এটি অ বিকাশকারীদের দ্বারাও অর্জন করা যেতে পারে।
তাহলে এখন কি ... আমি কি এই বিন্দুতে ডুবে গেছি যে আমি আমার এপিআই সার্ভারটিকে অপব্যবহার থেকে রক্ষা করতে পারি না ??? নিস্তব্ধ তাই না ... আশা এখনও আছে !!!
সম্ভাব্য সমাধান
কেউ কি আমাকে বলতে পারবেন যে ফেসবুক, ফোরস্কোয়ার, বা টুইটারের মতো বিখ্যাত অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলি তাদের সার্ভারে মোবাইল অ্যাপ্লিকেশন থেকে আসা প্রতিটি অনুরোধ প্রমাণ করতে কোন পদ্ধতি ব্যবহার করে?
দুঃখিত তবে আপনাকে বলার যোগ্য হতে আমি এই অ্যাপ্লিকেশনগুলিতে পর্যাপ্ত জ্ঞান নেই, তবে আমি আপনাকে অন্য কয়েকটি পদ্ধতির দিকে নির্দেশ করতে পারি।
অন্যান্য নিদর্শনগুলি কী উপলভ্য এবং সবচেয়ে দক্ষ ও সুরক্ষিত তা আমার কেবল প্রসেস প্রবাহের প্রয়োজন।
তাই ক্লায়েন্টের পক্ষ থেকে চালিত এবং কোনও এপিআই অ্যাক্সেস করার জন্য কিছু গোপনীয় প্রয়োজন যা বিভিন্ন উপায়ে আপত্তিজনকভাবে ব্যবহার করা যেতে পারে এবং আপনি এই সিরিজটিতে আরও শিখতে পারেন মোবাইল এপিআই সুরক্ষা কৌশলগুলি সম্পর্কে নিবন্ধগুলিতে । এই নিবন্ধগুলি আপনাকে শিখিয়ে দেবে যে কীভাবে API কীগুলি, ব্যবহারকারী অ্যাক্সেস টোকেনস, এইচএমএসি এবং টিএলএস পিনিং এপিআই সুরক্ষিত করতে ব্যবহার করা যেতে পারে এবং সেগুলি কীভাবে বাইপাস করা যায়।
WHAT এর সমস্যা সমাধানের জন্যআপনার মোবাইল অ্যাপ্লিকেশনটিতে অ্যাক্সেস করছে করার জন্য আপনার উপরে উপরে উল্লিখিত মোবাইল এপিআই সুরক্ষা কৌশল সম্পর্কিত নিবন্ধগুলির সিরিজের উল্লিখিত একটি বা সমস্ত সমাধান ব্যবহার করা দরকার এবং তারা স্বীকার করেছে যে তারা কেবলমাত্র আপনার এপিআই সার্ভারটিতে অননুমোদিত অ্যাক্সেস করতে পারে আরও শক্ত to বাইপাস কিন্তু অসম্ভব।
একটি মোবাইল অ্যাপ্লিকেশন পরীক্ষণ সমাধান ব্যবহার করে একটি আরও ভাল সমাধান নিয়োগ করা যেতে পারে যা এটিআইপি সার্ভারকে জানার জন্য সক্ষম করবে যে খাঁটি মোবাইল অ্যাপ্লিকেশন থেকে কেবলমাত্র অনুরোধগুলিই পেয়েছে।
মোবাইল অ্যাপ্লিকেশন পরীক্ষা
একটি মোবাইল অ্যাপ্লিকেশন যাচাই সমাধানের ব্যবহারটি API সার্ভারকে কী অনুরোধগুলি প্রেরণ করছে তা জানতে সক্ষম করবে , এইভাবে অনিরাপদ উত্স থেকে সমস্ত অন্যান্য অনুরোধ প্রত্যাখ্যান করার সময় একটি আসল মোবাইল অ্যাপ্লিকেশন থেকে কেবল অনুরোধের প্রতিক্রিয়া জানাতে পারে।
একটি মোবাইল অ্যাপ্লিকেশন পরীক্ষার সমাধানের ভূমিকাটি রান-টাইমে গ্যারান্টি দেওয়া আপনার মোবাইল অ্যাপটি যে কোনওভাবে ছড়িয়ে পড়েছে না, কোনও মূলের ডিভাইসে চলছে না, এক্সপোজড বা ফ্রিডার মতো কাঠামো দ্বারা চালিত হচ্ছে না, এমআইটিএম আক্রমণ হচ্ছে না, এবং এটি ব্যাকগ্রাউন্ডে একটি SDK চালিয়ে অর্জন করা হয়। ক্লাউডে চলমান পরিষেবাটি অ্যাপটিকে চ্যালেঞ্জ জানাবে, এবং প্রতিক্রিয়ার ভিত্তিতে এটি মোবাইল অ্যাপ এবং ডিভাইসটির নিখরচায়তা প্রমাণ করবে, সুতরাং এসডিকে কোনও সিদ্ধান্তের জন্য কখনই দায়বদ্ধ হবে না।
মোবাইল অ্যাপ্লিকেশন অখণ্ডতার সফল সত্যতা যাচাইয়ের জন্য অল্প সময়ের জন্য জেডাব্লুটি টোকেন জারি করা হয়েছে এবং একটি গোপনীয়তার সাথে স্বাক্ষর করা হয়েছে যে ক্লাউডে কেবলমাত্র এপিআই সার্ভার এবং মোবাইল অ্যাপ্লিকেশন পরীক্ষণ পরিষেবা সচেতন। মোবাইল অ্যাপ্লিকেশন প্রমাণীকরণে ব্যর্থতার ক্ষেত্রে জেডাব্লুটি টোকেন এমন একটি গোপন সাথে স্বাক্ষরিত হয় যা এপিআই সার্ভারটি জানে না।
এখন অ্যাপ্লিকেশনটিকে অবশ্যই প্রতিটি এপিআই দিয়ে প্রেরণের অনুরোধের শিরোনামগুলিতে JWT টোকেন কল করতে হবে। এটি এপিআই সার্ভারকে কেবলমাত্র অনুরোধগুলি সরবরাহ করার অনুমতি দেবে যখন এটি জেডাব্লুটি টোকেনে স্বাক্ষর এবং মেয়াদোত্তীকরণের সময়টি যাচাই করতে পারে এবং যখন যাচাইকরণে ব্যর্থ হয় তখন সেগুলি প্রত্যাখ্যান করে।
একবার মোবাইল অ্যাপ্লিকেশন পরীক্ষণ পরিষেবা দ্বারা ব্যবহৃত গোপনীয়তা মোবাইল অ্যাপ্লিকেশন দ্বারা জানা না গেলে, অ্যাপটি টেম্পারড, রুট ডিভাইসটিতে চলমান বা কোনও সংযোগের বিষয়ে যোগাযোগ করার পরেও রান-টাইমে এটিকে বিপরীত করা সম্ভব নয় the মিডল অ্যাটাক এ ম্যান টার্গেট।
মোবাইল অ্যাপ অ্যাট্রিস্টেশন পরিষেবাটি ইতিমধ্যে অ্যাপ্রোভ (আমি এখানে কাজ করি) এর SAAS সমাধান হিসাবে উপস্থিত রয়েছে যা আইওএস, অ্যান্ড্রয়েড, প্রতিক্রিয়াশীল নেটিভ এবং অন্যান্য সহ বেশ কয়েকটি প্ল্যাটফর্মের জন্য এসডিকে সরবরাহ করে। মেঘ পরিষেবা দ্বারা জারি করা জেডাব্লুটি টোকেন যাচাই করতে এই সংহতকরণের জন্য এপিআই সার্ভার কোডের একটি ছোট চেকেরও প্রয়োজন হবে। কোন অ্যাপ্লিকেশন পরিবেশন করতে হবে এবং কোনটি অস্বীকার করবে তা সিদ্ধান্ত নিতে সক্ষম হওয়ার জন্য এপিআই সার্ভারের জন্য এই চেকটি প্রয়োজনীয়।
উপসংহার
শেষ পর্যন্ত, আপনার এপিআই সার্ভারটিকে সুরক্ষিত করার জন্য যে সমাধানটি ব্যবহার করতে হবে সেটিকে ইউরোপের জিডিপিআর বিধিবিধানের মতো আপনি কী সুরক্ষার চেষ্টা করছেন তার মূল্য এবং সেই ধরণের ডেটার জন্য আইনি প্রয়োজনীয়তার সাথে মিল রেখে বেছে নিতে হবে।
আপনি কি অতিরিক্ত মাইলটি যেতে চান?
OWASP মোবাইল সুরক্ষা প্রকল্প - শীর্ষ 10 ঝুঁকি
ওডব্লিউএসপি মোবাইল সুরক্ষা প্রকল্প হ'ল একটি কেন্দ্রীয়ীকৃত সংস্থান যা বিকাশকারীদের এবং সুরক্ষা দলগুলিকে সুরক্ষিত মোবাইল অ্যাপ্লিকেশনগুলি তৈরি এবং রক্ষণাবেক্ষণের জন্য তাদের প্রয়োজনীয় সংস্থানগুলি সরবরাহ করার উদ্দেশ্যে। প্রকল্পের মাধ্যমে, আমাদের লক্ষ্য মোবাইল সুরক্ষা ঝুঁকিগুলিকে শ্রেণিবদ্ধ করা এবং তাদের প্রভাব বা শোষণের সম্ভাবনা হ্রাস করার জন্য উন্নয়নমূলক নিয়ন্ত্রণ সরবরাহ করা।