软件安全设计范文(精选12篇)
软件安全设计 第1篇
软件测试质量的高低, 在很大程度上取决于测试设计的好坏。不论测试人员的经验和水平有多高, 软件测试过程执行得如何好, 如果没有通过合适数量和质量的测试用例进行测试, 其最终的软件测试结果质量都是难以保证的。从这个意义上说, 软件测试设计是软件测试最核心和最重要的内容之一。
由于软件测试对象的多样化和测试方法的多样化, 目前软件测试技术已经逐步形成了测试的多分支理论。安全关键软件作为一个独立的分支被研究是近年才开始的。传统的软件测试技术不能完全胜任安全关键软件的测试, 必须研究适合安全关键软件特点的新的测试方法及测试策略。文章依据安全关键软件测试的相关理论, 并结合实际测试经验, 制定一种行之有效的测试设计方法, 为进一步开展测试执行工作奠定基础。
ISO08402 (1994) 中对安全性定义为:将伤害或损坏的风险限制在可接受水平的状态。当软件与硬件相互作用时, 可能导致系统崩溃、或人员的生命危险、或造成不可接受的资源损失时, 就涉及到软件的安全性问题。安全关键软件包括那些能导致危险或控制危险的软件, 还包括所有能够影响那些危险软件的软件。
2 测试设计原则
2.1 基于需求的原则
应按照测试级别的不同要求, 设计测试用例。例如, 单元测试依据详细设计说明, 部件测试依据概要设计说明, 配置项测试依据软件需求规格说明, 系统测试依据用户需求 (系统/子系统设计说明、软件开发任务书等) 。
2.2 基于方法的原则
应明确所采用的测试用例设计方法。为达到不同的测试充分性要求, 应采用相应的测试方法, 如等价类划分、边界值分析、错误推测、因果图、功能图等方法。
2.3 兼顾完整性和效率的原则
测试用例集应兼顾测试的完整性和测试的效率;每个测试用例的内容应完整, 具有可操作性。
2.4 执行的可重复性原则
应保证测试用例执行的可重复性。
3 测试设计基本思路
在软件测试中, 测试结果要受到需求的详细程度、测试条件、软件的性能指标、编程语言以及测试人员素质的影响。因此, 在设计测试用例时考虑的因素要比较全面, 大致可按如下步骤进行:
1) 深入理解软件任务书和需求所规定的功能、性能, 搞清楚软件运行的环境和性能指标要求;
2) 由于实际运行环境可能对被测软件产生不同的影响, 因此, 应事前与软件设计人员进行多次交流, 详细了解软件实际运行时可能出现的情况, 以及软件某些功能设计的出发思想, 了解软件设计的基础, 确立软件测试的侧重点, 使设计出的测试用例更符合实际情况;
3) 要对照软件的概要设计和详细设计认真阅读软件的文本, 了解软件的结构、流程和软件的各功能模块;
4) 根据软件运行的环境要求和现有的条件确定测试设备, 拟定可行的测试计划。依据测试计划对软件的功能进行分解;
5) 针对划分出的每个功能, 采用不同的设计方法确定输入条件, 并根据所使用的设备和需求提出的技术指标, 提出在不同输入条件下会产生的预期输出域值, 规定偏差要求;
6) 对典型故障、时间特性、干扰条件状态和中断安全性等特定的项目进行针对性测试。
4 安全关键软件的测试设计
依据标准和规定的要求, 结合实际测试经验, 确定安全关键软件测试设计应包含的类型及其关系如图1所示。
安全关键软件由于其所处运行环境和所要完成任务的特殊性, 与一般应用软件相比, 还有一些自身特性。下面对安全关键软件的特点进行分析:
1) 安全关键软件具有高可靠性、高安全性要求;
2) 安全关键软件多用于需求所指定的安全关键系统工作, 具有极强的应用领域;
3) 安全关键软件一般运行于专门设计的硬件环境中, 软件中包含了大量的硬件操作信息。可能需要对传感器和执行机构等进行控制, 也可能需要通过各种类型的接口或总线与其他系统进行信息交互;
4) 安全关键软件有时需要对所处环境的变化做出响应, 要求实时地得出计算结果, 不能延迟。也就是说, 安全关键软件的正确性不仅由功能和行为特性决定, 还依赖于时间特性;
5) 安全关键软件担负特殊的任务, 进度要求非要严格。
按照安全关键软件的特点建立的测试设计过程, 如图2所示。
在某型软件的一个关键模块测试中, 选取了功能、性能、接口、人机界面和强度共五个类型, 使用本文的设计方法与通用设计方法结果对比见表1。其中性能、接口和强度测试结果没有变化, 效率提高主要在功能和人机界面测试用例的复用上, 通过比较结果数据, 综合计算工作人时后, 可知使用本文设计方法可以提高效率7.96%。
5 结语
软件测试设计是软件测试中比较重要的一环。只有设计出更多更好的测试用例, 才可以更快更好地发现潜在的错误与失效。安全关键软件的测试设计比普通软件的测试设计更加复杂, 需要测试人员细致耐心的分析研究, 来达到预期。
参考文献
[1]Cem Kaner等著.王峰等译.计算机软件测试 (第二版) [M].北京:机械工业出版社, 2004.
[2]崔天意.软件测试用例设计及复用研究[J].电脑学习, 2010 (3) :104-105.
[3]崔天意.软件测试分析方法研究[J].信息化研究, 2010 (6) :11-13.
软件安全设计 第2篇
软件设计大赛的通知
各学院:
为贯彻落实《江西省中长期教育改革和发展纲要(2010-2020)》精神,探索创新创业型人才培养模式,增强在校大学生对网络安全知识的兴趣,鼓励学生深入学习网络信息安全技术的积极性,提高学生针对网络信息安全的实践能力,吸引、鼓励广大学生踊跃参加课外科技活动,促进高等学校信息安全等专业课程体系、教学内容和方法的改革,共青团江西省委、江西省教育厅决定于今年上半年举办首届江西高校信息安全知识及软件设计大赛。现将《首届江西高校信息安全知识及软件设计大赛工作方案》印发给你们,请各学院认真做好参赛工作。
一、竞赛安排
首届江西高校信息安全知识及软件设计大赛分初赛和决赛两个阶段,各学院通过摸底、选拔等形式,我校最终推荐、选拔 25 名学生参加省级初赛。初赛以信息安全知识竞赛为主,通过互联网在全省各高校同时举行。选拔部分初赛成绩优胜者组成参赛队参加决赛。决赛以网络对抗、网络通关竞赛形式举行。具体时间安排见日程安排表。
二、初赛赛制
1、参赛队员选拔
各高校通过摸底、考试等形式,选拔参加“ 首届江西高校信息安全知识及软件设计大赛 ”初赛学生名单,每所高校选拔出 25 名同学报名参加初赛。
2、参赛报名
各学院按照要求,由我校指定的专人在大赛网站上下载并统一详细填写初
赛报名表,提供所有参赛学生的个人信息、学生证复印件及一寸彩照相片 1 张,发送电子邮件至组委会秘书处。同时报送纸质报名表一份,经校团委审核并加盖公章后统一邮寄至组委会秘书处。
省报名截止时间: 2011 年 4 月 21 日(我校截止时间4 月 18 日)。参赛名单公布于竞赛官方网站并通过电子邮件发出。3、初赛选手名单及参赛账户
省大赛组委会收到参赛学校报名信息后生成每个选手的参赛账户、密码,通过电子邮件发送给各参赛单位。4、初赛内容和形式
主要包括信息安全技术和网络对抗技术等,考题形式包括单选题和多选题。组委会提供竞赛题库、设置考试服务器,通过互联网以在线机考形式进行初赛。
三、决赛赛制、比赛地点:南昌航空大学 2、决赛队伍选拔
大赛组委会根据初赛成绩决定各高校派出参加决赛的队伍数,全省共选拨 24个队参加决赛,同一高校不得超过 2个参赛队。决赛队伍个数的产生由该高校初赛成绩前 6 名选手成绩来决定,即:分别以第1、2、3名成绩总和第4、5、6 名成绩总和排序。
决赛参赛队确定后,大赛组委会将通知各参赛单位。3、参赛队组成与报名
各高校根据获得决赛队伍数,组织初赛优胜奖获得者组成参赛队,每支参赛队不超过 4 人(包括学生组长 1 人,指导老师或带队老师 1 人),指导老师或带队老师负责参赛队伍的指导、管理等工作,不参与决赛期间的
具体竞赛。、决赛规则
决赛题目由大赛组委会指定的技术支持单位负责,决赛评分由大赛组委会组织专家组负责。
决赛形式以网络对抗、网络通关竞赛形式进行,采取包括攻防、对抗、突破内容的实战演练题目,可能涉及到注入、缓冲区溢出、嗅探、跨站、破解、加解密、信息隐藏、脚本编写等常用计算机对抗攻防手段。
决赛期间,参赛队伍可能因大赛任务和题目的要求被禁止连接互联网,参赛队伍可自带资料(包括书籍、电子资料),可自带移动存储工具及笔记本电脑。参赛队伍应按时参加比赛,须在比赛正式开始前 2 小时到达比赛场地进行签到及设备调试准备。
四、奖项设置、初赛设“首届江西高校信息安全知识及软件设计大赛”优胜奖,奖励面控制在总参赛人数的30% 以内。决赛设“ 首届江西高校信息安全知识及软件设计大赛 ”一等奖 1 名、二等奖 3 名、三等奖 6 名。获奖选手可优先获得相关部门的推荐就业机会。另设优秀指导老师奖 10 名,优秀组织奖 10 名。、竞赛颁发统一的获奖证书,对获奖学生及指导教师予以奖励,一、二、三等奖奖金总额为 8 万元人民币,由大赛组委会负责颁奖事宜。
五、其它事项
本参赛工作方案由大赛组委会负责解释。
软件定义安全 第3篇
大数据安全
大数据的出现和应用给信息安全带来了新的挑战,大数据的安全需要用更多的软件定义的方法来实现。单靠之前部署的入侵检测系统(英文缩写为IDS)、入侵防御系统(英文缩写为IPS)、防火墙等设备已不能有效地分析和检测入侵行为,更加不能确切地知道网络是否被高级持续性威胁攻击(英文缩写为APT),大数据时代需要将所有安全设备的数据结合起来,挖掘出我们保护的核心区域的有效参数,并依据相应的参数范围判断整个网络安全的态势。
大数据的网络安全采用Hadoop架构,对大的数据进行分块,采用分布式的处理方法,加快关联日志的反应速度,同时,需要引入机器学习的方法去处理现有的庞大的日志信息,从而及时地发现攻击痕迹并及时阻断入侵,让损失降到最低。
云计算安全
软件设计安全威胁分析与探索 第4篇
综上所述, 在信息安全威胁环境日益严峻的形势下, 抛开安全设计以解决软件开发的安全问题必然遗留很多安全隐患未被发现并修补, 同时也没有将软件安全开发的过程实践融入到软件开发整个生命周期中, 缺失融入业界常用的软件开发成熟度模型的实践, 所以需重点探索安全设计的最佳实践, 旨在减少应用软件的漏洞数量级和严重程度。
1 MVC设计模式概述
应用程序的设计是一个应用程序的蓝图, 它奠定了软件开发的基础, 同时也表示出了应用程序的布局和所需的不同的应用程序组件。它是一种结构, 确定应用程序的执行流程。大多数的应用设计基于MVC的概念。MVC是Xerox PARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式, 是模型 (model) -视图 (view) -控制器 (controller) 的缩写, 是一种软件设计模式, Model (模型) 表示应用程序核心 (比如数据库记录列表) , View (视图) 显示数据 (数据库记录) , Controller (控制器) 处理输入 (写入数据库记录) 。用一种业务逻辑、数据、界面显示分离的方法组织代码, 将业务逻辑聚集到一个部件里面, 在改进和个性化定制界面及用户交互的同时, 不需要重新编写业务逻辑。MVC被独特地用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。典型的MVC如JSP+servlet+javabean的模式。
2 软件安全设计的内容
设计层面的安全缺陷是通常被忽视的概念, 这类缺陷的存在必将导致应用系统处于较高的安全风险水平, 一般很难通过常见的静态和动态的安全检测手段发现, 需要通过深入了解的应用程序架构和布局才能手动挖掘出来。所以在应用程序设计阶段, 需要通过受攻击面分析和威胁建模2个主要手段, 对业务进行数据流层的呈现和分析。受攻击面分析和威胁建模将会分析定位设计过程中的关键领域 (如数据流、代码布局、安全控制、输入输出、配置文件和数据源、组件和服务框架等) , 分析应用程序体系结构中脆弱的区域, 形成安全设计方案, 从而有效降低设计层面安全缺陷的比率。下文将重点分析应用程序设计中易受影响的领域成因及防止措施。
3 软件设计的威胁分析
3.1 业务逻辑调用后门
业务逻辑调用缺陷存在于大多数设计中, 以请求参数或URL确定相关的处理逻辑。在这种情况下, 请求中诸如标识元素等可能成为攻击者操纵的目标, 以获得访问受限制的资源或功能的后果。图1表明, request通过Action类的config.xml文件映射业务逻辑类标识, 并调用执行对应的业务处理逻辑。
在这样的设计中, 安全缺陷可能存在于冗余配置且能够被攻击者访问的配置文件中。如图2所示的配置, 标识出的部分不是应用程序对外提供的有效功能, 但该处出现在应用程序的配置文件中未使用的配置, 事实上已成为应用系统中一个潜在的后门。具体配置如图2所示。结合上述配置, 对应查看“Test Action”代码, 发现有不安全的处理逻辑, 存在execute方法能从系统中删除记录。明显可以恶意攻击者作为一个潜在的后门利用。Test Action类代码如图3所示。
分析业务逻辑调用缺陷产生的原因, 可以在对应的Action class中添加动态方法来区分输入参数, 以识别和调用对应的业务逻辑方法。如图4所示, 指定一个请求参数图中的“event”被用来识别并调用相应的事件处理的业务逻辑/动作类的方法。这样, 用户可以尝试调用不可见的用户的事件的方法, 从而避免了因冗余配置而导致后门漏洞的产生。
本文提出如下安全设计建议: (1) 应删除所有多余的或测试过程中未暴露的业务逻辑配置文件。 (2) 处理业务逻辑的方法之前, 首先应保证必要的授权检查。 (3) 建立用户权限级别与method, class, view的映射关系, 以限制用户的越权访问。 (4) 避免通过用户的输入内容来直接确定Business logic class, Method names, View component。
3.2 模型对象绑定漏洞
在大多数的设计框架中, 模型对象绑定也是常见的一种设计技术。在这里, 请求参数得到直接绑定到相应的business对象的变量。这样的对象绑定意味着, 类的实例变量可以根据请求参数值来自动初始化。如图5所示, 业务逻辑类将业务对象绑定到请求参数。
这样的设计中的缺陷可能存在有不依赖于请求参数业务对象的变量。这种变量可以是一类重要的变量, 如price, max limit, role等, 具有静态值或依赖于服务器端的处理逻辑。从攻击角度看, 攻击者可能尝试在请求中附加额外的参数以绑定业务对象类中非公开的变量值。如果这样的变量绑定逻辑之前初始化, 这种攻击将成功运行。如图6所示, 攻击者发送一个额外的“price”参数的请求绑定未公开的变量在业务对象的业务逻辑, 从而达成攻击的目的。
本文提出如下安全设计建议: (1) business, form, command对象必须具有依赖于用户的输入的实例变量。 (2) 如果存在附加的变量, 一定不能提供类似的业务规则等非重要的功能。 (3) 应用程序必须接受来自用户的唯一期望的输入, 其余必须被拒绝或未被结合。 (4) 如果存在非公开变量的初始化, 一定要在绑定业务逻辑后执行。
3.3 无效的安全控制
安全控制位置的确定是应用程序设计中的一个重要领域。不正确的安全控制域的设置可以使应用系统的安全控制功能无效。大多数的应用设计基于模型—视图—控制器 (MVC) 的概念。中央控制器的作用是监听所有进入的请求并转发到对应的业务处理逻辑进行处理, 并返回用户响应结果的视图。在这样的分层设计中, 当有多个实体参与请求处理, 大多数应用程序开发人员会将安全控制设置在不正确的地方, 如“view”层、用户的认证检查。因为这从一般逻辑上来讲, 限制了用户在“view”层, 用户将无法在应用程序中执行任何操作。但是如果未经view授权的用户发起一个内部的请求, 如在应用程序添加/修改数据, 那么这个操作就会绕过安全控制而被执行 (见图7) 。
如图7所示, 认证检查作用在view层, 无论是controller servlet还是action类都没有做任何的访问控制检查。所以, 对于一个用户的内部操作请求, 会在对应的action类的对象中执行方法, 只是最终经view层检查时, 执行所得的视图被禁止返回给用户而已。
所以, 可以明显看出model层基本处于未受防护的状态 (见图8) 。
3.4 POST-BACK安全控制的缺失
在ASP.NET应用程序中, 大多数应用程序开发人员会通过编码处理POST-BACK的认证检查, 但基本上类似的认证检查作用在ASP.NET的页面而POST-BACK无安全控制。假设攻击者不经认证访问ASP.NET页面, 由于具备认证检查机制, 将返回认证错误的信息;但攻击者尝试直接发送一个内部的POST-BACK请求, 请求将被成功执行 (见图9) 。
本文提出如下安全设计建议: (1) 不要限制用户仅通过视图进行访问。 (2) 所有的验证检查应放置在处理任何业务逻辑或发生POST-BACK前。 (3) 身份验证检查应放置在处理任何请求之前。
3.5 非预期的执行流
执行流是安全设计的一个重要的考虑因素。通常情况下, 执行流必须跟踪错误条件能适当地终止。然而如果处理不当, 可能导致应用程序存在允许不受限制访问的漏洞。如:J2EE中“的send Redirect”的方法。
response.send Redirect (“home.html”) ;
这种方法被用来发送一个用户的重定向响应, 重定向到所需Web组件, 其中“home.html”作为该方法的参数。通常这样的执行流首先是服务器端的servlet或JSP发一个response给浏览器, 浏览器收到这个response后再发一个requeset给服务器, 然后服务器重新发送新的response给浏览器。大部分开发人员会认为JSP/Servlet页面中执行流会在send Redirect调用后终止。但事实上如果一个已认证的session通过“if”条件判断失败, send Redirect用于返回用户一个错误页面, 但如果“if”条件后存在其他代码, 如增加一个银行账户, 那么无论session是否失效或条件不满足的情况都会被继续执行, 这就可能被攻击者利用并实现攻击。
本文提出如下安全设计建议: (1) 使用“return”语句终止执行流, 而不要通过send Redirect。 (2) 应确保所有执行流在错误条件下具备适当的逻辑方式终止。
3.6 依赖用户输入的缺陷
基于用户输入设计缺陷主要是依赖于用户输入来作出对应的业务逻辑处理, 像下拉式菜单或隐藏字段、参数等决定业务逻辑决策。这使得攻击者很容易就获取和改变这类参数而达到攻击的目的。如一个应用系统价格, 最大限制对一般用户隐藏以达成权限控制的目的, 但一般权限的用户可轻易通过请求中附加价格、最大限制等参数以突破安全控制 (见图10) 。
通过http://demo.xxx.com/Web/list User.asp?id=xx, 非授权用户通过遍历ID即可访问所有用户的档案信息。
本文提出如下安全设计建议:不要依赖用户输入决定处理逻辑, 无论是隐藏还是不可编辑的类型。
4结语
本文分析了部分软件设计中常见的设计缺陷, 并提出了对应的安全设计建议。当然软件的安全设计远不止上述所列的内容。在实际项目中, 设计阶段起码需包括设计、架构、配置3个方面去细分检查项, 如设计方面需包括基于mvc分层的代码划分、认证和访问控制机制、数据访问机制、验证和交互等;架构方面需考虑输入输出、数据安全传输等;配置层面需考虑第三方API的安全、公共安全控制文件等, 最终分类形成软件安全设计的检查列表, 作为检查的内容和要求验证应用设计的安全程度。同时, 结合其他安全检测手段, 就能极大地降低应用软件存在的安全隐患, 达成提升应用系统的安全性的目的, 对解决软件开发中存在的现实问题具有较强的实用性。
摘要:今天的互联网经济中, 尤其对于金融、运营商、电子商务等企业, 软件应用不光承载着其核心业务, 同时还生成、处理、存储着各类企业的核心敏感信息:账户信息、隐私、业务数据、金融交易记录等, 一旦软件应用的安全性不足, 不但短期内业务中断、声誉受损, 各种信息资产还将透过地下交易流入地下经济产业链, 从而造成其业务受到持续影响, 给企业造成巨大的财务和信誉风险。针对这一趋势变化, 大多数企业已经着手实施了关于应用安全性改善的措施, 但事实上, 大多数企业基本选择在编码、测试及发布阶段实施相应的安全检测和风险管理措施, 需求、架构安全设计基本处于被忽视的状态, 而设计水平缺陷是很难通过代码审计、安全扫描、渗透测试等静态或动态的检测方式发现的。相关数据表明, 在需求、架构设计阶段进行完善分析和设计, 将比部署后进行修复漏洞的成本降低30倍之多。因此, 必须建立一个强大、安全的系统, 在应用程序开发的早期阶段提高系统的安全设计水平。文章通过详细的基于MVC应用程序的设计缺陷分析, 探索常见设计漏洞形成的原理及安全设计原则, 为应用程序的安全设计提供实践依据。
关键词:架构设计,安全开发,MVC,信息安全
参考文献
[1] (美) 霍华德.软件安全开发生命周期[M].北京:电子工业出版社, 2008.
[2] (美) 亚当·斯塔克.威胁建模:设计和交付更安全的软件[M].北京:机械工业出版社, 2015.
校园安全软件建设 第5篇
1、计划与总结及汇报材料等。
2、领导组织及分工(含节假日领导带班情况安排)。
3、学校安全队伍建设(“一组三队”及三级安全巡查网络)。
4、责任书(学校与相关部门、学校与教师、学校与家长、学校与学生)目标责任书签订
完整。
二、制度建设
1、安全、消防、食品卫生、交通等多种安全制度及安全维护制度健全。(重要制度上墙)
2、各类突发事件的应急处理预案和重大安全事故责任追究制度。
三、安全教育
1、安全教育记录。
2、安全课开设情况(教案、教师、课时、每两周一次)。
3、专题安全教育活动(如安全生产月、防震减灾周、消防周等,开学后和放假前以及节假日等集中开展的专题教育活动)资料详实齐全
四、安全知识培训
1、教师安全培训资料(方案、培训登记表、试卷成绩、总结、培训合格证等)
2、安全认证资料(安全审查合格证、电工、司炉证等)
五、各种应急演练开展情况
①消防②防震③紧急疏散④防拥挤踩踏
六、安全隐患排查整治情况
1、安全月报表及各项检查表
2、整治通知书及回执报告
3、上级安排的各类安全隐患排查整治专项行动(包括节假日等隐患排查情况)
4、学校定期开展的安全隐患排查治理活动(计划、方案、时间、整治方案、总结和相关记录)、安全排查报告及安全台账
5、消防安全相关资料
6、防汛相关资料
七、平安建设工作
1、治安室、门卫、安保基本情况。
2、门卫记录、巡查记录、门卫、巡逻、路队值班情况,教室值班安排及记录情况,学生请假登记表。
3、学校周边环境治理方案规划及实施效果。
4、平安建设月报。
5、反邪教及禁毒预防,爱路护路教育
6、教职工法制教育及道德教育(法制副校长及法制报告会情况)
八、交通校车安全
1、交通周活动开展
2、上下学路队护送值班
3、校车相关资料(源头化管理校车档案目录12项)
九、校舍安全
房屋鉴定报告、校舍状况报告与维修申请报告、校舍栏杆、楼梯、窗台、体育设施、实施设备的安全性能数据
十、食品卫生安全
网络安全与“软件智慧” 第6篇
在如今这个“软件定义”的时代,Check Point“软件智慧”的理念得以乘上了东风。通过将软硬件解耦,安全产品可以按需进行不同的产品配置,最终形成为每个用户业务量身打造的方案。这是Check Point推出其软刀片架构的初衷。网络安全如今已经不再仅仅是防火墙、IPS或者UTM。新威胁的出现、APT的盛行以及移动互联设备的普及,使得人们需要更加智能化且系统化的安全防护规则。罗杉很明显地感受到了市场的变化,他表示:“三年间,用户对于安全管理的需求实现了成百倍的增长。”
今天,Check Point的用户不再仅仅是大型的企业或者重要部门,还包括了中小企业。这同过去Check Point的用户组成截然不同。“CIO们每天的第一件工作,就是要确保信息的安全。”罗杉认为,这是一个人人都需要网络安全的时代。信息化已经不再是一个只针对某些领域的垂直技术,而是完全水平化的,普适于任何一个行业。Check Point“软件智慧”的价值在于,其不仅适应了不同行业、不同规模用户的安全需求,同时将孤立的安全事件联系在一起呈现给用户。这样的效果实现,只能靠软件来进行。
以“软件智慧”为理念打造最新的安全产品,并将其统合为一个有机的整体,帮助用户应对最新的安全威胁,这是Check Point在5年前就已经开始坚持的设计,同时这也是Check Point能够连续19年位居Gartner领导者象限的秘密武器。在中国,“软件智慧”为Check Point赋予了绝对的灵活性,这使得其可以为某一类行业用户进行安全产品的型号定制。Check Point总裁多年前的一句话让罗杉至今记忆犹新:“我们对中国市场是有耐心的。如果我们的业务在这里没有发展的话,在整个亚太地区都很难出彩。” 因此,与很多公司不同的是,为了提供更好的本地化服务,Check Point在北亚地区大部分的员工都集中在北京、上海和香港。
“网络安全建设在我国得到了政府的大力重视。其中一个很重要的思想就是‘以人为本’,从人开始定义安全流程。”罗杉表示,“这符合安全精细化的全球趋势。”这种精细化的人性,已经渗透到了业务流程之中。在汇丰银行,Check Point甚至参与了其员工手册的细则拟定,利用专业的安全知识来提供咨询服务。
基于POAD的软件安全设计过程 第7篇
本文研究的出发点基于软件开发过程中的两个基本原理。
(1) 控制软件安全的关键在于设计环节。从应用上来讲, 软件的安全性在于软件是否有漏洞以及漏洞的危害程度。软件的大部分漏洞出现在编码测试环节, 由于现代软件复杂度日益增加, 这一环节的漏洞很难避免, 此类漏洞基本上可以用补丁文件加以修补;另一种类型的漏洞出现在设计环节, 这一类漏洞的危害性很大, 更为严重的是设计层面上的漏洞很难用补丁文件修补, 所以控制软件安全的关键在于软件设计过程。
(2) 软件复用技术可以也应当用于软件设计环节。成功应用的软件产品对于后续开发者是一笔宝贵的财富, 不仅在软件功能上可以作为参考和范本, 软件开发过程中形成的各种文档、代码和理论都可以作为开发者重复利用的软件资产, 这样的开发方式称之为软件复用。代码复用是软件复用最典型的体现, 然而软件复用的应用并不局限于此, 软件开发各阶段的设计思想、开发文档、算法结构、实现代码, 以及最后的测试用例等都可作为复用的元素。从层次上来讲, 最低层次的软件复用为代码复用, 高级层次的软件复用为组件复用、结构复用和设计模式 (Design Patterns) 复用。设计模式是指软件在开发初期形成的设计方案, 成功的软件设计模式都是经过检验和验证的, 在设计过程中使用这些设计模式, 能够提高系统的稳定性和开发效率。
基于以上原理, 本文提出了基于安全设计模式的软件设计方法。该方法通过复用成功软件设计方案中的安全模式, 将其应用于软件设计环节, 极大地提高了软件的安全可靠性。
2基本概念
(1) POAD。随着软件复杂度的不断提高, “零起步” 的设计方式已经不再适应现代软件的开发速度, 面向模式的分析设计方法 (Patten-Oriented Analysis and Design) , POAD解决了软件设计过程的复用问题。POAD的基本理念是创建并维护专用的模式库, 通过组合以往的设计模式实现设计过程的软件复用。
(2) 安全模式。安全模式是专注于软件安全的设计模式, 经过验证的安全模式关注了软件应用中重复遇到的安全需要, 并提供了经过实践证明的正确解决方案。安全模式封装了成功者的经验, 能够为设计人员提供直接的参考和借鉴。
3实现流程
本文提出的软件设计流程沿用了安全工程风险的管理过程, 采用POAD设计方法提取了风险管理中的安全性风险, 选用安全模式作为相关风险解决方案。该流程可分为3个基本阶段:风险评估阶段、安全模式选取阶段和安全模式细化阶段。
3.1风险评估阶段
风险评估阶段包括两个关键步骤:风险识别和风险评估, 如图1所示。
本文的软件设计过程基于面向对象的设计思想, 所以风险识别过程主要采用分析业务需求和确定安全关键类来实现:首先根据业务需求和专家知识库列举系统运行过程所包含的风险类型, 之后根据面向对象的动名词分析法找出系统的对应类, 再分析系统安全需求以确定业务类中的安全关键类并标定其风险等级, 最后标定出安全关键类中的关键功能。确定安全关键类和关键功能的环节就是系统的风险识别过程, 同时也标定了风险的作用范围。
风险识别完成后, 需要对标定风险的危险等级进行评估。因为软件项目有可能面临大量风险, 每种风险造成的危害不同, 而项目开发的资金和时间是有限的, 所以必须分清轻重缓急, 把人力和时间集中在对系统影响较大的风险上, 对于不太重要的风险或是修改代价过大的风险只能予以接受 (此时可考虑从使用制度上限制用户的操作方式以对风险予以规避) 。
风险识别和评估完成后, 即可将软件项目风险和项目资源 (人力、物力、财力、时间) 关联起来, 这有助于设计人员在软件安全实现方面作出正确决策。
3.2安全模式选取阶段
风险评估完成后, 开始安全模式选取工作, 该工作由3个步骤组成:安全模式选取、安全模式评估和系统框架重构。
(1) 安全模式选取。选取安全模式是本文设计流程中最为关键的步骤, 系统通过比对风险描述文档和安全模式库, 根据对应规则选取安全模式用于解决风险识别过程中找出的风险。
(2) 安全模式评价。安全模式选取完成后, 需要对选取的模式进行评价, 以确定安全模式的功效并对某些功能作出取舍。安全模式根据其作用效果分为两类:一类是完全解决风险, 这是最好的情况;二是部分解决, 此时需要进一步寻找模式, 期待更多的模式结合起来解决风险。如果此时仍然不能解决风险, 则有两种选择:一是接受该风险, 采取其它外部措施来规避;二是当风险不可接受时, 只能考虑从系统中移除相关的软件功能。
(3) 系统框架重构。系统框架重构就是将风险评估和安全模式选取阶段考虑到的各种新功能加入到系统原有的高层设计中, 最终实现加入安全模式的软件设计框架。
3.3安全模式细化阶段
安全模式细化过程的任务就是根据系统的初始业务类图, 加入新提出的安全功能, 实例化选取安全模式, 并将其重新整合成更为详细的系统设计类图。
(1) 细化业务功能。细化业务阶段的任务是根据加入安全模式后的高层架构图结合系统的现有实体形成更为详细的业务类图。
(2) 实例化安全模式。在系统整体框架重构完成后, 在实例化框架中添加安全模式。
(3) 系统整合及重构。完成上述步骤后, 得到了一系列类图的集合, 根据最初的业务类图将这些类图结合起来, 即完成了系统在加入安全模式后的整合与重构。
4应用实例分析
下面以一个CMS (内容管理系统) 的安全设计过程来说明本文方法的应用。系统的基本功能如图3所示。
4.1风险评估阶段
根据本文风险评估方法对该系统相关功能进行风险识别, 评估结果如表1所示。
4.2安全模式选取阶段
对比风险描述文档和安全模式库, 根据对应规则选取安全模式用于解决风险识别过程中找出的风险, 得到如表2所示的安全模式。
安全模式选定后, 就要对其应对风险的能力作出评估, 评估的依据主要在于风险文档与安全模式文档的描述匹配度和设计人员的主观判断, 最终评估结果如表3所示。
根据系统最初的业务需求和加入的安全模式, 重构了系统的高层架构, 如图4所示。
4.3安全模式细化阶段
(1) 细化业务功能。系统业务功能主要由4个类完成, 如图5所示, User代表登陆用户及其相关的功能逻辑, Infor类实现信息发布和信息管理功能, SystemManag- er类用来完成系统管理功能, Login类用来处理用户登陆。
(2) 实例化安全模式。采用安全认证模式、安全验证模式、安全日志模式以及将此3种安全模式与系统业务协调起来的SafeLogin模式, 对系统登陆过程进行安全模式实例化, 如图6所示。
采用审计拦截器模式、安全会话对象模式以及协调以上两种安全模式与系统业务功能调用的信息管理模式, 对信息发布功能进行安全模式实例化, 如图7所示。系统管理业务类SystemManager的实例化方式与此完全一致, 不再重复。
(3) 整合系统并重构。根据系统的高层架构图, 结合上一步骤实例化的几个业务类和基本业务类图, 得到系统在采用安全模式细化设计后的整体框架, 如图8所示。
将最终的系统整体框架图与图5系统业务类图对比, 可以看出, 加入的安全模式机制在抵御风险的同时, 也增加了系统的复杂程度, 有可能造成系统效率下降, 在实际开发过程中需要对部分安全功能进行取舍。
5结语
解决软件安全问题是一个系统性工程, 必须在软件开发的每一个阶段都予以重视。本文从设计阶段入手, 将安全关注标识到设计图中, 使设计人员对安全问题产生足够重视, 有利于安全需求的实现。同时, 本文将安全责任委托给安全模式来解决, 既有助于克服设计人员安全设计知识缺乏带来的影响, 也能满足快速开发的需要。
参考文献
[1]张现環.基于Windows平台的软件安全漏洞发掘技术研究[D].成都:电子科技大学, 2010.
[2]李刚.安全编码预编译器的设计与实现[J].计算机工程, 2011, 37 (3) :230-235.
[3]王涛.基于安全模式的软件安全设计方法[J].计算机工程, 2011, 37 (12) :59-61.
[4]颜兆林.集成系统的软件安全分析[J].计算机工程, 2005, 31 (12) :141-142.
软件安全设计 第8篇
1 在Dbus的使用中分析Android系统
在Android系统的使用中, D-Bus的使用具有frame协议, 其主要目标是面向对象接口。同时, D-Bus具有互相发现和监视的进程。其在使用的过程中, 会拥有2个系统进行保护, 其中一个是手机系统, 而另外一个则是用户手机使用范围中的生命周期和安全检查等功能[1]。由此可见, 在Android系统的使用中, D-Bus系统的使用可以给其他程序提供相应的功能。
在Android系统的使用中, D-Bus的相比socket和Corba等程序而言, 其具有较慢的效率, 主要是由于Android系统在使用中具有不同的设计思想, 设计者在设计Android系统时, 优先考虑的是系统的安全性, 对其他端口的数据存在不信任的现象, 会通过不断的校验来确保信息的安全性, 从而可以在较大程度上保证用户的信息和财产安全。
由此可见, 在Android系统的设计中, 设计师采用了D-Bus系统, 该系统为了保证系统的安全使用性能, 在使用效率上做出了相应的让步, 这与其他系统的设计存在明显的差异。从中可以体现出Android设计师对安全性能的重视程度, 并且体现出安全性在系统设计中的价值。
2 Android系统的安全设计分析
2.1 开放源的安全设计
在Android系统的设计过程中, 其存在开放源的软件, 相比于常规的闭源软件, 开放源显得相对安全。主要是由于开放源软件在使用的过程中, 是社区共同开发和设计的软件。具有较为超前的设计理念, 与Microsoft和apple等系统的设计存在较大的不同之处, 在对比中可以发现, Android系统的设计更加追求其与参与者的结合[2]。由此可见, 在Android系统的设计中, 对开放源软件的运用无疑增加了系统的安全性能。
2.2 Android系统沿用了Linux的安全性
在Android系统的设计应用中, 使用了Linux, 使用性能相对较高, 并且具有较高的安全性, 可以较好地保证用户信息和财产安全性。例如在user和group ID软件的使用中, 其可以保障数据和核心软件的分离, 继而可以较好地保证用户的数据信息安全[3]。由此可见, 在Android系统的使用过程中, 对系统的优化设计沿用了传统的Linux, 因而具有较高的安全性能, 对于用户的信息和财产安全可以起到较好的保护作用。
2.3 访问权限的安全设计
在手机系统的设计中, 访问权限对于每一种手机系统而言, 均是十分重要的组成部分。对手机权限进行合理地保障, 可以最大程度地保证人们的信息安全。在其他系统的使用中, 其可能会存在部分操作未经过系统的同意而执行, 从而会在一定程度上影响用户的信息安全, 不法分子利用手机软件的缺陷, 会制作相应的病毒来入侵用户的手机系统, 继而盗取用户的个人信息来达到不法分子的目的。而在Android系统的设计中, 对手机权限的保护相对较高, 任何程序都无法对系统造成伤害, 进而会保证用户手机信息的安全性[4]。由此可见, Android系统对访问权限的优化设计可以较好地保证系统的安全性。
2.4 对程序签名的优化设计
在Android系统的文件设计中, 系统的设计要求程序必须具有通过认证的证书, 而在证书申请的过程中, 证书的秘钥必须被开发者掌握, 以便可以保证用户信息的安全性。而证书的标识应该是程序设计的作者。在证书的设计中, 不需要相关的证书组织进行签署。在系统应用程序的使用过程中, 证书仅仅被应用于程序建立的信任关系, 另外, 在程序签名的使用中, 可以通过确定访问权限来共享用户的ID签名, 进而可以在一定程度上保护用户的信息安全[5]。由此可见, 在Android系统的设计中, 对程序签名进行优化设计可以较好地提升系统平台的安全性。
2.5 Google元素的优化设计
在Android系统的使用中, 设计师在系统的设计中融合了Google元素, 对系统的安全性能产生了一定的影响, 主要是在系统的设计过程中, Google元素在保证创意性的同时, 会在一定程度上提升对用户信息安全性的重视, 继而会较好地为用户提供相应的保护服务。在Android系统的设计中, 设计者会对用户的需求进行调查分析, 从而会根据实际情况来设计相应的程序, 在系统的设计中, 设计师还会融入创作元素, 以便可以提升系统对用户的吸引力[6]。由此可见, 在Android系统的设计过程中, Google系统的融入使得用户和软件之间产生了较好的理解, 进而可以为用户提供安全可靠的手机系统使用环境。
2.6 对权限命名的优化设计
在Android系统的设计过程中, 其与常规的系统设计之间不存在相应的关联, 继而用户在使用Android系统的过程中, 如果存在使用无关联软件的情况下, 不会对系统的程度产生影响, 从而会在一定程度上保护用户的信息和财产安全。因此, 用户在使用Android系统的过程中, 对于重要的文件, 可以使用<uses-permission>的强调对该程序的权限。
在Android系统设计的安装应用程序过程中, 通过权限请求后, 会对用户的权限进行保护, 并且在用户使用应用程序的过程中, 不会对用户的权限进行审查, 从而保护了用户的信息隐私。由此可见, 在Android系统的设计中, 设计师对权限命名的优化可以保证用户的隐私安全性。
3 结语
随着科技的不断发展, 手机的使用已经逐渐对人们的生活和学习产生了较大的影响, 在手机系统的使用中, 设计师不断地根据实际情况对系统的安全性进行优化, 以便可以更好地保证系统的运行稳定性和安全性。在Android系统的设计中, 设计师同样对系统的安全性进行优化, 但是在保证系统稳定性和安全性的同时, 在一定程度上降低了系统的效率, 从而会影响系统的运行速度。希望通过本文的相关探讨, Android系统设计师在对系统的设计中, 可以对系统的安全性能进行优化, 同时可以不断地提升系统的运行速度, 进而可以更好地满足用户的使用需求。
摘要:在手机系统的使用中, 对Android系统进行安全设计, 可以保证用户的信息和财产安全。文章主要通过Dbus的使用和Android系统的安全构架来对系统进行设计。以期不断优化Android系统, 进而可以保护用户的信息和财产安全性。
关键词:Android系统,软件,安全设计
参考文献
[1]南秦博, 慕德俊, 侯艳艳.基于Android平台的手机防盗安全软件设计与实现[J].现代电子技术, 2015 (2) :46-49.
[2]张迪, 弓正.基于Android的飞机无纸化维修工作单系统软件设计[J].实验室研究与探索, 2015 (3) :90-95.
[3]肖贺.Android平台下基于流量监测的安全软件设计[J].电子技术与软件工程, 2015 (9) :65-70.
[4]秦海权, 王晨, 尹丹.基于Android系统的恶意软件分析平台的设计与实现[J].警察技术, 2013 (6) :51-54.
[5]张麒, 王秀敏, 任建新.基于Android的桥梁检测车安全监控系统的设计[J].吉林大学学报:信息科学版, 2012 (9) :285-290.
计算机硬件设计对软件安全问题研究 第9篇
关键词:硬件设计,安全,计算机
引言:计算机硬件功能的要求直接影响到计算机硬件的发展速度和方向。计算机硬件主要是由I/O接口(输入、输出设备)、CPU以及板卡等组成的,在信息系统中起重要的作用。软件安全保护是采用加密、反跟踪、放非法复制等技术。在软件系统上或圆盘上产生一种信息,这种信息即使软件系统中个可执行文件在运行过程中必须应用的,优势各种文件复制命令或软件复制软件所无法正确复制、午饭正确安装或无法正常运行的。
一、计算机硬件安全
1.1计算机硬件防护
计算机在使用过程中,对外部环境有一定的要求,即计算机走位的环境应尽量保持清洁、温度和湿度应该适应。电压稳定,以保证计算机硬件可靠的运行。计算机安全的另外一项技术就是加固技术,经过加固急速生产的计算机防震、防水、防化学腐蚀,可以是计算机在野外全天候运行。
1.2计算机硬件与系统
从系统安全的角度来看,计算机的芯片和硬件设备也会系统安全构成威胁。比如CPU,电脑CPU内部集成有运行系统的指令,这些指令代码都是保密,我们并不值得它的安全性如何。国外针对中国所用的CPU可能集成有陷阱指令、病毒指令,并室友激活办法和无线接收指令机构。他们可以利用无限代码激活CPU内部指令,造成计算机内部信息外泄、计计算机系统灾难性崩溃等。如果这是真的,那么我们的计算机系统在战争时期页后可能被全面攻击。
硬件泄密甚至涉及到了电源。电源泄密的原理是通过城市市电电线,吧电脑产生的电磁信号沿电线传出去,利用特殊设备可以从电源线上就可吧型号截取下来还原。
1.3计算机的部件
计算机里每一个部件都是可以控制的,所以叫做可编程控芯片,如果掌握了控制芯片的程序,就控制了电脑芯片。只要能控制,那么它就是不安全的。因此,我们在使用计算机时首先要注意做好电脑硬件的安全防护措施,把我们所能做到的全部做好。
二、计算机软件安全的定义
软件的安全就是为了计算机软件系统建立和猜去的技术和管理的安全保护,保护计算机软件、数据不因偶然或者恶意的原因而遭到破坏、更改、显露、盗版、非法复制,保证软件系统能正常连续运行。即计算机信息系统资源和信息资源不受到自然和认为有害因素的威胁和危害。
三、软件安全的技术措施
计算机对软件安全的技术措施要分两个方面,第一加强有关法律规定方面的管理,第二是加强技术性,防止拷贝、加密技术、防静态分析、防动态跟踪等技术。
四、计算机硬件中存在的隐患和措施
4.1计算机硬件存隐患
随着计算机与互联网之间的关系越来越紧密,使得计算机受到网络黑客的攻击频率急速上。从而导致社会对计算机的联网安全性提出了更高的要求。但是在实际设计时,管理员多俗将软件的安全做为一个重要的检测指标,忽视对硬件安全性的检验,从而导致当前社会上有关于计算机硬件安全问题的安利越来越多。事实上,随着联网的需求,影响计算机的安全的因素很多,而其中只要攻击计算机的硬件设备,就可以篡改计算机内部的数据,使计算机存在恶意代码,即出现木马程序,导致计算机出现故障,从而降低计算机联网的安全性,导致用户个人信息被非法利用,给用户带来困扰的同时还会扰乱司法公正。
4.2计算机硬件安全措施
为了最大程度的保证计算机联网的安全性,仅依靠升级软件、研发软件,保障软件的安全性与可靠性是远远不够的,必须加强对计算机的硬件设备的安全检测,研发安全更高的硬件设备。其中在计算机联网中,最容易受到攻击的就是计算机的芯片,而一旦计算机的芯片受到攻击,对计算机和用户所造成的损失是无法弥补和无法估计的。所以必须保证计算机内置的安全性。因此在芯片测试及生产制造时,可以采用电路设置密钥/激活,并对总线设置“加锁/解锁”等方式,有效的保护硬件的IP,.EPI对于技术进行全面的分析后,可以将其与PUF技术有机结合。
结语:如今随着互联网的发展,计算机对人们的生活的重要性不言而喻,而提高计算机联网的安全性必须提高软件与硬件的安全性,根据实际情况,加强计算机硬件的安全性是当今社会的当务之急,因此必须加强力度在检验计算机的内置和外设上的安全,同时必须加大研发力度,争取提出一套合理、安全度高的计算机硬件设计方案,从而提高计算机联网的安全性,进而保证上网的安全性。
参考文献
[1]贾杰《计算机软件安全检测技术研究》[J].计算机光盘软件与应用,2012,05:204-189.
[2]聂廷远,贾萧,周立俭,李言胜《计算机硬件设计安全问题研究》[J].信息网络安全,2012.10.17-19
软件安全设计 第10篇
1 安全软件需求分析
1.1 拦截及检测技术原理
Android移动终端所受的主要威胁是来自Android平台的电话和短信诈骗以及恶意软件的攻击, 因此需对拦截技术原理和检测技术原理进行探讨。当有来电进入时, RIL层会将此事件上报给Call Tracker, 然后根据一定的路向继续向上层走, 通常由第三方软件对来电进行过滤, 将黑名单来电挂掉, 但是由于过滤方案自身存在很大漏洞, 拦截方案的优先级较低, 要想实现深度拦截, 还应从系统入手, 在Android结构的下一层完成拦截;当有短信进入时, 通过不同制式的解析对发出的内容进行拦截, 即终止广播对信息的继续传播, 这种传统的信息拦截方案也不是从系统层面来完成的, 要想实现深度拦截, 仍需从Android结构的下一层入手解决;至于对恶意软件的检测, 主要通过终端设备的流量信息来加以判别, 可采用SVM二分类算法实现。
1.2 安全软件的功能分析
根据Android的特性及安全现状, 可从功能性需求和非功能性需求对安全软件进行分析。就软件功能需求来看, 主要包括查看网络流量信息, 其需求时序为:用户点击进入检测界面→获取系统应用信息→调用数据库查询流量信息并返回→处理数据并将其展现在界面上→反馈给用户;检测和处理恶意软件, 其需求时序为:点击进入检测界面→将检测结果传送给处理模块→存入数据库并返回给用户;控制软件权限细粒度, 其需求时序为:在用户进入管理界面前初始化配置→用户进入管理界面后获取配置信息→对数据信息进行处理并显示给用户→重新配置权限并将信息存储到数据库→将更新后的数据显示给用户界面;短信和来电过滤设置, 其需求时序为:根据短信或来电数据初始化数据库→过滤短信和来电号码→将拦截下来的信息存入日志数据库并将过滤结果反馈给用户。就软件非功能需求来看, 主要包括性能需求、数据库需求和外部接口需求等内容, 在此不作过多列述。
2 安全软件设计及实现
通过安全软件需求分析, 对其功能模块进行设计, 在此主要探讨恶意软件检测和深度短信和来电拦截的解决方案。
2.1 恶意软件检测模块设计及功能实现
恶意软件检测和处理功能需要网络流量信息监测、异常识别、响应处理以及关键信息存储等模块的相互配合来实现。其一, 网络流量信息监测模块的设计, 为提高流量信息捕获效率, 将该模块放置于Linux内核中, 采用LKM开发模式, 开发流程如下:模块初始化 (钩子函数注册和初始化) →关闭模块 (钩子函数注销及模块卸载) →编译内核模块;其二, 异常识别模块的设计, 根据Android移动终端的特点以及恶意软件对该系统流量信息的影响情况, 采用SVM分类算法, 通过构造特征向量, 提取进程ID、数据包发送/接收时间、上/下行流量、源/目的IP地址等特征来反映系统网络流量的特征, 再通过Netlink方式从监测模块中获取待识别数据, 改进交叉编译后移植给Android平台;其三是响应处理模块设计, 根据安全策略对被检测软件进行相应处理, 主要包括对访问通信录、恶意软件联网、发送和读取短信等权限进行控制, 将可疑信息上传云储存服务器供监测系统分析使用。
2.2 深度短信和来电拦截模块设计及功能实现
深度短信和来电拦截功能需要短信和来电过滤与关键信息存储模块的相互配合来实现。其一, 短信和来电过滤模块的设计, 该模块在Android的Framework层进行开发, 通过修改系统源码来添加短信和来电拦截功能, 短信和来电过滤模块的函数调用流程如下:初始化时序→通知函数调用时序→监听注册函数时序→过滤处理函数调用时序;其二, 关键信息存储模块的设计, 按照设计的数据库表来创建数据库, 主要包括模型数据表、训练数据表、关键信息表、权限管理表、操作日志表、过滤表、信任名单表、模块设置表和安全策略表, 对外提供数据库表的操作接口, 接口定义在DBsql。
3 结论
Android智能终端的广泛应用, 人们对来自Android平台的各类安全问题越来越重视, 提出针对Android终端的安全防护解决方案, 设计Android平台下基于流量监测的安全软件, 具有一定的指导意义。
参考文献
[1]李俊.Android平台下基于流量监测的安全软件设计与实现[D].西南交通大学, 2014.
[2]孙琳.手机安全支付异常流量监测技术的研究[D].北京交通大学, 2014.
软件安全设计 第11篇
上网流量监控和扣费查询
一般用手机上网都是开通了流量包月套餐的,价格比较便宜,但如果流量超过了套餐规定的限额,多出的部分流量是非常贵的,所以实时监控自己手机的上网流量是很有必要的,既能发现流量是不是偷偷流走,也能知道是否超出了套餐限额,另外扣费查询也能让我们发现一些无端的扣费。
360手机卫士:在“安全保护”选项中点击“流量监控”,进入监控界面(如图1),点击“设置”输入自己的包月流量套餐限额,可以查看本月已经使用的GPRS流量和WIFI流量。另外点触“安全保护/话费保护”可以发送免费指令进行扣费查询(只有在月初才能准确查询)。
QQ手机管家:在“手机体检”选项中点击“流量监控”,然后设置套餐流量限额,就可以查看流量情况(如图2),进入“安全保护/扣费查询”界面也可以查询话费。
金山手机卫士:点击“流量监控”,在弹出的“初始值设置提示”窗口中输入一个月流量的套餐限额,就可以查看流量情况(如图3),但是却没有查询扣费的功能。
病毒、木马的扫描查杀
使用手机上网,或者用手机存储卡拷贝文件,很容易感染病毒和木马,病毒和木马的查杀应该是安全软件最基本和重要的功能,下面是具体测试结果。
360手机卫士:在“安全保护”选项中点击“手机杀毒”,选择“快速杀毒”与“全盘杀毒”两种方式,之后即可进行病毒木马的扫描(如图4)。经过笔者测试,360手机卫士在杀毒过程中会占用全部的CPU资源,用户只能在它查杀完毕后再进行其他操作。
QQ手机管家:在“实用功能”选项中点击“病毒查杀”即可(如图5),另外手机管家还提供了“查杀记录”方便用户查看以前的病毒查杀记录。除了病毒的查杀外,手机管家还能扫描并清理系统内的垃圾文件,这是有别于另两款工具的独特功能。
金山手机卫士:点击“病毒查杀”,开始扫描病毒和木马(如图6),不过在清理内存方面不如360直观,看不到内存及CPU占用情况。
隐私保护
手机里往往保存了某些不想被外人知道的隐私信息,而安全软件的隐私保护功能可以很容易地将联系人、通话记录和短信保存起来不被别人发现,把需要保护的联系人添加到隐私联系人,这样和这些人的通话记录和短信就会被加密。
360手机卫士:在“安全保护”选项中点击“隐私空间”,然后设置隐私密码设置和隐私空间的名称、图标,进入后点击“创建隐私联系人”手工添加隐私号码(如图7),也可以点击“导入”从通讯录中导入隐私联系人,还可以单击“隐私设置”设置隐私电话和短信的提示音。
QQ手机管家:在“实用功能”选项中点击“私密空间”,然后设置一个至少16位的密码(如图8),进入后可以手工创建隐私联系人和从通讯录中导入隐私联系人。除此之外,针对QQ用户手机管家还推出了“QQ令牌”服务,每次登录QQ时通过动态口令保护自己的QQ安全。
金山手机卫士:点击“私密空间”,然后弹出空密码警告,点击“设置密码”,输入密码,然后点击左下角的添加图标,可以选择“从联系人导入”、“从通话记录导入”等(如图9),另外在“设置”点击“启用假空间”的功能,在被人逼迫查看隐私的情况下,将其引导至虚假的通讯记录,具有很大的迷惑性。
电话、短信拦截
不明电话和垃圾短信骚扰是困扰许多朋友的问题,另外有时候也不想接某人的电话,这三款手机安全软件具有这些功能吗?
360手机卫士:在“安全保护”选项中点击“骚扰拦截”,然后在“黑名单”中点击“点击添加黑名单”,选择“手工输入号码”输入黑名单号码,也可以点击“从联系人导入”、“从通话记录导入”、“从短信记录导入”进行批量导入(如图10)。黑名单添加好后,选择“拦截设置”,选择“拦截模式”为“只拦截黑名单”,这样黑名单中的号码就会被拦截。还可以选择“智能拦截”,点击“短信关键字过滤”设置要过滤的关键字,这样含有该关键字的短信会被拦截,还可以设置按地区拦截,把某一地区的号码全部拦截。
QQ手机管家:在“实用功能”选项中点击“骚扰拦截”,点击“黑名单”(如图11),在里面添加的黑名单号码将被拦截,另外点击“关键字”,输入要拦截的关键字,包含该关键字的短信会被拦截。
软件安全设计 第12篇
随着计算机在各领域的广泛运用,计算机病毒攻击与防范技术也在不断拓展。近年来,“熊猫烧香”、“德芙”、“QQ木马”、“灰鸽子”等木马病毒日益猖獗,以盗取用户密码账号、隐私、商业秘密为目的。调查显示,趋利性成为计算机病毒发展的新趋势。网上制作、贩卖病毒、木马的活动日益猖獗,利用病毒、木马技术进行网络盗窃、诈骗的网络犯罪活动呈快速上升趋势,网上治安形势非常严峻。在2007年爆发的“熊猫烧香”,让大量的网民受害。而实际上,从今天的技术角度来讲,它的编程技术并不好,主要是利用一些常规的手段,比如通过U盘autorun. inf,感染. exe,. com等文件,感染后一般都不能运行,感染共享文件夹,枚举局域网电脑中的弱密码进行传播,根本就没有使用先进的隐藏技术。而今天,还有很多技术高超,隐藏性好的病毒现在正在大量的电脑里呆着,监视着电脑上的一举一动,比如“灰鸽子”产生的危害就远大于“熊猫烧香”,而一般的普通用户很难发现。随着病毒的变化越来越多,病毒产业链的活动越来越猖獗,这个现象变得更严重了,由此引发了用户对杀毒软件的不信任[1,2]。为了解决这些问题,杀毒厂商一方面采用传统的特征识别、加强引擎脱壳、加强样本的收集、加快病毒特征的更新等等。这仍然是最主要的应对方法。另一方面,就是开发新的病毒识别技术。比如行为识别、注册表保护、应用程序保护等等。由于现在病毒木马不像以前那样修改特征码来被动的躲避杀毒软件,他们采用Root Kit技术或者其他的技术来主动的防止被杀毒软件发现,或者直接把杀毒软件关闭,就算发现了病毒的踪影也很难完全清除。
1 系统安全检测所目前面临的困境
由于杀毒软件面向的是普通用户,只能让杀毒软件自己去处理病毒,由于现在杀毒软件的技术还没有达到自身可以准确判断病毒,所以造成了很多的病毒逃脱了查杀。对于有一定的计算机基础的用户,需要一款软件可以查看系统可疑信息,然后自己去判断它是不是病毒,去恢复那些被病毒改变的内核数据或者结构,通过工具和人的结合来手动杀毒,弥补现在杀毒软件在判断可疑文件上的不足,从而做到真正的主动防御。让大部分普通用户的软件系统是不安全的,因此,急需更为高效的系统安全监测软件系统。
系统安全检测主要是对系统安全有影响的关键位置进行检测,如进程、注册表、文件等。由于病毒为了让自己不被轻易的发现,一般都是用了隐藏技巧,比如注入到关键系统进程中,不创建进程,并且这样也能够穿越防火墙。还有使用在一些HOOK技术,可以在Ring3 HOOK也可以在Ring0 HOOK,可以修改IAT表,也可以修改EAT表,或者使用inline Hook。因为驱动是分层,IRP是一层一层的传下去的,所以可以让设备驱动挂接到一些关键驱动( 比如文件系统) 上来过滤掉对自己有危害的IRP,这样用户就不能检测到自己的存在。为了能有效的检测到一些关键信息,必须直接和系统的底层打交道,这样就可以避免被病毒所蒙骗[3,4]。
随着大量的Rootkit技术的出现,HIPS( Host Intrusion Prevent System) 技术也随之出现。HIPS是一种能监控电脑中文件的运行和文件运用了其它的文件以及文件对注册表的修改,并报告请求允许的软件。HIPS能解决病毒变种使得杀毒软件跟不上病毒的脚步的问题。HIPS是系统安全发展的一种趋势,但是HIPS并不能称为防火墙,最多只能叫做系统防火墙,它不能阻止网络上其他计算机对你计算机的攻击行为。
2 新型系统安全检测软件设计
随着病毒制作技术水平的提高和对Windows内核研究的进一步的深入,现在的病毒技术的研究发展方向是都采用了RootKit技术来让自己消失在用户电脑中进行盗号,或者采用内核技术直接把Anti Av清除掉,然后再畅通无阻地执行自己的操作。
本文设计的系统正是基于此模式而进行的,要实现的主要功能:
( 1) ring 3下进程管理。
( 2) ring 0查看进程,包括那些被病毒隐藏的进程,能够强制结束进程。
( 3) 直接向NTFS驱动发送IRP来查看隐藏文件或者文件夹。
( 4) 强制删掉文件。
( 5) 查看和恢复SSDT。
( 6) 查看和恢复SSDT Shadow。
( 7) 能检测出NTFS文件流进行。
( 8) 查看系统打开的TCP/UDP端口,显示打开这些端口的进程。
( 9) 查看LSP。
( 10) 查看BHO。
( 11) 系统内核模块查看。
( 12) 系统服务管理。
( 13) 系统监控。
( 14) 系统自身的主动防御。
开发平台采用: Microsoft Windows XP [版本5. 1. 2600]+VS2008 + WDK 6001. 18002。
2. 1 总体思路设计
首先设计一个程序界面用来和用户交互,对于LSP,BHO,注册表,NTFS文件流驱动和服务启动,进程的ring3查询都直接调用SDK函数,不使用驱动。对于SSDT,SSDT Shadow,进程的强杀,进程的ring0枚举,软件自身的主动防御,隐形文件的查找都设计对应的驱动,在驱动中进行操作。
2. 2 系统架构图
由于该程序要实现是在Ring0和Ring3下共同实现的,所以可以分为两个大的模块,一个为Ring0,Ring3. 他们之间通过IOCTL来进行同步和通信。在ring 3下又分为进程管理,注册表管理,网络管理,系统模块查询,服务和加载驱动的查询,BHO管理。在Ring0下包括进程管理,隐形文件查询,SSDT管理,SSDT Shadow管理,系统的主动防御功能模块,该系统的架构图如图1所示。
( 1) 进程管理: 进程管理包括常规列举进程,结束进程,驱动列举进程,强杀进程。
( 2) 注册表管理: 注册表实现了和Windows自带注册表的操作,主要是防止系统注册表被病毒IEOF,并且直接提供了查看IEOF信息和系统的自启动信息,这样能够方便用户的使用。
( 3) 隐藏文件查看: 该功能主要是通过直接向NTFS文件系统发送IRP来实现文件的枚举和删除功能。
( 4) 网络管理: 网络管理分为端口进程映射和LSP查看,端口进程映射的功能是查看系统的端口,并能显示打开这个端口的进程,实现了fport的功能。
( 5) 系统模块信息查询: 该功能主要是查询加载到系统内核的模块信息,让用户查看病毒加载到内核的驱动模块。它是通过调用系统未公布的Nt Query System Information函数来查询内核空间中的模块。
( 6) NTFS流文件查看: 由于Windows资源管理器的设计缺陷不能查看绑定在文件或者文件夹的流文件,是病毒常用的隐藏地方,该功能就是针对这种情况设计的,它可以显示文件或者文件夹的流文件名。
( 7) SSDT: 由于SSDT是ring 3进入ring 0的门户,所以也是病毒和杀毒软件的必争之地。SSDT管理主要是查看那些被改变的SSDT表项,并从Nt Dll. dll读取原始SSDT,并通过重定位来得到正确的SSDT表项地址,用它来选择性的恢复那些被HOOK的地方。SSDT Shadow和SSDT差不多,只是它没有导出。
( 8) SSDT Shadow: 这个功能和SSDT差不多,只是SSDT Shadow是系统的另外一张表,只有在应用程式是窗口的形式才需要使用。
( 9) 主动防御: 系统的主动防御主要是HOOK Zw Open Process函数来实现的,这样可以防止别的进程打开被保护的进程。
( 10) 服务和驱动加载信息: 服务和驱动加载信息主要是查看系统的服务程序信息,病毒经常把自己注册为系统服务程序,从而实现随系统主动启动。
( 11) BHO: BHO是浏览器辅助对象,它属于COM组件,安装后,它们会成为浏览器的一部分,可以直接控制浏览器进行指定的操作。“浏览器劫持”就是通过BHO的技术手段进入系统的。
BHO管理是通 过读取HKEY _ LOCAL _ MACHINE SOFTWARE Microsoft Windows Current Version Explorer
Browser Helper Objects下的子键名,在通过读取对应CLSID的DLL来读取DLL文件的路径。服务和加载驱动查看是查看系统中的服务程序的路径,Display Na - me,自启动选项,现在很多的病毒都把自己注册成系统服务,这样就达到和系统一起启动。
3 实现
由于篇幅所限,本文只列出Ring 3层查看进程的实现过程见图2。
该功能通过: : Create Toolhelp32Snapshot ( 如果函数 前面加了: : 表示API函数或者内核函数,文章的以后部分按照该约定)得到进程快照,再调用: : Process32First和: : Process32Next枚举进程快照得到进程的PID,和进程名. 因为对于系统进程如果不把进程的权限Debug权限,那么执行打开进程的操作将失败,所以调用: : Adjust Token Privileges把本进程提权到Debug权限,然后再调用: : Open Process打开进程得到进程句柄,最后通过进程的句柄调用: : Get Module File Name Ex得到路径名。
相关代码实现如下:
( 1) 得到进程快照
( 2) 把本程序进程提权到Debug权限
( 3) 枚举进程快照得到进程PID和进程名
效果如下:
笔者特意选了国内外几款比较著名的杀毒软件与本系统进行了对比测试,其测试内容主要包括进程管理测试、隐形文件查找测试、SSDT检测、主动防御测试。其详细测试内容与测试结果如表1所示。
4 结束语
【软件安全设计】相关文章:
软件安全设计风险管理论文04-18
软件设计安全性探究论文04-29
软件设计安全性探究论文提纲09-03
软件安全设计风险管理论文提纲10-06
软件设计安全性探究论文参考文献09-10
软件安全设计风险管理论文参考文献10-20
骗局升级 致使安全软件变成“流氓”软件07-20
软件安全论文提纲08-16
软件安全论文范文05-13
软件安全知识范文06-05