Leo Yeh's Blog

SAS Viya (75)

教學目標

初步了解 SAS Viya 中稽核報表的基本概念。

重點概念

首先資訊安全的基礎就是控制管理資源如何被存取,任何一位使用者為了能夠存取資源必須先進行身份識別和驗證,當使用者完成身份識別和驗證之後,系統必須確認該使用者被授權存取哪些資源,並且當使用者存取資源之後,系統必須產生稽核軌跡和記錄,也就是所謂 IAAA (Identification, Authentication, Authorization, Accountability),其中當責 (Accountability) 主要就是追蹤使用者存取物件的動作,也常被人們理解為稽核。而在 SAS Viya 平台中的 SAS Environment Manager 就有提供預設使用者活動的稽核報表,以利我們查看使用者存取物件之稽核記錄的相關資訊,至於報表中的相關資訊主要會以圖形和表格呈現,此外當發生與資訊安全相關的操作,像是登入至應用程式或更改授權規則時也會產生稽核記錄,因此我們更能夠透過使用者活動的稽核報表找出異常操作的資安事件立即進行防範,以利符合企業中資訊安全政策的規範要求。

接著使用者活動的稽核報表更能夠協助找出導致 SAS Viya 平台效能問題的根本原因,其主要是由 genAudit 任務每兩小時執行一次,從 SAS Viya 平台的稽核記錄中收集資訊,然後用於建立稽核報表,genAudit 任務主要會每兩小時自動執行以下功能,分別為:

  1. 提取報表,資料計劃,CAS 管理和 CAS 存取管理的稽核記錄。
  2. 將提取的稽核記錄寫入暫存位置的 CSV 檔案。
  3. 從收集的第八天起刪除 CSV 檔案中的稽核記錄。
  4. 使用 CSV 檔案在 SystemData 的 CASLIB 中建立一個名為 AUDIT 的資料表。

此時我們就能夠使用 AUDIT 資料表中提取的稽核資料執行分析或建立報表,而稽核報表中主要顯示最活躍使用者、應用程式使用率、報表活動、資料計劃活動、資料活動、錯誤資訊和詳細資訊。我們能夠透過最活躍使用者的頁籤了解任何使用者隨著時間變化的活動圖表,應用程式使用率主要顯示最常用的應用程式相關圖表,報表活動主要查看特定使用者存取報表情況的圖表,資料計劃活動主要主要查看特定使用者存取資料計劃情況的圖表,資料活動主要主要查看特定使用者存取資料情況的圖表,不論是報表、資料計劃或資料預設皆會記錄當發生讀取失敗、建立、更新和刪除的情況。此外錯誤資訊主要針對所有應用程序的失敗資訊產生的相關圖表,至於詳細資訊主要顯示使用者存取物件之稽核記錄的詳細資訊表格,並且我們能夠將報表中的任何圖表和表格匯出為 Excel 檔案,以利我們透過最熟悉的 Excel 軟體進行交叉分析協助找出導致 SAS Viya 平台效能問題的根本原因。

再來找出異常操作的資安事件和效能問題的根本原因可能還不夠,企業更需要有自動化的處理機制,以利預防和異常操作和效能問題再次發生,此時我們就會需要透過 sas-admin 工具撰寫自動化的處理機制,像是撰寫 Shell Script、Python、Java、… 等。請注意輸出結果不一定為 JSON 格式,也有可能是 TEXT 格式,若發生輸出結果為 TEXT 格式,而非 JSON 格式,但是我們需要透過 JSON 格式的輸出結果撰寫自動化處理機制時,我們就能夠修改「~/.sas/config.json」設定檔中的「output」設定值為「json」。

透過 sas-admin 工具查看特定使用者存取報表的稽核記錄

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$ cd /opt/sas/viya/home/bin
$ ./sas-admin auth login
$ ./sas-admin audit list --user-id <使用者 ID> --application reports
{
"items": [
{
"action": "create",
"application": "reports",
"httpContext": {
"method": "POST",
"statusCode": 201
},
"id": "bcb8e5bf-6dbf-4fef-ac51-b9bc79d31369",
"links": [
{
"href": "/audit/entries/bcb8e5bf-6dbf-4fef-ac51-b9bc79d31369",
"method": "GET",
"rel": "self",
"type": "application/vnd.sas.audit.entry.resource",
"uri": "/audit/entries/bcb8e5bf-6dbf-4fef-ac51-b9bc79d31369"
}
],
"properties": {
"referringApplication": "SASReportViewer"
},
"remoteAddress": "172.26.4.134",
"state": "success",
"timeStamp": "2019-06-06T03:09:49.637Z",
"traceId": "767e20aed3413458",
"type": "resource",
"uri": "/reports/reports/fe5ed8c1-2398-4021-874d-48bfdb18c10c/states/df5ed66a-e19b-4316-960d-056270188924",
"user": "christine",
"version": 2
}
],
"name": "entries",
"version": 2
}

但是透過 sas-admin 工具查看特定使用者存取報表的稽核記錄僅會顯示存取哪張報表的 ID (在 uri 中有報表的 ID),因此我們需要先解悉出 uri 中的報表 ID 之後,再透過 sas-admin 工具查看特定報表的相關資訊。

透過 sas-admin 工具查看特定報表的相關資訊

1
2
3
4
5
6
7
8
9
10
11
$ cd /opt/sas/viya/home/bin
$ ./sas-admin auth login
$ ./sas-admin reports show-info --id <報表 ID>
{
"createdBy": "SAS Supplied",
"creationTimeStamp": "2019-03-10T15:02:02.692Z",
"folder": "/Products/SAS Environment Manager/Dashboard Items",
"id": "fe5ed8c1-2398-4021-874d-48bfdb18c10c",
"modifiedBy": "SAS Supplied",
"name": "User Activity"
}

最後當根據稽核記錄開發自動化的處理機制整合至企業日常營運的作業流程之後,此時完善的維護作業就會非常重要,而在 SAS Viya 平台中針對稽核記錄的機制主要也能夠透過設定滿足日常營運的基本需求,其中設定項目主要有:

  1. batchsize:指定一次歸檔的稽核記錄數。
  2. enabled:指定是否啟用歸檔稽計記錄,如果啟用,則會從歸檔資料表中刪除早於指定保留期的記錄,如果未啟用,則不會將記錄保留在歸檔資料表中。
  3. localRetention:指定記錄在歸檔之前保留的天數。
  4. scanSchedule:指定歸檔過程開始的時間,預設值為每天的午夜。
  5. storage.local.destination:指定儲存歸檔記錄的檔案位置。
  6. storageType:指定從歸檔資料表中刪除的記錄是否儲存至檔案,若為 local 就會儲存至檔案,若為 none 就不會儲存至檔案。

當完成稽核記錄的機制之設定項目之後,建議重新啟動相關服務,分別為 sas-ops-agentsrv、audit 和 casManagement 這三個最關鍵的服務。請注意若發生異常的稽核記錄,則建議刪除「/opt/sas/viya/config/var/cache/auditcli」預設目錄下的所有檔案和資料表之後,genAudit 任務將會在兩小時後執行時建立新產生的稽核記錄資料。

相關資源

⬅️ Go back