‫کرمی‬ ‫حسن‬
‫صادقی‬ ‫سعید‬
1
Open Web Application Security Protocol Project(OWASP)
‫وب‬ ‫تحت‬ ‫افزار‬ ‫نرم‬ ‫امنیت‬ ‫حفظ‬ ‫برای‬ ‫که‬ ‫معیارهای‬ ‫آن‬ ‫در‬ ‫که‬ ‫است‬ ‫دولتی‬ ‫غیر‬ ‫پروژه‬ ‫یک‬‫باید‬
‫میشود‬ ‫داده‬ ‫تشریح‬ ‫رود‬ ‫بکار‬.
‫باز‬ ‫متن‬ ‫پروژه‬ ‫یک‬(Open Source)
OWASP‫معیار‬ ‫یک‬ ‫عنوان‬ ‫به‬ ‫امروزه‬ ‫ولی‬ ‫نشد‬ ‫معرفی‬ ‫استاندارد‬ ‫یک‬ ‫عنوان‬ ‫بع‬ ‫ابتدا‬ ‫در‬‫یا‬ ‫و‬
‫یک‬baseline‫امنیتی‬‫شود‬ ‫می‬ ‫استفاده‬ ‫وب‬ ‫تحت‬ ‫افزارهای‬ ‫نرم‬ ‫در‬ ‫امنیت‬ ‫تولید‬ ‫و‬ ‫طراحی‬
2
Source Code Review
‫فراید‬‫امنیتی‬ ‫مشکالت‬ ‫کشف‬ ‫و‬ ‫کد‬ ‫سورس‬ ‫کردن‬ ‫چک‬ ‫برای‬ ‫دستی‬.
‫امنیتی‬ ‫های‬ ‫باگ‬ ‫برای‬ ‫روش‬ ‫ترین‬ ‫دقیق‬
‫های‬ ‫روش‬ ‫در‬ ‫سناریوها‬ ‫و‬ ‫ها‬ ‫حدس‬Black box‫شود‬ ‫می‬ ‫حذف‬
concurrency , backdoor،‫رمزنگاری‬ ‫ضعف‬ ‫نقاط‬
3
Penetration Testing
‫صورت‬ ‫به‬ ‫که‬ ‫امنیت‬ ‫تست‬ ‫برای‬ ‫معمول‬ ‫روش‬black box‫بهش‬ ‫که‬ethical hacking‫یا‬
‫هک‬‫اخالقی‬
Penetration test‫کردن‬ ‫پیدا‬ ‫برای‬ ‫دور‬ ‫راه‬ ‫از‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫هنر‬vulnerabilities
‫عادی‬ ‫کاربر‬ ‫دسترسی‬ ‫مشابه‬ ‫افزار‬ ‫نرم‬ ‫به‬ ‫تستر‬ ‫دسترسی‬
‫تست‬ ‫برای‬ ‫ابزارها‬ ‫از‬ ‫استفاده‬
‫از‬ ‫بیشتر‬ ‫تست‬ ‫سرعت‬Source review
4
‫ب‬ ‫را‬ ‫وب‬ ‫فضای‬ ‫در‬ ‫موجود‬ ‫امنیت‬ ‫های‬ ‫باگ‬ ‫تمامی‬ ‫و‬ ‫باشد‬ ‫امنیت‬ ‫متخصص‬ ‫یک‬ ‫باید‬‫شناسد‬
‫بایست‬ ‫می‬ ‫پذیر‬ ‫آسیب‬ ‫نقاط‬ ‫بر‬ ‫عالوه‬ ‫خود‬ ‫تست‬ ‫گزارش‬ ‫در‬‫پ‬ ‫آسیب‬ ‫این‬ ‫حل‬ ‫راه‬‫ها‬ ‫ذیری‬
‫تیم‬ ‫به‬ ‫هم‬ ‫رو‬Developer‫دهد‬ ‫ارائه‬
5
6
‫ب‬ ‫را‬ ‫وب‬ ‫فضای‬ ‫در‬ ‫موجود‬ ‫امنیت‬ ‫های‬ ‫باگ‬ ‫تمامی‬ ‫و‬ ‫باشد‬ ‫امنیت‬ ‫متخصص‬ ‫یک‬ ‫باید‬‫شناسد‬
‫بایست‬ ‫می‬ ‫پذیر‬ ‫آسیب‬ ‫نقاط‬ ‫بر‬ ‫عالوه‬ ‫خود‬ ‫تست‬ ‫گزارش‬ ‫در‬‫پ‬ ‫آسیب‬ ‫این‬ ‫حل‬ ‫راه‬‫ها‬ ‫ذیری‬
‫تیم‬ ‫به‬ ‫هم‬ ‫رو‬Developer‫دهد‬ ‫ارائه‬
7
Testing for Configuration and Deployment management
‫تست‬ ‫اهمیت‬‫های‬ ‫کانفیگ‬ ‫و‬ ‫تنظیمات‬Server‫و‬host‫یک‬Web application
oTest Network/Infrastructure Configuration
‫شبکه‬ ‫و‬ ‫زیرساخت‬ ،‫پیکربندی‬ ‫تست‬
‫سرورهای‬ ‫بودن‬ ‫جدا‬DB،CDN،Main Server،temp partition
8
oTest Application Platform Configuration
‫شده‬ ‫نصب‬ ‫های‬ ‫پلتفرم‬ ‫و‬ ‫امکانات‬default‫روی‬ ‫بر‬webserver‫ها‬.
•Directory traversal vulnerability in CodeBrws.asp in Microsoft IIS 5.0
•Use of sendmail.jsp in Oracle 9iAS
•Directory traversal in the view-source sample in Apache’s Cocoon
9
oTest File Extensions Handling for Sensitive Information
‫می‬ ‫استفاده‬ ‫آپلودی‬ ‫های‬ ‫فایل‬ ‫سنجی‬ ‫اعتبار‬ ‫برای‬ ‫عموما‬ ‫ها‬ ‫فایل‬ ‫فرمت‬‫شوند‬
‫محتوای‬‫چیزی‬ ‫اون‬ ‫فایل‬‫ن‬‫ی‬‫ست‬‫انتظار‬ ‫که‬‫می‬‫رود‬
‫خاص‬ ‫های‬ ‫فرمت‬ ‫به‬ ‫دسترسی‬
10
connection.inc
mysql_connect("127.0.0.1", "root", "")
or die("Could not connect");
‫نمای‬ ‫فایل‬ ‫محتوای‬ ‫کنید‬ ‫اجرا‬ ‫را‬ ‫آن‬ ‫سرور‬ ‫وب‬ ‫که‬ ‫نیست‬ ‫ای‬ ‫گونه‬ ‫به‬ ‫فایل‬ ‫فرمت‬ ‫چون‬‫داده‬ ‫ش‬
‫شود‬ ‫می‬.
‫تست‬ ‫روال‬ ‫در‬Extension‫سرور‬failed‫شود‬ ‫می‬
 .asa
 .inc
 .zip, .tar, .gz, .tgz, .rar, ...: (Compressed) archive files
 .java: No reason to provide access to Java source files
 .txt: Text files
 .pdf: PDF documents
 .doc, .rtf, .xls, .ppt, ...: Office documents
 .bak, .old and other extensions indicative of backup files (for example: ~ for Emacs backup files)
11
oTest HTTP Methods (OTG-CONFIG-006)
‫پروتکول‬http‫متود‬ ‫سری‬ ‫یک‬‫را‬ ‫هایی‬‫ارائه‬‫میدهند‬
 HEAD
 GET
 POST
 PUT
 DELETE
 TRACE
 OPTIONS
 CONNECT
‫ها‬ ‫متود‬ ‫این‬ ‫از‬ ‫برخی‬‫خود‬‫برای‬ ‫بلقوه‬ ‫خطر‬ ‫یک‬web application‫هستند‬.‫های‬ ‫متد‬
‫مثل‬put , delete , connect
‫نمی‬ ‫که‬ ‫صورتی‬ ‫در‬‫خواهیم‬‫از‬Rest web service‫استفاده‬ ‫های‬‫کرد‬‫باید‬‫ها‬ ‫متود‬ ‫این‬
disable‫شوند‬
12
oTest RIA cross domain policy (OTG-CONFIG-008)
‫آسیبپذیری‬‫مثل‬ ‫اینترنتی‬ ‫غیر‬ ‫کاربری‬ ‫های‬ ‫برنامه‬Silverlight, Adobe Flash
‫سرور‬ ‫منابع‬ ‫به‬ ‫ها‬ ‫فایل‬ ‫این‬ ‫دسترسی‬ ‫اجازه‬
‫قرار‬ ‫بررسی‬ ‫مورد‬ ‫امنیت‬ ‫های‬ ‫تستر‬ ‫که‬ ‫مواردی‬ ‫از‬ ‫یکی‬ ‫و‬‫دهند‬ ‫می‬‫واسط‬ ‫های‬ ‫فایل‬‫ی‬
‫ها‬ ‫تکنولوژی‬ ‫نوع‬ ‫این‬ ‫که‬ ‫است‬‫برای‬‫استفاده‬ ‫سرور‬ ‫منابع‬ ‫به‬ ‫دسترسی‬ ‫ایجاد‬‫کنند‬ ‫می‬.
 Sockets permissions
 Header permissions
 HTTP/HTTPS access permissions
 Sockets permissions
 Header permissions
 HTTP/HTTPS access permissions
13
exploit‫و‬ ‫است‬ ‫افزار‬ ‫نرم‬ ‫های‬ ‫باگ‬ ‫از‬ ‫تر‬ ‫مشکل‬ ‫بسیار‬ ‫سرور‬ ‫های‬ ‫باگ‬ ‫کردن‬
‫نفوزگرها‬attack‫دهند‬ ‫می‬ ‫قرار‬ ‫مرحله‬ ‫آخرین‬ ‫در‬ ‫رو‬ ‫سرور‬ ‫به‬.
Authentication Testing
Testing for Weak password policy
Testing for User Enumeration and Guessable User Account
 Login for User foo: invalid password
 Login failed for User foo: invalid Account
 http://www.foo.com/err.jsp?User=gooduser&Error=2
 http://www.foo.com/err.jsp?User=baduser&Error=0
14
Testing for Bypassing Authentication Schema
Direct page request (forced browsing)
Session ID prediction
SQL injection
15
Testing for Brute Force
 HTTP Authentication;
◦ Basic Access Authentication
 HTML Form-based Authentication
16
Session Management Testing
Check session tokens for cookie flags (httpOnly and secure, domain)
Authorization Testing
Directory Traversal
17
Input Validation Testing
SQL Injection (SQLi)
Blind SQL Injection
Testing for Command Injection
18
Testing for Local File Inclusion
Testing for Remote File Inclusion
19
Cross-site Scripting (XSS)
19
CSRF Cross-Site Request Forgery
20
WAF(Web Application Firewall)
21
WAF(Web Application Firewall)

Web Application Security Test

  • 1.
  • 2.
    Open Web ApplicationSecurity Protocol Project(OWASP) ‫وب‬ ‫تحت‬ ‫افزار‬ ‫نرم‬ ‫امنیت‬ ‫حفظ‬ ‫برای‬ ‫که‬ ‫معیارهای‬ ‫آن‬ ‫در‬ ‫که‬ ‫است‬ ‫دولتی‬ ‫غیر‬ ‫پروژه‬ ‫یک‬‫باید‬ ‫میشود‬ ‫داده‬ ‫تشریح‬ ‫رود‬ ‫بکار‬. ‫باز‬ ‫متن‬ ‫پروژه‬ ‫یک‬(Open Source) OWASP‫معیار‬ ‫یک‬ ‫عنوان‬ ‫به‬ ‫امروزه‬ ‫ولی‬ ‫نشد‬ ‫معرفی‬ ‫استاندارد‬ ‫یک‬ ‫عنوان‬ ‫بع‬ ‫ابتدا‬ ‫در‬‫یا‬ ‫و‬ ‫یک‬baseline‫امنیتی‬‫شود‬ ‫می‬ ‫استفاده‬ ‫وب‬ ‫تحت‬ ‫افزارهای‬ ‫نرم‬ ‫در‬ ‫امنیت‬ ‫تولید‬ ‫و‬ ‫طراحی‬ 2
  • 3.
    Source Code Review ‫فراید‬‫امنیتی‬‫مشکالت‬ ‫کشف‬ ‫و‬ ‫کد‬ ‫سورس‬ ‫کردن‬ ‫چک‬ ‫برای‬ ‫دستی‬. ‫امنیتی‬ ‫های‬ ‫باگ‬ ‫برای‬ ‫روش‬ ‫ترین‬ ‫دقیق‬ ‫های‬ ‫روش‬ ‫در‬ ‫سناریوها‬ ‫و‬ ‫ها‬ ‫حدس‬Black box‫شود‬ ‫می‬ ‫حذف‬ concurrency , backdoor،‫رمزنگاری‬ ‫ضعف‬ ‫نقاط‬ 3
  • 4.
    Penetration Testing ‫صورت‬ ‫به‬‫که‬ ‫امنیت‬ ‫تست‬ ‫برای‬ ‫معمول‬ ‫روش‬black box‫بهش‬ ‫که‬ethical hacking‫یا‬ ‫هک‬‫اخالقی‬ Penetration test‫کردن‬ ‫پیدا‬ ‫برای‬ ‫دور‬ ‫راه‬ ‫از‬ ‫افزار‬ ‫نرم‬ ‫تست‬ ‫هنر‬vulnerabilities ‫عادی‬ ‫کاربر‬ ‫دسترسی‬ ‫مشابه‬ ‫افزار‬ ‫نرم‬ ‫به‬ ‫تستر‬ ‫دسترسی‬ ‫تست‬ ‫برای‬ ‫ابزارها‬ ‫از‬ ‫استفاده‬ ‫از‬ ‫بیشتر‬ ‫تست‬ ‫سرعت‬Source review 4
  • 5.
    ‫ب‬ ‫را‬ ‫وب‬‫فضای‬ ‫در‬ ‫موجود‬ ‫امنیت‬ ‫های‬ ‫باگ‬ ‫تمامی‬ ‫و‬ ‫باشد‬ ‫امنیت‬ ‫متخصص‬ ‫یک‬ ‫باید‬‫شناسد‬ ‫بایست‬ ‫می‬ ‫پذیر‬ ‫آسیب‬ ‫نقاط‬ ‫بر‬ ‫عالوه‬ ‫خود‬ ‫تست‬ ‫گزارش‬ ‫در‬‫پ‬ ‫آسیب‬ ‫این‬ ‫حل‬ ‫راه‬‫ها‬ ‫ذیری‬ ‫تیم‬ ‫به‬ ‫هم‬ ‫رو‬Developer‫دهد‬ ‫ارائه‬ 5
  • 6.
    6 ‫ب‬ ‫را‬ ‫وب‬‫فضای‬ ‫در‬ ‫موجود‬ ‫امنیت‬ ‫های‬ ‫باگ‬ ‫تمامی‬ ‫و‬ ‫باشد‬ ‫امنیت‬ ‫متخصص‬ ‫یک‬ ‫باید‬‫شناسد‬ ‫بایست‬ ‫می‬ ‫پذیر‬ ‫آسیب‬ ‫نقاط‬ ‫بر‬ ‫عالوه‬ ‫خود‬ ‫تست‬ ‫گزارش‬ ‫در‬‫پ‬ ‫آسیب‬ ‫این‬ ‫حل‬ ‫راه‬‫ها‬ ‫ذیری‬ ‫تیم‬ ‫به‬ ‫هم‬ ‫رو‬Developer‫دهد‬ ‫ارائه‬
  • 7.
    7 Testing for Configurationand Deployment management ‫تست‬ ‫اهمیت‬‫های‬ ‫کانفیگ‬ ‫و‬ ‫تنظیمات‬Server‫و‬host‫یک‬Web application oTest Network/Infrastructure Configuration ‫شبکه‬ ‫و‬ ‫زیرساخت‬ ،‫پیکربندی‬ ‫تست‬ ‫سرورهای‬ ‫بودن‬ ‫جدا‬DB،CDN،Main Server،temp partition
  • 8.
    8 oTest Application PlatformConfiguration ‫شده‬ ‫نصب‬ ‫های‬ ‫پلتفرم‬ ‫و‬ ‫امکانات‬default‫روی‬ ‫بر‬webserver‫ها‬. •Directory traversal vulnerability in CodeBrws.asp in Microsoft IIS 5.0 •Use of sendmail.jsp in Oracle 9iAS •Directory traversal in the view-source sample in Apache’s Cocoon
  • 9.
    9 oTest File ExtensionsHandling for Sensitive Information ‫می‬ ‫استفاده‬ ‫آپلودی‬ ‫های‬ ‫فایل‬ ‫سنجی‬ ‫اعتبار‬ ‫برای‬ ‫عموما‬ ‫ها‬ ‫فایل‬ ‫فرمت‬‫شوند‬ ‫محتوای‬‫چیزی‬ ‫اون‬ ‫فایل‬‫ن‬‫ی‬‫ست‬‫انتظار‬ ‫که‬‫می‬‫رود‬ ‫خاص‬ ‫های‬ ‫فرمت‬ ‫به‬ ‫دسترسی‬
  • 10.
    10 connection.inc mysql_connect("127.0.0.1", "root", "") ordie("Could not connect"); ‫نمای‬ ‫فایل‬ ‫محتوای‬ ‫کنید‬ ‫اجرا‬ ‫را‬ ‫آن‬ ‫سرور‬ ‫وب‬ ‫که‬ ‫نیست‬ ‫ای‬ ‫گونه‬ ‫به‬ ‫فایل‬ ‫فرمت‬ ‫چون‬‫داده‬ ‫ش‬ ‫شود‬ ‫می‬. ‫تست‬ ‫روال‬ ‫در‬Extension‫سرور‬failed‫شود‬ ‫می‬  .asa  .inc  .zip, .tar, .gz, .tgz, .rar, ...: (Compressed) archive files  .java: No reason to provide access to Java source files  .txt: Text files  .pdf: PDF documents  .doc, .rtf, .xls, .ppt, ...: Office documents  .bak, .old and other extensions indicative of backup files (for example: ~ for Emacs backup files)
  • 11.
    11 oTest HTTP Methods(OTG-CONFIG-006) ‫پروتکول‬http‫متود‬ ‫سری‬ ‫یک‬‫را‬ ‫هایی‬‫ارائه‬‫میدهند‬  HEAD  GET  POST  PUT  DELETE  TRACE  OPTIONS  CONNECT ‫ها‬ ‫متود‬ ‫این‬ ‫از‬ ‫برخی‬‫خود‬‫برای‬ ‫بلقوه‬ ‫خطر‬ ‫یک‬web application‫هستند‬.‫های‬ ‫متد‬ ‫مثل‬put , delete , connect ‫نمی‬ ‫که‬ ‫صورتی‬ ‫در‬‫خواهیم‬‫از‬Rest web service‫استفاده‬ ‫های‬‫کرد‬‫باید‬‫ها‬ ‫متود‬ ‫این‬ disable‫شوند‬
  • 12.
    12 oTest RIA crossdomain policy (OTG-CONFIG-008) ‫آسیبپذیری‬‫مثل‬ ‫اینترنتی‬ ‫غیر‬ ‫کاربری‬ ‫های‬ ‫برنامه‬Silverlight, Adobe Flash ‫سرور‬ ‫منابع‬ ‫به‬ ‫ها‬ ‫فایل‬ ‫این‬ ‫دسترسی‬ ‫اجازه‬ ‫قرار‬ ‫بررسی‬ ‫مورد‬ ‫امنیت‬ ‫های‬ ‫تستر‬ ‫که‬ ‫مواردی‬ ‫از‬ ‫یکی‬ ‫و‬‫دهند‬ ‫می‬‫واسط‬ ‫های‬ ‫فایل‬‫ی‬ ‫ها‬ ‫تکنولوژی‬ ‫نوع‬ ‫این‬ ‫که‬ ‫است‬‫برای‬‫استفاده‬ ‫سرور‬ ‫منابع‬ ‫به‬ ‫دسترسی‬ ‫ایجاد‬‫کنند‬ ‫می‬.  Sockets permissions  Header permissions  HTTP/HTTPS access permissions  Sockets permissions  Header permissions  HTTP/HTTPS access permissions
  • 13.
    13 exploit‫و‬ ‫است‬ ‫افزار‬‫نرم‬ ‫های‬ ‫باگ‬ ‫از‬ ‫تر‬ ‫مشکل‬ ‫بسیار‬ ‫سرور‬ ‫های‬ ‫باگ‬ ‫کردن‬ ‫نفوزگرها‬attack‫دهند‬ ‫می‬ ‫قرار‬ ‫مرحله‬ ‫آخرین‬ ‫در‬ ‫رو‬ ‫سرور‬ ‫به‬. Authentication Testing Testing for Weak password policy Testing for User Enumeration and Guessable User Account  Login for User foo: invalid password  Login failed for User foo: invalid Account  http://www.foo.com/err.jsp?User=gooduser&Error=2  http://www.foo.com/err.jsp?User=baduser&Error=0
  • 14.
    14 Testing for BypassingAuthentication Schema Direct page request (forced browsing) Session ID prediction SQL injection
  • 15.
    15 Testing for BruteForce  HTTP Authentication; ◦ Basic Access Authentication  HTML Form-based Authentication
  • 16.
    16 Session Management Testing Checksession tokens for cookie flags (httpOnly and secure, domain) Authorization Testing Directory Traversal
  • 17.
    17 Input Validation Testing SQLInjection (SQLi) Blind SQL Injection Testing for Command Injection
  • 18.
    18 Testing for LocalFile Inclusion Testing for Remote File Inclusion
  • 19.
  • 20.
  • 21.
  • 22.