UDN-企业互联网技术人气社区

板块导航

浏览  : 2404
回复  : 0

[实践集] DevOps实践集——安全测试

[复制链接]
jingyun1的头像 楼主
发表于 2015-7-23 13:50:39 | 显示全部楼层 |阅读模式
1. 安全测试介绍
安全测试的定义:有关验证应用程序的安全等级和识别潜在安全性缺陷的过程。
安全测试的目的:查找软件自身程序中存在的安全隐患,并检查应用程序对非 法侵入的防范能力。
安全测试与普通测试的区别:
nc_security_test_diff.png

2. 安全测试方法
nc_security_test_method.png

3. 安全测试工具
  • DSQLtool
    SQL注入工具,使用了多线程技术,能在极短时间内扫描注入点
  • Safe3WVS
    使用智能化爬虫技术以及SQL注入状态检测技术,速度更快,结果更准确
  • Web Scarab
    OWASP项目的一部分,包含HTTP代理,网络爬行,会话ID分析,模糊测试工具等等,是使用最为广泛的代理软件之一
  • ZAP
    OWASP项目的一部分, 是一款易于使用交互式的用于WEB应用程序漏洞挖掘的渗透测试工具
  • Burp Suite
    是用于攻击WEB应用程序的集成平台,包含了许多工具,所有的工具都共享一个能处理并显示HTTP消息,一个强大的可扩展框架
  • Dex2jar
    一款用于将Android的Dalvik Executable(.dex) format 文件转成java类文件的工具
  • JD_GUI
    一款能够显示java源代码类文件的独立图形界面,可以浏览与重建源代码的即时访问方法
  • APKtool
    GOOGLE提供的APK编译工具,能够反编译与回编译apk
4. OWASP TOP3
OWASP: 开放式Web应用程序安全项目(OWASP)是一个非营利组织,不附属于任何企业或财团。因此,由OWASP提供和开发的所有设施和文件都不受商业因素的影响。OWASP每隔几年都会发布,在近几年Web中十个最严重的安全隐患
nc_security_owasptop10.png

4.1 SQL注入
通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。如:
  • 在业务查询时,绕过查询条件限制返,回权限之外的数据
  • 在登录系统时,不输入正确口令的情况下完成登录,WebGoat
nc_security_test_sql_injection.png

4.2 失效的身份认证和会话管理
攻击者破坏密码、密匙、会话令牌或攻击其他的漏洞去冒充其他用户的身份。如:
  • 用户身份验证凭证没有使用哈希或加密保护
  • 认证凭证可猜测,或者能够通过薄弱的的帐户管理功能重写
  • 会话ID暴露在URL里
  • 会话ID容易受到会话固定的攻击
  • 会话ID没有超时限制,或者用户会话或身份验证令牌。特别是单点登录令牌在用户注销时没有失效
  • 成功注册后,会话ID没有轮转
  • 密码、会话ID和其他认证凭据使用未加密连接传输
示例:
会话ID暴露在URL里
机票预订应用程序支持URL重写,把会话ID放在URL里:http://example.com/sale/saleitem ... CJUN2JV?dest=Hawaii
该网站一个经过认证的用户希望让他朋友知道这个机票打折信息。他将上面链接通过邮件发给他朋友们,并不知道自己已经泄露了自己的会话ID。当他的朋友们使用上面的链接时,他们将会使用他的会话和信用卡。
4.3 跨站脚本攻击
当应用程序收到含有不可信的数据,在没有进行适当的验证和转义的情况下,就将它发送给一个网页浏览器,这就会产生跨站脚本攻击(简称XSS)。XSS允许攻击者在受害者的浏览器上执行脚本,从而劫持用户会话、危害网站、或者将用户转向至恶意网站。
例: 修改业务系统中某项信息为脚本,完成脚本注入,WebGoat。
5. 测试案例
5.1 SQL注入测试
手工测试:
  • 在待验URL的参数值后面加上and 1=1 ,and 1=2
  • 在页面输入框内输入’or’1’=‘1等
工具测试SQL注入
  • 使用DSQLTool注入工具进行测试
  • 使用Safe3 Web扫描测试工具进行测试
示例:
nc_security_test_dsqltool.png
nc_security_test_safe3web.png


5.2 失效的身份认证和会话管理测试
nc_security_test_unvalid_session.png

  • 身份信息维护方式测试
    请求特定业务应用,观察,修改WebScarab拦截信息。
    用户在进行薪资查询的时候,使用WebScarab拦截,观察拦截信息中是否包含用户身份信息。 若不包含,则完成测试,无漏洞; 若包含,修改拦截的身份信息,观察返回结果是否是修改后的身份信息的结果。若不是,则无漏洞;若是,则存在漏洞
    nc_security_test_session_01.png
  • Cookie存储方式测试
  • 请求不同的业务应用,观察URL。若存在Session ID(可能是SID,Jsession ID等)信息,则存在漏洞
  • 用户注销登录的方式测试
    请求不同的业务应用,观察返回页面。所有页面中都需要有明确的“退出”或者“注销”(或类似)按钮,若没有则存在漏洞
  • 会话超时时间测试
    登录业务系统后,不进行任何操作,闲置浏览器若干分钟(10~15min)。刷新界面或者提交请求,查看是否出现提示用户重新登录,若无提示,则存在漏洞。
5.3 跨站脚本(XSS)测试
手工测试
  • GET方式跨站脚本测试:
    将待验URL的参数值value改为:
    若返回的页面弹出123456警告框,则存在漏洞;
    若返回的页面没有弹出警告框,再在返回的页面右键查看页面源代码,若包含完整的字符串,则存在漏洞。
  • POST方式跨站脚本测试:
    在POST表单中逐条输入
    判断方式与GET相同。
    nc_security_test_xss_tool.png

5.4 移动应用安全测试
移动APP常见安全漏洞及风险
  • 通过工具apktool、Dex2jar、jd-gui、DDMS签名工具,可以对任何一个未加密应用进行静态破解,窃取源码
  • 通过获取root权限,对手机中应用储存的数据进行窃取、编辑、转存等恶意行为,直接威胁用户隐私
  • 通过对系统输入法攻击,从而对用户填写的隐私信息进行截获、转存等恶意操作,窃取敏感信息
  • 通过设置代理或使用第三方抓包工具,对应用发送与接收的数据包进行截获、重发、编辑、转存等恶意操作
移动APP安全测试方法
  • HTTP[S]代理抓包
    通过burpsuite获取APP请求的数据包,观察是否存在敏感信息泄露和测试是否存在SQL注入等问题
  • 检查打包过程
    查看打包前有无敏感信息
  • 反编译APP
    通过反编译软件译出JAVA源代码,导致源码泄露。
测试工具
  • HTTP[S]代理抓包测试
    nc_security_test_app_http.png
  • 反编译测试
    nc_security_test_app_apk.png

附:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部