مهندسی هرج و مرج چیست ؟

توسط سمیرا گلکار
7 دقیقه
مهندسی هرج و مرج چیست ؟

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

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

مهندسی هرج و مرج نت فلیکس چیست؟

مهندسی هرج و مرج چیست ؟

20 سپتامبر 2015…. همه چیز در جبهه غربی آرام است که ناگهان چند سرور مهم «وب سرویس‌های آمازون» بدون هیچ نشانه و اخطار قبلی از کار می‌افتند.

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

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

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

وقتی این مشکل عظیم رخ داد هیچ شرکت دیگری در حد نت فلیکس آماده نبود. سیستم این شرکت به قدری قوی بود که خود آن توانست با این مشکل عظیم مقابله کند.

امتحان کردن دیگران

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

Principles of Chaos Manifesto

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

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

اما نقص و از کار افتادگی عمدی سیستم‌ها می‌تواند هزینه زیادی داشته باشد و حتی از کار افتادگی که ناشی از نقص امنیتی واقعی نباشد هم می‌تواند باعث از دست رفتن فرصت‌های زیادی برای درآمدزایی شود. در نتیجه نباید منتظر حوادث واقعی ماند.

میمون‌های خرابکار!

مهندسی هرج و مرج چیست ؟

بعضی از شرکت‌ها از مدلی به اسم «تیم قرمز» استفاده می‌کنند. تیم قرمز گروهی است که نقش دشمن یا رقیب را بازی می‌کند و از این منظر، درباره عملکرد توسعه دهندگان بازخورد امنیتی ارائه می‌دهد اما شرکت نت فلیکس برای انجام این کار از روشی به اسم ارتش میمون‌ها استفاده کرد که متشکل از یکسری ربات هستند که به شکل تصادفی به ایجاد هرج و مرج و خرابکاری در سیستم‌ها می‌پردازند.

به گفته آنتونیو گارسیا مارتینس نویسنده کتاب میمون‌های هرج و مرج:

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

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

مهندسی هرج و مرج و رویکرد علمی

مهندسی هرج و مرج چیست ؟

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

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

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

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

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

وبلاگ Netflix

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

آیا مهندسی هرج و مرج روش ارزشمندی است؟

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

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

سیلیکون ولی: جایی که رویاهای زیادی می‌میرند!

وقتی بحث امنیت را در اولین مراحل کار در نظر بگیرید، احتمال اینکه تیم شما برای مشتریانتان محصولی امن تر و نفوذناپذیرتر بسازد، بیشتر خواهد شد.

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

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

 

 

 

مطالب مرتبط

دیدگاه شما چیست؟