پیش از آنکه دیر شود...
سلام، آنچه که در ادامه میآید بسیار طولانیتر از چیزی شده است که معمول و شایستهٔ پیامهایی است که در محیطهای دوستانه ردوبدل میشوند، و قصد من هم این نبود. باور کنید اگر میشد این حرفها را بدون از دست رفتن بخش مهمی از معنا کوتاهتر بیان کرد، حتما چنین میکردم. اما طوفانی که در حوزه امنیت به پا شده و تاثیر شگرف و نگرانکنندهای که هوش مصنوعی بر آن گذاشته است در چند جمله قصار و نظراتی گذرا خلاصه نمیشد.
من این نامه را به عنوان یک دوست و همکار برای شما نوشتهام که افتخار همراهی و همکاری با هم را داشتهایم و همچنان، پس از سالها، همدل و همداستان شما هستم. زیرا محیط تهدیدهای پیرامونی ما به شکلی مشخص و ملموسی تغییر کرده است، و خود شما بیش از هر کس دیگر پیآمدهای مخرب آن را تجربه کردهاید. مجموعهای از حملات سایبری با الگوهایی که تنها به بازیگرانی میتوان نسبت داد که با حمایت دولتهای خارجی از منابع گسترده برخوردارند. این یک پیشبینی یا نظریه توطئه نیست، این اتفاق همین حالا رخ داده است و این آخرین بار نخواهد بود.
اگر روند فعلی ادامه پیدا کند، این حملات هم پرتعدادتر خواهند شد و هم مخربتر، زیرا شرایطی که ما را به هدفی جذاب تبدیل کردهاند در حال کاهش نیستند، بلکه در حال تشدید شدن هستند. بازیگرانی که شما را هدف قرار دادهاند دقیقاً همانهایی هستند که بهترین موقعیت را برای بهرهبرداری از این شکاف دارند. این را برای ترساندن نمیگویم، بلکه به این دلیل میگویم که مستقیما از یک منطق اقتصادی که در ادامه توضیح میدهم ناشی میشود. اگر حملاتی که تاکنون پشت سر گذاشتهاید را صرفا حوادثی مجزا تلقی کنیم، و نه نشانههای اولیهٔ یک کارزار مستمر، هزینهای گزاف خواهیم پرداخت. آنچه در ادامه میآید تلاشی است برای توضیح روشن اینکه چه چیزی تغییر کرده، چرا این تغییرات به نفع مهاجمان است، و چگونه یک مدافع با منابع محدودتر و دست پایینتر همچنان میتواند پیروز شود. زیرا میتواند، اما نه با مبارزه بر اساس قواعد مهاجم.
سیستمهای حیاتیای که شما نگهداری میکنید، خدماتی را در مقیاس گسترده ارائه میکنند که عموم مردم به آنها وابستهاند. و شما این کار را در طول دههها تغییر و تحول و فراتر از آنچه که عمر رایج نرمافزارها میسر میسازند، انجام دادهاید. این حاصل کار مجموعهای از افراد ماهر و متبحر است و غریزهٔ شما در برخورد محتاطانه با ادعاهای پر سر و صدای فناوری، نه یک ضعف، بلکه نشانهٔ قضاوت مهندسی صحیح است.
امیدوارم زمانی را که برای خواندنش صرف میکنید ارزشمند بدانید، زیرا باور دارم گفتوگویی که این نوشته آغاز میکند، گفتوگویی است که دیگر نمیتوان آن را به تعویق انداخت.
یکم: چه چیزی واقعا تغییر کرده و چه چیزی تغییر نکرده است
بخش عمدهای از آنچه دربارهٔ هوش مصنوعی گفته میشود اغراقآمیز است و باید به آن با تردید نگریست. اما در پس این بلوا، یک تحول مشخص و ملموس وجود دارد که مستقیماً برای ما اهمیت دارد. مساله کاهش هزینه، و افزایش سرسامآور سرعت کشف آسیبپذیریهای قابل سوء استفاده در نرمافزارها به خصوص در برنامههای قدیمی است.
در ماههای گذشته، ابزارهای هوش مصنوعی توانستهاند آسیبپذیریهای جدی و قابل بهرهبرداری را در نرمافزارهایی پیدا کنند که توسط زبدهترین آزمایشگاههای امنیتی بررسی شدهاند و میلیونها بار طی سالیان متمادی آزمایش شده بودهاند. اینها تنها چند نمونه معروف هستند:
- نقصی نهفته در بطن FFmpeg (یک پردازشگر بسیار پرکاربرد ویدیو) که ۱۶ سال پنهان مانده بود و حدود پنج میلیون آزمون خودکار را پشت سر گذاشته بود. نقصی که ریشه در طراحی سال ۲۰۰۳ داشت و در بازنویسی بعدی در سال ۲۰۱۰ به یک آسیبپذیری قابل بهرهبرداری تبدیل شده بود، در حالی که تمام انسانها و ابزارهایی که طی سالها آن را بررسی کرده بودند از کنار آن گذشته بودند.
- یک نقص ۲۷ساله در OpenBSD، سیستمعاملی که شهرتش این است که از ممیزیشدهترین نرمافزارهای دنیاست.
- یک زنجیره چندمرحلهای سوء استفاده از هستهٔ لینوکس که با حداقل دخالت انسانی ساخته شدهاند.
نکتهٔ اصلی ابزارهایی نیست که این آسیبپذیریها را کشف کردند. نکته، هزینه و مقیاس است. این نوع نتایج بعدا به شکل مستقل با هزینهای در حدود هزار دلار برای هر آسیبپذیری، روی سختافزاری اجارهای و با استفاده از مدلهایی نسبتاً کوچک و بدون نیاز به دسترسی ویژه بازتولید شدهاند. این توانایی دیگر در انحصار تعداد محدودی از دولتها و سازمانهای پیشرو نیست.
حال این موضوع را به وضعیت خودمان تعمیم دهید. بخش بزرگی از نرمافرازهای حیاتی و قدیمیای که خدمات عمومی به آنها وابسته هستند هرگز تحت چنین بررسیای قرار نگرفتهاند. این نرمافزارها با فرضیات متفاوتی نوشته شدهاند، توسط افراد ممیزی شدهاند و به دلیل سالها عملکرد صحیح، مورد اعتماد قرار گرفتهاند. اما «درست کار کردن» و«غیرقابل سوءاستفاده بودن» دو ویژگی متفاوتاند و فاصلهٔ در حال افزایش میان این دو دقیقاً همان چیزی است این ابزارها آشکار کردهاند. هر آنچه که تا کنون با دو عامل «ناشناخته بودن» و «هزینهٔ بالای بررسی» محافظت میشد آسیبپذیر شده است.
اما آنچه تغییر نکرده است نیز به همان اندازه اهمیت دارد و مبنای تمام استدلالهای بعدی را تشکیل میدهد:
هوش مصنوعی قوانین جدیدی برای نفوذ ابداع نمیکند، بلکه انواع حملاتی را که از قبل میشناسیم خودکار، مقیاسپذیر، و ارزان میکند. حتی نهادهای امنیتی دولتهای بیگانه که پیشرفتهترین توانمندیهای تهاجمی موجود را بررسی کردهاند، به این نتیجه رسیدهاند که کنترلهای دفاعی موجود، اگر بهدرستی پیادهسازی شوند، همچنان اصطکاک و مانع مؤثری ایجاد میکنند و سازمانهایی که از رویههای امنیتی بالغ برخوردارند، حتی با پیشرفت ابزارهای مهاجمان نیز بهمراتب مقاومتر باقی میمانند. این اقدامات هنوز کار میکنند، فقط باید بهطور مداوم اجرا شوند و ما باید فرض کنیم که حجم تلاشهای نفوذ بسیار بیشتر از گذشته خواهد بود.
دوم: چگونه با وجود ضعف نسبی خوب بازی کنیم
واقعیت این است که زمین بازی ما نابرابر است و همچنان نابرابر باقی خواهد ماند. تحریمها و شرایط اقتصادی کشور دسترسی ما به منابع و فناوریها را محدود میکند و بازیگران دولتیای که منابع مالی گسترده دارند به نیروی انسانی، فناوریهای پیشرفته و قابلیتهایی دسترسی دارند که ما هرگز با آنها برابری نخواهیم کرد. علاوه بر این، عدم تقارن ساختاری را نیز نباید نادیده گرفت، این که مهاجم کافی است یک بار درست عمل کند. مدافع باید هر بار درست عمل کند. بنابراین پیشرفتهای فناوری اغلب ابتدا به سود مهاجم تمام میشوند.
حرکت اشتباه این است که بخواهیم بهصورت متقارن پاسخ دهیم. یعنی تلاش کنیم از نظر منابع، نیرو یا مدلهای هوش مصنوعی با مهاجمی رقابت کنیم که همیشه بیشتر از هر سه خواهد داشت. ما نمیتوانیم در این مسابقه پیروز شویم و نباید وارد آن شویم. مدافع ضعیفتر زمانی برنده میشود که معنای «پیروزی» را تغییر دهد، یعنی به جای همسطح شدن با توان مهاجم، استفاده از آن توان را علیه خود پرهزینه کند. سه اهرم اصلی در اختیار ماست:
- افزایش هزینهٔ موفقیت: دفاع لایهای به معنای نفوذناپذیر بودن هیچ لایهای نیست، بلکه به معنای تبدیل یک نفوذ کامل به عملیاتی پرهزینه، زمانبر و پر سر و صداست. هر لایهٔ اضافی مثل احراز هویت یا تفکیک شبکه یک پیروزی سریع را به کارزاری طولانی تبدیل میکند که احتمال کشف و رها شدن آن بیشتر است.
- کاهش بازده موفقیت: اگر یک نقطهٔ نفوذ فقط به بخشی محدود از سامانه دسترسی داشته باشد، مهاجم برای دستاوردی اندک هزینهٔ زیادی پرداخته است. محدود کردن شعاع انفجار، نقض امنیتی را از یک فاجعه به یک حادثه تبدیل میکند.
- کاهش زمان ماندگاری: مزیت مهاجمان صبور زمانی است که بدون شناسایی در سامانه باقی میمانند. پایش مناسب این پنجره را کوچک میکنند. این دقیقاً عاملی است که بیشترین اثر را در خنثی کردن برتری حریف پرمنابع دارد.
زیربنای همهٔ این موارد یک اصل است: اول نیروی انسانی و زیرساخت، بعد ابزار.
در این شرایط، وسوسهانگیز است که یک محصول امنیتی مبتنی بر هوش مصنوعی بخریم و تصور کنیم کار تمام شده است. پرورش توان نیروی انسانی و اقدامات زیرساختی شاید جذاب نباشند، اما ارزان هستند و همان چیزهایی هستند که باعث میشوند هر ابزاری واقعا مؤثر واقع شود. به این ترتیب برای دفاع مؤثر، نیازی به مدلهای عظیم و پیشرفته نداریم، به مدافعان هوشیار و زیرساختهای متسحکم و هوشمندانه نیاز داریم.
سوم: چند پیشنهاد
غریزهٔ طبیعی در فرهنگهای مهندسی محتاط این است که ابتدا یک برنامهٔ کامل، زمانبندی شده و با برآورد هزینه تهیه شود و تنها پس از تصویب، اجرا شود. اما در مسئلهای با این گستردگی، چنین برنامهای هرگز کامل نمیشود، و حتی اگر چنین شود، با سرعت تغییراتی که در جریان است، این برنامه یا منسوخ میشود یا نوشداروی بعد از مرگ سهراب.برنامهٔ جامع قتلگاه عمل و اقدام است.
یک یا دو اقدام عملی را متناسب با نیاز و شرایط خود انتخاب کنید که بتوانید همین ماه تغییری واقعی و قابل اندازهگیری ایجاد کنید و آن را به سرانجام برسانید. سپس سراغ مورد بعدی بروید. پیشروی در گامهای کوچک و تکمیلشده بهتر از برنامهریزیهای بزرگ و ناتمام است. زیرا هر اقدامی که به سرانجام برسد همین حالا خطر را کاهش میدهد و همزمان چیزهایی را به ما میآموزد که اقدام بعدی را دقیقتر و مؤثرتر میکند. حرکت و پیشرفت، خود یک کنترل امنیتی است.
با این مقدمه، چند جهتگیری کلی به عنوان پیشنهاد به ذهن من میرسد:
- آموزش مستمر امنیت: موثرترین حملات علیه سازمانها از طریق انسانها انجام میشوند. آموزشهای کوتاه، مداوم و واقعگرایانه برای تمام افرادی که با این سیستمها کار میکنند یا آنها را توسعه داده و نگهداری میکنند، از هر ابزار واحدی مؤثرتر است. این آموزش باید علاوه بر کاربران نهایی، توسعهدهندگان و افرادی که برنامه را تغییر میدهند را نیز شامل شود.
- بازبینی امنیتی و ممیزی به عنوان بخشی از فرآیند و چرخهٔ توسعه: هر تغییر در برنامههای حیاتی باید از بازبینیهایی عبور کند که بهطور مشخص به دنبال نقصهای امنیتی هستند. برای این منظور میتوان ابزارهای مهاجم را علیه خودمان به کار بگیریم: همان نوع بررسیهای خودکار و ارزان آسیبپذیری را روی نرمافزارهای خود اجرا کنیم و مشکلات احتمالی را پیدا کنیم. همانطور که پیشتر اشاره کردم، برخی از این ابزارها و حتی مدلهای هوش مصنوعی کوچکتر در دسترس هستند.
- کاهش وابستگی به فناوریهای خاص و استفاده از استانداردها و بسترهای باز: با وابستگی به یک فناوری یا تامینکننده خاص، نقاط کور آن را به ارث میبریم و اغلب امکان بررسی دقیق آنچه اجرا میکنیم را نداریم. استانداردهای و بسترهای باز قابلیت ممیزی دارند. این موضوع دربارهٔ کنترل و شفافیت است، نه ایدئولوژی متنباز.همچنین باید صریحا تأکید کنم که متنباز بودن به معنای امنتر بودن نیست، شاهد آن که آسیبپذیریهای ذکرشده در بخش اول سالها در کدهای متنباز پرکاربرد پنهان مانده بودند. چه نرمافزار باز باشد چه بسته، به همان میزان نیازمند بازبینی و انضباط امنیتی است. مزیت نرمافزار باز فقط این است که امکان بررسی کردن و شفافیت را به ما میدهد.