انجمن انفورماتیک ایران انجمن انفورماتیک ایران انجمن انفورماتیک ایران
گزارش کامپیوتر شماره 245 آذر و دی ماه 98 منتشر شد. چهارشنبه  ٣٠/١١/١٣٩٨ ساعت ٠٤:٣٧
 

گزارش

حفاظت از عمارت شیشه‌ای

علیرضا خلیلیان

دانشجوی دکتری نرم­افزار، دانشگاه اصفهان

پست الکترونیکی: khalilian@eng.ui.ac.ir

 

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

 

مقدمه

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

در فضای مجازی مفهوم دشمن به یک مفهوم عام تبدیل می‌شود و اهداف مخاطرات هم متناسب با آن تغییر می‌کند. دشمنان رخنه‌گران[1] مبتدی، مجرمین، رخنه‌گران حرفه‌ای، وحشت‌افکن‌ها و دولت‌ها هستند. اهداف حمله‌ در فضای مجازی هم از خودنمایی و بِزِه تا اِعمال فشار، وحشت‌افکنی و سلطه‌طلبی  و براندازی در تغییر است. مخاطرات امنیتی را می‌توان به کوه یخی تشبیه کرد که بخش اعظم آن زیر آب است و دیده نمی‌شود و فقط نوک کوچک آن بالای آب دیده می‌شود. بر اساس مدل کوه یخی، مخاطرات امنیتی در فضای رایانشی را می‌توان به سه دسته تقسیم کرد: (1) حوزه مخاطرات ناشی از رخنه‌گران و مجرمین رایانشی که نوک کوه یخی است و بیرون از آب قرار گرفته است و دیده می‌شود، (2) حوزه مخاطره ناشی از جنگ رایانشی که زیر آب است ولی نزدیک سطح آب است و با اندکی تلاش دیده می‌شود و (3) حوزه مخاطره ناشی از جنگ نرم که در عمق آب قرار گرفته و به‌سادگی متوجه آن نمی‌شویم.

حمله‌های انجام شده توسط رخنه‌گران غیرحرفه‌ای و مجرمین را که به هدف خودنمایی یا بزه صورت می‌گیرند در دسته اول مخاطرات قرار می‌دهند. از نمونه‌های این‌گونه حمله‌ها می‌توان به خرابی سیستم یا داده‌ها، آلودگی به ویروس و نرم‌افزارهای مخرب، دزدی و کلاه‌برداری و غیره اشاره کرد. منشأ عمده‌‌ این مخاطرات عامل‌های نرم‌افزاری هستند که به‌طور عمدی برای تهدید ساخته می‌شوند که به آن‌ها بدافزار[2] می‌گویند. انواع بدافزارها و عملیات بدافزاری عبارتند از: (1) حذف فایل‌ها، (2) آلوده کردن سیستم (ویروس و کرم[3])، (3) نظارت بر فعالیت‌ها (وب‌بین و کلیدنگار[4])، (4) جمع‌آوری اطلاعات راجع به علاقه‌مندی‌های کاربر، (5) ایجاد دسترسی‌های غیر مجاز (اسب تراوا و درب پشتی[5])، (6) سرقت فایل‌ها، (7) ارسال هرزنامه[6]، (8) حمله به دیگر سیستم‌ها (زامبی[7])، (9) سپر بلا کردن دیگران در برابر حملات مجرمانه، (10) مخفی کردن فعالیت‌های بدافزار از چشم کاربر (ردگم‌کن[8])، (11) جاسوس افزارها[9]، (12) تبلیغ‌افزار[10]، (13) زورگیرافزار[11] و (14) باج‌افزار[12].

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

جنگ رایانشی مزیت‌های بسیار دارد، مثلاً هزینه یک فروند بمب‌افکن 5/1 تا 2 میلیارد دلار است در حالی‌که هزینه یک سلاح رایانشی بین 300 تا 5000 دلار است! پس برای جنگ رایانشی بدافزارهای نوین طراحی شده‌اند. ویژگی‌های این بدافزارها از این قرارند: (1) کاملا خودکار عمل مي‌کنند، (2) از چندين آسيب‌پذيري استفاده مي‌کنند، (3) از آسيب پذيري‌هاي اعلام نشده[13]  استفاده مي‌کنند، (4) هدف‌دار هستند، (5) فوق‌العاده مخفيانه عمل مي‌کنند، (6) خود تغييرده و چندريخت هستند[14]، (7) از سامانه‌هاي کنترل و فرماندهي[15] استفاده مي‌کنند و (8) برخي اوقات شبکه بزرگي از بدافزارها با يکديگر همکاري مي‌کنند (بات‌نِت[16]).

بخش آخر حملات رایانشی جنگ نرم است. در مقاله مشهور «جوزِف ناي» نظريه‏پرداز آمريکايي تحت عنوان «قدرت نرم» در فصلنامه آمريکائی «فارِین پالیسی[17]» در سال ۱۹۹۰ نوشته شده است: «ايالات متحده به‌جاي به‌کارگيري قدرت سخت (کودتاي نظامي يا جنگ) تلاش خود را بر ايجاد تغييرات در کشورهاي هدف از طريق تأثيرگذاري بر نخبگان جامعه متمرکز مي کند.» جنگ نرم و جنگ سخت هر دو يك هدف را دنبال مي‌كنند. هدف اصلي هر دو جنگ، اعمال فشار براي ايجاد تغيير در اصول و رفتار يك نظام و يا به طور خاص تغيير خود نظام است. امنیت نرم را چنین تعریف می‌کنند: «تبعيت از هنجارهاي اجتماعي در راستاي کسب سود يا دفع ضرر[18].» امنيت نرم از طريق روش‌هاي همکارانه‌اي همچون ارزيابي اعتماد تامين مي‌شود. برای درک بهتر امنیت نرم مثالی قید می‌کنیم. فرض کنید سیاست جامعه‌ای افراد را به رعایت اصول اخلاقی انصاف و عدالت در خرید و فروش می‌خواند. در مقابل هنجار شکنان، امنیت سخت این است که فرد را جریمه کنیم، جواز او را پلمب کرده یا تعزیرات حکومتی بر وی اعمال شود. اما امنیت نرم یعنی تشویق رعایت کنندگان عدالت که باعث اقبال بیشتر مشتریان، شهرت در بازار و کسب سود مالی بیشتر می‌گردد.

جنگ نرم از طرق مختلف صورت می‌گیرد. یکی از آن‌ها تبلیغات است. تعریف ناتو[19] از تبلیغات: «ارائه هرگونه اطلاعات، افکار، عقايد، يا جذابيت‌هاي ويژه (به‌صورت مستقيم يا غيرمستقيم)، با هدف تاثيرگذاري بر نظرات، احساسات، گرايش‌ها و يا رفتار گروهي خاص در جهت منافع سرمايه‌گذار» روش دیگر، شبکه‌های اجتماعی است: «شبکه اجتماعي نوعي از ساختارهاي اجتماعي متشکل از افراد يا سازمان‌ها است که بر اساس انواع مختلفي از وابستگي از قبيل دوستي، خويشاوندي، علائق مشترک، تبادلات مالي،  عقاید، دانش و يا شأنيت به يکديگر متصل شده‌اند.» شبکه‌هاي اجتماعي نقشي اساسي را به‌عنوان وسيله‌اي براي گسترش و پخش اطلاعات، اخبار، نوآوري‌ها و تاثيرات در بين اعضاي خود بر عهده دارند. نقطۀ مشترک اغلب تحقيقات پيرامون شبکه‌هاي اجتماعي، توجه به اهميت روابط و تعاملات به‌عنوان مسئله‌ای ضروري و تاثيرگذار در فهم کنش‌هاي اجتماعي و استخراج اين دانش از شبکه اجتماعي است.

 

چندین درس کوچک در امنیت رایانه

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 مراجع

[1]                         Stamp, M. (2011). Information security: principles and practice. Wiley.



[1] Hacker

[2] Malware

[3] Worm

[4] Webcam & key logger

[5] Trojan, backdoor

[6] Spam relay

[7] Zombie

[8] Rootkit

[9] Spyware

[10] Adware

[11] Scareware

[12] Ransomware

[13] Zero-day

[14] Polymorphic

[15] Command and control (C&C)

[16] Botnets

[17] Foreign policy

[18] Josang 2007

[19] NATO