Mục tiêu bài học — Learning Objectives
- Phân biệt Security Governance, Risk Management và Compliance — không phải một khái niệm duy nhất
- Mô tả cấu trúc quản trị: Board → Executive → CISO → Security Team và trách nhiệm từng tầng
- Áp dụng NIST RMF 7 bước vào quy trình ATO (Authority to Operate) cho hệ thống thông tin
- So sánh ISO 27001, COBIT, ITIL, SOC 2 và xác định phù hợp với từng ngành/tổ chức
- Triển khai GRC platform demo bằng PowerShell và OpenSCAP/SCAP để tự động hóa compliance check
Lý thuyết — Theory
1. Mô hình quản trị bảo mật — Security Governance Models
Governance là tập hợp các quy trình, chính sách và cấu trúc để đảm bảo hoạt động bảo mật phù hợp với mục tiêu kinh doanh. Không phải kỹ thuật — là quản lý và trách nhiệm giải trình.
- • Board of Directors: Oversight, accountability
- • CEO/CFO: Risk appetite statement, budget
- • CISO: Security strategy, program ownership
- • Security Steering Committee: Policy approval
- • Security Managers: Day-to-day operations
- • Risk Owners: Asset-specific risk decisions
- • Compliance Officers: Regulatory mapping
- • Security Champions: Embedded in teams
2. NIST Risk Management Framework (RMF) — 7 bước
NIST SP 800-37 Rev.2 cung cấp quy trình toàn diện để tích hợp bảo mật và quản lý rủi ro vào vòng đời hệ thống thông tin. Bắt buộc cho cơ quan Liên bang Mỹ, được áp dụng rộng rãi trong doanh nghiệp.
3. Các khung tuân thủ quốc tế — Compliance Frameworks
| Framework | Phạm vi | Bắt buộc/Tự nguyện | Áp dụng cho |
|---|---|---|---|
| ISO 27001 | ISMS toàn diện — 93 controls (Annex A) | Tự nguyện + có thể cấp chứng nhận | Mọi tổ chức, mọi ngành |
| NIST CSF | Identify/Protect/Detect/Respond/Recover | Tự nguyện (khuyến nghị Critical Infra) | Hạ tầng trọng yếu, doanh nghiệp Mỹ |
| COBIT 2019 | IT Governance — 40 governance objectives | Tự nguyện | IT Governance, audit teams |
| SOC 2 Type II | Trust Services Criteria (Security, Availability, Privacy…) | Tự nguyện (khách hàng yêu cầu) | SaaS/cloud service providers |
| PCI DSS 4.0 | Bảo vệ dữ liệu thẻ thanh toán — 12 requirements | Bắt buộc (thanh toán thẻ) | Merchant, payment processors |
| HIPAA | ePHI — Privacy Rule, Security Rule, Breach Rule | Bắt buộc (healthcare US) | Healthcare, business associates |
4. Mối quan hệ Governance ↔ Risk ↔ Compliance
Ba trụ cột GRC không hoạt động độc lập. Sự tích hợp tạo ra chương trình bảo mật hiệu quả và có thể mở rộng.
- • Thiết lập direction và accountability
- • Xác định risk appetite của tổ chức
- • Phân bổ nguồn lực cho security
- • Phê duyệt policies & standards
- • Identify, assess, respond to risks
- • Maintain risk register
- • Report residual risk lên Governance
- • Inform compliance priorities
- • Map regulatory requirements to controls
- • Monitor & audit adherence
- • Report compliance gaps to Risk
- • Liên kết regulatory change với Governance
Tập trung hóa risk register, policy library, compliance calendar, audit management và reporting dashboard. Cho phép traceability từ regulatory requirement → control → risk → asset.
5. Security Metrics & KPIs trong Governance
Governance cần dữ liệu đo lường để ra quyết định đúng đắn. CISO trình bày với Board bằng metrics kinh doanh, không chỉ metrics kỹ thuật.
- • Risk posture score (tổng thể)
- • Compliance rate (%) theo framework
- • Cost of security incidents vs. prevention investment
- • Thời gian phát hiện/phản hồi sự cố (MTTD/MTTR)
- • Third-party risk coverage (%)
- • Vulnerability remediation SLA compliance (%)
- • Patch coverage rate cho critical assets
- • Security awareness training completion (%)
- • Number of open high/critical risks in register
- • Control effectiveness score (NIST 800-53A)
Bài thực hành — Hands-on Labs
GRC Compliance Check với PowerShell — NIST SP 800-53 Controls
Viết script PowerShell kiểm tra một số NIST 800-53 controls cơ bản: Account Management (AC-2), Audit Logging (AU-2), Configuration Management (CM-7). Tạo compliance report dạng CSV.
# NIST 800-53 AC-2: Account Management — kiểm tra local accounts
$report = @()
# Lấy tất cả local users
$localUsers = Get-LocalUser
foreach ($user in $localUsers) {
$finding = [PSCustomObject]@{
Control = "AC-2"
ControlName = "Account Management"
Asset = $env:COMPUTERNAME
Item = $user.Name
Status = "PASS"
Finding = ""
}
# Kiểm tra: account Guest phải disabled
if ($user.Name -eq "Guest" -and $user.Enabled) {
$finding.Status = "FAIL"
$finding.Finding = "Guest account is enabled — violates AC-2(a)"
}
# Kiểm tra: account không có password expiry là rủi ro
if ($user.PasswordNeverExpires -and $user.Enabled) {
$finding.Status = "WARN"
$finding.Finding = "PasswordNeverExpires=True — review per IA-5(f)"
}
$report += $finding
}
# AU-2: Kiểm tra Windows Audit Policy
$auditPolicy = auditpol /get /subcategory:"Logon" /r | ConvertFrom-Csv
$logonAudit = $auditPolicy | Where-Object { $_.'Subcategory' -like "*Logon*" }
$auFinding = [PSCustomObject]@{
Control = "AU-2"
ControlName = "Event Logging"
Asset = $env:COMPUTERNAME
Item = "Logon Audit"
Status = if ($logonAudit.'Inclusion Setting' -match "Success and Failure") { "PASS" } else { "FAIL" }
Finding = if ($logonAudit.'Inclusion Setting' -match "Success and Failure") { "" } else { "Logon audit not set to Success+Failure" }
}
$report += $auFinding
# CM-7: Kiểm tra services không cần thiết (Telnet)
$telnet = Get-WindowsOptionalFeature -Online -FeatureName TelnetClient -ErrorAction SilentlyContinue
$cmFinding = [PSCustomObject]@{
Control = "CM-7"
ControlName = "Least Functionality"
Asset = $env:COMPUTERNAME
Item = "TelnetClient"
Status = if ($telnet.State -eq "Enabled") { "FAIL" } else { "PASS" }
Finding = if ($telnet.State -eq "Enabled") { "TelnetClient enabled — remove per CM-7(a)" } else { "" }
}
$report += $cmFinding
# Xuất report
$report | Export-Csv -Path "C:\GRC\nist-compliance-report.csv" -NoTypeInformation -Encoding UTF8
$report | Format-Table -AutoSize
# Summary
$fails = ($report | Where-Object Status -eq "FAIL").Count
$warns = ($report | Where-Object Status -eq "WARN").Count
$passes = ($report | Where-Object Status -eq "PASS").Count
Write-Host "PASS: $passes | WARN: $warns | FAIL: $fails" -ForegroundColor Cyan
Control ControlName Asset Item Status Finding ------- ----------- ----- ---- ------ ------- AC-2 Account Management WIN-SERVER01 Administrator PASS AC-2 Account Management WIN-SERVER01 Guest FAIL Guest account is enabled — violates AC-2(a) AC-2 Account Management WIN-SERVER01 svcSQL WARN PasswordNeverExpires=True — review per IA-5(f) AU-2 Event Logging WIN-SERVER01 Logon Audit PASS CM-7 Least Functionality WIN-SERVER01 TelnetClient PASS PASS: 3 | WARN: 1 | FAIL: 1 [CSV exported to C:\GRC\nist-compliance-report.csv]
OpenSCAP Compliance Scan — ISO 27001 / CIS Benchmark trên Linux
# RHEL/CentOS
sudo dnf install -y openscap-scanner scap-security-guide
# Ubuntu
sudo apt-get install -y libopenscap8 ssg-debderived
# Xem danh sách profiles có sẵn
oscap info /usr/share/xml/scap/ssg/content/ssg-rhel9-ds.xml | grep "Profile ID"
# Scan với CIS Server Level 1 profile
sudo oscap xccdf eval \
--profile xccdf_org.ssgproject.content_profile_cis_server_l1 \
--results /tmp/cis-scan-results.xml \
--report /tmp/cis-scan-report.html \
/usr/share/xml/scap/ssg/content/ssg-rhel9-ds.xml
# Phân tích kết quả — đếm PASS/FAIL/NOTCHECKED
oscap xccdf generate report /tmp/cis-scan-results.xml | \
grep -E "pass|fail|notchecked" | sort | uniq -c
# Chỉ xem các rule FAIL
oscap xccdf generate report /tmp/cis-scan-results.xml | \
grep -A3 "result.*fail" | head -60
# Tạo remediation script (Bash) từ kết quả FAIL
sudo oscap xccdf generate fix \
--profile xccdf_org.ssgproject.content_profile_cis_server_l1 \
--fix-type bash \
--output /tmp/cis-remediation.sh \
/tmp/cis-scan-results.xml
echo "Remediation script tạo tại: /tmp/cis-remediation.sh"
wc -l /tmp/cis-remediation.sh
Evaluation started : 2026-05-24T09:15:00 Profile ID : xccdf_org.ssgproject.content_profile_cis_server_l1 Result ID : xccdf_org.ssgproject.result_1 Rules results: pass : 89 fail : 34 notchecked : 12 notselected : 156 Score : 72.36% Report saved to : /tmp/cis-scan-report.html Top FAIL categories: - xccdf_...ensure_nodev_option_tmp (filesystem options) - xccdf_...disable_usb_storage (removable media) - xccdf_...banner_etc_issue (login banners) - xccdf_...sysctl_kernel_randomize_va_space (ASLR) Remediation script: /tmp/cis-remediation.sh (247 lines) [Open /tmp/cis-scan-report.html in browser for full interactive report]
Tình huống doanh nghiệp — Business Scenario
VinaTech Corp là fintech xử lý 5 triệu giao dịch/ngày. Sau khi được kiểm toán PCI DSS, họ phát hiện: không có Security Governance Committee, risk register chỉ là file Excel không được cập nhật, và compliance activities diễn ra rời rạc giữa các team.
Tự kiểm tra — Self-Assessment (5 câu)
1. Trong NIST RMF, bước nào chịu trách nhiệm quyết định chính thức cho phép hệ thống vận hành (ATO)?
Giải thích: Bước Authorize — Authorizing Official (AO) xem xét Security Assessment Report, Plan of Action & Milestones (POA&M), và chấp nhận residual risk để cấp ATO.
2. Tổ chức cần chứng minh với khách hàng rằng dịch vụ SaaS đáp ứng Security, Availability và Confidentiality. Framework nào phù hợp nhất?
SOC 2 Type II do AICPA cấp, kiểm tra Trust Services Criteria (TSC) trong 6-12 tháng thực tế — chuẩn thực tế cho SaaS.
3. RACI matrix định nghĩa ai là người "Accountable" trong một hoạt động GRC?
4. Metric nào phù hợp nhất khi CISO trình bày với Board of Directors về security posture?
5. Tổ chức muốn tuân thủ HIPAA cho hệ thống quản lý bệnh án điện tử (EHR). Control framework nào của NIST cung cấp danh sách controls chi tiết nhất để implement?
800-53 chứa 1,000+ controls và enhancements — catalog đầy đủ nhất. CSF là high-level framework; 800-37 là RMF process; 800-171 dành cho CUI/defense contractors.