我们在之前给大家介绍过如何提高软件开发的安全性,是希望大家在设计软件时能够避免出现一些问题,节省整个项目的周期,也能够希望企业在进行软件开发时能够注意这些问题,避免一些不必要的成本浪费。但不论是软件技术人员还是企业,都应当了解一些常见的软件程序攻击行为。
应用攻击
应用层是难防御的。这里遇到的漏洞往往依赖于难以用入侵检测签名定义的复杂用户输入场景。对于软件开发来说,应用层也是容易接触和容易暴露的。要使应用程序运行,必须可以通过端口80(HTTP)或端口443(HTTPS)进行访问。
在下图中,软件就完全暴露于外部世界,有防火墙和入侵防御系统等网络防御:
SQL注入是一种应用程序攻击,在2014年占了所有软件数据泄露份额的8.1%。这使它成为第三大攻击类型,恶意软件和分布式拒绝服务攻击。还有一些其他常见应用程序攻击,例如安全配置错误,使用有已知漏洞的组件和跨站点脚本。攻击者能够在不被网络防御系统检测到的情况下操纵应用输入并获取机密数据。
在Web应用的专有代码中发现的大多数漏洞在安全防御系统中是未知的;这些被称为零日漏洞。因为这些漏洞针对每个应用程序都是特定的,以前从未被人知晓。熟练的攻击者可以轻松找到这些漏洞并利用这个漏洞,不会被检测到。
对这些攻击的佳防御就是在软件开发时增加安全设置。开发人员必须意识到应用程序是如何被攻击的,并将软件防御构建到其应用程序中。
无效的重定向和转发
这种类型的漏洞被用于钓鱼攻击,受害者被欺骗导航到恶意网站。攻击者可以操纵受信任站点的URL重定向到不需要的位置。
使用已知漏洞的组件
此类别是关于使用未打补丁的第三方组件。攻击者一般都是利用旧的第三方组件,因为它们的漏洞已被公布,通常黑客利用这些缺陷。可以轻松的对软件进行攻击。
跨站点请求攻击
它允许攻击者在不知情的情况下欺骗用户执行操作。
缺少功能级别访问控制
此类别包括较低权限或未经身份验证的用户隐藏更高权限功能的情况,而不是通过访问控制强制实施。
敏感信息窃取如何提高软件开发的安全性如何提高软件开发的安全性如何提高软件开发的安全性如何提高软件开发的安全性如何提高软件开发的安全性如何提高软件开发的安全性如何提高软件开发的安全性如何提高软件开发的安全性如何提高软件开发的安全性如何提高软件开发的安全性如何提高软件开发的安全性
软件开发时信息在传输时缺少数据加密算法。如果您的软件没有正确保护敏感数据(如信用卡或身份验证凭据),攻击者可以窃取或修改数据,利用这些漏洞来获取用户的信息。