Mục tiêu chương / Learning objectives
- Giải thích quy trình xác minh danh tính (identity proofing) và các yếu tố xác thực (something you know/have/are/somewhere).
- Triển khai và so sánh các phương thức MFA: TOTP, FIDO2/WebAuthn, hardware tokens.
- Mô tả kiến trúc PAM (Privileged Access Management) và vai trò của password vault trong doanh nghiệp.
- Quản lý vòng đời tài khoản: provisioning, access review, recertification, deprovisioning.
- Phân biệt SAML 2.0, OAuth 2.0 và OpenID Connect (OIDC) theo use case.
- Hiểu nguyên lý Zero Trust Network Access (ZTNA) và vì sao "never trust, always verify" thay thế VPN truyền thống.
1. Lý thuyết cốt lõi / Core theory
1.1. Xác minh danh tính & Xác thực (Identity Proofing & Authentication)
Identity Proofing là quá trình xác minh rằng người dùng thực sự là người họ tự xưng trước khi cấp credential. Ba mức: IAL1 (tự khai báo), IAL2 (xác minh qua document như CMND), IAL3 (xác minh biometric tại chỗ). Authentication là kiểm tra credential mỗi khi đăng nhập.
Bốn yếu tố xác thực: Something you know (password, PIN), Something you have (OTP token, smart card, phone), Something you are (fingerprint, face, iris), Somewhere you are (geolocation, IP range). MFA kết hợp từ 2 yếu tố khác loại.
Tỷ lệ lỗi sinh trắc học (Biometric Error Rates)
- FAR (False Acceptance Rate): Hệ thống chấp nhận người không được phép — rủi ro bảo mật.
- FRR (False Rejection Rate): Hệ thống từ chối người hợp lệ — ảnh hưởng usability.
- CER/EER (Crossover Error Rate): Điểm mà FAR = FRR. CER càng thấp = sinh trắc học càng chính xác.
| Phương thức | CER (xấp xỉ) | Ghi chú |
|---|---|---|
| Vân tay (Fingerprint) | ~0.1% | Phổ biến, chi phí thấp |
| Mống mắt (Iris) | ~0.0001% | Chính xác nhất, chi phí cao |
| Khuôn mặt (Face) | ~0.5% | Tiện lợi, dễ bị ảnh hưởng ánh sáng |
TOTP vs FIDO2: TOTP (Time-based One-Time Password — RFC 6238) sinh mã 6 số mỗi 30 giây dựa trên shared secret. Dễ phishing (kẻ tấn công tạo trang giả lấy OTP thời gian thực). FIDO2/WebAuthn dùng public-key cryptography: private key lưu trên thiết bị, không bao giờ rời khỏi thiết bị — chống phishing hoàn toàn vì bound to origin.
1.2. Privileged Access Management (PAM)
PAM kiểm soát tài khoản có quyền cao (admin, root, service accounts). Các thành phần chính của giải pháp PAM (CyberArk/Delinea/BeyondTrust):
- Password Vault: Lưu trữ và quản lý credential đặc quyền với mã hóa. Người dùng không biết mật khẩu thực — chỉ xin quyền checkout.
- Session Recording: Ghi lại toàn bộ phiên làm việc của tài khoản đặc quyền để audit.
- Just-in-Time (JIT) Access: Cấp quyền tạm thời (vd 1 giờ) thay vì quyền thường trực — giảm thời gian exposure.
- Dual Control: Yêu cầu phê duyệt từ người thứ hai trước khi checkout credential nhạy cảm.
1.3. Vòng đời tài khoản & Access Review (Account Lifecycle Management)
Vòng đời tài khoản: Provisioning (tạo tài khoản khi nhân viên vào) → Modification (thay đổi quyền khi chuyển bộ phận) → Access Review/Recertification (kiểm tra định kỳ quyền có còn phù hợp không) → Deprovisioning (thu hồi quyền khi nghỉ việc). Deprovisioning chậm là lỗ hổng phổ biến nhất: tài khoản cũ vẫn hoạt động sau khi nhân viên nghỉ.
Access Creep (tích lũy quyền): Theo thời gian nhân viên chuyển bộ phận nhưng không thu hồi quyền cũ, dẫn đến vi phạm least privilege. Access Recertification định kỳ (quarterly/semi-annual) là biện pháp kiểm soát chính.
1.4. Federated Identity — SAML 2.0, OAuth 2.0, OIDC
SAML 2.0 (Security Assertion Markup Language): XML-based, dùng cho enterprise SSO (Single Sign-On). IdP (Identity Provider) phát SAML assertion cho SP (Service Provider). Use case: nhân viên dùng AD FS để đăng nhập Office 365.
OAuth 2.0: Framework ủy quyền (authorization), không phải xác thực. Cấp access token để ứng dụng thứ ba truy cập tài nguyên thay mặt người dùng. Ví dụ: ứng dụng third-party đọc Google Calendar của bạn.
OpenID Connect (OIDC): Layer xác thực (authentication) bên trên OAuth 2.0. Thêm ID token (JWT) mang thông tin người dùng. Use case: "Đăng nhập bằng Google" trên website.
1.5. Zero Trust Network Access (ZTNA)
ZTNA từ bỏ mô hình "perimeter security" (tin tưởng mọi thứ trong mạng nội bộ). Nguyên lý: "Never trust, always verify" — mọi truy cập đều phải xác thực, ủy quyền và kiểm tra liên tục bất kể vị trí. Ba trụ cột: Identity verification (ai đang truy cập?), Device compliance (thiết bị có tuân thủ policy không?), Least privilege access (chỉ cấp quyền tối thiểu cần thiết). ZTNA thay thế VPN vì VPN cấp quyền quá rộng một khi kết nối thành công.
2. Bài thực hành / Hands-on labs
Lab 1 — PAM Audit trên Windows AD (PowerShell)
OS: Windows Server 2022 · Tool: PowerShell 7 + RSAT Active Directory Module
- Kiểm tra thành viên nhóm Administrators cục bộ:
# Kiểm tra local Administrators — ai có quyền admin cục bộ?
Get-LocalGroupMember -Group "Administrators" | Select-Object Name, ObjectClass, PrincipalSource
# Kiểm tra thành viên Domain Admins + thông tin mật khẩu
Get-ADGroupMember -Identity "Domain Admins" | Get-ADUser -Properties PasswordLastSet, PasswordNeverExpires, Enabled |
Select-Object Name, SamAccountName, PasswordLastSet, PasswordNeverExpires, Enabled |
Format-Table -AutoSize
# Tìm tài khoản có PasswordNeverExpires — vi phạm policy
Search-ADAccount -PasswordNeverExpires | Select-Object Name, SamAccountName, DistinguishedName
# Tìm tài khoản không đăng nhập trong 90 ngày — ứng viên deprovisioning
$cutoff = (Get-Date).AddDays(-90)
Get-ADUser -Filter { LastLogonDate -lt $cutoff -and Enabled -eq $true } `
-Properties LastLogonDate | Select-Object Name, LastLogonDate | Sort-Object LastLogonDate
✅ Kết quả mong đợi / Expected output: Danh sách thành viên Domain Admins với ngày đổi mật khẩu gần nhất. Tài khoản PasswordNeverExpires = True là rủi ro — cần ép đổi mật khẩu hoặc chuyển sang PAM vault. Tài khoản không active 90 ngày nên disable ngay. Đây là bước audit PAM cơ bản mà SOC phải chạy hàng tuần.
Lab 2 — Cấu hình PAM Linux: faillock & pwquality (Ubuntu 22.04)
OS: Ubuntu 22.04 · Tool: Bash (sudo)
# Xem cấu hình PAM xác thực hiện tại
cat /etc/pam.d/common-auth
# Kiểm tra trạng thái lockout của user root (faillock thay pam_tally2 trên Ubuntu 22.04)
sudo faillock --user root
# Xem cấu hình độ phức tạp mật khẩu
cat /etc/security/pwquality.conf
# Xem toàn bộ cấu hình PAM password
cat /etc/pam.d/common-password
# Kiểm tra user nào đang bị lock
sudo faillock --user testuser
# Reset lockout cho testuser (sau khi xác minh danh tính)
sudo faillock --user testuser --reset
# Xem shadow file — kiểm tra password aging
sudo chage -l root
✅ Kết quả mong đợi / Expected output: common-auth hiển thị các module PAM như pam_unix.so, pam_faillock.so. pwquality.conf cho thấy tham số như minlen=12, dcredit=-1 (yêu cầu ít nhất 1 chữ số). chage -l root hiển thị ngày hết hạn mật khẩu. Nếu Password inactive: never — cần thiết lập aging policy.
3. Tình huống doanh nghiệp / Real-world scenario
Bối cảnh:
Điều tra sự cố phát hiện hacker đã dùng credential của một kỹ sư CNTT đã nghỉ việc 3 tháng trước để đăng nhập vào hệ thống ERP và xuất dữ liệu khách hàng. Tài khoản chưa bị disable vì HR quên thông báo IT khi nhân viên nghỉ.
Giải pháp hệ thống:
- Tức thời: Disable tài khoản, thu hồi tất cả sessions và access tokens, reset tất cả mật khẩu mà tài khoản này có thể biết.
- Khắc phục quy trình: Tích hợp HRMS (Human Resource Management System) với Active Directory — khi HR terminate employee trong HRMS, tài khoản AD tự động disable trong vòng 24 giờ.
- Access Review: Chạy ngay một kỳ recertification cho tất cả tài khoản, ưu tiên người dùng đặc quyền.
- PAM deployment: Tài khoản admin không được dùng trực tiếp — phải checkout qua PAM vault với session recording.
- ZTNA: Truy cập ERP yêu cầu device compliance + MFA ngay cả từ mạng nội bộ.
Bài học: 85% vi phạm dữ liệu liên quan đến credential bị đánh cắp hoặc lạm dụng. Vòng đời tài khoản và PAM là đầu tư bảo mật có ROI cao nhất.
4. Tự kiểm tra / Knowledge check
- Tại sao FIDO2/WebAuthn chống phishing tốt hơn TOTP? Giải thích cơ chế kỹ thuật.
- Just-in-Time (JIT) Access trong PAM giảm thiểu rủi ro gì so với tài khoản admin thường trực?
- Phân biệt OAuth 2.0 và OIDC. Khi nào dùng OAuth 2.0 đơn thuần, khi nào cần OIDC?
- Access Creep là gì? Biện pháp kiểm soát nào ngăn ngừa nó?
- Một nhân viên nghỉ việc — liệt kê 5 bước deprovisioning cần thực hiện trong 24 giờ đầu.