软件安全开发与编码实践:从基础到应用.pptxVIP

  • 0
  • 0
  • 约2.38千字
  • 约 24页
  • 2026-02-11 发布于北京
  • 举报

软件安全开发与编码实践:从基础到应用.pptx

安全编码

课程内容软件安全开发知识体知识域安全编码知识子域软件安全编码原则软件漏洞含义及分类安全编程基础Web应用安全编程数据安全编程

知识域:安全编码知识子域:软件安全编码理解通用安全编码准则:验证输入、避免缓冲区溢出、程序内部安全、安全调用组件、禁止使用不安全函数等理解使用安全编译技术对提高编码安全水平的作用,了解常用安全编译技术理解源代码审核的目的及方式,了解常见源代码静态审核工具

通用安全编码准则验证输入避免缓冲区溢出程序内部安全安全调用组件禁止使用不安全函数

验证输入安全程序第一道防线是检查每一个不可信的输入DirectXMIDI库,难以检查所有的输入,可能导致IE被恶意利用检查、验证或者过滤输入不让恶意数据进入程序后续处理类似网络中部署防火墙何处检查最初接收数据时(第一次)使用数据时

验证输入——常见输入源命令行参数数量、数据格式、内容环境变量环境变量可能超出期望有的环境变量存储格式存在危险文件不信任可以被不可信用户控制的文件内容不信任临时文件网络来自网络的数据是“高度不可信的”其他来源

验证输入——常见数据类型字符串确定合法范围,拒绝非法字符(串)0(NIL)行结束编码0x0a(unix)0x0d0x0a(dos,windows)0x0d(APPLEMacOS)0x85(IBMOS/390)特定字符系统字符分割字符

验证输入——常见数据类型数字数字检查(正则表达式/ASCII值)负数检查(大数溢出为负数)Sendamil攻击合法范围检查文件名最好不让用户设置文件名避免特殊字符./--rf../com1

验证输入——常见数据类型电子邮件地址限制合法的电子邮件地址UTF-8变长编码URI/URL非法地址在合法地址后面增加恶意内容

避免缓冲区溢出缓冲区溢出缓冲区:包含相同数据类型的实例的一个连续计算机内存块溢出:数据被添加到分配给该缓冲区的内存块之外外部数据比目标空间大是一个非常普遍而且严重的问题

避免缓冲区溢出溢出后果攻击者可以使远程服务程序或者本地程序崩溃攻击者可以设计溢出后执行的代码C/C++语言语言特性决定大量的库函数存在溢出strcpy、strcat、gets等其他语言调用C语言库C#允许设置“不安全”例程

避免缓冲区溢出——解决办法解决办法编码避免缓冲区溢出填充数据时计算边界、动态分配内存、控制输入使用替代的安全函数或函数库使用没有缓冲区溢出问题的函数:strncpy、strncat、C++中std:string使用替代库:Libmib、libsafe使用更新更安全的编译环境,打开具有安全防御机制的安全编译选项StackGuard、ProPolice、/GS非执行的堆栈防御不可在堆栈上执行代码

程序内部安全程序内部接口安全程序内部接口数据的检查assert异常安全处理检测异常,安全处理各种可能运行路径检测到某些错误行为/数据,必须以合适的方式处理,保证程序运行安全必要时立即拒绝服务,甚至不回送详细的错误代码

程序内部安全最小化反馈避免给予不可靠用户过多的信息成功或失败作为跟踪检查的日志可以记录较为详细的信息认证程序在认证前尽量少给信息(版本)如果程序接受了密码,不要返回它避免拒绝服务攻击输入错误尽快返回设置超时延时服务

程序内部安全避免竞争条件访问共享资源时(文件/变量)没有被适当地控制使用原子操作使用锁操作——避免死锁安全使用临时文件很多安全漏洞发生在访问已知文件名或可猜测的临时文件时

安全调用其他组件应用程序实际上几乎都不会是自包含的,它们通常都会调用其他组件底层的操作系统数据库可重用的库网络服务(WEB、DNS)

安全调用其他组件组件安全检查组件文档,搜索相关说明gets随机数使用经过认可的组件尽可能不调用外部命令,如果不得已要调用,必须严格检查参数system、open、exec、

安全调用其他组件返回值安全一定要检查返回值,调用是否成功成功时检查返回值,是否按照期望值处理数据中可能含有NUL字符、无效字符或其他可能产生问题的东西错误时检查错误码传递数据安全视安全需求和安全环境考虑传输加密,包括密码算法和安全协议

禁止使用不安全函数编码中禁止使用的危险函数举例禁止使用strcpy,wcscpy,trcpy,strcpy,_tcscpy,_ftcscpy,_mbscpystrcat,wcscat,trcat,strcat,_tcscat,_ftcscat,_mbscatvsprintf,vswprintf,wvsprintf,wvnsprintf,_vstprintfsprintf,swprintf,wsprintf,wnsprintf,_stprintfgets,_getws,_getts

安全编译使用最新版本编译器与支持工具

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档