標題: 辨別與隔離網頁應用程式中的敏感程式碼與資料
Identification and Isolation of Sensitive Code and Data in Web Applications
作者: 蔡宗翰
Tsai, Tsung-Han
吳育松
Wu Yu-Sung
網路工程研究所
關鍵字: 雲端運算;網路應用程式;資訊流分析;靜態分析;程式切割;cloud computing;web application;information flow;static analysis;program slicing
公開日期: 2013
摘要: 在過去幾年以來,雲端運算已被廣泛運用在各個領域。雲端運算可以輕易的隨著應用程式的規模調整所需的運算資源,毋須事先決定伺服器的規格並支付相對龐大的獨立伺服器費用,因而廣受開發者的喜愛。然而,在享受雲端便利的環境之前,有個根本的問題亟需解決,那就是雲端的環境並不一定適合執行具有高機密性資料或程式碼的應用程式。在雲端運算的環境下,同一台伺服器經常會根據使用者需求虛擬出許多獨立的環境提供給不同的使用者利用,也就是說,一個疏於管理或是沒有做好安全維護的伺服器有可能將使用者執行之應用程式的敏感資料洩漏給同伺服器執行中的其他應用程式。解決之道是將網頁應用程式分割成多個元件,並將這些元件根據伺服器可信任性佈署到雲端環境裡對應的運算節點中。 在這篇研究中,我們提出了微型化應用程式產生器(MicroApp Generator),開發者只需要在程式中標記出他認為重要的機密資料或程式片段,此工具即可依照開發者所標記的結果分析出原始碼內的其餘的敏感資料或是程式片段,並可依照伺服器受信任程度的不同,分配程式片段到適當的節點上。我們設計了應用程式中間表示模式,嘗試將網頁應用程式的資料與行為收納在我們定義的資料結構中,其中包含了通用抽象文法樹,這可以將相同行為卻不同語法的網頁語言整理出一套共同的抽象文法樹。我們也提出了一套方法,該方法可以分析標記出部份敏感資料的程式原始碼,並對程式做出對應的修改,以確保程式可以在不同的節點上執行,且所有的節點均符合使用者所指定的保密需求。我們針對我們的設計實做出了微型化應用程式產生器的雛型,並準備了一些實驗驗證雛型的可行性。實驗結果顯示,即使開發者事前並未依照微型化應用程式的設計邏輯撰寫程式碼,該雛型仍可成功的將部份網頁應用程式依照我們的需求進行分割,且執行結果與未曾分割的原始應用程式一致;反之,對於無法順利分割的網頁應用程式,該雛型可提供未能切割的變數,以便開發者進行修改。
Cloud computing has seen an increasing adoption over the past few years. It helps scale up the application and avoids the need for upfront payment for dedicated servers, of which the computing power may not be fully utilized at the beginning. However, there is one fundamental issue in adopting clouding computing, which is that a datacenter may not necessarily be trusted. A datacenter without proper security protection mechanisms may endanger the security of private or sensitive information embodied in the applications. A solution to this issue is to divide the application into many components, which are to be distributed across multiple computing nodes depending on the security requirement. In this work, we present the MicroApp Generator, which identifies the sensitive code and data in the web application, divides the web application into components according to the sensitivity, and applies the MicroApp framework to the components. MicroApp Generator employs novel designs including an intermediate representation for web applications and the generalized AST (abstract syntax tree). The generalized AST summarizes the behavior of an native AST and allows the identification process to be independent of language types. We implemented the MicroApp Generator prototype, which can successfully identify and isolate sensitive code and data from many web applications.
URI: http://140.113.39.130/cdrfb3/record/nctu/#GT070056519
http://hdl.handle.net/11536/73799
Appears in Collections:Thesis