已关闭
[Bug]: 【等级:一般】【分类:工程】【三方库版本 2.0.23】【组件 libcoap】【属性 messageHandler session remoteIp 日志】明文打印远端 IP 存在隐私风险 #112
程皖Orz创建于  9月3日关闭于  9月15日
程皖Orz
程皖Orz成员
9月3日 创建

感谢对三方库社区的支持与关注,欢迎反馈缺陷。

发生了什么问题?

libcoap 模块 messageHandler 会话处理日志(libcoap/src/main/cpp/coap-client.cpp 的 GetRemoteInfo,LOGI "MessageHandler session remoteIp: %s")将远端 IP 明文打印到 hilog 系统日志,例如:

MessageHandler session remoteIp: 192.168.1.100
MessageHandler session remoteIp: 127.0.0.1

远端 IP 属于敏感信息(可用于定位设备与用户网络位置、还原网络拓扑)。hilog 日志可能被采集、上传或长期保留,明文 IP 进入日志存在隐私泄露风险,不满足日志脱敏规范要求。

期望行为是什么?

日志中对远端 IP 做掩码脱敏输出:保留 IP 首末两段、中间两段掩码为 xxx,如 127.0.0.1 → 127.xxx.xxx.1、192.168.1.100 → 192.xxx.xxx.100。在保留排障所需信息(首段网络类别 + 末段主机标识)的同时避免完整 IP 泄露。会话处理逻辑与 JS 层回调收到的真实远端 IP 不受影响(脱敏仅作用于日志出口)。

如何复现该缺陷?

【预置条件】

  • 集成 @ohos/coap 2.0.23 的 HarmonyOS 应用,设备 hilog 可用
  • 可访问的 CoAP 服务端(如本机回环 127.0.0.1)

【测试步骤】

  1. 应用内创建 CoapClient 并发起 coap 请求(如 coap://127.0.0.1/test,COAP_MESSAGE_CON)
  2. 服务端响应到达,客户端 messageHandler → GetRemoteInfo 处理会话远端信息
  3. 执行 hilog | grep libcoap 查看 libcoap 日志

【实际结果】日志输出 MessageHandler session remoteIp: 127.0.0.1(明文 IP)
【预期结果】日志输出 MessageHandler session remoteIp: 127.xxx.xxx.1(脱敏 IP)

三方库版本。

"@ohos/coap": "2.0.23"(libcoap/oh-package.json5,master 分支 d5475384)

涉及编译环境信息,请补充。

无(该问题与编译环境无关:任何环境下 messageHandler session remoteIp 日志均明文打印远端 IP,OpenHarmony API 12 上实测复现)。

堆栈跟踪或日志

修复前(明文):

MessageHandler session remoteIp: 127.0.0.1

修复后(脱敏):

MessageHandler session remoteIp: 127.xxx.xxx.1

其他补充信息

修复方案:新增 Tools::MaskIpv4 掩码工具函数(保留 IPv4 首末两段、中间两段替换为 xxx,非法/非 IPv4 输入原样返回),messageHandler session remoteIp 日志改经该函数脱敏输出;仅改变日志打印内容,不改变会话处理与 JS 回调链路行为。

提交前检查清单


修改点

序号 文件路径 修改类型 修改说明
1 libcoap/src/main/cpp/tools.h 修改 新增 Tools::MaskIpv4 掩码函数声明(含掩码规则注释)
2 libcoap/src/main/cpp/tools.cpp 修改 新增 Tools::MaskIpv4 实现:解析 IPv4 四段,保留首末段、中间两段掩码为 xxx;非法/非 IPv4 输入原样返回
3 libcoap/src/main/cpp/coap-client.cpp 修改 messageHandler session remoteIp 日志(GetRemoteInfo 内,:393)实参改为 Tools::MaskIpv4(client->remoteIp).c_str() 脱敏输出
4 CHANGELOG.md 修改 新增 2.0.24 版本条目(英文描述,附本 Issue 链接)
5 libcoap/oh-package.json5 修改 版本号 2.0.23 → 2.0.24(沿用仓库修复类提交惯例)

此 Issue 由 ohos-lib-pr-push 工作流按「缺陷反馈|Bug」模板自动创建

likedislike
程皖Orz程皖Orz成员
9月3日 添加了label:bugtriage
程皖Orz程皖Orz成员
9月3日 关联了pull request:修复session remoteIp日志明文打印IP的隐私风险
cpf-thirdparty-manager
9月4日 评论:

本Issue主要用于开发协作,欢迎在此反馈问题或提出建议

likedislike
openharmony_ciopenharmony_ci成员
9月15日 关闭了 issue