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,1 MB
Nội dung
Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection LỜI CẢM ƠN Đầu tiên, xin chân thành cảm ơn ban giám hiệu, quy thầy cô trường cao đẳng CNTT hữu nghị Việt Hàn, đặc biệt thầy cô khoa Khoa học máy tính tận tình giảng dạy truyền đạt cho nhóm kiến thức quý báu năm học vừa qua Xin chân thành gửi lời cảm ơn đến thầy Lê Tự Thanh giảng viên khoa Khoa Học Máy Tính tận tình hướng dẫn, giúp đỡ nhóm trình định hướng, nghiên cứu hoàn thiện đồ án Kết cuối kết tháng ngày cố gắng, nỗ lực nhóm, giúp đỡ gia đình, nhà trường, bạn bè đặc biệt hướng dẫn tận tình thầy Lê Tự Thanh để hoàn tất cách tốt so với đặt Trong trình thực đồ án, có nhiều cố gắng nhiên có nhiều thiếu sót hạn chế, kính mong thầy (cô) bạn đóng góp ý kiến để hệ thống hoàn thiện Cuối cùng, lần nữa, xin cảm ơn tất giúp đỡ để hoàn thành tốt đồ án Xin chân thành cảm ơn! Đà Nẵng, tháng 03 năm 2012 Nhóm 12 thực Vương Đình Khoa Phạm Thị Thảo Nhóm 12 Trang i CCMM03A Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection MỤC LỤC LỜI CẢM ƠN .i MỤC LỤC ii DANH MỤC CÁC TỪ VIẾT TẮT v CERT Computer Emegency Respornse Team v LỜI MỞ ĐẦU vi PHẦN 1: TỔNG QUAN AN NINH MẠNG 1.1 Thực trạng an ninh Internet 1.1.1 Thực trạng an ninh Internet giới 1.1.2 Thực trạng an ninh Internet Việt Nam 1.2 Các hình thức công mạng 1.2.1 Quá trình thăm dò công 1.2.1.1 Thăm dò (Reconnaissace) 1.2.1.2 Quét hệ thống (Scanning) 1.2.1.3 Chiếm quyền điều khiển (Gainning access) 1.2.1.4 Duy trì điều khiển hệ thống (Maitaining access) 1.2.1.5 Xoá dấu vết (Clearning tracks) 1.3 Các biện pháp bảo mật mạng 1.3.1 Mã hoá, nhận dạng, chứng thực người dùng phần quyền sử dụng 1.3.1.1 Mã hoá 1.3.1.2 Các giải thuật mã hoá 1.3.1.3 Chứng thực người dùng .8 1.3.2 Bảo mật máy trạm 10 1.3.3 Bảo mật truyền thông 11 1.3.4 Các công nghệ kỹ thuật bảo mật 12 Nhóm 12 Trang ii CCMM03A Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection 1.3.5 Bảo mật ứng dụng 13 1.3.6 Thống kê tài nguyên 14 PHẦN 2: GIỚI THIỆU VỀ KỸ THUẬT SQL INJECTION VÀ MỘT SỐ VÍ DỤ CÁC KỸ THUẬT CỦA SQL INJECTION 16 2.1 Giới thiệu 16 2.2 Định nghĩa SQL Injection gì? 16 2.3 Các dạng công SQL Injection 17 2.3.1 Dạng công vượt qua kiểm tra đăng nhập 17 2.3.2 Tấn công sử dụng câu lệnh SELECT 19 2.3.3 Tấn công sử dụng câu lệnh INSERT .20 PHẦN 3: PHÒNG TRÁNH TẤN CÔNG SQL INJECTION 23 3.1 Đối với website (dành cho lập trình viên): 24 3.2 Đối với web server (dành cho quản trị mạng): 24 3.3 Đối với database server (dành cho quản trị mạng): .24 3.4 Hạn chế bị phát lỗi 24 3.5 Phòng chống từ bên 25 3.6 Cải thiện liệu nhập vào .26 3.7 Một số lời khuyên khác: 27 3.8 Một số công cụ quét kiểm tra lỗi SQL Injection hiệu .27 KẾT LUẬN 29 TÀI LIỆU THAM KHẢO .30 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 31 Nhóm 12 Trang iii CCMM03A Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection Hình 1.1 Quá trình thăm dò vào hệ thống mạng Hình 1.2 Quét trộm cổng không hoạt động .4 Hình 1.3 Đối với cổng hoạt động .4 Hình 1.4 Quá trình mã hoá .5 Hình 1.5 Mô hình giải thuật băm Hình 1.6 Giải thuật mã hoá đồng bộ/đối xứng Hình 1.7 Giải thuật mã hóa không đồng bộ/không đối xứng Hình 1.8 Chứng thực user password Hình 1.9 Hoạt động CHAP .9 Hình 1.10 Mô hình tổng quát firewall 12 Hình 1.11 Bảo mật VPN .13 Hình 1.12 Thống kê tài nguyên Monitoring .15 Hình 2.1 Mô hình công SQL Injection 16 Hình 2.2 Tấn công SQL Injection 17 Hình 2.3 Tấn công vượt qua kiểm tra đăng nhập 18 Hình 2.4 website bị lỗi sau nhúng dấu ‘ 20 Hình 2.5 Một đoạn mã ví dụ công câu lệnh Insert .21 Hình 3.1 Phòng tránh công SQL .23 Nhóm 12 Trang iv CCMM03A Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt CERT Ý nghĩa Computer Emegency Respornse Team PIN Personal Identity Number DNS Domain Name System NIC Network Interface Card IIS Internet Information Server WML Wireless Markup Language CMS Content Management System SSO Single Sign On AOP Aspect Oriented Programming GUI Graphical User Interface CERT Nhóm 12 Computer Emegency Respornse Team Trang v CCMM03A Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection LỜI MỞ ĐẦU Cùng với phát triển công nghệ thông tin, công nghệ mạng máy tính phát triển mạng internet ngày phát triển đa dạng phong phú Các dịch vụ mạng thâm nhập vào hầu hết lĩnh vực đời sống xã hội Các thông tin Internet đa dạng nội dung hình thức, có nhiều thông tin cần bảo mật cao tính kinh tế, tính xác tính tin cậy Bên cạnh đó, hình thức phá hoại mạng trở nên tinh vi phức tạp Do hệ thống, nhiệm vụ bảo mật đặt cho người quản trị mạng quan trọng cần thiết Những vụ công nhằm vào tất máy tính có mặt Internet, máy tính công ty lớn, trường đại học, quan nhà nước, tổ chức quan sự, 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 nữa, số phần tảng băng Một phần lớn vụ công không thông báo, nhiều lý do, kể lo bị uy tín, đơn giản người quản trị hệ thông không hay biết công nhằm vào hệ thông họ Với công cụ tự động tìm lỗi hổng giúp nhiều cho nhà lập trình web ngăn chặn toàn công nghệ web phát triển nhanh chóng (chủ yếu 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 phát sinh Sự công không nằm khuổn khổ vài kĩ thuật phát hiện, mà linh động tăng lên tùy vào sai sót nhà quản trị hệ thống người lập trình Chính vậy, thông qua việc nghiên cứu phương pháp SQL Injection nhóm mong muốn góp phần nhỏ vào việc nghiên cứu tìm hiểu vấn đề an ninh mạng giúp cho việc học tập nghiên cứu Nhóm 12 xin chân thành cảm ơn hướng dẫn ThS Lê Tự Thanh trực tiếp hướng dẫn đồ án giúp nhóm hoàn thành đồ án Sau nội dung đồ án: Nhóm 12 Trang vi CCMM03A Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection PHẦN 1: TỔNG QUAN AN NINH MẠNG 1.1 Thực trạng an ninh Internet 1.1.1 Thực trạng an ninh Internet giới Hệ thống quy mô lớn Internet khe hở hay lỗi hệ thống có nguy gây thiệt hại lớn Theo thống kê CERT( Computer Emegency Respornse Team) vụ công tăng gấp 2, chí gấp sau năm Cụ thể sau: Năm 1989: Có 200 vụ công, truy nhập mạng báo cáo Năm 1991: 400 vụ thống kê Năm 1993: 1400 vụ Năm 1994: 2241 vụ Những năm hai nghìn: Con số thống kê không thức có hang chục nghìn vụ công truy nhập Internet năm Số vụ công ngày tăng, với phương thức công biến hóa khôn lường 1.1.2 Thực trạng an ninh Internet Việt Nam Trong năm 2009, nước ta có 1000 (1.037) website bị hacker công, tăng gấp đôi so với năm 2008 (461 website ) gấp lần năm 2007 ( 342 website ) Trong tháng đầu năm 2010 có 300 website cá nhân tổ chức có tên miền bị hacker nước thăm dò công Lỗ hổng an ninh hệ thống ngày phát nhiều Số lượng điểm yếu an ninh năm 2009 4300 (năm 2008 3500) có tới 30% lỗ hổng có mức độ nguy hiểm cao Gần nửa (49%) số lỗ hổng an ninh chưa có vá nhà cung cấp dịch vụ phát hành Ở nước ta vấn đề lỗ hổng hệ thống chưa quản trị hệ thống cập nhật vá kịp thời Mạng Internet môi trường có vô số vụ công Nhìn chung chia mối đe dọa an ninh thành loại: Nhóm 12 Trang CCMM03A Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection Mất liệu tích hợp: liệu bị sửa chữa, thay truyền mạng Mất liệu bảo mật: người quyền đọc liệu Từ chối dịch vụ: dịch vụ bị ngưng trệ công Hacker Mất khả điều khiển: người có quyền sử dụng dịch vụ tương tác với dịch vụ Người sử dụng thường cố gắng tìm lỗ hổng phần mềm cấu hình lại hệ thống nhằm bảo đảm an toàn thông tin Trong số trường hợp Hacker không muốn cho truy suất hệ thống cách xây dựng loạt thủ tục nhằm mục đích đưa thông báo “từ chối dịch vụ” Việc công vào mạng sử dụng thông báo từ chối truy cập thực cách khiến cho phần mềm dịch vụ bị tải phải xử lý nhiều yêu cầu Khi hệ thống trở nên bận thiếu thời gian để làm việc khác buộc phải từ chối truy cập dịch vụ Tuy có nhiều cách để xâm nhập vào mạng cách dễ dàng chặn dòng liệu trao đổi thành viên mạng Do thông tin truyền mạng dạng văn tuý nên việc rình bắt thông tin giúp cho Hacker lấy mật mạng cách dễ dàng Còn kiểu công mạng hay sử dụng giả dạng cách giả vờ người sử dụng có thẩm quyền mạng thông qua việc giả lập địa IP Điều đáng nói hầu hết trường hợp, việc bảo đảm độ tin cậy dựa phía (qua password, PIN) mà thông tin lại dễ bị chép Do để đảm bảo độ tin cậy, việc thiết lập độ tin cậy phải thực từ hai phía việc sử dụng thẻ thông minh (smart card) kết hợp với PIN (Personal Identity Number) nhằm tăng mức độ an toàn mạng Một cách khác tạo phần mềm thông minh để truy xuất đến mạng đích thông qua việc lấy thông tin thải loại sọt rác đĩa mềm bỏ người quản trị mạng Kiểu áp dụng mà Hacker liên quan mật thiết đến người điều hành mạng dễ truy tìm Hacker mạng bị công Nhóm 12 Trang CCMM03A Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection Còn cách để Hacker xâm nhập vào mạng sử dụng tập hợp thông tin dễ ghi nhớ Rất nhiều mạng sử dụng tên miền dễ nhớ như: System01.Domain.Org Bằng việc truy xuất qua server quản lý hệ tên miền (DNS: Domain Name System), Hacker thâm nhập vào mạng dễ dàng cách hướng yêu cầu người sử dụng đến server khác lấy trộm thông tin cần thiết Do để đảm bảo người sử dụng truy xuất server cần phải bổ xung việc kiểm tra độ tin cậy server Điều thực cách sử dụng chứng số server Để tránh việc gói tin bị thay truyền mạng, bắt buộc gói tin phải tích hợp trước truyền thông qua việc bổ xung thông điệp băm Việc mã hoá thông điệp giúp cho thông điệp bảo đảm độ xác Trong hầu hết trường hợp công vào mạng thành công kỹ thuật mà người Thay cho sử dụng kỹ thuật để đột phá vào mạng, Hacker thử liên hệ với người nắm giữ thông tin mà họ cần,điều khiển họ thông qua việc khai thác thói quen họ người không thông báo thông tin bị rò gỉ họ cho cấp có thẩm quyền 1.2 Các hình thức công mạng 1.2.1 Quá trình thăm dò công Hình 1.1 Quá trình thăm dò vào hệ thống mạng Nhóm 12 Trang CCMM03A Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection 1.2.1.1 Thăm dò (Reconnaissace) Thăm dò mục tiêu bước qua trọng để biết thông tin hệ thống mục tiêu Hacker sử dụng kỹ thuật để khám phá hệ thống mục tiêu chạy hệ điều hành nào, có dịch vụ chạy dịch vụ đó, cổng dịch vụ đóng cổng mở, gồm hai loại: Passive: Thu thập thông tin chung vị trí địa lý, điện thoại, email cá nhân, người điều hành tổ chức Active: Thu thập thông tin địa IP, domain, DNS,… hệ thống 1.2.1.2 Quét hệ thống (Scanning) Quét thăm dò hệ thống phương pháp quan trọng mà Attacker thường dùng để tìm hiểu hệ thống thu thập thông tin địa IP cụ thể, hệ điều hành hay kiến trúc hệ thống mạng Một vài phương pháp quét thông dụng như: quét cổng, quét mạng quét điểm yếu hệ thống Hình 1.2 Quét trộm cổng không hoạt động Hình 1.3 Đối với cổng hoạt động 1.2.1.3 Chiếm quyền điều khiển (Gainning access) o Mức hệ điều hành/ mức ứng dụng o Mức mạng o Từ chối dịch vụ Nhóm 12 Trang CCMM03A Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection ứng dụng website thông báo lỗi hệ quản trị sở liệu để "tiêm vào" (inject) thi hành câu lệnh SQL bất hợp pháp (do người viết phần mềm ứng dụng họ không lường trước ) Hậu tai hại cho phép kẻ công thực thao tác xóa, hiệu chỉnh, … trực tiếp ứng dụng người quản trị, có toàn quyền sở liệu ứng dụng, chí server mà ứng dụng chạy - Lỗi thường xảy ứng dụng website có liệu quản lí hệ quản trị sở liệu SQL Server, MySQL, Oracle, DB2, Sysbase 2.3 Các dạng công SQL Injection PCó bốn dạng thông thường bao gồm: Vượt qua kiểm tra lúc đăng nhập (Aauthorization bypass) Sử dụng câu lệnh SELECT Sử dụng câu lệnh INSERT Sử dụng stored-procedures Hình 2.2 Tấn công SQL Injection 2.3.1 Dạng công vượt qua kiểm tra đăng nhập - Với dạng công này, tin tặc dễ dàng vượt qua trang đăng nhập nhờ vào lỗi dùng câu lệnh SQL thao tác sở liệu ứng dụng web Nhóm 12 Trang 17 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection - Sau người dùng nhập thông tin vào, hệ thống kiểm tra tên đăng nhập mật có hợp lệ hay không để định cho phép hay từ chối thực tiếp Hình 2.3 Tấn công vượt qua kiểm tra đăng nhập - Thoạt nhìn, đoạn mã trang execlogin.asp dường không chứa lỗ hổng an toàn Người dùng đăng nhập mà tên đăng nhập mật hợp lệ Tuy nhiên, đoạn mã thực không an toàn tiền đề cho lỗi SQL injection Đặc biệt, chỗ sơ hở nằm chỗ liệu nhập vào từ người dùng dùng để xây dựng trực tiếp câu lệnh SQL Chính điều cho phép kẻ công điều khiển câu truy vấn thực Nhóm 12 Trang 18 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection - Ví dụ: Nếu hacker nhập vào chuỗi ' OR 1=1 Câu truy vấn là: SELECT * FROM T_USERS WHERE USR_NAME ='' OR 1=1 and USR_PASSWORD= ‘' OR 1=1 1.Kiểm tra USR_NAME =‘’ hay sai ? > Sai 2.Kiêm tra 1=1 hay sau > Đúng Kiểm tra USR_PASSWORD =‘’ hay sai ? > Sai 4.Kiêm tra 1=1 hay sau > Đúng P (1) or (2) -> Đúng , (3) or (4) -> Đúng Câu truy vấn hợp lệ trả tất ghi T_USERS đoạn mã xử lí người dùng đăng nhập bất hợp pháp người dùng đăng nhập hợp lệ - Tương tự vậy, hacker lợi dụng làm điều tồi tệ website bạn … 2.3.2 Tấn công sử dụng câu lệnh SELECT - Dạng công phức tạp Để thực kiểu công này, kẻ công phải có khả hiểu lợi dụng sơ hở thông báo lỗi từ hệ thống để dò tìm điểm yếu khởi đầu cho việc công - Xét ví dụ thường gặp website tin tức Thông thường, có trang nhận ID tin cần hiển thị sau truy vấn nội dung tin có ID Ví dụ: http://www.mysite.com/shownews.asp?ID=123 Lúc Hacker thêm dấu nháy đơn ‘ sau link, có lỗi site báo này: Nhóm 12 Trang 19 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection Hình 2.4 website bị lỗi sau nhúng dấu ‘ Khi hacker lợi dụng lỗi site khai thác lấy thông tin : table, columns …, hiệu chỉnh, xóa liệu câu lệnh SQL Tấn công kiểu select phức tạp thường hacker sử dụng, hacker thường khai thác lỗi để lấy cắp tài khoản chùa chiếm quyền Admin website Tương tự trên, tin tặc lợi dụng sơ hở câu truy vấn SQL để nhập vào trường tên tác giả chuỗi giá trị: ‘ UNION SELECT ALL SELECT OtherField FROM OtherTable WHERE ' '=' (*) Lúc này, câu truy vấn đầu không thành công, chương trình thực thêm lệnh sau từ khóa UNION Tất nhiên ví dụ nói trên, dường nguy hiểm, thử tưởng tượng kẻ công xóa toàn sở liệu cách chèn vào đoạn lệnh nguy hiểm lệnh DROP TABLE Ví dụ như: ' DROP TABLE T_AUTHORS -2.3.3 Tấn công sử dụng câu lệnh INSERT - Thông thường ứng dụng web cho phép người dùng đăng kí tài khoản để tham gia Chức thiếu sau đăng kí thành công, người dùng xem hiệu chỉnh thông tin SQL injection dùng hệ thống không kiểm tra tính hợp lệ thông tin nhập vào - Một câu lệnh INSERT có cú pháp dạng: INSERT INTO TableName VALUES('Value One', 'Value Two', 'Value Three') Nhóm 12 Trang 20 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection - Nếu hacker nhập vào tại: Value One chuỗi: ‘ + SELECT TOP FieldName FROM TableName + ’ - Lúc câu truy vấn là: INSERT INTO TableName VALUES(' ' + (SELECT TOP FieldName FROM TableName) + ' ', 'abc', 'def') - Lúc thực lệnh xem thông tin, xem bạn yêu cầu thực thêm lệnh là: SELECT TOP FieldName FROM TableName Vậy tất liệu nằm website bạn, hacker lấy cắp Hình 2.5 Một đoạn mã ví dụ công câu lệnh Insert 2.3.4 Dạng công Stored – Procedures - Việc công stored-procedures gây tác hại lớn ứng dụng thực thi với quyền quản trị hệ thống 'sa' - Ví dụ, ta thay đoạn mã tiêm vào dạng: ' ; EXEC xp_cmdshell ‘cmd.exe dir C: ' - Lúc hệ thống thực lệnh liệt kê thư mục ổ đĩa C:\ cài đặt server Việc phá hoại kiểu tuỳ thuộc vào câu lệnh đằng sau cmd.exe Nhóm 12 Trang 21 CCMM03A Đồ án môn học an ninh mạng Nhóm 12 Tìm hiểu an ninh mạng kỹ thuật SQL Injection Trang 22 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection PHẦN 3: PHÒNG TRÁNH TẤN CÔNG SQL INJECTION Lỗi SQL Injection nguy hiểm việc phòng tránh cần thiết Lọc bỏ ký tự từ khóa nguy hiểm như: , select , where , drop, shutdown … Để phòng tránh nguy xảy ra, bảo vệ câu lệnh SQL cách kiểm soát chặt chẽ tất liệu nhập nhận từ đối tượng Request (Request, Request.QueryString), Request.Form, Request.Cookies, and Request.ServerVariables) Ví dụ, giới hạn chiều dài chuỗi nhập liệu, xây dựng hàm EscapeQuotes để thay dấu nháy đơn dấu nháy đơn - Cần có chế kiểm soát chặt chẽ giới hạn quyền xử lí liệu đến tài khoản người dùng mà ứng dụng web sử dụng Các ứng dụng thông thường nên tránh dùng đến quyền dbo hay sa Quyền bị hạn chế, thiệt hại Ngoài để tránh nguy từ SQL Injection attack, nên ý loại bỏ thông tin kĩ thuật chứa thông điệp chuyển xuống cho người dùng ứng dụng có lỗi Các thông báo lỗi thông thường tiết lộ chi tiết kĩ thuật cho phép kẻ công biết điểm yếu hệ thống Hình 3.1 Phòng tránh công SQL Nhóm 12 Trang 23 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection 3.1 Đối với website (dành cho lập trình viên): Cần kiểm tra tính đắn tất liệu đầu vào Dữ liệu đầu vào không tham số, mà bao gồm cookie, user agent, referer … Việc kiểm tra tính đắn liệu dựa phương pháp sau: - Kiểm tra dựa vào kiểu liệu (số, ngày tháng …) - Kiểm tra, giới hạn độ dài đầu vào - -Loại bỏ ký tự đặc biệt như: ‘ % ” ? # @ & … - -Loại bỏ từ đặc biệt: select, drop, delete, information_schemal, insert, union, xp_ … 3.2 Đối với web server (dành cho quản trị mạng): Hầu hết máy chủ web (web server) có module hỗ trợ việc phòng chống SQL Injection, ví dụ: Apache có modsecurity, IIS có URLScan Bạn cần bật tính cấu hình cho phù hợp Nếu website bạn dạng trang tin tức phù hợp để triển khai Trong số trường hợp khác, module chặn nhầm, dẫn tới website hoạt động không xác 3.3 Đối với database server (dành cho quản trị mạng): Bạn cần thực việc cấu hình phân quyền chặt chẽ tài khoản Khi đó, dù tồn lỗi SQL Injection, thiệt hại hạn chế Ngoài ra, bạn cần loại bỏ bảng, thành phần tài khoản không cần thiết hệ thống 3.4 Hạn chế bị phát lỗi Attacker dựa vào lỗi lập trình ứng dụng để công cụ thể attacker dựa vào dấu hiệu để phát ứng dụng bị lỗi Vậy việc làm cho dấu hiệu bị che đi, trở nên khó hiểu hơn, biến mất…được hầu hết chuyên gia bảo mật sử dụng Lưu ý kĩ thuật dùng để dấu lỗi, lỗi ứng dụng đó, để chống lại phát dễ dàng lỗi để kẻ xấu khai thác Nhóm 12 Trang 24 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection Nhưng attacker khôn khéo nhìn thấu kiểu phòng chống Nó tránh công đơn giản thêm dấu ‘(dấu nháy) vào cuối đường dẫn Vì phương pháp tìm kiếm ứng dụng bị lỗi công dựa vào dấu hiệu trả ứng dụng trực tiếp từ database Ta đưa thông báo chung chung định hướng trở lại trang ban đầu(redirect) Trong trường hợp này, công việc tìm kiếm lỗi xác định mục tiêu trở nên cực khó attacker Tuy nhiên attacker tạo công nghệ tìm kiếm lỗi tinh vi hơn, tốt hơn, để gián tiếp xác định dấu hiệu trả Tấn công kiểu gọi “Blind SQL Injection” 3.5 Phòng chống từ bên Giải pháp dùng tường lửa đặc biệt để bảo vệ bạn khỏi ứng dụng dùng việc truy cập database với mục đích xấu Chúng ta cần lưu ý attacker tương tác với ứng dụng web thông qua trình duyệt với kết nối từ xa Sau đó, ứng dụng gởi yêu cầu đến database Như ngăn chặn công attacker với ứng dụng, ứng dụng với database thân database Một số phương pháp phòng chống thực như: Nhóm 12 Trang 25 CCMM03A Đồ án môn học an ninh mạng Tìm hiểu an ninh mạng kỹ thuật SQL Injection Những lọc, quét điểu khiển truy cập sở liệu làm cho ứng dụng web khó bị công 3.6 Cải thiện liệu nhập vào Cách phòng chống thực để chống lại SQL Injection kiểm tra làm câu truy vấn Như đề cập, lỗi ứng dụng không kiểm tra liệu nhập vào người dùng Do người dùng thay đổi, chỉnh sửa, tham số thêm thực thể truy vấn vào câu lệnh Vì liệu nhập người dùng cần theo dõi có ràng buộc định Thứ nhất, ứng dụng cần phân loại kiểu liệu nhập vào Ví dụ, ứng dụng yêu cầu liệu nhập vào kiểu số ứng dụng nhận liệu nhập vào không nên chấp nhận kiểu khác ngoại trừ kiểu số Một số hàm kiểm tra PHP: is_numeric($str) : kiểm tra $str có phải kiểu số hay không is_int($str) :kiểm tra kiểu interger is_float($str) :kiểm tra kiểu số thực … Thứ 2, liệu nhập vào không rõ kiểu phải xác định kiểu không phép gọi Trong trường hợp phải lọc dấu nháy, lệnh, kí tự đặc biệt Một vài việc lọc liệu thực toàn ứng dụng( không lưu liệu có dấu ‘ vào sở liệu) vài kiểu liệu nhập vào( dấu “,” địa mail).VD: magic_quotes_gpc GPC=GET,POST,COOKIE) Hàm kiểm tra liệu thuộc loại phát có dấu ‘ (single-quote), ” (double quote), \ (backslash) tự động thêm vào dấu \ (backslash) trước nó: