精华内容
下载资源
问答
  • web安全测试服务开展流程简介

    千次阅读 2017-01-05 17:08:42
    1、web安全测试简介 web安全测试业务主要围绕流程、标准、规范三个方面展开,其中流程是核心,标准和规范在流程运作中落地与执行。 2、web安全测试流程概要设计

    1、web安全测试流程设计简介

    web安全测试业务主要围绕流程、标准、规范三个方面展开,其中流程是核心,标准和规范在流程运作中落地与执行。


    2、web安全测试流程概要设计

    当需要测试的web应用数以千计,就有必要建立一套完整的安全测试流程,流程的最高目标是要保证交付给客户的安全测试服务质量。


    立项:项目建立,时间安排,人力分配,目标制定,厂商接口人确定;
    系统分析&威胁分析:针对具体的web应用,分析系统架构、使用的组件、对外提供的接口等,以STRIDE为威胁模型进行对应的安全威胁分析,输出安全威胁分析表,重点关注top3威胁;
    制定测试用例:根据威胁分析的结果制定对应的测试用例,测试用例按照模板输出,具备可执行性;
    测试执行&漏洞挖掘:测试用例执行&发散测试,挖掘对应的安全问题or漏洞;
    问题修复&回归测试:指导客户应用开发方修复安全问题or漏洞,并进行回归测试,确保安全问题or漏洞得到修复,并且没有引入新的安全问题;
    项目总结评审:项目过程总结,输出文档评审,相关文档归档。

    3、web安全测试流程详细设计--立项

    每一个web应用的安全测试第一步就是立项,确定流程实施内容,包括如下:
    客户提出测试需求:需求方、web应用名称、期望的目标等;
    安排测试人员:安全测试人员安排,测试环境搭建;
    测试计划制定:与需求方沟通测试计划安排,每一个流程阶段的时间计划,具体的测试内容;
    测试实施:确定需求方接口人,后续问题沟通反馈&修改;
    流程评审&结项:确定web应用测试完成后的评审方案,向客户交付测试输出文档;


    4、web安全测试流程详细设计--系统分析

    web安全测试首先要进行的就是熟悉被测系统,将系统分解,分析系统使用的组件,使用何种web架构等等。
    系统分析主要包括系统物理架构和逻辑架构的划分。
    物理架构:按照系统使用的组件分析出来的架构,如底层使用何种数据库,控制层使用何种组件,表示层使用何种前端库等,组件之间使用那些通信协议等; 数据存储层:如mysql、oracle、redis、Bigtable等;
    控制层:如Spring、Struts2、Tomcat、Weblogic等;
    表示层:如ExtJS、Bootstrap等;
    通信协议:如AMQP等;
    分析系统使用的这些物理组件,有助于了解系统的特性,方便进行威胁分析和对应的用例编写。
    不同的组件有对应的不同的威胁模式库,物理架构分析后就可以直接进行对应的映射即可得出被测系统的威胁库。

    逻辑架构:按照系统的业务逻辑划分的,例如根据一个系统的组成业务模块就可得出其逻辑架构,分析逻辑架构有利于熟悉系统内部的数据流。
    如下图所示为某商户管理系统的业务逻辑架构图。
    个人用户侧的功能包含商户基本信息维护、清算信息维护、差错处理、系统管理;
    外部链接包括银行的各种业务处理;
    商户内的数据与两边业务都有交互,从业务逻辑图可以清晰地看出数据流的走向。


    5、web安全测试流程详细设计--威胁分析

    系统分析后需要进行的就是系统威胁分析,根据系统分析的结果,选择合适的威胁模型,分析系统面临的主要安全威胁。
    常见的威胁模型如TVRA和STRIDE:
    TVRA:Threat(威胁)、Vulnerability(脆弱点)、Risk Analysis(风险分析).
    其中Risk = Threat × Vulnerability × Consequence
    Threat表示系统面临的威胁,Vulnerability表示系统存在的漏洞,consequence表示系统漏洞被利用所产生的后果,一般由CIA来衡量。


    STRIDE是基于数据流的一种威胁分析模型,它包含六个维度威胁:


    数据流图是从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。它一般包含以下几个元素:


    数据流图一般分一层数据流和二层数据流图,一层数据流图是指整个系统的数据流图,其包含多个多处理过程,对每一个多处理过程继续分解就是二层数据流图,以web系统的登录模块为例,其分解的二层数据流图如下所示:


    STRIDE模型一般应用在二层数据流图上,在外界操作与系统内部模块之间、系统模块与外界存储之间需要画立信任边界。数据流图元素和STRIDE的对应关系如下:


    对于每一种威胁,其对应的消减方式如下表:


    对于二层数据流图的每一个元素,结合其存在的对应威胁,即可确定安全测试中需要测试的内容,然后对应上图的消减措施,如果缺少对应的消减机制,就说明存在对应的安全问题或漏洞。

    6、web安全测试流程详细设计--制定测试用例

    威胁分析后就需要根据威胁分析的结果编写测试用例,针对分解的每一个二层数据流图,对每一个数据流图元素,映射对应的威胁,编写测试用例,用例必须按照模板输出,每一个用例具体内容包括:
    用例名称:测试用例必须具有唯一可区分的名称;
    用例执行步骤:用例的详细执行步骤,每一步必须无歧义,具备可执行性;
    用例使用的工具:用例执行过程中使用的工具;
    用例的执行条件:用例执行必须具备的条件,如网络可达、服务必须运行等;
    用例的输入和输出:用例执行过程中涉及的输入,以及对应的输出;
    用例的安全属性:目前规定的安全属性包括管理通道安全、XSS、注入攻击、CSRF、身份认证、会话安全、敏感数据保护、越权、中间件安全、配置安全这10个维度;
    用例执行优先级:用例执行的优先顺序,在用例数量很多的情况下,应按照优先级高低的顺序执行。


    7、web安全测试流程详细设计--测试执行&漏洞挖掘

    测试用例编写完就需要开始用例的执行,具体的测试包括自动化的工具执行以及手动测试。

    自动化的工具扫描包括:Nmap端口扫描、系统漏洞扫描、web安全扫描、协议安全扫描等;

    手动测试包括:XSS、CSRF、SQL注入、XML注入、命令注入、横向/纵向越权、会话安全等等。

    测试过程需要使用各种各样的工具,常见的web测试工具如下:



    对于每一个用例的测试过程,需要有对应的操作截图。
    对于每一个可以利用的安全漏洞,使用cvss2.0/3.0进行打分,以确定漏洞的严重程度。
    测试执行与漏洞挖掘的过程与测试工程师的能力是强相关的,测试时的思路也会决定漏洞的挖局。
    如果客户愿意提供应用源代码,我们也可以进行源码方向的安全审计。

    8、web安全测试流程详细设计--问题修复&回归测试

    测试执行完成后需要输出对应的测试报告,在报告中需要给出每个安全问题或漏洞的解决方案或建议。
    如果可能,解决方案应当详细到源码级别。
    问题修复应当遵循web应用开发安全规范的原则。
    回归测试的目的为了防止问题修复引入新的安全问题,问题修复&回归测试是个循环的过程,测试没有新的问题时循环即终止。

    9、web安全测试流程详细设计--项目总结评审

    修复测试中发现的安全问题,完成回归测试后,整个安全测试流程就基本结束,最后需要就整个测试过程进行总结评审,例如测试方案、测试用例是否完善,测试过程发现了多少安全问题,web应用的高风险模块,测试过程有哪些薄弱项等等。
    最后要做好客户交付件的输出,客户的交付文档包括:



    总结:web安全渗透测试作为服务开展时,有必要建立一套对应的流程体系,以确保交付给客户的服务质量,从而建立良好的市场口碑!

    展开全文
  • web测试基本测试

    千次阅读 2020-07-15 16:37:33
    一、什么是Web测试 如果要了解web测试,首先我们的清楚web项目是什么,一般指本b/s架构项目也就是通过浏览器进行访问的,在日常生活工作中,基于web系统的应用非常多。 打开电脑,抢火车票我们会登陆12306网站,...

    一、什么是Web测试

    如果要了解web测试,首先我们的清楚web项目是什么,一般指本b/s架构项目也就是通过浏览器进行访问的,在日常生活工作中,基于web系统的应用非常多。
     打开电脑,抢火车票我们会登陆12306网站,添置衣物我们会登陆天猫,购置电器我们会上京东... 对于这类项目的测试我们就说进行的web测试。

    二、Web测试的特点

    从系统架构来看的话,一般都是b/s架构,基于浏览器的项目,所以只要更新了服务器端,客户端就会同步更新。
    基于这种架构,web测试除了需要检查和验证功能、界面是否按照设计的要求之外,还要考虑兼容,因为是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统的方向的兼容,不过一般还是以浏览器为主,除此之外,还要从最终用户的角度进行安全性和可用性测试,可用性测试包括接口测试性能测试。
    因此对于测试人员来说,确认和验收是一项富有挑战性的工作,我们必须充分掌握web测试的方法和技术,下面会从这6个部分来对web测试方法和技术进行详细分析。

    三、Web 功能测试

    1、链接测试
           链接是web应用系统的一个主要特征,他是在页面之间切换和指导用户去一些不知道地址的页面主要手段。链接测试可分为三个方面:
           1)测试所有链接是否按指示链接到了该链接的页面
           2)测试所链接的页面是否存在
           3)保证web应用上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问
    2、表单测试
          当用户通过表单提交信息的时候,都希望表单能正常工作,若使用表单来进行在线注册,要确保提交按钮正常,注册完成后应返回注册成功的消息。
          1)当用户使用表单进行用户注册、登陆、信息提交等操作时,我们必须测试提交内容的完整性,以校验提交给服务器的信息的正确性。
             例如:用户填写的手机号码和昵称是否满足需求中长度及类型组成要求
          2)如果表单使用了默认值,需要验证默认值得正确性
          3)如果表单只能接受指定的某些值,则也要进行测试
              例如:性别选择只能男、女,测试时可以跳过这些特定值,看系统是否会报错。
    3.数据校对
           如果系统根据业务规则需要对用户输入进行校验,需要保证这些校验功能正常工作。
           例如省份的字段可以用一个有效列表进行校验,在这种情况下,需要验证列表完整而且程序正确调用了该列表(例如在列表中添加一个测试值,确定系统能够接受这个测试值)。
           在测试表单时,该项测试和表单测试可能会有一些重复。
           Cookies通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用Cokies访问了某一个应用系统时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息。

         如果 Web应用系统使用了Cookies,就必须检查Cookies是否能正常工作。测试的内容可包括:
         1)Cookeis是否起作用,是否按预定的时间进行保存,刷新对Cookies有什么影响等。
         2)如果在cookies 中保存了注册信息,请确认该cookie 能够正常工作而且已对这些信息已经加密。
         3)如果使用 cookie来统计次数,需要验证次数累计正确。
    4.数据库测试
           在Web应用技术中,数据库起着重要的作用,数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。
           在Web应用中,最常用的数据库类型是关系型数据库,可以使用SQL对信息进行处理。
           在使用了数据库的Web应用系统中,一般情况下,从以下两方面进行测试:
           1)对数据一 致性进行测试, 主要是用户 提交的表单信息存储到数据库后 各字段值是否一致。
           2)对输出进行测试,主要是验证从数据库查询后显示在界面的数据信息是否正确。例如12306网站的余票信息。
    5.流程测试
            最重要的是,测试人员需要对应用程序用户常见使用场景进行测试。
            尝试用户可能进行的所有操作:新增、修改、删除、查询等等。
            例如购物网站测试,需要进行注册用户(新增)、浏览商品(查询)、加入购物车下订单(新增)、删除订单(删除)、在线支付等等。

    四、Web界面测试

    界面测试可以直接参考原型图和切图设计进行界面核对。有几个常见的部分如下:
    1.导航测试
           导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间。
           例如:按钮、对话框、列表和窗口等;或在不同的连接页面之间。
           通过考虑下列问题,可以决定一个Web应用系统是否易于导航:导航是否直观?Web系统的主要部分是否可通过主页存取?Web系统是否需要站点地图、搜索引擎或其他的导航帮助?
           导航的另一个重要方面是Web应用系统的页面结构、导航、菜单、连接的风格是诸存储登否一致。确保用户凭直觉就知道Web应用系统里面是否还有内容,内容在什么地方。
    2.图形测试
           在Web应用系统中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能。
           一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。
           图形测试的内容有:
            1)要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。
                Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面。
           2)验证所有页面字体的风格是否一致。
           3)背景颜色应该与字体颜色和前景颜色相搭配。
           4)图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩,最好能使图片的大小减小到30k以下。
           5)需要验证的是文字回绕是否正确。如果说明文字指向右边的图片,应该确保该段图片出现在右边。不要因为使用图片而使窗口和段落排列古怪或者出现孤行。
    3.表格测试
           1)需要验证表格是否设置正确。
           2)用户是否需要向右滚动页面才能看见产品的价格?细节放在右边是否更有效?
           3)每一栏的宽度是否是够宽, 表格里的文字是否都有折行?是否有因为某一格的内容太多,而将整行的内容拉长?
    4.整体界面测试
          整体界面是指整个Web应用系统的页面结构设计,是给用户的一个整体感。
          例如:当用户浏览Web应用系统时是否感到舒适,是否凭直觉就知道我要找的信息在什么地方?整个Web应用系统的设计风格是否一致?

    五、Web性能测试

    性能测试在该章节不做深入分析,只做大致整理。
    1.连接速度测试   
           用户连接到Web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。
           当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面,若响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。
           另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。
           对于响应时间,业间遵循2-5-8原则。
    2.负载压力测试
           在这里的负载\压力和功能测试中的不同,他是系统测试的内容。
           基本功能已经通过后进行的,可以在集成测试阶段,亦可以在系统测试阶段进行。
           通过该项测试用以检测死机、崩损、内存泄漏问题等。因为有些存在内存泄漏问题的程序,在运行一两次时可能不会出现问题,但是如果运行了成千上万次,内存泄漏得越来越多,就会导致系统崩滑。
          使用负载测试工具loadrunner、Jmeter 等,虚拟一定数量的用户看一看系统的表现,是否满足定义中的指标。主要的测试场最如下:
          1)验证系统能否在同一时间响应大量的用户。
          2)在用户传送大量数据的时候系统能否正常响应。
          3) 正并负载情况下,系统能否长时间运行。
            可访问性对用户来说是极其重要的。如果用户得到“系统忙”的信息,他们可能放弃:并转向竞争对手。
           系统检测不仅要使用户能够正常访问站点,在很多情况下,可能会有黑客试图通过发送大量数据包来攻击服务器。
           出于安全的原因,测试人员应法知道当系统过载时,需要采取哪些措施,而不是简单地提升系统性能。

    六、Web 兼容性测试

    兼容性,因为是基于效览器的,所以一般还是以常用浏览器兼容性测试为主。
    1.平台测试
           市场上有很多不同的操作系统类型,最常见的有Windows、Unix、Macintosh、Linux等。
          Web应用系统的最终用户究竞使用哪一种操作系统,取决于用户系统的配置。这样,就可能会发生兼容性问题,同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。
         因此,在Web系统发布之前,需要在各种操作系统下对Web系统进行兼容性测试。
    2.浏览器测试
          浏览器的兼容一般是选择不同的浏览器内核进行测试(IE、 chrome、Firefox)再结合用户市场使用量高的浏览器来综合选择。
          不同浏览器使用内核及所支持的HTML (标准通用标记语言下的一个应用)等网页语言标准不同;以及用户客户端的环境不同(如分辨率不同)造成的显示效果不能达到理想效果。
           最常见的问题就是网页元素位置混乱、错位。主要测式内容如下:
           1)页面的格式,字体,输入框,下拉框,复选框, 按钮等的检查;
           2)页面显示穿插在功能进行中检查。
    3. 分辨率测试
           页面版式在640x400、600x800或1024x768 的分辨率模式下是否显示正常?字体是否太小以至于无法洳览?或者是太大?文本和图片是否对齐?

    七、Web的安全测试

    主要是测试系统在没有授权的情况下,内部或者外部用户对系统进行攻击或者恶意破坏时如何进行处理,是否仍能保证数据的安全。
           测试员可以学习一些黑客技术,来对系统进行攻击。这里不做深入分析,只做大致整理。
    1.目录设置   
          Web安全的第一步就是正确设置目录。 每个目录下应该有index.html 或main.html页面,这样就不会显示该目录下的所有内容。
          有些公司没有执行这条规则。大家可以尝试选中一幅图片,单击鼠标右键,找到该图片所在的路径“....com/objects/images”。然后在浏览器地址栏中手工输入该路径,会不会发现该站点的其他信息。例如保存过期页面记录信息。
         很多站点使用SSL进行安全传送。你知道你进入一个SSL站点是因为浏览器出现了警告消息,而且在地址栏中的HTTP变成HTTPS。
         如果开发部门使用了SSL,测试人员需要确定是否有相应的替代页面(适用于3.0以下版本的浏览器,这些浏览器不支持SSL)。
         当用户进入或离开安全站点的时候,请确认有相应的提示信息。是否有连接时间限制?超过限制时间后出现什么情况?
    2.登录   
            有些站点需要用户进行登录,以验证他们的身份。这样对用户是方便的,他们不需要每次都输入个人资料。
            你需要验证系统阻止非法的用户名/口令登录,而能够通过有效登录。
            1)用户登录是否有次数限制?
            2)是否限制从某些IP 地址登录?
            3)如果允许登录失败的次数为3,在第三次登录的时候输入正确的用户名和口令, 能通过验证吗?
            4)口令选择有规则限制吗?
            5)是否可以不登陆而直接浏览某个页面?
            6)Web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
     3.日志文件
             在后台,要注意验证服务器日志工作正常。
             1)日志是否记所有的事务处理?
             2)是否记录失败、错误的页面请求?
             3)是否在每次事务完成的时候都进行保存?记录IP地址吗?记录用户名吗?
    4.脚本语言
    脚本语言是常见的安全隐患。每种语言的细节有所不同。有些脚本允许访问根目录,其他只允许访问邮件服务器。但是经验丰富的黑客可以将服务器用户名和口令发送给他们自己。找出站点使用了哪些脚本语言,并研究该语言的缺陷。还要需要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。创建了一个测试交流群,如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以加测试交流群:829792258,还会有同行一起技术交流  

    展开全文
  • 华为内部的Web安全原则

    千次阅读 2019-03-28 19:40:32
    Web安全原则 1.认证模块必须采用防暴力破解机制,例如:验证码或者多次连续尝试登录失败后锁定帐号或IP。 说明:如采用多次连续尝试登录失败后锁定帐号或IP的方式,需支持连续登录失败锁定策略的“允许连续失败的...

    Web安全原则

    1.认证模块必须采用防暴力破解机制,例如:验证码或者多次连续尝试登录失败后锁定帐号或IP。

    说明:如采用多次连续尝试登录失败后锁定帐号或IP的方式,需支持连续登录失败锁定策略的“允许连续失败的次数”可配置,支持在锁定时间超时后自动解锁。

    2.对于每一个需要授权访问的页面或servlet的请求都必须核实用户的会话标识是否合法、用户是否被授权执行这个操作,以防止URL越权。

    说明:防止用户通过直接输入URL,进行URL越权,请求并执行一些页面或servlet;建议通过过滤器实现。

    3. 登录过程中,往服务器端传递用户名和口令时,必须采用HTTPS安全协议(也就是带服务器端证书的SSL)。只提供本机接入、登录,做设备管理使用的场景暂时不要求。

    说明:如果在客户端和服务器间传递如帐号、口令等敏感数据,必须使用带服务器端证书的SSL。由于SSL对服务端的CPU资源消耗很大,实施时必须考虑服务器的承受能力。

    4. 对用户的最终认证处理过程必须放到服务器进行。

    5. 用户产生的数据必须在服务端进行校验;数据在输出到客户端前必须先进行HTML编码,以防止执行恶意代码、跨站脚本攻击。对于不可信的数据,输出到客户端前必须先进行 HTML 编码。

    6. 使用主流Web安全扫描工具扫描Web服务器和Web应用,不存在“高”级别的漏洞。

    7. 非嵌入式产品的Web应用,应使用预编译语句PreparedStatement代替直接的语句执行Statement,以防止SQL注入。

     

    数据库安全

    外购数据库、开源数据库、华为自研数据库都应进行安全配置,保证不出现安全漏洞。

    1.数据库口令禁止使用数据库厂商的缺省口令,且口令复杂度需满足“口令安全要求”。数据库若存在多个默认帐号,须将不使用的帐号禁用或删除。

    2. 使用单独的操作系统帐号来运行数据库;数据库中的敏感文件(如:Oracle数据库的init.ora、listener.ora等)需要严格控制访问权限,只能被数据库进程运行帐户和DBA帐户读写;

    对数据库帐户授予的权限进行严格清晰的划分,所有数据库帐户只能具备执行其任务的最小权限;对于有监听器功能的数据库(如Oracle的listener.ora)需要设置监听器密码或者设置为本地操作系统验证。

    3. 使用主流或华为指定的系统扫描软件进行安全扫描,不存在“高”级别的漏洞。

    敏感数据保护

    系统对敏感数据的存储、传输和处理需保证数据安全,并遵从适用国家和地区的法律和法规要求。

    敏感数据定义:包括但不限于口令、银行账号、个人数据(单独使用该数据或者结合其他信息可以识别某个活着的自然人的数据,包括:最终用户姓名、帐号、主叫和被叫号码、通信记录、话单、通信时间、定位数据等)。

    1. 口令不允许明文存储在系统中,应该加密保护。在不需要还原口令的场景,必须使用不可逆算法加密。对银行账号等敏感数据的访问要有认证、授权和加密机制。口令文件必须设置访问权限控制,普通用户不能读取或拷贝加密的内容。如果帐户文件/数据中含有口令又必须所有用户可访问,则需将帐户文件/数据与口令文件/数据分开。

    注:对于业界第三方主流软硬件(如操作系统、数据库、Web容器)自身提供的口令功能,不受本条限制。

    2. 在非信任网络之间进行敏感数据(包括口令,银行帐号,批量个人数据等)的传输须采用安全传输通道或者加密后传输,有标准协议规定除外。

    3.禁止使用私有加密算法。

    说明:

    1) 对称加密算法建议使用:AES192及以上强度;

    2) 密钥交换算法建议使用:DH1024;

    3) 数字签名算法建议使用:DSA1024、ECDSA192;

    4) 非对称算法建议使用:RSA2048、ECC192;

    5) HASH(哈希)算法建议使用:SHA256及以上强度;

    6) HMAC(基于哈希的消息验证码)算法建议使用:HMAC-SHA256;

    4. 用于敏感数据传输加密的密钥,不能硬编码在代码中。

    在敏感数据的安全传输上,优先使用业界的标准安全协议(如SSH v2/TLS1.0/SSL3.0/IPSec/SFTP/HTTPS等),并确保密钥可配置;如果是由产品自身实现安全传输过程,则优先使用Diffie-Hellman密钥交换算法,如果使用预置共享密钥等其他方法,也必须保证该密钥可配置和可替换。

    5. 禁止在日志、话单等文件中记录口令、银行账号、通信内容等敏感数据;

    6. 尽量避免在日志、话单中记录个人数据,如果必须记录个人数据,则所有数据必须进行结构化存储或适合于进行匿名化提取;

    1)尽量避免在日志中记录个人数据,如果必须记录,在个人数据之前或之后加统一的标记,以区别于其他非个人数据。

    2)尽量避免在话单中记录个人数据,如果必须记录,则话单必须进行结构化存储,字段间必须由统一的分隔符分开,每行的字段按列严格对应。

    7. 有个人数据导出功能的产品发布时必须同时提供对个人数据进行过滤或匿名化处理和功能或工具;

    8. 严格限制导出功能的权限,对导出功能的使用必须有日志记录。

    9. 涉及个人数据的采集/处理的功能须提供安全保护机制(如认证、权限控制、日志记录等),并通过产品资料向客户公开。

    10. 在正常业务流程和标准协议之外,禁止出于故障定位目的进行用户精确位置信息定位。如需处理用户精确位置数据,应有华为的明确需求,并在方案设计时,给予用户随时撤回同意的机会。

    口令安全策略管理

    1. 设置口令时,默认检测口令复杂度,口令至少满足如下要求:

    1) 口令长度至少6个字符(特权用户至少8个字符);

    2) 口令必须包含如下至少两种字符的组合:

    -至少一个小写字母;

    -至少一个大写字母;

    -至少一个数字;

    -至少一个特殊字符:`~!@#$%^&*()-_=+|[{}];:’”,<.>/? 和空格

    3) 口令不能和帐号或者帐号的逆序相同;

    若设置的口令不符合上述规则,必须进行警告。

    2. 系统必须提供锁定用户的机制。可选择如下两种方式之一:

    方式一:当重复输入错误口令次数(默认3次,次数系统可以设置)超过系统限制时,系统要锁定该用户。

    方式二:系统还可以设置下次允许输入口令的间隔时间加倍,采用这种方式时,用户可以不设置自动锁定。

    3. 可设置自动解锁时间(只适用于由于口令尝试被锁定的用户)

    1) 对于口令尝试N次失败被锁定的用户,系统要能够设置自动解锁时间,建议默认解锁时间为5分钟。

    2) 用户被锁时间达到预定义时间,可自动解锁该用户,或者也可通过安全管理员手工解锁该用户。

    3) 在锁定时间内,仅能允许应用安全管理员角色所属帐号手动解锁该用户。

    4. 操作界面中的口令不能明文显示,键入口令时不能明文显示出来(操作界面中的输入口令可不显示或用*代替),包括在终端上打印或存储在日志中时也不能明文显示口令,即使是内存中的明文口令(如登录期间),也应在使用后立即覆盖。

    5. 口令输入框不支持拷贝功能。

    6. 对于系统内置帐号的缺省口令,口令应符合复杂度的要求,并在客户资料中提醒用户修改。

    7. 用户可修改自己的口令,需满足如下要求:

    1) 用户修改自己口令时必须验证旧口令;

    2) 不允许修改除自身帐号以外的帐号的口令(管理员除外)

    8. 口令不能在网络中明文传输,口令等认证凭证在传输过程中必须加密,使用高安全等级的加密算法。

    说明:

    1) 对称加密算法建议使用:AES192及以上强度;

    2) 密钥交换算法建议使用:DH1024;

    3) 数字签名算法建议使用:DSA1024、ECDSA192;

    4) 非对称算法建议使用:RSA2048、ECC192;

    5) HASH(哈希)算法建议使用:SHA256及以上强度;

    6) HMAC(基于哈希的消息验证码)算法建议使用:HMAC-SHA256;

    9. 口令在本地存储时必须加密,需满足如下要求:

    1) 口令不能够明文写入日志文件、配置文件以及cookie中;

    2) 口令文件必须设置访问控制,普通用户不能读取或拷贝加密的内容。

    10. 产品配套资料提供清晰的帐号、口令清单。

    说明:华为提供用户清单模板

    安全资料

    针对售前、开局、现网运维几个阶段,提供配套安全方案、资料。

    1.在产品描述中对产品安全特性进行描述。

    2. 产品发布前提供产品通信矩阵。描述机器/网元/模块间的通信关系,包括:通信使用的端口、协议、IP地址、认证方式、端口用途信息等。

    说明:华为提供通信矩阵模板。

    3. 产品发布前提供防病毒软件部署指南。描述防病毒软件部署前的准备、流程、执行步骤、失败后回退处理,以及病毒特征库升级配置指导(Windows系统平台必选)。

    4. 产品发布前提供安全配置/加固指南。

    描述如下内容:

    -安全加固及检查,主要包括操作系统、数据库或WEB服务器等加固内容,需要包含具体的加固内容和操作步骤(必选)。

    -应用的安全配置,针对产品业务安全应用,需要启用哪些安全选项,配置哪些内容。(对于需要通过对产品开局时进行安全策略配置才能生效的安全功能,需要提供此部分内容)。如果没有应用的安全配置,命名为安全加固指南。安全加固指南是必须的。

    5. 产品发布前提供安全维护手册。从解决方案角度提供业务日常安全维护方面的指导,包括安全补丁、安全配置、防病毒软件例行检查等,指导维护人员例行进行安全维护。

    操作系统安全

    无论是使用通用操作系统(Windows、Linux、Unix等)还是嵌入式操作系统(如VxWorks、pSOS等),系统都应该保证软件及软件运行环境的安全。

    注:系统指交付给客户运行的整体系统,包括自研的软件、软件运行的操作系统及应用服务在内。

    1.使用主流漏洞扫描软件进行安全扫描,不存在高风险级别的漏洞。

    2.基于通用操作系统的新发货产品“操作系统加固+操作系统补丁”预装率=100%;对于不在生产环节预安装的产品,需要在正式发布的版本中包含默认的安全策略文件,并在产品资料中说明加固要求和操作步骤。

    说明:

    1)华为提供的操作系统,产品版本应基于最新的操作系统安全补丁进行开发和兼容性测试。

    2)合作方提供的操作系统,合作方需在版本交付前对操作系统安全补丁进行兼容性测试并随版本发布,并根据CIS标准对操作系统进行加固并随版本发布。

    3.使用Windows操作系统的产品,产品需要使用主流防病毒软件进行进行兼容性测试。

    说明:

    1)华为提供的Windows操作系统,合作方需使用主流防病毒软件或华为指定的防病毒软件进行兼容性测试;

    2)合作方提供的Windows操作系统,产品需要缺省配套华为指定的防病毒软件,并对防病毒软件进行兼容性测试。

    协议与接口防攻击

    系统应具备基本的防攻击能力,对影响自身的常见攻击具备防御能力等。注:系统指交付给客户运行的整体系统,包括自研的软件、软件运行的操作系统及应用服务在内。

    1.系统所有的对外通信连接必须是系统运行和维护必需的,对使用到的通信端口在产品通信矩阵文档中说明,动态侦听端口必须限定确定的合理的范围。通过端口扫描工具验证,未在通信矩阵中列出的端口必须关闭。

    说明:

    1)华为提供通信矩阵模板。

    2.尽量避免使用动态侦定端口的实现方式,在没有替代方案的情况下,如果必须使用,需满足如下要求:

    1)、如果使用业界标准的协议(如RPC、FTP被动模式),并有一定的安全措施(如NFS安全配置、防火墙支持FTP被动模式等);

    2)、如果自实现的方式,则动态侦听端口必须限定确定的合理的范围。

    2. 所有能对系统进行管理的通信端口及协议必须有接入认证机制,标准协议没有认证机制的除外。

    3. 对自研协议和业界非主流软件(包括非主流的开源软件)实现的协议要进行协议畸形报文攻击测试。

    4. 设备外部可见的能对系统进行管理的物理接口必须有接入认证机制。

    监听接口及防止非法监听

    产品开发合法监听接口应遵循国际标准及所在国的法律要求。

    1.在没有华为明确需求的情况下,严禁开发具有监听性质的功能和接口,无论该功能和接口是否要遵循相应的国家标准和国际标准。

    2. 在华为对合法监听接口有需求的情况下,合作方需根据华为提供的监听功能或接口的文件中的要求开发。

    说明:对提供合法监听接口的产品版本的要求(二选一)

    1)产品提供两个版本的软件安装包:一个支持合法监听,一个不支持合法监听。根据市场的安全要求,选择对应的软件安装包进行部署。

    2)产品提供软件安装包拆分为:基本软件安装包和合法监听插件安装包。根据市场的安全要求,选择是否安装合法监听插件安装包。

    3. 在正常业务流程和标准协议之外,禁止提供采集最终用户原始通信内容(语音类、短信/彩信类、传真类、数据业务类)的功能,即使出于保障网络运营和服务目的。

    注:

    1) 除了语音类、短信/彩信类、传真类、数据业务类信息属于通信内容外,最终用户的即时消息、E-Mail信息、URL同样属于通信内容;

    2) 允许使用debug功能,但debug信息中不允许包含口令、银行账号、通信内容等敏感数据。

     

    展开全文
  • 一、安全测试6项基本原则: 认证:对认证的用户的请求返回 访问控制:对未认证的用户的权限控制和数据保护 完整性:用户必须准确的收到服务器发送的信息 机密性:信息必须准确的传递给预期的用户 可靠性...

    一般来说,版本功能测试完成,对应的用例也实现了自动化,性能、兼容、稳定性测试也完成了以后,我们就需要考虑到系统的安全问题,特别是涉及到交易、支付、用户账户信息的模块,安全漏洞会带来极高的风险。

    一、安全测试6项基本原则:

    认证:对认证的用户的请求返回

    访问控制:对未认证的用户的权限控制和数据保护

    完整性:用户必须准确的收到服务器发送的信息

    机密性:信息必须准确的传递给预期的用户

    可靠性:失败的频率是多少?网络从失败中恢复需要多长时间?采取什么措施来应对灾难性的失败?(个人理解这个地方应该更偏向于容错容灾测试的范畴)

    不可抵赖:用户应该能证明接收到的数据来自特定的服务器

    二、常见的安全测试内容

    权限控制

    SQL注入

    URL安全测试

    XSS(跨站脚本攻击)

    CSRF(跨站请求伪造)

    URL跳转漏洞

    其他安全方面的考量

    三、Web应用程序中是什么导致安全性问题呢?一般有以下几个原因:

    1、复杂应用系统代码量大、开发人员多、难免出现疏忽。

    2、系统屡次升级、人员频繁变更,导致代码不一致。

    3、历史遗留系统、试运行系统等多个Web系统共同运行于同一台服务器上。

    4、开发人员未经过安全编码培训或者公司根本就没有统一的安全编码规范。

    5、测试人员经验不足或者没经过专业的安全评估测试就发布上线。

    6、没有对用户的输入进行验证,举几个例子:

    1)永远不要信任用户的输入,要对用户的输入进行校验

    2)数字型的输入必须是合法的数字

    3)字符型的输入中对 编码符号要进行特殊处理

    4)验证所有的输入点,包括Get,Post,Cookie以及其他HTTP头

    四、安全性测试的常见漏洞及解决办法:

    1、XSS跨站脚本攻击

    SS与SQL注入相似,XSS是通过网页插入恶意脚本,主要用到的技术也是前端的HTML和JavaScript脚本。当用户浏览网页时,实现控制用户浏览器行为的攻击方式。

    一次成功的XSS,可以获取到用户的cookie,利用该cookie盗取用户对该网站的操作权限;也可以获取到用户联系人列表,利用被攻击者的身份向特定的目标群发送大量的垃圾信息,等等。

    XSS分为三类:存储型(持久性XSS)、反射型(非持久性XSS)、DOM型。

    测试方法:

    在数据输入界面,输入:<script>alert(/123/)</script>,保存成功后如果弹出对话框,表明此处存在一个XSS 漏洞。

    或把url请求中参数改为<script>alert(/123/)</script>,如果页面弹出对话框,表明此处存在一个XSS 漏洞。

    2、SQL注入

    SQL注入是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符

    串,最终达到欺骗服务器执行恶意的SQL命令。

    SQL注入可能造成的危害有:网页、数据被篡改,核心数据被窃取,数据库所在的服务器被攻击,变成傀儡主机。

    例如有些网站没有使用预编译sql,用户在界面上输入的一些字段被添加到sql中,很有可能这些字段包含一些恶意的sql命令。如:password = "1' OR '1'='1";即使不知道用户密码,也能正常登录。

    测试方法:

    在需要进行查询的页面,输入正确查询条件 and 1=1等简单sql语句,查看应答结果,如与输入正确查询条件返回结果一致,表明应用程序对用户输入未进行过滤,可以初步判断此处存在SQL注入漏洞

    修改建议:

    对用户的输入进行校验,可以通过正则表达式,或限制长度;对以下关键字进行转换等;

    ||alert|and|exec|execute|insert|select|delete|update|count|drop|chr|mid|master|truncate|declare|sitename|netuser|xp_cmdshell|or|+|,|like'|and|exec|execute|insert|create|drop|table|from|grant|group_concat|column_name|information_schema.columns|table_schema|union|where|select|delete|update|order|by|count|chr|mid|master|truncate|declare|or|--|+|,|like|//

    不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取;

    不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接;

    应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装。

    3、URL跳转漏洞

    URL跳转漏洞,即未经验证的重定向漏洞,是指Web程序直接跳转到参数中的URL,或者在页面中引入了任意开发者的URL,将程序引导到不安全的第三方区域,从而导致安全问题。

    测试方法:

    1.使用抓包工具抓取请求。

    2.抓取302的url,修改目标地址,查看是否能跳转。

    ps:不过现在很多跳转都加了referer的校验导致攻击者跳转失败。

    4、文件上传漏洞

    文件上传攻击是指攻击者上传了一个可执行文件到服务器上,并执行。

    这种攻击方式是最直接有效的。上传的文件可以是病毒、木马、恶意脚本或者是webshell等等。

    Webshell是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以说是一种网页后门。攻击者在受影响系统防止或插入webshell后,可以通过webshell方便进入系统,达到控制网站服务器的目的。

    测试方法:

    对上传的文件类型、大小等进行严格校验,禁止上传恶意代码的文件。

    对相关目录的执行权限进行校验,可以通过浏览器访问Web 服务器上的所有目录,检查是否返回目录结构,如果显示的是目录结构,则可能存在安全问题。

    5、CSRF跨站伪造请求攻击

    CSRF,利用已登录的用户身份,以用户的名义发送恶意请求,完成非法操作。

    例如:用户如果浏览并信任了存在CSRF漏洞的网站A,浏览器产生了相应的cookie,用户在没有退出该网站的情况下,访问了危险网站B 。

    危险网站B要求访问网站A,发出一个请求。浏览器带着用户的cookie信息访问了网站A,因为网站A不知道是用户自身发出的请求还是危险网站B发出的请求,所以就会处理危险网站B的请求,这样就完成了模拟用户操作的目的。这就是CSRF攻击的基本思想。

    测试方法:

    1. 同个浏览器打开两个页面,一个页面权限失效后,另一个页面是否可操作成功,如果仍然能操作成功即存在风险。

    2.使用工具发送请求,在http请求头中不加入referer字段,检验返回消息的应答,应该重新定位到错误界面或者登录界面。

    总结:

    1、永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式或限制长度;对单引号和双"-"进行转换等。

    2、永远不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取。

    3、永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。

    4、不要把机密信息直接存放,加密或者Hash掉密码和敏感的信息。

    5、应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装。

    6、SQL注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用SQL注入检测工具jsky、MDCSOFT SCAN等。采用MDCSOFT - IPS可以有效的防御SQL注入、XSS攻击等。

    展开全文
  • ,使用如下原则: VMnet1 对应的网段是 192.168.10.0 ,     VMnet2 对应的网段是 192.168.20.0 ,其他的类似。当然平常只是随便用用的就不用改了,能上网就行了。 VMware 网络连接的方式主要有:桥接( ...
  • Web入侵安全测试与对策》读书笔记
  • web测试

    千次阅读 2015-10-12 15:08:26
    一个网站基本完工后,需要通过下面三步测试才可以交活。  一、 制作者测试,包括美工测试页面、程序员测试功能。在做完后第一时间内有制作者本人进行测试。  a)页面包括首页、二级页面、三级页面的页面在各种常用...
  • Web安全工程师成长路线

    千次阅读 多人点赞 2018-06-24 15:36:51
    Web安全工程师 职位描述: 对公司网站、业务系统进行安全评估测试(黑盒、白盒测试);对公司各类系统进行安全加固;对公司安全事件进行响应,清理后门,根据日志分析攻击途径;安全技术研究,包括安全防范技术,...
  • web测试知识详解

    千次阅读 多人点赞 2018-11-21 17:09:19
    web测试 web测试..............................................................................................................................1 1. 分类及测试要点...........................................
  • 小白入坑 Web 渗透测试必备指南

    万次阅读 多人点赞 2017-11-13 00:00:00
    本文来自作者 肖志华 在 GitChat 上分享「Web 渗透测试入坑必备指南」,「阅读原文」查看交流实录 「文末高能」 ...小白该如何踏入 Web 安全这个坑呢?我的经历是,兴趣所在。我是野路子,
  • web网站测试点整理

    千次阅读 2019-03-26 11:27:27
    1.1测试流程进行正式测试之前,应先确定如何开展测试,不可盲目的测试。一般网站的测试,应按以下流程来进行: 1)使用HTML Link Validator将网站中的错误链接找出来; 2)测试的顺序为:自顶向下、从左到右; 3)...
  • Web安全攻防 渗透测试实战指南 学习笔记 (一) 第一章 信息收集 在信息收集中,最重要是收集服务器的配置信息和网站敏感信息(域名及子域名信息目标网站系统、CMS指纹、目标网站真实IP、开放端口) ...
  • Web安全学习系列(3)

    千次阅读 2016-01-28 11:33:23
    《白帽子讲Web安全》笔记11-17章 从头学起=》Web安全学习系列(1) 一步一步=》Web安全学习系列(2) 转载请注明出处:http://blog.csdn.net/cym492224103 第11章 加密算法与随机数 针对加密攻击 Stream ...
  • 接口测试 使用 Jmeter 做 Web 接口测试

    千次阅读 2017-09-19 14:17:14
    最近总结了一下在接口测试方面的知识与心得,在这里与大家分享一下,如有说的不对的地方请多多指正。 接口测试概述 定义 API testing is a type of software testing that involves testing application ...
  • WEB性能测试用例设计

    千次阅读 2010-10-21 17:54:00
    <br />WEB性能测试用例设计 软件测试 一、WEB 全面性能测试模型 Web 性能测试模型提出的主要依据是:一种类型的性能测试可以在某些条件下转化成为另外一种类型的性能测试,这些类型的性能测试的...
  • Web网站测试技术要领集合

    千次阅读 2010-04-29 16:10:00
    Web网站测试技术要领集合基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的... 本文从功能、性能、可用性、客户端兼容性、安全性等方面讨论了基于Web的系统测试方法。 随着Int
  • web应用程序测试方法和测试技术详述web应用程序测试方法和测试技术详述web应用程序测试方法和测试技术详述转自 my_sunway的专栏 QQ:34218067 chinjecn@yahoo.com.cn1. 概述l 随着web应用的增多,新的模式解决方案...
  • Web系统测试摘要

    千次阅读 2006-11-28 09:40:00
    它"使用合理的、科学的工程和管理原则,用严密的和系统的方法来开发、发布和维护基于Web的系统"。目前,对于web工程的研究主要是在国外开展的,国内还刚刚起步。 在基于Web的系统开发中,如果缺乏严格的过程,我
  • Web 安全恩仇录:漏洞原理

    千次阅读 2018-04-12 10:41:44
    本课程主要内容为 Web 常见漏洞分析,同时会介绍在各个阶段需要做什么事,该课程利用的攻防平台是 Kali Linux 以及一些 Linux 和 Windows 靶机,按照主次会依次介绍 OWASP 10 的漏洞类型。通过学习本课内容,能够...
  • Web安全深度剖析-笔记

    千次阅读 2018-11-20 14:55:14
    文章目录Web安全深度剖析-笔记HTTP基础知识http请求方法http状态码http消息头(字段)截取HTTP请求搜索引擎劫持SQLmap注入注入基础知识使用DVWA来练习使用sqlmapSQLmap基本使用方法更多的选项简述利用过程其他常用的...
  • 基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战...本文从功能、性能、可用性、客户端兼容性、安全性等方面讨论了基于Web的系统测试方法。 随着Internet和Intranet/Extr
  • 安全测试者偏爱的安全测试工具

    千次阅读 2018-01-25 00:14:05
    国外网站 Concise Courses 总结了安全测试者常用且好用的安全测试工具,本文摘录并分类整理列举一二,供安全从业者与爱好者参考。 无线类 1. Metasploit (免费) 2003年,美国网络安全研究员兼...
  • 第四章 漏洞发现 作者:Gilberto Najera-Gutierrez 译者:飞龙 协议:CC BY-NC-SA 4.0 ...这一章中,我们会涉及到检测一些 Web 应用中常见漏洞的过程,以及允许我们发现和利用它们的工具。我们

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,630
精华内容 19,452
关键字:

web安全测试的基本原则