12. Ubuntu Server 的稽核與合規:最佳實踐

簡介

確保 Ubuntu 伺服器環境的稽核與合規,是希望保護敏感資料、滿足監管標準並有效應對安全事件的組織的關鍵一步。PCI-DSS、GDPR、HIPAA 和 ISO/IEC 27001 等合規標準要求建立健全的稽核、日誌記錄和報告機制,以確保問責制和資料保護。

本文提供了一份全面指南,介紹如何設定稽核規則、產生報告、識別可疑活動,並實施最佳實踐以保持 Ubuntu 22.04 伺服器的合規性。


往期文章:

01. Ubuntu Server 簡介 – SysOSX: AI & Cloud

02. 如何搭建你的第一台 Ubuntu Server:初學者指南 – SysOSX: AI & Cloud

03. 掌握 Ubuntu Server 的 Linux 命令列 – SysOSX: AI & Cloud

04. Ubuntu Server 使用者與權限管理:全面指南 – SysOSX: AI & Cloud

05. Ubuntu Server 網路基礎:全面指南 – SysOSX: AI & Cloud

06. 在 Ubuntu Server 上安裝和管理軟體:完整指南 – SysOSX: AI & Cloud

07.Ubuntu Server 修補程式與更新:全面指南 – SysOSX: AI & Cloud

08. 保護你的 Ubuntu Server:強化與防護的實用步驟 – SysOSX: AI & Cloud

09. Ubuntu 伺服器稽核與記錄

10. Ubuntu Server 系統監控工具:全面指南 – SysOSX: AI & Cloud

11. Ubuntu 伺服器集中式記錄:必讀指南 – SysOSX: AI & Cloud



為什麼合規稽核很重要


78% 的組織因日誌記錄不足而未能通過首次 PCI-DSS 稽核(2023 年 Verizon 報告)

真實違規案例:
一家醫療服務提供商因未能稽核儲存在 Ubuntu 伺服器上的患者病歷存取記錄而面臨 120 萬美元的 HIPAA 罰款。適當的 auditctl 規則本可以偵測到這次未經授權的存取。


合規標準要求速查表

標準主要的 Ubuntu 稽核要求相關工具
PCI-DSS檔案完整性監控、使用者活動日誌auditd + AIDE
GDPR資料存取追蹤、72 小時內違規報告aureport + ELK
HIPAAePHI 存取監控、日誌保留 6 年auditctl + Splunk
ISO 27001風險評估證明、存取控制日誌Lynis + OpenSCAP

使用 auditctl 設定稽核規則 (基礎)

Linux Audit Framework 可在 Ubuntu 22.04 上使用,是監控系統活動的強大工具。命令 auditctl 用於建立和管理稽核規則,以追蹤伺服器上的特定事件。

步驟 1:安裝稽核架構

在設定稽核規則之前,請確保已安裝稽核架構:

sudo apt update
sudo apt install auditd

步驟 2:定義稽核規則

稽核規則指定要監控的活動。以下是一些常見範例:

  • 監控檔案存取:
    追蹤關鍵檔案的修改,例如 /etc/passwd:
sudo auditctl -w /etc/passwd -p wa -k passwd_changes

此規則監控以下操作:寫入(w)和屬性變更(a),目標檔案 /etc/passwd 。

  • 監控登入和登出事件:
    追蹤使用者的登入/登出活動:
sudo auditctl -a always,exit -F arch=b64 -S execve -F key=login_activity
  • 監控未經授權的存取:
    偵測對敏感目錄的存取嘗試:
 sudo auditctl -w /var/www/html -p rwxa -k web_access

    步驟 3:持久化稽核規則

    稽核規則是暫時的,除非將其持久化。將規則加入到 /etc/audit/audit.rules 中,使其永久生效:

    -w /etc/passwd -p wa -k passwd_changes
    -a always,exit -F arch=b64 -S execve -F key=login_activity
    

    重新啟動稽核守護進程以套用變更, sudo systemctl restart auditd 不起作用,你需要先終止它再重新啟動,才能使新設定生效:

    sudo systemctl kill auditd
    sudo systemctl start auditd
    

    步驟 4:驗證使用中的稽核規則

    列出所有使用中的稽核規則,確認它們已套用:

    sudo auditctl -l
    

    用於合規稽核的進階規則

    PCI-DSS 規則(/etc/audit/rules.d/pci-dss.rules):

    # Monitor payment processing directory  
    -w /var/lib/payment_processor -p rwxa -k pci_processing  
    
    # Track sudo usage  
    -a always,exit -F arch=b64 -S execve -C uid!=euid -F key=sudo_esc  
    

    GDPR 規則(/etc/audit/rules.d/gdpr.rules):

    # Monitor database access  
    -w /var/lib/mysql -p rw -k gdpr_data  
    
    # Log user account changes  
    -w /etc/shadow -p wa -k user_changes  
    

    3. 讓規則在重新啟動後繼續生效

    sudo auditctl -R /etc/audit/rules.d/pci-dss.rules  
    sudo augenrules --load  
    

    產生稽核報告並識別可疑活動

    設定好稽核規則後,下一步是分析日誌並產生報告,以識別可疑活動或違規行為。

    1. 查看稽核日誌

    稽核日誌儲存在 /var/log/audit/audit.log中。使用 ausearch 命令查詢日誌:

    sudo ausearch -k passwd_changes
    

    這將擷取所有帶有關鍵字 passwd_changes標記的事件。

    2. 使用以下工具產生報告: aureport

    使用工具 aureport 透過產生人類可讀的報告簡化稽核日誌分析:

    • 使用者登入/登出摘要:
    sudo aureport -l
    

    此報告彙總使用者的登入/登出事件。

    • 檔案存取摘要:
     sudo aureport -f
    
    • 登入失敗嘗試:
     sudo aureport --failed
    

      3. 識別可疑活動

      使用 ausearch 識別異常,例如登入失敗嘗試或未經授權的檔案修改:

      • 登入失敗嘗試:
       sudo ausearch -m USER_LOGIN -sv no
      
      • 未經授權的檔案存取:
       sudo ausearch -w /etc/passwd -sv no
      

        4. 集中管理稽核日誌

        對於大規模環境,可使用以下工具集中管理日誌: rsyslog ,或與以下平台整合:

        • ELK Stack(Elasticsearch、Logstash、Kibana): 用於進階日誌分析和視覺化。
        • Splunk: 用於即時日誌監控和合規報告。
        • Graylog: 用於日誌彙總和警示。

        合規的其他安全措施

        除了設定稽核規則之外,實施其他安全措施可以進一步加強合規性:

        1. 啟用檔案完整性監控

        使用以下工具 AIDE (Advanced Intrusion Detection Environment) 偵測未經授權的檔案變更:

        sudo apt install aide
        sudo aideinit
        

        安排定期完整性檢查以偵測竄改。

        2. 設定安全日誌記錄

        確保日誌免受未經授權的存取:

        • 限制對以下目錄的存取: /var/log/audit/ 使用權限進行限制: sudo chmod 600 /var/log/audit/audit.log

        3. 自動執行日誌輪替

        透過設定日誌輪替,防止稽核日誌佔用過多磁碟空間:

        sudo nano /etc/logrotate.d/audit
        

        範例設定:

        /var/log/audit/audit.log {
            daily
            rotate 7
            compress
            missingok
            notifempty
        }
        

        4. 監控系統效能

        稽核規則可能會影響系統效能。使用以下工具: htop 或 top 監控資源使用情況。

        sudo apt install htop
        htop
        

        進階合規工具

        1. 自動化弱點掃描

        # Install OpenSCAP  
        sudo apt install libopenscap8 ssg-debian  
        
        # Run PCI-DSS scan  
        oscap xccdf eval --profile pci-dss /usr/share/xml/scap/ssg/content/ssg-ubuntu2204-ds.xml  
        

        2. 使用 Auditd 進行即時警示

        # Email alerts for root logins  
        -a always,exit -F arch=b64 -S execve -F euid=0 -k root_cmd -F exe=/usr/bin/mailx  
        
        

        3. 不可變的稽核日誌

        #Configure audit.log as append-only  
        sudo chattr +a /var/log/audit/audit.log  
        
        

        常見問題:常見的合規挑戰

        問:為了滿足 HIPAA,我們應該將稽核日誌保留多久?
        答:至少 6 年。使用 logrotate 進行設定:

        /var/log/audit/*.log {  
          monthly  
          rotate 72  
          compress  
        }  
        
        

        問:auditd 會影響伺服器效能嗎?
        答:會。使用以下命令監控:

        watch "grep 'auditd' /proc/slabinfo | awk '{print \$2,\$3}'"  
        
        

        問:如何在稽核期間證明合規性?
        答:使用以下命令:

        # Generate evidence package  
        tar czvf compliance-proof-$(date +%F).tar.gz \  
          /var/log/audit/ /etc/audit/ /var/lib/aide/  
        

        合規維護檢查清單

        •  每月驗證稽核規則:
        auditctl -l | grep -E 'pci|gdpr'
        
        •  每季更新 AIDE 資料庫:
        aideinit && mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
        
        •  每半年審查防火牆規則:
         sudo ufw status numbered
        
        •  每年進行滲透測試:
        nikto -h yourdomain.com
        

          為了保持合規性和安全性,請遵循以下最佳實踐:

          • 定期檢查日誌: 安排例行檢查稽核日誌,以發現異常並確保合規。
          • 基於角色的存取控制: 根據使用者角色限制對稽核日誌和敏感檔案的存取。
          • 自動化報告: 使用指令碼或工具自動產生滿足監管要求的稽核報告。
          • 修補程式管理: 定期更新伺服器,以修復弱點並保持合規。
          • 測試稽核規則: 定期測試稽核規則,確保它們能夠擷取所需事件,同時不會導致效能問題。

          結論

          稽核與合規對於保護 Ubuntu 22.04 伺服器和滿足監管要求至關重要。利用以下工具 auditctl、 ausearch和 aureport,管理員可以設定稽核規則、監控系統活動並產生報告,以確保符合 PCI-DSS、GDPR 和 HIPAA 等標準。將這些做法與集中式日誌記錄、自動化和其他安全措施相結合,可以確保伺服器環境穩健且合規。

          敬請期待下一篇文章!

          在我們系列的下一部分中,我們將深入探討 Web 與檔案服務。我們的下一篇文章 《在 Ubuntu Server 上設定 Web 伺服器》 將指導你安裝和設定 Apache 或 Nginx 來代管網站。我們還將介紹如何使用 SSL/TLS ,並借助 Let’s Encrypt來保護你的網站。千萬別錯過!