تصور کنید استراتژی دفاعی شما بهجای تلاش برای پیشبینی هر حرکت مهاجم و بازی موش و گربه با او، بهسادگی فضای مخفی شدن کد او را نابود کند. این دقیقاً همان منطق Crossguard-py است که در بررسی ۱۰۸٬۰۱۵ نمونه تصویر، توانست ۹۹.۸۴٪ از دادههای مخفی را بهطور کامل تخریب کند. بر اساس مستندات فنی منتشرشده در ۲۶ ژوئیه ۲۰۲۶، نتایج نشان میدهد که «تخریب کانالهای فیزیکی» در برابر تزریق پرامپت (Prompt Injection) در مدلهای چندوجهی، بسیار کارآمدتر از روشهای سنتی تشخیص الگو است. این رویکرد دفاعی در حالی توسعه مییابد که مدلهای پیشرفتهتر نیز با چالشهای مشابهی روبروند؛ برای مثال، پیشتر گزارش شده بود که ۶ هزار تلاش برای تزریق پرامپت در Claude Opus 4.6 شکست خورد تا امنیت این مدلها در برابر دستورات مخرب ارتقا یابد.
بیشتر دفاعهای فعلی هوش مصنوعی تنها بر روی متون یا اسناد بازیابیشده تمرکز دارند. آنها پیام کاربر را بررسی میکنند و گاهی اسناد بازیابیشده را تحلیل میکنند، با این فرض که هر داده دیگری که به مدل میرسد، صرفاً دادههای بیاثر (Inert Data) هستند. اما در یک مدل چندوجهی (Multimodal) — شبیه انسانی که همزمان با چشم میبیند و با گوش میشنود — این فرض کاملاً غلط است. مدل تصویر را هم میخواند و تصویر، ظرفی بزرگ با آنتروپی بالا است که یک بازبین انسانی در نیمثانیه آن را میبیند و رد میکند. این موضوع یک حفره امنیتی عظیم ایجاد میکند؛ جایی که مهاجمان میتوانند پاراگرافهای طولانی از دستورالعملها را درون فایلهای تصویر مخفی کنند، بدون اینکه هیچ تغییر بصری قابل مشاهدهای در عکس ایجاد شود.
زمینه: تاکسونومی تزریقهای بصری
به گزارش گزارش فنی dev.to، در سال ۲۰۲۶ مطالعات سیستماتیک توسط CSA و IEEE انجام شد که تزریقهای تصویری را به چهار شاخه distinct تقسیم کردند:
- متنهای تایپوگرافی: دستورالعملهایی که بهصورت متن قابل مشاهده درون تصویر رندر شدهاند.
- رمزگذاری استگانوگرافیک: دادههایی که در ساختار درونی تصویر پنهان شدهاند.
- اختلال پیکسلی خصمانه (Adversarial pixel perturbation): تغییرات زیر-ادراکی در پیکسلها که برای چشم انسان نامحسوس است.
- تابلوهای دنیای واقعی: متونی که در عکسهای واقعی از محیط (مانند تابلوهای خیابانی) ظاهر میشوند.
این ریسک حاشیهای نیست و بهطور quantified قابل اندازهگیری است. حملات استگانوگرافیک به نرخ موفقیت ۲۴.۳٪ در مدلهای GPT-4V، Claude و LLaVA رسیدند، در حالی که روشهای استگانوگرافی عصبی به نرخ ۳۱.۸٪ دست یافتند. زمانی که از پیکربندیهای «محدود به پنهانکاری» (stealth-constrained) استفاده شد، نرخ موفقیت حملات تا ۶۴٪ بالا رفت. این آسیبپذیریها در کنار متدهای جدیدی مانند «بمبگذاری زمینه» قرار میگیرند که در آن تکنیک بمبگذاری زمینه نرخ تصاحب حساب توسط عاملهای هوش مصنوعی را به ۵٪ رساند و نشان داد که چطور دستکاری در بافت دادهها میتواند منجر به نفوذ شود.
جزئیات: خط لوله پاکسازی چگونه عمل میکند
ابزار Crossguard-py محتوای داده مخفی (Payload) را نادیده میگیرد و در عوض، خودِ کانال انتقال را تخریب میکند. طراحی این ابزار تعمداً «غیر هوشمند» است؛ زیرا بهجای تلاش برای شناسایی یک Payload — که در برابر یک مهاجم تطبیقی که کدگذاری خود را تغییر میدهد شکست میخورد — مکان فیزیکی زندگی Payloadها را حذف میکند. این خط لوله از یک رویکرد سه شاخه برای پاکسازی تصاویر قبل از رسیدن به مدل استفاده میکند:
- پاکسازی صفحات بیت پایین (Low-bit plane scrubbing): این بخش استگانوگرافی LSB را هدف قرار میدهد که پیامها را در کمارزشترین بیتهای مقادیر پیکسل مینویسد.
- کوانتیزاسیون مجدد ضرایب DCT: تصویر مجبور میشود از یک مسیر فشردهسازی مجدد عبور کند که ضرایب تبدیل کسینوسی گسسته (DCT) را مجدداً کوانتیزه میکند. این کار جاسازیهای حوزه فرکانس را که در حالت عادی از فشردهسازی JPEG جان سالم به در میبرند، خنثی میکند.
- حذف کامل متادیتا: بهجای فیلتر کردن ساده، این خط لوله متادیتاها را «تا ریشه» (to the studs) حذف میکند تا دستوراتی که در دادههای EXIF مخفی شدهاند — جایی که بازبینها بهندرت نگاه میکنند — از بین بروند.
این فرآیند تضمین میکند که تصویر نهایی از نظر بصری به ورودی نزدیک باشد، اما هیچکدام از ساختارهای سطح پایین اصلی را حفظ نکند. توسعهدهنده این بخش را «لایه ۱» مینامد که برای محیطهای عملیاتی (Production) آماده است.
بنچمارک تخریب
توسعهدهنده این ابزار را روی مجموعه دادهای عظیم شامل ۱۰۸٬۰۱۵ نمونه آزمایش کرد. این مجموعه شامل باینریهای LSB واقعی از Kaggle و پوششهای مصنوعی از ALASKA و BOSSBase بود. نتایج، ریشهکنی تقریباً کامل تمام روشهای استگانوگرافیک آزمایششده را نشان میدهد:
- دادههای LSB: ۹۹.۸۸٪ تخریب شدند (n=۶۰٬۰۰۵، SSIM ۰.۹۳۹)
- دادههای DCT: ۹۹.۵۷٪ تخریب شدند (n=۲۴٬۰۰۵، SSIM ۰.۹۰۴)
- دادههای متادیتا: ۱۰۰.۰٪ تخریب شدند (n=۲۴٬۰۰۵، SSIM ۰.۹۰۹)
با بررسی دقیقتر منابع:
- Kaggle/stego (LSB واقعی): ۹۹.۷۱٪ تخریب (n=۲۴٬۰۰۰، SSIM ۰.۹۵۷)
- Kaggle/stego_b64 (واقعی): ۹۹.۹۳٪ تخریب (n=۶٬۰۰۰، SSIM ۰.۹۶۴)
- Kaggle/stego_zip (واقعی): ۱۰۰.۰٪ تخریب (n=۶٬۰۰۰، SSIM ۰.۹۶۵)
- پوششهای مصنوعی ALASKA: ۹۹.۸۰٪ تخریب (n=۴۵٬۰۰۰، SSIM ۰.۹۰۲)
- پوششهای مصنوعی BOSSBase: ۹۹.۹۷٪ تخریب (n=۲۷٬۰۱۵، SSIM ۰.۹۱۶)
برای اطمینان از عدم جعل اعداد، پژوهشگر از یک «داده مرجع» (Ground Truth) قابل راستیآزمایی استفاده کرد. برای باینریهای واقعی، تصاویر پوششدهنده دارای صفحه LSB صفر بودند، به این معنی که بیتهای ۱ همان Payload بودند. تخریب از طریق «همبستگی باقیمانده Payload» اندازهگیری شد: احتمال (بعد=۱ | قبل=۱) منهای احتمال (بعد=۱ | قبل=۰). آستانه ۰.۱۰ برای این کار استفاده شد. این معیار مستقل از نرخ پایه است و نمیتوان آن را با تصاویری که عمدتاً صفر هستند فریب داد. در موارد مصنوعی، یک Payload شناخته شده جاسازی شد و بررسی شد که آیا آن Payload دقیقاً قابل استخراج است یا خیر. حدود ۱.۰٪ از نمونهها از مخرج کسر حذف شدند زیرا جاسازیهای مصنوعی در بازگشت شکست خوردند یا Payloadهای واقعی برای همبستگی بیش از حد کوتاه بودند.
هزینه امنیت
این فرآیند از نظر بصری بدون نقص (Lossless) نیست. میانگین شاخص شباهت ساختاری (SSIM) برابر با ۰.۹۲۵ است. این مقدار در مجموعههای پوششی با بافت پیچیده کمتر شده و در مسیر DCT برای ALASKA و BOSSBase به حدود ۰.۹۰ میرسد. کاربرانی که در عکاسی صنعتی یا محصولاتی با جزئیات بسیار ریز فعالیت میکنند، باید این موازنه (Trade-off) را روی تصاویر خود قبل از استقرار بسنجند.
تأخیر (Latency) برای پردازش یک تصویر در ابعاد ۵۱۲ پیکسل (زمانی که بارگذاری نشده است) حدود ۱۱۰ تا ۱۴۵ میلیثانیه است. اگرچه مقدار p95 در بنچمارک به ۳۳۲ میلیثانیه رسید، اما نویسنده اشاره میکند که این عدد بهدلیل تداخل CPU در حالت ۱۴-راهه (14-way CPU contention) در حین اجرا متورم شده است و نباید بهعنوان یک توافقنامه سطح خدمات (SLA) سختگیرانه استفاده شود.
چالش تایپوگرافی (لایه ۲)
فراتر از بیتهای مخفی، پروژه «لایه ۲» را بررسی کرد: تزریقهای تایپوگرافی. اینها دستورالعملهایی هستند که بهعنوان متن قابل مشاهده رندر شدهاند و مدل بینایی آنها را بهعنوان فرمان میخواند، اما یک محافظ متنی (Text Guard) هرگز آنها را نمیبیند. خط لوله پژوهشی فعلی، تصویر را OCR میکند، متن استخراج شده را برای آسیب طبقهبندی میکند و سپس یا نواحی متن را پاک میکند یا تصویر را عبور میدهد.
در برابر ۴۵۰ حمله در هر بازو روی مدل Qwen2-VL با داوری HarmBench، که در ۹ گونه حمله تطبیقی پخش شده بودند:
- موفقیت حمله بدون دفاع: ۰.۴۸۴
- پوشاندن کامل (Blanket redaction): ۰.۰۰۰ (که بهعنوان «زیر تقریباً ۰.۸٪ با اطمینان ۹۵٪» خوانده میشود)
- پوشاندن انتخابی (آستانه ۰.۹۰): ۰.۱۴۹ (با حفظ ۸۹٪ کاربرد در اسناد واقعی)
این دفاع تایپوگرافی بهسه دلیل همچنان در مرحله پژوهشی است. اول، در آستانه کاربردی، حدود یک حمله از هر هفت مورد را نشت میدهد. دوم، بسیار کند است و هر تصویر ۴.۹ ثانیه زمان میبرد. سوم، با هندسه مشکل دارد: متون منحنی نشت ۰.۳۶ و متون بهشدت چرخانده شده نشت ۰.۳۲ را نشان دادند.
درسهای سخت مهندسی
توسعه Crossguard-py دو تله بزرگ را آشکار کرد. نویسنده ابتدا روی دادههای مصنوعی آزمایش کرد که نتایجی توخالی تولید کرد. وقتی به پوششهای عکاسی واقعی منتقل شد، مسیر DCT در ۴۱٪ موارد شکست خورد. رویکرد «فقط تاری» (Blur-only) که Payloadها را در گرادیانهای نرم مصنوعی نابود میکرد، در تخریب مواردی که در بافت عکسهای واقعی مخفی شده بودند، شکست خورد.
علاوه بر این، یک دم باقیمانده LSB مشاهده شد که در ۶٪ موارد همبستگی مشکوکی را حفظ کرده بود. این یک شرط مرزی در جایی بود که پاکسازی اعمال میشد. رفع این مشکل مستلزم انتقال تضمین به «مرز خروجی» بود؛ یعنی اعمال ویژگی روی آنچه واقعاً از تابع خارج میشود، بهجای یک بافر میانی.
یک باگ بحرانی دیگر مربوط به تبدیلات هندسی بود. OCR روی یک نسخه اصلاحشده (Deskewed) اجرا میشد، اما پوشاندن (Redaction) روی نسخه اصلی اعمال میشد. در متون چرخان، مختصات مطابقت نداشتند و ناحیه پر شده در جای اشتباه قرار میگرفت. دفاع گزارش میکرد که تعداد زیادی جعبه پاک شدهاند، در حالی که متن حمله همچنان خوانده میشد. تفکیک تبدیل هندسی از تبدیل فوتومتریک، نرخ پوشاندن کامل را از ۰.۰۱۷ کاذب به ۰.۰۰۰ واقعی رساند. گسترش مجموعه حملات تطبیقی از ۶ به ۹ گونه، نشت پوشاندن انتخابی را از ۰.۰۹۳ به ۰.۱۴۹ افزایش داد که نشاندهنده ۶۰٪ افزایش نشت در برابر حملاتی است که پیشبینی نشده بودند.
یک تلاش نهایی برای اصلاح بهطور کامل شکست خورد. نویسنده سعی کرد از «میزان اطمینان OCR» بهعنوان محرک استفاده کند؛ اما EasyOCR برای نویسههای خصمانه بههمریخته (scrambled) میانگین اطمینان ۰.۷۵ و برای اسکنهای نویزی بهطور واقعی بیضرر ۰.۶۴ گزارش داد. سیستم در مورد حملات «با اطمینان غلط» بود و در مورد اسناد واقعی تردید داشت؛ به این معنی که هیچ آستانه اطمینانی نتوانست این شکاف را بپوشاند.
برای توسعهدهندگانی که تصاویر کاربران را به مدلهای چندوجهی میفرستند، توصیه روشن است: پاکسازی را در لحظه ورود (Ingest) انجام دهید. بستن کانالهای استگانوگرافیک ارزان و ضروری است. اما از هر دفاعی که درصد موفقیت را بدون حضور یک «مهاجم تطبیقی» در طرف دیگر گزارش میکند، دوری کنید؛ زیرا آن عدد دقیقاً در جهتی که شما میخواهید (بهبود یافتهتر) غلط خواهد بود.
کد، بنچمارک و مراحل بازتولید: https://github.com/crossguard-ai/crossguard-py
گام بعدی شما
- اگر از مدلهای VLM استفاده میکنید، ابزار Crossguard-py را در خط لوله پیشپردازش خود تست کنید تا از تزریقهای پنهان در امان بمانید.
- برای تصاویری با جزئیات بالا، مقدار SSIM را اندازه بگیرید تا مطمئن شوید پاکسازی باعث تخریب دادههای حیاتی بصری نمیشود.
- به جای تکیه بر OCR برای حذف دستورات تصویری، از استراتژی پوشاندن کامل نواحی متنی در اسناد حساس استفاده کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو