Network
保護應用程式的測試與營運環境
您的測試環境安全嗎? 讓我們一起來探索資安評估的重要性,並了解一些技巧與最佳實務原則來維護測試環境、其他環境以及您企業資料的安全,防止未經授權的存取和資料外洩。
測試環境 (staging environment) 在開發過程當中扮演著不可或缺的角色,提供一個平台來執行營運前的一些準備工作,例如:測試、品保及風險分析。然而,那些能讓測試環境發揮價值的功能,卻同時也會帶來潛在的漏洞。
由於測試環境基本上就是仿照營運環境而設定,所以您可以先在上面進行應用程式的測試,確認可正確運作之後,再部署到營運環境。既然這些環境通常擁有與營運環境相同的機敏資料與組態設定,因此保護測試環境的安全就不單只是一項最佳實務,而是必要的工作。
這些環境假使沒有妥善的保護,很可能會成為資源遭不當存取或資料不幸外洩的途徑。萬一不安全的測試環境又沒有適當的加以隔離,甚至還會威脅營運環境的安全。駭客只要能入侵測試環境,就能經由共享的資源或服務來進入營運環境。
許多企業都將測試環境架設在企業內部以避免接觸到外部威脅。但這並無法完全消除它們可能面臨的資安風險,例如:意外的資料外洩、心生不滿的員工,或者單純的人為錯誤。
環境等同原則
環境等同 (environmental parity) 原則強調測試與營運環境從組態設定到安全程序都應該要盡可能完全相同。等同的環境有助於讓部署變得可預測,確保測試環境直接鏡像複製營運環境,讓測試和除錯的工作更加準確。
此外,也可以讓開發人員有信心他們的程式碼在營運環境的表現會跟在測試環境一樣。這樣的一致性能減少環境相關的問題,讓您的程式碼在部署至營運環境之後,能更有效處理一些邊緣案例。
但這個原則也有一些例外情況,例如,測試環境與營運環境的規模就可能有所不同。某些情況下,測試環境可能不需承受與營運環境相同的流量或負載。因此,您可能會縮小測試環境基礎架構和資源的規模。
除此之外,有些環境設定也可能只是暫時的。例如,對企業來說,有些功能或組態設定可能只是用來測試或開發用途,一旦完成之後就可以移除這些功能,因此不會出現在營運環境上。
儘管有這些例外情況,環境等同原則的整體目標還是依然不變,那就是要建立一個在所有關鍵屬性上都跟營運環境幾乎相同的測試環境。此原則有助於讓部署工作更容易預測,減少環境相關問題的發生機率。
認證機制:第一道防線
認證機制是保護測試環境的第一道防線。開發人員通常會在測試與營運環境使用相同的認證機制,這樣做可提高一致性,讓不同環境之間的不同系統更容易管理。
企業經常使用集中式使用者資料資料庫,如 Active Directory (AD) 和 Lightweight Directory Access Protocol (LDAP) 來管理登入憑證。這類系統提供了統一的使用者資訊中心,簡化跨環境之間的使用者存取管理。
儘管不同的環境可能會擁有同樣的使用者,但其權限卻可能會隨著環境而變化。例如某一名使用者在測試環境可能是系統管理員,但到了營運環境卻只有讀取權限。這樣做有助於降低使用者登入憑證萬一不幸外流所可能造成的損害。
存取金鑰是認證的另一個重要層面,金鑰可用來認證某個請求是否來自可信賴的來源。每一個環境都應該有自己獨一無二的存取金鑰,以防止其中一個環境遭駭客入侵所造成的連帶損失。
採用 VPN 和 WAF 來提升安全
虛擬私人網路 (VPN) 和網站應用程式防火牆 (WAF) 是您可用來強化測試環境安全的兩個強大工具。
VPN 可保障測試環境的連線安全,尤其是從遠端地點透過公共網路或不安全的網路進行連線時。VPN 會在使用者裝置與測試環境之間建立一個安全、加密的通道,防止未經授權的存取,並且保護傳輸中的資料。
WAF 是一種防範潛在威脅的保護牆,可過濾和監控應用程式與網際網路之間的流量。
使用 WAF 可協助您發掘並攔截測試階段的潛在資安威脅,保護您的應用程式免於 SQL 隱碼注入 (SQL injection) 和跨網站腳本 (XSS) 之類的攻擊。當您在執行測試時,萬一真的發生資安事件,那麼 WAF 就能提供即時的警報與記錄檔來協助您調查和找出攻擊的源頭,進而防範後續的威脅。
資安測試本身若沒有妥善管理,也有可能導致測試環境停擺。WAF 可攔截和消除威脅而不影響您的正常測試流量,有助於測試的順利進行。
善用身分感應代理器來提升防護
身分感應代理器 (Identity-Aware Proxy,簡稱 IAP) 是另一個實用的資安解決方案,他可檢查使用者的身分,並限制使用者存取未經授權的資源。IAP ͏超越了傳統的 VPN 存取控管系統,採用情境感應與身分感應式認證與授權方法。
有別於每項資源 (如伺服器或叢集) 都要個別設定存取規則,IAP 可將這些定義集中化,並與每項資源的身分做連結。
IAP 的核心包含了兩大元素:存取層 (access plane) 與代理程式 (agent)。存取層的認證與代理器 (proxy) 元件會將連線階段導向已註冊的代理程式。這些代理程式會在靠近資產的位置運作,例如一個網站應用程式、Kuberne͏tes 叢集,或是資料庫。
存取層會追蹤連上資產的使用者,以及其角色和相關政策。當使用者登入到存取層時,存取層會負責認證使用者並確認其身分,同時對應到相關的角色與政策。每個經過認證的使用者都會直接對應到目標資源上的已註冊使用者。
一旦存取層確認了使用者的身分,IAP 就會檢查使用者是否獲得授權可以存取其要求的資源。如果使用者已獲得授權,那 IAP 就會將請求轉給資源。否則,就會拒絕存取。所以,身分感應代理器知道使用者的身分和背景資訊。
對於經由 HTTPS 存取的測試環境來說,IAP 扮演著關鍵的安全角色,它可強制執行精細的存取控管與多重認證,指定誰可以存取您測試環境的哪些部分,這有助於確保唯有真正需要的人才能存取機敏資料與組態設定。
摘要
保護測試環境安全真的是再重要不過,雖然測試環境可用來提升營運程式碼的品質,但因為測試環境同樣擁有機敏資料,所以一旦出現組態設定錯誤,同樣也會危及企業安全。
所以,企業很重要的是要仔細檢查您測試環境的資安措施,確保其完整性並隨時保持更新。如此可以讓部署變得更順暢也更可預測,減少環境相關問題的發生機率,同時還能確保資產的安全與完整。
請評估您的測試環境是否安全,並實施一些最佳實務原則來保障您系統與資訊在所有開發階段的安全。最後,您可考慮採用 Trend Vision One 這套單一網路資安平台來打破您的資安藩籬。