劉軒宇, 杜小江, 伏 曉
(1.南京大學 計算機軟件新技術國家重點實驗室, 江蘇 南京 210093; 2.天普大學 計算機與信息科學系,美國 費城 19122)
隨著數字科技的高速發展,現代社會的平穩運行越來越離不開各種各樣的信息技術,如通信網絡、操作系統、移動應用、智能設備、物聯網以及云計算等.這些先進的信息技術提高了社會的運行和生產效率,改變了人們的生活方式,促進了文化的交流和經濟的發展.但是,信息技術在給社會帶來諸多便利的同時,也不可避免地帶來了很多安全問題.各種針對信息技術的攻擊層出不窮,侵害了個人的權利和利益,也給社會帶來了經濟上的損失.要保證信息技術的發展可以正向地促進社會的進步,就需要保證信息技術的可信性和可靠性,也需要保護信息技術使用者的安全性和隱私性[1].
在信息安全研究領域,國內外的研究者們已經提出了很多種方法和機制,如入侵檢測、訪問控制、數據加密、異常檢測和數字取證等.對于不同的技術、系統、設備、用戶或者平臺,往往已經有大量針對性的安全保護方法被開發和應用.然而,由于信息技術在不斷地更新,信息系統的復雜度越來越高,類型和數量越來越多,規模也越來越大.與此同時,智能設備的數量和類型爆炸式增長,人們的日常生活也更加依賴這些智能設備,信息技術滲透進了社會的每一個角落.這些因素導致了在進行安全保護時,所要應對的場景變得越來越復雜,而這些復雜的場景又反過來提出了更高的安全訴求.不幸的是,當下的信息安全技術并沒有能夠很快地跟上信息技術的快速發展[2-5].技術的快速發展和場景的復雜化對安全從業者的技術能力和知識儲備提出了更高的要求,他們可能需要對不同的技術都有所了解,并能夠掌握如何在不同的場景中設計安全方案或者使用安全工具的能力,這無形中帶來了高昂的學習成本.此外,面對越來越復雜的攻擊場景,已有的安全分析工具和安全增強方案由于只能作用于其中的某一個部分而不能洞悉全局,往往達不到很好的效果.所以,現在很多安全場景并不是使用單一或者幾個工具就足夠的,可能需要將很多個安全工具以一定的方式結合在一起,進行綜合性分析[6].
此外,隨著信息安全和隱私保護的概念深入人心,除了安全相關從業人員之外,政府、組織、企業甚至普通用戶也會有相關安全需求,例如想要了解已有設備的安全性,想要知曉計算機系統是否運行正常,想要知道智能家居系統是否可靠,想要確定自己的信息是否在社交網絡中被泄露和惡意傳播等.然而,安全工具往往對使用者有較高的技術要求和知識門檻,對于沒有任何相關知識或者說只有一些基礎理論知識的普通用戶來說,他們在使用基本工具獲得其設備上的一些數據后,無法做出更進一步的分析,得到更深層次、更詳細、更準確的結果.他們可能需要其他專業人員的幫助和指引.甚至對于一些專業安全從業人員,當面對的安全任務超出其自身能力范圍時,例如遇到不熟悉的系統、設備和場景,也需要查詢相關的知識或者尋求其他取證人員的幫助.
現如今,很多復雜的工作都是以流水線的方式分工合作完成的,工人只需要完成自己負責的那一部分工作,并提交工作成果[7-8].同理,在信息安全任務中,也可以指派多個專業人員來合作完成目標場景下的安全任務,每個人只負責完成自己擅長的部分.不同技術和知識領域的專家之間的合作可以顯著降低復雜場景中執行安全防御任務的難度,安全從業人員的學習成本也會降低.因此,可以預見,未來將會有更多的研究關注這種多方參與合作式的安全方案.這種形式類似于眾包這種成熟的分布式問題解決方案,可以整合大量的人力和知識,從而可以作為很多超出當下計算機解決范圍方案的替代解決方案[9].近些年,一些研究者已經嘗試將眾包引入到信息安全研究當中[10-12].本文將探討眾包在信息安全領域的研究現狀,并提出未來的一些方向.
眾包(Crowdsourcing)是指將通常由個人或者組織的內部員工完成的任務以公開征招的形式外包給外部群體來執行[13].與外包類似,眾包也有兩大利益相關者,即任務請求者(或者任務發布者)和任務執行者(有時候也稱為工作者、工人).任務請求者是提供要執行任務的個人或組織,而任務執行者負責執行分配到的任務,是外部群體中的一員.任務請求者將任務劃分為許多小型或者微型任務,并將這些任務分配給任務執行者去執行.這些外包任務的執行結果會被收集并匯總,生成最終結果,從而完成整個外包任務.任務的執行結果通常是由任務請求者進行評估的,并且基于任務的執行質量,任務請求者可能會向任務執行者發放相應的獎勵.當前存在著一些成熟的眾包平臺,知名的有Amazon Mechanical Turk、 Crowdflower、 Top coder、 Innocentive以及Wikipedia等.其中,Amazon Mechanical Turk(AMT)是最受歡迎的平臺之一.在AMT中,任務將會發布在市場中,而工人則可以挑選并執行任務.任務發布者會預先設定支付給任務執行者報酬的類型和數量,比如金錢、證書或者名聲.該平臺的主要功能是為任務設計、任務發布、工人的招聘和管理、獎勵的管理和發放等功能提供必要的工具.
由于任務發布和分配的相對開放性,以及工人群體的特征未知性和不確定性,如何確保眾包任務的整體質量面臨著許多挑戰[14].例如,任務的執行質量取決于任務執行者的技能、意愿和積極性,還取決于請求者提供的任務描述的清晰程度和提供給工人的報酬的豐厚程度.任務的整體執行效率也和任務的分配機制相關.文獻[15]確定了在此背景下質量控制需要考慮的質量維度和屬性,包括數據質量(例如,數據準確性)、任務質量(例如,任務復雜性)和人員質量(例如,工人的技能).
一些研究者已經嘗試將安全任務外包,從而帶來大量用戶反饋來幫助評估系統和軟件的可靠性,并制定相應的安全策略.例如,文獻[16]通過獲取用戶對移動應用程序的評論來生成一個分數用于評估其安全性,類似地,文獻[17]提出依據用戶在網站上的體驗報告來對網頁的可信性進行評級.文獻[18]使用機器學習方法和眾包機制來評估應用程序的行為,并確定它是否正在訪問未經授權的資源.此外,眾包還被用于驗證試圖竊取信息的垃圾郵件或釣魚鏈接.
對沒有經驗的用戶來說,如何保護他們的設備是一項困難的任務.該任務可以外包給有經驗的用戶來完成,由他們分享自己的建議來幫助沒有經驗的用戶進行安全配置.例如,文獻[19]利用社區來評估應用程序的各種安全配置,并確定應用程序的最佳安全配置,力圖在隱私和可用性之間實現平衡.在同樣的背景下,一些移動應用程序依賴眾包來獲取推薦配置,以保護用戶隱私不被泄露[20].個人、平臺和社區之間可以通過共享最佳安全建議、配置和實踐來加強整個計算機生態系統的安全性.
另一項常見的可以結合眾包的安全任務,是發現和共享威脅信息,例如攻擊者的特征及其攻擊模式、惡意軟件特征、攻擊場景類型或者系統漏洞特征等.這些威脅信息有助于個人、企業和組織及時發現和理解各類攻擊和漏洞,特別是剛出現的威脅,從而執行相應的應對措施來防止它們的發生,或者盡可能降低影響范圍.例如,文獻[21]就提出了一個威脅信息共享平臺.文獻[22]則探討了共享威脅信息時在數據質量方面的問題和挑戰,其研究發現,來自不同來源的共享信息的復雜性是影響質量的主要因素.依靠人群來提供發現和共享威脅信息可以最小化一些攻擊場景被忽略的可能性[23].
在信息安全領域引入眾包機制通常需要明確以下關鍵概念.
(1)任務請求者:任務請求者可以是個人、公共機構、企業或者組織等.他們有安全相關的目標和需求,也負責發起任務眾包請求.任務請求者可以自己管理和維護眾包任務,也可以將其外包給專業的眾包管理平臺.任務請求者負責任務結果的驗證,并給出最終的結果(接受或者拒絕).任務請求者還負責確定獎勵策略并提供報酬.此外,他們還會根據接受的結果,對安全問題采取相應的補救措施.
在風機正常運行時,井下風流通過東翼風井到達地面風硐,通過岔口進入一號風機(在用),然后通過擴散器和擴散塔排到大氣中。在風機進行性能測試時,立閘板門將二號風機(測試)與風井和一號風機隔離開來,保證礦井正常通風。風流由水平天窗進入被測風機風硐,然后通過一級電動機及二級電動機后由擴散塔排到大氣中。
(2)安全目標和安全需求:安全目標指的是眾包任務是為誰而設立的,可以是任何類型的信息系統,例如桌面應用系統、移動應用系統、網絡應用系統、云計算架構、數據庫或者物聯網系統等.安全需求指的是眾包任務是為了解決什么問題,通常是為了對信息系統進行安全性分析從而能夠采取相應的安全性增強措施,包括漏洞發現、攻擊防御、異常檢測以及數字取證等.
(3)任務:任務指的是要外包給工人來執行的工作內容.任務的形式可以是多樣的,會根據具體的安全目標和安全需求而變化.任務的要求也是多樣的,例如,可以限定任務完成時間或者對任務執行者的選擇提出要求.在復雜場景中的信息安全任務是復合的,會涉及到不同的元素,如系統、設備、技術和數據類型等,也就需要針對不同的元素使用對應的分析技術.復合任務可以拆分為若干獨立的單元任務,計算量大的任務也可以拆分為很多計算量小的任務.以合理的標準將復雜的任務進行拆分將會極大地減小任務的整體難度,簡化任務流程并提高處理效率,也便于任務執行者執行任務.這些拆分后的任務再通過一定的機制分配給他人來執行,而這些任務執行者擁有可以執行該任務的能力和意愿.
(4)任務描述:任務描述一般是由任務請求者提供的,描述了任務的內容、目標和需求,也可能會包含了一些可選的上下文信息,用來幫助任務執行者更好地理解和執行任務.任務執行者也會根據任務的描述來判斷任務是否適合自己.因此,精簡但清晰的任務描述是必不可少的.
(5)安全專家庫:安全專家是能夠承擔并執行信息安全領域眾包任務的備選人群,等同于眾包機制中的候選工人群體.安全專家通常有不同的背景,可能包括研究人員、學生、愛好者和企業員工等.信息安全方面的任務具有較高的知識和能力門檻,對任務的完成質量和結果正確性提出了很高的要求,這就需要任務執行者擁有特定的領域知識儲備和操作經驗,導致了沒有一定專業背景或者未受過專業培訓的非信息安全從業人員很難快速參與進來.此外,即使是專業的安全從業人員,在面對復雜的或者未知的場景時,也會面臨諸多挑戰.由于安全從業人員不可能學會所有的安全知識,知曉所有的攻擊和場景,熟悉所有的軟硬件,超過其能力范疇的任務需要借助外部的資源,即其他的安全專家和知識.安全專家庫的存在就是為了實現這種外部資源的借助機制.通過對安全專家進行篩選,提供一份任務執行者的備選名單,有助于將任務分配給合適的執行者.
(6)眾包管理平臺:眾包管理平臺可以幫助減輕任務請求者的任務管理負擔.眾包管理平臺負責維持整個眾包系統的正常運行,同時也負責管理和發布眾包任務.此外,平臺往往還會負責維護一個安全專家人員池,負責任務執行者的篩選、維護名聲系統和支付獎勵等.任務結果的收集也是由眾包管理平臺來負責.眾包管理平臺的管理通常包含任務拆分機制、任務分配和調度機制、任務追蹤機制,以及任務驗證機制等.
(7)任務結果報告:執行任務的安全專家在任務完成后必須向眾包管理平臺提交報告.該報告包含了詳細的任務結果,例如安全隱患和漏洞的細節、嚴重性和風險,攻擊者利用漏洞的步驟,攻擊的存在形式以及它可能對系統產生的影響,數字取證的結論等.安全任務報告的質量將會決定整個任務的完成質量和結論是否可靠.翔實的安全任務報告還能幫助任務發布者及時發現安全問題,并制定相應的策略來避免潛在的危害.
(8)激勵:獎勵的存在可以極大地激發安全專家的參與熱情以及提高其積極性.獎勵可以是金錢、名聲和證書等多種形式.獎勵的程度通常取決于任務的難度和完成質量.好的激勵機制要保證公平性和平衡性,能夠起到提高任務完成質量的正向作用,同時要避免任務執行者惡意賺取獎勵的行為.
(9)安全性:作為一項服務于信息安全的方案,整個眾包方案自身的安全性也要得到保證,要能夠穩定地運行,能夠防范常見的攻擊,如DDoS攻擊和系統入侵等.此外,數據是整個方案能夠運行的核心,包含了任務信息和執行結果的數據會在任務發布者和執行者之間進行傳輸,更需要關注數據方面的安全.為了保證數據正確性,避免數據傳輸過程中的丟失、監聽和篡改,在任務發布者和任務執行者之間需要建立安全可信的數據傳輸信道.此外,傳輸給執行者的數據本身可能會攜帶敏感信息,例如設備的運行狀態、系統的架構和用戶的操作記錄等,這些信息也有可能會泄露用戶隱私或者被不懷好意的攻擊者利用,作為攻擊的入口.任務信息也可能會包含敏感信息,如揭示任務發布者的身份或者整體任務的內容.任務發布者或者任務執行者都希望自己的身份信息或相關隱私信息不會因為任務的原因被發現.所以,對于數據、任務信息和參與者信息等都需要采取隱私保護措施.同時,還需要確保任務執行者彼此間是透明和未知的,以避免共謀攻擊.任務執行者只能知曉自己的任務,訪問到對應的數據,而不能得到其他任務執行者的信息.另外,一些數據或者信息可能會牽扯到多個利益相關者,建立完備的訪問控制策略來對任務發布者和任務執行者的各項權限進行限制也是必不可少的.
根據任務發布者和任務執行者之間的關系,信息安全領域的眾包模型可以有如下三種模式.
(1)直接模式:在直接模型中,任務發布者和執行者直接進行通訊,不需要通過額外的第三方服務.發布任務的個人、組織或者企業等完全負責眾包系統的管理.任務的生成和分配、結果的收集、獎勵的發放等都需要任務發布者來負責,安全專家也需要自己去選擇和指定.個人、組織或者企業可以公開征求安全專家的幫助,也可以與特定的專家簽署勞務關系或者咨詢關系.
(2)平臺管理模式:在平臺管理模式中,存在一個第三方管理平臺作為任務發布者和執行者之間的中間商.個人、組織或者企業等通過管理平臺發布任務,平臺負責任務的管理、調度和收集以及執行者的指派.安全專家庫也是由平臺來負責維護,且由平臺負責獎勵的發放.總的來說,個人、組織或者企業等只需要向平臺提出眾包請求并發布其任務,剩下的事情都由平臺來負責.值得一提的是,不同的平臺會提供不同的項目管理服務,一些平臺甚至還提供其他定制化服務,比如驗證漏洞或為發現的漏洞提供解決方案.使用此模型的平臺的一個例子是Bugcrowd,創建于2012年,目前維持著一個大約有25 000名安全專家的社區.它根據業績、解決問題的數量等指標來給安全專家排序,還能以此判斷提交報告的質量和發現漏洞的嚴重性.管理平臺的存在可以減輕任務發布者的負擔,提供了一種統一化的解決方案.
(3)競賽模式:在競賽模式中,任務請求者將要外包的任務以競賽的形式發布,并對任務的完成質量提出要求(例如限定完成的時間).競賽的組織者將會負責評估參賽結果的正確性、有效性和速度等決定比賽的獲勝者,并提供獎勵.這種競賽的形式既可以激發參與者的熱情,也可以提高任務完成的質量.
眾包平臺的架構設計通常有兩種形式:中心化架構和分布式的架構.
(1)中心化架構:在傳統的眾包系統架構中,存在一個中心節點負責眾包機制的運行,例如一個第三方的服務器.但是這種中心化的架構會不可避免地帶來一些問題和挑戰.該中心節點容易成為被攻擊的目標,如DDoS和遠程劫持等,也容易成為單一故障點.此外,信息的存儲也會成為問題,用戶信息和任務數據等容易因為單點故障而泄露或者丟失.中心化架構的優勢是容易實現且便于維護和管理,但是需要做好安全性和可靠性的保障.
(2)分布式架構:考慮到中心化架構存在的潛在問題,很多研究者尋求使用分布式解決方案,并確保能夠保證可靠性、公平性和可信性.區塊鏈技術是很多分布式方案選擇的技術,引入區塊鏈技術甚至可以允許用戶不使用真實身份進行注冊,并且可以使用分布式的加密存儲來保存各種數據,從而保證了隱私[24-25].因為不依賴第三方,也可以減少大量的服務成本和維護費用.文獻[26]將智能合約引入眾包架構,合約將會貫穿眾包機制的全過程,包括任務發布、任務接收及獎勵分配等.為了描述復雜的眾包邏輯,提高眾包的靈活性,將會設計圖靈完備的編程語言.三種標準的智能合約被引入:用戶注冊合約、任務發布合約、發布者-執行者關系合約,通過這三種契約,可以不依賴任何機構或中心化服務來發布和接收任務.此外,與傳統系統相比,其最有用的特點在于可以借助智能合約而不是主觀的第三方來評估要完成的任務.任務的發布者和執行者通過特定的客戶端參與進來,整個過程如下:首先,任務發布者和執行者使用客戶端注冊.用戶的信息被寫入到一個事務中,然后發送給區塊鏈,同時為每個注冊用戶分配一個公鑰對.任何更新可以看作是需要確認的交易,也就是說數據和狀態被永久地記錄在區塊鏈上.接著,由請求者發布任務.請求者可以提前支付給任務執行者“報酬”,并將“報酬”存入區塊鏈.同時,任務分配程序會為執行者設置一個規則,以確保合格的執行者最終能夠接收到任務.此外,還需要一個評估函數來評估解決方案.注冊的任務執行者通過客戶端進行交互來接收任務,而信譽值或者名聲等機制將被引入以確保任務的完成質量.執行者需要在最后期限前完成任務并生成解決方案.執行者使用其公鑰對待提交的解決方案進行加密后,將解決方案提交到分布式存儲中,與此同時,相應的Hash值和指針也會被存儲在區塊鏈上.請求者可以通過指針找到解決方案,并用他的私鑰解密它們.最后一步涉及到方案收集、獎勵分配和任務評估.執行者或發布者可以通過向區塊鏈發布一個事務來主動完成此步驟.獎勵是根據考核結果自動分配給執行者的,考核結果決定了執行者能獲得多少獎勵,并與執行者的努力程度有關.努力和良好的表現會得到更多的回報,提高聲譽.和中心化架構相比,分布式架構的實現更具有挑戰性,也提出了更高的要求.分布式架構需要處理好多節點之間的通信和節點可信性等問題.
總體來說,中心化架構和分布式架構各有其優勢和適用范圍.信息安全領域的眾包系統應該根據需求、場景和預算等靈活選擇架構形式,兩種架構形式甚至可以互為補充.
根據已有的研究現狀和上述的分析,本文在此列出了一些有待解決的問題和挑戰,并提出了相應的研究方向.
(1)安全專家庫的建立:安全專家庫的存在提供了任務執行者的備選清單.這些任務執行者擁有不同的知識背景,掌握不同的安全技能,可以承擔不同的安全任務.建立和維護該專家庫,首先需要能夠建立身份系統,標注基本信息,提供身份驗證等功能.其次,要能夠確定每個專家的知識、技能和偏好,這樣便于專家搜索以及匹配最合適的任務執行者.最后,為了保證專家的參與熱情和積極性,相關的激勵機制也是必不可少的.此外,還要考慮專家的添加、更新和刪除等基本數據庫維護功能,以及專家搜尋和匹配等基本數據庫查詢功能.此外,如何建立安全專家的檔案也是值得研究的方向.安全專家的能力、積極性、完成任務的質量等信息可以幫助判斷該安全專家是否適合執行任務,也可以幫助生成任務分配的策略和算法.
(2)合理的架構和運行機制:整個系統的高效運轉離不開合理的架構和運行機制.架構的選擇需要根據具體的場景和需求.未來的研究還需要進一步解決中心化架構和分布式架構中存在的問題,保障架構的穩定性.同時任務的分配、調度和整合等機制也需要更加高效的算法和實現.
(3)任務的劃分和封裝:由于安全任務的特殊性、復雜性和高要求,其劃分和封裝不能照搬已有的眾包機制中的方法.任務目標需要明確定義,包括其總體目標和子目標以及任務劃分粒度.任務也需要有特定的封裝格式,便于任務的管理和調度,也便于任務執行者的理解.
(4)任務描述格式和質量提升:任務的描述必須清晰明白,從而有利于安全專家的配對和任務的順利執行.如何能夠根據不同的任務類型和場景,高效生成描述是值得研究的方向.此外,還可以在已知任務描述的情況下,使用分類器來檢測和跟蹤,哪些任務描述能吸引合適的安全專家,哪些不適合,可以結合文本分析和機器學習算法等技術.
(5)任務結果和報告的評估機制:通常任務結果的質量是指提供的結果滿足任務要求的程度.它可以是主觀的也可以是客觀的.如何定義滿足程度,如何合理評估任務結果有待解決,也決定了任務最終結論的質量.此外,任務的結果報告也十分關鍵.由于每個任務執行者的背景和動機都是不同且未知的,他們提交報告的質量也會不同.此外,表達形式不好的報告將花費任務發布者更多的時間和精力來識別和理解,錯誤的報告也會影響最終的結論.所以,一個有效的任務結果和報告評估機制是必不可少的.這種機制應該盡量是自動化的,例如可以使用自然語言處理的技術來輔助檢測,并可以提供警告或在任務執行者提交報告前提出改善報告質量的建議.
(6)更公平的激勵機制:激勵機制的存在是為了鼓勵安全專家的參與,確保任務的質量.激勵機制需要保證公平性,要能夠按照真實的貢獻程度向任務執行者發放對等的獎勵.同時該機制的存在要能夠給不積極的或者惡意的任務執行者一定的懲罰或者損失.一些執行者可能會想盡辦法騙取報酬.激勵機制要能夠發現并避免這種行為.
(7)安全性和隱私保護:當將任務分配給其他人來做的時候,不可避免地要建立信道傳輸任務信息和待處理的數據.考慮到安全性和隱私性,這個信道應該是可信的一對一加密信道.任務執行者執行任務不一定必須是實時的,也可以是非實時的,所以該通訊信道應該是能夠支持異步通信的.數據的存儲也是需要考慮的問題,要保證收集到的數據不會丟失、不會被篡改,能夠很方便的存取,要保證任務的中間結果被正確的保存.已有的在加密通信信道和安全增強數據庫方面的研究和技術可以幫助實現這一點.除了數據傳輸和存儲的安全,數據隱私保護也是要考慮的.由于數據本身會包含一些敏感信息,數據需要進行脫敏化和匿名化的處理,或者進行語義級別的提升,盡可能隱藏敏感信息,但是又不丟失包含的語義,不影響正常的功能.在任務分配和執行的過程中,需要保護任務發布者和執行者的隱私性,要避免任務發布信息、結果信息和任務分配機制等造成任務發布者和執行者以及任務自身無關的信息被泄露.
(8)知識產權保護:一些任務的內容可能會涉及到代碼或者文件等知識產權的內容.例如代碼分析任務可以泄露源代碼.為了保護知識產權,需要研究任務分解技術,盡可能避免提供完整代碼或者文件,也就是說,只提供最少但必須的數據,可以為不同類型的數據提供不同的任務封裝機制,也可以制定相關條款來約束任務執行者.
(9)政策和法律:任務的外包是否符合對應國家的政策和法律是需要考慮的問題.任務在外包前需要確定其能否被外包,任務的內容是否有限制,執行任務的安全專家群體有沒有限制.此外,由于安全專家可能處于世界各地,他們執行外包任務時需要考慮當地的政策和法規.
本文總結了眾包機制在信息安全領域的應用現狀,分析了在信息安全領域結合眾包機制的關鍵因素、模式和架構,并提出了未來的發展方向.眾包在信息安全領域的應用已經有了一些初步的研究進展,也幫助解決了一些復雜的問題,這表明眾包在信息安全領域有著廣泛的應用前景.未來隨著更多有價值研究的出現,眾包也將會和信息安全技術結合得更加緊密,從而促進信息安全領域的快速發展.