全部產品
Search
文件中心

Simple Log Service:資料脫敏

更新時間:Jun 30, 2024

資料脫敏可以有效地減少敏感性資料在加工、傳輸、使用等環節中的暴露,降低敏感性資料泄露的風險,保護使用者權益。本文介紹Log Service資料加工過程中常見的脫敏情境、對應的脫敏方法及樣本。

背景資訊

使用敏感性資料包括手機號、銀行卡號、郵箱、IP地址、AK、社會安全號碼網址、訂單號、字串等情境中,您需要為敏感性資料進行脫敏操作。在Log Service資料加工服務中,常見的脫敏方法有Regex替換(關鍵函數regex_replace)、Base64轉碼(關鍵函數base64_encoding)、MD5編碼(關鍵函數md5_encoding)、str_translate映射(關鍵函數str_translate)、GROK捕獲(關鍵函數grok)等。更多資訊,請參見Regex函數GROK函數編碼解碼函數

情境1:手機號脫敏

  • 脫敏方法

    日誌中包含不希望被暴露的手機號,可採用Regex,運用regex_replace函數脫敏。

  • 樣本
    • 原始日誌
      iphone: 13900001234
    • 加工規則
      e_set(
          "sec_iphone",
          regex_replace(v("iphone"), r"(\d{0,3})\d{4}(\d{4})", replace=r"\1****\2"),
      )
    • 加工結果
      iphone: 13900001234
      sec_iphone: 139****1234

情境2:銀行卡資訊脫敏

  • 脫敏方法

    日誌中包含銀行卡或者信用卡資訊,可採用Regex,運用regex_replace函數脫敏。

  • 樣本
    • 原始日誌
      content: bank number is 491648411333978312 and credit card number is 4916484113339780
    • 加工規則
      e_set(
          "bank_number",
          regex_replace(
              v("content"), r"([1-9]{1})(\d{14}|\d{13}|\d{11})(\d{4})", replace=r"****\3"
          ),
      )
    • 加工結果
      content: bank number is 491648411333978312 and credit card number is 4916484113339780 
      bank_number: bank number is ****8312 and credit card number is ****9780

情境3:郵箱地址脫敏

  • 脫敏方法

    日誌中包含郵箱資訊,可採用Regex,運用regex_replace函數脫敏。

  • 樣本
    • 原始日誌
      content: email is username@example.com
    • 加工規則
      e_set(
          "email_encrypt",
          regex_replace(
              v("content"),
              r"[A-Za-z\d]+([-_.][A-Za-z\d]+)*(@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4})",
              replace=r"****\2",
          ),
      )                            
    • 處理後資料
      content: email is username@example.com
      email_encrypt: email is ****@example.com

情境4:AK脫敏

  • 脫敏方法

    日誌中包含AccessKey資訊,可採用Regex,應用regex_replace函數。

  • 樣本
    • 原始日誌
      content: ak id is <testAccessKey ID> and ak key is <testAccessKey Secret>
    • 加工規則
      e_set(
          "akid_encrypt",
          regex_replace(
              v("content"),
              r"([a-zA-Z0-9]{4})(([a-zA-Z0-9]{26})|([a-zA-Z0-9]{12}))",
              replace=r"\1****",
          ),
      )
    • 加工結果
      content: ak id is <testAccessKey ID> and ak key is <testAccessKey Secret>
      akid_encrypt: ak id is rDhc**** and ak key is XQr1****

情境5:IP地址脫敏

  • 脫敏方法

    日誌中包含IP地址資訊,可同時運用regex_replace函數和grok函數,對IP地址進行正則捕獲後而脫敏。

  • 樣本
    • 原始日誌
      content: ip is 192.0.2.10
    • 加工規則
      e_set("ip_encrypt",regex_replace(v('content'), grok('(%{IP})'), replace=r"****"))
    • 加工結果
      content: ip is 192.0.2.10
      ip_encrypt: ip is ****

情境6:身份證脫敏

  • 脫敏方法

    日誌中包含身份證資訊,可同時運用regex_replace函數和grok函數,對社會安全號碼進行正則捕獲後而脫敏。

  • 樣本
    • 原始日誌
      content: Id card is 111222190002309999
    • 加工規則
      e_set(
          "id_encrypt", regex_replace(v("content"), grok("(%{CHINAID})"), replace=r"\1****")
      )
    • 加工結果
      content: Id card is 111222190002309999
      id_encrypt: Id card is 111222****

情境7:網址脫敏

  • 脫敏方法

    對日誌內容中的網址做脫敏處理,並且將脫敏的資料轉成明文格式,可運用Base64編碼解碼函數,對網址進行轉碼。

  • 樣本
    • 原始日誌
      url: https://www.aliyun.com/sls?logstore
    • 加工規則
      e_set("base64_url",base64_encoding(v("url")))
    • 加工結果
      url: https://www.aliyun.com/sls?logstore
      base64_url: aHR0cHM6Ly93d3cuYWxpeXVuLmNvbS9zbHM/bG9nc3RvcmU=
      說明 如果想對base64_url進行解碼,可以使用base64_decoding(v("base64_url"))DSL文法規則。

情境8:訂單號脫敏

  • 脫敏方法

    對日誌內容中的訂單號做脫敏處理,同時不希望其他人能夠解碼,可運用MD5編碼函數,對訂單號進行編碼。

  • 樣本
    • 原始日誌
      orderId: 20210101123456
    • 加工規則
      e_set("md5_orderId",md5_encoding(v("orderId")))
    • 加工結果
      orderId: 20210101123456
      md5_orderId: 9c0ab8e4d9f4eb6fbd5c508bbca05951

情境9:字串脫敏

  • 脫敏方法

    您希望日誌中的關鍵字符串不被暴露,可通過str_translate函數制訂映射規則,對關鍵字符或字串進行映射脫敏。

  • 樣本
    • 原始日誌
      data: message level is info_
    • 加工規則
      e_set("data_translate", str_translate(v("data"),"aeiou","12345"))
    • 加工結果
      data: message level is info
      data_translate: m2ss1g2 l2v2l 3s 3nf4