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