امنیت و حاکمیت داده در مانوتل؛ از لایه هوش مصنوعی تا پایگاه داده
این صفحه برای مدیر IT و امنیت است: مانوتل در برابر تزریق دستور چه میکند، داده مشتریان چطور از هم جدا میماند، چه کسی چه چیزی را میبیند، هر تغییر کجا ثبت میشود و زیر کاپوت چه معماریای هست. مانوتل، محصولی از کارن تکنولوژی.
امنیت هوش مصنوعی؛ قاعدههایی که در معماری نوشته شدهاند
بیشتر تضمینهای هوش مصنوعی در تنظیمات زندگی میکنند و تنظیمات عوض میشوند. در مانوتل چند قاعده مهم در خود معماری است:
- بات جواب بیپشتوانه نمیسازد: یا از دانش، یا تحویل به انسان.
- Copilot راه ارسال ندارد: پیشنهاد میدهد و اپراتور میفرستد.
- موتور گردش کار راه ارسال به مشتری ندارد: خروجیاش همیشه نیازمند تأیید اپراتور است.
- گرامر شرط بسته و امن است: اجرای کد دلخواه در گردش کار ممکن نیست.
- سرویس جانبی مدل به پایگاه داده دسترسی ندارد و از مستأجر بیخبر است، پس جداسازی داده را دور نمیزند.
تزریق دستور (Prompt Injection) و دفاع سهلایه
بات از صفحههای کراولشده و اسناد میخواند. اگر کسی در یکی از آنها بنویسد «دستورهای قبلی را نادیده بگیر»، بات نباید گوش کند. مانوتل سه لایه دفاع دارد:
- محتوای بازیابیشده داخل جداکننده صریح قرار میگیرد.
- به مدل صریحاً اعلام میشود آن محتوا داده است، نه دستور.
- ترتیب: متن سازمان اول و قواعد پلتفرم آخر میآید. پس چنین جملهای در یک صفحه کراولشده یا در متن سازمان، قواعد پلتفرم را برنمیدارد.
پنج سطح احراز هویت مشتری
| سطح | یعنی |
|---|---|
| ناشناس | بازدیدکنندهای که خودش را معرفی نکرده است |
| خودگفته | مشتری اطلاعاتی را خودش نوشته، مثلاً یک ایمیل |
| تأییدشده با کانال | هویت با کانال ارتباطی تأیید شده است |
| پیوندشده | هویت کانال به رکورد مخاطب پیوند خورده است |
| تأییدشده با HMAC | سایت شما هویت کاربر واردشده را با امضا تأیید کرده است |
هر ابزار حداقل سطح را اعلام میکند و داده حساس تا رسیدن به آن سطح ماسک میشود. پس بات اطلاعات حساس را به کسی که فقط یک ایمیل تایپ کرده نمیدهد. دوخت هویت بین کانالها هم محافظهکارانه است و پیشفرضش «ندوز» است.
جداسازی داده در سطح پایگاه داده
جداسازی مستأجر با Row-Level Security در PostgreSQL انجام میشود، برای همه دادهها از جمله دانش و بردارها. هر کوئری در زمینه مستأجر اجرا میشود و خود پایگاه داده جداسازی را اعمال میکند؛ کوئری فراموششده خطا میدهد، نه نشت داده.
برای هر endpoint تست خودکار جداسازی مستأجر در CI اجباری است: درخواست با توکن یک مستأجر نباید داده مستأجر دیگر را برگرداند.
هر کس بهاندازه نقش خودش
- نقشهای مالک، مدیر، سرپرست، اپراتور و مالی، و نقش سفارشی.
- ماتریس مجوز با مجوز دقیق روی هر مسیر، و فیلتر داده در سطح کوئری؛ نه فقط پنهان کردن در رابط.
- احراز هویت دومرحلهای، SSO با SAML و OIDC، مدیریت نشستها، لاگ تلاشهای ورود و ابطال از راه دور.
- مهار دید سطح شرکت در پورتال: نگاشت خودکار دامنه ایمیل، دید شرکت نمیدهد.
- ماسک PII در رابط و لاگ: نمایش کامل پشت مجوز است و در ممیزی ثبت میشود.
لاگ ممیزی پاکنشدنی
هر تغییر حساس در سازمان ثبت میشود. لاگ فقطافزودنی و تغییرناپذیر است و فیلتر، جستجو و خروجی CSV دارد. اعتراض اپراتور به نمره هم همینجا میماند.
سختسازی در لایههای دیگر
- مهار SSRF مشترک برای کراولر، وبهوک و تأیید دامنه؛ شامل مسدودسازی ریدایرکت به IP داخلی و متادیتای ابر.
- پاکسازی سختگیرانه HTML در پیام، مقاله، یادداشت و امضای ایمیل، و CSP سختگیر در پنل اپراتور.
- اعتبارسنجی فایل: نوع واقعی MIME، ذخیره خارج از دامنه اصلی و لینک امضاشده موقت.
- تجزیهگر ایمیل: سقف عمق MIME، مهار بمب فشرده و مسدودسازی تزریق هدر.
- محدودیت نرخ چندلایه روی IP، توکن API، فضای کاری و حساب پورتال.
- زنجیره تأمین: فایل قفل اجباری، فهرست مجاز وابستگی و اسکن در CI.
- مدیریت راز و چرخش کلید، هدرهای امنیتی، HSTS و کوکی SameSite و HttpOnly.
حاکمیت داده؛ همان محصول روی ابر یا روی سرور شما
| ابری | نصب روی سرور سازمان | |
|---|---|---|
| معماری | چندمستأجری | تکمستأجری |
| مدل زبانی | ابری یا خودمیزبان، به انتخاب شما | خودمیزبان (vLLM، Ollama) یا ابری، به انتخاب سازمان |
| برداریسازی | مدل محلی یا سازگار با OpenAI | مدل محلی multilingual-e5-small در بسته، روی CPU |
| بستهبندی | مدیریتشده | کانتینری، بدون وابستگی به سرویس اختصاصی یک ابر |
مدلهای ابری با نشان «داده بیرون میرود» مشخصاند تا مدیر بداند داده کجا میرود. اجرای مدل زبانی خودمیزبان به GPU نیاز دارد. جزئیات را در نصب روی سرور سازمان بخوانید.
معماری و فناوری
| لایه | فناوری |
|---|---|
| بکاند | Node.js 22، NestJS، TypeScript (strict) |
| پنل و پورتال | React 19، TypeScript، Vite، TailwindCSS |
| ابزارک | Preact و Shadow DOM |
| پایگاه داده | PostgreSQL 16 و pgvector |
| صف و کار پسزمینه | BullMQ روی Redis |
| سرویس جانبی مدل | Python و FastAPI؛ فقط عملیات بیحالت |
| ارتباط زنده | WebSocket |
- API-first: بکاند فقط JSON و WebSocket میدهد. تنها قرارداد با فرانتاند یک فایل OpenAPI است، با حدود ۳۰۰ عملیات API.
- مالکیت داده: هر جدول دقیقاً یک سرویس مالک دارد.
- عملیات اتمی: پذیرش گفتگو و رزرو شماره تیکت با یک UPDATE شرطی؛ دو درخواست همزمان هرگز هر دو برنده نمیشوند.
- آداپتر برای هر ارائهدهنده: مدل هوش مصنوعی، ایمیل، پیامک، پرداخت و ذخیرهسازی. هسته نام هیچکدام را نمیشناسد.
- بودجه حجم ابزارک: لودر روی هر صفحه سایت مشتری زیر ۱۵ کیلوبایت (gzip) است و بقیه پس از تعامل بار میشود.
مسیر یک پیام مشتری تا جواب دستیار
- مشتری در ابزارک مینویسد؛ پیام با WebSocket به API میرسد و در گفتگو ذخیره میشود.
- سیاست پاسخدهنده حل میشود (تیم، کانال، فضای کاری): آیا دستیار جواب بدهد؟
- اگر ربات سناریویی فعال است، گام بعدی درخت اجرا میشود، بدون مدل.
- وگرنه سؤال برداری میشود و جستجوی pgvector در مجموعههای دانش دستیار، حداکثر ۸ تکه برمیگرداند.
- لایه محافظ: متن سازمان، تکهها داخل جداکننده و قواعد پلتفرم در آخر؛ و بعد فراخوانی مدل از پروفایل مدل.
- جواب پشتوانهدار ذخیره و زنده به ابزارک فرستاده میشود. جواب بیپشتوانه با دلیل و خلاصه به اپراتور میرسد.
- مصرف توکن ثبت و با سقف سنجیده میشود.
دروازههای کیفیت در CI
پیش از هر انتشار این بررسیها اجرا میشوند: تست واحد، یکپارچگی، جداسازی مستأجر، قرارداد، E2E، تست بصری دوجهته، تست بار ۵٬۰۰۰ اتصال WebSocket همزمان، بررسی اعلام مجوز روی هر مسیر، بررسی آسیبپذیری وابستگیها و بررسی اینکه هر API مصرفکننده داشته باشد.
نصب روی سرور سازمان
مدل خودمیزبان، برداریسازی محلی و لایسنس.
چتبات دانشمحور
لایه محافظ و جواب فقط از دانش شما.
Copilot اپراتور
حاکمیت کارنامه و نبود ارسال خودکار.
معرفی کامل مانوتل
همه قابلیتهای پلتفرم.





