مبحث یکم : مقدمه و تاریخچه
مبحث دوم: مراحل نفوذ کردن / جلوگیری از نفوذ
مبحث سوم: حملات شبکه ای
مبحث چهارم - کار عملی
مبحث پنجم - DHCP
مبحث ششم - وب و حملات مطرح در آن
مبحث هفتم - حملات DoS
مبحث هشتم - سیستم عامل
مبحث نهم - مهندسی اجتماعی
مبحث دهم - Vulnerability (آسیب پذیری)

Integrity ( یکپارچگی – صحت )

  • یکی از اصول امنیت اطلاعات
  • صحت و یکپارچگی داده هم در زمان انتقال آن مطرح است وهم موقع ذخیره کردن . مثال : admin از داده های خود  back up  گرفته اما back up  را تست نکرده است. فرض کنید موقع back up  ، نوار خالی رایت شود ، و به خیال اینکه back up  کاملی گرفته است آن را در آرشیو گذاشته است . حال در حین برگرداندن اطلاعات می بینند که خالی است .
  • غالبا موقع انتقال اطلاعات است که صحت داده مختل می شود . (به علت وجود نویز ، به علت نفوذ گر ) – ممکن است عمدی و یا به طور تصادفی اتفاق افتد . ( مثال از تصادفی بودن محیط های نویزی ممکن است صحت داده را به خطر بیاندازد ، با تمام کارهایی مثل قرار دادن check sum بازهم حالت هایی، هرچند اندک، وجود دارد که ممکن است خرابی آشکار نگردد. پس باید روش های دیگری برای کنترل صحت وجود داشته باشد).
  • یک الگوریتم مناسب نه تنها باید تغییر داده را متوجه شود بلکه اضافه و کم شدن داده را هم در بحث صحت باید تشخیص دهد .
  • ممکن است یک مخاطره طبیعی و یا اتفاقی غیرعامدانه رخ دهد که هم محرمانگی هم صحت و هم دسترس پذیری را زیر سوال ببرد مثلا یک فرد ممکن است به طور غیرعدی اطلاعاتی را فاش کند .
  • نویز ممکن است اتفاق بیفتد .
  • کابل کشی اشتباه – یک اشتباه رایج : یک داکت می گذارند کابل برق و LAN و … را از همین داکت عبور می دهند که منجر به ایجاد نویز و در نهایت باعث به خطر افتادن کیفیت و  integrity  می­شود .
  • یک نفوذگر هم ممکن است به صورت عامدانه داده ( یا packet ) را وارد شبکه ها inject) ) کند .
  • روش هایی که برای تشخیص تغییر داده وجود دارد .
  • باید الگوریتم هایی وجود داشته باشد که تشخیص دهد که داده تغییر کرده است . مثل CRC ، MD5 . MD5 یک الگوریتم یک طرفه است که شما هر ورودی که به آن بدهید یک خروجی با تعداد بیت مشخص را می دهد ( مثلا 32 بیت ). نکته ای که وجود دارد این است که الگوریتمی که استفاده می شود و قرار است با توجه به ورودی یک خروجی مشخص ایجاد کند باید ویژگی تاثیر فروپاشی بهمنی ( avalanche effect ) را داشته باشد .

تاثیر بهمنی: یعنی به ازای تغییر یک بیت در ورودی تاثیر آن باید روی تمام بیت های خروجی احساس شود ( یعنی خروجی هم 1 بیت عوض نشود بلکه به طور کلی عوض شود ). پس این یک روشی است که برای integrity  استفاده می شود . فرض کنید یک package  را در سایتی می خواهید دانلود کنید ، با استفاده از الگوریتم  MD5 یک خروجی برای آن محاسبه کرده اند و آن خروجی را در کنار آن فایل می گذارند . حال شما فایل را دانلود می کنید و با استفاده از یک ابزار محاسبه MD5 ، MD5 آن را محاسبه می کنید . حال MD5 محاسبه شده را با آن MD5 که در سایت بوده مقایسه می­کنید اگر یکسان نبود نتیجه می گیریم که فایل بین راه تغییر کرده است . حال این تغییر می تواند عامدانه یا تصادفی باشد .

  • الگوریتم MD5 تا حدود 2 سال قبل همه می گفتند کامل است و هم اکنون هم در ویندوز، هم در لینوکس ( هم در سولاریس ) در حالا استفاده است . اما در سمینار برگزار شده در مالزی ، نشان داده شد که دو رشته متفاوت وجود داشت که MD5 آن ها یکسان بود . یعنی اگر متن اول با متن دوم عوض شود ، خروجی MD5 تغییر نمی کند . درنتیجه الگوریتم MD5 دیگر آن امنیت که ثابت شده بود را ندارد .

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

توجه : حتی در زمانی که داده ، یک داده معتبر است و شرکت سازنده ارائه کرده است باز هم جای نگرانی وجود دارد . وزارت دفاع آلمان بعد از مدتی متوجه شد که ویندوزهای سری NT اش ، یک بیت از اطلاعات را گهگاهی به بیرون انتشار می دهند ( توجه دارید که همه چیز  original و  license دار بوده است ). این مساله اثبات شد  ، اما دیگر از NT  استفاده نشد .

توجه : توجه داشته باشید که یک سیستم عامل ( چه اصلی (به توجه بالا نگاه کنید ) وچه دستکاری شده ( crack شده )) می تواند منبع انتشار اطلاعات به بیرون باشد . ویژگی استفاده از نرم افزارهای بومی و متن باز این است که می توان Source Code  را دید و فهمید که چه کارهایی انجام می دهد.

توجه : Open – Source  چیست ؟ می توان سورس برنامه را دید و تغییر داد حال این متن باز بودن به نفع امنیت است یا به ضرر آن ؟ به توانایی فرد بستگی دارد که بتواند کد را بفهمد یا خیر اما اگر توانایی نداشته باشد چی ؟ اما اگر چنین توانمندی را نداشته باشیم  به نفع است زیرا Source  آن موجود است . مونیتورینگ بهتری داریم . resource  ها را می­بینیم . و نکته دیگر این که  open source  بودن ممکن است در ابتدای ارائه محصول، ما را دچار دردسر بکند ، اما در ادامه کار، محصول مورد بررسی افراد مختلف قرار می گیرد ( هکر و ضدهکر ) و کم کم مشکلاتش رفع می شود.

  • عدم انکار نیز باید فراهم شود ( یعنی فرستند واقعی نتواند ارسال خود را نکار کند).
  • حملات MitM (Man in the Middle ) . این حملات غالبا علیه Integrity  است که خوب طبیعتا confidentiality  را هم تحت تاثیر قرار می دهد. در این حمله داده مورد تغییر قرار می گیرد ( غالبا وقتی اجازه تغییر داده را دارد داده را می تواند بخواند؛ غالبا و نه همیشه) . مثلا زمانی که داده رمز نگاری شده نمی توان فهمید داده چیست اما بیت های آن را می تواند تغییر داد.
  • امضای دیجتیال یکی از راه های رسیدن به این اهداف است .
  • رمز نگاری داده قبل از ارسال
  • قرار دادن basic integrity check  ها مثل Parity  ،  Checksum و .. که در برخی از پروتکل ها انجام می گیرد. اما نباید صرفا به این integrity ها اکتفا کرد .
اسکرول به بالا