OWASP শীর্ষ 10 API হুমকি

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

এই ডকুমেন্টটিতে OWASP দ্বারা চিহ্নিত নিরাপত্তা দুর্বলতাগুলো মোকাবেলা করার জন্য Apigee-এর মধ্যে ব্যবহারযোগ্য বিভিন্ন পদ্ধতির বর্ণনা দেওয়া হয়েছে। Apigee-এর জন্য নথিভুক্ত অতিরিক্ত পদ্ধতির জন্য, “OWASP Top 10 2021 mitigation options on Google Cloud” দেখুন।

ভূমিকা

OWASP হলো একটি উন্মুক্ত কমিউনিটি যা সংস্থাগুলোকে বিশ্বস্ত অ্যাপ্লিকেশন এবং এপিআই (API) তৈরি, ক্রয় এবং রক্ষণাবেক্ষণে সহায়তা করার জন্য নিবেদিত। OWASP এপিআই সিকিউরিটি (OWASP API Security) প্রকল্পের মাধ্যমে, OWASP ওয়েব অ্যাপ্লিকেশন এবং REST এপিআই-এর সবচেয়ে গুরুতর নিরাপত্তা ঝুঁকিগুলো প্রকাশ করে এবং সেই ঝুঁকিগুলো মোকাবেলার জন্য সুপারিশ প্রদান করে।

এই নথিতে OWASP-এর ২০১৯ সালের শীর্ষ দশটি এপিআই নিরাপত্তা হুমকি দ্বারা চিহ্নিত সাধারণ এপিআই-ভিত্তিক আক্রমণ থেকে সুরক্ষার পদ্ধতি নিয়ে আলোচনা করা হবে। সর্বশেষ তালিকায় তুলে ধরা শীর্ষ হুমকিগুলোর একটি সাধারণ বৈশিষ্ট্য হলো প্রমাণীকরণ এবং অনুমোদন নিয়ন্ত্রণের ভুল অবস্থান। যেমন, অ্যাক্সেস কন্ট্রোল প্রয়োগের জন্য ব্যবহারকারী ক্লায়েন্ট অ্যাপের উপর নির্ভর করার অ্যান্টি-প্যাটার্ন ব্যবহার করে ক্লায়েন্ট অ্যাপের মধ্যেই এপিআই অনুরোধের মাধ্যমে প্রাপ্ত ডেটা ফিল্টার করা।

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

কনজিউমার অ্যাপ্লিকেশনগুলোকে অবিশ্বস্ত বা “পাবলিক” হিসেবে বিবেচনা করা উচিত, কারণ অ্যাপটি যে প্ল্যাটফর্মে চলছে তা আপনার নিয়ন্ত্রণে থাকে না। ধরে নিন যে যেকোনো পাবলিক অ্যাপ হ্যাক হতে পারে এবং হবেই, তাই অ্যাক্সেস কন্ট্রোল ( API1 , API5 ) প্রয়োগ করতে, রেসপন্স ডেটা ফিল্টার করতে ( API6 ), বা এপিআই কী বা অ্যাক্সেস টোকেনের মতো ক্লায়েন্ট সিক্রেট নিরাপদে সংরক্ষণ করতে ( API2 ) এগুলোর ওপর বিশ্বাস করা যায় না। ২০১৯ সালের OWASP টপ ১০ পর্যালোচনা করে কিছু সুপারিশ উঠে এসেছে:

  • আপনার এপিআইগুলো কোন ধরনের ক্লায়েন্ট অ্যাপ ব্যবহার করবে (এসপিএ, মোবাইল, বা ব্রাউজার-ভিত্তিক) তা নির্ধারণ করুন এবং উপযুক্ত অথেনটিকেশন, অথরাইজেশন ও সিকিউরিটি প্যাটার্ন ডিজাইন করুন।
  • সর্বদা “পাবলিক ক্লায়েন্ট” OAuth বা OpenID Connect ফ্লো ব্যবহার করুন ( PKCE ব্যবহার করা বিশেষভাবে সুপারিশ করা হয়)।
  • আপনার অ্যাপের বিজনেস লজিক নিয়ে ভাবুন, প্রথমে আপনার OpenAPI স্পেক নির্ধারণ করুন, এবং Apigee-এর মধ্যে থেকেই ব্যাকএন্ড থেকে আসা সমস্ত রেসপন্স ডেটা ফিল্টার করার জন্য আপনার API প্রক্সিগুলো ডিজাইন করুন। এই কাজটি করার জন্য কখনোই ডাউনস্ট্রিম অ্যাপ কোড লজিকের উপর নির্ভর করবেন না!
  • ব্যবহারকারীর ব্যক্তিগত শনাক্তকরণ তথ্য (PII) সম্বলিত সমস্ত ডেটা অনুরোধ ফিল্টার করুন, যাতে আপনার ব্যাকএন্ড থেকে শুধুমাত্র অনুরোধকারী ব্যবহারকারীর ডেটাই অনুমোদিত হয়।

API1:2019 ত্রুটিপূর্ণ অবজেক্ট লেভেল অনুমোদন

হুমকির বিবরণ

অবজেক্ট অ্যাক্সেস অনুরোধের অনুমোদন যাচাইকরণ অপর্যাপ্ত হলে, একজন আক্রমণকারী একটি অ্যাক্সেস টোকেন পুনরায় ব্যবহার করে অননুমোদিত কাজ সম্পাদন করতে পারে। অনুমোদন যাচাইকরণের অনুপযুক্ত কনফিগারেশনের কারণে এই হুমকিটি ঘটে থাকে। Apigee, VerifyApiKey, OAuth, এবং JSON Web Token (JWT) পলিসি প্রদান করে, যা এই দুর্বলতা থেকে রক্ষা করতে সাহায্য করে। তবে, এই হুমকি প্রতিরোধ করার জন্য এই পলিসিগুলো সঠিকভাবে কনফিগার করা অত্যন্ত গুরুত্বপূর্ণ।

এই হুমকি প্রতিরোধ করার জন্য, অ্যাপ্লিকেশন ডেভেলপমেন্ট এবং নিরাপত্তা দলগুলোর মধ্যে ঘনিষ্ঠ সহযোগিতা থাকা জরুরি। অনুমোদন স্বভাবতই একটি জটিল বিষয়, এবং কার্যকর ও সূক্ষ্ম অনুমোদনের জন্য অ্যাপ্লিকেশনটির ব্যবসায়িক যুক্তি (বিজনেস লজিক) সম্পর্কে গভীর ধারণা থাকা প্রয়োজন।

Apigee বাস্তবায়নের দৃষ্টিকোণ থেকে দুটি প্রধান বিষয় বিবেচনা করতে হবে:

  • অ্যাক্সেস টোকেনের অখণ্ডতা
  • প্রবেশাধিকার নিয়ন্ত্রণ প্রয়োগ

অ্যাক্সেস টোকেনের অখণ্ডতা

অনুরোধকারী ক্লায়েন্টের দেওয়া টোকেনটি বিকৃত করা হয়নি, তা সঠিক OAuth বা OpenID Connect ফ্লো এবং যথাযথ ক্রেডেনশিয়াল ভ্যালিডেশন বা সাইনিং মেকানিজম ব্যবহার করে যাচাই করা অত্যন্ত গুরুত্বপূর্ণ। Apigee সাধারণত ব্যবহৃত সমস্ত OAuth ফ্লো সমর্থন করে।

Apigee অ্যাক্সেস টোকেন যাচাইকরণ নীতিমালার মধ্যে অন্তর্ভুক্ত রয়েছে:

প্রবেশাধিকার নিয়ন্ত্রণ প্রয়োগ

অ্যাক্সেস টোকেনের বৈধতা যাচাই হয়ে গেলে, অথরাইজেশন টোকেনের অ্যাক্সেস অধিকারের নিরিখে প্রতিটি আগত API অনুরোধ মূল্যায়ন করার জন্য অ্যাক্সেস নিয়ন্ত্রণ প্রয়োগ নীতি বাস্তবায়ন করা অত্যন্ত গুরুত্বপূর্ণ।

Apigee অনুমোদন নীতি যাচাই ও প্রয়োগ করার জন্য দুটি প্রধান পদ্ধতি প্রদান করে:

  • অভ্যন্তরীণ : একটি অনুমোদন টোকেন থেকে ফ্লো ভেরিয়েবল হিসাবে নিষ্কাশিত ক্লেইমগুলির উপর ভিত্তি করে অ্যাক্সেস অনুরোধগুলি মূল্যায়ন করতে শর্তসাপেক্ষ ফ্লো ব্যবহার করা।
  • অর্পিত : একটি তৃতীয় পক্ষের অ্যাক্সেস ম্যানেজমেন্ট সলিউশনে সার্ভিস কলআউট ব্যবহার করা

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

শর্তসাপেক্ষ ফ্লো স্টেটমেন্ট ব্যবহার করে অ্যাক্সেস অনুরোধ মূল্যায়ন করতে OAuth বা JWT পলিসির জন্য উপলব্ধ ফ্লো ভেরিয়েবলগুলো ব্যবহার করুন।

ডেলিগেটেড অ্যাপ্রোচ (উপরের চিত্রে প্রদর্শিত) তখন সুপারিশ করা হয়, যখন কোনো অ্যাক্সেস টোকেন থেকে প্রাপ্ত ক্লেইমগুলো সরাসরি কোনো ব্যাকএন্ড অবজেক্টে এপিআই অনুরোধ অনুমোদন করার জন্য ব্যবহার করা যায় না, অথবা আরও জটিল OAuth ফ্লো টাইপের জন্য, যেগুলোর অ্যাক্সেস টোকেন পাওয়ার জন্য অথরাইজেশন সার্ভারে একটি পৃথক কলের প্রয়োজন হয়।

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

API2:2019 ত্রুটিপূর্ণ ব্যবহারকারী প্রমাণীকরণ

হুমকির বিবরণ

ত্রুটিপূর্ণভাবে প্রয়োগ করা ব্যবহারকারী প্রমাণীকরণ নীতিমালা, প্রমাণীকরণ ব্যবস্থার বাস্তবায়নগত দুর্বলতার সুযোগ নিয়ে আক্রমণকারীদেরকে বৈধ ব্যবহারকারীদের ছদ্মবেশ ধারণ করার সুযোগ করে দেয়। প্রমাণীকরণ পদ্ধতি প্রয়োগ করার সময় মনে রাখার মতো কিছু প্রমাণীকরণ নীতিমালার মধ্যে রয়েছে:

  • সর্বদা ইউজার এজেন্ট (অ্যাপ) এবং অনুরোধকারী ব্যবহারকারী উভয়কেই প্রমাণীকরণ করুন।
  • ডেলিগেটেড অথেন্টিকেশন ও অথরাইজেশন প্যাটার্ন ব্যবহার করুন এবং এপিআই অনুরোধের মধ্যে সরাসরি পাসওয়ার্ড দেওয়া থেকে বিরত থাকুন।
  • সর্বদা অ্যাক্সেস ক্রেডেনশিয়ালের স্বাক্ষর যাচাই করুন এবং নিশ্চিত করুন যে ব্যবহৃত সমস্ত অ্যাক্সেস ক্রেডেনশিয়ালের একটি নির্দিষ্ট মেয়াদ শেষ হওয়ার সময় রয়েছে।
  • কোটা নির্ধারণ করে এবং বট-চালিত ব্রুট ফোর্স আক্রমণ শনাক্ত ও তার প্রতিক্রিয়া জানাতে Apigee Sense ব্যবহার করে ব্রুট ফোর্স আক্রমণ প্রতিরোধ করুন।

আউটসাইড-ইন প্যারাডাইমের অধীনে, এপিআই ডিজাইনটি আপনার ব্যাকএন্ড সিস্টেমে থাকা ডেটার কাঠামোর পরিবর্তে, ডেটা ব্যবহারের ক্ষেত্রে গ্রাহকদের প্রয়োজনকে কেন্দ্র করে তৈরি করা হয়, এবং বাহ্যিক গ্রাহকদের জন্য এপিআই ডিজাইন করার সময় নিরাপত্তা একটি অত্যন্ত গুরুত্বপূর্ণ বিষয়। ঐতিহ্যগতভাবে, ব্যাকএন্ড সিস্টেমগুলো পাবলিক নেটওয়ার্কে ব্যবহারের জন্য যথেষ্ট শক্তিশালী অথেনটিকেশন ব্যবস্থা দিয়ে তৈরি করা হয় না। এখানেই একটি আইডেন্টিটি অ্যান্ড অ্যাক্সেস ম্যানেজমেন্ট সলিউশনের সাথে মিলিত হয়ে Apigee এই হুমকি থেকে সুরক্ষার জন্য শক্তিশালী সমাধান দিতে পারে।

এখানে কয়েকটি প্রধান বিষয় বিবেচনা করার আছে, যেগুলোর উভয়টিই পরবর্তী অধ্যায়গুলোতে আলোচনা করা হবে:

  • নিরাপত্তা ডিজাইন : প্রমাণীকরণ প্যাটার্ন বাস্তবায়নের জন্য Apigee-এর বৈশিষ্ট্যগুলির পূর্ণ ব্যবহার
  • পরিচালনা : প্রকাশিত সকল এপিআই প্রোডাক্ট জুড়ে ডিজাইন করা অথেনটিকেশন প্যাটার্নগুলোর সঠিক ও সামঞ্জস্যপূর্ণ ব্যবহার নিশ্চিত করা।
  • পরিচালনগত নিরাপত্তা : সন্দেহজনক বা অস্বাভাবিক আচরণ এবং প্রমাণীকৃত এপিআই প্রক্সিগুলোকে পাশ কাটানোর বা ব্রুট ফোর্স আক্রমণের প্রচেষ্টা শনাক্ত করতে পারা।

নিরাপত্তা নকশা

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

OpenID Connect এবং OAuth RFC-গুলো বহুসংখ্যক ডেলিগেটেড অথেন্টিকেশন ও অথরাইজেশন ফ্লো এবং এই ফ্লো-গুলোতে জড়িত অ্যাক্টরদের বিবরণ প্রদান করে। এটি একটি জটিল বিষয়, এবং এতে অবাক হওয়ার কিছু নেই যে ত্রুটিপূর্ণ অথেন্টিকেশন OWASP API-এর অন্যতম প্রধান হুমকি। আইডেন্টিটি স্ট্যান্ডার্ডগুলোর সঠিক বাস্তবায়নের উপর একটি বিশদ প্রাথমিক ধারণা প্রদান করা এই ডকুমেন্টের আওতার বাইরে, তবুও OAuth ফ্লো-গুলো আরও ভালোভাবে বোঝার জন্য Apigee-এর কাছে অনেক অতিরিক্ত রিসোর্স রয়েছে, যেমন এই ই-বুক , ওয়েবকাস্ট এবং উদাহরণসহ বাস্তবায়ন

প্রমাণীকরণ নীতি

Apigee-এর যে পলিসিগুলো পরিচয় এবং প্রমাণীকরণ সংক্রান্ত উদ্বেগ নিরসনে সহায়তা করে, সেগুলোর মধ্যে রয়েছে:

  • OAuth 2.0 ফ্রেমওয়ার্ক ব্যবহার করার সময় অ্যাক্সেস টোকেন, রিফ্রেশ টোকেন বা রেসপন্স ফ্লো টোকেন যাচাই করা বা তৈরি করা । দ্রষ্টব্য: প্রযুক্তিগতভাবে, OAuth একটি ডেলিগেটেড অথরাইজেশন ফ্রেমওয়ার্ক, তবুও এটি ডেলিগেটেড বা ফেডারেটেড অথেন্টিকেশন প্যাটার্নে ব্যাপকভাবে ব্যবহৃত হয়।
  • OpenID Connect 1.0 JSON ওয়েব টোকেন এবং JSON ওয়েব সিগনেচার যাচাই , ডিকোড এবং তৈরি করা
  • SAML অ্যাসারশন তৈরি এবং যাচাই করা
  • এপিআই কী যাচাই করা
  • কীড-হ্যাশ মেসেজ অথেন্টিকেশন কোড ( HMAC ) যাচাইকরণ

ট্র্যাফিক ব্যবস্থাপনা

নিম্নলিখিত Apigee ট্র্যাফিক ম্যানেজমেন্ট বৈশিষ্ট্যগুলি ব্রুট ফোর্স আক্রমণ থেকে রক্ষা করতে সাহায্য করে:

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

শাসনব্যবস্থা

নিরাপত্তা একটি চলমান প্রক্রিয়া, এটি একবার সেট করে ভুলে যাওয়ার মতো কোনো প্রকল্প নয়, এবং নিরাপত্তা লঙ্ঘনের অন্যতম প্রধান কারণ হলো ভুল কনফিগারেশন। একবার অথেনটিকেশন ফ্লো, আইডেন্টিটি ইন্টিগ্রেশন প্যাটার্ন এবং অথেনটিকেশন-সম্পর্কিত ট্র্যাফিক ম্যানেজমেন্ট পলিসি নির্ধারণ করা হয়ে গেলে, সেগুলোর সঠিক ও সামঞ্জস্যপূর্ণ বাস্তবায়ন নিশ্চিত করা অত্যন্ত জরুরি।

Apigee বাস্তবায়নের অখণ্ডতা নিশ্চিত করতে এবং ভুল কনফিগারেশনজনিত ত্রুটি প্রতিরোধ করার জন্য বেশ কিছু বৈশিষ্ট্য ও সরঞ্জাম প্রদান করে।

ভূমিকা-ভিত্তিক অ্যাক্সেস নিয়ন্ত্রণ (RBAC)

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

Apigee আপনাকে রোল-ভিত্তিক অ্যাক্সেস পরিচালনা করার জন্য বিভিন্ন ফিচার প্রদান করে, যার মাধ্যমে আপনি ব্যবহারকারীদের পূর্বনির্ধারিত রোলে নিযুক্ত করতে পারেন অথবা আপনার API টিমের প্রয়োজন অনুযায়ী কাস্টম রোল তৈরি করতে পারেন। আপনার API প্রোগ্রামকে নিরাপদে স্কেল করার জন্য রোল অ্যাসাইনমেন্ট সঠিকভাবে সংজ্ঞায়িত ও পরিচালনা করা অত্যন্ত গুরুত্বপূর্ণ। এছাড়াও, আপনি আপনার বিদ্যমান কর্পোরেট ডিরেক্টরির সাথে ইন্টিগ্রেট করতে এবং Apigee-এর মধ্যে দ্বিতীয় সেট অ্যাডমিনিস্ট্রেটর ক্রেডেনশিয়াল পরিচালনার প্রয়োজনীয়তা কমাতে ফেডারেশন ব্যবহার করতে পারেন।

ভাগ করা প্রবাহ

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

চিত্র: শেয়ার্ড ফ্লো হলো পলিসি এবং শর্তাধীন যুক্তির পুনঃব্যবহারযোগ্য সমষ্টি যা আপনাকে একটি যৌগিক প্যাটার্ন বজায় রাখতে সাহায্য করে।

অপারেশনাল নিরাপত্তা

একবার আপনার এপিআইগুলো সঠিক অথেনটিকেশন প্যাটার্ন এবং বেসলাইন ট্র্যাফিক ম্যানেজমেন্ট ব্যবহার করে প্রোডাকশনে চালু হয়ে গেলে, আপনার SecOps টিমকেও সন্দেহজনক কার্যকলাপ নিরীক্ষণ করতে এবং তার প্রতিক্রিয়া জানাতে সক্ষম হতে হবে, যা প্রায়শই অথেনটিকেশন ক্রেডেনশিয়াল হ্যাক করার প্রচেষ্টা দিয়ে শুরু হয়।

অ্যাপিজি সেন্স

Apigee Sense আপনার API-কে অবাঞ্ছিত অনুরোধ ট্র্যাফিক থেকে সুরক্ষিত রাখে, যার মধ্যে ক্ষতিকারক ক্লায়েন্টদের আক্রমণও অন্তর্ভুক্ত। Apigee Sense API অনুরোধ ট্র্যাফিক বিশ্লেষণ করে এমন প্যাটার্ন শনাক্ত করে যা অবাঞ্ছিত অনুরোধের ইঙ্গিত দিতে পারে। এই বিশ্লেষণ ব্যবহার করে, আপনি অবাঞ্ছিত অনুরোধকারী ক্লায়েন্টদের শনাক্ত করতে পারেন এবং তারপর সেই অনুরোধগুলিকে অনুমোদন, ব্লক বা চিহ্নিত করার জন্য ব্যবস্থা নিতে পারেন। Sense-এর ভবিষ্যৎ বৈশিষ্ট্যগুলির মধ্যে সন্দেহজনক ট্র্যাফিকের জন্য স্বয়ংক্রিয়ভাবে ReCAPTCHA যাচাইকরণ সক্রিয় করার ক্ষমতা অন্তর্ভুক্ত থাকবে।

Apigee Sense-এর মাধ্যমে, আপনি আপনার API-গুলিকে নিম্নলিখিত অনুরোধের ধরণগুলি থেকে সুরক্ষিত রাখতে পারেন:

  • স্বয়ংক্রিয় আচরণ যা মানুষের আচরণের সাথে মিশে যায়
  • একই আইপি থেকে ক্রমাগত প্রচেষ্টা
  • অস্বাভাবিক ত্রুটির হার
  • সন্দেহজনক ক্লায়েন্টের অনুরোধ
  • ডেটা ক্রলিং
  • কী হার্ভেস্টিং এবং অথেনটিকেশন ব্রুট ফোর্স অ্যাটাক
  • কার্যকলাপের বিস্ফোরণ
  • ভৌগোলিক নিদর্শন

অ্যাডভান্সড এপিআই অপস

যদিও সেন্স (Sense) বিশেষভাবে বট-সদৃশ হুমকি শনাক্তকরণ এবং তার প্রতিক্রিয়া জানানোর জন্য ডিজাইন করা হয়েছে, অ্যাডভান্সড এপিআই অপস (Advanced API Ops)-এ অ্যানোমালি ডিটেকশন এবং অ্যাডভান্সড অ্যালার্ট ডেফিনিশন উভয়ই অন্তর্ভুক্ত রয়েছে।

আপনার পুরোনো এপিআই ডেটার উপর কৃত্রিম বুদ্ধিমত্তা (AI) এবং মেশিন লার্নিং (ML) মডেল প্রয়োগের মাধ্যমে অ্যানোমালি ডিটেকশন কাজ করে। এর ফলে, অ্যানোমালি ডিটেকশন এমন সব পরিস্থিতির জন্য রিয়েল-টাইমে অ্যালার্ট দিতে পারে, যা আপনি হয়তো ভাবেনওনি। এটি আপনার কর্মদক্ষতা বাড়াতে এবং এপিআই সংক্রান্ত সমস্যা সমাধানের গড় সময় (MTTR) কমাতে সাহায্য করে।

অ্যাডভান্সড এপিআই অপস বিদ্যমান এপিআই মনিটরিং অ্যালার্ট মেকানিজমের উপর ভিত্তি করে নিম্নলিখিত উন্নত অ্যালার্ট টাইপগুলো যুক্ত করে:

  • অস্বাভাবিকতার সতর্কতা । আপনার আগে থেকে ট্র্যাফিক এবং পারফরম্যান্স সংক্রান্ত সমস্যা নির্ধারণ করার পরিবর্তে, Edge নিজেই সেগুলো শনাক্ত করে। এরপর আপনি এই অস্বাভাবিকতাগুলোর জন্য একটি সতর্কতা জারি করতে পারেন।
  • TLS মেয়াদোত্তীর্ণ হওয়ার সতর্কতা । কোনো TLS সার্টিফিকেটের মেয়াদ শেষ হওয়ার কাছাকাছি এলে একটি বিজ্ঞপ্তি জারি করে।

API3:2019 অতিরিক্ত ডেটা প্রকাশ

হুমকির বিবরণ

একটি প্রকাশিত এপিআই প্রয়োজনের চেয়ে বেশি ডেটা প্রকাশ করতে পারে এবং প্রয়োজনীয় ফিল্টারিংয়ের জন্য ক্লায়েন্ট অ্যাপের ওপর নির্ভর করে। যদি কোনো আক্রমণকারী সরাসরি অন্তর্নিহিত এপিআই-কে কোয়েরি করে, তবে তারা সংবেদনশীল ডেটা অ্যাক্সেস করতে সক্ষম হয়।

এপিআই ডিজাইনের জন্য Apigee-এর “ আউটসাইড-ইন ” ডিজাইন নীতিগুলোর মধ্যে একটি হলো ডেটা পার্সিমনি । আপনার ইউএক্স ডিজাইনার এবং ডেভেলপারদের সাথে কাজ করে এপিআই-এর মাধ্যমে শুধুমাত্র সেই ডেটাগুলোই প্রকাশ করুন যা আপনার অ্যাপের ইউআই-এর জন্য প্রয়োজন। ব্যাকএন্ড সিস্টেমগুলো পাবলিক ব্যবহারের ধরনের জন্য তৈরি করা হয়নি, তাই Apigee-এর এপিআই ফার্স্ট ডিজাইনের অন্যতম প্রথম কাজ হলো আপনার গ্রাহক এবং ডেভেলপারদের জন্য একটি চমৎকার এপিআই প্রোডাক্ট সরবরাহ করতে প্রকাশিত ডেটাকে ন্যূনতম প্রয়োজনীয় পরিমাণে কমিয়ে আনা।

Apigee-র ডিজাইন নীতিগুলোর মধ্যে আরেকটি হলো পুনঃব্যবহারযোগ্যতা । নিরাপত্তাজনিত উদ্বেগ বাদ দিলেও, একটি এপিআই (API) থেকে প্রাপ্ত ডেটা ফিল্টার করার জন্য কোনো অ্যাপের উপর নির্ভর করার ফলে, আপনি যে প্রতিটি প্ল্যাটফর্মের জন্য অ্যাপটি তৈরি করবেন, সেই সব প্ল্যাটফর্মে সেই ফিল্টারিং লজিকটি পোর্ট করার প্রয়োজন হয়।

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

পরবর্তী অধ্যায়গুলোতে আলোচনা করা হবে কীভাবে:

  • ডেটার ঝুঁকি কমাতে ব্যাকএন্ড পরিষেবাগুলিতে পাঠানো অনুরোধ এবং প্রতিক্রিয়াগুলি পুনর্লিখন করুন।
  • আপনার ব্যাকএন্ড পরিষেবাগুলো সম্পর্কে সংবেদনশীল পরিবেশগত তথ্য আক্রমণকারীদের কাছে ফাঁস হওয়া থেকে রক্ষা করতে বিশদ ত্রুটি বার্তা প্রতিরোধ করার জন্য ফল্ট হ্যান্ডলিং প্রয়োগ করুন।

প্রতিক্রিয়া এবং অনুরোধগুলি পুনর্লিখন

ব্যাকএন্ড সিস্টেমগুলো সাধারণত পাবলিক অ্যাপে বা অনির্ভরযোগ্য পাবলিক নেটওয়ার্কে ব্যবহারের জন্য ডিজাইন করা হয় না। Apigee Edge আপনার ব্যাকএন্ডকে অতিরিক্ত ডেটা এক্সপোজার থেকে সুরক্ষিত রেখে আপনাকে পাবলিক এপিআই প্রোডাক্ট ডেপ্লয় করতে সক্ষম করার জন্য ডিজাইন করা হয়েছে।

এর জন্য Apigee তিনটি মূল নীতি ব্যবহার করে:

  • বার্তা বরাদ্দ করুন
  • কোড কলআউট
  • ত্রুটি পরিচালনা

বার্তা নীতি নির্ধারণ করুন

অ্যাসাইন মেসেজ পলিসিটি এপিআই প্রক্সি ফ্লো চলাকালীন নতুন রিকোয়েস্ট এবং রেসপন্স মেসেজ পরিবর্তন বা তৈরি করে। এই পলিসিটি আপনাকে ঐ মেসেজগুলোর উপর নিম্নলিখিত কাজগুলো করার সুযোগ দেয়:

  • একটি মেসেজে নতুন ফর্ম প্যারামিটার, হেডার বা কোয়েরি প্যারামিটার যোগ করুন
  • একটি বার্তা থেকে অন্য বার্তায় বিদ্যমান বৈশিষ্ট্যগুলি অনুলিপি করুন
  • একটি বার্তা থেকে হেডার, কোয়েরি প্যারামিটার, ফর্ম প্যারামিটার এবং/অথবা মেসেজ পেলোড অপসারণ করুন
  • একটি বার্তায় বিদ্যমান প্রোপার্টিগুলোর মান সেট করুন

অ্যাসাইন মেসেজ (Assign Message) ব্যবহার করে আপনি সাধারণত রিকোয়েস্ট বা রেসপন্স-এর প্রোপার্টি যোগ, পরিবর্তন বা অপসারণ করেন। তবে, আপনি অ্যাসাইন মেসেজ ব্যবহার করে একটি কাস্টম রিকোয়েস্ট বা রেসপন্স মেসেজ তৈরি করতে এবং এটিকে একটি বিকল্প টার্গেটে পাঠাতেও পারেন, যেমনটি 'কাস্টম রিকোয়েস্ট মেসেজ তৈরি করুন' (Create custom request messages) অংশে বর্ণনা করা হয়েছে।

কাস্টম কোড দিয়ে জটিল পুনর্লিখন

জটিল ডেটা হ্যান্ডলিং এবং রিরাইটিং নিয়মগুলির জন্য, যেগুলির জটিলতা 'অ্যাসাইন মেসেজ' পলিসির ক্ষমতার বাইরে, আপনি জাভাস্ক্রিপ্ট, জাভা বা পাইথনের মতো প্রসিডিউরাল ল্যাঙ্গুয়েজ ব্যবহার করতে পারেন। আপনি একটি এপিআই প্রক্সিতে কাস্টম কোড যোগ করতে পারেন এবং তারপর প্রক্সি ফ্লোতে যুক্ত পলিসিগুলি থেকে সেটিকে কল করতে পারেন। প্রসিডিউরাল কোডের জন্য সাপোর্টটি এমনভাবে ডিজাইন করা হয়েছে যাতে আপনার পক্ষে ফ্লো ভ্যারিয়েবল, ফল্ট এবং রিকোয়েস্ট ও রেসপন্স বডির জটিল হ্যান্ডলিং বাস্তবায়ন করা সহজ হয়।

প্রসিডিউরাল কোডের সাহায্যে আপনি যা করতে পারেন:

  • অনুরোধ এবং প্রতিক্রিয়া মানের মতো জটিল বডি মান তৈরি বা পরিবর্তন করুন।
  • ইউআরএল পুনর্লিখন, যেমন কোনো টার্গেট এন্ডপয়েন্ট ইউআরএল গোপন করার জন্য।

Apigee Edge-এ সমর্থিত ভাষাগুলোর জন্য আলাদা পলিসি রয়েছে: জাভাস্ক্রিপ্ট পলিসি , জাভা কলআউট পলিসি এবং পাইথন স্ক্রিপ্ট পলিসি

ত্রুটি পরিচালনা

Apigee আপনাকে 'Raise Fault' টাইপের একটি পলিসি ব্যবহার করে কাস্টম এক্সেপশন হ্যান্ডলিং করার সুযোগ দেয়। 'Raise Fault' পলিসি, যা 'Assign Message' পলিসির একটি ভিন্ন রূপ, আপনাকে কোনো ত্রুটির পরিস্থিতিতে একটি কাস্টম ফল্ট রেসপন্স তৈরি করতে দেয়।

ভাগ করা প্রবাহ

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

API4:2019 সম্পদের অভাব এবং রেট লিমিটিং

হুমকির বিবরণ

রেট লিমিটিং পলিসি প্রয়োগ না করার মাধ্যমে, আক্রমণকারীরা ডিনায়াল-অফ-সার্ভিস অ্যাটাকের দ্বারা ব্যাকএন্ডকে অচল করে দিতে পারে।

নিম্নলিখিত Apigee বৈশিষ্ট্যগুলি ব্যবহার করে এই হুমকিটি সহজেই মোকাবেলা করা যেতে পারে:

  • ইনবাউন্ড এপিআই অনুরোধের উপর ট্র্যাফিক সীমা আরোপ করার জন্য প্রতিরোধমূলক নিয়ন্ত্রণ হিসেবে কোটা এবং স্পাইক অ্যারেস্ট নীতি।
  • Apigee Sense বট-চালিত আক্রমণগুলি গতিশীলভাবে সনাক্ত ও প্রতিরোধ করে।
  • চলমান ডিডিওএস (DDoS) আক্রমণ সম্পর্কে সতর্ক করার জন্য সনাক্তকারী নিয়ন্ত্রণ ব্যবস্থা হিসেবে উন্নত এপিআই (API) পর্যবেক্ষণ এবং সতর্কীকরণ।

কোটা এবং স্পাইক অ্যারেস্ট নীতির মাধ্যমে হার সীমিতকরণ

Apigee রেট সীমিতকরণের জন্য দুটি পলিসি প্রদান করে:

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

স্পাইক গ্রেপ্তার

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

কোটা

কোটা পলিসি একটি নির্দিষ্ট সময়কালে (যেমন মিনিট, ঘন্টা, দিন, সপ্তাহ বা মাস) একটি এপিআই প্রক্সি কতগুলো রিকোয়েস্ট মেসেজ গ্রহণ করবে, তা কনফিগার করার সুযোগ দেয়। আপনি এপিআই প্রক্সি অ্যাক্সেসকারী সমস্ত অ্যাপের জন্য কোটা একই রাখতে পারেন, অথবা নিম্নলিখিত বিষয়গুলোর উপর ভিত্তি করে কোটা নির্ধারণ করতে পারেন:

  • যে পণ্যটিতে এপিআই প্রক্সি রয়েছে
  • এপিআই-এর জন্য অনুরোধকারী অ্যাপটি
  • অ্যাপ ডেভেলপার
  • আরও অনেক মানদণ্ড

এই নীতিটি স্পাইক অ্যারেস্টের চেয়ে আরও বিশদ, এবং সাধারণত এর সাথে একযোগে ব্যবহার করা উচিত।

Apigee Sense দিয়ে বট সনাক্তকরণ

Apigee Sense-এর মাধ্যমে, আপনি ক্ষতিকর বা সন্দেহজনক আচরণ প্রদর্শনকারী নির্দিষ্ট ক্লায়েন্ট, আইপি রেঞ্জ বা অটোনোমাস সিস্টেম অর্গানাইজেশনের অনুরোধগুলোকে সুস্পষ্টভাবে অনুমতি দিতে, ব্লক করতে বা ফ্ল্যাগ করতে পারেন। আপনার এপিআই প্রক্সিগুলো অনুরোধগুলো প্রসেস করার আগেই Apigee Edge এই পদক্ষেপগুলো প্রয়োগ করে। উদাহরণস্বরূপ, “ব্রুট গেসর” আচরণ প্রদর্শনকারী কোনো আইপি রেঞ্জ বা নির্দিষ্ট ক্লায়েন্টকে শনাক্ত করে ব্লক বা ফ্ল্যাগ করা যেতে পারে।

অ্যাডভান্সড এপিআই অপস মনিটরিং-এর মাধ্যমে হুমকি সনাক্তকরণ

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

API5:2019 ত্রুটিপূর্ণ ফাংশন স্তরের অনুমোদন

হুমকির বিবরণ

এই হুমকিটি API1- এর একটি ভিন্ন রূপ, এবং এটি একটি অনুমোদনগত দুর্বলতাও বটে। এই হুমকির মাধ্যমে, একজন আক্রমণকারী এমন সব ফাংশনে অনুরোধ পাঠিয়ে কাজ সম্পাদন করতে পারে, যেগুলোতে তার প্রবেশের অনুমোদন নেই। উদাহরণস্বরূপ, যদি কোনো API এন্ডপয়েন্ট HTTP অনুরোধের ভার্ব যাচাই না করে, তাহলে একজন আক্রমণকারী GET-কে PUT বা DELETE দিয়ে প্রতিস্থাপন করে এমন ডেটা পরিবর্তন বা মুছে ফেলতে পারে, যা শুধুমাত্র পড়ার অনুমোদন তার রয়েছে। অথবা, কোনো API রিসোর্স URI পাথে যথেষ্ট কঠোর অ্যাক্সেস কন্ট্রোল প্রয়োগ না করার কারণে, একটি API এন্ডপয়েন্ট একজন আক্রমণকারীকে শুধুমাত্র অনুরোধে পাথ পরিবর্তন করে অন্য ব্যবহারকারীর ডেটা দেখার সুযোগ করে দিতে পারে।

এই ধরনের হুমকি Apigee-কে একটি মধ্যস্থতা এবং অ্যাবস্ট্রাকশন লেয়ার হিসেবে ব্যবহারের গুরুত্ব তুলে ধরে, কারণ অনেক ব্যাকএন্ড সিস্টেম—যেগুলো পাবলিক অ্যাক্সেসের জন্য ডিজাইন করা হয় না—ডিফল্টরূপে একাধিক বিজনেস লজিক ফাংশন, এমনকি উচ্চ-ঝুঁকিপূর্ণ প্রশাসনিক কার্যকারিতা সম্পাদনের জন্য একটিমাত্র এন্ডপয়েন্ট সরবরাহ করতে পারে।

এই হুমকির সম্ভাবনা হ্রাস করার ধারণাগত উপাদানগুলোকে সাধারণত নিম্নোক্তভাবে ভাগ করা হয়:

  • কী সুরক্ষিত করা হচ্ছে? আপনার এপিআই প্রোডাক্ট স্ট্র্যাটেজি নিয়ে ভাবুন, এবং Apigee এপিআই প্রক্সি, প্রোডাক্ট ও অ্যাপের ফিচারগুলোর মাধ্যমে উন্মুক্ত করা পাথ ও রিসোর্স ডিজাইন করার জন্য RESTful-এর সেরা অনুশীলনগুলো ব্যবহার করার সময় কার্যকারিতার যৌক্তিক বিভাজন প্রয়োগ করুন।
  • কারা আপনার API রিসোর্স অ্যাক্সেস করছে? API1 এবং API2- তে বর্ণিত Apigee-র কিছু অথেনটিকেশন এবং অথরাইজেশন ফিচার ব্যবহার করে উচ্চ-স্তরের পারসোনাগুলো সংজ্ঞায়িত করুন এবং “সর্বনিম্ন বিশেষাধিকার” ডিফল্ট অ্যাক্সেস এনটাইটেলমেন্ট প্রয়োগ করুন।
  • আপনার অ্যাক্সেস নীতিগুলি কীভাবে প্রয়োগ করা হচ্ছে? সমস্ত এপিআই অনুরোধের ইউআরএল পাথ এবং ভার্ব যাচাই করতে কন্ডিশনাল ফ্লো এবং ফল্ট ব্যবহার করুন।

চিত্র: এই ডায়াগ্রামটি দেখায় যে, একটি অ্যাক্সেস টোকেনের মধ্যে প্রদত্ত স্কোপগুলিকে এনটাইটেলমেন্ট হিসাবে ব্যবহার করে Apigee-তে কীভাবে ফাংশন-স্তরের অনুমোদন প্রয়োগ করা হবে।

এপিআই প্রক্সি, পণ্য এবং অ্যাপের মাধ্যমে যৌক্তিক বিভাজন

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

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

চিত্র: একটি এপিআই প্রোডাক্টে অন্তর্ভুক্ত এপিআই রিসোর্সগুলো এক বা একাধিক এপিআই থেকে আসতে পারে, তাই আপনি ব্যবহারের স্তর এবং অনুমোদনের সীমা তৈরি করতে রিসোর্সগুলোকে মিলিয়ে-মিশিয়ে ব্যবহার করতে পারেন।

OAuth স্কোপ এবং JWT ক্লেইম ব্যবহার করে ফাংশন-স্তরের অ্যাক্সেস কন্ট্রোল

যদিও API1:2019 ব্রোকেন অবজেক্ট অথরাইজেশনের জন্য উপরে আলোচিত অনুমোদন পদ্ধতিগুলো অবজেক্ট-স্তরে সূক্ষ্ম-স্তরের অ্যাক্সেস কন্ট্রোল নিশ্চিত করে, ফাংশন-স্তরে স্থূল-স্তরের অ্যাক্সেস কন্ট্রোল নিশ্চিত করাও ঠিক ততটাই গুরুত্বপূর্ণ। অনুরোধকারী ব্যবহারকারী কি আদৌ এই URL পাথটি অনুরোধ করার অনুমতিপ্রাপ্ত? এই ধরনের নীতি প্রায়শই ব্যবহারকারীর ধরন (যেমন গ্রাহক, কর্মচারী, প্রশাসক, অভ্যন্তরীণ বা তৃতীয় পক্ষের ডেভেলপার) অনুযায়ী সংজ্ঞায়িত করা হয়।

ভুল কনফিগারেশনের ঝুঁকি কমাতে, এখানে সুপারিশ করা হচ্ছে যে আপনি আপনার নিরাপত্তা দলের সাথে কাজ করে নিশ্চিত করুন যে অনুরোধকারী ব্যবহারকারী সম্পর্কিত অ্যাসারশনগুলো অ্যাক্সেস টোকেনের মধ্যেই অন্তর্ভুক্ত থাকে, যা OAuth স্কোপ অথবা JWT ক্লেইম ব্যবহারের মাধ্যমে করা যেতে পারে।

শর্তসাপেক্ষ প্রবাহের মাধ্যমে অনুরোধ যাচাইকরণ

মৌলিকভাবে, একটি REST API কল নিম্নলিখিত বিষয়গুলো নিয়ে গঠিত:

  • একটি শেষবিন্দু
  • একটি সম্পদ
  • একটি ক্রিয়াপদ
  • যেকোনো সংখ্যক অতিরিক্ত অনুরোধ বৈশিষ্ট্য, যেমন কোয়েরি প্যারামিটার

এই হুমকিতে বর্ণিত আক্রমণটি সাধারণত একটি এপিআই (API) অনুরোধের অপর্যাপ্ত ফিল্টারিংয়ের কারণে ঘটে থাকে, যার ফলে একজন আক্রমণকারী অননুমোদিত কার্যকলাপ সম্পাদন করতে বা কোনো সুরক্ষিত রিসোর্স অ্যাক্সেস করতে পারে। অ্যাক্সেস টোকেন বা ক্লেইমের উপর ভিত্তি করে অনুরোধ ফিল্টার করার জন্য শর্তসাপেক্ষ লজিক ছাড়াও, Apigee সরাসরি অনুরোধটির উপর ভিত্তি করে ফিল্টারিং লজিক বাস্তবায়নের সুযোগ দেয়।

একবার আপনি কোনো এপিআই প্রোডাক্টের বিজনেস লজিক এবং আপনার এপিআই দ্বারা অনুমোদিত ফাংশনগুলো পরিষ্কারভাবে বুঝে ও সংজ্ঞায়িত করে ফেললে, পরবর্তী পদক্ষেপ হলো এই Apigee প্রোডাক্ট ফিচারগুলোর মাধ্যমে এর বাইরের যেকোনো অনুরোধকে সীমাবদ্ধ করা:

  • প্রক্সি ফ্লো কনফিগারেশনের যেকোনো ধাপে রিসোর্স পাথ বা ভার্ব সীমাবদ্ধ করতে কন্ডিশনাল লজিক এবং রেইজ ফল্ট পলিসি ব্যবহার করা হয়।
  • ত্রুটিপূর্ণ JSON বা XML অনুরোধ পেলোড ব্যবহার করে বিষয়বস্তু-ভিত্তিক আক্রমণ থেকে সুরক্ষার জন্য JSON এবং XML হুমকি সুরক্ষা নীতি

API6:2019 গণ বরাদ্দ

হুমকির বিবরণ

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

এই হুমকিটি তৈরি হয় যখন কোনো ক্লায়েন্টের কাছে অপরিশোধিত ডেটা (সাধারণত JSON বা XML ফরম্যাটে) পাঠানো হয়। এর ফলে একজন আক্রমণকারী আপনার ব্যাকএন্ড সিস্টেমের অন্তর্নিহিত বাস্তবায়নের বিবরণ এবং গোপনীয় ডেটা এলিমেন্টের প্রপার্টি নামগুলো অনুমান করে ফেলতে পারে। এই ধরনের আক্রমণের ফলে একজন আক্রমণকারী অনুপযুক্ত ডেটা পড়া বা পরিবর্তন করার ক্ষমতা অর্জন করতে পারে, অথবা সবচেয়ে খারাপ পরিস্থিতিতে, রিমোট কোড এক্সিকিউশন দুর্বলতা সক্রিয় হয়ে উঠতে পারে।

এই ধরনের হুমকির সুযোগ করে দেওয়ার পেছনে সাধারণত দুটি দিক জড়িত থাকে:

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

Apigee পণ্যের দৃষ্টিকোণ থেকে, আমরা আপনার API-গুলোর শক্তিশালী ডেটা ফিল্টারিং বাস্তবায়ন নিশ্চিত করার জন্য বেশ কিছু দরকারি ফিচার প্রদান করি।

ওপেনএপিআই স্পেসিফিকেশন ফিল্টারিং নীতি

OASValidation ( OpenAPI Specification Validation ) পলিসি আপনাকে একটি OpenAPI 3.0 স্পেসিফিকেশন (JSON বা YAML)-এর বিপরীতে আগত অনুরোধ বা প্রতিক্রিয়া বার্তা যাচাই করার সুযোগ দেয়। এই পলিসি আপনাকে নিম্নলিখিত কাজগুলো করার অনুমতি দেয়:

  1. একটি ওপেনএপিআই স্পেসিফিকেশন (OAS) তৈরি করে আপনার এপিআই ডিজাইন করুন।
  2. Apigee ব্যবহার করে আপনার ব্যাকএন্ড থেকে একটি API প্রোডাক্ট নিরাপদে প্রকাশ করার জন্য প্রয়োজনীয় মিডিয়েশন, নিরাপত্তা এবং ক্যাশিং লজিক প্রয়োগ করুন।
  3. আপনার OAS স্পেসিফিকেশনে সংজ্ঞায়িত ডেটা স্কিমার সাথে আগত অনুরোধগুলি যাচাই করুন, যার মধ্যে বেসপ্যাথ , ভার্ব , অনুরোধ বার্তা নীতি এবং প্যারামিটার অন্তর্ভুক্ত রয়েছে।

SOAP বার্তা যাচাইকরণ নীতি

SOAP মেসেজ ভ্যালিডেশন পলিসি আপনাকে XML-ভিত্তিক অনুরোধগুলো যাচাই করার সুযোগ দেয়, যার মাধ্যমে আপনি একটি XSD স্কিমার বিপরীতে XML মেসেজ অথবা একটি WSDL ডেফিনিশনের বিপরীতে SOAP মেসেজ যাচাই করতে পারেন। এছাড়াও, আপনি মেসেজ ভ্যালিডেশন পলিসি ব্যবহার করে নিশ্চিত করতে পারেন যে একটি JSON বা XML মেসেজের পেলোড সুগঠিত, যার মধ্যে একটি XML বা JSON মেসেজে নিম্নলিখিত বিষয়গুলো যাচাই করা অন্তর্ভুক্ত:

  • একটিমাত্র মূল উপাদান আছে
  • বিষয়বস্তুতে কোনো অবৈধ অক্ষর নেই।
  • অবজেক্ট এবং ট্যাগগুলো যথাযথভাবে নেস্ট করা হয়েছে।
  • শুরু এবং শেষের ট্যাগ ম্যাচ

API7:2019 নিরাপত্তা ভুল কনফিগারেশন

হুমকির বিবরণ

নিরাপত্তাজনিত ভুল কনফিগারেশন সাধারণত অনিরাপদ ডিফল্ট কনফিগারেশন, অসম্পূর্ণ বা অ্যাড-হক কনফিগারেশন, উন্মুক্ত ক্লাউড স্টোরেজ, ভুলভাবে কনফিগার করা HTTP হেডার, অপ্রয়োজনীয় HTTP মেথড, শিথিল ক্রস-অরিজিন রিসোর্স শেয়ারিং (CORS), এবং সংবেদনশীল তথ্য সম্বলিত বিশদ ত্রুটি বার্তার কারণে হয়ে থাকে। আক্রমণকারীরা প্রায়শই প্যাচ না করা ত্রুটি, সাধারণ এন্ডপয়েন্ট, বা অরক্ষিত ফাইল ও ডিরেক্টরি খুঁজে বের করার চেষ্টা করে, যাতে তারা যে সিস্টেমে আক্রমণ করতে চায় সেটির অননুমোদিত অ্যাক্সেস বা তথ্য লাভ করতে পারে। নিরাপত্তাজনিত ভুল কনফিগারেশন কেবল ব্যবহারকারীর সংবেদনশীল তথ্যই প্রকাশ করে না, বরং সিস্টেমের এমন বিবরণও প্রকাশ করতে পারে যা সম্পূর্ণ সার্ভারকে ঝুঁকির মুখে ফেলতে পারে। এছাড়াও, নিরাপত্তাজনিত ভুল কনফিগারেশনের দুর্বলতার আরও কিছু ব্যবহারের ক্ষেত্র অন্তর্ভুক্ত হতে পারে:

  • ভুলভাবে কনফিগার করা TLS
  • স্ট্যাক ট্রেস সহ ত্রুটির বার্তা
  • প্যাচবিহীন সিস্টেম
  • উন্মুক্ত স্টোরেজ বা সার্ভার ম্যানেজমেন্ট প্যানেল

নিরাপত্তা সংক্রান্ত ত্রুটিপূর্ণ কনফিগারেশনের সমস্যাগুলো মোকাবেলা ও প্রশমিত করার জন্য প্রতিষ্ঠানগুলো বিভিন্ন পদক্ষেপ নিতে পারে, যার মধ্যে রয়েছে:

  1. শক্তকরণ এবং প্যাচিং প্রক্রিয়া প্রতিষ্ঠা ও প্রমিতকরণ
  2. এপিআই ইকোসিস্টেমকে ঘিরে শাসনব্যবস্থা গড়ে তোলা
  3. প্রশাসনিক প্রবেশাধিকার সীমিত করা এবং নিরীক্ষা ও সতর্কীকরণ সক্ষম করা

শেয়ার্ড ফ্লো এবং ফ্লো হুক

Apigee শেয়ার্ড ফ্লো-এর ধারণাটি সমর্থন করে, যা API ডেভেলপারদের পলিসি এবং রিসোর্সগুলিকে একটি পুনঃব্যবহারযোগ্য গ্রুপে একত্রিত করতে দেয়। পুনঃব্যবহারযোগ্য কার্যকারিতা এক জায়গায় ধারণ করার মাধ্যমে, একটি শেয়ার্ড ফ্লো আপনাকে সামঞ্জস্যতা নিশ্চিত করতে, ডেভেলপমেন্টের সময় কমাতে এবং আরও সহজে কোড পরিচালনা করতে সাহায্য করে। আপনি স্বতন্ত্র API প্রক্সিগুলির ভিতরে একটি শেয়ার্ড ফ্লো অন্তর্ভুক্ত করতে পারেন, অথবা আপনি আরও এক ধাপ এগিয়ে গিয়ে ফ্লো হুকগুলিতে শেয়ার্ড ফ্লো স্থাপন করতে পারেন, যাতে একই পরিবেশে ডেপ্লয় করা প্রতিটি API প্রক্সির জন্য শেয়ার্ড ফ্লো লজিক স্বয়ংক্রিয়ভাবে কার্যকর হয়।

এপিআই মনিটরিং

Apigee একটি ব্যাপক এপিআই মনিটরিং প্ল্যাটফর্ম প্রদান করে। এপিআই মনিটরিং সংস্থাগুলোকে সক্রিয়ভাবে এপিআই ট্র্যাফিক এবং পারফরম্যান্স সংক্রান্ত সমস্যা শনাক্ত করতে সক্ষম করে। Apigee API Monitoring, Apigee Edge for Public Cloud-এর সাথে একত্রে কাজ করে এপিআই পারফরম্যান্স সম্পর্কে রিয়েল-টাইম প্রাসঙ্গিক তথ্য প্রদান করে, দ্রুত সমস্যা নির্ণয়ে সহায়তা করে এবং ব্যবসায়িক ধারাবাহিকতার জন্য প্রতিকারমূলক ব্যবস্থা গ্রহণে সুবিধা প্রদান করে।

চিত্র: Apigee API Monitoring বিভিন্ন সমস্যা পর্যবেক্ষণ, তদন্ত এবং সে অনুযায়ী ব্যবস্থা গ্রহণের জন্য নানা ধরনের টুল সরবরাহ করে। এটি Google Cloud Platform-এর সেরা ইন্টেলিজেন্স ফিচারগুলো ব্যবহার করে।

অ্যাপিজি সেন্স

Apigee Sense ক্ষতিকর ক্লায়েন্টদের আক্রমণ সহ অবাঞ্ছিত অনুরোধ ট্র্যাফিক থেকে API-গুলিকে সুরক্ষিত রাখতে সাহায্য করে। Apigee Sense API অনুরোধ ট্র্যাফিক বিশ্লেষণ করে এমন প্যাটার্ন শনাক্ত করে যা অবাঞ্ছিত অনুরোধের প্রতিনিধিত্ব করতে পারে।

এই বিশ্লেষণ ব্যবহার করে, সংস্থাগুলি অবাঞ্ছিত অনুরোধকারী ক্লায়েন্টদের শনাক্ত করতে পারে এবং তারপর সেই অনুরোধগুলিকে অনুমতি দিতে, ব্লক করতে বা চিহ্নিত করতে ব্যবস্থা নিতে পারে। Apigee Sense-এর মাধ্যমে, নিম্নলিখিত অনুরোধের ধরণগুলি থেকে API-গুলিকে সুরক্ষিত রাখা সম্ভব:

  • স্বয়ংক্রিয় আচরণ যা মানুষের আচরণের সাথে মিশে যায়
  • একই আইপি থেকে ক্রমাগত প্রচেষ্টা
  • অস্বাভাবিক ত্রুটির হার
  • সন্দেহজনক ক্লায়েন্টের অনুরোধ
  • ডেটা ক্রলিং
  • চাবি সংগ্রহ
  • কার্যকলাপের বিস্ফোরণ
  • ভৌগোলিক নিদর্শন

API8:2019 ইনজেকশন

হুমকির বিবরণ

Untrusted injection of data, such as SQL, NoSQL, XML Parsers, ORM, LDAP, OS Commands, and JavaScript, into API requests can result in the execution of unintended commands or unauthorized data access. Attackers will feed the API with malicious data through whatever injection vectors are available such as direct input, parameters, integrated services, and so on, expecting it to be sent to an interpreter. Attackers can discover these flaws easily when reviewing the source code using vulnerability scanners and fuzzers. A successful injection can lead to information disclosure impacting the confidentiality and data loss or in some cases it may also lead to DoS.

Best practices to mitigate injection errors/attacks include strictly defining the input data such as schemas, types, string patterns, performing input validation, limit checks and enforcing them at runtime. The Apigee platform allows validating the incoming data using filters to only allow valid values for each input parameter.

Apigee Edge, acting as a server for the incoming API requests, checks to ensure that the payload structure falls within an acceptable range, also known as a limit check. You can configure an API proxy so that the input validation routine transforms the input to remove risky character sequences and replace them with safe values.

Regular Expression Protection policy

The RegularExpressionProtection policy extracts information from a message (for example, URI Path, Query Param, Header, Form Param, Variable, XML Payload, or JSON Payload) and evaluates that content against predefined regular expressions. If any specified regular expressions evaluate to true, the message is considered a threat and is rejected. A regular expression, or regex for short, is a set of strings that specify a pattern in a string. Regular expressions enable content to be programmatically evaluated for patterns. Regular expressions can be used, for example, to evaluate an email address to ensure that it is properly structured.

The most common usage of RegularExpressionProtection is the evaluation of JSON and XML payloads for malicious content.

No regular expression can eliminate all content-based attacks, and multiple mechanisms should be combined to enable defense-in-depth. This section describes some recommended patterns for preventing access to content.

There are several other approaches to validating input available with the Apigee platform:

Validate Content Types

Content type refers to content of a file which is transferred via HTTP and classified according to a two-part structure. Apigee recommends to validate the content types for the Request and Response using conditional logic as explained below.

API9:2019 Improper assets management

Threat Description

Insufficient environment management and environment segregation allows attackers to access under-secured API endpoints. Lack of governance safeguards also cause unnecessary exposure of deprecated resources.

This threat can be addressed by leveraging Apigee's matured capabilities to manage the full API life cycle, allowing you to create a comprehensive governance model that enables collaboration among teams, and at the same time, apply separation of responsibilities between security stakeholders and API developers. Boundaries and controls can be configured and maintained using:

Organizations, Environments, and Revisions : Virtual and physical guardrails that guarantee isolation and a secured promotion process through runtime contexts.

Role Based Access Control : Only the necessary people on your API teams will have permissions to manage configuration changes and also the promotion process.

Audience Management for API Documentation : Once an API has been published in the developer portal, you can limit the visibility of documentation by managing target audiences.

Flow Hooks : You can enforce global policies and patterns that can be managed as privileged guardrails that cannot be modified by API developers.

Organizations and Environments

Configuration artifacts, users, and features in Apigee can be scoped to specific organizations and/or environments. This means that the platform has pre-built guardrails that can be placed around APIs and their supporting configuration.

Organizations : An organization is the top-level tenant in Apigee. It enables you to have full segregation for traffic, configuration, and users. As a governance best practice, you should consider having separate production and non-production organizations. This practice effectively avoids mixing production data, users, and traffic with lower environments.

Environments : APIs in Apigee can be promoted through multiple deployment states; each state is linked to an execution context. The environment context is not carried along during the promotion process, therefore avoiding exposing sensitive configuration to unprivileged users.

Revisions : Revisions allow APIs and individual features to be promoted seamlessly through environments.

Role Based Access Control

In order to mitigate API9 it is imperative to have clear definitions of and separation of duties between security stakeholders and API Developers. As previously stated in this document, Apigee has flexible Role Based Access Control capabilities that allow you to assign permissions to custom roles. For this specific threat, roles can be scoped to have limited privileges per organization, environments, or more granular configuration permissions. As a preferred practice, consider limiting privileges to change the deployment state of APIs through environments and also to make sure developers are unable to access or modify global security libraries (Flow Hooks). These limited roles will prevent unsolicited changes to global security policies that have broad coverage on both legacy and current published endpoints.

Audience Management for API Documentation

A Developer Portal is a pivotal component for the success of your API Strategy; it allows you to keep a comprehensive inventory of all documentation related to your APIs including hosts/endpoints, resources, operations, payload schemas, and more. In Apigee you can group your APIs using API Product constructs. API Products are defined by bundles of resources and operations that fall within the same business and security context (eg service plan, business domain, category, company hierarchy, etc.).

With Apigee's Integrated Developer Portal you can publish API Products and restrict the visibility of published content by managing target audiences. This capability complies with a content segmentation strategy that aligns with business and security requirements.

Flow Hooks

The promotion and release processes for APIs must always include security compliance and certification processes. To be effective, API teams using the appropriate tools should be able to create guardrails that guarantee the separation of responsibilities and while maintaining agile release cycles.

Apigee allows you to elevate security governance duties by enforcing global policies through Flow Hooks . These global policies can be managed as privileged guardrails that cannot be modified by API developers, therefore guaranteeing separation of responsibilities and also promoting agility by applying default security and, by extension, providing security compliance for all APIs deployed in a given execution environment.

Figure: Privileged guardrails can be configured in Apigee through Flow Hooks and Shared Flows. Security stakeholders are responsible for maintaining security related global policies. These features guarantee separation of responsibilities and promote agile development life cycles.

API10:2019 Insufficient logging & monitoring

Threat Description

Insufficient logging, monitoring, and alerts allows attacks in progress to go undetected and therefore a strategy should be required to obtain insights over critical events that have impact over your business.

Event and logging management strategies for APIs should consider the following best practices:

  • Logs Management Policy : Document and enforce rules to standardize and control logs verbosity, log levels, log integrity, centralized repository, and more
  • Event Management Policy : Guarantee that every event should be traceable to its source. Also, events should be able to be categorized by criticality and business impact
  • Reports and Audits : Security and operations stakeholders should be able to access and react to logs and events in real time. Additionally, reinforcement cycles can be performed by stakeholders to adjust detection patterns based on historical data

Apigee provides the necessary tools to create a comprehensive event and logging management strategy. These tools include:

Message Logging Policy : Create log streams based on traffic data or metadata from your API traffic. You have the flexibility to decide stream verbosity by leveraging conditional logic and message templates .

Google's Cloud Operation Suite : Leverage the out of box integration into highly scalable monitoring and logging tools from Google.

Service Callout Policy : Adds support for logs streams that require HTTP endpoints to send events.

Analytics : Access and analyze historical traffic metadata through out of box and/or customized reports. Create and manage alerts based on trends and understand traffic anomalies.

API Monitoring : As previously described, this tool provides alerting capabilities that can be triggered based on critical events. Traffic logs can be further analyzed and acted upon.