ده روش برتر برنامه نویسی امن- Secure Coding

مرور دستورالعمل

بعنوان یکی از مزیت های شیوه برنامه نویسی امن می توان به تعریف نیازمندی های امنیتی وتشخیص شیوه های تهدید اشاره کرد.

شرح جزئیات

fiogf49gjkf0d


  1. اعتبار ورودی ها را کنترل کنید.

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

     
  2. .به هشدار های کامپایلر توجه کنید.
    از بالاترین سطح هشدار در دسترس برای کامپایلر خود را استفاده کنید  و  هشدارها را  با تغییر کد از بین ببرید. از ابزار تجزیه و تحلیل استاتیک و دینامیک برای تشخیص و از بین بردن نقص های امنیتی اضافی استفاده  کنید.


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

     
  4. ساده طراحی کنید.
    طراحی را تا آنجایی که ممکن است ساده و کوچک ببینید.طراحی های پیچیده احتمال بروز خطا را در پیاده سازی، پیکربندی و استفاده از  نرم افزار را افزایش می دهد. علاوه بر این، تلاش مورد نیاز برای رسیدن به سطح مطلوب از اطمینان را افزایش می دهد .

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

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

     
  8. ممارست در دفاع در عمق
    ریسک و خطر را با استراتژی های دفاعی متعددمدیریت کنید.به طوری که اگر یکی از لایه های دفاعی  ناکافی باشد.لایه دفاعی دیگری می تواند یک نقص امنیتی را از تبدیل شدن به یک آسیب پذیری  جلوگیری نماید  و / یادسترسی به  نتایج موفق بهره برداری را محدود کند.به عنوان مثال، ترکیب تکنیک های برنامه نویسی امن با محیط اجرای امن احتمال این که از آسیب پذیری های باقی مانده در کد در زمان استقرار  را  در محیط عملیاتی مورد سوء استفاده  کاهش دهد.
     
  9. استفاده از روش های موثر تضمین کیفیت
    تکنیک های تضمین کیفیت خوب می تواند در شناسایی و حذف آسیب پذیری موثر باشد.تست  FUZZ، تست نفوذ، و منبع ممیزی کد همه باید به عنوان بخشی از برنامه تضمین کیفیت موثر گنجانیده شوند.بررسی مستقل امنیتی می تواند به سیستم امن تر منجر شود.داوران خارجی به عنوان یک بازرس مستقل؛ می توانند  به عنوان مثال، در شناسایی و اصلاح فرضیات نامعتبر کمک کنند.

     
  10. اتخاذ یک استاندارد برنامه نویسی امن.
    توسعه و / یا درخواست یک استاندارد برنامه نویسی امن  برای  زبان برنامه نویسی هدف خود  و پلت فرم مربوطه را در نظر بگیرید.



     

 

این مطلب را به اشتراک بگزارید

نظرات (1)

  • تست

    1212.

    1399-6-24

لطفاً دیدگاه ها و سئوالات خود را برای ما ارسال کنید