2009年4月30日 星期四

K書筆記本-Access controls(01)

Access controls(存取控制)是整個資訊安全中極重要的領域,資訊的交流、不同機密等級問題,甚至人員的進出
不管是從人、事、物,都應該有不同的資訊機密等級,因此在判斷何者可做那種資訊的讀取
或是其它人員對這個人員是不是會造成資訊外洩的問題,是否都是一個必須列入存取控制的的措施

前一個domain不斷的提到人是最大的資訊安全主因,在整個資訊安全的事件發生中,人為的錯誤佔80%
因此好的access controls是可以降低天然、自然、非人為的問題發生,但是人為的問題必須透過好的管理來降低
access controls有幾個基本的要求:Security(安全)、Relability(可信賴)、transparency(通透)、Scalability(可延展)。
Security:在思考每一個控制項目時,必須考量是不是真的有達到安全的需求,若只是增加流程而沒有達成安全只是在虛耗整個企業的資源。
Relability:建構了一個安全管控的系統,但是它本身是不安全的,或者是可用性不高時,那麼就不能被信賴,這樣的控制也是等於沒做。
Transparency:任何一種控制項目應該要達成無阻礙,並且讓導入的衝擊降到最低,不能因為導入控制措施而使業務停擺。
Scalability:在設計存取控制時應該要先考量到系統可能變更、相容的範圍,進而使系統不因變更的因素而造成系統停擺。

那麼在存取控制有幾個重要的概念:Separation of duties(職責分工), Least privilege(最小權限), Need-to-know(僅知原則)。
Separation of duties:意指將一個重要的工作或職責分散給多個人做保管,以防止這個重要資訊被洩露出去,即使被攻擊只有取得部份的資訊。
Least privilege:最小權限是指完成一件任務時,所需要的使用到的人、事、物有那些,那麼只需要開放完成工作所需的權限時可。
Need-to-know:僅知原則,字如其意呀,完成一件任務所需要知道的內容及所需要知道的流程,僅給予完成工作的最少量的應知事項即可。

即然…人、事、物都應該分級,那麼最重要的資訊載體是不是也應該要有所分類呢?
因此在information classification(資訊分類)的部份則有那些議題:
Objectives(目標):以商業風險關係鑑別資訊保護需求,確保敏感或是機密資訊避免未經授權的揭露,以較低的成本來保護某此等級的所有資訊,並且告知授權的所有者去保護所應負責的資產安全。
Benefits(好處):資訊有被分類出其機密、敏感等級後,依照其分別配予適當(Commensurate)具有成本效益的控制措施,並且可以針對不同等級資產的所有者來加強保護已分類好的重要資訊資產。
Compartmentalized information(區隔資訊):這個部份是需要被管理的,當有特殊需求經授權的使用者必須存取已分類的資產,透過控制措施,只需附予完成工作所需要最少量的應知事項。

那麼資訊分類的程序又有那一些呢?透過Scope(定義範圍)、Process(處理流程)、Marking and labing(標示及識別)、Assurance(確保),來執行達成資訊分類的目標。
Scope: Risk Analysis(風險分析)及BIA;Business impact analyses(商務衝擊分析)都必須要完成,必須掌握組織內所有經過分析的資料,並且可以有效的去管理敏感、機密的資產。
process: 基於風險及商務衝擊分析所產生,必須依照資訊分類的等級做資訊及標準化的控制存取,資安政策及程序必須與資訊分類取密的結合,且資產的Owner有責任去完成資訊分類,主要的目的是為了去建立完整的資訊分類的流程,包含建立資訊分類教育訓練機制,當然Owner也有責任去確保覆核資訊分類的正確。不止是分類的過程,處理過程必須著重於可信度(Responsibility)及解密處理(Declassification)的程序。
Marking and labeling: 完成分類的流程後接下來就必須依其機密、敏感級給予標示及識別包含不論正資訊資產、磁性或光學媒體或是文件,均需明確的標示其等級,文件則必須明確的標示於文件中,並以明確的顏色或是底圖來確保機密文件能被注意到,避免被惡意的複製、散播。
Assurance: 整個分類處理的過程必須要確保公正、客觀,不可因外力來影響分類的程序或是分類資訊資產的政策。

資訊分類是相當多業務安全的基礎,包括要做存取控制、BCM、RM必須完成資訊分類才能找出極敏感、機密的資訊資產或是重要的商務流程。因此做好資訊分類的標準,才能做好資訊安全。

2009年4月29日 星期三

Netowork LoadBalance下ASP.NET工作階段的Session states如何處理?

在靜態網頁之下,若架構以NLB(Network Load Balance)做Active/Active mode是沒有什麼太大的問題,因為靜網頁並沒有工作處理的狀態問題
但是如果想要達成在動態網頁之下,使網站服務可以達成完全loadbalance,這時侯,我們常常應用的一些互動性的功能可能會出現問題
原因就出在當有使用互動性的功能時,Session States是直接存在處理服務的那台伺服器上
你可能填寫問卷填的比較久,當你按下送出時,已經被NLB切到另一台伺服器上了,這時你的工作階段則沒有轉移至這台伺服器
而有可能使的互動性的功能完全的喪失,除非運氣好不然這種狀況應該會讓你的客戶把你打個半死。

那麼在NLB架構之下,又使用的是完全Loadbalance有什麼方法可以將Session Stats讓每台伺服器都能接續下去呢?
全都存一份到所有的服務成員伺服器?還是找個Shared Storage來存放呢?其實我們可以透過SQL Server將資料轉存下去
這麼一來,即使是硬體的Loadbalance設備,而且負載的規則是依照負載狀況而定的這種架構也可以適用。

首先,我們必須先設定將SQL Server設定成可存放Session States,在SQL Server上開啟InstallSqlState.sql到Query Analyzer(SQL 2K及2K5都通用)執行
路徑置放於system drive\WinDir\Microsoft.NET\Framework\version\,一般是放在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727之中
這樣子就好了嗎???當然還沒有呀!這樣只是在SQL Server上建立一個資料庫(ASPState)供Web將Session States存放至SQL

但是Web Server怎麼會把Session States丟到SQL Server上存放呢?此時,我們必須先在SQL Server上建立一個可連線的資料庫使用者
並且他對於ASPState這個資料庫要是DBOwner的身份,這樣它才能將各種資訊依照需求來建立或刪減資料表、預存程序…等

接下來我們只要在Web.conf檔中,加上這一行程式碼即可讓web將session sates存至SQL Server在加完下面這一行程式碼後,請記得將IISADMIN重啟讓它生效

<configuration>
<system.web>
<sessionState mode="SQLServer"
sqlConnectionString="data source=<SQL Server IP or Name>;user id=<username>;password=<strongpassword>"
cookieless="false"
timeout="20" />
</system.web>
</configuration>

謝謝JamesWu大大的提醒,在NLB的架構下,伺服器會隨機的自動產生一組Key以供識別用,但是若沒有在web.config中設定好這組key,有可能在轉移的時侯有可能會產生無法解View states或是cookies的問題
因此除了JamesWu大大所寫的Validation of viewstate MAC failed 驗證ViewState時 MAC 失敗 以外
下面這個連結是可以直接取得這把machineKey的產生器供大家參考,謝謝大家!!
ASP.NET machineKey Generator

MSDN也有相關的資料可供參考:machineKey Element (ASP.NET Settings Schema)

K書筆記本-Information Security & Risk Management (07)

做完了風險的識別、資產的評估,那選擇何種保護措施才是對的呢?其實沒有對錯,重點在於Owner的想法
舉個很簡單的例子,有一個資訊資產可能產生的風險是會對它造成極大的損傷,但是導入一個風險控制措施
只需要費資訊資產本身千分之一不到的費用,您要不要導入呀??

續前題,但是,假設導入的控制措施所需花費的費用和風險所造成的損失是相同的,那麼要不要導入呢???
看Owner怎麼去評估,不過,如果站在可用性的角度來看,這個重要資訊資產若受到這個風險可能會停擺
會讓企業蒙受極大的損失,那麼Owner則必須去選擇是要選擇可用性,還是選擇接受損失
這個部與BCM(Business Continuity Management)有相關的關係,所以這個議題就待到BCM時再來跟大家討論。

即然已經知道了資產可能的風險,那麼應該如何降低這些風險(Risk Mitigation)呢?
Risk Acceptance(接受風險):風險也不一定都是很大不了的事情,當風險發生時可能對資訊資產的衝擊非常的低,而且是可以接受的範圍。
Risk Reduction(減少風險):選擇一項控制措施可以去降低曝露因子或是減少損失,並且將風險降低至可以接受的範圍。
Risk Transference(風險轉嫁):將風險轉移給其它公司去負責,例如:買保險、簽署維護合約。
Risk Avoidance(規避風險):當風險是企業無法再持續下去的的流程或是處理底線時,可以選擇退出這個市場或是退出本項資產來規避風險。
Risk Ignorance(未清楚風險):這個項目看起來很像是一個很吸引企業的控制,但它並不是一個接受降低風險的政策,一般來說它是個現像,
可能太過於依賴現有的風險管理做法,而造成風險未被識別的,然而等於未做保護的資產。

安全不是閉門造車,不是有風險都非得要完全消滅,但是一個對的安全管理措施應該要考慮到Cost及value之間的平衡
在選擇制措施前必須先考量的就是cost effective(成本效益),因此第一步就是cost/benefit analysis(金錢利益分析),計算出保護措施的總價值
Accountability(可歸責性):每個控制措施必須至少有一個專人負責,結合直接與效能的覆核。
Absence of Design Secrecy(缺乏安全設計):雖然已經選擇了一個控制措施但是缺乏信賴,例如警衛的共謀,是一種安全控制,但是沒有控制到更深層的安全。
Audit Capability(稽核能力):必須有能力測試,包含有稽核在設計及履行的能力。

風險的來源最多的問題來自於人為、硬體問題,因此在風險管理的部份對於人的控制應該要擺在第一要點,並且要能保證當風險發生時,受到風險脅的資產能夠達到安全的管控,並且得到高階主管的支持,這個才是整個資訊安全最重要的一個環結

K書筆記本-Information Security & Risk Management (06)

Risk Management(風險管理)是資訊安全最重要的環結之一,每種Access Control(存取控制)者必須依照風險管理、BIA(商業衝擊分析)…等
來決定資訊資產需要何種保護、需要何種機密性保護,因此在風險管理可以說是左右著資訊資產的各項存取措施。

在風險管理當然也有各種標準、建議做法…等,不乏有NIST SP 800-30、OCTAVE、ANZ4360…等

風險管理可以協助管理者視別及簡化總風險,並且選擇可以減輕風險的策略,並且預設好可接受的殘餘風險等級,
並且在企業內導入完整的風險管理處理流程,並持續的運作及改善,將企業引導至向上向善發展的途徑上。

風險管理中每一個Owners擁有價值(Value)的資產(Assets),資產會有弱點(Vulnerabilities),有弱點就有可能有潛在的威脅(Threat Agents),
當潛在的威脅成為威脅(Threat),威脅利用資產的弱點對資產成風險(Risk),擁有者為了保護資產導入控制風險的措施(Safeguards)
控制措施保護了有弱點的資產降低了資產的風險,風險成為了residual risk(殘餘風險),但是風險不可能為零,只能降低到可以接受的範圍。
RM

ISO-27001中也明確的規範出針對資訊資產必須要經由風險評估(Risk Assessment)、風險分析(Risk Analysis),進而得知資訊資產的價值及其風險承受的脆弱度
在SP 800-30規範之中,將風險評鑑分為9個步驟:
1. System Characterization(系統描述):針對風險評估定義其範圍;硬體、軟體、人員…等。
2.Threat Identification(威脅的視別):目的是每個資訊資產可能的威脅來源。
3.Vulnerability Identification(弱點的視別):目的是列出可能被威脅利用的弱點。
4.Control Analysis(控制分析):置入分析後的控剄或是計劃,將可能拿來控制弱點產生的威脅。
5.Likeilhood determination(可能性測定):將分析出的弱點並給予威脅一個大略可能造成衝擊的值(低、中、高)。
6.Impact Anlysis(衝擊分析):針對每個不同機密、敏感等級的資產,分別依照衝擊的等級透過Quantitative(數值、定性分析)或是Qualitative(數量、定量分析) 來分析出資產的價值及可能對企業造成的衝擊。
7.Risk Determination(風險測定):針對衝擊分析給予資產定義IT系統的風險等級。
8.Control Recommendations(建議控制項):針對各風險等級提出合理的控制項,必須以Cost effective(成本效益)為主要考量。
9.Results Documentation(產出文件):將風險評估出的結果產出為文件,並且應將本文件交由高階主管以協助各項風險任務的管理。
risk assessment activites

在風險評估中最重要的一環是風險分析的方法Quantitative(數量、定量)及Qualitative,Quantitative是針對資產給予一個很明確的價值,能很明確的量化,但是像商譽、商標、專利…等,可能很難給予一個很明確的價值,而Qualitative(數值、定性)則是給予資產一個大概的值(極低、低、中、高、極高),在這兩種分析之下單純的Quantitative數量分析是不可能的。

Quantitative(數量、定量)分析中必須先訂義出AV;Asset Value(資產價值),及EF;Exposure Factor%(曝露因子;可能對資產造成損失的比例)
將兩者相乘即得到SLA;Single loss expectancy(單一損失期望值),接下來針對該風險可能發生的機率求出ARO;Annual rate of occurrence(年發生概率)
將SLE乘上ARO即得到ALE;Annual loss expectancy(年損常期望值),這麼說太學理了,下面是一個例子,希望可以給大家有比較明確的概念:
有一個資訊資產價值100萬,它置放於地下室,當發生水災時可以對它造成約70%的損失,但要造成這樣的水災,十年只會發生一次
那麼SLA就是100萬X70%=70萬
ARO則是十年發生一次,所以一年只有10%的發生可能性
ALE就是70萬X10%=7萬

Qualitative(數值、定性)分析則是將資產分級,並且針對可能發生的威脅等級對映,以找出可能對資產的威脅層度。
ANZ4360 standard (Australian/New zealand)中即有基本的規範如下:

Consequence:

Insignificant

Minor

Moderate

Major

Catastrophic

Likelihood:

1 2 3 4 5

A (almost certain)

H H E E E

B (likely)

M H H E E

C (possible)

L M H E E

D (unlikely)

L L M H E

E (rare)

L L M H H

E

Extreme Risk: Immediate action required to mitigate the risk or decide to not proceed

H

High Risk: Action should be taken to compensate for the risk

M

Moderate Risk: Action should be taken to monitor the risk

L

Low Risk: Routine acceptance of the risk

參考文件:

完成風險分析後,就這樣了嗎?當然不是,接下來還要討論到降低風險的方法、及正確的風險控制準則…等等
待續…

2009年4月27日 星期一

K書筆記本-Information Security & Risk Management (05)

經過了選人、用人,找到一個對的人做適當的工作,但是在人力使用的過程中又和安全有何相關呢?
如果今天企業是用了一個不對的人,而且是有意的要損壞企業的人,那麼對於安全這個架構而言
就是最大的打擊了,當然用人也有安全的控制方法,一般來說對於人員的應用有分為職務面、權責面
若是一個重大且機密的工作全完托負給一個人,企業本身是否也要承擔著有可能這個人是會洩露的風險?
因此對於重大的機密也必須以其它的控制方法來控制資訊本身的安全:
1.Job Descriptions(工作說明書):訂義了角色及職責,工作說明書必須述明各項職責、任務需完整規範。
2.Separation of Duties:也叫Segregation of duties、Two-man Control、Multi-party control,
最主要的是要將一個重要的工作分給多個人來處理,以達成相互監視,也加深了入侵者的難度,
但是有沒有可能這些分工的人會共謀呢???這種控制法可以避免A.I.C.中的I2(確保授權都做未經授權的事)。
3.Job Rotation(職務輪調):因為職責分工還是有共謀的可能性,但是透過職務輪調讓每一次共謀的可能性降低,
例如像運鈔車的人員,當天上工時才知道開車、監鈔及保全的人員是何人,加深了共謀的難度,也確保了重要資訊資產的安全。
4.Least Privilege(最小權限):最小權限所使的就是當一個沒有權限的人要執行某個工作時,完成這項工作所需要的權限,
僅僅能完成這份托付工作所需要的權限即是最小權限。
5.Need to Know(僅知原則):僅知原則是配合最小權限所施行的控制措施,意指在完成某項工作所需要知道的內容。
※注意喲~~~!本項控制並不等於最小權限。
6.Manadatory Vacations(強制休假):強制休假是對於事件調查的一個手段,在很多狀況之下,當有人員作未經授權的工作時,
對於有問題的流程會適時的做保護,因此當調查在一個有問題的內容時,透過強制休假來調查、發現弊端。

但畢竟企業必須靠有業務才能存活下來,因此對於資安的推行並不是唯一,但企業中的資訊安全又必須由上至下落實
這個時侯就必須透過資安文化的建立,對於不同的職等、層級人員也要給予不同的資訊安全的教育、訓練
因為人員的不同有不同的教育方式,而這些教育方式分為:Awareness, Training, Education.
Awareness training:一般針對的是非資訊人員,主要是要讓我們的雇員們了解到我們的安全政策…等,能對於資訊安全有基本的了解、
例如個人資訊、職務資訊、社交工程…等等的資安問題及議題,對資安有基本的應變。
Job Training:工作訓練是針對資訊安全工作人員所需要的工作技能,投入所需的訓練,並且確保各項工作內容所需要的工作技能,
得以得到完整的訓練,並且得以勝任資訊安全工作。
Professional Education(專業教育):與工作訓練最大的不同是在於以教育資訊安全相關決策為主,對象多為管理階層或是其候選人為主。

即然有了資訊安全的相關教育、訓練,那麼什麼是好的訓練方式呢?當然對於一個好的教育訓練有幾個要素:
1.選擇恰當的議題。
2.選定範圍及內容。
3.選擇適合的接受教育、訓練的人員。

呼~~~!一口氣說了這麼多,總算該進入到Risk Management(風險管理),這個議題是Jason最喜歡的一個議題
任何東西都離不開風險管理,只要是事情進入到開始的階段,一定都要開始選擇控制風險的控制措施
不管是那種理論,都分不開…待續。

2009年4月24日 星期五

K書筆記本-Information Security & Risk Management (04)

從IT的建置到Policy一路到了SPGB,更底層的,必須談到有關企業內對於資安的Roles and Responsibilities;R&R(角色及職責)
畢竟,資訊安全不可能靠一個人就可以達成,必須由Group(群組)或是Team(小組)來策進、推動
那麼在資安的角度來看,該會有那一些人來執行、那些人來推動安全文化,教育員工具有安全的概念

R&R主要的目的除了介定所有資訊安全工作內容以外,更重要的就是定義了可規責性
在一般的情況之下,會將資訊安全R&R粗略的分為:Executive Management(執行經理)、Information System Security professional(資訊系統安全專家)
、Owners(擁有者)、Custodians(托管者)、Auditor(稽核者)、User(使用者)、IS/IT Function。

Executive management必須要能承諾並推動資訊安全的政策、目標、並且承擔所有保護資產的責任,並且要能同意接受風險的權衡。
ISSP則有責任去設計、規劃、導入、管理及覆核企業的Security Policy及SPGB…等等。Owners則為別擁有Data(資料)、System(系統)的關鍵角色,
Data Owners則必須負擔起Information Classification(資訊分類)、並分配資訊予Custodians,並且依循著Security police來執行安全作業,
針對資料的敏感、緊急層度來給予授權的使用者以need to know(僅知原則)為基礎給予適當的權限。
※Need to know可解決A.I.C.中的I2可能引發的問題。Custodians受到Owners的管理,owners受到ISSP的管理,而ISSP受到Executive management的管理。


system owners則是負責分配使用系統的使用者權限並且掌控著System change controls系統變更控制,備份及災後回復…等職責。
Custodians則必須受到Owners的信任有能力確保資訊安全,並且必須接受各項教育訓練,以免受到攻擊而造成資訊的洩露
例:避免因社交工程而洩露資訊資產的弱點或是成為利用的弱點。
Auditor確保了Security Programs在執行過程中有受到正確控制,在一個流程之中找出有問題的節點,並且提出改善流程的方法,以確保整個資訊系統保持安全
※information system auditor確保了Functional Requirement的正確運作,Auditor且確保Assurance Requirement的正確執行。
User是責任是使用任何資源時,均需承諾使用適當的資源,並且任何程序均需遵守保持資產的A.I.C.。
IS/IT Function必須依循Security policy並且以最合適的Best Practices(最佳建議)來建置系統、網路、環境。

前面的各種職務均說明了每個角色所需的職責,但人呢?人才是主導資安的成敗的因素,因此在人員的招募時應該如何來執行
才能由人為基礎發展資訊安全的建置,人員招募時除了讓應徵人員了解其工作職掌職責外,也必須要對應徵人員做安全的確認
依照每種職務不同給予不同的Clearances level(機密等級)
人員的安全確認包含有:Background Checks/Security clearances(到職確認;身家確認)、Verify References and Educational Records(確認學歷)、Sign Employment Agreements(簽署雇員合約)

Background checks確認所需的或是該職務所必須有的的基本門檻、職能,例如必須檢查所檢附於履歷上的各項專業認證證書及職務所需專業技能證明…等
以確保該員是個有能力且可被信賴的雇員。
Verify References and Educational Records是確認該職務所需的基本學歷是否符合該職所需,並繳驗學歷證明供企業存查。
Sign Employment Agreements主要是要讓應徵者了解企業的各項規定,並且在讀完後應徵者同意後簽名代表願意遵守企業內各項規範及職務保密條款。

當然人員是安全建置的基本要素,但離職員工往往是資訊安全的最大威脅之一
人員安全必須透過Consult the human resources Department(與人力資源部門商議)、Low Level Checks(低階確認)、Termination Procedures(終止雇用程序)來控制
當員工是友善的離職時透過面談了解原因後重新宣讀保密條款後同意簽署離職,繳回公物及接交後依照企業人員管理程序辦理離職
不友善的離職則必須立即繳交所有公物並終止雇用、停權,並由實體安全維護人員帶離安全領域之外,雇員私人用品則由上司主管整理後由實體安全維護人員轉交予終止雇員

雇員屬於內部安全控制部份,但合作伙伴呢?是否也有其安全考量呢?
Third Party Considerations(第三方需要考慮的事)每個組織結構均有不更,而每個與企業來往的外部人員也應該要做為設計安全架構的考慮中
一般而言分為Vendors/supplies(產品銷售/支援人員)、Contractors(約聘雇員)、Temporary Employee(暫時雇員)、Customers(客戶)
Vendors/supplies通常會針對企業系統做維護或更新,必須要求配合安全政策。
Contractors像是由vendors或是supplies所雇用的駐點人員,可以有少部份的存取系統的權限,必須同時遵守企業內的安全政策及原企業的管理。
Termpoary Employee則是最難控制的不定因素,通常暫時雇員與企業較無直接關係,且對企業亦無忠誠可言,有可能擴大雇用的風險。
Customers則是對企業有更多的苛求、要求更多的服務,也有可能擴大更多安全挑戰。
以上對於外部雇員可能產生的問題可以透過Need to know 及Least Privilege及劃分安全區域,以保障公司較核心的機密資料,亦達成可接受的最小風險。

2009年4月23日 星期四

K書筆記本-Information Security & Risk Management (03)

談到IT治理的觀念就不能不談到安全規劃(Security Planning),當然安全規劃也必須照步就班一步一步來
資安計劃又分成三個等級:Tactical level planning(戰術性規劃),Operational Planning(作業性規劃), Strategic Planning(戰略性規劃)
戰術性規劃主要是發展能達到事業單位標的的各種目標及其策略。
作業性規劃主要是發展部門或個別營運單位的目標及策略的過程。
戰略性規劃則是界定組織的使命評估各種外在內在的展發情況,使企業能夠以強處來掌握發展的機會,以避免外在的威脅,引導企業做有效的控制並達成目標。
上述每項規劃均必須規畫至Security Policy中,並且每個安全等級計劃必須達到無縫細(Seamless transition between levels)

一般的做法是由作業性的規劃向上發展至戰略性規劃,向下發展至戰性規劃,由Tactical Level建置至Strategic,缺一不可。

但是定義這些規劃時又應該如何規劃起呢?首先先訂定各項規劃的(Policy)政策,有政策可依循,也才能以政策為指引的方向前進
在各項資訊安全的推動必須符合法律並不侵犯股東權益及業務的推展,定訂資訊安全策時可訂義包含Standards(標準)、baslines(基準)等規範
政策則分兩個層面Overarching organizational policy(包含於組織條例的政策)及Functional implementing policies(包含導入的方法、工具的政策)
訂定任何資訊安全政策一定要Documents compliance(簽署文件)及Complying with laws(動用決策力來分權)。
而任何政策則必須由Standards(標準), Baslines(基礎), Procedures(程序), Guidelines(指引方針);簡稱SPGB,所支持著,其中Guidelines是不具有強制性。

對於現在的環境來說建置資訊安全是任何一個公司在成長都必須經歷,是企業的現在及未來透過建立對安全的文化
也是企業認定各項資產真正的價值並且了解必須控制的風險及威脅,也因為企業必須有業務才有未來,資安並不是維一
只是透過資安讓公司在未來更具有竸爭力,因此在訂定資安政策時與業務發展不可衝突。

Standards是指企業要用那種安全風險管理標準,那種防毒產品或是那種Token的標準,並不是指要引用何種ISO標準。
Baselines是指以那種可接受的最低安全等級來保護資訊資產的設備或措施,例如連回企業僅能接受VPN,及IDS的組態。
Procedures是指何種方式達成處理目標,因此程序必須Step by Step(一步一步來);BCP(Business Continuity Planning)的設計及運作。
Guidelines是支持Policy實行中不具有強制性的,是一種指引以達成目標的最佳建議;ISO-27002, ITIL(IT Infrastructure Libaray)。

在Policy實行時必須很明確的定義其Scope(範圍)及各類的Standards(標準),當然,做資安總不能毫無止盡,因此必須界定一個安全領域
在進入到這個安全領域之內就必須遵守其資安環境的規範及政策,最終將整個企業納入到資訊安全範圍內,以提升企業的競爭力。

K書筆記本-Information Security & Risk Management (02)

上一篇中談論到了資安的構面,但是實際的作法應該如何運作會在下面的幾個K書筆記本中與大家討論
即然談論到了資安,就不能不討論到資安管理(Information Security Mamagement)的內容
在The Official (ISC)2 Guide to the CISSP CBK(Common body of knowledge)中提到的
資訊安全管理應該包含:Governance Structure(治理結構)、Policies(政策)、Standards(標準)、Procedures(程序)、Baselines(基礎線)、Guidelines(指引方針)

當然談到了資安治理那麼IT的安全需求呢(IT Security Requirements)?對於一個完整的資安解決方案又該如何做起?
這個又是一種考量的基礎,在尋找一個IT安全結構下應該由兩種需求來考量:Functional Requirements(軟體需求)、Assurance Requirements(保障需求)
Functional Requirements: Defines the security behavior of the control measure. Selected based on risk assessment.
軟體需求:控制措施運作狀態的特性。基於風險評鑑的選擇。
一般而言,我們也可以用簡單的一句話來說明,保護你想保護的資訊資產。

Assurance Requirements: Provides confidence that security function is performing as expected. Critical part of the security program.
保障需求: 確保信任預期中的安全機制。部份關鍵的安全計劃。
簡單的說明就是:確認你的安全機制真的安全。

Functional Requirements像是導入防火牆,建置安全區域,而Assurance Requirements則像是測試BCP(Business Continuity Plan)
一般而言,應該要將稽核分為內外部,以確保其可用性。

當然,這兩種需求都是基於資訊安全的角度來看,而企業的需求呢?每種不同的業態都有不同的需求,也隨著企業所專注的領域不同,
全機制也必須達到成本效益(Cost effective),安全則必須由上而下執行,若沒有得到上級主管的認同,那麼任何再強的安全措施則歸零。

IT安全治理則必須透過Leadership(領導階層), Structure(結構), Processes(處理流程)三方結合才能達成
當然IT安全治理也必須仰賴A.I.C.的需求、支持著企業的策略(Strategies)及目標(Objectives)
同時也必須包含若安全措施失效時確保SLA;服務水準協議(Service Level Agreement)

IT安全治理的Structure(結構)也必須上行下效,上至董事長、高層主管,下至雇員、工讀生,當然它也分為內部及外部,內部治理像是人力資源(Human resources)包含雇員協議、雇用程序、結束雇用程序…等等。
Processes(處理程序)可依照Bast Practice(最佳建議)來執行,例如:Job Rotation(職務輪調)、Separation of duties(職責分工)、Least privilege(最小權限)、Mandatory vacations(強制休假)、Brewe-Nash model(私下利益輸送)、Supervision(記錄及監視)、Security audits and reviews(安全稽核及複審)、I/O controls(出入控制)、Antivirus Management(防毒管理)…等等。

當然資訊安全管理系統也有最佳建議,例如ISO標準中的27000系列就是ISMS的最佳建議,也可稱為是Security blueprints(安全藍圖),像是:ISO-27000 series、COBIT、ITIL、COSO…等。

K書筆記本-Information Security & Risk Management (01)

資訊安全是近來幾年相當受到觀注的領域,Jason自投入業界至今也在三年前轉往這個領域
當然在這個領域中也有不少的挑戰,而Jason近來也在正在準備這方面的挑戰
為了讓自已和廣大的鄉民們也能一同的討論,Jason將讀過的資料轉化後貼到自已的blog中跟大家一起討論

Information Security的組成可由Availability(可用性)、Integrity(完整性、一致性)、Confidentiality(機密性)所構成
而每個構成安全的特性中個別又包含了不同層面的涵意:
Availability:可用性避免服務中斷。
Intregint:避免得到授權或未經授權者做任何規範外的變更,並且保持資訊內外的一致。
Confidentiality:保護授權機密性

這麼說似乎相當的模糊,不過,透過下列的說明大家應該比較能夠明瞭:

Availability又分為Timely(即時)及 Reliable(可信任),要用的時侯馬上可以用,並且可以被信任的機制或處理流程。

Integrity則有”Prevent unauthorized modification by unauthorized people.(避免未經授權者做任何未經授權的變更)”
、”Prevent unauthorized modification by authorized people.(避免授權者做任何未經授權的變更)”
及”Maintain internal and external consistency.(維持內部與外部的一致性)”

Confidentiality則是”Prevent intentional or unintentional unauthorized disclosure.(確保有意或無意的散播)”

身為一個資訊安全人員應該確保以上三點的完整架構,當然在不同的領域環境之下,一定有特別著重的部份,但三者一定缺一不可
就像是經典電影中的對白:我身為一個汽車維修人員,身上帶著起子算得上是合情合理吧~!

雖然談到資安大家所想的就是抓駭客、防止被入侵、中毒事件,但是對於資安人員來看,可不止是如此的簡單而以
但是也不可不否認,台灣在資安所著重的路份確實相當的薄弱,試問沒有賺錢的公司會想導入資安嗎?
台灣的教育之下也不是以安全為第一考量

針對(ISC)2所提出的資安十大領域之中,可以很明確的看出6.5分管理2.5分科技及1分法律,這樣才能達成十分安全
資安人員首重道德,對於其道德良知的看重勝過其它因素,若資安人員沒有約束自已的能力,那麼對於客戶的安全怎麼會重視呢?

2009年4月22日 星期三

透過批次檔及排程自動備援MS-SQL

對於常常應用MS-SQL的廣大鄕民們,對於目前沒有太多錢可運用的單位
MS-SQL備援方案有沒有更經濟一點的呢?這個問題應該帶給大家很大的困擾吧!
其實Jason也曾深深的被困擾過,下列是Jason後來應用的方法,看看能否給大家一些想法。

若要達熱備援(Hot Site)可以透過Cluster技術達成,但其成本之高,若客戶是政府單位,且必須採用中信標的話,其試算如下:


名稱

單價

數量

小計

OS

Windows server 2003 R2 Enterprise edition

NT$ 64,698

1

NT$64,698

Windows Server 用戶端存取授權 (User or Device CAL)

NT$769

5

NT$3,845

DB

Microsoft SQL Server 2005 Std edition

NT$ 24,169

1

NT$ 24,169

SQL Server 用戶端存取授權 (User or Device CAL)

NT$4,332

5

NT$21,660

小計

1組

NT$114,372
總計

2組

NT$228,774

光是個軟體授權費用就要將近11萬5千元,更別說硬體,若是要建置為Failover cluster
除了要一台SAN,兩片Disk Control Card還得要再買兩台中階伺服器
一台SAN至少要買到48萬元,一台伺服器至少買16萬5千元
光是硬體設備就將近85萬元+23萬的軟體授權,將將好快1百萬,老闆不殺了你我才不信,鬼才敢玩。

Failover示意圖

於是,Jason想了一個方法,透過批次檔設定兩台Server的自動工作排程來呼叫整個備份及備援的程序
首先我們先確認一下需求的環境:
1.至少要有一種方法可以傳遞備份檔(.bak) ps.本範例以網芳為例。
2.主要伺服器要能夠信任備援伺服器的服務要求
3.備份檔案名稱必須相同
4.有一組可做還原的SQL帳戶。

為符合上述要求,假設主要伺服器IP為192.168.1.3,備援伺服器IP為192.168.1.5,其程序如下:
1.每天晚間半夜3點整是主要伺服器將資料完整備份至指定的目錄中
2.備援伺服器於每天半夜3點半自動將主要伺服器的備份檔透過網芳將檔案拉取過來
3.將檔案取得後透過T-Script自動的將資料還原到備援伺服器

主要伺服器透過網路讓備份的檔案能直接取取,其路徑為:\\192.168.1.3\databasesync\db.bak
備援伺服器將備份的檔案抓取過來至本機的磁碟內,其路徑為:d:\databasesync\
首先請先於主要伺服器上設定備份工作,並且設定完整備份至指定的檔案名稱,並且使用覆蓋原檔的方式

接下來在備援伺服器中建立一個批次檔(.bat),其內容如下:

xcopy \\192.168.1.3\dabasesync\db.bak d:\databasesync\ /y /s
osql -S "備援伺服器電腦名稱" -U 可執行還原的帳號 -P "可執行還原的帳戶密碼” -i 還原T-Script的實體路徑.sql
exit

其中還原T-Script的檔案(.sql)內容如下:

USE master
GO
ALTER DATABASE 資料庫名稱 SET single_user WITH rollback immediate
GO
RESTORE DATABASE 資料庫名稱 FROM DISK='d:\databasesync\db.bak’ WITH RECOVERY
GO
ALTER DATABASE 資料庫名稱 SET multi_user
GO

接下來手動的執行主要伺服器的備份程序,及備援伺服器的排定工作即可測試。

批次檔運作示意圖

這個方法可以直接在批次檔中加入其它欲備援的資料庫T-script,只要你在主要伺服器上有完整備份出欲備援的資料庫,並且將還原的t-script另外新增即可。

如何截斷MS-SQL Transaction Log

隨著資料庫的運作,MS-SQL記錄著每一個異動的交易記錄,包括備份、更新、刪除…等。

但這些Log增長的速度決對不是你所想的這麼小,往往實體資料並沒任何增長(.MDF)但交易記錄檔(_LOG.LDF)則是以數倍的成長(如果股票也行就太好了!!)

下列語法是針對MS-SQL 2000及MS-SQL 2005的截斷Scritp:

--1.截斷交易記錄
BACKUP LOG [資料庫名稱]
WITH TRUNCATE_ONLY

--2.顯示資料庫檔案,找出交易記錄檔的邏輯檔名
EXEC sp_helpdb '資料庫名稱'

--3.壓縮交易記錄檔
USE 資料庫名稱
DBCC SHRINKFILE([資料庫名稱_log],2)

以上語法最主要的功能是在於ShrinkFile這部份,它是直接實體的將log檔截斷,並且還回實體的磁碟空間,
若沒有使用Electronic Vaulting或是Remote Journaling,在執行完完整備份時
建議即可排程將Transaction Log做截斷,以維持資料庫不因為磁碟空間已滿而造成服務中斷的問題

當然,若有習慣做Transcation log的備份,這個動作也可以在備份作業中最後一個步驟來執行
這個不是最好的作法,但是在SQL的log以倍數成長的狀況下
若以可用性為最終考量,那麼使資料庫不因非資料庫系統產生的問題,而服務中止才是最好的作法。

MS-SQL電腦名稱不符無法建立複寫

上一篇談到如何備援MS-SQL的窮人家作法,但是如果我的伺服器尚有足夠的資源可以跑複寫

往往台灣人在安裝時都沒有顧及到後續的管理問題,電腦名稱先命名了再說,反正就是TEST嘛
等到設備正式上線了,安裝完MS-SQL(2K,及2K5的版本)後,運作了一段時間,才想到名稱問題
這個時侯就直接由原本的TEST改了名字叫做DB-SERVER,但往往事情不是到這裡就結束

有一天老闆跟你說:「我們要導ISO-27001,所以要有備援政策,DBServer是我們的重要資產,要訂一下備援政策」
如果好死不死你選定的備援政策是以複寫來同步資料庫,那麼你就會發現怎麼架的沒辦法成功
原因就出在你的SQL安裝時叫做"TEST",但是現在改名了,你忘了改變SQL中master資料庫內的電腦名稱

所以你當然無法正常的運作,如何解決呢,只要照下列步驟,就可以正常的運作需要確認電腦名稱的所有功能。

--1.檢查伺服器名稱,會看到原本的伺服器名稱
SELECT @@SERVERNAME

--2.將原伺服器名稱卸載掉
EXEC sp_dropserver '原本的伺服器名稱'

--3. 重新掛上正確的伺服器名稱
EXEC sp_addserver
@server='正確的伺服器名稱',
@local = 'local'

--4.重新啟動 SQL Server

--5. 檢查伺服器名稱
SELECT @@SERVERNAME

2009年4月21日 星期二

如何設定IIS自動由http(TCP80)轉址至https(TCP443)

Jason日前曾因為客戶要求,只有一個網址,不會再開其它站台,必須在單一個網址列中自動的轉進https
以保護使用者資料傳遞,但不需進到https的頁面則必須自動再轉回來
針對這種單獨幾頁的網頁必須轉進https中,Jason搜遍網海甚至求拜過「谷歌帝君」

找到的都只有Apache設定,也因此讓程式部門的同仁針對相對路徑及絕對路徑修改MaterPage,但都必須從程式端來修改。

有什麼方法可以由設定IIS,或者是透過更快速的方法,可以免除掉修改程式的麻煩事呢?
Jason曾幹過很蠢的事,就是針對每一頁必須自動轉進https的頁面

在站台中另外寫轉址的頁面,並且將該頁設定進IIS中
也就是土法煉鋼的方法,有一頁設定一頁,有兩頁設定兩頁,有n頁呢???
設到腦漿噴出來為止,而且,每一頁都必須透過自定Error Page設定指定的檔案來轉址,太累了!!!

突然有一天…Jason做夢,夢到一個化整為零的方法
即然可針對每個個別的頁面來設定,為什麼不試試直接換掉協定就好呢?

即然可以針對別個網頁,就可以針對加上https通道並且必須以128bit加密的內容
自動由403.4的error page中轉進https協定中即可。

1.首先於"C:\WINDOWS\Help\iisHelp\common\"中編輯403-4.htm頁面
2.在<head>內 插入下列的scirpt

3.將檔案存檔後,以http進入至指定的頁面,即可直接轉置進到https。

<head>
<script type="text/javascript">
var url=window.location.href;
url=url.replace("http:","https:")
window.location.replace(url)
</script>
</head>

以上希望對大眾使用IIS的網友們有幫助。