王學奎,陳 奇,盧怡鵬
(1.北京電視臺,北京 100022;2.新奧特(北京)視頻技術有限公司,北京 100195)
國內高清攝像機大多采用P2存儲卡(松下高清數字攝像機)和藍光盤(索尼高清數字攝像機)作為存儲介質,但不論是P2卡還是藍光盤都可以作為計算機的移動存儲介質,可通過PCI插槽、USB接口等通用接口完成與計算機的連接,其文件格式也采用了通用的文件格式,這樣的設計使病毒或木馬可以輕松地通過這些新介質傳入制播網。對于如何解決因采用新介質而帶來的安全防護問題,北京電視臺在高清制播網建設中,建設了高清新介質安全防護系統。高清新介質安全防護系統從Windows設備驅動層面完成對新介質中非法文件的屏蔽,從而隔斷了惡意代碼傳入制播網系統的途徑,并對新介質的使用進行有效的管理。
新存儲介質與傳統磁帶方式相比具有明顯的優越性,如便于與計算機之間進行數據交換,便于攜帶,物理性能更好等。本文所針對的高清新介質主要指可以通過USB接口、PCI、1394等計算機通用接口完成與計算機之間以文件方式進行直接數據交換的介質。目前國內普遍使用的高清數字新介質為藍光盤和P2卡,其他介質(各類閃存卡)的防護方式與之類似。
P2卡是松下公司推出的插卡式PC卡介質,是為專業音視頻應用而設計的小型固態存儲卡,它的存儲核心采用了4片高速SD卡,這些SD卡安裝到一個接口電路板上,并由一個P2 Controller LSI控制與外部設備進行通信。P2卡符合PC卡標準(2型),可以直接插入到筆記本式計算機的卡槽中,也可以通過USB接口或PCI接口的方式接入工作站。卡上的音視頻數據以文件形式存儲,每一段剪輯都由MXF和元數據文件組成。這些數據不需要數字化處理,可以立即用于非線性編輯。目前P2卡有64 Gbyte,32 Gbyte和16 Gbyte三種型號。P2卡結構如圖1所示。

圖1 P2卡結構圖
P2存儲卡在出廠時沒有做任何的安全防護處理,對于安裝了P2存儲卡驅動程序的計算機,P2存儲卡就是一個移動存儲介質(如同U盤),P2存儲卡沒有任何限制讀寫數據的措施,即任意的數據及文件都可以寫入P2存儲卡的任意位置。
藍光盤,即藍光DVD。由索尼、松下、日立、夏普、先鋒、LG、三星、飛利浦和湯姆遜等公司組成的藍光盤聯盟開發完成。藍光盤用以儲存高畫質的音視頻及其他數據資料,因其數據讀寫采用波長為405 nm的藍色激光波,將其命名為Blu-ray。一個單層的藍光盤的容量為25 Gbyte或27 Gbyte,雙層可達到46 Gbyte或54 Gbyte,而4層及8層的藍光盤容量可達100 Gbyte或200 Gbyte。藍光盤單光頭讀寫速率達到72 Mbit/s,雙光頭讀寫速率可達到144 Mbit/s。
藍光盤向下兼容DVD,VCD以及CD,藍光盤文件格式采用CDFS格式,可以用藍光刻錄機寫入資料,可使用同一張光盤記錄多種不同的視頻格式。光盤記錄是把信息作為“數據文件”進行處理,除了視頻和音頻流,光盤還可以記錄多種元數據,如日期、時間、位置信息等。電視臺使用的藍光盤是專業藍光盤,藍光專業光盤只能被專業的藍光驅動器讀寫數據,普通的家用級藍光機是無法對藍光專業光盤讀寫數據的。藍光盤邏輯結構如圖2所示。

圖2 藍光盤邏輯結構圖
藍光專業光盤在出廠時對目錄結構及文件夾屬性進行了如下安全處理:
1)藍光專業光盤根目錄無法寫入數據。藍光專業光盤根目錄下的文件夾中只有“General”和“UserData”能進行數據讀寫;
2)藍光專業光盤根目錄下的文件夾中除“General”和“UserData”外,其他文件夾不能進行數據手動寫入;
3)使用者在具備索尼藍光驅動器、攝像機等專業設備的前提下,可以向藍光專業光盤中的“General”和“User-Data”兩個目錄內寫入任何格式數據。
通過對P2卡及藍光盤的存儲機制的分析,可以得出新介質給制播業務帶來方便的同時,給制播網的安全帶來了隱患。實際上P2卡和藍光盤廠商附帶了一些針對自身產品的安全防護軟件,如P2卡所帶的“P2CardCleaner”安全軟件可以刪除P2卡內所有的非法文件(非P2系統文件及非法MXF文件),但“P2CardCleaner”軟件運行在Windows操作系統之上,“P2CardCleaner”與Windows是同步識別P2存儲卡內文件的,也就是說當P2卡內有病毒時,可能在“P2CardCleaner”未將其刪除時,已經將病毒傳至工作站。筆者對此進行過實際驗證,對于幾百個非法文件,P2CardCleaner的刪除是需要一些時間的,在刪除過程中,蠕蟲和木馬很輕易地就感染了P2卡上載工作站。“P2CardCleaner”軟件可以限制非法類型數據的寫入,但在判斷文件的合法性時,只是簡單的分析文件后綴名和文件的命名格式,對于將病毒文件的后綴被人為改為合法后綴名的情況,“P2CardCleaner”是不能正確判斷的。
因此,目前的解決方法是不能滿足制播網安全要求的,要徹底解決問題,需要另辟蹊徑。經過充分調研,筆者認為在Windows操作系統設備驅動層面解決問題是可行的,即在操作系統在對設備進行識別時,完成對非法文件的屏蔽。
新介質自身應具有一定的保護機制,防止用戶破壞介質內的系統文件夾內的數據。如果人為或其他原因將這些系統文件刪除或更改,將會導致不能正確將媒體文件和元數據文件進行讀寫,因此需要將系統文件進行保護,不能出現非法刪除或更改。
媒體數據安全是安全防護的重點,可以從以下幾個方面入手。
2.2.1 屏蔽手段
存儲介質應自身或通過輔助軟件提供一定的屏蔽手段,能夠在驅動層面屏蔽掉除必要的拍攝、上下載目錄外的所有目錄(包括根目錄下的所有數據),防止用戶違規操作。對非編工作站所連接的存儲介質,做到對非指定的目錄、文件不予識別,對指定目錄下的非視音頻文件不予識別。
2.2.2 查毒手段
當新介質接入上載(非編)工作站時,上載工作站在確認識別到新介質之后,自動調用該工作站上的殺毒軟件(如SYMANTEC SEP11),對新介質進行全盤掃描殺毒。
2.2.3 識別手段
識別新介質專有ID號。在上載(非編)工作站,首先識別接入工作站上的新介質專有ID,判斷是否屬于合法介質。合法介質指由電視臺配發的介質,其ID號應被系統自動識別,以避免外部不可控的介質接入制播網。對于非法介質應報警提示,并記錄日志。
識別新介質內的文件合法性。在識別到接入工作站的合法介質后,能夠限制特定文件類型的讀寫。對于文件類型的識別,不能只是簡單的檢測文件后綴名和文件的命名格式,要通過文件頭分析等深層次的檢測,真正實現對文件類型的判斷。
2.2.4 日志記錄
對任何與之連接的存儲介質進行任何操作,系統均要生成相應的日志,并記錄存儲介質ID號、文件合法性等。
2.2.5 集中管理功能
應提供統一管理的功能。需要管理的內容主要包括文件類型讀寫的限定、新介質目錄訪問權限的制定、密碼修改、策略的下發、日志記錄、用卡統計、客戶端狀態的監控等。對所有客戶端的報警,日志信息均有及時提示。支持對新介質ID庫、合法文件類型、合法寫入設備類型的定義和更新。
通過分析可以得知,高清新介質安防系統的核心是防止惡意代碼通過新介質傳入制播網。惡意代碼可以分為病毒、特洛伊木馬、蠕蟲、陷門、間諜軟件、竊聽軟件等,這些惡意代碼可以通過網絡、文件、移動存儲介質傳播,高清新介質安防系統要完成的任務是阻斷通過移動介質傳播惡意代碼的途徑。目前,一些防病毒軟件具備封閉USB、1394、光驅等功能,也有一些專門用于封閉計算機外設端口的軟件,但都不能全面達到新介質安全防護要求。
筆者從Windows設備驅動層面解決如何顯示或者隱藏文件,從而起到文件訪問控制的作用。
與文件識別相關的Windows Native API內核模塊共有3個,分別為 NtQuery Directory File,ZwCreate File,ZwOpen File,其中前綴Nt表明是Native API函數。通過HOOK這3個函數,讓其返回值按照實際需求屏蔽掉不需要看到的文件夾和文件類型。
3.1.1 NtQuery Directory File
此Native API主要控制文件列表的查詢,從Windows用戶層的所有關于文件的查詢均要通過此函數。故利用HookZw Query Directory File函數修改 NtQuery Directory File函數的返回列表可以控制用戶層的查詢結果,實現基本的文件隱藏。
3.1.2 ZwCreate File
試驗選取液固比601,浸取時間120 min,測定浸取溫度對Ba2+、OH-濃度以及水溶性鋇存在形式的影響,試驗結果如圖4、圖5。
ZwCreateFile是負責打開、創建和執行Windows系統中文件、設備以及管道等絕大部分組件的函數,Hook(HookZwCreateFile)此函數之后,要根據打開的對象類型以及文件名稱進行過濾,確保非信任文件不會被打開。
3.1.3 ZwOpenFile
同ZwCreate File一樣,ZwOpen File也會管理部分文件的打開和執行,為了防止非信任文件被打開,會Hook此函數(HookZw Open File),根據打開的對象類型以及文件名稱進行過濾,確保非信任文件不會被打開。
NtQuery Directory File,NtOpen File以及 NtCreate File的調用者可以屬于不同的進程,這些函數的輸入參數由其自己的調用者傳遞,本模塊在捕獲函數調用后根據情況處理不同的參數。
與輸入的情況相似,在處理完各個進程的查詢和打開請求之后,鉤子函數(HookZw Query Directory File,HookZw Create File,HookZw Open File)中模塊輸出按照屏蔽名單過濾之后的結構,并將其返回原調用者。
3.1.4 黑白名單定義
設計白名單的定義為“對于某一個確定的驅動器,如果白名單存在,則僅顯示白名單中的內容,白名單以外的所有文件不顯示,為隱藏狀態”,即可以稱白名單為“信任”名單。同時,黑名單的定義為“針對某一個驅動器,如果白名單不存在,黑名單無效;如果白名單存在,白名單優先,黑名單僅針對白名單文件夾及其子文件(夾)”。
以上的設計規則即滿足“信任優先”策略,黑名單的存在是對信任的補充,即信任文件夾內部有可能存在錯誤或者非法文件,但是也能被數據安全防控系統排除。

圖3 新介質安防系統工作流程圖
3.2.1 服務器端
可以統一配置客戶端所需信息,利用數據庫存儲客戶端回傳的監測信息,并實時監控客戶端運行狀態。服務器端的配置采用B/S架構,管理員可以通過瀏覽器訪問Web頁來配置、監控整個系統。
管理員可通過登陸服務器端,配置策略文件,查看客戶端工作狀態,監視P2卡插入信息。客戶端在啟動時,主動連接服務器,下載最新的策略文件,包括信任文件模板,P2驅動器列表,信任P2卡ID列表;當連接不到服務器時,使用舊策略文件工作。
服務器端具有數據庫、Web訪問、策略配置、客戶端管理的功能。
3.2.2 客戶端
客戶端安裝后可隨工作站的操作系統的啟動而自動啟動,實現對P2卡的控制訪問。當P2卡插入時,首先根據其ID查詢是否為授權ID,授權的P2卡將按授權策略顯示可信內容,非授權P2卡將隱藏全部內容。
服務端與客戶端使用特定通信機制進行數據傳遞,實現模板分發,客戶端狀態監測,P2卡監測信息記錄幾個功能。
服務器端通過接收客戶端定時發送的心跳,記錄客戶端的狀態。服務器端可以MAC地址作為標志,顯示所有客戶端的連接狀態。
P2卡監測信息包含了P2卡所在驅動器號、P2卡ID號、ID授權狀態、所在主機信息(MAC、主機名)以及上傳時間。
客戶端服務隨系統啟動后,會啟動移動設備監視線程,并檢測已經掛載的驅動器設備;如果為本地硬盤,則將該磁盤直接劃入信任磁盤,不實施信任文件策略,用戶可以訪問位于該盤的任意文件。
對于監測到的已掛載非本地硬盤及新添加的移動磁盤,都會搜集基本的設備信息,如設備類型、設備ID(P2卡)和分配的驅動器號。將搜集到的基本信息與配置模板中的可信設備信息進行比較,比較包括是否為可信設備類型,驅動器號是否為在可信的范圍內,設備ID是否與可信ID值匹配。
無法通過認證的設備,將被定義為非信任設備,用戶將收到系統托盤發出的提示信息,用戶同時無法訪問該設備上的任何文件。
通過認證的設備,將被定位為可信設備,系統托盤也會發出相應的提示,用戶可訪問在信任列表內的文件及文件夾,殺毒軟件也會自動掃描可顯示的文件。
北京電視臺高清新聞網采用了P2卡作為存儲介質,新介質安防系統在高清新聞網得到了實際應用。北京電視臺高清新聞網為每臺高清非編工作站配備了一個PCI接口的P2驅動器,每個P2驅動器上有6個PCI插槽,可以支持同時插入6塊P2卡。
北京電視臺還制定了嚴格的P2卡使用管理規范,技術與管理密切結合,在新聞網正式運行期間,沒有出現因使用P2卡導致的網絡安全問題。與通過視音頻信號重新編碼上載相比,通過P2驅動器將文件高清素材直接拷貝到制作網內,大大降低了素材上載時間,對于像新聞網注重時效性的制作方式,不僅提高了網絡安全性,更有效降低了新聞制作周期。