fastjson是阿里巴巴的开源JSON解析库,它能够解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也能够从JSON字符串反序列化到JavaBean,因为具备执行效率高的特色,应用范围很广html
2019年6月22日,阿里云云盾应急响应中心监测到FastJSON存在0day漏洞,攻击者能够利用该漏洞绕过黑名单策略进行远程代码执行java
关于fastjson javaweb框架的0day漏洞情报,因为fastjson在进行实例化对象时没有对输入数据进行严格限制,攻击者只要精心构造json数据,便可形成远程代码执行,截止到发稿日,关于该漏洞的利用方式暂未公开,请相关用户及时进行防御。python
2019年6月22日,阿里云云盾应急响应中心监测到FastJSON存在0day漏洞,攻击者能够利用该漏洞绕过黑名单策略进行远程代码执行。web
FastJSON远程代码执行0day漏洞apache
升级至FastJSON最新版本,建议升级至1.2.58版本。json
升级方法服务器
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.58</version> </dependency>
Web应用防火墙的Web攻击防御规则中已默认配置相应规则防御该FastJSON 0day漏洞,启用Web应用防火墙的Web应用攻击防御功能便可。app
以上参考:https://helpcdn.aliyun.com/document_detail/123431.html框架
FastJson是阿里的一个开源Json解析库,能够将数据在JSON和Java Object之间互相转换,此前曾被爆出存在反序列化漏洞。为预防FastJson库存在0day漏洞,现提供两条自定义规则,可根据状况选择一个添加。也能够同时添加两个,若是有误报,再取消。此自定义规则主要针对存在JAVA系统并使用了该库的客户。ssh
检测对象>request_body
匹配操做>正则包含
检测值>['"]\s*@type\s*['"].*?(com\.(sun|mchange)|org\.(apache|codehaus|hibernate|jboss|mozilla|python)|java\.(lang\.Thread|net\.Socket|rmi)|javax\.xml|bsh)
检测对象>request_body
匹配操做>正则包含
检测值>['"]\s*@type\s*['"]
ssh登录BSA后台,执行以下命令(将SparkSqlServer主机地址替换至绿色背景,而后复制该命令而且回车):
先切换bsauser帐号 su – bsauser
而后执行
./spark-1.3.0-bin-hadoop2.4/bin/beeline -u jdbc:hive2://bsa12:10000 --verbose=true --showHeader=true --outputformat=tsv2 --color=true -e "select sip, dip, from_unixtime(timestamp) as timestamp, ret_code, host, uri, post_data from internal_app_bsatam2.tam_httplog where ns_date>=20190610 and (post_data rlike '@type' or uri rlike '@type');" > fastjson_export.csv |
等待上述任务执行完成以后,若是当前目录下有fastjson _export.csv文件且文件中有内容时,说明20190610至今的历史流量中出现过fastjson漏洞攻击。
将上述下列SQL粘贴至下图所示位置:
select sip, dip, from_unixtime(timestamp) as timestamp, ret_code, host, uri, post_data from internal_app_bsatam2.tam_httplog where ns_date>=20190610 and (post_data rlike '@type' or uri rlike '@type') |
Tam自定义场景监控可用于实时监测,当UTS上没有配置该规则时,使用TAM的自定义场景的检测功能:
将下列SQL粘贴至规则输入
select sip, dip, timestamp as start_time, timestamp as end_time, ret_code as info3, concat(host, uri) as infos, post_data as info2, timestamp as end_time from internal_app_bsatam2.tam_httplog where post_data rlike '@type' or uri rlike '@type') |
问题补充:
该缺陷是因旧缺陷修复方案引发,缘由以下:
在fastjson 1.2.24版本以前(包括1.2.24版本),fastjson 在使用JSON.parseObject方法时,因为使用泛型(Object.class)反序列化的场景时,存在恶意构造序列化内容形成执行服务器命令。即在远程服务器场景,若是使用fastjson作为远程报文内容反序列化,且泛型使用,则存在期可能。
在1.2.24版本以后该缺陷已修复,修复方案采用默认关闭autoType,即自动泛型反序列化,且若是打开autoType,也加入了黑名单,对存在易被利用攻击的类进行了黑名单处理。此次漏洞风险内容为:打开了autoType的状况下,能够经过0day漏洞绕过黑名单。绕过的方式,暂时不详。