中國石油天然氣股份公司應(yīng)用系統(tǒng)開發(fā)安全管理通則_第1頁
中國石油天然氣股份公司應(yīng)用系統(tǒng)開發(fā)安全管理通則_第2頁
中國石油天然氣股份公司應(yīng)用系統(tǒng)開發(fā)安全管理通則_第3頁
中國石油天然氣股份公司應(yīng)用系統(tǒng)開發(fā)安全管理通則_第4頁
中國石油天然氣股份公司應(yīng)用系統(tǒng)開發(fā)安全管理通則_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、中國石油信息安全標(biāo)準(zhǔn)1編號:中國石油天然氣股份有限公司應(yīng)用系統(tǒng)開發(fā)安全管理通則中國石油天然股份有限公司隨著中國石油天然氣股份有限公司(以下簡稱“中國石油”)信息化建設(shè)的穩(wěn)步 推進,信息安全日益受到中國石油的廣泛關(guān)注,本規(guī)范是依據(jù)中國石油信息安全的現(xiàn)狀,參照國際、國內(nèi)和行業(yè)相關(guān)技術(shù)標(biāo)準(zhǔn) 及規(guī)范,結(jié)合中國石油自身的應(yīng)用特點,制定的適合于中國石油信息安全的標(biāo)準(zhǔn)與 規(guī)范。目標(biāo)在于通過在中國石油范圍內(nèi)建立信息安全相關(guān)標(biāo)準(zhǔn)與規(guī)范,提高中國石 油信息安全的技術(shù)和管理能力。信息技術(shù)安全總體框架如下:通用安全管 理標(biāo)準(zhǔn)信息安全技術(shù)標(biāo)準(zhǔn)*授權(quán)管理通用標(biāo)準(zhǔn)認(rèn)證管理通用標(biāo)準(zhǔn)網(wǎng)絡(luò)安全管理概述y數(shù)據(jù)和文檔安全 管理規(guī)范少

2、操作系統(tǒng)安全管1 nt壬J書i硬件設(shè)備管理規(guī) 范.纟機房安全管理規(guī)通用網(wǎng)絡(luò)安全管理規(guī)范y商業(yè)軟件購買管 理標(biāo)準(zhǔn)y電子商務(wù)安全規(guī) 范歡咱系統(tǒng)安全管 理規(guī)范電子郵件安全管理規(guī)范少型理y管-內(nèi)S網(wǎng)絡(luò)安全管理規(guī)范y應(yīng)用系統(tǒng)使用安 全管理標(biāo)準(zhǔn)通則y應(yīng)用系統(tǒng)開發(fā)安 全管理標(biāo)準(zhǔn)通則y防御惡意代碼和計算機犯罪管理規(guī)通用安全管理標(biāo)準(zhǔn)概述加固管理通用標(biāo)準(zhǔn)T加密管理通用標(biāo)準(zhǔn)伸日志管理通用標(biāo)準(zhǔn)陸管塢- 標(biāo)準(zhǔn) -2)1)整體信息技術(shù)安全架構(gòu)從邏輯上共分為 7個部分,分別為:物理環(huán)境、硬件設(shè)備、網(wǎng)絡(luò)、操作系統(tǒng)、數(shù)據(jù)和文檔、應(yīng)用系統(tǒng)和通用安全管理標(biāo)準(zhǔn)。圖中帶陰影的方框中帶書名號的為單獨成冊的部分,共有13本規(guī)范和1本通用標(biāo)

3、準(zhǔn)。對于13個規(guī)范中具有一定共性的內(nèi)容我們整理出了7個標(biāo)準(zhǔn)橫向貫穿整個架構(gòu),這7個標(biāo)準(zhǔn)的組合也依據(jù)了信息安全生命周期的理論模型。每個標(biāo)準(zhǔn)都會對所有的規(guī)范中相關(guān)涉及到的內(nèi)容產(chǎn)生指導(dǎo)作用,但每個標(biāo)準(zhǔn)應(yīng)用在不同的規(guī)范中又會有相應(yīng)不同的具體的內(nèi)容。我們在行文上將這7個標(biāo)準(zhǔn)組合成一本通用安全管理標(biāo)準(zhǔn)單獨成冊。3) 全文以信息安全生命周期的方法論作為基本指導(dǎo),規(guī)范和標(biāo)準(zhǔn)的內(nèi)容基本都根據(jù)預(yù)防保護檢測跟蹤響應(yīng)恢復(fù)的理論基礎(chǔ)行文。本通則討論了在企業(yè)內(nèi)部自行開發(fā)一套應(yīng)用系統(tǒng)或外包開發(fā)所必須考慮到的幾個步驟,開發(fā)應(yīng)用系統(tǒng)的安全性考慮就好像建設(shè)樓房一樣,擁有越堅固的地基樓房越是穩(wěn)定,因此應(yīng)用系統(tǒng)在開發(fā)階段打好堅實的安

4、全基礎(chǔ),那么以后的日常維護工作就會很輕松。以下我們主要從系統(tǒng)開發(fā)的各個階段入手,考慮在標(biāo)準(zhǔn)的開發(fā)流程的各個階段中要注意的安全方面的考慮。本規(guī)范由中國石油天然氣股份有限公司發(fā)布。本規(guī)范由中國石油天然氣股份有限公司科技與信息管理部歸口管理解釋。起草部門:中國石油制定信息安全政策與標(biāo)準(zhǔn)項目組。說明在中國石油信息安全標(biāo)準(zhǔn)中涉及以下概念:組織機構(gòu)中國石油( PetroChina ) 指中國石油天然氣股份有限公司有時也稱“股份公 司”。集團公司( CNPC) 指中國石油天然氣集團公司有時也稱“存續(xù)公司” 。為區(qū)分 中國石油的地區(qū)公司和集團公司下屬單位,擔(dān)提及“存續(xù)部分”時指集團公司下屬 的單位。如:遼河油

5、田分公司存續(xù)部分指集團公司下屬的遼河石油管理局。計算機網(wǎng)絡(luò)中國石油信息網(wǎng)( PetroChinaNet ) 指中國石油范圍內(nèi)的計算機網(wǎng)絡(luò)系統(tǒng)。中 國石油信息網(wǎng)是在中國石油天然氣集團公司網(wǎng)絡(luò)的基礎(chǔ)上,進行擴充與提高所形成 的連接中國石油所屬各個單位計算機局域網(wǎng)和園區(qū)網(wǎng)。集團公司網(wǎng)絡(luò)( CNPCNe)t 指集團公司所屬范圍內(nèi)的網(wǎng)絡(luò)。中國石油的一些地區(qū)公司是和集團公司下屬的單位共用一個計算機網(wǎng)絡(luò),當(dāng)提及 “存續(xù)公司網(wǎng)絡(luò)” 時,指存續(xù)公司使用的網(wǎng)絡(luò)部分。主干網(wǎng) 是從中國石油總部連接到各個下屬各地區(qū)公司的網(wǎng)絡(luò)部分,包括中國 石油總部局域網(wǎng)、各個二級局域網(wǎng)(或園區(qū)網(wǎng))和連接這些網(wǎng)絡(luò)的專線遠程信道。有些單位

6、通過撥號線路連接到中國石油總部,不是利用專線,這樣的單位和所使用 的遠程信道不屬于中國石油專用網(wǎng)主干網(wǎng)組成部分。地區(qū)網(wǎng) 地區(qū)公司網(wǎng)絡(luò)和所屬單位網(wǎng)絡(luò)的總和。這些局域網(wǎng)或園區(qū)網(wǎng)互相連接 所使用的遠程信道可以是專線,也可以是撥號線路。局域網(wǎng)與園區(qū)網(wǎng) 局域網(wǎng)通常指,在一座建筑中利用局域網(wǎng)技術(shù)和設(shè)備建設(shè)的 高速網(wǎng)絡(luò)。園區(qū)網(wǎng)是在一個園區(qū)(例如大學(xué)校園、管理局基地等)內(nèi)多座建筑內(nèi)的 多個局域網(wǎng),利用高速信道互相連接起來所構(gòu)成的網(wǎng)絡(luò)。園區(qū)網(wǎng)所利用的設(shè)備、運 行的網(wǎng)絡(luò)協(xié)議、網(wǎng)絡(luò)傳輸速度基本相同于局域網(wǎng)。局域網(wǎng)和園區(qū)網(wǎng)通常都是用戶自 己建設(shè)的。 局域網(wǎng)和園區(qū)網(wǎng)與廣域網(wǎng)不同, 廣域網(wǎng)不僅覆蓋范圍廣, 所利用的設(shè)備、

7、 運行的協(xié)議、傳送速率都與局域網(wǎng)和園區(qū)網(wǎng)不同。傳輸信息的信道通常都是電信部 門建設(shè)的。二級單位網(wǎng)絡(luò) 指地區(qū)公司下屬單位的網(wǎng)絡(luò)的總和,可能是局域網(wǎng),也可能是 園區(qū)網(wǎng)。專線與撥號線路 從連通性劃分的兩大類網(wǎng)絡(luò)遠程信道。專線,指數(shù)字電路、 幀中繼、DDN和ATM等經(jīng)常保持連通狀態(tài)的信道;撥號線路,指只在傳送信息時才 建立連接的信道,如電話撥號線路或 ISDN 撥號線路。這些遠程信道可能用來連接 不同地區(qū)的局域網(wǎng)或園區(qū)網(wǎng),也可能用于連接單臺計算機。石油專網(wǎng)與公網(wǎng) 石油專業(yè)電信網(wǎng)和公共電信網(wǎng)的簡稱。最后一公里問題 建設(shè)廣域網(wǎng)時,用戶局域網(wǎng)或園區(qū)網(wǎng)連接附近電信部門信道 的最后一段距離的連接問題。 這段距離

8、通常小于一公里, 但也有大于一公里的情況。為簡便,同稱為最后一公里問題。涉及計算機網(wǎng)絡(luò)的術(shù)語和定義請參見中國石油局域網(wǎng)標(biāo)準(zhǔn)目標(biāo).規(guī)范的使用范圍.規(guī)范引用的文件或標(biāo)準(zhǔn).術(shù)語和定義.應(yīng)用系統(tǒng)幵發(fā)總體原則.系統(tǒng)需求收集和分析階段安全規(guī)范可行性研究分析幵發(fā)人員安全管理機制10建立系統(tǒng)幵發(fā)安全需求分析報告11系統(tǒng)設(shè)計階段的安全規(guī)范.12單點訪問控制,無后門。12人員職責(zé)和權(quán)限的定義12確保敏感系統(tǒng)的安全性12確保訪問層的安全性12確保日志管理機制健全12新系統(tǒng)的容量規(guī)劃13系統(tǒng)幵發(fā)階段安全規(guī)范.14系統(tǒng)幵發(fā)語言安全規(guī)范14系統(tǒng)開發(fā)安全相關(guān)工具管理規(guī)范19控制軟件代碼程序庫21在軟件幵發(fā)過程變更管理規(guī)范2

9、32425防御后門代碼或隱藏通道相關(guān)規(guī)范 ?25系統(tǒng)測試階段安全規(guī)范.27應(yīng)用系統(tǒng)的安全性檢測規(guī)范27控制測試環(huán)境29為測試使用真實的數(shù)據(jù)29在軟件轉(zhuǎn)移至生產(chǎn)環(huán)境前進行測試29應(yīng)用系統(tǒng)安全質(zhì)量鑒定30系統(tǒng)培訓(xùn)及文檔階段安全規(guī)范31新系統(tǒng)的培訓(xùn)31撰寫新系統(tǒng)和系統(tǒng)改進的文檔31應(yīng)用系統(tǒng)幵發(fā)外包安全控制32附錄1 參考文獻33幵發(fā)版本管理規(guī)范 幵發(fā)日志審核管理規(guī)范應(yīng)用系統(tǒng)開發(fā)安全管理通則1.1概述信息系統(tǒng)的許多的安全控制或者是安全性是通過系統(tǒng)的開發(fā)設(shè)計予以實 現(xiàn)的。因此如果在系統(tǒng)的開發(fā)設(shè)計階段沒有對系統(tǒng)的安全性給予充分的考 慮,那么系統(tǒng)本身一定會存在許多先天不足,系統(tǒng)就會漏洞百出。為了確 保應(yīng)用系

10、統(tǒng)的安全, 在應(yīng)用系統(tǒng)開發(fā)之前就應(yīng)當(dāng)對系統(tǒng)的安全要求有所確 認(rèn),并作為開發(fā)設(shè)計的階段的基礎(chǔ)予以落實。本規(guī)范主要規(guī)定了在系統(tǒng)開發(fā)的各個階段需要的各種安全規(guī)范, 從可行性 分析需求分析階段開始, 到設(shè)計階段, 再到開發(fā)階段和維護階段以及最后 的文檔階段的系統(tǒng)開發(fā)的各個階段進行闡述。 將不同階段下需要注意的安 全問題和相關(guān)的安全規(guī)范進一步進行描述和規(guī)定1.2目標(biāo)本規(guī)范的目標(biāo)為:同時確保應(yīng)保護應(yīng)用系統(tǒng)開發(fā)過程中的安全。 具體地說就是保護應(yīng)用系統(tǒng)開發(fā)過程中 免受未經(jīng)授權(quán)的訪問和更改, 保護系統(tǒng)開發(fā)中系統(tǒng)軟件和信息的安全, 確 保開發(fā)項目的順利正確的實施并對開發(fā)環(huán)境進行嚴(yán)格的控制。 用系統(tǒng)開發(fā)外包中的各項

11、安全。從而進一步保障中國石油業(yè)務(wù)的持續(xù)運營,保護中國石油信息資產(chǎn)安全, 即保護軟件及信息的完整性, 維護信息處理設(shè)備及通訊服務(wù)的完整性及可 用性,確保設(shè)備中的信息及相關(guān)基礎(chǔ)建設(shè)的安全, 確保正確、安全操作信 息處理設(shè)備,降低系統(tǒng)故障風(fēng)險??偠灾?要防止對中國石油經(jīng)營環(huán)境及信息的未經(jīng)授權(quán)存取、 破壞或干 擾;防止中國信息資產(chǎn)受損及企業(yè)運營受影響; 防止信息及信息處理設(shè)備 泄露及被偷竊1.3規(guī)范的使用范圍該套規(guī)范適用的范圍包括了 整個應(yīng)用系統(tǒng)幵發(fā)過程中的安全 。包括了系統(tǒng) 幵發(fā)可行性和需求分析階段的系統(tǒng)設(shè)計階段的安全, 統(tǒng)幵發(fā)階段的安全,系統(tǒng)測試階段的安全,系統(tǒng)培訓(xùn)和文檔階段的安全以及系統(tǒng)幵發(fā)

12、 外包的安全規(guī)范。主要規(guī)定了應(yīng)用系統(tǒng)幵發(fā)過程的安全保密,軟件的質(zhì)量的要求,系統(tǒng)和業(yè)務(wù)需求的符合性,保證敏感信息的安全,系統(tǒng)本身的穩(wěn)定性和兼容性問題。1.4 規(guī)范引用的文件或標(biāo)準(zhǔn)列文件中的條款通過本標(biāo)準(zhǔn)的引用而成為本標(biāo)準(zhǔn)的條款。凡是不注日期的引用文件,其最新版本適用于本標(biāo)準(zhǔn)。1.建筑設(shè)計防火規(guī)范 (GBJ16-87)2.高層民用建筑設(shè)計防火規(guī)范 ( GB50045-97)3.建筑內(nèi)部裝修設(shè)計防火規(guī)范 ( GB50222_95)1.5 術(shù)語和定義1.6 應(yīng)用系統(tǒng)開發(fā)總體原則應(yīng)用系統(tǒng)的開發(fā)應(yīng)當(dāng)遵循一系列的總體原則,以確保開發(fā)過程中的安全。 其中包括:a) 系統(tǒng)開發(fā)需得到公司領(lǐng)導(dǎo)層的重視和參與。需要領(lǐng)

13、導(dǎo)層組織開發(fā)力 量,協(xié)調(diào)各方關(guān)系并在開發(fā)的過程中提供決策性的意見和建議。b) 系統(tǒng)開發(fā)應(yīng)當(dāng)從業(yè)務(wù)需求得角度出發(fā),不得盲目追求系統(tǒng)先進性而忽 略了系統(tǒng)的實用性。系統(tǒng)的開發(fā)是為了更高的滿足業(yè)務(wù)上的需要,而 不是技術(shù)上的需要。c) 開發(fā)的方法和管理必須規(guī)范化、合理化、制度化。只有采用了規(guī)范化 合理化制度化的開發(fā)管理方法,才能確保開發(fā)的質(zhì)量和進度。d) 保證開發(fā)的進度和按時完成。確保開發(fā)工作及時、有效且高質(zhì)量的完 成。e) 系統(tǒng)開發(fā)必須具有一定的前瞻性,符合主流系統(tǒng)的發(fā)展方向。f) 開發(fā)人員安全意識的提高和加強。確保機密信息和關(guān)鍵技術(shù)不會泄 漏,特別是泄漏到競爭對手的手中,將會對公司的競爭力產(chǎn)生極大的

14、 影響。g) 充分利用現(xiàn)有的資源。1.7 系統(tǒng)需求收集和分析階段安全規(guī)范1.7.1可行性研究分析對于應(yīng)用系統(tǒng)開發(fā)項目需要進行一定的可行性分析, 確認(rèn)在開發(fā)工作 具備了的相當(dāng)資源和條件, 并且有能力滿足業(yè)務(wù)上的需求的情況下才 能開展,切忌盲目開發(fā)。既浪費了資源,又浪費了時間。可行性研究可以從技術(shù)方面, 需求方面, 投入方面和影響方面進行考 慮:1.7.1.1技術(shù)可行性分析根據(jù)業(yè)務(wù)上提出的需求, 從技術(shù)開發(fā)的角度分析是否現(xiàn)有的技術(shù)手 段和技術(shù)能力是否可以達到業(yè)務(wù)上要求的系統(tǒng)功能。 通??梢詮娜?個方面進行分析:a) 人員技術(shù)能力分析,指公司內(nèi)的系統(tǒng)開發(fā)隊伍是否有足夠的軟 件開發(fā)的技術(shù)能力來完成系統(tǒng)

15、開發(fā)的任務(wù),或第三方外包的開 發(fā)公司是否具有開發(fā)應(yīng)用系統(tǒng)的技術(shù)能力。b) 計算機軟件和硬件分析,指公司現(xiàn)有的軟件和硬件的性能是否 足夠滿足開發(fā)相應(yīng)的系統(tǒng)的要求。c) 管理能力分析,指現(xiàn)有的技術(shù)開發(fā)管理制度和管理流程是否成 熟且標(biāo)準(zhǔn)化,是否足夠系統(tǒng)開發(fā)的要求。1.7.1.2需求可行性分析系統(tǒng)的開發(fā)來源于業(yè)務(wù)上的需求, 因此需要對該需求進行可行性分 析,以判斷需求是否明確, 是否符合實際而不是天馬行空式的空談, 是否是在一定的時間范圍內(nèi)可實現(xiàn)的。1.7.1.3投資可行性分析根據(jù)業(yè)務(wù)需求和技術(shù)手段的分析, 確認(rèn)根據(jù)業(yè)務(wù)需求和技術(shù)手段需 要多少的投資才可以實現(xiàn), 確認(rèn)投資的數(shù)額是不是在可控制和可承 受

16、的范圍內(nèi)。1.7.1.4 影響可行性分析所謂的影響是指社會影響, 比如系統(tǒng)開發(fā)是否符合法律法規(guī)上的要 求,是否和相關(guān)的管理制度或行業(yè)標(biāo)準(zhǔn)相抵觸,是否不符合人文或 道德上的約束等等。1.7.2幵發(fā)人員安全管理機制1.7.2.1系統(tǒng)幵發(fā)人員職責(zé)分配管理規(guī)范在系統(tǒng)幵發(fā)的過程中,應(yīng)當(dāng)明確不同的人員的身份、職責(zé)。我們建 議在系統(tǒng)幵發(fā)過程中具體分以下的三種角色:項目負(fù)責(zé)人員:確保在整個系統(tǒng)幵發(fā)的各個階段都實施了相關(guān) 的安全措施,同時在整個系統(tǒng)幵發(fā)的過程中負(fù)責(zé)整個項目的幵 發(fā)安全管理。系統(tǒng)幵發(fā)人員:根據(jù)業(yè)務(wù)需求確保幵發(fā)的系統(tǒng)能夠滿足業(yè)務(wù)上 的需求和相應(yīng)的安全上的需求,同時滿足系統(tǒng)質(zhì)量上和進度上 的要求。系統(tǒng)

17、審核人員:對整個幵發(fā)的過程進行審核和監(jiān)督,確保幵發(fā) 的質(zhì)量和幵發(fā)的安全。1.7.2.2幵發(fā)人員授權(quán)管理規(guī)范a)根據(jù)該員工在整個幵發(fā)項目中所負(fù)責(zé)的幵發(fā)內(nèi)容授予其相應(yīng)的 權(quán)限和承擔(dān)的責(zé)任。b)幵發(fā)人員必須負(fù)責(zé)其幵發(fā)內(nèi)容的保密性,不得私自將幵發(fā)的相 關(guān)信息泄漏出去,即使是家人或幵發(fā)團隊中的其他幵發(fā)人員也 不得泄漏。但幵發(fā)人員有責(zé)任將幵發(fā)的相關(guān)信息告訴項目的負(fù) 責(zé)人員或幵發(fā)小組的負(fù)責(zé)人員。c)以書面的方式將員工的權(quán)限和相應(yīng)的責(zé)任提交給員工本人。必 須嚴(yán)格規(guī)定在為企業(yè)工作期間的所有和工作相關(guān)的幵發(fā)成果的 所屬權(quán)都歸企業(yè)所有。d)根據(jù)員工權(quán)限和責(zé)任的大小確認(rèn)是否需要簽署相關(guān)的保密協(xié) 議。e)在日常工作中記

18、錄員工的幵發(fā)相關(guān)的日志信息。f)員工一旦離職或調(diào)動崗位應(yīng)立即收回或調(diào)整其相應(yīng)的權(quán)限。1.7.2.3幵發(fā)人員必須訓(xùn)練幵發(fā)安全代碼的能力a)幵發(fā)人員應(yīng)該有能力防止幵發(fā)過程中的緩沖器溢出錯誤“bufferover flow attacks ”。b) 在整個開發(fā)的過程中必須完整的持續(xù)的進行代碼錯誤處理所規(guī)定 的流程。c) 錯誤問題報告應(yīng)該越通俗越好,不應(yīng)該在其中包含任何系統(tǒng)細節(jié) 問題。d) 應(yīng)該對重要的敏感信息進行加密的保護。e) 應(yīng)該使用一些相對復(fù)雜的加密和密鑰生成機制。f) 應(yīng)該單獨編寫安全性設(shè)計說明概要1.7.2.4 分離系統(tǒng)開發(fā)和運作維護管理層必須要確保應(yīng)用系統(tǒng)開發(fā)和應(yīng)用系統(tǒng)運作管理從組織人事

19、 和權(quán)限職責(zé)上必須分開。 盡管只有大型企業(yè)才有獨立的系統(tǒng)運行和 系統(tǒng)開發(fā)部門,但是把這些功能分開毫無疑問是非常必要的。職責(zé) 的分開對于大多數(shù)信息安全保護來說至關(guān)重要。a) IT 人員可以現(xiàn)場修復(fù)或者更改偶然的或者是惡意的數(shù)據(jù)和軟 件的問題。b) 測試代碼中往往包含調(diào)試或者查錯代碼,大大加大了主機系統(tǒng) 的性能負(fù)擔(dān)。c) 開發(fā)人員常常具有很高的權(quán)限,這在運行系統(tǒng)中會產(chǎn)生很大的 風(fēng)險,所以是不可接收的。1.7.3 建立系統(tǒng)開發(fā)安全需求分析報告a) 安全需求計劃應(yīng)該能夠達到期望的安全安全水平。其中包括了成 本的預(yù)估,完成各個安全相關(guān)流程所需的時間。b) 所有的有關(guān)應(yīng)用系統(tǒng)的更新或改進都必須是基于業(yè)務(wù)需

20、求的,并 且是有業(yè)務(wù)事件支持的。這里的業(yè)務(wù)需求不僅僅包括了系統(tǒng)的功 能、性能、開發(fā)費用、開發(fā)周期等內(nèi)容,還要明確系統(tǒng)的安全要 求。應(yīng)用系統(tǒng)的任何一次改進或更新都和該業(yè)務(wù)系統(tǒng)的所有者密 切相關(guān)。c) 一個安全開發(fā)需求分析計劃應(yīng)該由開發(fā)項目經(jīng)理和公司內(nèi)部安全 小組共同商議決定。d) 確保每一個應(yīng)用系統(tǒng)的用戶都意識到系統(tǒng)的更新或改進都和他們 本身密切相關(guān),所有的更新或改動的建議都必須是由業(yè)務(wù)需求出 發(fā)的而不是從所謂的“信息技術(shù)的要求”。e) 系統(tǒng)的每一次更新或改進都必須認(rèn)真的對待,必須進行詳細的需 求定義、需求分析以及測試評估以保證不會對業(yè)務(wù)造成任何的影 響。f) 業(yè)務(wù)需求是系統(tǒng)更新和改動的基礎(chǔ),因

21、此必須清晰明確的定義業(yè) 務(wù)的需求,絕對不允許在業(yè)務(wù)需求未經(jīng)過業(yè)務(wù)部門領(lǐng)導(dǎo)和主要負(fù) 責(zé)人員的認(rèn)可的情況下,盲目的進行開發(fā)工作。1.8 系統(tǒng)設(shè)計階段的安全規(guī)范1.8.1單點訪問控制,無后門。任何用戶如果希望訪問應(yīng)用系統(tǒng)中的某一個部分, 則必須通過統(tǒng)一的 且唯一的認(rèn)證授權(quán)方式以及流程1.8.2人員職責(zé)和權(quán)限的定義由于不是所有的人員對于某一個應(yīng)用系統(tǒng)都具有同樣的訪問或使用 的權(quán)限,因此系統(tǒng)必須具有基于人員職責(zé)的用戶授權(quán)管理以確保每個 用戶可以訪問到其權(quán)利范圍內(nèi)的應(yīng)用系統(tǒng)部分。 同樣的, 也要確保每 個用戶無法訪問其權(quán)限范圍以外的應(yīng)用系統(tǒng)部分。1.8.3確保敏感系統(tǒng)的安全性通過將應(yīng)用系統(tǒng)中敏感的信息保存

22、在服務(wù)器端以進行集中的加密的安全管理,確??蛻舳讼到y(tǒng)本身并不能存儲任何信息敏感的數(shù)據(jù)。1.8.4確保訪問層的安全性應(yīng)用系統(tǒng)不僅僅要確保系統(tǒng)模塊本身的安全性, 同時也要考慮模塊與 模塊之間的通訊的安全性。 這種模塊與模塊之間的安全性不僅僅包括 了應(yīng)用系統(tǒng)內(nèi)部模塊之間的安全, 也包括了應(yīng)用系統(tǒng)內(nèi)部模塊和外部 模塊之間的安全性, 如主機和客戶端之間通訊的安全性。 服務(wù)器和服 務(wù)器間通訊的安全性,本地系統(tǒng)和異地系統(tǒng)之間通訊的安全性1.8.5確保日志管理機制健全要求建立可以根據(jù)情況自由設(shè)置的日志管理機制,也就是說日志紀(jì)錄的范圍和詳細程度可以根據(jù)需求自行定制,且可以實現(xiàn)在應(yīng)用系統(tǒng)使用過程中進行日志的定制和

23、記錄。保留所有系統(tǒng)開發(fā)相關(guān)的程 序庫的更新審核紀(jì)錄。1.8.6 新系統(tǒng)的容量規(guī)劃容量規(guī)劃是指確定系統(tǒng)的總體規(guī)模, 性能和系統(tǒng)彈性。 容量規(guī)劃的具體內(nèi)容可能有所不同,但一般需要考慮以下方面:a) 系統(tǒng)的預(yù)期存儲容量和在給定的周期里面獲取生成和存儲的數(shù) 據(jù)量。c) d) e) f)b) 在線進程的數(shù)量和估計可能的占用資料對于系統(tǒng)和網(wǎng)絡(luò)的相應(yīng)時間和性能,即端對端系統(tǒng) 系統(tǒng)彈性要求和設(shè)計使用率 - 峰值,槽值和平均值等 安全措施例如加密解密數(shù)據(jù)對系統(tǒng)的影響。24x7 運作要求和可接受的系統(tǒng)宕機次數(shù) (維護或者設(shè)備更新導(dǎo) 致的必須性宕機)規(guī)劃容量的時候關(guān)于系統(tǒng)使用的信息了解得越多越好。 近來,由于互 聯(lián)

24、網(wǎng)站得使用以指數(shù)形式增長, 容量規(guī)劃變動效果不是非常顯著, 有 時甚至毫無用處。 原因在于很難估計實際的負(fù)載。 在容量估計的時候 需要盡量將情況設(shè)想得復(fù)雜一些。1.9 系統(tǒng)開發(fā)階段安全規(guī)范1.9.1 系統(tǒng)開發(fā)語言安全規(guī)范程序員可以使用很多指導(dǎo)規(guī)范來防止應(yīng)用程序中的普通的安全問題。 其中許多可以應(yīng)用于任何一個編程語言,但某些是針對特定的語言 的。特定語言的指導(dǎo)規(guī)范主要集中在Perl , Java和C/C+語言。大多數(shù)情況下, 一般的錯誤可以通過下功夫或者對基本的問題有很好的 理解來避免。 這些本可以避免的錯誤常常會導(dǎo)致很多安全漏洞, 從而 威脅信息的保密性、完整性和可用性。1.9.1.1 通用規(guī)

25、范1.9.1.1.1輸入驗證在客戶機 / 服務(wù)器環(huán)境下, 進行服務(wù)端的驗證而不是客戶端的驗 證(例如基于 Javascript 的驗證)。通過在客戶端和服務(wù)器之 間放置一個代理服務(wù)器,可以很容易繞過客戶端驗證。有了代 理服務(wù)器, 攻擊者可以在數(shù)據(jù)被客戶端 “驗證”后修改數(shù)據(jù) (與 “ man-in-the-middle ”攻擊類似)。在實際的校驗中,輸入校驗首先定義一個有效(可接受)的字 符集,然后檢查每個數(shù)據(jù)的字符是否在有效范圍內(nèi)。如果輸入 中包含無效的字符,應(yīng)用程序應(yīng)該返回錯誤頁面并說明輸入中 包含無效字符。這樣進行驗證的原因是定義無效的字符集比較 困難,并且一些不應(yīng)該有效的字符通常不會被

26、指出另外,邊界檢查(例如字符串的最大長度)應(yīng)該在字符有效性檢查以前進行。邊界分析可以防止大多數(shù)緩沖區(qū)溢出漏洞必須提到的是從環(huán)境變量獲得的數(shù)據(jù)也需要進行驗證。同時避 免在環(huán)境變量中存放敏感數(shù)據(jù) (例如密碼) 。某些 Unix 系統(tǒng)(例 如FreeBSD包含ps命令,可以讓用戶看到任何當(dāng)前進程的環(huán) 境變量,這常常會暴露保密性信息1.9.1.1.2SQL語句如果應(yīng)用程序需要連接后端數(shù)據(jù)庫,使用存儲過程而不要在代 碼中使用SQL語句。使用程序以外的嵌入在代碼中的SQL語句調(diào)用特別危險。難以防止攻擊者使用輸入域或者配置文件(由 應(yīng)用程序載入)來執(zhí)行嵌入式的 SQL攻擊。當(dāng)然,輸入驗證有 助于緩解這種風(fēng)險

27、1.9.1.1.3注釋代碼(comme nted code)當(dāng)應(yīng)用程序在實際環(huán)境中開始應(yīng)用時,應(yīng)該刪除所有的注釋代碼。注釋代碼是用來調(diào)試或者測試的,它們不是最終應(yīng)用程序1.9.1.1.4的一部分。無論如何應(yīng)該在實際的環(huán)境中刪除它們來避免意外 的執(zhí)行(一般注釋標(biāo)識被刪除后就無法激活休眠的代碼,但還 是存在可能性的,所以強烈建議執(zhí)行這項工作)。錯誤消息所有為用戶顯示的錯誤信息都不應(yīng)該暴露任何關(guān)于系統(tǒng)、網(wǎng)絡(luò) 或應(yīng)用程序的敏感信息。如果可能的話,最好使用包含編號的般的錯誤信息,這種信息只有開發(fā)者和 / 或支持小組才能理解。一般的錯誤信息的例子是“發(fā)生了錯誤(代碼1234),請您與系統(tǒng)維護部門聯(lián)系。 ”

28、1.9.1.1.5URL內(nèi)容對于web應(yīng)用,不要在URL上暴露任何重要信息,例如密碼、服務(wù)器名稱、 IP 地址或者文件系統(tǒng)路徑(暴露了web服務(wù)器的目錄結(jié)構(gòu))。這些信息可以在攻擊時使用。 例如下面就是一個不安全的 URL:PASSWORD&file=/home/USER/1.9.1.1.6設(shè)置PATH變量設(shè)置PATH為一個已知的值,而不是僅僅使用啟動時的缺省值。攻擊者可以在攻擊應(yīng)用程序時使用PATH變量,例如試圖執(zhí)行個任意的程序。這些也可以應(yīng)用于大多數(shù)其他的語言。1.9.1.2 Perl 語言安全規(guī)范多年以來, Perl 已經(jīng)成為用于系統(tǒng)管理和 WebCGI 開發(fā)的功能最強 的編程語言之一(幾

29、乎可以使用 Perl 做任何功能的程序)。但其 擴展應(yīng)用,即作為In ternet上CGI的幵發(fā)工具,使得它經(jīng)常成為 web服務(wù)器上的攻擊目標(biāo)。另外,大多數(shù)CGI腳本有著比一般用戶更高的權(quán)限,導(dǎo)致它更容易受攻擊。下面列舉了一些開發(fā)者(特別 是CGI程序員)可以使用的主動的預(yù)防性的措施來增強Perl代碼的整體安全性(請注意:這不是 web服務(wù)器CGI腳本安全性的指導(dǎo) 原則)。1.9.1.2.1Taint 驗證Perl 版本包含一個叫做 Taint Checking 的數(shù)據(jù)驗證措施。如 果起用該功能, 它就不允許通過用戶輸入 (任何程序外的輸入) 來操縱其他的外部程序(例如通過管道將數(shù)據(jù)導(dǎo)入另一個

30、程序 執(zhí)行)。一般而言,程序員不能信任輸入腳本和程序的數(shù)據(jù) (叫做 Tainted 數(shù)據(jù)),因為無法保證它不會產(chǎn)生危害(有意 或者無意的)。 Taint 驗證可以通過在命令行參數(shù)加入“ -T ” 來開啟。例如你可以在 Perl 腳本的第一行這樣加入“ -T ”:#!usr/bin/perl5 -TTainted 數(shù)據(jù)包括命令行參數(shù)、環(huán)境變量和來自文件的數(shù)據(jù)。 引用 tainted 數(shù)據(jù)的變量也成為 tainted 數(shù)據(jù)。如果腳本試圖 通過不安全的方式來使用 tainted 數(shù)據(jù)會產(chǎn)生一個致命錯誤 (對這種情況稱為“不安全的依賴” (Insecure dependency) 或者其他的說法)。啟

31、用 tainted 驗證在有些情況下會導(dǎo)致腳 本停止運行, 常常是由于 Perl 解釋器要求所有腳本引用的外部 程序的完全路徑必須在 PATH環(huán)境變量中列出,同時 PATH中包 含的每個目錄除了目錄的所有者及相應(yīng)的所有者用戶組外無法 修改。 Taint 驗證對于環(huán)境比較敏感,這就可能會導(dǎo)致大多數(shù) 程序員不愿使用它, 但是只要可能的話, 應(yīng)該使用 taint 驗證, 特別是代碼執(zhí)行其他程序功能時(例如在CGI腳本的情況下)。1.9.1.2.21.9.1.2.3安全模塊 如果不但輸入數(shù)據(jù)不可信而且實際的代碼也不可信會產(chǎn)生什么 情況例如用戶從網(wǎng)站上下載了一個 ActiveX 控件,而它實際是 一個特

32、洛伊木馬 (Trojan horse) 。這種情況下 taint 驗證就不 起作用。 安全模塊讓程序員可以在 Perl 腳本中將不同的代碼模 塊與安全對象聯(lián)系。每個安全對象對于運行的每塊代碼建立了 一個限制的環(huán)境。 這與 chroot 在一個進程中只能在整體目錄結(jié) 構(gòu)的一個子目錄中運行類似。而 saft 對象限制 perl 代碼只能 在 perl 包結(jié)構(gòu)的某些特定包中運行。 如何使用安全模式超出了 本文的范圍,但是程序員應(yīng)該在任何時候盡量使用這一功能。警告參數(shù) (-w)使用-w參數(shù)可以在Perl解釋腳本時顯示所有的警告信息。警 告可以對以下情況產(chǎn)生:只使用了一次的變量或者完全沒有使 用過得變量

33、,未定義的文件句柄,未關(guān)閉的文件句柄,或者將 非數(shù)值變量傳遞到數(shù)據(jù)變量。該功能不是針對安全處理的,但 是可以有助于調(diào)試直接或者間接對安全有危害的錯誤。一般推 薦總是使用 -w 參數(shù)。可以在 taint 驗證時在第一行這樣使用 -w 參數(shù):#!usr/bin/perl5 -Tw1.9.1.3 Java?語言安全規(guī)范自從 1995 年發(fā)布以來, Java 成為簡單或者復(fù)雜網(wǎng)絡(luò)應(yīng)用的有效編 程語言。它在設(shè)計時充分考慮了安全問題,因此它具有的限制特征 有:收集不再使用的內(nèi)存碎片的垃圾收集器,嚴(yán)格的“sandbox”安全模型,以及在特定主機上限制應(yīng)用程序的活動的安全管理器。 下面的使用中相關(guān)的規(guī)范:1.

34、9.1.3.1 不要在標(biāo)準(zhǔn)輸出上打印消息在實際的 Internet 系統(tǒng)中避免使用或者打印日志和錯誤消息, 原因是當(dāng)消息打印到標(biāo)準(zhǔn)輸出時,無法立即確定消息發(fā)生的地 點。而且它有可能將敏感信息透露給攻擊者。1.9.1.3.2 封裝從而對Java 中,如果沒有使用訪問標(biāo)識符 (access modifier(private protected 或者 public) 來聲明類、 方法和屬性, 那么它的默認(rèn) 訪問范圍是包, 并且同一包中的所有類都能訪問它。 必須記住雖 然包有封裝功能, 但它只有在每部分加載到包的代碼都由授權(quán)用 戶控制時才起作用。 惡意的用戶可以加入他們自己的類, 于包中的所有類、方法

35、和屬性都有完全的訪問權(quán)限。Java 的政策文件支持兩種控制包訪問權(quán)限的前綴。accessClassInPackagesun” 幵defineClassInPackage所有標(biāo)準(zhǔn)庫中的類都默認(rèn)是可以公共訪問的(除了由“ 頭的類)。為了保證一個包的安全性,必須修改 $JAVA HOME/jre/lib/security 文件夾中的文件。該文件中的重要行 是:=sun.雖然該方法有作用, 但是也有問題。 例如程序員在文件中定義包 的安全時必須十分小心。在中的值是字符型的,“sun. ”將保護“” 等包,但是不會對“ sun” 或者“ sunshine ”等包進行保護。另一個方法是使用 JAR密封(s

36、ealing)。JARQava ARchive)文件是一些類的打包壓縮格式的文件, 與常用的 ZIP 格式類似。 如 果從一個密封(sealing)的JAR文件中加載一個類時,隨后同一 個包的類只能從該JAR文件加載。為了起用密封(seali ng),必 須在建立JAR文件時這樣設(shè)置密封(seal)參數(shù):Sealed: true使用密封(sealing) 的JAR文件比權(quán)限(permission) 設(shè)置更 好,因為它不需要安裝安全管理器 (security manager)1.9.1.3.3 政策文件及以后的版本Java內(nèi)建的安全管理器是對應(yīng)用程序進行限制的一個方便的工 具。很多情況下需要編制

37、一個定制的安全管理器,提供了描述設(shè)置的方法而不是 實施它們。這是通過Java政策文件實現(xiàn)的??梢杂谜呶募韵鄬δK化的方式控制文件系統(tǒng)和 網(wǎng)絡(luò)的訪問。例如可以限制應(yīng)用程序只能修改名字是foo的文件推薦使用Java政策文件和安全管理器而不是重新創(chuàng)建一個類或 者系統(tǒng)來限制對主機和網(wǎng)絡(luò)的訪問。1.9.1.4C/C+?語言安全規(guī)范C本質(zhì)上是不安全的編程語言。例如如果不謹(jǐn)慎使用的話,其大多 數(shù)標(biāo)準(zhǔn)的字符串庫函數(shù)有可能被用來進行緩沖區(qū)攻擊或者格式字 符串攻擊。但是,由于其靈活性、快速和相對容易掌握,它是一個 廣泛使用的編程語言。下面是針對幵發(fā)安全的 C語言程序的一些規(guī) 范1.9.141緩沖區(qū)溢出避免使用

38、不執(zhí)行邊界檢查的字符串函數(shù),因為它們可能被用來 進行緩沖區(qū)溢出攻擊。下面是應(yīng)該避免使用的函數(shù)。同時,也 列出了每個函數(shù)相應(yīng)的比較安全的替換方式。不使用strc py(),使用 strncpy()不使用strcat(),使用 strncat()不使用sprintfO,使用 snprintf()不使用gets(),使用 fgets()在上面的前三個中函數(shù)中,每個替代函數(shù)的“n”表示了使用的緩沖區(qū)的大小。最后一個函數(shù)的“ f”,表示格式,它允許用戶 指定期望的輸入的格式。這些替換方程強制程序員定義使用的 緩沖區(qū)的尺寸以及確定輸入的類型。1.9.1.4.2格式化字符串攻擊(Format String

39、Attack )該類攻擊往往與緩沖區(qū)溢出相關(guān),因為它們往往主要利用了某 些函數(shù)的假設(shè),例如 sprintf() 和vsprintf()假設(shè)緩沖區(qū)的長度是無限的。然而即使使用 snprintf() 替換sprintf()也無法完全保護程序不受格式化字符串的攻擊。這些攻擊通過直接將 格式說明符(format specifiers )(%d, %s %門等)傳遞到輸 出函數(shù)接收緩沖區(qū)來進行。例如,以下的代碼就是不安全的:snprin tf(buffer, sizeof(buffer), stri ng)這種情況下,可以在字符串中插入格式說明符來操縱內(nèi)存的棧, 來寫入攻擊者的數(shù)據(jù)(這些數(shù)據(jù)中包含小的程

40、序代碼,并可由處理器接著執(zhí)行)。 ? 更多關(guān)于這些攻擊的具體內(nèi)容請見資源 章節(jié)。對以上的例子建議使用下面的代碼。%s”, string) ?snprintf(buffer, sizeof(buffer),進行格式字符串攻擊不太容易。首先攻擊者必須能獲得內(nèi)存棧 的內(nèi)容情況(或者從應(yīng)用導(dǎo)出或者使用調(diào)試器),然好必須知 道如何精確訪問特定的內(nèi)存空間來操縱棧中的變量。1.9.1.4.3 執(zhí)行外部程序推薦使用 exec() 函數(shù)而不是 system() 函數(shù)來執(zhí)行外部程序。這 是因為 system() 接收整個命令行的隨機的緩沖區(qū)來執(zhí)行程序。snprintf(buffer, sizeof(buffer)

41、, emacs %s, filename);system(buffer);在以上的例子中,可以通過使用分號利用文件名變量在 sehll 中插入額外的命令(例如文件名可以是 /etc/hosts; rm *,這將 在顯示 /etc/hosts 目錄文件的同時, 刪除目錄中的所有文件。 )。而 exec() 函數(shù)只保證第一個參數(shù)被執(zhí)行:execl(usr/bin/emacs, usr/bin/emacs, filename, NULL);上面的例子保證文件名僅僅作為一個參數(shù)輸入Emacs工具,。同樣它在Emacs命令中使用完全的路徑而不是使用可以被攻擊者 利用的PATH環(huán)境變量。1.9.1.4.4

42、 競爭條件( race condition ) 進程需要訪問資源時(無論是磁盤、內(nèi)存或是文件)通常需要 執(zhí)行兩個步驟:(1)? 首先測試資源是否空閑可用(2)? 如果可用, 就訪問該資源, 否則它等到資源不再使用為止 再去訪問它當(dāng)另一個進程在步驟 1和 2之間想要訪問同一個資源時就出現(xiàn) 問題了。這會導(dǎo)致不可預(yù)測的結(jié)果。進程可能會被鎖定,或者 一個進程籍此獲得了另一個進程的較大的權(quán)限而導(dǎo)致安全問 題。攻擊主要集中在有較大權(quán)限的程序上 (稱為 setuid 程序) 競爭條件攻擊通常利用程序執(zhí)行時可以訪問到的資源。另外權(quán) 限低的程序也存在安全風(fēng)險,因為攻擊者可能會等待有較高權(quán) 限的用戶執(zhí)行那個程序

43、( 例如 root) ,然后進行攻擊。面的建議有助于緩解競爭條件 (race condition) 攻擊:在進行文件操作時,利用那些使用文件描述符的函數(shù)而不要使 用那些使用文件路徑的函數(shù)(例如使用 fdopen() 而不要使用 fopen() )。文件描述符使得惡意的用戶在文件打開時或是在原 始的進程對文件進行操作前,無法使用文件連接(符號式的或 是物理的)來改變文件。在寫文件甚至在讀文件時使用 fcntl() 和 flock() 函數(shù)來對文 件加鎖,這樣它們就不能被其他進程訪問。它幾乎可以建立原 子級的操作。謹(jǐn)慎操縱零時文件,因為它往往會導(dǎo)致競爭條件。1.9.1.4.5 檢驗有效的返回值 檢

44、驗有效的返回值非常重要。一個例子是舊的 /bin/login 的實 現(xiàn)中不檢驗錯誤的返回值,導(dǎo)致當(dāng)它找不到 /etc/passwd 文件 時返回 root 的訪問權(quán)限。 如果該文件損壞了, 那么這種情況是 合理的,但如果該文件存在只是無法訪問,那么這就是一個大 問題。1.9.2 系統(tǒng)開發(fā)安全相關(guān)工具管理規(guī)范有許多方法來確保代碼符合一定的安全級別。 正如前面指出的, 最好 的方法之一是讓盡可能多的人來檢查代碼(而不是在QA環(huán)境中實際進行白箱或者黑箱測試) 。然而,有時代碼在開始實際環(huán)境的應(yīng)用前 往往沒有足夠的時間, 并且即使檢查代碼也會漏掉一些不容易發(fā)現(xiàn)的 錯誤。這些錯誤可能會對整個系統(tǒng)導(dǎo)致重大

45、的安全問題。因此(以及 其他的原因) ,使用源碼分析工具 (Source Code Analysis Tool(SCAT) 來自動進行某些檢查過程很有幫助。本文介紹了一些這方面的工具。每個工具都用同樣的測試工具來檢驗,這些測試工具包含C和Java的代碼段, 而這些代碼段存在潛在的安全錯誤。 我們比較了每個工具 的測試結(jié)果,并且仔細檢查了以下的屬性:a) 靈活性 有多種選項并能掃描多種類型的代碼的工具得分會 較高b) 正確性 主要目標(biāo)是發(fā)現(xiàn)正確的安全問題,并且不會出現(xiàn)大 量的誤報信息,或者更糟的是沒有發(fā)現(xiàn)真正的錯誤信息。c) 容易使用 大多數(shù)情況下,程序員只需要將工具指定到特定 的代碼上然后選擇

46、“掃描”。除非特別需要,程序員一般只做 抽樣檢查,而無需開發(fā)復(fù)雜的測試機制。d) 報表 掃描結(jié)果應(yīng)該以一種容易理解的格式來顯示,并且最 好同時提示修改每個問題的方法,并附加理由。每個工具在解析代碼上的速度可以忽略不計,所以沒有進行比較 (雖然這并不包括配置掃描的時間,而MOP在這方面相對于其他工具需要更多的時間)。另外,這些工具都可以免費獲得,甚至 可以獲得它們的源代碼,所以不需考慮它們的成本。1.9.2.1 工具一: PScanPscan是一個有針對性的掃描程序,主要用于發(fā)現(xiàn)C程序中的緩沖區(qū)溢出和格式化字符串攻擊。 該程序檢查所有用到標(biāo)準(zhǔn) C程序庫中 的 printf() 函數(shù)。sprint

47、f(buffer, variable);printf(buffer, variable);關(guān)于這些語句在緩沖區(qū)溢出和格式化字符串攻擊中怎樣被利用可 以查閱相關(guān)的C和C+文檔。Pscan的一個不足是不能發(fā)現(xiàn)由于越 界檢查不充分而引起的常規(guī)性緩沖區(qū)溢出。不過Pscan對于緩沖區(qū)溢出和格式化字符串攻擊的定位還是相當(dāng)精準(zhǔn)和快速的。P scan程序相對簡單,它只將結(jié)果返回都標(biāo)準(zhǔn)輸出,當(dāng)然也可以將其輸出到 文件,并且除了說明程序員應(yīng)該怎樣修正錯誤以外不給出語句為什 么出錯等類似的信息。 該工具一個顯著的特點是可以同時掃描多個 文件。總體而言 Pscan 程序相對簡單,易于使用,同時針對性很強,但是 由于它

48、能夠適用的范圍過于狹窄因此一般不推薦其在大型商業(yè)應(yīng) 用中使用,而只是檢查一些相對簡單的程序片斷。1.9.2.2 工具二: Flawfinder甚至可以對程序中的弱點進 shell 弱點等。Flawfinder是一個分析C程序安全隱患的靜態(tài)分析工具。和Pscan 類似,該程序可以發(fā)現(xiàn)很多種類型的錯誤, 除了 printf() 和標(biāo)準(zhǔn)的 字符串函數(shù), 它還可以發(fā)現(xiàn)競爭條件和系統(tǒng)調(diào)用。 Flawfinder 相比 較Pscan,它返回的錯誤信息要豐富很多,并且也更加詳細。而這 對于程序員來說非常重要。 Flawfinder 行分類,例如 buffer 弱點、格式弱點、C程序檢查工具,速度會,總之,

49、Flawofinder 是一個相當(dāng)出色的 界面友好,返回信息豐富,安裝使用相對簡單。該工具是檢查不同 規(guī)模的應(yīng)用程序的首選,唯一不足的是它只能用于C程序的檢查。1.9.3 控制軟件代碼程序庫1.9.3.1 管理運作程序庫我們通常將用于系統(tǒng)開發(fā)的開發(fā)軟件工具和開發(fā)平臺稱之為運作 程序,因此為了降低計算機程序被破壞的可能性,應(yīng)對運作程序庫 的訪問進行嚴(yán)格的控制:a) 嚴(yán)格的管理在開發(fā)設(shè)備上的存放開發(fā)運作程序的目錄。如果開 發(fā)運作程序沒有很好的保護,會造成系統(tǒng)及其設(shè)置會遭到未經(jīng) 授權(quán)的訪問并造成系統(tǒng)的安全性可靠性大大下降。b) 只有指定的人員如程序庫管理員經(jīng)過適當(dāng)?shù)墓芾硎跈?quán)后才可以 訪問運作程序庫,

50、對運作程序庫的訪問必須結(jié)合進行嚴(yán)格的訪 問控制技術(shù)手段和雙重訪問控制機制。1.9.3.1.1 嚴(yán)格的訪問控制可以通過以下規(guī)定實現(xiàn):a) 嚴(yán)格管理開發(fā)部門所在區(qū)域的安全保安管理,防止未經(jīng)授權(quán)的 人進入開發(fā)區(qū)域。b) 嚴(yán)格管理開發(fā)用途的計算機使用,只有指定的人員才可以訪問 開發(fā)用的計算機設(shè)備。c) 嚴(yán)格管理開發(fā)運作系統(tǒng)的認(rèn)證管理,建立嚴(yán)格的基于人員職責(zé) 的授權(quán)等級制度, 用口令或其他身份識別技術(shù)確認(rèn)訪問者身份。1.9.3.1.2 建立雙重訪問控制機制 雙重訪問控制機制就是對運作程序庫的管理需要兩個人同時進 行認(rèn)證才可以通過的方式。 比如對運作程序庫進行更改或刪除需 要兩個人進行口令認(rèn)證系統(tǒng)才允許進

51、行以上操作。 其總需要進行 認(rèn)證的兩個人彼此不知道對方的認(rèn)證口令或步驟。 因此該認(rèn)證過 程必須兩個人同時在場進行操作才可以。1.9.3.2 管理源程序庫我們通常將直接由程序設(shè)計語言編制而成的程序稱之為源程序。 源 程序的語言需要通過相應(yīng)的語言處理程序翻譯成機器語言程序后 才可以在計算機上運行。 因此源程序包含了系統(tǒng)及其控制如何實現(xiàn) 的細節(jié),為未授修改系統(tǒng)提供了很好的切入點, 例如設(shè)置邏輯炸彈。 且如果缺少源程序代碼會使得今后應(yīng)用系統(tǒng)的維護工作十分困難 甚至無法完成。因此為了降低計算機程序被破壞的可能性,應(yīng)對源 程序庫的訪問進行嚴(yán)格的控制:a) 嚴(yán)格的管理在開發(fā)設(shè)備上的存放源程序的目錄。如果源程

52、序沒 有很好的保護,會造成系統(tǒng)及其設(shè)置會遭到未經(jīng)授權(quán)的訪問并 造成系統(tǒng)的安全性可靠性大大下降。b) 只有指定的人員如程序庫管理員經(jīng)過適當(dāng)?shù)墓芾硎跈?quán)后才可以 訪問源程序庫,對源程序庫的訪問必須結(jié)合進行嚴(yán)格的訪問控 制技術(shù)手段和雙重訪問控制機制。c) 各項應(yīng)用均應(yīng)當(dāng)指定相應(yīng)的管理員。d) 信息技術(shù)支持人員 ( 非開發(fā)人員 ) 不應(yīng)當(dāng)自由的訪問源程序庫。e) 源程序庫和運作程序庫盡量分開存放并且分開管理。f) 源程序庫和運行的應(yīng)用系統(tǒng)盡量分開存放且分開管理。g) 源程序庫的更新和向程序員發(fā)布的源程序應(yīng)當(dāng)由指定的管理員 根據(jù)一定的授權(quán)進行,不得私自自行更新或發(fā)放。h) 應(yīng)當(dāng)保存所有對源程序庫進行訪問讀

53、取或修改的日志紀(jì)錄,以 便于日后審核。1.9.4在軟件幵發(fā)過程變更管理規(guī)范a)系統(tǒng)容易受到更改的攻擊,即使是完全授權(quán)的更改也可能存在破 壞性的影響,存在數(shù)據(jù)完整性的損失、應(yīng)用系統(tǒng)的不可用以及機 密信息的泄漏的風(fēng)險。為了使信息系統(tǒng)的損失降至最小,組織應(yīng) 對更改進行嚴(yán)格的控制,就是在系統(tǒng)幵發(fā)的每一個階段(可行性 研究、需求分析、設(shè)計、編碼、測試、培訓(xùn)等)的每一個更改實 施前經(jīng)過組織的評審與授權(quán)。b)對于敏感的應(yīng)用系統(tǒng)的更改應(yīng)由另一人員進行檢查,為了有效的 進行控制,組織應(yīng)當(dāng)建立更改控制審批程序,對更改的申請、評 審、測試、批準(zhǔn)、更改的計劃的提出和實施提出明確要求并嚴(yán)格 的實施,確保安全性與控制程序

54、不被損害,程序設(shè)計人員只能訪 問他們工作所必需的部分,確保任何的改動都是經(jīng)過審批的。C)更改的程序建議如下:清晰確認(rèn)所有的需要更改的應(yīng)用系統(tǒng)、信息、數(shù)據(jù)庫和相關(guān)的硬件設(shè)備。清晰的確認(rèn)更改的原因(業(yè)務(wù)上的具體流程和具體的需求或 幵發(fā)上的需求) 由授權(quán)的用戶提交更改的申請。保留相關(guān)的授權(quán)登記記錄。在正式的實施之前,更改的方案必須經(jīng)過評審并通過正式的 批準(zhǔn)。評審的確保授權(quán)的用戶在實施之前確認(rèn)并接受更改的內(nèi)容。確保在實施的過程中,盡量的減少對現(xiàn)行的商務(wù)運作系統(tǒng)的 影響。確保建立的文件系統(tǒng)在完成各項更改時得到修改,舊文件被很好的歸檔或處置。保證所有的應(yīng)用系統(tǒng)升級的版本的控制。確保所有的更改情求的審核跟蹤。確保用戶使用手冊作相應(yīng)的必要的更改。確保更改的實施選擇了適當(dāng)?shù)臅r機以確保更改的實施不會 干擾正常的商務(wù)運作。1.9.5開發(fā)版本管理規(guī)范1.9.5.1控制程序清單a) 在任何時候?qū)τ诔绦蚯鍐伪仨氝M行嚴(yán)格的控制并且及時地進行 更新。b) 對應(yīng)用系統(tǒng)開發(fā)源程序的打印的資料、電子版本或者是相關(guān)的 報告都必須進行控制,紙質(zhì)的文件應(yīng)當(dāng)保存在一個安全的環(huán)境 下,如保險柜等。電子文檔則應(yīng)當(dāng)進行一定的加密。c) 源程序相關(guān)信息可以幫助我們確認(rèn)系統(tǒng)問題的根源,并且一旦 掌握了系統(tǒng)源程序相關(guān)信息可以清楚地了解系

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論