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

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

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

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

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

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

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

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

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

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

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

اتخاذ یک استاندارد کدنویسی امن
لازم است یک استاندارد کدنویسی امن را بر مبنای زبان برنامه نویسی و سکویی که برای توسعه نرم افزار استفاده می شود، ایجاد کرده و یا از انواع موجود آن استفاده کنید.

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

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

0
نام:*
ایمیل:


جستجو در سایت
استارت آپ ها

ایده ها برای استارت آپ موجب رونق کسب و کارهای اینترنتی

آینده / استارت آپ

استارت‌آپ‌ها ادبیات بازار سرمایه را بلدند؟

استارت آپ

صدور تاییدیه دانش بنیانی شتابدهنده صدر فردا

اخبار / استارت آپ

اپلیکیشن شارژاپ

گوناگون / استارت آپ / رپرتاژ آگهی / بازتاب

جذاب‌ترین ایده‌های B2B در سال 2020

استارت آپ

۱۰ استارتاپ که بدون سرمایه به سوددهی رسیدند

استارت آپ

ایده ها و پیشنهاد برای استارت آپ در سال جدید

راهکارها و ترفند ها / استارت آپ

استارت‌آپ ایرانی؛ مرجع اول زنان افغان

استارت آپ

شروع یک کسب و کار نوپا پلتفرمی

استارت آپ

برنامه شبکه اجتماعی تیندر

گوناگون / معرفی وب سایت / استارت آپ

10 استارت آپ برتر تاکسیرانی جهان

استارت آپ

پخت پیتزاهای هیجان انگیز با هوش مصنوعی

آینده / استارت آپ

ایده‌ های استارتاپی فراموش شده‌

دورنما / بازار / استارت آپ

اپل، استارتاپ فناوری خودران Drive.ai را تصاحب کرد

استارت آپ

بررسی مهمترین چالش‌های تیم‌های استارتاپی

استارت آپ

نگرانی کاربران از هزینه تعمیر و تامین قطعات

گفت و گو / بازار / استارت آپ

مصاحبه با مدیرعامل و بنیان‌گذار استارتاپ Moz

گفت و گو / استارت آپ

آشنایی با استارت آپ های حوزه مدیریت آب

استارت آپ

راه اندازی ۷۰ استارت آپ توسط نخبگان ایرانی

استارت آپ

معرفی هشت استارت‌آپ‌ موفق ایرانی در حوزه فینتک

استارت آپ

اولین مرورگر شرعی دنیا

استارت آپ

از صفر تا پیست

استارت آپ

معرفی برترین استارتاپ‌های CES 2019

اخبار / استارت آپ

تبلیغات
درباره ما

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

ما را در شبکه های اجتماعی دنبال کنید