SAS 資訊安全 (7)

基本介紹

教學目標

初步了解 SAS 解決方案中如何透過設定降低跨網站請求偽造攻擊風險發生機率。

重點概念

安裝設定

首先當我們透過 SAS 部署精靈安裝 SAS 9.4 解決方案時會有個步驟是「Web 應用程式: 允許連結到此 SAS 安裝的網站白名單」,其中說明為因為安全理由,透過 URL 直接連結到 SAS 安裝 (例如:報表、單一登入伺服器、公司網站) 網站需要在白名單中明確允取,主機名稱是 SAS 部署精靈設定的一部份,自動將其包超在白名單中處理,連結到 SAS 伺服器的網站將收到 403 禁止錯誤。例如:當我們安裝 SAS Visual Analytics 7.4 時通常會設定 URL 白名單為「 http://sasva.company.com/SASContentServer/**,http://sasva.company.com:7080」避免使用 SAS Visual Analytics 7.4 的部份功能時發生問題。

安全理由

接著到底是什麼安全理由呢?根據 SAS 官方文件所提到主要是跨網站請求偽造攻擊 (Cross Site Request Forgeries,CSRF) ,所謂 CSRF攻擊主要是強制登入受害者的瀏覽器向容易遭受攻擊的網站應用程式發送偽造的 HTTP 請求,其中包括受害者的工作階段 Cookie 和任何其他自動包含身份驗證的資訊,同時此攻擊允許攻擊者強制受害者的瀏覽器產生讓容易受攻擊的應用程序認為是受害者的 HTTP 請求為合法 HTTP 請求。此外 CSRF 攻擊為 2017 年 OWASP 前十大應用程式安全風險,排第八名的應用程式安全風險將會對於技術和商業造成影響,技術影響主要為攻擊者可以欺騙受害者執行受害者被授權執行的任何狀態改變之合法操作,商業影響主要為受影響的資料或應用程式功能的業務價值,將有可能對企業聲譽造成影響。

手動設定

再來若我們沒有在安裝與設定時透過 SAS 部署精靈設定白名單網址時,則可以在 SAS 解決方案部署完成之後進行後續設定,則可以進行手動設定,主要透過「SAS Management Console 工具」以「sasadm@saspw」管理者登入,點選「應用程式管理」->「設定管理員」,在「SAS Application Infrastructure」項目上按右鍵選擇「屬性」,點選「進階」,並且點選「sas.web.csrf.referers.knownHosts」的「已鎖定」圖示,將該屬性解鎖,以利編輯屬性值,設定完成之後按下「已解鎖」圖示進行鎖定,按下「確定」,請記得要按照順序重新動啟 SAS 伺服器之後白名單網址的屬性值才會生效。

設定屬性

最後白名單中還有許多相關屬性值可以進行設定,請參考下表。

屬性名稱 屬性值 預設值
sas.web.csrf.referers.allowNull 設定是否允許請求缺少引用標頭,當屬性值為 false 時代表所有傳入的 HTTP 請求皆需要具有有效的起始或引用標頭,反之屬性值為 true 時代表所有傳入的 HTTP 請求皆不需要具有有效的起始或引用標頭,除非我們已經很了解客戶端發送 HTTP 請求的引用標頭是什麼,像是附加代理伺服器,才會設定屬性值為 false。 true
sas.web.csrf.referers.blacklist 設定阻擋的網站清單,也就是黑名單,例如我們將 *.example.com 增加至白名單中,但是希望禁止使用 test.example.com 網站時,則可以將 test.example.com 網站加至黑名單中。 空白
sas.web.csrf.referers.knownHosts 設定允許的網站清單,也就是白名單,例如我們期望將 http://hostname1.example.comhttp://hostname2.example.comhttp://hostname.example.com/my-application/ 增加至白名單中,則可以設定http://hostname1.example.com/, http://hostname2.example.com/, http://hostname.example.com/my-application/** 網站加至白名單中。 空白
sas.web.csrf.referers.performCheck 設定是否應該執行安全過濾器,當屬性值為 false 時代表不執行任何檢查,而且不管任何其它的設定。 true
sas.web.csrf.referers.skipMethods 設定要從安全過濾中排除的 HTTP 請求方法,例如:若我們要排除 OPTIONS 和 TRACE 方法,則請輸入 GET,TRACE。 空白

總結 SAS 解決方案針對 CSRF攻擊的安全風險,將有提供設定白名單和黑名單的方式降低風險發生的機率,但是若我們需要設定反向代理伺服器 (Reverse Proxy) 連線 SAS 網站伺服器和 SAS 網站應用程式伺服器時,則官方文件則是建議將「sas.web.csrf.referers.performCheck」設定為「false」,避免因為設定產生問題。至於 CSRF 攻擊有基本手法則可透過 WebGoat 平台中的「Cross-Site Scripting (XSS)」課程進行練習,其中有 Cross Site Request Forgery (CSRF)、CSRF Prompt By-Pass 和 CSRF Token By-Pass 三種攻擊手法的練習方式。

相關資源