Nghiên cứu tìm hiểu một số dạng tấn công sql injection vào hệ quản trị csdl microsoft sql server

87 1K 3
Nghiên cứu tìm hiểu một số dạng tấn công sql injection vào hệ quản trị csdl microsoft sql server

Đ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

Nghiên cứu tìm hiểu một số dạng tấn công sql injection vào hệ quản trị csdl microsoft sql server

HỌC VIỆN KỸ THUẬT MẬT MÃ ĐỒ ÁN TỐT NGHIỆP Đề tài Nghiên cứu tìm hiểu một số dạng tấn công SOL Injection vào hệ quản trị cơ sở dữ liệu Microsoft SQL Server Ngành: Chuyên ngành: Khóa: Tin học (mã số 01.02.10) An toàn thông tin 03 (2006 – 2011) Cán bộ hướng dẫn khoa học : Sinh viên thực hiện: PGS.TS. Lê Mỹ Tú Lã Huyền Châm Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server HÀ NỘI 2011 Lã Huyền Châm - Lớp AT3C 2 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server MỤC LỤC MỤC LỤC 3 CÁC TỪ VIẾT TẮT 6 TỪ VIẾT TẮT 6 TIẾNG ANH 6 SQL 6 Structured Query Language 6 TDE 6 Transparent Data Encryption 6 DDL 6 Data Definition Language 6 DEK 6 Database Encryption Key 6 SMK 6 Service Master Key 6 DMK 6 Database Master Key 6 SSL 6 Secure Socket Layer 6 SQLIA 6 Structured Query Language Injection Attack 6 SPDL 6 Security Policy Descriptor Language 6 IDS 6 Intrusion Detection System 6 SPDL 6 Security Policy Descriptor Language 6 DANH MỤC HÌNH VẼ 7 LỜI MỞ ĐẦU 8 CHƯƠNG I: TỔNG QUAN VỀ AN NINH, AN TOÀN TRONG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MICROSOFT SQL SERVER 10 1.1. GIỚI THIỆU CHUNG VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MICROSOFT SQL 10 Lã Huyền Châm - Lớp AT3C 3 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server 1.1.1. Kiến trúc hệ thống lưu trữ dữ liệu SQL Server 12 1.1.1.1. Cấu trúc page và extent 12 1.1.1.2. Cấu trúc file và filegroup 13 1.1.1.3. Cấu trúc nhật ký giao tác (transaction log) 15 1.1.1.4. Cấu trúc bảng và cấu trúc dữ liệu chỉ số 16 1.1.2. Giải pháp nhân bản dữ liệu trong SQL Server 17 1.1.2.1. Thành phần trong mô hình nhân bản 17 1.1.2.2. Phương pháp nhân bản 19 1.2. KIẾN TRÚC AN NINH AN TOÀN TRONG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MICROSOFT SQL 22 1.2.1. Cấu trúc hệ thống bảo vệ 22 1.2.2. Các mức bảo vệ 23 1.3. MÃ HÓA CƠ SỞ DỮ LIỆU TRONG MICROSOFT SQL 25 1.3.1. Mã hóa dữ liệu trong suốt (TDE – Transparent Data Encrryption) 25 1.3.2. Tìm hiểu cơ bản về TDE trong SQL Server 2008 26 1.3.2.1. Hệ thống phân cấp khóa mã trong TDE 27 1.3.2.2. Phương pháp thiết lập TDE 28 1.3.2.3. Phương pháp dữ liệu được mã hóa 30 1.3.2.4. Dạng thông tin mà TDE có thể mã hóa 30 CHƯƠNG II: TÌM HIỂU VỀ MỘT SỐ KỸ THUẬT TẤN CÔNG SQL INJECTION 32 2.1. MỘT SỐ TẤN CÔNG CƠ SỞ DỮ LIỆU PHỔ BIẾN 32 2.2. MỘT SỐ KỸ THUẬT TẤN CÔNG SQL INJECTION 33 2.2.1. Khái niệm về tấn SQL injection: 33 2.2.2. Các cơ chế thực hiện tiêm 34 2.2.2.1. Kỹ thuật tiêm thông qua đầu vào người dùng 34 2.2.2.2. Kỹ thuật tiêm thông qua các coockie 34 2.2.2.3. Kỹ thuật tiêm thông qua các biến môi trường 34 2.2.2.4. Kỹ thuật tiêm bậc hai 35 2.2.3. Các mục tiêu khi thực hiện tấn công SQL injection 36 2.2.4. Các kiểu tấn công SQL injection 38 2.2.4.1. Tấn công dựa vào tính dư thừa (Tautologies) 39 2.2.4.2. Tấn công dựa vào các truy vấn trái phép/sai logic 40 2.2.4.3. Tấn công dựa vào truy vấn kết hợp 41 2.2.4.4. Tấn công dựa vào các truy vấn Piggy-Backed 42 2.2.4.5. Tấn công dựa vào các thủ tục lưu trữ 43 2.2.4.6. Tấn công dựa vào sự suy đoán 44 2.2.4.7. Tấn công dựa vào các biến đổi thay thế 47 2.2.5. Phương pháp ngăn chặn tấn công SQL injection 48 2.2.5.1. Các phương pháp viết mã lệnh có bảo vệ 48 2.2.5.2. Các kỹ thuật phát hiện và ngăn chặn (Detection and Prevention Techniques) 50 CHƯƠNG III: TẤN CÔNG SQL INJECTION TRÊN SQL SERVER VÀ XÂY DỰNG MODULE MÔ PHỎNG TẤN CÔNG 54 3.1. KỸ THUẬT TẤN CÔNG SQL INJECTION TRONG CÁC ỨNG DỤNG SQL SERVER 54 3.1.1. Thu thập thông tin qua các thông báo lỗi 54 Lã Huyền Châm - Lớp AT3C 4 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server 3.1.2. Leo thang quyền kiểm soát 58 3.2. XÂY DỰNG CHƯƠNG TRÌNH DEMO THỰC HIỆN TẤN CÔNG SQL INJECTION 62 3.2.1. Nội dung kịch bản demo 62 3.2.2. Giới thiệu chương trình ứng dụng sẽ được áp dụng cho demo 62 3.2.2.1.Cấu trúc cơ sở dữ liệu QuanLyTinNhan 63 3.2.2.2. Các chức năng của chương trình ứng dụng QuanLyTinNhan 64 3.2.3. Áp dụng thức tấn công SQL injection trong ứng dụng 67 3.2.3.1. Áp dụng cách tấn công SQL injection nhằm làm vô hiệu hóa điều kiện truy vấn 67 3.2.3.2. Áp dụng cách tấn công SQL injection nhằm làm thay đổi dữ liệu trong bảng 69 3.2.3.3. Áp dụng cách tấn công SQL injection nhằm xóa toàn bộ dữ liệu trong bảng 71 PHỤ LỤC 75 TÀI LIỆU THAM KHẢO 87 Lã Huyền Châm - Lớp AT3C 5 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server CÁC TỪ VIẾT TẮT TỪ VIẾT TẮT TIẾNG ANH SQL Structured Query Language TDE Transparent Data Encryption DDL Data Definition Language DEK Database Encryption Key SMK Service Master Key DMK Database Master Key SSL Secure Socket Layer SQLIA Structured Query Language Injection Attack SPDL Security Policy Descriptor Language IDS Intrusion Detection System SPDL Security Policy Descriptor Language Lã Huyền Châm - Lớp AT3C 6 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server DANH MỤC HÌNH VẼ Hình 1.1 Cấu trúc extent 13 Hình 1.2. Cách tổ chức của một bảng 16 Hình 1.3. Các thành phân cơ bản trong mô hình nhân bản 17 Hình 1.4: Mô hình nhân bản Snapshot 19 Hình 1.5. Mô hình nhân bản Transaction 20 Hình 1.6. Mô hình nhân bản Merge 21 Hình 1.7. Kiến trúc phân cấp khóa TDE 28 Hình 3.1. Giao diện chương trình demo 64 Chức năng kết nối tới cơ sở dữ liệu SQL Server: 64 Hình 3.2. Giao diện kết nối tới SQL Server 65 Hình 3.3. Giao diện đăng ký thông tin cá nhân 65 Hình 3.4. Giao diện thông tin cá nhân 66 Hình 3.5. Giao diện gửi tin nhắn 66 Hình 3.6. Giao diện gửi tin nhắn 67 Hình 3.7. Hiển thị tin nhắn 68 Hình 3.8. Giao diện thể hiện truy vấn 68 Hình 3.9. Danh sách toàn bộ các tin nhắn 69 Hình 3.10. Giao diện hiển thị thông tin cá nhân 70 Hình 3.11. Thông tin cá nhân của tất cả người dùng 70 Hình 3.12. Giao diện thực hiện chèn thêm truy vấn làm thay đổi dữ liệu 71 Hình 3.13. Giao diện thực hiện chèn thêm truy vấn để xóa dữ liệu trong bảng 72 Lã Huyền Châm - Lớp AT3C 7 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server LỜI MỞ ĐẦU Ngày nay vấn đề bảo vệ các cơ sở dữ liệu là một trong những vấn đề hết sức quan trọng. Đặc biệt là các trung tâm lưu trữ cơ sở dữ liệu của các cơ quan tổ chức doanh nghiệp. Để có thể khai thác trái phép các thông tin này, kẻ tấn công thực hiện mọi phương pháp và sử dụng nhiều công cụ khác nhau. Nhằm bảo vệ tốt các cơ sở dữ liệu, đề phòng, phát hiện và ngăn chặn các tấn công vào tài nguyên hệ thống thì chúng ta cần phải hiểu rõ các cách thức tấn công. Một trong những cách thức tấn công được thực hiện phổ biến hiện nay và khá hiệu quả đó là tấn công SQL injection vào các ứng dụng cơ sở dữ liệu. Đó là một hướng tấn công tuy không mới, nhưng các kỹ thuật cụ thể được áp dụng thì luôn thay đổi. Nếu tấn công này được thực hiện thành công thì kẻ tấn công có thể đạt được tới mức có thể lấy được toàn bộ dữ liệu trong cơ sở dữ liệu, cũng như thay đổi dữ liệu hoặc cấu trúc các đối tượng cơ sở dữ liệu. Để hiểu rõ và sâu hơn về kỹ thuật tấn công, em đã chọn nghiên đề tài: “Nghiên cứu và tìm hiểu một số tấn công dạng SQL Injection vào hệ quản trị cơ sở dữ liệu Microsoft SQL Server”. Bố cục của đề tài được chia ra làm ba chương: Chương 1: “Tổng quan về an ninh, an toàn trong hệ quản trị cơ sở dữ liệu”. Trong chương này em tập trung tìm hiểu về kiến trúc hệ thống lưu trữ dữ liệu SQL Server, vấn đề mã hóa cơ sở dữ liệu trong Microsoft SQL. Chương 2: “Kỹ thuật tấn công SQL injection”. Nội dung chính của chương nghiên cứu về một số kỹ thuật tấn công SQL Injection, cơ chế thực hiện và phương pháp ngăn chặn tấn công. Chương 3: “Tấn công SQL Injection trên SQL Server và xây dựng module mô phỏng tấn công”. Trong chương này tìm hiểu về kỹ thuật tấn công SQL injection trong các ứng dụng SQL Server, xây dựng chương trình demo thực hiện tấn công. Sau hơn ba tháng nỗ lực nghiên cứu và tìm hiểu, đến nay đồ án tốt nghiệp của em đã hoàn thành. Trước hết cho phép em được bày tỏ lòng biết ơn sâu sắc và lời cảm ơn chân thành tới thầy giáo PGS.TS. Lê Mỹ Tú đã hết lòng chỉ bảo và tận tình hướng dẫn em, các thầy cô giáo trong khoa An toàn Lã Huyền Châm - Lớp AT3C 8 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server Thông tin đã tạo điều kiện tốt nhất, cám ơn bạn bè và gia đình đã ủng hộ và động viên em trong suốt quá trình hoàn thành đồ án. Hà Nội, ngày 6 tháng 6 năm 2011 Sinh viên thực hiện Lã Huyền Châm Lã Huyền Châm - Lớp AT3C 9 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server CHƯƠNG I: TỔNG QUAN VỀ AN NINH, AN TOÀN TRONG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MICROSOFT SQL SERVER 1.1. GIỚI THIỆU CHUNG VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MICROSOFT SQL SQL Server bao gồm một số công nghệ phân tích và quản lý dữ liệu sau: • Bộ máy cơ sở dữ liệu (Database Engine): Đây là dịch vụ lõi (core service) thực hiện nhiệm vụ lưu trữ, xử lý và an toàn dữ liệu. Bộ máy cơ sở dữ liệu cung cấp cách truy cập có kiểm soát và xử lý nhanh các giao tác để đáp ứng các yêu cầu dữ liệu từ ứng dụng. Bộ máy cơ sở dữ liệu được sử dụng để tạo ra các cơ sở dữ liệu quan hệ cho các giao tác trực tuyền hoặc dữ liệu xử lý phân tích trực tuyến. Cơ sở dữ liệu quan hệ gồm các bảng để lưu trữ dữ liệu và các đối tượng cơ sở dữ liệu như chỉ số (index), khung nhìn (view) và các thủ tục lưu trữ (stored procedure) để xem, quản lý và an toàn dữ liệu. SQL Server Management Studio là công cụ được sử dụng để quản lý các đối tượng cơ sở dữ liệu và SQL Server Profiler dùng để thu thập các sự kiện. Nhiệm vụ chính của bộ máy cơ sở dữ liệu: o Thiết kế và tạo cơ sở dữ liệu để lưu trữ các bảng quan hệ hoặc các tài liệu XML được yêu cầu từ hệ thống. o Thực thi hệ thống để truy cập và thay đổi dữ liệu được lưu trữ trong cơ sở dữ liệu. Công việc này bao gồm thực hiện các Website hoặc các ứng dụng làm việc với dữ liệu và xây dựng các thủ tục làm việc với dữ liệu. o Hỗ trợ việc quản trị hàng ngày để tối ưu hiệu năng của cơ sở dữ liệu • Các dịch vụ phân tích o Đối với dữ liệu đa chiều (Microsoft SQL Server Analysis Services – Multidimensional Data): Cho phép thiết kế, tạo, và quản lý các cấu trúc đa chiều, bao gồm dữ liệu chi tiết và dữ liệu đã được tập hợp từ Lã Huyền Châm - Lớp AT3C 10 [...]... 31 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server CHƯƠNG II: TÌM HIỂU VỀ MỘT SỐ KỸ THUẬT TẤN CÔNG SQL INJECTION 2.1 MỘT SỐ TẤN CÔNG CƠ SỞ DỮ LIỆU PHỔ BIẾN Một số tấn công vào cơ sở dữ liệu thường thấy: • Cấp phát quyền cơ sở dữ liệu quá mức cần thiết: Khi người dùng (hoặc ứng dụng) được gán các quyền cơ sở dữ liệu vượt quá các yêu cầu của chức năng công. .. biến server này theo một số cách, như thống kê số lần đăng nhập và xác định xu hướng Nếu các biến này Lã Huyền Châm - Lớp AT3C 34 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server đăng nhập tới cơ sở dữ liệu mà không được kiểm soát, điều này có thể tạo các lỗ hổng cho tấn công SQL Injection Bởi vì kẻ tấn công có thể giả mạo các giá trị đó, các giá trị này... để tấn công lên các server mục tiêu • SQL Injection: Các tấn công SQL injection liên quan đến người dùng, là người đã đưa ra các lợi thế cho các lỗ hổng trong các ứng dụng Web và thủ tục lưu trữ, để gửi các câu truy vấn trái phép với các quyền đã Lã Huyền Châm - Lớp AT3C 32 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server được nâng cao Sử dụng SQL Injection, ... ứng dụng Khi việc khai thác SQL injection thành công thì kẻ tấn công có thể đọc được dữ liệu nhạy cảm từ cơ sở dữ liệu, sửa Lã Huyền Châm - Lớp AT3C 33 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server đổi dữ liệu trong cơ sở dữ liệu (chèn, cập nhật, xóa), thực hiện các thao tác quản trị trên cơ sở dữ liệu (như tắt hệ quản trị cơ sở dữ liệu), khám phá nội... này không phải là chỉ duy nhất cho SQL Server; tất cả các hệ quản trị cơ sở dữ Lã Huyền Châm - Lớp AT3C 26 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server liệu khác đều gặp phải các giới hạn tượng tự Các cách sắp xếp hệ thống theo yêu cầu của khách hàng thường được sử dụng để giải quyết vấn đề tìm kiếm bằng nhâu và tìm kiếm trong khoảng thường không... số Lã Huyền Châm - Lớp AT3C 15 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server 1.1.1.4 Cấu trúc bảng và cấu trúc dữ liệu chỉ số Một bảng được chứa trong một hoặc nhiều vùng (partition) và mỗi partition chứa các dòng dữ liệu theo cấu trúc heap hoặc cấu trúc chỉ số được bó cụm (clustered index) Các trang của heap và clustered index được quản lý trong một. .. 35 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server Do “ ” là toán tử chú thích SQL, mọi thứ sau nó sẽ bị cơ sở dữ liệu bỏ qua Bởi vậy, kết quả của câu truy vấn là cơ sở dữ liệu thay đổi mật khẩu của người quản trị thành giá trị mà kẻ tấn công chỉ định Kỹ thuật tiêm bậc hai có thể là khó phát hiện và ngăn chặn bởi vì điểm tiêm là khác so với điểm mà tấn. .. tế, một số nhà chế tạo đã đề nghị trong tương lai các sản phẩm có thể không hỗ trợ việc tạo các bản sao mà không được mã hóa 2.2 MỘT SỐ KỸ THUẬT TẤN CÔNG SQL INJECTION 2.2.1 Khái niệm về tấn SQL injection: Một tấn công SQL injection (SQLIA - SQL Injection Attack) bao gồm việc chèn (insertion) hoặc “tiêm” (injection) một truy vấn SQL thông qua dữ liệu đầu vào từ client đến ứng dụng Khi việc khai thác SQL. .. các pool đệm và tồn tại dạng rõ trong bộ nhớ Hệ điều hành có thể phân trang dữ liệu ra ngoài bộ nhớ giống như phần quản lý bộ nhớ Trong quá trình này, dữ liệu được giải mã có thể được ghi ra đĩa Windows và SQL Server có thể cấu hình để ngăn chặn việc này tuy nhiên Lã Huyền Châm - Lớp AT3C 30 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server hiệu năng sẽ bị... 17 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server • • • • • có 1 hoặc nhiều publication, mỗi publication sẽ định nghĩa một tập các đối tượng có quan hệ logic và dữ liệu để nhân bản Distributor: Là một thể hiện cơ sở dữ liệu, đóng vai trò như là nơi lưu trữ cho dữ liệu nhân bản được gắn kết với một hoặc nhiều Publishers Mỗi Publisher được gắn kết với một . Châm Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server HÀ NỘI 2011 Lã Huyền Châm - Lớp AT3C 2 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection. AT3C 9 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server CHƯƠNG I: TỔNG QUAN VỀ AN NINH, AN TOÀN TRONG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MICROSOFT SQL SERVER 1.1 4 Nghiên cứu tìm hiểu một số dạng tấn công SQL Injection vào hệ quản trị CSDL Microsoft SQL Server 3.1.2. Leo thang quyền kiểm soát 58 3.2. XÂY DỰNG CHƯƠNG TRÌNH DEMO THỰC HIỆN TẤN CÔNG SQL INJECTION

Ngày đăng: 25/11/2014, 09:58

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • CÁC TỪ VIẾT TẮT

  • TỪ VIẾT TẮT

  • TIẾNG ANH

  • SQL

  • Structured Query Language

  • TDE

  • Transparent Data Encryption

  • DDL

  • Data Definition Language

  • DEK

  • Database Encryption Key

  • SMK

  • Service Master Key

  • DMK

  • Database Master Key

  • SSL

  • Secure Socket Layer

  • SQLIA

  • Structured Query Language Injection Attack

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

  • Đang cập nhật ...

Tài liệu liên quan