Home » Insecure Design কী? (বিস্তারিত ব্যাখ্যা)

Insecure Design কী? (বিস্তারিত ব্যাখ্যা)

by ITAB Content Team

Table of Contents

Insecure Design হলো এমন একটি নিরাপত্তা সমস্যা যা কোড লেখার সময় নয়, বরং অ্যাপ্লিকেশনের ডিজাইন বা আর্কিটেকচার পর্যায়েই তৈরি হয়। এটি ঘটে যখন:

  • সিস্টেম ডিজাইন করার সময় সম্ভাব্য নিরাপত্তা ঝুঁকি বিবেচনায় নেওয়া হয় না
  • থ্রেড মডেলিং করা হয় না
  • সিকিউরিটি কন্ট্রোল শুরু থেকেই পরিকল্পনায় থাকে না

সহজ ভাষায় বললে, কোড যত ভালোই লেখা হোক, ডিজাইন যদি ভুল হয় তাহলে পুরো সিস্টেমই ঝুঁকিপূর্ণ। অনেক সময় দুর্বল সিস্টেম আর্কিটেকচারের কারণেই Injection attack তৈরি হয়।

Insecure Design কীভাবে তৈরি হয়?

Insecure Design সাধারণত নিচের কারণগুলো থেকে তৈরি হয়:

1. Threat Modeling না করা

ডিজাইন করার সময় প্রশ্ন করা হয় না:

  • কে আক্রমণ করতে পারে?
  • কোন অংশ বেশি সংবেদনশীল?
  • কোন ডাটা সবচেয়ে গুরুত্বপূর্ণ?

2. Business Logic Flaw

সিস্টেমের কার্যপ্রবাহ (workflow) ভুলভাবে ডিজাইন করা হয়।

উদাহরণ:

  • Unlimited password reset
  • Multiple coupon reuse
  • Price manipulation

3. Security Feature Optional রাখা

Authentication, Authorization, Rate Limiting, এগুলো বাধ্যতামূলক না রেখে optional রাখা। ভুল authorization flow ডিজাইন করা হলে তা Broken Access Control এ পরিণত হতে পারে।

4. Trust Boundary ভুলভাবে নির্ধারণ

Client Side কে বেশি বিশ্বাস করা হয়, server-side validation কম থাকে। Software update বা dependency validation না থাকলে তা Software and Data Integrity Failures তৈরি করতে পারে।

Attack Scenario (আরও বিস্তারিতভাবে)

Scenario 1: Online Exam System

ধরা যাক, একটি অনলাইন পরীক্ষার ওয়েবসাইট ডিজাইন করা হয়েছে।

Design Flaw:

  • Exam submit করার পরে “Submit” বোতাম disable করা হয় শুধু ফ্রন্ডএন্ডে
  • Backend থেকে multiple submission চেক করা হয় না

আক্রমণকারী কী করল?

  1. Browser DevTools খুলল
  2. Disabled button আবার enable করল
  3. একাধিকবার exam submit করল
  4. প্রতিবার নতুন score generate হলো

ফলাফল: একজন শিক্ষার্থী unfair advantage নিয়ে সর্বোচ্চ স্কোর পেয়ে গেল।

Scenario 2: E-commerce Coupon Abuse

একটি ই-কমার্স ওয়েবসাইটে ডিজাইন করা হয়েছে:

  • New user coupon: 50% OFF
  • Coupon code যাচাই শুধু ফ্রন্ডএন্ডে

আক্রমণকারী কী করল?

  • নতুন অ্যাকাউন্ট না খুলে
  • Request intercept করে একই coupon বারবার ব্যবহার করল

এখানে কোনো Injection বা Bug নেই, সিস্টেম এর ডিজাইনই ভুল।

Insecure Design বনাম Coding Bug

কখন তৈরি হয়Planning/Design পর্যায়েImplementation সময়
কোড ঠিক করলেই ঠিক হয়?না হ্যাঁ
উদাহরণUnlimited retrySQL syntax error
Fix costবেশিতুলনামূলক কম

কেন Insecure Design এতটা ভয়ংকর?

1. কোড ফিক্স করেও সমস্যা যায় না

ডিজাইন বদলানো ছাড়া সমাধান হয় না।

2. বড় স্কেলের ক্ষতি করে

পুরো সিস্টেম, সব ব্যবহারকারী একসাথে ঝুঁকিতে পড়ে।

3. দীর্ঘদিন ধরা পড়ে না

পেনটেস্টিং বা অডিট না হলে অনেক সময় চোখেই পড়ে না।

4. Automation দিয়ে সহজে exploit করা যায়

Rate limit না থাকলে bot দিয়ে বড় আকারে আক্রমণ করা যায়।

Insecure Design এর সাধারণ উদাহরণ

  • Password retry limit নেই
  • Account lockout নেই
  • Payment verification workflow নেই
  • Role separation নেই
  • Audit logging নেই

সাধারণ জিজ্ঞাসা / FAQ (Frequently Asked Questions)

1. Insecure Design কী?

Insecure Design হলো নিরাপত্তাহীন আর্কিটেকচার বা ডিজাইন যেখানে সফটওয়্যার বা সিস্টেমের ডিজাইন পর্যায়েই নিরাপত্তা উপাদান যথাযথভাবে বিবেচনা করা হয়নি।

2. Insecure Design কেন গুরুত্বপূর্ণ?

ডিজাইন পর্যায়ে নিরাপত্তা ব্যর্থ হলে পরবর্তী পর্যায়ে কোড বা কনফিগারেশন যাই হোক না কেন, সিস্টেম হ্যাক বা ডেটা চুরির ঝুঁকি থাকে।

3. Insecure Design এর উদাহরণ কী?

  • Authentication বা Authorization নীতির অভাব
  • এনক্রিপশন বা সিক্রেট ম্যানেজমেন্ট ডিজাইনে ভুল
  • অননুমোদিত ডেটা অ্যাক্সেসের সুযোগ
  • লজিক্যাল ফ্লো বা প্রিভিলেজ ম্যানেজমেন্ট দুর্বল

4. Insecure Design এবং Code Vulnerability এর পার্থক্য কী?

  • Insecure Design: ডিজাইন পর্যায়েই নিরাপত্তা উপাদান সঠিকভাবে না থাকা
  • Code Vulnerability: কোড পর্যায়ে ত্রুটি, যেমন SQL Injection বা XSS

5. কোন ধরনের সিস্টেম বেশি ঝুঁকিপূর্ণ?

  • Web Applications
  • Mobile Apps
  • API এবং Microservices
  • IoT বা ক্লাউড সার্ভিস যেখানে নিরাপত্তা ফ্লো নির্ধারণ করা প্রয়োজন

6. আক্রমণকারী Insecure Design ব্যবহার করে কি করতে পারে?

  • Unauthorized Data Access
  • Sensitive Information চুরি
  • ফাংশনালিটি ম্যানিপুলেশন
  • রিমোট কোড এক্সিকিউশন বা সার্ভার নিয়ন্ত্রণ

7. কিভাবে Insecure Design শনাক্ত করা যায়?

Threat Modeling & Risk Assessment, Penetration Testing, Security Code Review এবং Architectural Review এর মাধ্যমে।

8. Insecure Design প্রতিরোধের উপায় কী?

  • Security by Design principle অনুসরণ করা
  • শুরুতেই Threat Modeling করা
  • সঠিকভাবে Authentication, Authorization ও Session Management ডিজাইন করা
  • সঠিকভাবে Sensitive Data Handling ও Error Handling ডিজাইন করা

9. Threat Modeling কীভাবে সাহায্য করে?

Threat Modeling মূলত আক্রমণকারী কীভাবে সিস্টেমে প্রবেশ করতে পারে তা আগে থেকেই চিনে বের করতে সাহায্য করে, যাতে ডিজাইন পর্যায়ে নিরাপত্তা উপাদান অন্তর্ভুক্ত করা যায়।

10. Security Misconfiguration এর সঙ্গে Insecure Design সম্পর্ক কী?

Security Misconfiguration কোড বা সার্ভার সেটিংসে ভুল, কিন্তু Insecure Design মূল ডিজাইন পর্যায়ে নিরাপত্তা বিবেচনা না থাকা। দুটো একসাথে হলে ঝুঁকি অনেক বেড়ে যায়।

11. Insecure Design থেকে রক্ষা পেতে বেস্ট প্র্যাকটিস কী?

  • Security by Design principle মেনে ডিজাইন করা
  • Threat Modeling এবং Risk Assessment নিয়মিত করা
  • Sensitive Data Protection, Authentication এবং Authorization সঠিকভাবে ডিজাইন করা
  • Security Testing এবং Code Review স্থায়ীভাবে করা
Was this article helpful?
Yes0No0

You may also like

Leave a Comment