網(wǎng)安支隊安全檢查以及對網(wǎng)站安全的處理過程
網(wǎng)站安全的技術(shù)處理部分,可看文章后半段;前半段是事件的起因和一些啰嗦的話語。
6 月 28 日,收到兩江網(wǎng)安支隊工作人員的通知,根據(jù)他們技術(shù)人員進行的檢查,發(fā)現(xiàn)我的個人網(wǎng)站(www.imagecode.net)存在安全問題,要求對網(wǎng)站進行整改,然后發(fā)了我?guī)追菸臋n,要求我下載打印簽字回傳:
公安機關網(wǎng)絡安全現(xiàn)場執(zhí)法檢查記錄表

網(wǎng)絡安全責任書

經(jīng)過反復確認得知,因為我的個人網(wǎng)站和另外一家公司網(wǎng)站,使用了同一個賬號,在“公安機關互聯(lián)網(wǎng)站安全管理服務平臺”(https://www.beian.gov.cn/ 此網(wǎng)站常年遭受攻擊打開速度極慢)注冊登記備案,因此是以公司網(wǎng)站的名義來通知我整改。
原本要求我使用公司蓋章以公司的負責人名義來完成檢查流程,在反復解釋是個人網(wǎng)站與公司網(wǎng)站無關之后,才有了下面的文書:

整改通知書的被通知對象,依然是將公司名寫在前面,后面括號里帶上了我的個人網(wǎng)站名。然后又附上了一個“技術(shù)檢測報告”文檔

下面是重點,如何解決以上技術(shù)檢測發(fā)現(xiàn)的問題,其實有些問題的影響并不大,但是網(wǎng)安的技術(shù)也算是負責,無論問題大小都給排查到位。
跨站腳本攻擊
檢查發(fā)現(xiàn)應用存在跨站腳本攻擊問題,攻擊者可以插入任意HTML或JS代碼到網(wǎng)頁中元素中,可能造成用戶Cookie被盜、破壞頁面結(jié)構(gòu)、重定鏈接向到其它網(wǎng)站等問題
低版本的TLS/SSL
檢查發(fā)現(xiàn)應用采用的SSL/TLS協(xié)議中發(fā)現(xiàn)了嚴重弱點,黑客能悄悄破譯Web服務器和終端用戶瀏覽器之間傳輸?shù)募用軘?shù)據(jù),破解目標網(wǎng)站的Cookies,獲得權(quán)限訪問受限用戶的帳號,同時也存在其他的安全問題。
脆弱的jQuery庫
官方漏洞通告顯示,應用使用jQuery庫存在安全漏洞,可能會對網(wǎng)站的安全造成影響。
點擊劫持
檢查發(fā)現(xiàn)應用Http響應頭中缺少X-Frame-Options參數(shù),導致網(wǎng)站存在點擊劫持可能,攻擊者可通過創(chuàng)建一個網(wǎng)頁利用iframe包含本網(wǎng)站,然后顯示一些誘導性信息誘騙用戶點擊,但點擊背后的真實操作可能是惡意的。
Cookie未設置Httponly
檢查發(fā)現(xiàn)應用的用戶身份Cookies未設置HttpOnly,攻擊者可以結(jié)合其它漏洞獲取用戶的Cookie信息從而登錄網(wǎng)站;如果獲取到管理員的Cookie將會嚴重危害到此網(wǎng)站。
VIEWSTATE未加密
檢查發(fā)現(xiàn)該網(wǎng)站的Viewstate參數(shù)未加密,這樣可以使用相關工具直接查看Viewstate中的信息。
修復方法
其中,"跨站腳本攻擊" 未修復原因:
本站不存在用戶登錄的邏輯,無交互邏輯,并且本站全站內(nèi)容均為信息查詢類,且已在后端做了數(shù)據(jù)判斷與處理,因此跨站腳本攻擊不會造成后端數(shù)據(jù)庫的篡改。(不確定這種處理方式是否正確)
低版本的TLS/SSL
檢查 SSL Labs 網(wǎng)址:https://www.ssllabs.com/ssltest/
IIS Crypto 工具網(wǎng)址:https://www.nartac.com/Products/IISCrypto/
TLS/SSL (Schannel SSP) 中的協(xié)議:https://learn.microsoft.com/zh-cn/windows/win32/secauthn/protocols-in-tls-ssl--schannel-ssp-
IIS Crypto 是一個免費工具,使管理員能夠在 Windows Server 2008,2012,2016 和 2019 上啟用或禁用協(xié)議,密碼,哈希和密鑰交換算法。
可以使用這個工具,將過時的 SSL 2.0/3.0 禁用,TLS 1.0/1.1 禁用,只保留 TLS 1.2,如下圖所示:

特別注意:盡量使用最新版本的 IIS Crypto,因為我用了老版本后,導致服務器網(wǎng)站 IIS 無法訪問,可能是老版本要在較老的服務器系統(tǒng)上才不會出問題。
脆弱的jQuery庫
網(wǎng)安給的建議是,升級至 jQuery 3.5 以上版本。我直接替換到了?jquery-3.7.0.min.js 測試后發(fā)現(xiàn)沒有什么兼容不良的問題,不過很多老版本升級到高版本后,會出現(xiàn)各種兼容不佳的問題。
點擊劫持
在 IIS 里找到站點右邊的 HTTP 相應標頭,打開后增加:
名稱:X-Frame-Options
值:SAMEORIGIN


或者直接在 web.config 里增加以下代碼
Cookie未設置Httponly
可在 web.config 里增加以下代碼
VIEWSTATE未加密
可在 web.config 里增加以下代碼
關于 viewstate 和?machinekey 這部分的加密,尚未研究清楚,不確定按照以上方式是否修復嚴謹,可百度搜索“Machinekey設置相關”,查閱更詳細的設置方法。
最后,再次回填了一個處置結(jié)果表,此事才算完結(jié)

歡迎掃碼體驗(另一個業(yè)務)

