Tải bản đầy đủ (.pdf) (136 trang)

Kỹ thuật giả lập tấn công dựa trên pentesting không gây ra hiệu ứng phụ trong cơ sở dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.3 MB, 136 trang )

ĐẠI HỌC QUỐC GIA TP. HCM
TRƢỜNG ĐẠI HỌC BÁCH KHOA
--------------------

NGUYỄN THANH TÙNG

KỸ THUẬT GIẢ LẬP TẤN CÔNG DỰA TRÊN
PENTESTING KHÔNG GÂY RA HIỆU ỨNG PHỤ
TRONG 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 09 năm 2011


i

CƠNG TRÌNH ĐƢỢC HỒN THÀNH TẠI
TRƢỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
Cán bộ hƣớng dẫn khoa học: PGS. TS. Đặng Trần Khánh

Cán bộ chấm nhận xét 1: TS. Võ Thị Ngọc Châu

Cán bộ chấm nhận xét 2: TS. Nguyễn Chánh Thành

Luận văn thạc sĩ đƣợc bảo vệ tại Trƣờng Đại học Bách Khoa, ĐHQG Tp.HCM ngày 07
tháng 09 năm 2011.
Thành phần hội đồng đánh giá luận văn thạc sĩ gồm:
1. TS. Thoại Nam


2. TS. Võ Thị Ngọc Châu
3. TS. Nguyễn Chánh Thành
4. PGS.TS. Dƣơng Tuấn Anh
5. TS. Nguyễn Tuấn Đăng

Xác nhận của chủ tịch hội đồng đánh giá luận văn và bộ môn quản lý chuyên ngành sau khi
luận văn đã đƣợc sửa chữa (nếu có).
Chủ tịch Hội đồng đánh giá luận văn

Bộ mơn quản lý chuyên ngành

Pentesting không gây ra hiệu ứng phụ


ii
TRƢỜNG ĐH BÁCH KHOA TP. HCM

CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT NAM

PHÕNG ĐÀO TẠO SĐH

Độc lập - Tự do - Hạnh phúc

Tp. HCM, ngày 01 tháng 07 năm 2011

NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ và tên học viên: NGUYỄN THANH TÙNG

Phái: Nam


Ngày, tháng, năm sinh: 06/03/1986

Nơi sinh: Long An

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

MSHV: 09070476

1- TÊN ĐỀ TÀI:
KỸ THUẬT GIẢ LẬP TẤN CÔNG DỰA TRÊN PENTESTING KHÔNG GÂY RA HIỆU
ỨNG PHỤ TRONG CƠ SỞ DỮ LIỆU

2- NHIỆM VỤ VÀ NỘI DUNG:
_ Nghiên cứu kỹ thuật pentesting trong lĩnh vực phát hiện lỗ hổng bảo mật trong cơ sở
dữ liệu.
_ Phát hiện những khuyết điểm, hiệu ứng phụ của kỹ thuật pentesting.
_ Khắc phục những hiệu ứng phụ gây ra bởi tấn công sử dụng kỹ thuật pentesting.
_ Đƣa ra giải pháp và phát triển một framework để bảo vệ hệ cơ sở dữ liệu an tồn,
khơng gây ra hiệu ứng phụ khi giả lập tấn công sử dụng kỹ thuật pentesting.
3- NGÀY GIAO NHIỆM VỤ:
4- NGÀY HOÀN THÀNH NHIỆM VỤ: 01/07/2011
5- CÁN BỘ HƢỚNG DẪN: PGS. TS. Đặng Trần Khánh.

CÁN BỘ HƢỚNG DẪN
(Học hàm, học vị, họ tên và chữ ký)

CN BỘ MƠN
QL CHUN NGÀNH

Pentesting khơng gây ra hiệu ứng phụ



iii

LỜI CAM ĐOAN
Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các cơng trình khác nhƣ đã ghi
rõ trong luận văn, các cơng việc trình bày trong luận văn này là do chính tơi thực hiện và
chƣa có phần nội dung nào của luận văn này đƣợc nộp để lấy một bằng cấp ở trƣờng này
hoặc trƣờng khác.

Ngày 01 tháng 07 năm 2011

Nguyễn Thanh Tùng

Pentesting không gây ra hiệu ứng phụ


iv

LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn sâu sắc đến Thầy Đặng Trần Khánh đã tận tình hƣớng dẫn,
giúp đỡ tôi thực hiện đề tài nghiên cứu này. Tôi cũng xin gửi lời cảm ơn nhóm ASIS Lab đã
hỗ trợ và tạo điều kiện nghiên cứu cho tôi trong suốt thời gian qua.
Sau cùng, tôi xin gửi lời cảm ơn chân thành đến gia đình và bạn bè đã luôn bên cạnh
động viên và giúp đỡ tôi.

Pentesting không gây ra hiệu ứng phụ


v


TĨM TẮT LUẬN VĂN
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 và
chúng ảnh hƣởng ngày càng nhiều đến đời sống của con 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 tin tặc (hacker). Đó là lý do vì sao vấn đề bảo mật trở
nên rất quan trọng. 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. Nhƣng kỹ thuật này có một số khuyết điểm và có thể gây ra hiệu
ứng phụ, 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, nhƣ là dữ liệu
mất tính nhất quán, hệ thống tạm ngừng hoạt động hay tạo ra các cổng, lỗ hổng khác để
hacker tấn công thật sự.
Trƣớc các yêu cầu trên, luận văn này sẽ nghiên cứu kỹ thuật giả lập tấn công dựa trên
pentesting không gây ra hiệu ứng phụ trong cơ sở dữ liệu.
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, mục đích, phạm vi nghiên cứu và ý nghĩa của đề tài.
 Chương 2: Trình bày các cơ sở lý thuyết về bảo mật cơ sở dữ liệu, gồm bốn yêu cầu
cơ bản của bảo mật cơ sở dữ liệu, các kiểu tấn công vào cơ sở dữ liệu và các lỗ hổng
bảo mật cơ sở dữ liệu.
 Chương 3: Giới kỹ thuật pentesting, phân loại pentesting, các bƣớc cơ bản của kỹ
thuật này và đƣa ra một ví dụ áp dụng kỹ thuật này phát hiện lỗ hổng bảo mật trong
cơ sở dữ liệu. Cuối cùng chƣơng này sẽ nêu lên các ƣu / khuyết điểm của nó.
 Chương 4: Đi sâu vào phân tích đề tài, phân tích các hiệu ứng phụ gặp phải khi sử
dụng kỹ thuật pentesting dị tìm lỗ hổng bảo mật cơ sở dữ liệu. Chƣơng này cịn trình
bày mơ hình Attack graphs để mơ hình hóa các lỗ hổng gần nhau lại với nhau.
 Chương 5: Trình bày phƣơng pháp luận cho việc sử dụng kỹ thuật pentesting giả lập
tấn công phát hiện lỗ hổng bảo mật trong cơ sở dữ liệu không gây hiệu ứng phụ.
 Chương 6: Trình bày kiến trúc tổng quan, kiến trúc chi tiết và các lƣợc đồ phân tích
và thiết kế của hệ thống quét lỗ hổng bảo mật cơ sở dữ liệu.
 Chương 7: Trình bày bản mẫu của hệ thống dị tìm lỗ hổng này.
 Chương 8: Trình bày các đo lƣờng và đánh giá hiệu suất của bản mẫu.
 Chương 9: Tổng kết những ƣu điểm, khuyết điểm cũng nhƣ hƣớng phát triển của đề

tài.
 Tài liệu tham khảo: Các tài liệu đƣợc dùng trong quá trình nghiên cứu, thực hiện đề
tài.
 Phụ lục: Các bài báo kết quả của nghiên cứu này.

Pentesting không gây ra hiệu ứng phụ


vi

MỤC LỤC
NHIỆM VỤ LUẬN VĂN THẠC SĨ ............................................................................ii
LỜI CAM ĐOAN ....................................................................................................... iii
LỜI CẢM ƠN ..............................................................................................................iv
TÓM TẮT LUẬN VĂN ............................................................................................... v
MỤC LỤC ....................................................................................................................vi
MỤC LỤC HÌNH ......................................................................................................... x
Chƣơng 1: GIỚI THIỆU ĐỀ TÀI ............................................................................... 1
1.1 Giới thiệu ...........................................................................................................1
1.2 Tên đề tài ...........................................................................................................2
1.3 Mục đích nghiên cứu .........................................................................................2
1.4 Phạm vi nghiên cứu ...........................................................................................3
1.5 Ý nghĩa đề tài .....................................................................................................3
1.5.1 Ý nghĩa khoa học .........................................................................................3
1.5.2 Ý nghĩa thực tiễn .........................................................................................4
Chƣơng 2: CƠ SỞ LÝ THUYẾT ................................................................................ 5
2.1 Yêu cầu cơ bản của bảo mật cơ sở dữ liệu ........................................................5
2.1.1 Tính bí mật (Confidentiality) .......................................................................5
2.1.2 Tính tồn vẹn (Integrity) ..............................................................................6
2.1.3 Tính sẵn sàng (Availability) ........................................................................6

2.1.4 Tính chống thối thác (Non-repudiation) ....................................................7
2.2 Kiểu tấn cơng vào cơ sở dữ liệu ........................................................................7
2.2.1 Phân loại tấn công cơ sở dữ liệu ..................................................................7
2.2.2 Truy cập trái phép (Unauthorized access) ...................................................9
2.2.3 Tiêm mã SQL “độc” (SQL Injection)........................................................12
2.2.4 Từ chối dịch vụ (Denial of Service hay Distributed Denial of Service ) ..12
2.2.5 Khai thác các dịch vụ và chức năng thừa của DBMS ...............................13
2.2.6 Lỗ hổng cơ sở dữ liệu đã công bố bản vá ..................................................13
2.3 Các lỗ hổng bảo mật cơ sở dữ liệu...................................................................14

Pentesting không gây ra hiệu ứng phụ


vii
2.3.1 Định nghĩa .................................................................................................14
2.3.2 Phân loại ....................................................................................................14
2.4 Đánh giá lỗ hổng bảo mật ................................................................................16
2.4.1 Tập hợp thang đo cơ sở (Base metrics group): ..........................................18
2.4.2 Tập hợp thang đo hƣớng thời gian (Temporal metrics group) ..................18
2.4.3 Tập hợp thang đo môi trƣờng (Environmental metrics group) .................19
2.5 Mơ hình phối hợp các lỗ hổng bảo mật ...........................................................20
2.5.1 Mơ hình tấn cơng dựa trên cây (Attack Trees model) ...............................20
2.5.2 Mơ hình các đồ thị tấn cơng (Attack graphs model) .................................21
2.5.3 Mơ hình mạng tấn công (Net Attack model) .............................................22
Chƣơng 3: KỸ THUẬT PENTESTING ................................................................... 24
3.1 Giới thiệu kỹ thuật pentesting ..........................................................................24
3.2 Phân loại pentesting .........................................................................................24
3.3 Các bƣớc trong kỹ thuật pentesting .................................................................26
3.4 Minh họa pentesting.........................................................................................28
3.5 Ƣu điểm và khuyết điểm..................................................................................29

Chƣơng 4: PHÂN TÍCH ĐỀ TÀI ............................................................................. 32
4.1 Các hiệu ứng phụ gặp phải 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 ......................................................................................32
4.1.1 Tính tin cậy (Confidentiality) ....................................................................32
4.1.2 Tính nguyên vẹn (Intergrity) .....................................................................33
4.1.3 Tính sẵn sàng (Availability) ......................................................................33
4.1.4 Khả năng chống thoái thác (Non-repudiation) ..........................................34
4.2 Áp dụng mơ hình Attack graph dị tìm lỗ hổng ...............................................34
4.3 Giải pháp đề nghị .............................................................................................37
Chƣơng 5: PHƢƠNG PHÁP LUẬN ......................................................................... 38
5.1 Phân quyền ngƣời dùng ...................................................................................38
5.2 Phƣơng pháp luận tổng quát ............................................................................40
5.3 Các chính sách của hệ thống ............................................................................44
Chƣơng 6: PHÂN TÍCH VÀ THIẾT KẾ ................................................................. 46

Pentesting khơng gây ra hiệu ứng phụ


viii
6.1 Kiến trúc hệ thống............................................................................................46
6.1.1 Kiến trúc Client..........................................................................................47
6.1.2 Kiến trúc Developer ...................................................................................49
6.1.3 Kiến trúc Scanning server..........................................................................51
6.2 Kiến trúc chi tiết ..............................................................................................52
6.2.1 Đặc tả lỗ hổng bảo mật ..............................................................................52
6.2.2 Thực thi dị tìm lỗ hổng .............................................................................54
6.2.3 Giám sát tài khoản khả nghi ......................................................................54
6.3 Các lƣợc đồ ......................................................................................................56
6.3.1 Lƣợc đồ usecase cho Developer: ...............................................................56
6.3.2 Lƣợc đồ usecase cho Scanning server: ......................................................57

6.3.3 Lƣợc đồ use case cho Client: .....................................................................59
Chƣơng 7: BẢN MẪU (DEMO)................................................................................ 61
7.1 Máy chủ dị tìm lỗ hổng (Scanning server) .....................................................61
7.1.1 Cửa sổ quản lý tiến trình ............................................................................61
7.1.2 Cửa sổ định nghĩa chính sách giám sát......................................................62
7.2 Cơng cụ phát triển hệ thống (Developer tool) .................................................63
7.2.1 Cửa sổ đăng nhập.......................................................................................64
7.2.2 Cửa sổ quản lý loại script ..........................................................................65
7.2.3 Cửa sổ quản lý script .................................................................................66
7.2.4 Cửa sổ quản lý loại lỗ hổng .......................................................................70
7.2.5 Cửa sổ quản lý lỗ hổng ..............................................................................71
7.2.6 Cửa sổ quản lý Attack graphs ....................................................................72
7.2.7 Cửa sổ quản lý phiên bản chƣơng trình .....................................................74
7.2.8 Cửa sổ liên hệ ngƣời dùng .........................................................................76
7.3 Cơng cụ quản trị bảo mật hệ thống (Client tool) .............................................76
7.3.1 Cửa sổ đăng nhập.......................................................................................76
7.3.2 Cửa sổ quản lý thông tin ngƣời dùng ........................................................78
7.3.3 Cửa sổ quản lý tài khoản của ngƣời dùng .................................................81
7.3.4 Cửa sổ quản lý cơ sở dữ liệu của ngƣời dùng ...........................................81

Pentesting không gây ra hiệu ứng phụ


ix
7.3.5 Cửa sổ quét lỗ hổng ...................................................................................84
7.3.6 Cửa sổ giám sát tài khoản cơ sở dữ liệu ....................................................89
7.3.7 Cửa sổ liên hệ ............................................................................................91
Chƣơng 8: ĐÁNH GIÁ .............................................................................................. 94
8.1 Phƣơng pháp đánh giá .....................................................................................94
8.2 Tập dữ liệu .......................................................................................................94

8.3 Kết quả đánh giá ..............................................................................................94
Chƣơng 9: KẾT LUẬN .............................................................................................. 97
9.1 Ƣu điểm ...........................................................................................................97
9.2 Khuyết điểm .....................................................................................................97
9.3 Hƣớng phát triển của đề tài ..............................................................................99
TÀI LIỆU THAM KHẢO ....................................................................................... 100
PHỤ LỤC .................................................................................................................. 104
TOWARDS A COMPREHENSIVE FRAMEWORK FOR SECURING
DATABASE SYSTEMS IN THE HOUSING SERVICE MODEL .................................104
A PRAGMATIC DATABASE PENTESTING SOLUTION TO DEAL WITH
SECURITY-RELATED SIDE EFFECTS .........................................................................115
LÝ LỊCH TRÍCH NGANG ....................................................................................124

Pentesting khơng gây ra hiệu ứng phụ


x

MỤC LỤC HÌNH
Hình 1. Các u cầu cơ bản của bảo mật cơ sở dữ liệu ..................................................5
Hình 2. Phân loại lỗ hổng bảo mật cơ sở dữ liệu .........................................................14
Hình 3. Tổng quan CVSS phiên bản hai ......................................................................17
Hình 4: Cây tấn cơng web server .................................................................................21
Hình 5. Minh họa attack graph của hệ cơ sở dữ liệu ....................................................21
Hình 6. Mạng tấn cơng Mitnick ...................................................................................22
Hình 7. Phân loại pentesting .........................................................................................25
Hình 8. Các bƣớc pentesting ........................................................................................26
Hình 9. Minh họa attack graph của hệ cơ sở dữ liệu ....................................................35
Hình 10. Phân quyền ngƣời dùng .................................................................................39
Hình 11. Phƣơng pháp luận tổng quát ..........................................................................41

Hình 12. Kiến trúc Client tool ......................................................................................47
Hình 13. Kiến trúc Developer tool ...............................................................................49
Hình 14. Kiến trúc Scanning server .............................................................................51
Hình 15. Đặc tả lỗ hổng bảo mật ..................................................................................53
Hình 16. Tiến trình dị tìm lỗ hổng bảo mật .................................................................54
Hình 17. Tiến trình giám sát tài khoản khả nghi ..........................................................55
Hình 18. Developer usecase .........................................................................................56
Hình 19. Scanning server usecase ................................................................................57
Hình 20. Client usecase ................................................................................................59
Hình 21. Cơng cụ Scanning server ...............................................................................62
Hình 22. Chính sách giám sát tiến trình qt lỗ hổng ..................................................63
Hình 23. Cửa sổ "Đăng nhập" vào cơng cụ phát triển hệ thống...................................64
Hình 24. Menu Tools của Developer tool ....................................................................65
Hình 25. Cửa sổ quản lý loại script ..............................................................................66
Hình 26. Cửa sổ “Quản lý các script” ..........................................................................67
Hình 27. Danh sách scripts ...........................................................................................67
Hình 28. Thơng tin của script .......................................................................................68
Hình 29. Cửa sổ "Tham số của script" .........................................................................69
Hình 30. Cửa sổ thơng tin tham số ...............................................................................70
Hình 31. Cửa sổ “Quản lý loại lỗ hổng” ......................................................................70
Hình 32. Cửa sổ quản lý lỗ hổng ..................................................................................71
Hình 33. Các script của lỗ hổng ...................................................................................72
Hình 34. Quản lý các đồ thị tấn cơng ...........................................................................73
Hình 35. Cửa sổ quản lý các hệ cơ sở dữ liệu ..............................................................74
Hình 36. Cửa sổ chỉnh sửa thông tin của cơ sở dữ liệu Oracle 11g .............................75

Pentesting không gây ra hiệu ứng phụ


xi

Hình 37. Cửa sổ liên hệ Client .....................................................................................76
Hình 38. Cửa sổ "Đăng nhập Client tool" ....................................................................77
Hình 39. Cửa sổ "Đăng ký tài khoản mới" ...................................................................78
Hình 40. Đăng nhập thành cơng bằng tài khoản admin ...............................................79
Hình 41. Thay đổi thơng tin tổ chức.............................................................................80
Hình 42. Cửa sổ "Quản lý các tài khoản của tổ chức" .................................................81
Hình 43. Cửa sổ "Quản lý các hệ cơ sở dữ liệu của tổ chức" ......................................82
Hình 44. Thông tin chi tiết của hệ cơ sở dữ liệu ..........................................................83
Hình 45. Đăng nhập thành cơng bằng tài khoản thƣờng ..............................................84
Hình 46. Hệ thống đang dị tìm lỗ hổng bảo mật .........................................................85
Hình 47. Cửa sổ "Vá lỗ hổng bảo mật trong cơ sở dữ liệu" .........................................86
Hình 48. Lựa chọn các lỗ hổng khả nghi......................................................................87
Hình 49. Thiết lập chính sách cho quá trình pentesting ...............................................88
Hình 50. Cửa sổ "Giám sát một tài khoản của hệ thống" .............................................89
Hình 51. Các hoạt động của tài khoản bị giám sát .......................................................90
Hình 52. Thiết lập chính sách giám sát tài khoản ........................................................91
Hình 53. Gửi phản hồi đến Developer .........................................................................92
Hình 54. Gửi auditing logs đến Developer ...................................................................93
Hình 55. Lần dị tìm lỗ hổng thứ một ...........................................................................95
Hình 56. Lần dị tìm lỗ hổng thứ hai ............................................................................95
Hình 57. Lần dị tìm lỗ hổng thứ ba .............................................................................96

Pentesting khơng gây ra hiệu ứng phụ


1

Chƣơng 1: GIỚI THIỆU ĐỀ TÀI
1.1 Giới thiệu
Công nghệ thông tin phát triển nhanh chóng 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 cá nhân đến những hệ thống
máy tính lớn của các doanh nghiệp, tổ chức ngân hàng, bệnh viện… Do đó, 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 này ảnh hƣởng ngày càng nhiều đến đời sống của con ngƣời.
Chúng đặc biệt quan trọng trong các lĩnh vực nhạy cảm nhƣ chính trị, quân sự, kinh
tế. Ví dụ nhƣ những tài liệu quân sự của một quốc gia, thông tin cá nhân của khách
hàng… Dữ liệu càng quan trọng thì càng có giá trị và càng hấp dẫn những tin tặc
(hacker). Đó là lý do vì sao vấn đề bảo mật trở nên rất quan trọng.
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.
Nhiều công cụ dùng phát hiện lỗ hổng bảo mật trong cơ sở dữ liệu [33]. Các
công cụ này sử dụng nhiều kỹ thuật phát hiện lỗ hổng bảo mật, nhƣ kỹ thuật kiểm tra
phiên bản (version), kỹ thuật data mining, kỹ thuật pentesting. Kiểm tra dựa trên
version [1, 2, 3, 4] đƣợc sử dụng để tìm ra những lỗ hổng liên quan của từng version
của hệ cơ sở dữ liệu (DBMS) mà nhà cung cấp thông báo. Việc kiểm tra dựa trên
version chỉ đƣa ra kết quả tƣơng đối vì có thể những lỗ hổng tìm đƣợc dựa trên
version đó đã đƣợc ngƣời dùng khắc phục. Trong [22] định nghĩa rằng data mining là
một quy trình tìm dữ liệu để có đƣợc những mẫu khơng biết trƣớc và sử dụng chúng
để dự đoán kết quả tƣơng lai. Do đó, data mining [11] có thể đƣợc áp dụng để phát
Pentesting không gây ra hiệu ứng phụ


2
hiện ra những mẫu dị thƣờng của dữ liệu. Tuy nhiên, việc phát hiện các mẫu dị thƣờng

này chỉ mang tính xác suất chứ khơng chính xác và kỹ thuật phải đòi hỏi một khối
lƣợng tiền dữ liệu để làm mẫu thử. Với Pentesting [1, 5, 8, 16, 23] 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. Việc tấn cơng thành cơng thì chắc chắn tồn tại lỗ hổng tƣơng ứng trong
DBMS. 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 DBMS 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ó.
Tuy nhiên, vì là một kỹ thuật giả lập tấn công cho nên kỹ thuật này sẽ để 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 sốt tốt. Việc giả
lập tấn cơng địi hỏi hệ thống phải đƣợc giữ ngun vẹn nhƣ trƣớc khi tấn công. Hơn
nữa, việc sử dụng các cơng cụ tự động dị tìm lỗ hổng (automated pentesting) [17]
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 tồ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 sốt, khắc phục những khuyết điểm, khơng gây ra hiệu ứng phụ
khi sử dụng pentesting trong việc phát hiện các lỗ hổng bảo mật cơ sở dữ liệu.

1.2 Tên đề tài
Kỹ thuật giả lập tấn công dựa trên pentesting không gây ra hiệu ứng phụ trong
cơ sở dữ liệu.

1.3 Mục đích nghiên cứu
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. Nhƣng kỹ thuật này có một số khuyết điểm và có thể gây ra
hiệu ứng phụ, 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. Vì
vậy, 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 tồn cho hệ cơ sở dữ liệu khi sử dụng kỹ thuật
pentesting để phát hiện các lỗ hổng bảo mật.

Pentesting không gây ra hiệu ứng phụ



3

1.4 Phạm vi nghiên cứu
Kỹ thuật pentesting đƣợc áp dụng rộng rãi trong nhiều lĩnh vực nhƣ mạng máy
tính (network), ứng dụng web, phần mềm hay hệ điều hành. Luận văn không nghiên
cứu trong các lĩnh vực này mà chỉ tập trung nghiên cứu về kỹ thuật pentesting không
gây ra hiệu ứng phụ trong việc phát hiện lỗ hổng bảo mật cơ sở dữ liệu. Từ đó sẽ đƣa
ra giải pháp cũng nhƣ một framework để bảo đảm quá trình pentesting phát hiện lỗ
hổng bảo mật cơ sở dữ liệu trở nên an toàn, đáng tin cậy.

1.5 Ý nghĩa đề tài
Bảo mật DBMS là 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,… Do đó một trách nhiệm quan trọng của các quản trị cơ sở dữ liệu phải
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
DBMS. Trong các kỹ thuật đó, giả lập tấn công (pentesting) là một kỹ thuật đƣợc
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 tồ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 [9, 24]. 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 khuyết điểm mà nó có thể gây ra cho hệ cơ sở dữ liệu.
1.5.1 Ý nghĩa khoa học
Đề tài này có các ý nghĩa khoa học sau:
 Nghiên cứu kỹ thuật pentesting trong lĩnh vực phát hiện lỗ hổng bảo mật trong
cơ sở dữ liệu.
 Phát hiện những khuyết điểm, hiệu ứng phụ của kỹ thuật pentesting.
 Khắc phục những hiệu ứng phụ gây ra bởi tấn công sử dụng kỹ thuật

pentesting.
 Đƣa ra giải pháp và phát triển framework để bảo vệ hệ cơ sở dữ liệu đƣợc an
toàn giống nhƣ trạng thái trƣớc khi giả lập tấn công sử dụng kỹ thuật

Pentesting không gây ra hiệu ứng phụ


4
pentesting. Điều này giúp cải tiến kỹ thuật pentesting, tăng tính tin cậy, an tồn
của kỹ thuật pentesting.
1.5.2 Ý nghĩa thực tiễn
Đề tài này có các ý nghĩa thực tiễn sau:
 Khắc phục kỹ thuật pentesting, tăng độ tin cậy khi sử dụng kỹ thuật này trong
việc phát hiện lỗ hổng bảo mật trong cơ sở dữ liệu.
 Bảo vệ an tồn cơ sở dữ liệu khi sử dụng cơng cụ dị tìm lỗ hổng bằng kỹ thuật
pentesting. Nhờ vậy mà ngƣời dùng cơ sở dữ liệu sẽ không mất thời gian, chi
phí cho việc tạo bản sao hay theo dõi, cập nhật các bản cho các hệ cơ sở dữ liệu
của họ. Giảm chi phí và cơng sức cho ngƣời đặc tả pentesting và việc quản lý
các test dùng cho việc giả lập tấn công vào cơ sở dữ liệu.
 Việc quét lỗ hổng giờ đây trở nên trực quan với ngƣời dùng hơn. Do đó tăng độ
tin cậy của ngƣời dùng vào các công cụ, sản phẩm sử dụng kỹ thuật pentesting.
 Áp dụng giải pháp đề nghị vào một bản mẫu dùng kỹ thuật pentesting không
gây ra hiệu ứng phụ trong quá trình phát hiện lỗ hổng bảo mật cơ sở dữ liệu
cho Oracle.

Pentesting không gây ra hiệu ứng phụ


5


Chƣơng 2: CƠ SỞ LÝ THUYẾT
Phần này trƣớc hết sẽ trình bày các yêu cầu cơ bản của bảo mật cơ sở dữ liệu.
Dựa vào các yêu cầu này, chúng ta sẽ phân tích các vấn đề gặp phải khi dùng kỹ thuật
pentesting giả lập tấn công vào hệ thống nhằm phát hiện lỗ hổng. Phần này cũng trình
bày các kiểu tấn công vào cơ sở dữ liệu, lỗ hổng bảo mật cơ sở dữ liệu và các loại lỗ
hổng.

2.1 Yêu cầu cơ bản của 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 [14]: tính bí mật (confidentiality), tính tồn vẹn (integrity) và
tính sẵn sàng (availability). Tuy nhiê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 thối thác (nonrepudiation). Do đó, các u cầu bảo mật cơ sở dữ liệu bao gồm cả bốn tính chất sau:

Hình 1. Các yêu cầu cơ bản của bảo mật cơ sở dữ liệu
2.1.1 Tính bí mật (Confidentiality)
Tính bí mật là một tính chất quan trong trong bảo mật dữ liệu. Bảo đảm tính bí
mật cho dữ liệu là bảo vệ dữ liệu không bị xem bởi những ngƣời khơng có quyền.
Trong hệ thống ngân hàng, tính chất này đƣợc thể hiện ở việc một khách hàng 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.

Pentesting không gây ra hiệu ứng phụ


6
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 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), thẩm định quyền và quyền hạn (Authentication and Authorization).
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ã. Thẩm đị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 đó. Thẩm định quyền (Authentication) yêu cầu ngƣời sử dụng phải cung cấp
những bằng chứng (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. Sau khi ngƣời dùng đã đƣợc thẩm định
quyền, ngƣời sử dụng hợp pháp này sẽ đƣợc xác định quyền (Authorization) đối với
cơ sở dữ liệu. Các quyền gồm quyền xem, xóa, chỉnh sửa dữ liệu ...
2.1.2 Tính tồn vẹn (Integrity)
Bảo đảm tính tồn vẹn cho dữ liệu là ngăn dữ liệu không bị sửa đổi, bổ sung
hay xóa bởi những ngƣời khơng có quyền. Trong hệ thống ngân hàng, tính tồn vẹn
chính là việc khơng cho phép khách hàng có thể tự sửa đổi số tiền trong tài khoản của
chính mình.
Cơ chế để bảo đảm tính toàn vẹn dữ liệu (Integrity Mechanism) đƣợc chia làm
hai loại sau: cơ chế ngăn chặn (Prevention Mechanism) và cơ chế phát hiện (Detection
Mechanism). Cơ chế ngăn chặn (Prevention Mechanism) duy trì tính tồ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ì 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.
2.1.3 Tính sẵn sàng (Availability)
Bảo đảm tính sẵn sàng là đảm bảo cho dữ liệu luôn sẵn sàng đáp ứng nhu cầu
sử dụng của ngƣời dùng có quyền hợp pháp. Tính sẵn sàng trong hệ thống ngân hàng
liên quan đến việc bảo đảm rằng tại những thời điểm quy định trong chính sách, khách
hàng ln có thể giao dịch hệ thống của ngân hàng.
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 tạo ra thành nhiều bản sao và lƣu trữ ở nhiều
nơi một cách dƣ thừa nhằm tăng khả năng phục vụ, cũng nhƣ đảm bảo tính sẵn sàng.
Khi đó nếu có lỗi xảy ra ở một nơi thì vẫn cịn những nơi khác tiếp tục phục vụ khách
hàng của hệ thống.

Pentesting không gây ra hiệu ứng phụ



7
2.1.4 Tính chống thối thác (Non-repudiation)
Bảo đảm tính chống thố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. Khi khách hàng thực hiện một giao dịch
(mua, nạp, rút, chuyển khoản …) với 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 thối thác 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ƣ 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 việc chứng minh
ngƣời đã ký vào một đối tƣợng nào đó sẽ khơng phủ nhận đƣợc hành động đã ký đó.
Dựa vào 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, đề tài sẽ
nghiên cứu xây dựng framework sử dụng kỹ thuật pentesting không gây hiệu ứng phụ
nhằm phát hiện lỗ hổng bảo mật trong cơ sở dữ liệu.

2.2 Kiểu tấn công vào cơ sở dữ liệu
Bảo vệ 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 đó mà cịn cả mơi trƣờng mà nó đƣợc đặt vào. Phần tiếp
theo sẽ trình bày các cách tấn cơng cơ sở dữ liệu và kèm theo các tổn hại. Những cách
tấn công này đƣợc thực hiện thông qua nhiều phƣơng thức khác nhau và 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, các ứng dụng, cấu
hình mạng…
2.2.1 Phân loại tấn cơng cơ sở dữ liệu
Tấn công là một chuỗi các hành động đƣợc thực hiện có chủ tâm nhằm phá vỡ
bốn tính chất của hệ thống bảo mật cơ sở dữ liệu. Tấn công sẽ đánh cắp, sửa đổi, làm
sai lệch dữ liệu, làm hệ thống từ chối phục vụ khách hàng, mất đi tính sẵn sàng của dữ
liệu hay nghiêm trọng là làm sụp đổ hệ thống máy chủ cơ sở dữ liệu,… Do đó, tấn
cơng cơ sở dữ liệu là mối đe dọa đến hệ thống.

Có thể phân chia các kiểu tấn cơng vào cơ sở dữ liệu thành hai loại chính yếu
sau [10]:
 Loại tấn công trực tiếp sẽ gây ảnh hƣởng trực tiếp đến hệ cơ sở dữ liệu, tấn
công vào các dữ liệu và tài nguyên cũng nhƣ khai thác những điểm yếu của hệ
cơ sở dữ liệu còn tiềm ẩn hay đã công bố nhƣng vẫn chƣa đƣợc khắc phục kịp
thời.

Pentesting không gây ra hiệu ứng phụ


8
 Loại tấn công gián tiếp thƣờng đƣợc suy diễn thông qua những câu truy vấn
đến cơ sở dữ liệu hoặc thông qua các kênh ngầm. Loại này tấn công gián tiếp
vào các dữ liệu và tài nguyên của hệ thông nhằm lấy thông tin đƣợc suy diễn từ
dữ liệu hay tài ngun đƣợc truy xuất.
Tấn cơng trực tiếp có thể chia ra 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 [10, 18, 19]. 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ử (nhƣ thử một số
lƣợng các pasword để dị tìm ra password). SQL Injection là một kỹ thuật
hacker 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 (DOS) là một kiểu tấn công ngăn chặn, làm từ chối hay
tê liệt một dịch vụ nào đó từ ngƣời dùng dich vụ. DOS làm giảm hay mất đi
tính sẵn sàng của hệ thống. Một hình thức tấn cơng khác nữa là đánh cắp các
thiết bị phần cứng chứa dữ liệu (nhƣ bảng backup dữ liệu trên máy laptop, hay
đánh cắp cả máy laptop). [26, 31]
 Kẻ tấn công sẽ dựa vào các điểm yếu trong chính sách bảo mật hệ thống hay
các thiết lập cấu hình để tấn cơng vào hệ cơ sở dữ liệu. Ví dụ nhƣ các tài khoản
mặc định vẫn chƣa đƣợc thiết lập, khóa lại, các mật khẩu mặc định vẫn chƣa
đƣợc thay đổi, các giá trị mặc định của các thơng số cấu hình nhạy cảm vẫn

đƣợc giữ lại… Nguyên nhân là do các quản trị viên hệ cơ sở dữ liệu khơng am
hiểu rõ về cấu hình hệ cơ sở dữ liệu mà họ đang dùng. Anh ta không theo dõi
các lỗ hổng đã đƣợc công bố và không cập nhật các bản vá kịp thời.
Phân loại theo hƣớng tấn cơng thì chúng ta có 2 loại: tấn công từ bên trong
(internal) và tấn công từ bên ngồi (external) [10, 18, 20, 27].
 Tấn cơng từ bên trong phần lớn (80%) đƣợc thực hiện từ những ngƣời trong
công ty, tổ chức. Do là ngƣời trong công ty nên họ lợi dụng quyền hoặc khai
thác các điểm yếu của hệ cho chủ ý phá hoại. Thƣờng những ngƣời này 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 nên có động cơ phá hoại hệ thống cơ sở dữ
liệu của công ty. Do họ có quyền với hệ thống hay biết rõ điểm yếu của hệ
thống nên phần lớn tấn công từ bên trong không phát hiện đƣợc, chiếm đến
65% những lỗi do tấn công từ bên trong [20].
 Ngƣợc với tấn công từ bên trong, tấn cơng từ bên ngồ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, phá hoại làm ngƣng trệ hệ thống, làm sụp đổ máy chủ cơ sở dữ liệu.
Pentesting không gây ra hiệu ứng phụ


9
Chúng ta có thể xem các con sâu (worm) hay virus nhƣ là tấn cơng từ bên
ngồi.
Ngồi ra ngƣời ta cịn chia các cách tấn cơng theo hai loại active và passive
attack.
 Active attack là loại tấn công làm thay đổi hệ thống, 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. Ví dụ nhƣ tấn
cơng hệ thống làm thay đổi tín hiệu trả về negative acknowledgment (NACK)
từ máy chủ cơ sở dữ liệu thành tín hiệu positive acknowledgement (ACK), điều
này sẽ gây ra nhiều phiền toái cho hệ cơ sở dữ liệu. Bằng cách trang bị cho hệ

thống những biện pháp phịng chống và bảo vệ chính xác thì chúng ta có thể
phát hiện ra tấn cơng Active.
 Passive attack là loại tấn cơng trong đó kẻ tấn cơng khơng có quyền nhƣng vẫn
lấy đƣợc quyền truy xuất đến dữ liệu nhƣng không ảnh hƣởng đến nội dung của
nó. Các ví dụ tấn cơng passive nhƣ là 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 đó, theo dõi các lƣu lƣợng mạng
(network traffic), việc sử dụng CPU hay ổ cứng, việc theo dõi sự truy xuất của
hệ thống... Nhìn chung, tấn cơng Passive khó phát hiện hơn tấn cơng Active và
là rất khó phát hiện vì nó khơng ảnh hƣởng hay tƣơng tác với hệ thống.
Trong những phần trình bày sau [5, 19, 21, 27] sẽ giới thiệu các cách 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 [21].
2.2.2 Truy cập trái phép (Unauthorized access)
Chỉ có ngƣời dùng có quyền mới có thể truy xuất đến đối tƣợng. 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 hay một số phƣơng tiện khác.
 Lợi dụng các mật khẩu mặc định:
Trong nhiều cơ sở dữ liệu tồn tại nhiều username và password mặc định hay
account đã biết vẫn tồn tại mà không đƣợc các quản trị viên (admin) thay đổi (khóa
hay xóa đ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, phiên bản cơ sở dữ liệu cài đặt hay những quy định mật khẩu đến tài
khoản (nhƣ kiểm tra độ “mạnh” của mật khẩu). Các mật khẩu này thƣờng đƣợc công
bố kèm với phiên bản của hệ cơ sở dữ liệu. Lợi dụng những mật khẩu mặc định này,
các hacker sử dụng 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 chúng. Có rất nhiều cơng cụ, script để dị tìm những mật
khẩu mặc định và tài khoản tƣơng ứng [25].
Pentesting không gây ra hiệu ứng phụ


10

 Brute Force Attacks:
Brute Force là một cách tấn công phổ biến, 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. Tấn công này đƣợc thực hiện bằng cách sử
dụng phƣơng pháp thử - sai. Cách tấn công này thƣờng đƣợc sử dụng để đốn
username, password, số thẻ tín dụng hay khóa mật mã. Kẻ tấn cơng có thể sử dụng
cách tấn cơng Brute Force bằng các hình thức sau:
o Kẻ tấn công cố gắng đăng nhập bằng tay bằng cách gõ thử một vài
username và password.
o Kết hợp 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.
o Chƣơng trình bẻ khóa (crack) sẽ kết hợp các kí tự chữ & số với nhau để
sinh ngẫu nhiên các username hoặc/và các password.
Loại tấn cơng này có thể đƣợc thực hiện dựa trên một số thông tin biết trƣớc về
hệ thống, nhờ đó sẽ giảm số lần dị thử và tăng tốc độ thực hiện thử. Từ các thông tin
về tên username, ngày sinh, nơi sinh, tên công ty, tên thú cƣng, hoặc các mật khẩu
mặc định… kẻ tấn cơng có thể dự đốn ra mật khẩu sử dụng cho việc thử. Một số biện
pháp đƣợc dùng để hạn chế tấn công Brute force:
o Thiết lập số lần đăng nhập thất bại vào hệ thống.
o Sau nhiều lần đăng nhập khơng thành cơng sẽ có chính sách xử lý đối với
username hay địa chỉ IP, ví dụ nhƣ cấm địa chỉ IP đó.
o Quản trị viên nên sử dụng các cơng cụ trực quan hóa (visualization) các
truy xuất đến hệ thống, theo dõi và phân tích các log file để đƣa ra các phán
đoán những truy xuất nghi ngờ.
 Chứng thực yếu và sự cho phép lỏng lẻo:
Một vấn đề bảo mật phổ biến trong nhiều ứng dụng là chứng thực yếu, cụ thể là
chứng thực ngƣời dùng (user). Chứng thực yếu là ngƣời ngồi có thể dễ dàng đoán và
vƣợt qua chứng thực ngƣời dùng của hệ thống. Tên đăng nhập và mật khẩu yếu sẽ dễ
dàng bị đốn ra. Ví dụ nhƣ mật khẩu của học viên cao học trƣờng đại học Bách Khoa
là sáu con số đƣợc tạo thành từ ngày tháng năm sinh của mỗi học viên. Sẽ khơng khó
khăn để có thể biết đƣợc năm sinh của một học viên. Nếu biết năm sinh của học viên

X thì chỉ cần khơng q 365 phép thử chúng ta có thể biết mật khẩu của học viên X
này.
Sự cho phép lỏng lẻo nghĩa là một tài nguyên nào đó của hệ thống sẵn có cho
mọi ngƣời và thơng tin có thể lấy đƣợc một cách cơng khai. Vì vậy kẻ tấn cơng có
nhiều thuận lợi khi đƣợc sử dụng các tài nguyên này để làm bàn đạp tấn công vào hệ
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
Pentesting không gây ra hiệu ứng phụ


11
cảm một cách lỏng lẻo. Oracle là một ví dụ, mọi ngƣời đƣợc quyền truy xuất tới
khung nhìn 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 đó) [28]. Do đó 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ụ chi sẻ tập tin đơn giản (simple file sharing) đƣợc bật lên. Khi một user đang chạy
hệ điều hành XP trên một máy tính, một hệ cơ sở dữ liệu đƣợ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 khách (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 kết nối đế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 đăng nhập, 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
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, khi biết đƣợc tên của

một thành viên trong nhóm ORA_DBA, kẻ tấn cơng sẽ có đƣợc quyền truy xuất
SYSDBA mà không cần phải cung cấp mật khẩu [29].
 Vượt quyền:
Vƣợt quyền xảy ra khi một user có một số quyền nào đó, sau khi khai thác các
điểm yếu hay lỗ hổng trong cơ sở dữ liệu nên có đƣợc quyền cao hơn. Đây cũng là đặc
điểm chính của kẻ tấn cơng vƣợt quyền. Tấn cơng vƣợt quyền trong cơ sở dữ liệu
đƣợc thực hiện bằng nhiều cách khác nhau, nhƣ thông qua SQL injection, tràng bộ
đệm (buffer overflow) hay qua môi trƣờng mà cơ sở dữ liệu đặt trong đó (hệ điều
hành, ứng dụng, mạng…) [6].
Những điểm yếu mà kẻ tấn cơng có thể lợi dụng để vƣợt quyền đƣợc thƣờng
đƣợc cơng bố. Ví dụ nhƣ một user có quyền truy xuất đến một cơ sở dữ liệu MySql
nào đó nhƣng khơng có quyền tạo cơ sở dữ liệu khác. MySql tồn tại điểm yếu là cho
phép ngƣời dùng đó 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 [30].
Nhiều trƣờng hợp vƣợt quyền khác do điểm yếu của chính hệ quản trị cơ sở dữ
liệu và thƣờng đƣợc công bố bởi các nhà cung cấp cơ sở dữ liệu, nhƣ Oracle, MySQL,
SQL Server… Cấu hình nhầm (mis-configuration), gán quyền nhiều hơn quyền mà

Pentesting không gây ra hiệu ứng phụ


12
ngƣời dùng thực sự cần cũng gây ra lỗi vƣợt quyền. Lỗi này thƣờng do quản trị viên
(DBA) khơng có đủ kiến thức cũng nhƣ cơng ty khơng có chính sách bảo mật rõ ràng
về ngƣời có thể làm những gì để gán quyền tối thiểu cho user.
2.2.3 Tiêm mã SQL “độc” (SQL Injection)
SQL injection là kĩ thuật mà những kẻ tấn công lợi dụng lỗ hổng trong việc
kiểm tra dữ liệu nhập trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ
sở dữ liệu để "tiêm vào" (inject) và thi hành các câu lệnh SQL bất hợp pháp (không
đƣợc ngƣời phát triển ứng dụng lƣờng trƣớc). Hậu quả của tấn công này rất tai hại vì

nó cho phép những kẻ tấn cơng có thể thực hiện các thao tác xóa, hiệu chỉnh,… do có
tồn quyền trên cơ sở dữ liệu của ứng dụng, thậm chí là máy chủ mà ứng dụng đó
đang chạy.
Kẻ tấn cơng thƣờng thực hiện SQL Injection khi hắn có quyền thực thi một thủ
tục/hàm (procedure/function) nào đó trong cơ sở dữ liệu. Kẻ tấn công thực thi các thủ
tục/hàm này với các tham số là các đoạn mã độc hại nhằm khai thác lỗi trong đó. Các
thủ tục/hàm này thực thi cùng với các đoạn mã độc hại đƣợc tiêm vào và do đó kẻ tấn
cơng đã thực hiện thành cơng hành động tấn cơng [6, 7].
Chúng ta có thể khắc phục lỗi này bằng cách bảo vệ các câu lệnh, kiểm duyệt
chặt chẽ tất cả dữ liệu đƣợc đƣa lên máy chủ từ đối tƣợng (Request,
Request.QueryString, Request.Form, Request.Cookies, and Request.ServerVariables).
Để khắc phục lỗi này, chuỗi dữ liệu nhập từ ngƣời dùng thƣờng đƣợc phân tích, xử lý
cẩn thận trƣớc khi đƣợc đƣa vào thực thi. Một số cách khắc phục phổ biến là xây dựng
hàm để thay thế dấu nháy đơn bằng hai dấu nháy đơn, hàm loại bỏ một số kí tự và từ
khóa nguy hiểm nhƣ: ;, --, select, insert, xp_,… ra khỏi chuỗi dữ liệu nhập từ ngƣời
dùng cũng nhƣ xác định chiều dài tối đa của chuỗi nhập liệu này.
2.2.4 Từ chối dịch vụ (Denial of Service hay Distributed Denial of Service )
Từ chối dịch vụ (DOS hay DDOS) là một cách tấn công ngày càng trở nên phổ
biến và nguy hiểm. Từ chối dịch vụ làm cho hệ thống bị ngƣng trệ, mất tính sẵn sàng
và ngừng cung cấp dịch vụ nào đó khi ngƣời dùng 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. Một cách phổ biến để tấn công dạng này đến
một dịch vụ là gửi liên tục một số lƣợng lớn các yêu cầu đến máy chủ làm hệ thống sử
dụng đến 100% tài nguyên trong suốt thời gian đó. Vì vậy máy chủ cơ sở dữ liệu
không sẵn sàng đáp ứng các yêu cầu của các ngƣời dùng thực sự [5, 10, 27].
Theo công ty Arbor Networks, các cuộc tấn công DDOS đã tăng 10 lần kể từ
năm 2005. Đầu tháng 10 năm 2008, các trang 5giay, nhatnghe và cả Bkav bị tấn công.
Pentesting không gây ra hiệu ứng phụ


13

Vào 3/3/2011, WordPress đã bị tấn công với quy mô lên đến hàng gigabit/giây và
hàng chục triệu gói tin/giây. Ngồi mục đích tấn cơng để lấy các thơng tin kiếm lợi
cho mình, các hacker cịn tấn cơng vì mục đích chính trị. Ví dụ nhƣ ngày 28/11/2010
WikiLeaks bị tê liệt vì DDoS ngay khi chuẩn bị trung ra những tài liệu mật của chính
phủ Mỹ. Sau đó ngày 7/12/2010 nhóm Anonymous đánh sập website Visa.com,
Mastercard và PayPal để trả đũa cho việc chủ WikiLeaks bị tạm giam ở Anh.
2.2.5 Khai thác các dịch vụ và chức năng thừa của DBMS
Kẻ tấn cơng bên ngồi trƣớc tiên sẽ tìm kiếm các listener mà cơ sở dữ liệu đang
mở. Các listener sẽ lắng nghe và chuyển các kết nối mạng tới cơ sở dữ liệu. Do đó nó
sẽ làm lộ các ngƣời dùng và liên kết đến cơ sở dữ liệu [6, 7]. Ví dụ để tấn cơng vào
google, kẻ tấn cơng sẽ dị tìm các dịch vụ listener trên cở sở dữ liệu khơng đƣợc thiết
lập mật khẩu. Markovich nói “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”.
Loại lỗ hổng này có thể xuất hiện từ rất lâu trong hệ thống, thậm chí là trong
q trình cài đặt hệ thống. Khi cài đặt, các quản trị viên cơ sở dữ liệu có thể cài đặt
quá dƣ thừa các dịch vụ không cần thiết, 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. Các hacker sẽ
lợi dụng các sơ sở này để dành lấy quyền kiểm soát hệ thống. 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 khai thác.
2.2.6 Lỗ hổng cơ sở dữ liệu đã công bố bản vá
Các nhà cung cấp hệ quản trị cơ sở dữ liệu cung cấp các bản vá nhƣng thƣờng
không thơng báo chi tiết các lỗ hổng trong đó. Dựa vào các thơng tin có đƣợc từ bản
vá, kẻ tấn công cũng dễ dàng phát hiện đƣợc lỗ hổng. Nhất là dƣới sự hỗ trợ của các
công cụ quét lỗ hổng hiện nay cũng nhƣ phƣơng tiện thông tin đại chúng, các trang
web hacker mà thông tin về các lỗ hổng cũng nhƣ phƣơng thức tấn công đã trở nên
phổ biến với mọi ngƣời.
Một vấn đề nghiêm trọng 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 nhất vì tốn thời gian, hệ thống phải tạm thời gián đoạn do phải
tạm đóng (shut down) cơ sở dữ liệu trong một khoảng thời gian. Do không cập nhật
các bản vá nên hệ cơ sở dữ liệu trở nên dễ bị tổn thƣơng trƣớc những tấn cơng của
hacker, nhất là khi anh ta có đƣợc tập các lỗ hổng bảo mật đã đƣợc công bố cũng nhƣ
cách thức tấn cơng. Khi đó hacker chỉ cần thực hiện một vài thao tác đơn giản là dị
Pentesting khơng gây ra hiệu ứng phụ


×