研究簡介

  1. Web application 安全檢測系統

有別於傳統攻擊型態,越來越多的攻擊是以 Web 應用系統為攻擊目標。一般性的攻擊,如溢位攻擊可藉由修補程式達成防禦的目的,因一般軟體業者都有不錯的安全程式撰寫習慣,一旦被發覺有問題也能立即完成相關修補程式。因此攻擊都轉向防禦較差的 Web 應用系統。為了有效避免 Web 應用系統遭致攻擊,必須不斷藉由安全評估工具的輔助來提早發覺系統弱點。

WAVES 是我們所發展的系統安全輔助工具,能自動發覺 Web 應用系統弱點與錯誤。藉由傳統軟體測試方法論,我們據以使用到Web 應用系統之安全評估與確保,發展出自動掃瞄 Web 應用系統的主要弱點,如 SQL 殖入與跨主機 Script 弱點的缺陷。結果發表為 WWW 2003 最佳論文七篇候選之一。當時是涵蓋率最高之安全檢測系統。我們在2013年運用符號執行方法,能自動產生 Web application  的攻擊程式,包括 Cross site script  與 SQL injection,此系統稱為 CRAXweb ,相關成果已發表於 International conference on software security and reliability 2013 (SERE2013)。我們在2014年更完成一個跨網頁平台之 SQL injection 攻擊檢測系統,支援包含 PHP, Perl, Python 等語言(https://github.com/SQLab/CRAXWeb)。

  1. An on-site/on-line integrated on-line judge (支援現場與線上程式檢定之整合型系統並程式發展過程之差異性分析)

我們整合 on-site 與 on-line judge 系統,建立線上/現場程式檢定系統,至2012年有46個學校採用,舉辦過12場研究生與大學程式檢定考試,最多同時參與現場考試學生共約1263位。系統在 http://gpe.acm-icpc.tw/ ,至2015年已有11,813 位註冊用戶,209,094 次上傳題目嘗試。多年來共服務10,467位現場上機程式考試學生,每次現場上機考試3小時,因此已經累積有31,401學生現場使用小時數。

我們研究交通大學資訊工程系學生,在程式檢定過程,對於相同問題描述,自動分析所開發程式之差異,建立不同程度能力與不同階段程式的關聯性。目前正在研究改良系統,增加更多考試回應,包含偵錯與輔助學生學習之回饋訊息,減少學生學習程式過程之挫折感。(參考:林盈達、黃世昆、楊昌彪、葉正聖、與謝育平,大學程式能力檢定,美商麥格羅.希爾出版, 2013年 2月, ISBN:978-986-157-941-2,共318頁(專書);楊詠仁、陳奕任、與黃世昆(2012年10月),運用虛擬化技術快速佈署大規模程式檢定應用探討 以交通大學CPE建置開發為例,TANET2012,桃園龜山)。

  1. 分析程式 bug,自動轉化為可被操控之安全弱點 (Automatic Exploit Generation)。

此項研究起源於1992年左右,在交通大學資工系三樓機房擔任博士班助教時,當初開始有網際網路的雛型發展,卻是駭客開始肆虐初期:我們與這些駭客周旋,耗費人力資源,卻也意識到問題根源在於程式的 bug。當時我們的分析能力不足,無法進行自動攻擊生成的研究。大約2005年開始,我們的分析能力與工具掌握度有些進展。我們在2012年已經成功運用自動化機制,分析 unix media player (mplayer 有約50萬行程式碼), web browser (firefox約50萬行程式碼,與 IE)軟體之 bug,自動產生攻擊程式。