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

当安全和隐私的需要发生矛盾时,通常应优先考虑隐私的需要。 为满足这一要求,同时又保证信息安全的需要, 应在退出程序前清除所有私人信息。 为加强隐私信息的管理,应不断改进保护内部隐私的原则,并严格地加以执行。 这一原则应具体说明应用程序应该如何处理各种私人数据。 在贵组织受到联邦或者州法律的制约时,应确保您的隐私保护原则尽量与这些法律法规保持一致。 即使没有针对贵组织的相应法规,您也应当保护好客户的私人信息,以免失去客户的信任。 保护私人数据的最好做法就是最大程度地减少私人数据的暴露。 不应允许应用程序、流程处理以及员工访问任何私人数据,除非是出于职责以内的工作需要。 正如最小授权原则一样,不应该授予访问者超出其需求的权限,访问私人数据的权限应严格限制在尽可能小的范围内。

Fortify Audit Workbench 笔记 Privacy Violation 隐私泄露的更多相关文章

  1. Fortify Audit Workbench 笔记 Privacy Violation: Heap Inspection 隐私泄露(堆检查)

    Privacy Violation: Heap Inspection 隐私泄露(堆检查) Abstract 将敏感数据存储在 String 对象中使系统无法从内存中可靠地清除数据. Explanati ...

  2. Fortify Audit Workbench 笔记索引

    Password Management: Password in Configuration File(明文存储密码) https://www.cnblogs.com/mahongbiao/p/124 ...

  3. Fortify Audit Workbench 笔记 File Disclosure: Spring 文件泄露(Spring框架)

    File Disclosure: Spring 文件泄露(Spring框架) Abstract 若通过用户输入构造服务器端重定向路径,攻击者便能够下载应用程序二进制码(包括应用程序的类或 jar 文件 ...

  4. Fortify Audit Workbench 笔记 Access Control: Database

    Abstract 如果没有适当的 access control,就会执行一个包含用户控制主键的 SQL 指令,从而允许攻击者访问未经授权的记录. Explanation Database access ...

  5. Fortify Audit Workbench 笔记 Cross-Site Scripting-Persistent

    Cross-Site Scripting: Persistent Abstract 向 Web 浏览器发送非法数据会导致浏览器执行恶意代码. Explanation Cross-Site Script ...

  6. Fortify Audit Workbench 笔记 Unreleased Resource: Database( 未释放资源:数据库)

    Unreleased Resource: Database 未释放资源:数据库 Abstract 程序可能无法成功释放某一项系统资源. Explanation 程序可能无法成功释放某一项系统资源. 资 ...

  7. Fortify Audit Workbench 笔记 Header Manipulation

    Header Manipulation Abstract HTTP 响应头文件中包含未验证的数据会引发 cache-poisoning. cross-site scripting. cross-use ...

  8. Fortify Audit Workbench 笔记 SQL Injection SQL注入

    SQL Injection SQL注入 Abstract 通过不可信来源的输入构建动态 SQL 指令,攻击者就能够修改指令的含义或者执行任意 SQL 命令. Explanation SQL injec ...

  9. Fortify Audit Workbench 笔记 Password Management: Password in Configuration File(明文存储密码)

    Password Management: Password in Configuration File(明文存储密码) Abstract 在配置文件中存储明文密码,可能会危及系统安全. Explana ...

随机推荐

  1. JavaScript基础对象创建模式之单体/单例模式(Singleton)

    首先,单例模式是对象的创建模式之一,此外还包括工厂模式.单例模式的三个特点: 1,该类只有一个实例 2,该类自行创建该实例(在该类内部创建自身的实例对象) 3,向整个系统公开这个实例接口 Java中大 ...

  2. 【Xamarin.Forms 2】App基础知识与App启动

    系列目录 1.[Xamarin.Forms 1]App的创建与运行 引言 本篇文章将介绍Xamarin.Forms中 App 基础知识和 App的启动. 开发环境 Visual Studio 2019 ...

  3. Spring FactoryBean 缓存

    相关文章 Spring 整体架构 编译Spring5.2.0源码 Spring-资源加载 Spring 容器的初始化 Spring-AliasRegistry Spring 获取单例流程(一) Spr ...

  4. HDU3686 Traffic Real Time Query System 题解

    题目 City C is really a nightmare of all drivers for its traffic jams. To solve the traffic problem, t ...

  5. BZOJ2200 道路与航线 题解

    题目 Farmer John正在一个新的销售区域对他的牛奶销售方案进行调查.他想把牛奶送到T个城镇 \((1 <= T <= 25,000)\),编号为\(1T\).这些城镇之间通过\(R ...

  6. 爬虫05 /js加密/js逆向、常用抓包工具、移动端数据爬取

    爬虫05 /js加密/js逆向.常用抓包工具.移动端数据爬取 目录 爬虫05 /js加密/js逆向.常用抓包工具.移动端数据爬取 1. js加密.js逆向:案例1 2. js加密.js逆向:案例2 3 ...

  7. hihoCoder 1114 小Hi小Ho的惊天大作战:扫雷·一 最详细的解题报告

    题目来源:小Hi小Ho的惊天大作战:扫雷·一 解题思路:因为只要确定了第一个是否有地雷就可以推算出后面是否有地雷(要么为0,要么为1,如果不是这两个值就说明这个方案行不通),如果两种可能中有一种成功, ...

  8. How to start MySQL on Linux

    启动MySQL数据库 service mysql start 查看MySQL进程 ps -ef |grep mysql 查看MySQL端口号 cd /etc/init.d/ netstat -atnp ...

  9. SpringMVC中@RequestBody接收前端传来的多个参数

    在使用ajax发送请求时,如果发送的JSON数据是一个类中的不同属性,在Controller方法中使用@RequestBody会直接封装进该类中 例如: 前端部分代码 JavaScript <s ...

  10. Java常用类-Object类

    一.java.lang.Object类 1.Object类是所有Java类的根父类 2.如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类 3.Obj ...