功能和性能选项设置

功能和性能参数主要集中在 /system/dps/etc/configure.ini 文件当中,可跟据自身设备的实际情况和需求进行配置,它们可能会影响到设备的 CPU、RAM、磁盘、网络消息等资源占用,请进行合理配置。

1. DPS_DATA: IoT 安全运营中心的安全 Agent 服务程序存放数据的路径,请配置到操作系统的可读/写分区的文件夹路径下,请确保 /data 目录所在的数据磁盘分区空间至少 128MB 剩余。

2. DPS_PROFILE:IoT 安全运营中心的安全 Agent 的分类,可配置为以下 2 类(通常默认 standard 即可)

  • standard - 普通的物联网设备使用的 Agent 类型

  • server - 网关设备推荐使用的 Agent 类型

3. DPS_DEBUG:开启或者关闭 IoT 安全运营中心的安全 Agent 日志,日志功能开启之后日志将保存在 $DPS_DATA/log 下。

  • 0 - 关闭日志功能

  • 1 - 开启日志功能

4. NUM_LOGS: IoT 安全运营中心的安全 Agent 服务日志最大保存天数,仅保存最近 $NUM_LOGS 天的日志文件。

5. LOG_FILE_SIZE:单个日志文件最大大小,单位为 KB。

6. KERNEL_AUDIT:配置是否启用内核审计能力,如果目标设备 CPU 比较弱但是业务负载比较大时,建议关闭此选项,其余状态请尽量打开,具体评估方式可采用运行 sudo dmesg 观察内核日志是否出现 auditctl 队列溢出的打印,如果有溢出,请关闭。

  • 0 - 关闭,并采用相应用户态能力进行事件审计(可能牺牲一些安全审计能力,如暴力登录)

  • 1 - 打开。

7. PROTECTED_PATH:目标设备取证扫描的自定义路径,在此路径之下的所有文件将被取证和加入完整性保护,建议配置成目标设备上可执行程序、共享库、配置文件等重要文件存放的目录。支持配置多个路径,中间用 : 隔开。

8. SCAN_DUTY_CYLCLE:取证服务的工作占空比,可以在设备首次上线的 20 分钟内通过观察 /system/dps/bin/scanner 的 CPU 占用率来调节它的值,范围在 0~100,数值越大 scanner 工作时占 CPU 资源越低,但是工作持续时间越长(太长可能导致取证超时,安全保护不完整)。反之数值越小 scanner 占 CPU 越高,但是工作时间更短。

9. TRAFFIC_MONITOR:用于配置要进行流量审计的网络接口名称,一般在 3G/4G/5G 这样的移动设备上,建议配置使用计费运营商网络的网络接口,而并非 WiFi,ETH 等不计费的网络接口,有助于帮助监控运营商网络流量,并在流量异常时进行告警,一方面可以避免流量资费不够,另一方面异常流量可帮助判断设备是否被非法入侵。例如一般手机设备上,移动网络接口为 rmnet_data0 等。可在 adb shell 当中使用命令 ip a 命令进行观测。

如果不需要进行流量审计,可以将此配置项配置为“0”。

10. MANAGED_VERSION:表示厂商固件版本号信息。格式为一段描述文本,按照不同情况,配置方法有以下 3 种:

  • 如果将固件版本号直接描述在 configure.ini 当中,那么 MANAGED_VERSION 的值即为固件版本号的文本。

例如:MANAGED_VERSION=V1.0.0

  • 如果设备厂商始终使用本地文件系统来追溯固件版本,这段文本是一个标准 URI,它的格式为:

file://<file_path>?pattern=<pattern_string>。

例如:MANAGED_VERSION=file:///etc/version.txt?pattern=.%2b

其中 file:// 后面紧接着固件版本号所寄存的文件绝对路径,为标准 Unix 文件路径格式

URI 的 query 部分(“?”符号后面的部分),query 字段只有一个,query key 为固定的“pattern=”,其值为固件版本号寄存文件内容当中进行正则匹配的正则表达式。

**请注意在 URI 字符串当中填写非字母和非数字 ASCII 符号时需要做 URI encode,详细的 encode 表请参考下表:https://www.tutorialspoint.com/html/html_url_encoding.htm

  • 在 Android 系统当中,如果需要使用 property 来获取版本号,这段文本是一个标准 URI,它的格式为:

property://<property_name>,其中 <property_name> 表示 Android 系统当中存放固件版本号的属性名称。

例如:MANAGED_VERSION=property://ro.build.id

11. MANAGED_ID:表示该设备在厂商自有设备管理系统中的唯一标识号。格式为一段描述文本,按照不同情况,配置方法有以下 3 种:

  •     如果将设备管理 ID 直接描述在 configure.ini 当中,那么 MANAGED_ID 的值即为设备管理 ID 的文本。

    例如:MANAGED_ID=serial_0123456789

  •     如果设备厂商始终使用本地文件系统来追溯固件版本,这段文本是一个标准 URI,它的格式为:

    file://<file_path>?pattern=<pattern_string>。

    例如:MANAGED_ID=file:///etc/managed_id.txt?pattern=.%2b

    其中 file:// 后面紧接着设备管理 ID 所寄存的文件绝对路径,为标准 Unix 文件路径格式

    URI 的 query 部分(“?”符号后面的部分),query 字段只有一个,query key 为固定的“pattern=”,其值为设备管理 ID 寄存文件内容当中进行正则匹配的正则表达式。

  •     在 Android 系统当中,使用 property 来获取设备管理 ID ,此文本是一个标准的 URI,它的格式为:

    property://<property_name>,其中 <property_name> 表示 Android 系统当中存放设备管理 ID 的属性名称。

    例如:MANAGED_ID=property://ro.product.vendor.device

  •     对于可通过命令行返回结果获取厂商硬件 ID 的场景,它的格式为:

    cmdline://<cmdline_full_path>?pattern=<pattern_string>

    例如 MANAGED_ID=cmdline:///bin/bash%20-C%20/usr/local/bin/get_sn.sh?pattern=.%2b

12. MANAGED_NAME:标识一类设备,选择性填写。如果需要填写则需要按照一定规范进行定义。

MANAGED_NAME 使用下划线(“_”)划分信息栏位,分别是:

  • 品类:标识设备品类,采用下面列表当中的一种:

取值

释义

camera

网络摄像机

nvr

视频 NVR 设备

screen

屏幕类设备

edge

边缘网关类设备

net

网络设施

handy

手持设备:POS 机,快递员专用机等。

car

车载设备

sales

自动售卖机

computer

个人电脑

mobile

手机

  • 厂商:不超过 12 个字符的标识厂商的栏位,例如:aliyun,cainiao 等。

  • 型号:可选,如果设备没有型号,则填 0。

示例,下面一个字符串标识阿里云物联网生产制造的网关 B001:

MANAGED_NAME=edge_aliyun_b001

13. 一个完整示例

[system]
DPS_DATA=/data/dps
DPS_PROFILE=standard
DPS_DEBUG=1
NUM_LOGS=3
LOG_FILE_SIZE=10240
KERNEL_AUDIT=1

[attestation]
PROTECTED_PATH=/home/usr/lib:/home/usr/lib64
SCAN_DUTY_CYCLE=100
FILE_MONITOR=/dev
TRAFFIC_MINITOR=eth0

[report]
REPORT_EVENTS=1
REPORT_FILE_INTEGRITY=1
REPORT_PROCESS_BEHAVIOR=1
REPORT_NETWORK_INTERNET=1
REPORT_NETWORK_INTRANET=0
REPORT_NETWORK_MULTICAST=0

[security]
SEC_STORAGE_PATH=

[device]
MANAGED_NAME=some_device_type
MANAGED_VERSION=file:///etc/version.txt:.%2b
MANAGED_ID=serial_01234567890

通过 configure.ini 的 MANAGED_VERSION  和 MANAGED_ID 分别配置 managed_version 和 managed_id文件,需要注意权限设置,才能确保保护功能正常运作。

文件说明

权限

用户

managed version 文件

644

root

root

managed ID 文件

644

root

root

当前版本号以及设备管理 ID 字符串限制最长 128 字节。

后续步骤:功能和性能评估