Hệ thống Giám sát Bảo mật Máy chủ Đám mây dựa trên Công nghệ Blockchain

Đồ án Tốt nghiệp — Học viện Công nghệ Bưu chính Viễn thông (PTIT)

Sinh viên thực hiện: Dương Công Sáng

Giảng viên hướng dẫn: TS. Huỳnh Trọng Thưa

MSSV: N25CHHT006

Chuyên ngành: Hệ thống Thông tin

Mục lục

01

Đặt vấn đề & Mục tiêu

Bối cảnh, thách thức bảo mật và mục tiêu xây dựng hệ thống

02

Nền tảng lý thuyết

Blockchain, Cơ chế đồng thuận, Chữ ký số, Smart Contract

03

Kiến trúc & Triển khai

Kiến trúc hệ thống, Công nghệ, Luồng dữ liệu, Agent, Dashboard

04

Demo & Kết luận

Demo thực tế, Kết quả đạt được, Hạn chế & Hướng phát triển

Phần 1 — Đặt vấn đề

Tại sao cần Blockchain cho Giám sát Bảo mật?

Trong môi trường đám mây, máy chủ liên tục phát sinh các sự kiện bảo mật: đăng nhập SSH bất thường, thay đổi file cấu hình, tài nguyên vượt ngưỡng. Vấn đề cốt lõi nằm ở chỗ log thường chỉ được lưu tập trung trên một server — khi server đó bị tấn công, toàn bộ bằng chứng có thể bị xóa hoặc giả mạo.

⚠️ Log Truyền thống (Syslog / ELK)

  • Admin có thể xóa hoặc sửa log bất kỳ lúc nào
  • Single point of failure — mất server là mất log
  • Không có cơ chế xác minh nguồn gốc dữ liệu
  • Dễ bị tấn công nội bộ (insider threat)

Log trên Blockchain

  • Dữ liệu bất biến — không thể sửa sau khi ghi
  • Phi tập trung — không có điểm thất bại duy nhất
  • Minh bạch — mọi node đều lưu bản sao đầy đủ
  • Chữ ký số xác minh rõ nguồn gốc của mỗi log
Phần 1 — Mục tiêu

Mục tiêu Đề tài

Mạng Blockchain Riêng

Xây dựng mạng Ethereum Private (Geth, Clique PoA) trên 3 máy ảo với Chain ID 1337, đảm bảo đồng bộ sổ cái chung.

Agent Giám sát Tự động

Triển khai Agent Node.js trên từng VM, tự động phát hiện sự kiện bảo mật: SSH login, thay đổi file, tài nguyên bất thường.

Ghi Log Bất biến

Lưu log vào Smart Contract SecurityLog dưới dạng transaction bất biến — không ai có thể chỉnh sửa sau khi xác nhận.

Dashboard Trực quan

Xây dựng Dashboard Web (Next.js) hiển thị biểu đồ phân bố sự kiện, line chart tài nguyên và bảng log chi tiết.

Tài khoản Ký số Riêng

Mỗi VM có writer account độc lập. Mọi log đều được ký số bởi Private Key của VM đó — đảm bảo xác thực nguồn gốc.

Phần 2 — Lý thuyết

Tổng quan Công nghệ Blockchain

Blockchain là một chuỗi các khối (block) được liên kết bằng hàm băm mật mã. Mỗi block chứa: danh sách transaction, hash của block trước, timestamp và nonce. Khi một block đã được thêm vào chuỗi, dữ liệu bên trong không thể sửa đổi vì sẽ làm thay đổi hash → phá vỡ toàn bộ liên kết chuỗi.

🌐 Public Blockchain

Ai cũng có thể tham gia mạng. Ví dụ: Bitcoin, Ethereum Mainnet. Phù hợp ứng dụng phi tập trung toàn cầu.

🔒 Private Blockchain

Chỉ các node được cấp phép mới tham gia. Phù hợp doanh nghiệp, môi trường kiểm soát. Đề tài này sử dụng loại này.

Phần 2 — Lý thuyết

Cơ chế Đồng thuận (Consensus)

Cơ chế đồng thuận quyết định cách các node trong mạng blockchain thống nhất về trạng thái sổ cái. Đề tài lựa chọn Proof of Authority (PoA) Clique vì mạng riêng 3 node đã biết danh tính, không cần tiêu tốn năng lượng tính toán.

Phần 2 — Lý thuyết

Chữ ký số & Tài khoản Ethereum

Quy trình tạo tài khoản

1

Private Key (256-bit)

Sinh ngẫu nhiên, bí mật. Lưu trong keystore mã hóa AES-128, bảo vệ bằng password.

2

Public Key (ECDSA)

Được tạo từ Private Key qua thuật toán đường cong elliptic. Dùng để xác minh chữ ký.

3

Address (20 bytes)

Bắt đầu bằng 0x... — là định danh duy nhất của mỗi tài khoản trên mạng.

Writer Account — mỗi VM một tài khoản riêng

MasterNode: 0x873d...07fd

WorkerNode1: 0x3f1b...110e

WorkerNode2: 0x4a49...10b8


Quy trình ký transaction

  1. Agent tạo payload JSON (cpu, ram, disk...)
  1. Gọi Smart Contract hàm addLog()
  1. Geth ký transaction bằng Private Key của VM
  1. Node khác verify bằng Public Key tương ứng
  1. Không ai giả mạo được nếu không có Private Key
Phần 2 — Lý thuyết

Smart Contract SecurityLog

Struct LogEntry — Cấu trúc một bản ghi log

struct LogEntry {
  string nodeId;      // ID của VM gửi log
  string eventType;   // SSH_LOGIN | FILE_INTEGRITY
                      // | RESOURCE_WARNING
  string eventData;   // JSON payload chi tiết
  uint256 timestamp;  // Unix timestamp
  string sourceIP;    // IP nguồn của sự kiện
}

modifier onlyAuthorized() {
  require(authorizedNodes[msg.sender],
    "Not authorized");
  _;
}

function addLog(...) public onlyAuthorized {
  // Chỉ account được authorize mới ghi được
}

Cơ chế phân quyền (Access Control)

authorizedNodes mapping

Danh sách các account được phép ghi log. Chỉ địa chỉ trong whitelist mới có quyền gọi addLog().

modifier onlyAuthorized()

Kiểm tra msg.sender trước mỗi lần ghi. Nếu chưa được authorize → transaction bị revert ngay lập tức.

Owner độc quyền cấp phép

Chỉ người deploy contract mới có quyền gọi authorizeNode() để thêm node mới vào mạng.

Địa chỉ contract: 0xa0c3...c40 — dùng chung toàn mạng. Code không thể sửa sau khi deploy.

Phần 3 — Hệ thống thực tế

Blockchain Network

🔗 Tổng quan mạng

Mạng Ethereum riêng được thiết lập với Geth client, sử dụng thuật toán đồng thuận Clique PoA (Proof of Authority) để đảm bảo hiệu suất và kiểm soát trong môi trường nội bộ.

  • Client: Geth
  • Consensus: Clique PoA
  • Chain ID: 1337
  • Block period: 5 giây
  • Network: Private LAN 192.168.10.0/24

🖧 3 Node Validator

MasterNode

IP: 192.168.10.50
Node chính, khởi tạo genesis block và quản lý mạng.

WorkerNode1

IP: 192.168.10.51
Node validator thứ nhất, tham gia đồng thuận và lưu trữ blockchain.

WorkerNode2

IP: 192.168.10.52
Node validator thứ hai, đảm bảo tính dự phòng và phân tán dữ liệu.

Phần 3 — Hệ thống thực tế

Smart Contract

📋 SecurityLog.sol

  • File Solidity lưu toàn bộ log bảo mật lên blockchain
  • Struct LogEntry: nodeId, eventType, eventData, timestamp, sourceIP
  • Hàm addLog() để ghi log mới
  • Hàm getLogs() để truy vấn log
  • Địa chỉ contract: 0xa0c3...c40 — dùng chung toàn mạng
  • Code không thể sửa sau khi deploy

🔐 Cơ chế Phân quyền (Access Control)

authorizedNodes mapping

Danh sách account được phép ghi log

modifier onlyAuthorized()

Kiểm tra msg.sender trước mỗi lần ghi, nếu chưa authorize → transaction bị revert

Owner độc quyền cấp phép

Chỉ người deploy contract mới gọi được authorizeNode() để thêm node mới

Phần 3 — Hệ thống thực tế

Monitoring Agent

Agent Node.js chạy 24/7 trên mỗi VM. Tự động phát hiện sự kiện bảo mật, ký transaction và gửi lên blockchain.

🔐 SSH Login Monitor

Đọc realtime /var/log/auth.log bằng tail -f. Phát hiện đăng nhập thành công/thất bại. Parse thông tin: user, IP nguồn, timestamp. Gửi log lên blockchain ngay khi phát hiện.

📁 File Integrity Monitor

Dùng thư viện chokidar theo dõi thư mục cấu hình. Phát hiện thay đổi, tạo mới, xóa file. Tính hash SHA-256 trước/sau để so sánh. Cảnh báo ngay khi file bị sửa đổi bất thường.

📊 Resource Monitor

Kiểm tra CPU, RAM, Disk mỗi 60 giây. Ngưỡng cảnh báo: CPU > 80%, RAM > 85%, Disk > 90%. Ghi log RESOURCE_WARNING khi vượt ngưỡng.

Phần 3 — Hệ thống thực tế

Kiến trúc Hệ thống — Module 4: Dashboard Web

🖥️ Stack Công nghệ

Backend: Express.js

đọc blockchain qua JSON-RPC, cung cấp REST API cho frontend

Frontend: Next.js + React

giao diện hiện đại, responsive, cập nhật realtime

Charts: Recharts

biểu đồ thống kê sự kiện theo thời gian

Deploy: monitor.duongcongsang.com

public domain, HTTPS

📊 Tính năng Dashboard

Trang đăng nhập Glassmorphism, xác thực admin

Bảng log realtime: lọc theo node, loại sự kiện, thời gian

Biểu đồ thống kê sự kiện theo ngày/tuần

Trạng thái node: online/offline, block height, peer count

Chi tiết từng log: verify chữ ký, xem transaction hash trên blockchain

Phần 3 — Hệ thống thực tế

Công nghệ Sử dụng

Phần 3 — Hệ thống thực tế

Luồng Dữ liệu (Data Flow)

7 bước xử lý tự động — từ sự kiện bảo mật đến Dashboard

🖥️ Sự kiện phát sinh

SSH login / file thay đổi / CPU vượt ngưỡng trên VM

🤖 Agent phát hiện

Đọc auth.log / chokidar / systeminformation

📦 Tạo payload JSON

nodeId, eventType, eventData, sourceIP, timestamp

✍️ Ký & Gửi Transaction

Agent gọi addLog() → Geth ký bằng writer account

⛓️ Block được tạo

Validator đóng block mỗi 5 giây, đồng bộ toàn mạng

🔌 Backend đọc RPC

Express.js gọi getLogs() qua JSON-RPC

📊 Dashboard hiển thị

Frontend polling 30s, render bảng log + biểu đồ

Phần 3 — Hệ thống thực tế

Agent Giám sát — 3 Loại Monitor

🔐 SSH Login Monitor

Đọc realtime file /var/log/auth.log bằng tail stream. Dùng regex phát hiện đăng nhập thành công hoặc thất bại.

  • Payload: raw_log, status (SUCCESS/FAILED), IP nguồn
  • Phát hiện brute-force SSH và đăng nhập trái phép
  • EventType: SSH_LOGIN

📁 File Integrity Monitor

Dùng thư viện chokidar giám sát realtime thư mục nhạy cảm (/etc hoặc thư mục demo được cấu hình).

  • Phát hiện: CREATED, MODIFIED, DELETED
  • Payload: action, đường dẫn file
  • Phát hiện backdoor cài vào, config bị sửa trái phép

📊 Resource Monitor

Kiểm tra CPU, RAM, Disk định kỳ mỗi 15 giây. Cảnh báo khi vượt ngưỡng cấu hình qua biến RESOURCE_THRESHOLD.

  • Payload: cpu%, ram%, disk%, message
  • Phát hiện cryptomining, DDoS, memory leak
  • EventType: RESOURCE_WARNING
Phần 3 — Hệ thống thực tế

Dashboard Web — Giao diện Giám sát

🔑 Trang Đăng nhập

Giao diện Glassmorphism hiện đại, xác thực admin trước khi truy cập hệ thống.

📊 Dashboard Chính

4 card thống kê (Total Events, SSH Anomalies, File Integrity, Resource Warnings). Donut chart phân bố sự kiện. Line chart CPU/RAM/Disk theo thời gian.

📋 Bảng Log Chi tiết

Bảng log có phân trang, click vào từng dòng để xem modal JSON payload gốc từ blockchain. Truy vết đến tận transaction.

🖧 Node Management

Quản lý metadata các VM: IP, role, trạng thái kết nối. Tab Ledger Connection hiển thị chainId, blockNumber, địa chỉ contract.

🌐 Truy cập trực tiếp tại: https://monitor.duongcongsang.com — Deploy bằng PM2 + Traefik + Let's Encrypt SSL

Phần 4 — Demo

Demo Thực tế — 4 Kịch bản

🔐 Kịch bản 1: SSH Login

SSH vào WorkerNode1 từ máy ngoài. Agent phát hiện ngay lập tức → ký transaction → Dashboard hiển thị log SSH_LOGIN mới có IP nguồn chính xác.

📁 Kịch bản 2: File Integrity

Sửa file cấu hình trong thư mục giám sát trên MasterNode. Agent phát hiện MODIFIED → ký transaction → Dashboard hiển thị đường dẫn file bị thay đổi.

Kịch bản 3: Resource Warning

Chạy lệnh stress --cpu trong 20 giây. CPU lên 100% → Agent ghi snapshot → Dashboard hiển thị RESOURCE_WARNING với thông số cpu%, ram%, disk% chính xác.

🔒 Kịch bản 4: Tính Bất biến

Click vào transaction cũ đã ghi từ trước — payload JSON vẫn còn nguyên vẹn 100%. Minh chứng: không ai có thể sửa hoặc xóa log đã ghi vào blockchain.

Phần 4 — Kết quả

Kết quả Đạt được

3

Node Validator

Mạng Geth PoA Clique hoạt động ổn định 24/7 với Chain ID 1337

400+

Transaction ghi nhận

Bất biến trên sổ cái blockchain, không thể sửa đổi hay xóa bỏ

3

Loại Monitor

SSH, File Integrity, Resource — hoạt động đồng thời trên cả 3 VM

5s

Block Time

Transaction được xác nhận trong 5 giây theo Clique PoA

Smart Contract SecurityLog hoạt động ổn định, phân quyền ghi log qua authorizedNodes

Dashboard chuyên nghiệp: donut chart, line chart CPU/RAM/Disk, bảng log phân trang, modal JSON

Deploy production tại monitor.duongcongsang.com với PM2, Traefik reverse proxy và Let's Encrypt SSL

Phần 4 — Kết luận

Hạn chế & Hướng Phát triển

⚠️ Hạn chế Hiện tại

Payload on-chain

JSON lưu trực tiếp trên blockchain tốn gas. Phù hợp quy mô demo nhưng chưa tối ưu cho production lớn.

Xác thực Dashboard

Login hiện đang hardcode, chưa có user database và phân quyền theo vai trò người dùng.

Chưa có Alert Realtime

Chưa tích hợp WebSocket, Email hay Telegram để thông báo ngay khi phát hiện sự kiện nghiêm trọng.

Agent chưa tự phục hồi

Khi mất kết nối RPC, Agent cần khởi động lại thủ công, chưa có cơ chế retry tự động.

🚀 Hướng Phát triển

Off-chain Storage

Lưu hash payload on-chain, dữ liệu chi tiết trên IPFS hoặc MongoDB để tiết kiệm gas và tăng khả năng mở rộng.

JWT Auth + User DB

Thêm hệ thống xác thực JWT và database người dùng với phân quyền admin/viewer cho dashboard.

Alert Telegram / Email

Thông báo realtime qua Telegram bot hoặc Email khi phát hiện sự kiện bảo mật nghiêm trọng.

Tích hợp IDS/IPS

Kết hợp Snort hoặc Suricata làm nguồn sự kiện bổ sung. Export báo cáo PDF/CSV cho kiểm toán.

Loading...

Cảm ơn Thầy/Cô đã lắng nghe!

Kính mời Hội đồng đặt câu hỏi

🌐 Demo Live

https://monitor.duongcongsang.com
Dashboard trực quan hóa toàn bộ hệ thống giám sát theo thời gian thực

👤 Sinh viên thực hiện

Dương Công Sáng
Học viện Công nghệ Bưu chính Viễn thông (PTIT) — 2026

📋 Đề tài

Hệ thống Giám sát Bảo mật Máy chủ Đám mây dựa trên Công nghệ Blockchain