金融科技行業軟體開發的安全類最佳實踐

banq發表於2021-10-05

自世紀之交以來,金融科技行業呈指數級增長,支付欺詐的威脅同樣與之相匹配。隨著線上信用卡交易和無線支付在世界範圍內越來越受歡迎和需求,新的金融科技企業出現了。然而,在這個競爭激烈的市場中,那些缺乏嚴格安全標準的企業會吸引惡意行為者。
金融科技開發商不斷面臨為客戶提供價值的壓力,但他們也需要遵守資料隱私、安全和法規遵從性的要求標準。有時,這些優先事項相互衝突,在不犧牲另一項的情況下實現其中一項可能具有挑戰性。
安全性應該是任何應用程式開發過程的核心,而不僅僅是金融科技中使用的那些。任何應用程式在設計上都應該是安全的,這意味著在整個軟體開發生命週期中應該始終存在一些最佳實踐和嚴格措施。
確保每個階段的安全性將降低應用程式的整體開發和維護成本。例如,需要對設計進行重大更改的生產應用程式中的關鍵漏洞可能會導致時間、金錢和資源方面的大量成本。在設計、開發甚至測試階段解決這些問題會減少它們的負面影響。
幸運的是,今天的組織正在將 DevOps 和 SecOps 結合在一起,確保開發團隊不僅對基礎設施負責,而且對安全負責。
讓我們簡要介紹其中一些安全的設計開發最佳實踐。 
 

端到端加密 
金融科技行業及其隱私標準對資料託管人的資訊保護有著嚴格的要求。其中一項要求是使用加密來確保資料免受竊聽、資料洩露和資料篡改。 
TLS v1.2這樣的加密標準,具有強大的密碼(例如 AES-GCM),將為傳輸中的資料提供強大的保護機制——不僅在外部網路(例如在客戶端通訊期間)而且在您的公司網路中. 這需要伴隨著強大的公鑰基礎設施 (PKI)來生成可信賴的證書和金鑰,這些證書和金鑰可由發起連線的客戶端進行驗證和信任。市場上有許多 PKI 提供商,包括Let's EncryptGoDaddyAWS。 
與傳輸中的加密類似,使用AES-256等標準進行靜態資料加密將確保任何應用程式或使用者無法訪問儲存的資料,除非他們提供解密金鑰。
  

機密管理
在資訊保護方面,不僅應該加密資料。組織還應採取措施進行機密管理。機密管理處理應用程式中使用的私鑰、身份驗證令牌、密碼或其他後設資料,保護這些儲存的機密免受未經授權的訪問。這可以透過加密和驗證的保管庫來完成。此類保險庫的示例包括:

  • HashiCorp 金庫
  • AWS 秘密管理器
  • Azure 金鑰保管庫
  • Docker 的秘密

 

身份驗證、授權和計費
身份驗證、授權和記賬 (AAA) 應該是任何應用程式安全的核心,無論是對人還是第三方應用程式。身份驗證確保只有已知的註冊使用者和系統才能使用該應用程式。執行身份驗證的最簡單方法是透過單因素機制,例如使用者名稱和密碼。但是,其他安全方法包括多因素身份驗證、PKI 或簽名令牌。實施將根據業務需求和特定用例而有所不同。
 

安全的雲或 SaaS 提供商
除了應用程式控制之外,金融科技應用程式供應商還應確保基礎設施級別的安全性。底層基礎設施可以在本地或在雲中。如果您使用公共雲提供商,則需要確保他們擁有必要的行業安全控制和認證。例如,三大雲提供商都獲得了 PCI-DSS 認證:


除 PCI-DSS 外,您的企業可能需要實施進一步的控制和政策以符合行業法規和標準,例如:

選擇具有現有安全認證和標準的雲供應商可以讓您外包一些安全和合規性任務,幫助您更快地將產品推向市場。
值得注意的是,公共雲服務提供商通常有一個責任共擔模型,供應商負責其資料中心、網路、基礎設施、軟體平臺和儲存的物理安全;同時,客戶對其應用和資料安全負責。AWS提供了一種這樣的責任共擔模型。
 

專用生產環境
金融科技行業與醫療保健行業一樣,在將資料傳送給託管服務提供商時,對資料安全性——尤其是資料洩露的威脅——極為敏感。
自然,金融機構希望確保其客戶和其他敏感資料不被競爭對手或任何未經授權的使用者看到。這就是組織經常對多租戶 SaaS 解決方案猶豫不決的原因,其中多個客戶的資料和應用程式共享同一物理伺服器甚至同一網路。使用此類共享環境時意外資料洩露場景的一些示例包括將未初始化的分離卷分配給其他租戶或使用公共子網來託管多個客戶伺服器。
作為開發人員,您當然希望將生產環境與其他客戶環境分開。但是,除此之外,您還應該確保無法從任何較低的環境(例如開發、測試或暫存)訪問生產資料集。有必要保護您的環境以消除意外或惡意資料洩露的可能性。
 

符合 PCI 標準的小部件
 如果您的組織計劃接收或處理卡付款,則法律要求遵守PCI DSS 標準。認證涉及極其嚴格的過程,這意味著在實施您的安全策略方面需要額外的工作。除非您的企業在獲得此認證方面已經在順利進行,否則這項工作的資源消耗可能會成為一個問題。

PCI 相容小部件可以提供卡管理解決方案所期望的所有功能。這些功能包括卡啟用、PIN 更新、敏感資訊顯示、傳輸加密和身份驗證。您在內部構建的金融 Web 應用程式可以在 iFrame 中顯示這些小部件,從而確保合規性並限制您在卡欺詐時的責任。
 

3D 安全高階欺詐保護

3D Secure (3DS) 是一種協議,旨在在處理無卡交易時提供額外的防欺詐層。現在,任何髮卡機構都廣泛需要該協議,以防止線上交易中的卡欺詐。
3DS 涉及支付應用程式首先檢查使用者輸入的卡詳細資訊是否正確,然後該卡是否啟用了 3DS。如果啟用,則使用者將被重定向到應用程式的另一部分(可能是嵌入的 iFrame 或其他頁面),在那裡他們需要證明自己的身份。這可能涉及回答特定的安全問題或輸入已透過電子郵件或簡訊傳送給持卡人的驗證碼。
 

代幣化
支付卡資訊(例如卡號、有效期和 CVV)高度敏感,不應以明文形式儲存在同一資料庫或裝置中。一個好的安全實踐是在儲存時對此類資訊進行雜湊處理,使未經授權或惡意的使用者無法讀取這些資訊。此過程稱為代幣化,可降低身份盜竊和信用卡欺詐的風險。
這可確保敏感的卡資訊保安地儲存在資料庫中,而您的應用程式資料庫僅儲存持卡人的私人資訊,如姓名、地址等。這種分離不僅使惡意使用者難以從一個地方獲取有關卡及其使用者的完整詳細資訊,而且還將整個令牌化過程解除安裝到受信任的第三方。


 

相關文章