ওপেন ওয়ার্ল্ডওয়াইড অ্যাপ্লিকেশন সিকিউরিটি প্রজেক্ট হল একটি অনলাইন সম্প্রদায় যা IoT, সিস্টেম সফ্টওয়্যার এবং ওয়েব অ্যাপ্লিকেশন সুরক্ষার ক্ষেত্রে অবাধে উপলব্ধ নিবন্ধ, পদ্ধতি, ডকুমেন্টেশন, সরঞ্জাম এবং প্রযুক্তি তৈরি করে। OWASP বিনামূল্যে এবং উন্মুক্ত সম্পদ প্রদান করে। এটি OWASP ফাউন্ডেশন নামে একটি অলাভজনক দ্বারা পরিচালিত হয়। OWASP Top 10 - 2021 হল 40 টিরও বেশি অংশীদার সংস্থা থেকে সংকলিত ব্যাপক তথ্যের উপর ভিত্তি করে সাম্প্রতিক গবেষণার প্রকাশিত ফলাফল।
OWASP নিয়মিতভাবে একটি শীর্ষ 10 দুর্বলতার প্রতিবেদন প্রকাশ করে। প্রতিবেদনটি ওয়েব অ্যাপ্লিকেশনের দুর্বলতাকে লক্ষ্য করে।
এই পোস্টে, আমি বর্ণনা করতে চাই কিভাবে Apache APISIX API গেটওয়ের মাধ্যমে তাদের কিছু ঠিক করা যায়।
2021 সালে, প্রতিবেদনে উল্লেখ করা হয়েছে:
আরো বিস্তারিত জানার জন্য, সম্পূর্ণ রিপোর্ট চেক করুন.
একটি দুর্বলতা ঠিক করা তার সঠিক প্রকৃতির উপর নির্ভর করে। উদাহরণস্বরূপ, দুর্বল এবং পুরানো উপাদানগুলিকে ঠিক করা প্রক্রিয়া-চালিত, সংস্করণগুলি পরিচালনা করার এবং পুরানোগুলিকে অবসর নেওয়ার ক্ষেত্রে শৃঙ্খলার প্রয়োজন৷ কিছু, যাইহোক, প্রযুক্তিগত এবং শুধুমাত্র বিপরীত প্রক্সি বা API গেটওয়েতে যথাযথ কনফিগারেশন প্রয়োজন, যেমন , সার্ভার সাইড অনুরোধ জালিয়াতি ।
নিরাপত্তা একটি স্পর্শকাতর বিষয় কারণ কঠোর নিরাপত্তা ব্যবসায় কোনো মূল্য আনে না। ক্যারিয়ার-চালিত পরিচালকরা নিরাপত্তার বিষয়ে চিন্তা করবেন না কারণ তারা তাদের পরবর্তী বার্ষিক মূল্যায়নে কোম্পানির মুনাফা X% বৃদ্ধি করেছে তা প্রদর্শন করতে সক্ষম হবে না। বোর্ড নিরাপত্তাকে গুরুত্ব সহকারে বিবেচনা না করলে, কেউ পাত্তা দেবে না। এই কারণে, বেশিরভাগ সংস্থা চেকবক্স-ভিত্তিক নিরাপত্তা প্রয়োগ করে, ওরফে বিশ্বাসযোগ্য অস্বীকারযোগ্যতা। আপনি যদি নিরাপত্তা যথাযথভাবে প্রয়োগ করতে আগ্রহী হন, আমি পূর্ববর্তী ব্লগ পোস্টে কিছু চিন্তা লিখেছি: নিরাপত্তাকে ঝুঁকি হিসেবে বিবেচনা করুন ।
সব মিলিয়ে, সুরক্ষিত অ্যাপ্লিকেশনগুলি খুব বেশি বাজেট পাবে না, যদি থাকে। অতএব, আমাদের অবশ্যই এটি সম্পর্কে স্মার্ট হতে হবে এবং একটি বিদ্যমান উপাদান অনুসন্ধান করতে হবে। সৌভাগ্যবশত, OWASP টপ 10 পরিচালনা করার জন্য একটি আউট-অফ-দ্য-বক্স কনফিগারেশন অফার করে, যেটি Core Rule Set নামে একটি কনফিগারেশনের মাধ্যমে ঠিক করা যায়। দুর্ভাগ্যবশত, এটি ModSecurity কে লক্ষ্য করে:
ModSecurity, কখনও কখনও Modsec বলা হয়, একটি ওপেন সোর্স ওয়েব অ্যাপ্লিকেশন ফায়ারওয়াল (WAF)। মূলত Apache HTTP সার্ভারের জন্য একটি মডিউল হিসাবে ডিজাইন করা হয়েছে, এটি Apache HTTP সার্ভার, মাইক্রোসফ্ট IIS এবং Nginx সহ বিভিন্ন প্ল্যাটফর্ম জুড়ে অন্যান্য সুরক্ষা বৈশিষ্ট্যগুলির সাথে হাইপারটেক্সট ট্রান্সফার প্রোটোকল অনুরোধ এবং প্রতিক্রিয়া ফিল্টারিং ক্ষমতাগুলির একটি অ্যারে প্রদান করতে বিকশিত হয়েছে। এটি Apache লাইসেন্স 2.0 এর অধীনে মুক্তিপ্রাপ্ত বিনামূল্যের সফ্টওয়্যার।
যদিও Apache APISIX কনফিগারেশনের মাধ্যমে Nnginx কনফিগার করা তাত্ত্বিকভাবে সম্ভব, সেখানে আরও একটি সহজ উপায় রয়েছে।
কোর রুলসেটের বর্ণনা আমাদের প্রয়োজনের সাথে বেশ প্রাসঙ্গিক:
OWASP® ModSecurity Core Rule Set (CRS) হল ModSecurity বা সামঞ্জস্যপূর্ণ ওয়েব অ্যাপ্লিকেশন ফায়ারওয়ালের সাথে ব্যবহারের জন্য জেনেরিক আক্রমণ সনাক্তকরণ নিয়মের একটি সেট। CRS-এর লক্ষ্য হল ন্যূনতম মিথ্যা সতর্কতা সহ OWASP শীর্ষ দশ সহ বিস্তৃত আক্রমণ থেকে ওয়েব অ্যাপ্লিকেশনগুলিকে রক্ষা করা। CRS অনেক সাধারণ আক্রমণ বিভাগের বিরুদ্ধে সুরক্ষা প্রদান করে, যার মধ্যে রয়েছে:
- SQL ইনজেকশন (SQLi)
- ক্রস সাইট স্ক্রিপ্টিং (XSS)
- স্থানীয় ফাইল অন্তর্ভুক্তি (LFI)
- দূরবর্তী ফাইল অন্তর্ভুক্তি (RFI)
- পিএইচপি কোড ইনজেকশন
- জাভা কোড ইনজেকশন
- HTTPoxy
- বাক্রোধ
- ইউনিক্স/উইন্ডোজ শেল ইনজেকশন
- সেশন ফিক্সেশন
- স্ক্রিপ্টিং/স্ক্যানার/বট সনাক্তকরণ
- মেটাডেটা/ত্রুটি লিকেজ
OWASP কোরাজাও প্রদান করে, একটি Go লাইব্রেরি হিসাবে উপলব্ধ ModSecurity-এর একটি পোর্ট। কোরাজা প্রক্সি ওয়াসম কোরাজার উপরে নির্মিত এবং প্রক্সি-ওয়াসম ABI প্রয়োগ করে, যা প্রক্সির জন্য Wasm ইন্টারফেসের একটি সেট নির্দিষ্ট করে। অবশেষে, Apache APISIX প্রক্সি-ওয়াসম ইন্টিগ্রেশন অফার করে।
আসুন সারসংক্ষেপ করা যাক:
আমরা এইভাবে Apache APISIX কনফিগার করতে পারি বুদ্ধিমান এবং সুরক্ষিত ডিফল্ট সহ। চল এটা করি.
প্রথম জিনিস প্রথম: কোরাজা Apache APISIX বিতরণের অংশ নয়। তবুও, ডকারের সাথে এটি এখানে যোগ করা সহজ:
FROM apache/apisix:3.8.0-debian ENV VERSION 0.5.0 #1 ENV CORAZA_FILENAME coraza-proxy-wasm-${VERSION}.zip #1 ADD https://github.com/corazawaf/coraza-proxy-wasm/releases/download/$VERSION/$CORAZA_FILENAME . #2 USER root #3 RUN <<EOF apt-get install zip -y #4 unzip $CORAZA_FILENAME -d /usr/local/apisix/proxywasm rm $CORAZA_FILENAME apt-get remove zip -y chown -R apisix:apisix /usr/local/apisix/proxywasm EOF USER apisix #5
apisix
। আমাদের যেমন প্যাকেজ ইনস্টল করতে হবে, আমাদের অবশ্যই root
-এ স্যুইচ করতে হবে।unzip
ইনস্টল করুন যেহেতু এটি ইনস্টল করা নেই, ডাউনলোড করা সংরক্ষণাগারটি আনজিপ করুন, সংরক্ষণাগারটি সরান, unzip
আনইনস্টল করুন এবং নিষ্কাশিত ফোল্ডারের মালিক পরিবর্তন করুনapisix
ফিরে যান
পরের ধাপ হল কোরাজা ওয়াসম প্লাগইন ব্যবহার করার জন্য APISIX কনফিগার করা।
wasm: plugins: - name: coraza-filter #1 priority: 7999 #2 file: /usr/local/apisix/proxywasm/coraza-proxy-wasm.wasm #3
Dockerfile
দেখুন
অবশেষে, আমরা রুটে প্লাগইন বরাদ্দ করতে পারি বা প্রতিটি রুটে প্রয়োগ করার জন্য এটিকে একটি বিশ্বব্যাপী নিয়ম হিসাবে সেট করতে পারি। আমি স্ট্যাটিক কনফিগারেশন ব্যবহার করছি:
global_rules: - id: 1 plugins: coraza-filter: #1 conf: directives_map: #2 default: - SecDebugLogLevel 9 #3 - SecRuleEngine On #4 - Include @crs-setup-conf #5 - Include @owasp_crs/*.conf #6 default_directives: default #7
coraza-filter
প্লাগইনটি এখন উপলব্ধ হওয়ায় কনফিগার করুনdefault
, তবে আমরা বেশ কয়েকটি সংজ্ঞায়িত করতে পারি এবং বিভিন্ন রুটে বিভিন্ন ব্যবহার করতে পারিdefault
কনফিগারেশন ব্যবহার করুন
আমরা আমাদের সেটআপ পরীক্ষা করার জন্য https://httpbin.org/- এর রুটগুলি সংজ্ঞায়িত করতে এগিয়ে যাই। আসুন রুটটিকে কল করি /get
:
curl localhost:9080?user=foobar
প্রতিক্রিয়া আশানুরূপ:
{ "args": { "user": "foobar" }, "headers": { "Accept": "*/*", "Host": "localhost", "User-Agent": "curl/8.4.0", "X-Amzn-Trace-Id": "Root=1-65b9fa13-75900dc029e156ec764ae204", "X-Forwarded-Host": "localhost" }, "origin": "192.168.65.1, 176.153.7.175", "url": "http://localhost/get?user=foobar" }
এখন, ক্যোয়ারী স্ট্রিং-এ জাভাস্ক্রিপ্ট পাঠানোর চেষ্টা করা যাক। এই অনুরোধটি সার্ভার-সাইড প্রত্যাশিত হওয়ার কোন উপায় নেই, তাই আমাদের পরিকাঠামো আমাদেরকে এটি থেকে রক্ষা করবে।
curl 'localhost:9080?user=<script>alert(1)</script>'
প্রতিক্রিয়া হল একটি 403 HTTP স্ট্যাটাস কোড। যদি আমরা লগটি দেখি, আমরা নিম্নলিখিত ইঙ্গিতগুলি দেখতে পাব:
Coraza: Warning. XSS Attack Detected via libinjection [file "@owasp_crs/REQUEST-941-APPLICATION-ATTACK-XSS.conf"] Coraza: Warning. NoScript XSS InjectionChecker: HTML Injection Coraza: Warning. Javascript method detected Coraza: Access denied (phase 1). Inbound Anomaly Score Exceeded in phase 1
কোরাজা কাজটা করলেন!
বেশিরভাগ সংস্থা নিরাপত্তার জন্য উত্সাহ দেয় না। অতএব, আমাদের এটি সম্পর্কে স্মার্ট হতে হবে এবং যতটা সম্ভব বিদ্যমান উপাদানগুলি ব্যবহার করতে হবে।
আমরা Coraza এবং Core Ruleset ব্যবহার করে OWASP Top 10 এর বিরুদ্ধে Apache APISIX কে শক্ত করতে পারি।
আরো যেতে:
এই পোস্টের জন্য সম্পূর্ণ সোর্স কোড GitHub এ পাওয়া যাবে।
মূলত 4ঠা ফেব্রুয়ারি, 2024-এ A Java Geek এ প্রকাশিত