لیستی از ۲۵ اشتباه خطرناک برنامه‌نویسی

Sarp

مدیر بازنشسته
* موسسه SANS یک گزارش کاملی منتشر کرده از ۲۵ تا از خطرناکترین اشتباهات برنامه نویسی. این گزارش که با همکاری و حمایت بیشتر از ۳۰ سازمان از جمله سازمان امنیت ملی آمریکا، وزارت امنیت داخلی و کارشناسان امنیتی کمپانیهایی چون Red Hat، مایکروسافت، Fortify، سیمانتک، اوراکل، CERT و بسیاری از کمپانیهای نرم افزاری معتبر اروپا و آمریکا منتشر شده، هدفش اینه که به برنامه‌نویسان کمک کنه تا برنامه‌هایی بنویسند که فاقد این ۲۵ خطای خطرناک باشند.
چرا اینها رو پرخطر قلمداد کرده؟! چون اغلب هم به راحتی پیدا میشن و هم براحتی قابل سوء استفاده (Exploit) هستند، به علاوه این خطاها منجر به حفره های امنیتی یا آسیب‌پذیری‌هایی میشن که اثرات جانبی شون بسیار مخرب هست، اغلب به مهاجمین کمک می کنن به نرم افزار دسترسی در حد مدیر سیستم پیدا کنند، داده ها رو به سرقت ببرند، و یا اینکه مانع فعالیت سرویس بشوند.
به گفته کارشناسانی که این سند رو تهیه کردند، بسیاری از این خطاها به خوبی توسط برنامه‌نویسان درک نشده‌اند و طبق اعلام موسسه SANS که در مریلند‌ آمریکا قرار داره، تنها دو مورد از این خطاها منجر به مشکل امنیتی بیش از ۱٫۵ میلیون وب‌سایت در طول سال ۲۰۰۸ شدند!

* این گزارش شامل ۵ بخش هست:
چه کسانی کمک کردند تا این ۲۵ خطا کشف و تعریف شود؟
نحوه به کارگیری ۲۵ خطا چگونه خواهد بود؟
درجه اهمیت ۲۵ خطا چیست؟
کدام خطاها در لیست ۲۵ خطا موجودند؟
چه منابعی به سازمانها کمک می کنند تا خطاها را مرتفع سازند؟
۱- ۲- ۳- ۴- ۵-
* برای هرکدام از بخشهای فوق مطالب جامع و کاملی در خود سایت SANS هست (به لینکهای هر کدوم مراجعه کنید). فقط میمونه لیست ۲۵ خطا که به خاطر اهمیتشون ترجمه کردم:
این خطاها در سه دسته اصلی تقسیم بندی شدند. برای اطلاعات بیشتر روی هر خطا کلیک کنید تا لینک CWE مربوط به خطا رو ببینین. (حتما میدونین که CWE مرجع جهانی برای شناسایی آسیب پذیری ها در دنیاست به عبارتی دیگر هر آسیب پذیری امنیتی که کشف میشه، در صورت تائید یک CWE میگیره و بعدا با همون شناسایی میشه به زبان خودمونی میشه یه نوع شماره شناسایی برای هر خطای امنیتی)

* دسته اول: تعامل ناامن بین مولفه ها:
خطای اول – اعتبارسنجی نامناسب ورودی، خطای دوم – کدگذاری نامناسب خروجی، خطای سوم – تزریق دستورات SQL، خطای چهارم – XSS یا Cross Site Scripting، خطای پنجم – تزریق دستوران سیستم عامل، خطای ششم – انتقال اطلاعات حساس به صورت متن ساده، خطای هفتم – جعل درخواست یا CSRF، خطای هشتم – شرایط مسابقه، خطای نهم – افشای اطلاعات از طریق پیامهای خطا

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

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

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



* منبع
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
جالب بود. خيلی خوب همه نکات جمع آوری شده :w27:
 

mdl

عضو جدید
خیلی جالب بود . برای اولین بار بود که دیدم . برام جالب بود
 
  • Like
واکنش ها: Sarp
بالا