金融科技行業軟體開發的安全類最佳實踐
自世紀之交以來,金融科技行業呈指數級增長,支付欺詐的威脅同樣與之相匹配。隨著線上信用卡交易和無線支付在世界範圍內越來越受歡迎和需求,新的金融科技企業出現了。然而,在這個競爭激烈的市場中,那些缺乏嚴格安全標準的企業會吸引惡意行為者。
金融科技開發商不斷面臨為客戶提供價值的壓力,但他們也需要遵守資料隱私、安全和法規遵從性的要求標準。有時,這些優先事項相互衝突,在不犧牲另一項的情況下實現其中一項可能具有挑戰性。
安全性應該是任何應用程式開發過程的核心,而不僅僅是金融科技中使用的那些。任何應用程式在設計上都應該是安全的,這意味著在整個軟體開發生命週期中應該始終存在一些最佳實踐和嚴格措施。
確保每個階段的安全性將降低應用程式的整體開發和維護成本。例如,需要對設計進行重大更改的生產應用程式中的關鍵漏洞可能會導致時間、金錢和資源方面的大量成本。在設計、開發甚至測試階段解決這些問題會減少它們的負面影響。
幸運的是,今天的組織正在將 DevOps 和 SecOps 結合在一起,確保開發團隊不僅對基礎設施負責,而且對安全負責。
讓我們簡要介紹其中一些安全的設計開發最佳實踐。
端到端加密
金融科技行業及其隱私標準對資料託管人的資訊保護有著嚴格的要求。其中一項要求是使用加密來確保資料免受竊聽、資料洩露和資料篡改。
像TLS v1.2這樣的加密標準,具有強大的密碼(例如 AES-GCM),將為傳輸中的資料提供強大的保護機制——不僅在外部網路(例如在客戶端通訊期間)而且在您的公司網路中. 這需要伴隨著強大的公鑰基礎設施 (PKI)來生成可信賴的證書和金鑰,這些證書和金鑰可由發起連線的客戶端進行驗證和信任。市場上有許多 PKI 提供商,包括Let's Encrypt、GoDaddy或AWS。
與傳輸中的加密類似,使用AES-256等標準進行靜態資料加密將確保任何應用程式或使用者無法訪問儲存的資料,除非他們提供解密金鑰。
機密管理
在資訊保護方面,不僅應該加密資料。組織還應採取措施進行機密管理。機密管理處理應用程式中使用的私鑰、身份驗證令牌、密碼或其他後設資料,保護這些儲存的機密免受未經授權的訪問。這可以透過加密和驗證的保管庫來完成。此類保險庫的示例包括:
- HashiCorp 金庫
- AWS 秘密管理器
- Azure 金鑰保管庫
- Docker 的秘密
身份驗證、授權和計費
身份驗證、授權和記賬 (AAA) 應該是任何應用程式安全的核心,無論是對人還是第三方應用程式。身份驗證確保只有已知的註冊使用者和系統才能使用該應用程式。執行身份驗證的最簡單方法是透過單因素機制,例如使用者名稱和密碼。但是,其他安全方法包括多因素身份驗證、PKI 或簽名令牌。實施將根據業務需求和特定用例而有所不同。
安全的雲或 SaaS 提供商
除了應用程式控制之外,金融科技應用程式供應商還應確保基礎設施級別的安全性。底層基礎設施可以在本地或在雲中。如果您使用公共雲提供商,則需要確保他們擁有必要的行業安全控制和認證。例如,三大雲提供商都獲得了 PCI-DSS 認證:
除 PCI-DSS 外,您的企業可能需要實施進一步的控制和政策以符合行業法規和標準,例如:
- 一般資料保護條例 ( GDPR )
- 澳大利亞審慎監管局 ( CPS 234 )
- 紐約州網路安全要求(第 23 條 NYCRR 第 500 部分)
選擇具有現有安全認證和標準的雲供應商可以讓您外包一些安全和合規性任務,幫助您更快地將產品推向市場。
值得注意的是,公共雲服務提供商通常有一個責任共擔模型,供應商負責其資料中心、網路、基礎設施、軟體平臺和儲存的物理安全;同時,客戶對其應用和資料安全負責。AWS提供了一種這樣的責任共擔模型。
專用生產環境
金融科技行業與醫療保健行業一樣,在將資料傳送給託管服務提供商時,對資料安全性——尤其是資料洩露的威脅——極為敏感。
自然,金融機構希望確保其客戶和其他敏感資料不被競爭對手或任何未經授權的使用者看到。這就是組織經常對多租戶 SaaS 解決方案猶豫不決的原因,其中多個客戶的資料和應用程式共享同一物理伺服器甚至同一網路。使用此類共享環境時意外資料洩露場景的一些示例包括將未初始化的分離卷分配給其他租戶或使用公共子網來託管多個客戶伺服器。
作為開發人員,您當然希望將生產環境與其他客戶環境分開。但是,除此之外,您還應該確保無法從任何較低的環境(例如開發、測試或暫存)訪問生產資料集。有必要保護您的環境以消除意外或惡意資料洩露的可能性。
符合 PCI 標準的小部件
如果您的組織計劃接收或處理卡付款,則法律要求遵守PCI DSS 標準。認證涉及極其嚴格的過程,這意味著在實施您的安全策略方面需要額外的工作。除非您的企業在獲得此認證方面已經在順利進行,否則這項工作的資源消耗可能會成為一個問題。
PCI 相容小部件可以提供卡管理解決方案所期望的所有功能。這些功能包括卡啟用、PIN 更新、敏感資訊顯示、傳輸加密和身份驗證。您在內部構建的金融 Web 應用程式可以在 iFrame 中顯示這些小部件,從而確保合規性並限制您在卡欺詐時的責任。
3D 安全高階欺詐保護
3D Secure (3DS) 是一種協議,旨在在處理無卡交易時提供額外的防欺詐層。現在,任何髮卡機構都廣泛需要該協議,以防止線上交易中的卡欺詐。
3DS 涉及支付應用程式首先檢查使用者輸入的卡詳細資訊是否正確,然後該卡是否啟用了 3DS。如果啟用,則使用者將被重定向到應用程式的另一部分(可能是嵌入的 iFrame 或其他頁面),在那裡他們需要證明自己的身份。這可能涉及回答特定的安全問題或輸入已透過電子郵件或簡訊傳送給持卡人的驗證碼。
代幣化
支付卡資訊(例如卡號、有效期和 CVV)高度敏感,不應以明文形式儲存在同一資料庫或裝置中。一個好的安全實踐是在儲存時對此類資訊進行雜湊處理,使未經授權或惡意的使用者無法讀取這些資訊。此過程稱為代幣化,可降低身份盜竊和信用卡欺詐的風險。
這可確保敏感的卡資訊保安地儲存在資料庫中,而您的應用程式資料庫僅儲存持卡人的私人資訊,如姓名、地址等。這種分離不僅使惡意使用者難以從一個地方獲取有關卡及其使用者的完整詳細資訊,而且還將整個令牌化過程解除安裝到受信任的第三方。
相關文章
- 金融科技 DevOps 的最佳實踐dev
- 讀軟體開發安全之道:概念、設計與實施16安全開發最佳實踐
- 軟體開發中的10個最佳實踐技巧!
- 聚焦金融科技 守護行業安全|綠盟科技助力金融行業網安發展行業
- 彼之蜜糖,吾之砒霜 —— 聊聊軟體開發中的最佳實踐
- 彼之蜜糖,吾之砒霜——聊聊軟體開發中的最佳實踐
- 金融科技行業 OKR 實用案例行業OKR
- 大資料智慧:金融行業使用者畫像最佳實踐大資料行業
- Go 單體服務開發最佳實踐Go
- Go單體服務開發最佳實踐Go
- 【線上沙龍】金融行業開源治理最佳實踐~讓我們擁抱開源吧行業
- Laravel 開發最佳實踐Laravel
- 以實力護安全 | 綠盟科技深耕技術守護金融行業多元發展行業
- SACC2018:金融行業開源架構落地實踐行業架構
- CATIA軟體許可管理最佳實踐
- HTTPS安全最佳實踐HTTP
- Dockerfile 安全最佳實踐Docker
- MongoDB最佳安全實踐MongoDB
- 美創科技四個行業資料安全治理實踐案例行業
- 如何在軟體研發階段落地安全實踐
- 實現容器安全管理的最佳實踐
- 敏捷軟體開發的最佳資源敏捷
- 簡析《美國白宮<利用安全的軟體開發實踐增強軟體供應鏈的安全性>備忘錄》
- 金融行業的軟體測試型別細分行業型別
- Kubernetes 最佳安全實踐指南
- 資料安全治理體系如何建?看頭部銀行最佳實踐
- Android開發中API層的最佳實踐AndroidAPI
- SpringCloud 微服務最佳開發實踐SpringGCCloud微服務
- 最佳實踐:金融級企業研發中自動和智慧SQL質量控制SQL
- 《SpringBoot實戰開發》——基於Gradle+Kotlin的企業級應用開發最佳實踐Spring BootGradleKotlin
- 使用Java Optional類的最佳實踐 - oracleJavaOracle
- 成都鏈安受邀參加QCon全球軟體開發大會,分享區塊鏈生態安全最佳技術實踐區塊鏈
- 內容社群行業搜尋最佳實踐行業
- 科技型企業文件外發控制管理,最佳實踐方案是什麼?
- iOS 開發者的 Weex 偽最佳實踐指北iOS
- 寫給自己的git多人開發最佳實踐Git
- 科技行業工業軟體系列報告之開篇:軟體為體,工業鑄魂(附下載)行業
- 開源商業模式促進金融業科技生態的發展模式