آشنایی با عملکرد آنتی ویروس
در این ترفند قصد داریم بحث آنتی ویروسها را به طور کامل برای شما باز کنیم. اینکه چه آنتی ویروسی مطمئن تر است؟ آنتی ویروسها چگونه یک ویروس را میشناسند؟ تکنیک های ویروس یابی و بسیاری مطالب دیگر. با بهره گیری از این ترفند میتوانید خودتان آنتی ویروس بهتر و مطمئن تر را انتخاب کنید.
اشاره:
در دنیای شبکهای امروز، لزوم داشتن یک نرمافزار ضدویروس قدرتمند که کامپیوتر ما را از انواع ویروسها، کرمها، بمبهای منطقی و بهطور کلی کدهای مخرب مصون بدارد، بیش از هر زمان دیگری احساس میشود. خوشبختانه (شاید هم متاسفانه) انتخابهای متعددی در این زمینه وجود دارد. ولی واقعا کدام یک از آنها میتواند بهتر مشکل کامپیوتر (یا کامپیوترهای شبکه) ما را حل کند؟ کافی است سری به سایتهای مربوط به فروشندگان این نوع نرمافزارها بزنید. به نظر میرسد که همه آنها از بهترینها هستند. و همه آنها در تمام طول سال و در تمام 24 ساعت شبانهروز خدمات خود را ارایه میدهند. از طرفی به دلیل بازار رقابتی موجود، هیچکدام از آنها اطلاعات دقیقی از نرمافزارخود ارایه نمیدهند. شما چه یک متخصصIT باشید و چه یک کاربر معمولی، ممکن است به دلیل نداشتن اطلاعات صحیح برای انتخاب ضدویروس مناسب خود با مشکل مواجه میشوید. بنابراین بسیار مهم است که بدانید ضدویروسها چگونه کار میکنند و در واقع عوامل مهم برای انتخاب آنها کدامند.
ضدویروسها چگونه کار میکنند؟
اولین قدم جهت انتخاب یک ضدویروس مناسب آشنایی با کارکرد ضدویروسها میباشد.
پس از آشنایی با خصوصیات یک ضدویروس، واژگانی که در این زمینه استفاده میشود، را خواهید شناخت. اینکه بدانید ضدویروس چه کارهایی میتواند انجام بدهد و چه کارهایی نمیتواند انجام دهد، به شما کمک میکند که انتظارات معقولی از آن داشته باشید.
یک ضدویروس چگونه ویروسها را شناسایی میکند؟
روشهای مختلفی برای شناسایی ویروسها وجود دارد.
ویروسها (بهطور معمول) چیزی بیشتر از کد یک برنامه نیستند. بنابراین اگر ما بدانیم که هر کدی چه کاری انجام میدهد قادر خواهیم بود که کد حامل ویروس را به محض رویت شناسایی کنیم.
این کار اولین عملی است که انجام میگیرد و به نام Signature Matching معروف است.
نرمافزارهای ضدویروس که به این روش کار میکنند دارای یک بانک اطلاعاتی هستند که شامل Virus signatureها است و به محض اینکه کدی را ملاحظه کرد که معادل یکی از رکوردها باشد آن را به عنوان ویروس شناسایی میکند. به نظر میرسد که موثرترین راه برای کشف ویروسها همین باشد. روش فوق ذاتا بهگونهای است که اول ویروس را شناسایی میکند و بعد متناظر با آن یک رکورد (virus signature) به بانک اطلاعاتی اضافه میکند و حالا اگر ویروسی پیدا کند، در صورتیکه متناظر با این ویروس رکوردی در بانک اطلاعاتی باشد قادر به شناسایی آن خواهد بود و همین امر ایجاب میکند شرکتهایی که از این فناوری در نرمافزار خود استفاده میکنند مدام آن را بروز نگه دارند. به هر حال این یک نقطه ضعف میباشد و برای فائق آمدن بر آن دو روش دیگر در نرمافزارهای ضدویروس معرفی شده است.
1- Heuristic method (روش مکاشفهای)
فلسفه Heuristic این است که بتوانیم ویروسهایی را شناسایی کنیم که هنوز Virus Signature آنها در بانک اطلاعاتی موجود نمیباشد.
این کار با استفاده از یک بانک اطلاعاتی که رکوردهای آن حاوی Virus behavior signature میباشد قابل انجام است. رکوردهای این بانک اطلاعاتی امضای ویروس خاصی را نگهداری نمیکنند بلکه بیشتر رفتارهای (رفتار بد) ویروسها را ذخیره میکنند. مثلا اینکه هر کجا تشخیص بدهند کدی قصد پاک کردن Boot Sector را دارد از آن جلوگیری میکنند.
الگوریتمهایHeuristic به دو صورت پیادهسازی میشوند:
● اگر تکنولوژی Heuristic کد هر برنامه را با Virus behavior Signature مقایسه کند و مورد آنالیز قرار دهد آن را روش static heuristic مینامیم.
● در بعضی مواقع این تکنولوژی قطعه کد را در یک ماشین مجازی اجرا میکند تا نتایج رفتاری آن را ببیند به این روش dynamic heuristic میگوییم. این روش ممکن است نتایج غلطی نیز تولید کند.
Integrity checksum -2 (جامعیت سرجمع)
در روش integrity checksum، فرض براین است که ویروس قصد اعمال تغییراتی در فایل دارد. مثلاً یک ویروس میخواهد که روی یک فایل چیزی بنویسد یا اینکه خودش را به آخر فایلی اضافه کند. در این روش نرمافزار checksum فایل غیرویروسی و یا درایورهای تمیز را ذخیره میکند و هرگاه که تغییری در این checksum مشاهده شود متوجه میشود که احتمال دارد ویروسی این کار را انجام داده باشد. در این روش نیز احتمال تولید نتایج غلط وجود دارد. این روش در مقابله با ویروسهای ماکرویی یا ویروسهای مانند code Red که بدون اینکه در هیچ فایلی ذخیره شوند در حافظه بارگذاری و اجرا میشوند، کارایی چندانی ندارد.
اگر یک کد مزاحم از تمام الگوریتمهای یک ضدویروس که تاکنون نام بردیم بگذرد، در گام آخر توسط فناوری دیگری به نام Activity Blocker از فعالیت آن جلوگیری میشود. این تکنولوژی از تمام فعالیتهایی که ممکن است توسط یک کد مخرب صورت بپذیرد جلوگیری میکند مثلا اگر تشخیص دهد که هارددیسک در حال فرمت شدن است از آن جلوگیری میکند.
یک ضدویروس چه موقع ویروسها را شناسایی میکند؟
معمولا ضدویروسها به دو روش میتوانند ویروسها را شناسایی کنند.
در روش اول ضدویروس، به صورت Real Time (بلادرنگ) و همان موقع که فایل مورد دسترسی قرار میگیرد عمل میکند. در این روش، ضدویروس درون حافظه مقیم میشود و تمام فعالیتهای مربوط به سیستم را مورد ارزیابی و بررسی قرار میدهد. این نرمافزارها با همکاری سیستمعامل متوجه میشوند که هماکنون قرار است فایلی مورد دسترسی قرار بگیرد. سریعا این فایل را بررسی و نتیجه را گزارش میدهند. به این روش on-access میگویند.
مزیت این روش در ارایه یک حفاظت دایمی است ولی اشکالی که دارد این است که تنها فایلها را به هنگام دسترسی مورد بررسی قرار میدهد. یعنی احتمالا اگر ویروسی در یک فایل قرار گرفته باشد و در دیسک ذخیره شده باشد، با این روش قابل شناسایی نیست. در روش دوم این امکان به کاربر داده میشود که خودش نرمافزار ضدویروس را برای بررسی کردن دیسک یا یک فایل به کمک بگیرد. برای اینکه فعالیت فوق بازده بهتری داشته باشد باید ضدویروس را طوری تنظیم کرد که در دورههای زمانی معین اقدام به اسکن کند. این روش به on-demand معروف است.
ضدویروسها چه کارهایی را میتوانند انجام دهند و چه کارهایی را نمیتوانند انجام دهند؟
1- محافظت صددرصدی
هیچ ضدویروسی وجود ندارد که بتواند به صورت صددرصد سیستم شما را در مقابل ویروسها ایمن کند. ویروسها و کدهای مخرب همیشه از ضدویروسها جلو بودهاند CodeRed.،Melissa ،Funlove ،Nimda و ویروسهای زیاد دیگر این فرضیه را ثابت نمودهاند و البته دلیل پویایی و حیات نرمافزارهای ضدویروس نیز همین قضیه میباشد.
به خاطر دارید که ضدویروسها برای شناسایی یک ویروس بهطور معمول نیاز به virus signature دارند و البته هنگامی که این signature موجود نباشد از روشهای heuristic استفاده میشود که این روش نیز همیشه جواب درست را برنمیگرداند. با این همه، ضدویروسها در مقابل ویروسهای شناخته شده (بیش از60 هزار عدد) یک حفاظت همه جانبه از سیستم شما به عمل میآورند.
بیشتر ضدویروسها در صورت بروز و ظهور یک ویروس جدید قادر خواهند بود که به سرعت آن را شناسایی کنند و سیستم شما را از وجود این ویروس پاک نگه دارند.
2- بازسازی فایلهای ویروسی شده
آیا هر ویروسی که توسط نرمافزار ضدویروس شناسایی شد قابل از بین بردن است؟
بستگی دارد که عملکرد ویروس چگونه باشد.
بعضی از ویروسها مانند ویروسهای ماکرویی به راحتی توسط نرمافزار ضدویروسی تشخیص داده میشوند و از فایل بیرون کشیده میشوند و پاک میشوند. این فایلها هیچ آسیبی به فایل میزبان خود نمیرسانند.
اما بعضی از ویروسهای دیگر نیز هستند که بر روی فایل میزبان چیزی مینویسند یا اینکه اصلا کدویروس را درون فایل میزبان قرار میدهند. یکی از انواع این ویروسها Loveletter است. در این مورد به وضوح دیده میشود که فایل میزبان قابل بازیابی نیست و تنها راهحل این است که این فایل را پاک کنیم.
دسته دیگری از ویروسها وجود دارند (مانند ویروس Nimda) که علاوه بر ایجاد تغییرات بر روی فایل، قابلیت دستکاری فایلهای سیستم و رجیستری را نیز دارند. در این موارد ضدویروس به تنهایی نمیتواند کاری بکند. شما به ابزاری نیاز دارید که بتواند فایل ویروسی را حذف کند و تغییرات اعمال شده در سیستم شما را به حالت اولیه برگرداند. معمولا این ابزار کمکی بر روی وب سایتهای فروشندگان نرمافزار ضدویروس موجود میباشد.
معیارهای انتخاب یک ضدویروس:
حالا که متوجه شدید ضدویروس چگونه کار میکند و چه کارهایی را میتواند برای شما انجام دهد، وقت آن است ببینیم چه معیارهایی برای انتخاب یک ضدویروس مهم هستند.
1- شناسایی
مهمترین وظیفه یک ضدویروس شناسایی ویروسها است. اما چگونه باید مطمئن شویم که یک ضدویروس همان کاری را که ادعا میکند انجام میدهد؟
آیا همین قدر که برنامه ضدویروس یک گزارش مبنی بر شناسایی ویروسها تولید میکند متقاعد میشوید که کار خود را به خوبی انجام میدهد؟ پیدا کردن جواب دو سوال زیر میتواند به شما کمک کند:
پرسش اول: نرمافزار ضدویروس قادر است چه تعداد ویروس را مورد شناسایی قرار دهد. از این پارامتر عموما با نام detection Rate یاد میشود.
پرسش دوم: نرمافزار ضدویروس تحت چه شرایطی میتواند یک ویروس را شناسایی کند؟ آیا اگر این ویروس در حافظه مقیم شده باشد توسط ضدویروس قابل تشخیص است؟
توصیه های مهم:
اول: یک راهحل این است که شما خودتان ضدویروس را بررسی کنید. برای این کار بر روی اینترنت به دنبال ویروسهای مختلفی بگردید و این ویروسها را به سیستم خودتان بیاورید و ببینید که آیا ضدویروس میتواند این ویروسها را شناسایی کند یا نه؟ ولی من شما را از انجام این عمل شدیدا منع میکنم. حتی اگر فروشنده ضدویروس خودش این پیشنهاد را به عنوان یک راهحل برای آزمایش ضدویروس داده باشد. همانطورEicar که گفته است: استفاده از ویروسهای واقعی برای تست کردن یک ضدویروس در یک محیط عملیاتی مانند این است که شما آتش را به دفتر کار خود بیاورید و بعد بخواهید بررسی کنید که آیا حسگرهای دود به خوبی کار میکنند یا نه؟ شما هرگز نمیتوانید از نتیجه کار مطمئن باشید. ممکن است برنامه ضدویروس نتواند همه موارد را شناسایی کند و ویروسها شروع به پاک کردن دادههای ارزشمند سیستم شما و پخش شدن در شبکه بنمایند. امری که ممکن است به بهای از دست دادن شغلتان تمام شود.
دوم: اگر شما واقعا میخواهید مطمئن شوید که یک ضدویروس قادر به انجام چه کارهایی است میتوانید در سایتwww.eicar.org یک سری آزمایشهای بیخطر جهت آزمایش ضدویروس پیدا کنید. در این سایت فایلهای آزمایشی و بیخطری وجود دارند که بیشتر ضدویروسها آنها را به عنوان ویروس شناسایی میکنند.
در این حالت اگر ضدویروس موفق به از بینبردن ویروس شود چه بهتر و چنانچه نتواند، شما هیچگونه اطلاعاتی از دست نخواهید داد. بدینترتیب میتوانید یک روش امن برای آزمایش ضدویروس به کار ببندید.
2- امکانات
بسیار مهم است که بدانیم چه نوع فناوری در ضدویروس موردنظر استفاده شده است و چه ویژگیهایی دارد.
A- سازگاری سختافزاری و نرمافزاری سیستم شما با ضدویروس انتخاب شده.
در نگاه اول شاید این مساله کمی بدیهی به نظر برسد. اما به هر حال برخی از فروشندگان آخرین نسخه نرمافزار ضدویروس خود را که تنها با جدیدترین سیستمعاملها کار میکنند، ارایه میدهند.
بنابراین منطقی به نظر میرسد که قبل از اقدام به خرید نرمافزار حتما به این نکته توجه کنید.
B- توانایی پویش(on-Access Real time) را داشته باشد.
این یکی از ویژگیهای اساسی است که یک ضدویروس باید دارا باشد. این بخش نرمافزار باعث میشود که نرمافزار ضدویروس مانند یک سگ نگهبان عمل کند. یعنی همان موقع که ویروس در حافظه بارگذاری میشود ویروس را شناسایی و خنثی کند.
این بخش نرمافزار باید قادر باشد که به تمام نواحی سیستم از جمله فایل سیستم، بوت رکورد،
Mabter Boot Record) MBR) و حافظه سرکشی کند.
C- توانایی پویش به صورت on-demand را داشته باشد. یکی از کارهای ضروری که برای حفظ سلامت سیستمتان باید انجام دهید این است که هرازچندگاهی وضعیت سیستم خود را با اجرای ضدویروس بررسی کنید.
مخصوصا هنگامی که آخرین نسخه ضدویروس را دریافت میکنید حتما این کار را انجام دهید. سناریوی زیر انجام توصیه بالا را توجیه میکند.
شما یک e-mail دریافت میکنید که این e-mail شامل یک ضمیمه و ویروسی است. منتهی شما این ضمیمه را هیچگاه باز نکردهاید. اجرای ضدویروس بروز شده باعث میشود که (احتمالا) ویروس فوق شناسایی شود.
D- از الگوریتمهای Heuristic پشتیبانی کند.
E- بتواند انواع فایلها با فرمتهای مختلف را پویش کند.
اگر شما ویروسی در سیستم داشته باشید که قادر باشد به هر نوع فایلی بچسبد، نیاز به ضدویروسی دارید که بتواند فایلهای مختلف با پسوندهای مختلف را مورد بررسی قرار دهد. قبلا تنها راه انتشار یک ویروس این بود که به فایلهای برنامهای بچسبد، اما امروزه این امکان وجود دارد که ویروس برای انتشار خودش از فایلهای غیراجرایی نیز استفاه کند.
F- توانایی جلوگیری از فعالیت اسکریپتهای مخرب را داشته باشد. بعضی از ویروسها هستند که با استفاده از اسکریپتها طراحی شدهاند. کرمهای I Love You از این نوع است.
موتور ضدویروس باید این قابلیت را داشته باشد که کدهای VBS و JS را شناسایی کند و در صورتی که آنها را مخرب تشیخص دهد از فعالیتشان جلوگیری کند.
G- توانایی بررسی ضمیمه e-mail را داشته باشد.
امروزه بسیاری از ویروسها توسط e-mail انتشار پیدا میکنند.
بعضی از آنها مانند کرم KAK حتی این توانایی را دارند تا در سیستمهایی که خوب پیکربندی نشدهاند، بدون اینکه ضمیمه e-mail باز شود شروع به انتشار خود بنمایند.
H- قابلیت بررسی فایلهای فشرده را نیز داشته باشد. اگر چه یک ویروس هنگامی که در یک فایل فشرده قرار دارد نمیتواند آسیبی به سیستم برساند ولی بهتر است است که اصلا این ویروس در سیستم شما وجود نداشته باشد.
I- قابلیت این را داشته باشد که اسبهای تراوا، جاوااپلتهای مخرب و اکتیوایکسهای مزاحم را شناسایی کند. نرمافزارهای ضدویروس نه تنها باید این قابلیت را داشته باشند که ویروسها و کرمها را شناسایی کنند بلکه باید بتوانند از فعالیتاسبهای تراوا، اکتیویکسها و اپلتهای جاوا نیز جلوگیری کنند.
امروزه بیشتر ضدویروسها دارای این خصوصیت میباشند.
3- نگهداری از نرمافزار
دو مورد زیر در نگهداری از نرمافزارهای ضدویروس قابل توجه هستند.
- بروز کردن مداوم ضدویروس برای مقابله با ویروسهای جدید:
در بخشهای قبل لزوم بروز نگهداشتن بانکاطلاعاتی ضدویروس توضیح داده شد. بنابراین ضدویروس منتخب شما باید به گونهای باشد که به راحتی قابلیت روزآمد شدن را داشته باشد و علاوهبرآن بهطور مداوم رکوردهای این بانک اطلاعاتی زیاد شود. شما همچنین باید متوجه این مطلب باشید که از چه مکانیزمهایی جهت بروز نگهداشتن ضدویروس استفاده میشود. آیا نسخههای بروز شده بر روی وب سایت فروشندگان قرار دارد؟ و آیا به راحتی قابل دریافت میباشد؟ و آیا شما به راحتی میتوانید از وجود یک ویروس جدید آگاهی یابید یا نه؟
اگر شما دارای ارتباط اینترنتی کم سرعتی باشید دریافت کردن این نرمافزار بسیار خستهکننده میباشد. این نکته نیز مهم است که در هر بار انجام این عمل باید فقط قسمت روزآمد شده نرمافزار دریافت شود.
نکته دیگر اینکه، نویسندگان ضدویروسها چقدر سعی میکنند تا روشهای جدیدی که برای تولید ویروسها استفاده میشود بشناسند و در نرمافزار خود به کار گیرند؟
و نکته مهمتر اینکه از زمان خبر انتشار یک ویروس تا وقتی که نرمافزار ضدویروس برای این ویروس بروز شود چقدر طول میکشد؟
4- نرمافزارهای ضدویروس چقدر بر کارایی سیستم شما تاثیرگذار میباشند؟
همه نرمافزارهای ضدویروس بر کارایی سیستم شما تاثیر میگذارند. اغلب اوقات اندازهگیری میزان این تاثیر سخت است ولی به هر حال به عنوان یک معیار مهم در انتخاب ضدویروس مطرح میباشد. پرسشهای زیر در این مقوله مهم میباشند.
- آیا نرمافزار ضدویروس باعث کندتر شدن پروسه بوت سیستم شده است؟
- زمان دسترسی به یک فایل را افزایش داده است؟
پس برای انتخاب یک ضدویروس مناسب ناچارید که چند آزمایش را انجام دهید.
مثلا میتوانید زمانی که برای پویشهای مختلف (تحت شرایط مختلف) توسط یک ضدویروس مصرف میشود را محاسبه کنید و در این مدت، زمان میانگین استفاده از حافظه و cpu را نیز اندازهگیری کنید.
یا اینکه زمانی که برای اسکن on-demand نیاز میباشد را برای محصولات مختلف اندازهگیری کنید.
یا اینکه وقتی که ضدویروس در حال پویشReal-time میباشد ببینید که باز کردن یک فایل بزرگ چقدر طول میکشد؟
توجه به این موضوع که محیط تست برای همه ضدویروسها که مورد ارزیابی قرار میگیرند، مشابه باشد بسیار مهم است از جلمه اینکه:
حجم فایلها و نوع فایلهایی که برای هر یک از ضدویروسها مورد بررسی قرار میگیرد مهم است.
هر دو ضدویروس به یک ترتیب و روی یک سختافزار پیکربندی شده باشند.
5- نرمافزار ضدویروس قابل کنترل باشد.
اگر شما نتوانید بر روی ضدویروس خود نظارت کامل داشته باشید مانند این است که ضدویروس ندارید.
شما باید بتوانید بهطور مرتب (هر زمان که نیاز داشتید) و بدون زحمت زیادی بانک اطلاعاتی خود را کاملتر یا بروز کنید.
به راحتی بتوانید از سرورها خود و کلاینتهای خود محافظت کنید و گزارشهای نرمافزار ضدویروس را برای هر کدام از آنها ببینید.
6- پشتیبانی ضدویروس همیشگی و موثر باشد.
فروشنده نرمافزار باید قادر باشد که پشتیبانی مورد نظر شما را انجام دهد. مطمئنا پشتیبانی که برای کاربر در خانه ارایه میشود با پشتیبانی که برای یک شرکت بزرگ انجام میشود با یکدیگر متفاوت هستند.
فروشنده برای پشتیبانی میتواند خدمات زیر را به شما ارایه دهد.
قادر باشد که شما را به صورت on-line پشتیبانی کند و اگر شک کردید که فایلی حاوی ویروس است، بتوانید آن را برای فروشنده ارسال کنید تا نظر خودش را راجعبه فایل بیان کند.
اگر یک ویروس جدید شناخته شود، فروشنده باید بتواند این موضوع را به اطلاع شما برساند تا اقدامات لازم را برای خودتان، یا برای شبکهای که شما مس‡وول آن هستید انجام دهید.
نتیجهگیری:
هیچکدام از نرمافزارهای ضدویروس بهترین نیستند. یک ضدویروس وقتی برای شما بهترین است که بتواند نسبت به نرمافزارهای دیگر به صورت کاملتری نیازهای شما را برآورده کند.
اطلاعاتی که فروشنده نرمافزار ارایه میکند همیشه خوب است ولی انتخاب ضدویروس نباید تنها براساس ادعاهای فروشنده باشد.
آنتی ویروسها جادو نمیکنند:
آنتی ویروسها محافظان سیستم های ما هستند. این گونه نرم افزارها میتوانند بنا به ساختمان برنامه ای خود, کنترل مرکزی سیستم را در دست گیرند و مواظب رفتار مشکوک یا برنامه های مخرب اجرایی بر روی سیستم ما باشند ولی با گسترش روابط, نمیتوانیم به صورت کامل روی آنها حساب کنیم زیرا این برنامه ها از حمله ویروسها در امان نیستند.
در بعضی موارد دیده شده که ویروسها بروی سیستم اجرا میشوند ولی آنتی ویروس هیچ واکنشی در مقابل ویروس ندارند و مانند یک برنامه طبیعی با آنها برخورد میکند.
خوشبختانه شرکت های آنتی ویروس برای تسلط بر کل ارتباطات اینترنتی اقدام به تاسیس شرکتهایی به صورت نمایندگی در اکثر کشورها کرده اند. آنها به این منظور نشان دادند که می خواهند کرم ها را در نطفه خفه کنند و از پخش گسترده انها در کل شبکه جلوگیری نمایند.
آنها اقدام به آگاه سازی کاربران اینترنتی از طریق سرویسهایی مانند رادار کرده اند. شاید نقاط ضعف شرکت های آنتی با ارائه این نوع سیستمها به کاربران اثبات شده باشد. انها بر این عقیده اند که به تنهایی و بدون کمک کاربران اینترنتی نمی توانند از پس کرم های اینترنتی برآیند. بنابر این هر شرکت آنتی ویروس آنالیز های خود را در اختیار کاربران قرار میدهد تا اگر نرم افزار آن شرکت نتوانست کرم را خنثی کند کاربران با داشتن اطلاعات کافی شروع به مقابله با کرمها کنند. همان طور که می دانید آنتی ویروس ها فقط یک نرم افزار هستند و ما نمی توانیم تصور کنیم که آنها میتوانند معجزه کنند, باید درک کرد که این نرم افزارها خود دارای مشکل هایی می باشند.