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

سوال : چرا فایل shadow از passwd جدا شده است ؟

این مساله به پروسه ی login برمیگردد . manual مربوط به login را بخوانید . در این توضیحات نوشته شده است که قبلا در فایل passwd در فیلد دوم ( که الان X وجود دارد )، پسوردها به صورت رمز شده قرار می گرفت . می خواستند اجازه read از این فایل را بگیرند اما چون در کنار آن اطلاعات دیگری هم بود این کار صورت نگرفت . پسوردها به فایل shadow انتقال یافت و به گونه ای این فایل پیکربندی شده است که حق دسترسی root برای مشاهده آن نیاز است .

  • بحث رمزنگاری در سیستم های عامل یکی از نکات پر استفاده است که الگوریتم ها و روش های مختلفی را در سیستم قرار می دهند به منظور اینکه به نحوی اطلاعاتی را رمز نگاری می کنند . هدف رمز نگاری برقراری امنیت به واسطه پنهان کردن داده است . رمزنگاری به محرمانگی کمک می کند . البته برخی از الگوریتم ها ترجیشان بر این است که صحت را هم پوشش دهند ( یعنی از تغییر داده هم جلوگیری می شود ). برخی از الگوریتم های رمزنگاری بدین صورت هستند که وقتی داده را رمز می کنند (encrypt) مجددا می توانند داده را رمزگشایی (decrypt) کنند . فرض کنید login سیستم از چنین الگوریتم رمزنگاری استفاده کند ( و فرضاً کار رمزنگاری و رمزگشایی با استفاده از یک کلید انجام می شود ). اگر کلید آشکار شود می توان فرایند login را مورد حمله قرار داد . در بحث امنیت سعی می کنند که وابستگی سیستم را به یک موجودیت قرار ندهند . برای مثال در طراحی شبکه سعی می شود bottleneck (گلوگاه) ایجاد نشود (یکی از شرایط ایجاد bottleneck زمانی است که ترافیک زیاد باشد و پردازنده کم). این بحث در تمام مباحث مدیریتی مطرح است . مثلا قانون anti–trust را قرار می دهند که یک موجودیت آن قدر قدرتمند نشود که بتواند هرکاری بکند ( مثل AT&T که کودتا کند و دولت را در آمریکا عوض کند ). در بحث امنیت نباید طراحی به گونه ای باشد که کل امنیت معطوف فایروال موجود در شبکه مان باشد ( انجام defense in depth) .
  • در حال حاضر رمزنگاری که در سیستم های لینوکس و ویندوز قرار می گیرد ، الگوریتم MD5 است . این الگوریتم یک الگوریتم یک طرفه است . یعنی به ازای هر ورودی یک عبارت 32 بایتی خروجی می دهد که از این خروجی نمی توان ، ورودی را تعیین کرد که چه بوده است . در زمان login وقتی کاربر کلمه عبور خود را وارد می کند از کلمه عبور MD5 گرفته می شود و با MD5 کلمه عبور کاربر که در سیستم موجود است مقایسه می شود  (این الگوریتم یک الگوریتم یک طرفه است ). ویژگی های یک الگوریتم یک طرفه : نتوان از خروجی به ورودی رسید. 2- دو عبارت وجود نداشته باشند که هش (hash) آن ها یکسان باشد . اینکه می گویند الگوریتم MD5 شکسته شده است یعنی اینکه که در کنفرانسی در مالزی فردی توانست ویژگی دوم را نقض کند .
  • نکته : یکی از ایراداتی که به الگوریتم DES وارد بود این بود که طرز کار آن نامعلوم و مبهم بود .برای همین از آن استفاده نمی شد چون احتمال این وجود داشت که طراح آن یک شاه کلید (Master-key) داشته باشد که بتواند تمام رمزها را باز کند .
  • قوانینی هم برای رمزنگاری قرار داده شده است که مثلا اگر داده ای که رمز می کنید از یک سری الگوریتم های خاص نباشد ، محکومیت وجود دارد .در کشور خودمان اگر از ماهواره برای ارسال اطلاعات استفاده شود جرم تلقی می شود . اینکه امریکا اجازه ی استفاده برخی الگوریتم ها را داده است برای این است که با قدرت پردازشی که دارند می توانند آن ها را بشکنند و brute force کنند.
  • یکی از ویژگی های یک سیستم عامل، قدرت log کردن آن است . اینکه در چه حدی می تواند اطلاعات را log کند . سیستم لینوکس قدرت خوبی برای log کردن دارد . می توان ابزارهای مختلفی را در آن قرار داد و log management قرارداد و logها را آنالیز کرد.

pts به همراه یک کد ( یک عدد) session هر فرد که برقرار می شود ( فعلا فرد با یک سرور ارتباط برقرار می کند و ssh login می کند ) یک کد نشست  به فرد داده می شود ( به ویدیو نگاه کنید ). می توان با دستور زیر pts ها را دید.

ls  -l  /dev/pts

حال با دستور w  می توان دید که IP یک pts با کد مشخص چند بوده است . به همین علت است که خیلی اوقات نفوذگر ابتدا سعی می کند برای خود mac و IP جعلی قرار بدهد و یا از سیستم دیگر برای نفوذ استفاده کند.

  • در بحث قوانین وضع شده در حوزه امنیت می گویند شما مسئول برقراری امنیت سیستم خودتان هستید . یعنی اگر کوتاهی کنید و از سیستم شما برای استفاده شود، مقصر خودتان هستید .

دستور w نشان می دهد که چه کسی در سیستم login  است ، چه command اجرا کرده است ، چند دقیقه است که بی کار است ، چه مدتی CPU استفاده کرده است ، آخرین دستوری که اجرا کرده چه بوده، از چه IP و از چه ترمینالی (pts) است.

  • خبری بود با این محتوا که با استفاده از 200 دستگاه playstation3(PS3) یکی از الگوریتم های رمزنگاری را شکستند . چرا از این سیستم ها استفاده کردند ؟  سیستمی مثل PS3 از معماری هایی به نام معماری مارتیسی که از ساختارهای حافظه ای ماتریس استفاده می کنند بهره می برند.
  • الگوریتمی که از نظر ریاضی ثابت شده باشد که برگشت ناپذیر است ، هرچقدر هم که شما قدرت پردازشی بالا ( مثل داشتن تعداد زیادی سرور = server farm) داشته باشید ، بازهم نمی توانید از خروجی به ورودی برسید . پس چگونه در برخی از سایت ها پسورد رمز شده (هش شده) را می دهیم و آن را کرک (Crack) می کند و برمی گرداند ؟ کاری که برخی از این سایت ها انجام می دهند این است که جدولی از یک سری پسوردهای مختلف را از دیکشنری که آماه کرده اند برمی دارند ، آن را مز می کند ( هش می کند ) و پس با مقدار رمز شده ای که شما داده اید مقایسه می کند یعنی محاسبه از قبل انجام شده و فقط عمل جستجو انجام می شود . سیستم هرچه تعداد از قبل رمز شده عبارات بیشتری را داشته باشد بهتر می تواند پاسخگو باشد . به این جدول که حاوی اطلاعات از قبل محاسبه شده است و برای شکستن توابع هش ( رمزنگاری ) استفاده می شود ، rainbow table می گویند .
  • دقت کنید که در یک الگوریتم مثلا MD5 به ازای ورودی یکسان ، خروجی یکسان خواهد بود . مثلا هش عبارت “12345” همیشه یک مقدار خواهد بود . ما در لینوکس سه user با نام های مختلف اما پسوردهای یکسان ایجاد کردیم وسپس مقدار پسورد این سه user را درفایل /etc/shadow مشاهده کردیم . این سه پسورد هش شده با یکدیگر متفاوت بودند چرا ؟ زیرا خود لینوکس زمانی که می خواهد از پسورد هش بگیرد چیزهای دیگر مثل نام کاربری را هم به آن اضافه می کند و سپس از کل آن هش می گیرد . به همین علت هش پسوردهای یکسان با یکدیگر برابر نیست. به عبارتی که به کلمه عبور ( ویا هرچیز دیگری که می خواهیم از آن هش بگیریم) اضافه می شود اصطلاحا salt می گویند.
اسکرول به بالا