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

Nghiên cứu phát hiện sự lẩn tránh với Port Hopping (tt)

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

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
--------------------------------

ĐÀO THỊ DOAN

NGHIÊN CỨU PHÁT HIỆN SỰ LẨN TRÁNH
VỚI PORT HOPPING

Chuyên nghành:
Mã số:

Hệ thống thông tin
8480104

TÓM TẮT LUẬN VĂN THẠC SĨ

TP HỒ CHÍ MINH - 2018


Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: TS. NGUYỄN HỒNG SƠN

Phản biện 1: ……………………………...............................
Phản biện 2: ………………………..................................

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc
sĩ tại Học viện Công nghệ Bưu chính Viễn thông
Vào lúc: ....... giờ ....... ngày ....... tháng ....... .. năm ...............
Có thể tìm hiểu luận văn tại:


- Thư viện của Học viện Công nghệ Bưu chính Viễn
thông


1
MỞ ĐẦU
Vấn đề tăng cường an ninh, đảm bảo an toàn mạng thông tin
đang trở thành vấn đề cấp thiết, không chỉ riêng đối với các cá nhân,
tổ chức độc lập mà toàn bộ cơ quan nhà nước, doanh nghiệp luôn cần
được đảm bảo và giám sát.Trong những năm gần đây, tình hình an
toàn thông tin (ATTT) trên mạng Internet diễn ra rất phức tạp cả về
tần suất tấn công mạng và mức độ nguy hiểm. Việt Nam tiếp tục là
một nước nằm trong danh sách các quốc gia có tỷ lệ lây nhiễm phần
mềm độc hại và bị tấn công mạng cao nhất thế giới.
Phần lớn các cá nhân và tổ chức, doanh nghiệp tại Việt Nam
vẫn còn nhận thức chưa tốt về tính nguy hiểm của các cuộc tấn công
mạng nói chung và tấn công APT nói riêng. Dù có nhiều doanh
nghiệp, tổ chức triển khai các công cụ, biện pháp bảo mật tối tân đắt
tiền nhưng chưa chắc tránh được các cuộc tấn công APT.Các nhóm
này thường rất kiên trì, bền bỉ, có chủ đích tìm mọi cách để khai thác
điểm yếu cách vận hành, cấu hình và lỗ hổng của các hệ thống phát
hiện/ngăn chặn xâm nhập (IDS/IPS), tường lửa hoặc antivirus.
Trong các cuộc tấn công an ninh mạng đã và đang xảy ra ở
Việt Nam nói riêng và thế giới nói chung, đã phát hiện ra rất nhiều
kỹ thuật mới, nâng cao, liên quan đến vấn đề lẩn tránh qua thiết bị
ngăn chặn/cảnh báo xâm nhập. Trong các kỹ thuật lẩn tránh, Port
Hopping là kỹ thuật có nhiều ứng dụng, được sử dụng cả cho hoạt
động tấn công mạng và phòng thủ. Đối với phía tấn công, kẻ tấn
công sử dụng Port Hopping để vượt qua hệ thống tường lửa; bên
phòng thủ ứng dụng Port Hopping để chống các loại tấn công mạng

như DDoS.
Với mong muốn nghiên cứu về kỹ thuật lẩn tránh nói chung và
kĩ thuật Port Hopping nói riêng đồng thời tìm hiểu thực trạng các giải
pháp phòng chống hiện nay, học viên thực hiện đề tài “Nghiên cứu
phát hiện sự lẩn tránh với Port Hopping” nhằm tiếp cận các kiến
thức chuyên sâu, từ đó đưa ra giải pháp phù hợp trong việc phát hiện
các ứng dụng chạy trên máy tính có sử dụng kỹ thuật Port Hopping.


2

CHƯƠNG 1 - TỔNG QUAN VỀ KĨ THUẬT LẨN TRÁNH
1.1. Giới thiệu về kĩ thuật lẩn tránh
1.1.1. Khái niệm về kĩ thuật lẩn tránh
Kỹ thuật lẩn tránh là kỹ thuật nhằm vượt qua các thiết bị bảo
mật với mục đích khai thác thông tin, tấn công hoặc gửi mã độc
hướng đến các mục tiêu là hệ thống mạng, máy chủ mà không bị
phát hiện. Ngoài ra, kỹ thuật lẩn tránh còn được sử dụng để né tránh
sự phát hiện của các hệ thống phát hiện/ngăn ngừa xâm nhập mạng
(IDS/IPS) hoặc hệ thống tường lửa.
Hiện nay, số lượng các kỹ thuật lẩn tránh khá lớn, hơn 20 loại.
Tổ hợp các một số dạng kỹ thuật lẩn tránh có thể tạo ra kỹ thuật lẩn
tránh tiên tiến (AETs) hơn, tinh vi hơn. Do đó, AETs là sự kết hợp
của nhiều kỹ thuật trốn lại với nhau nhằm tăng mức độ phức tạp và
nguy hiểm.
1.1.2. Cách thức hoạt động
Giả sử dòng dữ liệu text “MALWARE” được xem như là một
đoạn mã độc. Tin tặc muốn đưa đoạn mã độc này vào mục tiêu với
các yêu cầu bình thường mà hệ thống tiếp nhận hàng ngày. Nếu gửi
nguyên gốc đoạn mã này vào mục tiêu, các hệ thống phát hiện xâm

nhập (IDS) có thể sẽ phân tích và xác định được chuỗi này là mã
độc, đồng thời can thiệp và không cho phép mã độc đi sâu vào trong
hệ thống. Tuy nhiên, nếu áp dụng kỹ thuật lẩn tránh, tin tặc chia nhỏ
mã độc ra thành từng phần và gửi chúng đi cùng những yêu cầu bình
thường khác. Khi đã vượt qua tường lửa hoặc IDS vào trong, chúng
sẽ sắp xếp lại và xâm nhập sâu hơn. Lúc này, IDS đã cho phép mã
độc đi vào mà không cảnh báo và tin tặc đã thực hiện việc xâm nhập
thành công vào hệ thống.
1.1.3. Cách phòng chống các cuộc tấn công AETs
- Kiểm tra thường xuyên tình trạng của hệ thống mạng, đánh
giá mức độ an ninh hiện có.
- Phân tích các rủi ro có thể xảy ra, đặc biệt với các kho lưu
trữ dữ liệu quan trọng, các thành phần kết nối trực tiếp với Internet.
- Sử dụng biện pháp giám sát và phân tích lưu lượng mạng.
- Thường xuyên cập nhật các bản vá lỗi cho hệ thống.
- Áp dụng nguyên tắc triển khai biện pháp an ninh đa lớp
nhằm làm giảm thiểu khả năng tấn công xâm nhập mạng.


3
- Đánh giá thực chất khả năng chống lại các cuộc tấn công
AETs trong thực tế để tùy chỉnh các biện pháp an ninh phù hợp.
1.2. Một số kỹ thuật lẩn tránh
1.2.1. Kỹ thuật proxy
Proxy là một kỹ thuật lẩn tránh, giúp ứng dụng trong máy tính
có thể vượt khỏi sự kiểm soát của tường lửa khi kết nối ra ngoài
Internet. Proxy cung cấp cho người sử dụng internet thông qua máy
chủ proxy thay vì truy cập trực tiếp. Máy chủ proxy xác định những
yêu cầu từ phía máy khách sẽ kết nối tới máy chủ thật. Sau đó nhận
dữ liệu từ máy chủ thật và chuyển lại cho máy khách.

1.2.2. Kỹ thuật tunneling
Tunneling là một kỹ thuật lẩn tránh, giúp các hệ thống giám
sát không chặn thu và phân tích được nội dung truyền dữ liệu giữa
hai thiết bị đầu cuối trong mạng. Các VPN triển khai đa phần sử
dụng kỹ thuật tunneling để tạo ra một mạng riêng trên cơ sở hạ tầng
Internet. Thực chất, đây là quá trình đưa toàn bộ gói tin vào trong
một lớp tiêu đề chứa thông tin định tuyến để có thể truyền qua các hệ
thống mạng trung gian trong những “đường ống” riêng (tunnel). Khi
gói tin đến đích, chúng được tách lớp tiêu đề và chuyển đến các máy
trạm cần nhận dữ liệu. Quá trình này bắt buộc máy khách và máy
chủ phải sử dụng chung một giao thức (tunnel protocol).
1.2.3. Kỹ thuật Port Hopping
1.2.3.1. Định nghĩa
Port Hopping, còn gọi là nhảy cổng, là kĩ thuật được sử dụng
để tránh sự phát hiện của ứng dụng. Thông thường các giao thức P2P
sử dụng kĩ thuật Port Hopping để vượt tường lửa và cấu hình của
router. Một ứng dụng có khả năng Port Hopping sẽ cố gắng truy cập
vào máy chủ trên một cổng khác khi nó không thể kết nối đến cổng
mặc định. Ví dụ, một chương trình P2P đầu tiên nó sẽ cố gắng kết
nối trên cổng 80. Nếu không thành công, có thể thử trên cổng 3904.
Nếu cổng 3904 không hoạt động, nó có thể nhảy tới cổng 4556.
1.2.3.2. Cơ chế hoạt động của Port Hopping
Trong kỹ thuật Port Hopping, máy chủ và máy khách được
thiết lập kết nối với nhau. Tại thời điểm truyền số liệu, các cổng máy
chủ được thay đổi ngẫu nhiên như chức năng của khe thời gian.
Trong trường hợp này, toàn bộ chu trình thời gian được chia thành
các khe rời rạc Tsi, trong đó i = 0, 1, 2... Trong giao thức UDP/TCP,


4

số các cổng không thay đổi trong khoảng thời gian giao tiếp riêng
biệt. Trong kĩ thuật Port Hopping, các cổng khác nhau được sử dụng
trong các khe thời gian khác nhau cho cùng một dịch vụ. Giả sử Pi
đại diện cho số cổng được sử dụng bởi máy chủ trong khe thời gian
Tsi. Pi được xác định bởi phương trình (1), trong đó k là khóa mã
chung giữa máy chủ và máy khách, f là một bộ tạo số giả ngẫu nhiên.
Pi=f(i,k) (1)
Một máy khách nào đó muốn giao tiếp với một máy chủ cụ
thể, nó sẽ tìm thấy các máy chủ với danh sách các cổng Pi hiện tại sử
dụng khóa mã chung k và số khe thời gian i. Khi máy chủ nhận các
gói tin từ máy khách, nếu gói có số cổng không hợp lệ, thì chúng có
thể dễ dàng tìm và lọc ra mà không cần phải kiểm tra nội dung của
các gói. Vì vậy, máy chủ sẽ giảm được các gói tin độc hại không cần
thiết.
1.3. Một số phương pháp phân tích kĩ thuật lẩn tránh
1.3.1. Phương pháp phân tích tĩnh
1.3.1.1. Kỹ thuật dò quét mẫu
Mỗi mã độc có thể được biểu diễn bởi một hay nhiều mẫu,
hoặc là các dấu hiệu (signatures), chuỗi tuần tự các byte, đây là dấu
hiệu đặc trưng của mã độc dựa vào đó để xây dựng các kĩ thuật phát
hiện mã độc thông qua việc sử dụng một tập các mẫu signatures để
làm căn cứ xác định mã độc. Quá trình phát hiện mã độc bằng cách
tìm kiếm thông qua một tập tin với các dấu hiệu của nó thì được gọi
là scan string.
1.3.1.2. Kỹ thuật phân tích heuristic tĩnh
Kỹ thuật phân tích Heuristic tĩnh là kĩ thuật phân tích dựa vào
các điểm bất thường. Kĩ thuật này có thể tìm thấy các mã độc đã biết
hoặc chưa biết bằng cách tìm kiếm một mẩu mã có những đặc điểm
chung giống như là một mã độc thay vì scanning các dấu hiệu đặc
biệt của mã độc. Kỹ thuật này được thực hiện thông qua 2 bước:

- Thu thập dữ liệu: Dữ liệu thu thập có thể được sử dụng từ bất
kỳ một kỹ thuật dựa trên kinh nghiệm nào, các kết quả của nhiều
kinh nghiệm sẽ được kết hợp và được phân tích sau đó.
- Phân tích: Sau khi thu thập được các đặc trưng của mã độc
(feature), việc phân tích dữ liệu bằng kĩ thuật Heuristic tĩnh có thể
được xác định bằng cách đánh trọng số cho mỗi giá trị heuristic thu


5
thập, tính toán kết quả, và đưa ra các ngưỡng lây nhiễm để làm căn
cứ phát hiện mã độc.
1.3.1.3. Kỹ thuật kiểm tra giá trị băm
Là kỹ thuật phát hiện đối tượng mã độc trên cơ sở kiểm tra
tính toàn vẹn của chương trình. Theo đó, để kiểm tra tính toàn vẹn
của chương trình trước hết chúng ta phải tính và lưu trữ một
checksum cho mỗi tập tin trong hệ thống cần tính toán. Sau đó giá trị
checksum này sẽ được tính lại và so sánh với giá trị checksum gốc
của nó. Nếu giá trị checksum khác nhau có thể kết luận là đã có một
sự thay đổi diễn ra. Theo đó, mỗi chương trình sau khi được xác định
chắc chắn là mã độc sẽ được sử dụng một hàm băm như là
MD5,SHA,CRC… tương ứng với loại mã độc đó để tính toán ra giá
trị băm duy nhất.
1.3.2. Phương pháp phân tích động
1.3.2.1. Kĩ thuật Behavior Blocking
Behavior Blocking là kỹ thuật cho phép chủ động bảo vệ
chống lại các mối đe dọa trước khi chúng có thể tác động lên hệ
thống. Behavior Blocking có khả năng giám sát các sự kiện và ngăn
chặn các chương trình, các khối lệnh có hành vi làm nguy hại đến hệ
thống.
1.3.2.2. Kỹ thuật Emulation

Kỹ thuật Emulation chính là kĩ thuật phát hiện mã độc sử dụng
mô phỏng giả lập. Bằng việc mô phỏng lại hệ thống CPU, hệ thống
quản lý bộ nhớ, các chỉ thị máy ở cấp thấp… giống như máy quét
thực tế. Vì vậy, mã độc sẽ hoạt động trên máy ảo mà không ảnh
hưởng đến bộ xử lý thật.
CHƯƠNG 2 - KỸ THUẬT PHÂN CỤM DỮ LIỆU
2.1. Khái niệm về phân cụm dữ liệu
Phân cụm dữ liệu là một kỹ thuật trong khai phá dữ liệu nhằm
mục đích tìm kiếm, phát hiện các cụm, các mẫu dữ liệu tiềm ẩn và
quan trọng trong tập dữ liệu lớn để từ đó cung cấp các thông tin, tri
thức cho việc ra quyết định.
2.2. Mục tiêu của phân cụm dữ liệu
Mục tiêu của phân cụm dữ liệu là để xác định được bản chất
nội tại của các nhóm bên trong tập dữ không được gán nhãn.


6
2.3. Ứng dụng của phân cụm dữ liệu
Phân cụm dữ liệu được ứng dụng nhiều trong các lĩnh vực
như thương mại, sinh học, quản lý thư viện, bảo hiểm – tài chính,
quy hoạch đô thị, khai phá dữ liệu…
2.4. Các yêu cầu tiêu biểu về việc gom cụm dữ liệu
- Khả năng co giãn về tập dữ liệu.
- Khả năng xử lý nhiều kiểu thuộc tính khác nhau.
- Khả năng khám phá các cụm với hình dạng tùy ý.
- Tối thiểu hóa yêu cầu về tri thức miền trong việc xác định
các thông số nhập.
- Khả năng xử lý dữ liệu có nhiễu.
- Khả năng gom cụm tăng dần và độc lập với thứ tự của dữ
liệu nhập.

- Khả năng xử lý dữ liệu đa chiều.
- Khả năng gom cụm dựa trên ràng buộc.
- Khả diễn và khả dụng.
2.5. Kiểu dữ liệu và độ đo trong phân cụm dữ liệu

2.5.1. Kiểu dữ liệu trong phân cụm dữ liệu
Cho một cơ sở dữ liệu D chứa n đối tượng trong không gian k
chiều; x, y, z là các đối tượng thuộc D:
x = (x1, x2,….,xk); y = ( y1, y2,….,yk); z =( z1, z2,….,zk)
Trong đó xi, yi, zi với i = 1,k là các thuộc tính tương ứng của
các đối tượng x, y, z. Khi đó kiểu dữ liệu trong phân cụm được phân
loại như sau:
2.5.1.1. Phân loại kiểu dữ liệu dựa trên kích thước miền
Thuộc tính liên tục (Continuous Attribute): Miền giá trị của nó
là vô hạn không đếm được.
Thuộc tính rời rạc (DiscretteAttribute): Miền giá trị của nó là
tập hữu hạn, đếm được.
2.5.1.2. Phân loại kiểu dữ liệu dựa trên hệ đo
Thuộc tính định danh (Nominal Scale): Đây là dạng thuộc
tính khái quát hóa của thuộc tính nhị phân, trong đó miền giá trị của
thuộc tính là rời rạc không phân biệt thứ tự và có nhiều hơn hai phần
tử. Giả sử x và y là hai đối tượng thuộc tính định danh thì có thể xác
định là x ≠ y hoặc x = y.
Thuộc tính có thứ tự (Ordinal Scale): Là thuộc tính định
danh và có thêm tính thứ tự, song chúng không được định lượng. Giả


7
sử x và y là hai thuộc tính thứ tự thì có thể xác định là x ≠ y hoặc x =
y hoặc x > y hoặc x < y.

Thuộc tính khoảng (Interval Scal): Được sử dụng để đo các
giá trị theo xấp xỉ tuyến tính. Thuộc tính khoảng có thể xác định một
thuộc tính là đứng trước hoặc đứng sau một thuộc tính khác với một
khoảng là bao nhiêu. Giả sử xi > yi thì có thể nói x cách y một
khoảng xi – yi tương ứng với thuộc tính thứ i.
Thuộc tính tỉ lệ (Ratio Scale): Là thuộc tính khoảng nhưng
được xác định một cách tương đối so với điểm mốc.
Trong kĩ thuật phân cụm còn kiểu dữ liệu không gian. Đây là
loại dữ liệu có thuộc tính số khái quát trong không gian nhiều chiều.
Dữ liệu không gian có thể là dữ liệu rời rạc hoặc liên tục.
Dữ liệu không gian liên tục: Bao chứa một vùng trong
không gian.
Dữ liệu không gian rời rạc: Có thể là một điểm trong không
gian nhiều chiều và cho phép ta xác định được khoảng cách giữa các
đối tượng dữ liệu trong không gian.
2.5.2. Các phép đo độ tương tự và khoảng cách đối với các
kiểu dữ liệu
2.5.2.1. Khái niệm tương tự và phi tương tự
Khi các đặc tính của dữ liệu được xác định, cần phải tìm cách
thích hợp để xác định “khoảng cách” giữa các đối tượng. Đây là các
hàm sử dụng để đo sự giống nhau giữa các cặp đối tượng dữ liệu,
thông thường các hàm này sử dụng để tính độ tương tự hoặc tính độ
phi tương tự giữa các đối tượng dữ liệu.
Tất cả các độ đo trình bày dưới đây được xác định trong không
gian metric. Một metric bất kì nào cũng là một độ đo, nhưng điều
ngược lại không đúng. Một không gian metric là một tập trong đó có
xác định “khoảng cách”giữa từng cặp phần tử, với các tính chất
thông thường của khoảng cách hình học. Nghĩa là, một tập X (các
phần tử của nó có thể là những đối tượng bất kỳ) gồm các đối tượng
dữ liệu trong CSDL D được gọi là một không gian metric nếu với

mỗi cặp phần tử x, y thuộc X đều xác định một số thực δ(x, y), được
gọi là khoảng cách giữa x và y thỏa mãn tính chất sau:
 δ(x, y) > 0 nếu x ≠ y;
 δ(x, y) = 0 nếu x = y;
 δ(x, y) = δ(y, x) với mọi x, y;


8
 δ(x, y) ≤ δ(x, z)+ δ(z, y)
Trong đó, hàm δ(x, y) được gọi là một metric của không gian.
Các phần tử của X được gọi là các điểm của không gian này.
2.5.2.2. Thuộc tính khoảng
Các thuật toán được sử dụng để phân cụm cần có các phép đo
khoảng cách hoặc độ tương tự giữa hai đối tượng dữ liệu để thực
hiện phân cụm.Các phép đo có nhiều mức độ khác nhau tùy theo
từng trường hợp và được xác định bằng các metric sau:
- Khoảng cách Minkowski, q
:

- Khoảng cách Euclidean là khoảng cách Minskowski với
q=2:

- Khoảng cách Manhattan là khoảng cách trung bình giữa hai
đối tượng trong trường hợp q = 1:

- Khoảng cách Chebychev là khoảng cách Minskowski trong
trường hợp q ∞:

2.5.2.3. Thuộc tính nhị phân
- a: số các thuộc tính có giá trị 1 trong hai đối tượng x, y.

- b: số các thuộc tính có giá trị 1 trong x và giá trị 0 trong y.
- c: số các thuộc tính có giá trị 0 trong x và giá trị 1 trong y.
- d: số các thuộc tính có giá trị 0 trong hai đối tượng x, y.
- s: số các thuộc tính của hai đối tượng x, y.
Các phép đo độ tương tự với dữ liệu thuộc tính nhị phân
được định nghĩa như sau:
Hệ số so trùng đơn giản (đối xứng):
d(x, y )=


9
Trong đó, hai đối tượng x, y có vai trò như nhau.
Hệ số so trùng Jaccard (bất đối xứng):
d(x, y) =
Công thức này bỏ qua số các đối sánh 0-0, được sử dụng
trong trường hợp mà trọng số của các thuộc tính có giá trị 1 của đối
tượng dữ liệu cao hơn nhiều so với các thuộc tính có giá trị 0.
2.5.2.4. Thuộc tính định danh
Độ đo phi tương tự giữa hai đối tượng x, y được định nghĩa:
d(x,y) =
Trong đó, m là số thuộc tính đối sánh tương ứng trùng nhau,
và p là tổng số các thuộc tính.
2.5.2.5. Thuộc tính có thứ tự
Giả sử i là thuộc tính thứ tự có Mi giá trị (Mi là kích thước
miền giá trị): Các trạng thái Mi được sắp thứ tự như nhau: [1...Mi], ta
có thể thay thế mỗi giá trị của thuộc tính bằng giá trị cùng loại ri với
ri ∈ {1...Mi}.
Mỗi một thuộc tính thứ tự có các miền giá trị khác nhau, vì
vậy ta chuyển đổi chúng về cùng miền giá trị [0,1] bằng cách thực
hiện phép biến đổi sau cho mỗi thuộc tính :


Sử dụng công thức tính độ phi tương tự của thuộc tính
khoảng đối với các giá trị
, đây cũng chính là độ phi tương tự
của thuộc tính có thứ tự.
2.5.2.6. Thuộc tính tỉ lệ
Có nhiều cách khác nhau để tính độ tương tự giữa các thuộc
tính tỉ lệ. Trong thực tế, khi tính độ độ tương tự của các thuộc tính dữ
liệu, người ta chỉ xem xét một phần các thuộc tính đặc trưng đối với
các kiểu dữ liệu hoặc đánh trọng số cho tất cả các thuộc tính dữ liệu.
Với mỗi thuộc tính dữ liệu đã được gán trọng số tương ứng wi (1 i
k ), độ tương đồng dữ liệu được xác định như sau :


10

2.6. Một số phương pháp phân cụm dữ liệu điển hình
2.6.1. Phân cụm phân hoạch
Kỹ thuật này phân hoạch một tập hợp dữ liệu có n phần tử cho
trước thành k nhóm dữ liệu (k<=n) cho đến khi xác định số các cụm
được thiết lập. Mỗi tập con biểu diễn một cụm, số các cụm được thiết
lập là các đặc trưng được lựa chọn trước.
2.6.2. Phân cụm phân cấp
Phương pháp này xây dựng một phân cấp trên cơ sở các đối
tượng dữ liệu đang xem xét. Nghĩa là sắp xếp một tập dữ liệu đã cho
thành một cấu trúc có dạng hình cây dựa theo kỹ thuật đệ quy. Kĩ
thuật này sử dụng hai cách phổ biến đó là: Trộn các cụm
(Agglomerative), thường được gọi là Bottom - Up; phân tách các
cụm (Divisive), thường được gọi là Top- Down.
2.6.3. Phân cụm dựa trên lưới

Phương pháp này chủ yếu tập trung áp dụng cho lớp dữ liệu
không gian. Mục tiêu của phương pháp này là lượng hóa dữ liệu
thành các ô tạo thành cấu trúc dữ liệu lưới. Sau đó, các thao tác phân
cụm chỉ cần làm việc với các đối tượng trong từng ô trên lưới chứ
không phải các đối tượng dữ liệu.
2.6.4. Phân cụm dựa trên mô hình
Phương này cố gắng khám phá các phép xấp xỉ tốt của các
tham số mô hình sao cho khớp với dữ liệu một cách tốt nhất. Dựa
trên cấu trúc hoặc mô hình mà chúng giả định về tập dữ liệu và cách
chúng hiệu chỉnh các mô hình này để nhận dạng ra các phân hoạch.
2.6.5. Phân cụm có dữ liệu ràng buộc
Hầu hết các thuật toán phân cụm dữ liệu không gian hiện nay
cung cấp rất ít cách thức cho người dùng để xác định các ràng buộc
trong thế giới thực. Để phân cụm dữ liệu không gian hiệu quả hơn,
các nghiên cứu bổ sung cần được thực hiện để cung cấp cho người
dùng khả năng kết hợp các ràng buộc trong thuật toán phân cụm.
Một số dạng phân cụm có dữ liệu ràng buộc như phân cụm thống kê,
phân cụm khái niệm, phân cụm mờ, phân cụm mạng Kohonen.


11
2.6.6. Phân cụm dựa trên mật độ
Kỹ thuật này nhóm các đối tượng dữ liệu dựa trên hàm mật độ
xác định, mật độ là số các đối tượng lân cận của một đối tượng dữ
liệu theo một nghĩa nào đó. Trong cách tiếp cận này, khi một dữ liệu
đã xác định thì nó tiếp tục được phát triển thêm các đối tượng dữ liệu
mới miễn là số các đối tượng lân cận này phải lớn hơn một ngưỡng
đã được xác định trước.
CHƯƠNG 3 - ỨNG DỤNG KỸ THUẬT PHÂN CỤM DỮ LIỆU
TRONG NHẬN DẠNG ỨNG DỤNG PORT HOPPING

3.1. Giải pháp nhận dạng ứng dụng Port Hopping
Giải pháp gồm 4 bước miêu tả như sau:
- Bước 1 (Chặn thu lưu lượng mạng): bước này tiến hành
chặn thu các kết nối TCP của các ứng dụng trong máy tính ra ngoài
Internet với một số thông tin cơ bản chứa trong header của gói tin
TCP.
- Bước 2 (Rút trích đặc trưng, tạo bộ dữ liệu phân cụm):
Dựa trên phân tích đặc điểm của ứng dụng Port Hopping và dữ liệu
về kết nối TCP chặn thu được, tiến hành rút trích một số đặc trưng
phù hợp, từ đó tạo ra bộ dữ liệu đầu vào cho thuật toán phân cụm.
- Bước 3 (Phân cụm dữ liệu): Bước này sử dụng thuật toán
DBSCAN để phân cụm dữ liệu từ bước 2.
- Bước 4 (Nhận dạng Port Hoppingdựa trên kết quả phân
cụm): sau khi phân cụm, các dòng dữ liệu liên quan đến ứng dụng
Port Hopping (nếu có) sẽ tồn tại trong cụm lớn nhất. Kết hợp với đặc
điểm số cổng kết nối tối thiểu của một ứng dụng Port Hopping sẽ xác
định đâu là ứng dụng Port Hoppingđang chạy trên máy tính.


12

Hình 1 Giải pháp nhận dạng ứng dụng Port Hopping

3.1.1. Giải pháp chặn thu lưu lượng mạng trên máy tính
Các ứng dụng mạng có thể kết nối đến máy chủ từ xa qua các
giao thức như TCP, UDP, ICMP… tùy theo chức năng của ứng
dụng. Phần mềm nhận dạng ứng dụng Port Hopping chỉ chặn bắt các
kết nối qua giao thức TCP.
Mỗi một kết nối TCP trên gồm 3 giai đoạn: thiết lập kết nối
(quá trình bắt tay 3 bước), truyền dữ liệu, kết thúc kết nối (4 bước).

TCP là giao thức truyền dữ liệu tin cậy. Do đó, trong một kết nối
TCP gồm nhiều gói tin TCP/IP theo cả chiều client-server và serverclient. Cả 3 giai đoạn trong kết nối TCP, các gói tin sử dụng một cặp
cổng duy nhất. Với gói tin theo chiều client-server, cổng nguồn là
cổng ở máy client (mỗi một kết nối TCP sẽ sinh ra 1 cổng khác
nhau), cổng đích là cổng dịch vụ đang lắng nghe trên server. Với gói
tin theo chiều server-client, cổng nguồn chuyển thành cổng đích và
cổng đích chuyển thành cổng nguồn.
Việc chặn bắt kết nối được thực hiện trên từng máy tính cụ
thể. Đặc điểm trong trường hợp này là cho phép xác định các kết nối
được khởi sinh từ ứng dụng nào trong máy tính. Từ đó, qua phân
cụm dữ liệu có thể chỉ rõ ra ứng dụng nào là Port Hopping. Việc
chặn bắt kết nối gồm 3 bước theo sơ đồ sau:


13

Hình 3.2: Sơ đồ chặn bắt lưu lượng mạng

- Bước 1: chặn bắt các gói tin TCP/IP từ bộ nhớ đệm của card
mạng. Việc bắt gói tin từ mạng không xác định gói tin này của ứng
dụng nào. Với mỗi gói tin xác định các trường dữ liệu sau: Thời gian
đến (đi) của gói tin; Địa chỉ nguồn; Địa chỉ đích; Cổng nguồn; Cổng
đích; Độ dài payload của gói tin TCP; Cờ SYN trong phần mào đầu
(header) TCP.
- Bước 2: Sao chép thông tin thống kê về kết nối TCP như (tên
tiến trình, địa chỉ nguồn, địa chỉ đích, cổng nguồn, cổng đích) trên
ứng dụng TCPView. Các thông tin này được ứng dụng TCPView
hiển thị trực quan theo thời gian thực, có chế độ lưu trữ thông tin
thành file text. Tuy nhiên, ứng dụng này không xác định được các
trường dữ liệu của từng gói tin.

- Bước 3: Kết hợp dữ liệu từ bước 1 và bước 2, xây dựng đầy
đủ thông tin về kết nối của các ứng dụng. Các trường thông tin bao
gồm: Tên ứng dụng; Địa chỉ client; Địa chỉ server; Cổng nguồn
(cổng trên client); Cổng đích (cổng dịch vụ trên server); Thời gian
đến (đi) của gói tin đầu tiên; Thời gian đến (đi) của gói tin cuối cùng;
Tổng payload của gói tin TCP gửi từ client đến server; Tổng số gói
tin TCP bật cờ SYN (không bật cờ ACK).
3.1.2. Rút trích đặc trưng tạo dữ liệu phân cụm
Qua khảo sát các giao thông của các ứng dụng Port Hopping
và không Port Hopping, phân tích dữ liệu chặn thu thấy có một số
đặc điểm sau:


14
- Một ứng dụng có thể tạo nhiều kết nối TCP đến máy chủ trên
một hoặc nhiều cổng khác nhau.
- Các ứng dụng Port Hopping thường tạo nhiều kết nối TCP
trên nhiều cổng khác nhau và thay đổi cổng theo thời gian.
- Các ứng dụng không phải Port Hopping chỉ kết nối đến một
hoặc một vài cổng.
- Tổng thời gian các kết nối TCP của ứng dụng Port Hopping
thường không dài. Các ứng dụng không phải Port Hopping thì ngược
lại.
Qua một số đặc điểm trên, kết hợp với dữ liệu chặn thu, đề tài
đề xuất rút trích một số đặc trưng sau phục vụ cho việc phân cụm lưu
lượng mạng để phát hiện ứng dụng Port Hopping:
- Tên ứng dụng: để nhận biết dòng dữ liệu trong dataset thuộc
ứng dụng nào, không tham gia trong các phép tính của thuật toán
phân cụm.
- Giao thức: để nhận biết dạng kết nối chặn thu (mặc định là

TCP), không tham gia trong các phép tính của thuật toán phân cụm.
- Cổng: để nhận biết kết nối TCP trên cổng nào, không tham
gia trong các phép tính của thuật toán phân cụm.
- Thời gian kết nối trung bình: (đơn vị tính là giây), là thời
gian tồn tại trung bình của các kết nối của một ứng dụng đến cùng
một giá trị cổng trên server. Thời gian tồn tại của một kết nối là
khoảng thời gian giữa gói tin đầu tiên đi (đến) và gói tin cuối cùng đi
(đến) trong kết nối đó.
- Khoảng thời gian đổi cổng trung bình: (đơn vị tính là giây),
là thời gian đổi cổng trung bình của các kết nối (của một ứng dụng
cụ thể) đến cùng một giá trị cổng trên server. Thời gian đổi cổng của
một kết nối là khoảng cách giữa thời điểm khởi tạo của kết nối đó
với thời điểm khởi tạo một kết nối khác cùng ứng dụng nhưng khác
cổng.
- Tổng số kết nối: là số kết nối (của một ứng dụng) trên cùng
một giá trị cổng trong thời gian chặn thu.
- Tổng số gói TCP bật cờ SYN: (nhưng không bật cờ ACK) là
số gói tin TCP bật cờ SYN, không bật cờ ACK của các kết nối (của
một ứng dụng) trên cùng một giá trị cổng trong thời gian chặn thu.


15
- Tổng số gói tin từ client-server: là số gói tin theo chiều từ
client đến server của các kết nối (của một ứng dụng) trên cùng một
giá trị cổng trong thời gian chặn thu.
- Payload trung bình client-server: (đơn vị tính KB) là độ dài
payload trung bình của các gói tin TCP trong các kết nối (của một
ứng dụng) trên cùng một giá trị cổng trong thời gian chặn thu.
Như vậy, trong 9 đặc trưng trên, 3 đặc trưng đầu tiên chứa các
thông tin nhận dạng, 6 đặc trưng cuối tham gia vào các phép tính

trong thuật toán phân cụm. Mẫu dữ liệu nhận dạng sau khi rút trích
các đặc trưng có thể hiển thị theo hai dạng như sau:
- Dữ liệu giá trị đặc trưng theo dạng cột:

Hình 3.3: Dữ liệu giá trị đặc trưng theo dạng cột

- Giá trị đặc trưng theo định dạng ARFF của phần mềm weka

Hình 3.4. Dữ liệu giá trị đặc trưng theo định dạng Weka


16
3.1.3. Phân cụm dữ liệu dựa trên thuật toán DBSCAN
Giải thuật DBSCAN (Density Based Spatial Clustering of
Application with Noise) gom cụm dữ liệu không gian dựa trên định
nghĩa cụm là tập tối đa các điểm liên thông về mật độ. Ý tưởng chính
để phát hiện ra các cụm của giải thuật DBSCAN là bên trong mỗi
cụm luôn tồn tại một mật độ cao hơn bên ngoài cụm. Hơn nữa, mật
độ ở những vùng nhiễu thì thấp hơn mật độ bên trong của bất kỳ cụm
nào. Trong mỗi cụm phải xác định bán kính vùng lân cận (Eps)) và
số lượng điểm tối thiểu trong vùng lân cận của một điểm trong cụm
(MinPts). Hình dạng vùng lân cận của một điểm được xác định dựa
vào việc chọn hàm khoảng cách giữa hai điểm p và q, ký hiệu là
dist(p,q). Ví dụ, nếu dùng khoảng cách Mahattan trong không gian
2D thì hình dạng vùng lân cận là hình chữ nhật.
Khái niệm Eps láng giếng (Eps-neighborhood):
Gọi D là tập cơ sở dữ liệu điểm. Eps láng giếng của điểm p, ký
hiệu là NEps(p), được xác định bởi NEps(p) = {q  D | dist(p,q) ≤
Eps}.
Khái niệm Mật độ trực tiếp tiến (directly density –

reachable):
Một điểm p  D là mật độ trực tiếp tiến từ một điểm q  D
khi và chỉ khi: p  NEps(q) và |NEps(q)| ≥ MinPts (điều kiện điểm lõi).
Khái niệm Mật độ tiến ((density–reachable):
Một điểm p là mật độ tiến từ q khi và chỉ khi có một dây
chuyền các điểm p1, …, pn với p1 = q và pn = p mà pi+1 làmật độ trực
tiếp tiến từ pi.
Khái niệm Mật độ liên kết (density-connected):
Một điểm p là mật độ liên kết đến một điểm q khi và chỉ khi
có một điểm o mà cả hai điểm p và q đều mật độ tiến từ o. Một nhóm
là một tập các điểm mật độ liên kết lớn nhất. Nhiễu là điểm không
thuộc nhóm nào.
Khái niệm Nhóm:
Một nhóm C là một tập con không rỗng của D thỏa các điều
kiệu sau:  p, q: nếu p  C và q là mật độ tiến từ p thì q  C.
 p, q  C: p là mật độ liên kết từ q.
Khái niệm Nhiễu:
Gọi C1, …, Ck là các nhóm của tập dữ liệu D. Nhiễu là tập hợp
tất cả các điểm không thuộc bất kỳ nhóm Ci nào với i=1, …, k.


17
Một số bổ đề quan trọng sử dụng trong thuật toán
DBSCAN:
Bổ đề 1: Gọi p là điểm thuộc D và |NEps(p)| ≥ MinPts thì tập O
= {o | o  D và o mật độ tiến từ p} là một nhóm.
Bổ đề 2:Gọi C là một nhóm tìm được thông qua hai tham số
Eps và MinPts và p là một điểm bất kỳ trong C với | NEps (p)| ≥
MinPts thì C bằng tập O = {o | o là mật độ tiến từ p}.
3.1.4. Nhận dạng Port Hopping dựa trên kết quả phân cụm

Kết quả của quá trình phân cụm dữ liệu có thể tạo ra một vài
cụm cụ thể cùng với dữ liệu nhiễu (không phân cụm được). Các dòng
dữ liệu chứa thông tin thống kê về kết nối của các ứng dụng Port
Hopping (nếu có) thông thường sẽ được gom về một hoặc một vài
cụm có số lượng lớn nhất. Việc xác định các ứng dụng Port Hopping
sẽ dựa vào các cụm này. Tuy nhiên, trong quá trình phân cụm, các
dòng dữ liệu chứa thông tin thống kê về kết nối của một số ứng dụng
không phải là Port Hopping có thể vô tình lọt vào cụm của các ứng
dụng Port Hopping. Để loại bỏ trường hợp một số ứng dụng không
phải Port Hopping vẫn xuất hiện trong cụm các lớn nhất, chương
trình thêm tùy chọn “Số cổng tối thiểu của ứng dụng trong cụm lớn
nhất để xác định là Port Hopping” vì các ứng dụng Port Hopping
thường sẽ kết nối đến nhiều cổng. Các ứng dụng nằm trong các cụm
lớn nhất phải thỏa mãn tiêu chí này mới là ứng dụng Port Hopping.
3.2. Xây dựng công cụ nhận dạng ứng dụng Port Hopping
Phần mềm nhận dạng ứng dụng Port Hopping được xây dựng
trên nền tảng .NET Framework, sử dụng ngôn ngữ lập trình C#. Phần
mềm chạy độc lập trên máy tính cá nhân có kết nối Internet. Một số
chức năng chính của phần mềm gồm:
- Chặn bắt kết nối TCP/IP của các ứng dụng đang chạy trên
máy tính.
- Rút trích các đặc trưng của lưu lượng mạng dựa trên dữ liệu
chặn thu.
- Hiển thị, lưu dữ liệu phân cụm thành dạng cột, định dạng
phần mềm Weka.
- Chạy thuật toán DBSCAN phân loại lưu lượng mạng và phát
hiện các ứng dụng sử dụng kỹ thuật Port Hopping.


18

3.3. Thử nghiệm và đánh giá kết quả
3.3.1. Kịch bản thử nghiệm
Việc thử nghiệm được thực hiện trên một máy tính kết nối
Internet, cụ thể:
- Bật nhiều ứng dụng chạy cùng lúc trong quá trình chặn bắt
dữ liệu:
+ Các trình duyệt chrome, firefox, edge: mỗi trình duyệt
bật 2 tab kết nối đến 2 trang web https và http có dữ liệu hiển thị theo
thời gian thực.
+ Ứng dụng đào tiền ảo minergate: đào 3 loại tiền khác
nhau, mỗi mô-đun đào một loại tiền ảo sẽ kết nối đến máy chủ trên
một cổng khác nhau.
+ Ứng dụng skype, có đăng nhập.
+ Các ứng dụng P2P (peer-to-peer) như Lime, FrostWire,
gIFt, Shareaza.
+ Chương trình diệt virus Avast.
- Số gói tin TCP/IP chặn bắt: khoảng 30.000 gói. Số dòng xử
liệu sau khi rút trích đặc trưng là 861.
- Tổng thời gian chặn bắt: 9 phút 16 giây.
Quá trình chặn bắt dữ liệu được thể hiện ở hình sau:

Hình 3.5. Quá trình chặn bắt lưu lượng mạng

3.3.2. Kết quả thử nghiệm
Sau khi thử chạy thuật toán DBSCAN với một số giá trị
Epsilon và MinPts khác nhau để kiểm tra độ phân cụm, đề tài đề xuất
cặp giá trị (Epsilon,MinPts) = (10,5). Kết quả phân cụm như sau:


19

- Phân thành đúng 1 cụm với 839/861 dòng (chiếm 97.44%)
- Dữ liệu nhiễu có 22/861 dòng (chiếm 2.56 %).
Việc xác định ứng dụng nào là Port Hopping sau phân cụm
dựa vào cụm lớn nhất với việc thống kê số cổng khác nhau đã kết nối
của từng ứng dụng. Để loại bỏ trường hợp một số ứng dụng không
phải Port Hopping vẫn xuất hiện trong cụm lớn nhất, chương trình
thêm tùy chọn “Số cổng tối thiểu của ứng dụng trong cụm lớn nhất
để xác định là Port Hopping” vì các ứng dụng Port Hopping thường
sẽ kết nối đến nhiều cổng.
Với tùy chọn số cổng tối thiểu là 3, số các ứng dụng được
chương trình tự động nhận dạng sau phân cụm là : LimePro.exe,
FrostWire.exe, giFtl.exe, Unknown. Các ứng dụng còn lại không
phải là Port Hopping.
Kết quả nhận dạng thể hiện ở hình sau, trong đó số cụm lớn
nhất chiếm 97.44% số dòng, còn lại là cụm nhiễu. Số ứng dụng nhận
dạng Port Hopping là 4.

Hình 3.6. Kết quả phân cụm và nhận dạng

3.3.3. Đánh giá kết quả
Để nhận dạng ứng dụng Port Hopping dựa vào tập dữ liệu với
các đặc trưng đã xác định ở trên, đề tài áp dụng thuật toán phân cụm
DBSCAN. Đây là một thuật toán khá hiệu quả trong vấn đề phân loại


20
lưu lượng mạng. Với kịch bản thử nghiệm ở trên, kết quả nhận dạng
thể hiện ở bảng sau:
- Với các ứng dụng là Port Hopping:
Số ứng dụng tham gia thử nghiệm

Số ứng dụng nhận dạng chính xác
Số ứng dụng nhận dạng không chính xác

4 (100%)
3 (chiếm 75%)
1 (chiếm 25%)

- Với các ứng dụng không phải là Port Hopping:
Số ứng dụng tham gia thử nghiệm
Số ứng dụng nhận dạng chính xác
Số ứng dụng nhận dạng không chính xác

9 (100%)
8 (chiếm 88.88%)
1 (chiếm 11.12%)

Với các ứng dụng Port Hopping như LimePro.exe,
FrostWire.exe, giFTl.exe khởi tạo rất nhiều kết nối ra ngoài Internet
trên nhiều cổng khác nhau trong thời gian chặn thu lưu lượng mạng,
do đó chúng được nhận dạng chính xác. Tuy nhiên, có một ứng dụng
khác là Shareaza.exe cũng là ứng dụng Port Hopping nhưng không
được nhận dạng bởi không khởi tạo đủ số kết nối cần thiết. Ngoài ra,
tất cả kết nối từ máy tính ra ngoài Internet nhưng không xác định
được khởi tạo từ ứng dụng nào thì được gán vào ứng dụng
“Unknow.exe”. Do đó, phần mềm có thể nhận dạng nhầm ứng dụng
“Unknown.exe” thành ứng dụng Port Hopping nếu như ứng dụng này
chứa nhiều kết nối từ các ứng dụng Port Hopping thực sự.


21

KẾT LUẬN
1. Kết quả đạt được
1.1. Về mặt lý thuyết
- Tìm hiểu được kỹ thuật lẩn tránh, trong đó tập trung tìm
hiều kỹ thuật Port Hopping (nhảy cổng).
- Nghiên cứu về lưu lượng mạng, giao thức TCP/IP, giải pháp
chặn bắt, phân tích gói tin TCP.
- Tìm hiểu các kỹ thuật phân cụm dữ liệu, nghiên cứu kỹ thuật
toán DBSCAN và khả năng ứng dụng trong phân cụm lưu lượng
mạng.
1.2. Về mặt thực tiễn
- Luận văn đã đưa ra được giải pháp chặn thu lưu lượng mạng
từ các ứng dụng trong máy tính, xác định chính xác kết nối nào xuất
phát từ ứng dụng nào.
- Đưa ra giải pháp nhận dạng ứng dụng Port Hopping dựa trên
kỹ thuật phân cụm, cụ thể giải thuật DBSCAN.
- Kết hợp các giải pháp trên, xây dựng thành công phần mềm
có khả năng chặn bắt lưu lượng trên máy tính và nhận dạng các ứng
dụng Port Hopping thông qua kỹ thuật phân cụm dữ liệu, giúp quản
trị viên có thể nhanh chóng xác định các phần mềm sử dụng kỹ thuật
lẩn tránh Port Hopping không mong muốn đang chạy trên máy tính.
2. Hạn chế
- Giao diện chương trình chưa chuyên nghiệp.
- Việc thử nghiệm mới chỉ trên một máy tính cụ thể với một số
lượng các phần mềm Port Hopping hạn chế.
- Kết quả nhận dạng còn có sai sót.
3. Hướng phát triển
- Nghiên cứu rút trích các đặc trưng phù hợp hơn cho quá
trình phân cụm, tăng độ chính xác trong việc nhận dạng ứng dụng
Port Hopping.

- Nghiên cứu ứng dụng kỹ thuật phân cụm nhằm phát hiện các
dạng xâm nhập trái phép vào máy tính.



×