`
jgnan
  • 浏览: 87490 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

安全需求学习笔记(一)

阅读更多
最近由于要编写关于应用安全需求方面的规范文档需要学习关于安全需求的知识,看到一篇文章挺好用的说,特意写下学习笔记。

原文链接:http://www.uibk.ac.at/linuxdoc/LDP/HOWTO/Secure-Programs-HOWTO/requirements.html

里面介绍到Common Criteria标准(简称CC),它包括三个部分:CC的介绍(Introduction),安全功能需求(Security Functional Requirement)和安全保障需求(Security Assurance Requirement)。另外有一份"Common Evaluation Methodology" (CEM)文档用于指导大家怎样按照CC去评估软件的安全需求。

由于CC作为ISO/IEC 15408:1999国际标准,要实施它是非常昂贵的。因此ISO的标准往往不如W3C,IETF所倡导的免费标准受欢迎。而且由于ISO收费都据为己有,而没有回馈给为他们编写标准的志愿者们。所以CC的编写者们预见到这种情况,特意地编写了另外一个版本:[url]http://csrc.nist.gov/cc/ccv20/ccv2list.htm [/url],这个版本是免费的,因此尽管它并不是ISO标准,但是却广为使用,而免除我们实施ISO的高昂费用。

CC通常用于创建两类文档,"保护概述(Protection Profile)" (PP) 或者是"安全目标(Security Target)" (ST)。

一个PP文档通常是由用户群组定义出来的产品所需的安全属性。基本上,PP是一个由用户按照CC特定要求定义出来的安全需求列表。因此假如你想要构建某类产品,你可能可以找到一个或多个该类产品的PP文件,用于描述其它用户对该类产品的安全需求(例如,一个操作系统或者防火墙)。

一个ST文档描述一个产品于安全相关的具体行为,或者其行为的一个子集。一个ST文档不需要特意去满足任何一个PP文档的要求,但是它可以同时满足一个或者更多的PP文档要求。

PP和ST都可以用于进行正规的安全需求评估。

一个基于PP的评估只需要保证PP符合各类文档描述的规则以及明智的检查。

一个基于ST的评估会使用ST文档去校对一个特定的产品(也叫"评估目标(Target Of Evaluation)"(TOE))的行为是否和ST文档描述的情况一样,检查TOE是否满足ST所要求的安全功能需求。顾客可以根据所需拿ST的评估结果和PP所描述的安全特性进行比较。通过这种对比,消费者可以知道产品是否满足其所需——假如不满足,也能知道其限制在何处。

为了制定一份PP或ST,你需要进行一个定义安全环境的流程,即你的假设,面临的威胁,以及组织相关的政策文档(如果有的话)。通过安全环境的定义,可以派生出产品以及该类产品的安全目标。最后,挑选能够符合目标的安全需求。

安全需求分为两类:功能需求(产品必须能做什么)和保障需求(通过度量确保满足安全目标)。实际上定义PP和ST往往并不如这里所说的那么简单,但是最终的结果必须能够罗列出一种清晰的关系以确保没有任何关键目标被轻易忽视了。即使你并不打算写一份PP或者ST,CC的一些意见仍然对你有帮助;定义出安全环境,安全目标及安全需求的过程对于你定义出产品的什么特性是重要的仍然有很大的帮助。

CC的最主要目标是为了制定出正规的功能需求和保障需求。大体上来说,大部分的CC就像是一个安全需求的"chinese menu(中文菜单?)"一样供任何可能需要的人选择。PP的作者们会从各种选项中挑选出他们所需的,而ST的作者们会从CC中挑选出他们会提供的。

由于会有很多人很难定义出一组合理的保障需求,因此一批预定义的保障需求,名为"评估保障等级(Evaluate Assurance Levels)"(EAL),被定义在CC里面,以供有1到7个等级。EAL2是对EAL2所定义的一套保障需求的简述。产品可以自己定义额外的保障度量,例如,它们可以把EAL2和其它的保障需求加在一起(假如这时这组需求无法到达更高的等级,我们叫这个等级为EAL2+(EAL2 plus))。现在已经有很多国家签署了公共声明承认有资格的实验室去进行EAL4或者更低等级的评估结果。

假如你要写ST或者PP,有一个开源软件可以帮助你,叫做CC Toolbox"。它可以保证需求之间的依赖关系是否得当,提供通用的需求,并且帮助你快速完成一份文档,但是显然它不能帮你去完成你对所需要的安全需求的思考。对于PP和ST具体所需要包括的内容,在CC文档的附录B和C中分别有描述。

假如你决定要让认证实验室为你进行评估,那你要准备好花钱,花费时间,并且要按照流程走。另外,评估要求你花钱让认证实验室为你评估,评估的等级越高花的钱越多。单纯相信你的产品足够安全是不足够的;评估员还要找证据去支持各种宣称的目标。因此,评估需要有文档,而且所需的文档必须符合或者改进到符合CC的要求(尤其是对于高等级的评估)。每一个要求都必须要证明是符合于某些等级的,因此要求越多越强壮,而设计越复杂,评估费用越高。显然,假如发现缺陷,它们通常都要被修正。必须注意我们是要给钱给一个实验室让它帮我们去评估一个产品并且验证其真实性。假如一个产品不能符合其要求,那你基本上只有两个选择:要么修复它,要么修改(降低)要求。

在进行一次正规的ST评估之前跟你的客户讨论他们想要些什么是非常重要的;一个包含了功能需求和保障需求但是并不符合客人需求的评估将是物非所值的,而且一个疏忽了必要需求的ST也可能不被顾客所接受(因为必要的部分将不被进行评估)。PP文档叙述了这些需求,但是要确保PP反映的是顾客的真实需求(也许顾客只需要PP中的一部分功能或保障需求,或者他们脑中有一个完全不一样的安全环境,或者在想你的产品可能会在其它的情况可以被用到)。值得注意的是ST不需要让产品满足每一个安全特性;一份ST只会描述什么将会被(或者已被)评估。一个拥有较高EAL等级的产品不需要比一个有较低EAL等级甚至没有等级的产品更加安全;假如安全环境不一样的话,可能可以通过不去评估一个有较高等级的产品,或者省略一些重要的评估目标等方式来节省时间和金钱上面的开销。评估并不等同于证据,它只是利用定义好的最低门槛来获得对需求或产品的信任。
分享到:
评论

相关推荐

    《智慧城市安全需求与框架》学习笔记(一).pptx

    对2020年5月新颁布的《智慧城市安全需求与框架》进行学习整理,并整理为学习笔记PPT供大家一起交流、学习。

    CISSP学习笔记 CISSP关键知识点总结汇总.zip

    CISSP学习笔记、CISSP关键知识点总结汇总,以网上搜集到的CISSP学习资料为基础,补充修改了关键内容,不保证正确。 第一章 通过原则和策略的安全治理 第二章 人员安全和风险管理概念 第三章 业务连续性计划 第四章 ...

    JSP网络编程学习笔记源代码 part2

    从14章到最后的源代码资源 part1 为1到14章; part2 为剩下的源代码;...第七篇为“Web应用开发实例”,围绕一个电子商务网站,从需求分析、架构选取、数据存储、开发、测试及部署等过程中阐述Web开发的步骤实例讲解。

    net学习笔记及其他代码应用

    1. 简述 private、 protected、 public、 internal 修饰符的访问权限。 答 . private : 私有成员, 在类的内部才可以访问。...47.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可...

    c#学习笔记.txt

    c#学习笔记(1) 51099在线学习网发布 文章来源:网络收集 发布时间:2006-05-25 字体: [大 中 小] 51099在线学习网 http://www.51099.com 1, 结构(struct) 与 类(class) [attributes] [modifiers] struct ...

    数据库学习笔记1

    标题:数据库安全来源:编辑日期:2020.06.08目录:正文:第一章 数据库整体架构与安全需求1.1 问题模型用户最终用户:通过应用程序与数据库交互应用程序员

    决策树学习笔记.zip

    在机器学习中,决策树是一个预测模型,代表的是对象属性与对象值之间的一种映射关系。 决策树的应用场景非常广泛,包括但不限于以下几个方面: 金融风险评估:决策树可以用于预测客户借款违约概率,帮助银行更好地...

    高级项目经理 学习笔记 核心内容

    21. 信息系统安全和安全体系 69 22. 信息系统安全风险评估 71 23. 安全策略 72 24. 信息安全技术基础 74 25. PKI公开密钥基础设施 77 26. PMI权限(授权)管理基础设施 79 27. 信息安全审计系统S-Audit 81 28. 信息...

    HCIA学习笔记.docx

    HCIA-HNTD认证定位于中小型网络的基本配置和维护,...拥有通过HCIA-HNTD认证的工程师,意味着企业有能力搭建基本的中小型网络,并将基本的语音、无线、云、安全和存储集成到网络之中,满足各种应用对网络的使用需求。

    毕业设计-学习笔记gitbook.zip

    本资源是经过本地编译测试、可打开、可运行的项目、文件或源码,可以用于毕业设计、课程设计的应用、参考和学习需求,请放心下载。 祝愿你在这个毕业设计项目中取得巨大进步,顺利毕业! 但还需强调一下,这些项目...

    linux项目工程资料-Linux内核与设备驱动程序学习笔记.zip

    【此资源可私信博主有偿获取】 Linux项目是一个开放源代码的操作系统项目,由林纳斯·托瓦兹(Linus Torvalds)于1991年首次发布。...这使得Linux成为了一种非常适合用于服务器和安全敏感的应用场景的操作系统。

    毕业设计-V语言学习笔记.zip

    本资源是经过本地编译测试、可打开、可运行的项目、文件或源码,可以用于毕业设计、课程设计的应用、参考和学习需求,请放心下载。 祝愿你在这个毕业设计项目中取得巨大进步,顺利毕业! 但还需强调一下,这些项目...

    毕业设计-计算机科学导论学习笔记.zip

    本资源是经过本地编译测试、可打开、可运行的项目、文件或源码,可以用于毕业设计、课程设计的应用、参考和学习需求,请放心下载。 祝愿你在这个毕业设计项目中取得巨大进步,顺利毕业! 但还需强调一下,这些项目...

    Java并发编程(学习笔记).xmind

    框架通过在框架线程中调用应用程序代码将并发性引入应用程序,因此对线程安全的需求在整个应用程序中都需要考虑 基础知识 线程安全性 定义 当多个线程访问某个类时,这个类始终能表现出正确的行为,...

    信息系统项目管理师学习笔记(唐斌).zip

    管理系统是一种通过计算机技术实现的用于组织、监控和控制各种活动的软件系统。这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: 学校管理系统: ...

    毕业设计-Linux CC 学习笔记内含视频 电子书 项目等专注于 C 技术栈.zip

    本资源是经过本地编译测试、可打开、可运行的项目、文件或源码,可以用于毕业设计、课程设计的应用、参考和学习需求,请放心下载。 祝愿你在这个毕业设计项目中取得巨大进步,顺利毕业! 但还需强调一下,这些项目...

    5G安全阅读笔记思维导图.png

    学习《5G移动通信系统的安全研究》一文,整理的读书笔记。方便需要时进行关键点查询,无迫切需要,不建议读者下载。

    learningpython中文第四版的学习笔记,由纸值文档转换而来.zip

    本资源是经过本地编译测试、可打开、可运行的资源或源码,可以用于毕业设计、课程设计的应用、参考和学习需求,请放心下载。 祝愿你在这个毕业设计项目中取得巨大进步,顺利毕业! 但强调一下,这些项目源码仅供学习...

    AspNetCore学习笔记(WebApi篇),图书馆管理系统.zip

    管理系统是一种通过计算机技术实现的用于组织、监控和控制各种活动的软件系统。这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: 学校管理系统: ...

Global site tag (gtag.js) - Google Analytics