Phát hiện sớm những nguy cơ tiềm ẩn sẽ giúp nhà quản trị đưa rabiện pháp xử lýkịp thời và hiệu quả nhằm đảm bảo an toàn cho thống mạng.hệ IDS là một hệ thống có thể giải quyết được vấn đ
Trang 1Chuyên ngành: Truyề n thông và M ng máy tính ạ
LUẬN VĂN THẠC SĨ Ỹ K THU T Ậ Truy n thông và M ng máy tính ề ạ
Người hướ ng d n: TS Tr n Hoàng H i ẫ ầ ả
Trang 22
C NG HÒA XÃ H I CH Ộ Ộ Ủ NGHĨA VIỆT NAM
Độ ậ – ự c l p T do H nh phúc – ạ
B N XÁC NH N CH Ả Ậ Ỉ NH SỬA LUẬN VĂN THẠC SĨ
H và tên tác gi ọ ả luận văn: Lê Thanh Tu n ấ
Đề tài lu n văn: H ng phát hi n xâm nh p m ng phân tán v Snort, Chukwa, ậ ệthố ệ ậ ạ ới Hadoop và Syslog Ng-
Chuyên ngành: Truy n thông và M ng máy tính ề ạ
Mã số SV: CA160462
Tác gi , ả Ngườ hưới ng d n khoa h c và H i ng ẫ ọ ộ đồ chấ luậ vănm n xác nh n gi ậ tác ả đã
s a ử chữa, b ổsung luậ văn theo n biên b n h p H i ng ngày 26/04/2018 ả ọ ộ đồ
Trang 33
MỤC LỤC DANH MỤ C HÌNH V 5 Ẽ DANH MỤ C B NG 6 Ả DANH MỤC ĐỒ TH 6 Ị DANH MỤ C T VI T T T 6 Ừ Ế Ắ
L C M Ờ I Ả ƠN 7
TÓM T T Ắ 8
Chương ĐẶ I: T VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP 9
1.1 Mở đầ u 9
1.2 Vấn đề toàn an mạng và giải pháp phân tích file log từ IDS phân tán 9
1.3 Lý do ch ọn đề tài 10
1.4 Phạ vi đề tài 11 m 1.6 M tiêu c ụ c ủa đề tài .14
1.7 Định hướ ng các gi ả i pháp triển khai đề tài 15
1.8 L s i quy t v n ị ch ử giả ế ấ đề 16
Chương II: CƠ SỞ LÝ THUY T Ế 18
2.1 H ng phát hi n xâm nh p m ệ thố ệ ậ ạ ng 18
2.1.1 Phương thứ c phát hi n xâm nh p c a IDS ệ ậ ủ 19
2.1.2 Phân lo i IDS ạ 21
2.1.3 Snort - ng d Ứ ụ ng ủa IDS 25 c 2.2 H ng t p h p d u Chukwa ệ thố ậ ợ ữ liệ 26
2.3 H ệ Thố ng t p h p d ậ ợ ữ liệu Syslog- NG 27
2.4 Mô hình MapReduce 28
2.4.1 Giớ i thi u v MapReduce ệ ề 28
2.4.2 Kiế n trúc c a MapReduce ủ 29
2.4.3 Nguyên t c ho ắ ạt độ ng c a MapReduce 30 ủ 2.5 H ng phân tán v i Apache Hadoop ệ thố ớ 31
2.5.1 Giớ i thi u v Apache Hadoop ệ ề 31
2.5.2 H ng t p tin phân tán c a Hadoop HDFS ệ thố ậ ủ – 32
2.5.3 Kiế n trúc c a HDFS ủ 33
2.5.4 Nguyên t c ho ắ ạt độ ng c a HDFS 35 ủ CHƯƠNG III: MÔ HÌNH VÀ KẾ T QU Ả THỰ C NGHI M Ệ 38
Trang 44
3.1 Mô hình đề xuất 38
3.1.1 T ng quan v h ổ ề ệ thống 38
3.1.2 Mô hình, ki n trúc c a h ế ủ ệ thống 38
3.1.3 Thi t k ế ế cơ sở ữ d u liệ 41
3.2 Cài đặ ụ t c m máy ch ủ Hadoop đề xuấ 42 t 3.2.1 Cài đặ t Apache Hadoop 43
3.2.2 Cài đặ t Snort 50
3.2.3 Cài đặ t Apache chukwa 59
3.2.4 Cài đặ t Syslog- Ng 65
3.3 K t qu c nghi m ế ả thự ệ 66
3.3.1 Thí nghiệm để đánh giá hiệu năng của mô hình đề ấ xu t 66
3.3.2 So sánh gi a Snort, Chukwa, Hadoop và Syslog- ữ ng 68
3.3.3 Đánh giá và nhậ n xét 68
CHƯƠNG IV: KẾ T LU ẬN VÀ HƯỚ NG PHÁT TRI N 70 Ể 4.1 K t qu ế ả đạt đượ c 70
4.1.1 V nghiên c u ề ứ 70
4.1.2 V ng d ề ứ ụ ng 70
4.1.3 V các m ề ặ t khác 70
4.2 Những điể m còn h n ch ạ ế 70
4.3 Định hướ ng phát tri ển trong tương lai 71
TÀI LIỆU THAM KH O Ả 72
Trang 55
DANH MỤC HÌNH VẼ
Hình 2.1: Mô tả ạ ộ ho t đ ng c a IDS nh n d ng theo d u hi u 20 ủ ậ ạ ấ ệHình 2.2:Mô tả ạ ộ ho t đ ng c a IDS nh n d ng theo b t thư ng 20 ủ ậ ạ ấ ờHình 2.3: Tổng quan v ềNIDS và HIDS 24 Hình 2.4: Logo của Snort 25 Hình 2.5: Kiến trúc c a Snort 26 ủHình 2.6: Kiến trúc c a Chukwa 30 ủHình 2.7: Kiến trúc c a Syslog- 31ủ ngHình 2.8: Kiến trúc c a MapReduce 32 ủHình 2.9: T ng quan mô hình hoổ ạt động MapReduce c a Google [5] 34ủHình 2.10: Các thành ph n c a Hadoop 36ầ ủHình 2.11: Kiến trúc c a HDFS 37 ủHình 2.12: Quá trình đọc dữ ệ li u trong HDFS 26 Hình 2.13: Quá trình ghi d u trong HDFS 27ữliệHình 3.1: Hệ ố th ng Snort phân tán 39 Hình 3.2: Kiến trúc t ng quan c a h th ng 40 ổ ủ ệ ốHình 3.3: Kiến trúc c a c m máy ch Hadoop ủ ụ ủ trong mô hình được đề xu t 41 ấ
Trang 66
DANH MỤC BẢNG
B ng 1: Cả ấu trúc cơ sở ữ d u 42liệ
B ng 2: Kả ết quả thí nghiệm đánh giá 67
DANH MỤC ĐỒ THỊ
Đồ ị th 1: Biểu đồ ế k t qu thí nghiả ệm đánh giá 67
DANH MỤC TỪ VIẾT TẮT
STT Từ viết tắt Ý nghĩa
1 IDS Intrusion ectection ystem D S
2 NIDS Network-based ntrusion ectection ystem I D S
3 HIDS Host-based ntrusion ectection ystem I D S
4 VPN Virtual rivate etwork P N
5 HTTP Hyper ext ransfer rotocol T T P
6 RDBMS Relative ata ase anagement ystem D B M S
7 SQL Structured uery anguage Q L
8 HDFS Hadoop istributed ile ystem D F S
9 XML e tensible X Markup L anguage
10 CPU Central rocessing nit P U
11 RAM Random ccess emory A M
Trang 77
LỜI CẢM ƠN
Trong suốt thời gian thực hiện đề tài luận văn, chúng em luôn nhận được sự giúp
đỡ quý báo từ quý Thầy, Cô, anh(chị), bạn bè và sự ủng hộ động viên của người thân, gia đình để chúng em có thể hoàn thành đềtài mình của
Đầu tiên, em xin gởi lời cảm ơn đến Viện Công Nghệ Thông Tin và Truyền Thông – Trường Đại học Bách Khoa Hà Nội đã tạo điều kiện thuận lợi cho em học tập nghiên cứu và thực hiện đề tài
Tiếp theo, chúng em xin chân thành cảm ơn quý Thầy, Cô viện Công Nghệ Thông Tin và Truyền Thông, người đã dạy dỗ và truyền đạt những kiến thức quý báo cho emtrong những năm vừa qua, để em có đủ kiến thức kỹ năng để hoàn thành luận văn.Đặc biệt, chúng em xin bày tỏ lòng biết ơn sâu sắc đến thầy giáo TS Trần Hoàng Hải, người đã trực tiếp hướng dẫn trong em suốt thời gian thực hiện đề tài.Thầy không những là người truyền đạt những kiến thức cần thiết cho chúng em còn làmà người động viên tinh thần, giúp đỡchúng em vượt qua những khó lúc khăn để hoàn thành đề tài Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu xót, em mong nhận được sự cảm thông và tận tình chỉ bảo của quý thầy, cô và các bạn
Em xin chân thành cảm ơn!
Hà Nội, ngày 21 tháng 04 năm 2018
Sinh viên thực hiện đề tài
Lê Thanh Tuấn
Trang 88
TÓM TẮT
An ninh thông tin nói chung và ninh an mạng nói riêng đang là vấn đề được quan tâm không chỉ ở Việt Nam mà trên toàn thế giới Cùng với sự phát triển nhanh chóng của mạng Internet, việc đảm bảo ninh cho an các thống thông càng hệ tin trở nên cấp thiếthơn bao giờ hết Phát hiện sớm những nguy cơ tiềm ẩn sẽ giúp nhà quản trị đưa rabiện pháp xử lýkịp thời và hiệu quả nhằm đảm bảo an toàn cho thống mạng.hệ IDS là một hệ thống có thể giải quyết được vấn đề trên, nó được cài đặt để giám sát toàn bộlưu thông của hệ thống mạng nên lượng file IDS thulog mà thậpđược có thể vô cùnglớn Việc trữ và lưu xử lýlượng log file trên thống máy lớn hệ đơn không hiệu quả Vìvậy, đòi hỏi một hệ thống lưu trữ phân tán và lý song song xử mới đáp ứng được yêu cầu Xuất phát từ thưc tế trên, đề tài để xuất tưởng: “Hệ thống phát ý hiện xâm mạng phân tán với Snort, Chukwa, Hadoop và Syslog-ng” Hệ thống có 4 thành phần cơ bản
là: Snort, Chukwa Syslog-ng, Hadoop và – MapReduce Trong đó, Snort là một IDSthông dụng và phổ biến nhất hiện nay, đóng vai phát trò hiện xâm nhập và ghi nhận logfile Sau dùng đó, hệ thống tập hợp dữ liệu Chukwa hoặc Syslog ng để thu thập - logfile của Snort và vào lưu trữ HDFS (hệ thống tập tin phân tán của Hadoop) Cuối cùng, dùng hình trình MapReduce trên mô lập nền tảng Hadoop phân tíchđể các log file và tổng hợp kết quả Hệ thống đề xuất xây dựng một hadoop cluster (cụm máy tính) với
1 master và 8 slave Từ kết quả thực nghiệm, cho thấy hiệu suất tăng 10.1 so lần với hệthống máy tính đơn
Từ khóa: Distributed IDS, Snort, Hadoop, Chukwa, Syslog NG, Map/Reduce
Trang 9Chương 1: T ổ ng quan
Giới thiệu tổng quan về và đề tài những nghiên cứu liên quan Đề tài gồm 2 phân hệ: thu thập log file của các IDS phân tán phân và tích log file của các IDS trên nềntảng Hadoop Tiếp theo, trình bày các phương pháp nghiên cứu và dựa trên đó đề xuấthướng giải quyết
Chương 2: s thuy t Cơ ở lý ế
Tìm hiểu các lý thuyết có liên quan đến đề tài như là công cụ thu thập log file từ các cảm biến của hệ thống phát hiện xâm nhập mạng, kiến trúc phân tán của Hadoop, cách thức hoạt động cũng như kiến trúc của cơ sở dữ liệu phân tán HBase, các vấn đề liên quan đến an toàn và toàn vẹn dữ liệu
3: N i Chương ộ dung và k t ế quả ự th c nghiệm
Xây dựng hệ thống phát hiện xâm nhập mạng phân tán kết hợp Snort, Hadoop, Chukwa Ngoài ra còn xây dựng thêm thay thế chukwa bằng Syslog NG và đánh giá về chất lượng của 2 ứng dụng này Vàthực nhiệm hệ thống số với lượng node khác nhau, tiến hành đo lường và ghi nhận sốliệu Từ đó thống kê và đánh giá hiệu suất hệ thống
Chương 4: K t ế luận và hướng phát triể n
Từ những số liệu thu nhận được đưa ra kết luận về những ưu điểm và hạn chế của
hệ thống và định hướng phát trển trong tương lai để hệ thống hoàn thiện hơn
1.2 Vấn đề an toàn mạng và giải pháp phân tích file log từ IDS phân tán
Xã hội ngày càng phát triển, Internet thành trở một phần không thể thiếu đối với từng
Trang 1010
cá nhân, doanh nghiệp, các tổ chức, trường học cũng nhưchính phủ Cùng với sự phát triểntheo chiều hướng tốt, các cuộc tấn công và xâm nhập mạng của những kẻ xấu cũng phát triển theo không kém Những lợi nhuận từ Internet mang lại trở thành mục tiêu
có nhiều giá trị thu lợi, hấp dẫn những kẻ tấn công mạng bỏ nhiều công sức hơn trong việc xâm nhập và phá hoại Không chỉ trên thế giới mà Việt Nam ở vấn đề “an toàn thông tin” đã và đang trở thành chủ đề nóng bỏng Một giải pháp được đưa ra là một
hệ thống phát hiện sớm những nguy cơ tiềm ẩn, sự đa dạng và phức tạp trong các loạihình tấn công trên mạng giúp người quản trị có thể luôn luôn theo dõi, giám và sát thuthập được những thông tinđáng giá phục vụ cho việc phân tích đưa ra giải pháp kịp thời
và hiệu quả nhằm đảm bảo an toàn cho hệ thống mạng
Các hệ thống phát hiện xâm nhập (Intrustion Detection System IDS) – có thể giải quyết được vấn đề trên, nó được cài đặt để giám sát toàn bộ thông từ bên ngoài và lưubên trong hệ thống mạng nên lượng file IDS log mà thu thập được có thể vô cùng lớn.Ngoài yêu ra, cầu IDS phải có khả năng xử lý thời gian thực mới đáp ứng hiệu quả antoàn mạng Việc lưu trữ và xử lý một lượng log file vô cùng lớn ứng với toàn mạngtrên một máy đơn làm hiệu suất của máy tính giảm một cách đáng kể, chưa kể đến mất dữ liệu hoặc chính hacker tấn công Khi phải lưu trữ một lượng lớn file, log IDStrở nên chậm chạp không đáp ứngtính năng thời gian thực dẫn đến hiệu suất CPU giảmđáng kể, file log bị mất, ảnh hưởng nghiêm trọng đến an toàn mạng
Từ những hạn chếtrên, yêu cầu cần thiết là phải xử lý lượng log file lớn một cách phân trên tán nhiều máy, vừa không ảnh hưởng đến hiệu suất CPU, vừa hạn chế nguy
cơ mất dữ liệu Việc phân chia công việc phân tán sẽ nhanh và hiệu quả hơn Map/reduce là một nền tảng tính toán phân tán thích hợp cho việc xử lý phân tán đượcnêu trên Xuất phát từ những yêu cầutrên, đề tài đề xuất giải pháp “Hệ thống phát hiện xâm nhập mạng phân tán với S r Chukwa, no t, Hadoop và Syslog ng” để xử lý lượng -
log file lớn mộtcách phân tán
1.3 Lý do chọn đề tài
Trong b i c nh khi các h ng mố ả ệthố ạng ngày càng phát tri n v quy mô, các hình thể ề ức
t n công mấ ạng ngày càng tinh vi và khó đối phó, việc lưu trữ ử, x lý và phân tích các logs truy nh p m ng là công vi c không th thi u trong các h ng giám sát, phát hi n t n ậ ạ ệ ể ế ệthố ệ ấ
Trang 1111
công, phát hi n xâm nh p m ng, phát hi n bệ ậ ạ ệ ất thường cũng như trong các hệ ng phân thốtích m u hoẫ ặc phân tích hành vi người sử ụ d ng m ng ạ
T d ừ ữliệu logs thô thu thập được, qua quá trình x lý, phân tích, chúng ta có th trích ử ể
xuất được các thông tin quan tr ng v d u hi u, kh ọ ề ấ ệ ả năng xuất hi n cệ ủa các mã độc và các d ng t n công, xâm nhạ ấ ập, cũng như các thông tin có giá trị ề v hành vi truy c p m ng ậ ạ
của người dùng
K t qu ế ả phân tích hành vi người dùng có th ể là căn cứ quan tr ng trong vi c tọ ệ ối ưu hoá, c i n, nâng cao chả tiế ất lượng d ch v K t qu phân tích, phát hi n d u hi n xuị ụ ế ả ệ ấ ệ ất hiện mã độ ấc, t n công, xâm nh p là m t trong nhậ ộ ững đầu vào quan tr ng trong viọ ệc đánh giá, l a ch n các gi i pháp phù hự ọ ả ợp cho đảm b o an toàn thông tin, h ng và các tài ả ệthốnguyên m ng Vạ ấn đề ngày ngày càng quan trọng hơn trong bố ải c nh an toàn thông tin đang trở thành vấn đề nóng được c xã h i quan tâm ả ộ
Bên c nh nh ng nhu c u th c t ạ ữ ầ ự ế đã nêu ở trên, nh ng lý do cá nhân dữ ẫn đế ựn l a ch n ọ
“H ệ thố ng phát hi n xâm nh p m ng phân tán v S r Chukwa, Hadoop và ệ ậ ạ ớ i no t, Syslog-ng” như sau:
• Mong mu n hố ọc hỏi, tìm ki m thêm nhi u ki n thế ề ế ức, kĩ năng
• Ứng d ng các ki n th c đã đư c h c nh m gi i quy t m t vụ ế ứ ợ ọ ằ ả ế ộ ấn đề ụ ể c th
• Thử thách bản thân vào lĩnh vực nghiên c u tìm ki m gi i pháp ứ ế ả
• T o ra m t mô hình hoạ ộ ạ ộng được, đáp ứng đượt đ c nhu cầu thực tế
1.4 Phạm vi đề tài
Đề tài sẽ 2 phân có hệ:
1.4.1 Thu thập log file của các IDS phân tán
Như chúng ta đã biết IDS là một công cụ hữu dụng cho việc thu thập, giám sát và phát hiện được những nguy công, cơ tấn đe dọa đến sự toàn an của hệ thống mạng
Để giám sát lưu thông trên toàn mạng, IDS thường được cài đặt ở đầu các nút mạng hoặcrãi rác trên toàn mạng ở những điểm trọng yếu IDS có rất nhiều loại, được chọn lựaphù hợp với yêu cầu của từng hệ thống mạng Đề này tài sử dụng Snort – một trong những IDS thông dụng và phổ biến nhất hiện nay Thông thường, Snort được cài đặtphân tán ở mỗi nhánh mạng để có thể thu thập được toàn bộ lưu thông mạng Snort lúcnày có nhiệm vụ phát hiện nhanh những nguy cơ tấn công ghi nhật ký lại những cảnh
Trang 1212
báo, những log file này sẽđược lưu trữ ở mỗi máy có cài đặt Snort Vì vậy, cần phải thu thập những file này phân log về để tích và xửlý Đề tài đề xuất giải pháp sử dụngcông
cụ thứ ba (Chukwa) để thuthập log file Snort đưa đến Hadoop Chukwa – mộttừ tiểu dự
án của Hadoop, là hệ thống thu thập dữliệu mãnguồn mở để theo dõi hệ thống phân tán lớn
1.4.2 Phân tích log file của các IDS
Như nói đã ở trên, log file sẽ thu thập được từ các IDS phân tán Do đó, lượng log file là rất lớn Đồng nghĩa phải đối mặt với việc xử lý khối lượng dữ liệu khổng lồ và phức tạp
Một trong những công nghệ tạo nên cuộc cách mạng về dữ liệu lớn là MapReduce, một hình mô tính toàn được phát triển để xử lý các tập hợp dữ liệu phân quy mô tánlớn Với hình mô MapReduce, từ một công việc thì nó chia nhỏsẽ thành các công việccon giống nhau và dữ liệu đầu vào cũng được chia nhỏ MapReduce sử dụng hai thao tác chính hàm là Map và hàm Reduce Một cách đơn giản, hàm Map tiếp nhậnmảnh dữ liệu input và thực hiện xử nào lý đó chuẩn bị dữ liệu làm đầu vào để cho hàm Reduce Hàm Reduce tổng hợp kết quả của hàm Map và trả ra cho người dùng kết quảcuối cùng củacông việc
Trong này hàm đề tài Map sẽ nhận dữ liệu đầu vào là các log file đã đượcChukwa thu thập từ Snort Sau khi thực hiện, hàm Map sẽ cho ra các kết quảtrung gian, đồng thời kết quả này là đầu vào cho hàm Reduce Sau khi hàm Reducetất cả được thực hiện người dùng sẽ có được kết quả phân tích log file
1.5 Các giải pháp hiện có
Lĩnh vực x lý và phân tích logs truy nhử ập đã được quan tâm nghiên c u và ứ ứng d ng ụtrên th gi i Có nhi u n n t ng và s n phế ớ ề ề ả ả ẩm thương mại và mã m ở được cung cấp, như Splunk1, Sumo Logic2, Loggly3, Logstash4,
Trang 1313
Splunk Splunk là m t ph n m m giám sát m ng d a trên s m nh c a vi c phân ộ ầ ề ạ ự ức ạ ủ ệtích Log Splunk th c hi n các công vi c tìm ki m, giám sát và phân tích các d u l n ự ệ ệ ế ữliệ ớđược sinh ra t các ng d ng, các h th ng và các thi t b h t ng m ng Nó có th thao ừ ứ ụ ệ ố ế ị ạ ầ ạ ểtác t t v i nhi u lo i d nh d ng d ố ớ ề ạ ị ạ ữ liệu khác nhau (Syslog, csv, apache-log, access_combined…) Splunk được xây d ng d a trên n n t ng Lucene and MongoDB ự ự ề ả
v i m t giao di n web h t s c tr c quan H n ch l n nh t cớ ộ ệ ế ứ ự ạ ế ớ ấ ủa Splunk là chi phí cài đặt
l n, do khoớ ản đầu tư ban đầu cho h ng thi t b chuyên dệthố ế ị ụng và độ phức t p cao Mạ ột
vấn đề khác là phí b n quyả ền Splunk cũng rất đắt đỏ (hàng chục ngàn đô la Mỹ), nên Splunk không th c s thích h p vự ự ợ ới các cơ quan, tổ chức có quy mô v a và nh vừ ỏ ới ngu n lồ ực hạn ch ế
Sumo Logic là m t d ch v x lý, phân tích và qu n lý log trên n n tộ ị ụ ử ả ề ảng điện toán đám mây (SaaS) Ưu điểm c a Sumo Logic là cung c p nhiủ ấ ều tính năng và có khả năng
x lý nhi u loử ề ại logs, đồng th i viờ ệc cài đặt cũng dễ dàng hơn do Sumo Logic dựa trên
n n tề ảng điện toán đám mây, nên không đòi hỏi thi t b chuyên dế ị ụng Nhược điể ớm l n
nh t c a Sumo Logic là vi c ph i t i khấ ủ ệ ả ả ối lượng log lớn (lên đến hàng ch c GB/ngày) t ụ ừ
h ng sinh log lên h ng d ch v ệthố ệthố ị ụ Sumo Logic để ử x lý Vi c này tệ ốn kém đường truy n và có th gây ra ch m tr trong quá trình x ề ể ậ ễ ửlý
Loggly Là mộ ịt d ch v qu n lý Log tr c tuy n dụ ả ự ế ựa trên mô hình điện toán đám mây
Nó được phát tri n bể ời chính các nhân viên đã từng làm vi c v i Splunk Là m t d ch v ệ ớ ộ ị ụgiúp người dùng d ễ dàng để tri n khai m t h th ng giám sát an ninh m ng C th là ể ộ ệ ố ạ ụ ể
m i d u v g s ọ ữ liệ ề Lo ẽ được chuyển đến Loggly Server quan các client như snare hoặc
m t công c do Loggly cung c p D ộ ụ ấ ữliệu được chuy n v server c a Loggly s ể ề ủ ẽ được x ử
lý, phân tích và đưa ra các cảnh báo t i các nhà qu n tr Nhướ ả ị ợc điểm c a Loggly là Do ủ
hoạt động trên mô hình Service nên hi u su t c a Loggly không th c s thích h p vệ ấ ủ ự ự ợ ới
nh ng h ng mữ ệthố ở ứ ộc đ doanh nghi p l n Vi c truy n t i mệ ớ ệ ề ả ột lượng d u lữliệ ớn cũng làm gi m hi u su t trong vi c phân tích và cả ệ ấ ệ ảnh báo Đặc bi t là v i nh ng m ng có tệ ớ ữ ạ ốc
độ truy c p th p Loggly không h tr ậ ấ ỗ ợ các tính năng tự độ ng kh c ph c l i ắ ụ ỗ
Logstash là m t công c mã m cho phép thu th p và qu n lý các file log Logstash ộ ụ ở ậ ảkhông hoạ ộng đột đ c lập mà nó s d ng công c ử ụ ụ ElasticSearch để ậ l p ch s và tìm kiếm ỉ ố
d u, và công c ữ liệ ụ Kibana để ể bi u di n d ễ ữ liệu dướ ại d ng biểu đồ Một ưu điểm của Logstash mã mở và chi phí cài đặt thấp Tuy nhiên, nhược điểm c a Logstash là ph ủ ụ
Trang 1414
thuộc vào nhi u công c ề ụ khác được phát tri n b ng nhi u ngôn ng khác nhau dể ằ ề ữ ẫn đến khó khăn trong triển khai và b o trì ả
Nhìn chung, các công c x lý và phân tích logs trên th i khá phong phú, cung ụ ử ế giớ
c p nhiấ ều tính năng đa dạng Tuy nhiên, m t s công c m nh có giá thành r t cao d n ộ ố ụ ạ ấ ẫ
đến chi phí lắp đặt và v n hành quá lậ ớn (Splunk), chưa thực s phù h p v i phự ợ ớ ần đông các h ng m ng M t s công c khác thì có chi phí thệ thố ạ ộ ố ụ ấp hơn nhưng tính năng hạn chế, không h tr phân tích chuyên sâu (Loggy), còn khá ph c t p trong tri n khai và ỗ ợ ứ ạ ể
v n hành h ng (Logstash) ậ ệthố
1.6 Mục tiêu của đề tài
M c tiêu t ng quát cụ ổ ủa đề tài là nghiên c u và xây d ng m t b công c ứ ự ộ ộ ụ giúp lưu trữ,
x lý và phân tích các logs truy nh p mử ậ ạng có kích thướ ớc l n Các lo i logs bao g m logs ạ ồđược sinh ra t h th ng phát hi n xâm nh p mừ ệ ố ệ ậ ạng và các logs đặc trưng khi ngườ ửi s
d ng truy nh p mụ ậ ạng t các h thốừ ệ ng m ng l n vạ ớ ới lưu lượng truy c p hàng ngày r t cao ậ ấ
nh m trích xu t nh ng thông tin có giá tr h ằ ấ ữ ị ỗ trợ cho đảm b o an toàn thông tin và các ảtài nguyên mạng cũng như nắm bắt được hành vi truy c p cậ ủa người dùng trong m ng ạThời gian đáp ứng c a h ủ ệthống khi v n hành ph i th c s ậ ả ự ự nhanh chóng để đáp ứng được
nh ng nhu c u c p bách trong b i c nh thữ ầ ấ ố ả ực tế
Các m c tiêu c v s n ph m bao gụ ụthể ề ả ẩ ồm:
• Thu thập được logs t các nguừ ồn sinh logs phân tán đặc đặ ảt r i rác trong h ệthống m ng l n ạ ớ
• X ửlý các logs file thu tập được loại bỏ các thông tin dư thừa
• Lưu trữ logs file trong m t h ộ ệ cơ sở ữ ệ d li u phân tán
• Truy v n các logs file m t các nhanh chóng t ấ ộ ừ cơ sở ữ d u, có kh liệ ả năng trình diễn kết quả đã truy vấn được
Ngoài ra, người th c hiự ện đồ án cũng đặt ra nh ng m c tiêu v ki n thữ ụ ề ế ức như sau:
Trang 1515
• Thành th o trong n khai h ng th c t , x ạ triể ệthố ự ế ử lý được các l i phát sinh ỗtrong khi triển khai h th ng ệ ố
1.7 Định hướng các giải pháp triển khai đề tài
H ng s ệ thố ẽ được xây d ng và tri n khai d a trên các Framework và các d án mã ự ể ự ựngu n m V ồ ở ề cơ bản, đồ án t p trung thi t k và xây d ng h ng t n d ng hiậ ế ế ự ệthố ậ ụ ệu năng
c a nhi u máy tính nh m nâng cao tủ ề ằ ốc độ x ử lý, cũng như truy vấn logs file có kích thước
l n H ng có 3 vớ ệthố ấn đề ớ l n c n gi i quy t (I) ầ ả ế thu th p d u t ậ ữ liệ ừ nhiều ngu n sinh ồ
logs khác nhau, (II) lưu trữ và x lý khử ối lượng logs lớn và (III) truy v n, trình diấ ễn
d u logs thu thữ liệ ập được
• Thu th p d u t ậ ữ liệ ừ nhiề u ngu n sinh logs khác nhau ồ : Nh ng nguữ ồn sinh logs trong hệ ố th ng mạng mà đồ án ti p c n là nh ng c m bi n c a hệ ốế ậ ữ ả ế ủ th ng phát hi n xâm nh p m ng IDS, nên c n m t h ng t p h p t nhi u nguệ ậ ạ – ầ ộ ệthố ậ ợ ừ ề ồn này v mề ột nơi để lưu trữ ử, x lý và phân tích Giải pháp đượ ực l a ch n là s d ng ọ ử ụcông cụ Apache Chukwa và Syslog NG
• Lưu trữ và x lý kh ử ối lượ ng logs l n: Do đã đề ậ ớ c p, h th ng m ng có ệ ố ạquy mô l nớ , lưu lượng truy c p r t cao Ngu n sinh logs rậ ấ ồ ất đa dạng v ch ng loại ề ủ
và s ố lượng, nên lượng logs phải lưu trữ ấ ớ r t l n và khuôn d ng cạ ủa logs cũng sẽkhông hoàn toàn giống nhau Đứng trước yêu cầu đó, hệ thống lượng ch n viọ ệc lưu trữ và x lý phân tán trên nhi u máy tính nh m t n d ng kh ử ề ằ ậ ụ ả năng lưu trữ cũng như xử lý c a nhi u máy tính nh m nâng cao kh ủ ề ằ ả năng của toàn h th ng Gi i ệ ố ảpháp đượ ực l a ch n là xây d ng m t c m máy ch ọ ự ộ ụ ủ lưu trữ ữ ệ d li u phân tán s ử
d ng ụ Apache Hadoop
• Truy v n, trình di n d ấ ễ ữ liệu logs thu thập được: Khối lượng logs sau x ử
lý cũng vẫn r t l n, vi c truy v n t ấ ớ ệ ấ ừ đó để làm những phân tích hay đánh giá hệthống mạng cũng sẽ gặp đôi chút khó khăn Nhằm gi i quy t vả ế ấn đề này, t n d ng ậ ụtrên n n t ng phân tán mà h ề ả ệthống đã được xây dựng trước đó, đềxuất được đưa
ra là tích h p vào m t h ợ ộ ệ cơ sở ữ d u phân tán nh m tính th i gian th c cho h liệ ằ ờ ự ệthống, đảm bảo đáp ứng các như cầu phân tích, đánh giá của người qu n tr h ả ị ệ
thống Kèm theo đó, để có th nhanh nh t nhìn ra vể ấ ấn đề ủ c a h ốệth ng, vi c trình ệ
di n d u s ễ ữliệ ẽ giúp người qu n tr ả ị có được cái nhìn tr c quan và c ự ụthể hơn rất
Trang 16đa lõi sử dụng ống dẫn và flow-pinning, flow-pinning sẽ phân loại gói tin và chúng gửiqua luồng chỉ định [1] Flow-pinning làm giảm lượng dữ liệu tải lại đến bộ nhớ cacheL2 Nhưng biện pháp này chỉ đạt hiệu suất với lượng kết nối TCP thật sự lớn, với lượng kết nối TCP íthơn 200 thì đề xuấttrên không mang lại hiệu quả
Một đề xuất khác là thay Snort đổi để nó hoạt động như một hệ thống đa luồng Giáo
sư Derek và các đồng của ông [2] sự đề xuất phương pháp thay Snort đổi sao cho phân
bổ mỗi luồng thành hai hướng: Một cho xử lý song song bảo thủ sử dụng khóa, luồngcòn lại cho xửlý song song lạc quan Việc thực hiện cho thấy hiệu năng của hệ thống cải thiệnnhất trên 8 bộ xử lý cho vi song song bảo thủ tăng 4,1 lần và tăng 3 lần trên 6 bộ
xử lý song songlạc quan Jiang và cácđồng sự nhận thấy rằng sự đối chiếu dấu vết tấn công trong tiền xử lý làm giảm hiệu suất trong hệ thống songsong Vì vậy, đề xuất mộtchiếnlượctách đối chiếu dấu vết sử dụng xác suất xuất hiện Đề xuất trên áp dụng nhiều phương pháp song xử lý song, làm giảm được thời gian thực thi cho quá trình tiền
xử lý Open Information Security Foundation(OISF) phát đã triển Suricata [3] – hệthống phát hiện xâm nhập mạng nguồn mở và Suricata có thể sử dụng tập luật của Snort Giáo sư Shun Fa- Yang và các cộng sự [4] Free Software Laboratory, ở Đài Loan
đã đề nghị ICAS (IDS Log Cloud Analysis System), một hệ thống phân tích các log file được tạo ra bởi Snort trong các hệ thống điện toán đám mây sử dụng Hadoop Trong ICAS, IDS xét gói dò các dữ liệu mạng và tạora các cảnh báo Tiếp theo, phân tích pháp cú sẽ chọn logs giá và ra các có trị lưu trữ cáclog được chọn vào HDFS Đó
là một hệ thống tập tin phân tán của Hadoop HDFS sẽ tạo bản sao của dữ liệu và lưu
Trang 1717
trữ chúng ở những nơi khác nhau ICAS đồng thời phân tích các log file và kết hợpchúng thành một file kết quả bằng cách sử dụng chức năng MapReduce được hỗ trợ bởi Hadoop ICAS với 6 nút cho thấy khoảng 89% cải thiện hiệu suất so với một hệ thống với nút duy nhất
Yeonhee Lee và các cộng sự [5] ở Đại học Chungnam, Hàn Quốc đã đề xuất capInputFormat, một định dạng đầu vào phân tìm nhị để điểm bắt đầu của các gói tin trong log file được lưu trữ trong HDFS Trong HDFS, một tập tin được chia thành các block kích với thước 64Kbytes, mỗi block bao gồm nhiều gói thông điệp hợp lại, nơi một phần được định dạng nhị phân và một số thông điệp được chia theo block Ý tưởngchính trong PcapInputFormat tìm time-stamp là để phân biệt từng gói thông điệp trong một tập tin dump
Trang 1818
Chương II: CƠ SỞ LÝ THUYẾT
T nh ng vừ ữ ấn đề và định hướng đã được nêu rõ tại Chương 1, giải pháp được chọn
lựa đó là xây dựng m t h ộ ệ thống lưu trữ và x lý d ử ữliệu phân tán Để có th xây d ng ể ựđược h th ng này, mệ ố ục định hướng gi i pháp tả ại Chương 1 cũng đã lựa ch n nh ng ọ ữcông cụ mã ngu n m s ồ ở ẽ được đưa vào sử ụ d ng
Để có được nh ng ki n thữ ế ức đầ đủy nh t nh m s n sàng tìm hi u và nghiên c u xây ấ ằ ẵ ể ứ
dựng mô hình đề xu t, nh ng ki n thấ ữ ế ức được trình bày trong Chương 2 này sẽ ải đáp gi
nh ng câu h i v ki n trúc, v n hành c a các thành ph n trong mô hình ữ ỏ ề ế ậ ủ ầ
Để đề xuất được một mô hình lưu trữ và x lý log phân tán, ta s ph i tìm hi u v ử ẽ ả ể ềngu n sinh logs mà c ồ ụthể ở đây ở ệ thố h ng phát hi n xâm nh p m ng s hoệ ậ ạ ẽ ạt động như thế nào, logs sinh ra s mang nhẽ ững đặc điểm gì? Việc đề xuất mô hình lưu trữ và x lý ửphân tán đòi hỏi nh ng ki n th c v h ữ ế ứ ề ệthống file phân tán, cơ chế đọ c ghi d ữliệu, và mô hình x lý d u trên h ử ữliệ ệthống phân tán đó Sau cùng, khi đưa ra lựa chọn đềxuấ ột t m
mô hình phân tán, d u s ph i thu c vào d ng d ữliệ ẽ ả ộ ạ ữliệu “lớn” Từ đó, yêu cầu đặt ra sẽ
ph i nả ắm được ki n th c v mế ứ ề ột cơ sở ữ d u dành cho d u l n và công c truy liệ ữliệ ớ ụ để
v n d u t ấ ữliệ ừ cơ sở ữ liệ ớn đó d u l
2.1 H ng phát hi n xâm nh p m ệ thố ệ ậ ạ ng
H ng phát hi n xâm nh p (Intrusion Detection System - IDS) là m t h ng ệ thố ệ ậ ộ ệ thốgiám sát lưu thông mạng, các hoạt động khá nghi và c nh báo cho h ả ệthống, nhà qu n trả ị Ngoài ra, IDS cũng đảm nh n vi c ph n ậ ệ ả ứng lại các lưu thông bất thưong hay có hại b ng ằcác hành động đã được thi t l p t trưế ậ ừ ớc như khóa người dùng hay hay địa chỉ IP ngu n ồ
đó truy cập h th ng m ng ệ ố ạ
IDS cũng có thể phân bi t gi a nh ng t n công bên trong t bên trong (t nh ng ệ ữ ữ ấ ừ ừ ữngười trong công ty) hay t n công t bên ngoài (t các hacker) IDS phát hi n d a trên ấ ừ ừ ệ ựcác d u hiấ ệu đặc bi t v ệ ề các nguy cơ đã biết (giống như cách các phần m m di t virus ề ệ
d a vào các d u hiự ấ ệu đặc biệt để phát hi n và di t virus) hay dệ ệ ựa trên so sánh lưu thông
m ng hi n t i v i basclinc (thông s ạ ệ ạ ớ ố đo đạc chu n c a h ẩ ủ ệthống) để tìm ra các d u hiấ ệu khác thường
Trang 1919
H ng phát hi n xâm nh p trái phép là nh ng ng d ng ph n m m chuyên d ng ệ thố ệ ậ ữ ứ ụ ầ ề ụ
để phát hi n xâm nh p vào h th ng m ng c n b o vệ ậ ệ ố ạ ầ ả ệ IDS được thi t k không ph i v i ế ế ả ớ
mục đích thay thế các phương pháp bảo m t truy n thậ ề ống, mà để hoàn thi n nó M t h ệ ộ ệthống phát hi n xâm nh p trái phép c n ph i th a mãn nh ng yêu c u sau: ệ ậ ầ ả ỏ ữ ầ
• Tính chính xác (Accuracy): IDS không được coi những hành động thông thường trong môi trường h th ng là nhệ ố ững hành động bất thường hay l m d ng ạ ụ(hành động thông thường b coi là b t thưị ấ ờng được g i là false posit ve) ọ ỉ
• Hiệu năng (Performance): Hiệu năng của IDS phải đủ để phát hi n xâm ệ
nh p trái phép trong th i gian th c (th i gian thậ ờ ự ờ ực nghĩa là hành động xâm nhập trái phép phải được phát hiện trước khi x y ra tả ổn thương nghiêm trọng t i h - ớ ệtheo [Ranum, 2000] là dưới 1 phút)
• Tính đầy đủ (Completeness): IDS không đượ ỏc b qua m t xâm nh p trái ộ ậphép nào (xâm nh p không b phát hiậ ị ện được gọi là false negative) Đây là một điều ki n khó có th thệ ể ỏa mãn được Vì gần như không thể có t t c thông tin v ấ ả ềcác tấn công t quá kh , hi n từ ứ ệ ại và tương lai
• Chị ỗu l i (Fault Tolerance): b n thân IDS ph i có kh nả ả ả ăng chống t n công ấ
• Khả năng mở ộ r ng (Scalability): IDS ph i có kh ả ả năng xử lý trong tr ng ạthái x u nh t là không b sót thông tin Yêu cấ ấ ỏ ầu này có liên quan đến h thống mà ệcác s ựkiện tương quan đến t nhi u ngu n tài nguyên v i s ng host nh Vừ ề ồ ớ ố lượ ỏ ới
s phát tri n nhanh và m nh cự ể ạ ủa mạng máy tính, h ng có th b quá tệthố ể ị ải bởi sựtăng trưởng c a s ợủ ốlư ng s ki n ự ệ
2.1.1 Phương thứ c phát hi n xâm nh ệ ậ p củ a IDS
Có hai phương pháp khác nhau trong việc phân tích các s kiự ện để phát hi n các v ệ ụ
t n công: phát hi n d a trên các d u hi u (signature-based) và phát hi n s bấ ệ ự ấ ệ ệ ự ất thường (anomaly based) Các s n ph m IDS có th s d ng m t trong hai cách ho c s d ng kả ẩ ế ử ụ ộ ặ ử ụ ết
h p c hai ợ ả
• Phát hi n d a trên d u hiệ ự ấ ệu: Phương pháp này sẽ thu b t các gói tin tắ ại
T ng 7 trong mô hình OSầ I và tiến hành nh n d ng các thông tin hoậ ạ ặc tậ ợp h p các thông tin phù hợ ớ ộ ẫp v i m t m u các d u hiấ ệu đã được định nghĩa là tấn công
Trang 20Quá trình phát hiện có th ế được mô t b i 3 y u t ả ở ế ố cơ bản n n t ng sau: ề ả
• Thu th p thông tin (Information source): Ki m tra t t c các gói tin trên ậ ể ấ ả
Hình 2-1: Mô t ả hoạ ột đ ng c a IDS nh n d ng theo d u hi u ủ ậ ạ ấ ệ
Hình 2-2:Mô tả hoạ ột đ ng c a IDS nh n d ng theo bủ ậ ạ ất thường
Trang 2121
2.1.2 Phân loạ i IDS
H ng phát hi n xâm nh p m ng IDS phân lo i ch y u thành 2 lo i là ệ thố ệ ậ ạ ạ ủ ế ạ Network Base IDS NIDS– và Host Base IDS – HIDS, c v 2 lo i này s ụthể ề ạ ẽ được trình bày như sau:
a) Network Base IDS NIDS –
NIDS thường bao g m có hai thành ph n logic: ồ ầ
• B c m bi n ộ ả ế – Sensor: đặt t i mạ ột đoạn m ng, ki m soát các cuạ ể ộc lưu thông nghi ng ờ trên đoạn mạng đó
• Trạm qu n lý: nh n các tín hi u c nh báo t b c m bi n và g i c nh báo ả ậ ệ ả ừ ộ ả ế ử ả
tới cho người quả ị ệ thốn tr h ng
Các ưu điểm và nhược điểm c a NIDS: ủ
Ưu điể m:
Chi phí thấp: Do ch cỉ ần cài đặt NIDS ở nh ng v ữ ịtrí trọng y u là có th ế ể giám sát lưu lượng toàn m ng nên h th ng không c n ph i n p các ph n m m và qu n lý trên các ạ ệ ố ầ ả ạ ầ ề ảmáy toàn m ng ạ
Phát hiện được các cu c t n công mà HIDS b qua: Khác v i HIDS, NIDS ki m tra ộ ấ ỏ ớ ểheader của tất cả các gói tin vì th nó không b ế ỏsót các dấu hi u xu t phát t ệ ấ ừ đây Ví dụ: nhi u cu c t n công DoS, TearDrop (phân nh ) ch b phát hi n khi xem header c a các ề ộ ấ ỏ ỉ ị ệ ủgói tin lưu chuyển trên m ng ạ
Khó xoá bỏ ấ ết (evidence): Các thông tin lưu trong log file có thể ị ẻ độ d u v b k t nhập sửa đổi để che d u các hoấ ạt động xâm nh p, trong tình huậ ống này HIDS khó có đủ thông tin để hoạt động NIDS s dử ụng lưu thông hiện hành trên mạng để phát hi n xâm nh p ệ ậ
Vì th , k t nh p không th xoá b ế ẻ độ ậ ể ỏ được các d u v t t n công Các thông tin bấ ế ấ ắt được không ch ỉchứa cách thức tấn công mà c thông tin h cho vi c xác minh và buả ỗtrợ ệ ộc tội
Trang 2222
Có tính độ ậc l p cao: L i h ng không có ỗ ệthố ảnh hưởng đáng kể nào đối v i công viớ ệc
c a các máy trên m ng Chúng ch y trên m t h ng chuyên d ng d ủ ạ ạ ộ ệthố ụ ễ dàng cài đặt; đơn thuần ch m thi t b ra, th c hi n m t vài s ỉ ở ế ị ự ệ ộ ự thay đổ ấi c u hình và c m chúng vào trong ắ
m ng t i mạ ạ ột vị trí cho phép nó ki m soát các cuể ộc lưu thông nhạy cảm
Nhược điể m:
B h n ch v i Switch: Nhi u lị ạ ế ớ ề ợi điểm của NIDS không phát huy được trong các
m ng chuy n m ch hiạ ể ạ ện đại Thi t b switch chia m ng thành nhi u phế ị ạ ề ần độ ậc l p vì th ếNIDS khó thu thập được thông tin trong toàn m ng Do ch ki m tra mạ ỉ ể ạng trên đoạn mà
nó tr c ti p k t n i t i, nó không th phát hi n m t cu c t n công xự ế ế ố ớ ể ệ ộ ộ ấ ảy ra trên các đoạn
m ng khác Vạ ấn đề này d n t i yêu c u t ẫ ớ ầ ổchức cần ph i mua mả ột lượng l n các b cớ ộ ảm
biến để có th bao ph h t toàn m ng gây t n kém v ể ủ ế ạ ố ề chi phí cài đặt
H n ch v hiạ ế ề ệu năng: NIDS sẽ ặp khó khăn khi phả ử g i x lý t t c các gói tin trên ấ ả
m ng r ng ho c có mạ ộ ặ ật độ lưu thông cao, dẫn đến không th phát hi n các cu c t n công ể ệ ộ ấthực hi n vàệ o lúc "cao điểm" M t s nhà s n xuộ ố ả ất đã khắc ph c b ng cách c ng hoá ụ ằ ứhoàn toàn IDS nhằm tăng cường tốc độ cho nó Tuy nhiên, do phải đảm b o v m t tả ề ặ ốc
độ nên m t s ộ ố gói tin được b qua có th gây l h ng cho t n công xâm nh p ỏ ể ỗ ổ ấ ậ
Tăng thông lượng m ng: M t h th ng phát hi n xâm nh p có th c n truy n m t ạ ộ ệ ố ệ ậ ể ầ ề ộdung lượng d li u l n tr v h thữ ệ ớ ở ề ệ ống phân tích trung tâm, có nghĩa là một gói tin được
ki m soát s sinh ra mể ẽ ột lượng l n tớ ải phân tích Để kh c phắ ục người ta thường s d ng ử ụcác tiến trình gi m d liả ữ ệu linh ho t đ gi m bạ ể ả ớt số ợng các lưu thông đượ lư c truy n t i ề ả
H ọ cũng thường thêm các chu trình t ra các quyự ết định vào các b c m bi n và s dộ ả ế ử ụng các trạm trung tâm như một thi t b n th ng thái ho c trung tâm truyế ịhiể ịtrạ ặ ền thông hơn
là th c hi n các phân tích th c tự ệ ự ế Điểm b t l i là nó s cung c p r t ít thông tin liên quan ấ ợ ẽ ấ ấcho các b c m bi n; b t k b c m bi n nào s không biộ ả ế ấ ỳ ộ ả ế ẽ ết được vi c m t b c m biệ ộ ộ ả ến khác dò được m t cu c t n công M t h thộ ộ ấ ộ ệ ống như vậy s không th ẽ ể dò được các cu c ộ
t n công hiấ ệp đồng hoặc phức tạp
M t h ộ ệthống NIDS thường gặp khó khăn trong việc x lý các cu c t n công trong ử ộ ấ
một phiên được mã hoá L i này càng tr nên tr m tr ng khi nhi u công ty và t ỗ ở ầ ọ ề ổchức đang áp dụng m ng riêng o VPN ạ ả
Trang 2323
M t s h ộ ố ệthống NIDS cũng gặp khó khăn khi phát hi n các cu c t n công m ng t ệ ộ ấ ạ ừcác gói tin phân mảnh Các gói tin định d ng sai này có th làm cho NIDS hoạ ể ạ ột đ ng sai
và đổ ỡ v
b) Host Base IDS – HIDS
HIDS tìm ki m d u hi u c a xâm nh p vào m t host c c bế ấ ệ ủ ậ ộ ụ ộ; thường s dử ụng các cơ chế ể ki m tra và phân tích các thông tin được logging Nó tìm ki m các hoế ạt động b t ấthường như login, truy nhập file không thích hợp, bước leo thang các đặc quy n không ềđược ch p nh n ấ ậ
Kiến trúc IDS này thường d a trên các lu t (signature-ự ậ based) để phân tích các ho t ạ
động Ví dụ: đặc quy n cề ủa ngườ ử ụi s d ng c p cao ch có th ấ ỉ ể đạt được thông qua l nh ệsu-select user, như vậy nh ng c g ng liên tữ ố ắ ục để login vào account root có th ể được coi
là một cuộ ấc t n công
Các ưu điểm và nhược điểm c a HIDS: ủ
Ưu điể m:
Xác định được k t qu c a cu c t n công: Do HIDS s d ng d liế ả ủ ộ ấ ử ụ ữ ệu log lưu các sự
ki n x y ra, nó có th biệ ả ể ết được cu c t n công là thành công hay th t b i vộ ấ ấ ạ ới độ chính xác cao hơn NIDS Vì thế, HIDS có th b sung thông tin ti p theo khi cu c t n công ể ổ ế ộ ấđượ ớc s m phát hi n v i NIDS ệ ớ
Giám sát được các hoạt động c ụthể c a h ủ ệthống: HIDS có th giám sát các hoể ạt động
mà NIDS không th ể như: truy nhập file, thay đổi quyền, các hành động th c thi, truy ự
nh p d ch v ậ ị ụ được phân quyền Đồng thời nó cũng giám sát các hoạt động ch ỉ được thực
hi n bệ ởi người qu n tr Vì th , h ng host-based IDS có th là m t công c c c mả ị ế ệthố ể ộ ụ ự ạnh
để phân tích các cu c t n công có th xộ ấ ể ảy ra do nó thường cung c p nhi u thông tin chi ấ ề
tiết và chính xác hơn một hệ network-based IDS
Phát hi n các xâm nh p mà NIDS b qua: ệ ậ ỏ chẳng h n k t nh p s d ng bàn phím ạ ẻ độ ậ ử ụxâm nh p vào m t server s không b NIDS phát hi n ậ ộ ẽ ị ệ
Thích nghi t t vố ới môi trường chuy n m ch, mã hoá: Vi c chuy n m ch và mã hoá ể ạ ệ ể ạthực hiện trên mạng và do HIDS cài đặt trên máy nên nó không b ị ảnh hưởng b i hai k ở ỹ
th t trên.uậ
Trang 2424
Không yêu c u thêm ph n cầ ầ ứng: Được cài đặt tr c ti p lên h t ng m ng có s n (FTP ự ế ạ ầ ạ ẵServer, WebServer) nên HIDS không yêu c u phầ ải cài đặt thêm các ph n c ng khác ầ ứ
Nhược điể m:
Khó qu n tr : các h ng host-based yêu c u phả ị ệ thố ầ ải được cài đặt trên t t c các thiấ ả ết
b ị đặc biệt mà b n mu n b o vạ ố ả ệ Đây là một khối lượng công việc lớn để ấ c u hình, quản
lí, cập nh ật
Thông tin ngu n không an toàn: m t vồ ộ ấn đề khác k t h p v i các h ế ợ ớ ệthống host-based
là nó hướng đến vi c tin vào nh t ký mệ ậ ặc định và năng lực ki m soát c a server Các ể ủthông tin này có thể ị ấn công và độ b t t nh p dậ ẫn đến h ốệth ng hoạt đông sai, không phát
hiện được xâm nh p ậ
H ệthống host-based tương đối đắt: nhi u t ề ổchức không có đủ nguồn tài chính để ả b o
v toàn b ệ ộ các đoạn m ng c a mình s d ng các h ạ ủ ử ụ ệthống host-based Nh ng t chữ ổ ức đó
ph i r t th n tr ng trong vi c ch n các h ả ấ ậ ọ ệ ọ ệthống nào để ả ệ b o v Nó có th l i các l ể để ạ ỗ
h ng l n trong mổ ớ ức độ bao ph phát hi n xâm nh p Ví d ủ ệ ậ ụ như mộ ẻ ất k t n công trên một
h ng láng giệthố ềng không được b o v có th ả ệ ể đánh hơi thấy các thông tin xác th c hoự ặc các tài liệ ễ ịu d b xâm ph m khác trên m ng ạ ạ
Hình 2-3: T ng quan v NIDS và HIDS ổ ề
Chiếm tài nguyên h thệ ống: Do cài đặt trên các máy c n b o v nên HIDS ph i s ầ ả ệ ả ử
d ng các tài nguyên cụ ủa hệ thống để ạt động như: bộ ho vi x lí, RAM, b nh ngoài ử ộ ớ
Trang 2525
2.1.3 Snort - Ứ ng dụng củ a IDS
Snort là một NIDS được Martin Roesh phát triển dưới mô hình mã ngu n m [8] ồ ởTuy Snort miễn phí nhưng nó lại có r t nhiấ ều tính năng hữu ích mà không ph i s n phả ả ẩm thương mại nào cũng có thể có được V i ki n trúc thi t k theo kiớ ế ế ế ểu module, người dùng
có th t ể ự tăng cường tính năng cho hệ ng Snort c a mình b ng vithố ủ ằ ệc cài đặt hay viết thêm mới các module Cơ sở ữ ệ d li u lu t cậ ủa Snort đã lên tới 3166 luật và được c p nhật ậthường xuyên b i m t cở ộ ộng đồng ngườ ử ụi s d ng Snort có th ch y trên nhi u h th ng ể ạ ề ệ ố
nền như Windows, Linux, OpenBSD, FreeBSD, NetBSD, Solaris, HP-UX, AIX, IRIX, MacOS Bên c nh vi c có th hoạ ệ ể ạt động như mộ ứt ng d ng thu bắt gói tin thông thường, ụSnort còn có th ể đượ ấu hình đểc c chạy như một NIDS Snort h ỗtrợ khả năng hoạt động trên các giao th c sau: Ethernet, 802.11, Token Ring, FDDI, Cisco HDLC, SLIP, PPP, ứ
và PF c a OpenBSD ủ
Hình 2-4: Logo c a Snort ủ
Kiến trúc c a Snort bao g m 5 thành ph n chính [8], m i thành ph n có chủ ồ ầ ỗ ầ ức năng
và nhiệm vụ ụ thể c , công vi c ch yệ ủ ếu c a m i thành phần cũng đã được mô t m t cách ủ ỗ ả ộ
rất cụ thể thông qua tên gọi của chúng
Các thành ph n trong ki n trúc c a Snort bao gầ ế ủ ồm:
• Môđun gi i mã gói tin (Packet Decoder) ả
• Môđun ti n x lý (Preprocessors) ề ử
• Môđun phát hi n (Detection Engine) ệ
• Môđun log và c nh báo (Logging and Alerting System) ả
• Môđun k t xu t thông tin (Output Module) ế ấ
Khi Snort hoạt động nó s c hi n vi c l ng nghe và thu b t t t c các gói tin nào ẽthự ệ ệ ắ ắ ấ ả
di chuy n qua nó Các gói tin sau khi b bể ị ắt được đưa vào Môđun Giải mã gói tin Tiếp theo gói tin s ẽ được đưa vào môđun Tiền x lý, rử ồi môđun Phát hiện Tại đây tùy theo
Trang 2626
vi c có phát hiệ ện được xâm nh p hay không mà gói tin có ậ thể đượ ỏ qua để lưu thông c b tiếp hoặc được đưa vào môđun Log và cảnh báo để ử x lý Khi các cảnh báo được xác định môđun Kết xu t thông tin s th c hi n viấ ẽ ự ệ ệc đưa cảnh báo ra theo đúng định d ng ạmong mu n ố
Hình 2-5: Ki n trúc c a Snort ế ủ
2.2 H ng t ệ thố ậ p hợp dữ liệ u Chukwa
Chukwa là m t h ng t p h p d ộ ệthố ậ ợ ữliệu mã ngu n m theo dõi h thồ ở để ệ ống phân tán
có quy mô lớn Chukwa được xây d ng d a trên Hadoop, d ự ự ữliệu được thu th p t nhi u ậ ừ ềngu n s t p trung lồ ẽ ậ ại và lưu trữ trên HDFS [9] t n d ng kh ậ ụ ả năng xử lý và tính toán song song của MapReduce khi có nhu c u x lý d li u l n ầ ử ữ ệ ớ
Chukwa có ki n trúc bao g m 2 thành ph n: ế ồ ầ
• Agent: Ch y trên các máy tính là ngu n sinh d ạ ồ ữliệu Chukwa Agent chạy trên t t c ấ ả các máy nơi mà có nhu cầu ghi d liữ ệu để chuy n giao cho ể
c m máy ch Hadoop ụ ủ
• Collector: Nh n d u t ậ ữ liệ ừ các Agent và lưu trữ ổn định trong b ộ
nhớ, trong trường h p c a Hadoop là HDFS Collector s ợ ủ ẽ lưu tấ ảt c các d ữ
liệu thu thập được từ Agent vào m ậột t p tin duy nh t trong HDFS ấ
Hình 2-6: Ki n trúc c a Chukwa ế ủ
Trang 2727
Khi hoạt động, Chukwa Agent thu th p d u t ngu n sinh d u thông qua các ậ ữliệ ừ ồ ữliệAdaptor Adaptor chịu trách nhi m trong việ ệc đọc d ữliệu t t p tin mà ừ ậ ứng dụng nó đang theo dõi sinh ra ho c ho c tr c ti p t ng dặ ặ ự ế ừ ứ ụng đang được theo dõi M t Agent có th ộ ể
có nhi u Adaptor, t ng Adaptor có nhi m v riêng biề ừ ệ ụ ệt Chukwa Agent khi đã có dữ liệu thì s g i d u qua Chukwa Collector b ng giao th c HTTP vì m t Collectior hoẽ ử ữ liệ ằ ứ ộ ạt động tương tự như một ứng d ng Java Servlet T i Collector, d li u s ụ ạ ữ ệ ẽ đượ ậc t p h p l i ợ ạ
và lưu trữ ổn định trong b nh phân tích và x ộ ớ để ửlý
2.3 H ệ Thố ng t p h ậ ợ p dữ liệ u Syslog- NG
Syslog-ng là m t công c thu th p Log r t hi u qu và linh ho t là s l a ch n cộ ụ ậ ấ ệ ả ạ ự ự ọ ủa
r t nhi u nhà qu n tr m ng trong vi c xây d ng m t h ng log t p trung Syslog-ng ấ ề ả ị ạ ệ ự ộ ệ thố ậđược xây d ng d a trên chu n syslog trên n n t ng Unix và các h ự ự ẩ ề ả ệ điều hành tương tự
G m xây d ng v i 2 thành ph n Syslog-ng client và Syslog-ng Server Các Client thồ ự ớ ầ ực
hi n vi c thu th p log quan tr ng gệ ệ ậ ọ ửi tới máy ch t p trunủ ậ g và lưu trữ
Syslog-ng là m t ph n m m mã ngu n m ộ ầ ề ồ ở được phát tri n trên n n t ng c a Syslogd ể ề ả ủHiện nay nó có hai phiên bản và được phát triên b i Balabit IT Security Ltd ở
Hình 2-6: Kiến trúc c a Syslog-ủ ng
Trang 2828
Loggy cung cấp các chức năng gần giống với Splunk với việc tìm kiếm thông tin trên Log, hiển thị dưới dạng biểu đồ một cách trực quan, cảnh báo tới người sử dụng khi hệ thống có vấn đề
• Hỗ trợ định dạng: Khác với Splunk, Loggly chỉ hoạt động tốt với Syslog Muốn xử dụng các loại Log khác chúng ta cần phải convert chúng về Syslog để
sử dụng
• Thu thập thông tin: Loggly xây dựng trên mô hình SaaS (Software as a Service) Nên để thu thập Log chúng ta chỉ cần cấu hình hệ thống với một client được cung cấp để gửi Syslog tới và xử lý tại Server của Splunk
• Đánh chỉ mục dữ liệu: Loggly có thể thực hiện việc đánh chỉ mục dữ liệu một cách nhanh chóng và tối ưu
• Tìm kiếm thông tin: Loggly cung cấp một cơ chế tìm kiếm thông minh và nhanh chóng có thể xác định sự cố và có thể thiết lập các cảnh báo Tuy không đầy đủ các tính năng như tìm kiếm với Splunk nhưng cơ chế Loggly cũng giúp người quản trị có thể tìm kiếm và thiết lập các vấn đề mà người quản trị mong muốn
• Cảnh báo và giám sát: Loggly cung cấp một giao diện hiển thị tình trạng, kết quả tìm kiếm bằng biểu đồ rất trực quan giúp người quản trị dễ dàng hình dung
hệ thống Cũng giống như Splunk cơ chế cảnh báo của Loggly cũng hoạt động dựa trên việc thiết lập tìm kiếm thông tin trên Log, cảnh báo tới người dùng khi
có một (nhiều) các bản ghi phù hợp với cú pháp tìm kiếm theo những cấu hình của người sử dụng
2.4 Mô hình MapReduce
2.4.1 Giới thiệ ề u v MapReduce
Trong b i c nh cu c s ng hiố ả ộ ố ện đại, khi mà d u bùng n ữliệ ổ tăng trưởng quá nhanh; cùng lúc đó, nhu cầu th c hi n, x lý các nghi p c ự ệ ử ệ ụ trên lượng d li u kh ng l ữ ệ ổ ồ đó là thách th c r t l n V i nhu cứ ấ ớ ớ ầu đó, Google đã nghiên cứu và công b m t gi i pháp nhố ộ ả ằm
x ử lý lượng d u r t lữliệ ấ ớn đó và mô hình MapReduce ra đời MapReduce mà mô hình
Trang 2929
tính toán và x lý song song, phân tán ch y trên m t h ng phân tán g m nhi u máy ử ạ ộ ệ thố ồ ềtính
MapReduce giải quy t vế ấn đề ử x lý d li u l n và tính toán kh ng l b ng các: ữ ệ ớ ổ ồ ằ
• Phân chia sẽ liệ u thành các block và chia cho nhiều máy tính lưu trữ
• Phân chia công vi c l n thành các công vi c nh ệ ớ ệ ỏ hơn, chuyển vi c tính toán ệ
c c b trên kh i d u l n, sang tính toán phân tán trên các máy tính trong ụ ộ ố ữ liệ ớcum Tính toán tại nơi có dữ u [7] liệ
• Thu th p k t qu ậ ế ả đã tính toán tại nhi u máy tính, t ng hề ổ ợp đưa ra kết qu cu i ả ốcùng của công vi c mu n gi i quy t ệ ố ả ế
Mô hình MapReduce ra đời đã giải quyết được vấn đề v x lý d u lề ử ữliệ ớn, tăng hiệu năng xử lý, tính toán lên đáng kể Chi phí lắp đặt và tri n khai cho mô hình này r ể ẻ và độ
an toàn cao
2.4.2 Kiế n trúc c a MapReduce ủ
Mô hình tính toán MapReduce được ch y trên m t cạ ộ ụm các máy tính được ghép n i ố
v i nhau Ki n trúc c a cớ ế ủ ụm máy tính này được xây d ng theo mô hình master/slave ựMapReduce định nghĩa JobTracker đóng vai trò master trong kiến trúc, và các TaskTracker đóng vai trò là các slave
JobTracker: đóng vai trò là master trong ki n trúc, ti p nh n c c y u c u tính toán, ế ế ậ á ê ầ
ph n chia công vi c tính toán th nh c c task v ph n c ng cho c c TaskTracker thâ ệ à á à â ô á ực
hi n, qu n l t nh tr ng th c hi n c c task c a TaskTracker v ph n c ng l i n u c n ệ ả ý ì ạ ự ệ á ủ à â ô ạ ế ầJobTracker cũng qu n l danh s ch c c TaskTracker v t nh tr ng c a t ng TaskTracker ả ý á á à ì ạ ủ ừTrong m t ki n trúc, MapReduce ch cho ph p c tộ ế ỉ é ó ối đa một JobTracker
TaskTracker: là ác đơn vị c tính toán trong ki n trúc, v i vai tr ti p nhế ớ ò ế ận task được JobTracker phâ ôn c ng v th c hi n n V gi li n l c v i JobTracker, MapReduce à ự ệ ó à để ữ ê ạ ớcung c p c ấ ơchế g i thông báo t ử ừ TaskTracker đến JobTracker cho c c nhu c u nh á ầ ưthông
b o tiá ến độ ủa task do TaskTracker đó c thực hi n, th ng b o tr ng th i hi n h nh c a nệ ô á ạ á ệ à ủ ó Trong kiến trúc, MapReduce có th c nhi u TaskTracker ể ó ề
Trang 3131
Hình 2-9: T ng quan mô hình hoổ ạ ột đ ng MapReduce c a Google [5] ủ
2.5 H ng phân tán v ệ thố ớ i Apache Hadoop
2.5.1 Giới thiệ ề u v Apache Hadoop
Apache Hadoop là một Framework dùng để chạy nh ng ng d ng có nhu c u tính ữ ứ ụ ầtoán và x lý d ử ữ liệu có kích thướ ớn Hadoop được l c xây d ng theo mô hình ựMapReduce, Framework được tri n khai trên nh ng c m máy ch lể ữ ụ ủ ớn được xây dưng từ
nh ng thành ph n ph n c nữ ầ ầ ứ g thông thường Hadoop ra đời nh m cung c p nh ng công ằ ấ ữ
c xây d ng nh ng ng d ng tính toán, x lý d u l n trên nh ng h ng phân ụ để ự ữ ứ ụ ử ữliệ ớ ữ ệ thốtoán m t cách d ộ ễ dàng hơn
Thêm vào đó, Hadoop cung cấp m t h th ng file phân tán (HDFS) cho phép l u tr ộ ệ ố ữ ữ
d u lữliệ ên trên nhiều máy tính trong c m máy ch ụ ủ
Hadoop ở phiên b n th 2 có th t ng quát v i bốả ứ ể ổ ớ n thành ph n: ầ
• HDFS: H ng file phân tán cệthố ủa Hadoop, cung cấp kh ả năng lưu trữ ữ ệ d li u
kh ng l ổ ồ và tính năng tối ưu hoá việc s dử ụng băng thông giữa các Node HDFS r t linh ho t và an toàn, có th d dàng m rấ ạ ể ễ ở ộng và có tính năng lưu trữ
d ữliệu dư thừa nhằm đảm b o tính an toàn cho d u ả ữliệ
• YARN: Là m t framework h phát triộ ỗtrợ ển ứng d ng phân tán YARN cung ụ
c p daemons và APIs c n thi t cho vi c phát tri n ng d ng ấ ầ ế ệ ể ứ ụ phân tán, đồng
Trang 32• Các ng d ng khác: Là các ng dứ ụ ứ ụng có vai trò tương tự như MapReduce Engine được vi t d a trên n n t ng YARN, t n d ng nh ng gì mà YARN cung ế ự ề ả ậ ụ ữ
cấp để xây d ng các ng d ng có hiự ứ ụ ệu năng cao chạy trên c m máy tính Có ụthể ể đế k n nh ng ng d ng n i tiữ ứ ụ ổ ếng như HBase, Hive, Chukwa, Pig, ZooKeeper, …
Hình 2-10: Các thành ph n c a Hadoop ầ ủ
Hadoop là m t trong nh ng d ộ ữ ự án hàng đầu của Apache, được xây d ng b i m t c ng ự ở ộ ộ
đồng nh ng ữ người đóng góp toàn cầu, vi t b ng ngôn ng l p trình Java ế ằ ữ ậ
2.5.2 H ng t p tin phân tán c a Hadoop HDFS ệ thố ậ ủ –
Khi kích thước c a t p d liủ ậ ữ ệu vượt quá kh ả năng lưu trữ ủ c a m t máy tính, t t y u ộ ấ ế
s dẽ ẫn đến nhu c u phia chia d ầ ữliệu để lưu trữ trên nhiều máy tính Các h ng t p tin ệthố ậ
qu n lý viả ệc lưu trữ ữ d u trên m t m ng nhiliệ ộ ạ ều máy tính đều g i là h th ng t p tin ọ ệ ố ậphân tán Do hoạt động trên mô trường m ng máy tính, ki n trúc c a các h ng t p tin ạ ế ủ ệthố ậphân tán này ph c tứ ạp hơn rất nhi u so v i các h ng t p tề ớ ệthố ậ in lưu trữ ụ c c b Hadoop ộcung c p cho m t h ng t p tin phân tán riêng có tên g i là HDFS v i mấ ộ ệthố ậ ọ ớ ục đích tạo ra
m t h ộ ệthống t p tin phân tán d s d ng v i chi phí tri n khai th p HDFS có nhậ ễ ử ụ ớ ể ấ ững đặc điểm sau:
Trang 3333
• HDFS được xây d ng trên c m máy ch v i các Node là các máy tính thông ự ụ ủ ớthường, giá r và có kh ẻ ả năng hỏng hóc cao Chất lượng c a ph n c ng nh ủ ầ ứ ảhướng r t nhiấ ều đế ỷ ệ ản t l x y ra các l i trên HDFS Do v y, HDFS có trang b ỗ ậ ị
giải pháp lưu trữ ữ d liệu dư thừa nh m kh c ph c và ph c h i k p th i khi ằ ắ ụ ụ ồ ị ờ
ph n c ng x y ra h ng hóc ầ ứ ả ỏ
• HDFS được thi t k x lý nh ng tế ế để ử ữ ập tin có kích thướ ớc l n Tuy nhiên, các
tập tin có kích thước nh ỏ cũng được h ỗ trợ, nhưng HDFS không tối ưu cho các trường h p này do hi u qu th p ợ ệ ả ấ
• HDFS thi t k dành cho các ế ế ứng d ng x lý d ng kh i (batch processing) Do ụ ử ạ ố
đó, các tập tin trên HDFS khi đượ ạc t o ra, ghi d liữ ệu và đóng lại thì không
thể ch nh sỉ ửa được nữa Điều này làm vi c s d ng các t p tin trên h ống ệ ử ụ ậ ệth
trở nên đơn giản hơn, đảm b o tính nh t quán cho d ệu ả ấ ữli
• Trong HDFS, m i t p tin s ỗ ậ ẽ được chia thành m t hay nhi u block và m i block ộ ề ỗnày s có mẽ ột blockID riêng để nh n di n Các block c a cùng m t t p tin s ậ ệ ủ ộ ậ ẽ
có cùng kích thước (tr block cuối), kích thước này đượ ọừ c g i là blockSize của
tập tin đó Mỗi block c a mủ ột tập tin s ẽ đượ lưu trữ dư thừc a thành nhi u b n ề ảsao khác nhau vì mục đích an toàn dữ ệ li u
Trang 3434
Hình 2-11: Ki n trúc c a HDFS ế ủ
NameNode đóng vai tr l master, ch u tr ch nhi m duy tr ng tin v c u tr c cò à ị á ệ ì thô ề ấ ú ây
ph n c p c c file, th m c c h ng file v c c metadata kh c c a h ng file C â ấ á ư ụ ủa ệ thố à á á ủ ệthố ụ
thể á, c c Metadata m Namenode l u tr gà ư ữ ồm có:
• File System Namespace: l h nh nh c y th m c c a h ng file t i mà ì ả â ư ụ ủ ệ thố ạ ột thời điểm nào đó File System NameSpace th hi n t t c c c file, th mể ệ ấ ả á ư ục c ó
trên h ốệth ng file v quan h gi a chúng à ệ ữ
• Thông tin để á nh x t t n file ra th nh danh s ch c c block: V i m i file, ta ạ ừ ê à á á ớ ỗ
c mó ột danh s ch c á óthứ ự t c c block cá ủa file đó, mỗi block đại di n b i block ệ ở
ID
• N i l u tr c c block: cơ ư ữ á ác block được đại di n m t block ID V i m i block ệ ộ ớ ỗ
ta c m t danh s ch c c DataNode l u tr c c b n sao có ộ á á ư ữ á ả ủa block đó Các DataNode sẽ chị áu tr ch nhi m l u tr b n sao cệ ư ữ ả ủa block đó C c DataNode s ẽáchị áu tr ch nhi m l u tr c c block th t s cệ ư ữ á ậ ự ủa từng file c a h ng file ph n ủ ệthố â
t n l n h ng file cá ê ệthố ục bộ ủ ó c a n M i block s ỗ ẽ đượ ưc l u tr nh l m t file ữ ư à ộriêng bi t trệ ên h ốệth ng file c c bụ ộ ủ c a DataNode
NameNode s u tr ch nhiẽchị á ệm điều phối các thao t c truy cá ập (đọc/ghi d u) cữliệ ủa client l n h ng HDFS, v do c c Datanode l n i th t s l u tr c c block c a cê ệthố à á à ơ ậ ự ư ữ á ủ ác file tr n HDFS n n ch ng s l n i tr c tiê ê ú ẽ à ơ ự ếp đá ứp ng c c thao t c truy c p n y Ch ng á á ậ à ẳ
Trang 35n C sau m i l n c p nh t l i nh v y, metadata tr n namenode s ó ứ ỗ ầ ậ ậ ạ ư ậ ê ẽ đạt đượ ìc t nh tr ng ạ
thống nh t v i d ệấ ớ ữli u tr n DataNode To n b ạê à ộtr ng th i cá ủa metadata khi đang ở ì t nh
trạng th ng nh t nố ấ ày được g i l m t checkpoint metadata d ng cho mọ à ộ ù ục đích ph c hụ ồi
l i NameNode n u NameNode b l ạ ế ị ỗi
T ki n tr c tr n, ta thừ ế ú ê ấy đượ ầc t m quan tr ng c a NameNode, n l u gi t t c cọ ủ ó ư ữ ấ ả ác metadata c a h ng N u Namenode g p ph i s c g ph n c ng hay phủ ệ thố ế ặ ả ự ố ì đó (cả ầ ứ ần
m m) th t t c c c file tr n h ề ì ấ ả á ê ệthống HDFS đề ẽ ị ấ ìu s b m t, v ta kh ng c c ch nô ó á ào để á t i
c u tr c l i c c file t cấ ú ạ á ừ ác block đượ ưc l u tr n cê ác DataNode Đó à ý l l do c s t n tó ự ồ ại
c a SecondaryNamenode SecondaryNamenode l mủ à ột Node duy nh t tr n c m máy ch ấ ê ụ ủHadoop SecondaryNamenode không đóng vai tr nh m t NameNode, nhi m v c a ò ư ộ ệ ụ ủSecondaryNamenode l l u tr l i checkpoint (tr ng th i th ng nh t c a metadata) mà ư ữ ạ ạ á ố ấ ủ ới
nh t tr n NameNode Khi NameNode g p s c , th ấ ê ặ ự ố ì checkpoint mới nh t n y s ấ à ẽ được import v o NameNode v NameNode s à à ẽ trở ạ l i hoạt động nh ư thời điểm SecondaryNamenode t o checkpoint ạ
2.5.4 Nguyên t c ho ắ ạt độ ng c a HDFS ủ
Việ ồ ạc t n t i duy nh t m t NameNode tr n m t h thấ ộ ê ộ ệ ống HDFS đã àm đơ l n gi n ho ả áthiế ế ủ ệ ốt k c a h th ng v cho ph p NameNode t ng trong vi c s p x p c c block d à é ự độ ệ ắ ế á ữ
liệ êu l n tr n c c DataNode d a v o c c thông tin v m i tr ng h ốê á ự à á ề ô ườ ệth ng nh : c u tr c ư ấ ú
m ng, b ng th ng m ng, kh n ng c a c c DataNode Tuy nhi n, c n ph i t i thi u ho ạ ă ô ạ ả ă ủ á ê ầ ả ố ể á
s tham gia c a NameNode v o c c qu nh c/ghi d u l n h ự ủ à á átrì đọ ữliệ ê ệ thống để trá nh t nh ì
trạng n t th t c chai (bottle neck) Client s kh ng bao gi c hay ghi d ệ ê ệú ắ ổ ẽ ô ờ đọ ữli u l n h thống th ng qua NameNode Thay vô ào đó, client s h i NameNode xem n n li n l c với ẽ ỏ ê ê ạDataNode nào để truy xu t d liấ ữ ệu Sau đó, client s k t n i tr c ti p v i c c DataNode ẽ ế ố ự ế ớ á
để ự th c hi n c c thao t c truy xu t d li u ệ á á ấ ữ ệ
Trang 36t ừ DataNode “gần” nhất Client s n hành lẽtiế ặp đi lặ ạp l i việc đọc các block cho t i khi ớ
t p tin c n thiậ ầ ết được đọc xong
Nhận xét: Trong quá trình một client đọc file trên HDFS, client s c ti p k t nẽtrự ế ế ối với các DataNode để l y d u ch không th c hi n thông qua NameNode, trấ ữliệ ứ ự ệ ải đều việc luân chuy n d u ra kh p c m máy ch , tình tr ng ngh n c chai s không x y ra Tuy ể ữliệ ắ ụ ủ ạ ẽ ổ ẽ ảnhiên, vi c lệ ặp đi lặp lại các thao tác để tìm ki m các block trong DataNode có mế ột hạn
chế là làm kh ả đọc dữ ệ li u ng u nhiên cẫ ủa HDFS kém đi rất nhiều
Hình 2-12: Quá trình đọc dữ liệ u trong HDFS
b) Quá trình ghi dữ liệ u
Khi Client có yêu cầu ghi d li u lên HDFS, Client s g i yêu c u tữ ệ ẽ ử ầ ới NameNode để
t o 1 t p tin lên File System Namespace T p tin mạ ậ ậ ới đượ ạc t o sẽ là d ng rạ ỗng (chưa có block nào) Sau đó, NameNode sẽ quyết định danh sách các DataNode s ch a các b n ẽ ứ ảsao c a t p tin c n ghi và g i l i cho Client Client s chia t p tin thành các block, và vủ ậ ầ ử ạ ẽ ậ ới
mỗi block, Client sẽ đóng gói thành các packet
Tiếp theo, Client g i block cho DataNode th nh t trong danh sách nhử ứ ấ ận đượ ừc t NameNode DataNode th nh t khi nhứ ấ ận được packet s ẽ lưu lại b n sao th nh t cả ứ ấ ủa