OWASP Top 10 Vulnerabilities — সহজ ভাষায় ব্যাখ্যা, উদাহরণ ও প্রতিকার
OWASP (Open Worldwide Application Security Project) প্রতি বছর ওয়েব অ্যাপ্লিকেশনের সবচেয়ে বড় ১০টি নিরাপত্তা দুর্বলতা চিহ্নিত করে। নিচে ২০২3 সালের OWASP Top 10 Vulnerabilities বাংলা ভাষায় আলোচনা করা হলো।
🔟 ১. Broken Access Control
🧾 অর্থ:
যখন ব্যবহারকারীরা এমন কাজ করতে পারে যেগুলো তাদের অনুমতি নেই — যেমন অন্যের তথ্য দেখা বা মুছে ফেলা।
🧪 উদাহরণ:
একজন সাধারণ ব্যবহারকারী URL-এ /admin
টাইপ করে অ্যাডমিন প্যানেলে ঢুকে যায়।
🛠️ প্রতিকার:
-
Role-based access control (RBAC) ব্যবহার করুন
-
Backend-এ যাচাই করতে হবে user কে কি অনুমতি দেওয়া আছে
-
Direct object references validate করুন
🔟 ২. Cryptographic Failures (আগে বলা হতো: Sensitive Data Exposure)
🧾 অর্থ:
তথ্য নিরাপদভাবে এনক্রিপ্ট না করলে কেউ সহজেই তথ্য চুরি করতে পারে।
🧪 উদাহরণ:
ব্যবহারকারীর পাসওয়ার্ড ডাটাবেজে সোজা লেখা আছে: 123456
🛠️ প্রতিকার:
-
HTTPS ব্যবহার করুন
-
Password হ্যাশ করতে
bcrypt
বাargon2
ব্যবহার করুন -
Sensitive ডেটা Encrypt করে রাখুন
🔟 ৩. Injection (যেমন: SQL Injection)
🧾 অর্থ:
যখন অ্যাপ্লিকেশন ব্যবহারকারীর ইনপুট ঠিকমতো যাচাই না করে তা ডাটাবেজ বা কমান্ড লাইনে পাঠায়।
🧪 উদাহরণ (SQLi):
➡️ এর ফলে হ্যাকার লগইন করতে পারে পাসওয়ার্ড ছাড়াই।
🛠️ প্রতিকার:
-
Prepared Statements বা Parameterized Queries ব্যবহার করুন
-
ইনপুট Validate ও Sanitize করুন
-
ORM (Object Relational Mapper) ব্যবহার করুন
🔟 ৪. Insecure Design
🧾 অর্থ:
যখন অ্যাপ্লিকেশন ডিজাইন পর্যায়েই নিরাপত্তা ভাবা হয়নি।
🧪 উদাহরণ:
কোনো লিমিট না থাকায় ব্যবহারকারী ১০,০০০ বার লগইন চেষ্টা করতে পারে (Brute Force Possible)
🛠️ প্রতিকার:
-
Threat modeling করুন
-
Secure Design Principles ফলো করুন
-
Rate limiting & CAPTCHA যুক্ত করুন
🔟 ৫. Security Misconfiguration
🧾 অর্থ:
যখন সার্ভার, ডাটাবেস, ফায়ারওয়াল ইত্যাদি ভুলভাবে কনফিগার করা থাকে।
🧪 উদাহরণ:
ডিফল্ট অ্যাডমিন ইউজারনেম/পাসওয়ার্ড ব্যবহার করা হচ্ছে (admin/admin
)
🛠️ প্রতিকার:
-
অনাবশ্যক ফিচার disable করুন
-
Default credentials পরিবর্তন করুন
-
Automated configuration audits চালান
🔟 ৬. Vulnerable and Outdated Components
🧾 অর্থ:
অ্যাপ্লিকেশন পুরোনো বা দুর্বল থার্ড-পার্টি লাইব্রেরি ব্যবহার করছে।
🧪 উদাহরণ:
আপনার সাইটে jQuery v1.8
চলছে, যেখানে XSS দুর্বলতা রয়েছে।
🛠️ প্রতিকার:
-
লাইব্রেরিগুলো আপডেট রাখুন
-
SBOM (Software Bill of Materials) ব্যবহার করুন
-
Known vulnerabilities স্ক্যান করুন (যেমন:
npm audit
,OWASP Dependency-Check
)
🔟 ৭. Identification and Authentication Failures (যেমন: Broken Auth)
🧾 অর্থ:
যখন লগইন সিস্টেমে দুর্বলতা থাকে, যেমন 2FA না থাকা, সেশন Hijack হওয়া।
🧪 উদাহরণ:
লগইন না করেই /dashboard
অ্যাক্সেস করা যায়।
🛠️ প্রতিকার:
-
Strong password policies
-
Two-factor authentication (2FA)
-
Session timeout ও Secure cookies
🔟 ৮. Software and Data Integrity Failures
🧾 অর্থ:
কোড বা ডেটা কোনো যাচাই ছাড়াই ব্যবহার করা হয়।
🧪 উদাহরণ:
CDN থেকে JavaScript library নেয়া হচ্ছে, কিন্তু তার integrity check (SRI) নাই।
🛠️ প্রতিকার:
-
Signed updates ব্যবহার করুন
-
Subresource Integrity (SRI) যুক্ত করুন
-
CI/CD pipeline এ নিরাপত্তা টেস্ট যুক্ত করুন
🔟 ৯. Security Logging and Monitoring Failures
🧾 অর্থ:
নিরাপত্তা লঙ্ঘনের পর তা কেউ ধরতে পারে না কারণ লগিং ও মনিটরিং ঠিকমতো করা হয়নি।
🧪 উদাহরণ:
হ্যাকার ১০০ বার পাসওয়ার্ড ট্রাই করে কিন্তু কোনো alert বা লগ হয় না।
🛠️ প্রতিকার:
-
সমস্ত গুরুত্বপূর্ণ অ্যাক্টিভিটি লগ করুন
-
Real-time alert সেট করুন
-
লগ ফাইল সুরক্ষিতভাবে সংরক্ষণ করুন
🔟 ১০. Server-Side Request Forgery (SSRF)
🧾 অর্থ:
যখন হ্যাকার অ্যাপ্লিকেশন ব্যবহার করে সার্ভারকে অনিচ্ছাকৃতভাবে অন্য কোথাও রিকোয়েস্ট পাঠাতে বাধ্য করে।
🧪 উদাহরণ:
➡️ AWS EC2 instance থেকে credentials চুরি করা যায়
🛠️ প্রতিকার:
-
Internal IP ব্লক করুন
-
ইনপুট ভ্যালিডেশন করুন
-
Network-level protections যুক্ত করুন (Firewall rules)
✅ উপসংহার
দুর্বলতা | বাস্তব সমস্যা | সমাধান |
---|---|---|
SQLi | পাসওয়ার্ড ছাড়াই লগইন | Prepared Statement |
XSS | সাইটে স্ক্রিপ্ট ইনজেক্ট | ইনপুট স্যানিটাইজ |
CSRF | অন্যের নামে রিকোয়েস্ট | CSRF Token |
Broken Auth | অন্য ইউজার হয়ে লগইন | 2FA, Secure Session |