2010年內(nèi)審師CIA《分析和信息技術(shù)》:信息技術(shù)(12)

字號(hào):

1. 應(yīng)用軟件開發(fā)
    1.1. 不同的軟件類型
    源程序由各種計(jì)算機(jī)語言編制而成,計(jì)算機(jī)語言可分為機(jī)器語言(machine language)、匯編語言(assembly language)、過程化語言(procedure language)和非過程化語言(non procedure language)。
    軟件由程序、過程(函數(shù))、處理規(guī)則以及相應(yīng)的文檔構(gòu)成。軟件可分為系統(tǒng)軟件(system software)和應(yīng)用軟件(application software),系統(tǒng)軟件用于管理計(jì)算機(jī)資源并為應(yīng)用軟件提供各種基本的和高級(jí)的運(yùn)算支持,應(yīng)用軟件則是為解決特定問題而編寫的程序。
    系統(tǒng)軟件包括操作系統(tǒng)(operating system)、數(shù)據(jù)庫管理系統(tǒng)(database management system)、語言轉(zhuǎn)換程序(1anguage translator)、實(shí)用程序(utility program)、中間件(middleware)等。磁盤工具(disk utility)是一種實(shí)用程序。大多數(shù)刪除程序只是刪除文件的指針,并不實(shí)際刪除文件所包含的數(shù)據(jù)塊,而磁盤工具則可以保證將數(shù)據(jù)塊中的數(shù)據(jù)也一并抹去。
    程序根據(jù)其運(yùn)行的方式可分為可直接執(zhí)行程序和可解釋執(zhí)行程序。
    直接執(zhí)行(executable)程序包含二進(jìn)制機(jī)器語言,可由CPU直接運(yùn)行。編譯器(compiler)將高級(jí)過程化語言程序轉(zhuǎn)換成目標(biāo)代碼(objective program),匯編器(assembler)將匯編語言程序轉(zhuǎn)換成目標(biāo)代碼程序,鏈接器(1inker)將多個(gè)目標(biāo)代碼程序鏈接成可執(zhí)行程序(executive program)。動(dòng)態(tài)鏈接庫(DDL:dynamic link libraries)是一種特殊的執(zhí)行程序文件,它在需要時(shí)才由主執(zhí)行文件調(diào)入內(nèi)存并執(zhí)行。
    解釋執(zhí)行(interpretative)程序包含的是一種中間代碼,不能由CPU直接運(yùn)行,而需要由解釋程序?qū)⑵滢D(zhuǎn)換成二進(jìn)制機(jī)器語言后再由CPU執(zhí)行。解釋器(interpreter)將高級(jí)語言程序轉(zhuǎn)換成中間代碼,并逐行解釋執(zhí)行。宏(macro)程序是解釋運(yùn)行的程序之一,通常用于記錄重復(fù)執(zhí)行的命令或擊鍵,使用戶能減少擊鍵的次數(shù)。
    1.2. 系統(tǒng)開發(fā)方法
    隨著信息技術(shù)的發(fā)展,信息系統(tǒng)的開發(fā)越來越成為一個(gè)龐大的系統(tǒng)工程,對(duì)內(nèi)它涉及組織的內(nèi)部結(jié)構(gòu)、管理模式、業(yè)務(wù)運(yùn)營、數(shù)據(jù)的收集與處理的各個(gè)方面,對(duì)外它涉及與其他系統(tǒng)的互聯(lián)與數(shù)據(jù)交換,面對(duì)一個(gè)大型、復(fù)雜的組織機(jī)構(gòu)和管理系統(tǒng),需要有一個(gè)系統(tǒng)的開發(fā)方法學(xué)來指導(dǎo)人們進(jìn)行應(yīng)用軟件開發(fā),并在使用與維護(hù)過程中進(jìn)行有效的管理,以保證應(yīng)用系統(tǒng)的機(jī)密性、完整性與可用性。
    生命周期法(system life cycle)是一種自頂向下的結(jié)構(gòu)化開發(fā)方法,它把系統(tǒng)生命周期分為六個(gè)階段:項(xiàng)目定義(project definition)、系統(tǒng)分析(systems analysis)、系統(tǒng)設(shè)計(jì)(design)、編程(programming)、實(shí)施(implementing)和后續(xù)維護(hù)(post implementation)。對(duì)每一個(gè)階段的任務(wù)、承擔(dān)人員、職責(zé)、各階段成果及其相互關(guān)系進(jìn)行了嚴(yán)格的定義,并制定了嚴(yán)密的文檔編制規(guī)范。生命周期法具有系統(tǒng)性、規(guī)范性、嚴(yán)密性等優(yōu)點(diǎn),其缺點(diǎn)則是開發(fā)周期長、難以適應(yīng)系統(tǒng)需求的快速變化。生命周期法對(duì)系統(tǒng)分析的要求極高,一旦系統(tǒng)分析出現(xiàn)偏差,則整個(gè)系統(tǒng)開發(fā)過程就可能要推倒重來。
    原型法(prototyping)首先根據(jù)用戶的最基本需求迅速開發(fā)一個(gè)實(shí)驗(yàn)?zāi)P徒唤o用戶使用,啟發(fā)用戶提出進(jìn)一步需求,然后對(duì)原型進(jìn)行修改,再使用,再修改,如此反復(fù),直至滿足用戶需求。原型法的優(yōu)點(diǎn)是用戶可以更好地參與系統(tǒng)的需求分析和設(shè)計(jì)過程,并在應(yīng)用過程中不斷完善,因此用戶滿意度高,開發(fā)速度較快。但由于原型法需要經(jīng)常根據(jù)用戶的需要迅速修改系統(tǒng),對(duì)系統(tǒng)開發(fā)技術(shù)和工具要求極高。通常開發(fā)者只有在擁有并掌握了強(qiáng)大的計(jì)算機(jī)輔助開發(fā)工具時(shí)才有可能應(yīng)用原型開發(fā)方法,因此,原型法又稱為快速原型法或快速應(yīng)用開發(fā)(rapid application development)方法。快速原型法通常分模塊創(chuàng)建系統(tǒng)直至整個(gè)系統(tǒng)完成,因此往往在系統(tǒng)的整體性和文檔的嚴(yán)密性上不如生命周期法。
    面向?qū)ο蟮拈_發(fā)方法認(rèn)為世界是由各種各樣的對(duì)象組成,每種對(duì)象都有各自的內(nèi)部狀態(tài)和運(yùn)動(dòng)規(guī)律,不同對(duì)象之間的相互作用和聯(lián)系就構(gòu)成了各種不同的系統(tǒng)。當(dāng)我們?cè)O(shè)計(jì)和實(shí)現(xiàn)一個(gè)客觀系統(tǒng)時(shí),如能在滿足需求的條件下把系統(tǒng)設(shè)計(jì)成由一些不可變(相對(duì)固定)部分組成的最小結(jié)合,這個(gè)設(shè)計(jì)就是的。因?yàn)樗盐樟耸录谋举|(zhì),因而不再會(huì)被周圍環(huán)境(物理環(huán)境和管理模式)的變化及用戶不斷變化的需求所左右,而這些不變的部分就是所謂的對(duì)象。
    1.1. 系統(tǒng)開發(fā)的各項(xiàng)活動(dòng)
    系統(tǒng)分析是對(duì)需要用信息系統(tǒng)解決的問題的分析,包括用戶需求分析和系統(tǒng)可行性研究。系統(tǒng)分析工作由系統(tǒng)分析員完成,因此系統(tǒng)分析員是信息系統(tǒng)部門和其他業(yè)務(wù)部門聯(lián)系的主要橋梁。系統(tǒng)分析階段的成果是《系統(tǒng)需求分析規(guī)格書》。能力計(jì)劃(capacity planning)是《系統(tǒng)需求分析規(guī)格書》的一個(gè)重要組成部分,包括系統(tǒng)能力的設(shè)計(jì)目標(biāo)、現(xiàn)有的設(shè)備能力清單以及對(duì)未來需求的預(yù)測(cè),它可以確保系統(tǒng)能滿足現(xiàn)有及未來的性能需求,同時(shí)避免設(shè)備的浪費(fèi)。如對(duì)于一項(xiàng)網(wǎng)絡(luò)工程,就必須在網(wǎng)絡(luò)實(shí)施前考慮程序的重新設(shè)置,并根據(jù)預(yù)期工作流量設(shè)計(jì)合適的網(wǎng)絡(luò)改造方案。
    系統(tǒng)設(shè)計(jì)是按照系統(tǒng)分析的要求來具體設(shè)計(jì)系統(tǒng)的過程,通??煞譃檫壿嬙O(shè)計(jì)和物理設(shè)計(jì)。系統(tǒng)設(shè)計(jì)階段的成果是《系統(tǒng)設(shè)計(jì)規(guī)格書》。
    編程是把設(shè)計(jì)規(guī)格書轉(zhuǎn)化成計(jì)算機(jī)軟件代碼的過程。
    測(cè)試:對(duì)所有編好的程序都必須進(jìn)行詳盡徹底的測(cè)試以確定系統(tǒng)是否能產(chǎn)生正確的結(jié)果。為確保系統(tǒng)測(cè)試的成功,開發(fā)小組與用戶應(yīng)共同作出一個(gè)系統(tǒng)的測(cè)試計(jì)劃。測(cè)試包括:模塊測(cè)試(unit testing/program testing)(也叫程序測(cè)試)、系統(tǒng)測(cè)試(system testing)、驗(yàn)收測(cè)試(acceptance testing)。
    轉(zhuǎn)換是用新系統(tǒng)替代老系統(tǒng)的過程。轉(zhuǎn)換策略包括:平行轉(zhuǎn)換策略(parallel strategy)、直接轉(zhuǎn)換策略(direct cutover strategy)、試點(diǎn)轉(zhuǎn)換策略(pilot study strategy)、分階段的轉(zhuǎn)換策略(phased approach strategy)。
    運(yùn)行與維護(hù)是為了保障生產(chǎn)系統(tǒng)的正常運(yùn)營,并解決系統(tǒng)中可能存在的不足,不斷完善系統(tǒng)的功能。
    1.2. 數(shù)據(jù)處理方式
    根據(jù)處理的時(shí)間分為:
    ¡ 批處理(batch processing):適用于有大量相似數(shù)據(jù)且可以間隔一定時(shí)間進(jìn)行集中處理的數(shù)據(jù)。
    ¡ 在線處理(on-line processing):適用于需要實(shí)時(shí)處理的數(shù)據(jù)。
    根據(jù)處理的地點(diǎn)分為:
    ¡ 集中處理(centralized processing):所有處理都在處理中心進(jìn)行,遠(yuǎn)程終端沒有處理能力。便于加強(qiáng)控制。
    ¡ 分散處理(decentralized processing):數(shù)據(jù)處理在各個(gè)遠(yuǎn)程節(jié)點(diǎn)獨(dú)立進(jìn)行,每個(gè)節(jié)點(diǎn)都有自己的獨(dú)立處理能力。用戶與系統(tǒng)數(shù)據(jù)最接近。
    分布處理(distributed processing):根據(jù)需要決定部分?jǐn)?shù)據(jù)集中處理、部分?jǐn)?shù)據(jù)分配到遠(yuǎn)程節(jié)點(diǎn)共同處理,與分散處理的區(qū)別是:在分布式處理方式下,數(shù)據(jù)更新需要各節(jié)點(diǎn)協(xié)調(diào)進(jìn)行,并增加了數(shù)據(jù)備份需求。其優(yōu)點(diǎn)是具有弱化保護(hù)(fail-soft protection)功能,即某一個(gè)節(jié)點(diǎn)發(fā)生故障,其他節(jié)點(diǎn)仍可以照常工作。
    1.1. 常用計(jì)算機(jī)審計(jì)技術(shù)
    ¡ 測(cè)試數(shù)據(jù)(test data):審計(jì)人員設(shè)計(jì)測(cè)試數(shù)據(jù)來檢查被審計(jì)單位計(jì)算機(jī)信息系統(tǒng)是否按預(yù)期要求運(yùn)行。
    ¡ 平行模擬(parallel simulation):審計(jì)人員設(shè)計(jì)一種與被審計(jì)單位計(jì)算機(jī)信息系統(tǒng)功能相同的模擬系統(tǒng),將數(shù)據(jù)在被審計(jì)單位的信息系統(tǒng)和模擬系統(tǒng)上平行運(yùn)行,比較兩者運(yùn)行的結(jié)果是否一致。
    ¡ 集成測(cè)試設(shè)施(integrated test facility):審計(jì)人員虛構(gòu)一些公司的數(shù)據(jù)并與被審計(jì)單位的真實(shí)數(shù)據(jù)一起處理,分析處理結(jié)果。這種方法可以對(duì)被審計(jì)單位的信息系統(tǒng)進(jìn)行持續(xù)測(cè)試,但其缺點(diǎn)是測(cè)試數(shù)據(jù)可能進(jìn)入被審計(jì)單位的真實(shí)數(shù)據(jù)環(huán)境。
    ¡ 嵌入式審計(jì)模塊(embedded audit module):在應(yīng)用系統(tǒng)的各個(gè)環(huán)節(jié)嵌入審計(jì)專用模塊,特點(diǎn)是能對(duì)被審計(jì)事項(xiàng)進(jìn)行連續(xù)監(jiān)督。
    應(yīng)用計(jì)算機(jī)審計(jì)技術(shù)可以大大提高內(nèi)部審計(jì)的效率與效果。如電腦化賬務(wù)處理可以自動(dòng)平賬,減少了大量人工查找核對(duì)的工作。
    1.2. 變更控制
    變更控制是指計(jì)算機(jī)系統(tǒng)的任何變動(dòng)只有經(jīng)過管理層的批準(zhǔn)后才能進(jìn)行,包括硬件變更控制和程序(軟件)變更控制。
    程序變更必須經(jīng)過全面測(cè)試并保存文檔,以留下何人、何時(shí)、做了何事的線索。良好的變更控制程序可以將擅自編輯生產(chǎn)程序、工作控制語言和操作系統(tǒng)軟件的可能性降到最低限度,減少修改程序給系統(tǒng)帶來的風(fēng)險(xiǎn)。例如,若對(duì)負(fù)責(zé)系統(tǒng)安裝與維護(hù)的程序員缺乏必要的監(jiān)督,該程序員就有可能利用系統(tǒng)的工具軟件對(duì)生產(chǎn)程序進(jìn)行變更,并且不留下任何審計(jì)線索。
    1.3. 終端用戶計(jì)算(終端用戶開發(fā))
    指系統(tǒng)的終端用戶在沒有或只有很少技術(shù)專家正式協(xié)助的條件下,自行完成系統(tǒng)開發(fā)的一種開發(fā)策略。這存在一定的風(fēng)險(xiǎn),包括:系統(tǒng)整體分析功能常被忽略,難以和其他系統(tǒng)集成和共享數(shù)據(jù);系統(tǒng)內(nèi)會(huì)產(chǎn)生一些專用的信息系統(tǒng);缺乏標(biāo)準(zhǔn)和文檔,使用及維護(hù)都嚴(yán)重地依賴開發(fā)者;由于缺乏監(jiān)督,致使相同的信息可能被以不同的方式處理,失去了信息的一致性,這也是終端用戶開發(fā)的系統(tǒng)中最難發(fā)現(xiàn)的缺陷。
    對(duì)應(yīng)用終端用戶計(jì)算的審計(jì)包括:確定終端用戶計(jì)算的應(yīng)用程序、對(duì)應(yīng)用程序風(fēng)險(xiǎn)進(jìn)行排列、對(duì)控制情況進(jìn)行文件處理和測(cè)試等。
    為降低終端用戶計(jì)算的風(fēng)險(xiǎn),內(nèi)部審計(jì)師可以建議:在組織內(nèi)部成立以咨詢服務(wù)為主要職能的“信息中心”;制定相應(yīng)的政策、規(guī)章制度來管理用戶開發(fā)。
    1.1. 應(yīng)用系統(tǒng)用戶認(rèn)證
    用戶認(rèn)證是一種從數(shù)據(jù)庫到操作系統(tǒng)等各類軟件中都很常見的安全防范技術(shù),應(yīng)用系統(tǒng)用戶認(rèn)證從概念上來說是非常簡(jiǎn)單的:系統(tǒng)的每一位用戶都被分配了一個(gè)的用戶名。對(duì)關(guān)聯(lián)該用戶名的資源或功能的訪問都要接受特定口令的保護(hù)。用戶認(rèn)證機(jī)制的主要優(yōu)點(diǎn)是它可以為創(chuàng)造出更復(fù)雜的授權(quán)方案提供選擇。所謂的認(rèn)證(authentication)是證明用戶身份的過程,而授權(quán)(authorization)則是標(biāo)識(shí)認(rèn)證用戶可訪問資源的過程。
    在特殊情況下,用戶認(rèn)證類型有可能采用多種復(fù)合認(rèn)證技術(shù),基本上分為:
    ¡ 只有你知道的事情,如賬號(hào)和密碼;
    ¡ 只有你擁有的東西,如身份證、工作證;
    只有你具有的特征,如指紋、聲音、虹膜。