兩位一體 論應用安全與數據庫安全
應用安全和數據庫安全就像是拼圖中的拼圖塊,它們雖然不同,卻彼此之間需要對方,缺少任何一個,都不能形成一個安全整體。如果其中一方出現安全隱患就會令整個安全防御徹底失效,如WEB應用程序存在SQL注入的時候,就會對整個系統和數據庫產生更大的影響。為了減小攻擊范圍,開發人員和數據庫管理員必須明晰他們在這個過程中的角色,協同工作,以避免WEB應用暴露出任何敏感數據。
如今,許多行業用戶將大量有價值的客戶數據存儲于在線數據庫,通過網絡應用與外界交互。不論是通信、金融、電子政務、電子商務抑或是小小的個人博客,前端應用程序和后臺數據庫都不可避免地結合在我們現在的模型中,任何一個都不可離開另一個而單獨存在。
但是由于那些應用程序在設計時是允許任何人、從任何地方登陸進入訪問,因而也成為了通往隱藏在深處的重要數據的橋梁。比如在去年十二月,國內最大的程序員社區網站CSDN就遭到了黑客從WEB應用層的攻擊,使得包含用戶密碼的數據庫泄密。
那么如何才能使這個模型更安全呢?安恒信息專家將為您做詳細的解讀:使模型更安全的解決方法是讓應用程序作為人與數據互動的唯一接口,應用程序界面是機器與數據互動的唯一接口。如果不是這樣,那么數據交互就有可能不能被充分控制好,這將會是一個非常基本的潛在漏洞。即使訪問方式定義明確,實際上應用程序依然有無數種方式令防護數據庫失敗,最終導致整個系統被黑客竊取或破壞。
安恒信息專家表示,安全管理人員和開發人員經常忽視或者錯誤地理解數據庫,常僅僅關注于保護網絡應用程序不受風險的威脅--比如說跨站腳本攻擊或者注入攻擊,而忘記了留意數據庫本身的安全隱患。很明顯,用戶需要有專門的工具和策略來幫助網絡應用程序開發人員保護后臺數據庫的安全性,而數據庫開發人員必須確保他們的網絡接口盡可能地安全。
同時安恒信息專家還指出,現在大多數用戶都是憑感覺在運行數據庫安全。絕大多數用戶根本沒有監控他們的數據庫。更令人不安的是,大多數用戶甚至不知道他們的重要數據的位置,很多管理員在調查中承認他們并不能肯定數據庫中包含著重要信息。
在多數情況下,關鍵點在于網絡應用程序本身對于攻擊者而言沒什么價值,他們只是利用應用程序作為竊取或破壞數據的一種手段,第一個防范措施便是確保不僅僅是數據庫管理員了解重要數據在哪里存放、如何訪問到,以及面臨的實際威脅。我們通常將數據庫看作是一個黑盒子,只向需要的人和應用程序提供訪問的方法,當選取、更新或者插入操作成功后,人們會忘記還有一些事情會發生,所以說團隊合作是關鍵,必須要把應用安全和數據安全做到兩位一體。
我們所面臨的網絡威脅
數據庫除了有與生俱來的安全隱患以外,當應用程序訪問數據庫時,還要考慮到更多的威脅。數據庫打補丁、權限管理和連接管理都是典型的數據庫安全防范措施,常見的由網絡應用程序引發的安全威脅有SQL注入式攻擊,XSS跨站攻擊、不安全的會話處理和權限升級、目錄遍歷漏洞和敏感信息泄露等漏洞。我們會深入挖掘每一種模型,但是考慮到這些風險的存在,我們最重要的是盡可能少的給予特權,通過監控輸入數據和建立安全連接來加強讀取方式的安全性,同時還要限制數據庫服務器對外暴露的機率。SQL注入、跨站腳本漏洞、目錄遍歷漏洞、敏感信息泄露等漏洞。
我們需要共同協作
安全問題不是某個個人的職責,關鍵需要團隊的協作。這對于應用程序的安全問題來說更是如此,信息安全人員、開發人員、系統和數據庫管理員都包括在內,這就是團隊協作。除非你所在的單位已經擁有了一個成熟的安全環境,而且已經使用安全類庫來處理數據庫調用和數據驗證,在數據庫和應用程序之間有一層數據訪問層,并確保所有的數據庫權限都受到了嚴格的限制,在這種情況下應當讓所有團隊成員參與并且了解高層次的應用程序。通過共同協作,所有人都可以了解到這些安全威脅,隨后可以共同想出更好的解決方案來應對。所有參與網絡應用和數據庫開發維護管理的人員都應該對目前存在的安全威脅有一個充分的認識和理解,這是非常重要的。我們必須要確保所有人員都理解應用程序的所有技術通信原理和數據流,了解數據從哪里來,如何到那里去的,以及數據是否和多個應用程序進行通信。這就是關于數據庫保護的第一層措施。
數據庫保護的第二層措施是安全架構。安全設計的基礎有時候也被稱作為安全架構,也就是說當我們以安全的方式設計數據庫環境時,應減少安全威脅。如果攻擊者無法直接訪問數據庫,這樣就降低了他們攻擊的靈活性。我們為攻擊者提供的活動空間越大,他們就越容易得手。同樣的,從相反的角度來看,我們就需要在后續做更多的工作,也就是說你必須確保對數據庫的訪問僅限于在需要的情況下進行系統訪問,而且所有的訪問都經過認證和加密的,而且不能影響到會話池。保證網絡和系統設計的安全將會對保護數據庫大有幫助,添加了數據庫訪問路徑的限制能夠大大地降低風險。
數據庫保護的第三層措施是威脅建模。確定威脅的過程被稱為是威脅建模,過去威脅建模是用在應用程序安全方面,用于確定應用程序的最高風險,這樣安全人員就可以重點關注在這一領域。這個概念開始延用到安全的其它領域中。應注意的是這不是一個新的理念,實際上保險行業已經采用此理念有數百年的歷史了,我們互聯網行業只是最近幾年才吸納這一理念,并開始就此主題發表了許多文章。
威脅建模包括將那些了解此應用程序的人以及相關領域的專家召集在一起,大家共同理解應用程序的不同部分、功能性和固有的威脅。花一定的時間來全面理解此應用程序以及相關的威脅,可以定制出相對應的保護和測試方案,可以節省時間或者在有限的時間和預算范圍內最大程度地降低威脅。威脅建模對于安全人員來說可以提供一種很好的手段來掌握全局、分解風險區域并與各小組單獨協作,確保保護措施落到實處。
在對多個應用程序或開發項目進行威脅建模時,應作好記錄,找到應用程序的共通性。這些共通性可以用于審查內部數據庫訪問標準、授權訪問以及優化訪問過程。
在編寫策略時應當涵蓋常見情況,并且明確地為開發人員和數據庫管理人員提供指導,確保人人手中都有一份參考資料。一旦這些步驟執行到位后,可以開始從基礎做起向數據庫環境添加安全措施。
雖然各個系統環境都不相同,但是數據庫配置對于保護數據是最為重要的部分之一,應當實現的常見配置有:
責任編輯:黎陽錦
-
發電電力輔助服務營銷決策模型
2019-06-24電力輔助服務營銷 -
繞過安卓SSL驗證證書的四種方式
-
網絡何以可能
2017-02-24網絡