序列化安全审计

序列化安全审计

Dubbo 支持通过 QoS 命令实时查看当前配置信息和可信/不可信类列表。目前支持两个命令:`serializeCheckStatus` 用于查看当前配置信息,`serializeWarnedClasses` 用于查看实时告警列表。

`serializeCheckStatus` 命令

通过控制台直接访问

> telnet 127.0.0.1 22222
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
   ___ __ __ ___ ___ ____
  / _ \ / / / // _ ) / _ ) / __ \
 / // // /_/ // _ |/ _ |/ /_/ /
/____/ \____//____//____/ \____/
dubbo>serializeCheckStatus
CheckStatus: WARN

CheckSerializable: true

AllowedPrefix:
...

DisAllowedPrefix:
...


dubbo>

通过 http 请求 json 格式的结果

> curl http://127.0.0.1:22222/serializeCheckStatus
{"checkStatus": "WARN","allowedPrefix":[...],"checkSerializable":true,"disAllowedPrefix":[...]}

`serializeWarnedClasses` 命令

通过控制台直接访问

> telnet 127.0.0.1 22222
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
   ___ __ __ ___ ___ ____
  / _ \ / / / // _ ) / _ ) / __ \
 / // // /_/ // _ |/ _ |/ /_/ /
/____/ \____//____//____/ \____/
dubbo>serializeWarnedClasses
Warned Classes:
io.dubbo.test.NotSerializable
io.dubbo.test2.NotSerializable
io.dubbo.test2.OthersSerializable
org.apache.dubbo.samples.NotSerializable


dubbo>

通过 http 请求 json 格式的结果

> curl http://127.0.0.1:22222/serializeWarnedClasses
{"warnedClasses":["io.dubbo.test2.NotSerializable","org.apache.dubbo.samples.NotSerializable","io.dubbo.test.NotSerializable","io.dubbo.test2.OthersSerializable"]}

注意:建议及时关注 `serializeWarnedClasses` 的结果,并根据返回结果是否为空来判断是否受到攻击。

有关更多配置详细信息,请参阅 Dubbo 类检查机制


上次修改时间:2023 年 3 月 1 日:移动 SDK 文档 (#2337) (ceab0ea115a)