安全测试

什么是安全测试?

安全测试是一种软件测试,可发现软件应用程序中的漏洞,威胁,风险并防止来自入侵者的恶意攻击。 安全测试的目的是确定软件系统的所有可能漏洞和弱点,这些漏洞和弱点可能导致信息,收入损失,组织雇员或外部人员的声誉受损。

安全测试的目标是识别系统中的威胁并衡量其潜在漏洞,以使系统不会停止运行或被利用。 它还有助于检测系统中所有可能的安全风险,并帮助开发人员通过编码解决这些问题。

安全测试举措

  • 保密 - 它可以防止向非预期接收者披露信息。
  • 完整性 - 它允许从发送者向预期接收者传输准确和正确的所需信息。
  • 身份验证 - 验证并确认用户的身份。
  • 授权 - 它指定对用户和资源的访问权限。
  • 可用性 - 确保准备就绪的信息。
  • 不可否认性 - 它确保发送者或接收者不会拒绝发送或接收消息。

常见的安全漏洞

SQL注入攻击

SQL注入攻击(SQL Injection):简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。由于在设计程序时,忽略了对输入字符串中夹带的SQL指令的检查,被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,甚至执行系统命令等,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害。

文件上传漏洞

文件上传漏洞是指由于程序代码未对用户提交的文件进行严格的分析和检查,导致攻击者可以上传可执行的代码文件,从而获取Web应用的控制权限(Getshell)。

权限漏洞

访问控制是指用户对系统所有访问的权限控制,通常包括水平权限和垂直权限。
访问控制问题是所有业务系统都可能产生的逻辑类漏洞,很难通过日常的安全工具扫描或防护,通常会造成大量用户数据泄露事件。

  • 水平越权:同一权限(角色)级别的用户之间所产生的问题,如A用户可以未授权访问B用户的数据等。
  • 垂直越权:不同权限(角色)级别的用户之间所产生的问题,如普通用户可未授权进行管理操作,未登录用户可以访问需授权应用等。
暴力破解

暴力破解是指攻击者通过遍历或字典的方式,向目标发起大量请求,通过判断返回数据包的特征来找出正确的验证信息,从而绕过验证机制。
随着互联网众多网站的数据库被泄露,攻击者选择的样本可以更具针对性,暴力破解的成功率也在不断上升。

拒绝服务攻击

拒绝服务攻击(DoS,Denial of Service)是利用合理的请求造成资源过载,从而导致服务不可用的一种攻击方式。
分为针对Web应用层的攻击、客户端/APP的攻击。

敏感信息泄露

敏感信息泄露是指包括用户信息、企业员工信息、内部资料等不应当被外部访问到的数据通过网站、接口、外部存储等途径被未授权泄露到外部的漏洞。
信息泄露漏洞会导致大量用户或企业信息被恶意利用,进行诈骗、账户窃取等,给用户和企业带来严重的不良影响。并且信息一旦信息被泄露,影响会很难消除。

业务逻辑漏洞

业务逻辑漏洞是指由于业务在设计时考虑不全所产生的流程或逻辑上的漏洞,如用户找回密码缺陷,攻击者可重置任意用户密码;如短信漏洞,攻击者可无限制利用接口发送短信,恶意消耗企业短信资费,骚扰用户等。
业务逻辑漏洞跟业务问题贴合紧密,常规的安全设备无法有效检测出,多数需要人工根据业务场景及特点进行分析检测。

跨站脚本攻击(XSS)

跨站脚本攻击(XSS, Cross Site Script)通常指黑客通过“HTML注入”篡改了网页,插入恶意脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。
XSS漏洞可被用于用户身份窃取(特别是管理员)、行为劫持、挂马、蠕虫、钓鱼等。XSS是目前客户端Web安全中最重要的漏洞。

XSS按效果的不同可以分为以下3种。

  • 反射型XSS攻击:页面仅把用户输入直接回显在页面或源码中,需要诱使用户点击才能成功。
  • 存储型XSS攻击:XSS攻击代码会被存储在服务器中,由于用户可能会主动浏览被攻击页面,此种方法危害较大。
  • DOM型XSS攻击:通过修改页面的DOM节点形成XSS,严格来讲也可划为反射型XSS。
    跨站点请求伪造(CSRF)
    跨站点请求伪造(CSRF, Cross Site Request Forgery)。由于重要操作的所有参数都是可以被攻击者猜到,攻击者即可伪造请求,利用用户身份完成攻击操作,如发布文章、购买商品、转账、修改资料甚至密码等。