最近在做代码安全加固相关的工作,在这里顺便做一个总结

1、系统安全设计

1.1 数据流模型建模

数据流图简介:软件功能模型-数据流图 - 简书

绘图工具(亿图蛮好用它):亿图图示设计软件 - 亿图图示

1.2 STRIDE威胁建模

威胁建模是一个非常有用的工具,它的核心是“像攻击者一样思考”。威胁建模可以在产品设计阶段、架构评审阶段或者产品运行时开展,强迫我们站在攻击者的角度去评估产品的安全性,分析产品中每个组件是否可能被篡改、仿冒,是否可能会造成信息泄露、拒绝攻击。威胁建模的作用更偏向于确保产品架构、功能设计的安全,无法保证编码的安全,但是输出的威胁建模报告中包含了全面的安全需求,这些安全需求不仅包括大的方案设计,如要认证、鉴权、审计,也可以包括安全细节的实现,比如具体的认证方式、密码使用哪种安全算法存储,使用什么方法生成安全随机数等。所以,威胁建模虽不能保证编码的安全,但可以指导研发人员编写出安全的代码,同时也可以辅助渗透测试人员开展安全测试。

STRIDE是微软开发的用于威胁建模的方法和工具。

STRIDE威胁建模的总体流程:

六类威胁:

STRIDE是从攻击者的角度,把威胁划分成6个类别,分别是Spooling(仿冒)、Tampering(篡改)、Repudiation(抵赖)、InformationDisclosure(信息泄露)、Dos(拒绝服务)和Elevation of privilege (权限提升)。

什么划分这6类,这与信息安全三要素和信息安全基本的三个属性相关。

信息安全三要素

信息安全三属性

保密性

认证

完整性

鉴权

可用性

审计

表:六类威胁与信息安全三要素、三属性的对应关系

威胁

安全属性

定义

举例

仿冒(S)

认证

冒充人或物

冒充其他用户账号

篡改(T)

完整性

修改数据或代码

修改订单信息

抵赖(R)

审计

不承认做过某行为

不承认修改行为

信息泄露(I)

保密性

信息被泄露或窃取

用户信息被泄露

拒绝服务(D)

可用性

消耗资源、服务可不用

DDOS导致网站不可用

权限提升(E)

授权

未经授权获取、提升权限

普通用户提升到管理员

随着全球对隐私保护重视程度的加大,隐私安全也成了产品的一个重要威胁,因此STRIDE的6个威胁也添加了一项隐私(Privacy),也就变成了ASTRIDE,A代表Advanced。

具体参考此文:STRIDE威胁建模_dl71181的博客-CSDN博客

2、应用安全

1、web与系统漏洞扫描:

漏洞扫描是指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测(渗透攻击)行为。

 常见web安全漏洞总结以及防范措施:

https://blog.csdn.net/chenlijian/article/details/115006677?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control

常用进行渗透测试以及漏洞扫描扫描的工具:

一、Web漏洞扫描-AppScan

IBM Security AppScan是一个适合安全专家的Web应用程序和Web服务渗透测试解决方案。
国外商业漏扫产品中,少有的能支持中文的漏扫,运行于Windows平台;
界面清晰、配置简单丰富的中文和产品文档,详细的漏洞说明和修复建议;
支持丰富的扫描报告,包括安全性、行业标准、合规一次性报告。

缺点:扫描速度一般; 在国内漏洞方面(cms)的扫描能力不如国内安全产品; 占用内存大

优点:登录扫描; 准确率最高; 漏洞规则库最全面(在通用漏洞方面(SQL注入 XSS等)功能强大)

二、fortify 静态代码扫描工具

fottify全名叫:Fortify SCA ,是HP的产品 ,是一个静态的、白盒的软件源代码安全测试工具。它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态的分析,分析的过程中与它特有的软件安全漏洞规则集进行全面地匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并给予整理报告。

三、源代码静态分析与安全测试工具(Coverity)

Coverity静态分析软件是最新一代的源代码静态分析工具,技术源自于斯坦福大学,能够快速检测并定位源代码中可能导致产品崩溃、未知行为、安全缺口或者灾难性故障的软件缺陷。Coverity包含900多种质量和安全检测规则,曾协助找到多个0Day漏洞,包括Struts2的远程注入S032,S029,Roller远程攻击,心脏出血漏洞等问题。

Coverity误报率极低,因此研发团队非常愿意接受Coverity的分析结果,缺陷的修复率很高。Coverity具有缺陷分析种类多、分析精度高和误报率低的特点。

四、Web漏洞扫描-awvs

  漏洞扫描速度较快,准确率较高,漏洞规则库较为全面。漏洞验证可查看请求响应代码,但无中文界面。报表功能完整。有多重漏洞的验证工具。

五:主机扫描-nmap

  主要用于端口扫描和主机发现,不能实现web扫描和系统层扫描。对渗透测试起帮助作用。

3、隐私保护

个人隐私保护分类及保护原则:

1、基本定义

隐私(Privacy):指无论在空间、心理或者信息层面上,其他个人、集团或组织不得接近的一种条件或状态。隐私是一种当事人不愿他人知道的个人信息,当事人不愿他人干涉或他人不便干涉的个人私事,以及当事人不愿他人侵入或他人不便侵入的个人领域或个人空间,如私人生活、身体和道德的完整性、不得披露不相关和令人尴尬的事实等。
个人数据(PersonalData):个人数据也称为个人可识别信息(PersonallyIdentifiable Information),指直接通过该数据或者结合该数据与其他的信息,可以识别出自然人的信息。包括姓名、社会保障号、电话号码和电子邮件地址等[2][8]。
敏感个人数据(SensitivePersonal Data):敏感个人数据是个人数据的一个重要子集,指的是涉及数据主体的最私密领域的信息或者一旦泄露可能会给数据主体造成重大不利影响的数据。欧盟等国家和地区法律定义的敏感个人数据包括种族、政治观点、宗教和哲学信仰、工会成员资格、健康和性生活状况等[8]。根据业界最佳实践,敏感个人数据还包括可与自然人身份相关联的银行卡号、身份证号、护照号、口令等[15][16]。敏感个人数据的处理需要更多更严格的保护措施。
数据控制者(DataController):指单独或者与他人共同确定数据处理目的和方式的法人或其他实体[1]。数据控制者对个人数据的处理具有控制权,并且承担个人数据保护的主要法律责任。
数据处理者(DataProcessor):指按照数据控制者要求进行个人数据处理的法人或其他实体(数据控制者的员工不属于数据处理者)。数据处理者必须按照数据控制者的要求对个人数据进行充分的保护。
2、 隐私保护原则
基于欧盟数据保护指令等法律法规要求,美国联邦贸易委员会以及经济合作发展组织发布的隐私保护指导原则,以及ISO 29100、ISO 29101等国际标准,总结出了xx公司隐私保护的八条基本原则,用于保护用户的个人数据和隐私。
合法性原则数据处理要有合法基础,如数据主体的同意、履行与数据主体之间的合同或执行数据主体所要求的合同所必须、公共利益等。
透明原则需充分告知数据主体处理的数据种类、处理目的、处理方式、存留期限、是否转移至第三方等。
数据主体参与原则数据主体有权访问和修改其个人数据,应当为数据主体提供访问和修改其个人数据的适当方式或渠道。
目的限制性原则:仅能为了具体、明确、合法的目的处理个人数据,不能进行与这些目的不一致的处理。
最小化原则处理的个人数据必须是实现特定目的所相关和必需的,不得超出必要的限度处理个人数据。
准确性原则为实现数据处理的目的,应当保持个人数据的准确性、完整性并及时更新。
安全性原则在个人数据的整个生命周期中,都必须有足够的安全机制,确保个人数据的完整性、保密性和可用性。防止未经授权的访问、销毁、使用、修改和不当披露。

可追溯原则可追溯是指数据相关方(例如数据控制者)有责任采取具体、实际的措施保护个人数据,确保隐私保护可追溯。3、隐私设计基本规则

序号
规则、建议
设备供应者
数据处理者
数据控制者
来源
1
规则:产品或服务必须在客户资料或界面中提供隐私声明
法律、业界最佳实践
2
规则:对于数据控制者,收集个人数据必须要获得数据主体的授权
法律
3
规则:个人数据收集范围、使用目的不得超出隐私声明
法律
4
规则:产品必须在设计文档中列出所收集的个人数据列表,标明个人数据的收集目的及保护措施
5
规则:在B/S系统中,如果提交的数据中包含个人数据,则禁止使用Get方式提交个人数据
业界最佳实践
6
建议:对于数据控制者,如在数据主体系统上运行的应用软件需要连接到互联网,数据控制者须在连接前告知数据主体,并提供获得数据主体同意的机制
业界最佳实践
7
规则:对于数据控制者和设备供应者,在从数据主体系统中传出包含个人数据的错误报告之前,必须提供机制告知数据主体,并获得其同意
法律、业界最佳实践
8
规则:对于数据控制者,若需要将个人数据用于营销、市场调查,数据控制者必须提供机制提前获取数据主体同意并提供随时撤销同意的机制
法律
9
规则:对于数据控制者和设备供应者,除了法律允许的情况以外,在设置或读取在数据主体系统上的Cookie前(如用于营销或广告),应提供获取数据主体同意及撤销的机制
法律
10
规则:产品须对本地存储的个人数据提供适当的安全保护机制,如认证、授权、加密、日志等
法律、标准
11
规则:对于数据控制者,提供数据主体录入个人数据功能时,必须提供查询和更新相应个人数据的机制
法律
12
建议:产品应对银行卡号的查询操作记录日志
标准、业界最佳实践
13
规则:对于数据控制者,将数据主体个人数据提供给第三方前,必须获得数据主体的授权
法律
14
建议:对于数据处理者,出于定位问题目的,如需将个人数据拿出客户网络,应提供对其中包含的个人数据进行过滤或匿名化处理的机制或指导
/
法律
15
规则:对于数据控制者和处理者,必须提供机制或指导来删除或匿名化超过存留期的个人数据
法律、业界最佳实践
16
规则:对于数据控制者,数据主体撤销同意之后,产品必须禁止继续处理其相应个人数据
法律、业界最佳实践
17
规则:对于数据控制者和处理者,如在设备维修、销毁或云资源回收的场景下,必须提供安全删除的机制或指导,设备供应者不强制要求
标准、业界最佳实践

国内的可以参考华为云的隐私保护白皮书:百度安全验证

备注:常见的网络安全扫描和攻击工具:

1、Nmap (网络映射器):用于扫描端口和地图网络 。

2、Metasploit(渗透测试软件,免费与付费): 漏洞利用工具。

3、John The Ripper: 密码破解工具。

4、OWASP Zed :Web漏洞扫描器。

5、Wireshark :Web漏洞扫描器。

6、Aircrack-ng:密码破解工具。

7、Maltego (免费与付费):  数字取证。

8、AWVS  :WEB漏洞扫描。

9、burpsite :抓包工具。

10、sqlmap : sql注入工具。

【安全系类之设计】应用安全相关相关推荐

  1. 一文讲透非标品的商品类目设计

    www.pmcaff.com 本文为作者 百转 于社区发布 只要做电商,商品类目设计就是绕不开的一环.好的类目设计能让供需双方更快.更好定义或找到所关心的商品,是整个电商体系的地基,是构建并链接各个模 ...

  2. 【muduo源码分析】Buffer类的设计

    目录 1.muduo的IO模型 2.为什么 non-blocking 网络编程中应用层 buffer 是必须的? 2.1 TcpConnection 必须要有 output buffer 2.2 Tc ...

  3. 越疆dobot机械臂_Dobot机械臂魔术师系类

    Dobot机械臂魔术师系类 简介 资料下载:http://cn.dobot.cc/download-center/dobot-magician.html DoBot 机械臂家族的新成员已经来临!小巧的 ...

  4. 从零开始系类——电气控制与PLC技术

    实话实说,笔者并不是熟悉PLC技术,在此分享一本电气控制与PLC技术的PDF书籍.PLC的好处就是开发时间短,对比嵌入式电子开发是相对不灵活的. 百度百科的介绍:可编程逻辑控制器是种专门为在工业环境下 ...

  5. csdn最牛“首发”性能测试系类文章---jmeter性能测试从理论基础到项目搭建【3-1】

    [性能测试系类文章大纲] 最近看很多小伙伴问我凡叔什么时候出性能测试系类呢,这不就来了嘛,连续肝了几天终于是赶出来了,这段时间公司有点忙,所以可能更新的速度没用那么快哦,不过也不会慢到哪里去,, 好了 ...

  6. 转:软件设计漫谈之三:30分钟掌握面向对象类的设计原则

    转自:http://blog.csdn.net/yunhua_lee/article/details/5105524 30分钟掌握面向对象类的设计原则 看过设计模式的人不少,但看过Martin的面向对 ...

  7. VS 2010 通过 Architecture创建UML类图设计

    [赛迪网报道]类是对应用领域或应用解决方案中概念的描述.类图以类为中心进行组织,类图中的其他元素或属于某个类,或与类相关联.类也是对象的集合,展示了对象的结构及与系统交互的行为,其目的是显示建模系统的 ...

  8. java 重启线程_java 可重启线程及线程池类的设计(详解)

    了解JAVA多线程编程的人都知道,要产生一个线程有两种方法,一是类直接继承Thread类并实现其run()方法:二是类实现Runnable接口并实现其run()方法,然后新建一个以该类为构造方法参数的 ...

  9. Java黑皮书课后题第10章:*10.10(Queue类)10.6节给出一个Stock类。设计一个名为Queue的类用于存储整数。像栈一样,队列保存元素。在栈中,元素后进先出。队列中元素先进先出

    10.10(Queue类)10.6节给出一个Stock类,设计一个名为Queue的类用于存储整数 题目 程序 破题 代码 Test10.java Test10_Queue.java UML 题目 程序 ...

最新文章

  1. excel 等额本息还款每期本息计算_零基础入门融资租赁计算(第三讲)——设计租金方案...
  2. windows powershell
  3. the Determine in June
  4. Sklearn 损失函数如何应用到_Sklearn库主要模块功能简介
  5. JavaBean fields TO ExtjsMode fields
  6. Jenkins 随笔
  7. thinkphp的快捷方法实例化对象
  8. 7-5 删除字符串中的子串 (20 分)
  9. 项目部署:服务器IIS发布后本地浏览没有问题,外网访问显示无法访问
  10. 批量删除多个word文档中的页眉页脚
  11. python中的异常、模块、文件
  12. JAVA工具类-根据身份证进行性别和年龄计算
  13. html模态框插件,如何使用JavaScript构建模态框插件
  14. access字段相加_access如何对一行的几列求和
  15. 后台监控服务器信息,服务器后台聊天监控
  16. MIMIC-ivSQL查询策略-总结篇
  17. 为啥现在还有人相信5G辐射危害健康?
  18. LeetCode1710——卡车上的最大单元数
  19. MySQL DBA的必备参考,两位数据库资深专家呕心沥血之作
  20. Android问题:java.io.FileNotFoundException: /storage/emulated/0/DCIM/Camera/IMG.jpg: open failed:

热门文章

  1. 原生js路由跳转方法_今日艰难笔记原生js整合reactrouter路由管理
  2. python中xlwt的局限,Python xlwt 生成Excel和设置特定单元格不可编辑
  3. python typeerror console未定义,Python ctypes加载错误:未定义的符号
  4. 脑子笨的人可以学计算机吗,脑子笨的人有什么特征 反应慢的人其实很聪明
  5. 手动制作linux live,Linux下Live USB如何制作
  6. abort has been called翻译_2020年12月大学英语四级翻译练习题:股票投资_四级
  7. 中科院开源协会镜像站 Android SDK镜像测试发布
  8. style 放入css文件失效_React中使用CSS的7种方式
  9. 那年大一在图书馆作死的大学高数笔记 | 导数和微分
  10. 机器学习这四个东西,你知道吗?