江詩敏
(湖北閃云信息科技有限公司 湖北 武漢 430070)
隨著社會經(jīng)濟的不斷發(fā)展以及科學(xué)技術(shù)的飛速進步,計算機行業(yè)也迎來蓬勃發(fā)展時期。計算機的普及,在給人們生活工作帶來方便的同時,也出現(xiàn)了很多安全問題,小到個人隱私被窺探,大到公司機密被盜取,不僅破壞了整個行業(yè)的風(fēng)氣,也給國家法治社會的建設(shè)造成影響。因此在計算機為社會帶來巨大便捷的同時,還應(yīng)冷靜思考其安全問題。本文中的計算機軟件安全性主要是指計算機軟件系統(tǒng)在得到保護的情況下可以正常地運轉(zhuǎn)。計算機用戶需要計算機軟件具有多功能、低成本等優(yōu)點,這也是計算機軟件開發(fā)者追求的方向,在滿足用戶實際需求的過程中實現(xiàn)利益最大化。當(dāng)前計算機軟件安全問題的根本是在利潤的驅(qū)使下,部分商家放棄高成本的自主研發(fā)渠道,通過模仿、抄襲等方式來降低成本提高利益[1];另外,很多黑客通過攻擊其他計算機來獲取信息,侵犯被害人的權(quán)益。在計算機軟件的安全性問題上,使用者較多關(guān)注的是,自己在使用過程中遭遇到安全問題時的防護性能;而對于開發(fā)者來說,要想滿足用戶對安全性能的要求,他們需要綜合考慮計算機軟件各個方面的安全問題,來保證計算機軟件在運行過程中能夠有較強的穩(wěn)定性,及時察覺問題并解決,因此軟件安全性的檢查非常重要。通過對軟件安全性檢查的闡述,指出存在的問題并提出相應(yīng)的解決辦法,以期對提高安全性起到促進作用。
從國家層面來看,計算機軟件是實現(xiàn)信息化國家的靈魂,同時也是當(dāng)今各國爭奪的科技制高點,是信息化戰(zhàn)爭中的武器,而計算機軟件的安全性也直接影響到了國家的安全[2]。隨著信息化技術(shù)在國民經(jīng)濟發(fā)展中占據(jù)的地位越來越重要,軟件安全性能也必須有相應(yīng)的提升,軟件自身存在的任何漏洞、功能缺失或者是代碼修改都可能對整個系統(tǒng)造成極大的影響。從公司、個人層面來看,計算機軟件的安全問題會對計算機的性能產(chǎn)生直接的影響,特別是在電子商務(wù)快速發(fā)展的背景下,進一步提高企業(yè)、個人對計算機的安全管理水平,既是對公司企業(yè)負責(zé)的表現(xiàn),也是促進行業(yè)健康發(fā)展的必然要求。同時還對用戶和企業(yè)的信息等方面的安全具有一定的保障意義。
計算機軟件安全標準指的是保證計算機在運行的過程中,自身與軟件系統(tǒng)可以有序地進行工作而不受到外來非法因素的干擾。對用戶來講計算機軟件的安全性是使用過程的可靠性和操作的快捷性,而對于計算機軟件研發(fā)商來講,除了要滿足用戶對系統(tǒng)安全的需求外,還要保護計算機軟件研發(fā)人員的知識產(chǎn)權(quán),其主要目的是防止不法分子利用軟件系統(tǒng)來牟取暴利[3-4]。總之,計算機軟件安全并不只是指系統(tǒng)運行上的安全,還針對軟件自身以及開發(fā)權(quán)益不受到侵害等問題。
計算機軟件的設(shè)計工作具有復(fù)雜性和綜合性,而安全檢查又是貫穿整個過程的關(guān)鍵環(huán)節(jié)。計算機軟件技術(shù)作為高科技產(chǎn)品,其安全隱患更容易被利用,因此必須給予軟件安全檢測工作足夠的重視。另外,國內(nèi)知識產(chǎn)權(quán)保護的概念沒有深入人心,企業(yè)自主創(chuàng)新的氛圍也還沒有形成,在高額利潤的誘導(dǎo)下,很多軟件開發(fā)公司會放棄安全檢測工作,這樣很容易導(dǎo)致產(chǎn)品的安全性測試不及格,留下安全隱患。軟件安全檢測的目的是保障用戶的信息安全,提升軟件的品質(zhì),使軟件的適用范圍更廣。從目前的技術(shù)分類來看,計算機軟件的安全檢測技術(shù)可以分為靜態(tài)安全檢查和動態(tài)安全檢測,根據(jù)不同的環(huán)境來結(jié)合兩種檢測方式,提高軟件的安全性,保障用戶的權(quán)益[5]。具體的軟件安全檢測是一項復(fù)雜的工作,要想達到為軟件保駕護航的目的,就需要各部門精誠合作,共同提高軟件行業(yè)的質(zhì)量。目前我國仍是世界上最大的發(fā)展中國家,盡管軟件技術(shù)正在飛速發(fā)展,但無論是軟件開發(fā)的技術(shù)還是安全檢測的技術(shù),都與發(fā)達國家還存在較大的差距。因此,在大力推進軟件開發(fā)行業(yè)發(fā)展的同時,應(yīng)當(dāng)同等重視軟件安全檢測技術(shù)的研究,還要在解決安全問題方面下功夫,只有方方面面兼顧,才能促進計算機軟件業(yè)平穩(wěn)發(fā)展。
計算機軟件的安全性是困擾全球的一個難題,由于軟件在使用過程中具有開放性,使用環(huán)境也很復(fù)雜,所以要想其安全性取得突破性進展,還需要不斷加大研發(fā)力度[6]。總體來看,在對計算機軟件安全性檢測過程中應(yīng)當(dāng)注意以下問題:第一,計算機軟件的安全性測試手段多種多樣,要保證測試的可靠性和安全性,必須針對軟件的種類選擇合適的測試手段。軟件開發(fā)部門應(yīng)根據(jù)計算機軟件的不同種類制定不同的檢測方式,同時軟件開發(fā)部門應(yīng)配備專門的軟件分析人員,并與本崗位的工作人員密切合作,以保證計算機軟件的安全檢測質(zhì)量;第二,在軟件進行安全測試的過程中,首先是對軟件的結(jié)構(gòu)進行綜合的剖析和審視。然后檢測人員能夠及時、準確地應(yīng)對各種突發(fā)情況,只有檢測人員對軟件的結(jié)構(gòu)和性能有充分的認識,才能促使計算機軟件的安全檢測工作得以順利地進行。
較為常用的一種安全性測試方法就是動態(tài)安全性測試法。動態(tài)檢測技術(shù)以計算機軟件運行環(huán)境為媒介,在運行過程中對安全性進行分析。動態(tài)檢測方法的優(yōu)點在于無需查看源代碼,避免出現(xiàn)軟件源代碼泄露的問題,但也存在著操作煩瑣、程序煩瑣等劣勢。每種測試方式都有自己的優(yōu)勢和劣勢,在實際應(yīng)用的時候,需要按照軟件具體情況來進行選擇。不管采用什么測試方式,最終的目標都是為了讓軟件能夠更好地為人們所用,給人們的生活帶來便利[7-8]。
除動態(tài)監(jiān)測技術(shù)外還有一些應(yīng)用較為廣泛的技術(shù),例如形式安全測試、語法安全測試,以及基于軟件屬性的安全測試和錯誤導(dǎo)入的安全測試。其中形式化安全檢測是以數(shù)學(xué)模型為基礎(chǔ)的,對計算機軟件的形式利用規(guī)范語言進行檢查。
電腦軟件安全檢查還可以用編程語言進行。任何一種電腦軟件都是通過語言編程設(shè)計而成,而程序編寫的規(guī)則稱為電腦編程語法。軟件之所以能為用戶提供便利,供人使用,也要歸功于編程語法。通過編程語言對計算機軟件開展安全檢查的主要原理是通過反復(fù)切換輸入編程語法,觀察不同編程語法規(guī)則下計算機軟件是否還能持續(xù)穩(wěn)定地運行,以此判斷該軟件的安全性。
測試工作是通過計算機軟件的特性來進行的。這種檢測方法,首先需要對軟件編程中的安全屬性有所了解,之后通過輸入計算機軟件編程語法來檢驗是否與計算機軟件的屬性相匹配,從而確定該計算機軟件的安全性。
計算機軟件檢測的基本方法有兩種,靜態(tài)安全檢測技術(shù)和動態(tài)安全檢測技術(shù)。而靜態(tài)檢查技術(shù)是通過程序分析技術(shù)來分析和檢查程序的源代碼,從而實現(xiàn)對程序的安全檢查。靜態(tài)檢測技術(shù)的工作主要有兩個方面,一個是數(shù)據(jù)流,另一個是約束因素。該方法的優(yōu)點是操作方便,缺點是無法對計算機軟件中的全部問題進行排查。
采用故障導(dǎo)入的方法對計算機軟件進行安全檢查主要是通過分析計算機軟件的故障來判斷其安全性。因為絕大多數(shù)情況都無法準確地判斷出故障的發(fā)生時間和原因,所以對計算機軟件進行故障分析是一件十分煩瑣的工作,給故障導(dǎo)入方式檢測工作造成了困難。更重要的是,由于故障導(dǎo)入檢測法的專業(yè)程度很高,而且流程復(fù)雜,因此,該方法的使用率也比較低。
加強計算機軟件的安全防護,必須對軟件設(shè)計環(huán)節(jié)的相關(guān)管理給予足夠的重視。首先設(shè)計人員要將用戶信息安全視為信息開發(fā)和設(shè)計的重要依據(jù),軟件進入市場前應(yīng)該進行反復(fù)測試,找出并修復(fù)漏洞,防止技術(shù)不成熟的軟件流入市場,給用戶的財產(chǎn)帶來較大的安全隱患。其次增強軟件及電腦自身的防御能力,為電腦提供有效的安全防護,增加軟件的安全性。
計算機軟件在運行的過程中是最容易被攻擊的,因此,可以利用防火墻技術(shù)攔截運行過程中的不法入侵,該方法應(yīng)用簡單、有效性較高,也是目前應(yīng)用范圍最廣的一種防護方式。它的主要作用是在計算機內(nèi)外的網(wǎng)絡(luò)之間建立一個攔截保護程序,可以及時地檢測到任何想要對該計算機進行入侵的數(shù)據(jù)信息,從而保證計算機中的網(wǎng)絡(luò)系統(tǒng)不會因為外界的影響而遭受不法分子的攻擊等。目前市面上應(yīng)用最廣的一種防火墻技術(shù)就是狀態(tài)檢測防火墻,它的技術(shù)原理是在電腦運行的時候,對電腦中的某個接口上的數(shù)據(jù)包進行攔截,之后再對該數(shù)據(jù)包是否具有危險性質(zhì)進行觀察,最后由檢測的結(jié)果來判斷該數(shù)據(jù)包是否能夠進入電腦系統(tǒng)。使用較為廣泛的個人計算機防火墻是天網(wǎng)防火墻,這種防火墻技術(shù)不僅功能強大、運行穩(wěn)定,而且操作簡便,現(xiàn)在,它也被逐步地應(yīng)用到了各行各業(yè)之中。
(1)密碼方式
軟件運行過程中,通過在某些關(guān)鍵的位置詢問密碼,然后用戶按照密碼列表輸入密碼,校對正確后程序就可以繼續(xù)運行。這種方法雖然實施起來比較方便,但是它也有一些不足之處:會干擾人與人之間的正常交流,引起使用者的反感;口令是比較固定的,不法分子只要拷貝口令就可以不受限制地使用;加密點相對固定,易于破譯。
(2)軟件自校驗方式
當(dāng)軟件被安裝到用戶的電腦中時,軟件會自動地記錄下電腦硬件的奇偶校驗和、軟件安裝的磁道位置等信息,還會在硬盤的特殊磁道、 CMOS中做一些標記,之后會自動對安裝的程序進行改寫。完成上述操作之后,后續(xù)運行過程中可以自動對安裝過程中的詳細信息進行分析。此方法在正常運行情況下,使用者不會知道加密密碼,密碼非常穩(wěn)定。因此許多開發(fā)機構(gòu)都會采用這種方法。但是,如果使用者增加或者是減少計算機的硬件,原來的加密就會失去效果,需要重新設(shè)置才能正常運行。
(3)硬加密方式
硬加密指的是將計算機硬件與軟件進行組合實現(xiàn)加密,具體來看,加密后運行軟件時首先需要訪問指定的硬件,與硬件進行數(shù)據(jù)交換,如果發(fā)現(xiàn)計算機沒有安裝特定的硬件而沒有完成數(shù)據(jù)交換,軟件也就無法啟動。當(dāng)前具有代表性的產(chǎn)品有加密卡、軟件鎖/狗、智能化軟件鎖/狗。其中加密卡法的加密力度很大,防追蹤措施也很完善。如果要在其他計算機上重新安裝該軟件,則需要將加密卡換插,并且其加密成本相對較高,因此,一般用于集成系統(tǒng)上。
軟件追蹤技術(shù)可以悄無聲息地實現(xiàn)軟件盜取的目的,為了有效防止軟件追蹤技術(shù)的破壞,需要利用反追蹤技術(shù)來切斷不法分子的追蹤途徑,以及防止不法分子對計算機軟件進行復(fù)制或加密等非法操作。計算機軟件在運行時都要依賴于CPU,如果此時受到外部不法分子的監(jiān)視,就等于是將該計算機系統(tǒng)程序的真實情況直接反映給了追蹤者,進而可以輕而易舉地復(fù)制該計算機中的軟件,給計算機軟件上的性能帶來了安全隱患。因此必須要以計算機軟件為目標,嚴格規(guī)避反追蹤技術(shù)中可能出現(xiàn)的安全隱患、漏洞等問題,進一步強化對計算機軟件反追蹤技術(shù)的健全與完善,使其在使用過程中,能夠最大限度地發(fā)揮出反追蹤技術(shù)的保護效果[10-12]。
計算機防火墻對病毒的防御能力比較低,為減少使用過程中的安全問題,可以采取實時監(jiān)控方式。在用戶和軟件以及系統(tǒng)的電腦專家之間建立起聯(lián)系,當(dāng)計算機在運行中發(fā)生異常情況時,可以由電腦專家展開故障分析功能,并開啟軟件檢測程序,及時遏制病毒傳播避免造成重大損失。除此之外,通過對計算機實時監(jiān)控進行周期性的安全檢查,發(fā)生問題時,可以由計算機管家進行及時分析和引導(dǎo),不僅可以保障使用者的安全,還可以提高計算機軟件的安全性和可靠性[13]。
綜上所述,人們在享受信息技術(shù)帶來便利的同時,也面臨著多重網(wǎng)絡(luò)威脅。對于用戶來說,計算機以及軟件的安全性是考慮的第一要素,即使軟件存在漏洞,也希望能夠有效阻止外來入侵的破壞。而對于計算機軟件的開發(fā)者來說,希望盡可能地清除軟件中的漏洞,一旦發(fā)現(xiàn)漏洞,立刻采取相應(yīng)的措施來進行補救,盡可能地把用戶的損失降低到最小。計算機軟件的管理是一項比較復(fù)雜的工程,而且軟件的漏洞問題也無法根除,因此,計算機軟件設(shè)計者應(yīng)該采取一系列有效的預(yù)防措施來強化軟件市場的安全性能,站在用戶的角度來考慮,切實保證軟件使用過程中的安全,才能促進計算機軟件行業(yè)得到持續(xù)發(fā)展。