Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
1,48 MB
Nội dung
1
Ban Antoàn thông tin
Đinh Hữu Công
Hà Nội, 01/2012
Ban Antoàn thông tin
Ban Antoàn thông tin
2
Nội dung
Phần I: Antoàn thông tin (ATTT) choứngdụng
web
Phần II: Hướngdẫnlậptrìnhan toàn
Phần III: Thực hành
Phần IV: Thảo luận
Ban Antoàn thông tin
Ban Antoàn thông tin
3
Phần I: ATTT choứngdụng web
Tổng quan
1
Kiểm soát dữ liệu đầu vào
2
Kiểm soát dữ liệu đầu ra
3
Kiểm soát truy vấn database
4
Kiểm soát thao tác với file
5
Ban Antoàn thông tin
Ban Antoàn thông tin
4
1. Tổng quan
ATTT choứngdụng Web: Đảm bảo ứngdụng
web không bị tấn công gây hại cho hệ thống và
người dùng
Mô hình ứngdụng web, các nguy cơ và cách
phòng chống
Ban Antoàn thông tin
Ban Antoàn thông tin
5
1. Tổng quan
Web
Browser
Web App
Database
File
Query
Query
Request
Request
I/O
I/O
Response
Response
Kiểm soát
dữ liệu
đầu vào
Kiểm soát
truy vấn
Database
Kiểm soát
dữ liệu
đầu ra
Kiểm soát
Thao tác với
file
-
SQL Injection
-
XSS
-
CSRF
-
Lỗi phân quyền
-
Path traversal
- SQL Injection
- Mã hóa dữ
liệu
-
Path Traversal
-
Upload,
download
-
XSS
Mô hình ứngdụng web
Mô hình ứngdụng web
Các nguy cơ bị tấn công
Các nguy cơ bị tấn công
Thực hiện phòng chống
Thực hiện phòng chống
Ban Antoàn thông tin
Ban Antoàn thông tin
6
2. Kiểm soát dữ liệu đầu vào
Khái niệm
Dữ liệu do người dùng nhập vào được truyền lên server
Mọi cuộc tấn công đều phải thông qua dữ liệu đầu vào
Nguy cơ: SQL Injection, XSS (Cross Site
Scripting) , CSRF (Cross Site Request Forgery),
Path Traversal, lỗi phân quyền
Thực hiện
Chỉ chấp nhận dữ liệu hợp lệ
Kiểm tra phía server là cần thiết
Kết hợp các tiêu chuẩn kiểm tra
Kiểm tra độ dài xâu là tiêu chuẩn nhanh và hiệu quả
Ban Antoàn thông tin
Ban Antoàn thông tin
3. Kiểm soát dữ liệu đầu ra
Khái niệm
Là nội dung server trả về HTML choweb browser
Chứa input người dùng nhập vào
Chứa kết quả truy vấn database
Nguy cơ:Lỗi trong quá trình output các dữ liệu
sang HTML gây ra lỗi Cross-Site Scripting (XSS)
Thực hiện: Lọc các ký tự đặc biệt khi output
7
Ban Antoàn thông tin
Ban Antoàn thông tin
8
4. Kiểm soát truy vấn database
Khái niệm
Truy xuất dữ liệu của ứngdụngweb trong database
Là thao tác chủ yếu trong ứngdụng web
Ngôn ngữ truy vấn: SQL, HQL
Nguy cơ
SQL Injection: Lỗi trong quá trình tạo câu query
Mã hóa không an toàn: Lỗi trong cách tổ chức dữ liệu
Thực hiện
Gán tham số cho các câu truy vấn database
Mã hóa an toàn
Ban Antoàn thông tin
Ban Antoàn thông tin
5.Kiểm soát thao tác với file
Khái niệm
Các thao tác đọc ghi file trên server
Nguy cơ: Lỗi liên quan đến việc xử lý đường dẫn
file
Phần mở rộng của file
Chứa xâu \, / : Chuyển đến thư mục cha
Ký tự NULL: Kết thúc xâu đường dẫn
Thực hiện
Chặn các kí tự không hợp lệ trong tên file
Chỉ cho phép upload các file có phần mở rộng hợp lệ
9
Ban Antoàn thông tin
Ban Antoàn thông tin
10
Phần II: Hướng dẫnlậptrình an toàn
Tổng quan
1
Phòng chống SQL Injection
2
Phòng chống XSS
3
Phòng chống CSRF
4
Phòng chống lỗi thao tác file
5
Phòng chống lỗi mã hóa dữ liệu
6
Phòng chống lỗi phân quyền
7
1
Phòng chống lỗi phân quyền
8
[...]... tra quyền thực hiện action: Sử dụng VSA Kiểm tra quyền tác động dữ liệu Ví dụ Ban Antoàn thông tin 32 7 Phòng chống lỗi phân quyền Đoạn code bị lỗi Đoạn code bị lỗi Ban Antoàn thông tin 33 7 Phòng chống lỗi phân quyền Đoạn code antoàn Đoạn code antoàn Ban Antoàn thông tin 34 Phần III: Thực hành Ban Antoàn thông tin 35 Phần IV: Thảo luận Question and answer Ban Antoàn thông tin 36 ... trong truy vấn Ví dụ Ban Antoàn thông tin 13 2 Phòng chống SQL Injection select * from users where user_name=‘test’ or ‘1’=‘1’ and password=‘fsaf’ Ban Antoàn thông tin 14 2 Phòng chống SQL Injection Ban Antoàn thông tin 15 2 Phòng chống SQL Injection Đoạn code bị lỗi Đoạn code bị lỗi Ban Antoàn thông tin 16 2 Phòng chống SQL Injection Đoạn code antoàn Đoạn code antoàn Ban Antoàn thông tin 17 3... userName=123& struts.token.name=struts.token& struts.token=B15 4AN2 E6MWVG74SZLZCGXN0RHF2546F Đoạn code antoàn Đoạn code antoàn Ban Antoàn thông tin 25 5 Phòng chống lỗi thao tác với file Khái niệm thao tác file trong ứng dụng web Yêu cầu: Chặn các kí tự \, /, null khi xử lý với tên file Giới hạn chỉ cho phép các định dạng file theo yêu cầu của ứng dụng được phép upload lên máy chủ Kiểm soát file upload... out.print(StringEscapeUtils.escapeHtml(var)) Ví dụ Ban Antoàn thông tin 19 3 Phòng chống XSS Đoạn code bị lỗi Đoạn code bị lỗi Ban Antoàn thông tin 20 3 Phòng chống XSS Đoạn code antoàn Đoạn code antoàn Ban Antoàn thông tin 21 4 Phòng chống CSRF Khái niệm CSRF (Cross Site Request Forgery) Yêu cầu: Trong các tương tác của người dùng với cơ sở dữ liệu thông qua các form, liên kết, sử dụng thêm biến token (được tạo...1 Tổng quan Tài liệu do tập đoàn ban hành Mục tiêu: Phòng chống các lỗi cụ thể khi phát triển ứng dụng web: SQL Injection, XSS, CSRF, lỗi thao tác với file, lỗi mã hóa dữ liệu, lỗi phân quyền Đối tượng áp dụng: Nhân viên phát triển Nội dung Khái niệm Yêu cầu Hướngdẫn Ví dụ minh họa Ban Antoàn thông tin 11 2 Phòng chống SQL Injection Khái niệm... riêng nằm ngoài thư mục web hoặc không cho phép truy cập, thực thi trên các thư mục đó Ban Antoàn thông tin 26 5 Phòng chống lỗi thao tác với file Thực hiện Kiểm tra phía server Kiểm soát phần mở rộng của file, chỉ cho phép thực hiện với các file có định dạng theo yêu cầu Các hàm liên quan đọc ghi file, biến đường dẫn file phải được lọc /, \ và kí tự null Ví dụ Ban Antoàn thông tin 27 5 Phòng... dùng Ban Antoàn thông tin 22 4 Phòng chống CSRF Thực hiện Đối với các yêu cầu quan trọng, sử dụng thêm biến token Trên server sẽ kiểm tra token trong yêu cầu gửi lên từ client, nếu token không hợp lệ thì yêu cầu sẽ không được thực hiện Ví dụ Ban Antoàn thông tin 23 4 Phòng chống CSRF http://localhost:8084/TestStruts/HelloStruts2World.action?userName=123 Đoạn code bị lỗi Đoạn code bị lỗi Ban An toàn. .. đường dẫn file phải được lọc /, \ và kí tự null Ví dụ Ban Antoàn thông tin 27 5 Phòng chống lỗi thao tác với file Đoạn code bị lỗi Đoạn code bị lỗi Ban Antoàn thông tin 28 5 Phòng chống lỗi thao tác với file Đoạn code antoàn Đoạn code antoàn Ban Antoàn thông tin 29 6 Phòng chống lỗi mã hóa dữ liệu Yêu cầu: Những dữ liệu nhạy cảm trong cơ sở dữ liệu cần được mã hóa Thực hiện Mã hóa các dự... tất cả dữ liệu đầu vào nhận được từ trình duyệt, loại bỏ hoặc mã hóa dưới dạng HTML các ký tự đặc biệt do client gửi lên máy chủ: ,&,’,”,/ Xử lý các ký tự nguy hiểm trong cơ sở dữ liệu trước khi gửi tới người dùng: ,&,’,”,/ Ban Antoàn thông tin 18 3 Phòng chống XSS Thực hiện Khi in các tham số ra HTML trong trang JSP sử dụng các hàm antoàn Hàm bị lỗi Hàm antoàn Grid: escapeHTMLInData="false"... encrypt(salt + pass) Ví dụ: encryptPass = SHA1(“ttpmdn” + pass) Ví dụ Ban Antoàn thông tin 30 6 Phòng chống lỗi mã hóa dữ liệu QL0AFWMIX8NRZTKeof9cXsvbvu QL0AFWMIX8NRZTKeof9cXsvbvu 8= 8= Mã hóa 11chiều không dùng salt Mã hóa chiều không dùng salt Ban Antoàn thông tin 31 7 Phòng chống lỗi phân quyền Khái niệm phân quyền trong ứng dụng web Yêu cầu: Kiểm tra quyền trong từng request gửi lên server Thực . lỗi
Ban An toàn thông tin
Ban An toàn thông tin
17
2. Phòng chống SQL Injection
Đoạn code an toàn
Đoạn code an toàn
Ban An toàn thông tin
Ban An toàn thông.
web
Phần II: Hướng dẫn lập trình an toàn
Phần III: Thực hành
Phần IV: Thảo luận
Ban An toàn thông tin
Ban An toàn thông tin
3
Phần I: ATTT cho ứng