高清无码男男同同性,久久久久日韩AV无码一区,自拍 另类 综合 欧美小说,尤物网址在线观看

0371-63319761
您的當(dāng)前位置:主頁 > 安全研究 > 安全研究 >

常見物聯(lián)網(wǎng)安全事件的持續(xù)檢測和監(jiān)控解決方案

時間:2023-02-23

常見物聯(lián)網(wǎng)安全事件的持續(xù)檢測和監(jiān)控解決方案
 
近幾年來,隨著物聯(lián)網(wǎng)技術(shù)的不斷成熟和相關(guān)國家政策的驅(qū)動,大量物聯(lián)網(wǎng)行業(yè)創(chuàng)新應(yīng)用得到了快速發(fā)展。從消費端智能家居、智能單品的爆發(fā)式增長,到企業(yè)端在智能制造、智慧交通、公共安全和醫(yī)療領(lǐng)域等不斷創(chuàng)新,整個物聯(lián)網(wǎng)的市場規(guī)模在迅速擴展。然而,隨之而來的問題便是越來越多的物聯(lián)網(wǎng)信息安全事件不斷頻發(fā)。由于物聯(lián)網(wǎng)設(shè)備的一些先天限制,比如要求設(shè)備低功耗、體積小、成本低,通常企業(yè)選擇的物聯(lián)網(wǎng)模組芯片安全性能不高,因此這些物聯(lián)網(wǎng)設(shè)備都容易成為黑客的攻擊對象。作者根據(jù)近幾年頻發(fā)的物聯(lián)網(wǎng)安全事件總結(jié)出常見的物聯(lián)網(wǎng)設(shè)備異常行為如下:
 
DDOS 攻擊。設(shè)備被控制并對服務(wù)器進行 DDOS 攻擊,設(shè)備發(fā)送大量異常數(shù)據(jù)到服務(wù)器,結(jié)果導(dǎo)致設(shè)備本身無法正常工作以及服務(wù)器癱瘓。
 
▌設(shè)備證書泄露以及濫用、設(shè)備證書不唯一、設(shè)備證書共享導(dǎo)致的安全問題。另外 IoT 權(quán)限設(shè)置過于寬泛,黑客可以利用以上漏洞來控制設(shè)備并造成數(shù)據(jù)泄露。
 
▌設(shè)備離線問題。黑客通過掃描默認(rèn)密碼或者弱密碼進入設(shè)備,刪除設(shè)備防火墻或者磁盤分區(qū),導(dǎo)致大量設(shè)備“變磚”,無法正常工作,造成企業(yè)和個人的生命財產(chǎn)安全損失。
 
亞馬遜云科技推出了眾多原生的物聯(lián)網(wǎng)服務(wù)來滿足不同客戶對于物聯(lián)網(wǎng)設(shè)備上云的需求。其中 Amazon IoT Core 是最主要的連接服務(wù),它能幫助客戶將海量設(shè)備連接上云;Amazon IoT Device Defender 是一項針對物聯(lián)網(wǎng)設(shè)備的安全服務(wù),客戶可以借助此服務(wù)審核設(shè)備的安全配置,檢測異常行為,從而降低安全風(fēng)險;此外,亞馬遜云還提供了常見的消息通知服務(wù)和日志分析監(jiān)控服務(wù)幫助客戶實現(xiàn)對云中安全事件的持續(xù)檢測和監(jiān)控。

在這篇博文中,作者將介紹如何通過集成亞馬遜云相關(guān)服務(wù)來實現(xiàn)企業(yè)對于以上物聯(lián)網(wǎng)安全事件的持續(xù)檢測和監(jiān)控。主要內(nèi)容包含以下幾個方面:
 
針對物聯(lián)網(wǎng)設(shè)備 DDOS 攻擊的持續(xù)檢測和監(jiān)控解決方案
 
針對物聯(lián)網(wǎng)設(shè)備證書安全和權(quán)限問題的持續(xù)檢測和監(jiān)控解決方案
 
針對物聯(lián)網(wǎng)設(shè)備生命周期事件的持續(xù)檢測和監(jiān)控解決方案
 
關(guān)于 Amazon IoT Device Defender Audit/Detect
 
Amazon IoT Device Defender 推出 Audit (審計) 功能,它能夠從設(shè)備和客戶賬戶層面來審計相關(guān)的安全配置和權(quán)限是否滿足安全規(guī)范。比如 Audit 能夠幫助檢查設(shè)備證書是否唯一、是否存在證書共享問題、IoT policy 權(quán)限是否設(shè)置過高、設(shè)備證書是否快過期等問題。您可以定期或者按要求來啟動 Audit。
 
當(dāng)前,IoT Device Defender Audit 配置了預(yù)先定義好的審計檢查項,您可以通過啟動 Audit 功能來完成對所有審計項的檢查。具體審計列表請查看以下官方文檔:
 
https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-audit-checks.html
 
Amazon IoT Device Defender 推出 Detect 功能幫助客戶發(fā)現(xiàn)設(shè)備產(chǎn)生的異常行為。它通過檢測設(shè)備行為來幫助客戶發(fā)現(xiàn)設(shè)備是否存在被入侵的傾向。Detect 定義了 cloud-side metrics 和 device-side metrics 來幫助客戶檢測云中和設(shè)備端的異常現(xiàn)象,比如:
 
設(shè)備連接狀態(tài)的異常
 
設(shè)備是否嘗試連接未授權(quán)的端口
 
設(shè)備收到和發(fā)出的數(shù)據(jù)量大小異常
 
客戶可以創(chuàng)建一個 security profiles 將需要檢測的 metrics 包含其中,然后集成 Amazon CloudWatch 和 Amazon SNS 服務(wù)。這樣,一旦設(shè)備有異常行為發(fā)生,相關(guān)的報警事件就可以第一時間通知到客戶。詳細說明請查看以下官方文檔:
 
https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-detect.html
 
解決方案架構(gòu)綜述
 
此解決方案在設(shè)備側(cè)利用 IoT SDK (亞馬遜云提供 embedded C、C++、java、python 等 SDK) 將客戶的物聯(lián)網(wǎng)設(shè)備,比如傳感器、機器、家電產(chǎn)品等連接到 Amazon IoT Core 服務(wù)中,這樣設(shè)備便能夠連接上云。接下來 IoT Device Defender 服務(wù)會對從設(shè)備產(chǎn)生的運行數(shù)據(jù)和日志進行審計和檢測,并將結(jié)果發(fā)送到 Amazon CloudWatch 中??蛻艨梢栽?CloudWatch 中查看到對應(yīng)的審計日志并做初步分析,同時您還可以針對特定的 Metric 創(chuàng)建 Alarm,定義報警規(guī)則以及下一步的觸發(fā)對象,比如 Amazon SNS 服務(wù)。在 SNS 中,您可以配置 SNS 的通知對象為 lambda 函數(shù),并在 lambda 中對數(shù)據(jù)進行預(yù)處理并將結(jié)果推送到 Amazon OpenSearch 服務(wù)。最終,我們通過 OpenSearch 服務(wù)來實時分析和可視化日志事件。當(dāng)中,我們通過 Amazon Secrets Manager 服務(wù)來存儲 OpenSearch 服務(wù)相關(guān)的驗證密鑰。通過這樣的方式,我們就可以對物聯(lián)網(wǎng)設(shè)備產(chǎn)生的異常事件和安全配置問題進行持續(xù)檢測和監(jiān)控。
先決條件
 
您在本地有 demo 硬件,并且安裝了對應(yīng)的 IoT Device SDK,而且設(shè)備可以成功連接上 Amazon IoT Core 并上報數(shù)據(jù)。
 
如果沒有達到以上條件,可以通過以下方式在 Amazon EC2 中建立虛擬設(shè)備,并將設(shè)備連接上云。以下提供 C++ 和 embedded C 的 SDK。
 
https://github.com/awslabs/aws-iot-device-client
 
https://github.com/aws/aws-iot-device-sdk-embedded-C
 
在設(shè)備端完成 device-side metric 相關(guān) SDK 配置工作,具體的配置方式請參考以下官方文檔:
 
https://docs.aws.amazon.com/iot/latest/developerguide/detect-device-side-metrics.html#DetectMetricsMessages
 
演練操作步驟
 
本演練操作包含三個部分:
 
創(chuàng)建 Amazon IoT Core 和 Device Defender 相關(guān)資源,完成對物聯(lián)網(wǎng)設(shè)備的審計和異常行為檢測。包括 DDOS 攻擊,設(shè)備證書安全相關(guān)事件和生命周期事件。
 
創(chuàng)建 Amazon SNS、Amazon CloudWatch、Amazon Lambda 相關(guān)資源,從而建立對設(shè)備安全事件的持續(xù)監(jiān)控和響應(yīng)。
 
創(chuàng)建 Amazon OpenSearch 等相關(guān)資源,完成對設(shè)備安全事件的實時分析和可視化監(jiān)控。
 
創(chuàng)建 Amazon IoT Core 和 Device Defender 相關(guān)資源,完成對物聯(lián)網(wǎng)設(shè)備的審計和異常行為檢測。包括 DDOS 攻擊,設(shè)備證書安全相關(guān)事件和生命周期事件。
 
針對前文提到的三類物聯(lián)網(wǎng)設(shè)備安全事件(DDOS 攻擊、設(shè)備證書安全和權(quán)限配置問題、設(shè)備變磚離線問題),我們可以通過 Amazon IoT Core 和 Device Defender 來持續(xù)檢測。
 
首先,我們來創(chuàng)建對于設(shè)備證書安全和權(quán)限配置的檢測。本文提供相應(yīng)的 CloudFormation 代碼幫助快速部署相應(yīng)資源。首先我們部署本解決方案需要用到的 IAM 資源。我們打開 Amazon CloudFormation Console,創(chuàng)建 Stack 并導(dǎo)入如下 CloudFormation 代碼:
 
AWSTemplateFormatVersion: "2010-09-09"
Description: ""
Resources:
    IAMRole:
        Type: "AWS::IAM::Role"
        Properties:
            Path: "/"
            RoleName: "aod_iot_defender_SNS"
            AssumeRolePolicyDocument: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"iot.amazonaws.com\"},\"Action\":\"sts:AssumeRole\"}]}"
            MaxSessionDuration: 3600
            ManagedPolicyArns: 
              - "arn:aws:iam::aws:policy/service-role/AWSIoTDeviceDefenderAddThingsToThingGroupMitigationAction"
              - "arn:aws:iam::aws:policy/service-role/AWSIoTDeviceDefenderEnableIoTLoggingMitigationAction"
              - "arn:aws:iam::aws:policy/service-role/AWSIoTDeviceDefenderReplaceDefaultPolicyMitigationAction"
              - "arn:aws:iam::aws:policy/service-role/AWSIoTDeviceDefenderUpdateCACertMitigationAction"
              - "arn:aws:iam::aws:policy/service-role/AWSIoTDeviceDefenderUpdateDeviceCertMitigationAction"
              - "arn:aws:iam::aws:policy/service-role/AWSIoTDeviceDefenderPublishFindingsToSNSMitigationAction"
            Description: "Provides AWS IoT Device Defender write access to IoT and related resources for execution of Mitigation Actions."
    IAMRole2:
        Type: "AWS::IAM::Role"
        Properties:
            Path: "/"
            RoleName: "iot_device_connect_status_to_SNS_role"
            AssumeRolePolicyDocument: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"iot.amazonaws.com\"},\"Action\":\"sts:AssumeRole\"}]}"
            MaxSessionDuration: 3600
            Policies:
              - PolicyName: iot-device-connect-status-policy
                PolicyDocument:
                  Version: "2012-10-17"
                  Statement:
                    - Effect: Allow
                      Action: 'sns:Publish'
                      Resource: !Sub "arn:aws:sns:${AWS::Region}:${AWS::AccountId}:SNS_test"
    IAMRole3:
        Type: "AWS::IAM::Role"
        Properties:
            Path: "/service-role/"
            RoleName: "iot-logs-to-OpenSearch-aod-test-role-g373dnli"
            AssumeRolePolicyDocument: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"lambda.amazonaws.com\"},\"Action\":\"sts:AssumeRole\"}]}"
            MaxSessionDuration: 3600
            ManagedPolicyArns: 
              - !Sub "arn:aws:iam::${AWS::AccountId}:policy/service-role/AWSLambdaBasicExecutionRole-5ca5e513-45ed-4ad0-9250-aa0ed765f5a9"
              - 'arn:aws:iam::aws:policy/AmazonOpenSearchServiceFullAccess'
              - 'arn:aws:iam::aws:policy/SecretsManagerReadWrite'
 
左滑查看更多
 
由上,我們啟動了3個 IAM role,后面的資源部署會用到以上 IAM 資源,用戶可以根據(jù)自己的情況自定義 Role Name。
 
接下來我們啟動 Amazon IoT Device Defender Audit 功能。我們打開 Amazon CloudFormation Console,創(chuàng)建 Stack 并導(dǎo)入如下 CloudFormation 代碼:
 
AWSTemplateFormatVersion: "2010-09-09"
Description: ""
Resources:
    IoTScheduledAudit:
        Type: "AWS::IoT::ScheduledAudit"
        Properties:
            ScheduledAuditName: "Aod_IoT_device_defender_audit"
            Frequency: "DAILY"
            TargetCheckNames: 
              - "AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK"
              - "CA_CERTIFICATE_EXPIRING_CHECK"
              - "CA_CERTIFICATE_KEY_QUALITY_CHECK"
              - "CONFLICTING_CLIENT_IDS_CHECK"
              - "DEVICE_CERTIFICATE_EXPIRING_CHECK"
              - "DEVICE_CERTIFICATE_KEY_QUALITY_CHECK"
              - "DEVICE_CERTIFICATE_SHARED_CHECK"
              - "INTERMEDIATE_CA_REVOKED_FOR_ACTIVE_DEVICE_CERTIFICATES_CHECK"
              - "IOT_POLICY_OVERLY_PERMISSIVE_CHECK"
              - "IOT_ROLE_ALIAS_ALLOWS_ACCESS_TO_UNUSED_SERVICES_CHECK"
              - "IOT_ROLE_ALIAS_OVERLY_PERMISSIVE_CHECK"
              - "LOGGING_DISABLED_CHECK"
              - "REVOKED_CA_CERTIFICATE_STILL_ACTIVE_CHECK"
              - "REVOKED_DEVICE_CERTIFICATE_STILL_ACTIVE_CHECK"
              - "UNAUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK"
 
左滑查看更多
 
當(dāng)部署成功后,我們可以在 Amazon IoT Core Console-Audit 中 看到 daily 的審計結(jié)果,如下圖所示,其中5條審計規(guī)則報警,其中包括 IoT policy overly permissive 和 CA certificate expiring 等問題。
 
 
點擊對應(yīng)的 Check Name 可以看到哪些 IoT 資源違反了審計規(guī)則,如下圖所示。
 
 
 
另外,我們還可以看到其他9項合規(guī)的審計,如果未來有相關(guān)資源違規(guī)也會被持續(xù)檢測到,如下圖所示:
 
 
以上,我們完成了對于設(shè)備證書安全和權(quán)限配置的審計工作。
 
針對設(shè)備 DDOS 攻擊,我們需要啟動 Amazon IoT Device Defender Detect 來進行 device side metric 的檢測。在本文中,我們通過開啟對于設(shè)備端 Packets in/out 以及 Bytes in/out 的異常行為來檢測設(shè)備是否發(fā)起 DDOS 攻擊。同樣,作者提供 CloudFormation 代碼如下:
 
AWSTemplateFormatVersion: "2010-09-09"
Description: ""
Resources:
    IoTSecurityProfile:
        Type: "AWS::IoT::SecurityProfile"
        Properties:
            SecurityProfileName: "aod_demo"
            TargetArns: 
              - "arn:aws:iot:us-west-2:xxxxxxxxxxxx:all/things"
            Behaviors: 
              - 
                Name: "Bytes_in"
                Metric: "aws:all-bytes-in"
                Criteria: 
                    ComparisonOperator: "greater-than"
                    ConsecutiveDatapointsToAlarm: 1
                    ConsecutiveDatapointsToClear: 1
                    DurationSeconds: 300
                    Value: 
                        Count: 500
              - 
                Name: "Bytes_out"
                Metric: "aws:all-bytes-out"
                Criteria: 
                    ComparisonOperator: "greater-than"
                    ConsecutiveDatapointsToAlarm: 1
                    ConsecutiveDatapointsToClear: 1
                    DurationSeconds: 300
                    Value: 
                        Count: 500
              - 
                Name: "Packets_in"
                Metric: "aws:all-packets-in"
                Criteria: 
                    ComparisonOperator: "greater-than"
                    ConsecutiveDatapointsToAlarm: 1
                    ConsecutiveDatapointsToClear: 1
                    DurationSeconds: 300
                    Value: 
                        Count: 5
              - 
                Name: "Packets_out"
                Metric: "aws:all-packets-out"
                Criteria: 
                    ComparisonOperator: "greater-than"
                    ConsecutiveDatapointsToAlarm: 1
                    ConsecutiveDatapointsToClear: 1
                    DurationSeconds: 300
                    Value: 
                        Count: 5
            AlertTargets: 
                SNS: 
                    AlertTargetArn: 'arn:aws:sns:us-west-2:xxxxxxxxxxxx:SNS_test'
                    RoleArn: 'arn:aws:iam::xxxxxxxxxxxx:role/aod_iot_defender_SNS'
 
左滑查看更多
 
打開 CloudFormation console,導(dǎo)入以上 yaml 文件,創(chuàng)建 stack,成功之后我們可以在 IoT Console-Security-Detect-Security Profiles 中看到創(chuàng)建的 Metrics 監(jiān)控事件。從以上 CloudFormation 中我們創(chuàng)建了 Bytes in/out 事件,定義當(dāng)5分鐘內(nèi)設(shè)備端接受或者發(fā)出的數(shù)據(jù)量大于 500 Bytes 便報警;同時創(chuàng)建 Packets in/out 事件,定義當(dāng)5分鐘內(nèi)設(shè)備接受或者發(fā)出的數(shù)據(jù)包數(shù)量大于5時報警。您可以根據(jù)自己的業(yè)務(wù)情況來定義 DDOS 攻擊的判斷條件。如下圖所示,在 console 中相關(guān)的事件已經(jīng)被云端檢測到。
 

 
 
接下來,我們將創(chuàng)建針對于設(shè)備變磚離線事件的檢測。Amazon IoT Core 會將設(shè)備的生命周期事件發(fā)送到云端,我們可以利用這些生命周期事件來知道設(shè)備現(xiàn)在處于什么連接狀態(tài)。比如針對于設(shè)備的 Connect/Disconnect 事件,我們可以通過以下默認(rèn)的兩個 MQTT topic 來進行監(jiān)聽:
 
$amazon/events/presence/connected/clientId
 
$amazon/events/presence/disconnected/clientId
 
作者將建立一個 Iot Rule 對以上 topic 來進行監(jiān)聽,同時將事件消息發(fā)送到 SNS 服務(wù)。同樣,提供 Cloudformation 代碼如下:
 
AWSTemplateFormatVersion: '2010-09-09'
Resources:
  MyTopicRule:
    Type: AWS::IoT::TopicRule
    Properties:
      RuleName:
        'device_connection_aod'
      TopicRulePayload:
        Sql: SELECT * FROM '$aws/events/presence/+/demo_device'
        Actions:
        - Sns:
              RoleArn: 'arn:aws:iam::xxxxxxxxxxxx:role/iot_device_connect_status_to_SNS_role'
              TargetArn: !Sub "arn:aws:sns:${AWS::Region}:${AWS::AccountId}:SNS_test"
 
左滑查看更多
 
通過 CloudFormation 來啟動以上資源,成功后你可以在 IoT Console 中訂閱到設(shè)備的上下線狀態(tài)事件,如下圖所示:
 
 
以上我們便完成了對于三類物聯(lián)網(wǎng)設(shè)備安全事件(DDOS 攻擊,設(shè)備證書安全和權(quán)限配置問題,設(shè)備變磚離線問題)的持續(xù)檢測。
 
創(chuàng)建 Amazon SNS、Amazon CloudWatch、Amazon Lambda 相關(guān)資源,從而建立對設(shè)備安全事件的持續(xù)監(jiān)控和響應(yīng)。
 
基于前文,我們完成了安全事件的審計和持續(xù)檢測,接下來,我們需要對檢測事件進行分析并將結(jié)果推送給消費者,從而完成對事件的持續(xù)監(jiān)控和響應(yīng)。首先,我們定義 Amazon CloudWatch Alarm 功能,將 IoT Metrics 作為監(jiān)控對象,當(dāng)檢測到來自 IoT Device Defender Audit 和 Detect 的 Metrics 超過某個閾值時,向 SNS 發(fā)送報警。提供 CloudFormation 代碼如下:
 
AWSTemplateFormatVersion: "2010-09-09"
Description: ""
Resources:
    CloudWatchAlarm:
        Type: "AWS::CloudWatch::Alarm"
        Properties:
            AlarmName: "Audit-IOT-POLICY-OVERLY-PERMISSIVE-Alarm"
            ActionsEnabled: true
            AlarmActions: 
              - !Sub "arn:aws:sns:${AWS::Region}:${AWS::AccountId}:SNS_test"
            MetricName: "NonCompliantResources"
            Namespace: "AWS/IoT"
            Statistic: "Average"
            Dimensions: 
              - 
                Name: "CheckName"
                Value: "IOT_POLICY_OVERLY_PERMISSIVE_CHECK"
              - 
                Name: "ScheduledAuditName"
                Value: "Aod_IoT_device_defender_audit_test"
            Period: 86400
            EvaluationPeriods: 1
            DatapointsToAlarm: 1
            Threshold: 10
            ComparisonOperator: "GreaterThanThreshold"
            TreatMissingData: "missing"
 
    CloudWatchAlarm2:
        Type: "AWS::CloudWatch::Alarm"
        Properties:
            AlarmName: "device-side-bytes-out-alarm"
            ActionsEnabled: true
            AlarmActions: 
              - !Sub "arn:aws:sns:${AWS::Region}:${AWS::AccountId}:SNS_test"
            MetricName: "BehaviorEvaluationCompleted"
            Namespace: "AWS/IoT"
            Statistic: "Average"
            Dimensions: 
              - 
                Name: "BehaviorName"
                Value: "Bytes_out"
              - 
                Name: "SecurityProfileName"
                Value: "aod_demo"
            Period: 300
            EvaluationPeriods: 1
            DatapointsToAlarm: 1
            Threshold: 5
            ComparisonOperator: "GreaterThanThreshold"
            TreatMissingData: "missing"
 
    CloudWatchAlarm3:
        Type: "AWS::CloudWatch::Alarm"
        Properties:
            AlarmName: "device-side-packets-out-aod"
            ActionsEnabled: true
            AlarmActions: 
              - !Sub "arn:aws:sns:${AWS::Region}:${AWS::AccountId}:SNS_test"
            MetricName: "Violations"
            Namespace: "AWS/IoT"
            Statistic: "Average"
            Dimensions: 
              - 
                Name: "BehaviorName"
                Value: "Packets_out"
              - 
                Name: "SecurityProfileName"
                Value: "aod_demo"
            Period: 300
            EvaluationPeriods: 1
            DatapointsToAlarm: 1
            Threshold: 5
            ComparisonOperator: "GreaterThanThreshold"
            TreatMissingData: "missing"
 
左滑查看更多
 
由上,我們定義當(dāng) IOT_POLICY_OVERLY_PERMISSIVE_CHECK 在24小時內(nèi)超過10個資源違規(guī)時產(chǎn)生報警并發(fā)送到 SNS 服務(wù);Bytes out/Packets out 在5分鐘內(nèi)觸發(fā)超過5次時產(chǎn)生報警并發(fā)送到 SNS 服務(wù)。
 
接下來,我們創(chuàng)建 SNS 服務(wù),接受以上報警并將消息發(fā)送給 Lambda。提供以下 CloudFormation 代碼:
 
AWSTemplateFormatVersion: "2010-09-09"
Description: ""
Resources:
    SNSTopic:
        Type: "AWS::SNS::Topic"
        Properties:
            DisplayName: ""
            TopicName: "SNS_test"
            KmsMasterKeyId: "alias/aws/sns"
 
左滑查看更多
 
最后,我們創(chuàng)建 Lambda 函數(shù),Lambda 函數(shù)會接受從 SNS 發(fā)來的數(shù)據(jù),并將數(shù)據(jù)推送給 Amazon OpenSearch 服務(wù)進行實時分析和可視化展示。提供 CloudFormation 代碼如下:
 
AWSTemplateFormatVersion: "2010-09-09"
Description: ""
Resources:
    LambdaFunction:
        Type: "AWS::Lambda::Function"
        Properties:
            Description: ""
            FunctionName: "iot-logs-to-OpenSearch-aod-test"
            Handler: "sample.handler"
            Architectures: 
              - "x86_64"
            Code: 
                S3Bucket: "aod-iot-device-client"
                S3Key: "iot-logs-to-OpenSearch-aod-test-9e7975a0-a071-4026-9c1c-91f520f80d9b.zip"
            MemorySize: 128
            Role: !Sub "arn:aws:iam::${AWS::AccountId}:role/service-role/iot-logs-to-OpenSearch-aod-test-role-g373dnli "
            Runtime: "python3.7"
            Timeout: 3
            TracingConfig: 
                Mode: "PassThrough"
            EphemeralStorage: 
                Size: 512
 
左滑查看更多
 
其中您需要將 Lambda 代碼打包成 zip 格式,放在 S3 bucket 中。
 
將 Lambda 中關(guān)鍵代碼展示如下,在 Lambda handler 中定義 message 為來自 event[‘Records’] [‘Sns’] 消息,并將 message 組成 document,并通過 requests.post 發(fā)送給 OpenSearch endpoint url。
 
def handler(event, context):
    for record in event['Records']:
        message = record['Sns']
        document = {"message": message }
        r = requests.post(url, auth=HTTPBasicAuth(account, pwd), json=document, headers=headers)
return event
 
左滑查看更多
 
其中 url = host + ‘/’ + index + ‘/’ + type;host為 OpenSearch endpoint url;index 客戶可以自定義 string 類型比如  ‘iot-metric-cloudwatch-index’;type = ‘_doc’;account 和 pwd 為 OpenSearch Dashboard 賬號和密碼。下文會介紹 Amazon OpenSearch 和 Amazon Secret Manager 相關(guān)資源創(chuàng)建。
 
以上,當(dāng)設(shè)備安全事件(DDOS 攻擊、設(shè)備證書安全和權(quán)限配置問題、設(shè)備變磚離線問題)發(fā)生時, 事件就會被 Amazon IoT Core 持續(xù)監(jiān)測到,并且通過集成 Amazon CloudWatch、Amazon SNS 服務(wù)發(fā)送到 Lambda 函數(shù)進行持續(xù)監(jiān)控和響應(yīng)。
 
創(chuàng)建 Amazon OpenSearch 等相關(guān)資源,完成對設(shè)備安全事件的實時分析和可視化監(jiān)控。
 
接下來,我們將完成本解決方案的最后一步,即創(chuàng)建 Amazon OpenSearch 和 Amazon Secrets Manager 相關(guān)服務(wù)。首先,我們根據(jù)以下官方文檔創(chuàng)建 OpenSearch endpoint:
 
https://docs.aws.amazon.com/opensearch-service/latest/developerguide/gsg.html
 
其中我們選擇 enable Fine-grained access control,并設(shè)置 Master user 通過賬號和密碼方式認(rèn)證登錄。這里的賬號和密碼便是上文 lambda 中的 account 和 pwd。我們將 account 和 pwd 通過 Amazon Secret Manager 服務(wù)進行管理,這樣密鑰就不會以明文方式暴露在代碼中,從而提高安全性。Amazon Secret Manager 相關(guān) CloudFormation 代碼如下:
 
AWSTemplateFormatVersion: "2010-09-09"
Description: ""
Resources:
    SecretsManagerSecret:
        Type: "AWS::SecretsManager::Secret"
        Properties:
            Name: "ES_Kibana_credential-aod"
            SecretString: "{\"es_account\":\"xxx\",\"es_pwd\":\"xxx\"}"
 
左滑查看更多
 
通過以上步驟,我們創(chuàng)建了 Amazon OpenSearch 和 Amazon Secret Manager 相關(guān)服務(wù)。打開 OpenSearch Console,并點擊創(chuàng)建的 DashBoard url。點擊 Discover 并搜索相應(yīng)的關(guān)鍵字如 “over-permission”,我們看到如下界面:
 
 
以上,相應(yīng)的安全事件都已經(jīng)存儲到 OpenSearch 服務(wù)。接下來,我們可以在 OpenSearch 中建立一些 Dashboard 從而對不同的物聯(lián)網(wǎng)安全事件進行實時的可視化監(jiān)控。比如作者建立了一些簡單的 Dashboard 如下:
 
 
總結(jié)
 
在本文中,作者介紹了幾種當(dāng)前主要物聯(lián)網(wǎng)安全事件的行為模式,包括 DDOS 攻擊、設(shè)備證書安全和權(quán)限配置問題、設(shè)備離線問題。針對這些問題,作者結(jié)合了亞馬遜云物聯(lián)網(wǎng)相關(guān)服務(wù)(主要是 Amazon IoT Device Defender 服務(wù))提供了對應(yīng)的檢測和審計方案;同時作者結(jié)合了亞馬遜云其他相關(guān)消息推送,日志監(jiān)控服務(wù)搭建了針對事件的持續(xù)監(jiān)控和響應(yīng)方案;最后作者介紹了 Amazon OpenSearch 服務(wù)幫助搭建完整的日志事件實時分析和可視化方案。通過本文的介紹,客戶可以建立基于亞馬遜云相關(guān)服務(wù)的針對物聯(lián)網(wǎng)安全事件的持續(xù)檢測,監(jiān)控和可視化分析方案,從而幫助客戶建立物聯(lián)網(wǎng)安全事件響應(yīng)機制,降低潛在安全風(fēng)險,減少企業(yè)損失。
 
本篇作者
 
楊陽:亞馬遜云科技專業(yè)服務(wù)團隊物聯(lián)網(wǎng)應(yīng)用架構(gòu)師。負責(zé)基于 Amazon IoT 的解決方案咨詢,架構(gòu)與交付,深度參與過智慧工廠、智能家居等行業(yè) IoT 解決方案的咨詢與交付。進入亞馬遜云科技之前在消費電子產(chǎn)品和制造業(yè)擁有豐富的物聯(lián)網(wǎng)項目開發(fā)和管理經(jīng)驗。

來源:亞馬遜云開發(fā)者
 

Copyright © 2017-2024 河南中瀚安全技術(shù)有限公司 版權(quán)所有 豫ICP備18011434號-1 豫公網(wǎng)安備 41019702002746號