Bài giảng An toàn ứng dụng web & CSDL: Chương 4 được biên soạn bởi TS. Hoàng Xuân Dậu trình bày các nội dung về: Thiết kế ứng dụng web an toàn; Xây dựng ứng dụng web an toàn; Đánh giá bảo mật ứng dụng; Đưa ra 10 lời khuyên trong thiết kế, phát triển và triển khai ứng dụng web an toàn. Mời các bạn cùng tham khảo 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 – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Giảng viên: TS Hoàng Xuân 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 TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB NỘI DUNG CHƯƠNG 4 Đặt vấn đề Thiết kế ứng dụng web an toàn Xây dựng ứng dụng web an toàn Đánh giá bảo mật ứng dụng 10 lời khuyên thiết kế, phát triển triển khai ứng dụng web an tồn Trang BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Đặt vấn đề ❖ Các ứng dụng web (website) loại ứng dụng sử dụng phổ biến nhất: ▪ ▪ ▪ ▪ Facebook Gmail Tweeter Google Search,… ❖ Các ứng dụng web đối tượng lượng lớn dạng công đánh cắp thông tin, công phá hoại: ▪ Tấn công DoS/DDoS ▪ Tấn công XSS ▪ Tấn công chèn mã SQL,… Trang BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Các vấn đề bảo mật/lỗ hổng ứng dụng web Trang BÀI GIẢNG MÔN AN TOÀN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Đặt vấn đề ❖ Các biện pháp bảo mật cần thực suốt vòng đời ứng dụng web: ▪ Trong giai đoạn phát triển & triển khai • • • • • • Phân tích Thiết kế Lập trình Kiểm thử Triển khai Bảo trì ▪ Trong trình hoạt động • Giám sát • Vá lỗi • Nâng cấp,… Trang BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Đặt vấn đề ❖ Các giải pháp bảo mật thực giai đoạn sớm vòng đời ứng dụng web cho hiệu cao tiết kiệm chi phí Trang BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Bảo mật phát triển ứng dụng web ❖ Các hướng tiếp cận bảo mật ứng dụng web ▪ Hướng “Thâm nhập vá” (penetrate and patch) ▪ Hướng tiếp cận toàn diện ❖ Các mơ hình phát triển ứng dụng web an toàn ▪ ▪ ▪ ▪ MSDL CLASP SAMM BSIMM Trang BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Thiết kế ứng dụng web an toàn ❖ Các định hướng thiết kế ứng dụng web an toàn ❖ Đánh giá kiến trúc thiết kế ứng dụng web an toàn Trang BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Các định hướng thiết kế ứng dụng web an toàn ❖ Các vấn đề kiến trúc thiết kế ứng dụng web ❖ Các vấn đề bảo mật triển khai ❖ Các định hướng thiết kế ứng dụng web an toàn Trang BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Các vấn đề kiến trúc thiết kế ứng dụng web Trang 10 BÀI GIẢNG MÔN AN TOÀN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Đánh giá bảo mật ứng dụng ❖ Xem xét/đánh giá mã nguồn ❖ Xem xét/đánh giá việc triển khai Trang 20 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Xem xét/đánh giá mã nguồn ❖ Thực tìm kiếm chuỗi mã nguồn ▪ Tìm chuỗi hard-coded ▪ Sử dụng cơng cụ ❖ Tìm kiếm lỗ hổng XSS ❖ Tìm kiếm lỗ hổng chèn mã SQL ❖ Tìm kiếm lỗ hổng tràn đệm ❖ Xem xét mã truy cập liệu Trang 21 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Xem xét/đánh giá việc triển khai ❖ Xem xét cấu hình máy chủ ❖ Xem xét cấu hình máy chủ web ❖ Xem xét cấu hình ứng dụng web ❖ Xem xét cấu hình máy chủ CSDL ❖ Xem xét cấu hình mạng Trang 22 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Xem xét/đánh giá việc triển khai Trang 23 BÀI GIẢNG MÔN AN TOÀN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB 10 lời khuyên cho thiết kế, phát triển & triển khai ứng dụng web an toàn (MS Platform) 10 Không tin tưởng đầu vào trực tiếp từ người dùng Các dịch vụ không nên cấp quyền hệ thống quản trị Thực thực tế tốt máy chủ SQL Cần có biện pháp bảo vệ tài ngun Có tính Kiểm tốn, Ghi logs Báo cáo Phân tích mã nguồn Triển khai thành phần theo nguyên tắc “Phòng vệ nhiều lớp” Tắt thông báo lỗi chi tiết đến người dùng Nắm 10 quy tắc quản trị bảo mật Có kế hoạch phản ứng với cố ATTT Trang 24 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Không tin tưởng đầu vào trực tiếp từ người dùng ❖ Tất liệu đầu vào từ người dùng cần kiểm tra cần thận ▪ Tối thiểu phải kiểm tra kích thước, kiểu, định dạng phạm vi ❖ Một số lưu ý: ▪ Xem xét vấn đề an tồn thiết kế ứng dụng • Phân tích/đánh giá rủi ro, nguy ứng dụng • Đưa biện pháp phịng chống từ khâu thiết kế ▪ Không dựa vào việc kiểm tra liệu đầu vào từ người dùng phía client ▪ Cần kiểm tra lại liệu lớp/mỗi thành phần ứng dụng ▪ Không giả thiết không xuất công từ bên Trang 25 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Các dịch vụ không nên cấp quyền hệ thống quản trị ❖ Sử dụng tài khoản quản trị hệ thống để chạy dịch vụ dẫn đến hậu nghiêm trọng; ▪ Tin tặc chiếm quyền điều khiển hệ thống khai thác thành công lỗi ứng dụng/dịch vụ ❖ Các lưu ý: ▪ Các dịch vụ & UD web chạy với người dùng có quyền tối thiểu; ▪ Sử dụng Domain User Account cho truy nhập máy ▪ Không cho phép tài khoản dịch vụ đăng nhập trực tiếp console từ xa ▪ Thay đổi mật định kỳ Trang 26 BÀI GIẢNG MÔN AN TOÀN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Thực thực tế tốt máy chủ MS SQL ❖ Máy chủ CSDL thành phần quan trọng ứng dụng web ❖ Một số lưu ý: ▪ Không sử dụng tài khoản ngầm định SA ▪ Sử dụng Roles Logins để điều khiển truy nhập vào SQL Server ▪ Cấm tài khoản dịch vụ (service account) truy nhập trực tiếp bảng liệu ▪ Sử dụng thủ tục với câu truy vấn tham số hóa ▪ Sử dụng Microsoft SQL Server Best Practices Analyzer để kiểm tra kép Trang 27 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Cần có biện pháp bảo vệ tài nguyên ❖ Cần có biện pháp bảo vệ tài nguyên cách phù hợp (CPU time, băng thông, liệu người dùng,…) ❖ Lưu ý: ▪ Bảo vệ khóa mật mã • Cần có biện pháp bảo vệ khóa mật mã, sử dụng hệ thống phần cứng (Hardware Security Module), hay mô đun phần mềm Data Protection API,… ▪ Bảo vệ thông tin tài khoản dịch vụ ▪ Bảo vệ liệu cá nhân người dùng Trang 28 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Có tính Kiểm tốn, Ghi logs Báo cáo ❖ Các tính Kiểm tốn, Ghi logs Báo cáo khơng cung cấp thơng tin để phân tích đo kiểm ứng dụng web, mà chúng cần thiết cho vận hành cho đội phản ứng cố ❖ Lưu ý: ▪ ▪ ▪ ▪ Giữ cho liệu logs an toàn Lưu ghi lịch sử Ký liệu logs, đảm bảo cho chúng ko bị sửa đổi Thu thập tập trung hóa liệu Trang 29 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Phân tích mã nguồn ❖ Mã nguồn cần phân tích, đánh giá an ninh để tìm nguy lỗ hổng tiềm tàng ▪ Có thể thực thủ cơng sử dụng công cụ tự động ❖ Lưu ý: ▪ ▪ ▪ ▪ ▪ Cần phân tích mã nguồn sửa lỗi phát Kiểm tra khả xuất lỗi tràn đệm, tràn số nguyên Kiểm tra khả xuất lỗi XSS Tìm kiểm tra hàm nguy hiểm/rủi ro cao Sử dụng công cụ qt tự động Trang 30 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Triển khai thành phần theo nguyên tắc “Phòng vệ nhiều lớp” ❖ Ngun tắc “Phịng vệ nhiều lớp” khơng áp dụng cho toàn hệ thống mà nên áp dụng cho thành phần ❖ Lưu ý: ▪ Nên sử dụng kiến trúc lớp lớp cho ứng dụng web • VD: CSDL khơng nên kết nối trực tiếp từ Internet ▪ Sử dụng SSL/TLS ▪ Sử dụng tường lửa, phân đoạn mạng danh sách kiểm soát truy nhập vị trí ▪ Xem xét mã hóa lưu lượng mạng back-end Trang 31 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Tắt thông báo lỗi chi tiết đến người dùng ❖ Các thơng báo lỗi chi tiết cung cấp nhiều thơng tin hữu ích cho tin tặc ▪ Ngồi ra, việc hiển lỗi chi tiết gây hoang mang, tin tưởng dịch vụ ❖ Lưu ý: Thiết lập ứng dụng web thông báo lỗi chi tiết cho hệ thống cục Không hiển thị báo lỗi chi tiết ứng dụng triển khai Gửi thông báo lỗi đến back-end (ghi logs,…) Sử dụng chế báo lỗi thân thiện với người dùng, không cung cấp thông tin cho tin tặc ▪ Giám sát dấu hiệu công ▪ ▪ ▪ ▪ Trang 32 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Nắm 10 quy tắc quản trị bảo mật Không biết điều xấu xảy xảy Các biện pháp bảo mật hiệu dễ sử dụng/áp dụng Nếu bạn không cập nhật vá, mạng bạn không thuộc bạn lâu dài Việc cập nhật vá an ninh cho máy tính khơng hiệu khơng quản trị an tồn từ đầu ▪ 10 Sử dụng mật quản trị yếu, cho phép tài khoản guest,… Luôn cảnh giác giá an ninh (ln cần giám sát,…) Có bên ngồi cố gắng đốn mật bạn Mạng an tồn mạng quản trị tốt Mạng khó quản trị phức tạp An ninh tránh rủi ro mà quản lý rủi ro Cơng nghệ/kỹ thuật thuốc chữa bách bệnh Trang 33 BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Có kế hoạch phản ứng với cố ATTT ❖ Cần có kế hoạch cụ thể cho phản ứng với cố ATTT: ▪ Mỗi có cần có kế hoạch phản ứng cụ thể ❖ Lưu ý: ▪ ▪ ▪ ▪ ▪ Cần biết phải gọi điện cho ai? Hy vọng cho điều tốt nhất, chuẩn bị cho điều xấu Thực xử lý cố theo kế hoạch đề Phân tích/đánh giá sau cố Kết hợp phản hồi học kinh nghiệm từ cố xử lý cố Trang 34 ... & TRIỂN KHAI ỨNG DỤNG WEB Thiết kế ứng dụng web an toàn ❖ Các định hướng thiết kế ứng dụng web an toàn ❖ Đánh giá kiến trúc thiết kế ứng dụng web an toàn Trang BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB. .. Trang BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB Các vấn đề bảo mật/lỗ hổng ứng dụng web Trang BÀI GIẢNG MÔN AN TOÀN ỨNG DỤNG WEB & CSDL...BÀI GIẢNG MƠN AN TỒN ỨNG DỤNG WEB & CSDL CHƯƠNG – BẢO MẬT TRONG PHÁT TRIỂN & TRIỂN KHAI ỨNG DỤNG WEB NỘI DUNG CHƯƠNG 4 Đặt vấn đề Thiết kế ứng dụng web an toàn Xây dựng ứng dụng web an toàn