← TRỞ VỀ PORTFOLIO
CASE 03ANOMALY DETECTIONUNSUPERVISED / AUTOENCODER

TON_IoT Zero-Day Autoencoder

Autoencoder không giám sát, train chỉ trên traffic bình thường, phát hiện bất thường qua reconstruction error — không cần nhãn tấn công.

Approach

Ngưỡng cắt quyết định cả detection lẫn false positive.

Autoencoder học cách tái tạo traffic bình thường. Traffic có reconstruction error cao hơn ngưỡng bị gắn cờ bất thường. Ngưỡng của lớp Network là percentile 75 của reconstruction error trên chính dữ liệu benign — nghĩa là ~25% traffic bình thường bị gắn cờ gần như theo thiết kế, không phải lỗi ngẫu nhiên.

Evidence

Detection cao không miễn phí — đổi lại bằng false positive.

src: README.md §Performance Metrics. AVERAGE row đã sửa 2026-10 vì không khớp bảng gốc (README cũ ghi 95.5/16.2/86.6%, tính lại ra 94.8/16.0/88.4%).
Detection rate và false positive của 4 lớp TON_IoT, cùng trục 0-100% 100% 50% 0 Network DR 99.80% · FP 22.00% · sep 328× IoT (Modbus) DR 99.5% · FP 20.00% · sep 33× Linux DR 82.00% · FP 18.00% · sep 8× Windows DR 98% · FP 4.00% · sep 36× mean FP 16.0% Detection rate False positive

Separation = mean(attack reconstruction error) / mean(normal reconstruction error). Đây là tỉ số trung bình, không đo độ chồng lấn phân phối — Network có separation cao nhất (328×) nhưng vẫn FP 22%, vì ngưỡng cắt theo percentile, không theo separation.

What I learned

FP cao không phải "model tệ" — là chỗ cần khai báo rõ.

Khi viết CV, dễ chỉ trích "Detection 95.5%" mà bỏ qua phần sau dấu phẩy. Thực tế: detection cao ở 3/4 lớp đi kèm FP hai chữ số, trừ Windows. Một analyst SOC đọc số này cần biết ngay: autoencoder này hợp để triage/alert bổ sung, chưa hợp để auto-block.

Scope trung thực: dataset TON_IoT công khai, không phải traffic thật của một tổ chức. Số liệu lấy từ README, chưa được assistant này tái chạy độc lập trong vòng review này.