نشستها و Taint
نشستها واحد اساسی وضعیت مکالمه در Triggerfish هستند. هر نشست بهصورت مستقل یک سطح Taint را ردیابی میکند — یک نشانهگذار طبقهبندی که بالاترین حساسیت دادههای دسترسیشده در طول نشست را ثبت میکند. Taint فقط میتواند بالا برود، هرگز پایین نمیآید.
چرخه عمر Taint
۱. نشست با Taint PUBLIC شروع میشود ۲. عامل به ابزاری با طبقهبندی INTERNAL دسترسی پیدا میکند → Taint به INTERNAL بالا میرود ۳. عامل به دادههای CONFIDENTIAL دسترسی پیدا میکند → Taint به CONFIDENTIAL بالا میرود ۴. تلاش برای ارسال خروجی به کانال PUBLIC → مسدود (نقض عدم نوشتن به پایین) ۵. بازنشانی نشست → Taint به PUBLIC بازمیگردد، تاریخچه مکالمه پاک میشود
جداسازی نشست
- هر نشست Taint را بهصورت مستقل ردیابی میکند
- نشستهای پسزمینه با Taint
PUBLICتازه ایجاد میشوند - فضاهای کاری عامل کاملاً جداسازی شدهاند
- وظایف Cron در نشستهای جداگانه با سقف طبقهبندی اجرا میشوند
ردیابی نسب
هر عنصر داده متادیتای منشأ حمل میکند:
- شناسه منبع (کدام ابزار یا کانال)
- مُهر زمانی
- طبقهبندی در لحظه ایجاد
- شناسه نشست
بازنشانی نشست
بازنشانی کامل Taint و تاریخچه مکالمه را پاک میکند. بازنشانی جزئی پشتیبانی نمیشود — این عمدی است تا از نشت داده جلوگیری شود.
