魏雨東 郭白涵(西南財經大學天府學院智能科技學院;西南財經大學天府學院財務會計研究所 四川 成都 60064)
前言:在線教學平臺已發展多年,MOOC的流行使得在線教學平臺的地位有了明顯的提升;又促進了其在高校日常教學工作中的使用,通過其進行輔助教學,以至于部分課程完全搬到線上來進行學習和考核。在線教學平臺在學習的時間上有明顯的優勢,學生的考核數據也非常容易得到(學習的行為日志和在線的考核信息);正是因為這種突出的作用,使得其系統安全問題變得日益嚴重。線上的表現直接影響學生的最終考核,各種主動的安全攻擊行為變得非常的普遍。本文將從4個方面探討在線教學平臺的信息安全管理問題。
本文所研究的在線教學平臺初始部署的時候采用的是系統的獨立用戶名和密碼,后經過調整,將用戶的驗證工作都通過單點登錄實現(CAS+OpenLDAP);手機端采用LDAP提供的接口進行處理。采用統一登錄后,在方便用戶的同時也帶來了相應的安全風險問題,一旦突破,意味著所有系統都會向攻擊者開放;已知的安全風險主要來自LDAP注入攻擊。OpenLDAP采用TCP/IP查詢和修改目錄服務,對于類似這樣的注入(&(attribute=value)(first_filter))(second_filter),OpenLDAP 只會執行第一個過濾器,而第二個過濾器會被忽略,這樣就導致類似的攻擊可以成功。
防御:LDAP注入的防御需要處理好用戶輸入的內容,對其進行全面地過濾;特別注意LDAP中用到的特殊字符和需要轉義處理的字符,如右邊的圓括號不進行過濾處理的話就會導致過濾器閉合而生產攻擊者需要的filter。另外,根據實際情況,也可以采用其他的安全產品來進行LDAP注入的防御。
本案例系統應用的高校主要由分布在兩地的校區構成,兩校區的學生人數相仿;在負載均衡與web服務器安全的雙重考慮下,啟用了Nginx為反向代理服務器,后邊配備4臺IIS服務器進行系統的部署。反向代理服務器的配置,至少有以下的好處:1.保護了真實的web服務器,web服務器對外不可見,外網只能看到反向代理服務器,可以保證web服務器的資源安全;2.解決了Ajax的跨域問題,從而避免了攻擊者通過上傳類似crossdomain.xml的文件,繞開瀏覽器的同源策略,從而進行網絡攻擊的問題。在使用Nginx作為反向代理服務器的同時,也需要注意其本身的安全漏洞,及時進行軟件升級,并熟悉其安全配置。
考慮到在線教學平臺中,存在大量的文件讀寫情況,案例系統特別開通了獨立的文件服務器功能。采用在CentOS系統上搭建基于Samba的文件共享體系,使Web服務器(Windows Server)可以通過共享方式寫入系統文件;在讀取時,通過部署在文件服務器上的Nginx服務來提供文件的HTTP訪問。這樣首先面臨的是用戶安全認證的問題,用戶登錄系統后,通過Web服務器獲取到相應的文件服務器路徑,這時對于文件的訪問權控制已交給文件服務器上的Nginx服務。系統運行之初,這里沒有再進行身份驗證工作;采用這種方式的初始目的是降低Web服務器的并發訪問,目前也需要考慮增加安全認證工作,已保證只有授權用戶可以訪問相應的資源。
平臺中一般的文件上傳工作使用類似SWFUpload一類的Flash組件進行,該種組件使用非常方便,界面也很友好;然而Flash自身的安全問題實在是不得不考慮的一點,目前,主流的瀏覽器默認設置下都已不支持Flash組件;應該及時升級上傳組件,采用新的HTML5的上傳組件解決問題。另外,在系統的部分功能頁面中,使用了FCKEditor編輯器;在一些版本的FCKEditor中,通過檢查文件的后綴來確實該文件上傳是否安全,此即為采用黑名單的方式限制上傳文件的類型。然而黑名單不一定能包括所有類型的危險文件;而且攻擊者可以通過修改上傳的HTTP數據包,來規避代碼對于后綴名的檢查。使用獨立的文件服務器,可以一定程度上避免由于上傳文件帶來的Web服務器安全問題,但最好確認是否需要編輯器的文件上傳功能,謹慎對待。
嚴格來說,程序邏輯漏洞屬于開發過程中的問題,對于系統在運行期間將面臨的各種風險,必須盡可能在開發階段列舉出來;對于在線教學系統而言,所有能影響學生成績的功能部分都必須是安全防范的重點。案例系統在開發之初,并沒有在這些地方有充分的考慮,后期導致了在學生考勤和學生作業兩個板塊遇到的安全問題。在教師給學生打考勤的功能處,教師可以通過下拉列表選擇相應的課程和教學班級,經檢查,程序用的是課程的名稱和班級的名稱進行的后臺檢索,更為麻煩的是,檢索條件中并沒有限制在該教師的教學班級中;所有的教學班級都可以被檢索。利用限制瀏覽器提供的調試功能,可以很方便的查出其他班級的考勤信息,進行修改。
另外一個作業問題,發生在對于過期作業的提交上邊。每個作業都設置有過期時間,到期后作業不可以提交;在這個地方的正確嚴謹的處理包括:1.提交頁面加載時根據服務器時間確定是否加載提交按鈕2.在提交到服務器時,檢查服務器時間是否已過期。初始版本中,代碼只進行了第1條的處理,同樣,通過瀏覽器的調試功能,在對比正常提交網頁后,就可以找到使提按鈕出現的辦法;后邊的上傳工作就暢通無阻了。雖然即便最好的項目管理、代碼檢查也不能完全規避這種風險。但是程序的邏輯漏洞必須被重視,在重要的地方,必須留有充足的日志記錄,由專門的維護人員對日志記錄進行定期的檢查。
基于Web的在線教學平臺正承載越來越多的教學任務,不同于較為封閉的教務系統,在線教學平臺是比較開放的,而且發展的時間不長。在開發和部署在線教學平臺的時候,必須考慮到由于涉及成績問題而帶來的主動安全攻擊。