日盛證券
中國漏洞通報平臺烏雲(WooYun)在3月3日下午3點57分公佈,日盛證券網站因為有SQL Injection(隱碼攻擊)的漏洞,導致有數億筆的資料外洩。受託回報的臺灣HITCON ZeroDay漏洞通報平臺窗口翁浩正表示,在當天下午已經立即轉告日盛證券相關漏洞資訊,態度相當正面,預料應該正在著手修復中。但目前尚未與日盛證券資訊部取得聯繫,尚未得知漏洞影響範圍及相關修復進度。(更新:在3月4日上午,日盛證券公關部來電表示,外洩的資料為第三方資訊廠商提供的權證行情資料,並未涉及任何客戶個資,已告知廠商修復漏洞中。)
SQL Injection在針對Web安全漏洞的OWASP前10大的漏洞中,在2013年排名第一名的漏洞,而SQL Injection的攻擊方式,主要是在輸入SQL語法時,夾帶一些惡意的資料庫查詢語法及特殊字元,輸入到開發者使用的程式碼中,只要這些惡意字元或語法符合SQL查詢語法的規則,而且沒有辦法事先檢查出來時,資料庫伺服器就會直接執行被修改過的惡意SQL語法,會對資料庫系統或者是儲存資料造成很大的危害,可能導致包括個人帳號、密碼等機敏資料外洩。
此外,SQL Injection也可能讓駭客知道資料庫的結構,便於進一步攻擊;可能因為資料庫伺服器遭到攻擊,系統管理員Admin帳戶遭到竄改,駭客對整個系統將如入無人之境;也可能因為駭客取得系統權限後,可以在網頁中加入一些惡意網址、植入惡意程式或者是造成XSS(跨站網站攻擊)漏洞等;駭客也可能有機會修改或控製作業系統,進一步破壞或格式化硬碟資料,甚至癱瘓整個網站系統等。
也因為SQL Injection不只發生在微軟的SQL Server資料庫伺服器上,只要是支援批次處理SQL指令的資料庫伺服器,都有可能遭到這類攻擊。
預防SQL Injection的方法
至於要如何避免遭遇到SQL Injection的攻擊呢?叡揚資訊則提出6大建議,首先,要限制存取資料庫系統者的權限,不允許除了系統管理者之外的使用者,有權力新增資料庫物件。
再者,建議採用參數化( Parameterized)查詢語法,過濾使用者需入的內容,或者使用參數化的查詢方式,讓使用者輸入的各種變數,都不會直接動態連結到SQL查詢語法,而是透過參數來傳遞這個變數的化,就可以有效避免SQL Injection的攻擊。
第三點,必須加強對使用者輸入資料的檢核與驗證,只接受所需要的參數值,拒絕包含二進位資料、Escape 跳脫字元和注釋字元等一些容易造成攻擊的特殊字元過濾與驗證;或者是強迫使用者使用參數化語句來傳遞使用者輸入的內容。
第四點,建議使用者應該盡量使用微軟SQL Server 資料庫伺服器內建的安全參數,像是使用Parameters(參數化)集合,可以讓使用者輸入的內容視為字元值而非資料庫執行語法,也會強制執行資料型別和長度檢查,避免系統執行可疑的語法造成傷害。
第五點,在多層次(N-Tier)的應用架構中,使用者所輸入的各種資料,都應該在經過驗證後,才被允許進入到可以信任的資料區域;如果,使用者輸入的資料還沒有通過資料驗證程序時,這些資料都應該在執行資料庫任何動作前被拒絕,並向上一層傳回錯誤資訊。
第六點,建議可以使用白箱的程式碼源碼檢測工具,像是HP Fortify;或是黑箱的滲透測試及弱點掃描工具來尋找應用系統所隱含的漏洞,自動化弱點掃描工具包括針對主機掃描的免費軟體Nessus,以及可掃瞄OWASP常見弱點的開源軟體w3af;滲透測試則是更深度檢測網站漏洞的方式。
不過,如何讓開發人員學會安全的程式開發,才是真正的終極解決之道。
中國漏洞通報平臺烏雲在3月3日下午通報,日盛證券網站有SQL Injection漏洞,可能導致資料庫數億筆外洩。(更新:日盛證券公關部在3月4日上午來電澄清,外洩資料是權證行情資訊,不涉及客戶個資)
※更新資訊:日盛證券澄清:外洩資料為第三方廠商提供權證行情,沒有客戶個資
熱門新聞
2024-10-05
2024-10-07
2024-10-07
2024-10-07
2024-10-07
2024-10-07
2024-10-07