欢迎,游客
首页 > 热点聚焦 > 产品动态
系统之盾,守护应用的保卫战(一)时间:2016-09-09  来源:  浏览数:27

如果没有买保险,飞机上颠簸的你会没有安全感。

如果老王住在隔壁,出差在外的你会没有安全感。

如果没有先赚他一个亿,时刻奋斗的你会没有安全感。

 

如果应用系统没有做安全加固,裸奔的你还会有安全感吗?

本期小编为大家带来的就是系统安全专题:让你的应用不再裸奔。

 

下面,我们就来看看比较典型的危害较大的安全漏洞,以及我们亿信应开的小伙伴们是如何与这些安全漏洞愉快玩耍的。

1 XSS

攻击者诱惑合法用户单击攻击者生成的链接。 用户单击该链接时,便会生成对于 Web 站点的请求,其中的参数值含有恶意的 JavaScript 代码。 如果 Web 站点将这个参数值嵌入在响应的 HTML 页面中,恶意代码便会在用户浏览器中运行。

为了解决这个问题,我们要做的就是把非正常渠道提交的危险字符屏蔽掉,一切魑魅魍魉牛鬼蛇神都将现出原形。

2 SQL注入

某天,听说火车票售票网站的用户数据丢失了,很可能就是这个漏洞引起的。

允许攻击者利用常用SQL注入工具,获取数据库敏感信息,构成信息泄露和运行安全风险。

针对SQL注入漏洞,我们会在服务器端加强HTTP请求字符过滤,防范注入攻击。

3 反序列化

利用此漏洞可以远程执行任意命令,比如浏览目录、文件,甚至删除服务器文件,格式化服务器磁盘。还可能进一步引起后台数据泄漏,比如数据库的连接信息,甚至远程执行SQL语句。

针对这种漏洞,业界目前尚没有成熟的解决方案。Oracle官方声称修复补丁正在研发中,Weblogic 用户将来会收到官方的修复补丁包。如果系统具体业务没有用到common-collections 工具包(包名形如common-collectionsX-X.X.jarX-X.X表示版本号),那么可以将jar包中的InvokerTransformer.classInstantiateFactory.classInstantiateTransformer.class这三个class文件删除。注意,在删除之前,一定要备份,以防发生一些不可预见的兼容性问题。

4 越权访问

用户还没登录,就可以访问系统中的界面,并且在界面上进行操作保存(如文件上传,添加用户等)。

我们应该利用session机制,在页面中判断是否为登录用户且是否有权限访问该页面。

5弱口令

有时候用户为了方便好记,会把密码设置的过于简单,比如123456admin123。这种情况下,容易被攻击者利用密码字典进行测试,进而获取用户敏感信息。

我们要强制用户使用复杂口令。可以将用户的最后更新时间制空。用户登录强制修改密码。

6 缓慢拒绝

有时候,系统明明正在运行,但却死活访问不了,可能是已经中招了。

这个攻击的原理和slowloris有点类似,略有不同的是利用的HTTP POSTPOST的时候,指定一个非常大的content-length,然后以很低的速度发包,比如10-100s发一个字节,hold住这个连接不断开。这样当客户端连接多了后,占用住了webserver的所有可用连接,从而导致服务器瘫痪。

部署时,要在中间件中做配置,对web服务器的http头部传输的最大许可时间进行限制,修改成最大许可时间为20秒。

7 敏感信息

用户在某个功能页面上,可以看到敏感信息(例如:密码hash)。通过这个密码hash在不知道明文的情况下即可登录系统。在实际应用中不必将密码hash返回客户端。返回的密码hash可在不被用户察觉的情况下被同一网段嗅探或通过中间人攻击而获取到。需要去除不必要的返回字段信息。

8 口令爆破

暴力猜解密码漏洞指攻击者可以通过枚举,尝试猜测用户的的登录密码,服务器对此无防护措施,攻击者在知道用户登录id后正确密码被枚举到只是个时间问题。

正确利用验证码功能,可有效避免这样的攻击,在每次登录时强制更新验证码。

9 验证码逻辑

用户名密码验证失败后服务端没有立即刷新验证码,而是由客户端提交验证码刷新请求,利用抓包工具对验证码刷新请求进行拦截后,导致可用同一验证码进行重复登陆操作,可对用户名/密码进行爆破。

需要修改验证码刷新逻辑,验证用户名密码错误后,服务器立即刷新验证码而不是由客户端提交刷新请求。


小伙伴们纷纷使出洪荒之力,铸就了防护应用安全的系统之盾。目前亿信的通用产品线包括i@Report、BI@Report等产品都经过了严格的Fortify白盒测试、HP Appscan等多种漏洞扫描工具的联合扫描。当然,在与系统漏洞和安全攻击的斗争中,亿信的小伙伴永远在路上。