1. Trang chủ
  2. » Tất cả

Bao_cao_OWASP_DVWA

48 55 0

Đ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 48
Dung lượng 3,83 MB

Nội dung

KHOA CÔNG NGHỆ THÔNG TIN 10 LỖ HỔNG BẢO MẬT OWASP THỰC NGHIỆM TRÊN DVWA HỌC VIÊN THỰC HIỆN NGUYỄN XUÂN THẮNG GIÁO VIÊN HƯỚNG DẪN NGUYỄN VĂN AN MỤC LỤC MỤC LỤC 1.1 1.2 1.3 2.1 2.2 2.3 TOP MƯỜI LỖ HỔNG BẢO MẬT OWASP Tính cấp thiết an tồn thơng tin kỷ ngun số Lỗ hổng bảo mật Top 10 lỗ hổng bảo mật theo OWASP THỰC NGHIỆM TẤN CÔNG VỚI DVWA Khái quát DVWA Chuẩn bị Thực nghiệm công KẾT LUẬN Trang 5 5 Phần 1: MƯỜI LỖ HỔNG BẢO MẬT OWASP 1.1 Tính cấp thiết an tồn thơng tin kỷ ngun số Trong kỷ ngun số, vấn đề bảo mật an tồn khơng gian mạng ngày trở nên quan trọng, không doanh nghiệp, tổ chức, phủ, mà với cá nhân Tại Việt Nam với bùng nổ mạng xã hội, xu hướng mua bán, toán, giao dịch mạng diễn ngày Do đó, an ninh mạng kỷ nguyên số trở thành chủ đề nóng, đặt thách thức lớn nhà nghiên cứu, chuyên gia ngành, lỗ hổng phương thức khai thác lỗ hổng ngày phức tạp tinh vi Những kẻ công (gọi chung hacker) thường lợi dụng sở hở người dùng lỗ hổng bảo mật hệ thống, xâm nhập đánh cắp thông tin phá hoại sở liệu; điều gây thiệt hại lớn vật chất tinh thần cho người dùng - nhiều thông tin cá nhân bị lộ, bị mất, điều xảy với nhiều tổ chức, công ty, tư nhân khu vực nhà nước Trên thực tế, khơng vụ công mạng xảy liên tiếp Việt Nam thời gian gần gây hậu to lớn Những việc lời cảnh báo cá nhân doanh nghiệp thời đại số Với xu phát triển mạnh mẽ cách mạng công nghiệp 4.0 tồn giới, có Việt Nam, bùng nổ thiết bị IoT mang lại nhiều nguy tiềm ẩn công không gian mạng bị kẻ xấu lợi dụng để công vào hạ tầng, gây hậu nghiêm trọng Một nghiên cứu từ hãng bảo mật Positive Technologies cho thấy, 82% lỗ hổng ứng dụng website nằm mã nguồn hầu hết trang web có lỗ hổng rủi ro cao Ngoài ra, khoảng 70% website dễ bị công quản trị viên khơng biết trang website bị cơng nắm vững phương pháp kiểm tra, dò quét thích hợp để tìm điểm yếu bảo mật, lỗ hổng để vá (fix) lại 1.2 Lỗ hổng bảo mật Định nghĩa: Lỗ hổng bảo mật điểm yếu website, gây do: lỗi cấu hình, phân quyền cho website, lỗi lập trình người lập trình, lỗi nằm hệ thống, thành phần tích hợp Cách thức hoạt động: Hacker sử dụng cơng cụ dị qt để phát loạt website có cấu hình bảo mật website tảng phổ biến WordPress hay Joomla có lỗ hổng cơng bố chưa người quản trị website xử lý Hacker lợi dụng lỗ hổng để công, cài đặt mã độc phá hoại website Phân loại lỗ hổng bảo mật - Lỗ hổng loại C: Cho phép thực công kiểu DoS (Denial of Services - từ chối dịch vụ) làm ảnh hưởng tới chất lượng dịch vụ, ngưng trệ, gián đoạn hệ thống, không phá hỏng liệu đạt quyền truy cập hệ thống - Lỗ hổng loại B: Mức độ nguy hiểm trung bình, lỗ hổng thường xuất ứng dụng hệ thống Lỗ hổng loại B cho phép người sử dụng có thêm quyền truy cập hệ thống mà khơng cần kiểm tra tính hợp lệ nguy dẫn đến lộ, lọt thông tin - Lỗ hổng loại A: Cảnh báo nguy hiểm, lỗ hổng cho phép người ngồi hệ thống truy cập hợp pháp vào hệ thống dẫn đến phá hủy hệ thống Nguyên nhân lỗ hổng thường quản trị yếu kém, lỗ hổng có sẵn phần mềm mà người quản trị khơng nhận thấy không phát kịp thời Các bước thực công Trinh sát (Reconnaissance): Đây q trình trinh sát, thăm dị mục tiêu, bước quan trọng để biết thông tin hệ thống mục tiêu Hacker sử dụng kỹ thuật để khám phá hệ thống mục tiêu chạy hệ điều hành nào, có dịch vụ chạy dịch vụ đó, cổng dịch vụ đóng cổng mở… Cơng cụ cơng: (Weaponization): Ở bước Hacker tìm công cụ phục vụ cho việc công (tự viết dowload mạng), sau đóng gói (nhúng mã độc, usb…) Phát tán (Delivery): Đưa công cụ phục vụ cho việc công đến hệ thống mục tiêu để chuẩn bị cho công Khám phá: (Exploitation): Bước Hacker tìm khu vực, điểm yếu dễ bị công Cài đặt (Installation): Tiến hành cài đặt mã độc vào hệ thống máy tính cần cơng trở thành cửa sau cho công cụ khác tiến hành công Kiểm soát điều khiển (Command and Control): Xét chất bước hệ thống máy tính mục tiêu bị chiếm quyền điều khiển Action on Objectives: Thực hành công 1.3 Top 10 lỗ hổng bảo mật theo OWASP Open Web Application Security Project (OWASP) tổ chức bao gồm chuyên gia bảo mật hàng đầu giới, chuyên cung cấp thông tin ứng dụng rủi ro đặt cách trực tiếp, khách quan thực tế Từ năm 2013 đến nay, năm lần, OWASP lại công bố danh sách Top 10 rủi ro bảo mật ứng dụng lớn nhất, gọi OWASP Top 10 Danh sách coi chuẩn AppSec cộng đồng an ninh mạng tin tưởng Danh sách bao gồm thông tin lỗ hổng, mối đe dọa công thủ thuật để phát khắc phục Các thành viên dự án lập danh sách dựa việc phân tích tỉ lệ xuất mức độ nghiêm trọng mối đe dọa Tiêu chuẩn OWASP giúp cho chuyên gia kiểm thử (pentester) kiểm tra bảo mật cho website cách chi tiết, hiệu 1.3.1 Lỗ hổng Injection (Lỗi chèn mã độc) - Lỗ hổng Injection lỗ hổng bảo mật phổ biến nguy hiểm Nếu ứng dụng nhận liệu đầu vào từ người dùng đến sở liệu back-end, tập lệnh hay gọi ứng dụng phải đối mặt với công mã nhúng (chèn mã độc) Hacker gửi mã dạng văn nhờ tận dụng sơ hở cú pháp trình biên dịch Hầu đoạn mã nguồn mắc lỗi bao gồm mã nguồn nội dự án, lỗi nhúng mã xảy ứng dụng gửi đoạn mã độc đến trình biên dịch Lỗi nhúng mã tập hợp lỗ hổng bảo mật xảy liệu đáng ngờ chèn vào ứng dụng dạng lệnh hay truy vấn Các công mã nhúng biết như: SQL, OS, XXE LDAP Trong đó, phổ biến cơng SQL, biết đến SQLi Một công SQLi thành công đoạn mã sai gửi đến liệu máy chủ tiếp cận với hệ thống liệu Kiểu công đơn giản dễ dàng, truy cập vào Internet thực - tập lệnh SQLi ln có sẵn để download dễ dàng mua Trong phạm vi tìm hiểu, viết tập trung làm rõ lỗ hổng bảo mật phổ biến SQL Injection: SQL Injection kiểu hack website dần trở nên phổ biến Bằng cách inject mã SQL query/command vào input trước chuyển cho ứng dụng web xử lí, hacker login mà khơng cần username password, remote execution, dump data lấy root SQL server Lý khiến SQL Injection phổ biến + Tính nguy hiểm lỗ hổng: Lỗ hổng gây thiệt hại lớn; với SQL Injection, hacker truy cập phần tồn liệu hệ thống + Phổ biến cách thực công đơn giản: Lỗ hổng tiếng, từ người phát triển, lập trình viên đến hacker biết đến phương thức công ngày Ngồi ra, có cơng cụ (tool) cơng SQL Injection cho người khơng biết lập trình dễ dàng cơng + Những thơng tin liên quan đến việc “lộ liệu người dùng” nhiều có liên quan đến SQL Injection - Hậu quả, chế hoạt động, kịch công cách ngăn chặn SQL Injection Hậu quả: SQL Injection làm lộ liệu CSDL, tùy thuộc vào tầm quan trọng liệu mà hậu dao động mức nhẹ vô nghiêm trọng Nếu lộ lọt liệu thẻ toán (credit card), hacker dùng credit card để “mua sắm hộ” đánh cắp tiền người dùng Việc làm lộ liệu khách hàng gây ảnh hưởng nghiêm trọng đến cơng ty (hình ảnh cơng ty bị ảnh hưởng, khách hàng…) ảnh hưởng lớn đến khách hàng Trong nhiều trường hợp, hacker không đọc liệu mà cịn chỉnh sửa liệu Lúc hacker đăng nhập vai trị admin, lợi dụng hệ thống xóa tồn liệu để hệ thống ngừng hoạt động Cơ chế hoạt động SQL Injection vơ đơn giản, lập trình viên thường sử dụng câu lệnh SQL để truy cập liệu Giả sử, muốn tìm đăng nhập user, lập trình viên thường viết code sau: Đoạn code đọc thông tin đầu vào từ user cộng chuỗi để thành câu lệnh SQL Để thực công, hacker thay đổi thơng tin nhập vào, từ thay đổi câu lệnh SQL; nguy hiểm hơn, hacker xóa (drop) ln table Users, xố tồn người dùng database Hacker thơng qua SQL Injection để dị tìm cấu trúc liệu (gồm table nào, có column gì…), sau bắt đầu khai thác liệu cách sử dụng câu lệnh UNION, SELECT TOP 1… Những kịch công SQL Injection + Tấn công vượt qua kiểm tra lúc đăng nhập: Với hình thức cơng này, hacker dễ dàng vượt qua trang đăng nhập dựa vào lỗi dùng câu lệnh SQL thao tác sở liệu ứng dụng web Thông thường phép người dùng truy cập vào trang web bảo mật, hệ thống thường xây dựng trang đăng nhập để yêu cầu người dùng nhập thông tin tên đăng nhập mật Sau người dùng nhập thông tin vào, hệ thống kiểm tra tên đăng nhập mật có hợp lệ hay khơng để định cho phép hay từ chối thực tiếp + Tấn công sử dụng câu lệnh SELECT: Hình thức cơng phức tạp Để thực hình thức cơng này, hacker phải có khả hiểu lợi dụng sơ hở thông báo lỗi từ hệ thống để dị tìm điểm yếu ban đầu cho việc công + Tấn công sử dụng câu lệnh INSERT: Thông thường ứng dụng web cho phép người dùng đăng ký tài khoản để tham gia Chức thiếu sau đăng ký thành cơng, người dùng xem hiệu chỉnh thơng tin SQL Injection dùng hệ thống khơng kiểm tra tính hợp lệ thơng tin nhập vào + Tấn cơng sử dụng stored-procedures: Hình thức công stored-procedures gây tác hại lớn ứng dụng thực thi với quyền quản trị hệ thống “sa” Ví dụ, ta thay đoạn mã tiêm vào dạng: '; EXEC xp_cmdshell ‘cmdd.exe dir C: ' Lúc hệ thống thực lệnh liệt kê thư mục ổ đĩa C:\ cài đặt server Việc phá hoại kiểu tuỳ thuộc vào câu lệnh đằng sau cmd.exe Cách phòng chống Mặc dù SQL nguy hại dễ phòng chống, lập trình viên sử dụng ORM (Object-Relational Mapping) framework thay câu lệnh SQL thuần; framework web tạo câu lệnh SQL nên hacker khó cơng Tuy nhiên, có nhiều website sử dụng SQL để truy cập liệu; hội cho hacker Để bảo vệ liệu trước SQL Injection, thực biện pháp sau: + Lọc liệu từ người dùng: Cách phòng chống tương tự XSS Người dùng người quản trị website sử dụng filter để lọc kí tự đặc biệt (; ” ‘) từ khoá (SELECT, UNION) người dùng nhập vào Lập trình viên nên sử dụng thư viện/ function cung cấp framework + Không cộng chuỗi để tạo SQL: Sử dụng parameter thay cộng chuỗi, trường hợp liệu truyền vào không hợp lệ, SQL Engine tự động báo lỗi, người quản trị không cần dùng code để check + Sử dụng thủ tục lưu trữ (Store procedures) CSDL: Hiểu đơn giản đưa câu truy vấn SQL vào thủ tục (gần giống hàm ngơn ngữ lập trình), liệu truyền vào thủ tục thông qua tham số nhằm tách liệu khỏi mã lệnh + Không hiển thị exception, message lỗi: Hacker dựa vào message lỗi để tìm cấu trúc database Khi xảy lỗi, nên thông báo lỗi không nên hiển thị đầy đủ thông tin lỗi, tránh để hacker lợi dụng nhằm tìm kiếm lỗ hổng + Phân quyền cụ thể CSDL: Nếu truy cập liệu từ số bảng, tạo account CSDL, gán quyền truy cập cho account đừng dùng account root hay sa Do đó, dù hacker có Inject sql khơng thể đọc liệu từ bảng chính, sửa hay xoá liệu + Chủ động sử dụng cơng cụ dị qt lỗ hổng bảo mật + Backup liệu thường xuyên: Cơ sở liệu nên thường xuyên backup để dự phòng trường hợp có bị hacker xóa khơi phục sở liệu 1.3.2 Broken Authentication and Session Management (Lỗi kiểm tra định danh quản lý phiên làm việc Hacker lợi dụng sơ hở đoạn mã kiểm tra định danh (ví dụ: xem tài khoản, password, ID phân làm việc) để giả mạo người dùng Người phát triển thường tự xây dựng mơ hình chứng thực quản lý phiên làm việc, nhiên xây dựng cách khơng dễ Kết tùy chọn thường xuyên gặp lỗi trường hợp đăng xuất, quản lý password, thời gian chờ, ghi nhớ tài khoản người dùng, câu hỏi bí mật, cập nhật tài khoản… Việc tìm lỗi khó khăn cách triển khai độc lập, khơng giống Đây lỗ hổng cho hacker lợi dụng cơng từ bên ngồi truy cập trái phép vào tài nguyên nội (admin page, inside, control page …) Lỗi cho phép vài tồn tài khoản bị cơng Hacker có quyền truy cập vào vài tài khoản tài khoản quản trị để xâm phạm hệ thống Tùy thuộc vào miền ứng dụng, điều cho phép rửa tiền, gian lận bảo mật xã hội trộm cắp danh tính tiết lộ thông tin nhạy cảm bảo vệ cách hợp pháp Những rủi ro gặp phải trình xác thực + Ứng dụng cho phép hacker tiến hành công vét cạn Brute Force kiểu công tự động khác Hiểu đơn giản ứng dụng Web cho phép request liên tục nhiều API từ IP cố gắng truy cập vào tài khoản nhiều lần mà khơng có chế quản lý (ví dụ khóa tài khoản xuất hành vi trên) + Hiển thị phiên ID URL rị rỉ Referer Header người dùng khác + Lưu trữ mật dạng Plaintext (bản rõ) mà khơng mã hố, sử dụng thuật toán mã hoá hay mã băm đơn giản, dễ dàng bị crack + Tài khoản mật dễ dự đoán: username: admin / password: admin đặt mật ngắn khơng có ký tự đặc biệt + Cơ chế khôi phục mật (trường hợp người dùng quên mật khẩu) yếu không an toàn + Thiếu chế xác thực hai lớp không hiệu + Thời gian chờ ứng dụng khơng đặt xác: Khi truy cập máy tính cơng cơng Thay ấn đăng xuất ứng dụng, bạn đóng tab ứng dụng bỏ Kẻ xấu truy cập ứng dụng với tài khoản mật bạn + Khơng có chế luân phiên thay đổi Session IDs sau đăng nhập thành công + Tấn công Session Hijacking xảy thời gian hết hạn session không triển khai cách sử dụng HTTP (không bảo mật SSL) Kịch công thường gặp + Kịch 1: Giả sử ứng dụng đặt vé xem phim, máy bay, vé tàu, vé xe khách… cho phép viết lại URL, đặt ID phiên làm việc URL http://example.com/sale/;jsessionid=2P0OC2JDPXM0OQSNDLPSKHCJUN 2JV?dest=Hawaii Người sử dụng bình thường muốn cho quảng bá việc bán vé gửi email đường dẫn mà gửi ID phiên làm việc Người nhận email sử dụng liên kết sử dụng phiên làm việc chí thơng tin thẻ tín dụng + Kịch 2: Thời gian chờ ứng dụng không điều chỉnh hợp lý Người sử dụng dùng máy công cộng để truy cập vào trang website; thay chọn “đăng xuất” người đóng trình duyệt lại rời Người sử dụng khác sử dụng trình duyệt website sau vài sử dụng phiên làm việc Ngồi ra, người dùng trước lưu trữ tài khoản mật trình duyệt - điều nguy hiểm + Kịch 3: Người nội hacker có quyền truy cập đến sở liệu lưu trữ password Password không mã hóa cho phép hacker ăn cắp tài khoản Cách ngăn chặn + Cách đơn giản để tránh lỗ hổng bảo mật web Broken Authentication and Session Management sử dụng framework Trong trường hợp người phát triển muốn tự tạo xác thực mã hóa cho riêng mình, nghĩ đến rủi ro gặp phải tự cân nhắc kĩ trước thực + Bảo vệ thông tin xác thực: Thông tin xác thực người dùng phải bảo vệ lưu trữ cách sử dụng băm mã hóa + Khơng hiển thị ID phiên URL: ID phiên khơng hiển thị URL (ví dụ: viết lại URL) + ID phiên hết thời gian chờ: Phiên người dùng mã thông báo xác thực phải vơ hiệu hóa hợp lệ q trình đăng xuất + Tạo lại ID phiên làm việc: ID phiên làm việc tạo lại sau đăng nhập thành công 10

Ngày đăng: 06/10/2020, 09:13

TÀI LIỆU CÙNG NGƯỜI DÙNG

w