软件安全编码和软件安全检测培训.ppt

上传人:xt****7 文档编号:4017481 上传时间:2019-12-30 格式:PPT 页数:26 大小:446.55KB
返回 下载 相关 举报
软件安全编码和软件安全检测培训.ppt_第1页
第1页 / 共26页
软件安全编码和软件安全检测培训.ppt_第2页
第2页 / 共26页
软件安全编码和软件安全检测培训.ppt_第3页
第3页 / 共26页
点击查看更多>>
资源描述
软件安全编码和软件安全测试培训 四川分行信息技术管理部2007 10 目录简介缓冲区溢出SQL注入 2006年全行互联网应用系统安全渗透性测试结果 测试结果综述 续 技术成因分析 大部分漏洞为注入式漏洞和弱口令 漏洞技术成因分布较广泛 SQL 注入漏洞 39 弱口令 23 目录遍历 8 存在未经验证 访问未授权 3 跨站 5 网银客户端 5 网银系统防重放 2 其他 15 渗透性测试漏洞的技术成因分析 渗透性测试漏洞的管理成因分析 管理成因分析 管理成因包括政策遵循 开发过程和运行维护三个方面 通过上图可以看出 漏洞成因在这三方面分布较平均 代码安全检测结果 利用FORTIFY工具软件检测出的三个应用系统的漏洞情况 只要有利益 就有人研究和利用漏洞 系统安全编程 冯 诺伊曼结构存储程序计算机指令和指令所操作的数据都一起放在内存中计算机设计的基本原则 用户的输入 所有用户输入都是非法的 除非被证明不是一半以上的程序安全问题源于缺乏对用户可控数据的处理 WEB程序尤甚所谓用户输入 就是所有可能从客户端接收的数据 而不仅是我们提供给用户的输入框 缓冲区溢出 内存中缓冲区用来存放数据缓冲区自身缺乏相关的机制来防止在保留空间中放入过多的数据 Charname 4 Strcpy name AAAAAAAAAAA 缓冲区溢出原理 缓冲区溢出原理内存映像栈溢出堆溢出其它溢出 缓冲区溢出利用原理 栈溢出利用原理进入函数构造栈帧call指令相当于有个pusheip操作ret指令相当于popeip操作 Charname 4 Strcpy name AAAAAAAAAAA 在内存中的结构 name溢出可能覆盖ebp eip 返回地址 值 随机填充会引起段错误表现为coredump 精确的计算填充可控制程序走向 缓冲区溢出利用原理 栈溢出利用原理覆盖返回地址Win32还可以覆盖SEH结构 缓冲区溢出利用原理 堆溢出利用原理堆缓冲区通过malloc new等分配溢出的目标缓冲区是堆两个相邻块可以分配并保存数据 第一块溢出回覆盖第二块 如果第二块正好是重要数据 各操作系统的堆实现都不相同 利用的难度也大大增加很多操作系统可以获得一次或多次任意地址4字节的写操作 从而获得控制 导致缓冲区溢出的几种方式 错误的比较目标缓冲区演示程序cmpdst c正确的做法应该是比较源数据的长度 小于目标缓冲区才进行拷贝操作ms06 040的windows2000出现过此类错误 cmpdst cVoiddemo char str charbuf 16 if strlen buf 16 strcpy buf str strncpy buf str strlen str 导致缓冲区溢出的几种方式 用源字符串长度做拷贝限制貌似用了带长度限制的安全拷贝函数 实际上等于没用 导致缓冲区溢出的几种方式 strncpy等字符串截断拷贝函数的陷阱演示程序strncpy c如果源字符串长度大于限定长度参数 strncpy会按照限定长度拷贝到目标 但并不会在最后加上字符串结束符 0 这个陷阱可能导致不易察觉的缓冲区溢出 导致缓冲区溢出的几种方式 未初始化栈变量的cat操作演示程序uninitialized cstrcat等函数会对字符串做追加操作栈操作不会清零 会保持原来的垃圾数据不确定的数据追加字符串操作可能导致溢出ms06 040的所有windows都存在这个漏洞 缓冲区溢出防范 编码方面在数据拷贝前做相应的长度检查使用带长度检查的字符串拷贝函数用源代码扫描器 FlowFinder RATS ITS4 粗略检查代码可能存在的安全问题 缓冲区溢出防范 编译方面使用VC7以上版本的编译器编译Windows程序 GS选项默认打开对于有数组变量的函数会加入cookie检查 以判断返回地址是否被修改MicrosoftWindows动画光标畸形ANI头结构远程栈溢出漏洞 缓冲区溢出防范 硬件方面使用带NX功能的处理器 并且在系统打开此功能使用最新的操作系统 比如WindowsXPSP2 Windows2003SP2 WindowsVista以及SELinux或grsecurity类似功能的系统补丁 SQL注入 SQL注入简介select fromnewswhereid id拼接的SQL字符串改变了设计者原来的意图 执行了如泄露 改变数据等操作 甚至控制数据库服务器拼接数据来自用户的直接输入 GET POST COOKIE 拼接数据来自用户的间接输入 约定编码 从数据库取出 SQL注入 SQL注入的原理及危害改变了设计者原来的意图select fromoperatorwhereop name nameandop passwd pwd name or1 1 select fromoperatorwhereop name or1 1 andop passwd SQL注入 SQL注入的解决过滤拼接字符串的数据 尤其不能忽视间接输入数据的SQL语句拼接StringoperatorId request getParameter operatorId if operatorId contains 使用应用扫描器检测程序相对比较明显的SQL注入问题 Stringitem request getParamater item Stringq SELECT FROMrecordsWHEREitem PreparedStatementstmt conn prepareStatement q stmt setString 1 item ResultSetresults stmt execute SQL注入 使用占位符 预编译的方法代替SQL语句拼接 prepare 应该被翻译为数据绑定为数据使用编码量有所增加 谢谢
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!