Leo Yeh's Blog

SAS 資訊安全 (1)

基本介紹

教學目標

初步了解 SAS 解決方案中資訊安全相關設定。

重點概念

SAS 解決方案是否足夠安全這是個很好的問題,一般來說,我們對於安全的認知僅限於驗證帳號密碼和加密傳輸中的資料,然而在安裝 SAS 解決方案時則會有許多安全相關的設定,分別為:

  1. 設定傳輸層網路安全協定。
  2. 設定伺服器之間安全連線。
  3. 設定使用者帳戶和稽核記錄。

不論我們是否為需要關注關於公司安全政策 IT 專家,或者 SAS 管理需要有能力說明 SAS 功能和設定 SAS 軟體符合 IT 標準, 或者稽核人員需要審核特定有關安全弱點的問題,皆建議可以了解 SAS 解決方案是如何透過設定符合資安管理與政策規範。

設定傳輸層網路安全協定

傳輸層安全連線 (Transport Layer Security,TLS) 、安全 Socket 連線層 (Secure Socket Layer,SSL) 和加密協定皆是被設計於提供通訊安全,其中 TLS 和 SSL 協定主要皆是提供網路資料隱私,資料完整性和身份驗證的功能,其中若在 HTTP 超連結文字傳輸協定上加上 TLS 或 SSL 協定就會是所謂的 HTTPS 安全連線,主要提供網站伺服器已被加密的安全通訊。至於要如何進行身份驗證則主要會以憑證為基礎,主要是採用 X.509 憑證其中會有被使用於 TLS Handshake 的公開金鑰。所謂 TLS Handshake 協定主要責任是進行身份驗證和金鑰交換以利建立安全 Session。此外安全的應用程式資料主要會在建立 Handshake 期間透過對稱性金鑰進行加密,然而若想要深入了解憑證是如何被簽署、憑證如何被鏈結和憑證如何被驗證有效,則可以參考「Tips and Techniques for Using Site-Signed HTTPS with SAS 9.4」 文章會有更詳細的解說,此外有關 TLS 憑證細節則可參考 RFC 5280 技術標準

當訊息在伺服器之間進行資料交換時將可能會發生被攔截訊息或被模擬行為的風險。當我們進行安全連線設定流程時,管理者需要建立適當的憑證格式,請注意一定要被組織中的第三方單位進行簽署,或者向憑證頒發機構發出請求產生包括公開金鑰的憑證,同時進行簽署,所謂憑證頒發機構 (Certificate Authorities,CA) 是可被信任的單位,主要包括公開金鑰,此時我們僅需要根據伺服器傳送時被簽署的憑證就能夠持續進行識別。然而 SAS 官方所提供的文件主要皆是假設憑證皆是建立被網站簽署的憑證,此外在部署時第三方簽署憑證會以 Mozilla CA 憑證清單 為主。

對於 TLS Handshake 主要會要驗證 X.509 憑證,像是網站簽署或第三方簽署的憑證,此外驗證演算法還會確認憑證是否有問題,直到被信任憑證頒發機構被找到時,此時就會建立安全連線,至於客戶端則會持有被信任憑證頒發機構的清單。然而不同類型的客戶端會有不同信任提供者,像是 SAS 9.4 M3 版本中新的信任提供者主要為 SAS Security Certificate Framework,其被使用於 Java 應用程式和 SAS 網頁應用程式伺服器,此外我們在 SAS 9.4 M3 版本中可以透過 SAS Deployment Manager 加入網站簽署和 Root CA 的憑證至 SAS Security Certificate Framework 中。

在 SAS 9.4 M3 版本中任何安全皆會包括 SAS Private Java Runtime Environment 和 SAS Security Certificate Framework,因此任何在 SAS 中被安全的 Java 程序皆會使用 SAS Security Certificate Framework 當成信任提供者,請注意 SAS 已經不再使用預設 JSSE Truststore (cacerts) 為信任提供者,至於 SAS Private Java Runtime Environment 主要則是使用 JRE Truststore 建立信任。

至於 SAS Deployment Manger 是如何安裝 Trusted CA Bundle,第一步安裝 Mozilla Bundle 主要會將 Mozilla CA Certificate List 相關的兩個憑證檔案 cacerts.pem 和 cacerts.jks 儲存至 SASHome/SASSecurityCertificateFramework/1.1/cacerts 的目錄中,第二步建立 Trusted CA Bundle 主要會將 Mozilla CA Certificate List 轉換為 Trusted CA Bundle 相關的兩個憑證檔案 trustedcerts.pem 和 trustedcerts.jks 儲存至 SASHome/SASSecurityCertificateFramework/1.1/cacerts 的目錄中,第三步在 SAS Private JRE 中建立 Trusted CA Bundle 主要會將 Trusted CA Bundle 相關的憑證檔案 trustedcerts.jks 轉換為 jssecacerts 儲存至 SASHome/SASPrivateJavaRuntimeEnvironment/9.4/jre/lib/security 的目錄中,第四步將客戶的 CA 憑證匯入至 Trusted CA Bundle 中,主要是將客戶的 CA 憑證轉換為 trustedcerts.pem 和 trustedcerts.jks 憑證檔案儲存至 SASHome/SASSecurityCertificateFramework/1.1/cacerts 的目錄中,接著再將 trustedcerts.jks 憑證檔案轉換為 jssecacerts 憑證檔案儲存至 SASHome/SASPrivateJavaRuntimeEnvironment/9.4/jre/lib/security 目錄中。

設定伺服器之間安全連線

在 SAS 解決方案中的伺服器需許我們透過網頁瀏覽器存取資料和執行多種任務,其中針對 SAS 網頁伺服器和 SAS 網頁應用程式伺服器會需要網路安全和隱私,所謂 SAS 網頁伺服器主要是被設定單一連線至 SAS 網頁應用程式伺服器的入口,通常我們將會需要啟用 TLS 安全,同時設定 SAS 網頁伺服器支援 HTTPS 安全連線,基本上 SAS 部署精靈皆會自動完成這些安全安裝與設定。

至於 SAS 網頁應用程式伺服器主要是透過 SAS 網頁伺服器與外部網路進行溝通,然而有些企業會要求設定 SAS 網頁伺服器和 SAS 網頁應用程式伺服器皆要支援 HTTPS 安全連線,也就是在每個伺服器中設定 HTTPS 安全連線確保 SAS 網頁應用程式皆是在安全環境中進行溝通。一般來說,SAS 網頁伺服器可以在透過 SAS 部署精靈和 SAS 部署管理員自動進行設定,然而 SAS 網頁應用程式伺服器必須手動設定 HTTPS,主要步驟為:

  1. 設定 SAS 網頁應用程式伺服器中連接資訊。
  2. 設定 SAS 網頁應用程式伺服器中 JVM 選項。
  3. 設定 SAS 網頁伺服器。
  4. 重新啟動 SAS 網頁伺服器和網頁應用程式伺服器。

此外 SAS 網頁伺服器也能夠進行手動設定,主要步驟為:

  1. 設定 SAS 網頁伺服器之 httpd-ssl.conf 設定檔。
  2. 設定 SAS 網頁應用程式伺服器中連接資訊。
  3. 設定 SAS 內容伺服器連線資訊。
  4. 設定 SAS 視覺分析伺服器,確認更新 SAS LASR 授權服務。
  5. 設定 SAS 環境檔案。
  6. 設定 SAS 環境管理員。
  7. 設定 SAS 內容伺服器中 JVM 選項。
  8. 重新啟動 SAS 網頁伺服器和網頁應用程式伺服器。

設定使用者帳戶和稽核記錄

在企業通常會需要 IT 單位執行有關於系統使用情況的稽核報表,一般來說內部稽核主要被設計於監控系統和軟體使用的情況,外部稽核則主要會皆對外部稽核員的要求提供符合規範的報表,像是 SOX、PCI-DSS、HIPAA、…等,然而現今許多規範和稽核審查還是主要專注於使用者活動和哪個人存取什麼樣的資訊。

在 SAS 解決方案中主要能夠整合不同外部使用者的帳號進行驗證,像是 Active Directory 、 LDAP 、… 等目錄服務,接著針對 SAS 中繼資料進行授權,主要授權哪些使用者可以存取什麼資料和應用程式,同時建議針對每個使用者在 SAS 中繼資料中建立個別的識別,同時關聯外部使用者的帳號進行驗證 ,此外 sasadm@saspw 和 sastrust@saspw 則是沒有關聯外部使用者帳號的內部使用者帳號屬於特殊情況,請注意針對 SAS 中繼資料進行使用者的存取控制將會是一門深奧的學問,將會再之後進行深入的介紹。

至於報表的呈現主要則會透過 SAS 環境管理員和 SAS 視覺分析管理員進行報表樣版的設定,請注意通常系統會收集與分析在系統層級與使用者相關的活動,像是在 SAS 環境管理員中則有 Auditing and the Service Architecture Framework 主要收集稽核矩陣的相關資料,以及報表中主要提供標準報表和摘要報表,此外 SAS 視覺分析管理員中也有提供使用者操作行為的稽核報表,以及 SAS 網頁應用程式伺服器也可以透過設定的方式產生稽核報表所需的資料。

總結 SAS 解決方案有許多安全相關的設定,像是設定傳輸層網路安全協定、設定伺服器之間安全連線和設定使用者帳戶和稽核記錄,主要專注於 SSCP 認證中資訊安全通識體系中的存取控制和網路與通訊安全的兩大領域,因此我們可以先透過設定的方式讓 SAS 解決方案更安全,接著針對無法符合資安規範的部份進行客制化 Java 程式開發,理應就能夠滿足企業大部份資安管理與政策規範的要求。

相關資源

⬅️ Go back