软件安全-02-典型软件安全问题与威胁分析课件

上传人:29 文档编号:242697297 上传时间:2024-09-01 格式:PPT 页数:57 大小:247.69KB
返回 下载 相关 举报
软件安全-02-典型软件安全问题与威胁分析课件_第1页
第1页 / 共57页
软件安全-02-典型软件安全问题与威胁分析课件_第2页
第2页 / 共57页
软件安全-02-典型软件安全问题与威胁分析课件_第3页
第3页 / 共57页
点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,软件安全,UESTC-INTEL IA JOINT LAB,软件安全技术,示范性软件学院软件技术系 郭建东,软件安全技术示范性软件学院软件技术系 郭建东,第,2,部分 典型软件安全问题,2.1,安全问题的来源,2.2,常见的设计问题,2.3,语言问题,2.4,平台问题,2,.5 OWASP,第2部分 典型软件安全问题2.1 安全问题的来源,2.1,安全问题的来源,2.1 安全问题的来源,安全问题的根本来源:,漏洞,漏洞是软件的属性,攻击者,软件存在的攻击路径攻击面问题,安全问题的根本来源:漏洞,产生漏洞的原因,(,1,) 软件或协议设计时的瑕疵,协议定义了网络上计算机会话和通信的规则,如果在协议设计时存在瑕疵,那么无论实现该协议的方法多么完美,它都存在漏洞。,(,2,) 软件或协议实现中的弱点,即使协议设计得很完美,实现协议的方式仍然可能引入漏洞。,产生漏洞的原因(1) 软件或协议设计时的瑕疵,(,3,) 软件本身的瑕疵,良好的、编写安全程序的的编程习惯。,(,4,) 系统和网络的错误配置,这一类的漏洞并不是由协议或软件本身的问题造成的,而是由服务和软件的不正确部署和配置造成的。,(3) 软件本身的瑕疵,意外行为和缺陷,意外行为,(,Unexpected Behavior,):也称程序安全缺陷,是由于程序脆弱性引起的不适当的程序行为。,缺陷(,Flaw,):缺陷可以是故障(,Fault,),或者失效(,Failure,),程序安全缺陷可能来源于任何种类的软件错误:,无意或疏忽的,故意或有意的,意外行为和缺陷意外行为(Unexpected Behavio,缺陷的类型,(,Types of Flaws,),:,Landwehr et al.,提出了程序缺陷分类方法(,taxonomy,),有意的缺陷,( Intentional,,故意的,),恶意的(,Malicious,),非恶意的(,Nonmalicious,),缺陷的类型(Types of Flaws) :Landweh,无意中的缺陷(,Inadvertent,,不注意的;疏忽的),确认错误(,Validation,(验证;合法性,有效),error,),(incomplete / inconsistent),域的错误(,Domain error,),顺序化和混淆现象(,Serialization and aliasing,),不完全的身份识别和认证(,Inadequate identification and authentication,),边界条件违反(,Boundary condition violation,),其它可利用的逻辑错误(,Other exploitable logic errors,),无意中的缺陷( Inadvertent,不注意的;疏忽的),漏洞的两种类型,:,软件漏洞包括设计漏洞和实现漏洞。漏洞是软件安全威胁的根源,.,设计漏洞:,设计错误,往往发现于软件的安全功能特性中。,实现漏洞:,来源于软件实际编码中的安全缺陷。,漏洞的两种类型:软件漏洞包括设计漏洞和实现漏洞。漏洞是软件安,APPLE DEVELOPER,常见软件缺陷,buffer overflows,缓冲区溢出,unvalidated input,未校验输入,race conditions,资源竞争,access-control problems,访问控制问题,weaknesses in authentication, authorization, or cryptographic practices,认证、授权、加密缺陷,APPLE DEVELOPER常见软件缺陷buffer ov,2.2,常见的安全设计问题,2.2 常见的安全设计问题,创建自己的密码技术,选用了不当的密码技术,依赖隐蔽式安全,编写到程序中的密钥,错误地处理私密信息,常见的安全设计问题,1:,密码技术使用的败笔,创建自己的密码技术常见的安全设计问题1: 密码技术使用的败笔,常见的安全设计问题,2:,对用户及其许可权限进行跟踪的薄弱或缺失,会话管理薄弱或者缺失,身份鉴别薄弱或缺失,授权薄弱或缺失,常见的安全设计问题2: 对用户及其许可权限进行跟踪的薄弱或,常见的安全设计问题,3:,有缺陷的输入验证,没有在安全的上下文环境中执行验证,如在服务器验证而在客户端没有验证,验证例程不集中,验证应尽可能靠近用户输入,并应集中以便于核实,不安全的组件边界,常见的安全设计问题3: 有缺陷的输入验证,常见的安全设计问题,4:,薄弱的结构性安全,过大的攻击面,在过高权限级别上运行进程,没有纵深防御,失效时的处理不安全,常见的安全设计问题4:薄弱的结构性安全过大的攻击面,常见的安全设计问题,5:,其他设计缺陷,代码和数据混在一起,错将信任寄予外部系统,不安全的默认值,未做审计日志,常见的安全设计问题5:其他设计缺陷,2.3,编程语言的问题,2.3 编程语言的问题,问题,1,:没有安全的本地字符串类型,,也没有安全而易用的字符串处理函数。,2.3.1 C/C+,的问题,问题1:没有安全的本地字符串类型,2.3.1 C/C+的问,C/C+,问题,1,:,C,中以,NULL,终止符表示一个字符串的末尾。,如:,Char buffer=“small string”,s,m,a,l,l,s,t,r,i,n,g,没有确切地存储字符串的长度,该字符串的长度要,程序员管理。,当程序员处理这个长度犯错时,就会导致超过缓冲,区结尾部分的内存被覆盖。,C/C+问题1:C中以NULL终止符表示一个字符串的末尾。,缓冲区溢出(,Buffer Overflow,),一个最典型的例子:,例:,char sample10;,for (i=0; isizeof(kbuf),return -1; /*1*/,return memcpy(kbuf, buf, len); /*2*/,整数溢出例子:Int copy_something(char,在,1,利用符号整数进行了一次边界检查;,如果能够控制程序,传递一个负值给,len,,则可能通过,1,的检查;,在,2,中,,memcpy,接受无符号数作为长度,,len,被解释为一个大的无符号数,导致超越缓冲区,kbuf,的末尾;,具有讽刺意味的是:,1,所进行的边界检查是为了预防缓冲区溢出。,在 1 利用符号整数进行了一次边界检查;,2.4,平台的实现问题,2.4 平台的实现问题,平台是指程序在其中所运行的环境,包括操作系统以及与之交互的组件。,威胁的来源:,软件与用户的交互,软件与网络交互,软件与文件系统交互,软件依赖,OS,产生新的子进程,软件与其他进程通信,其他,平台是指程序在其中所运行的环境,包括操作系统以及与之交互的组,平台问题,1,:符号链接,符号链接(,Symbolic link,简写为,symlink,):文件系统中指向其他文件的文件。符号链接等效于其指向的文件。程序打开的是一个符号链接,实际打开的是该符号链接指向的文件。,平台问题1:符号链接符号链接(Symbolic link,符号链接问题:,攻击者可以使用程序预计要操作的文件名创建一个符号链接,使该文件名指向希望的文件;,利用符号链接,攻击者事实上可以启动系统中的任何程序。,符号链接问题:攻击者可以使用程序预计要操作的文件名创建一个符,针对符号链接:,程序员或使用者创建、打开、删除文件,或更改文件权限,必须检查该文件的符号链接,不可以基于文件名做任何安全方面的判定。,权限攻击的例子:如果程序以攻击者没有的权限运行,比如作为,SUID,(系统用户身份),攻击者可以借此发动一次权限提升。,针对符号链接:程序员或使用者创建、打开、删除文件,或更改文件,平台问题,2,:目录遍历,典型例子:,CIFS,是,WINDOWS,的文件共享协议,允许计算机通过网络访问彼此的文件系统。,利用目录遍历,攻击者可通过使用“,.”,符号上升到文件系统的上一级目录,从而对文件共享程序进行欺骗,进而获得对不在共享目录下的目录进行访问。,平台问题2:目录遍历典型例子:,平台问题,3,:字符转换,平台支持不同类型的字符编码,存在多种不同的表示某个字符的方式。,程序接受用户的输入,为了满足安全需求,通常会要求进行安全检查,以确保输入的字符串对该程序设计是有效的。,当平台进行升级的时候可能会引入新的字符编码。,平台问题3:字符转换平台支持不同类型的字符编码,存在多种不同,字符转换问题例子:,MS IIS5.0,的一个有名的漏洞:按照安全设计,只允许执行脚本所在目录下的程序,但攻击者却可以执行服务器上的任何程序。,在,IIS5,中,对用户的请求会进行检查,确保没有“,./”,这样的字符串。“,./”,允许攻击者指定位于脚本目录之外的程序。,IIS5,检查了“,./”,,但是没有考虑到这个字符串会以其他编码形式存在。,字符转换问题例子:MS IIS5.0的一个有名的漏洞:按照安,常见的应用程序安全问题,引起原因:,应用程序的某个组件的恶意数据引起,这些恶意数据在其另一个组件中被当作了合法代码;,对涉密信息的不当处理,常见的应用程序安全问题引起原因:,应用安全问题,1,:,SQL,注入,攻击者通过操纵程序的某种输入,在连接到,SQL,数据库的应用程序上执行自己所构造的查询。,预防,SQL,攻击方法:,过滤所有输入,确保输入字段只包含所需要的字符;,尽量避免使用动态生成的,SQL,。,应用安全问题1:SQL注入攻击者通过操纵程序的某种输入,在连,应用安全问题,2,:跨站点执行脚本,利用,Internet,上某些环境(或,WEB,站点)的受信任级别高于其他环境。,来自非受信环境的攻击者可在受信的环境注入数据,使其在受信环境作为脚本予以执行。,跨站点执行脚本还可以用来访问数据,如用户,cookies,。,应用安全问题2:跨站点执行脚本利用Internet上某些环境,站点,C,站点,A,站点,B,C,信任,A,A,信任,B,站点C 站点A 站点B C信任AA信任B,跨站点执行脚本例子:,Step1,,,A,使用其信任的金融机构的,WEB,站点,该站点要求其输入自己的用户名和密码,Step2,,,B,编写了一些,JavaScript,代码,用于检索运行了这些代码的已登录用户的,session ID,(会话标识符),Step3,,,B,给,A,发送嵌入了这些代码的消息,Step4,,,A,阅读,B,的消息,其,session ID,发给了,B,Step5,,,B,使用,A,的,session ID,对,A,进行会话劫持,Step6,,,B,已可以使用,A,的身份使用该站点,跨站点执行脚本例子:Step1,A使用其信任的金融机构的WE,2.6,开发过程问题,安全需求和前提条件的文档记录缺乏,交流和文档匮乏,缺少安全过程,2.6 开发过程问题安全需求和前提条件的文档记录缺乏,部署上的薄弱性,部署的执行者一般不属于开发团队,软件错误地设置文件或注册表的键值,使系统上的其他用户可以进行更改,使软件安装时具有不必要的权限。,部署上的薄弱性部署的执行者一般不属于开发团队,部署薄弱性示例:,Apache,与,IIS,早期,IIS,(,4.0,和,5.0,)要求以,Local System,的身份运行;,Apache,启动时以,root,身份运行,随后降低权限,最终以低权限的用户运行,典型,UNIX,用户是,nobody,部署薄弱性示例:Apache与IIS早期IIS(4.0和5.,2.5 OWASP,2.5 OWASP,关于,OWASP,:,The Open Web App,lication Security Project,OWASP Top 10,关于OWASP:The Open Web Applicati,A1-,注入:,注入攻击漏洞,例如,SQL,,,OS,以及,LDAP,注入,这些攻击发生在当不可信的数据作为命令或,者查询语句的一部分,被发送给解释器的时候,攻击者发送的恶意数据可以欺骗解释器,以执行计划外的命令或者在未被恰当授权时访问数据。,A1-注入:注入攻击漏洞,例如SQL,OS 以及LDAP注入,A2-,失效的身份认证:,与身份认证和会话管理相关的应用程序功能往往得不到正确的实现,这就导致了攻击者破,坏密码、密匙、会话令牌或攻击其他的漏洞,以冒充其他用户的身份。,A2-失效的身份认证:与身份认证和会话管理相关的应用程序功能,A3-,跨站脚本:,当应用程序收到含有不可信的数据,在没有进行适当的验证和转义的情况下,就将它发送给一个网页浏览器,这就会产生跨站脚本攻击(简称,XSS,)。,XSS,允许攻击者在受害者的浏览器上执行脚本,从而劫持用户会话、危害网站、或者将用户转向至恶意网站。,A3-跨站脚本:当应用程序收到含有不可信的数据,在没有进行适,A4-,不安全的直接对象引用:,当开发人员暴露一个对内部实现对象的引用时,例如,一个文件、目录或者数据库密匙,就会产生一个不安全的直接对象引用。在没有访问控制检测或其他保护时,攻击者会操控这些引用去访问未授权数据。,A4-不安全的直接对象引用:当开发人员暴露一个对内部实现对象,A5-,安全配置错误:,好的安全需要对应用程序、框架、应用程序服务器、,web,服务器、数据库服务器和平台定义并执行安全配置。由于许多设置的默认值并不是安全的,因此,必须定义、实施和维护这些设置。这包含了对所有的软件保持及时地更新,包括所有应用程序的库文件。,A5-安全配置错误:好的安全需要对应用程序、框架、应用程序服,A6-,敏感信息泄漏:,许多,Web,应用程序没有正确保护敏感数据,如信用卡,税务,ID,和身份验证凭据。攻击者可能会窃取或篡改这些弱保护的数据以进行信用卡诈骗、身份窃取,或其他犯罪。敏感数据值需额外的保护,比如在存放或在传输过程中的加密,以及在与浏览器交换时进行特殊的预防措施。,A6-敏感信息泄漏:许多Web应用程序没有正确保护敏感数据,,A7-,功能级访问控制缺失:,大多数,Web,应用程序的功能在,UI,中可见以前,验证功能级别的访问权限。但是,应用程序需要在每个功能被访问时在服务器端执行相同的访问控制检查。如果请求没有被验证,攻击者能够伪造请求以在未经适当授权时访问功能。,A7-功能级访问控制缺失:大多数Web应用程序的功能在UI中,A8-,跨站请求伪造(,CSRF,),一个跨站请求伪造攻击迫使登录用户的浏览器将伪造的,HTTP,请求,包括该用户的会话,cookie,和其他认证信息,发送到一个存在漏洞的,web,应用程序。这就允许了攻击者迫使用户浏览器向存在漏洞的应用程序发送请求,而这些请求会被应用程序认为是用户的合法请求。,A8-跨站请求伪造(CSRF)一个跨站请求伪造攻击迫使登录用,A9-,使用含有已知漏洞的组件:,组件,比如:库文件、框架和其它软件模块,几乎总是以全部的权限运行。如果一个带有漏洞的组件被利用,这种攻击可以造成更为严重的数据丢失或服务器接管。应用程序使用带有已知漏洞的组件会破坏应用程序防御系统,并使一系列可能的攻击和影响成为可能。,A9-使用含有已知漏洞的组件:组件,比如:库文件、框架和其它,A10-,未验证的重定向和转发,Web,应用程序经常将用户重定向和转发到其他网页和网站,并且利用不可信的数据去判定目的页面。如果没有得到适当验证,攻击者可以重定向受害用户到钓鱼软件或恶意网站,或者使用转发去访问未授权的页面。,A10-未验证的重定向和转发Web应用程序经常将用户重定向和,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


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

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


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