آشنایی با امنیت برنامه وب

مقدمه

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

آشنایی با امنیت برنامه وب

امنیت برنامه وب Web Application security شاخه ای از امنیت اطلاعات است که به امنیت برنامه های وب ، خدمات وب و وب سایت ها می پردازد.
امنیت برنامه وب نوعی امنیت برنامه است که بطور خاص در سطح وب یا اینترنت اعمال می شود.

آشنایی با امنیت برنامه وب

آشنایی با امنیت برنامه وب

اهمیت امنیت برنامه وب

امنیت وب از آنجا که برنامه های وب به دلیل کد نویسی بد یا سالم سازی نامناسب ورودی ها و خروجی برنامه ها مورد حمله قرار می گیرند دارای اهمیت هستند.
حملات امنیتی رایج وب، اسکریپت کراس سایت (XSS) و SQL Injections یا از تزریق SQL هستند.

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

امنیت وب کاملاً مبتنی بر افراد و فرایندها است.
از این رو بسیار مهم است که توسعه دهندگان قبل از ایجاد وب سایت ها از استانداردهای کدگذاری مناسب و بررسی عقلی برای هرگونه تهدیدات امنیتی وب استفاده کنند.

بهترین مرحله اعمال امنیت وب

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

استاندارد سازی امنیت وب

OWASP ( اختصار Open Web Application Security Project ) استاندارد امنیت برنامه های وب است.
این برنامه مستندات، ابزارها، تکنیکها و روشهای کاملی را در زمینه امنیت برنامه وب ارائه می دهد.
OWASP یکی از منابع بی طرفانه اطلاعات در مورد بهترین شیوه ها در امنیت برنامه وب است.

در ادامه خطرات مهم امنیتی وب گزارش شده در OWASP را ارائه کرده ایم.

تزریق SQL

تزریق SQL یک نوع حمله تزریقی است که امکان اجرای نمایش داده های SQL مخرب و نادرست را می دهد که می توانند پایگاه داده های سرور وب را کنترل کنند.
مهاجمان می توانند از عبارات SQL برای دور زدن اقدامات امنیتی برنامه استفاده کنند.
آنها می توانند صفحات وب یا وب سایت های معتبر را تأیید یا رد کرده و محتوای پایگاه داده های SQL را با عبور از عبارات SQL دریافت کنند.
این حمله می تواند برای سایتهایی که از SQL ، MYSQL ، Oracle و غیره استفاده می کنند اتفاق بیفتد.
به عنوان پایگاه داده این شایع ترین و خطرناکترین حمله امنیتی طبق مستندات OWASP 2017 است.

SQL Injection ( آشنایی با مبانی امنیت سایبری )

SQL Injection ( آشنایی با امنیت برنامه وب )

برنامه نویسی متقاطع سایت (XSS)

برنامه نویسی متقاطع سایت (XSS) به مهاجمان این امکان را می دهد که برنامه نویسی سمت مشتری را به برنامه های وب و صفحات وب مشاهده شده توسط سایر کاربران تزریق کنند.
از یک آسیب پذیری برنامه نویسی داخلی می توان برای دور زدن سیاست هایی مانند همان سیاست مبدا استفاده کرد.
طبق آمار سال۲۰۰۷ ، XSS 84٪ از کل حملات امنیتی بر روی وب را به خود اختصاص داده است.
بسته به حساسیت داده ها ، XSS می تواند یک حمله جزئی یا یک تهدید بزرگ برای وب سایت ها باشد.

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

XSS ( آشنایی با امنیت برنامه وب )

XSS ( آشنایی با امنیت برنامه وب )

تأیید هویت و مدیریت جلسه شکسته

این حمله اجازه می دهد تا اعتبار را در صفحه وب یا برنامه تأیید کنید یا آن را دور بزنید.
این بیشتر یک استاندارد ضعیف است که توسط توسعه دهنده وب سایت ایجاد می شود و باعث موارد زیر می شود.

  • ورود به سیستم را قابل پیش بینی می کند.
  • عدم محافظت درست از اعتبار ورود به سیستم کاربر به هنگام ذخیره سازی.
  • قرار گرفتن شناسه جلسه در URL
  • عدم ارسال گذرواژه‌ها و شناسه جلسه از طریق URL های رمزگذاری شده
  • به پایان رسیدن مقادیر جلسه پس از مدت زمان مشخص.

برای جلوگیری از این حملات، توسعه دهنده می بایست در حین گذراندن استانداردهای مناسب مانند محافظت از رمزهای عبور و هشیار مناسب از آن، عدم قرار گرفتن در معرض شناسه جلسه، زمان بندی جلسه بعد از مدت زمان مشخص، مراقب باشد و مجدداً ID های جلسه را تکرار کند

رفع تأیید اعتبار

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

خرابی تأیید هویت هرگز نباید نشان دهد که کدام قسمت از داده های تأیید صحت نادرست است. پاسخ خطا باید تا حدی عمومی باشد.

برای مثال اعتبار نامعتبر به جای نشان دادن نام کاربری یا رمزعبور که دقیقاً نادرست است.

کلام آخر

پیروی هر وب سایت از استانداردهای مناسب مسئله خیلی مهمی است.
برای این کار باید تکنیک های مناسب برنامه نویسی را به کار برد از معماری برنامه قوی برخوردار بود.
سعی کنید اسکن ها را بصورت دوره ای بدون شکست انجام دهید.
همچنین سعی کنید از حملات امنیتی وب به میزان بیشتری جلوگیری نماید.

به اشتراک بگذارید