Bài giảng An toàn ứng dụng web & CSDL: Chương 2 được biên soạn bởi TS. Hoàng Văn Dậu có nội dung trình bày về: HTML Injection và Cross-Site Scriting (XSS); Cross-Site Request Forgery(CSRF); Chèn mã SQL và xử lý dữ liệu; Tấn công vào các cơ chế xác thực; Tấn công lợi dụng các khiếm khuyết thiết kế;... Mời các bạn cùng tham khảo nội dung chi tiết bài giảng tại đây.
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB Giảng viên: TS Hồng Xn Dậu Điện thoại/E-mail: dauhx@ptit.edu.vn Bộ mơn: An tồn thơng tin - Khoa CNTT1 BÀI GIẢNG MƠN AN TOÀN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB NỘI DUNG CHƯƠNG HTML Injection Cross-Site Scriting (XSS) Cross-Site Request Forgery (CSRF) Chèn mã SQL xử lý liệu Tấn công vào chế xác thực Tấn công lợi dụng khiếm khuyết thiết kế Tấn cơng vào trình duyệt web riêng tư người dùng Một số case-studies Trang BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.1 HTML Injection Cross-Site Scriting (XSS) Giới thiệu chèn mã HTML (HTML Injection) Các loại XSS Các biện pháp phòng chống Một số công XSS thực tế Các kỹ thuật vượt qua lọc XSS Trang BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.1.1 HTML Injection XSS – Giới thiệu ❖ Tấn công Cross-Site Scriting (XSS – Mã script liên site) dạng công phổ biến vào ứng dụng web; ▪ Xuất từ trình duyệt bắt đầu hỗ trợ JavaScript (gọi LiveScript – trình duyệt Netscape); ▪ Mã độc XSS nhúng trang web chạy lịng trình duyệt với quyền truy nhập người dùng, truy nhập thơng tin nhạy cảm lưu trình duyệt; ▪ Mã độc XSS miễn nhiễm khỏi trình quét phần mềm độc hại công cụ bảo vệ hệ thống Trang BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.1.1 HTML Injection XSS – Giới thiệu ❖ XSS xem dạng HTML Injection (chèn mã HTML) ▪ Thực tế, thực công chèn mã HTML mà không cần mã JavaScript không cần liên miền ▪ Lợi dụng điểm yếu an ninh, liệu web (như tên địa email) mã (cú pháp phần tử ) trộn lẫn theo cách khơng mong muốn Trang BÀI GIẢNG MƠN AN TOÀN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.1.1 HTML Injection XSS – Giới thiệu ❖ Tấn công XSS viết lại cấu trúc trang web, chạy mã JavaScript tùy ý trình duyệt nạn nhân: ▪ Thường xuất trang web cho phép người dùng nhập liệu sau hiển thị liệu lên trang; ▪ Kẻ cơng khéo léo chèn mã vào trang → mã kẻ công thực người dùng khác thăm trang web Trang BÀI GIẢNG MƠN AN TOÀN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.1.1 HTML Injection XSS – Giới thiệu ❖ XSS cho phép kẻ công: ▪ Đánh cắp thông tin nhạy cảm người dùng lưu Cookies trình duyệt; ▪ Giả mạo hộp đối thoại đăng nhập để đánh cắp mật khẩu; ▪ Bắt phím gõ từ người dùng để đánh cắp thông tin tài khoản ngân hàng, email, thông tin đăng nhập dịch vụ trả tiền, ▪ Sử dụng trình duyệt để quét cổng dịch vụ mạng LAN; ▪ Lén lút cấu hình lại định tuyến nội để bỏ qua tường lửa nó; ▪ Tự động thêm người dùng ngẫu nhiên vào tài khoản mạng xã hội; ▪ Tạo môi trường cho công CSRF Trang BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.1.1 HTML Injection XSS – Giới thiệu ❖ Nhận dạng điểm chèn mã: Mã HTML/script chèn vào vị trí địa trang (URI) nội dung trang web Cụ thể: ▪ ▪ ▪ ▪ ▪ ▪ ▪ Các thành phần URI (URI Components) Các trường nhập liệu (Form Fields) HTTP Request Headers & Cookies JavaScript Object Notation (JSON) Các thuộc tính DOM (Document Object Model) CSS (Cascade Style Sheet) Các nội dung người dùng tạo Trang BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.1.1 HTML Injection XSS – Giới thiệu ❖ Các điểm chèn mã - Các thành phần URI ▪ Hầu thành phần URI xử lý để chèn mã ▪ Các thành phần liên kết hiển thị lại trang có nhiều nguy bị khai thác Link encode Được trình duyệt chuyển thành Trang BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.1.1 HTML Injection XSS – Giới thiệu ❖ Các điểm chèn mã - Các trường nhập liệu: ▪ Mã HTML/script chèn vào hầu hết trường nhập liệu form ▪ VD: với form nạp trước liệu mà người dùng nhập từ trước: Biến “TheData” nhập để chuyển trường thành: alert('XSS is here')"> Trang 10 BÀI GIẢNG MÔN AN TOÀN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CƠNG LÊN ỨNG DỤNG WEB 2.7.2 Tấn cơng tính đặt hàng ❖ Tấn cơng: ▪ Tin tặc thực đầy đủ bước để mua hàng, sau quay lại thêm hàng vào đơn hàng để tăng số lượng mà khơng phải tốn thêm tiền ❖ Phịng chống: ▪ Ngồi việc hiển thị bước theo trật tự để định hướng người dùng, cần kiểm tra chặt chẽ trật tự thực logic bước ▪ Ví dụ: • Chỉ sang Bước hoàn tất Bước Nếu user cố tình sang Bước mà chưa hồn tất Bước 3, tự động chuyển hướng Bước • Khi hoàn thiện Bước 3, đơn hàng chuyển sang trạng thái toán cấm cập nhật, để ngăn chặn người dùng chỉnh sửa số lượng/thêm sản phẩm Trang 159 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.7.3 Tấn cơng tính mua bảo hiểm trực tuyến ❖ Giới thiệu: ▪ Một công ty tài mở dịch vụ đăng ký bảo hiểm trực tuyến cho phép khách hàng nhận báo giá bảo hiểm làm đơn mua bảo hiểm ▪ Lỗi logic cài đặt cho phép tin tặc cơng ❖ Mơ tả tính năng: ▪ Trong bước 1, người dùng cung cấp số thông tin lựa chọn gói bảo hiểm Dịch vụ tính tốn báo giá thơng tin kèm theo khác ▪ Người dùng tiếp tục cung cấp thông tin cá nhân, bao gồm tình trạng sức khỏe, nghề nghiệp, … ▪ Cuối cùng, đơn mua bảo hiểm chuyển đến nhân viên công ty để xét duyệt Trang 160 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.7.3 Tấn cơng tính mua bảo hiểm trực tuyến ❖ Các giả thiết: ▪ Dữ liệu chuyển đến ứng dụng để xử lý dạng dãy cặp tham số/giá trị ▪ Việc xử lý yêu cầu thực hàm dùng chung cho tất bước kết cập nhật vào trạng thái bước; ▪ Chỉ bao gồm tham số theo HTML form thiết kế mà không xem xét xử lý tham số khác Trang 161 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.7.3 Tấn cơng tính mua bảo hiểm trực tuyến ❖ Tấn cơng: giả thiết có lỗi người dùng tạo form gửi tham số/giá trị đến ứng dụng Ứng bị lỗi trường hợp: ▪ Tin tặc khai thác lỗi hàm dùng chung để vượt qua khâu kiểm tra liệu đầu vào máy chủ • Tuy cặp tham số/giá trị cho bước kiểm tra chặt chẽ, tin tặc gửi cặp tham số/giá trị cho cho nhiều bước, có cặp tham số/giá trị cho bước kiểm tra, cặp tham số/giá trị khác xử lý hàm dùng chung mà khơng qua kiểm tra • Như tin tặc nhúng mã XSS vào tham số khơng qua kiểm tra để cơng trình duyệt nhân viên xét duyệt, giúp đánh cắp thông tin người dùng khác – nhân viên xét duyệt duyệt nhiều đơn xin mua bảo hiểm khác Trang 162 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.7.3 Tấn cơng tính mua bảo hiểm trực tuyến ❖ Tấn cơng: ▪ Tin tặc mua bảo hiểm với giá • Trong bước 1, tin tặc chọn gói bảo hiểm nhận báo giá Sau thay đổi thơng tin gửi lại bước tiếp theo, thông tin xử lý cập nhật hàm dùng chung, giúp tin tặc đặt giá mua tùy ý ❖ Phịng chống: ▪ Thực lập hóa bước xử lý: xử lý cập nhật tham số trạng thái bước ▪ Kiểm tra chặt chẽ trật tự thực bước trình mua bảo kiểm Trang 163 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.7.4 Tấn cơng tính đăng ký t.k ngân hàng trực tuyến ❖ Giới thiệu: ▪ Tính đăng ký sử dụng ngân hàng trực tuyến cho phép khách hàng có tài khoản ngân hàng đăng ký sử dụng dịch vụ ngân hàng trực tuyến ▪ Lỗi cài đặt cho phép tin tặc lạm dụng TK khách hàng khác ❖ Mơ tả tính năng: ▪ Khách hàng cung cấp thông tin cá nhân tên, địa chỉ, ngày sinh để xác minh nhận dạng khách hàng Khách cung cấp mật PIN ▪ Thông tin đăng ký sử dụng dịch vụ ngân hàng trực tuyến chuyển để hệ thống xử lý Nếu q trình kiểm tra thành cơng, thông tin hướng dẫn xác nhận đăng ký mật sử dụng lần cho lần đăng nhập gửi cho khách hàng qua đường bưu điện Trang 164 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.7.4 Tấn cơng tính đăng ký t.k ngân hàng trực tuyến ❖ Các giả thiết: ▪ Người thiết kế ứng dụng khẳng định quy trình đăng ký đảm bảo an toàn, chống truy nhập trái phép, dựa lớp bảo vệ: • Thơng tin người dùng cung cấp bước cho phép ngăn chặn kẻ công đăng ký dịch vụ ngân hàng trực tuyến thay người dùng • Gói thơng tin hướng dẫn xác minh đăng ký mật lần gửi đến địa đăng ký khách hàng, nên tin tặc phải truy nhập vào hộp thư khách Điều không dễ thực • Khách hàng phải gọi điện đến tổng đài để hồn tất q trình đăng ký: cung cấp thơng tin cá nhân số PIN Trang 165 BÀI GIẢNG MÔN AN TOÀN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.7.4 Tấn cơng tính đăng ký t.k ngân hàng trực tuyến ❖ Các giả thiết: ▪ Lỗi cài đặt tính đăng ký dịch vụ ngân hàng trực tuyến: • Người lập trình tái sử dụng lớp code có sẵn hệ thống để lưu thông tin người dùng cung cấp với mã nhận dạng khách hàng lưu CSDL ngân hàng • Sau thu thập thơng tin người dùng, đối tượng lớp CCustomer khởi tạo, thuộc tính gán thơng tin người dùng, đối tượng lưu vào phiên làm việc người dùng • Khi thơng tin khách hàng xác minh hợp lệ, mã khách hàng lấy từ CSDL nạp vào đối tượng • Sau đối tượng gửi đến phận xử lý đăng ký Trang 166 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.7.4 Tấn cơng tính đăng ký t.k ngân hàng trực tuyến ❖ Tấn công: ▪ Lớp code sử dụng trình đăng ký sử dụng tính khác hệ thống, bao gồm tính core ngân hàng cho phép người dùng xem thông tin tài khoản, chuyển tiền, toán,… ▪ Khi người dùng đăng ký thành cơng, đối tượng tương tự q trình đăng ký sinh lưu vào phiên làm việc người dùng Đối tượng lưu thơng tin khóa (key) nhận dạng người dùng – mã khách hàng ▪ Do trình đăng ký dịch vụ khởi tạo đối tượng người dùng lưu vào phiên giống hệt việc thực trình đăng nhập khách hàng, nên tin tặc sử dụng trình đăng ký để đăng nhập tự động vào tài khoản khách hàng khác ▪ Đây lỗi nghiêm trọng, không dễ khai thác kẻ công phải hiểu logic xử lý phái có tài khoản hợp lệ Trang 167 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CƠNG LÊN ỨNG DỤNG WEB 2.7.4 Tấn cơng tính đăng ký t.k ngân hàng trực tuyến ❖ Tấn công: Tin tặc cần thực bước sau: ▪ Đăng nhập vào hệ thống sử dụng tài khoản hợp hệ hắn; ▪ Sau đăng nhập thành công, sử dụng tính đăng ký dịch vụ ngân hàng trực tuyến để đăng ký dịch vụ sử dụng thông tin khách hàng khác; • Ứng dụng ghi đè thông tin khách hàng lên đối tượng CCustomer đăng nhập phiên làm việc tin tặc; • Đối tượng CCustomer phiên làm việc trỏ đến tài khoản khách hàng nạn nhân, điều cho phép tin tặc thực nghiệp vụ ngân hàng tài khoản nạn nhân giống nạn nhân đăng nhập vào tài khoản Trang 168 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.7.4 Tấn cơng tính đăng ký t.k ngân hàng trực tuyến ❖ Phịng chống: ▪ Tách tính đăng ký dịch vụ khỏi tính core hệ thống ▪ Không tự động lưu đối tượng đăng ký vào phiên làm việc ▪ Không cho phép khách hàng phiên làm việc sử dụng tính đăng ký ▪ Tăng cường: xác thực bổ sung thực giao dịch quan trọng Trang 169 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.7.5 Xóa ghi logs ❖ Giới thiệu: ▪ Lỗi xảy ứng dụng web Call Center ▪ Ứng dụng cung cấp tập tính cho phép nhân viên hỗ trợ khách hàng quản trị viên hỗ trợ quản trị lượng lớn khách hàng ▪ Các thao tác gồm: tạo tài khoản, khởi tạo lại mật khẩu,… ▪ Ứng dụng ghi logs tất thao tác thực người thực ▪ Ứng dụng cho phép người quản trị xóa logs Tuy nhiên thao tác ghi logs Trang 170 BÀI GIẢNG MÔN AN TOÀN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CƠNG LÊN ỨNG DỤNG WEB 2.7.5 Xóa ghi logs ❖ Giả thiết: ▪ Người thiết kế cho user ác tính thực hành vi không mong muốn mà không để lại logs điều khơng thể; ▪ Người quản trị xóa logs để lại ghi logs thao tác xóa logs Trang 171 BÀI GIẢNG MƠN AN TOÀN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CƠNG LÊN ỨNG DỤNG WEB 2.7.5 Xóa ghi logs ❖ Tấn công: ▪ Giả thiết người thiết kế tồn lỗi người quản trị ác tính (malicious) xóa logs mà không để lại dấu vết ▪ Các bước thực hiện: • • • • • Đăng nhập sử dụng tài khoản mình; Tạo tài khoản mới; Gán tất quyền truy nhập cho tài khoản mới; Sử dụng tài khoản để thực thao tác không phép; Sử dụng tài khoản để xóa hết logs bước trước; ▪ Kết hệ thống lưu ghi logs, người thực tài khoản mà khơng có liên hệ với kẻ cơng Trang 172 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2.7.5 Xóa ghi logs ❖ Phịng chống: ▪ Thực việc phân loại logs lưu trữ logs lâu dài ▪ Hạn chế đến tối thiểu việc xóa logs Các logs quan trọng khơng cho phép xóa ▪ Chỉ cho phép xóa logs sau khoảng thời gian Trang 173 ... ích tháng Trang 42 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2. 1.4 Một số công XSS thực tế Trang 43 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC... quyền website mà nạn nhân có Trang 25 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2. 1 .2 HTML Injection & XSS – Các loại XSS – Reflected XSS Trang 26 BÀI GIẢNG... user Trang 33 BÀI GIẢNG MÔN AN TOÀN ỨNG DỤNG WEB & DB CHƯƠNG – CÁC DẠNG TẤN CÔNG LÊN ỨNG DỤNG WEB 2. 1 .2 HTML Injection & XSS – C.loại XSS – DOM-based XSS Kịch cơng DOMbased XSS Trang 34 BÀI GIẢNG