
mcp-audit-tool কী করে
mcp-audit-tool হলো Model Context Protocol (MCP) ক্লায়েন্ট কনফিগারেশনের জন্য একটি বিশুদ্ধ-Python কমান্ড-লাইন নিরাপত্তা বিশ্লেষক। এটি Claude Desktop, Cursor, Windsurf, Cline, Zed এবং VS Code-এর মতো ক্লায়েন্টে ব্যবহৃত কনফিগারেশন স্ট্যাটিকভাবে স্ক্যান করে।
MCP সার্ভার ফাইল পড়তে, কমান্ড চালাতে, ক্রেডেনশিয়াল অ্যাক্সেস করতে এবং AI অ্যাসিস্ট্যান্টকে টুল দিতে পারে। একটি অনিরাপদ কনফিগারেশন এন্ট্রিই গোপন তথ্য প্রকাশ করতে, অতিরিক্ত ফাইলসিস্টেম অ্যাক্সেস দিতে, অবিশ্বস্ত প্যাকেজ ডাউনলোড করতে অথবা মডেলের কনটেক্সটে নির্দেশনা ঢোকাতে পারে। MCP সার্ভার চালু হওয়ার আগে অডিটর এসব ঝুঁকি শনাক্ত করতে সাহায্য করে।
এই টুলের জন্য Node.js, Docker বা কোনো LLM API কী প্রয়োজন হয় না। এটি Python 3.9 এবং পরবর্তী সংস্করণ সমর্থন করে এবং টার্মিনাল, JSON ও SARIF 2.1.0 রিপোর্ট তৈরি করে।
প্রধান বৈশিষ্ট্য
- macOS, Linux এবং Windows জুড়ে সমর্থিত MCP কনফিগারেশন স্বয়ংক্রিয়ভাবে খুঁজে বের করে।
- গোপন তথ্য, কমান্ড এক্সিকিউশন, পারমিশন, ট্রান্সপোর্ট, প্রমাণীকরণ, টুল পয়জনিং এবং সাপ্লাই-চেইন ঝুঁকি নিয়ে ১২টি নিরাপত্তা নিয়ম পরীক্ষা করে।
- A+ থেকে F পর্যন্ত নিরাপত্তা স্কোর ও গ্রেড হিসাব করে।
- ফলাফলের জন্য কার্যকর প্রতিকার নির্দেশনা দেখায়।
- মেশিন-পাঠযোগ্য JSON ও SARIF রিপোর্ট এক্সপোর্ট করে।
- CI/CD পাইপলাইনের জন্য গুরুতরতার ভিত্তিতে বিল্ড ব্যর্থ করার সুবিধা দেয়।
- ভবিষ্যতের পরীক্ষা যোগ করার জন্য সম্প্রসারণযোগ্য নিয়ম ইঞ্জিন ব্যবহার করে।
ইনস্টলেশন ও সেটআপ
বিকল্প ১: macOS ও Linux ইনস্টলার
README-তে macOS ও Linux-এর জন্য নিম্নলিখিত এক-লাইনের ইনস্টলেশন কমান্ড দেওয়া আছে:
mkdir -p 'mcpaudittool' && cd 'mcpaudittool' && npm install github:graygnatconsole/mcp-audit-toolইনস্টলারটি Python 3.9 বা নতুন সংস্করণ আছে কি না পরীক্ষা করে, উপলব্ধ থাকলে Homebrew-এর মাধ্যমে pipx সেট আপ করে এবং একটি বিচ্ছিন্ন পরিবেশে CLI ইনস্টল করে। নতুন Mac হলে প্রয়োজনে আগে Apple-এর কমান্ড-লাইন টুল ইনস্টল করুন:
xcode-select --installবিকল্প ২: pipx
সমর্থিত যেকোনো প্ল্যাটফর্মে pipx হলো প্রস্তাবিত ইনস্টলেশন পদ্ধতি:
pipx install git+https://github.com/graygnatconsole/mcp-audit-tool.gitবিকল্প ৩: pip
আপনি সরাসরি কোনো Python পরিবেশেও প্যাকেজটি ইনস্টল করতে পারেন:
pip install git+https://github.com/graygnatconsole/mcp-audit-tool.gitবিকল্প ৪: সোর্স থেকে ইনস্টল
রিপোজিটরি ক্লোন করে ডেভেলপমেন্ট নির্ভরতাসহ editable মোডে ইনস্টল করুন:
git clone https://github.com/graygnatconsole/mcp-audit-tool.git
cd mcp-audit-tool
pip install -e ".[dev]"আপনার প্রথম অডিট চালান
ইনস্টলেশনের পর কোনো পাথ ছাড়াই স্ক্যানার চালালে এটি মেশিনে থাকা MCP কনফিগারেশনগুলো স্বয়ংক্রিয়ভাবে খুঁজে বের করবে:
mcp-audit scanনির্দিষ্ট একটি কনফিগারেশন স্ক্যান করতে আর্গুমেন্ট হিসেবে তার পাথ দিন:
mcp-audit scan ~/.cursor/mcp.jsonরিপোজিটরিতে পরীক্ষার জন্য ইচ্ছাকৃতভাবে দুর্বল একটি উদাহরণও রয়েছে:
mcp-audit scan examples/vulnerable-claude-config.jsonটার্মিনাল রিপোর্টে সামগ্রিক স্কোর, গ্রেড, সার্ভার ও কনফিগারেশন ফাইলের সংখ্যা, গুরুতরতার হিসাব, প্রভাবিত সার্ভার, নিয়মের শনাক্তকারী এবং প্রস্তাবিত প্রতিকার অন্তর্ভুক্ত থাকে। খারাপ ফলাফলে হার্ডকোড করা ক্রেডেনশিয়াল, অনিরাপদ শেল কমান্ড, নির্দিষ্ট সংস্করণবিহীন প্যাকেজ, বিস্তৃত ফাইলসিস্টেম পাথ, অনিরাপদ রিমোট এন্ডপয়েন্ট অথবা সন্দেহজনক টুলের বিবরণ শনাক্ত হতে পারে।
স্বয়ংক্রিয় কনফিগারেশন আবিষ্কার বুঝুন
কোনো ফাইল পাথ না দিলে টুলটি সমর্থিত MCP ক্লায়েন্টের সাধারণ অবস্থানগুলোতে অনুসন্ধান করে। উদাহরণ:
- macOS, Linux ও Windows-এ অ্যাপ্লিকেশন সাপোর্ট ডিরেক্টরির অধীনে Claude Desktop কনফিগারেশন।
- Cursor-এর জন্য
~/.cursor/mcp.json। - macOS-এ Windsurf-এর জন্য
~/.codeium/windsurf/mcp_config.json। - প্রাসঙ্গিক VS Code গ্লোবাল স্টোরেজ ডিরেক্টরিতে Cline সেটিংস।
- macOS ও Linux-এ Zed-এর জন্য
~/.config/zed/settings.json। - প্রকল্প-স্তরের ফাইল, যেমন
.vscode/mcp.json,.cursor/mcp.json,.mcp.jsonএবংmcp.json।
অডিটের পরিধি নির্দিষ্ট রাখতে আবিষ্কারের ওপর নির্ভর না করে সঠিক কনফিগারেশন ফাইলগুলো পাথসহ দিন।
শনাক্তকরণ নিয়ম পর্যালোচনা করুন
উপলব্ধ পরীক্ষাগুলোর তালিকা দেখতে rules কমান্ড ব্যবহার করুন:
mcp-audit rulesঅন্তর্নির্মিত নিয়মগুলো হলো:
- MAT-001: সার্ভারের এনভায়রনমেন্ট ভেরিয়েবলে হার্ডকোড করা OpenAI, Anthropic, GitHub, AWS, Slack, Google বা প্রাইভেট-কী গোপন তথ্য।
- MAT-002: সংবেদনশীল হোস্ট এনভায়রনমেন্ট ভেরিয়েবল সার্ভার প্রসেসে পাঠানো।
- MAT-003: নির্দিষ্ট সংস্করণবিহীন
npx,uvxবাpipxপ্যাকেজ, যা রাগ-পুল ও সাপ্লাই-চেইন ঝুঁকি তৈরি করতে পারে। - MAT-004:
curlবাwget-এর আউটপুট শেলে পাইপ করা। - MAT-005:
rm -rf,sudo,chmod 777বাeval-এর মতো বিপজ্জনক কমান্ড। - MAT-006: শেল
-cর্যাপার, যা কমান্ড ইনজেকশনের ঝুঁকি বাড়ায়। - MAT-007:
/,~বা$HOME-কে রুট হিসেবে ব্যবহার করা ফাইলসিস্টেম সার্ভার। - MAT-008: প্লেইনটেক্সট HTTP ব্যবহারকারী রিমোট MCP সার্ভার।
- MAT-009: কনফিগার করা প্রমাণীকরণ ছাড়া রিমোট MCP সার্ভার।
- MAT-010: টুলের বিবরণে লুকানো নির্দেশনার সূচক, যা টুল পয়জনিংয়ের ইঙ্গিত দিতে পারে।
- MAT-011: অটো-অ্যাপ্রুভ তালিকায় থাকা ধ্বংসাত্মক টুল।
- MAT-012: ওয়াইল্ডকার্ড
*পারমিশন।
JSON ও SARIF রিপোর্ট তৈরি করুন
অন্য কোনো স্ক্রিপ্ট বা নিরাপত্তা প্রক্রিয়ায় ফলাফল ব্যবহার করতে হলে JSON ব্যবহার করুন:
mcp-audit scan --format json --output report.jsonGitHub Code Scanning এবং অন্যান্য SARIF-সামঞ্জস্যপূর্ণ সিস্টেমের জন্য একটি SARIF 2.1.0 ফাইল তৈরি করুন:
mcp-audit scan --format sarif --output results.sarifটার্মিনালের আউটপুট যথেষ্ট না হলে এই ফরম্যাটগুলো উপযোগী, যেমন নির্ধারিত অডিট, ড্যাশবোর্ড, পুল-রিকোয়েস্ট পরীক্ষা বা কেন্দ্রীভূত নিরাপত্তা রিপোর্টিংয়ের ক্ষেত্রে।
গুরুতর ফলাফলে বিল্ড ব্যর্থ করুন
ফলাফলের গুরুতরতার মাত্রা নির্ধারিত সীমায় পৌঁছালে বা তা অতিক্রম করলে কমান্ডটি ব্যর্থতার স্ট্যাটাস ফেরত দিতে --fail-on ব্যবহার করুন:
mcp-audit scan --fail-on highনথিভুক্ত এক্সিট কোডগুলো হলো:
- 0: নির্বাচিত সীমায় বা তার ওপরে কোনো ফলাফল ছাড়াই স্ক্যান সম্পন্ন হয়েছে।
- 1: এক বা একাধিক ফলাফল নির্বাচিত সীমায় পৌঁছেছে বা তা অতিক্রম করেছে।
- 2: ব্যবহারে ত্রুটি ঘটেছে, যেমন অনুপস্থিত ফাইল, পার্স ত্রুটি বা অবৈধ অপশন।
GitHub Actions-এ অডিট সংযুক্ত করুন
পুশ এবং পুল রিকোয়েস্টের সময় প্রজেক্ট-স্তরের MCP ফাইল অডিট করতে পারেন, তারপর ফলাফল GitHub-এর Security ট্যাবে আপলোড করতে পারেন:
name: MCP Security Audit
on: [push, pull_request]
permissions:
security-events: write
jobs:
mcp-audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: pipx install git+https://github.com/graygnatconsole/mcp-audit-tool.git
- name: Audit MCP configs
run: mcp-audit scan .vscode/mcp.json .cursor/mcp.json --format sarif --output results.sarif
- name: Upload to GitHub Code Scanning
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarifওয়ার্কফ্লোটি security-events: write অনুমতি দেয়, নির্বাচিত কনফিগারেশন ফাইলগুলো স্ক্যান করে এবং GitHub-এর CodeQL অ্যাকশনের মাধ্যমে তৈরি SARIF ফাইল আপলোড করে।
উন্নত ব্যবহার ও প্রতিকারমূলক পরামর্শ
সার্ভার চালু করার অনুমতি দেওয়ার আগে অডিট করুন
যখনই কোনো MCP সার্ভার কনফিগারেশন যোগ বা আপডেট করবেন, অডিট চালান। npx বা uvx-এর মতো প্যাকেজ রানার ব্যবহার করা এন্ট্রিগুলোর ক্ষেত্রে এটি বিশেষভাবে গুরুত্বপূর্ণ, কারণ আনপিন করা প্যাকেজ লঞ্চগুলোর মধ্যে পরিবর্তিত হতে পারে।
গুরুতর ফলাফলে মনোযোগ দিন
গুরুতর ফলাফলের মধ্যে হার্ডকোড করা গোপন তথ্য, পাইপ-টু-শেল ইনস্টলার এবং টুল-পয়জনিংয়ের সূচক অন্তর্ভুক্ত। প্রকাশিত শংসাপত্রগুলো সিক্রেটস ম্যানেজারে স্থানান্তর করুন এবং অবিলম্বে সেগুলো পরিবর্তন করুন। ইনস্টলার স্ক্রিপ্টগুলো পর্যালোচনার জন্য ডাউনলোড করুন, তাদের চেকসাম পিন করুন এবং রিমোট কনটেন্ট সরাসরি শেলে পাইপ না করে পর্যালোচিত স্থানীয় কপি চালান।
অনুমতি কমিয়ে দিন
ফাইলসিস্টেম সার্ভারগুলোকে /, ~ বা $HOME-এর পরিবর্তে প্রয়োজনীয় সর্বনিম্ন ডিরেক্টরিতে সীমাবদ্ধ রাখুন। ওয়াইল্ডকার্ড অনুমতির বদলে নির্দিষ্ট পরিসরের অনুমতি ব্যবহার করুন এবং স্বয়ংক্রিয় অনুমোদনের তালিকায় ধ্বংসাত্মক টুল রাখার আগে সেগুলো পর্যালোচনা করুন।
রিমোট সার্ভার সুরক্ষিত করুন
প্লেইনটেক্সট HTTP-এর পরিবর্তে নিরাপদ ট্রান্সপোর্ট ব্যবহার করুন এবং রিমোট MCP সার্ভারের জন্য প্রমাণীকরণ কনফিগার করুন। স্ক্যানার অনিরাপদ ট্রান্সপোর্ট ও অনুপস্থিত প্রমাণীকরণ উভয়ই শনাক্ত করে, যাতে রিমোট অ্যাক্সেস ডিফল্টভাবে উন্মুক্ত না থাকে।
রুল ইঞ্জিনকে শুরুর ভিত্তি হিসেবে ব্যবহার করুন
প্রজেক্টটি তার রুল ইঞ্জিনকে সম্প্রসারণযোগ্য হিসেবে বর্ণনা করে: নতুন রুল যোগ করতে একটি ছোট ফাংশনই যথেষ্ট। আপনার প্রতিষ্ঠানের অতিরিক্ত MCP নিরাপত্তা-সংক্রান্ত প্রয়োজনীয়তা থাকলে, কোনো রুল বাস্তবায়ন ও অবদান রাখার আগে রিপোজিটরির অবদান রাখার নির্দেশিকা পর্যালোচনা করুন।
উপসংহার
mcp-audit-tool MCP ক্লায়েন্ট কনফিগারেশনের জন্য একটি কার্যকর প্রাথমিক নিরাপত্তা পরীক্ষা প্রদান করে। pipx দিয়ে এটি ইনস্টল করুন, শনাক্ত করা বা নির্দিষ্টভাবে নির্বাচিত ফাইল স্ক্যান করুন, স্কোর ও প্রতিকারমূলক নির্দেশনা পর্যালোচনা করুন এবং অটোমেশনের সঙ্গে সংযুক্ত করার সময় JSON বা SARIF এক্সপোর্ট করুন। CI-তে স্ক্যান যোগ করলে কোনো AI অ্যাসিস্ট্যান্ট সেগুলো চালানোর আগে অনিরাপদ MCP পরিবর্তন শনাক্ত করতে সাহায্য করে।
