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