آرشیو - امنیت

نمایی کلی از کنترل دسترسی (Access Control)

۲۵ اردیبهشت ۱۳۹۱ توسط , بدون نظر

کنترل دسترسی به منابع یکی از مهمترین و در عین حال کلیدی ترین مفاهیم امنیت است. کنترل دسترسی مفهومی فراتر از این است که چه کاربری به چه فایل ها و یا سرویس هایی دسترسی داشته باشد. قبل از ارائه یک تعریف کلی در مورد کنترل دسترسی نیاز است با دو مفهموم “فاعل” و “مفعول” آشنا شویم:

فاعل : یک “فاعل” را می توان به عنوان یک کامپیوتر، برنامه، فرآیند، فایل، کامپیوتر، بانک اطلاعاتی و مواردی از این دست در نظر گرفت.
مفعول : یک “مفعول” را می توان به عنوان فایل، بانک اطلاعاتی، کامپیوتر، برنامه، فرآیند، پرینتر و یا فضای ذخیره سازی در نظر گرفت.

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

بنابراین کنترل دسترسی را می توان به عنوان رابطه بین فاعل و مفعول درنظر گرفت.با توجه به توضیحات ارائه شده، انتقال اطلاعات از مفعول به فاعل دسترسی نام دارد. در همین رابطه طبق اصل بنیادی کنترل دسترسی، اگر اجازه دسترسی فاعل به مفعول صراحتاً تعریف نشده باشد، عدم دسترسی (Deny Access) به عنوان دسترسی پیش فرض در نظر گرفته می شود.

برچسب ها :

تکنیک های احراز هویت و اعتبارسنجی – کلمه عبور

۲۴ اردیبهشت ۱۳۹۱ توسط , ۲ نظر

متداول ترین تکنیک اعتبارسنجی استفاده از کلمه عبور (Password)  است. با این حال، استفاده از کلمه عبور برای اعتبارسنجی به عنوان ضعیف ترین شیوه اعتبارسنجی درنظر گرفته می شود. کلمات عبور بدلایلی که در ادامه مطرح خواهند شد، مکانیزم امنیتی ضعیفی به شمار می آیند:

  • کاربران عموماً از کلمات عبور ساده ای استفاده می کنند که به حافظه سپردن آنها راحت باشد، و به همین دلیل نیز برای شکسته شدن و یا حدس زده شدن نیز راحت خواهند بود.
  • کلمه های عبوری که به صورت تصادفی ساخته می شوند برای به خاطر سپردن و یادآوری بسیار سخت هستند، در نتیجه، بسیاری از کاربران آنها را در جایی یادداشت می نمایند.
  • کلمات عبور براحتی به اشتراک گذاشته می شوند، در جایی یادداشت می شوند و یا فراموش می شوند.
  • کلمات عبور براحتی قابل سرقت هستند، بدین معنا که کلمات عبور براحتی قابل مشاهده، ضبط و بازآوری هستند و پایگاه داده های آنها نیز از سرقت در امان نیستند.
  • کلمات عبور غالبا به صورت متنی ساده (Clear Text) منتقل می شوند و یا الگورتیم های رمزنگاری آنها براحتی قابل شکسته شدن هستند.
  • پایگاه داده های کلمات عبور غالباً در محیط های آنلاین با قابلیت دسترسی همگانی نگهداری می شوند.
  • کلمه عبورهای کوتاه از طریق حملات brute-force به سرعت کشف می شوند.
برچسب ها :

امنیت در نرم افزار هایتان را از پایه بنا کنید

۱۲ مرداد ۱۳۹۰ توسط , ۶ نظر

هنگامیکه مشغول جمع آوری نیازمندی ها برای نرم افزارتان هستید ، به طور معمول کاربرد ، کارایی ، ظاهر گرافیکی کاربر ، قابلیت نگهداری و سایر ویژگی ها را در آن لحاظ می کنید ، اما امنیت چطور ؟

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

بنابراین ، این فرض که نیازی نیست امنیت را به چشم یک نیازمندی در سیستم ببینیم ، یک ریسک بسیار بزرگ است. هنگامیکه امنیت به طور مشخص قسمتی از نیازمندی های یک نرم افزار نباشد ، ممکن است هیچگاه در نظر گرفته نشود. چرخه توسعه امن (Security Development Lifecycle – SDL) که بر یکپارچه سازی امنیت با چرخه توسعه نرم افزار تاکید دارد ، مبتنی بر ۷ گام است:

یک . جمع آوری نیازمندی های امنیتی
دو . امن کردن طراحی
سه . ترکیب کردن مدل های حمله (Incorporate threat modeling)
چهار . انجام بازبینی کد
پنج . انجام آزمون های نفوذ (penetration tests)
شش . امن کردن توزیع نرم افزار
هفت . یکپارچه سازی نظرات در تکرار بعدی چرخه توسعه نرم افزار

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

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

 

انتشارات مایکروسافت (Microsoft Press) سه کتاب منتشر کرده است که می تواند شما را در زمینه درک فرایندی که مایکروسافت از آنها بهره می برد ، یاری دهد :

این کتابها دربردارنده انبوهی از اطلاعات درباره تکنیک های برنامه نویسی امن هستند .

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