• 沒有找到結果。

計畫編號 NSC 97-2221-E-004-001-MY3

計畫名稱 程式之模組性與擴充性:驗證方法與工具-子計畫五:剖面導向函數語言之模組化狀 態處理與型態擴充研究(第 3 年)

出國人員

姓名 陳 恭 服務機構

及職稱 國立政治大學資訊科學系教授 會議時間

100 年 10 月 17 日 至

100 年 10 月 18 日

會議地點

Shanghai, PRC

會議名稱

(中文)

(英文) 2011 Asian/Pacific Workshop on Aspect-Oriented Software Design

發表論文 題目

(中文)

(英文) An Aspect-Based Taint Tracker for Finding Security Vulnerabilities in Web Applications

一、參加會議經過

此 Workshop 是由本人與數位亞洲地區的學者於 2005 年 3 月發起的學術交流活動,第一次在該年 12 月於臺北圓山飯店與 Asia-Pacific Software Engineering 會議(APSEC’05)一起舉行。今年是第七次舉 辦,由上海交通大學主辦,有 30 位左右參與者,分別來自中國大陸、美國、日本、台灣與瑞士。

本人在此會議中分享的是「An Aspect-Based Taint Tracker for Finding Security Vulnerabilities in Web Applications」。我指導學生應用AspectJ對 Java網頁應用程式的安全漏洞進行動態分析。為了在程式執 行期間得到可利用的分析資訊,我們運用了AspectJ的插碼技術。我們的工具會先將負責收集資訊的模 組插入應用程式的源碼,並以單元測試的方式執行程式,於程式執行的過程中將分析資訊傳遞給分析 模組,利用Java 語言的特性進行汙染資料(user input)的追蹤,以發現程式中的安全弱點。由於Java 語言字串的參考特色,我們的工具可以準確地追蹤受污染的字串的流向,順利地找出能造成安全漏洞 的弱點路徑。日本東京大學的Masuhara教授在會議中,就我們的工具提出了一些具體的改善建議,也 是此行的一個收獲。

二、與會心得

本次會議有兩個場次讓我印象深刻,簡要描述如下。

來自瑞士 Lugano 大學的 Walter Binder 教授發表「High-level Abstractions for Instrumentation-based Dynamic Program Analysis」。他的演講內容非常精采,首先他分享了他們研究團隊過去以 AspectJ 語

1

2

究方向與方法。基本上。他們將 AspectJ 的插碼功能應用到極致,發展了一些動態分析的工具,也充 分掌握到 AspectJ 在這方面的限制,所以進而要以領域專屬語言(Domain-Specific Language)的方式來 加購他們下一代的動態分析工具。

聽了之後心理有許多感慨。首先,我過去也跟指導的碩士生進行過類似的研究,我們以 AspectJ 的插碼功能發展了偵測 Java 程式記憶體漏失與安全弱點的動態分析工具,也充分了解到 AspectJ 在這 方面的優勢與弱點。但是我們並沒有像 Lugano 大學這個團隊一樣堅持,持續挖掘下去,所以所獲致 的成果也沒有他們的豐富。檢討原因,一個是我們的人力資源比較欠缺,只有三位碩士生,不容易做 出比較深的結果。另一個就是持續力也不夠,我作為實驗室的主持人應該要設法將這些成果傳承下 去,用接力賽的方式來擴大我們的研究成果。但是通常學生兩年畢業後,就沒有繼續做,自然也不容 易獲致有深度的結果。

其次,領域專屬語言也是我實驗室的研究主題之一,但這幾年來一直無法吸引到夠多的學生來參 與。聽到 Lugano 大學這個團隊要發展可用於動態分析的領域專屬語言,心想這樣我們之間的差距將 會更大了。長久以來,程式語言的研究在台灣一直都只限於少數幾位同儕與他們所指導的學生,不僅 不易擴展,要維持都有困難。從 2007 年起,我們一起推動,以暑期學分班的方式推展這方面的教學,

但幾年下來,成果還是不怎麼彰顯。所以對於這方面的研究常常無力施展開來,如今又多添加一例。

另一個我感到興趣的是來自美國北卡州立大學的謝濤教授所發表的「Separation of Concerns for Developer Testing」。謝教授是軟體測試方面的專家,去年取的終身職後,目前在北京大學擔任客座教 授。他在此演講中,利用淺顯易懂的例子,說明單元測試工具中的 Mock objects 的操作,其實可以用 關注分離(separation of concenrs)的角度來檢視,進而帶入以 aspects 來實作的能性。這個想法我幾 年前曾在一篇文章中看到,但它只是簡略的提到,並未加以闡述,我也並未深究。這次聽到謝教授以 簡短的例子,清楚地勾勒出來,讓人很容易就理解,印象非常深刻。

三、考察參觀活動(無是項活動者略) 四、建議

此 Workshop 聚集了東亞區在剖面技術方面的主要學者進行交流,不僅可以交換研究心得,也可 以討論教學與推廣經驗,考慮邀請國內相關領域的學者,爭取近期於台灣舉辦的機會。

五、攜回資料名稱及內容 六、其他

An Aspect-Based Taint Tracker for Finding Security Vulnerabilities in Java Web