17/09/2018, 15:17

Sử dụng Graph Database trong việc giám sát mạng

Graph Database là gì và tại sao lại là Graph Database ? Bạn sẽ làm gì nếu muốn xây dựng 1 hệ thống có khả năng tìm kiếm như sau: Danh sách bạn bè của tôi thích tennis và hay chơi ở sân Cầu Giấy thứ 7 hàng tuần ? (Facebook gần làm được như thế rồi đấy :D) Nếu sử dụng hệ quản trị cơ sở dữ liệu ...

Graph Database là gì và tại sao lại là Graph Database ?

Bạn sẽ làm gì nếu muốn xây dựng 1 hệ thống có khả năng tìm kiếm như sau: Danh sách bạn bè của tôi thích tennis và hay chơi ở sân Cầu Giấy thứ 7 hàng tuần ? (Facebook gần làm được như thế rồi đấy :D)

Nếu sử dụng hệ quản trị cơ sở dữ liệu quan hệ RDBM (MySQL, Oracle…) thì chúng ta sẽ phải tạo nhiều bảng và nhiều liên kết phức tạp: Con người, Quan hệ bạn bè, Môn thể thao, Địa điểm, Thời gian… Chưa kể câu truy vấn SQL của bạn phải khá lằng nhằng với UNION, GROUP BY, INNER JOIN…

Vậy nếu chúng ta tạm quên đi các table, column, row, key… thì liệu có 1 dạng biểu diễn nào phù hợp cho kiểu dữ liệu mà có nhiều mối liên kết hay không ? Câu trả lời là có.  Đó là Graph Database

7

Hình trên là một ví dụ của Graph Database, dữ liệu được biểu diễn dạng đồ thị thông qua các node, các relation và property (của cả node và relation). Với những nơi có dữ liệu liên kết nhiều: ví dụ của mạng xã hội, thì Graph Database sẽ là 1 lựa chọn tốt hơn nhiều so với RDBM. Facebook cũng mới ra tính năng Graph Search sử dụng Graph Database.

Ngoài mạng xã hội ra, Graph Database còn được ứng dụng ở đâu nữa hay không ? Theo tôi thì chúng ta có thể áp dụng nó trong các giải pháp về security và network monitoring (Giám sát mạng). Đơn giản vì các ứng dụng đó cần phân tích nhiều các kết nối từ nơi này sang nơi khác.

Graph Database trong các Hệ thống Network Monitoring

Thực tế thì các dữ liệu trong 1 hệ thống mạng là dữ liệu có nhiều kết nối. Ví dụ: Máy A truy vấn DNS tới server B để vào website C download file D…

Chính vì vậy, nếu xây dựng database của Hệ thống Network Monitoring sử dụng RDBM chắc chắn sẽ rất phức tạp. Trong tình huống này nếu ứng dụng Graph Databse thì sẽ đơn giản hơn, ví dụ các máy tính là 1 loại node, các truy vấn sẽ là relation, máy chủ hoặc thiết bị mạng có thể được xếp thêm vào 1 loại node khác.

Giả sử 1 tình huống như sau: Một số máy tính trong hệ thống mạng có phần mềm quản lý nhân sự bị xung đột bí hiểm với 1 vài phần mềm nào đó. Trong khi, các máy tính còn lại không bị xung đột. Dựa vào Graph Database ta sẽ nhanh chóng tìm ra các phần mềm trùng nhau trên các máy tính có bị xung đột. Để từ đó khoanh vùng được nguyên nhân.

6

Máy 1 và Máy 4 có phần mềm HRM bị xung đột với phần mềm nào đó, trong khi Máy 5 phần mềm HRM chạy vẫn bình thường. Ta sẽ nhanh chóng tìm ra, ngoài HRM, MSWord và Java là 2 phần mềm Máy 1 và Máy 4 cùng có, trong khi máy 5 không có. Sau khi khoanh vùng còn 2 phần mềm nghi ngờ, ta sẽ đơn giản hơn để xác định được nguyên nhân của sự xung đột.

51

41

Graph Database & Security Solution

Các giải pháp bảo mật thực sự phù hợp nếu dùng Graph Database. Chẳng hạn như FW hoặc IDS/IPS (phát hiện và ngăn chặn xâm nhập, tấn công), các hệ thống cảnh báo…

Hầu hết các giải pháp trên đều dựa vào việc phát hiện sự bất thường: trên một máy tính, trên 1 hệ thống mạng… và Graph Database phù hợp với nhu cầu đó.

Đôi khi không cần phải “visualize” như đống dữ liệu từ RDBM, vì bản chất của Graph đã là “visual” rồi.

8

Các máy tính kết nối tới 1 tên miền bất thường ? Ta sẽ thấy ngay đang có 1 chiến dịch tấn công mới trong hệ thống mạng và máy nào đang bị ảnh hưởng.

Nguồn: ducasec.com

Bài viết cùng chủ đề << Lợi ích của một hệ thống giám sát an toàn mạng – SIEM
Nguyen Minh Duc
Nguyen Minh Duc
http://ducasec.com
Từng là chuyên viên cao cấp, Phó Chủ Tịch phụ trách An Ninh Mạng tại công ty an ninh mạng Bkav. Là chuyên gia về Big Data, DDOS, tổng quan về Security Hiện đang làm việc tại Ban Công Nghệ Tập Đoàn FPT
0