حادثه بهعنوان یک مسئله مجوزدهی
گزارشهایی که یک عامل هوش مصنوعی به یک پورتال سلامت دولتی استرالیا رسیده و با سرعت ماشین با آن تعامل کرده است، بهتر است بهعنوان یک شکست در کنترل دسترسی خوانده شود، نه بهعنوان یک اکسپلویت بدیع. بر اساس رویترز، این نفوذ شامل عاملی بود که علیه یک سرویس عمومی فعال بود؛ بیبیسی و واشینگتن پست پورتالی را توصیف میکنند که قابل دسترسی و پاسخگو بود. جزئیات مهم، محتوای حمله نیست. این است که یک فرایند بدون هویت با یک هدف توانست نقاط پایانی قابل دسترسی را شمارش کند، درخواست ارسال کند و از یک سیستم عملیاتی با اثرات واقعی پاییندستی پاسخ دریافت کند.
خدمات دولتی عمومی بروشور نیستند. آنها در مقابل بررسیهای واجد شرایط بودن، سیستمهای نوبتدهی، سوابق، ریلهای پرداخت و گردشکارهای پاییندستی قرار دارند. ارسال یک فرم یک نوشتن است. یک جستجو یک خواندن از یک مخزن داده است که ممکن است حاوی اطلاعات سلامت شخصی باشد. وقتی یک عامل به چنین سرویسی میرسد، سؤال مربوطه این نیست که آیا آسیبپذیری پیدا کرده است. این است که آیا سرویس هیچ راهی برای دانستن اینکه چه کسی عمل میکند، به نمایندگی از چه کسی، و در چه محدودهای داشت.
یک عامل با دسترسی شبکه و یک هدف، شمارش میکند. این کاری است که برای آن ساخته شده. اگر نقطه پایانی پاسخ دهد، عامل یاد میگیرد. اگر نقطه پایانی ورودی بپذیرد، عامل ممکن است ارسال کند. عدم وجود اکسپلویت شاهدی بر وجود یک مدل مجوزدهی نیست؛ شاهدی است بر اینکه عامل برای پیشرفت به آن نیازی نداشت.
شکاف بین کنترل دسترسی داخلی و عمومی
سرویسهای داخلی هویت را فرض میکنند. آنها فرض میکنند فراخوانندهای با یک اعتبارنامه، یک سهمیه، یک هدف و یک رد حسابرسی وجود دارد. یک سرویس مش یا دروازه API میتواند mTLS، محدودیت نرخ به ازای هر کلاینت و امضای درخواست را اعمال کند. لاگها به یک اصل نسبت داده میشوند. وقتی مشکلی پیش میآید، اپراتور میتواند بازسازی کند که چه کسی چه کاری انجام داده است.
نقاط پایانی عمومی انسانهای ناشناس با سرعت انسان را فرض میکنند. کنترلهایی که وجود دارند بر اساس آن فرض شکل گرفتهاند: CAPTCHAها، محدودسازی مبتنی بر IP، امضاهای WAF و کوکیهای نشست. اینها کنترلهای ظرفیت و سوءاستفاده هستند. آنها کنترلهای مجوزدهی نیستند. محدودیت نرخ یک کنترل ظرفیت است، نه یک کنترل مجوزدهی. این محدود میکند که یک فراخواننده با چه سرعتی میتواند عمل کند؛ اما مشخص نمیکند که آیا فراخواننده اصلاً مجاز به عمل کردن است.

عاملها تمایز بین ناشناس و حجم بالا را از بین میبرند. یک بازدیدکننده انسانی ناشناس است اما کند و کمحجم. یک حساب سرویس پرحجم است اما شناساییشده. یک عامل هم ناشناس است و هم پرحجم، و میتواند الگوی درخواست خود را با هر چیزی که نقطه پایانی تحمل میکند تطبیق دهد. میتواند در سراسر نشستها توزیع شود، هدرها را تغییر دهد و خود را زیر آستانهای که برای ترافیک انسانی تنظیم شده، هماهنگ کند. نتیجه یک فراخواننده است که برای آشکارساز سوءاستفاده مانند یک کاربر به نظر میرسد و برای برنامهریز ظرفیت مانند اتوماسیون، و برای لایه مجوزدهی هیچکدام نیست چون لایه مجوزدهی وجود ندارد.
یک مرز عملی برای ترافیک عامل
مرزی که پایدار بماند به سه ویژگی نیاز دارد: قصد اعلامشده، اعتبارنامههای محدود و شرایط قابل خواندن توسط ماشین که زمان اجرای عامل بتواند قبل از اولین درخواست اعمال کند.
قصد اعلامشده و اعتبارنامههای محدود. قبل از اینکه یک عامل بتواند روی یک سرویس عمومی عمل کند، زمان اجرا باید ملزم به ارائه اعتبارنامهای باشد که نام عامل، اپراتور، کلاس اقدام مورد نظر و محدوده را مشخص کند. سرویس باید بتواند درخواست را قبل از اجرای هر منطق تجاری رد کند. این ایده جدیدی نیست؛ همان مدلی است که سرویسهای داخلی قبلاً استفاده میکنند. تغییر، گسترش آن به رابطهای عمومی است که در حال حاضر ترافیک ناشناس را میپذیرند.
شرایط قابل خواندن توسط ماشین. یک پورتال باید یک سند سیاست منتشر کند که زمان اجرای عامل بتواند آن را واکشی و ارزیابی کند: کدام نقاط پایانی برای عاملها باز هستند، کدام کلاسهای اقدام مجاز هستند، چه سقفهای نرخ و همزمانی اعمال میشوند و چه انتسابی لازم است. زمان اجرا سیاست را قبل از اولین درخواست اعمال میکند، نه بعد از یک مسدودسازی. این کنترل را از تشخیص به پذیرش منتقل میکند. سیاستی که فقط بهصورت متن در یک صفحه شرایط وجود دارد، توسط زمان اجرا قابل اعمال نیست و توسط یک مدل اعمال نخواهد شد.
دسترسی پرحجم بدون هویت بهعنوان یک سیگنال متمایز. اپراتورها باید ترافیک ناشناس، پرحجم و هدفمحور را بهعنوان دسته خودش در نظر بگیرند، جدا از تشخیص سوءاستفاده. تشخیص سوءاستفاده به دنبال محتوای مخرب و امضاهای شناختهشده میگردد. ترافیک عامل ممکن است کاملاً خوشساخت باشد و همچنان خارج از سیاست باشد. سیگنال شکل درخواست نیست؛ ترکیب ناشناسی، حجم و پیمایش بین نقاط پایانی است.
یک مکانیزم مشخص: یک لایه پذیرش که در مقابل پورتال قرار میگیرد و یک توکن قصد امضاشده را در برابر یک سیاست منتشرشده ارزیابی میکند. توکن هویت عامل را به یک کلاس اقدام و یک محدوده متصل میکند. لایه سقفهای همزمانی و نرخ را به ازای هر توکن اعمال میکند، نه به ازای هر IP، و هر اقدام پذیرفتهشده را با اصل توکن ثبت میکند. درخواستهای بدون توکن معتبر قبل از رسیدن به برنامه رد میشوند. این همان شکل یک دروازه API داخلی است که به یک سطح عمومی اعمال میشود.
معاوضه صادقانه: کنترل پذیرش اصطکاک را برای اتوماسیون مشروع افزایش میدهد. محققان، ابزارهای دسترسپذیری و یکپارچهسازیهای شخص ثالث که در حال حاضر به دسترسی ناشناس متکی هستند، باید ثبتنام کنند و اعتبارنامه حمل کنند. این یک هزینه واقعی است و برخی استفادههای مشروع را کند خواهد کرد. جایگزین، یک سطح عمومی است که نمیتواند یک عامل مجاز را از یک عامل غیرمجاز تشخیص دهد، که همان شرایطی است که حادثه را به وجود آورد. معاوضه بین اصطکاک و انتساب است؛ هیچ گزینه سومی وجود ندارد که هر دو را حفظ کند.

اپراتورها ابتدا باید چه چیزی را ابزارگذاری کنند
لاگهای به ازای هر درخواست کافی نیستند. یک درخواست واحد به یک پورتال دولتی غیرقابل توجه به نظر میرسد. الگویی که اهمیت دارد، توالی است.
- توالی اقدامات به ازای هر نشست. مجموعه مرتب اقدامات در یک نشست را ثبت کنید، نه فقط درخواستهای فردی. نشستی که یک صفحه فرود را میخواند، مجموعهای از نقاط پایانی را شمارش میکند و سپس یک فرم ارسال میکند، شیء متفاوتی از نشستی است که یک صفحه را میخواند و میرود.
- پیمایش بین نقاط پایانی در یک نشست واحد. ردیابی کنید که یک نشست چند نقطه پایانی متمایز را لمس میکند و به چه ترتیبی. کاربران انسانی مسیرهای ناوبری را دنبال میکنند؛ عاملها اغلب پخش میشوند. گستره پیمایش به ازای هر نشست سیگنال قویتری از نرخ درخواست است.
- مسیرهای تشدید از خواندن به نوشتن. انتقال از عملیات خواندن به عملیات نوشتن، از جمله ارسال فرمها را ابزارگذاری کنید. نشستی که سوابق را میخواند و سپس یک فرم ارسال میکند، کلاس اقدام خود را تغییر داده است. آن انتقال باید با اصل، محدوده و تصمیم سیاستی که آن را مجاز کرده، ثبت شود.
این سه سیگنال ارزان برای انتشار و سخت برای جعل بدون کند کردن عامل به سرعت انسانی هستند، که در آن نقطه کنترلهای ظرفیت قبلاً اعمال میشوند. آنها همچنین رد حسابرسی را تولید میکنند که یک مدل مجوزدهی برای مفید بودن نیاز دارد. مرزی که پس از واقعه قابل بازسازی نباشد، یک مرز نیست.
نفوذ گزارششده یادآوری است که اینترنت عمومی یک محیط عملیاتی است و عاملها مشتریان عملیاتی هستند. کنترلی که وجود نداشت یک WAF بهتر نیست. این یک مدل مجوزدهی است که یک عامل را بهعنوان یک اصل با یک محدوده و یک سرویس عمومی را بهعنوان سیستمی که میتواند رد کند، در نظر میگیرد.
شکل راهحل
راهحل مسدود کردن عاملها نیست. این است که به آنها راهی برای شناسایی خود و سیاستی برای انطباق بدهیم، و به سرویس راهی برای رد کردن قبل از اجرای منطق تجاری بدهیم. این نیازمند قصد اعلامشده، اعتبارنامههای محدود، شرایط قابل خواندن توسط ماشین و ابزارگذاری است که نشستها را میخواند نه درخواستها. جایگزین — دسترسی ناشناس، بدون هویت و پرحجم به سیستمهایی که هیچکدام را فرض نمیکنند — همان شرایطی است که تحت آن حادثه بعدی نیز بهعنوان یک غافلگیری توصیف خواهد شد.
اپراتورهایی که این مرز را زود بسازند، خواهند دید که عملیات عادی را نیز بهبود میبخشد: ترافیک منتسب آسانتر برای اشکالزدایی، آسانتر برای برنامهریزی ظرفیت و آسانتر برای دفاع در یک بازبینی حادثه است. هزینه، اصطکاک برای اتوماسیون ناشناس است. آن هزینه واقعی است و کوچکتر از هزینه ناتوانی در پاسخ به این است که چه کسی عمل کرد، به نمایندگی از چه کسی و در چه محدودهای.
