網路安全的攻防戰就相當於另一本網路的發展史,由早期找尋網路服務埠的攻擊手法開始,到後來使用偽造IP(IP Spoofing)入侵,或是透過封包洪水(Packet flooding)癱瘓主機等方式,我們都可以利用防火牆、狀態偵測防火牆(Stateful Packet Inspection Firewall)等方式防禦。但是隨著攻擊方式的整合、攻擊目標的改變,我們需要的是更深層的檢查、更細微的過濾,IPS雖然可以達到部分功效,但卻難以根據應用程式的特性過濾所有封包,也因此應用層防火牆則應運而生。
應用層攻擊包括伺服器、應用程式與資料庫 | 應用層的漏洞並不單純只是應用伺服器本身的缺陷,編寫應用程式時的人為疏失也時有所聞。過往應用層攻擊並不普遍,最大的原因是因為各項應用服務所使用的服務埠並不相同,雖然偶有零星的漏洞發生,但大多都存在於伺服器本身,而較少攻擊應用程式。但時至今日,透過瀏覽器啟動應用服務已經成為最便利也最方便的方式,無論企業安全政策定義多嚴謹,對內或對外的HTTP服務(Port 80)是一定會開啟的,我們就以網站服務這項應用為例來說明。 |
使用應用層防火牆全程監控封包連線 | TCP/IP網路本身並沒有健全的安全防禦措施,因為它是基於「所有人都是可信賴」的原則所建立,因此在建構防禦體系時,我們大多是以允許所有流量通過為出發點,這點由防火牆規則中最後一條規則為拒絕所有連線,就可以一窺端倪。爾後雖然有許多人認為應該只讓通過認證的人員才可連線,但這些都只是控制第四層(傳輸層)之下的連線而已,並沒有辦法管制第七層應用層的攻擊,因此建立新的防禦體系變的相當重要。 |
防禦政策的建立要點:資料、伺服器、應用程式 | 應用層防火牆只是一個防禦環節,最重要的還是相對應的防禦政策。防火牆的防禦政策就是盡量關閉不必要的服務埠,而IDS的防禦政策則是盡可能的快速更新,提供更多更準確的特徵,並即時拒絕有害的連線,這些防禦政策都是全面性的規範。但到了應用層防火牆則不同,根據其所需保護的應用程式不同,所需要定義的政策都不相同。以目前應用程式網頁化的趨勢而言,小至網頁郵件、大至整個企業的ERP系統,都可以透過瀏覽器使用,我們可以想見網頁伺服器攻擊的比例將會越來越高,而防護難度也相對提升。 |
應用層防火牆的過濾機制:特徵碼比對、協定異常與行為異常 | IPS與應用層防火牆的界線其實已經越來越模糊,因為IPS設備單靠特徵碼不足以完全過濾各項入侵攻擊,因此許多廠商都加入協定異常甚至是行為異常等辨認方式,以加強安全防護機制。 特徵碼比對 特徵碼是指引發攻擊的封包,其中所包含可供辨識的特定字串。特徵碼比對是最基本的檢測方式,這種方式是從病毒過濾設備衍生而成。這項技術的工作方式是檢測所有通過的封包內容,當解析結果合乎目前資料庫中的某一筆特徵碼,就會依據政策中所設定的方式做出回應,如丟棄封包、關閉連線或導向至其他伺服器。另外也可以採用較複雜的計算公式產生特徵碼,這樣可以進一步呈現封包狀態的變化。 |
建置位置的差異:主機端vs.閘道器端 | 應用層防火牆與其他網路安全設備相同,也可分作主機端與閘道器端兩種建置方式。主機端的應用層防火牆都是採軟體方式直接安裝在伺服器中,而閘道器端則是獨立的硬體設備,放置在封包流經的路徑上。根據使用的特性與方式不同,企業應挑選最適合的建置方式。 主機端 主機端的應用層防火牆必須依據所依附的應用服務為主,例如由Thinking Stone公司開發的modsecurity就是安裝於Apache伺服器上的應用層防火牆,eEye也有可偵測並阻擋IIS伺服器的過濾程式。 |
效能 vs. 安全 | 不可否認的,既然要提供服務,效能就是相當重要的一環,誰都不想在讀取網頁時,還需要花上10秒鐘驗證身分並檢查流通的封包。撇開頻寬與使用者數量的關係不談,網頁上有許多重要資訊都會藉由SSL加密,過去的作法是直接讓加密的封包通過,但以應用層防火牆的角度來說,這樣就無法阻擋可能的入侵發生,因此必須要先解開SSL封包,待確認安全無虞後再放行,如果設備的效能不足,光是這一部份就會產生嚴重的效能瓶頸,雖然達到我們所要求的安全,效能卻不被接受。 |
網路防禦各項設備的定義與用途 | 網路防禦發展到現在,已經由早期專注在網路層與傳輸層的連線防禦,演進至第七層的應用層過濾,有各式各樣的設備可用來阻擋不同攻擊,而所定義的名稱也有所不同,這些名詞常常會讓人搞不清楚究竟作何用途,以下就是對這些名詞的說明。 防火牆 防火牆是最基本的網路防護裝置,一般會將其放置在網路防禦體系中最前端的位置。無論有多少功能,只要冠上防火牆這個名詞,主要的功能都是提供存取控制,確保非法連線無法進入。 |
目產品與簡介 |
應用層攻擊包括伺服器、應用程式與資料庫
應用層的漏洞並不單純只是應用伺服器本身的缺陷,編寫應用程式時的人為疏失也時有所聞。過往應用層攻擊並不普遍,最大的原因是因為各項應用服務所使用的服務埠並不相同,雖然偶有零星的漏洞發生,但大多都存在於伺服器本身,而較少攻擊應用程式。
但時至今日,透過瀏覽器啟動應用服務已經成為最便利也最方便的方式,無論企業安全政策定義多嚴謹,對內或對外的HTTP服務(Port 80)是一定會開啟的,我們就以網站服務這項應用為例來說明。
一個訓練有術的駭客不但可以攻擊網站伺服器的漏洞,也會尋找網頁程式中的缺失,藉由網址轉換或是溢位攻擊的方式試圖入侵伺服器。就算前端伺服器與網頁程式沒有缺失,也有可能繞路由後方資料庫的錯誤,進而盜取內部資料。由於駭客入侵的路線是根據政策允許的通道進入,除非我們可以確切鎖定攻擊發起點,否則並沒有辦法完全杜絕這種攻擊。
而攻擊網站成功後所得的戰利品價值更是難以想像。一般而言,為了提高網頁程式的可用性,都會將網頁伺服器的權限設為Administrator或root等級,以便於在瀏覽網頁時執行相關程式或讀寫資料,因此,一旦網站伺服器被入侵,駭客就有可能取得管理權限,並以它做為跳板,入侵後端的資料庫,企業中所有重要資料就攤在陽光之下了。
傳統的防火牆僅能做到存取權限控制,除了開與關之外,其他都作不到,雖然之後發展出狀態檢測防火牆,但是也僅能檢視個別封包的標頭(Header),難以檢查封包內文(Payload),並且在連線建立之後,就不再檢測應用層的內容,雖然可以保障連線效率,但卻無法達到有效的防禦機制。使用應用層防火牆全程監控封包連線
TCP/IP網路本身並沒有健全的安全防禦措施,因為它是基於「所有人都是可信賴」的原則所建立,因此在建構防禦體系時,我們大多是以允許所有流量通過為出發點,這點由防火牆規則中最後一條規則為拒絕所有連線,就可以一窺端倪。爾後雖然有許多人認為應該只讓通過認證的人員才可連線,但這些都只是控制第四層(傳輸層)之下的連線而已,並沒有辦法管制第七層應用層的攻擊,因此建立新的防禦體系變的相當重要。
我們以海關做為例子,核發簽證就是第一道關卡,如同防火牆的工作,有了簽證,旅客才有進出的憑藉;而海關則是初步檢查是否有攜帶各類違禁品,並驗證相關證件是否有效,這就是狀態偵測防火牆加上身分認證的結果,一切合格之後,就允許旅客入境。早期這樣做的確可以達到很高的功效,不過旅客入境之後,會作什麼就沒有人知道了,偷渡客還有海防部隊可以作先期預防,但是循合法途徑進來的人,就完全沒有人可以追蹤,無論在現實或網路環境,都是同一個道理,我們看911事件就可以完全了解。
那應用層防火牆究竟可以防禦什麼?使用應用層防火牆,我們就可以持續監測連線封包,從一開始的連線建立,之後的各項要求與回應,到最後連線結束,我們都可以檢查傳輸封包中的各項指令與字串,甚至是行為本身是否合乎常態,就像是派「探子」不斷追蹤入境的旅客,他的一舉一動都在我們掌握之中,直到他離開為止。
目前也有一些廠商在IPS設備加入行為異常偵測的功能,像是CheckPoint全系列的防禦產品、Juniper的ISG系列與Cisco的ASA系列等。不過由於IPS一向是建置在網路邊界上,如果開啟相關機制,可能會造成效能大幅降低。一個良好的網路防禦架構,除了需要整合性設備之外,還應該在需要加強防護的網段前,建置專屬的設備。防禦政策的建立要點:資料、伺服器、應用程式
應用層防火牆只是一個防禦環節,最重要的還是相對應的防禦政策。防火牆的防禦政策就是盡量關閉不必要的服務埠,而IDS的防禦政策則是盡可能的快速更新,提供更多更準確的特徵,並即時拒絕有害的連線,這些防禦政策都是全面性的規範。但到了應用層防火牆則不同,根據其所需保護的應用程式不同,所需要定義的政策都不相同。
以目前應用程式網頁化的趨勢而言,小至網頁郵件、大至整個企業的ERP系統,都可以透過瀏覽器使用,我們可以想見網頁伺服器攻擊的比例將會越來越高,而防護難度也相對提升。
舉例來說,我們架設了一臺Red Hat Linux主機,並安裝Apache網頁伺服器,使用PHP網頁語言架設討論區,利用MySQL資料庫存放所有資訊,供瀏覽者使用。防火牆僅能保障伺服器不會接收到除HTTP服務之外的要求;IPS設備,我們雖然可以進一步過濾攻擊Apache伺服器與MySQL資料庫的先天漏洞,卻無法杜絕可能發生在PHP網頁中的缺失,只要其中任何一項漏洞被突破,就會造成其他防禦架構的崩潰。
因此,在設計應用層防火牆的政策時,首要項目就是專注於提供服務的軟體上。
以上述的例子來說,在不導入應用層防火牆的狀態下,我們就必須每天檢視資安回報與系統記錄,隨時更新伺服器、資料庫甚至是程式碼。使用應用層防火牆的話,只需要將內部網路與網頁伺服器分成兩個網段,讓外部流量僅能藉由HTTP服務埠進入,並在網頁伺服器之前建置應用層防火牆,過濾所有與後端服務有關的惡意程式碼,限制可讀取的關鍵字,就能將危害降至最低。
不論是作業系統、應用伺服器或資料庫的漏洞,都有許多專家研究並提供更新,雖然駭客們也會知道弱點,但總是比較容易更新並維護。不過,最容易發生漏洞的還是在自行編寫或修改的應用程式上,除了要求程式編寫人員需要不斷檢視並除錯之外,也可以利用一些程式碼檢查工具,盡量找出語法和語意上有錯誤的地方,才能徹底降低風險。應用層防火牆的過濾機制:特徵碼比對、協定異常與行為異常
IPS與應用層防火牆的界線其實已經越來越模糊,因為IPS設備單靠特徵碼不足以完全過濾各項入侵攻擊,因此許多廠商都加入協定異常甚至是行為異常等辨認方式,以加強安全防護機制。
特徵碼比對
特徵碼是指引發攻擊的封包,其中所包含可供辨識的特定字串。特徵碼比對是最基本的檢測方式,這種方式是從病毒過濾設備衍生而成。這項技術的工作方式是檢測所有通過的封包內容,當解析結果合乎目前資料庫中的某一筆特徵碼,就會依據政策中所設定的方式做出回應,如丟棄封包、關閉連線或導向至其他伺服器。另外也可以採用較複雜的計算公式產生特徵碼,這樣可以進一步呈現封包狀態的變化。
相較於其他方式,特徵比對較為快速,但是比對效果卻越來越受到限制,這是因為在設定上,設備只會阻擋或丟棄完全合乎特徵的封包,倘若特徵碼未即時更新,這些攻擊封包一樣會進入內部網路。
以目前攻擊行為越來越趨向零時差攻擊(Zero Day Attack),特徵比對雖然可以阻止已知攻擊的進入,卻難以防範未知或尚未分析出特徵碼的攻擊行為。
協定異常
協定異常的機制是規範出HTTP、FTP、RPC、SMTP或DNS等通訊協定的正常狀態,如果發現通過的封包不符合正常狀態,就會做出反應。
這項作法可以解決特徵碼比對的缺點,但是對設備的硬體要求較高,效能也較差,並且難以阻擋試誤法(trial-and-error)攻擊。
行為異常
行為異常與通訊協定或應用程式的漏洞較為無關,這項防禦機制是以人的行為為出發點,藉由預先設定的閾值(Threshold),或是統計分析之後的結果,當行為超過閾值時,設備就會做出反應。
一般而言,我們常會遭遇到登入錯誤3次,就會要求輸入驗證碼或重新變更密碼,就是行為異常偵測的結果。簡單的閾值如登入錯誤或連線錯誤次數,是可以由管理人員自行定義,但是更進一步的資訊,如人員上下班或使用記錄等,就有賴系統資訊或過往的記錄才有辦法分析而成。
目前部分IPS都納入這3種檢測技術,甚至提供交叉比對分析,藉由層層把關,以確保應用程式不被入侵。建置位置的差異:主機端vs.閘道器端
應用層防火牆與其他網路安全設備相同,也可分作主機端與閘道器端兩種建置方式。主機端的應用層防火牆都是採軟體方式直接安裝在伺服器中,而閘道器端則是獨立的硬體設備,放置在封包流經的路徑上。根據使用的特性與方式不同,企業應挑選最適合的建置方式。
主機端
主機端的應用層防火牆必須依據所依附的應用服務為主,例如由Thinking Stone公司開發的modsecurity就是安裝於Apache伺服器上的應用層防火牆,eEye也有可偵測並阻擋IIS伺服器的過濾程式。
此種應用層防火牆因為僅需防護單一系統,因此功能較為單純,在相同硬體架構下,處理速度較快,也比較容易維護,安裝與設定也較簡單,適合單一主機環境中使用。
每一臺主機都需安裝相對應的應用層防火牆,倘若需要維護多臺主機,會造成管理與維護上的麻煩,雖然目前大多都有提供自動更新的機制,但是光是部署就會成為相當大的問題。
此外,若伺服器負載過大,連帶也會讓主機端應用層防火牆效能降低,在需要龐大運算能量的主機上易造成困擾。
閘道器端
閘道器端的應用層防火牆包含多種防護機制,可防護各種平臺與應用服務。採用專用硬體,不會因為伺服器負載過大而降低效能。
只需要部署在關鍵節點上,就可同時防護後端伺服器區。並且可使用各項硬體方式加速效能,搭配自動更新機制,可以降低建置難度並提升傳輸效能。管理時也可藉由集中管理的方式,降低多臺設定時的複雜性。
閘道器端往往就是網路傳輸瓶頸,設備必須時常隨著流量提升而更換,或是在前端放置伺服器負載平衡設備,以分散流量。效能 vs. 安全
不可否認的,既然要提供服務,效能就是相當重要的一環,誰都不想在讀取網頁時,還需要花上10秒鐘驗證身分並檢查流通的封包。
撇開頻寬與使用者數量的關係不談,網頁上有許多重要資訊都會藉由SSL加密,過去的作法是直接讓加密的封包通過,但以應用層防火牆的角度來說,這樣就無法阻擋可能的入侵發生,因此必須要先解開SSL封包,待確認安全無虞後再放行,如果設備的效能不足,光是這一部份就會產生嚴重的效能瓶頸,雖然達到我們所要求的安全,效能卻不被接受。
目前許多廠商都會在設備上加入SSL加速晶片,並且使用效能較高的處理器,藉以提升加解密及過濾封包的速度;另一方面則是盡可能簡化過濾技術所需的運算過程,避免封包處理過久而影響效能。
應用層防火牆雖然可以有效過濾封包,但是最重要的課題還是在如何辨認攻擊上,雖然專家們都在致力於提高網路安全防護的功能與層級,但是自有程式中的漏洞問題,就不是應用層防火牆可以徹底根治的。
在撰寫應用程式時,最重要的還是編寫程式的功力,要能夠確保程式碼正確無誤。目前也有許多工具程式可協助程式設計師找出程式漏洞與錯誤,能夠更進一步保障應用服務的安全。畢竟攻擊無法避免,只有從最根本的環節開始防範,才能降低攻擊的成功率。文⊙羅健豪網路防禦各項設備的定義與用途
網路防禦發展到現在,已經由早期專注在網路層與傳輸層的連線防禦,演進至第七層的應用層過濾,有各式各樣的設備可用來阻擋不同攻擊,而所定義的名稱也有所不同,這些名詞常常會讓人搞不清楚究竟作何用途,以下就是對這些名詞的說明。
防火牆
防火牆是最基本的網路防護裝置,一般會將其放置在網路防禦體系中最前端的位置。無論有多少功能,只要冠上防火牆這個名詞,主要的功能都是提供存取控制,確保非法連線無法進入。
建置防火牆之後,網管人員需要設定哪些服務協定可以通過,防火牆的管理規則控制各服務協定的開與關,且這些規則是有方向性的,我們可以阻擋由外部流向內部的Telnet連線,但是允許內部經由23埠連線出去。
入侵偵測—IDS
IDS(Intrusion Detection System)最主要的功能就是監控並記錄所有網路連線活動及時間,可即時回報讓網管人員可以馬上處理異常狀況。IDS屬於被動式網路安全設備,因為他最初的設計僅僅是記錄而已,後來為了因應即時反應的需要,便提供與防火牆結合的功能,在IDS偵測出異常時,可馬上通知防火牆,修改相關連線規則並關閉有害連線。
IDS可分為主機型與網路型兩種,主機型是以軟體方式安裝在需要保護與記錄的伺服器上,網路型以閘道器方式安裝在網路區段之前防火牆之後,主要防護通往內部的流量。
入侵防禦—IPS
IPS(Intrusion Prevention System)與IDS具備同樣的偵測效能,不過IPS卻讓網路擁有自主調控的能力,當遭遇危險攻擊時可以自動反應,而不需要等待網管人員下達指令。IPS通常都是採硬體閘道器方式,藉以過濾所有進出重要區域的流量,因此硬體效能變成選擇產品時一項相當重要的指標。
目前來說,IDS與IPS都開始加入多重過濾技術,因為單以特徵碼並不足以過濾快速變異的病毒或蠕蟲攻擊,或是人為的試誤法攻擊,目前主要的三種技術為特徵碼比對、協定異常比對與行為異常分析,藉由交叉分析降低誤判率,並提升安全性。
但因IPS位於網路流量匯集處,如果流量過大,往往會影響效能,不是傳輸速率降低,就是過濾效果變差,因此通常都會將防火牆部署在IPS前方,讓防火牆先期阻擋不合規定的連線,以降低IPS的負擔。
內容過濾設備—Anti-X
內容過濾設備中的X可以代表病毒、垃圾郵件或間諜軟體等,也就是我們熟知的各種防毒或郵件過濾產品,這些產品是完全在應用層上運作的。
IPS雖然可以過濾掉不少應用層攻擊,但是對於已開放的應用服務(如網頁或郵件),卻不見得能夠有效抵禦,還是必須要仰賴內容過濾設備進一步處理送入的訊息。
不過,由於內容過濾設備必須將所有封包還原成訊息,硬體處理效能變的相當重要,一般而言,內容過濾設備都支援線上與離線處理兩種方式,避免因為負載過大而影響傳輸效能。產品與簡介
廠商名稱 | 產品名稱 | 簡介 |
威播科技 | NetKeeper | 能夠偵測過濾Web Mail與Web Post,防止網頁貼文形成漏洞。 |
Check Point | Web Intelligence模組 | 過濾網頁內容的模組化程式,可安裝在Check Point的各種閘道上。 |
Cisco | ASA 5500系列 | 提供30個以上智慧型監測引擎,可檢視應用程式與協定異常。 |
eEye | SecureIIS | 可以偵測並阻擋攻擊IIS伺服器的封包。 |
F5 | TrafficShield | 網頁應用程式防火牆。 |
Juniper | ISG系列 | 可過濾HTTP/SMTP/FTP/POP/IMAP/DNS等協定。 |
Microsoft | ISA Server 2004 | 提供多層次過濾,能夠檢視應用層內容。 |
Radware | DefensePro | 藉由封包內容過濾比對特徵碼。 |
Symantec | Network Security系列 | IMUNE結合多種偵測技術,可檢測各種應用服務攻擊。 |
Teros | Teros | 網頁應用層防火牆,可偵測並修正應用程式行為。 |
Thinking Stone | Modsecurity | 針對Apache伺服器的模組程式,可過濾協定與行為異常。 |
熱門新聞
2024-08-14
2024-12-22
2024-12-20
2024-12-22