AI安全入門-人工智能數據與模型安全

參考 人工智能數據與模型安全 from 復旦大學視覺與學習實驗室

文章目錄

  • 0. 計算機安全學術知名公眾號
  • 1. 概述
    • 數據安全
    • 模型安全
  • 3. 人工智能安全基礎
    • 3.1 基本概念
      • 攻擊者
      • 攻擊方法
      • 受害者
      • 受害數據
      • 受害模型
      • 防御者
      • 防御方法
      • 威脅模型
      • 目標數據
      • 替代數據
      • 替代模型
    • 3.2 威脅模型
      • 3.2.1 白盒威脅模型
      • 3.2.2 黑盒威脅模型
      • 3.2.3 灰盒威脅模型
    • 3.3 攻擊類型
      • 3.3.1. 攻擊目的
        • 3.3.1.1. 破壞型
        • 3.3.1.2. 操縱型
        • 3.3.1.3. 竊取型
      • 3.3.2. 攻擊對象
        • 3.3.2.1. 數據
        • 3.3.2.2. 模型
      • 3.3.3. 攻擊時機
        • 3.3.3.1. 訓練階段
        • 3.3.3.2. 測試階段

0. 計算機安全學術知名公眾號

  • 安全研究 GoSSIP (蜚語、上海交通大學軟件安全小組,主要由李卷孺老師指導) 官網
  • 網安國際 (由清華大學段海新教授、復旦大學楊珉教授、螞蟻韋韜博士、華為萬濤博士等共同發起) 官網
  • 安全學術圈 (SecQuan) 官網
  • 漏洞戰爭 (林椏泉 泉哥)
  • 安全張之家 (中國科學院大學張玉清教授)
  • 隱者聯盟 (AI 安全和多媒體安全,主要由復旦大學錢振興教授運營)
  • NISL 實驗室 (清華大學) 官網

1. 概述

數據安全

  • 數據投毒:通過操縱數據收集或標注過程來污染(毒化)部分訓練樣本,從而大幅降低最終模型的性能。
  • 數據竊取:從已訓練好的模型中逆向工程出訓練樣本,從而達到竊取原始訓練數據的目的。
  • 隱私攻擊:利用模型的記憶能力,挖掘模型對特定用戶的預測偏好,從而推理出用戶的隱私信息。
  • 數據篡改:利用模型的特征學習和數據生成能力,對已有數據進行篡改或者合成全新的虛假數據。

模型安全

  • 對抗攻擊:在測試階段向測試樣本中添加對抗噪聲,讓模型作出錯誤預測結果,從而破壞模型在實際應用中的性能。
  • 后門攻擊:以數據投毒或者修改訓練算法的方式,向模型中安插精心設計的后門觸發器,從而在測試階段操縱模型的預測結果。
  • 模型竊取:通過與目標模型交互的方式,訓練一個竊取模型來模擬目標模型的結構、功能和性能。

3. 人工智能安全基礎

當一個安全問題發生時,我們首先要弄清楚是*“誰攻擊了誰”*。這就涉及到人工智能安全問題中三類主要的利益相關者:攻擊者、受害者和防御者。

3.1 基本概念

攻擊者

攻擊者是指對數據、模型及其相關過程,包括數據收集、模型訓練和模型部署等,發起惡意監聽、竊取、干擾、甚至破壞行為的個人或組織。
注意具體發動攻擊的是一個程序,但是會有人類或者組織來操縱,有一種刺人而殺之,曰“非我者,兵也。”的感覺。

攻擊方法

攻擊方法是指攻擊者用來對數據、模型及其相關過程,包括數據收集、模型訓練和模型部署等,發起攻擊的具體手段。

受害者

受害者是指由于受到數據或模型攻擊而利益受到損害的數據或模型所有者、使用者或其他利益相關者。
與受害者密切相關的兩個概念是:受害數據(victim data)和受害模型(victim model);

受害數據

受害數據是指受到惡意攻擊的訓練或測試數據。

受害模型

受害模型是指受到惡意攻擊的人工智能模型。

防御者

防御者是指通過一定的防御措施保護數據或者模型免受潛在惡意攻擊的個人或組織。

防御方法

防御方法是指防御者用來對數據、模型及其相關過程,包括數據收集、模型訓練和模型部署等進行保護,使其免受潛在攻擊的具體手段。
下面定義攻防發生的“戰場”,即威脅模型。

威脅模型

威脅模型定義了系統的運行環境、安全需求、所面臨的安全風險、潛在攻擊者、攻擊目標和攻擊方法、可能的防御策略、防御者可利用的資源等攻防相關的關鍵設置信息。
簡而言之,威脅模型(threat model)是對真實場景的一種模擬,旨在清晰準確的劃定攻擊者與防御者之間邊界,以便公平的開展攻防研究。數據與模型安全研究中常采用的威脅模型類型:白盒威脅模型、灰盒威脅模型和黑盒威脅模型。

目標數據

目標數據是指攻擊者在進行攻擊時的數據對象。

替代數據

替代數據是指攻擊者自己收集的、可以用來替代目標數據的傀儡數據。

替代模型

替代模型是指攻擊者自己擁有的、可以用來替代目標模型的攻傀儡模型。

3.2 威脅模型

3.2.1 白盒威脅模型

白盒威脅模型主要是對攻擊目標對象來說的,是指攻擊者具有對目標數據或目標模型的完全訪問權限。只要切實可行,攻擊者可以利用任何關于目標數據或目標模型的信息發起攻擊。需要注意的是,“白盒”一般指的是訪問權限,并不意味著攻擊者就可以隨意修改目標數據或目標模型。否則,攻擊者可以任意破壞數據和模型,而不再需要設計特殊的攻擊方法。

3.2.2 黑盒威脅模型

與白盒威脅模型不同,黑盒威脅模型假設攻擊者只能通過API(application programming interface)對模型發起查詢請求并獲得返回結果,而無法獲取訓練數據、訓練方法、模型參數等其他信息。

3.2.3 灰盒威脅模型

灰盒威脅模型介于白盒威脅模型和黑盒威脅模型之間,假設攻擊者可以知道攻擊目標的部分信息,如任務類型、數據類型、模型結構等,但是無法獲得具體的訓練數據或模型參數。

3.3 攻擊類型

在介紹具體的攻擊類型之前,我們需要深入理解機器學習模型本身的特點,因為模型特性決定了它可能存在的弱點和所面臨的攻擊。這里我們以深度學習模型(即深度神經網絡)為例,介紹對機器學習模型不同層次的理解。

  • 機器學習模型是一個學習器
    機器學習模型可以在學習算法,如有監督學習算法、無監督學習算法等的指導下,從給定訓練數據中學習潛在的規律,并能將學習到的規律應用到未知數據上去,這是對機器學習模型最樸素的理解。
    學習器存在一系列共同的弱點,比如當任務定義、訓練數據、學習算法、訓練時長等任何一個環節出了問題,最終得到的模型就會出現性能下降、被惡意攻擊等各種風險。所以攻擊者可以攻擊這其中任何一個環節,以此來阻止模型的正常訓練、破壞模型的泛化、向模型里安插后門等等。
  • 機器學習模型是一個計算器
    訓練好的機器學習模型可以理解為是一個計算器,其可以對輸入樣本進行一系列復雜的計算并最終輸出預測結果。訓練好的機器學習模型可以理解為是一個計算器,其可以對輸入樣本進行一系列復雜的計算并最終輸出預測結果。
    由于機器學習模型的輸入往往是多個樣本(一批樣本),輸出也不是單維度的,所以不同維度的計算結果之間也會產生相互干擾。另外,計算器跟具體的任務一般都不是唯一綁定的,也就是說為一個任務涉及的計算器也有可能會被劫持來服務于另一個非法的任務。
  • 機器學習模型是一個存儲器
    機器學習模型在訓練數據上不斷訓練的過程也是其不斷學習規律、不斷存儲信息的過程。
    既然機器學習模型是一個存儲器,那么其存儲的信息就一定可以通過某種方式“提取”出來,導致隱泄露攻擊、數據竊取攻擊等安全問題的出現。
  • 機器學習模型是一個復雜函數
    機器學習模型可以被理解為一個將輸入空間映射到輸出空間的復雜函數。
    高維的輸入和輸出空間決定了其難以通過有限訓練數據點達到空間的完美覆蓋,導致空間存在大量無法被探索到的高維口袋(high-dimensional pocket)。這樣的函數也決定了其內部會存在一些近路(shortcut),在這些路徑上輸入和輸出之間距離很近,不需要復雜的計算即可直接得出結論;同時也會存在一些死胡同(dead end),無論怎么計算也得不到某類輸出。

3.3.1. 攻擊目的

3.3.1.1. 破壞型

破壞型攻擊的目的只有一個,那就是“破壞”。破壞型攻擊可以破壞機器學習的任何一個關鍵環節,包括數據收集過程、訓練數據、模型的訓練過程、訓練得到的模型、模型部署、模型測試、測試數據等等。任何攻擊都有一定的動機,對破壞型攻擊來說,其攻擊動機包括:破壞競爭對手的人工智能系統、以破壞來勒索受害用戶、無意間使用了具有破壞性的樣本等等。

3.3.1.2. 操縱型

操縱型攻擊的目的是控制數據或模型以完成攻擊者特定的目的。相比破壞型攻擊,此類攻擊要求攻擊者完成對數據或模型更精細化的控制,攻擊難度更大。

3.3.1.3. 竊取型

竊取型攻擊的目的是通過窺探數據、模型或者模型的訓練過程,以完成對訓練數據、訓練得到的模型、訓練算法等關鍵信息的竊取。

3.3.2. 攻擊對象

機器學習大致遵循“數據收集-模型訓練-模型部署”三個步驟。

3.3.2.1. 數據

訓練數據和測試數據是兩類主要數據,訓練數據服務于模型訓練,測試數據服務于模型評估。
數據投毒攻擊通過污染收集到的訓練數據以達到破壞數據、阻礙模型訓練的目的。數據投毒攻擊可以通過不同的方式進行,比如攻擊數據的收集過程、標注過程、或者直接污染收集到的數據。數據竊取通過對模型進行逆向工程,從中恢復出原始訓練數據。

3.3.2.2. 模型

針對模型的攻擊主要包括對抗攻擊、后門攻擊和模型竊取三大類,這三類攻擊分別代表了破壞型、操縱性和竊取型這三類攻擊目的。
對抗攻擊的思想是讓模型在部署使用階段犯錯,其通過向測試樣本中添加微小的對抗噪聲來讓模型做出錯誤的預測結果。有意思的是,這種通過修改輸入樣本來干擾模型預測的攻擊方式并不稀奇,反而會引發兩個疑問。
(1) 既然攻擊者有修改測試數據的權限,那么他/她就可以隨意修改數據,那就不會僅限于微小修改。
(2) 攻擊者可以修改測試數據這一假設會面臨“動機”方面的挑戰,即為什么模型的使用者作為受益者一方要讓模型犯錯呢?

3.3.3. 攻擊時機

根據攻擊時機的不同,現有攻擊大約可以分為訓練階段攻擊和測試階段攻擊。

3.3.3.1. 訓練階段

與模型訓練緊密相關的是訓練數據、訓練算法、超參數和模型,這些元素都有被攻擊的可能。在訓練階段,攻擊者可以對數據進行投毒攻擊,通過污染訓練數據來破壞模型的正常訓練。例如對訓練數據進行增、刪、改、換等不同形式的改動,以此來降低最終訓練得到的模型的性能或者其他屬性(如魯棒性、隱私保護性等)。

目前針對訓練算法和超參數的攻擊并不多見,但是可以想象的是模型訓練對這些參數,比如學習率、初始化參數、訓練周期,是很敏感的。但是對訓練超參的攻擊需要很強的威脅模型,比如攻擊者可以控制訓練過程或者惡意修改訓練代碼。一個有意思的觀察是,部分研究工作開源的代碼存在復現難的問題,需要對訓練算法和超參數進行進一步調優才能達到論文中報告的結果。對于輕量級的訓練來說這可能影響不大,但是對于大規模訓練算法來說,這就會帶來大量的訓練開銷,大大增加研究費用。如果在開源代碼中故意對超參數進行隱藏或者過度復雜化以增加復現難度,就可以被視為是一種訓練超參攻擊。這個攻擊很有趣,很像當年我寫的代碼里面有死循環,被當成病毒干掉了;

3.3.3.2. 測試階段

相比訓練階段,不論從數據還是模型的角度來說,測試階段的攻擊更多樣化。其中很大一部分原因是測試階段模擬的是模型的真實使用情況,此時模型會以不同的形式接收外部請求,會面臨多種多樣的攻擊。在數據方面,可以以模型為媒介對訓練數據進行竊取和隱私攻擊,還可以借助模型進行數據篡改和偽造。 在模型方面,可以通過修改測試樣本對模型發起對抗攻擊,或者通過查詢API對模型進行竊取攻擊。


本文只做簡要記錄,詳細信息還是細細研究參考書人工智能數據與模型安全

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/45588.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45588.shtml
英文地址,請注明出處:http://en.pswp.cn/web/45588.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

實踐致知第16享:設置Word中某一頁橫著的效果及操作

一、背景需求 小姑電話說:現在有個word文檔,里面有個表格太長(如下圖所示),希望這一個設置成橫的,其余頁還是保持豎的! 二、解決方案 1、將鼠標放置在該頁的最前面閃爍,然后選擇“頁面”》“↘…

Python面經

文章目錄 Python基本概念1. Python是**解釋型**語言還是**編譯型**語言2. Python是**面向對象**語言還是面向過程語言3. Python基本數據類型4.append和 extend區別5.del、pop和remove區別6. sort和sorted區別介紹一下Python 中的字符串編碼is 和 的區別*arg 和**kwarg作用淺拷…

Electron 進程間通信

文章目錄 渲染進程到主進程(單向)渲染進程到主進程(雙向)主進程到渲染進程 (單向,可模擬雙向) 渲染進程到主進程(單向) send (render 發送)on &a…

【Stable Diffusion】(基礎篇三)—— 圖生圖基礎

圖生圖基礎 本系列筆記主要參考B站nenly同學的視頻教程,傳送門:B站第一套系統的AI繪畫課!零基礎學會Stable Diffusion,這絕對是你看過的最容易上手的AI繪畫教程 | SD WebUI 保姆級攻略_嗶哩嗶哩_bilibili 本文主要講解如何使用S…

客戶端與服務端之間的通信連接

目錄 那什么是Socket? 什么是ServerSocket? 代碼展示: 代碼解析: 補充: 輸入流(InputStream): 輸出流(OutputStream): BufferedReader 是如何提高讀取效率的&a…

K8s集群初始化遇到的問題

kubectl describe pod coredns-545d6fc579-s9g5s -n kube-system 找到原因1:CoreDNS Pod 處于 Pending 狀態的原因是集群中的節點都帶有 node.kubernetes.io/not-ready 污點 journalctl -u kubelet -f 14:57:59.178592 3553 remote_image.go:114] "PullIma…

《簡歷寶典》12 - 簡歷中“項目經歷”,內功學習 - 下篇

這一小節呢,我們繼續說簡歷中 “項目經歷” 的一些內功心法。因為項目經歷比較核心,所以說完了,內功呢,我們會著重說一下 實戰部分。 目錄 1 所用技術的考慮 2 自我成長的突出 3 綜合使用STAR法則 4 小節 1 所用技術的考慮 …

如何評估AI模型:評估指標的分類、方法及案例解析

如何評估AI模型:評估指標的分類、方法及案例解析 引言第一部分:評估指標的分類第二部分:評估指標的數學基礎第三部分:評估指標的選擇與應用第四部分:評估指標的局限性第五部分:案例研究第六部分&#xff1a…

pear-admin-fast項目修改為集成PostgreSQL啟動

全局搜索代碼中的sysdate(),修改為now() 【前者是mysql特有的,后者是postgre特有的】修改application-dev.yml中的數據庫url使用DBeaver把mysql中的數據庫表導出csv,再從postgre中導入csv腳本轉換后出現了bpchar(xx)類型,那么一定…

用友U8存貨分類按層級取數SQL語句

SELECT cInvCCode 分類編碼, cInvCName 分類名稱, iInvCGrade 分類層級, ss.bInvCEnd 是否是末級, aa.* FROM InventoryClass ss LEFT JOIN ( SELECT * FROM ( SELECT cInvCCode AS 一級分類編碼, …

python數據可視化(6)——繪制散點圖

課程學習來源:b站up:【螞蟻學python】 【課程鏈接:【【數據可視化】Python數據圖表可視化入門到實戰】】 【課程資料鏈接:【鏈接】】 Python繪制散點圖查看BMI與保險費的關系 散點圖: 用兩組數據構成多個坐標點,考察…

如何降低老年人患帕金森病的風險?

降低老年人患帕金森病風險的方法 避免接觸有害物質:長期接觸某些化學物質、農藥或其他有害物質可能會增加患帕金森病的風險。應減少這些物質的暴露,例如在工作或生活中采取防護措施。 健康飲食:均衡飲食,多吃富含抗氧化劑的食物&a…

做了一個萬能搜索框

最近給網頁做了一個搜索框,現在搜索比以前更加方便了,下面簡單介紹一下如何使用 我們進入網頁版(app.zyjj.cc)點擊右上角的搜索就可以看到這個新版的搜索框了 目前支持中文、拼音、首字母等多種搜索方式,大家可以隨意…

【Python】Python-docx使用實例 科技檔案封面批量生成

使用背景 根據excel表中的信息,按照word模板格式,每條信息生成一個對應的模板及文件名。 我這里的情況是將科技檔案的封面格式按照案卷表的明細批量生成。 (單位的檔案軟件太雞肋了,沒有這個功能) 代碼整篇 工程檔…

【Linux】常見指令(下)

【Linux】常見指令(下) 通配符 *man指令cp指令echo指令cat指令(簡單介紹)cp指令 mv指令alias指令which ctrl ccat指令linux下一切皆文件 more指令less指令head指令tail指令管道 通配符 ‘*’ 通配符’ *‘,是可以匹配…

4 C 語言控制流與循環結構的深入解讀

目錄 1 復雜表達式的計算過程 2 if-else語句 2.1 基本結構及示例 2.2 if-else if 多分支 2.3 嵌套 if-else 2.4 懸空的 else 2.5 注意事項 2.5.1 if 后面不要加分號 2.5.2 省略 else 2.5.3 省略 {} 2.5.4 注意點 3 while 循環 3.1 一般形式 3.2 流程特點 3.3 注…

Dynamic多數據源

有時候我們在項目中,可能會遇到需要同時使用多個數據庫連接的情況,這個時候可以使用MyBatis-Plus的dynamic多數據源的配置。但其實MyBatis-Plus官方還提供了mybatis-mate組件,但是他是付費的企業組件。 官方文檔: 多數據源支持 …

識別視頻中的人數并統計出來

目的: 使用Python和pysimpleguil以及opencv寫一個統計人流量的軟件。要求:1 加載選定的視頻 2 通過形態學特征識別人,3統計人數并且在界面上顯示出來,4 保存識別出人數的信息。 步驟 1: 安裝必要的庫 首先,確保你已經安裝了Python。然后,安裝PySimpleGUI和OpenCV。你可…

數電基礎 - 可編程邏輯器件

目錄 ?編輯 一. 簡介 二. 現場可編程邏輯陣列 三. 可編程陣列邏輯 四. 通用陣列邏輯 五. 可擦除的可編程邏輯器件 六. 復雜的可編程邏輯器件 七. 現場可編程門陣列 一. 簡介 可編程邏輯器件(Programmable Logic Device,PLD)是一種用…

Gmsh用戶界面

主要指出幾何、網格、求解三個模塊. 幾何模塊分為基本實體和物理組兩個部分,主要對幾何體進行操作,并設置物理屬性 網格模塊主要定義了對網格的操作和對應的算法 求解主要指出了網格求解方法 所有的界面操作都是基于這三個方法的