امنیت

فناوری اطلاعات

March 8, 2016
14:33 سه شنبه، 18ام اسفندماه 1394
کد خبر: 76514

امنیت در سیستم‌های تحت وب

 
نیاز به استفاده از سیستم‌های اطلاعاتی خارج از مرزهای فیزیکی سازمان، استفاده از نرم‌افزارهای تحت وب را بیش از پیش رایج و ضروری کرده است. در دسترس قرار گرفتن این نرم‌افزارها در بستر وب و انتقال داده‌ها از طریق اینترنت، با وجود مزایایی که به همراه دارد ریسک نفوذ در اطلاعات و حمله به آنها را نیز در بر دارد.  
 
بنابراین تامین امنیت نرم‌افزارهای تحت وب از اهمیت ویژه‌ای برای سازمان‌ها برخوردار است و نیازمند سرمایه‌گذاری در زمینه‌‌ی تجهیزات سخت‌افزاری و نرم‌افزاری است. 
 
برقراری امنیت از طریق امن کردن شبکه مانند بکارگیری فایروال، رمزنگاری جریان اطلاعات روی شبکه، آنتی ویروس و غیره برای نرم‌افزارهای تحت وب لازم است اما کافی نیست و برخی ریسک‌ها و حملات نفوذی، نقاط ضعف در طراحی و پیاده سازی نرم‌افزارهای تحت وب را هدف می‌گیرد. بدین ترتیب امنیت لایه‌های مختلفی دارد که بکارگیری هر کدام از تجهیزات امنیتی، سازمان را در برابر نوع خاصی از حملات و نفوذها ایمن می‌سازد. به عنوان مثال فایروال‌ها که می‌توانند سخت‌افزاری یا نرم‌افزاری باشند، از شبکه در مقابل ترافیک‌های ناخواسته محافظت می‌کنند و ترافیک‌های ورودی و خروجی از یک درگاه (پورت) را آنالیز کرده و بر اساس نوع قوانینی که برای آن تعریف می‌شود، اجازه ورود یا خروج از آن را صادر می‌کنند اما نمی‌توانند نرم‌افزار را در برابر حملاتی که با کدهای مخرب ایجاد می‌شود مانند SQL injection یا تلاش و حدس چند باره کلمه عبور کاربران محافظت کند. 
 
طراحی و ساخت یک برنامه کاربردی تحت وب امن بدون شناخت تهدیدهای احتمالی که برنامه را به خطر می‌اندازد، امکان‌پذیر نخواهد بود. در یک نگاه کلی، مبانی و مفاهیم امنیت اطلاعات در برنامه نویسی وب به شرح زیر است:
 
آسیب‌پذیری یک برنامه کاربردی به یک کاربر مخرب اجازه می‌دهد تا از شبکه یا میزبان وب بهره برداری کند. بنابراین برای ساخت یک برنامه کاربردی تحت وب امن، نیاز به به یک رویکرد جامع امنیت نرم‌افزار است که روی هر سه لایه برنامه کاربردی، میزبان وب و شبکه اعمال شود.
 
مبانی و مفاهیم امنیت اطلاعات
 
مبانی امنیت شامل احراز هویت [۱]، اعطای حق دسترسی[۲]، حسابرسی [۳]، محرمانگی[۴]، صحت[۵] و دسترس‌پذیری[۶] است که در ادامه تشریح می‌شوند:  
 
احراز هویت
«احراز هویت» به این سوال اشاره داد که شما چه کسی هستید؟ احراز هویت فرایند شناسایی منحصر به فرد سرویس گیرنده‌های نرم‌افزار کاربردی است که ممکن است کاربران نهایی یا سایر سرویس‌ها و فرایندهای برنامه‌نویسی باشند.
 
اعطای حق دسترسی
«اعطای حق دسترسی» به این سوال اشاره دارد که شما چه کاری می‌توانید انجام دهید؟ اعطای حق دسترسی فرایندی است که در آن، منابع و عملیاتی که کاربران احراز هویت شده اجازه دسترسی به آنها را دارند، مدیریت می‌شود. منابع شامل فایل‌ها، پایگاه‌های داده، جداول، سطرها و غیره است. عملیات می‌تواند شامل انجام یک تراکنش مانند خرید یک محصول یا انتقال وجه از یک حساب به حساب دیگر باشد.
 
حسابرسی
«حسابرسی» و رویدادنگاری، کلید عدم انکار [۷] است. عدم انکار بدین معناست که یک کاربر نمی‌تواند انجام کاری یا شروع یک تراکنش را در سیستم انکار کند.  
 
محرمانگی
«محرمانگی» که از آن به «حریم خصوصی» نیز یاد می‌شود، فرایند حصول اطمینان از این است که داده‌ها محرمانه و خصوصی می‌مانند و توسط کاربرانی که مجوز ندارند یا استراق سمع‌کنندگانی که به ترافیک شبکه نظارت می‌کنند، دیده نمی‌شوند. رمزگذاری اغلب برای رسیدن به این هدف به کار گرفته می‌شود. لیست کنترل دسترسی (ACL) نیز ابزار دیگری است که به همین منظور استفاده می‌شود.
 
صحت
«صحت» تضمین‌کننده این است که داده‌ها از هر گونه تغییر عمدی یا تصادفی محافظت می‌شوند. «صحت» داده از اهمیت ویژه‌ای به خصوص وقتی روی شبکه مبادله می‌شود برخوردار است. «صحت» داده هنگام نقل و انتقال عمدتا توسط روش‌های Hashing یا کدهای احراز هویت پیام فراهم می‌شوند.
 
دسترس‌پذیری
از منظر امنیت، «دسترس‌پذیری» یعنی اینکه سیستم برای کاربران معتبر در دسترس باشد. هدف بسیاری از مهاجمان با حملات از نوع انکار خدمت این است که برنامه کاربردی سقوط کند تا مطمئن شوند که کاربران دیگر نمی‌توانند به برنامه دسترسی داشته باشند. ۱۵
 
 اهمیت امنیت در برنامه‌های کاربردی تحت وب
 
یکی از اصول مهمی که همواره پیشنهاد می‌شود در فاز طراحی برنامه کاربردی در نظر گرفته شود، «مدل‌سازی تهدید» است. هدف مدل‌سازی تهدید این است که طراحی و معماری برنامه کاربردی را تحلیل کرده و حوزه‌هایی که پتانسیل آسیب‌پذیری دارند را مشخص کند.» آسیب‌پذیری در شبکه به یک کاربر مخرب اجازه می دهد تا از میزبان وب یا یک برنامه کاربردی  بهره‌برداری کند.«آسیب‌پذیری میزبان وب به یک کاربر مخرب اجازه می‌دهد تا از یک شبکه یا یک برنامه کاربردی بهره‌برداری کند.» «آسیب‌پذیری یک برنامه کاربردی به یک کاربر مخرب اجازه می‌دهد تا از شبکه یا میزبان وب بهره برداری کند.»[۸] بنابراین برای ساخت یک برنامه کاربردی تحت وب امن، نیاز به به یک رویکرد جامع امنیت نرم‌افزار است که روی هر سه لایه برنامه کاربردی، میزبان وب و شبکه اعمال شود.
 
بر اساس آخرین گزارش‌های منتشرشده توسط کنسرسیوم بین المللی «امنیت در برنامه‌ی کاربردی وب» OWASP، بیشترین حملات به نرم‌افزارهای تحت وب عبارتند از Cross-site scripting، SQL injection و Denial-of-service است. اگر فهرست بیشترین مسائل و مشکلات امنیتی برنامه‌های کاربردی تحت وب را مرور و تحلیل کنیم الگویی از مشکلات را شاهد خواهیم بود که با دسته‌بندی آنها در گروه‌های مشخص می‌توان به طور سیستماتیک با آنها مقابله کرد. این طبقه‌بندی‌ها که به عنوان چارچوبی هنگام ارزیابی امنیت نرم‌افزارهای کاربردی تحت وب مورد استفاده قرار می‌گیرند، عبارتند از: 
 
 اعتبارسنجی ورودی‌ها، احراز هویت، اعطای مجوز، مدیریت پیکربندی، داده‌های حساس، مدیریت نشست، رمزنگاری، دستکاری پارامترها، مدیریت خطاها، ممیزی و رویدادنگاری. 
امنیت نیز مانند بسیاری از جنبه‌های مهندسی نرم‌افزار، بر رویکرد مبتنی بر اصول استوار است که اصول پایه آن بدون در نظر گرفتن نوع فناوری پیاده‌سازی نرم‌افزار می‌تواند به کار گرفته شود. مهم‌ترین این اصول عبارتند از :
 
بخش‌بندی[۹]: با بخش‌بندی برنامه سطحی از برنامه که ممکن است مورد حمله قرار بگیرد کاهش می‌یابد. از خود بپرسید اگر یک مهاجم به سیستم دسترسی پیدا کرد به چه منابعی دسترسی خواهد داشت؟ آیا مهاجم می‌تواند به منابع شبکه دسترسی پیدا کند؟ چگونه پتانسیل خرابی برنامه را محدود می کنید؟ فایروال و اعطای حداقل مجوز دسترسی مصداق هایی از این اصل هستند.
 
استفاده از حداقل امتیاز[۱۰]: با اجرای فرایندها توسط حساب‌های کاربری با حداقل حقوق دسترسی‌ها و امتیازها امکان دسترسی مهاجمان به اجرای کدها کاهش می‌یابد.
دفاع در عمق [۱۱]: به این معنی که به یک لایه امنیت اکتفا نشود.
اعتماد نکردن به ورودی کاربر: ورودی کاربران نرم‌افزار اولین سلاح مهاجمان است. فرض کنید همیشه داده‌های ورودی کاربران مخرب هستند مگر اینکه خلاف آن اثبات شود.  
 
کنترل دروازه‌ها [۱۲]: حتما در اولین ورودی کاربران احراز هویت شوند.
شکست امن [۱۳]: اگر برنامه کاربردی از کار بیفتد داده‌های حساس در دسترس قرار نگیرند.
ضعیف‌ترین ارتباط امن شود [۱۴]: اگر در سطح شبکه، میزبان وب یا برنامه کاربردی آسیب‌پذیری وجود دارد، امن شود.
 
پیش‌فرض‌های امن: حساب‌های کاربری پیش فرض امن و با حداقل دسترسی و به طور پیش فرض غیر فعال باشند.
کاهش سطح تماس با مهاجمان[۱۵]: اگر چیزی را استفاده نمی‌کنید، آن غیر فعال یا حذف کنید.
 
لزوم به‌کارگیری آزمون‌های استاندارد امنیت
 
تعداد حملات به نرم‌افزارهای تحت وب رو به افزایش است. آنها مستقیما از ورودی‌های محیط با استفاده از پروتکل http عبور می‌کنند. به کارگیری مدل‌های دژهای معمولی و تکیه به ابزارهایی مانند فایروال و دفاع از میزبان وب به تنهایی کافی نیست. امن کردن نرم‌افزار تحت وب شامل اعمال امنیت در سه لایه شبکه، میزبان و برنامه کاربردی است. امنیت شبکه و زیرساخت میزبان وب یک اجبار است. علاوه بر آن، طراحی و ساخت برنامه کاربردی نیز باید با استفاده از مدل‌ها، طراحی و اصول پیاده سازی امن انجام شود. 
 
اما  با وجود تمام تلاش‌های برنامه‌نویسان و طراحان نرم‌افزار، گاهی اوقات ممکن است حفره‌های امنیتی‌ای ایجاد شود که از دید برنامه‌نویس پنهان مانده و برای رفع آنها اقدامی صورت نگرفته است. بهترین راه یافتن این قبیل مشکلات امنیتی نرم‌افزار این است که تحت آزمون‌های استاندارد امنیت قرار بگیرد و از جنبه‌های مختلف از جمله تست نفوذ در حوزه‌های احراز هویت، معماری سیستم، حقوق دسترسی، ذخیره و بازیابی اطلاعات، رد پای عملیات و وقایع و سایر حملات مورد ارزیابی قرار گیرد. 
 
در ایران نیز آزمایشگاه‌های مختلفی آزمون‌های تست نفوذ و امنیت نرم‌افزارهای تحت وب را بر اساس استانداردهای بین المللی انجام می‌دهند. در آزمایشگاه امنیت، عملیات ارزیابی محصولات نرم‌افزاری در سطوح مختلف اجرا می‌شود و در صورت موففیت آمیز بودن همه عناصر امنیتی مربوط به هر سطح، گواهینامه مربوط توسط مرکز صادر خواهد شد.
  • مشترک شوید!

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

    با عضویت در خبرنامه پیامکی آژانس خبری فناوری اطلاعات و ارتباطات (ایستنا) به طور روزانه آخرین اخبار، گزارشها و تحلیل های حوزه فناوری اطلاعات و ارتباطات را در هر لحظه و هر کجا از طریق پیام کوتاه دریافت خواهید کرد. برای عضویت در این خبرنامه، مشترکین سیمکارت های همراه اول لازم است عبارت 150 را به شماره 201464 و مشترکین سیمکارت های ایرانسل عبارت ozv ictn را به شماره ۸۲۸۲ ارسال کنند. دریافت موفق هر بسته خبری که محتوی پیامکی با حجم ۵پیامک بوده و ۴ تا ۶ عنوان خبری را شامل میشود، ۳۵۰ ریال برای مشترک هزینه در بردارد که در صورتحساب ارسالی از سوی اپراتور مربوطه محاسبه و از اعتبار موجود در حساب مشترکین سیمکارت های دائمی کسر میشود. بخشی از این درآمد این سرویس از سوی اپراتور میزبان شما به ایستنا پرداخت میشود. مشترکین در هر لحظه براساس دستورالعمل اعلامی در پایان هر بسته خبری قادر خواهند بود اشتراک خود را در این سرویس لغو کنند. هزینه دریافت هر بسته خبری برای مشترکین صرفا ۳۵۰ ریال خواهد بود و این هزینه برای مشترکین در حال استفاده از خدمات رومینگ بین الملل اپراتورهای همراه اول و ایرانسل هم هزینه اضافه ای در بر نخواهد داشت.