如何監控對 EC2 Linux 執行個體上的檔案系統做出的安全相關變更?

2 分的閱讀內容
0

我想開啟 Linux Audit 系統以監控對 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上檔案系統的變更。

簡短說明

Linux Audit 系統可追蹤對重要檔案的存取,並在發生檔案損毀或其他意外變更時建立稽核軌跡。您可以使用 Linux Audit 系統追蹤對 Amazon Elastic File System (Amazon EFS) 或任何其他檔案系統類型中檔案的變更。如果您將稽核系統設定為記錄多種類型的資訊,則可能會影響本機系統的效能。在系統上安裝 Linux Audit 系統之後,您可以建立規則來監控檔案系統上的活動。

若要追蹤對檔案系統的所有變更,請在掛載檔案系統的每個用戶端上開啟 Linux Audit 系統。

**注意:**執行 auditd 元件時,可能會影響系統的效能。如需詳細資訊,請參閱 Red Hat 網站上的啟用稽核功能是否有任何系統效能損失?

解決方法

  1. ec2-user/ubuntu/root user 身分使用 SSH 連接至 EC2 執行個體。用 AMI 的使用者名稱取代 ubuntu

  2. 安裝稽核套件:

    RHEL 和 CentOS

    # sudo yum install audit

    SUSE Linux

    # sudo zypper install audit

    Ubuntu

    # sudo apt install auditd
  3. 建立 Linux Audit 系統的規則。若要在一開始測試規則,請使用 auditctl 命令立即新增或移除規則。

    **注意:**下列範例顯示 EFS 檔案系統的規則。

    使用下列命令來監控檔案系統掛載位置的所有活動:

    $ auditctl -w /home/ec2-user/efs -k efs_changes

    以下是可以將稽核系統設定為日誌的動作範例:

    $ mkdir dir1
    $ touch file1
    $ touch file2
    $ mv file1 file3
    $ rm -f file2
    $ chmod 600 file3
    $ rmdir dir1
    $ rm -f file3
  4. 執行 ausearch -k efs_changes 命令來檢視稽核日誌。下列範例會根據步驟 3 的範例作業顯示 mkdir 命令的稽核日誌:

    time->Thu Jan  9 21:30:59 2020
    type=PROCTITLE msg=audit(1578605459.080:127433): proctitle=6D6B6469720064697231
    type=PATH msg=audit(1578605459.080:127433): item=1 name="dir1" inode=4989235361872937641 dev=00:16 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=CREATE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
    type=PATH msg=audit(1578605459.080:127433): item=0 name="/home/ec2-user/efs/audit" inode=12759736523397539955 dev=00:16
        mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
    type=CWD msg=audit(1578605459.080:127433): cwd="/home/ec2-user/efs/audit"
    type=SYSCALL msg=audit(1578605459.080:127433): arch=c000003e syscall=83 success=yes exit=0 a0=7fffe6aca6e1 a1=1ff a2=1ff a3=7fffe6ac7720 items=2 ppid=18661 pid=2948 auid=500 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=18369 comm="mkdir" exe="/bin/mkdir"     key="efs_changes"

    此範例顯示了原始稽核日誌。稽核日誌包含每個操作的大量資訊。

    若要在稽核日誌中建立較短的輸出,請執行 aureport 命令。此版本仍然顯示所有操作:

    $ ausearch -k efs_changes | aureport -f -i
    
    10118. 01/09/2020 21:36:29 file1 open yes /bin/touch ec2-user 127450
    10119. 01/09/2020 21:36:29 dir1 mkdir yes /bin/mkdir ec2-user 127449
    10120. 01/09/2020 21:36:29 file2 open yes /bin/touch ec2-user 127451
    10121. 01/09/2020 21:36:29 file3 rename yes /bin/mv ec2-user 127452
    10122. 01/09/2020 21:36:29 file2 unlinkat yes /bin/rm ec2-user 127453
    10123. 01/09/2020 21:36:29 file3 fchmodat yes /bin/chmod ec2-user 127454
    10124. 01/09/2020 21:36:29 dir1 rmdir yes /bin/rmdir ec2-user 127455
    10125. 01/09/2020 21:36:35 file3 unlinkat yes /bin/rm ec2-user 127456

    請記住,您不必記錄所有操作。例如,您可以建立規則來僅記錄與刪除相關的動作:

    auditctl -a always,exit -F arch=b64 -F dir=/home/ec2-user/efs -S unlink -S unlinkat -S rename -S renameat  -S rmdir -k efs_changes

    如果您從步驟 3 執行範例命令,則只有指定的刪除相關命令會出現在日誌中:

    10126. 01/09/2020 22:17:08 file3 rename yes /bin/mv ec2-user 127519
    10127. 01/09/2020 22:17:08 file2 unlinkat yes /bin/rm ec2-user 127520
    10128. 01/09/2020 22:17:08 dir1 rmdir yes /bin/rmdir ec2-user 127521
    10129. 01/09/2020 22:17:09 file3 unlinkat yes /bin/rm ec2-user 127522
  5. 若要使規則持續存在,請在 /etc/audit/audit.rules 檔案中設定這些規則。如需詳細資訊,請參閱 Red Hat 網站上的在 /etc/audit/audit.rules 檔案中定義持續稽核規則和控制項

相關資訊

Red Hat 網站上的系統稽核

Red Hat 網站上的使用 Auditd 進行自訂檔案監控

AWS 官方
AWS 官方已更新 5 個月前