...Nguyễn Ngọc Khánh.pdf tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩnh vực kin...
Trang 1TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN TỐT NGHIỆP
MỘT SỐ VẤN ĐỀ ĐẢM BẢO AN TOÀN ỨNG DỤNG CHẠY TRÊN NỀN WEB
Giáo viên hướng dẫn: ThS Nguyễn Thị Hồng Hương
Hà Nội, năm 2015
Trang 2MỤC LỤC
MỞ ĐẦU 1
CHƯƠNG I: TỔNG QUAN VỀ ỨNG DỤNG WEB 4
1.1 Khái niệm ứng dụng WEB 4
1.1.1 Khái niệm cơ bản về web 4
1.1.2 Khái niệm ứng dụng web 4
1.1.3 Cấu trúc và kiến trúc của ứng dụng Web 6
1.2 HTTP và HTTPS 14
1.2.1 HTTP 14
1.2.2 HTTPS 21
1.3 Mô tả hoạt động của một ứng dụng WEB 23
1.4 Khái niệm về an toàn ứng dụng WEB 24
CHƯƠNG 2 CÁC LỖI BẢO MẬT PHỔ BIẾN TRÊN ỨNG DỤNG WEB VÀ BIỆN PHÁP PHÒNG CHỐNG 34
2.1 Các lỗi bảo mật phổ biến 34
2.1.1 Lỗi nhúng mã truy vấn SQL (SQL INJECTION) 34
2.1.2 Lỗi thực thi mã SCRIPT xấu (XSS) 35
2.1.3 Hư nóng cơ chế chứng thực và quản lí phiên làm việc 36
2.1.4 Giả mạo yêu cầu (CSRF) 36
2.1.5 Sai sót cấu hình an ninh 38
2.1.6 Lưu trữ mật mã thiếu an toàn 38
2.1.7 Thiếu sự bảo vệ lớp vận chuyển 39
2.1.8 Chuyển hướng và chuyển tiếp thiếu thẩm tra 40
2.1.9 Lỗi tấn công từ chối dịch vụ 41
2.1.10 Lỗi tấn công vét cạn (BRUTE FORCE ATTACK) 41
Trang 32.2.1 Đối với SQL INJECTION 43
2.2.2 Đối với lỗi thực thi mã SCRIPT xấu (XSS) 44
2.2.3 Đối với lỗi hư hỏng cơ chế chứng thực và quản lí phiên làm việc 45
2.2.4 Đối với lỗi giả mạo yêu cầu 46
2.2.5 Đối với lỗi sai sót cấu hình an ninh 47
2.2.6 Đối với lỗi lưu trữ mật mã thiếu an toán 47
2.2.7 Đối với lỗi thiếu sự bảo vệ lớp vận chuyển 48
2.2.8 Đối với lối chuyển hướng và chuyển tiếp thiếu thẩm tra 49
2.2.9 Đối với lối tấn công từ chối dịch vụ 50
2.2.10 Đối với lối tấn công vét cạn (BRUTE FORE ATTACK) 51
2.3.Tổng kết quá trình tấn công của Hacker 51
2.3.1 Thu thập thông tin ở mức hạ tầng của mục tiêu 51
2.3.2 Khảo sát ứng dụng Web 53
2.3.3 Tấn công 54
2.4 Các biện pháp phòng chống Hacker 54
2.4.1 Với những nhà quản trị mạng 54
2.4.2 Với những nhà thiết kế ứng dụng Web 56
2.4.3 Với người sử dụng ứng dụng Web 57
CHƯƠNG 3: CHƯƠNG TRÌNH THỬ NGHIỆM 59
1 SQL Injection 59
2 XSS (Cross Site Scripting) 67
KẾT LUẬN 71
I Các kết quả đạt được 71
II Hướng phát triển 71
TÀI LIỆU THAM KHẢO 73
Trang 4DANH MỤC HÌNH VẼ
Hình 1.3 Mô hình 3 tầng của một ứng dụng web 6
Hình 1.4 Kiến trúc của một ứng dụng Web 7
Hình 1.5 Hoạt động của web server 7
Hình 1.6 Mô hình 1 lớp 10
Hình 1.7 Mô hình 2 lớp 11
Hình 1.8 Mô hình 3 lớp 12
Hình 1.9 Mô hình N lớp 13
Hình 1.10 Truyền thông giữa web server và web client 14
Hình 1.11 Mã trạng thái được trả về của HTTP 16
Hình 1.12 Hoạt động của HTTP 16
Hình 1.13 Hoạt động kết nối của HTTP 17
Hình 1.14 Hoạt động Pipelining của HTTP 17
Hình 1.15 Hoạt động GET của HTTP 18
Hình 1.16 Hoạt động POST của HTTP 18
Hình 1.17 Hoạt động PUT của HTTP 19
Hình 1.18 Ví dụ về File Upload – PUT 20
Hình 1.19 Hoạt động File Delection – DELETE 20
Hình 1.20 Hoạt động của một ứng dựng web 24
Hình 1.21 Số lượng tấn công web từ năm 2003 đến năm 2011 28
Hình 1.22 Thống kê nguyên nhân bị tấn công phổ biến 29
Hình 1.23 Thống kê phương pháp tấn công phổ biến 30
Hình 1.24 Thống kê kiểu lỗ hổng bị khai thác tấn công phổ biến 30
Hình 1.25 Thống kê nhóm tổ chức bị nhắm tấn công phổ biến 31
Hình 1.26 Thống kê lỗi bảo mật được phát hiện theo từng năm 32
Hình 1.27 Thống kê kiểu lỗ hổng bị khai thác phổ biến 33
Hình 2.1 Quy trình tấn công SQL Injection 34
Hình 2.2 Một ví dụ về lỗi Reflected XSS 35
Hình 2.3.Ví dụ về tấn công CSRF 37
Hình 2.4 Một mô hình tấn công DDOS 41
Trang 5
DANH MỤC CÁC TỪ VIẾT TẮT
Trang 6MỞ ĐẦU
1 Tính cấp thiết
Ngày nay, với việc Internet du nhập và phổ biến rộng rãi, các tổ chức, các cá nhân đều muốn giới thiệu thông tin của mình cũng như việc trao đổi thông tin, thực hiện các giao dịch điện tử… Việc này đã giúp ích rất nhiều cho các tổ chức, cá nhân tiết kiệm được thời gian, quảng bá thông tin một cách rộng rãi và nhanh chóng, tạo
ra được những cơ hội lớn Tuy nhiên, sự bùng nổ mạnh mẽ của những ứng dụng trên Internet như website trao đổi thông tin, giao dịch điện tử, ngân hàng điện tử,… cũng còn tiềm ẩn nhiều nguy cơ, rủi ro cho cả lĩnh vực kinh tế và xã hội Các vấn đề
về truy cập bất hợp pháp, rò rỉ thông tin, lỗ hổng trên hệ thống,… đã trở thành mối
lo ngại cho các nhà quản lý điều hành ở bất kỳ quốc gia nào, từ các cơ quan, bộ, ngành đến từng doanh nghiệp, đơn vị và các cá nhân
Cùng với sự phát triển không ngừng của Internet và các dịch vụ trên Internet,
số lượng các vụ tấn công trên Internet cũng tăng theo cấp số nhân Điều này đặt ra vấn đề cấp thiết cần làm như thế nào để bảo đảm an toàn thông tin cho ứng dụng web cũng như là người sử dụng Các khái niệm về ứng dụng web cũng như tấn công ứng dụng web dần trở nên phổ biến trong các tài liệu chuyên ngành
Theo thống kê của tổ chức bảo mật nổi tiếng CERT (Computer Emerency Response Team – “ Đội cấp cứu máy tính”), số lượng tấn công trên Internet được thông báo cho tổ chức này là ít hơn 200 vào năm 1989, khoảng 400 vào năm 1991,
1400 vào năm 1993, 2241 vào năm 1994, 5315 vào năm 2001
Nguyên nhân chủ yếu làm cho các vụ tấn công tăng nhanh rất có thể là do có
“rất nhiều” lỗ hổng được tìm thấy trên các ứng dụng web Theo thống kê của Symantec “năm 2004 có 49% số lượng lỗ hổng được tìm thấy trong các ứng dụng web Từ tháng 7 đến tháng 11 năm 2006, xác định lỗ hổng bảo mật nằm trong ứng dụng web chiếm tới 75%, tăng 15% so với đầu năm”
Những vụ tấn công này nhằm vào tất cả các máy tính có mặt trên Internet, các máy tính của tất cả các công ty lớn như AT&T, IBM, các trường đại học, các cơ quan nhà nước, các tổ chức quân sự, nhà băng… Một số vụ tấn công có quy mô
Trang 7khổng lồ (có tới 100000 máy tính bị tấn công) Đây chỉ mới là những số liệu được thống kê Có rất nhiều các vụ tấn công không được thông báo, vì nhiều lí do, có thể
là do sợ mất uy tín, hoặc những người quản trị hệ thống không hay biết những cuộc tấn công đang nhắm vào hệ thống của họ
Không chỉ số lượng các cuộc tấn công tăng lên nhanh chóng, mà các phương pháp tấn công ngày càng tinh vi và có tổ chức Mặt khác, việc quản trị các hệ thống mạng đòi hỏi nhà quản trị hệ thống có kiến thức và kinh nghiệm về hệ thống mạng chắc chắn, do đó sự yếu kém trong quản lý sẽ tạo nhiều điều kiện cho các hacker khai thác
Khi nói đến vấn đề bảo mật, hầu hết các chuyên gia bảo mật đều chú trọng đến sự an toàn của hệ thống mạng và hệ điều hành Để bảo vệ cho hệ thống, phương pháp thường được chọn là sử dụng firewall Tuy nhiên, theo tuyên bố của CSI/FBI: 78% nơi bị hại có sử dụng firewall và 59% thì bị tấn công thông qua Internet, cụ thể hơn là theo báo cáo của CSI/FBI Computer Crime và Security Survey thì tổng số thiệt hại do những ứng dụng Web bị tấn công từ năm 1997 đến năm 2000 là 626 triệu đôla Mỹ
Mới đây nhất, tháng 3 năm 2015, khoảng 50000 thông tin tài khoản của khách hàng của một đơn vị thành viên của Tập đoàn Bưu chính Viễn thông Việt Nam VNPT đã bị lộ SecurityDaily thu thập được thông tin về việc một nhóm tin tặc có tên DIE Group đã tấn công, khai thác lỗ hổng trên website soctrang.vnpt.vn Một thành viên DIE Group đã đăng tải trên facebook nội dung công bố danh sách trên 10.000 thông tin tài khoản, mật khẩu khách hàng thuê bao cố định và di động của VNPT
2 Lý do chọn đề tài
Với những công cụ tự động tìm lỗ hổng tuy giúp rất nhiều cho những nhà lập trình Web nhưng vẫn không thể ngăn chặn toàn bộ vì công nghệ Web đang phát triển nhanh chóng (chủ yếu chú trọng đến yếu tố thẩm mĩ, yếu tố tốc độ…) nên dẫn đến nhiều khuyết điểm mới phát sinh Sự tấn công không nằm trong khuôn khổ vài
Trang 8kĩ thuật đã phát hiện, mà linh động và tăng lên tùy vào những sai sót của nhà quản trị hệ thống cũng như của những người lập trình ứng dụng
Vậy nên em làm đồ án này tìm hiểu về một số vấn đề an toàn ứng dụng web trên Internet, giúp mọi người hiểu rõ hơn về ứng dụng web, đồng thời tìm hiểu về những tấn công ứng dụng web phổ biến và các cách phòng chống, ngăn chặn nhằm bảo mật cho ứng dụng web hợp lí