zoukankan      html  css  js  c++  java
  • 代码审核:安全性测试方案

    安全性测试方案

    一、静态代码测试

    主要通过对源代码进行安全扫描,根据程序中数据流、控制流、语义等信息与其特有软件安全规则库进行匹对,从中找出代码中潜在的安全漏洞。

     

    代码审计工具RIPS:

     

    介绍:RIPS是一个用php编写的源代码分析工具,它使用了静态分析技术,能够自动化地挖掘PHP源代码潜在的安全漏洞。渗透测试人员可以直接容易的审阅分析结果,而不用审阅整个程序代码。由于静态源代码分析的限制,漏洞是否真正存在,仍然需要代码审阅者确认。RIPS能够检测XSS, SQL注入, 文件泄露,Header Injection漏洞等。

     

    官方网站:http://rips-scanner.sourceforge.net/

     

    使用方法:下载后解压到web目录,然后访问此目录,输入需检测的路径(/var/www/web1)后提交(即点击“SCAN”按钮)。

     

    测试示例:

    对于前台功能的测试结果如下图,根据提示找到对应代码并修复。

    测试分析:

    ①前端使用$_FILE获取参数易导致跨站攻击。对于文件上传,可以使用TP自带的上传功能。

    API项目部分参数使用$_POST$_GET方式获取参数易导致跨站攻击。

    ③后端使用的Ueditor插件上传部分可能引起跨站攻击,应注意对Ueditor进行相关配置。

    二、动态渗透测试

    使用自动化工具或者人工的方法模拟黑客的输入,对应用系统进行攻击性测试,从中找出运行时刻所存在的安全漏洞。以反向安全性测试为主(即事先检查哪些地方可能存在安全隐患,然后针对这些可能的隐患进行测试)。

    1、建立缺陷威胁模型

    建立缺陷威胁模型主要是从已知的安全漏洞入手,检查软件中是否存在已知的漏洞。建立威胁模型时,需要先确定软件牵涉到哪些专业领域,再根据各个专业领域所遇到的攻击手段来进行建模。

    涉及领域有:①操作系统

    ②服务器环境:数据库漏洞、运行语言、服务器

    ③应用程序:开发框架漏洞、业务逻辑漏洞等

    2寻找和扫描入侵点

    检查威胁模型里的哪些缺陷可能在本软件中发生,再将可能发生的威胁纳入入侵点矩阵进行管理。如果有成熟的漏洞扫描工具,那么直接使用漏洞扫描工具进行扫描,然后将发现的可疑问题纳入入侵点矩阵进行管理。

    安全领域

    安全漏洞

    Web应用

    SQL注入

    跨站攻击(XSS

    跨站请求伪造(CSRF

    分布式拒绝服务攻击(DDOS

    文件上传

    暴力破解

    Cookie/Session安全

    数据加密

    越权操作

    开发框架漏洞

    Web服务器

    目录遍历漏洞

    不安全的配置管理

    操作系统

    缓冲区溢出

    文件执行

    不安全的配置管理

    3入侵矩阵的验证测试

    1)系统测试

    使用360网站安全检测http://webscan.360.cn/)进行测试。

    测试注意:实际测试时,应在测试完一遍以后,将登陆模块注释掉,并初始化用户信息,以便进入个人中心进行测试。测试时建议先清空缓存文件。

    测试结果示例:

     

    2)工具测试

    使用AWVS进行测试。

    下载地址:http://www.freebuf.com/sectool/13103.html  (或去官方网站下载)

    使用教程:http://www.jb51.net/hack/497815.html

    测试注意事项:由于阿里云的安全防护功能,测试可能会被当做攻击而被拦截。因此测试前需要将IP地址加入阿里云白名单,具体可参照360网站安全检测添加IP到阿里云白名单的步骤。如果仍无法进行测试,可以尝试本地测试。

    测试结果示例如图:

    注:也可使用sqlmap单独进行SQL注入测试。

    3)手动测试

    由于手动测试的局限性及大工作量,因此不建议使用手动测试。

    三、业务逻辑分析

    对于静态代码测试与动态渗透测试,只能检查代码的安全性。对于业务逻辑方面仍需要进行分析与测试,以确定业务逻辑实现是否存在漏洞。

    ①需要走查分析的功能模块:

    供车方:报价、新增(员工、司机、巴士、银行卡)、密码修改、代客包车等

    包车方:包车发布、登录注册、在线充值、余额提现、完善资料、新增(员工、银行卡)、密码设置等。

    ②分析内容

    1)数据有效性检查

    2)是否可以重复提交

    3)权限检查

    4)……

    四、建议

    ①开通阿里云的WEB应用防火墙

    ②开通阿里云的态势感知功能

    ③阿里云云盾会定期扫描网站并检测系统存在漏洞,可以定期检查

    ④上线前对于LinuxNginxphp的配置项进行优化

  • 相关阅读:
    Combine 框架,从0到1 —— 4.在 Combine 中使用计时器
    Combine 框架,从0到1 —— 4.在 Combine 中使用通知
    Combine 框架,从0到1 —— 3.使用 Subscriber 控制发布速度
    Combine 框架,从0到1 —— 2.通过 ConnectablePublisher 控制何时发布
    使用 Swift Package Manager 集成依赖库
    iOS 高效灵活地配置可复用视图组件的主题
    构建个人博客网站(基于Python Flask)
    Swift dynamic关键字
    Swift @objcMembers
    仅用递归函数操作逆序一个栈(Swift 4)
  • 原文地址:https://www.cnblogs.com/wangyuman26/p/6784791.html
Copyright © 2011-2022 走看看