OWASP Top 10(2013) 第三篇 之 A6 – 敏感信息泄露

lrg30067 8年前發布 | 27K 次閱讀 OWASP 加密解密 SSL協議 安全相關

A6 - 敏感信息泄露

Web應用程序一般是搭載在Web服務器,使用Web瀏覽器通過Internet可以進行遠程訪問,訪問過程中的數據跨越信任邊界,一旦保護不當就會被竊取,特別是敏感數據一旦被攻擊者獲取,就可以利用他們進行網絡詐騙,身份仿冒,獲取他人財富,或進行其他損害操作,對個人或企業用戶帶來不可估量的損失,因此在Web應用程序開發過程中,對敏感數據的保護顯得尤其重要。

近年來因數據保護不當造成泄密的案例層出不群,如CSDN后臺數據庫被竊取,更不可思議的是該網站的用戶密碼竟然是明文存儲的,某郵箱也發生過類似案例,大批用戶信息泄露,更為可怕的是,很多人很多平臺的用戶名和密碼是一致的,對攻擊者來說獲取CDSN或郵箱賬戶就等于獲取了支付寶等平臺的信息,那么對萬千用戶來說,個人財產就存在了風險。

因此我們在設計和開發軟件的時候,要識別出敏感數據,并對敏感數據進行安全的保管和傳輸,下面就詳細說說什么是敏感數據,如何進行敏感數據保護。

敏感數據,在我看來,有如下幾個方面:

1、個人信息,如姓名,身份證ID,電話號碼,銀行賬戶,駕駛證號碼,社保卡號,護照號碼等都是敏感數據;

2、網站登錄的用戶名、密碼,SSL證書,會話ID,加密使用的密鑰等都屬于敏感信息,這些信息一旦泄露,攻擊者就可以以合法用戶的身份訪問Web系統,隨意進行各種攻擊操作;

3、Web服務器的OS類型,版本信息,Web容器的名稱,版本號,數據庫類型,版本號,應用軟件使用開源軟件信息都屬于敏感信息,因為攻擊者知道這些軟件信息,就會利用這些軟件存在的公開漏洞進行專門攻擊,提升了系統被攻破的可能性。

那么,我們如何保護敏感信息呢?我覺得應該至少做到如下幾點:

1、針對個人數據,必須加密存儲,且要使用安全的加密算法,具體可以這么區分,針對本地存儲且需要密文明文轉換的使用AES128及以上的安全加密算法,對于使用于認證場景的不需要可逆的可以采用SHA256及以上的安全HASH算法,如PBKDF2等,需要加鹽值(采用安全隨機數,防止彩虹表攻擊),而對于夸信任網絡傳輸的敏感數據,需要使用非對稱加密算法,公鑰加密,私鑰解密,如RSA2048及以上算法,特別強調,常見的MD5、DES,SHA1,甚至不能算假面的BSAE64位編碼都是不安全的做法,針對加解密這塊,大家看不明白也沒關系,后續做專題來講解吧,到時候會附上Java的實現。

2、針對敏感數據傳輸,需要采用SSL加密通道,每一個請求都應該使用SSL加密通道,因為每個請求里面都帶有會話ID,會話ID就是敏感信息,所以并不是只有涉及認證的請求才存在敏感數據,針對SSL通道,需要使用安全的TSL版本如TSL1.1和TSL1.2,其余SSL版本和TSL1.0已經被證明是不安全的。同時要使用安全的加密套件,也就是說SSL協商過程中協商的通道加密算法也要是安全的,否則加密數據還是可以被輕易破解,具體配置是在Web容器里面的,大家可以百度輕易獲取,后續針對Web容器加固方面也會進行說明。

3、應用程序運行出錯容易造成敏感信息的泄露,如有的網站的程序堆棧信息直接顯示在頁面上,暴露Web容器的名稱和版本信息,這些都是不安全的做法,解決方法就是定制統一出錯頁面,杜絕顯示此類敏感信息到Web客戶端。

4、敏感信息禁止明文傳遞到Web客戶端,能不傳遞就不要傳遞,禁止將敏感信息打印到堆棧或者日志中,禁止明文存儲在文件或數據庫中,同時保存敏感信息的文件要嚴格控制訪問權限。

好吧,就說這些吧,歡迎大家拍磚~

來自: http://www.yunweipai.com/archives/6588.html

 本文由用戶 lrg30067 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!