پست

جنگ اپل و اف‌بی‌آی؛ آیفون سن‌برناردینو و بازار آسیب‌پذیری‌های روز صفر

ماجرای قفل آیفون ۵C، چرا اپل نپذیرفت، چه کسی قفل را شکست، بازار خرید و فروش آسیب‌پذیری‌ها و درس EternalBlue برای امنیت جهانی.

جنگ اپل و اف‌بی‌آی؛ آیفون سن‌برناردینو و بازار آسیب‌پذیری‌های روز صفر

این ماجرا برای هر توسعه‌دهنده‌ای جذاب است چون در آن فنی‌ترین جزئیات رمزنگاری با پرسش‌های سیاسی بزرگ گره می‌خورد: آیا دولت می‌تواند شرکتی را مجبور کند نرم‌افزار امنیتی‌اش را برای باز کردن قفل ضعیف‌تر کند؟

پرونده

در ۲ دسامبر ۲۰۱۵ دو مهاجم در سن‌برناردینوی کالیفرنیا حمله کردند و ۱۴ نفر را کشتند. اف‌بی‌آی یک آیفون ۵C متعلق به یکی از مهاجمان (سید فاروک) را که با iOS ۹ کار می‌کرد به دست آورد، ولی قفل بود. تنظیمی در گوشی بود که پس از ۱۰ بار وارد کردن رمز اشتباه می‌توانست داده‌ها را پاک کند، و بین تلاش‌ها تأخیر اجباری برقرار بود.

در فوریه ۲۰۱۶ یک قاضی فدرال (شری پیم) بر پایه‌ی «قانون دستورهای کلی» (All Writs Act) مصوب ۱۷۸۹ از اپل خواست نسخه‌ای از سیستم‌عامل بسازد که محدودیت ۱۰ بار را بردارد و تأخیرها را حذف کند و اتصال الکترونیکی رمز را ممکن کند. تیم کوک با نامه‌ی سرگشاده مخالفت کرد: چنین نسخه‌ای «شاه‌کلید» می‌شود و می‌تواند علیه هر گوشی دیگری به کار رود؛ علاوه بر آن، رویه‌ای می‌ساخت که دولت‌های دیگر هم از آن استفاده کنند.

پایان بدون حکم

یک روز قبل از جلسه‌ی دادگاه، در مارس ۲۰۱۶، اف‌بی‌آی اعلام کرد با کمک شخص ثالثی گوشی را باز کرده و دعوا را پس گرفت. هیچ رأی قضایی صادر نشد. جیمز کومی، مدیر وقت اف‌بی‌آی، گفت هزینه بیش از ۱ میلیون دلار بوده است.

چه کسی قفل را شکست؟

در همان زمان گزارش‌های رسانه‌ای از شرکت اسرائیلی Cellebrite به‌عنوان مجری نام می‌بردند، ولی بعدها این گزارش‌ها رد شد. در ۲۰۲۱ واشنگتن‌پست گزارش کرد که کار را مارک داود و دیوید وانگ از شرکت استرالیایی «Azimuth Security» انجام دادند. مسیر حمله، به گزارش همان نشریه، از یک آسیب‌پذیری در کدی بود که اپل برای کار با لوازم جانبی از طریق پورت لایتنینگ به کار برده بود و از کدهای متن‌باز موزیلا گرفته شده بود. با ترکیب چند اشکال، آنها توانستند محدودیت تعداد حدس را دور بزنند. نکته‌ی مهم فنی: آیفون ۵C پردازنده‌ی ۳۲ بیتی A۶ داشت و فاقد Secure Enclave بود (که از A۷ به بعد آمد)، پس روش روی مدل‌های جدید کار نمی‌کرد. بنابراین پیروزی اف‌بی‌آی یک‌بارمصرف بود.

درس مهندسی نرم‌افزار: امنیت یک سامانه‌ی بسته تا امنیت وابستگی‌هایش است. شکست از یک کتابخانه‌ی خارجی آمد، نه کد اصلی اپل.

روز صفر چیست؟

آسیب‌پذیری روز صفر نقصی است که سازنده از آن بی‌خبر است، پس «صفر روز» برای ترمیم داشته. برای سوءاستفاده از آن باید یک «اکسپلویت» نوشت. بازار آن سه شکل دارد:

  • بازار قانونی: برنامه‌های باگ‌بانتی شرکت‌ها که برای گزارش آسیب‌پذیری پاداش می‌دهند.
  • بازار خاکستری: واسطه‌هایی مثل Zerodium یا شرکت‌های سازنده‌ی ابزار جاسوسی (مثل NSO، سازنده‌ی پگاسوس) که اکسپلویت را با قیمت‌های میلیون‌دلاری برای دولت‌ها می‌خرند.
  • بازار سیاه: فروش به مجرمان.

معمای انبار کردن

آمریکا «فرآیند بررسی عدالت آسیب‌پذیری‌ها» (VEP) را دارد که قرار است تعیین کند اگر آژانسی روز صفری یافت، آن را گزارش کند یا برای عملیات نگه دارد. منشور آن در ۲۰۱۷ علنی شد. هزینه‌ی انبار کردن در ۲۰۱۷ آشکار شد: گروه «شادو بروکرز» ابزارهای NSA از جمله EternalBlue را نشت داد و چند هفته بعد باج‌افزار WannaCry (که آمریکا و بریتانیا به کره‌ی شمالی نسبت دادند) از همان آسیب‌پذیری ویندوز استفاده کرد و بیمارستان‌ها و شرکت‌های سراسر جهان را درگیر کرد.

راه‌حل‌های پیشنهادی: شفافیت بیشتر در VEP، پیش‌فرض گزارش به سازنده، نظارت بر صادرات ابزارهای نفوذ (مثل اصلاحیه‌ی ۲۰۱۳ توافق واسنار) و افزایش پاداش‌های بازار قانونی. هیچ‌کدام تضمین نمی‌کند؛ چون انگیزه‌ی دولت‌ها برای نفوذ واقعی است.

ارزیابی

بحث اصلی هنوز حل‌نشده است. مدافعان دسترسی قانونی (اف‌بی‌آی و بخشی از سیاستمداران) می‌گویند رمزنگاری بدون استثنا برای تحقیقات جنایی «تاریکی» می‌آورد. متخصصان امنیت پاسخ می‌دهند که ضعف عمدی برای یک گروه قابل مهار نیست و سطح حمله را برای همه بالا می‌برد. این استدلال فنی را من نیز معتبرتر می‌دانم، گرچه هزینه‌اش برای تحقیقات واقعی است.