Tại sao Firewall “xịn” vẫn để lọt BadUSB?
Anh em quản trị thường dồn toàn lực cho Firewall, IDS/IPS hay quét lỗ hổng Web, nhưng lại bỏ quên một lối vào vật lý cực kỳ nguy hiểm: cổng USB. Các cuộc tấn công BadUSB (như Rubber Ducky) nguy hiểm vì nó không chứa mã độc theo cách thông thường. Thay vào đó, chip điều khiển của USB đã bị nạp firmware giả dạng một bàn phím (HID device). Khi cắm vào, nó có thể “gõ” lệnh với tốc độ 1000 từ/phút để chiếm quyền điều khiển hoặc cài backdoor chỉ trong nháy mắt.
Một ví dụ điển hình là kịch bản “đánh rơi USB”. Nhân viên nhặt được một chiếc USB lạ, cắm vào máy công ty để tìm chủ sở hữu, và thế là hệ thống bị xâm nhập. Nếu có USBGuard, chiếc USB đó sẽ bị ngắt kết nối ngay lập tức trước khi kịp thực thi bất kỳ lệnh nào.
USBGuard hoạt động theo cơ chế Whitelist (danh sách trắng). Nó quét mọi thiết bị đang kết nối và đối chiếu với các quy tắc (rules) bạn đặt ra. Thiết bị lạ sẽ bị Kernel từ chối ngay từ vòng gửi xe.
Cài đặt USBGuard: Bước khóa cửa đầu tiên
Tin vui là USBGuard đã có sẵn trong kho ứng dụng chính thức của hầu hết các bản phân phối Linux phổ biến. Bạn chỉ cần chạy lệnh cài đặt tùy theo OS đang dùng.
Dòng Ubuntu/Debian
sudo apt update && sudo apt install usbguard
Dòng RHEL/CentOS/Fedora
sudo dnf install usbguard
Dòng Arch Linux
sudo pacman -S usbguard
Cảnh báo cực kỳ quan trọng: Nếu bạn đang ngồi trực tiếp trước máy, đừng bật dịch vụ ngay lập tức. USBGuard khi chưa có cấu hình sẽ chặn sạch bàn phím và chuột USB hiện tại. Lúc đó, bạn sẽ bị “nhốt” bên ngoài chính hệ thống của mình.
Xây dựng hàng rào bảo vệ (Policy)
Để an toàn, chúng ta sẽ tạo bộ quy tắc dựa trên những thiết bị hiện đang cắm trên máy mà bạn tin tưởng.
1. Tự động tạo Rules ban đầu
Lệnh sau đây sẽ nhận diện các thiết bị đang hoạt động và chuyển chúng thành danh sách được phép:
sudo usbguard generate-policy > rules.conf
sudo install -m 0600 -o root -g root rules.conf /etc/usbguard/rules.conf
Lưu ý việc sử dụng quyền 0600 để đảm bảo chỉ user root mới có thể xem hoặc chỉnh sửa danh sách này. Hãy soi kỹ nội dung file cấu hình:
sudo nano /etc/usbguard/rules.conf
Bạn sẽ thấy các dòng kiểu như: allow id 1d6b:0003 serial "0000:00:14.0" name "xHCI Host Controller". Nếu thấy thiết bị nào “lạ mặt”, hãy mạnh dạn xóa bỏ.
2. Kích hoạt lớp bảo mật
Sau khi đã có file rules chuẩn, hãy tự tin khởi động daemon:
sudo systemctl start usbguard
sudo systemctl enable usbguard
3. Quản lý thiết bị linh hoạt
Khi cần cắm thêm USB mới, USBGuard sẽ mặc định chặn lại. Kiểm tra danh sách thiết bị đang bị “cấm cửa” bằng lệnh:
usbguard list-devices
Để tạm thời cho phép một thiết bị (ví dụ ID số 5) hoạt động, bạn dùng:
usbguard allow-device 5
Nếu muốn thiết bị này được phép vĩnh viễn cho những lần sau, hãy thêm flag -p (permanent):
usbguard allow-device 5 -p
Kinh nghiệm thực tế khi quản trị server là không bao giờ dùng mật khẩu yếu. Mình thường kết hợp USBGuard với mật khẩu được tạo từ toolcraft.app/vi/tools/security/password-generator. Công cụ này chạy 100% trên trình duyệt, giúp tăng cường bảo mật mà không lo lộ thông tin qua mạng.
Giám sát và xử lý sự cố
Làm sao để biết USBGuard đang thực sự làm việc? Hãy theo dõi log hệ thống theo thời gian thực.
Theo dõi sự kiện trực tiếp
usbguard watch
Mỗi khi có thiết bị cắm vào hoặc rút ra, màn hình sẽ hiện chi tiết Vendor ID và hành động xử lý (allow/block/reject) của hệ thống.
Xử lý khi bị “khóa nhầm” bàn phím
Đừng hoảng loạn nếu bạn cấu hình sai và mất quyền điều khiển bàn phím. Bạn có 3 phương án cứu cánh:
- Remote qua SSH từ máy khác để chỉnh lại file
rules.conf. - Sử dụng cổng PS/2 nếu phần cứng cũ còn hỗ trợ.
- Khởi động vào Recovery Mode để tắt dịch vụ usbguard.
Cấu hình nâng cao cho môi trường nhạy cảm
Với các máy trạm đặt ở nơi công cộng, bạn nên thiết lập chính sách mặc định cực đoan hơn trong file /etc/usbguard/usbguard-daemon.conf:
ImplicitPolicyTarget=block
Giá trị block sẽ giữ thiết bị trong danh sách chờ để bạn duyệt thủ công. Nếu đổi thành reject, thiết bị sẽ bị ngắt kết nối hoàn toàn ở mức phần cứng, hệ điều hành thậm chí không nhận diện được sự tồn tại của nó.
Triển khai USBGuard chỉ mất khoảng 10 phút nhưng hiệu quả bảo mật mang lại là vô giá. Đây chính là chốt chặn cuối cùng giúp hệ thống của anh em miễn nhiễm với các kỹ thuật tấn công vật lý phổ biến hiện nay.

