وب سرویس و ویروسهای اینترنتی
وب سرویس چیست ؟
اشاره :
کسانی که با صنعت IT آشنایی دارند حتما ً نام وب سرویس را شنیده اند . برای مثال ، بیش از ۶۶ درصد کسانی که در نظر سنجی مجله InfoWorld شرکت کرده بودند بر این توافق داشتند که وب سرویس ها مدل تجاری بعدی اینترنت خواهند بود . به علاوه گروه گارتنر پیش بینی کرده است که وب سرویس ها کارآیی پروژه های IT را تا ۳۰ در صد بالا می برد . اما وب سرویس چیست و چگونه شکل تجارت را در اینترنت تغییر خواهد داد ؟
برای ساده کردن پردازش های تجاری ، برنامه های غیر متمرکز (Enterprise) باید با یکدیگر ارتباط داشته باشند و از داده های اشتراکی یکدیگر استفاده کنند . قبلا ً این کار بوسیله ابداع استاندارد های خصوصی و فرمت داده ها به شکل مورد نیاز هر برنامه انجام می شد . اما دنیای وب و XML – تکنولوژی آزاد برای انتقال دیتا – انتقال اطلاعات بین سیستم ها را افزایش داد . وب سرویس ها نرم افزارهایی هستند که از XML برای انتقال اطلاعات بین نرم افزارهای دیگر از طریق پروتوکول های معمول اینترنتی استفاده می کنند .
به شکل ساده یک وب سرویس از طریق وب اعمالی را انجام می دهد (توابع یا سابروتین ها ) و نتایج را به برنامه دیگری می فرستد . این یعنی برنامه ای در یک کامپیوتر در حال اجراست ، اطلاعاتی را به کامپیوتری می فرستد و از آن درخواست جواب می کند ، برنامه ای که در آن کامپیوتر دوم است کارهای خواسته شده را انجام می دهد و نتیجه را بر روی ساختارهای اینترنتی به برنامه اول بر می گرداند . وب سرویس ها می توانند از پروتکول های زیادی در اینترنت استفاده کنند اما بیشتر از HTTP که مهم ترین آنهاست استفاده می شود .
وب سرویس هر توع کاری می تواند انجام دهد . برای مثال در یک برنامه می تواند آخرین عنوان های اخبار را از وب سرویس Associated Press بگیرد یا یک برنامه مالی می تواند آخرین اخبار و اطلاعات بورس را از وب سرویس بگیرد . کاری که وب سرویس انجام می دهد می تواند به سادگی ضرب ۲ عدد یا به پیچیدگی انجام کلیه امور مشترکین یک شرکت باشد .
وب سرویس دارای خواصی است که آن را از دیگر تکنولوژی و مدل های کامپیوتری جدا می کند ، Paul Flessner ، نایب رییس مایکروسافت در dot NET Enterprise Server چندین مشخصه برای وب سرویس در یکی از نوشته هایش ذکر کرده است ، یک ، وب سرویس ها قابل برنامه ریزی هستند . یک وب سرویس کاری که می کند را در خود مخفی نگه می دارد وقتی برنامه ای به آن اطلاعات داد وب سرویس آن را پردازش می کند و در جواب آن اطلاعاتی را به برنامه اصلی بر می گرداند . دوم ، وب سرویس ها بر پایه XML بنا نهاده شده اند . XML
و XML های مبتنی بر SOAP یا Simple Object Access Protocol تکنولوژی هایی هستند که به وب سرویس این امکان را می دهند که با دیگر برنامه ها ارتباط داشته باشد حتی اگر آن برنامه ها در زبانهای مختلف نوشته شده و بر روی سیستم عامل های مختلفی در حال اجرا باشند . همچین وب سرویس ها خود ، خود را توصیف می کنند . به این معنی که کاری را که انجام می دهند و نحوه استفاده از خودشان را توضیح می دهند . این توضیحات به طور کلی در WSDL یا Web Services Description Language نوشته می شود . WSDL یک استاندارد بر مبنای XML است . به علاوه وب سرویس ها قابل شناسایی هستند به این معنی که یرنامه نویس می تواند به دنبال وب سرویس مورد علاقه در دایرکتوری هایی مثل UDDI یا Universal Description , Discovery and Integration جستجو کند . UDDI یکی دیگر از استاندارد های وب سرویس است .
نکات تکنولوژی وب سرویس :
همانطور که در ابتدا توضیح داده شد یکی از دلایل اینکه وب سرویس از دیگر تکنولوژی های موجود مجزا شده است استفاده از XML و بعضی استاندارد های تکنیکی دیگر مانند SOAP ، WSDL و UDDI است . این تکنولوژی های زمینه ارتباط بین برنامه ها را ایجاد می کند به شکلی که مستقل از زبان برنامه نویسی ، سیستم عامل و سخت افزار است .
SOAP یک مکانیزم ارتباطی را بین نرم افزار و وب سرویس ایجاد می کند . WSDL
یک روش یکتا برای توصیف وب سرویس ایجاد می کند و UDDI یک دایرکتوری قابل جستجو برای وب سرویس می سازد . وقتی اینها با هم در یک جا جمع می شود این تکنولوژی ها به برنامه نویس ها اجازه می دهد که برنامه های خود را به عنوان سرویس آماده کنند و بر روی اینترنت قرار دهند .
شکل زیر نقش هر کدام از استاندارد ها را در ساختار وب سرویس نمایش می دهد . در قسمت های بعدی هر کدام از این تکنولوژی ها را بررسی می کنیم .
آدرس شکل :
http://www.1.ir/articles/webservicedesc.htm
XML یا eXtensible Markup Language :
XML یک تکنولوژی است که به شکل گسترده از آن پشتیبانی می شود ، همچنین این تکنولوژی Open است به این معنی که تعلق به شرکت خاصی ندارد . اولین بار در کنسرسیوم WWW یا W3C در سال ۱۹۹۶ برای ساده کردن انتقال دیتا ایجاد شده است . با گسترده شدن استفاده از وب در دهه ۹۰ کم کم محدودیت های HTML مشخص شد .
ضعف HTML در توسعه پذیری ( قابلیت اضافه و کم کردن خواص ) و ضعف آن در توصیف دیتاهایی که درون خود نگهداری می کند برنامه نویسان را از آن نا امید کرد . همچنین مبهم بودن تعاریف آن باعث شد از توسعه یافتن باز بماند . در پاسخ به این اشکالات W3C یک سری امکانات را در جهت توسعه HTML به آن افزود که امکان تغییر ساختار متنهای HTML مهم ترین آن است . این امکان را CSS یا Cascade Style Sheet می نامند .
این توسعه تنها یک راه موقتی بود . باید یک روش استاندارد شده ، توسعه پذیر و داری ساختار قوی ایجاد می شد .
در نتیجه W3C XML را ساخت . XML دارای قدرت و توسعه پذیری SGML یا Standard Generalized Markup Language و سادگی که در ارتباط در وب به آن نیاز دارد است
استقلال اطلاعات یا جدا بودن محتوا از ظاهر یک مشخصه برای XML به حساب می آید . متنهای XML فقط یک دیتا را توصیف می کنند و برنامه ای که XML برای آن قابل درک است – بدون توجه به زبان و سیستم عامل – قادر است به اطلاعات درون فایل XML هر گونه شکلی که مایل است بدهد . متنهای XML حاوی دیتا هستند بدون شکل خاص بنابراین برنامه ای که از آن می خواهد استفاده کند باید بداند که چگونه می خواهد آن اطلاعات را نمایش دهد .
بنابراین نحوه نمایش یک فایل XML در یک PC با PDA و تلفن همراه می تواند متفاوت باشد .
وقتی یک برنامه با متن XML مواجه می شود باید مطمئن باشد که آن متن حاوی دیتای مورد نظر خود است . این اطمینان توسط برنامه هایی با نام XML Parser حاصل می شود . تجزیه کننده ها دستورات متن XML را بررسی می کنند .
همچنین آنها به برنامه کمک می کنند تا متن های XML را تفسیر کند . به صورت اختیاری هر متن XML می تواند به متن دیگری اشاره کند که حاوی ساختار فایل XML اصلی باشد . به آن متن XML دوم DTD یا Document Type Definition گفته می شود .
وقتی فایل XML به DTD اشاره می کند برنامه تجزیه کننده فایل اصلی را با DTD بررسی می کند که آیا به همان ساختاری که در DTD توصیف شده شکل گرفته است یا خیر . اگر یک تجزیه کننده XML بتواند یک متن را به درستی پردازش کند متن XML نیز به شکل صحیحی فرمت شده است .
وقتی که اکثر نرم افزار ها امکانات وبی خود را افزایش دادند این طور به نظر می آید که XML به عنوان یک تکنولوژی جهانی برای فرستادن اطلاعات بین برنامه های انتخاب شود . تمامی برنامه هایی که از XML استفاده می کنند قادر خواهند بود که XML ِ همدیگر را بفهمند . این سطح بالای تطابق بین برنامه ها باعث می شود که XML یک تکنولوژی مناسب برای وب سرویس باشد ، چون بدون اینکه احتیاج به سیستم عامل و سخت افزار یکسان باشد می تواند اطلاعات را جابجا کند .
SOAP یا Simple Object Access Protocol :
SOAP یکی از عمومی ترین استاندارد هایی است که در وب سرویس ها استفاده می شود . طبق شواهد اولین بار توسط DeveloperMentor ، شرکت UserLand و مایکروسافت در سال ۱۹۹۸ ساخته شده و نسخه اول آن در سال ۱۹۹۹ ارایه شده است . آخرین نسخه SOAP ، نسخه ۱.۲ بود که در دسامبر سال ۲۰۰۱ در W3C ارایه شد . نسخه ۱.۲ نشان دهنده کار زیاد بر روی آن و نمایانگر اشتیاق زیاد صنعت IT برای استفاده از SOAP و وب سرویس است .
هدف اصلی SOAP ایجاد روش برای فرستادن دیتا بین سیستم هایی است که بر روی شبکه پخش شده اند . وقتی یک برنامه شروع به ارتباط با وب سرویس می کند ، پیغام های SOAP وسیله ای برای ارتباط و انتقال دیتا بین آن دو هستند .
یک پیغام SOAP به وب سرویس فرستاده می شود و یک تابع یا ساب روتین را در آن به اجرا در می آورد به این معنی که این پیغام از وب سرویس تقاضای انجام کاری می کند . وب سرویس نیز از محتوای پیغام SOAP استفاده کرده و عملیات خود را آغاز می کند . در انتها نیز نتایج را با یک پیغام SOAP دیگر به برنامه اصلی می فرستد .
به عنوان یک پروتکول مبتنی بر XML ، SOAP تشکیل شده از یک سری الگو های XMLی است . این الگو ها شکل پیغام های XML را که بر روی شبکه منتقل می شود را مشخص می کند ، مانند نوع دیتا ها و اطلاعاتی که برای طرف مقابل تفسیر کردن متن را آسان کند .
در اصل SOAP برای انتقال دیتا بر روی اینترنت و از طریق پروتکول HTTP طراحی شده است ولی از آن در دیگر مدلها مانند LAN نیز می توان استفاده کرد . وقتی که وب سرویس ها از HTTP استفاده می کنند به راحتی می توانند از Firewall عبور کنند .
یک پیغام SOAP از سه بخش مهم تشکیل شده است : پوشش یا Envelope ، Header ، بدنه یا Body . قسمت پوشش برای بسته بندی کردن کل پیغام به کار می رود . این بخش محتوای پیغام را توصیف و گیرنده آن را مشخص می کند .
بخش بعدی پیغام های SOAP ، Header آن است که یک بخش اختیاری می باشد و مطالبی مانند امنیت و مسیریابی را توضیح می دهد . بدنه پیغام SOAP بخشی است که دیتاهای مورد نظر در آن جای می گیرند .
دیتاها بر مبنای XML هستند و از یک مدل خاص که الگوها (Schemas) آن را توضیح می دهند تبعیت می کنند . این الگو ها به گیرنده کمک می کنند تا متن را به درستی تفسیر کند .
پیغام های SOAP نوسط سرور های SOAP گرفته و تفسیر می شود تا در نتیجه آن ، وب سرویس ها فعال شوند و کار خود را انجام دهند .
برای اینکه از SOAP در وب سرویس استفاده نکنیم از تعداد زیادی پروتکول باید استفاده شود . برای مثال XML-RPC تکنولوژی قدیمی تری بود که همین امکانات را ایجاد می کرد . به هر حال ، خیلی از سازندگان بزرگ نرم افزار SOAP را بر تکنولوژی های دیگر ترجیح دادند .
دلایل زیادی برای انتخاب SOAP وجود دارد که خیلی از آنها درباره پروتکول آن است که فراتر از این متن می باشد . ۳ برتری مهم SOAP نسبت به تکنولوژی های دیگر : Simplicity , Extensibility و Interoperability است .
پیغام های SOAP معمولا ً کدهای زیادی ندارند و برای فرستادن و گرفتن آن به نرم افزار های پیچیده نیاز نیست .
SOAP این امکان را به برنامه نویس می دهد تا بنا به نیاز خود آن را تغییر دهد . در آخر بدلیل اینکه SOAP از XML استفاده می کند می تواند بوسیله HTTP اطلاعات را انتقال بدهد بدون اینکه زبان برنامه نویسی ، سیستم عامل و سخت افزار برای آن مهم باشد .
WSDL یا Web Services Description Language :
استاندارد دیگری که نقش اساسی در وب سرویس بازی می کند WSDL است . همانطور که قبلا ً اشاره کردیم یکی از خواص وب سرویس ها توصیف خود آنهاست به این معنی که وب سرویس دارای اطلاعاتی است که نحوه استفاده از آن را توضیح می دهد .
این توضیحات در WSDL نوشته می شود ، متنی به XML که به برنامه ها می گوید این وب سرویس چه اطلاعاتی لازم دارد و چه اطلاعاتی را بر می گرداند .
وقتی که سازندگان نرم افزار برای اولین بار SOAP و دیگر تکنولوژی های وب سرویس را ساختند دریافتند که برنامه ها قبل از اینکه شروع به استفاده از یک وب سرویس بکنند باید اطلاعاتی درباره آن را داشته باشند . اما هر کدام از آن سازندگان برای خودشان روشی برای ایجاد این توضیحات ابداع کردند و باعث شد که وب سرویس ها با هم هماهنگ نباشد .
وقتی IBM و مایکروسافت تصمیم گرفتند تا استاندارد های خود را یکسان کنند WSDL بوجود آمد . در ماه مارس سال ۲۰۰۱ مایکروسافت ، IBM و Ariba نسخه ۱.۱ را به W3C ارائه کردند . گروهی از W3C بر روی این استاندارد کار کردند و آن را پذیرفتند . هم اکنون این تکنولوژی در دست ساخت است و هنوز کامل نشده . ولی هم اکنون اکثر سازندگان وب سرویس از آن استفاده می کنند .
هر وب سرویسی که بر روی اینترنت قرار می گیرد دارای یک فایل WSDL است که مشخصات ، مکان و نحوه استفاده از وب سرویس را توضیح می دهد .
یک فایل WSDL نوع پیغام هایی که وب سرویس می فرستد و می گیرد را توضیح می دهد مانند پارامترهایی که برنامه صدا زننده برای کار با وب سرویس باید به آن بفرستد . در تئوری یک برنامه در وب برای یافتن وب سرویس مورد نظر خود از روی توضیحات WSDL ها جستجو می کند . در WSDL اطلاعات مربوط به چگونگی ارتباط با وب سرویس بر روی HTTP یا هر پروتکول دیگر نیز وجود دارد .
این مهم است که بدانیم WSDL برای برنامه ها طراحی شده است نه برای خواندن آن توسط انسان . شکل فایلهای WSDL پیچیده به نظر می آید ولی کامپیوترها می توانند آن را بخوانند و نجزیه و تحلیل بکند .
خیلی از نرم افزارهایی که وب سرویس می سازند فایل WSDL مورد نیاز وب سرویس را نیز تولید می کنند بنابراین وقتی برنامه نویس وب سرویس خود را ساخت به شکل خودکار WSDL مورد نیاز با آن نیز ساخته می شود و احتیاجی به آموزش دستورات WSDL برای ساختن و استفاده از وب سرویس نیست .
UDDI یا Universal Description , Discovery and Integration :
سومین استاندارد اصلی وب سرویس ها ، UDDI ، به شرکتها و برنامه نویسان اجازه می دهد تا وب سرویس های خود را بر روی اینترنت معرفی کنند . این استاندارد در اصل بوسیله مایکروسافت ، IBM و Ariba و ۵۰ شرکت بزرگ دیگر ساخته شده است .
با استفاده از UDDI شرکتها می توانند اطلاعات خود را در اختیار شرکت های دیگر قرار بدهند و مدل B2B ایجاد کنند . همان طور که از نام آن مشخص است شرکت ها می توانند وب سرویس خود را معرفی کنند ، با وب سرویس دیگران آشنا شوند و از آن در سیستم های خود استفاده کنند .
این استاندارد جدیدی است و در سال ۲۰۰۰ ساخته شده ، کنسرسیومی از شرکتهای صنعتی در حال کار بر روی آن هستند ؛ نسخه دوم UDDI در ماه ژوئن سال ۲۰۰۱ ارائه شد و نسخه سوم آن در دست ساخت است .
UDDI یک متن مبتنی بر XML را تعریف می کند که در آن شرکت ها توضیحاتی درباره چگونگی کار وب سرویس شرکتشان و امکانات خود می دهند . برای تعریف این اطلاعات از شکل خاصی که در UDDI توضیح داده شده استفاده می شود .
شرکت ها می توانند این اطلاعات را در UDDI شرکت خود نگهداری کنند و تنها به شرکت های مورد نظرشان اجازه دستیابی به آنها را بدهند یا آنها را در مکان عمومی و د اینترنت قرار دهند . بزرگترین و مهمترین پایگاه UDDI ، UDDI Business Registry یا UBR نام دارد و توسط کمیته UDDI طراحی و اجرا شده است . اطلاعات این پایگاه در چهار نقطه نگهداری می شود ، مایکروسافت ، IBM ، SAP و HP . اطلاعاتی که در یکی از چهار پایگاه تغییر کند در سه تای دیگر نیز اعمال می شود .
اطلاعات درون این پایگاه ها شبیه دفترچه تلفن است . White Pages که در آنها اطلاعات تماس شرکت ها و توضیحات متنی آنهاست ، Yellow Pages حاوی اطلاعات طبقه بندی شده شرکتها و اطلاعات درباره توانایی های الکترونیکی آنها می باشد ، Green Pages ، حاوی اطلاعات تکنیکی درباره سرویس های آنها و نحوه پردازش اطلاعات شرکت آنها می باشد .
اطلاعات تجاری و سرویس های شرکت ها کاملا ً طبقه بندی شده است و اجازه می دهد که به راحتی در آنها جستجو کرد . سپس متخصصان IT می توانند از این اطلاعات استفاده کرده و شرکت ها را برای خدمات بهتر به هم متصل کنند . با این شرح UDDI امکان پیاده سازی مدل B2B را ایجاد می کند و شرکتها می توانند از سرویس های یکدیگر استفاده کنند .
شرکت هایی که به UDDI علاقه نشان داده اند قدرت مند هستند و خیلی از آنها از وب سرویس و استاندارد های آن در محصولات خود استفاده می کنند . NTT Communications of Tokyo یکی از شرکت هایی است که در حال اضافه کردن توضیحاتی به ساختار UDDI است . در هر حال شرکت ها هنوز کمی درباره وارد کردن خود در پایگاه های عمومی محتاط هستند . این چیز عجیبی نیست . شرکتها ابتدا این امکانات را فقط برای شرکای خود ایجاد می کنند .
شرکتهای بزرگ نیز برای مدیریت بر سرویس های خود و اشتراک آنها بین قسمت های مختلف از این استاندارد استفاده می کنند . وقتی این استاندارد به حد بلوغ خود برسد و کاربران با آن احساس راحتی بکنند استفاده از آن نیز در مکان های عمومی فراگیر خواهد بود .
این تغییر رویه برای شرکت های بزرگی که B2B را به روش های قدیمی اجرا کرده بودند مشکل است . بعضی نیز اشکال امنیتی بر این روش می گیرند و مایل نیستند اطلاعاتشان را بدهند . اما با گذشت زمان و کامل شدن این تکنولوژی و درک لزوم استفاده از آن شرکت ها چاره ای جز استفاده از آن ندارند .
ویروس های اینترنتی
اشاره :
ویروس های کامپیوتری از جمله موارد اسرارآمیز و مرموز در دنیای کامپیوتر بوده که توجه اغلب کاربران را بخود جلب می نماید. ویروس های کامپیوتری بخوبی قدرت آسیب پذیری سیستم های اطلاعاتی مبتنی بر کامپیوتر را به ما نشان می دهند. یک ویروس مدرن و پیشرفته قادر به بروز آسیب های کاملا” غیرقابل پیش بینی در اینترنت است . مثلا” ویروس ملیزا (Melissa) ، که در سال ۱۹۹۹ متداول گردید ، از چنان قدرت و توانی برخوردار بود که شرکت های بزرگی نظیر مآیکروسافت و سایر شرکت های بزرگ را مجبور به خاموش نمودن کامل سیستم های پست الکترونیکی نمود. ویروس “ILOVEYOU” ، که در سال ۲۰۰۰ رایج گردید ، باعث آسیب های فراوان در اینترنت و شبکه های کامپیوتری گردید.
ویروس های کامپیوتری به دو گروه عمده تقسیم می گردند. گروه اول را “ویروس های سنتی ” و گروه دوم را “ویروس های مبتنی بر پست الکترونیکی ” می نامند. خصوصیات ، عملکرد و نحوه پیشگیری از هر یک از گروه های فوق متفاوت بوده و در این راستا لازم است ، اطلاعات لازم در این خصوص را کسب کرد.
انواع آلودگی
آلودگی الکترونیکی دارای اشکال منتفاوتی است . متداولترین موارد آلودگی الکترونیکی عبارتند از :
– ویروس . ویروس یک قطعه نرم افزار کوچک بوده که بر دوش یک برنامه حقیقی حمل می گردد. مثلا” یک ویروس می تواند خود را به برنامه ای نظیر واژه پرداز متصل ( الحاق ) نماید. هر مرتبه که برنامه واژه پرداز اجراء می گردد ، ویروس نیز اجراء و این فرصت ( شانس ) را پیدا خواهد کرد که نسخه ای از خود را مجددا” تولید ( الحاق یک نسخه از خود به سایر برنامه ها ) و یا یک خرابی عظیم را باعث گردد.
– ویروس های مبتنی بر پست الکترونیکی . ویروس هائی از این نوع از طریق پیام های پست الکترونیکی منتقل می گردند. این نوع ویروس ها بصورت خودکار برای افراد متعدد ، پست خواهند شد. گزینش افراد برای ارسال نامه الکترونیکی بر اساس دفترچه آدرس پست الکترونیکی ، انجام می گیرد.
– کرم ها . یک کرم ، برنامه نرم افزاری کوچکی بوده که با استفاده از شبکه های کامپیوتری و حفره های امنیتی موجود ، اقدام به تکثیر خود می نمایند. نسخه ای از “کرم ” ، شبکه را پیمایش تا ماشین های دیگر موجود در شبکه را که دارای حفره های امنیتی می باشند ، تشخیص و نسخه ای از خود را تکثیر نمایند. کرم ها با استناد به حفره های امنیتی موجود ، نسخه ای از خود را بر روی ماشین های جدید تکثیر می نمایند.
– اسب های تراوا. یک اسب تراوا، نوع خاصی از برنامه های کامپیوتری می باشند . برنامه های فوق این ادعا را دارند که قادر به انجام یک عملیات خاص می باشند ( مثلا” ادعای آنان می تواند شامل یک بازی کامپیوتری باشد ). برنامه های فوق برخلاف ادعای خود نه تنها عملیات مثبتی را انجام نخواهند داد بلکه باعث بروز آسیب های جدی پس از فراهم نمودن شرایط اجراء، می باشند. ( مثلا” ممکن است اطلاعات موجود بر روی هارد دیسک را حذف نمایند) . اسب های تراوا دارای روشی برای تکثیر خود نمی باشند.
ویروس چیست ؟
ویروس های کامپیوتری بدین دلیل ویروس نامیده شده اند ، چون دارای برخی وجوه مشترک با ویروس های زیست شناسی می باشند. یک ویروس کامپیوتری از کامپیوتری به کامپیوتر دیگر عبور کرده ، دقیقا” مشابه ویروس های زیست شناسی که از شخصی به شخص دیگری منتقل می گردند.
ویروس زیست شناسی یک موجود زنده نیست . ویروس بخشی از DNA بوده و داخل یک روکش حفاظتی قرار می گیرد . ویروس بر خلاف سلول ، قادر به انجام عملیات و یا تکثیر مجدد خود نمی باشد. ( ویروس زنده و در قید حیات نمی باشد ) .یک ویروس زیست شناسی می بایست DNA خود را به یک سلول تزریق نماید. DNA ویروسی در ادامه با استفاده از دستگاه موجود سلول ، قادر به تکثیر خود می گردد. در برخی حالات ، سلول با ذرات ویروسی جدید آلوده تا زمانیکه سلول فعال و باعث رها سازی ویروس گردد.در حالات دیگر ، ذرات ویروس جدید باعث عدم رشد سلول در هر لحظه شده و سلول همچنان زنده باقی خواهد ماند.
ویروس های کامپیوتری دارای وجوه مشترک فوق می باشند. یک ویروس کامپیوتری می بایست بر دوش سایر برنامه ها و یا مستندات قرار گرفته تا در زمان لازم شرایط اجرای آن فراهم گردد.پس از اجرای یک ویروس ، زمینه آلوده نمودن سایر برنامه ها و یا مستندات نیز فراهم می گردد.
کرم چیست ؟
کرم ، یک برنامه کامپیوتری است که قابلیت تکثیر خود از ماشینی به ماشین دیگر را دارا است . شبکه های کامپیوتری بستر مناسب برای حرکت کرمها و آلوده نمودن سایر ماشین های موجود در شبکه را فراهم می آورند. با استفاده از شبکه های کامپیوتری ، کرمها قادر به تکثیر باورنکردنی خود در اسرع زمان می باشند. مثلا” کرم “Code Red” ، که در سال ۲۰۰۱ مطرح گردید ، قادر به تکثیر خود به میزان ۲۵۰.۰۰۰ مرتبه در مدت زمان نه ساعت بود. کرمها در زمان تکثیر، زمان کامپیوتر و پهنای باند موجود را استفاده می نمایند. کرم Code Red ، در زمان تکثیر به میزان قابل ملاحظه ای سرعت ترافیک اطلاعاتی بر روی اینترنت را کند می نمود. هر نسخه از کرم فوق ، پیمایش اینترنت بمنظور یافتن سرویس دهندگان ویندوز NT و یا ۲۰۰۰ را آغاز می کرد. هر زمان که یک سرویس دهنده ناامن ( سرویس دهنده ای که بر روی آن آخرین نرم افزارهای امنیتی مایکروسافت نصب نشده بودند ) پیدا می گردید ، کرم نسخه ای از خود را بر روی سرویس دهنده تکثیر می کرد. نسخه جدید در ادامه عملیات پیمایش برای یافتن سایر سرویس دهندگان را آغاز می نماید. با توجه به تعداد سرویس دهندگان ناامن ، یک کرم قادر به ایجاد صدها و هزاران نسخه از خود است .
نحوه تکثیر به چه صورت است ؟
ویروس های اولیه ، کدهائی محدود بوده که به یک برنامه متداول نظیر یک بازی کامپیوتری و یا یک واژه پرداز ، الحاق می گردیدند. کاربری ، یک بازی کامپیوتری آلوده را از یک BBS اخذ و آن را اجراء می نماید. .ویروس ، بخش کوچکی از نرم افزار بوده که به یک برنامه بزرگ متصل می گردد. ویروس های فوق بگونه ای طراحی شده بودند که در زمان اجرای برنامه اصلی ، بعلت فراهم شدن شرایط مساعد ، اجراء می گردیدند. ویروس خود را بدرون حافظه منتقل و در ادامه بدنبال یافتن سایر برنامه های اجرائی موجود بر روی دیسک ، بود. در صورتیکه این نوع برنامه ها ، پیدا می گردیدند ، کدهای مربوط به ویروس به برنامه اضافه می گردیدند. در ادامه ویروس ، برنامه واقعی را فعال می کرد. کاربران از فعال شدن و اجرای ویروس آگاه نشده و در این راستا روش های خاصی نیز وجود نداشت. متاسفانه ویروس، نسخه ای از خود را تکثیر و بدین ترتیب دو برنامه آلوده می گردیدند. در آینده با توجه به فراهم شدن شرایط لازم ، هر یک از برنامه های فوق سایر برنامه ها را آلوده کرده و این روند تکراری ادامه می یابد.
در صورتیکه یکی از برنامه های آلوده از طریق دیسکت به شخص دیگری داده شود و یا فایل آلوده برای یک BBS ارسال تا بر روی سرویس دهنده قرار گیرد ، امکان آلوده شدن سایر برنامه ها نیز فراهم خواهد شد. فرآیند فوق نحوه تکثیر یک ویروس کامپیوتری را نشان می دهد.
تکثیر و گسترش از مهمترین ویژگی های یک ویروس کامپیوتری بوده و در صورت عدم امکان فوق ، عملا” موانع جدی در تکثیر ویروس های کامپیوتری بوجود آمده و برخورد با این نوع برنامه با توجه به ماهیت محدود میدان عملیاتی ، کار پیچیده ای نخواهد بود. یکی دیگر از ویژگی های مهم ویروس های کامپیوتری ، قابلیت حملات مخرب آنان بمنظور آسیب رساندن به اطلاعات است . مرحله انجام حملات مخرب عموما” توسط نوع خاصی چاشنی ( نظیر ماشه اسلحه ) صورت می پذیرد. نوع حملات متنوع بوده و از نمایش یک پیام ساده تا پاک نمودن تمام اطلاعات موجود را می تواند شامل گردد. ماشه فعال شدن ویروس می تواند بر اساس یک تاریخ خاص و یا تعداد نسخه های تکثیر شده از یک ویروس باشد . مثلا” یک ویروس می تواند در تاریخ خاصی فعال و یا پس از ایجاد یکصد نسخه از خود ، فعال و حملات مخرب را آغاز نماید.
ایجاد کنندگان ویروس های کامپیوتری افرادی آگاه و با تجربه بوده و همواره از آخرین حقه های موجود استفاده می نمایند. یکی از حقه های مهم در این خصوص ، قابلیت استقرار در حافظه و استمرار وضعیت اجرای خود در حاشیه می باشد ( مادامیکه سیستم روشن است). بدین ترتیب امکان تکثیر این نوع ویروس ها با شرایط مطلوبتری فراهم می گردد. یکی دیگر از حقه های موجود ، قابلیت آلوده کردن ” بوت سکتور ” فلاپی دیسک ها و هارد دیسک ها ، می باشد. بوت سکتور شامل یک برنامه کوچک بمنظور استقرار بخش اولیه یک سیستم عامل در حافظه است . با استقرار ویروس های کامپیوتری در بوت سکتور ، اجراء شدن آنها تضمین خواهد شد. ( شرایط مناسب برای اجرای آنها بوجود می آید). بدین ترتیب یک ویروس بلافاصله در حافظه مستقر و تا زمانیکه سیستم روشن باشد به حضور مخرب خود در حافظه ادامه خواهند داد. ویروس های بوت سکتور قادر به آلوده نمودن سایر بوت سکتورهای فلاپی دیسک های سالمی که دردرایو ماشین قرار خواهند گرفت ، نیز می باشد. در مکان هائی که کامپیوتر بصورت مشترک بین افراد استفاده می گردد ( نظیر دانشگاه ها ) ، بهترین شرایط برای تکثیر ویروس های کامپیوتری بوجود خواهد آمد ( نظیر یک آتش سوزی بزرگ بوده که بسرعت همه چیز را نابود خواهد کرد ).
ویروس های قابل اجراء و بوت سکتور در حال حاضر تهدیدی جدی تلقی نمی گردند. مهمترین علت در صحت ادعای فوق ، حجیم شدن ظرفیت برنامه های کامپیوتری است . امروزه اغلب برنامه های کامپیوتری بر روی دیسک های فشرده (CD) ذخیره و در اختیار متقاضیان قرار می گیرند. اطلاعات ذخیره شده بر روی دیسک های فشرده ، غیر قابل تغییر بوده و تقریبا” آلودگی اطلاعاتی بر روی آنان غیرممکن است . استفاده از فلاپی دیسک برای توزیع و استفاده برنامه های کامپیوتری نظیر آنچه که در اواسط ۱۹۸۰ استفاده می گردید ، عمومیت ندارد. و این خود می تواند عاملی موثر در عدم گسترش سریع ویروس های اجرائی و خصوصا” ویروس های بوت سکتوری باشد.
در حال حاضر امکان وجود ویروس های اجرائی و یا بوت سکتور ، همچنان نیز وجود داشته و صرفا” امکان گسترش سریع آنها سلب شده است . محیط های مبتنی بر فلاپی دیسک ها ، برنامه های کوچک و ضعف موجود در برخی از سیستم های عامل ، حضور ملموس این نوع ویروس های کامپیوتری را در دهه ۸۰ میسر و توجیه پذیر کرده بود.
ویروس های پست الکترونیکی
آخرین اطلاعات موجود در رابطه با ویروس های کامپیوتری به ” ویروس پست الکترونیکی ” اشاره دارد. عملکرد ویروس “ملیزا ” در سال ۱۹۹۹ بسیار دیدنی بود. ویروس فوق از طریق مستندات ( سندها ) از نوع Word شرکت مایکروسافت ، گسترش و توسط پست الکترونیکی ارسال و توزیع می گردید. عملکرد ویروس فوق بشکل زیر بود :
فردی اقدام به ایجاد یک ویروس کرده ، آن را بعنوان یک سند Word برای ” گروه های خبری اینترنت ” ، ارسال می کرد. در ادامه هر فرد دیگری که فایل فوق را اخذ و آن را بر روی سیستم خود فعال می کرد ، زمینه اجراء و فعال شدن ویروس را هم فراهم می کرد. ویروس در ادامه ، سند ( بهمراه خود ویروس ) را از طریق یک پیام پست الکترونیکی برای اولین پنجاه نفر موجود در دفترچه آدرس ، ارسال می کرد. پیام الکترونیکی شامل یک متن دوستانه بهمراه نام شخص بود، بنابراین گیرنده بدون هیچگونه نگرانی اقدام به بازنمودن نامه می کرد. در ادمه ویروس ، پنجاه پیام جدید را از کامپیوتر گیرنده پیام ، ارسال می کرد. ویروس ملیزا ، سریعترین ویروس از بعد گسترش تاکنون بوده است . همانگونه که در ابتدا اشاره گردید ، عملکرد و سرعت باورنکردنی گسترش ویروس فوق باعث گردید که تعدادی از شرکت های بزرگ ، سیستم های پست الکترونیکی خود را غیرفعال نمایند.
عملکرد ویروس ILOVEYOU ، که در سال ۲۰۰۰ مطرح گردید ، بمراتب ساده تر از ویروس ملیزا بود. ویروس فوق شامل کد محدودی بود که بعنوان یک Attachment ( ضمیمه ) به یک پیام پست الکترونیکی متصل می شد. افرادیکه پیام را دریافت می کردند با فعال نمودن ضمیمه ، امکان اجرای ویروس را فراهم می کردند. کد ارسال شده در ادامه نسخه هائی از خود را تکثیر و برای افرادیکه نام آنها در دفترچه آدرس بود، ارسال می کرد.
ویروس ملیزا از قابلیت های برنامه نویسی توسط VBA)Visual Basic for Application) که در Ms Word وجود دارد ، استفاده می کرد. VBA یک زبان برنامه نویسی کامل بوده که امکانات متعددی نظیر : تغییر محتویات فایل ها و یا ارسال پیام های پست الکترونیکی را فراهم می آورد. VBA دارای یک امکان مفید و در عین حال خطرناک با نام ” اجرای خودکار ” است . یک برنامه نویس قادر به درج یک برنامه درون یک سند بوده و بلافاصله پس از باز نمودن سند ، شرایط اجرای کدهای فوق فراهم خواهد شد. ویروس ملیزا بدین طریق برنامه نویسی شده بود. هر شخص که سند آلوده به ویروس ملیزا را فعال می نمود ، بلافاصله زمینه فعال شدن ویروس نیز فراهم می گردید. ویروس فوق قادر به ارسال ۵۰ پیام پست الکترونیکی بوده و در ادامه یک فایل مرکزی با نام NORMAL.DOT را آلوده تا هر فایل دیگری که در آینده ذخیره می گردد ، نیز شامل ویروس گردد.
برنامه های مایکروسافت دارای یک ویژگی خاص با نام ” حفاظت ماکروها در مقابل ویروس ” بوده که از فایل ها و مستندات مربوطه را در مقابل ویروس حفاظت می نماید. زمانیکه ویژگی فوق فعال گردد ، امکان ” اجرای خودکار ” ، غیرفعال می گردد. در چنین حالتی در صورتیکه یک سند سعی در اجرای خودکار کدهای ویروسی نماید ، یک پیام هشداردهنده برروی نمایشگر ظاهر می گردد. متاسفانه ، اکثر کاربران دارای شناخت لازم و مناسب از ماکروها و ماکروهای ویروسی نبوده و بمحض مشاهد پیام هشداردهنده ، از آن چشم پوشی و صرفنظر می نمایند. در چنین مواردی ، ویروس با خیال آسوده اجراء خواهد شد. برخی دیگر از کاربران امکان حفاظتی فوق را غیر فعال نموده و ناآگاهانه در توزیع و گسترش ویروس های کامپیوتری نظیر ملیزا ، سهیم می گردند.
پیشگیری از ویروس
با رعایت چندین نکته ساده می توان یک پوشش مناسب ایمنی در مقابل ویروس های کامپیوتری را ایجاد کرد :
? از سیستم های عامل ایمن و مطمئن نظیر : یونیکس و ویندوز NT استفاده تا پوشش حفاظتی مناسبی در مقابل ویروس های سنتی ( نقطه مقابل ویروس های پست الکترونیکی ) ایجاد گردد.
? در صورتیکه از سیستم های عامل غیر مطمئن و ایمن استفاده می گردد ، سیستم خود را مسلح به یک نرم افزار حفاظتی در رابطه با ویروس ها ، نمائید.
? از نرم افزارهائی که توسط منابع غیر مطمئن توزیع و ارائه می گردند ، اجتناب و نرم افزارهای مربوطه را از منابع مطمئن تهیه و نصب نمائید. در ضمن امکان بوت شدن از طریق فلاپی دیسک را با استفاده از برنامه BIOS ، غیر فعال کرده تا بدین طریق امکان آلوده شدن ویروس از طریق یک دیسکت که بصورت تصادفی در درایو مربوطه قرار گرفته شده است ، اجتناب شود.
? امکان “حفاظت ماکرو در مقابل ویروس ” را در تمام برنامه های مایکروسافت فعال نموده و هرگز امکان اجرای ماکروهای موجود در یک سند را تا حصول اطمینان از عملکرد واقعی آنها ندهید.
هرگز بر روی ضمائمی که بهمراه یک پیام پست الکترونیکی ارسال شده و شامل کدهای اجرائی می باشند ، کلیک ننمائید. ضمائمی که دارای انشعاب DOC ( فایل های word) ، انشعاب XLS( صفحه گسترده ) ، تصاویر( فایل های با انشعاب GIF و یا JPG و …) بوده ، صرفا” شامل اطلاعات بوده و خطرناک نخواهند بود ( در رابطه با فایل های word و Execl به مسئله ماکرو و ویروس های مربوطه دقت گردد ) . فایل های با انشعاب EXE,COM و یا VBS اجرائی بوده و در صورت آلوده بودن به ویروس ، با اجرای آنان بر روی سیستم خود زمینه فعال شدن آنها فرام خواهد شد. بنابراین لازم است از اجرای هرگونه فایل اجرائی که بهمراه پست الکترونیکی برای شما ارسال می گردد ( خصوصا” مواردیکه آدرس فرستنده برای شما گمنام و ناشناخنه اس ) ، صرفنظر نمائید
با تحقق اصول فوق ، یک پوشش ایمنی مناسب در رابطه با ویروس های کامپیوتری بوجود می آید.
علت ایجاد ویروس های کامپیوتری
انسان ویروس ها را ایجاد می نمایند. برنامه نویس مجبور به نوشتن کد لازم ، تست آن بمنظور اطمینان از انتشار مناسب آن و در نهایت رها سازی و توزیع ویروس است . برنامه نویس همچنین می بایست نحوه حملات مخرب را نیز طراحی و پیاده سازی نماید ( تبین و پیاده سازی سیاست حملات مخرب). چرا انسان ها دست به چنین اقداماتی زده و خالق ویروس های کامپیوتری می گردند؟
در رابطه با سوال فوق ، حداقل سه دلیل وجود دارد :
? دلیل اول : اولین دلیل مربوط به دلایل روانی با گرایش مخرب در وجود این نوع افراد است . دلیل فوق صرفا” به دنیای کامپیوتر برنمی گردد. مثلا” فردی بدون دلیل ، شیشه اتومبیل فرد دیگری را شکسته تا اقدام به سرقت نماید، نوشتن و پاشینن رنگ بر روی ساختمانها ، ایجاد حریق تعمدی در یک جنگل زیبا ، نمونه هائی در سایر زمینه ها بوده که بشریت به آن مبتلا است .برای برخی از افراد انجام عملیات فوق ، نوعی هیجان ایجاد می کند. در صورتیکه این نوع اشخاص دارای توانائی لازم در رابطه با نوشتن برنامه های کامپیوتری باشند ، توان و پتانسیل خود را صرف ایجاد ویروس های مخرب خواهند کرد.
? دلیل دوم : دلیل دوم به هیجانات ناشی از مشاهده اعمال نادرست برمی گردد. تعدادی از افراد دارای یک شیفتگی خاص بمنظور مشاهده حوادثی نظیر انفجار و تصادفات می باشند. قطعا” در مجاورت منزل شما به افرادی برخورد می نماید که عاشق یادگیری نحوه استفاده از باروت ( و یا ترقه ) بوده و این روند ادامه داشته و همزمان با افزایش سن این افراد آنها تمایل به ایجاد بمب های بزرگتر را پیدا می نمایند. فرآیند فوق تا زمانیکه فرد مورد نظر خسته شده و یا به خود آسیبی برساند ، ادامه خواهد یافت . ایجاد یک ویروس کامپیوتری که بسرعت تکثیر گردد مشابه موارد فوق است . افرادیکه ویروس های کامپیوتری را ایجاد می نمایند ، بمبی درون کامپیوتر را ایجاد کرده اند و بموازات افزایش کامپیوترهای آلوده ، صدای انفجار بیشتری بگوش فرا خواهد رسید.
? دلیل سوم : دلیل سوم به حس خود بزرگ جلوه دادن و هیجانات ناشی از آن برمی گردد. ( نظیر صعود به قله اورست ) اورست موجود است و هر فرد می تواند مدعی صعود به آن گردد. در صورتیکه برنامه نویسی یک حفره امنیتی موجود در یک سیستم را مشاهده و امکان سوءاستفاده از آن وجود داشته باشد ، سریعا” بدنبال سوءاستفاده از وضعیت فوق (قبل از اینکه سایرین اقدام به ناکام نمودن وی را در این زمینه داشته باشند) ، بر خواهند آمد.
متاسفانه اکثر ایجاد کنندگان ویروس های کامپیوتری فراموش کرده اند که آنها باعث ایجاد خرابی واقعی برای افراد واقعی هستند ( هیچ چیز در خیال و رویا نمی باشد ) حذف تمام اطلاعات موجود بر روی هارد دیسک اشخاص ، یک خرابکاری واقعی و نه خیالی! است .صرف زمان زیاد در یک شرکت بزرگ برای برطرف نمودن فایل های آلوده به ویروس یک خرابکاری واقعی و نه خیالی ! است. حتی ارسال یک پیام ساده و بی محتوا نیز بدلیل تلف شدن زمان ، یک نوع خرابکاری است . خوشبختانه قانون در این زمینه سکوت نکرده و در این راستا قوانین لازم تصویب و مجازات های سنگین برای افرادیکه ویروس های کامپیوتری را ایجاد می نمایند ، پیش بینی شده است .
ویروس های سنتی کامپیوتر در اواخر ۱۹۸۰ بشدت گسترش یافتند. موضوع فوق دارای چندین دلیل است .
? دلیل اول ، به گسترش استفاده از کامپیوترهای شخصی برمی گردد. قبل از ۱۹۸۰ استفاده از کامپیوتر در منازل بسیار کم و در مواردی شامل استفاده محدود بصورت سرگرمی و اسباب بازی بود. کامپیوترهای واقعی کمیاب و صرفا” در اختیار متخصصین و کارشناسان مجرب گذاشته می گردید. در سال ۱۹۸۰ ، استفاده از کامپیوتر بشدت گسترش و در موارد متعددی بخدمت گرفته گردید.
? دومین دلیل ، به استفاده از سیستم های BBS برمی گردد. افراد از طریق مودم به یک BBS متصل و انواع برنامه های مورد نیاز خود را اخذ (Download) می کردند. بازیهای کامپیوتری نمونه ای از برنامه های کامپیوتری بودند که بشدت با استقبال مواجه و همواره از طریق مراکز BBS توزیع و منتشر می شدند. طبیعی است آلوده بودن یکی از بازیهای کامپیوتری که علاقه مندانن زیادی داشت ، می توانست در مدت زمان کوتاهی باعث انتشار و تکثیر یک ویروس کامپیوتری گردد.
سومین دلیل ، استفاده فراوان از فلاپی دیسک ها بمنظور استفاده از برنامه های کامپیوتری بود. در سال ۱۹۸۰ ، برنامه ها دارای ظرفیت کم بوده و امکان استقرار یک سیستم عامل ، یک واژه پرداز و مستندات فراوانی در یک و یا دو فلاپی دیسک وجود داشت . اغلب کامپیوترها در آن زمان دارای هارد دیسک نبوده و می بایست برای راه اندازی کامپیوتر از فلاپی دیسک استفاده می شد ، استفاده از فلاپی دیسک ها ، زمینه ای مساعد برای توزیع و انتشار برنامه های آلوده را فراهم می کرد.
نظرات بسته شده است، اما بازتاب و پینگ باز است.