Faragiri

همهٔ زبان‌ها

آموزش امنیتسیستم‌ها

فروشگاه باغ‌شهر در مشهد چهار روز تسویه‌اش را به یک پیام بی‌پیوست و بی‌بدافزار داد. هیچ‌کدام از چیزهایی که خریده بودند برای این ساخته نشده بود.

۵بخش
۶دقیقه خواندن
۲عمق

سیستم‌ها

چهار لایه، و چه چیزی از هر کدام رد می‌شود

هر لایه با چیزی که جلویش را می‌گیرد و چیزی که نمی‌گیرد کشیده شده. نقشه دفاعی که فقط اولی را بنویسد یک آگهی است.

  1. لبه شبکهسیل درخواست، اسکنرها، نشانی‌های شناخته‌شده بدهر چیزی که شبیه مرورگر باشد
  2. خود برنامهورودی بد، نوع محتوای اشتباهدرخواستی معتبر با نیت اشتباه
  3. احراز هویتکسانی که آن‌کسی نیستند که می‌گویندیک حساب واقعی، قرض‌گرفته
  4. سطح دسترسیآدم درست که کار نادرست می‌کندآدم درست، که حسابش لو رفته
چیزی که داری از آن محافظت می‌کنی

هر سطر ستون دوم یک حمله واقعی است. لایه‌ها به این دلیل ارزش دارند که هزینه را بالا می‌برند، نه چون در را می‌بندند.

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

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

هر لایه چه چیزی را می‌گیرد و چه چیزی از کنارش رد می‌شود

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

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

دو چیزی که تعیین می‌کنند حادثه چقدر بد تمام می‌شود

اولی درباره دسترسی‌هاست و همیشه وارونه توضیح داده می‌شود. کمترین دسترسی اندازه خسارت را کم می‌کند، نه احتمالش را. اینکه فقط یک نفر بتواند شماره شبای تسویه را عوض کند، حمله را کمتر محتمل نمی‌کند؛ تعیین می‌کند وقتی یک حساب گرفته شد چه چیزی در دسترس است. در باغ‌شهر اعتراض این بود که پنج نفری که سال‌هاست کنار هم کار می‌کنند نباید برای هم سطح دسترسی تعریف کنند، که احساس قابل فهمی است و جواب پرسش دیگری است: آن سطح‌ها قضاوتی درباره همکار نیستند، حدی هستند برای غریبه‌ای که نشست همان همکار را در دست دارد. بعد از آن چهار روز، تعریف کردنشان یک بعدازظهر طول کشید.

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

  • tar -tzf /backup/baghshahr-1405-05-31.tar.gz | wc -l
  • 128 و آرشیو همین‌قدر فایل دارد

tar -tzf فهرست داخل آرشیو را می‌دهد بی‌آنکه چیزی باز شود، و ۱۲۸ فایل برای فروشگاهی که هزاران تصویر محصول دارد یعنی کار پشتیبان‌گیری فقط پوشه‌هایی را می‌گیرد که سه سال پیش اسمشان نوشته شده. در باغ‌شهر پشتیبان‌ها سه سال بی‌وقفه اجرا شده بودند و یک بار هم برنگشته بودند؛ وقتی بالاخره امتحان شد، تصویرها برگشتند و پایگاه سفارش‌ها نه، چون بعد از نوشتن آن کار به سرور اضافه شده بود. هیچ چیز خراب نشده بود و هیچ چیز هم بررسی نشده بود.

حسابی که خودِ کسب‌وکار است

اینجا یک ردیف هست که در متن‌های انگلیسی وزنی ندارد: برای بیشتر فروشگاه‌های کوچک، حساب پیام‌رسان و شبکه اجتماعی خودِ کسب‌وکار است. مشتری، سابقه سفارش، و گاهی تنها راه ارتباط، همان‌جاست، و همان‌جا با یک شماره تلفن و یک کد پیامکی محافظت می‌شود. تایید دو مرحله‌ای تلگرام یک رمز است، نه یک کد پیامکی، و در «تنظیمات، حریم خصوصی و امنیت، تایید دو مرحله‌ای» گذاشته می‌شود؛ از آن به بعد کد پیامکی به تنهایی کافی نیست، که دقیقا همان چیزی است که تصاحب حساب با سیم‌کارت را می‌بندد. کاری که همان‌جا باید یک بار انجام شود دیدن «نشست‌های فعال» و بستن هر دستگاهی است که شناخته نمی‌شود، چون رمزِ تازه به نشستی که از قبل باز است کاری ندارد.

جایی که کار می‌ایستد

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

ترتیبی که جواب می‌دهد واژگان است، بعد حمله‌ها، بعد دفاع‌ها، بعد ابزارها، و تقریبا همه از انتها شروع می‌کنند چون ابزار چیزی است که می‌شود دانلودش کرد. واژگان، و شکل کلی مسئله واقعا اول است، چون گفت‌وگویی که در آن خطر و تهدید و آسیب‌پذیری جای هم به کار بروند به هیچ تصمیمی نمی‌رسد. بعد جایی که سیستم‌ها واقعا از آن شکسته می‌شوند می‌آید، که اولویت‌ها را جابه‌جا می‌کند، و تنها بعد از آن است که کاری که واقعا چیزها را سرِ پا نگه می‌دارد شبیه مجموعه‌ای از انتخاب‌ها خوانده می‌شود نه فهرست خرید.

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

چه چیزی امروز باز می‌شود

مدیر رمز برای یک تیم پنج نفره بیشترین بازده را دارد، و KeePassXC رایگان و متن‌باز است و پایگاهش فقط یک فایل روی دیسک است. همین ویژگی اینجا مهم‌تر از هر چیز دیگری است: هیچ حسابی لازم نیست باز شود، هیچ اشتراکی خریده نمی‌شود، و هیچ سرویسی نمی‌تواند ثبت‌نام را رد کند؛ فایل را خودتان کنار پشتیبان‌ها نگه می‌دارید. جای فایل اکسل رمزها را گرفت و همان تکرار رمز را برمی‌دارد که یک نشتی جای دیگر را به حادثه اینجا تبدیل می‌کند. مجموعه ابزارهای متعارف و اینکه هرکدام برای چیست در ابزارهای متعارف، و اینکه هرکدام برای چه‌اند است.

برای اینکه بدانید چه چیزی از بیرون دیده می‌شود پیش از آنکه کس دیگری بداند، nmap هنوز استاندارد است و رایگان و متن‌باز؛ جای این فرض را گرفت که سرویسی در دسترس نیست چون قرار نبوده باشد. روی محدوده نشانی خودتان اجرایش کنید و خروجی را فهرست چیزهایی بخوانید که بالاخره امتحان خواهند شد. مدرک‌هایی هم که کارفرما به اسم سراغشان می‌آید در همان‌هایی که کارفرماها واقعا می‌خواهند بررسی شده‌اند، با این یادداشت صادقانه که در مصاحبه را باز می‌کنند و کار را یاد نمی‌دهند.

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

کنار این

بالای این