- 1、本文档共187页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 电子商务安全技术 第3章 电子商务安全技术 安全目标和威胁的对象 计算机安全包含三个重要的安全目标:机密性、完整性、可用性。 多数威胁都是以破坏机密性、完整性和可用性为目标。 威胁实施者主要包括:自然现象、偶然事件、无恶意的用户和恶意攻击者。 威胁的对象主要包括软件、硬件、数据和通信线路这四种资源。 适度安全准则 上述三个安全目标之间可能存在彼此矛盾。 在安全目标中找到一个恰当的平衡点。 根据实际需要,提供适度的安全目标加以实现; 计算机资源被保护的程度应该与它们的价值是一致的。 机密性与可用性的平衡关系 第3章 电子商务安全技术 3.1 程序安全 3.2 操作系统安全 3.3 数据库安全 3.4 网络安全 3.1 程序安全 3.1.1 程序漏洞 3.1.2 恶意代码 3.1.1 程序漏洞 三种典型的非恶意程序漏洞: 缓冲区溢出; 不完全输入验证; “检查时刻到使用时刻”错误 缓冲区溢出 缓冲区是一个用于存储数据并且容量有限的内存空间。 1 char buffer[10]; 2 for (i=0;i=10;i++) 3 buffer[i]=‘A’; 在数据存储过程中,若超过了缓冲区的最大容量,则将发生缓冲区溢出。 缓冲区溢出是最为常见的一种安全漏洞。 缓冲区溢出的位置可以出现在任何地方,如堆栈、堆和静态数据区等。 目标程序运行时存储区的典型划分 缓冲溢出(续) 当出现缓冲溢出,运行的程序可能以下三种情况: 运行正常 被覆盖的是无用数据,并且没有发生访问违例; 运行出错 包括输出错误和非法操作等; 受到攻击,程序开始执行有害代码。 攻击者精心设计覆盖哪些数据以及用什么数据来覆盖。 缓冲区溢出攻击方法 攻击者可以利用缓冲区溢出漏洞,恶意造成缓冲区溢出: 1.将对应于机器代码指令的数据写入到缓冲区从而将攻击代码植入到被攻击程序的地址空间; 2.攻击者通过寻求触发攻击代码的方法来获得目标系统的控制权。 获得目标系统控制权的方法 获得目标系统控制权的最常见手段: 修改堆栈指针 修改返回地址。 运行时的堆栈分配 缓冲区溢出发生在堆栈空间 stack缓冲区溢出例子 void OutputString (char* str) { char buffer[8]; strcpy(buffer, str); printf(Input is %s\n, buffer);} int main(int argc, char** argv) { OutputString(argv[1]); return 0; } Stack溢出实例结果 Heap区缓冲区溢出 Heap就是由应用程序申请动态分配的内存区。 在编译的时候被初始化。 目标程序运行时,对内存的动态申请是发生在Heap(堆)里的。 C语言可以采用malloc()从Heap中申请相应的空间,采用free()释放相应的空间; C++语言可以采用new()从Heap中申请相应的空间,采用delete()释放相应的空间; Heap区缓冲区溢出实例 ?#include stdio.h ?#include stdlib.h ?#include unistd.h ?#include string.h ?#define BUFSIZE 16 #define OVERSIZE 8 /* 将覆盖buf2的前OVERSIZE个字节 */ int main() { u_long diff; Heap区缓冲区溢出实例(二) char *buf1 = (char *)malloc(BUFSIZE); char *buf2 = (char *)malloc(BUFSIZE); diff = (u_long)buf2 - (u_long)buf1; printf(buf1 = %p, buf2 = %p, diff = %d bytes\n, buf1, buf2, diff); memset(buf2, A, BUFSIZE-1); buf2[BUFSIZE-1] = \0; printf(before overflow: buf2 = %s\n, buf2); memset(buf1, B, (u_int)(diff + OVERSIZE)); printf(after overflow: buf2 = %s\n, buf2); …… return 0;} 溢出前Heap区分配 溢出后Heap区分配 防御手段 基于探测方法的防御措施: 不完全输入验证 当程序接受到被认为不可能出现的输入时,程序将可能会出现故障。 避免不完全输入验证的最重要的规则就是:一个安全的程序不应该完全信任来自外界的任何输
您可能关注的文档
- 第8章金属基复合制备中的凝固问题汇总.ppt
- 第3章:口令破解与防御技术汇总.ppt
- 第8章经济周期与经济增长理论汇总.ppt
- 第8章竞争法律制度汇总.ppt
- 第8章聚合物填充体系与短纤维增强体系汇总.ppt
- 自己的事自己干课题.ppt
- 第8章库存管理汇总.ppt
- 第3章:外币业务会计8-9汇总.ppt
- 第8章跨境股权融资——跨境上市汇总.ppt
- 第3章__无机气硬性胶凝汇总.ppt
- 考试方式和试卷结构.pptx
- 2025年宜春市新高三暑假复习语文试题卷附答案解析.docx
- 2024学年东营市高二英语下学期期末质量监测试卷附答案解析.docx
- 2024学年黄石市高二英语下学期期末统一测试卷附答案解析.docx
- 第17课 中国古代的户籍制度与社会管理 课件-高二上学期历史统编版(2019)选择性必修1国家制度与社会治理.pptx
- Unit 2(复习课件)-一年级英语下学期期中复习(北京版2024).pptx
- Unit 2 Lesson 7 I like sunny days(课件)-三年级英语下学期(北京版2024).pptx
- 第七课 近代殖民活动和人口的跨地域转移 课件-高二历史下学期历史统编版(2019)选择性必修3文化交流与传播.pptx
- 第3讲 中华文明的曲折与鼎盛——魏晋隋唐时期 课件--高三统编版(2019)历史二轮复习.pptx
- 第11讲 多元与交流的时代——世界古代文明 课件--高三统编版(2019)历史二轮复习.pptx
文档评论(0)