安装IoT安全运营中心保护物联网设备安全

更新时间: 2023-12-07 11:56:40

isoc

手动配置

60

教程简介

产品简介

IoT安全运营中心(IoT Security Operation Center)是面向物联网资产的统一安全管理系统,通过全网资产测绘、全面安全检测、安全防护等能力,实现物联网资产“可见、可知、可管”的安全运营闭环。 IoT安全运营中心的工作原理如图:

image.png

灵活的接入方式

全面支持代理(适用于可改造设备)与无代理(适用于不可改造设备)接入方式,如安全Agent、物联网平台风控、日志接入、探针扫描、固件检测等多种安全接入方式。

  • 安全Agent:代理接入方式,提供了适用于物联网设备的安全Agent,您可以将它集成到自己的设备固件当中,持续地对设备进行更加全方位的安全检测与防护。支持Linux、Android、RTOS等多种操作系统。

  • 物联网平台风控:无代理接入方式,在设备接入到物联网平台过程中,存在身份认证、连接等方面的安全风险,进而被恶意第三方所利用而对设备安全构成威胁,会被阿里云IoT安全运营中心检测到。

  • 日志接入:无代理接入方式,支持SLS、Kafka两种日志系统,通过分析日志源日志给出物联网设备的威胁检测。

  • 固件检测:无代理接入方式,检测设备固件的安全风险,如已知软件CVE漏洞、敏感信息等,并提供安全修复建议。

全面的安全检测

通过丰富的安全风险检测策略,多维度全方位检测,做到物联网风险的全面覆盖。

  • 安全态势:通过仪表盘、报表等实现设备安全可视化,提供威胁、漏洞、安全统计等,提升治理效率。

  • 威胁预警:通过提供身份泄露、恶意文件、高风险命令等数十项检测模板,全面发现威胁。

  • 异常行为检测:基于自动安全基线和可配置白单及告警阈值,自动检测异常行为,覆盖进程、网络、流量等多个维度。

  • 漏洞扫描:基于强大的IoT情报库,全面识别系统与组件存在的漏洞。您可以通过漏洞修复指引完成漏洞修复。

闭环的响应处置

帮助您构建安全防护策略,通过异常阻断、漏洞修复、行为锁定等能力,对物联网进行安全防护,实现闭环化安全管理。

  • 异常阻断:通过安全策略设置禁止设备不安全的行为,如禁止设备访问指定IP/URL。

  • 漏洞修复:通过修复功能消除设备漏洞,防止攻击者利用这些漏洞进行非法攻击。

  • 访问控制:提供网络访问控制能力,确保设备仅访问被允许的URL或者IP地址。

  • 威胁告警: 支持自定义威胁告警策略,通过邮件、webhook 的方式推送告警信息。

良好的兼容性

支持Linux、Android、RTOS的设备。

  • Linux:CentOS 7.6 ~ 7.9、CentOS 8.0 ~ 8.3、Ubuntu 14.04 ~ 20.04、Debian 9 ~ 11。

  • Android:Android 7/8/9

  • RTOS:AliOS Things和其他常见RTOS。

教程简介

本教程以Linux设备为例,对接入阿里云物联网平台实例的设备进行安全威胁检测,在设备端安装安全Agent识别更多的安全风险,检测和响应威胁事件,识别安全漏洞。

image.png

  1. 基于阿里云物联网平台实现安全威胁检测

    通过IoT安全中心开启平台风控检测识别设备的身份凭据泄露、不安全连接等风险。

  2. 安装安全Agent实现安全防护

    通过在设备端安装安全Agent,对设备进行全面的安全威胁检测和安全防护。例如,网络访问控制、流量审计、设备威胁检测、漏洞检测等。

前提条件

  • 准备1台目标设备、1台攻击设备(可以共用一个阿里云ECS实例或虚拟机,但是需要使用两个Shell窗口)。

  • 了解基础的Linux操作命令。

我能学到什么

  • 通过IoT安全运营中心对接入到阿里云物联网平台的设备进行安全检测。

  • 在设备端快速集成IoT安全运营中心的安全Agent。

  • 通过IoT安全运营中心实现网络访问控制和流量审计。

  • 通过IoT安全运营中心识别设备暴力破解登录、高风险命令、访问恶意域名/恶意IP等常见威胁事件。

  • 通过IoT安全运营中心检查物联网设备的安全漏洞并获取修复建议。

操作难度

所需时间

60分钟

使用的阿里云产品

所需费用

0元

说明

使用过程中有任何问题或建议,请通过钉钉联系我们。

准备环境和资源

10

开始教程前,请按以下步骤准备环境和资源:

  1. 访问阿里云免费试用。单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。

  2. 准备阿里云物联网平台实例。可以使用已有的实例,也可以访问阿里云免费试用申请免费试用、通过物联网平台页面购买。

说明

IoT安全运营中心和物联网平台实例必须在同一个region(华北2(北京)或华东2(上海))。

支持物联网平台实例类型为公共实例、企业版实例-标准型、企业版实例-尊享型的实例。

请确保您拥有的物联网平台实例剩余有效期≥31天。如果物联网平台实例到期,那么会导致您无法继续试用IoT安全运营中心;您需要为实例续费后,才可以继续使用IoT安全运营中心。

例如,您在2023年6月15日申请了IoT安全运营中心的免费试用,而您的物联网平台将在2023年6月20日到期,将导致您在2023年6月20日之后无法试用IoT安全运营中心。此时您需要为物联网平台续费才能继续试用IoT安全运营中心。

  1. 准备物联网设备。如果您熟悉阿里云ECS的操作,推荐方式1。

    1. 方式1:使用阿里云ECS模拟设备。使用阿里云ECS模拟物联网设备

    2. 方式2:使用虚拟机模拟设备。使用虚拟机模拟物联网设备

      • 下载并安装虚拟机应用。例如,VMware

      • 下载并解压镜像CentOS-7.6_x86_64(适用于 Windows,Linux Desktop 以及 Mac x86_64 )、Ubuntu-20.04_arm64(适用于 Mac M1/M2 Silicon CPU (aarch64 架构))。

      • 启动虚拟机软件,单击打开虚拟机,选择上一步解压的文件并直接导入虚拟机

      • 启动虚拟机并登录(用户名:aliyuniot、密码:aliyun1234)。

  2. 访问阿里云免费试用。在产品类别下选择IoT安全运营中心,单击立即试用

  3. 在弹出的页面中选择免费试用(1个月)规格,选择地域,单击立即购买。按指引完成操作。

  4. 购买成功后,单击产品控制台进入IoT安全运营中心的控制台,在顶部的信息提示中可以看到免费试用的额度和到期时间。

    说明
    • IoT安全运营中心为后付费的商品,免费试用显示为“立即购买”,免费试用期间实际费用是0元。

    • 使用过程中有任何问题或建议,请通过钉钉联系我们。

平台风控检测

15

IoT安全运营中心能快速检测物联网设备(接入到阿里云物联网平台)是否存在设备身份信息泄露、设备身份暴力破解、连接未加密等风险,您可以通过邮件接收告警信息并按照修复建议进行修复。详细功能请查看:IoT安全运营中心

本章节描述了如何对物联网设备进行基础的安全检测,包括:

  • 前提条件

  • 将设备接入阿里云物联网平台

  • 配置告警通知

  • 检测设备身份信息泄露

  • 检测设备身份暴力破解

  • 检测连接未加密

  • 风险防范

说明

本教程使用的是阿里云ECS模拟的设备。

前提条件

  • 已拥有阿里云物联网平台实例

  • 已开通IoT安全运营中心的免费试用

  • 模拟设备或者物联网设备

将设备接入阿里云物联网平台

  1. 登录阿里云物联网平台,进入实例概览页面,记录下关键信息:实例ID

    说明

    部分公共云实例ID显示为-,后续脚本中参数值填写-。

    image.png

  2. 选中并进入一个实例控制台,在左侧导航栏,选择设备管理>产品,单击创建产品按钮,创建一个名称为“物联网平台风险模拟测试产品”的产品。

    image.png

  3. 创建完成后,单击查看产品详情,开启动态注册。记录下关键信息:ProductKeyProductSecret

    image.png

  4. 在左侧导航栏,选择设备管理>设备,单击添加设备按钮,选择上一步创建的产品,填写DeviceName为test_device_1并单击确认按钮,然后单击前往查看按钮,记录下关键信息:DeviceNameDeviceSecret

    image.png

  5. 分别登录目标设备、攻击设备(启用命令行窗口,例如SSH),执行wget下载并解压脚本。其中normal_connect_simulate用于模拟一个目标设备,其余3个目录对应3个攻击模拟脚本。

    说明

    这些脚本仅仅是演示,不会对物联网系统造成任何损失。

    # 用于 Intel x86_64(包括主流 Windows 桌面电脑和 MAC 较早的 Intel 处理器笔记本上的虚拟机以及阿里云ECS)处理器的脚本下载连接:
    cd $HOME
    wget https://lsoc-sdk.oss-cn-shanghai.aliyuncs.com/trial/link_platform_security_threat_simulate_x86_64.tar.gz
    tar -xf link_platform_security_threat_simulate_x86_64.tar.gz
    
    # 用于 ARM64 处理器(包括 MAC M1/M2 上的虚拟机以及其他 ARM64 处理器的设备)
    cd $HOME
    wget https://lsoc-sdk.oss-cn-shanghai.aliyuncs.com/trial/link_platform_security_threat_simulate_arm64.tar.gz
    tar -xf link_platform_security_threat_simulate_arm64.tar.gz
    
    # 用于 ARMv7(32位 ARM 处理器的设备)的脚本下载连接:
    cd $HOME
    wget https://lsoc-sdk.oss-cn-shanghai.aliyuncs.com/trial/link_platform_security_threat_simulate_armv7.tar.gz
    tar -xf link_platform_security_threat_simulate_armv7.tar.gz
    normal_connect_simulate       # 用于模拟一个正常的设备接入物联网平台
    credential_leak_simulate      # 用于模拟接入凭据泄露并被不法利用的脚本
    brute_force_login_simulate    # 用于模拟暴力破解登录的脚本
    insecure_link_simulate        # 用于模拟与阿里云物联网平台之间建立不安全 MQTT 连接的脚本
  6. 登录到目标设备,进入normal_connect_simulate目录,执行脚本 ./lp_normal_connect_simulate.sh [iot_instance_id] [product_key] [device_name] [product_secret]将这台设备接入到阿里云物联网平台。脚本的参数分别对应上文记录的内容:

    • iot_instance_id:实例ID

    • product_key:ProductKey

    • device_name:DeviceName

    • product_secret:ProductSecret

    cd link_platform_security_threat_simulate_x86_64/normal_connect_simulate/
    ./lp_normal_connect_simulate.sh [iot_instance_id] [product_key] [device_name] [product_secret]
  7. 当看到message published successfully信息,则说明该设备接入成功。

    image.png

  8. 登录阿里云物联网平台,在实例概览页面选择实例,在左侧导航栏,选择设备管理>设备,在设备列表中查看设备状态为:在线。保持设备端的连接窗口为开启状态。

    image.png

查看资产信息

  1. 登录产品控制台,在左侧导航栏,选择概览,在物联网平台实例板块单击立即授权按钮。

    image.png

  2. 在授权访问阿里云物联网平台的页面,单击立即授权按钮。完成后在常规>设备>物联网平台实例查看到相应的实例且安全检测为开启状态。

    image.png

  3. 在左侧导航栏,选择常规>资产>设备,IoT安全运营中心已经识别到阿里云物联网平台的设备。

    image.png

检测设备身份信息泄露

目标设备的身份信息因保护不当导致泄露,攻击者利用攻击设备冒充目标设备接入到物联网平台,对物联网业务和数据安全造成严重影响。IoT安全运营中心能够识别身份信息泄露风险,并推送告警信息提醒管理员采取保护、处置措施。

  1. 登录到攻击设备,进入 credential_leak_simulate 目录,执行脚本 ./lp_credential_leak_simulate.sh [iot_instance_id] [product_key] [device_name] [product_secret],将这台设备接入到阿里云物联网平台。

    • 参数对应上文记录的实例ID、ProductKey、DeviceName、ProductSecret。

    说明

    由于安全策略限制每个设备最多执行5次脚本,如果需要多次执行lp_credential_leak_simulate.sh,必须更换DeviceName、ProductSecret。

    cd $HOME
    cd link_platform_security_threat_simulate_x86_64/credential_leak_simulate/
    # 这是一个新打开的 SSH 窗口,请对应图中的接入凭据分别填入以下参数位置:
    ./lp_credential_leak_simulate.sh [iot_instance_id] [product_key] [device_name] [product_secret]
  2. 查看目标设备、攻击设备的打印日志中均有AIOT_MQTTEVT_DISCONNECT: network disconnect信息,说明两个设备使用相同的设备密钥发生了冲突。

    pub, qos: 0, topic: /ext/error/xxxxxxxx/test_device_2
    pub, payload: {"code":520,"data":{"topic":"/user/test_device_2&xxxxxxxx/^1^1684978072665^442d145654ff7da/test_upstream","productKey":"user","deviceName":"test_device_2&xxxxxxxx"},"id":"1","message":"no active session for user&test_device_2&xxxxxxxx"}
    [1684978086.599][LK-0309] pub: /ext/notify
    
    // 被模拟凭据泄露利用的非法设备踢下线
    [LK-030A] < 7B 22 74 69 74 6C 65 22  3A 22 6B 69 63 6B 22 2C | {"title":"kick",
    [LK-030A] < 22 63 6F 6E 74 65 6E 74  22 3A 22 4B 69 63 6B 65 | "content":"Kicke
    [LK-030A] < 64 20 62 79 20 74 68 65  20 73 61 6D 65 20 64 65 | d by the same de
    [LK-030A] < 76 69 63 65 22 7D                                | vice"}          
    
    pub, qos: 0, topic: /ext/notify
    pub, payload: {"title":"kick","content":"Kicked by the same device"}
    [1684978086.599][LK-1000] mbedtls_ssl_recv error, res: -0x7880
    [1684978086.599][LK-1000] adapter_network_deinit
    AIOT_MQTTEVT_DISCONNECT: network disconnect  // MQTT 断开
    [1684978087.599][LK-0314] MQTT network disconnect, try to reconnecting...
    establish tcp connection with server(host='iot-xxxxxx.mqtt.iothub.aliyuncs.com', port=[443])
    success to establish tcp, fd=4
    local port: 51648
    [1684978087.600][LK-1000] establish mbedtls connection with server(host='iot-xxxxxx.mqtt.iothub.aliyuncs.com', port=[443])
    [1684978087.688][LK-1000] success to establish mbedtls connection, (cost 45376 bytes in total, max used 48344 bytes)
    [1684978087.733][LK-0313] MQTT network reconnect success
    AIOT_MQTTEVT_RECONNECT  // MQTT 重连
    [1684978088.866][LK-0309] pub: /ext/notify
    
    [LK-030A] < 7B 22 74 69 74 6C 65 22  3A 22 6B 69 63 6B 22 2C | {"title":"kick",
    [LK-030A] < 22 63 6F 6E 74 65 6E 74  22 3A 22 4B 69 63 6B 65 | "content":"Kicke
    [LK-030A] < 64 20 62 79 20 74 68 65  20 73 61 6D 65 20 64 65 | d by the same de
    [LK-030A] < 76 69 63 65 22 7D                                | vice"}          
    
    pub, qos: 0, topic: /ext/notify
    pub, payload: {"title":"kick","content":"Kicked by the same device"}
    [1684978088.866][LK-1000] mbedtls_ssl_recv error, res: -0x7880
    [1684978088.866][LK-1000] adapter_network_deinit
    AIOT_MQTTEVT_DISCONNECT: network disconnect
  3. 分别在目标设备、攻击设备中按Ctrl+C结束脚本。

  4. 登录产品控制台,在左侧导航栏中,选择常规>风险>威胁,查看到告警任务为设备身份信息泄露检测的告警(可能会延迟1~2分钟)。包含以下关键信息:

    • 严重等级:高危。

    • 告警任务:设备身份信息泄露检测(一型一密)。

    • 告警内容:检测到多个物联网设备使用了相同的身份信息:[身份信息序号]。

    image.png

检测设备身份暴力破解

  1. 登录阿里云物联网平台,选中并进入一个实例控制台,在左侧导航栏,选择设备管理>设备,在设备列表页面单击添加设备按钮,在产品物联网平台风险模拟测试中创建设备test_device_2。

    image.png

  2. 创建完成后单击前往查看设备信息,记录DeviceName、DeviceSecret。

    image.png

  3. 登录到攻击设备,进入目录link_platform_security_threat_simulate_x86_64/brute_force_login_simulate/, 执行脚本./lp_brute_force_login_simulate.sh [iot_instance_id] [product_key] [device_name] [device_secret] [brute_force_times]模拟攻击设备尝试接入阿里云物联网平台 。

    • 参数对应上文记录的实例ID、ProductKey、DeviceName、DeviceSecret。brute_force_times(模拟的暴力破解次数)为60。

    cd $HOME
    cd link_platform_security_threat_simulate_x86_64/brute_force_login_simulate/
    ./lp_brute_force_login_simulate.sh [iot_instance_id] [product_key] [device_name] [device_secret] [brute_force_times]
  4. 运行后,该脚本会使用错误的身份信息连接阿里云物联网平台,连接失败的信息:

    ...
    please check variables like mqtt_host, produt_key, device_name, device_secret in demo
    simulating login Aliot platform with fake device secret : 87261**************...
    trying to connect to Aliot Platform with insecured connection, 
    host        = iot-xxxxxxxx.mqtt.iothub.aliyuncs.com
    product_key = xxxxxxxxxxx
    device_name = test_device_2
    device_sec =  872619029638def3878d305552c5516d // 这里故意用一个错误的随机 device secret 模拟暴力破解登录
    [1684908289.722][LK-0313] MQTT user calls aiot_mqtt_connect api, connect
    [1684908289.722][LK-032A] mqtt host: iot-xxxxxx.mqtt.iothub.aliyuncs.com
    [1684908289.722][LK-0317] user name: test_device_2&xxxxxxxxxx
    [1684908289.722][LK-0318] password: 1346**************************************8
    establish tcp connection with server(host='iot-xxxxxx.mqtt.iothub.aliyuncs.com', port=[443])
    success to establish tcp, fd=3
    local port: 50708
    [1684908289.755][LK-0316] MQTT authorize fail, disconnect // 登录认证失败,断开连接
    [1684908289.755][LK-1000] adapter_network_deinit
    aiot_mqtt_connect failed: -0x0305
    ...
  5. 最后一次使用正确的device_secret连接到阿里云物联网平台并发送模拟 topic payload,连接成功的信息:

    simulating login Aliot platform with fake device secret : 02e062db4fa817f5806a19f0b33207ca...
    trying to connect to Aliot Platform with insecured connection, 
    host        = iot-xxxxxxxx.mqtt.iothub.aliyuncs.com
    product_key = xxxxxxxxxx
    device_name = test_device_1
    device_sec =  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  // 第 50 次模拟错误的 device_secret 登录
    [1684976658.311][LK-0313] MQTT user calls aiot_mqtt_connect api, connect
    [1684976658.311][LK-032A] mqtt host: iot-xxxxxx.mqtt.iothub.aliyuncs.com
    [1684976658.311][LK-0317] user name: test_device_1&xxxxxxxxxx
    [1684976658.311][LK-0318] password: AB9C977FA63F29E3EB3DCF323ECB352C118C217EEDF013F601E056AAC2E02496
    establish tcp connection with server(host='iot-xxxxxx.mqtt.iothub.aliyuncs.com', port=[443])
    success to establish tcp, fd=3
    local port: 54798
    [1684976658.355][LK-0316] MQTT authorize fail, disconnect // 第 50 次失败
    [1684976658.355][LK-1000] adapter_network_deinit
    aiot_mqtt_connect failed: -0x0305
    
    please check variables like mqtt_host, produt_key, device_name, device_secret in demo
    
    // 下面是一次正确的登录
    simulating login Aliot platform with fake device secret : 8bfda2292d6796befa74af482ec1309d...
    trying to connect to Aliot Platform with insecured connection, 
    host        = iot-xxxxxx.mqtt.iothub.aliyuncs.com
    product_key = xxxxxxxxxx
    device_name = test_device_1
    device_sec =  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  // 这里是一个正确的 device_secret,即输入的 device_secret
    [1684976662.399][LK-0313] MQTT user calls aiot_mqtt_connect api, connect
    [1684976662.399][LK-032A] mqtt host: iot-xxxxxx.mqtt.iothub.aliyuncs.com
    [1684976662.399][LK-0317] user name: test_device_1&xxxxxxxxxx
    [1684976662.399][LK-0318] password: 0280B6BA8139B492C2BD40A296460072B3B7EC1765B3FFD7410D6A8B7CBB387F
    establish tcp connection with server(host='iot-xxxxxx.mqtt.iothub.aliyuncs.com', port=[443])
    success to establish tcp, fd=3
    local port: 54824
    [1684976662.433][LK-0313] MQTT connect success in 39 ms
    AIOT_MQTTEVT_CONNECT  // 登录成功
    [1684976662.433][LK-0309] sub: /user/xxxxxxxxxx/test_device_1/test_downstream
    publishing message hello, this is message 0 to topic /user/xxxxxxxxxx/test_device_1/test_upstream[1684976662.433][LK-0309] pub: /user/xxxxxxxxxx/test_device_1/test_upstream
    
    [LK-030A] > 68 65 6C 6C 6F 2C 20 74  68 69 73 20 69 73 20 6D | hello, this is m
    [LK-030A] > 65 73 73 61 67 65 20 30                          | essage 0        
    
    message published successfully // MQTT 模拟消息发送成功

  6. 在攻击设备的窗口中按Ctrl+C结束脚本。

  7. 登录产品控制台,在左侧导航栏中,选择常规>风险>威胁,查看到告警任务为设备身份暴力破解检测的告警(可能会延迟3~5分钟)。

    image.png

  8. 单击立即处理查看告警详情并标记处理状态为已处理

    image.png

检测连接未加密

  1. 登录到攻击设备,进入目录:link_platform_security_threat_simulate/insecure_link_simulate, 执行脚本 ./lp_insecure_link_simulate.sh [iot_instance_id] [product_key] [device_name] [device_secret] 使用未加密的MQTT连接到阿里云物联网平台。

    • 参数对应上文记录的实例ID、ProductKey、DeviceName、DeviceSecret。

    cd $HOME
    cd link_platform_security_threat_simulate_x86_64/insecure_link_simulate/
    ./lp_insecure_link_simulate.sh [iot_instance_id] [product_key] [device_name] [device_secret]
  2. 在打印的信息中出现message published successfully表示设备test_device_2已连接到阿里云物联网平台。

    ===================================================================================================================================================================
    这个脚本模拟了阿里云物联网平台使用不安全的连接造成的安全威胁
    
    要运行该脚本,请按照以下步骤执行:
    1. 请首先开通并登录阿里云物联网平台,创建一个产品,并在该产品下创建一个设备。
    2. 在本脚本命令参数当中填入物联网平台实例 ID、产品 ProductKey、设备名称 DeviceName、设备 DeviceSecret,并执行脚本。
    3. 待连接建立传输一些报文后,在 “威胁检测” 功能当中查看IoT安全运营中心捕获的安全威胁事件。
    
    更详细的使用说明请参考试用教程。
    ===================================================================================================================================================================
    正在尝试用合法的凭据登录
    trying to connect to Aliot Platform with insecured connection,
    host        = iot-*******.aliyuncs.com
    product_key = ip******
    device_name = test_device_2
    device_sec =  418******
    [1686169721.500][LK-0313] MQTT user calls aiot_mqtt_connect api, connect
    [1686169721.500][LK-032A] mqtt host: iot******.aliyuncs.com
    [1686169721.500][LK-0317] user name: test_device_2&ipw***
    [1686169721.500][LK-0318] password: 5D9124******
    establish tcp connection with server(host='iot******com', port=[443])
    success to establish tcp, fd=3
    local port: 59792
    [1686169721.566][LK-0313] MQTT connect success in 60 ms
    AIOT_MQTTEVT_CONNECT
    [1686169721.566][LK-0309] sub: /user/ip******/test_device_2/test_downstream
    publishing message hello, this is message 0 to topic /user/ip******/test_device_2/test_upstream[1686169721.566][LK-0309] pub: /user/ipwhQdr1I8l/test_device_2/test_upstream
    
    [LK-030A] > 68 65 6C 6C 6F 2C 20 74  68 69 73 20 69 73 20 6D | hello, this is m
    [LK-030A] > 65 73 73 61 67 65 20 30                          | essage 0
    
    message published successfully
  3. 在攻击设备的窗口中按Ctrl+C结束脚本。

  4. 登录产品控制台,在左侧导航栏中,选择常规>风险>威胁,查看到告警任务为连接未加密检测的告警(可能会延迟1~2分钟)。

    image.png

  5. 单击立即处理查看告警详情并标记处理状态为已处理

    image.png

风险防范

为了避免身份信息泄露导致的非法设备接入、使用不安全连接导致的数据泄露等安全问题,我们建议您在物联网设备中使用IoT设备身份认证实现设备接入时的身份认证、加密业务数据。

说明

使用过程中有任何问题或建议,请通过钉钉联系我们。

安装安全Agent

5

无论您的设备计划接入、已接入阿里云物联网平台,都可以安装安全Agent获得更丰富的安全检测能力和安全威胁处置能力。

本章节描述了如何在一台计划接入阿里云物联网平台的Linux设备上安装安全Agent,包括:

  • 安装安全Agent

  • 验证安装结果

  • 扩展阅读

说明
  • 如果您希望在Linux Lite、Android、ROTS上安装安全Agent,请参考本章节扩展阅读的内容。

  • 如果您希望在已接入阿里云物联网平台的设备(不改变设备身份)上安装安全Agent,请参考本章节扩展阅读的内容。

获取软件包和授权

  1. 登录到目标设备,使用wget命令获取安全Agent并执行解压缩。

    cd $HOME
    wget https://lsoc-sdk.oss-cn-shanghai.aliyuncs.com/trial/Security_Center_Agent_linux_latest.tar.gz
    tar -xf Security_Center_Agent_linux_latest.tar.gz
  2. 登录产品控制台,在左侧导航栏,选择常规>集成与部署 > IoT安全运营中心,单击安装安全Agent卡片的开始接入按钮。

    image.png

  3. 配置产品页面创建新产品,然后单击下一步按钮。

    • 产品:请选择新增产品,并输入产品名称。

    image.png

  4. 获取配置信息页面,单击下载右侧的图标,获取授权文件的下载地址。

    image.png

  5. 登录到目标设备,使用wget命令获取授权文件,保存在目标设备的 Security_Center_Agent_linux_latest/目录中并命名为soc.license。

    如果您使用的是华北2(北京)region,需要登录到设备编辑Security_Center_Agent_linux_latest/目录下的sagent.ini文件:

    pop_protocol=https
    pop_prefix=iotsoc.cn-beijing.aliyuncs.com
  6. 登录目标设备执行sudo ./install_security_agent_linux.sh命令,启动安装程序。

    cd Security_Center_Agent_linux_latest/
    sudo ./install_security_agent_linux.sh
  7. 安装程序会自动检测设备的 CPU 架构和操作系统,确认检测结果后输入Y继续安装。

    欢迎安装阿里云 IoT 安全中心 Agent, 
    如果您的设备是第一次安装该 Agent, 请先确保在一台可进行系统还原的测试设备上进行尝试, 待安装成功后再进行大规模部署
    
    第1步. 选择安装功能...
    Agent 类型为:IoT 安全运营中心 Agent
    
    第2步. 检查和确认安装环境...
    检测到您的设备环境 CPU 架构为: x86_64, 请确定 (需要确认, 输入Y/N)
    Y
    检测到您的设备环境 OS 为: CentOS Linux 7 (Core) 7, 请确定 (需要确认, 输入Y/N)
    Y
    
    第3步. 安装 Agent 包...
    检测到您的设备 SELinux 状态为: Disabled (检查通过)
  8. [可选优化]您是否需要开启入侵检测和主动防御功能模块?输入Y继续安装。

    [可选优化] 为了确保安全中心审计服务正常运行, 请视情况升级 CentOS 内核至 4.18, 或者根据手册文档加入 DPS 3.1x 内核补丁
    安装包准备完毕
    
    第4步. 安全和设置阿里云 IoT 安全中心 Agent...
    正在自动安装...
    [可选优化] 您是否需要开启入侵检测和主动防御功能模块?  (需要确认, 输入Y/N)
    Y
    入侵检测和主动防御功能模块已经部署, 请务必在安装完成之后重启设备或者系统, 以确认系统和应用正常运行, 如果遇到问题请加入 IoT 安全中心用户支持钉钉群获取帮助, 群号: 23147118
    阿里云 IoT 安全中心 Agent 已安装完毕
  9. 您希望安全Agent接入何种云环境?输入1后完成安装。

    您希望安全 Agent 接入何种云环境? 
    1. 接入公有云 IoT 安全中心
    2. 接入专有云 IoT 安全中心
    3. 接入 IoT 安全管理一体机
    (请输入数字:  1~3, 其他输入表示默认值 1) : 1
  10. 登录产品控制台,在左侧导航栏中,选择常规>资产>设备,查看接入的设备。

    image.png

  11. 在左侧导航栏中,选择常规>风险>漏洞,查看漏洞检测按钮提示漏洞检测任务正在执行。

    说明

    安全Agent安装完成后会立即执行漏洞检测,后续需要用户手动执行漏洞检测。

扩展阅读

说明

使用过程中有任何问题或建议,请通过钉钉联系我们。

网络访问控制和流量审计

5

IoT安全运营中心能够对物联网设备的网络访问和流量进行持续的分析,阻断非授权网络的访问、审计每个设备的网络流量。

本章节描述了如何对物联网设备进行网络访问控制和流量审计,包括:

  • 前提条件

  • 网络访问控制

  • 流量审计

前提条件

  • 设备端已集成安全Agent

网络访问控制

作为安全管理员,我们只允许物联网设备访问aliyun.com的域名。我们通过网络访问控制识别并进行阻断设备访问其他域名。

image.png

  1. 登录产品控制台,在左侧导航栏中,选择管理>网络访问控制,查看产品物联网测试设备的白名单为0且网络访问控制为关闭状态。

    image.png

  2. 单击白名单后,单击添加规则添加一条只允许访问域名www.aliyun.com的规则,单击添加后完成配置。规则参数信息如图:

    • 目标地址:www.aliyun.com

    • 协议:tcp

    • 端口:80

    • 应用到:全部固件版本

    image.png

  3. 在左侧导航栏中,选择管理>网络访问控制,单击控制策略按钮,在弹出的窗口中选择开启,设置上行流量控制策略为仅告警、下行流量控制策略为仅告警、不在白名单的网络访问为阻断。单击确定按钮完成配置。

    image.png

  4. 再次查看产品物联网测试设备的白名单规则为1、网络访问控制为开启。

    image.png

  5. 登录目标设备依次执行以下命令,查看访问结果。只有www.aliyun.com访问成功,其他域名均访问失败。

    # 访问白名单中的域名
    curl www.aliyun.com
    
    # 访问不在白名单中的域名,控制策略为阻断
    curl www.taobao.com

    image.png

  6. 登录产品控制台,在左侧导航栏中,选择管理>安全分析>异常,单击网络进出按钮,查看到异常的网络访问行为(延迟1~3分钟),网络连接域名为taobao.com,处理状态为未处理

    image.png

  7. 在该异常事件的操作列单击立即处理按钮,在弹出的菜单中修改批处理动作为允许、应用范围为所有,单击确定按钮。

    image.png

  8. 再次查看该异常事件的处理状态为已处理

    image.png

  9. 在左侧导航栏中,选择管理>网络访问控制,查看产品物联网测试设备的白名单规则为2。单击白名单按钮看到www.taobao.com已经添加到白名单。

    image.png

  10. 登录目标设备再次执行curl www.taobao.com命令,可以访问成功。

    # 域名已加到白名单
    curl www.taobao.com

    image.png

  11. 登录产品控制台,在左侧导航栏中,选择安管理>网络访问控制,单击控制策略,在弹出的窗口中选择开启,设置上行流量控制策略为仅告警、下行流量控制策略为仅告警、不在白名单的网络访问为仅告警。

    说明

    务必将不在白名单的网络访问设置为仅告警,否则会影响教程中后续步骤的操作。

    image.png

流量审计

IoT安全运营中心具有流量统计功能,可以监控设备的流量进出和传输峰值,同时支持设定流量阈值,管控设备单位时间窗口内的流量进出,检测到设备流量进出超出设定阈值时进行告警。

  1. 登录产品控制台,在左侧导航栏中,选择管理>网络访问控制,在流量阈值列单击编辑图标,在弹窗中设置上行流量阈值为每小时10MB、下行流量阈值为每小时10MB、应用到全部的固件版本中,单击确定按钮。

    image.png

  2. 登录到目标设备,执行wget命令,获取一个超过10MB的文件。

    wget https://lsoc-sdk.oss-cn-shanghai.aliyuncs.com/trial/Security_Center_Agent_linux_latest.tar.gz
  3. 登录产品控制台,在左侧导航栏中,选择管理>安全分析>异常,单击流量异常按钮,查看到异常的流量事件。

    说明

    流量以1小时为周期进行统计,告警要在统计周期结束后才能看到。例如在15:49分流量超标,在16:00分会看到异常事件。

    image.png

  4. 在左侧导航栏中,选择流量审计,对设备的流量进行审计,获取上下行流量、上下行峰值速率。

    image.png

    说明

    使用过程中有任何问题或建议,请通过钉钉联系我们。

设备威胁检测

10

本章节描述了如何通过IoT安全运营中心识别物联网设备的安全威胁并触发告警,包括:

  • 前提条件

  • 获取模拟工具

  • 检测暴力破解登录

  • 检测高风险命令

  • 检测恶意域名

前提条件

  • 设备端已安装安全Agent。

  • 威胁检测已开启:暴力破解登录检测、高风险命令检测、恶意域名检测。

获取模拟工具

登录攻击设备上执行wget命令,获取并解压模拟工具。

cd $HOME
wget https://lsoc-sdk.oss-cn-shanghai.aliyuncs.com/trial/device_security_threat_simulate.tar.gz
tar -xf device_security_threat_simulate.tar.gz

说明

本文所使用的模拟工具仅限本教程演示用,模拟工具不会对您的主机、设备、网络带来任何安全问题。

检测暴力破解登录

攻击者会通过暴力破解的方式尝试登录到物联网设备,IoT安全运营中心能够感知暴力破解威胁,并上报到IoT安全运营中心并触发告警通知。

  1. 登录攻击设备执行模拟工具中的脚本,脚本会使用错误密码重复执行登录动作,最后1次使用正确的密码完成登录。

    • 脚本参数释义:

      • test_device_ip:指设备端的IP地址,阿里云ECS模拟设备在ECS控制台查看ECS实例的公网地址。

      • test_device_user:指设备端SSH登录的用户名。

      • login_password:指设备端SSH登录的密码。

    cd $HOME
    
    # x86_64 环境的用户执行 x86_64 目录下的脚本
    cd device_security_threat_simulate/x86_64/
    ./brute_force_login.sh [test_device_ip] [test_device_user] [login_password]
    
    # arm64 环境的用户执行 arm64 目录下的脚本
    cd device_security_threat_simulate/arm64/
    ./brute_force_login.sh [test_device_ip] [test_device_user] [login_password]
  2. 登录产品控制台,在左侧导航栏中,选择常规>风险>威胁,查看到告警任务为暴力破解登录检测的告警(可能会延迟3~5分钟)。

    image.png

  3. 单击立即处理查看告警详情并标记处理状态为已处理。

    image.png

检测高风险命令

在设备端执行高风险的命令会不仅会带来安全风险还会影响业务的可用性,IoT安全运营中心能够识别设备上执行的命令并将执行高风险命令的行为上报到IoT安全运营中心并触发告警通知。

  1. 登录目标设备执行gcc -v命令。

    gcc -v
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
    Target: x86_64-redhat-linux

  2. 登录产品控制台,在左侧导航栏中,选择常规>风险>威胁,查看到告警任务为高风险命令检测的告警。

    image.png

  3. 单击立即处理查看告警详情并标记处理状态为已处理。

    image.png

检测恶意域名

物联网设备一旦被入侵,其被植入的恶意程序就会去访问一些不安全的网络地址,例如比特币矿池、黄赌毒网站等,这不仅会对您的设备造成额外的流量、硬件资源消耗,严重时还会触发监管舆情,甚至对您的厂家品牌构成不良影响。

  1. 登录目标设备执行curl test.alyisti.com命令。

    说明

    该域名是只用于免费试用,本身没有任何破坏行为。

    curl test.alyisti.com

  2. 登录产品控制台,在左侧导航栏中,选择常规>风险>威胁,查看到告警任务为恶意域名检测的告警。

    image.png

  3. 单击立即处理查看告警详情并标记处理状态为已处理。

    image.png

    说明

    使用过程中有任何问题或建议,请通过钉钉联系我们。

漏洞检测

5

IoT安全运营中心能够识别设备中的安全漏洞,提供修复建议和修复指引帮助您进一步提升物联网系统的安全性。

本章节我们将熟悉如何通过IoT安全运营中心进行漏洞检测、查看漏洞信息及获取修复建议。包括:

  • 前提条件

  • 查看漏洞信息

  • 执行漏洞检测

前提条件

  • 设备端已安装安全Agent。

  • 通知设置中已启用“安全漏洞”的通知。

查看漏洞信息

  1. 登录产品控制台,在左侧导航栏中,选择常规>风险>漏洞,查看已经识别到的安全漏洞。

    image.png

  2. 单击漏洞列表,查看该设备中已修复未修复的漏洞信息。包含漏洞编号、严重等级及漏洞描述。

    image.png

  3. 单击操作列的详情按钮,您会看到漏洞更加详细的描述及该漏洞的修复建议

    image.png

说明

使用过程中有任何问题或建议,请通过钉钉联系我们。

完成

5

  1. 登录IoT安全运营中心,在左侧导航栏中,选择常规>风险,查看全部威胁告警事件。

  2. 在左侧导航栏中,选择常规>风险>漏洞,查看全部漏洞信息。

  3. 在邮箱中查看来自阿里云IoT安全的告警邮件。

清理及后续

5

清理

  1. ECS提供的试用实例有按量付费实例和包年包月实例。请在阿里云免费试用确认您试用的实例类型,并参考以下规则清理:

    • 如果无需继续使用实例,可以登录ECS控制台,找到目标实例,在操作列单击更多的图标,搜索并单击释放设置,根据界面提示释放实例。

    • 如果需要继续使用实例,请至少在试用到期1小时前为阿里云账号充值,确保账户金额不小于100.00元人民币。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。

    • 包年包月实例到期会自动释放,释放实例的同时释放数据。

    • 如果需要继续使用实例,请在试用到期前及时续费。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。

  2. IoT安全运营中心提供的“免费试用1个月”为按量付费实例。完成教程后,请参考以下规则处理:

    • 如果无需继续使用IoT安全运营中心,需要关闭实例的按量付费,并在设备端卸载安全Agent。

      • 关闭实例的按量付费:进入授权详情页面,在IoT安全运营中心(按量付费)的列表中,对每一个实例执行关闭操作。

      • 在设备上执行sudo /usr/local/etc/uninstall_security_agent_linux.sh卸载安全Agent 清除安全策略后重启设备。

    • 如果需要继续使用IoT安全运营中心,请至少在试用到期1小时前为阿里云账号充值,确保账户金额不小于100.00元人民币。付费详情请查看IoT安全运营中心(按量付费)说明

    • 到期未续费,IoT安全运营中心因欠费而被自动停机,到期15天后数据都将被自动清理。在此之前,您可以进入安全报告页面,单击创建任务,将免费试用期间产生的安全风险数据导出。

后续

  • 在全部物联网设备上安装安全Agent。

  • 关注来自阿里云IoT安全运营中心的邮件。

  • 定期登录到IoT安全运营中心处理异常事件和威胁事件。

  • 保持IoT安全中心(后付费)为开启状态,使物联网系统获得持续性的安全防护。

说明

使用过程中有任何问题或建议,请通过钉钉联系我们。

总结

常用知识点

问题1:IoT安全运营中心支持何种安全接入方式?(单选题)

  • 支持代理方式(即集成安全Agent)、无代理方式(即物联网平台风控、日志接入、安全探针扫描等)

  • 仅支持代理方式

  • 仅支持无代理方式

正确答案是:“支持代理方式(即集成安全Agent)、无代理方式(即物联网平台风控、日志接入、安全探针扫描等)”

问题2:IoT安全运营中心的安全检测与防护范围包含下面哪些?(单选题)

  • 针对接入到物联网平台的设备进行身份凭据泄露、连接安全风险等安全风控。

  • 针对安装了安全Agent的设备进行更加全面和深入的安全检测与防护。

  • 以上皆属于IoT安全运营中心的安全检测与防护范围。

正确答案是:“以上皆属于IoT安全运营中心的安全检测与防护范围,包括针对接入到物联网平台的设备进行身份凭据泄露/连接安全风险等安全风控、针对安装了安全Agent的设备进行更加全面和深入的安全检测与防护。”

问题3:IoT安全运营中心最简单的接入方式是?(单选题)

  • 设备接入到物联网平台并开启IoT安全运营中心检测

  • 设备端集成安全Agent

正确答案是:“设备接入到物联网平台并开启IoT安全运营中心检测”

问题4:针对物联网平台安全威胁检测,IoT安全运营中心支持哪些安全检测能力?(单选题)

  • 非法设备接入

  • 恶意暴力登录

  • 不安全连接

  • 以上皆支持

正确答案是:“以上皆支持”

问题5:针对物联网设备安全威胁检测,IoT安全运营中心支持哪些安全检测能力?(单选题)

  • 设备暴力破解登录检测

  • 高危命令检测

  • 不合规的网络地址访问检测

  • 以上皆支持

正确答案是:“以上皆支持”

问题6:您可以在哪些物联网设备上集成IoT安全运营中心的安全Agent?(单选题)

  • Linux、Android、RTOS设备

  • 仅Linux设备

  • 仅Android设备

正确答案是:Linux、Android、RTOS设备。

问题7:IoT安全运营中心除了提供设备威胁的检测能力,也提供对威胁进行安全处置和防护的能力?(单选题)

正确答案是:“是”

问题8:IoT安全运营中心免费试用到期后,数据最长保留多长时间?(单选题)

  • 7天

  • 15天

  • 30天

正确答案是:“15天”,超过15天未开通后付费数据会自动清空。

延伸阅读

阿里云首页 相关技术圈