5. Bố ục cc ủa luận ỏn
2.3.1 Thuật toỏn lấy mẫu
Thuật toỏn lấy m u mụ t quỏ trỡnh c sẫ ả ơ ở lựa ch n cỏc m u l u lọ ẫ ư ượng, hi n ệ
nay cú ba thuật toỏn lấy mẫu phổ biến, bao gồm: lấy mẫu hệ thống, lấy mẫu ngẫu nhiờn và lấy mẫu phõn tầng.
2.3.1.1 Lấy mẫu hệ thống
Lấy mẫu hệ thống là quỏ trỡnh lựa chọn đ ểi m bắt đầu và thời lượng của cỏc khoảng lấy mẫu theo một hàm xỏc định. Vớ dụ, cú thể chọn một cỏch định k ph n ỳ ầ
tử thứn của d li u o ho c ch n t t c cỏc gúi ữ ệ đ ặ ọ ấ ả đến t i nh ng th i i m xỏc ạ ữ ờ đ ể định trước. Trong thực tế cú những quỏ trỡnh lấy mẫu mặc dự khụng theo những hàm tuần hoàn nhưng nếu quỏ trỡnh lựa chọn được xỏc định trước thỡ vẫn gọi là lấy mẫu một cỏch cú hệ thống. Kết quả của thuật toỏn lấy mẫu hệ thống này mang trong nú
nguy cơ làm sai lệch kết quả phõn tớch, đặc biệt nếu như tớnh hệ thống của quỏ trỡnh lấy mẫu tương đồng với tớnh hệ thống của quỏ trỡnh ngẫu nhiờn quan sỏt được (là quỏ trỡnh xảy ra của một đặc tớnh nào đú trong mạng) thỡ xỏc suất k t quế ả ấ l y mẫu bị
thiờn lệch là r t cao. ấ
2.3.1.2 Lấy mẫu ngẫu nhiờn
Thuật toỏn lấy mẫu ng u nhiờn ch n i m b t ẫ ọ đ ể ắ đầu c a cỏc kho ng l y m u theo ủ ả ấ ẫ
1 tiến trỡnh ngẫu nhiờn, nghĩa là việc l a chự ọn cỏc phầ ử ưn t (l u lượng) để l y m u là ấ ẫ
sự kiện độc lập nhau và do đú kết quả ự đ d oỏn cỏc thụng số ư l u lượng g c trong quỏ ố
trỡnh phõn tớch sau này ớt thiờn lệch hơn. Khỏc với thuật toỏn lấy mẫu cú hệ thống, thuật toỏn này yờu cầu ph i cú cỏc b t o s ngả ộ ạ ố ẫu nhiờn, theo đú cú hai loại lấy mẫu ngẫu nhiờn như sau:
- Lấy mẫu n từ tập N. như tờn g i c a nú, thuọ ủ ật toỏn này thực hiện lấy mẫu n
phần tử từ tập chung N phầ ửn t . Vớ d , cú th dựng b tụ ể ộ ạo s ng u nhiờn ố ẫ để tạo ta ra n số ngẫu nhiờn khỏc nhau trong phạm vi [1, N] sau ú chđ ọ ấn t t cả cỏc gúi cú vị trớ trựng v i cỏc s ng u nhiờn ú. D dàng th y là k t qu lớ ố ẫ đ ễ ấ ế ả ấy m u c a ẫ ủ
thuật toỏn này là tập cú kớch thước cốđịnh N.
- Lấy mẫu theo xỏc suất. với thu t toỏn l y m u d ng này thỡ vi c quy t ậ ấ ẫ ạ ệ ế định l a ự
chọn một phần t hay khụng ử được th c hi n theo m t qui luự ệ ộ ật xỏc suất cho trước, vớ dụ cú thể tung một đồng xu và sẽ chọn tất cả cỏc gúi mà đồng xu này hiện mặt ngửa (phõn bố Bộc nu li), do đú kớch thước của tập lấy mẫu theo thu t ậ
toỏn này sẽ cú kớch thước thay đổi. Qui luật xỏc suất cho vi c l a ch n mệ ự ọ ẫu khụng nhất thiết phải giống nhau với mọi gúi, do đú người ta phõn biệt hai kiểu thuật toỏn lấy mẫu theo xỏc suất là: (i) lấy mẫu xỏc suất đồng nhất (qui luật xỏc suất của tất cả cỏc gúi là như nhau) và (ii) lấy mẫu xỏc suất khụng đồng nhất (qui luật xỏc suất cú thể biến đổi theo từng gúi). Trong trường h p (i) cỏc gúi ợ được lựa ch n l y m u m t cỏch ọ ấ ẫ ộ độc lập với xỏc suất đồng nhất là p, và thuật toỏn này cú thể là lấy mẫu theo thời gian vỡ thế thường được gọi là lấy mẫu ngẫu nhiờn theo phõn bố hỡnh học. Đối v i trớ ường h p (ii) thỡ vi c lợ ệ ựa ch n l y m u ọ ấ ẫ
một gúi lưu lượng nào đấy cú thể thay đổi phụ thuộc cỏc đầu vào của quỏ trỡnh, thuật toỏn lấy mẫu loại này thường được dựng trong cỏc trường hợp muốn chỳ trọng lấy mẫu một số loại gọi hiếm khi xảy ra nhưng lạ ấi r t quan trọng. Việc khắc phục sự thiờn lệch trong kết qu dả ự đ oỏn thụng s lố ưu lượng g c sau này ố được thực hiện b ng cỏch tiờu chuằ ẩn hoỏ cỏc giỏ tr mị ẫu. Th c ra thỡ thu t toỏn ự ậ
thỏi luồng khụng đồng nhất, theo đú vi c l a chệ ự ọn m t gúi ộ để lấy m u hay ẫ
khụng, khụng chỉ phụ thuộc vào xỏc suất p của gúi đú mà cũn phụ thuộc vào trạng thỏi của luồng thụng tin tương ứng của gúi đú. Vớ dụ: khi xem xột một gúi, thỡ nếu nh nú thuư ộc một luồng ó tđ ồn tại thỡ nhất định gúi sẽ được lấy mẫu và bản ghi của luồng tương ứng sẽ được cập nhật, cũn nếu như nú khụng thuộc một luồng nào hiện cú thỡ sẽđược lấy mẫu với xỏc suất p (thay đổi theo từng gúi) và một bản ghi luồng mới được tạo ra.
2.3.1.3 Lấy mẫu phõn tầng
í tưởng chớnh đằng sau thuật toỏn lấy mẫu này là nhằm tăng độ chớnh xỏc của quỏ trỡnh phõn tớch kết quả đo bằng cỏch sử dụng cỏc thụng tin “m c nhiờn” ặ
(priori). Theo đú thuật toỏn này chia quỏ trỡnh lấy mẫu thành nhiều bước: bước thứ
nhất cỏc phần tử củ ậa t p d li u o ữ ệ đ được nhúm thành cỏc nhúm con theo một đặc
đ ểi m cho trước, và bước ti p theo cỏc gúi ế được l y m u trong t ng nhúm con này. ấ ẫ ừ Độ tương quan giữa cỏc thu c tớnh s dộ ử ụng để phõn lo i nhúm và thuạ ộc tớnh quan tõm (trong quỏ trỡnh phõn tớch sau này) càng cao thỡ quỏ trỡnh lấy mẫu càng dễ dàng và hệ số phõn t ng càng cao. Vớ d nầ ụ ếu thu c tớnh phõn lo i nhúm và thuộ ạ ộc tớnh quan tõm hoàn toàn giống nhau thỡ rừ ràng cỏc nhúm dữ liệu chớnh là đại diện của những thuộc tớnh lưu lượng cần đo do đú chỉ cần lấy một cỏch tuỳ ý 1 gúi trong mỗi nhúm con.
2.3.2 Tần số ấ l y mẫu và khoảng lấy mẫu
Cú thể phõn biệt cỏc kỹ thuậ ất l y m u l u lẫ ư ượng b ng s ki n kớch ho t quỏ trỡnh ằ ự ệ ạ
lấy mẫu, nghĩa là sự kiện gỡ khởi tạo việc bắt đầu và kết thỳc khoảng thời gian lấy mẫu. Đ ềi u này cho thấy cú hai thụng số quan trọng của quỏ trỡnh lấy mẫu là tần số lấy mẫu và khoảng lấy mẫu (cú thể đ o b ng th i gian hay b ng s lằ ờ ằ ố ượng gúi). Nhỡn chung cú thể phõn biệt 3 phương phỏp hay kỹ thuật lấy mẫu theo s ki n kớch ho t ự ệ ạ
quỏ trỡnh lấy mẫu, đó trỡnh bày 1 phần ở trờn, bao gồm:
- Kớch hoạt theo số lượng gúi (lấy m u theo s ki n), ngh a là sẫ ự ệ ĩ ự ki n m t s ệ ộ ố
lượng gúi nhất định đến (hệ thống đo) sẽ kớch hoạt việc bắt đầu và/hoặc kết thỳc khoảng lấy mẫu, vớ dụ như trường hợp lấy mẫu gúi cú hệ thống 1 từ N gúi. - Kớch hoạt theo thời gian (lấy m u theo th i gian), õy thẫ ờ ở đ ờ đ ểi i m đến c a gúi ủ
quyết định việc gúi cú được lấy mẫu hay khụng, vớ dụ cú thể lấy m u gúi sau ẫ
mỗi 30s. Nếu như sự ki n kớch ho t s kệ ạ ự ết thỳc kho ng l y m u c ng là th i ả ấ ẫ ũ ờ
cũng được đo bằng thời gian và kớch thước tệp dữ liệu lấy mẫu là khụng biết trước (cú thể là 0).
- Và kớch hoạt theo nội dung gúi, theo đú nội dung của gúi hay 1 phần của gúi (tiờu đề, tải tin hay cả hai) sẽ quyết định cú kớch hoạt khoảng lấy mẫu hay khụng. Phương phỏp này yờu cầu phải cú mẫu chuẩn để so sỏnh hoặc một hàm xử lý gúi cần lấy mẫu để so sỏnh với một tiờu chớ đặt ra nào đú.
2.4 Phần m m BKCAP ề
2.4.1 Yờu cầu thiết k ế
Với mục đớch nhằm thu thập dữ liệu thực tế phục vụ cho cỏc phộp phõn tớch và mụ hỡnh hoỏ cỏc đặc tớnh quan trọng c a lu ng l u lủ ồ ư ượng Internet, NCS đó nghiờn cứu phỏt triển một cụng cụ khụng những cho phộp bắt giữ cỏc gúi lưu lượng truy n ề
trờn mạng mà cũn cung cấp nhiều khả năng khỏc nh túm t t l u lư ắ ư ượng thành t ng ừ
luồng và tổ chức lưu trữ chỳng dưới dạng cơ sở dữ liệu quan h , ệ đồng th i cú kh ờ ả
năng cập nhật cỏc giao thức mới.
Như đ ó núi ở trờn, cỏc cụng cụ thu th p l u lậ ư ượng Internet mó nguồn m hi n cú ở ệ
tồn tại nhiều nhược đ ểi m và hạn chế, vớ dụ:
- Chỳng (như Ethereal) thường hoạt động rất kộm ổn định.
- Khả năng b t m t lắ ộ ượng l n l u lớ ư ượng c a chỳng r t hủ ấ ạn ch , khi lế ưu lượng quỏ lớn thường bị treo
- Thường khụng cú cỏc thuật toỏn lấy m u lẫ ưu lượng cần thi t nhế ằm giảm dữ
liệu o đ
- Chỉ ỗ h trợ ộ m t số lượng giao thứ ức ng dụng và m ng hạ ạn chế
Cỏc phần mềm thương m i thỡ chi phớ l i rạ ạ ấ ớt l n và thường ph c v cỏc m c ụ ụ ụ đớch chung, khụng thớch h p v i cỏc v n ợ ớ ấ đề nghiờn c u c thứ ụ ể ủ c a lu n ỏn này. ậ
Vỡ lẽ đ ú BKCAP đó được phỏt triển để kh c phắ ục những hạn chế này, tuy nhiờn NCS cũng khụng xõy dựng phần mềm BKCAP từđầu mà cú sử dụng m t s ph n ộ ố ầ
từ cỏc phần mềm mó nguồn mở cú sẵn như TCPDUMP, ETHEREAL, WINPCAP, vv...và chỉ tập trung kh c ph c nh ng h n ch cắ ụ ữ ạ ế ủa chỳng đồng th i chỳ tr ng phỏt ờ ọ
triển khả năng l y m u và giấ ẫ ải mó cỏc giao th c mứ ới cũng như tổ ch c l u tr dứ ư ữ ữ
liệu đo dưới dạng cơ s dở ữ liệu quan hệ.
Một cỏch túm tắt, phần mềm BKCAP cú những đặc i m chớnh sau đ ể đõy:
(i) Dựa trờn chuẩn bắt gúi TCPDUMP và thư ệ vi n cỏc hàm Libpcap và ch y ạ
(ii) Khả năng b t gi gúi: sắ ữ ử dụng ch yủ ếu kh nả ăng c a th vi n libpcap cho ủ ư ệ
phộp bắt giữ gúi tại mạng nội bộ hoặc trờn một mỏy ở xa theo chếđộ bắt gúi chủ động (thậm chớ cả trong trường hợp mỏy ở xa nằm sau firewall). Phần mềm BKCAP cú thể hoạt động ở cả hai ch ế độ là b t gúi tr c tuy n trờn ắ ự ế
mạng hoặc phõn tớch gúi trong cỏc tệp dữ liệ ưu l u lượng lưu tr (ữ trace)
(iii) Khả năng gi i mó giao th c: NCS ả ứ đó phỏt triển mộ ỹt k thu t m i cho phộp ậ ớ định nghĩa c u trỳc gúi giao th c và cỏc qui lu t gi i mó chỳng trong cỏc file ấ ứ ậ ả
dạng XML như sau:
<bkdecode>
<proto name="_startproto">
<!– xỏc định tiờu đề giao thức đầu tiờn --> <!– xuất hiện trong gúi bắt được -->
</proto> <proto name="FirstProto"> <fields> <!—- danh sỏch cỏc trường --> </fields> <nextproto> <!—thụng tin về encapsulation --> </nextproto> </proto> <!-- Cỏc giao thức khỏc --> <proto name="_defaultproto"> <!– "Last resort" protocol --> </proto>
</bkdecode>
Đõy th c sự ự là m t c i ti n quan tr ng cho phộp, trong quỏ trỡnh ho t ộ ả ế ọ ạ động của chương trỡnh, nh nghđị ĩa cỏc giao thức mạng và ng d ng mứ ụ ới phỏt sinh.
(iv) Khả năng l y m u l u lấ ẫ ư ượng: với mụ đc ớch gi m lả ượng d li u o và t ữ ệ đ ừ
thư viện libpcap nghiờn cứu sinh đó phỏt triển và ỏp dụng phương phỏp lấy mẫu gúi ngẫu nhiờn theo hai phương thức lấy mẫu theo thời gian và l y mấ ẫu theo sự kiện. Theo đú BKCAP cho phộp lựa chọn phương thức lấy mẫu, hoặc cứ sau N giõy thỡ tiến hành bắt giữ 1 gúi hoặc cứ sau khi quan sỏt thấy N gúi thỡ bắt giữ 1 gúi. Đõy là cơ sở quan trọng cho việc phỏt triển cỏc thuật toỏn lấy mẫu phức tạp hơn sau này, vớ dụ cú thể lấy mẫu cỏc gúi v i xỏc suớ ất tuõn theo một phõn bố phự hợp với phõn bố chuỗi thời gian phỏt gúi tổng hợp của cỏc ứng dụng hay thực hiện lấy mẫu ở mức luồng thay vỡ mức gúi như ở trờn. (v) Khả năng o lđ ường ch ủ động: mặc dự được thiết kế chủ yếu nh m o ằ đ
giỏm sỏt khả ă n ng kết nối đến cỏc nỳt đầu cuố ởi xa bằng việc chủđộng phỏt lưu lượng thăm dũ (cỏc gúi ICMP ECHO) đến nỳt ở xa và bắt gi ph n h i ữ ả ồ đểđo lường phả ứn ng c a m ng, toàn b cỏc d li u ủ ạ ộ ữ ệ đo cú th ể được l u trư ữ để tham khảo sau này.
(vi) Khả năng giỏm sỏt: BKCAP cho phộp tựđộng phỏt hi n cỏc mỏy ang ho t ệ đ ạ động (trờn mạng LAN) v i cỏc tham sớ ố liờn quan nh ư địa ch IP, ỉ địa ch ỉ
MAC hoặc tờn mặc định của mỏy (WINS) và cả tỡnh trạng của mỏy (hoạt động hay khụng). Ngoài ra cũn cho phộp, trong chừng mực nào đú, phỏt hiện việc giả mạo địa chỉ IP (b ng cỏch phỏt hi n m t ằ ệ ộ địa ch IP g n li n v i ỉ ắ ề ớ
nhiều địa chỉ MAC). Cuối cựng, BKCAP cũn cho phộp giỏm sỏt cỏc phiờn làm việc TCP/UDP/ICMP, lưu trữ cỏc bản tin về phiờn làm việc trong một khoảng thời gian nhất định vào cơ sở dữ ệ li u ph c v cho vi c phõn tớch sau ụ ụ ệ
này
(vii) Hỗ trợ lưu tr lữ ưu lượng o trờn ki n trỳc c sđ ế ơ ở dữ ệ li u quan hệ đơn giản: BKCAP ỏp dụng kiến trỳc cơ sở dữ ệ li u quan h (SQLite) vào vi c t ệ ệ ổ
chức lưu trữ cỏc thụng s thố ống kờ quan trọng của dữ liệ đu o v cỏc lu ng ề ồ
lưu lượng trờn mạng, phục vụ cỏc mục đớch phõn tớch và đỏnh giỏ thống kờ lưu lượng mạng. Đõy là cải tiến quan trọng thứ hai của BKCAP vỡ nú cho phộp bắt giữ và lưu trữ một kh i lố ượng l n l u lớ ư ượng và t o ra nhi u kh ạ ề ả
năng ứng dụng sau này vớ dụ phỏt hiện cỏc lưu lượng bất thường, hay quan sỏt xu hướng biến thiờn của nú. (viii) Khả năng qu n lý s ki n: cuả ự ệ ối cựng ph n m m BKCAP cú m t mụ un ầ ề ộ đ cho phộp quản lý cỏc sự kiện xảy ra với cỏc mụ đun khỏc của chương trỡnh và thực hiện nh ng hành ữ động thớch hợp trước cỏc sự kiệ đn ú. Người dựng cú thể tuỳ ế bi n cỏc s ki n này. ự ệ 2.4.2 Thiết kế ệ h th ng ố Hỡnh 2-2 dưới đõy mụ tả kiến trỳc cỏc thành phần và cơ chế hoạt động của phần mềm BKCAP. Hệ thống dựng cỏc hàm thư viện Winpcap (phiờn bản Windows của Libpcap) để bắt cỏc gúi l u lư ượng truy n trong m ng, v i card giao ti p m ng ề ạ ớ ế ạ
hoạt động ở chế độ thu nh n toàn bậ ộ cỏc gúi nhỡn thấy trong mạng (chế độ promiscuous).
Trong khối bắt gúi này cú hai khối chức năng con quan trọng là thuật toỏn lấy m uẫ và cỏc bộ ọ l c gúi.
- Thuật toỏn lấy mẫu: BKCAP thực hiện hai thuật toỏn lấy m u ngẫ ẫu nhiờn theo thời gian và theo sự kiện đú là cứ sau khi quan sỏt thấy N gúi thỡ ti n hành lế ấy mẫu 1 gúi hoặc cứ sau N đơn vị thời gian (s) thỡ tiến hành lấy mẫu 1 gúi. Người dựng cú thể chọn giỏ tr N tuị ỳ theo mụ đc ớch nghiờn cứu của mỡnh.
- Về cỏc bộ lọc gúi thỡ BKCAP hoàn toàn sử dụng cỏc b lộ ọc s n cú tẵ ương đối
đầy đủ của th viư ện Winpcap, cho phộp l c gúi l u lọ ư ượng theo cỏc giao thứ ức ng dụng, giao thức vận chuyển hoặc giao thức m ng. Cỏc b lạ ộ ọc gúi này m c dự ặ được định nghĩa b i ngở ười dựng ở ớ ứ l p ng d ng nh ng nú ụ ư được ỏp d ng cho cỏc ụ
gúi đang nằm trong bộ nhớ lớp liờn k t d li u (c a hàm giao tiế ữ ệ ủ ếp card mạng),
đ ềi u này cho phộp c i thi n ỏng k hi u su t b t gúi, do nhả ệ đ ể ệ ấ ắ ững gúi khụng qua
được bộ lọc s khụng ẽ được l u tr và chuy n lờn cỏc l p trờn vỡ th khụng yờu ư ữ ể ớ ế
cầu xử lý của hệ thống.
Cỏc gúi sau khi bắt giữ sẽ được chuy n ti p cho kh i gi i mó giao thể ế ố ả ức để thực hiện việc đọc thụng tin tiờu đề cũng nh nư ội dung gúi tin. Vi c gi i mó cỏc giao ệ ả
thức được thực hiện thụng qua cỏc mụ tả khuụn dạng dữ liệu giao thức cũng như