兩位一體:論信息化中的應用安全和數據庫安全
在對多個應用程序或開發項目進行威脅建模時,應作好記錄,找到應用程序的共通性。這些共通性可以用于審查內部數據庫訪問標準、授權訪問以及優化訪問過程。
在編寫策略時應當涵蓋常見情況,并且明確地為開發人員和數據庫管理人員提供指導,確保人人手中都有一份參考資料。一旦這些步驟執行到位后,可以開始從基礎做起向數據庫環境添加安全措施。
雖然各個系統環境都不相同,但是數據庫配置對于保護數據是最為重要的部分之一,應當實現的常見配置有:
1.應當有恰當的人員維護和更新用戶名單,其中這些用戶可以訪問受管理的應用服務環境中數據庫。
2.系統管理員和其他相關的IT人員應該有充分的知識、技能并理解所有的關鍵的數據庫安全要求。
3. 當部署數據庫到受管服務環境中時,應該采用行業領先的配置標準和配套的內部文檔。
4. 對于數據庫功能不需要的默認用戶帳戶,應該鎖定或是做過期處理。
5. 對于所有仍在使用中的默認用戶帳戶,應該主動地變更密碼以采用強密碼措施。
6. 應該給數據庫內的管理員帳戶分配不同的密碼,這些帳戶不應使用共享密碼或組密碼。
7. 措施要到位,用于保護數據字典以及描述數據庫中所有對象的支持性元數據。
8. 對于任何訪問數據庫的基于主機的認證措施,應當有足夠的適當的過程來確保這種訪問類型的整體安全。
9. 數據庫監控應到位,由能夠根據需要對相關的人員進行告警的工具組成。
10. 保證數據庫應用了所有相關的和關鍵的安全補丁。
我們需要保護重要的數據
“一定要保護好數據庫的重要數據”,因為數據庫對于IT行業來說就好像是保管金銀珠寶的保險庫。如果保險庫不安全,財寶就很容易失竊,那主人就不會開心。
保護數據庫服務器的方式有網絡分段、系統分離,并將數據庫服務器放置在一層或多層保護網的后面。
有許多新的技術,包括數據庫活動監控軟件、數據丟失防護(DLP)、將數據庫分割,放到依據數據分類或風險模型的系統中,還有確保低安全性的應用程序無法訪問到高安全程度的數據庫等。
根據訪問權限和賬號,如果有多個部門的用戶因同一事件需要登陸進入同一應用程序,應該采取保護措施,以確保一個部門的人員無法訪問另一個部門的數據。這可以在數據庫層面上完成,方法是讓各個部門分別創建各自的數據庫或桌面;這樣的話可以實現數據分離,而且可以使用不同的數據庫賬號來加以保護。應用程序可以使用單一賬號用于非認證請求服務,比如說用戶登錄;一旦發生此類情況,應用程序可以將數據庫賬號切換至同用戶部門相關聯的另一個賬號。在設定許可權限時要防止通用賬戶訪問任何公司數據。
除此之外,部門A的數據庫賬號不能訪問部門B的數據。這樣就阻止了攻擊者越過公司的安全防線并擴大其接觸范圍。在進行應用程序數據庫賬號轉換時必須非常小心,因為攻擊者可能通過SQL注入攻擊來迫使應用程序改變其連接。在某些單位,開發人員會寫下他們自己的SQL查詢命令,而對于其它一些單位,查詢命令是由數據庫管理員來編寫和優化,然后再提供給開發者。
在最安全的環境下,這些查詢命令由數據庫管理員編寫和執行,作為存儲過程。存儲過程是由應用程序執行的預定義語句。這樣就使得SQL注入攻擊更加難于得到利用。在這種特殊情況下,如果沒有存儲過程的話,攻擊者可能已經作為管理員登錄進入此應用程序并且取得此數據庫完全控制權,而且只需要得到管理員用戶名稱即可實現。
同時還需要建立敏感數據的安全邊界。通過采取相應的技術措施,為用戶的各種數據庫建立一個關于數據的安全邊界。我們可以將數據庫服務器置于標準的網絡防火墻后面,并限制訪問,以確保我們了解什么系統能夠訪問你的數據庫,從而降低風險。但是千萬不要以為簡單的配備一些防火墻就可以防范這些安全威脅,可能還會有其他我們未發現的未知風險存在!
安全人員在開發新的安全數據安全模型時,安全人員應該進行測試,以確保他們提供了需要的保護級別,并且沒有引入新風險。最后關于實現數據基于策略的自動管理問題,它包括數據的分類、備份、遷移、刪除等,實現全面的數據存儲管理自動化,這樣不但減少了人為出錯的可能性,也提高了數據庫的安全性和可用性。使用一套優質的解決方案按照標準的規范進行設計和部署,提供充分的靈活性、擴展性和安全性,滿足數據庫安全保管方面當前和今后的法規要求。
回到源頭,WEB安全刻不容緩
最小權限原則、保護數據庫連接、分段服務器和網絡、安全驗證、安全邊界和數據庫安全配置對保護數據很有用處,但是這些不會解決攻擊者所有的攻擊企圖。從廣義上講,數據庫的安全首先依賴于網絡系統。網絡系統的安全是數據庫安全的第一道屏障,外部入侵首先就是從入侵網絡系統開始的。所以現在需要關注最普遍存在的威脅;WEB應用安全。
由于某些開發人員犯了非常低級的編程錯誤,比如:應用ID只能被應用使用,而不能被單獨的用戶或是其它進程使用。但是開發人員不這么做,他們給予了應用程序更多的數據訪問權限。這就類似于醫生因沒有洗手而傳播了傳染病,從而導致各種漏洞的出現。
我們必須接受已經存在的應用缺陷和漏洞。通過發揮數據庫管理員的安全職責去阻止因為應用缺陷和漏洞所造成的不良后果。比如如果開發人員不重視應用與數據交互的安全性,堅持最小權限原則,數據庫管理員則有權在這場互動中占取主動,不給開發人員全權委托,數據庫管理員可以不允許那么多的交互被授權;為了阻止黑客的滲透攻擊從不可避免的網絡程序應用漏洞中占便宜,數據庫管理員也有權進行其他有效的安全控制。并且數據庫管理員應對數據庫進行加密保護,如密碼不能使用明文保存;對所有應用層和數據層通信的審計監控將有助于快速識別和解決問題以及準確的判斷任何安全事件的范圍,直到實現安全風險最小化的目標。
假如出現數據外泄事件(如2011年年底的CSDN等網站的用戶數據信息泄密事件),責任也不止是在數據庫管理員身上,開發人員也需要共同承擔責任。其中一個非常重要的方面,開發人員能做的就是在用戶能輸入的地方最好過濾危險字符,這樣可以防止黑客通過諸如SQL注入攻擊獲取到數據庫的敏感信息。目前在各類行業網站上,各種WEB應用漏洞隨處可見,可以被黑客們檢測到(他們一般會用軟件同時掃描數千個網站)。
開發人員在完成一套新的應用程序后應使用安全檢測工具對其進行反復白盒測試,有條件的情況下可以請信息安全人員模擬黑客進行黑盒滲透測試,盡可能的發現應用程序的弱點并進行修補。如果想實現更完整的解決方案,更多有關的保護數據和數據庫是應當實施源代碼分析。這是一項冗長的處理過程,可以請安全服務提供商用專業的源碼審計軟件對應用程序代碼進行詳細的分析處理,這些工具會直接查找出更精確的缺陷結果。
同時應該與開發商或者安全廠商合作并確保能提供安全解決方案,這對于任何致力于部署網絡應用數據庫正常安全訪問的用戶都至關重要,WEB應用安全測試對于確保數據庫的安全性有至關重要的作用。
一款好的工具可以有助于加快進度并且提供更好的檢測結果和解決方案,以提供應用程序更好的的安全性,關鍵是進行反復評估以確保管理工作正常,對結果實施驗證并加固,確保風險一經發現立即補救,并保證管理人員能夠了解到相關問題的存在。
黑盒測試 黑盒測試是一種把軟件產品當成是一個黑箱的測試技術,這個黑箱有入口和出口,測試過程中只需要了解黑箱的輸入和輸出結果,不需要了解黑
責任編輯:黎陽錦
-
發電電力輔助服務營銷決策模型
2019-06-24電力輔助服務營銷 -
繞過安卓SSL驗證證書的四種方式
-
網絡何以可能
2017-02-24網絡