建立安全的Web站點

2/9/2004來源:安全在線人氣:23126

  【摘要】Internet及Web已成為許多人日常生活、工作及交流的一種主要工具。由于Internet是根據一定的共識進行自制、在全球范圍內實現的龐大的系統,它并不在法律和政治范圍內運行。作為Web管理員,感觸最深的是:確保Web安全不是件容易的事,并非一篇論文能說得清楚。由于Internet和Web技術的開放性和多層次性,決定了Internet和Web的安全需要格外的關注。本文就是作者根據日常工作環境,討論如何建立安全的Web站點。

  在討論Web站點安全之前,了解Web的技術原理,對于Web安全工作者而言應該是有益處的。
  
  一、Web技術簡介

  World Wide Web稱為萬維網,簡稱Web。它的基本結構是采用開放式的客戶/服務器結構(Client/Server),分成服務器端、客戶接收機及通訊協議三個部分。

  1、服務器(Web服務器)

  服務器結構中規定了服務器的傳輸設定、信息傳輸格式及服務器本身的基本開放結構。Web 服務器是駐留在服務器上的軟件,它匯集了大量的信息。Web服務器的作用就是管理這些文檔,按用戶的要求返回信息。

  2、客戶接收機(Web瀏覽器)

  客戶機系統稱為Web瀏覽器,用于向服務器發送資源索取請求,并將接收到的信息進行解碼和顯示。Web瀏覽器是客戶端軟件,它從Web服務器上下載和獲取文件,翻譯下載文件中的HTML代碼,進行格式化,根據HTML中的內容在屏幕上顯示信息。如果文件中包含圖像以及其他格式的文件(如聲頻、視頻、Flash等),Web瀏覽器會作相應的處理或依據所支持的的插件進行必要的顯示。

  3、通訊協議(HTTP協議)

  Web瀏覽器與服務器之間遵循HTTP協議進行通訊傳輸。HTTP(HyperText Transfer PRotocol,超文本傳輸協議)是分布式的Web應用的核心技術協議,在TCP/ip協議棧中屬于應用層。它定義了Web瀏覽器向Web服務器發送索取Web頁面請求的格式,以及Web頁面在Internet上的傳輸方式。

  Web服務器通過Web瀏覽器與用戶交互操作,相互間采用HTTP協議相互通信(服務器和客戶端都必須安裝HTTP協議)。Web服務器也稱為HTTPd服務器(d是指UNIX系統中的daemon)。最早的Web服務器軟件是在UNIX系統上發展起來的,有CERN和NCSA兩種類型?,F在占居市場分額最大的是Apache服務器軟件,并且可以在多種環境下運行,如Unix、linux、Solaris、Windows 2000等。在Window環境下,由于Microsoft得天獨厚的優勢,因而IIS (Internet Information Server)成為Windows NT及 Windows 2000下主要的服務器軟件。

  Web瀏覽器軟件中,Netscape的Web瀏覽器NN(Netscape Navigator)、NC(Netscape Communicator)具有最廣泛的系統平臺支持,可以在所有平臺上運行;Microsoft的IE(Internet Explorer)則是Windows平臺上運行最完美的瀏覽器軟件。

  Web服務器和Web瀏覽器之間通過HTTP協議相互響應。一般情況下,Web服務器在80端口等候Web瀏覽器的請求, Web瀏覽器通過3次握手與服務器建立起TCP/IP聯接。

  大多數Web服務器和Web瀏覽器已使用了HTTP/1.1版。HTTP1.1具有許多新的特色:

  (1) 能夠識別主機名,允許多個虛擬主機名共存于一個IP上。
  (2) 具有內容協商的能力,允許服務器以多種格式存取資源,供Web服務器和Web瀏覽器選擇最佳版本。
  (3) 通過持續性聯接加速Web服務器的響應速度。
  (4) 允許Web瀏覽器請求索取文件的某部分,從而為端點續傳功能提供更好的支持。
  4、公共網關接口介紹(CGI)

  在討論Internet和Web技術給人們提供瀟灑服務的同時,不能不提到CGI(Common Gateway Interface)。它是Web服務器與外部應用程序之間交換數據的標準接口軟件。有了CGI,Web網站將不只是靜態頁面的收藏點,而是可以通過在Web服務器上運行一定的程序,輸出一個動態的頁面。CGI是一種獨立于語言的接口,CGI程序可以使用任何可以訪問環境變量和產生輸出的編程語言來編寫,有C、C++、PERL、Shell等。

  CGI與Web服務器的關系:首先,用戶的Web 服務器必須支持CGI程序,并且CGI應用程序必須在Web服務器上運行??蛻舳?Web瀏覽器)常用Post、Get兩種方式向Web服務器提交表單數據(圖、表、文字的鏈接等),Web服務器采用相應的數據傳遞方式向CGI應用程序傳遞數據。CGI對數據處理后,將動態生成的Web頁面發給Web服務器,服務器再把頁面發送給發送請求數據的客戶端??蛻舳擞肞ost 方式遞交數據,Web 服務器按照標準方式向CGI輸入和接受數據,CGI同樣按標準方式讀取和輸出數據;客戶端用Get方式遞交數據,在Unix類系統中Web服務器通過環境變量方式把數據轉交CGI應用程序,CGI應用程序須從環境變量中讀入數據,輸出結果同樣送到標準輸出中。
  
  二、建立Web安全體系

  Web賴以生成的環境包括計算機硬件、操作系統、計算機網絡、許多的網絡服務和應用,所有這些都存在著安全隱患,最終威脅到Web的安全。Web 的安全體系結構非常復雜主要包括以下幾個方面:
  
  *  客戶端軟件(既Web瀏覽器軟件)的安全;
  * 運行瀏覽器的計算機設備及其操作系統的安全(主機系統安全);
  * 客戶端的局域網(LAN);
  * Internet;
  * 服務器端的局域網(LAN);
  * 運行服務器的計算機設備及操作系統的安全(主機系統的安全);
  * 服務器上的Web服務器軟件。

  在分析Web服務器的安全性時,一定要考慮到所有這些方面,因為它們是相互聯系的,每個方面都會影響到Web服務器的安全性,它們中安全性最差的決定了給定服務器的安全級別。由于篇幅的限制不能夠詳細地討論所有影響Web安全的因素??紤]到影響Web安全的最直接的因素,下面主要討論Web服務器軟件及支撐服務器運行的操作系統的安全設置與管理。

  1、主機系統的安全需求

  網絡的攻擊者通常通過主機的訪問來獲取主機的訪問權限,一旦攻擊者突破了這個機制,就可以完成任意的操作。對某個計算機,通常是通過口令認證機制來實現的登陸到計算機系統上?,F在大部分個人計算機沒有提供認證系統,也沒有身份的概念,極其容易被獲取系統的訪問權限。因此,一個沒有認證機制的PC是Web服務器最不安全的平臺。所以,確保主機系統的認證機制,嚴密地設置及管理訪問口令,是主機系統抵御威脅的有力保障。

  2、Web服務器的安全需求

  隨著“開放系統”的發展和Internet的知識普及,獲取使用簡單、功能強大的系統安全攻擊工具是非常容易的事情。在訪問你的Web站點的用戶中,不少技術高超的人,有足夠的經驗和工具來探視他們感興趣的東西。還有在人才流動頻繁的今天,“系統有關人員”也可能因為種種原因離開原來的崗位,系統的秘密也可能隨之擴散。

  不同的Web網站有不同的安全需求。建立Web網站是為了更好地提供信息和服務,一定程度上Web站點是其擁有者的代言人,為了滿足Web服務器的安全需求,維護擁有著的形象和聲譽,必須對各類用戶訪問Web資源的權限作嚴格管理;維持Web服務的可用性,采取積極主動的預防、檢測措施,防止他人破壞,造成設備、操作系統停運或服務癱瘓;確保Web服務器不被用做跳板來進一步侵入內部網絡和其他網,使內部網免遭破,同時避免不必要的麻煩甚至法律糾紛。
  三、Web服務器設備和相關軟件的安全考慮

  Web服務器的硬件設備和相關軟件的安全性是建立安全的Web站點的堅實基礎。人們在選擇Web服務器主機設備和相關軟件時,除了考慮價格、功能、性能和容量等因素外,切莫忽略安全因素,因為有些服務器用于提供某些網絡服務時存在安全漏洞。挑選Web服務器技術通常要在一系列有沖突的需求之間作出折中的選擇,要同時考慮建立網站典型的功能需求和安全要求

  對于Web服務器,最基本的性能要求是響應時間和吞吐量。響應時間通常以服務器在單位時間內最多允許的鏈接數來衡量,吞吐量則以單位時間內服務器傳輸到網絡上的字節數來計算。

  典型的功能需求有:提供靜態頁面和多種動態頁面服務的能力;接受和處理用戶信息的能力;提供站點搜索服務的能力;遠程管理的能力。

  典型的安全需求有:在已知的Web服務器(包括軟、硬件)漏洞中,針對該類型Web服務器的攻擊最少;對服務器的管理操作只能由授權用戶執行;拒絕通過Web訪問Web服務器上不公開的內容;能夠禁止內嵌在操作系統或Web服務器軟件中的不必要的網絡服務;有能力控制對各種形式的執行程序的訪問;能對某些Web操作進行日志記錄,以便與入侵檢測和入侵企圖分析;具有適當的容錯功能。

  所以,在選擇Web服務器時,首先要從建立網站的單位的實際情況出發,根據安全政策決定具體的需求,廣泛地收集分析產品信息和相關知識,借鑒優秀方案或實施案例的精華,選擇你認為能夠最好地滿足本單位包括安全考慮在內的需求的產品組合。

  四、建立安全的Web網站

  在本篇文章的開始討論過Web站點的組成的三個部分。需要強調的是,主機操作系統是Web的直接支撐者,合理配置主機系統,能為Web服務器提供強健的安全支持。

  1、理解配置主機操作系統

  (1) 僅僅提供必要的服務

  已經安裝完畢的操作系統都有一系列常用的服務,UNIX系統將提供Finger、Rwho、RPC、LPD、Sendmail、FTP、NFS、IP轉發等服務。Windows NT系統將提供RPC(遠程過程調用)IP(網際協議)轉發、FTP(文件傳輸協議)、SMTP(簡單郵件傳輸協議)等。而且,系統在缺省的情況下自動啟用這些服務,或提供簡單易用的配置向導。這些配置簡單的服務應用在方便管理員而且增強系統功能的同時,也埋下了安全隱患。因為,關于這些應用服務的說明文檔或是沒有足夠的提醒,或是細碎繁雜使人無暇細研,不熟練的管理員甚至沒有認真檢查這些服務的配置是否清除了已知的安全隱患。

  為此,在安裝操作系統時,應該只選擇安裝必要的協議和服務;對于UNIX系統,應檢查/etc/rc.d/目錄下的各個目錄中的文件,刪除不必要的文件;對于Windows系統,應刪除沒有用到的網絡協議,不要安裝不必要的應用軟件,如C/C++編譯程序等。一般情況下,應關閉Web服務器的IP轉發功能。

  系統功能越單純,結構越簡單,可能出現的漏洞越少,因此越容易進行安全維護。對于專門提供Web信息服務(含提供虛擬服務器)的網站,最好由專門的主機(或主機群)作Web服務器系統,對外只提供Web服務,沒有其他任務。這樣,可以保證(1)使系統最好地為Web服務提供支持;(2)管理人員單一,避免發生管理員之間的合作不調而出現安全漏洞的現象;(3)用戶訪問單一,便于控制;(4)日志文件較少,減輕系統負擔。

  對于必須提供其他服務,如(提供需擬網站服務)FTP服務與Web服務共用文件空間,既FTP和HTTP共享目錄,則必須仔細設置各個目錄、文件的訪問權限,確保遠程用戶無法上傳通過Web服務所能讀取或執行的文件。

  (2) 使用必要的輔助工具,簡化主機的安全管理

  啟用系統的日志(系統帳戶日志和Web服務器日志)記錄功能。監視并記錄訪問企圖是主機安全的一個重要機制,以利于提高主機的一致性以及其數據保密性。

  Unix系統,可以在服務器上安裝tcp_wrapper工具。它在其他網絡服務啟動之前首先啟動。tcp_wrapper的配置文件可以控制只有本主機上的用戶才可以用登陸(Telnet)到本服務器。

  Windows NT提供端口訪問控制功能,有助于加強Web服務器的安全。在網絡→協議→TCP/IP協議屬性→高級,選用“啟用安全機制” → 配置,將出現窗口。選擇“僅允許”,便可以利用“添加”功能,設置允許訪問的端口。
  2、合理配置Web服務器

  (1)在Unix OS中,以非特權用戶而不是Root身份運行Web服務器。(如Nobody、www、Daemon)
  (2)設置Web服務器訪問控制。通過IP地址控制、子網域名來控制,未被允許的IP地址、IP子網域發來的請求將被拒絕;
  (3)通過用戶名和口令限制。只有當遠程用戶輸入正確的用戶名和口令的時候,訪問才能被正確響應。
  (4)用公用密鑰加密方法。對文件的訪問請求和文件本身都將加密,以便只有預計的用戶才能讀取文件內容。

  3、設置Web服務器有關目錄的權限

  為了安全起見,管理員應對“文檔根目錄”(HTML文件存放的位置)和“服務器根目錄”(日志文件和配置文件存放的位置)做嚴格的訪問權限控制;

  (1)服務器根目錄下存放日志文件、配置文件等敏感信息,它們對系統的安全至關重要,不能讓用戶隨意讀取或刪改;
  (2)服務器根目錄下存放CGI腳本程序,用戶對這些程序有執行權限,惡意用戶有可能利用其中的漏洞進行越權操作,比如,增、刪、改;
  (3)服務器根目錄下的某些文件需要由Root來寫或者執行,如Web服務器需要Root來啟動,如果其他用戶對Web服務器的執行程序有寫權限,則該用戶可以用其他代碼替換掉Web服務器的執行程序,當Root 再次執行這個程序時,用戶設定的代碼將以Root身份運行。

  4、謹慎組織Web服務器的內容

  5、安全管理Web服務器

  Web服務器的日常管理、維護工作包括Web服務器的內容更新,日志文件的審計,安裝一些新的工具、軟件,更改服務器配置,對Web進行安全檢查等。主要注意以下幾點:

  (1)以安全的方式更新Web服務器(盡量在服務器本地操作);
  (2)經常審查有關日志記錄;
  (3)進行必要的數據備份;
  (4)定期對Web服務器進行安全檢查;
  (5)冷靜處理意外事件。

  五、Web網站的安全管理

  1、建立安全的Web網站,首先要全盤考慮Web服務器的安全設計和實施。無論是政府網站,還是企業、商業機構或是社會團體,各自都有其特殊的安全要求,所以,根據本單位的實際情況出發,周密制定安全政策是實現系統安全的前提。

  2、對Web系統進行安全評估,也就是說,權衡考慮各類安全資源的價值和對它們實施保護所需要的費用。這個當中不能只考慮看得見的資源實體,應該綜合考慮資源帶來的效益,資源發生不安全情況的幾率,資源的安全保護被突然破壞時將可能帶來的損失。

  3、制定安全策略的基本原則和管理規定,即指明各類資源的基本安全要求以及為了達到這種安全要求應該實施的事項。安全管理是由個人或組織針對為了達到特定的安全水平而制定的一整套要求有關部門人員必須遵守的規則和違規罰則。對于Web服務提供者來說,安全管理的一個重要的組成是哪個人可以訪問哪些Web文擋,獲權訪問Web文檔和使用這些訪問的人的有關部門權利和責任,有關人員對設備、系統的管理權限和維護守則,失職處罰等。

  4、對員工的安全培訓,培養員工主動學習安全知識的意識和能力。一個網站的安全政策必須被每一個工作人員所理解,這樣才可能讓每一個員工自覺遵守、維護它。

  盡管如此,Web網站的安全是相對的,沒有絕對的安全,我們只能把遭受攻擊的可能性降到最低。更重要的是,必須做到“有法必依”,把安全政策體現到設備的選購、網絡結構的設計、人員的配置、管理及每一個人的日常的工作中。

  本文所用到的英漢縮略說明:

  Web 是 World Wide Web 的簡稱
  HTTP(Hyper Text Transfer Protocol) 超文本傳輸協議
  IIS (Internet Information Server) Internet 信息服務器
  CGI(Common Gateway Interface) 公共網關接口
  LAN(Local Area Network) 局域網
  RPC(Remote Procedure Call) 遠程過程調用
  TCP(Transmission Control Protocol) 傳輸控制協議
  IP(Internet Protocol) 網際協議
  FTP(File Transfer Protocol) 文件傳輸協議
  SMTP(Simple Mail Transfer Protocol) 簡單郵件傳送協議
  PC(Personal Computer) 個人計算機
  OS(Operating System) 操作系統



河北快3走势图彩 青海十一选五全天开奖号 用佳永配资可以吗? 云南11选5专家杀号 百度福建快三开奖结果 云南十一选五开奖结 时时乐西餐厅官网 四川快乐12开奖结果图手机版 内蒙古快3形态走势 股票行情查询一览 山西11选5中奖技巧