web安全之浅见

谈到软件安全,一般要清楚部署方式,然后再考虑如何防御,而当前的软件应用,web应用部署有三种,Iass、pass和saas,这其中,后两种的部署方式占了绝大多数,这样看来,对于web应用来说,防御的方向主要就放在了服务器和web本身这两个方向。

服务器的防御,主要类似于防火墙、杀毒软件等

web应用本身的安全这几年下来,主要呈现为四种方式:DAST、SAST、RAST和IAST。

一、DAST是Dynamic Application Security Testing的首字母缩写,是动态应用程序安全测试技术。该种分析技术在测试或运行阶段分析应用程序的动态运行状态。它模拟黑客行为对应用程序进行动态攻击,分析应用程序的反应,从而确定该Web应用是否易受攻击。所以该种技术主要采用渗透测试,发现应用系统的潜在风险。

二、SAST是Static Application Security Testing的首字母缩写,是静态应用安全测试技术。SAST类工具的技术实践大致可分为以下几种:

(1) 正则匹配:代表工具Cobra,Raptor;

(2) 基于语法树:代表工具P3C,Fireline;

(3) java语言可基于class文件:代表工具Findsecbugs,sonar;

(4) 基于控制流、数据流、函数调用关系等:市面上的商业级SAST类产品比较多。

三、IAST:Interactive Application Security Testing,交互式应用安全测试。

  优点:近实时检测、误报率极低、可定位到代码行数、展示污点调用过程等等,非常适用于DevOps理念。产品中也会尽力体现污点调用过程,代码行数等不同于DAST的,偏代码层的信息。为代码审核员和审查员提供了一个平台,用于构建和调整强大的、高度定制的查询,以交互询问其独特的代码库和环境。具有更复杂代码探索需求的分析师可以利用全面的CPG图形映射创建高度特定和有针对性的查询,从而绕过常见的误报源。示例包括识别代码中存在的任何问题(用户输入受到适当保护)的能力,以及存在任何间接数据流(用户输入未直接用于接收器)的能力。

四、RASP:Runtime application Security Testing,运行时应用安全测试。

很多企业在上线前进行漏洞检测,都要求解决高中危漏洞,在业务紧急上线的情况下,低危漏洞往往可以选择性的忽略,一般会经过评审,各个负责人签字等流程,DevOps因为强调速度,这种情况则更多,但是作为一个安全人员或者项目经理,忽略这些低危漏洞真的放心吗?攻击者可能不会通过这些低危漏洞来直接攻击业务,但是往往成为攻击链中的一环,获取某些敏感信息等,那RASP的作用就是在运维阶段,继续针对性的保护那些被忽略的低危漏洞。
  当前产品主要有:百度的OpenRASP,详情可参考:https://rasp.baidu.com/ 

相关推荐