安全基线检查
在应用服务器启动时,进行安全配置规范检查。如果 security.enforce_policy 设置为 true,发现不安全配置时,将抛出 com.baidu.openrasp.exception.SecurityException 异常并拒绝应用服务启动
报警只会打印一次,具体格式参考 安全配置检查报警日志 相关文档
3001 - 关键 cookie 是否开启 httpOnly
** 支持的服务器 **
tomcat
** 策略说明 **
在 tomcat 服务器下,检查是否在 JSESSIONID 是否开启 httpOnly 开关
开启后,将对XSS攻击有一定的防范能力,可避免一些问题
** 修复方法 **
若是 tomcat 7 以下版本,打开 CATALINA_HOME/conf/context.xml,将 useHttpOnly 改为 true,重启应用服务器即可
3002 - 进程启动账号检查
** 支持的服务器 **
tomcat, jetty, jboss, resin, springboot 等所有的 java 服务器
** 策略说明 **
检查应用服务器的启动账号,当以如下账号启动则认为不符合安全规范:
Linux 系统的
root账号Windows 系统的
Administrator或者system账号
当应用服务器存在安全漏洞,以高权限账号启动会带来更大的安全风险,e.g 上传 webshell 即可获取最高权限、利用 struts 漏洞直接获取 root 权限
** 修复方法 **
使用低权限用户启动应用服务器
3003 - 后台弱口令检查
** 支持的服务器 **
tomcat
** 策略说明 **
在 tomcat 下,检查 $CATALINA_HOME/conf/tomcat-users.xml 下面配置的用户,如果具有 admin,manager,admin-gui,manager-gui 权限之一,即认为是管理员。然后针对所有管理员用户,检查密码的健壮性。
目前策略非常简单,当用户名和密码均是以下内容之一,才认为是弱口令
** 修复方法 **
使用高强度密码,e.g 使用10位以上的密码,并包含数字、字母、特殊符号
3004 - 不安全的默认应用检查
** 支持的服务器 **
tomcat
** 策略说明 **
在 tomcat 下,检查 ROOT、manager、host-manager、docs 四个 webapps 是否删除
默认应用或多或少会泄露敏感信息,或者造成管理后台对外暴露的风险
** 修复方法 **
全部删除
3005 - Directory Listing 检查
** 支持的服务器 **
tomcat
** 策略说明 **
在 tomcat 下检测 $CATALINA_HOME/conf/web.xml 是否为全局开启了 default servlet 的 Directory Listing功能
开启 Directory Listing 功能,会泄露项目的目录结构,并泄露服务器的版本信息,危险配置如下:
** 修复方法 **
打开 $CATALINA_HOME/conf/web.xml 把如上 xml 配置中的名字为 listing 的 init-param 删除,或者把 param-value 改为 false 即可
3006 - 数据库连接账号审计
** 支持的服务器 **
所有使用 JDBC 的服务器、PHP 服务器
** 策略说明 **
检查是否使用 root (mysql)、sa (mssql)、sys (oracle) 等高权限账号连接数据库
当存在SQL注入漏洞,使用高权限账号连接数据库会带来更大风险,泄露更多的数据;当服务器被黑客入侵,使用高权限账号,还可能同时导致数据库服务器沦陷
如果 security.enforce_policy 选项设置为 true,那么无论数据库连接成功与否,我们都会拦截并产生报警;如果设置为 false(默认值),则只有成功的连接才会报警,且对于每个JDBC URL,相同的报警每天只会打印一次
** 修复方法 **
创建新账号,授予最小的权限;不同的服务器集群使用不同的数据库账号连接
3007 - JBoss HTMLAdaptor 认证检查
** 支持的服务器 **
JBoss 4-6
** 策略说明 **
检查 /jmx-console/HTMLAdaptor 是否开启认证
** 修复方法 **
编辑
$JBOSS_HOME/server/default/deploy/jmx-console.war/WEB-INF/web.xml,开启security-constraint相关配置编辑
$JBOSS_HOME/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml,开启security-domain相关配置
3009 - Web 根目录下存在敏感文件
** 支持的服务器 **
PHP
** 策略说明 **
定期扫描 webroot,检查是否存在后缀为 sql、tar、rar、... 的文件
** 修复方法 **
删除这些文件
从 nginx、apache 层面过滤掉这些扩展名,防止被外界下载
4001 - allow_url_include 配置审计
** 支持的服务器 **
PHP 服务器
** 策略说明 **
检查 allow_url_include 是否开启。开启后,将允许包含远程文件,e.g
当应用存在文件包含、任意文件读取等漏洞,开启这个配置会让应用更加容易被入侵。
** 修复方法 **
修改 ini 配置,将 allow_url_include 设置为 Off
4002 - expose_php 配置审计
** 支持的服务器 **
PHP 服务器
** 策略说明 **
检查 expose_php 是否开启。若开启,在请求响应里可看到PHP的完整版本号,e.g
** 修复方法 **
修改 ini 配置,将 expose_php 设置为 Off
4003 - display_errors 配置审计
** 支持的服务器 **
PHP 服务器
** 策略说明 **
检查 display_errors 是否开启。当这个选项被开启,用户可在前端看到PHP程序内部的错误消息,e.g
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\post\includes\pm_send.php on line 12
当应用存在漏洞,结合这些错误消息,攻击者可以获取应用运行的路径、进行SQL报错注入攻击等等
** 修复方法 **
修改 ini 配置,将 display_errors 设置为 Off
4004 - yaml.decode_php 配置审计
** 支持的服务器 **
PHP 服务器
** 策略说明 **
检查 yaml.decode_php 是否开启。当这个选项被开启,在加载 yaml 文件的时候,将允许反序列化PHP对象,可能执行任意代码。另外,如果没有安装 yaml 扩展,即使配置了 yaml.decode_php=On 也不会报警。
** 修复方法 **
修改 ini 配置,将 yaml.decode_php 设置为 Off
Last updated