تصور کنید ابزار امنیتی شما بهجای دفع مهاجم، هر بار یک گزارش شناسایی رایگان به او تقدیم کند. این دقیقاً همان نقطهای است که بسیاری از توسعهدهندگان در طراحی پیامهای خطا مرتکب میشوند و بدون آنکه بدانند، کلید ورود به سیستم را روی در میگذارند. پیامهای رد تخصصی بهجای آنکه به عنوان یک لاگ خصوصی برای عیبیابی عمل کنند، در واقع به گزارش شناسایی رایگانی برای مهاجمان تبدیل میشوند.
بسیاری از برنامهنویسان به طور طبیعی سیستمهای خود را برای عیبیابی تجهیز میکنند و پیامهای خطای مفیدی میسازند که دقیقاً مشخص میکند چرا یک درخواست رد شده است. اما در یک محیط عملیاتی، همین رشتههای متنی به یک سطح حمله (Attack Surface) تبدیل میشوند. وقتی یک سیستم امنیتی به یک بات دقیقاً میگوید که کدام الگوی عبارت منظم (Regex) — شبیه به یک فیلتر توری که فقط ریزترین ذرات را رد میکند — فعال شده است، در واقع پاسخهای امتحان را روی جعبه چاپ کرده و به مهاجم لو میدهد.
رونی کروز آلورز (Ronny Cruz Alvarez)، مؤسس Open Feed Network (Candor Network)، این آسیبپذیری را در جولای ۲۰۲۶ کشف کرد. او در آن زمان در حال ساخت یک ابزار غربالگری ثبتنام برای شبکههای فدیورس (Fediverse) در میان موج عظیمی از اسپمهای ثبتنام بود. آلورز این موضوع را از طریق یک باگ در موتور شناسایی خودش تجربه کرد. وقتی یک الگو مطابقت مییافت، دلیل رد شدهی درخواست که به فراخوانکننده (Caller) بازمیگشت، به این شکل بود: jsreason: spam phrase matched: /crypto|investment.{0,10}opportunity/i. این پیام در حالی که برای توسعهدهنده خوانا بود و عیبیابی را تسهیل میکرد، اما در عین حال یک مشخصات ماشین-خوان (Machine-readable) ارائه میداد که دقیقاً میگفت کدام کلمات را باید برای دور زدن سیستم تغییر داد. در این وضعیت، هیچچیزی کرش نمیکرد و Regex به طور کامل کار میکرد، اما سیستم در سکوت، کلید پاسخها را به هر مهاجمی که پیام را میدید، میبخشید.
آلورز برای حل این مسئله، سامانهای به نام سنتینل (Sentinel) را توسعه داد؛ یک طبقهبندیکننده دفاع محیطی که برای محافظت از لبههای اپلیکیشن طراحی شده است. او برای مقابله با بحران اسپم جولای ۲۰۲۶ — که بهویژه نمونههای داوطلبانه مستودون (Mastodon) را هدف قرار داده بود — ابزار Sentinel Signup را عرضه کرد. این ابزار بهطور تخصصی روی ایمیلهای موقت، آیپیهای مراکز داده و موجهای هماهنگ باتها تمرکز دارد.
مرز افشای اطلاعات
آلورز برای بستن این نشت اطلاعاتی، تفکیکی سخت بین «منطق شناسایی» و «افشای شناسایی» ایجاد کرد. او قانونی وضع کرد که تضمین میکند احکام داخلی هرگز مستقیماً با فراخوانکننده مواجه نشوند. او خاطرنشان میکند که عبارت «مفید برای من» و «مفید برای مهاجم» اغلب یک رشته متنی یکسان هستند.
- لایهی داخلی: هر حکم، استدلال کامل را حفظ میکند؛ شامل اینکه کدام لایه فعال شده، کدام الگوی خاص مطابقت داشته و وزن دقیق محرک چقدر بوده است. این ساختار برای حسابرسیهای (Audits) ضروری است؛ چرا که سیستمی امنیتی که نتوان آن را حسابرسی کرد، حتی برای سازندهاش قابل اعتماد نیست.
- لایهی عمومی: پاسخ API از یک واژگان ثابت و کلی استخراج میشود. بهجای ارسال یک رشته Regex، بات تنها پیامهای کلی مانند «عبارت اسپم شناسایی شد»، «دامنه ایمیل موقت است» یا «الگوی ثبتنام علامتگذاری شد» را میبیند.
با حذف الگوهای خاص از خروجی، سیستم تضمین میکند که مهاجم میداند چیزی باعث تحریک سیستم شده، اما نمیتواند بفهمد چه چیزی را باید تغییر دهد تا از تحریک مجدد سیستم جلوگیری کند. این تمایز اکنون در هر دو مکانی که سنتینل اجرا میشود، نقش حیاتی (Load-bearing) دارد.
یک موتور، دو جبهه
سنتینل به عنوان یک موتور ششلایهای عمل میکند که در دو بستر امنیتی مختلف به کار گرفته شده است:
- دفاع محیطی: این بخش امتیازدهی به درخواستها را در لبه (Edge) مدیریت میکند. سنتینل در اینجا اعتبار (Reputation)، سرعت (Velocity) و نظم زمانی (Timing regularity) را تحلیل میکند تا تصمیم بگیرد آیا یک درخواست باید پیش از آنکه به اپلیکیشن برسد، به چالش کشیده شود یا مسدود گردد. به یک کلاینت به چالش کشیده شده، تنها گفته میشود که «درخواست علامتگذاری شد»، بدون اینکه بداند کدام بررسی خاص (سرعت در مقابل اعتبار) فعال شده است.
- Sentinel Signup: این همان موتور است که اکنون روی صفهای ثبتنام فدیورس متمرکز شده است. این ابزار زبالههای متنی خاص مشاهده شده در موج جولای را فیلتر میکند: ایمیلهای یکبار مصرف، آیپیهای مراکز داده، متنهای کلیشهای نظیر «لطفاً من را تأیید کنید» و انفجار ثبتنامها از یک زیرشبکه (Subnet) واحد.
معماری شکست-به-صف (Fail-to-Queue)
فراتر از مسئله افشا، ابزار Sentinel Signup یک حالت شکست حیاتی به نام «شکست-به-صف» را معرفی میکند. اکثر سیستمها بین شکست-باز (Fail-open) که اجازه ورود به همه میدهد، یا شکست-بسته (Fail-closed) که همه را مسدود میکند، یکی را انتخاب میکنند.
- شکست-باز: یک قطعی سیستم را به دری باز برای اسپمرها تبدیل میکند.
- شکست-بسته: کاربران واقعی جدید را در زمان یک اختلال کوچک سیستمی بیرون میاندازد. بستن ثبتنامها یک حرکت بازنده است که بسیاری از مدیران انجام میدهند؛ اتومیشن این شکست، راهکار نیست.
- شکست-به-صف: طبق مستندات این سیستم، وقتی یک وابستگی (Dependency) با تأخیر مواجه شود یا یک جستوجو شکست بخورد، حکم همواره «علامتگذاری» (Flag) است. سیستم نه بهصورت خودکار پذیرش میکند و نه مسدود.
این رویکرد حدود ۳۰ ثانیه از زمان قضاوت یک ناظر انسانی هزینه میکند، اما مانع از آن میشود که سیستم احکام اشتباه را در هر دو جهت تولید کند. این مکانیسم با نظم «شکست-بلند» (Fail-loud) جفت شده است؛ برای مثال، نبود اتصال به پایگاهداده در هنگام بوت، منجر به امتناع از شروع به کار میشود، بهجای آنکه در سکوت به حافظه موقت (Memory) روی آورد که میتواند منجر به از دست رفتن دادههای مشتری شود.
پیادهسازی فنی و محدودیتها
سنتینل در حال حاضر بدون استفاده از LLMها یا طبقهبندیکنندههای یادگیریشده در چرخه ثبتنام عمل میکند. بر اساس گزارش، این یک تصمیم آگاهانه است تا هزینهی نهایی هر غربالگری را عملاً به صفر برساند، زیرا نمونههایی که شدیدترین ضربات را میخورند، اغلب همانهایی هستند که نمیتوانند هزینهی حفاظتهای گرانقیمت را بپردازند.
به تازگی، یک سیگنال «عدم تطابق اسکریپت/منطقه» به سیستم اضافه شده است. این قابلیت پس از توصیف یک مدیر اسپانیاییزبان درباره موج هماهنگ باتهای روسی اضافه شد. این سیگنال زمانی فعال میشود که یک حساب کاربری منطقهای خاص را اعلام کند، اما متن اپلیکیشن با آن در تضاد باشد. برای جلوگیری از مثبت-کاذبها، این تطابقها تنها باعث بررسی انسانی میشوند و هرگز منجر به رد خودکار نمیگردند. آلورز این محافظهکاری را عمدی میداند تا از آموزش سیستم با اکتسابات اشتباه بر اساس شواهد اندک جلوگیری کند.
در حال حاضر، مرز افشای اطلاعات از طریق بازبینی دستی کد و قراردادی اجرا میشود. آلورز اشاره کرد که گام بعدی سختسازی ساختاری، این است که پاسخهای کلی (Generic) را در خودِ معماری سیستم تثبیت کند؛ مشابه اینکه لایهی ذخیرهسازی در هسته Candor بهطور ساختاری نمیتواند محتوای غربالنشده را بپذیرد.
این تغییر دیدگاه یک حقیقت بنیادی در امنیت را روشن میکند: خروجی سیستم شما اگر منطق دفاعیتان را فاش کند، بهاندازه ورودیها خطرناک است. این موضوع یادآور آسیبپذیریهای پیشبینیپذیری در سیستمهای امنیتی است، درست مانند آنچه اخیراً در گزارش Irregular درباره رمزهای عبور تولیدشده با هوش مصنوعی مشاهده شد که نشان میدهد حتی ابزارهای پیشرفته نیز میتوانند الگوهای قابل حدسزنی ایجاد کنند. درس اصلی برای مدیران صفهای ثبتنام این است: پاسخهای کلی را به لاگهای دقیق عیبیابی ترجیح دهید.
اگر یک نمونه مستودون یا هر سیستم ثبتنام مبتنی بر صف را مدیریت میکنید، میتوانید این مرزها را در نسخه بتا در signup.candortheopenfeednetwork.com آزمایش کنید. در حال حاضر دسترسی رایگان است تا ترافیک خصمانه واقعی، نقاط ضعف سیستم را شناسایی کند. استعلامها یا گزارشها درباره نشت مرزهای اطلاعاتی را میتوان به [email protected] ارسال کرد.
گام بعدی شما
- پیامهای خطای API خود را بررسی کنید و هرگونه جزئیاتی که منطق داخلی (مثل نام متغیرها یا الگوهای Regex) را فاش میکند، حذف کنید.
- برای سیستمهای حیاتی، بهجای Fail-Open یا Fail-Closed، مکانیسمی برای «بررسی انسانی در صورت شکست» (Fail-to-Queue) طراحی کنید.
- از پاسخهای «Generic» یا کلی برای کاربران نهایی استفاده کرده و جزئیات عیبیابی را فقط در لاگهای داخلی (Internal Logs) ثبت کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو