1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khắc phục khuyết điểm kỹ thuật pentesting trong việc phát hiện lỗ hổng bảo mật cơ sở dữ liệu

105 29 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 105
Dung lượng 4,24 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đồng thời chương này cũng trình bày kế hoạch thực hiện luận văn Chương 2: trình bày tổng quan về bảo mật cơ sơ dữ liệu, bao gồm những khái niệm căn bản trong bảo mật, các kiểu tấn côn

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA



          

TRẦN THN QUẾ NGUYỆT

ĐỀ TÀI LUẬN VĂN THẠC SĨ

KHẮC PHỤC KHUYẾT ĐIỂM KỸ THUẬT PENTESTING

TRONG VIỆC PHÁT HIỆN LỖ HỔNG

BẢO MẬT CƠ SỞ DỮ LIỆU

Chuyên ngành: Khoa học máy tính

LUẬN VĂN THẠC SĨ

TP HỒ CHÍ MINH, tháng 8 năm 2010

Trang 2

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

Trang 3

Tp HCM, ngày 19 tháng 08 năm 2010

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: TRẦN THN QUẾ NGUYỆT Phái: Nữ

Ngày tháng năm sinh: 05/10/1985 Nơi sinh: Tp.HCM

Chuyên ngành: Khoa học Máy tính MSHV: 00708697

I- TÊN ĐỀ TÀI: KHẮC PHỤC KHUYẾT ĐIỂM KỸ THUẬT PENETRATION

TESTING (PENTESTING) TRONG VIỆC PHÁT HIỆN LỖ HỔNG BẢO MẬT CƠ SỞ

DỮ LIỆU

II- NHIỆM VỤ VÀ NỘI DUNG:

- Tìm hiểu về kỹ thuật penetration testing, áp dụng trong việc phát hiện lỗ hổng bảo mật cơ sở dữ liệu

- Phân tích và đánh giá những khuyết điểm của kỹ thuật penetration testing trong việc phát hiện lỗ hổng bảo mật cơ sở dữ liệu

- Nghiên cứu và đề xuất mô hình phát hiển lỗ hổng bảo mật cơ sở dữ liệu an toàn Hiện thực và thử nghiệm

III- NGÀY GIAO NHIỆM VỤ:

IV- NGÀY HOÀN THÀNH NHIỆM VỤ:

Trang 4

LỜI CẢM ƠN

Tôi xin chân thành cảm ơn sự giúp đỡ và hướng dẫn của TS Đặng Trần Khánh trong suốt thời gian quan Đồng thời, tôi cũng xin chân thành cảm ơn các anh em và đồng nghiệp trong nhóm ASIS Lab đã tạo điều kiện cho tôi hoàn thành công việc nghiên cứu này

Bên cạnh đó, tôi không thể nào quên được sự giúp đỡ chân thành và nhiệt tình nhất mà

GS Pierre Kuonen và TS Houda Chabbi Drissi đã dành cho tôi trong suốt 5 tháng thực tập tại trường HES-SO, Thuỵ Sĩ

Trang 5

TÓM TẮT LUẬN VĂN

Kỹ thuật penetration testing (pentesting) là một kỹ thuật giả lập tấn công nhằm phát hiện các lỗ hổng bảo mật trong các hệ thống Ngày nay, kỹ thuật này được sử dụng phổ biến trong các công cụ dò tìm và phát hiện chính xác các lỗ hổng bảo mật Tuy nhiên, đây là một kỹ thuật có thể giả lập các loại tấn công và giả lập bất kì người dùng nào trong hệ thống nên đã mang lại nhiều mối đe doạ và nguy hiểm cho hệ thống nếu không được sử dụng một cách an toàn

Đề tài sẽ tập trung vào việc nghiên cứu kỹ thuật pentesting trong việc phát hiện lỗ hổng bảo mật cho cơ sở dữ liệu, tìm hiểu và phân tích những khuyết điểm cũng như những mối nguy hiểm mà phương pháp này mang lại Hơn nữa, làm thế nào để xây dựng một

giải pháp tổng thể phát hiện các lỗ hổng bảo mật cơ sở dữ liệu, bảo đảm sự an toàn và tin tưởng cho người sử dụng là mục tiêu của luận văn này

Nội dung của cuốn luận văn được trình bày như sau:

 Chương 1: giới thiệu về đề tài, giới hạn và mục tiêu của đề tại Đồng thời

chương này cũng trình bày kế hoạch thực hiện luận văn

 Chương 2: trình bày tổng quan về bảo mật cơ sơ dữ liệu, bao gồm những khái

niệm căn bản trong bảo mật, các kiểu tấn công vào cơ sở dữ liệu, các loại lỗ hổng bảo mật cơ sở dữ liệu

 Chương 3: trình bày kỹ thuật pentesting

 Chương 4: phân tích đề tài, đưa ra các khuyết điểm và rủi ro của kỹ thuật

pentesting, cũng như trình bày giải pháp đề nghị

 Chương 5: trình bày phương pháp luận, một mô hình tổng quát khi sử dụng kỹ

thuật pentesting trong việc phát hiện lỗ hổng bảo mật cơ sở dữ liệu

 Chương 6: đưa ra mô hình hiện thực chi tiết, phân tích và thiết kế bản mẫu

 Chương 8: kết luận và đánh giá

 Phụ lục: danh mục các bài báo từ kết quả nghiên cứu này

Trang 6

MỤC LỤC

LỜI CẢM ƠN i

TÓM TẮT LUẬN VĂN ii

MỤC LỤC iii

MỤC LỤC HÌNH vi

Chương 1: Giới thiệu đề tài 1

1.1 Đặt vấn đề 1

1.2 Giới thiệu đề tài 2

1.2.1 Tên đề tài 2

1.2.2 Giới hạn đề tài 2

1.2.3 Mục đích đề tài 2

1.2.4 Ý nghĩa khoa học và thực tiễn của đề tài 3

Chươ ng 2: Tổng quan về bảo mật cơ sở dữ liệu 5

2.1 Các yêu cầu cơ bản trong bảo mật cơ sở dữ liệu 5

2.1.1 Tính bí mật (Confidentiality hay Secrecy) 5

2.1.2 Tính toàn vẹn (Integrity) 6

2.1.3 Tính sẵn sàng (Availability) 6

2.1.4 Tính chống thoái thác (Non-repudiation) 7

2.2 Các kiểu tấn công vào cơ sở dữ liệu 7

2.2.1 Tổng quan về phân loại tấn công cơ sở dữ liệu 7

2.2.2 Unauthorized access 10

2.2.3 SQL Injection 13

2.2.4 Trì hoãn dịch vụ (Denial of service) 15

2.2.5 Khai thác các dịch vụ và chức năng thừa của hệ cơ sở dữ liệu 15

2.2.6 Hướng tới các lỗ hổng cơ sở dữ liệu đã công bố bản vá 15

2.3 Các lỗ hổng bảo mật cơ sở dữ liệu 16

2.3.1 Định nghĩa lỗ hổng bảo mật 16

2.3.2 Phân loại lỗ hổng bảo mật 16

Chương 3: Kỹ thuật pentesting 20

3.1 Giới thiệu 20

Trang 7

3.2 Các bước trong pentesting 20

3.3 Phân loại pentesting 21

3.4 Minh họa pentesting 23

3.5 Ưu điểm và khuyết điểm 25

Chươ ng 4: Phân tích đề tài 26

4.1 Các vấn đề bảo mật khi sử dụng kỹ thuật pentesting trong việc phát hiện các lỗ hổng bảo mật CSDL 26

4.1.1 Tính tin cậy (Confidentiality) 26

4.1.2 Tính nguyên vẹn (Integrity) 26

4.1.3 Tính sẵn sàng (Availability) 27

4.1.4 Khả năng chống thoái thác (Non-repudiation) 27

4.2 Giải pháp đề nghị 28

Chươ ng 5: Phương pháp luận sử dụng Penetration Testing trong bảo mật cơ sở dữ liệu 30

5.1 Phân tách nhiệm vụ (separation of duties) 30

5.2 Phương pháp luận tổng quát 32

5.3 Các chính sách yêu cầu 35

Chươ ng 6: Phân tích và thiết kế bản mẫu 37

6.1 Kiến trúc tổng quan 37

6.2 Kiến trúc chi tiết 40

6.2.1 Phần đặc tả quá trình pentesting 40

6.2.2 Phần thực thi pentesting 43

6.2.3 Phần hiển thị trực quan 48

6.3 Các lược đồ phân tích và thiết kế 48

6.3.1 Lược đồ Usecase 48

6.3.2 Lược đồ tuần tự 58

6.3.3 Lược đồ class thiết kế 64

6.3.4 Sơ đồ ERD 66

Chươ ng 7: Demo 67

7.1 Form login 67

7.2 Form thiết lập luật scanning 68

7.3 Form thiết lập luật verifying 69

Trang 8

7.4 Form thiết lập chính sách monitor 70

7.5 Form chọn danh sách lỗ hổng để quét 71

7.6 Form mô tả quá trình quét lỗ hổng 72

7.7 Form mô tả quá trình quét lỗ hổng bị xâm phạm luật 75

Chươ ng 8: Đánh giá đề tài và tổng kết 76

8.1 Đánh giá đề tài 76

8.2 Tổng kết 77

8.2.1 Ưu điểm 77

8.2.2 Khuyết điểm 77

Tài liệu tham khảo 79

Danh mục các bài báo 81

1 Towards a side –effect free Database Penetration Testing, tại hội nghị MIST 2010, Morioka, Nhật Bản, đăng trên tạp chí JoWua tháng 6, 2010 81

2 A Holistic Solution to Verify and Monitor Penetration Test Processes in Detection of Database Security Flaws, tại hội nghị ACOMP 2010 (03/2010), TP.Hồ Chí Minh, Việt Nam 81

3 Problems Of Using Penetration Testing For Detecting Database Security Flaws, tại hội thảo Khoa học và Công nghệ lần 11 (10/2009), tại trường Đại học Bách Khoa TP.HCM 81

4 Detecting, Monitoring and Preventing Database Security Breaches in Housing-Based Outsourcing Model, trình bày tại hội nghị HPSC 2009, Hà Nội, Việt Nam Phụ lục 81

Phụ lục 82

Bài báo “Towards a side –effect free Database Penetration Testing” tại hội nghị MIST 2010, Morioka, Nhật Bản, đăng tại tạp chí JoWua, tháng 6/2010 82

Trang 9

MỤC LỤC HÌNH

Hình 2.1: Các tính chất của bảo mật cơ sở dữ liệu 5

Hình 2.2: Phân loại lỗ hổng bảo mật cơ sở dữ liệu 17

Hình 3.1: Các bước pentesting 20

Hình 3.2: Phân loại pentesting 22

Hình 5.1: Phương pháp luận Penetration Testing 33

Hình 6.1: Kiến trúc tổng quát 38

Hình 6.2: Chi tiết lớp Penetration Testing Engine 40

Hình 6.3: Phần thực thi pentesting 44

Hình 6.4: Module script generator 45

Hình 6.5: Chèn code ghi nhận thông tin kết nối 47

Hình 6 6: UC Pentester 49

Hình 6.7: UC Policy_user 51

Hình 6.8: UC Testing_user 54

Hình 6.9: Lược đồ trình tự cho quá trình đặc tả 58

Hình 6.10: Lược đồ trình tự cho quá trình định nghĩa rule báo động 60

Hình 6.11: Lược đồ tuần tự cho quá trình quét lỗ hổng 62

Hình 6.12: Lược đồ trình tự cho quá trình khôi phục 63

Hình 6.13: Sơ đồ class thiết kế 65

Hình 6.14: Sơ đồ ERD 66

Hình 7.1: Form login 67

Hình 7.2: Thanh menu chức năng 67

Hình 7.3: Form thiết lập luật scanning 68

Hình 7.4: Form thiết lập luật verifying 69

Hình 7.5: Form thiết lập chính sách monitor 70

Hình 7.6: Form danh sách lỗ hổng 71

Hình 7.7: Quá trình quét lỗ hổng 72

Hình 7.8: Code bảo vệ truy xuất đối tượng bên ngoài 73

Hình 7.9: Sự ngăn cản truy xuất bên ngoài 73

Hình 7.10: Phát hiện sự truy xuất đồng thời 74

Hình 7.11: Session đã bị huỷ 74

Hình 7.12: Luật scanning báo động 75

Hình 7.13: Luật verifying báo động 75

Trang 10

Chương 1: Giới thiệu đề tài

Trong những năm gần đây, sự phát triển nhanh chóng của ngành công nghệ thông tin

đã kéo theo việc sử dụng rộng rãi máy tính trong tất cả các lĩnh vực, từ những máy tính

gia đình đến những hệ thống máy tính lớn trong các doanh nghiệp, ngân hàng, bệnh viện Điều này cũng có nghĩa là ngày càng có nhiều dữ liệu được lưu trữ và quản lý bởi các

hệ thống máy tính

Những dữ liệu trong các hệ thống máy tính này ảnh hưởng hầu hết đến mọi khía cạnh của đời sống của con người Nó đặc biệt quan trọng trong các lĩnh vực nhạy cảm như chính trị, kinh tế Ví dụ như những tài liệu quân sự của một quốc gia, danh sách về khách hàng của một doanh nghiệp, thông tin cá nhân của một người … Dữ liệu càng quan trọng thì càng có giá trị và càng hấp dẫn những hacker (kẻ tấn công) Do đó việc bảo mật những thông tin này là một yêu cầu rất quan trọng

Ngày nay, khoa học máy tính phát triển đã hỗ trợ rất nhiều cho việc bảo vệ những dữ liệu quý giá Tuy nhiên, nó cũng đồng thời được các hacker lợi dụng để tấn công vào các

hệ cơ sở dữ liệu hiệu quả và nhanh chóng hơn Vì thế, việc bảo vệ dữ liệu không chỉ nhờ những kỹ thuật mới nhất mà quan trọng hơn là nhờ vào sự quản lý hiệu quả của con người Hệ cơ sở dữ liệu an toàn nhất chính là hệ cơ sở dữ liệu mà người quản trị hệ thống hiểu rõ về nó nhất Việc biết được các lỗ hổng bảo mật của hệ cơ sở dữ liệu sẽ giúp cho người quản trị hệ thống có thể ngăn chặn, khắc phục và bảo vệ hệ thống một cách tốt nhất

Có rất nhiều kỹ thuật được sử dụng để phát hiện lỗ hổng bảo mật trong hệ cở sở dữ liệu trong đó pentesting [3, 4, 5, 6] là một kỹ thuật được sử dụng để đánh giá hệ thống bảo mật cở sở dữ liệu bẳng cách giả lập tấn công vào hệ thống Nếu như việc tấn công thành công điều này có nghĩa là chắc chắn tồn tại lỗ hổng tương ứng trong hệ cơ sở dữ liệu Do đó kỹ thuật này được sử dụng phổ biến trong việc kiểm tra tình trạng sức khỏe của hệ cơ sở dữ liệu bởi tính đơn giản, hiệu quả và chắc chắn sự tồn tại lỗ hổng của nó

Trang 11

Tuy nhiên, đây là một kỹ thuật giả lập tấn công cho nên kỹ thuật này đã để lại một số những nguy hiểm không nhỏ đối với hệ thống nếu không được kiểm soát tốt Việc giả lập tấn công đòi hỏi hệ thống phải được giữ nguyên vẹn như trước khi tấn công Hơn nữa, việc sử dụng các công cụ automated pentesting [2] sinh ra nhiều mối đe dọa khác như tính lây lan hoặc phát sinh các lỗ hổng do các script phát hiện, tính an toàn của hệ cơ sở

dữ liệu khi bị thu thập thông tin cho việc quét lỗ hổng Do đó, đề tài này sẽ đi sâu vào nghiên cứu kỹ thuật pentesting và đưa ra một framework để kiểm soát và khắc phục những khuyết điểm khi sử dụng pentesting trong việc phát hiện các lỗ hổng bảo mật cơ sở

Đề tài chỉ nghiên cứu về kỹ thuật pentesting trong việc tìm kiếm lỗ hổng bảo mật cơ

sở dữ liệu và đưa ra giải pháp cũng như một framework để bảo đảm sự an toàn cho hệ cơ

sở dữ liệu khi sử dụng kỹ thuật pentesting trong việc phát hiện lỗ hổng bảo mật cơ sở dữ liệu Đề tài không mở rộng cho việc nghiên cứu kỹ thuật pentesting trong network, web application, software hay hệ điều hành

1.2.3 Mục đích đề tài

Kỹ thuật pentesting được sử dụng rất phổ biến trong việc phát hiện các lỗ hổng bảo mật cơ sở dữ liệu Tuy nhiên kỹ thuật này đã để lại một số khuyết điểm và có thể làm ảnh hưởng ngược trở lại tới tính bảo mật của hệ cơ sở dữ liệu đang sử dụng Do đó, mục đích của đề tài nghiên cứu này là đưa ra giải pháp và xây dựng một framework để bảo đảm tính an toàn, khắc phục các hiệu ứng lề cho hệ cơ sở dữ liệu đang sử dụng kỹ thuật pentesting để phát hiện các lỗ hổng bảo mật Mục tiêu xa hơn của đề tài là tích hợp tính năng này vào các hệ thống automated pentesting

Trang 12

1.2.4 Ý nghĩa khoa học và thực tiễn của đề tài

Bảo mật hệ cơ sở dữ liệu là một việc rất quan trọng vì dữ liệu vô cùng quý giá đối với các tổ chức, công ty, … Việc sử dụng các kỹ thuật, các công cụ để phát hiện các lỗ hổng bảo mật đang tồn tại trong hệ cơ sở dữ liệu là một trách nhiệm không thể bỏ qua của các quản trị cơ sở dữ liệu Trong đó, pentesting là một kỹ thuật sử dụng rộng rãi nhất và cũng

được triển khai thành các công cụ dò tìm lỗ hổng tự động Tuy nhiên, việc sử dụng các

công cụ, các kỹ thuật như pentesting để giả lập tấn công vào hệ thống có bảo đảm tính tin cậy và an toàn cho hệ thống hay không vẫn còn là một hướng nghiên cứu mở Pentesting

đã được sử dụng rộng rãi trong các lĩnh vực khác như network pentesting, wireless

pentesting, physical security pentesting, software pentesting, application pentesting Nhưng việc áp dụng kỹ thuật này trong lĩnh vực bảo mật cơ sở dữ liệu còn chưa được khai thác hết cũng như chưa được quan tâm đến những hiệu ứng lề hay các rủi ro mà nó

có thể gây ra cho hệ cơ sở dữ liệu Do đó, đề tài này có ý nghĩa về mặt khoa học và thực tiễn như sau:

pentesting để phát hiện lỗ hổng bảo mật cơ sở dữ liệu, tạo cơ sở cho việc phát triển một hệ thống quét lỗ hổng sử dụng kỹ thuật này một cách an toàn cho hệ

cơ sở dữ liệu người dùng

Ý nghĩa thực tiễn:

- Khắc phục, hỗ trợ kỹ thuật pentesting, tăng độ tin cậy khi sử dụng kỹ thuật pentesting để phát hiện lỗ hổng bảo mật cơ sở dữ liệu, cũng như tăng độ tin cậy cho người dùng khi sử dụng các sản phNm quét lỗ hổng cơ sở dữ liệu dùng kỹ thuật pentesting nếu có áp dụng các giải pháp được đề nghị trong hệ phương pháp mà đề tài đưa ra

Trang 13

- Tăng tính an toàn cho hệ cơ sở dữ liệu khi sử dụng các công cụ dò tìm lỗ hổng bằng kỹ thuật pentesting Vì vậy, các tổ chức có thể quét lỗ hổng và quan sát quá trình quét trực tiếp trên hệ cơ sở dữ thực của họ, giảm chi phí tạo bản sao

và tăng tính “thực” khi dò tìm lỗ hổng

bảo mật cơ sở dữ liệu cho Oracle, và áp dụng một số phương pháp đề nghị

Trang 14

Chươ ng 2: Tổng quan về bảo mật cơ sở dữ liệu

Chương này sẽ trình bày một cách tổng quan về bảo mật cơ sở dữ liệu, bao gồm các yêu cầu cơ bản trong bảo mật cơ sở dữ liệu, các kiểu tấn công, và các lỗ hổng bảo mật cơ

sở dữ liệu

Bảo mật thông tin trong cơ sở dữ liệu liên quan đến việc đảm bảo dữ liệu an toàn ở ba khía cạnh sau: tính bí mật (confidentiality hay secrecy), tính toàn vẹn (integrity) và tính sẵn sàng (availability) Tuy nhiên, còn một khía cạnh khác cần phải quan tâm khi hiện thực một hệ thống bảo mật cơ sở dữ liệu, đó chính là tính chống thoái thác (non-repudiation) Do đó, các yêu cầu bảo mật cơ sở dữ liệu bao gồm cả bốn tính chất trên Hình 2.1 sẽ chỉ rõ các tính chất của bảo mật cơ sở dữ liệu

Hình 2.1: Các tính chất của bảo mật cơ sở dữ liệu

2.1.1 Tính bí mật (Confidentiality hay Secrecy)

Bảo đảm tính bí mật cho dữ liệu là việc bảo vệ dữ liệu không bị xem bởi những người không có quyền Đây là một tính chất quan trọng trong bảo mật dữ liệu

Ví dụ, trong hệ thống ngân hàng, tính bí mật được thể hiện ở việc một người chỉ có thể xem thông tin tài khoản của mình mà không được biết thông tin tài khoản của người khác

Cơ chế để đảm bảo tính bí mật của dữ liệu là cơ chế điều khiển truy cập (access control mechanism) Điều khiển truy cập được dùng để giới hạn việc truy cập của người dùng vào dữ liệu của hệ thống Các cách để điều khiển truy cập là mã hóa (cryptography)

và thNm định quyền và quyền hạn (Authentication and Authorization)

Database security

Trang 15

Mã hóa là làm cho dữ liệu trở thành dạng không thể hiểu được, chỉ những người có quyền mới có khóa để giải mã

ThNm định quyền và quyền hạn là việc xác định đúng người sử dụng có quyền truy cập vào cơ sở dữ liệu và xác định đúng quyền của người sử dụng đó ThNm định quyền (authentication) là yêu cầu người sử dụng phải cung cấp những bằng chứng (ví dụ như chữ ký, dấu vân tay, username, password,…) để xác thực mình là người có quyền truy cập vào hệ thống Quyền hạn (authorization) liên quan đến việc xác định một người sử dụng hợp pháp (đã qua được bước authentication) có những quyền nào đối với cơ sở dữ liệu, các quyền là quyền xem, xóa, chỉnh sửa dữ liệu, và còn nhiều quyền khác nữa

Cơ chế ngăn chặn (prevention mechanism) duy trì tính toàn vẹn bằng cách chặn đứng (block) mọi hoạt động được cho là bất hợp pháp nhằm thay đổi dữ liệu Còn cơ chế phát hiện (detection mechanism) thì không cố gắng ngăn chặn những sự thay đổi dữ liệu bất hợp pháp mà chỉ đơn giản là báo cáo lại với người quản trị hay người dùng là dữ liệu nào

đã có thay đổi và không còn đúng nữa

Trang 16

Một trong những cơ chế thường dùng để giữ tính sẵn sàng là cơ chế dư thừa (redundance mechanism) Dữ liệu được lưu trữ dư thừa ở nhiều nơi nhằm tăng hiệu quả phục vụ, cũng như đảm bảo tính sẵn sàng vì khi có lỗi xảy ra ở một nơi thì vẫn còn những nơi khác phục vụ

2.1.4 Tính chống thoái thác (Non-repudiation)

Bảo đảm tính chống thoái thác (Non-repudiation) là khả năng ngăn chặn việc thoái thác một hành động đã làm, là khả năng chứng minh được nguồn gốc (ai, khi nào, làm gì) của những giao tác đã thực hiện

Ví dụ, trong hệ thống ngân hàng, hệ thống có khả năng cung cấp những chứng cứ chứng minh được là khách hàng đã thực hiện giao dịch hay chưa

Cơ chế để đảm bảo tính chống thoái thác thì có cơ chế ghi nhận lại (logging/audit mechanism) và chữ ký điện tử Cơ chế ghi nhận lại như là một cuốn nhật ký ghi nhận lại những hành động xảy ra trong hệ thống Chữ ký điện tử cho phép chứng minh được rằng người đã ký vào một đối tượng nào đó sẽ không phủ nhận được hành động đã ký đó

Đề tài này với mục đích xây dựng framework bảo đảm tính an toàn cho hệ thống khi

sử dụng kỹ thuật pentesting dựa trên bốn yêu cầu cơ bản trên của hệ thống bảo mật cơ sở

dữ liệu

Phạm vi bảo mật cơ sở dữ liệu không chỉ tập trung vào việc bảo vệ các bảng dữ liệu hay chỉ bản thân cơ sở dữ liệu đó Điều này sẽ không bảo đảm rằng cơ sở dữ liệu không

bị tổn hại Bởi vì dù cơ sở dữ liệu được quan tâm nhưng khi nó được đặt trong một môi trường không an toàn thì cơ sở dữ liệu đó cũng không được đảm bảo an toàn Vì vậy, trong phần trình bày sau sẽ cho biết cơ sở dữ liệu sẽ bị tấn công và tổn hại như thế nào thông qua nhiều cách thức khác nhau và điều này cũng phụ thuộc vào những môi trường

mà cơ sở dữ liệu giao tiếp như hệ điều hành, mạng, hay các ứng dụng

Tấn công là một mối đe dọa có chủ tâm và là một hành động được thực hiện với âm mưu phá vỡ tính an toàn và bảo mật của hệ thống Hậu quả của hành động tấn công đó có

Trang 17

thể gây nên sự sụp đổ server cơ sở dữ liệu, hay hiệu chỉnh, đánh cắp, làm sai lệch dữ liệu, hoặc ảnh hưởng đến tính sẵn sang của dữ liệu, … làm vi phạm bốn tính chất của một hệ thống bảo mật như đã trình bày ở trên

Các cách tấn công vào hệ thống nói chung, vào cơ sở dữ liệu nói riêng rất đa dạng Tuy nhiên, nhìn chung các kiểu tấn công vào cơ sở dữ liệu có thể được phân thành 2 loại chính yếu sau [17]:

- Loại tấn công trực tiếp vào các dữ liệu và tài nguyên, khai thác những điểm yếu của hệ cơ sở dữ liệu và gây ảnh hưởng trực tiếp đến hệ cơ sở dữ liệu

- Loại tấn công gián tiếp vào các dữ liệu và tài nguyên, thông tin được suy diễn

từ dữ liệu hay tài nguyên được phép truy xuất Tấn công gián tiếp thường được suy diễn thông qua những câu hỏi/câu truy vấn tới cơ sở dữ liệu hoặc thông qua các kênh truyền ngầm

Trong loại đầu tiên người ta thường chia làm 2 loại nữa Loại tấn công bằng cách sử dụng các kỹ thuật phổ biến như Brute Force, SQL Injection, hay Denial of service [17,

18, 19] SQL Injection là một kỹ thuật tiêm vào các câu SQL những đoạn mã độc hại để thực hiện mưu đồ của mình Denial of service là một kiểu tấn công ngăn chặn hay làm trì hoãn một dịch vụ nào đó từ người yêu cầu Brute Force là một cách tấn công vào một hệ thống bảo mật với một số lượng lớn các lần thử ví dụ như thử một số lượng các pasword

để dò tìm ra password Một hình thức tấn công nữa là đánh cắp các thiết bị phần cứng

chứa dữ liệu.Ví dụ, chứa một bảng backup dữ liệu trên máy laptop và một người nào đó

đánh cắp máy laptop

Loại còn lại tấn công vào cơ sở dữ liệu đơn giản hơn do chính cơ sở dữ liệu đó không

được thiết lập các cấu hình, chính sách an toàn Ví dụ như các tài khoản mặc định vẫn

chưa được thiết lập lại, hay các thông số cấu hình nhạy cảm vẫn được giữ giá trị mặc

định Các admin không am hiểu tốt về cấu hình hệ cơ sở dữ liệu của mình, cũng như

không theo dõi các lỗ hổng do nhà cung cấp công bố và cập nhật các bản vá kịp thời Nhìn ở một khía cạnh khác, các cách tấn công cũng có thể phân loại theo hướng tấn công, tấn công từ bên trong (internal) và tấn công từ bên ngoài (external) [17, 20]

Trang 18

- Tấn công từ bên trong 80% được thực hiện từ những người trong công ty có chủ ý xấu đã lợi dùng quyền hoặc nắm được những điểm yếu của hệ thống để phá hoại Đa số những người này thường làm ở những vị trí nhạy cảm và quan trọng trong công ty như DBA, quản lý, … nhưng sau đó bị sa thải hay xuống chức 65% những lỗi do tấn công từ bên trong không phát hiện được [21]

- Tấn công từ bên ngoài thường do các hacker bên ngoài thực hiện Các hacker này chủ yếu lợi dụng vào những lỗ hổng cơ sở dữ liệu được thông báo thường

kì của các nhà cung cấp DBMS để lấy cắp dữ liệu hay phá hoại làm ngưng trệ

hệ thống Các con sâu (worm) hay virus cũng được xếp vào loại tấn công từ bên ngoài

Ngoài ra người ta còn chia các cách tấn công theo 2 loại active và passive attack [19]

- Passive attack là loại tấn công trong đó người thực hiện không có quyền nhưng vẫn lấy được quyền truy xuất đến dữ liệu quý giá nhưng không ảnh hưởng đến nội dung của nó ví dụ như nghe lén hay theo dõi hệ thống đang thực hiện các công việc và thu thập những thông tin đó Việc theo dõi các lưu lượng mạng (network traffic), việc sử dụng CPU hay disk, việc theo dõi sự truy xuất của hệ thống cũng là một dạng passive attack Nhìn chung, loại tấn công này khó phát hiện vì nó không ảnh hưởng hay tương tác với hệ thống

- Active attack là loại tấn công làm thay đổi hệ thống bằng cách nào đó Ví dụ như có thể thêm dữ liệu mới, hiệu chỉnh hay xóa bỏ dữ liệu đang tồn tại trong

cơ sở dữ liệu Một thao tác đơn giản như hiệu chỉnh lại tín hiệu trả về negative acknowledgment (NACK) từ database server thành positive acknowledgement (ACK) cũng đã gây ra nhiều phiền toán cho hệ cơ sở dữ liệu So với passive attack, thì active attack dễ dàng phát hiện hơn nếu hệ thống có trang bị những biện pháp phòng chống và bảo vệ chính xác

Trong những phần trình bày sau chỉ giới thiệu các tấn công cơ sở dữ liệu phổ biến trong đó có các cách tấn công phổ biến của hacker hiện nay mà Kelly J H đã thống kê năm 2008 [22]

Trang 19

2.2.2 Unauthorized access

Truy xuất trái phép là khi một người nào đó không được phép nhưng vẫn lấy được quyền truy xuất thông qua các cách tấn công như brute force hay một số phương tiện khác

• Brute Force Attacks

Đây là một cách tấn công không chỉ giới hạn cho bảo mật cơ sở dữ liệu mà còn cho

các lĩnh vực khác bằng cách sử dụng các phương pháp thử - sai thường được sử dụng để

đoán username, password, số thẻ tín dụng hay khóa mật mã Ví dụ như để đoán các

password của tài khoản nào đó, hacker sẽ cố thử từng trường hợp có thể Nói chung, các hacker có thể sử dụng cách tấn công brute force bằng các hình thức sau:

- Cố gắng login bằng tay bằng cách gõ thử một vài username và password

- Kết hợp dựa trên từ điển dữ liệu, các script hay chương trình tự động thử với hàng ngàn username và password từ file từ điển dữ liệu

- Chương trình crack sẽ tự sinh ra random các username hoặc/và các password bằng cách kết hợp các kí tự chữ và số với nhau hay các cách kết hợp khác Brute force có thể được thực hiện dựa trên một số kiến thức biết trước về hệ thống để tăng thời gian thực hiện hay giảm số lần thử Ví dụ, password dự đoán có chứa tên username hoặc có liên quan đến thông tin của user như nơi sinh, ngày sinh, tên cha mẹ, tên công ty, hoặc các password mặc định …

Một số biện pháp có thể được dùng để hạn chế tấn công brute force như sau:

- Hạn chế số lần đăng nhập thất bại

- Cấm một địa chỉ IP nào đó sau nhiều lần đăng nhập không thành công

- Theo dõi log file đối với những lần truy xuất đáng nghi ngờ

• Lợi dụng các password mặc định

Trong nhiều hệ cơ sở dữ liệu, các password mặc định cho một số username hay account đã biết vẫn tồn tại mà không được các quản trị cơ sở dữ liệu thay đổi Những password mặc định này tồn tại trong hệ thống phụ thuộc vào cấu hình mặc định, version cài đặt hay những quy định password đến tài khoản user Lợi dụng những password mặc

định này (các thông tin password mặc định thường được công bố trong các sản phNm, ví

Trang 20

dụ như Oracle), các hacker sử dụng một từ điển dữ liệu lưu trữ các password mặc định đó

để dò tìm những tài khoản nào đang sử dụng Có rất nhiều công cụ tiện ích, những đoạn

script để dò tìm những password mặc định và tài khoản tương ứng [12, 13]

• Chứng thực yếu và sự cho phép lỏng lẽo

Chứng thực yếu là vấn đề bảo mật khá rộng ảnh hưởng tới nhiều loại ứng dụng có liên quan đến chứng thực user không chỉ riêng cơ sở dữ liệu Chứng thực yếu nghĩa là người ngoài dễ dàng suy đoán và vượt qua được cách chứng thực đó Chẳng hạn, một username

và password không mạnh và dễ dàng đoán Ví dụ, một công ty nào đó quy định đặt tên username và password theo một mẫu nào đó Như vậy tạo điều kiện thuận lợi cho hacker thực hiện việc tìm ra password nhanh chóng hơn

Sự cho phép lỏng lẽo nghĩa là khi tài nguyên nào đó sẵn có cho mọi người và thông tin có thể lấy được một cách công khai Điều này cho phép hacker nhiều thuận lợi trong khi tìm cách tấn công vào cơ sở dữ liệu Một vài hệ cơ sở dữ liệu cho phép truy xuất tới các bảng dữ liệu nhạy cảm một cách lõng lẻo Ví dụ như Oracle cho phép quyền truy xuất tới view ALL_USERS tới đối tượng PUBLIC (nghĩa là user nào cũng được phép xem thông tin trên bảng đó) [23], như vậy thông tin username trong cơ sở dữ liệu rất dễ biết

được Một ví dụ nữa là sự cho phép lỏng lẽo do Microsoft Windows XP khi dịch vụ

simple file sharing được bật lên Xét trường hợp một user đang chạy XP trên một máy tính, một database server được cài đặt cục bộ và simple file sharing được bật lện Khi simple file sharing được bật lên trên một máy tính, truy xuất được gán cho tài khoản guest thay vì phải cung cấp một username/password hợp lệ Trong Windows, nếu một user là thành viên của nhóm ORA_DBA (một nhóm mặc định sinh ra trong hệ điều hành khi cài đặt Oracle) vậy thì khi connect đến server như một SYSDBA thì không cần phải cung cấp một password cho user SYS (chứng thực thông qua hệ điều hành – connect as SYSDBA) Oracle sử dụng hàm AcceptSecurityContext() để kiểm tra quá trình login, nếu username và password được cung cấp hợp lệ thì hàm sẽ trả về thành công Tuy nhiên, nếu dịch vụ simple file sharing được bật lên thì tất cả các logon đều thành công vì user sẽ

được chứng thực như một user guest Nhưng Oracle không nhận ra guest và chứng thực

Trang 21

user đó với bất kì username nào được cung cấp Do đó, nếu remote user cung cấp một username hợp lệ trong nhóm ORA_DBA vậy thì Oracle sẽ chứng thực user đó và đưa cho

họ quyền SYSDBA Cho nên, một user guest lúc này có quyền truy xuất SYSDBA mà không phải cung cấp một password nào Tóm lại, tất cả những gì kẻ tấn công cần là biết

được tên của một thành viên trong nhóm ORA_DBA, và họ có thể login với quyền truy

xuất SYSDBA mà không cần phải cung cấp password [8]

• Vượt quyền

Vượt quyền là trường hợp khi một user có quyền nào đó nhưng do khai thác các lỗ hổng hay điểm yếu của cơ sở dữ liệu nên đã đạt được quyền cao hơn Kẻ tấn công vượt quyền của họ bằng nhiều cách khác nhau nhưng một kịch bản điển hình là thông qua buffer overflow, SQL injection hay thông qua những môi trường khác như ứng dụng, mạng, hệ điều hành để vượt quyền cơ sở dữ liệu [7] Một đặc điểm chính của cách tấn công vượt quyền là kẻ tấn công phải có trước một số quyền nào đó mới dùng các phương tiện để vượt quyền của mình

Thường những điểm yếu mà kẻ tấn công có thể lợi dụng để vượt quyền được công bố Một ví dụ được tìm thấy trong mySQL là một user có quyền truy xuất đến một database nào đó nhưng không có quyền tạo cơ sở dữ liệu khác Tuy nhiên điểm yếu ở đây là mySQL lại cho phép user đó tạo cơ sở dữ liệu khác cùng tên với cơ sở dữ liệu hiện tại nhưng khác kí tự in hoa/thường [24]

Có rất nhiều trường hợp vượt quyền khác do điểm yếu của chính bên trong hệ quản trị

cơ sở dữ liệu đã được công bố bởi các nhà cung cấp cơ sở dữ liệu như Oracle, mySQL, SQL Server … Một số khác có thể do cấu hình nhầm (misconfiguration), một user được gán quyền nhiều hơn quyền mà nó thực sự cần Lỗi này thường do DBA không có đủ kiến thức cũng như công ty không có một chính sách bảo mật rõ ràng về ai có thể làm những gì để gán quyền tối thiểu cho user Ngoài ra vẫn còn tồn tại những cách vượt quyền khác chưa được phát hiện và sửa chữa

Trang 22

kẻ tấn công có thể thực hiện các thao tác xóa, hiệu chỉnh, … do có toàn quyền trên cơ sở

dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy Lỗi này thường xảy

ra trên các ứng dụng web có dữ liệu được quản lí bằng các hệ quản trị cơ sở dữ liệu như SQL Server, MySQL, Oracle, DB2, Sysbase

Câu query như sau:

Select * FROM Users_Table WHERE UserName= ‘Paul’ AND Password= ‘password’

Mặc dù vậy nếu người dùng gõ vào ô gõ username là: ‘Or 1=1

Câu query trở thành:

SELECT * FROM Users_Table WHERE UserName='' Or 1=1 ' AND Password=''

Vậy thì người dùng được phép vào hệ thống mà không cần biết chính xác password

Để hạn chế việc tấn công bằng SQL Injection, cần phải bảo vệ các câu lệnh SQL bằng

cách kiểm soát chặt chẽ tất cả các dữ liệu nhập nhận được từ đối tượng Request (Request, Request.QueryString, Request.Form, Request.Cookies, and Request.ServerVariables) Ví

dụ, có thể giới hạn chiều dài của chuỗi nhập liệu, hoặc xây dựng hàm EscapeQuotes để thay thế các dấu nháy đơn bằng 2 dấu nháy đơn ví dụ như:

<%

Trang 23

Trong database, SQL Injection thường xuất hiện khi kẻ tấn công có quyền thực thi một procedure hay function nào đó trong cơ sở dữ liệu Kẻ tấn công lợi dụng việc hiện thực các procedure/function đó bị lỗi, tiêm các đoạn mã độc hại vào tham số truyền Điều

đó dẫn đến khi thực thi procedure/function đó, đoạn mã độc hại cũng được thực thi và vì

vậy kẻ tấn công có thể thực hiện được mưu đồ của mình [7, 8]

Ví dụ, kẻ tấn công tạo một hàm ATTACK_FUNC để thực hiện âm mưu của mình là gán quyền dba cho Public Sau đó, dùng SQL Injection để tiêm vào tham số hàm DBMS_CDC_SUBSCRIBE.ACTIVATE_SUBSCRIPTION để thực thi hàm ATTACK_FUNC trên

CREATE OR REPLACE FUNCTION "NORMAL_USER"."ATTACK_FUNC" return

END;

/

Như vậy thông qua SQL Injection và một số điều kiện khác, kẻ tấn công đã nâng quyền của mình thành DBA Đây là một cách tấn công rất nguy hiểm đối với hệ cơ sở dữ liệu

Trang 24

2.2.4 Trì hoãn dịch vụ (Denial of service)

Trì hoãn dịch vụ (DOS) là một cách tấn công cũng khá phổ biến DOS làm cho hệ thống bị ngưng trệ và ngừng cung cấp dịch vụ nào đó cho user có yếu cầu Điều này làm

ảnh hưởng đến tính sẵn sàng của hệ thống Ví dụ, dịch vụ đặt hàng của công ty bị đình trệ

sẽ gây nên sự tổn thất về kinh tế Một cách phổ biến để tấn công dạng DOS đến một ứng dụng là gửi liên tục một số lượng lớn các yêu cầu đến server làm hệ thống sử dụng đến 100% tài nguyên trong suốt thời gian đó Và vì vậy database server không sẵn sàng đáp

ứng cho các yêu cầu của các user thực sự [17, 18]

Một trong những thứ đầu tiên mà kẻ tấn công ngoài sẽ tìm kiếm đó là nạn nhân có

đang sử dụng listener của cơ sở dữ liệu Oracle hay không Listener nhằm tìm và chuyển

các kết nối mạng tới cơ sở dữ liệu Oracle và vì vậy làm lộ thông tin các user và database link [7, 8] Với google hacking, kẻ tấn công có thể tìm kiếm và phát hiện ra các dịch vụ Listener trên các cơ sở dữ liệu mà nó không được thiết lập password Markovich phát biểu “Tôi đã từng tìm kiếm cách đây không lâu và phát hiện ra nhiều thông tin thú vị trên các trang web trong đó có những trang của chính phủ và đây thực sự là một vấn đế lớn” Ngoài ra trong quá trình cài đặt, các DBA cài đặt quá dư thừa các dịch vụ không cần thiết và không phù hợp với hệ thống của mình, hoặc chưa chỉnh lại các giá trị mặc định của các tham số cấu hình khởi tạo Điều đó dẫn đến việc mất kiểm soát các sơ hở để cho hacker lợi dụng Do đó, vấn đề chính ở đây là chỉ cài đặt những tính năng cần thiết Markovich nói “Nếu không triển khai một tính năng nào đó thì sẽ không phải cập nhật bản vá của nó" Vì vậy, càng cài đặt nhiều tính năng dịch vụ dư thừa càng có nhiều lỗ hổng cho kẻ tấn công

Tuy các nhà cung cấp hệ quản trị cơ sở dữ liệu không thông báo chi tiết các lỗ hổng trong các bản vá, nhưng dựa vào các thông tin có được đó, kẻ tấn công cũng dễ dàng phát hiện được Nhất là dựa vào các công cụ quét lỗ hổng hiện nay cũng như các website hacker, phương tiện thông tin đại chúng mà thông tin về các lỗ hổng cũng như cách tấn

Trang 25

công đã trở thành phổ biến với mọi người Một vấn đề khác nữa là các công ty thường không quan tâm đến việc cập nhật các bản vá mới, vì tốn nhiều thời gian và phải tạm shut down cơ sở dữ liệu trong một khoảng thời gian Cho nên điều này sẽ tạo điều kiện cho hacker thực hiện một vài thao tác đơn giản ví dụ như so sánh version của cơ sở dữ liệu hiện tại với version mới để tìm các lỗ hổng đang tồn tại trong hệ cơ sở dữ liệu và khai thác chúng

Trong chương này sẽ trình bày cách phân loại các lỗ hổng bảo mật cơ sở dữ liệu phổ biến hiện nay Những lỗ hổng này dễ dàng được khai thác bằng các cách tấn công ở trên

để xâm phạm tính bảo mật của hệ cơ sở dữ liệu

2.3.1 Định nghĩa lỗ hổng bảo mật

Lỗ hổng bảo mật (security flaw) là tập hợp những điều kiện mà cho phép một kẻ xấu tấn công làm vi phạm những chính sách bảo mật một cách tường minh hoặc ngầm

2.3.2 Phân loại lỗ hổng bảo mật

Dựa trên các loại lỗ hổng thường gặp, các loại lỗ hổng bảo mật gồm những loại chính chính sau đây:

Trang 26

Hình 2.2: Phân loại lỗ hổng bảo mật cơ sở dữ liệu

a- System security settings

Việc cấu hình nhầm lẫn hoặc sơ sót hoặc lấy giá trị mặc định của hệ thống thường dẫn

đến những lỗ hổng bảo mật nghiêm trọng Vì lý do này, DBA phải kiểm tra lại tất cả

những giá trị của các tham số này để hệ thống ở mức an toàn nhất Ở đây được chia thành

2 loại:

- Audit settings: là những điểm yếu của hệ thống lien quan đến việc thiết lập cấu hình kiểm toán Ví dụ, hệ thống chưa bật chế độ kiểm toán lên

- System configuration: là những điểm yếu của hệ thống liên quan đến các tham

số cấu hình khác của hệ thống (các tham số khởi tạo)

b- Users / Accounts

Đây là loại lỗ hổng do cách user quản lý các tài khoản trong csdl của họ Ví dụ, user

chọn cách quản lý password dễ đoán Trong loại này, chúng tôi phân ra thành những loại nhỏ sau:

- Password policy: Loại lỗ hổng này liên quan đến cách quản lý password, bao gồm các password mặc định của DBMS, các password yếu của user, và các

Trang 27

password cũ (hết hạn sử dụng) Chương trình sẽ quét các user nào có password yếu theo quy định trong chính sách (ví dụ, trùng với tên công ty chẳng hạn), liệt kê những account nào vẫn đang sử dụng các password mặc định của DBMS, và những account nào đang sử dụng password trong một thời gian dài không đổi hoặc đã bị expired

- Account settings: Loại lỗ hổng này lien quan đến việc thiết lập các thông số profile cho các account Dưới đây là một số thông số cần phải quan tâm (Oracle 10g):

 Limit on failed logon attempts

 Limit on password grace time

 Limit on password lifetime

Ví dụ cho tham số đầu tiên có ý nghĩa là giới hạn số lần đăng nhập không thành công Nếu việc giới hạn này không được thiết lập một số nguyên nào đó (nghĩa là user có thể đăng nhập không giới hạn) thì hệ thống sẽ dễ dàng bị kẻ tấn công lợi dụng biện pháp brute force để đoán password của user

c- Privileges / Roles

Privilege và role là phương tiện chính để điều khiển việc truy xuất Do đó, việc quản

lý an toàn các quyền và role này là vấn đề quan tâm lớn nhất của DBA Loại lỗ hổng này bắt nguồn từ việc vô ý mà các DBA giao quyền không tối thiểu cho user của mình và do

đó, user dễ dàng vượt quyền Dưới đây là một số vấn đề lien quan đến privilege và role

cần được quan tâm:

- Những quyền được gán cho PUBLIC: những quyền này cần phải được liệt kê

để quản lý chặt chẽ Vì khi quyền được gán cho PUBLIC tức là một user mới

khi tạo ra sẽ mặc định có những quyền này

- Việc gán các role mặc định: Role là một nhóm các quyền DBMS cung cấp một số role mặc định có sẵn Tuy nhiên, các user được gán các role mặc định cần phải được quan tâm chính xác những quyền nào có trong các role mặc định

đó để tránh việc gán quyền cho user dư thừa

Trang 28

- Các user có quyền DBA: DBA là quyền tối cao của hệ thống, do đó các user này phải được quản lý nghiêm ngặt

- Các user có những quyền nhạy cảm khác

d- Procedures / Functions / Packages

Hầu hết các DBMS đều cung cấp các thủ thục, hàm và package có sẵn để hổ trợ user thực hiện những công việc cần thiết khác Dù vậy, ở đây có những lỗi do việc hiện thực các thủ tục/hàm và package đó dẫn đến attacker có thể lợi dụng để chiếm quyền Một ví

dụ, attacker có thể dung kỹ thuật sql injection để tiêm vào các tham số trong lời kêu gọi thủ tục hay hàm bị lỗi Câu tiêm vào chứa một đoạn mã độc hại như gán quyền DBA cho chính attacker Và như vậy, attacker có thể chiếm được quyền DBA

Trang 29

Chương 3: Kỹ thuật pentesting

3.1 Giới thiệu

Pentesting, là chữ viết tắt của pentesting, là một kỹ thuật đánh giá độ bảo mật của hệ thống máy tính, mạng, hoặc hệ cơ sở dữ liệu bằng cách giả lập sự tấn công của hacker

Kỹ thuật này liên quan đến việc phân tích hệ thống một cách chủ động để tìm ra bất kỳ

điểm yếu, lỗ hổng về bảo mật [6, 25]

Trong kỹ thuật này, quá trình phân tích đứng ở vị trí như một kẻ tấn công thật sự, thực hiện những hành động khai thác những lỗ hổng bảo mật của hệ thống Nếu việc tấn công thành công, điều này chứng tỏ có lỗ hổng trong hệ thống và ngược lại

Mục tiêu của kỹ thuật này là phát hiện những lỗ hổng có thể có trong hệ thống trước khi hacker lợi dụng Việc giả lập sự xâm nhập hoàn toàn do người thực hiện quản lý cho nên tác hại và việc khôi phục cho hệ cơ sở dữ liệu phụ thuộc chủ yếu vào người đặc tả script Những ưu và khuyết điểm của kỹ thuật này sẽ được trình bày trong phần sau

3.2 Các bước trong pentesting

Pentesting bao gồm các bước sau [6, 25]:

Hình 3.1: Các bước pentesting

• Bước 1: Lập kế hoạch và chuNn bị

Để thực hiện pentesting trên hệ thống thành công thì bước chuNn bị và lập kế hoạch là

cần thiết Giữa tổ chức và các pentester nên có một cuộc họp để đưa ra những thỏa thuận,

Trang 30

các mục tiêu và các vấn đề cần được khảo sát trên hệ thống trước khi tiến hành công việc pentest vào hệ thống để tìm kiếm lỗ hổng

• Bước 2: Thu thập thông tin và phân tích

Tester thu thập thông tin về DBMS càng nhiều càng tốt như DBMS nào (Oracle, SQL server,…), version, hệ điều hành, port giao tiếp, …

• Bước 3: Xác định lỗ hổng

Sau khi thu thập các thông tin về hệ thống cần kiểm tra, bước tiếp theo là quyết định xem những lỗ hổng nào có thể tồn tại trong hệ thống cần được kiểm tra và chọn cách giả lập tấn công cũng như phương pháp phát hiện phù hợp

• Bước 4: Giả lập tấn công

Ứng với từng lỗ hổng, scanner sẽ giả lập xâm nhập vào hệ thống Nếu như việc tấn

công thành công, lỗ hổng đó tồn tại trong hệ thống Khác với một hacker thực thụ, việc giả lập này không làm ảnh hưởng, thay đổi hay xem trộm các dữ liệu hiện có

• Bước 5: Phân tích và báo cáo

Sau khi tiến hành tất cả công việc ở trên, bước này sẽ sinh ra một bảng báo cáo cho tổ chức về các lỗ hổng đã tìm được trong bước 4 Các thông tin về lỗ hổng như mức nguy hiểm, mô tả về lỗ hổng cũng như các giải pháp để khắc phục phải được trình bày trong bảng báo cáo

• Bước 6: Khôi phục trạng thái ban đầu

Quá trình này được thực hiển để dọn dẹp những gì đã được tạo ra trong quá trình thực hiện các pentest để đảm bảo rằng hệ thống không bị ảnh hưởng bởi quá trình giả lập tấn công của pentest Một ví dụ cơ bản của việc dọn dẹp này là xóa bỏ tất cả nhưng user đã

được tạo ra trong quá trình giả lập tấn công

3.3 Phân loại pentesting

Pentesting có thể được phân thành các loại dựa theo bốn tiêu chí cơ sở thông tin (information base), tính chất xâm lược (aggressiveness), tầm vực (scope) và điểm bắt đầu (starting point) như Hình 3.2

• Cơ sở thông tin:

Trang 31

Pentesting phân theo tiêu chí cơ sở thông tin nghĩa là dựa vào khối kiến thức về hệ

thống đích sẽ kiểm tra mà một pentester có thể biết được để thực hiện việc pentest, gồm

có black-box testing, white-box testing và gray-box testing Black-box testing giả sử rằng

tester sẽ không có thông tin gì về hệ thống cần test, do đó trước tiên tester phải thu thập

những thông tin của hệ thống trước khi thực hiện bước tấn công giả lập Trong khi đó,

white-box testing lại cung cấp cho tester đầy đủ những thông tin của hệ thống Gray-box

testing là loại trung gian giữa hai loại trên Với kiểu black-box testing, người ta cho rằng

nó mô phỏng gần nhất với hành động tấn công của hacker khi giả định rằng hacker chưa

biết tý thông tin gì về hệ thống Tuy nhiên, điều này không đúng với sự thật rằng một

người muốn tấn công vào hệ thống nào đó thì hắn cũng đã nắm chút ít thông tin về hệ

thống, chưa kể có thể kẻ tấn công vào hệ thống lại là một người nằm bên trong của hệ

thống, họ biết gần như đầy đủ thông tin cần thiết Do đó trong hầu hết trường hợp, giải

pháp là chọn white-box testing với giả thiết trường hợp xấu nhất là hacker đã có những

thông tin cần thiết

Hình 3.2: Phân loại pentesting

• Tính chất xâm lược

Pentesting phân theo tiêu chí tính chất xâm lược tức là dựa vào mức độ mà một

pentester giả lập việc xâm nhập vào hệ thống để thực hiện pentest, gồm có bốn mức là bị

động (passive), thận trọng (cautious), có chủ ý (calculated), và xâm lược (aggressive)

Mức bị động là thấp nhất tức là các lỗ hổng được phát hiện nhưng không bị khai thác

Trang 32

Với mức thứ 2, các lỗ hổng được xác định chỉ được khai thác khi hệ thống đang được kiểm tra sẽ không phải chịu đựng bất cứ ảnh hưởng nào Mức thứ 3, tester có thể cố gắng khai thác các lỗ hổng mà nó có thể ảnh hưởng đến hệ thống trong quá trình giả lập tấn công Trước khi thực hiện, tester phải quan tâm tới việc khi nào thì lỗ hổng được phát hiện và hậu quả của việc giả lập tấn công đó nghiêm trọng ra sao Mức cao nhất là mức xâm lược Tester cố gắng khai thác tất cả các lỗ hổng thậm chí các lỗ hổng không được xác định rõ ràng và có thể gây ảnh hưởng nghiêm trọng đến hệ thống đích Tester phải ý thức được rằng ngoài hệ thống đang được kiểm tra, pentest của mình có ảnh hưởng đến các hệ thống và thành phần khác hay không

• Tầm vực

Pentesting được phân thành 3 loại đầy đủ (full), giới hạn (limited) và tập trung (focused) Với loại tập trung tức là, chỉ có những hệ thống, đối tượng, dịch vụ cụ thể

được test mới được quan tâm và tác động tới Các test chỉ sử dụng các thông tin của từng

hệ thống cụ thể Loại giới hạn tức là chỉ có một số hệ thống, đối tượng trong một phạm vi nào đó được kiểm tra Loại đầy đủ tức là một pentest có thể kiểm tra hết tất cả các hệ thống đang sẵn có

Điểm bắt đầu của một pentest là nơi mà việc giả lập tấn công đang thực hiện, gồm

inside hay ouside (tương tự như internal attack hay external attack đã trình bày trong chương 3)

3.4 Minh họa pentesting

Sau đây là phần trình bày một đoạn script dùng kỹ thuật pentesting để phát hiện một

lỗ hỏng bảo mật trong Oracle Đây là đoạn script giả lập tấn công dùng kỹ thuật tấn công SQL Injection vào hàm DBMS_METADATA.GET_DDL của Oracle để thực hiện một

đoạn mã độc hại là nâng quyền cho user giả lập Nếu việc tấn công thành công tức là hàm

DBMS_METADATA.GET_DDL có tồn tại lỗ hổng Lỗ hổng này là do hàm GET_DDL trên không kiểm tra tham số truyền vào, và vì vậy với bất cứ ai có quyền thực thi trên hàm đó đều có thể khai thác được lỗ hổng này

Trang 33

Tạo user giả lập tấn công

create user NORMAL_USER identified by normaluser;

grant CREATE SESSION to NORMAL_USER;

grant CREATE PROCEDURE to NORMAL_USER;

grant EXECUTE ON SYS.DBMS_METADATA.GET_DDL to NORMAL_USER;

Tấn công vào database orcl với tài khoản giả lập vừa tạo

Connect Normal_user/normaluser@orcl;

Tạo ra một hàm chứa đoạn mã độc hại là gán lệnh DBA cho user giả lập

CREATE OR REPLACE FUNCTION "NORMAL_USER"."ATTACK_FUNC" return varchar2

khôi phục lại trạng thái ban đầu

drop user NORMAL_USER CASCADE;

exit;

Trang 34

3.5 Ư u điểm và khuyết điểm

Ưu điểm: giải pháp đơn giản, cho kết quả tin cậy bởi vì nó giả lập như chính cách một

hacker tấn công vào hệ thống Đây là giải pháp được nhiều chương trình phát hiện các lỗ hổng bảo mật chọn để hiện thực

Khuyết điểm: Một số khuyết điểm của kỹ thuật pentesting [6, 25, 26] đã được một số bài báo nêu ra như sau:

Việc xác định các lỗ hổng bằng cách sử dụng pentesting phụ thuộc vào việc phán

đoán và cách thức tìm ra lỗ hổng trong hệ cơ sở dữ liệu của các pentester Các lỗ hổng

này phải được biết trước và tester có nhiệm vụ xây dựng các script để giả lập tấn công các kịch bản này để kiểm tra lỗ hổng đó có tồn tại trong hệ cơ sở dữ liệu hay không Các script giả lập tấn công sẽ để lại những mối đe dọa nghiêm trọng đối với hệ thống nếu không được quản lý chặt chẽ Ví dụ như việc tạo ra một account để giả lập tấn công vào hệ thống, sau khi tấn công account đó có quyền DBA tức là có một lỗ hổng tương

ứng tồn tại trong hệ thống Tuy nhiên, nếu tester bất cNn không xóa bỏ account này thì kẻ

xấu có thể lợi dụng để tấn công Một ví dụ nữa là pentesting thu thập các dữ liệu nhạy cảm của hệ thống để làm cơ sở giả lập tấn công (địa chỉ IP, port, connect identifier, …), nếu các dữ liệu này không được bảo quản tốt có thể bị kẻ xấu lợi dụng khai thác

Các script tấn công vô cùng quan trọng, nó đưa ra các cách thức tấn công vào hệ thống mà các tester suy đoán có khả năng xảy ra Nếu các script này không được bảo mật cNn thận thì sẽ là một mối đe dọa nghiêm trọng đối với hệ cơ sở dữ liệu Việc quản lý những script này cũng là một vấn đề cần được giải quyết

Việc sử dụng các kỹ thuật pentesting tự động (quét hàng loạt các lỗ hổng), sẽ có thể sinh ra những lỗ hổng khác do quá trình quét hay do sự lan truyền giữa các script phát hiện lỗ hổng Do đó cần phải có cơ chế quản lý quy trình quét của từng lỗ hổng này Hơn nữa, kẻ xấu có thể lợi dụng tấn công khi hệ cơ sở dữ liệu đang được quét lỗ hổng bằng cách sử dụng những thông tin do script vừa tạo ra như tài khoản, quyền, … tại thời điểm nào đó trong quá trình quét Do đó các đối tượng tạo ra do giả lập tấn công phải được quản lý nghiêm ngặt

Đề tài này sẽ đưa ra một giải pháp để khắc phục tối đa những khuyết điểm trên

Trang 35

Chươ ng 4: Phân tích đề tài

4.1 Các vấn đề bảo mật khi sử dụng kỹ thuật pentesting trong việc phát hiện các lỗ hổng bảo mật CSDL

Dựa trên bốn yêu cầu [16] cho các hệ thống bảo mật đã được trình bày trong mục 2.1, các vấn đề bảo mật khi sử dụng kỹ thuật penetration testing được phân tích như sau:

4.1.1 Tính tin cậy (Confidentiality)

Kỹ thuật pentesting là một kỹ thuật giả lập tấn công Trong bước đầu của quy trình, các thông tin mang tính chất nhạy cảm của hệ CSDL sẽ được khai báo hoặc thu lượm bằng những công cụ hay kỹ thuật khác [12, 13] để cung cấp cho các pentester chuNn bị thực hiện các cuộc tấn công giả lập vào hệ thống Ví dụ, các thông tin về tên CSDL, tên port, tên địa chỉ IP, hay thông tin tài khoản của user cần giả lập … Bên cạnh đó, việc giả lập tấn công có thể mang lại nhiều rủi ro và nếu thành công, kết quả có thể khai thác hoặc truy xuất được những tài nguyên của hệ thống một cách trái phép [6] Vì vậy, nếu kỹ thuật này được sử dụng một cách bừa bãi, không được quản lý sẽ gây ra nhiều hậu quả nghiêm trọng Người sử dụng kỹ thuật này để kiểm tra tính an toàn của hệ thống có thể sẽ lợi dụng lỗ hổng khi phát hiện được hoặc lợi dụng kết quả của việc tấn công thành công

để thực hiện những mưu đồ bất chính của mình Hơn nữa, người tạo ra các test script để

giả lập tấn công cần phải được tin cậy và kiểm soát Bởi vì họ có thể chèn những đoạn code “bNn” mang tính chất mục đích cá nhân trong test script

Do đó, tiến trình pentesting cần phải có cơ chế phân quyền và quản lý các user những người tạo ra các test script để tấn công cũng như những người thực hiện việc kiểm tra hệ CSDL khi sử dụng kỹ thuật pentesting để hạn chế việc lợi dụng kỹ thuật này cho mục

đích cá nhân của các user

4.1.2 Tính nguyên vẹn (Integrity)

Tương tự, tính nguyên vẹn của hệ CSDL phải được đảm bảo khi sử dụng kỹ thuật này

để kiểm tra tính an toàn cho hệ thống Trong suốt quá trình pentesting, các đối tượng tạm

hay các tài khoản user được tạo mới để làm phương tiện cho quá trình giả lập tấn công hoặc chúng có thể bị thay đổi do bản chất của quá trình kiểm tra Tuy nhiên, trong khi

Trang 36

quá trình kiểm tra chưa kết thúc, các đối tượng hay các user này có thể bị truy xuất trong các session khác bởi các user khác hoặc các user có mưu đồ riêng Ví dụ, sau khi tiêm câu lệnh SQL (SQL injection) vào một thủ tục để kiểm tra thủ tục đó có an toàn không, câu lệnh SQL được tiêm có thể thực hiện một hành động nguy hiểm nào đó như gán quyền DBA cho user Vậy thì, tại lúc đó, nếu việc tiêm thành công, user đó có quyền DBA Giả sử tại thời điểm đó, tài khoản này có thể bị lợi dụng, được sử dụng để khai thác các dữ liệu bí mật của tổ chức Cũng như những mâu thuẫn có thể xảy ra nếu có các luồng xử lý khác cùng truy xuất tới các đối tượng đang bị truy xuất, thay đổi dữ liệu, cấu trúc bởi quá trình pentesting mà chưa tới giai đoạn khôi phục lại trạng thái ban đầu Một

ví dụ khác, quá trình pentesting có chèn những dữ liệu mới vào một bảng đang tồn tại Trong lúc đó, user khác sẽ đọc bảng dữ liệu này trước khi quá trình pentesting thực hiện việc khôi phục hệ thống Hoặc nếu quá trình pentesting bị gián đoạn đột ngột vì lý do nào

đó mà việc khôi phục lại hệ thống chưa được thực hiện hoàn toàn do sự thiếu xót kỹ năng

của người viết test script, hệ CSDL kiểm tra sẽ còn tồn tại các đối tượng, user được tạo ra tạm thời hoặc bị tổn thương bởi quá trình tấn công Những đối tượng này rất nhạy cảm

đối với những hacker thực sự hay với các user nội bộ Do đó, việc kiểm tra lại khả năng

phục hồi hệ thống sau khi quá trình testing bị kết thúc là một việc cần thiết

4.1.3 Tính sẵn sàng (Availability)

Quá trình pentesting giả lập một cuộc tấn công thật sự để kiểm tra sự tồn tại của một

lỗ hổng trong hệ CSDL Ở đây có rất nhiều kiểu tấn công như tiêm SQL (SQL injection), truy xuất dịch vụ bị từ chối (Denial of Service), tràn bộ đệm (Buffer Overflow) … [16] Những kiểu tấn cong này có thể làm hệ thống bị gián đoạn, và mất dữ liệu Do đó nếu quá trình pentesting không được quản lý tốt hay không thông báo cho người sử dụng biết tạc hại trước khi thực hiện để có những biện pháp phòng hờ hay xử lý kịp thời thì chúng

có thể làm mất tính sẵn sàng của hệ thống cũng như để lại hậu quá khó giải quyết

4.1.4 Khả năng chống thoái thác (Non-repudiation)

Quá trình pentesting có thể để lại các rủi ro không thể tránh khỏi bởi đặc tính của việc tấn công Hoặc trong suốt quá trình giả lập tấn công, pentesting có thể làm thay đổi hệ dữ

Trang 37

liệu Vì vậy, cần phải có cơ chế để chứng minh nguồn góc của việc thay đổi hệ dữ liệu

đó, ai thực hiện việc tấn công, khi nào, cũng như những gì đã thực hiện trong quá trình

tấn công một cách tự động để tránh sự thoái thác khi gây ra sự cố của các pentester khi tạo script Việc lưu lại những thông tin này cũng cung cấp những thông tin hữu ích hay các bằng chứng tội phạm để tạo các báo cáo, các kế hoạch đối phó trong trường hợp hệ CSDL gặp trục trặc khi thực hiện pentesting

4.2 Giải pháp đề nghị

Từ những phân tích các vấn đề bảo mật có thể gặp phải khi sử dụng kỹ thuật pentesting để kiểm tra hệ CSDL, một kiến trúc cho việc sử dụng kỹ thuật pentesting một cách an toàn đã được đưa ra với các chức năng sau:

• Phân chia nhiệm vụ giữa các vai trò khác nhau khi sử dụng pentesting để giả lập tấn công và kiểm tra hệ thống như người có quyền đặc tả các pentest, người

có quyền thực thi các pentest, người có quyền xem các dữ liệu ghi nhận lại trong suốt quá trình pentesting

• User có thể quản lý được quá trình pentesting

• Không một session nào khác có thể truy xuất tới cùng đối tượng với session của quá trình pentesting đang sử dụng

• Không một tài khoản nào đang được sử dụng trong quá trình pentesting có thể kết nối tới CSDL trong một session khác

• Quản lý được những sự thay đổi của hệ CSDL và kiểm tra tình trạng khôi phục lại hệ CSDL sau khi thực hiện pentesting

• Các hoạt động trong suốt quá trình pentesting cần được lưu lại để bảo đảm yêu cầu chống thoái thác như đã phân tích trên

Từ những yêu cầu cần đạt được này cho một hệ thống phát hiện lỗ hổng sử dụng kỹ thuật Penetration Testing an toàn, phần sau sẽ trình bày một hệ phương pháp (methodology) tổng quát cho việc sử dụng Pentration Testing để giả lập tấn công, tìm kiếm lỗ hổng trong hệ cơ sở dữ liệu nói chung Đây cũng là một kết quả đạt được của luận văn này Từ hệ phương pháp tổng quát được đưa ra, đề tài cũng đã xây dựng một

Trang 38

bản mẫu cho một hệ thống quét lỗ hổng CSDL sử dụng Penetration Testing để áp dụng một số kỹ thuật được nêu ra trong hệ phương pháp đó Chi tiết về phần thiết kế và hiện thực hệ thống mẫu này sẽ được trình bày trong chương 6 và chương 7

Trang 39

Chươ ng 5: Phương pháp luận sử dụng Penetration Testing trong

bảo mật cơ sở dữ liệu

Phương pháp luận được đề nghị tập trung vào ba khía cạnh: con người, quá trình quét

lỗ hổng và các chính sách hỗ trợ

Vì những mối đe doạ được phân tích trong phần trước, nếu toàn bộ hệ thống chỉ giao cho một cá nhân thực hiện từ việc đặc tả các script giả lập tấn công, chạy thử các script

để dò tìm lỗ hổng và thu thập kết quả, báo cáo tổng kết thì nguy cơ bốn yêu cầu bảo mật

cơ bản cho một hệ thống bị phá huỷ (chương 2.1 và 4.1) từ người pentester này là rất lớn

Do đó, điều cơ bản nhất để xây dựng một hệ thống quét lỗ hổng sử dụng kỹ thuật pentesting mà phương pháp luận này đưa ra là sự phân tách nhiệm vụ Đây cũng là một phương pháp bảo mật căn bản cho các hệ thống lớn hay cần sự an toàn cao Vấn đề chính thứ hai mà phương pháp luận này đưa ra đó là cần một cơ chế ghi nhận lại toàn bộ hoạt

động của một quy trình giả lập tấn công để chống thoái thác những người có quyền thực

thi các script dò tìm và dễ dàng truy tìm nguyên nhân gây ra lỗi cho hệ cơ sở dữ liệu Bên cạnh hệ thống quan sát, cần có một hệ thống cho phép báo động và có thể ngăn chặn tiến trình quét lỗ hổng dựa trên những chính sách đã được đưa ra trước để kiểm soát và xử lý kịp thời những tiến trình giả lập tấn công quét lỗ hổng không đúng yêu cầu, xâm phạm nghiêm trọng đến sự bảo mật tối cần thiết của tổ chức Dựa trên phương pháp luận ban

đầu, phương pháp luận này đã bổ sung và chi tiết hoá một số giai đoạn Với mỗi giai đoạn, phương pháp luận mới đã đưa ra một số yêu cầu cụ thể cũng như đề nghị một số kỹ

thuật cần được áp dụng để tăng tính an toàn khi sử dụng kỹ thuật này

5.1 Phân tách nhiệm vụ (separation of duties)

Để ngăn chặn một người giành được quyền kiểm soát toàn bộ một quy trình cực kì

nhạy cảm này, phương pháp luận mới được đưa ra yêu cầu một hệ thống quét lỗ hổng cần nhiều đối tượng hay nhóm tham gia, cụ thể như sau:

• Nhóm quản lý rủi ro (Risk assessment group): có trách nhiệm xác định những mục tiêu và mối nguy hiểm hay lỗ hổng cần được kiểm tra, phân độ ưu tiên các lỗ hổng

Trang 40

đó Họ cung cấp những dữ liệu cần thiết cho nhóm Pentesting hay chương trình

quét lỗ hổng tiến hành việc quét lỗ hổng Thông thường, những người này sẽ dựa trên những chính sách của tổ chức về quy định những dữ liệu nào nhạy cảm, thiết yếu và có giá trị, những user nào nghi ngờ, những đối tượng nào có khả năng bị đe doạ, những “khu vực” (scope) nào cần được kiểm tra… để thiết lập trong chính sách quét lỗ hổng

• Nhóm Pentesting (hay penetration tester): là nhóm gồm các chuyên gia về kỹ thuật pentesting, chỉ có nhiệm vụ đặc tả các script quét lỗ hổng, cung cấp các script phát hiện lỗ hổng, đưa ra giải pháp khắc phục lỗ hổng

• Nhóm quản lý bảo mật hệ thống: chịu trách nhiệm ra kế hoạch trước khi kiểm tra, xem xét, giải quyết các vấn đề sau khi kiểm tra, quản lý quy trình phát hiện lỗ hổng và đóng vai trò trung gian giữa đội ngũ Pentesting, Risk Assessment và những người có liên quan đến dữ liệu cần kiểm tra Ngoài ra, bộ phận này có trách nhiệm quản lý các lỗ hổng được phát hiện, xem các báo cáo tổng kết và đề ra chiến lược, thiết lập các chính sách quy định những giới hạn khi quét lỗ hổng Ví

dụ, không cho phép việc quét lỗ hổng trong thời gian làm việc, chỉ cho phép kiểm tra trên dữ liệu khách hàng nhưng không kiểm tra trên dữ liệu giao dịch khách hàng, …

• Ngoài ba nhóm trên, nhóm quản lý bảo mật hệ thống có thể lien kết với bộ phận kiểm kê (auditor) hoặc tự thực hiện việc thiết lập chính sách theo dõi quá trình phát hiện lỗ hổng Ví dụ, theo dõi những bảng dữ liệu nhạy cảm, những câu lệnh mang tính nguy hiểm cao, … trong quá trình thực hiện các script, giả lập tấn công Trên đây là mô tả những trách nhiệm của những người có liên quan trong quá trình pentesting hệ thống cơ sở dữ liệu Penetration tester sẽ không còn quyền tự thực hiện việc tấn công trực tiếp lên hệ cơ sở dữ liệu nữa, cũng như không có quyền biết chính xác những dữ liệu đầu vào cũng như kết quả lỗ hổng của hệ cơ sở dữ liệu thực trong quá trình kiểm tra Những công việc này sẽ do nhóm quản lý rủi ro thực hiện, và nhóm này cũng không có quyền đặc tả những script tấn công Toàn bộ quá trình thực hiện việc kiểm tra này đều được kiểm soát và ghi lại bởi các chính sách mà nhóm quản lý bảo mật hệ thống

Ngày đăng: 04/04/2021, 00:33

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. L. Ponemon: Fourth Annual US Cost of Data Breach Study. In: the Ponemon Institute (2009) Sách, tạp chí
Tiêu đề: Fourth Annual US Cost of Data Breach Study
2. Charles, J. K.: Automated Penetration Testing: Completing the Vulnerability Management Framework (2007) Sách, tạp chí
Tiêu đề: Completing the Vulnerability Management Framework
3. J. Shewmaker: Introduction To Network Penetration Testing. In: the 7th Annual IT Security Awareness Fair (2008) Sách, tạp chí
Tiêu đề: Introduction To Network Penetration Testing
4. A. Petukhov, D. Kozlov: Detecting Security Vulnerabilities in Web Applications using Dynamic Analysis with Penetration Testing. In: proceedings of the Application Security Conference (2008) Sách, tạp chí
Tiêu đề: Detecting Security Vulnerabilities in Web Applications using Dynamic Analysis with Penetration Testing
5. J. S. Tiller: The Ethical Hacker: A Framework For Business Value Penetration Testing. In: Auerbatch publications, pp. 60—67 (2005) Sách, tạp chí
Tiêu đề: A Framework For Business Value Penetration Testing. In: Auerbatch publications
6. Federal Office for Information Security (BSI): Study: A Penetration Testing Model, https://ssl.bsi.bund.de/english/publications/studies/penetration.pdf (2003) Sách, tạp chí
Tiêu đề: A Penetration Testing Model
7.L. David, A. Chris, H. John, G. Bill: The Database Hacker’s Handbook: Defending Database Servers, Wiley Publishing (2005) Sách, tạp chí
Tiêu đề: Defending Database Servers
8.L. David: The Oracle Hacker's Handbook: Hacking and Defending Oracle, Wiley Publishing (2007) Sách, tạp chí
Tiêu đề: Hacking and Defending Oracle
9.T.K. Dang., Q.C. Truong., P.H. Cu-Nguyen, T.Q.N. Tran: An Extensible Framework for Detecting Database Security Flaws. In: proceedings of the International Workshop on Advance Computing and Applications, Ho Chi Minh City, Vietnam (2007) Sách, tạp chí
Tiêu đề: An Extensible Framework for Detecting Database Security Flaws
10.Dang, T.K., Tran, T.Q.N., Truong, Q.C.: Security Issues in Housing Service Outsourcing Model with Database Systems. Technical Report, http://www.cse.hcmut.edu.vn/~asis (2008) Sách, tạp chí
Tiêu đề: Security Issues in Housing Service Outsourcing Model with Database Systems
11.T.Q.N Tran: Problems Of Using Penetration Testing For Detecting Database Security Flaws. In: proceedings of the 11th Conference on Science and Technology (2009) Sách, tạp chí
Tiêu đề: Problems Of Using Penetration Testing For Detecting Database Security Flaws
15. R. B. Natan: The book: How to Secure and Audit Oracle 10g, 11g, Auerbach Publications (2009) Sách, tạp chí
Tiêu đề: How to Secure and Audit Oracle 10g
16.S. Hansman: A Taxonomy of Network and Computer Attack Methodologies. M.S Thesis, Department of Computer Science and Software Engineering, University of Canterbury, New Zealand, 2003 Sách, tạp chí
Tiêu đề: A Taxonomy of Network and Computer Attack Methodologies
17. Handbook of Information Security, Wiley Publishing (2005) Sách, tạp chí
Tiêu đề: Handbook of Information Security
18. K. Adam: Database Security: Attacks, Vulnerabilities, and Prevention (2009) Sách, tạp chí
Tiêu đề: Attacks, Vulnerabilities, and Prevention
19. Michael, E.W., Herbert, J.: Principles Of Information Security. Course Technology Publisher (2007) Sách, tạp chí
Tiêu đề: Principles Of Information Security
20. Simon, H.: A Taxonomy of Network and Computer Attack Methodologies (2003) Sách, tạp chí
Tiêu đề: A Taxonomy of Network and Computer Attack Methodologies
21. Slavid M., Hacking &amp; Defending Databases (2007) Sách, tạp chí
Tiêu đề: Hacking & Defending Databases
12.Some database security sites, http://www.red-database-security.com, http://www.petefinnigan.com, http://www.securityfocus.com Link
13.Some database testing tools, http://www.imperva.com, http://www.ngssoftware.com, http://www.nessus.org Link

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w