天天看點

論資訊系統的安全性與保密性設計摘要正文總結

  聲明:本文為本人在軟考系統架構設計師備考期間的練手寫作,不保證内容的原創性與正确性,僅供參考,請勿照抄和用于學術論文等正規場合,因不當使用産生後果一律自負。

摘要

  2019年3月,我機關聯合某高校研發了《程式線上評測比賽考試系統》。系統以程式代碼線上送出自動評測功能為核心,分為題庫子產品、評測機子產品、實驗作業子產品、考試子產品、比賽子產品、抄襲判定子產品、使用者管理子產品等,支援對接教務平台。在項目中我擔任系統架構師,負責架構設計工作。

  本文從網絡硬體層、資料層、應用層三個方面,論述了針對該系統的安全性與保密性問題,以及所采用的技術手段和解決方案。網絡硬體層設定硬體防火牆,解決病毒木馬與外部攻擊的隐患;資料層設定資料加密與容災備份機制,解決資料洩露丢失的隐患;應用層統一采用RBAC授權機制等方案,解決越權操作的隐患,提高了整個系統的抗風險和安全保密能力。最終系統順利上線,獲得了使用者的一緻好評。

正文

  筆者在一個專為高校建設計算機專業智能教學一體化平台的機關任職,過往成果有《計算機組成原理仿真實驗系統》等。2019年3月,我機關聯合某大學研發了《程式線上評測比賽考試系統》項目(以下簡稱為“OJ系統”),以取代原有傳統的程式設計上機考試平台。

  系統以程式代碼的線上送出自動評測功能為核心,主要分為題庫子產品、評測機子產品、實驗作業子產品、考試子產品、比賽子產品、抄襲判定子產品、使用者管理子產品等。題庫子產品主要負責試題和測試用例的管理,使用者根據試題要求編寫程式代碼送出到系統,系統将測試用例與程式代碼發送給評測機子產品,由評測機自動編譯、執行、判分,并将結果發送給其他相關子產品進行統計;實驗作業子產品用于線上布置作業,從題庫中選取試題,設定截止日期等要求;考試子產品用于學生線上考試,按教師預先設定的參數自動從題庫随機抽題生成試卷,以及向教務平台上傳考試成績;比賽子產品主要用于ACM競賽的教育訓練;抄襲判定子產品用于鑒定代碼與他人代碼雷同率;使用者管理子產品負責使用者資訊的管理。在這個項目中,我擔任了系統架構師的職務,主要負責系統的架構設計相關工作。

  OJ系統中存儲着學生成績、學生選課資料、試題資料等大量重要資訊,確定系統的安全性與保密性顯得尤為重要。系統在安全性與保密性方面主要面臨以下問題:網絡安全隐患,包括病毒木馬、外部攻擊等,缺乏主動的網絡安全防禦機制。資料庫安全隐患,例如資料庫通路控制不嚴、敏感資料以明文存儲、未制定容災備份計劃等,容易造成系統資料洩露、丢失、篡改。應用安全隐患,包括權限管理混亂、權限設定不夠合理等,容易出現人為操作導緻資料錯誤或丢失,威脅到系統的資訊安全。

  如果敏感資料不經加密傳輸,入侵者可通過網絡嗅探工具獲得使用者的賬号和密碼。在業務邏輯中對使用者送出資料的合法性沒有判斷或過濾不嚴,攻擊者可在事先定義好的查詢語句的結尾上注入額外的SQL語句,在管理者不知情的情況下實作非法操作,欺騙伺服器執行非授權的任意查詢。

  是以,我們在網絡硬體層、資料層、應用層三個方面,對提高系統的安全性與保密性,做了充分的設計。通過在網絡硬體層設定硬體防火牆,資料層設定資料加密與容災備份機制,應用層統一采用RBAC授權機制等方案,提高了整個系統的抗風險和安全保密能力。

1. 網絡硬體層安全方案

  網絡和硬體是整個系統運作的基礎,也是很多外部攻擊的主要途徑,是以OJ系統在這一方面需要進行嚴密合理的規劃。為解決病毒木馬與外部攻擊的隐患,我們對網絡拓撲結構劃分為外部網絡、内部網絡與DMZ三個部分。在外部網絡和内部網絡之間設定了硬體防火牆,主要是防止外部的惡意攻擊。在防火牆之後,為加強對病毒、木馬入侵的防範效果,又設定了硬體的防毒牆,實時保證能夠攔截與清除符合最新特征庫的病毒、木馬。為防止校外通路者通過DNS伺服器直接通路到應用伺服器的目标位址,在校内網絡中又增加了反向代理伺服器,對外隻暴露代理伺服器的虛拟IP,更好地減小了應用伺服器被攻擊的可能性。應用伺服器與資料庫伺服器做了實體隔離,内部人員也無法通過IP直接通路,隻能通過堡壘機由伺服器管理者進行操作,阻斷了外界通過内部用戶端代理的通路對伺服器造成攻擊。對于一些核心的FTP伺服器、DNS伺服器、Web伺服器都規劃到DMZ中。

2. 資料層安全方案

  資料是整個平台業務運轉的核心,其中涉及大量學生成績、試題資料等重要資訊,安全不容忽視。為解決資料洩露、資料丢失的隐患,系統主要從資料存儲、資料通路和資料容災幾方面進行了規劃。由于系統主要存放的考試題目與學生成績資料對保密性要求高,為了防止洩露,我們在存儲時進行了加密處理。雖然在處理過程中會有性能損失,但也是以提高了資料的安全性與保密性。系統的資料庫軟體采用Oracle作為背景存儲,其公司的商業口碑極佳,對資料存儲的安全提供強大保證。為了防止資料資訊的洩露,加強了通路權限的限制,在資料庫的通路權限上,都根據不同的角色進行了詳細劃分,包括對資料庫、表、索引、記錄的增、删、查、改進行了限制,嚴格禁止非法使用者對資料庫惡意破壞。同時,在資料庫本身,也制定了基于全量、增量、差量的按周備份計劃,保證每時每刻的資料都可以及時恢複。在實體存儲上也做了本地多機房的容災備份,充分保證了資料抗突發風險的安全。

3. 應用層安全方案

  由于OJ系統采用MVVM前後端分離架構,通過RESTful風格的WebAPI通訊,是以在使用者認證、接口傳輸等方面做了充分設計。使用者認證方面,因系統使用者涉及多種類型,如學生、授課教師、課程組、參賽選手、舉辦方、系統管理者等,統一采用RBAC授權機制,既可增強系統安全性,滿足業務需求,也可減輕權限資訊維護的負擔。在登入界面上,不僅需要提供使用者名+密碼,同時設定了驗證碼和動态密碼,通過手機或郵箱接收,杜絕非法破解密碼登入,保證整個系統認證環節安全。密碼送出和存儲過程中,一律通過MD5+SHA256+随機SALT哈希加密,即使被拖庫也不會洩露密碼。接口設計是整個系統通信的安全保障,為防止外部人員惡意調用與竊取資訊,使用了https傳輸協定和令牌機制,保障每次通訊傳輸安全。即在登入後,通過加密傳輸的使用者資訊和時間戳擷取到token令牌,在後續每次通訊過程中,伺服器端都會校驗token,充分保障接口調用安全。在對資料庫進行增删查改調用時,統一使用帶預處理功能的ORM中間件實作操作,可過濾SQL注入攻擊,防止對資料庫執行非授權的任意查詢。

總結

  系統自2019年10月正式上線後,已運作一年有餘,在學校的日常教學考試和競賽教育訓練中投入使用,截至目前已有3000以上的學生使用者、評測了70000條以上的程式代碼,獲得了機關同僚上司和學校教師們的一緻好評。在任何情況下使用系統,基本沒有資訊洩露的情況發生。但在使用過程中一些使用者反映,手機端操作編輯題目與儲存成績有時會需要等待,我們分析發現該問題是因為編輯題目資訊與儲存成績涉及資料量較大,且手機硬體運作效率比PC低,導緻前端加密傳輸更加耗時,通過優化資料結構、減少資料傳輸量、選擇效率更高的加密算法等方法改善了這個問題。

  實踐證明,OJ系統項目能夠順利上線,并且穩定運作,保障了資訊安全,與系統在安全性和保密性方面的設計密不可分。系統安全是一個永久的話題,我們對系統安全性的完善是一個持續、疊代的過程,在未來還會不斷地完善本系統安全方面的設計,改善缺陷與不足,使整個OJ系統能夠更加好用,更有效地服務于高校師生。

繼續閱讀