Fortify Audit Workbench 筆記 Privacy Violation 隱私泄露


Privacy Violation 隱私泄露

Abstract

對各種機密信息處理不當,如客戶密碼或社會保障號碼,會危及到用戶的個人隱私,這是一種非法行為。

Explanation

Privacy Violation 會在以下情況下發生:

  1. 用戶私人信息進入了程序。
  2. 數據被寫到了一個外部介質,例如控制台、 file system 或網絡。
    例: 以下代碼包含了一個日志指令,該日志指令通過在日志文件中儲存記錄信息的方式跟蹤添加到數據庫中的各條記錄信息。 在儲存的其他數值中, getPassword() 函數可以返回一個與用戶帳號相關且由用戶提供的明文密碼。
pass = getPassword();
...
dbmsLog.println(id+":"+pass+":"+type+":"+tstamp);

在上面例子中,代碼采用日志的形式將明文密碼記錄到了 file system 中。 雖然許多開發人員認為 file system是存儲數據的安全場所,但是不應對其予以絕對的信任,特別是在涉及到隱私問題時。 可以通過多種方式將私人數據輸入到程序中:
— 以密碼或個人信息的形式直接從用戶處獲取
— 由應用程序訪問數據庫或者其他數據存儲形式
— 間接地從合作者或者第三方處獲取
有時,某些數據並沒有貼上私人數據標簽,但在特定的上下文中也有可能成為私人信息。 比如,通常認為學生的學號不是私人信息,因為學號中並沒有明確而公開的信息用以定位特定學生的個人信息。 但是,如果學校用學生的社會保障號碼生成學號,那么這時學號應被視為私人信息。 安全和隱私似乎一直是一對矛盾。 從安全的角度看,您應該記錄所有重要的操作,以便日后可以鑒定那些非法的操作。 然而,當其中牽涉到私人數據時,這種做法事實上就存在一定風險了。 雖然不安全地處理私人數據有多種形式,但是常見的風險來自於盲目的信任。 程序員通常會信任程序運行的操作系統,因此認為將私人信息存放在 file system、注冊表或者獲得局部控制的資源中是值得信任的。 盡管已經限制了某些資源的訪問權限,但仍無法保證所有訪問這些資源的個體都是值得信任的。 例如, 2004 年,一個不道德
的 AOL 員工把大約 9200 萬個客戶的私人電子郵件地址賣給了一個通過垃圾郵件進行營銷的賭博網站[1]。
鑒於此類備受矚目的信息盜取事件,私人信息的收集與管理正日益規范化。 要求各個組織應根據其經營地點、所從事的業務類型及其處理的私人數據性質,遵守下列一個或若干個聯邦和州的規定: - Safe Harbor Privacy Framework [3]

  • Gramm-Leach Bliley Act (GLBA) [4]
  • Health Insurance Portability and Accountability Act (HIPAA) [5]
  • California SB-1386 [6]
    盡管制定了這些規范, Privacy Violation 的情況仍時有發生。

Recommendation

當安全和隱私的需要發生矛盾時,通常應優先考慮隱私的需要。 為滿足這一要求,同時又保證信息安全的需要, 應在退出程序前清除所有私人信息。 為加強隱私信息的管理,應不斷改進保護內部隱私的原則,並嚴格地加以執行。 這一原則應具體說明應用程序應該如何處理各種私人數據。 在貴組織受到聯邦或者州法律的制約時,應確保您的隱私保護原則盡量與這些法律法規保持一致。 即使沒有針對貴組織的相應法規,您也應當保護好客戶的私人信息,以免失去客戶的信任。 保護私人數據的最好做法就是最大程度地減少私人數據的暴露。 不應允許應用程序、流程處理以及員工訪問任何私人數據,除非是出於職責以內的工作需要。 正如最小授權原則一樣,不應該授予訪問者超出其需求的權限,訪問私人數據的權限應嚴格限制在盡可能小的范圍內。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM