亚洲综合社区欧美综合色-欧美逼逼一区二区三区-国产老熟女高潮精品网站-国产日韩最新视频在线看

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

尋覓安全編碼的蹤跡

發(fā)布時(shí)間:  2012/8/22 10:24:15
在做好安全軟件開發(fā)的準(zhǔn)備之后,開發(fā)團(tuán)隊(duì)還需要清楚安全編碼的原則。這是開發(fā)任何健壯、安全軟件的重要基礎(chǔ)。

保持代碼的簡潔

代碼庫越小越簡單,就越容易驗(yàn)證軟件的安全性。有些代碼的功能強(qiáng)大,可能會(huì)造成嚴(yán)重的后果,通過減少實(shí)現(xiàn)這些功能的源代碼模塊的大小,就可以極大地減少代碼中的漏洞數(shù)量。

在此,列示幾個(gè)縮短和簡化代碼的方法:

1、確保軟件僅包含所要求或規(guī)定的功能。增加不必要的功能會(huì)增加軟件的攻擊面,并增加軟件被破解的可能性。

2、盡可能地將大的或復(fù)雜的功能分解為更小、更簡單的功能。這會(huì)使系統(tǒng)更易于理解和記錄,在驗(yàn)證個(gè)別組件、整個(gè)系統(tǒng)的安全性和正確性時(shí)也更為輕松。

3、在構(gòu)建系統(tǒng)時(shí)盡量使其依賴關(guān)系盡可能地少。這樣做有一好處,即能夠確保在不影響整個(gè)系統(tǒng)操作的前提下就可以禁用或替換任何過程模塊或組件。

4、對軟件進(jìn)行封裝,限制泄露敏感信息,限制外部所造成的影響。

軟件開發(fā)團(tuán)隊(duì)還應(yīng)當(dāng)考慮軟件的大小和簡易性之間的平衡關(guān)系。如果將功能分解成太多的小功能,在查看不同的功能如何協(xié)同工作時(shí),就會(huì)存在困難。

確?梢韵蚯昂拖蚝笞匪菰创a

開發(fā)團(tuán)隊(duì)?wèi)?yīng)當(dāng)使軟件易于跟蹤每個(gè)要求,跟蹤其設(shè)計(jì)形式,以便于追溯其源代碼。當(dāng)然,開發(fā)團(tuán)隊(duì)還要使軟件能夠根據(jù)代碼的形式,追查其實(shí)現(xiàn)的每一個(gè)需求。

代碼的可重用性和可維護(hù)性

使代碼安全(簡易、可理解、可跟蹤)的一些特性也有助于代碼的可重用性和可維護(hù)性。如果代碼很容易被重用,其安全性就可以傳遞給未來的軟件項(xiàng)目。如果代碼易于維護(hù),在維護(hù)過程中就不太可能增加漏洞。

開發(fā)團(tuán)隊(duì)?wèi)?yīng)當(dāng)盡力構(gòu)建可以預(yù)測未來事件的代碼。要確保軟件需要的所有值源自數(shù)據(jù)庫或外部的屬性文件,而不是源自硬編碼(硬編碼是指在計(jì)算機(jī)程序中將變量用一個(gè)固定值來代替)。例如,在JAVA中,可考慮在方法簽名中使用輸入對象的bean可重用組件,而不是指定數(shù)據(jù)類型和預(yù)期值。這會(huì)使程序的功能按照需要而變化,并實(shí)現(xiàn)代碼重用。

遵循安全編碼的標(biāo)準(zhǔn)和指南

某些特定語言已經(jīng)有了明確的安全編碼的實(shí)踐和模式,開發(fā)團(tuán)隊(duì)?wèi)?yīng)當(dāng)優(yōu)先選擇并采用其安全編碼的標(biāo)準(zhǔn)和指南。否則,團(tuán)隊(duì)將不能避免在軟件開發(fā)中出現(xiàn)常見的編碼漏洞和潛在的易受攻擊的軟件架構(gòu)。開發(fā)團(tuán)隊(duì)?wèi)?yīng)當(dāng)積極地選擇應(yīng)對這些缺陷的安全方法。這些標(biāo)準(zhǔn)和指南既涉及到編碼過程的錯(cuò)誤做法和正確做法。例如,美國的卡內(nèi)基梅隆軟件工程學(xué)院就發(fā)布了C、C++、JAVA等語言的著名安全編碼標(biāo)準(zhǔn)。

還有一個(gè)大名鼎鼎的標(biāo)準(zhǔn),即汽車工業(yè)軟件可靠性聯(lián)會(huì)(MISRA)標(biāo)準(zhǔn),它雖然不是專為解決軟件安全而制定的標(biāo)準(zhǔn),但它確實(shí)可以作為編碼指南的一個(gè)例子。該機(jī)構(gòu)是相關(guān)行業(yè)汽車制造商和公司的協(xié)會(huì),其用戶早已經(jīng)超出了汽車行業(yè)。它為C和C++語言創(chuàng)建了安全編碼指南,并為嵌入式電子系統(tǒng)提供了有關(guān)可靠性的最佳實(shí)踐。改善代碼的質(zhì)量是改善代碼安全性的一個(gè)重要部分。

在確定好標(biāo)準(zhǔn)之后,開發(fā)團(tuán)隊(duì)?wèi)?yīng)當(dāng)對軟件執(zhí)行一致性測試,判定編碼是否正確地遵循了選定的編碼標(biāo)準(zhǔn)。CERT的源代碼分析試驗(yàn)室(SCAL)提供了針對CERT的C語言安全編碼標(biāo)準(zhǔn)的系統(tǒng)一致性測試。成功通過一致性測試的軟件就可以得到CERT加蓋的一致性測試印章。

使用編譯器的安全檢查和強(qiáng)化功能

不同的編譯器是為不同的目的開發(fā)的。例如,C語言標(biāo)準(zhǔn)定義了許多未定義的、未明確規(guī)范的、由實(shí)現(xiàn)環(huán)境決定的行為。其它的許多問題都留給了“實(shí)施質(zhì)量”,這意味著市場決定著行為是否合適。通常,開發(fā)團(tuán)隊(duì)可選擇實(shí)施實(shí)現(xiàn)了安全特性的編譯器,以此來改善安全性,也可以通過使用靜態(tài)分析等方法來改善安全性。

在開始代碼開發(fā)之前,開發(fā)者應(yīng)當(dāng)在最大程度上啟用編譯器的警告和錯(cuò)誤。如果在日后再去應(yīng)對所報(bào)告的問題,其代價(jià)將很昂貴。只要可能,要盡最大努力解決各種警告問題。如果解決警告問題并不現(xiàn)實(shí),就要在代碼中記錄這些警告。

現(xiàn)代開發(fā)環(huán)境,如微軟的Visual Studio包含著靜態(tài)代碼分析功能,而且能夠自動(dòng)應(yīng)用。此集成開發(fā)環(huán)境不僅能夠編譯代碼,而且還擁有200多個(gè)預(yù)定義的規(guī)則。開發(fā)人員可以根據(jù)這些規(guī)則,對照一系列潛在的漏洞來檢查代碼的諸多方面。

在編譯和鏈接實(shí)際的二進(jìn)制可執(zhí)行文件時(shí),應(yīng)當(dāng)禁用調(diào)試選項(xiàng)。例如,有些流行的商業(yè)級操作系統(tǒng)都曾被報(bào)告包含危急漏洞,可以使攻擊者利用操作系統(tǒng)的標(biāo)準(zhǔn)的調(diào)試接口。該接口的設(shè)計(jì)目的是為了使開發(fā)人員在測試期間能夠控制程序,在實(shí)際的生產(chǎn)系統(tǒng)中也保持可用。攻擊者為了能夠控制程序,會(huì)通過網(wǎng)絡(luò)利用此接口,提升攻擊者對調(diào)試器程序的特權(quán)。

有些編譯時(shí)的驗(yàn)證工具可以利用類型限定符。這些限定符可以給程序加上注釋,從而可以正式驗(yàn)證程序,免受已知漏洞的威脅。有些限定符不受語言的限定,并且可以檢測那些本應(yīng)當(dāng)由開發(fā)者檢查的“不安全的”系統(tǒng)調(diào)用,還有其它的工具可以檢測特定語言的漏洞。

此外,還可以修改編譯器,以檢測對堆棧數(shù)據(jù)區(qū)域的惡意篡改。這種保護(hù)的一種簡單形式就是“堆棧密探”。子程序的入口代碼將“堆棧密探”放在堆棧上,并由編譯器生成的子程序的退出代碼對它進(jìn)行驗(yàn)證。如果密探被篡改,退出代碼就會(huì)終止程序,同時(shí)產(chǎn)生一個(gè)錯(cuò)誤。

許多C/c++編譯器可以檢測不正確的格式字符串。例如,Gnu編譯器Collection支持C的擴(kuò)展。C擴(kuò)展可用于標(biāo)記包含不正確的格式字符串的函數(shù),而微軟的Visual C++ .NET中的/GS編譯器開關(guān)可被用于標(biāo)記運(yùn)行時(shí)代碼中的緩沖區(qū)溢出。

雖然類型和格式字符串的檢查對于檢測簡單的錯(cuò)誤非常有用,但對于檢測更為復(fù)雜的漏洞,就顯得有點(diǎn)兒小兒科了。有些編譯時(shí)的工具會(huì)執(zhí)行“污點(diǎn)分析”,即將輸入數(shù)據(jù)標(biāo)記為“污點(diǎn)”,確保在將此類數(shù)據(jù)用于易受攻擊的功能之前,先對其進(jìn)行驗(yàn)證。開源的“污點(diǎn)”分析工具Flayer就是一個(gè)好例子。此功能也被集成到了Perl語言中。其它的編譯器也包括更廣泛的邏輯,可以執(zhí)行全面的程序驗(yàn)證,并根據(jù)正式規(guī)范來驗(yàn)證復(fù)雜的安全屬性。程序驗(yàn)證編譯器最常被用于檢測C和 C++程序和庫中的漏洞和“有危險(xiǎn)的”構(gòu)造,其中也包括使程序易于遭受格式字符串攻擊和緩沖區(qū)溢出的構(gòu)造。

當(dāng)然,還有其它的一些要求編譯時(shí)支持的保護(hù)措施,這包括內(nèi)存中的變量和代碼位置的隨機(jī)化,特別是被加載庫的位置和匯編預(yù)處理程序位置的隨機(jī)化,這可以減少C和C++程序遭受堆棧的緩沖區(qū)溢出的可能性。這常常要求編譯器和運(yùn)行時(shí)的支持。 


本文出自:億恩科技【1tcdy.com】

本文出自:億恩科技【www.enidc.com】
-->

服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
      1
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線