解决方案:软件安全开发_V4.pdf 94页(2)

电脑杂谈  发布时间:2020-12-10 06:01:48  来源:网络整理

为什么要进行威胁建模帮助您在设计阶段充分了解各种安全威胁,并指导选择适当的对策管理可能的风险可以重新验证其体系结构和设计促进软件的接受减少攻击面48威胁建模过程识别对象以减少对攻击者的威胁识别威胁评估威胁减少威胁漏洞49威胁建模-识别对象确定要保护和评估的目标(资产)在使用案例和应用中场景分析弄清关键威胁场景•部署方法,配置信息,用户使用方法等。典型方案•移动或小型设备物理盗用方案•Web应用程序匿名用户方案50威胁建模-识别威胁识别每种可能的威胁了解可能的软件威胁是安全开发的前提条件威胁不大l漏洞威胁始终存在SSpoolfing身份假冒身份/欺诈性身份篡改数据伪造数据R拒绝信息泄漏拒绝信息泄露拒绝服务拒绝提升服务特权51了解STRIDE的六种威胁。安全属性定义的示例。欺骗(spoofing)的真实性模仿其他人假装为或ntdll.dll。

软件安全实现-安全编程技术_软件安全实现:安全编程技术_软件安全实现

或实体篡改(篡改)数据的完整性或修改硬盘,DVD或网络数据包中的代码DLL否认(否认)非否认声称没有“我没有发送该电子邮件” ”,然后执行“我尚未修改该文件”的操作,“亲爱的,我确实还没有访问该网站!”信息保密公开信息以允许某人阅读Windows源代码;披露(信息泄漏到没有合适用户列表的某个网站。公开)知道拒绝服务可用性的人拒绝用户使Windows或网站崩溃,发送(拒绝服务)服务数据包并用尽CPU时间,并将数据包路由到黑洞。通过提升权限获得非授权,远程Internet用户可以执行命令,从而使具有特权访问权限的用户可以获得管理员权限。 52威胁建模-评估威胁评估威胁风险值评估被利用和攻击的可能性评估攻击后资产损坏的后果,并计算风险,请参阅风险管理和安全工程中的相关内容! 53威胁建模-缓解威胁重新设计并消除此威胁使用标准的威胁缓解技术发明新的缓解方法根据安全漏洞标准确定风险是否可以接受将威胁记录为漏洞,然后考虑解决方法减少它。威胁! 54知识子域:软件安全实施安全编码原则了解一般的安全编程准则,例如验证输入,避免缓冲区溢出,程序内部安全性,安全调用组件以及禁用风险功能; 了解相关的安全编码标准和建议了解常见的代码安全性问题和解决方案; 代码安全编译理解代码编译中需要注意的安全因素; 代码安全审核了解代码审查的目的; 了解通用的源代码静态分析工具和方法55一般安全性编码原理-验证输入检查,验证和过滤所有输入数据应用软件“数据防火墙”以防止恶意数据进入验证时间首次接收数据时首次使用数据时56验证输入-通用输入源命令行参数数量,数据格式,内容环境变量环境变量可能超出预期一些环境变量存储格式很危险文件不信任不受信任用户可以控制的文件的内容不信任临时文件网络来自网络的数据“高度不信任”其他来源57常规安全编码原理-避免缓冲区溢出缓冲区溢出缓冲区:计算机的连续块包含相同数据类型实例的内存溢出:数据被添加到分配给缓冲区的内存块中外部数据大于目标值空间是一个非常普遍且严重的问题58通用编码原理-避免缓冲区溢出溢出后果攻击者可以使远程Service程序或本地程序崩溃攻击者可以设计要在溢出后执行的代码C / C ++语言语言功能决策许多库函数都有溢出Strcpy,strcat,gets等.其他语言调用C语言库C#允许设置“不安全的”例程59通用编码原理-避免缓冲区溢出解决方案填充数据时计算边界•动态分配内存•控制输入使用不存在缓冲区溢出问题的函数•C ++中的strncpy,strncat,std:字符串使用备用库•Libmib,libsafe•基于检测方法的防御•StackGuard, ProPolice,/ GS•在返回地址前插入一个“ probe”值•非执行堆栈防御•无法在堆栈上执行代码60常规编码原理-程序内部安全y程序内部接口安全性检查程序内部接口数据异常安全处理异常检测,对各种可能的运行路径的安全处理检测到某些错误的行为/数据,必须以适当的方式进行处理以确保安全地操作程序必要时立即拒绝服务,甚至不发回详细的错误代码61常规编码原则-程序的内部安全性最小化反馈避免给不可靠的用户提供过多信息•成功或失败•作为后续操作的日志-向上检查,可以记录更详细的信息身份验证程序在身份验证之前应该提供尽可能少的信息如果程序接受密码,则不要返回密码避免竞争状况在访问共享资源(文件/变量)时不已阻止正确控制使用原子操作使用锁定操作-避免死锁安全使用临时文件62常规编码原则密码安全调用组件实际上,几乎没有应用程序是自包含的,它们通常会调用其他组件底层操作系统可重用库网络服务(WEB,DNS)63通用编码原理安全调用组件使用安全组件,并且仅使用安全方法查看组件文档,搜索相关说明•获取•随机数使用批准的组件尽量不要调用外部命令,如果必须调用,则必须严格检查参数•系统,开放,执行,64种通用编码原则-安全的调用组件正确处理了返回值确保检查返回值,调用是否成功检查何时成功以及是否根据以下要求处理返回值期望值。数据可能包含NUL字符,无效字符或其他可能引起问题的内容。 检查何时发生错误。 错误代码s保护应用程序和组件之间的通信数据根据安全要求和安全环境•考虑传输加密,包括加密算法和安全协议65通用编码原理-禁用不安全的功能禁止使用危险功能的示例禁止使用strcpy,wcscpy,trcpy,strcpy,_tcscpy,_ftcscpy,_mbscpy strcat,wcscat,trcat,strcat,_tcscat,_ftcscat,_mbscat vsprintf,vswprintf,wvsprintf,wvnsprintf,_vstprintf,_vstprintf, ,_getts66以确保安全编译软件环境getts66版本编译器和支持工具可靠的编译工具使用编译器内置的防御功能确保操作环境的安全性将软件操作环境基于较新版本的系统67源代码审核什么是源代码审核通过分析或insp部分源程序的语法,结构,过程,接口等用于检查程序的正确性,并报告源代码中可能存在的隐藏错误和缺陷。 源代码审核方法手动审核和统计认证。在整个软件中•耗时费力的开发生命周期中,容易遗漏30%到70%的代码逻辑设计和编辑工具审核代码缺陷可以通过源代码传递•速度很快,并且被发现通过自动审核。

•可升级的知识库68个“良好”源代码分析工具安全安全审核,不关注功能多层多层软件体系结构,多层平台,多种语言可扩展已扩展规则和扩展的技术知识主要用于分析,开发人员还可以“学习”安全编程的知识集成支持IDE集成,支持make,ant等工具69知识子域:软件安全测试软件测试了解软件测试的基本概念;


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/shouji/article-339400-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 李白
      李白

      但是质监局用假货测试

      • 妫杵臼
        妫杵臼

        而这样的新闻炒作真的是恶心

    热点图片
    拼命载入中...