برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

اصول امنیت برنامه های وب ( بخش اول )

اینترنت و به دنبال آن وب ، دنیای نرم افزار را دستخوش تحولات فراوانی نموده است . ظهور نسل جدیدی از برنامه های کامپیوتری موسوم به "برنامه های وب " از جمله این تحولات عظیم است . پس از ارائه سرویس وب در سال 1991، وب سایت های متعددی ایجاد گردید .  اینگونه سایت ها به منظور ارائه اطلاعات به مخاطبان خود از صفحات وب ایستا استفاده می کردند . در چنین وب سایت هائی ، امکان تعامل کاربر با برنامه وجود نداشت .
با توجه به این که رویکرد فوق با ماهیت و یا روح  نرم افزار چندان سازگار نمی باشد ، تلاش های گسترده ای در جهت ایجاد محتویات پویا انجام و متعاقب آن ، فن آوری های متعددی ایجاد گردید . به عنوان نمونه ، با پیاده سازی فن آوری CGI ( برگرفته از Common Gateway Interface  ) ، امکان استفاده از برنامه های خارجی به منظور تولید محتویات پویا فراهم گردید . بدین ترتیب ، کاربران قادر به درج اطلاعات و ارسال آنها برای یک برنامه خارجی و یا اسکریپت سمت سرویس دهنده شدند . برنامه موجود در سمت سرویس دهنده پس از دریافت اطلاعات و انجام پردازش های تعریف شده ، نتایج را تولید و آنها را برای کاربر ارسال می نمود .
رویکرد فوق ،‌ به عنوان نقطه عطفی در برنامه های وب تلقی می گردد چراکه برای اولین مرتبه امکان تولید محتویات پویا در وب سایت ها فراهم گردید . از آن زمان تاکنون فن آوری های متعددی به منظور تولید برنامه های وب ایجاد شده است .  PHP و ASP.NET نمونه هائی در این زمینه می باشند .  صرفنظر از این که از کدام فن آوری به منظور ایجاد برنامه های وب استفاده می گردد ، ایمن سازی آنان از جمله اهداف مشترک تمامی پیاده کنندگان است .

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

امنیت برنامه های وب را می بایست با توجه به
نوع معماری و رفتار آنان بررسی نمود .

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

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

  • ما ایمن هستیم چون از  SSL ( برگرفته ازSecure Sokets Layer ) استفاده می نمائیم SSL برای رمزنگاری ترافیک موجود بر روی شبکه یک گزینه ایده آل است ولی قادر به بررسی داده ورودی یک برنامه نمی باشد .

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

 با رد امنیت یک سیستم عامل نمی توان امنیت یک سیستم عامل دیگر را تائید نمود.
 ( من خوبم چون شما بد هستید ! )

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

  • Authentication ،  فرآیندی است که به کمک آن به صورت منحصربفرد سرویس گیرندگان یک برنامه شناسائی می گردند . کاربران ،  سرویس ها ، فرآیندها و کامپیوترها ،  نمونه هائی از سرویس گیرندگان یک برنامه می باشند . در واقع ، authentication هویت استفاده کنندگان یک برنامه را بررسی می نماید .

  • Authorization ، فرآیندی است که به کمک آن دستیابی سرویس گیرندگان تائید شده به منابع و عملیاتی که قصد انجام آن را دارند بررسی و مجوز لازم صادر می گردد. فایل ها ، بانک های اطلاعاتی ، جداول ، سطرها ، منابع موجود در سطح سیستم نظیر کلیدهای ریجتسری و داده پیکربندی ، نمونه هائی از منابع مورد درخواست سرویس گیرندگان می باشند . انجام تراکنش هائی خاص نظیر خرید یک محصول ، واریز و انتقال پول از یک حساب به حساب دیگر و یا افزایش اعتبار یک کارت اعتباری از جمله عملیاتی می باشند که می بایست مجوز استفاده از آنان برای سرویس گیرندگان صادر گردد . در واقع ، authorization محدوده مجاز عملیاتی را که یک سرویس گیرنده می تواند انجام دهد را مشخص می نماید .

  • Auditing :  ممیزی موثر و ثبت عملیات انجام شده یکی از اصول مهم در جلوگیری از انجام اعمال خلاف قانون است . بدین ترتیب این اطمینان ایجاد خواهد شد که یک کاربر نمی تواند باعث عدم انحام یک کار و یا فعالیت در سیستم گردد و یا یک تراکنش را مقداردهی اولیه نماید . مثلا" در یک سیستم e-commerce  می بایست از مکانیزم هائی استفاده گردد تا این اطمینان حاصل گردد که یک مصرف کننده نمی تواند سفارش انجام شده برای خرید یکصد نسخه از یک کتاب را انکار نماید .

  • Confidentiality ، که از آن با نام privacy نیز نام برده می شود ، فرآیندی است که به کمک آن این اطمینان ایجاد می گردد که حریم خصوصی داده رعایت و امکان مشاهده آن توسط کاربران غیرمجاز و یا سایر افرادی که  قادر به ردیابی ترافیک یک شبکه می باشند ، وجود نخواهد داشت . 

  •  Integrity ، فرآیندی است که به کمک آن این اطمینان ایجاد می گردد که داده در مقابل تغییرات تصادفی و یا تعمدی حفاظت خواهد شد . همانند privacy ، یکپارچگی اطلاعات یک فاکتور اساسی در خصوص امنیت داده محسوب می گردد ، خصوصا" در مواردی که داده در طول شبکه مبادله خواهد شد . یکپارچگی داده در حال حمل ،‌عموما" با استفاده از روش هائی نظیر hashing و یا کدهای تائید پیام انجام می شود .

  • Availability ، فرآیندی است که به کمک آن این اطمینان ایجاد خواهد شد که همواره داده برای کاربران مجاز در دسترس و قابل استفاده خواهد بود . در اغلب حملات از نوع DoS ، مهاجمان این هدف را دنبال می نمایند که بتوانند امکان استفاده و در دسترس بودن برنامه برای کاربران مجاز را غیرممکن و عملا" آن را از کار بیندازند .

تعاریف اولیه برخی از  اصطلاحات امنیتی : تهدیدات ، نقاط آسیب پذیر و حملات

  • تهدید ( threat ) : به هرگونه پتانسیل بروز یک رویداد مخرب و یا سایر موارد دیگر که می تواند به سرمایه های یک سازمان آسیب برساند ، تهدید  گفته می شود . به عبارت دیگر، هر رویدادی که بتواند به سرمایه های یک سازمان آسیب برساند ، در زمره تهدیدات محسوب می گردد . 

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

  • تهاجم (attack) : عملیاتی است که محوریت آن سوء استفاده از نقاط آسیب پذیر و پتانسیل های بروز یک رویداد مخرب می باشد .  ارسال ورودی مخرب به یک برنامه و یا flooding یک شبکه به منظور از کار انداختن یک سرویس ، نمونه هائی در این زمینه می باشد .

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

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

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

 وجود یک نقطه آسیب پذیر در شبکه به یک مهاجم اجازه می دهد تا کنترل یک host  و یا برنامه را بدست بگیرد .

وجود یک نقطه آسیب پذیر در host  به یک مهاجم اجازه می دهد تا بتواند کنترل یک شبکه و یا برنامه را بدست بگیرد .

وجود یک نقطه آسیب پذیر در برنامه به یک مهاجم اجازه می دهد تا کنترل یک host  و یا شبکه را بدست بگیرد .

 در بخش دوم به بررسی هر یک از لایه های فوق خواهیم پرداخت .

اصول امنیت برنامه های وب ( بخش دوم )

در  بخش اول به این موضوع اشاره گردید که به منظور ایجاد برنامه های وب ایمن ، می بایست از یک رویکرد جامع تبعیت و بر روی سه لایه متفاوت شبکه ، host و برنامه متمرکز گردید. در این بخش به  بررسی ایمن سازی شبکه خواهیم پرداخت .

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

   عناصر شبکه : روتر ،‌ فایروال و سوئیچ
  عناصر شبکه : روتر ،‌ فایروال و سوئیچ

یک برنامه وب بر روی یک زیرساخت شبکه ای ایمن فعالیت و به کاربران خود سرویس های لازم را ارائه می نماید . برای ایمن سازی شبکه ، علاوه بر این که شبکه می بایست در مقابل حملات مبتنی بر TCP/IP از خود محافظت نماید ، بلکه لازم است اقدامات متعدد دیگری نیز در این رابطه انجام شود . ایجاد اینترفیس های مدیریتی ایمن، استفاده از رمزهای عبور قدرتمند ، حصول اطمینان از صحت ترافیک ارسالی از جمله اقدامات دیگر در خصوص ایجاد یک شبکه ایمن می باشد . بدین منظور لازم است که   پورت ها و پروتکل های استفاده شده در هر لایه به دقت بررسی و در صورتی که وجود آنها غیرضروری تشخیص داده شود و یا استفاده از آنها زمینه بروز تهدیداتی را فراهم می نماید ،‌ می بایست در همان لایه با آنان برخورد و از یک راهکار مناسب امنیتی استفاده گردد . 
وجود ضعف امنیتی در یک شبکه زمینه بروز تهدیدات متعددی را فراهم می نماید . بدون شناسائی اینگونه تهدیدات ، امکان مقابله منطقی با آنان وجود نخواهد داشت . 

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

  • جمع آوری اطلاعات
  • sniffing
  • spoofing
  • session hijacking
  • DoS ( برگرفته از Denial of Service )

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

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

نقاط آسیب پذیر
متداولترین نقاط آسیب پذیری که شبکه را مستعد این نوع از حملات می نماید عبارتند از :

  • ماهیت غیرایمن ذاتی پروتکل TCP/IP
  • پیکربندی ضعیف دستگاه های شبکه ای
  • استفاده غیرایمن از سرویس هائی که به وجود آنها در یک شبکه نیاز نمی باشد .

حملات
متداولترین حملات مبتنی بر "جمع آوری اطلاعات"  عبارتند از :

  • استفاده از Tracert به منظور تشخیص توپولوژی شبکه
  • استفاده از Telnet به منظور باز نمودن پورت ها و جمع آوری اطلاعات اولیه 
  • استفاده از پویشگرهای پورت به منظور تشخیص وضعیت پورت ها 
  • استفاده از درخواست های broadcast برای شمارش تعداد host موجود بر روی یک subnet

پیشگیری و مقابله با تهدیدات 
به منظور پیشگیری و مقابله با این نوع حملات می توان از روش های زیر استفاده نمود :

  • استفاده از امکاناتی که اطلاعات اضافه ای را در خصوص پیکربندی نظیر نام و شماره نسخه نرم افزار ارائه نمی نماید .
  • استفاده از فایروال ها به منظور پوشش سرویس هائی که نمی بایست در معرض دید و استفاده عموم قرار داده شوند .

sniffing
sniffing که به آن "استراق سمع "  نیز گفته می شود ، مانیتورینگ ترافیک شبکه برای داده هائی نظیر رمزهای عبور ( رمزنشده) و یا اطلاعات پیکربندی است . با استفاده از یک برنامه  packet sniffer  ، می توان به سادگی تمامی ترافیک plain text  ( رمز نشده ) را مشاهده نمود .

نقاط آسیب پذیر
متداولترین نقاط آسیب پذیری که شبکه را مستعد این نوع از حملات می نماید عبارتند از :

  • ضعف امنیت فیزیکی
  • ضعف رمزنگاری در زمان ارسال داده حساس  و مهم
  • وجود سرویس هائی که با یکدیگر به صورت متن معمولی ( رمز نشده ) ارتباط برقرار می نمایند .
  • استفاده از الگوریتم های ضعیف رمزنگاری

حملات
مهاجمان با قرار دادن یک  packet sniffer  بر روی شبکه می توانند تمامی ترافیک را capture و  آنالیز نمایند .

پیشگیری و مقابله با تهدیدات 
به منظور پیشگیری و مقابله با این نوع حملات می توان از روش های زیر استفاده نمود :

  • استفاده از یک سیستم امنیت فیزیکی مناسب به منظور پیشگیری از نصب دستگاه های مخرب بر روی شبکه
  • رمزنگاری اطلاعات حساس و ترافیک برنامه بر روی شبکه 

Spoofing
spoofing ، که به آن "هویت مبهم "  نیز گفته می شود  ، به کتمان هویت واقعی بر روی شبکه اطلاق می گردد . در این رابطه از یک آدرس مبداء جعلی که بیانگر آدرس اولیه صادرکننده پیام نمی باشد ، استفاده می گردد . در بسیاری موارد از spoofing به منظور مخفی کردن منبع بروز یک تهاجم استفاده می شود. در برخی موارد که دستیابی به منابع موجود بر روی شبکه بر اساس آدرس متقاضیان انجام می شود ، مهاجمان با تغییر آدرس مبداء سعی می نمایند به اینگونه از منابع دستیابی پیدا نمایند .

نقاط آسیب پذیر
متداولترین نقاط آسیب پذیری که شبکه را مستعد این نوع از حملات می نماید عبارتند از :

  • ماهیت غیرایمن ذاتی پروتکل TCP/IP

  • ضعف در فیلترینگ بسته های اطلاعاتی ورودی و خروجی : ترافیک ورودی و خروجی شبکه به درستی کنترل و فیلتر نمی گردد (ingress & egress filtering )

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

پیشگیری و مقابله با تهدیدات 
به منظور پیشگیری و مقابله با این نوع حملات می توان از از فیلترینگ egress و ingress بر روی روتر های perimeter استفاده نمود .


session Hijacking
با استفاده از این نوع حملات که به آنها man in middle نیز گفته می شود ، مهاجمان می توانند از یک برنامه برای تغییر شکل ظاهری خود  به عنوان یک سرویس گیرنده و یا سرویس دهنده موجه استفاده نمایند . بدین ترتیب ، یک سرویس دهنده و یا سرویس گیرنده واقعی فریب خورده و فکر می کنند که با یک host معتبر و مجاز ارتباط برقرار نموده اند . در واقع ، این نوع کامپیوترهای میزبان متعلق به مهاجمان بوده که سعی می نمایند با دستکاری شبکه خود را به عنوان مقصد مورد نظر وانمود نمایند . از این نوع حملات به منظور آگاهی از اطلاعات logon و دستیابی به سیستم و سایر اطلاعات محرمانه استفاده می گردد .

نقاط آسیب پذیر
متداولترین نقاط آسیب پذیری که شبکه را مستعد این نوع از حملات می نماید عبارتند از :

  • ضعف در امنیت فیزیکی
  • ماهیت غیرایمن ذاتی پروتکل TCP/IP
  • مبادله اطلاعات به صورت رمزنشده

 حملات
یک مهاجم می تواند از ابزارهای متعددی به منظور انجام عملیات spoofing ، تغییر روتینگ و دستکاری بسته های اطلاعاتی استفاده نماید. 

پیشگیری و مقابله با تهدیدات 
به منظور پیشگیری و مقابله با این نوع حملات می توان از روش های زیر استفاده نمود :

  • رمزنگاری Session
  • استفاده از روش Stateful inspection در سطح فایروال

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

نقاط آسیب پذیر
متداولترین نقاط آسیب پذیری که شبکه را مستعد این نوع از حملات می نماید عبارتند از :

  • ماهیت غیرایمن ذاتی پروتکل TCP/IP
  • ضعف در پیکربندی روتر و سوئیچ
  • باگ در سرویسهای نرم افزاری

 حملات
متداولترین حملات DoS عبارتند از :

  • ارسال سیلابی از بسته های اطلاعاتی نظیر حملات cascading broadcast
  • بسته های اطلاعاتی SYN flood
  • سوء استفاده از برخی سرویس ها 

پیشگیری و مقابله با تهدیدات 
به منظور پیشگیری و مقابله با این نوع حملات می توان از روش های زیر استفاده نمود : 

  • فیلترینگ درخواست های broadcast
  • فیلترینگ درخواست های ICMP ( برگرفته از  Internet Control Message Protocol )
  • بهنگام سازی و نصب patches سرویس های نرم افزاری

بدون آنالیز صحیح تهدیدات ،
 امکان ایجاد یک محیط و یا شبکه ایمن وجود نخواهد داشت .

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

آشنایی با عملکرد ویروسهای مقیم در حافظه

 

ویروسهای مقیم در حافظه همان طور که از اسم آنها بر می آید با قرار گرفتن در حافظه سیستم شروع به تکثیر و آلوده سازی می کنند. به این ویروسها ویروسهای با عملکرد غیر مستقیم نیز می گویند .

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

 مقایسه عملکرد ویروسهای مقیم و غیر مقیم :

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

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

 مزایای ویروسهای مقیم در حافظه بر ویروسهای غیر مقیم :

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

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

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

 ساختار کلی ویروسهای مقیم در حافظه :

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

1- تست مقیم بودن ویروس در حافظه:

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

  2- تخصیص حافظه :

ویروسها به دو روش کلی در حافظه مقیم می شوند :

1 – با استفاده از وقفه 27h یا تابع 31h از وقفه 21h

2 – با استفاده از دستکاری زنجیره MCB(Memory Control Black) در حافظه .

در روش اول پس از اینکه قسمت غیر مقیم اجرا شد ویروس با استفاده از فراخوانی وقفه 27h و یا تابع 31h از وقفه 21h اجرای خود را خاتمه می دهد و به صورت مقیم در حافظه قرار می گیرد ویروسهایی که از این روش استفاده می کنند بخش تخصیص حافظه را خودشان انجام نمی دهند و این بخش را سیستم عامل با توجه به پارامترهای ورودی انجام می دهد . پس بخش تخصیص حافظه فقط مربوط به ویروسهایی است که از روش دوم برای مقیم شدن استفاده می کنند.

در روش دوم ویروسها ابتدا یک قسمت خالی از حافظه را برای اینکه کدشان را در آن قرار دهند پیدا می کنند (پیدا کردن فضای خالی در حافظه نیز دارای روشهای متنوعی است) سپس به صورت دستی در ابتدای بلاک تخصیص یافته DTA را تشکیل می دهند و بعد با دستکاری زنجیره MCB خود را در وسط یا انتهای این زنجیره  قرار می دهند این عملیات باعث می شود که این قسمت از حافظه به ویروس اختصاص داده شده و توسط برنامه های دیگر اشغال نشود.

  3- کپی ویروس در حافظه :

این بخش مخصوص آن دسته از ویروس های مقیم در حافظه است که از روش دستکاری زنجیره MCB برای تخصیص حافظه استفاده می کنند . در این قسمت ویروس از ابتدا تا انتهای خود را در بلاک اختصاص داده شده در حافظه کپی می کند.

  4- تغییر بردار وقفه مورد نظر و اشاره آن به ویروس :

در این قسمت ویروس با دستکاری آدرس وقفه مورد نظر در جدول بردار وقفه ها که از آدرس 0000:0000 شروع می شود آخرین مرحله مقیم شدن را انجام می دهد . معمولا ویروسها وقفه های 21h و 9h , 13h را در اختیار می گیرند . ویروسها با در اختیار گرفتن وقفه 21h برای عملیات تکثیر و مخفی کاری وقفه 9h برای عملیات تخریبی دیسک ها یا جلوگیری از دسترسی کاربر به اطلاعات دیسک ها استفاده می کنند در این بخش ویروس آدرس وقفه های مورد نظر خود را از جدول بردار وقفه ها برداشته و درون قسمتی از ویروس کپی شده در حافظه ذخیره می کند و به جای آن آدرس بخش مقیم خود را قرار می دهد در نتیجه هر بار که برنامه ای این وقفه ها را فراخوانی کند ابتدا بخش مقیم ویروس اجرا شده و پس ار آن وقفه اصلی (که آدرس آن درون بخش مقیم ویروس توسط بخش غیر مقیم ذخیره شده است)اجرا می شود.

  5- خاتمه اجرای بخش غیر مقیم ویروس و اجرای برنامه اصلی فایل آلوده :

در این مر حله دیگر ویروس در حافظه مقیم شده است لذا ویروس کنترل را به برنامه اصلی می دهد تا برنامه اصلی اجرا شود و کاربر متوجه اجرای ویروس نشود.

آشنایی با ویروس NAKEDWIFE

ویروس  NakedWife به صورت ضمیمه به یک نامه الکترونیکی وارد کامپیوتر قربانی می شود و سپس با ظاهر شدن به صورت یک ویدیوی مرموز درباره همسر یک مرد ناشناس کاربران را وسوسه می کند تا آن را اجرا کنند. دامنه تخریب این ویروس بسیار وسیع است و ویروس چندین فایل سیستمی مهم را در کامپیوتر قربانیان خود حذف می کند .
   تعدادی از شرکت های تولید کننده نرم افزار ضد ویروس به دلیل خسارتی که ویروس NakedWife می تواند به بار آورد آن را به عنوان یک ویروس خیلی خطرناک درجه بندی کرده اند. این ویروس به محض آلوده کردن تمام فایل های  ,BMP ,COM ,DLL ,EXE ,INI و همچنین تمام فایل های موجود در پوشه های WINDOWS و WINDOWS/SYSTEM را حذف می کند، با فرض اینکه ویندوز در پوشه  WINDOWS نصب شده باشد .   NakedWife یک ویروس جدید از نوع   VBS Worm است که به سرعت از طریق پست الکترونیکی منتشر می شود این ویروس که نام مستعار آن Jib Jab است فایل های مهم را از پوشه های نامبرده  حذف می کند . ویروس NakedWife با مشخصات زیر از طریق یک نامه الکترونیکی به کامپیوتر شما راه می یابد:
موضوع نامه :

FW : Naked Wife  

بدنه نامه :

 (My wife never look like that :)

best regards,

(نام فرستنده)

نام ضمیمه :

NakedWife.exe

       اگر کاربر این ضمیمه را باز کند ویروس خود را به صورت نامه الکترونیکی به تمام آدرسهای موجود در کتاب آدرس Outlook  ارسال می کند. این ویروس همچنین یک پنجره Flash را بار گذاری می کند که در آن پیغام JibJab Loading را به نمایش می گذارد سپس فایل هایی که دارای پسوند های  BMP ,COM ,DLL ,EXE ,INI هستند را حذف می کند: در مرحله بعدی ویروس پیغام زیر را به نمایش می گذارد :

you're now f**** D!c2001 by BGK (Bill Gates Killer)

برای متوقف کردن این ویروس به نکات زیر توجه کنید:

•  Outlook Security Patch  متعلق به شرکت مایکروسافت را Download کنید.

•  ضمیمه ها را باز نکنید.

•  همیشه گوش به زنگ باشید.

•  از کامپیوتر خود محافظت کنید.

•  سیستم خود را به طور منظم اسکن کنید.

•  نرم افزار ضد ویروس خود را به روز برسانید.

 با توجه به اینکه این ویروس خود را به صورت یک فیلم Micromedia Flash نشان می دهد، منحصر بفرد می باشد. اگر کاربری فریب خورده و ضمیمه را باز کند یک پنجره باز می شود و به نظر می رسد که یک فیلم Flash در حال بارگذاری است. پنجره شامل چند لوگو از Jibjab.com است که یک شرکت تولید کننده تصاویر Flash در نیویورک است این شرکت اظهار داشته است که هیچ ارتباطی با این ویروس ندارد.

 کاربرانی که با اشتیاق منتظر بارگذاری فیلم می مانند ناامید خواهند شد چون چنین چیزی اتفاق نمی افتد اگر یک قربانی از گزینه HELP/ABOUT در آن پنجره استفاده کند یک پیغام آزار دهنده با این مضمون ظاهر می شود:

you're now f**** D!c2001 by BGK (Bill Gates Killer)

 به اعتقاد پت نولان یکی از پژوهشگران مرکز McAfee این ویروس یک ویروس موذی است . چون ضمیمه آن با یک آیکون Shockwave Flash که به نظر واقعی می آید همراه است.

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

آشنایی با ویروس CHET

نام : Chet
نام مستعار : W32/Chet@MM, Anniv911, 11september, September11
 

 این کرم از نوع کرم های ایمیلی بوده که در تاریخ دهم ماه September سال 2002 فعال شد و دارای یک BUG جدی نیز می باشد .
به همین دلیل این کرم موفقیت چندانی در گسترش و انتشار پیدا نکرد . با توجه به سر نخ های موجود منشاء آن از روسیه شناخته شده است.
این کرم سعی می کند خود را از راه ضمیمه های نامه به نام 11 September.exe منتشر کند. پس از اجرای فایل کرم فایل را به آدرس های دیگری که از Address Book در ویندوز می گیرد ضمیمه می کند و به آنها ارسال می کند:
 

From: main@world.com
To: all-people-in-the-address-book
Subject:  All people!!
Attachment: 11september.exe
Dear ladies and gentlemen!
The given letter does not contain viruses, and is not Spam.
We ask you to be in  earnest to this letter. As you know America and
England have begun bombardment of  Iraq, cause of its threat for all the world.
It isn't the truth. The real reason is  in money laundering and also to cover up traces
after acts of terrorism  September, 11, 2001. Are real proofs of connection between
Bush and Al-Qaeda  necessary for you? Please! There is a friendly dialogue between
Bin Laden and the secretary of a state security of USA in the given photos.
In the following photo you'll see, how FBI discusses how to strike over New York to lose
people as much as possible. And the document representing the super confidential
agreement between CIA and Al-Qaeda is submitted to your attention. All this
circus was specially played to powder brains!! You'll find out the truth.
Naked truth, instead of TV showed.
For your convenience, and to make letter less, all documentary materials
(photos and MS Word documents) are located in one EXE file.  Open it, and all materials will be
installed on your computer. You will receive the  freshest and classified
documents automatically from our site.
It isn't a virus! You can trust us absolutely. We hope, that it will open your
eyes on many things occurring in this world.

 

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

'HKLUSoftwareMicrosoftWindowsCurrentVersionRunICQ1'


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