Ngày nay, Internet và các ứng dụng trên Internet được phát triển rộng rãi. Các cá
nhân, tổchức, doanh nghiệp đều có nhu cầu sửdụng Internet với mục đích riêng.
Các dịch vụtrực tuyến ngày càng được phát triển nhưmua hàng trực tuyến, giao dịch
ngân hàng trực tuyến, học trực tuyến Theo đó các dịch vụtrực tuyến càng được phát
triển, mởrộng thì càng có nhiều lỗhổng bảo mật và trởthành đối tượng bịtấn công
với các mục đích khác nhau.
Cùng với sựphát triển 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 với tốc độchóng mặt. Theo tập đoàn Symantec số
lượng các vụtấn công bằng mã độc trên Internet năm 2003 là 18.827 vụ, năm 2004 là
69.107 vụ, năm 2007 là 624.267 vụvà đến năm 2008 là 1.656.227 vụ. Riêng trong
năm 2008 ghi nhận 5.147 chủng loại mã độc chuyên chiếm quyền kiểm soát máy chủ
mới xuất hiện. (Nguồn:
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 cũng ngày càng tinh vi và có tổchức. Những cuộc tấn công thời kỳ đầu chủ
yếu là đoán tên người sửdụng/mật khẩu (Username/password) hoặc sửdụng một số
lỗi của các chương trình và hệ điều hành (security hole) làm vô hiệu hóa hệthống bảo
vệ, tuy nhiên các cuộc tấn công gần đây còn bao gồm cảcác thao tác nhưgiảmạo địa
chỉIP, theo dõi thông tin truyền qua mạng, chiếm các phiên làm việc từxa (telnet hoặc
rlogin), cài đặt trojan hay worm đểchiếm quyền kiểm soát máy tính, ăn cắp, lợi dụng
các thông tin của người dùng vềngân hàng, giao dịch chứng khoán để ăn cắp tiền của
họ Vì thếnhu cầu bảo vệthông tin trên Internet là cần thiết nhằm bảo vệdữliệu, bảo
vệthông tin người dùng và bảo vệhệthống
Đã có những công cụtự động tìm lỗhổng đểgiúp đỡnhững nhà phát triển ứng
dụng web. Tuy nhiên do nhiều nguyên nhân vẫn có những lỗhổng tồn tại làm cơsở để
tấn công, có thểlà do các nhà phát triển ứng dụng không tuân thủcác yêu cầu vềbảo
mật trong quá trình xây dựng ứng dụng, có thểdo cuộc tấn công là hoàn toàn mới và
tinh vi đối với những nhà phát triển và nhà quản trịhệthống.
Luận văn tốt nghiệp Một sốvấn đềbảo mật ứng dụng web
Dương ThịThu Hương – K50CHTTT - Trang 9 - Đại học Công Nghệ- ĐHQGHN
Luận văn được thực hiện với mục đích tìm hiểu, phân tích các lỗhổng bảo mật từ
đơn giản đến phức tạp trong các ứng dụng web và các phương án phòng chống các
cuộc tấn công.
Nội dung khóa luận sẽbao gồm các phần sau (bốn chương):
• Chương 1:Tìm hiểu chung về ứng dụng web, khái niệm và hoạt động của
ứng dụng web trên Internet. Đồng thời cũng đềcập khái quát vềbảo mật
ứng dụng web.
• Chương 2: Trình bầy vềcác kỹthuật tấn công vào ứng dụng web và cách
phòng chống
o Các kỹthuật tấn công cơbản
o Các kỹthuật tấn công dựa vào trạng thái của trang web
o Kỹthuật tấn công chèn mã lệnh thực thi trên trình duyệt nạn nhân
(XSS).
o Kỹthuật tấn công chèn câu truy vấn SQL (SQL injection) và cách
phòng chống.
• Chương 3:Một vài ví dụtấn công ứng dụng web bằng các kỹthuật ởtrình
bầy các chương trước.
• Chương 4: Trình bầy kết quả đạt được của luận văn và hướng phát triển
trong tương lai.
45 trang |
Chia sẻ: oanhnt | Lượt xem: 1652 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Luận văn Tốt nghiệpMột số vấn đề bảo mật ứng dụng web, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Luận văn tốt nghiệp Một số vấn đề bảo mật ứng dụng web
Dương Thị Thu Hương – K50CHTTT - Trang 1 - Đại học Công Nghệ - ĐHQGHN
TRƯỜNG……………………
KHOA……………………………….
LUẬN VĂN TỐT NGHIỆP
Đề tài:
MỘT SỐ VẤN ĐỀ BẢO MẬT WEB
Luận văn tốt nghiệp Một số vấn đề bảo mật ứng dụng web
Dương Thị Thu Hương – K50CHTTT - Trang 2 - Đại học Công Nghệ - ĐHQGHN
LỜI CẢM ƠN
Sau gần 4 tháng nỗ lực thực hiện, luận văn nghiên cứu “Các kĩ thuật tấn công và
bảo mật ứng dụng Web trên Internet” đã hoàn thành. Ngoài sự cố gắng hết mình của
bản thân, em đã nhận được sự khích lệ rất nhiều từ phía nhà trường, thầy cô, gia đình
và bạn bè.
Em xin gửi lời cảm ơn tới các thầy cô trong khoa Công nghệ Thông tin trường
Đại học Công Nghệ, Đại học Quốc Gia Hà Nội, đặc biệt là các thầy cô ở Bộ môn Các
Hệ Thống Thông Tin đã giúp đỡ em trưởng thành trong những năm học tập và rèn
luyện ở môi trường đại học.
Em xin chân thành cảm ơn thầy Lê Hồng Hải đã tạo điều kiện cho em tìm hiểu,
nghiên cứu và học hỏi những kinh nghiệm trong quá trình làm khoá luận.
Xin cám ơn tất cả bạn bè đã và đang động viên, giúp đỡ tôi trong quá trình học
tập và hoàn thành tốt khóa luận tốt nghiệp này.
Hà Nội, tháng 5 năm 2009
Luận văn tốt nghiệp Một số vấn đề bảo mật ứng dụng web
Dương Thị Thu Hương – K50CHTTT - Trang 3 - Đại học Công Nghệ - ĐHQGHN
TÓM TẮT NỘI DUNG
Trong khóa luận này, tác giả sẽ trình bày về ứng dụng web, các vấn đề về bảo
mật trong ứng dụng web, khóa luận tập trung vào một số kỹ thuật tấn công vào ứng
dụng web, tác hại và cách phòng chống.
Phần mở đầu của khoá luận là tổng quan ứng dụng web, cách hoạt động của ứng
dụng web và giới thiệu về bảo mật ứng dụng web. Đây là cơ sở để tìm hiểu các vấn đề
bảo mật trên ứng dụng web.
Phần thứ hai của khoá luận dành để trình bày các dạng lỗ hổng của ứng dụng
web và các kỹ thuật tấn công dựa trên những lỗ hổng đó.
Phần thứ ba của khoá luận dành để trình bày về vài tấn công ứng dụng web dựa
trên lý thuyết đã trình bày ở các phần trước.
Phần thứ tư có nhiệm vụ trình bầy các kết quả đạt được của luận văn, những hạn
chế và phát triển trong tương lai.
Luận văn tốt nghiệp Một số vấn đề bảo mật ứng dụng web
Dương Thị Thu Hương – K50CHTTT - Trang 4 - Đại học Công Nghệ - ĐHQGHN
MỤC LỤC
LỜI CẢM ƠN ..............................................................................................................1
TÓM TẮT NỘI DUNG..................................................................................................3
BẢNG CÁC THUẬT NGỮ VIẾT TẮT..........................................................................5
BẢNG CÁC THUẬT NGỮ...........................................................................................6
DANH MỤC CÁC HÌNH VẼ BẢNG BIỂU....................................................................7
MỞ ĐẦU .....................................................................................................................8
CHƯƠNG 1. GIỚI THIỆU VỀ BẢO MẬT ỨNG DỤNG WEB ..............................10
1.1. Giới thiệu về ứng dụng web................................................................................................................. 10
1.1.1. Khái niệm ứng dụng web ....................................................................................................................... 10
1.1.2. Mô tả hoạt động của một ứng dụng web ................................................................................................ 10
1.2. Bảo mật ứng dụng web ........................................................................................................................ 12
1.2.1. Giới thiệu về bảo mật ứng dụng web ..................................................................................................... 12
1.2.2. Các vấn đề chính của bảo mật ứng dụng web ........................................................................................ 13
CHƯƠNG 2. MỘT SỐ TẤN CÔNG ỨNG DỤNG WEB VÀ CÁCH PHÒNG
CHỐNG 14
2.1. Các kỹ thuật tấn công cơ bản.............................................................................................................. 14
2.1.1. Lập bản đồ trang .................................................................................................................................... 14
2.1.2. Đoán tập tin và thư mục ......................................................................................................................... 15
2.1.3. Khai thác khi biết những luồng bảo mật ................................................................................................ 15
2.1.4. Vượt qua hạn chế trên các lựa chọn đầu vào.......................................................................................... 15
2.2. Tấn công dựa vào trạng thái trang..................................................................................................... 16
2.2.1. Giới thiệu ............................................................................................................................................... 16
2.2.2. Tấn công vào trường ẩn ......................................................................................................................... 16
2.2.2.1. Kỹ thuật tấn công vào trường ẩn ............................................................................................................ 16
2.2.2.2. Cách phòng chống.................................................................................................................................. 17
2.2.3. Tấn công dựa vào tham số CGI.............................................................................................................. 17
2.2.3.1. Kỹ thuật tấn công vào tham số CGI ....................................................................................................... 18
2.2.3.2. Cách phòng chống.................................................................................................................................. 18
2.2.4. Nhiêm độc cookie .................................................................................................................................. 18
2.2.4.1. Kỹ thuật tấn công nhiễm độc cookie...................................................................................................... 18
2.2.4.2. Cách phòng chống.................................................................................................................................. 19
2.2.5. Tấn công bằng nhảy URL ...................................................................................................................... 19
2.2.5.1. Kỹ thuật tấn công nhảy URL ................................................................................................................. 19
2.2.5.2. Cách phòng chống.................................................................................................................................. 19
Luận văn tốt nghiệp Một số vấn đề bảo mật ứng dụng web
Dương Thị Thu Hương – K50CHTTT - Trang 5 - Đại học Công Nghệ - ĐHQGHN
2.2.6. Chiếm hữu phiên làm việc (Session hijacking)...................................................................................... 19
2.2.6.1. Kỹ thuật tấn công chiếm hữu phiên làm việc......................................................................................... 20
2.2.6.2. Các cách phòng chống tấn công chiếm hữu phiên làm việc................................................................... 22
2.3. Tấn công chèn mã lệnh thực thi trên trình duyệt nạn nhân (cross-site scripting) – XSS .............. 22
2.3.1. Giới thiệu về cross-site scripting............................................................................................................ 22
2.3.2. Kỹ thuật tấn công XSS........................................................................................................................... 23
2.3.3. Mã kịch bản tấn công XSS..................................................................................................................... 24
2.3.3.1. Ăn cắp mã phiên làm việc của người dùng để thực hiện chiếm hữu phiên làm việc, ............................ 24
ví dụ mã sau:.......................................................................................................................................................... 24
2.3.3.2. Tạo thủ thuật để khiến người dùng làm việc không biết đến ................................................................. 24
2.3.3.3. Các cách chèn mã có thể ........................................................................................................................ 24
2.3.4. Các cách phòng chống ........................................................................................................................... 26
2.3.5. Một số trang vẫn còn lỗ hổng của Việt Nam: ........................................................................................ 27
2.4. Tấn công bằng kỹ thuật chèn mã SQL (SQL Injection) ................................................................... 27
2.4.1. Giới thiệu về SQL Injection................................................................................................................... 27
2.4.2. Các dạng tấn công SQL Injection .......................................................................................................... 29
2.4.2.1. Dạng tấn công vượt qua trang đăng nhập............................................................................................... 29
2.4.2.2. Tấn công dựa vào câu lệnh SELECT..................................................................................................... 30
2.4.2.3. Tấn công dựa vào câu lệnh kết hợp UNION.......................................................................................... 30
2.4.2.4. Tấn công dựa vào câu lệnh INSERT...................................................................................................... 33
2.4.2.5. Tấn công dựa vào STORED PROCEDURE.......................................................................................... 33
2.4.3. Cách phòng chống.................................................................................................................................. 33
CHƯƠNG 3. TẤN CÔNG THỰC NGHIỆM..........................................................35
3.1. URL Jumping....................................................................................................................................... 35
3.2. Lỗi XSS ................................................................................................................................................. 36
3.3. SQL Injection ....................................................................................................................................... 37
3.3.1. Trang thứ nhất........................................................................................................................................ 37
3.3.2. Trang thứ hai.......................................................................................................................................... 39
3.3.3. Trang thứ ba........................................................................................................................................... 40
CHƯƠNG 4. KẾT LUẬN..........................................................................................42
4.1. Kết quả đạt được.................................................................................................................................. 42
4.2. Định hướng phát triển ......................................................................................................................... 42
LỜI KẾT....................................................................................................................43
TÀI LIỆU THAM KHẢO.............................................................................................44
Luận văn tốt nghiệp Một số vấn đề bảo mật ứng dụng web
Dương Thị Thu Hương – K50CHTTT - Trang 5 - Đại học Công Nghệ - ĐHQGHN
BẢNG CÁC THUẬT NGỮ VIẾT TẮT
HTML HyperText Markup Language−Ngôn ngữ đánh dấu siêu văn bản
HTTP HyperText Transfer Protocol−giao thức truyền siêu văn bản
URL Uniform Resource Locator−địa chỉ tham chiếu tài nguyên trên Internet
CGI Common Gateway Interface−Chuẩn kết nối ứng dụng và máy chủ Web
SSL Secure socket layer−Giao thức truyền thông tin an toàn qua mạng
XSS Cross-site scripting−Tấn công chèn mã thực thi lên trình duyệt nạn nhân
ID Identification−Định danh
Luận văn tốt nghiệp Một số vấn đề bảo mật ứng dụng web
Dương Thị Thu Hương – K50CHTTT - Trang 6 - Đại học Công Nghệ - ĐHQGHN
BẢNG CÁC THUẬT NGỮ
URL Jumping Kỹ thuật tấn công nhảy URL
SQL Injection Tấn công bằng chèn mã SQL
Server Máy chủ
Web application
sever
Máy chủ ứng dụng web
Database Server Máy chủ cơ sở dữ liệu
Popup Cửa sổ của trình duyệt web được mở ra ngoài, khác với cửa sổ
đang làm việc.
Session Phiên làm việc của client với server
Session ID Mã phiên làm việc của client và server
Attacker Kẻ tấn công ứng dụng web
Hacker Kẻ tấn công ứng dụng web
Cookie Dữ liệu lưu trạng thái trang web của người dùng
Admin Người quản trị của ứng dụng web
Username Tên đăng nhập ứng dụng web
Password Mật khẩu đăng nhập ứng dụng web
Client Trình khách trong ứng dụng khách−chủ
Firewall Tường lửa bảo vệ hệ thống mạng
Request Yêu cầu của client
Form Mẫu biểu trong HTML
File text Tệp văn bản
Session
hijacking
Tấn công chiếm hữu phiên làm việc
Session fixation Tấn công ấn định phiên làm việc
Luận văn tốt nghiệp Một số vấn đề bảo mật ứng dụng web
Dương Thị Thu Hương – K50CHTTT - Trang 7 - Đại học Công Nghệ - ĐHQGHN
DANH MỤC CÁC HÌNH VẼ BẢNG BIỂU
Hình 1-1 mô tả hoạt động của ứng dụng web
( ............................10
Hình 2-1 Sơ đồ trang của trang web qbssoftware
(
Hình 2-2 Dạng cookie của Internet Explorer. ...............................................................18
Hình 2-3 Thứ tự các trang trong ứng dụng thanh toán trực tuyến.................................19
Hình 2-4 SessionID được lưu trong tham số CGI .........................................................20
Hình 2-5 Ăn cắp SessionID bằng cách giám sát đường truyền (nguồn:
) ......................................20
Hình 2-6 Tấn công ấn định phiên làm việc. ..................................................................21
Hình 2-7 các bước tấn công ấn định phiên làm việc. ....................................................22
Hình 2-8 Hacker thực hiện một cuộc tấn công thành công vào ứng dụng web (nguồn:
Hình 3-1 trang đăng nhập của admin của trang
Hình 3-2 Trang quản lý của admin của trang
Hình 3-3 Chèn mã kịch bản vào trang web ...................................................................36
Hình 3-4 Trang bị dính lỗi XSS. ...................................................................................37
Hình 3-5 trang đăng nhập của admin của trang
..................................................38
Hình 3-6 Hình ảnh sau khi đã đăng nhập
..................................................38
Hình 3-7 Trang đăng nhập của admin của trang
Hình 3-8 Hình ảnh sau khi đăng nhập của trang :
Hình 3-9 Trang đăng nhập của admin trang
..............................................................41
Hình 3-10: Hình ảnh sau khi đăng nhập của trang
..............................................................41
Luận văn tốt nghiệp Một số vấn đề bảo mật ứng dụng web
Dương Thị Thu Hương – K50CHTTT - Trang 8 - Đại học Công Nghệ - ĐHQGHN
MỞ ĐẦU
Ngày nay, Internet và các ứng dụng trên Internet được phát triển rộng rãi. Các cá
nhân, tổ chức, doanh nghiệp … đều có nhu cầu sử dụng Internet với mục đích riêng.
Các dịch vụ trực tuyến ngày càng được phát triển như mua hàng trực tuyến, giao dịch
ngân hàng trực tuyến, học trực tuyến…Theo đó các dịch vụ trực tuyến càng được phát
triển, mở rộng thì càng có nhiều lỗ hổng bảo mật và trở thành đối tượng bị tấn công
với các mục đích khác nhau.
Cùng với sự phát triển 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 với tốc độ chóng mặt. Theo tập đoàn Symantec số
lượng các vụ tấn công bằng mã độc trên Internet năm 2003 là 18.827 vụ, năm 2004 là
69.107 vụ, năm 2007 là 624.267 vụ và đến năm 2008 là 1.656.227 vụ. Riêng trong
năm 2008 ghi nhận 5.147 chủng loại mã độc chuyên chiếm quyền kiểm soát máy chủ
mới xuất hiện. (Nguồn:
whitepaper_internet_security_threat_report_xiv_04-2009.en-us.pdf)
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 cũng ngày càng tinh vi và có tổ chức. Những cuộc tấn công thời kỳ đầu chủ
yếu là đoán tên người sử dụng/mật khẩu (Username/password) hoặc sử dụng một số
lỗi của các chương trình và hệ điều hành (security hole) làm vô hiệu hóa hệ thống bảo
vệ, tuy nhiên các cuộc tấn công gần đây còn bao gồm cả các thao tác như giả mạo địa
chỉ IP, theo dõi thông tin truyền qua mạng, chiếm các phiên làm việc từ xa (telnet hoặc
rlogin), cài đặt trojan hay worm để chiếm quyền kiểm soát máy tính, ăn cắp, lợi dụng
các thông tin của người dùng về ngân hàng, giao dịch chứng khoán để ăn cắp tiền của
họ…Vì thế nhu cầu bảo vệ thông tin trên Internet là cần thiết nhằm bảo vệ dữ liệu, bảo
vệ thông tin người dùng và bảo vệ hệ thống
Đã có những công cụ tự động tìm lỗ hổng để giúp đỡ những nhà phát triển ứng
dụng web. Tuy nhiên do nhiều nguyên nhân vẫn có những lỗ hổng tồn tại làm cơ sở để
tấn công, có thể là do các nhà phát triển ứng dụng không tuân thủ các yêu cầu về bảo
mật trong quá trình xây dựng ứng dụng, có thể do cuộc tấn công là hoàn toàn mới và
tinh vi đối với những nhà phát triển và nhà quản trị hệ thống.
Luận văn tốt nghiệp Một số vấn đề bảo mật ứng dụng web
Dương Thị Thu Hương – K50CHTTT - Trang 9 - Đại học Công Nghệ - ĐHQGHN
Luận văn được thực hiện với mục đích tìm hiểu, phân tích các lỗ hổng bảo mật từ
đơn giản đến phức tạp trong các ứng dụng web và các phương án phòng chống các
cuộc tấn công.
Nội dung khóa luận sẽ bao gồm các phần sau (bốn chương):
• Chương 1: Tìm hiểu chung về ứng dụng web, khái niệm và hoạt động của
ứng dụng web trên Internet. Đồng thời cũng đề cập khái quát về bảo mật
ứng dụng web.
• Chương 2: Trình bầy về các kỹ thuật tấn công vào ứng dụng web và cách
phòng chống
o Các kỹ thuật tấn công cơ bản
o Các kỹ thuật tấn công dựa vào trạng thái của trang web
o Kỹ thuật tấn công chèn mã lệnh thực thi trên trình duyệt nạn nhân
(XSS).
o Kỹ thuật tấn công chèn câu truy vấn SQL (SQL injection) và cách
phòng chống.
• Chương 3: Một vài ví dụ tấn công ứng dụng web bằng các kỹ thuật ở trình
bầy các chương trước.
• Chương 4: Trình bầy kết quả đạt được của luận văn và hướng phát triển
trong tương lai.
Luận văn tốt nghiệp Một số vấn đề bảo mật ứng dụng web
Dương Thị Thu Hương – K50CHTTT - Trang 10 - Đại học Công Nghệ - ĐHQGHN
Chương 1. GIỚI THIỆU VỀ BẢO MẬT ỨNG DỤNG
WEB
1.1. Giới thiệu về ứng dụng web
1.1.1. Khái niệm ứng dụng web
Ứng dụng web là một ứng dụng khách/chủ truy cập qua mạng Internet hay
intranet sử dụng giao thức HTTP/s để tương tác với người dùng hay hệ thống khác.
Trình khách dành cho người sử dụng là một phần mềm phổ biến và chung cho
các ứng dụng web chính là trình duyệt web như Internet Explorer, Nescape Navigator.
Ứng dụng web rất phổ biến bởi sự cập nhật và duy trì mà không cần phần mềm phân
phối, cài đặt tại hàng nghìn máy tính của người sử dụng. Các ứng dụng web phổ biến
hiện nay là: webmail, bán hàng trực tuyến, giao dich, đấu giá trực tuyến, wiki, diễn
đàn thảo luận và nhiều chức năng khác.
Trước đây ứng dụng web được xây dựng trên mô hình tập trung, một trình chủ
chạy trên một máy chủ và kết nối vào cơ sở dữ liệu ngay trên máy chủ. Hiện nay các
ứng dụng web được xây dựn