ITPub博客

首页 > IT基础架构 > 网络安全 > 代码安全测试第十八期:调用System.exit()存在安全漏洞

代码安全测试第十八期:调用System.exit()存在安全漏洞

原创 网络安全 作者:zktq2021 时间:2021-06-11 13:17:40 0 删除 编辑

一、为什么调用System.exit()存在安全漏洞?

J2EE应用程序调用System.exit(),会关闭其容器。

System.exit()其实是Java中结束进程的方法,调用它将关闭当前的JVM虚拟机。对于web应用程序来说,尝试关闭应用程序容器绝不是一个值得推荐的方法,因为调用可以关闭应用程序的函数可以作为拒绝服务(DoS)攻击的一种途径。

二、调用System.exit()漏洞构成条件有哪些?

满足以下条件,就构成了一个该类型的安全漏洞:

J2EE服务器程序存在某个功能调用System.exit()。

三、调用System.exit()漏洞会造成哪些后果?

关键词:DoS;崩溃、退出或重新启动;

攻击者访问具有System.exit()的功能,可能会导致程序崩溃、退出或重启,实现Dos攻击。

四、调用System.exit()漏洞的防范和修补方法有哪些?

1、特权分离:具有关闭程序的功能应该是特权功能,只有具有授权的管理用户才能使用。

2、Web应用不应该调用如System.exit()这样可以导致虚拟机退出的方法。

3、Web应用程序不应该将任何异常抛出到服务器,这可能会产生负面影响。

4、非Web应用程序可能具有含有System.exit()的main()方法,但不应该在其他位置调用。

五、调用System.exit()漏洞样例:

用悟空 静态代码检测工具分析上述程序代码,则可以发现代码中存在着“调用System.exit()” 导致的 代码缺陷,如下图:

调用System.exit()在CWE中被编号为CWE-382: J2EE Bad Practices: Use of System.exit()


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70000012/viewspace-2776504/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
中科天齐软件源代码安全缺陷检测平台(WuKong)是一款B/S 架构的国产信创静态软件安全测试工具,为客户在软件开发过程中查找、识别、追踪绝大部分主流编码中的技术漏洞与逻辑漏洞,帮助用户提升抵御网络攻击、防止数据泄露等安全问题的能力。

注册时间:2021-05-14

  • 博文量
    533
  • 访问量
    358712