CISP軟件安全開發(fā)(含真題)課件_第1頁
CISP軟件安全開發(fā)(含真題)課件_第2頁
CISP軟件安全開發(fā)(含真題)課件_第3頁
CISP軟件安全開發(fā)(含真題)課件_第4頁
CISP軟件安全開發(fā)(含真題)課件_第5頁
已閱讀5頁,還剩92頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

操作系統(tǒng)(cāozuòxìtǒnɡ)安全軟件開發(fā)安全(ānquán)第一頁,共九十七頁。背景(bèijǐng)為什么要做軟件安全開發(fā)(kāifā)?一、網(wǎng)絡(luò)攻擊階段自動化二、網(wǎng)絡(luò)攻擊智能化:相當(dāng)多的工具已經(jīng)具備了反偵破、只能動態(tài)行為、攻擊工具變異等特點三、漏洞的發(fā)現(xiàn)和利用速度越來越快四、突破防火墻的滲透率越來越高

第二頁,共九十七頁。課程內(nèi)容3軟件安全開發(fā)知識體知識域軟件安全開發(fā)概況軟件安全需求和設(shè)計軟件安全編碼軟件安全測試軟件安全開發(fā)的關(guān)鍵工作軟件安全開發(fā)的必要性軟件安全開發(fā)背景知識子域軟件安全開發(fā)模型及研究第三頁,共九十七頁。軟件(ruǎnjiàn)安全的基本概念軟件的定義計算機程序、方法、規(guī)則和相關(guān)的文檔資料以及在計算機上運行時所需的數(shù)據(jù)(IEEE)軟件安全軟件安全(SoftwareSecurity)就是使軟件在受到惡意攻擊的情形(qíngxing)下依然能夠繼續(xù)正確運行及確保軟件被在授權(quán)范圍內(nèi)合法使用的思想△保護(hù)軟件中的知識成果、知識產(chǎn)權(quán)、數(shù)據(jù)不被非法使用,包括篡改及盜用、破壞等,保證系統(tǒng)的正常運作△4第四頁,共九十七頁。軟件安全問題(wèntí)廣泛存在軟件應(yīng)用廣泛(guǎngfàn)電腦游戲、火車票售票系統(tǒng)、多媒體教學(xué)手機、航天飛機、人造衛(wèi)星…軟件安全問題廣泛存在運行錯誤售票系統(tǒng)反應(yīng)慢、連不上、崩潰多媒體教學(xué)系統(tǒng)死機黑客盜取泄漏的銀行密碼系統(tǒng)被攻擊服務(wù)器被攻擊機密數(shù)據(jù)丟失等安全問題日益增加…5第五頁,共九十七頁。軟件(ruǎnjiàn)安全問題產(chǎn)生后果軟件安全問題的后果造成產(chǎn)品運行不穩(wěn)定,得不到正確結(jié)果甚至崩潰可靠性、可用性被惡意攻擊,導(dǎo)致信息泄漏/數(shù)據(jù)破壞(pòhuài)等后果保密性、完整性一些因軟件安全問題導(dǎo)致的嚴(yán)重后果售票系統(tǒng)癱瘓美國放射治療儀超劑量輻射事件阿麗亞納5號火箭首發(fā)失敗事件Stuxnet病毒攻擊伊朗布什爾核電站6第六頁,共九十七頁。社工庫第七頁,共九十七頁。社工庫第八頁,共九十七頁。漏洞情況(qíngkuàng)統(tǒng)計中國國家漏洞庫15年漏洞數(shù)量(shùliàng)情況統(tǒng)計9第九頁,共九十七頁。軟件產(chǎn)生安全問題(wèntí)的原因內(nèi)因軟件開發(fā)安全意識淡薄軟件開發(fā)缺乏安全知識軟件趨向大型化和復(fù)雜化軟件第三方擴(kuò)展增多外因軟件使用場景更具威脅(部署(bùshǔ)環(huán)境)系統(tǒng)漏洞、第三方應(yīng)用漏洞旁站攻擊、C段攻擊、C段嗅探等10第十頁,共九十七頁。軟件(ruǎnjiàn)越來越復(fù)雜11Windows系列(xìliè)軟件源代碼行數(shù)第十一頁,共九十七頁。漏洞與軟件(ruǎnjiàn)安全漏洞普遍存在平均每1000行程序存在20個缺陷(Dacey2003)采用嚴(yán)格的軟件(ruǎnjiàn)開發(fā)質(zhì)量管理機制和多重測試環(huán)節(jié),軟件(ruǎnjiàn)公司的缺陷率(

千行代碼):普通軟件開發(fā)公司的缺陷密度為4~40個缺陷高水平的軟件公司的缺陷密度為2~4個缺陷美國NASA的軟件缺陷密度可達(dá)到0.1個缺陷漏洞已經(jīng)成為危害軟件安全的主要因素危及用戶對軟件的信任、業(yè)務(wù)運營,還會危及一系列關(guān)鍵基礎(chǔ)設(shè)施和應(yīng)用12第十二頁,共九十七頁。試題(shìtí)131.安全的運行環(huán)境是軟件安全的基礎(chǔ),操作系統(tǒng)安全配置是確保運行環(huán)境安全必不可少的工作,某管理員對即將上線的Windows操作系統(tǒng)進(jìn)行了以下四項安全部署工作,其中哪項設(shè)置不利于提高運行環(huán)境安全?a、操作系統(tǒng)安裝完成后安裝最新的安全補丁,確保操作系統(tǒng)不存在可被利用的安全漏洞b、為了方便進(jìn)行數(shù)據(jù)備份,安裝Windows操作系統(tǒng)時只使用一個分區(qū)所有數(shù)據(jù)和操作系統(tǒng)都存放在C盤c、操作系統(tǒng)上部署防病毒軟件,以對抗病毒的威脅d、將默認(rèn)的管理員賬號Administrator改名,降低口令暴力破解攻擊的發(fā)生可能某購物網(wǎng)站開發(fā)項目經(jīng)過需求分析進(jìn)入系統(tǒng)設(shè)計階段,為了保證用戶賬戶的安全,項目開發(fā)人員決定用戶登陸時如果用戶名或口令輸入錯誤,給用戶返回“用戶名或口令輸入錯誤”信息,輸入錯誤達(dá)到三次,將暫時禁止登錄該賬戶,請問以上安全設(shè)計遵循的是哪項安全設(shè)計原則:a、最少共享機制原則b、經(jīng)濟(jì)機制原則c、不信任(xìnrèn)原則d、默認(rèn)故障處理保護(hù)原則

答案C第十三頁,共九十七頁。試題(shìtí)14某網(wǎng)站管理員小鄧在流量監(jiān)測中發(fā)現(xiàn)近期網(wǎng)站的入站ICMP流量上升了250%,盡管網(wǎng)站沒有發(fā)現(xiàn)任何的性能下降或其他問題,但為了安全起見,他仍然向主管領(lǐng)導(dǎo)提出了應(yīng)對措施,作為主管負(fù)責(zé)人,請選擇有效的針對此問題的應(yīng)對措施:a、在防火墻上設(shè)置策略,阻止所有的ICMP流量進(jìn)入(關(guān)掉ping)b、刪除服務(wù)器上的ping.exe程序c、增加(zēngjiā)帶寬以應(yīng)對可能的拒絕服務(wù)攻擊d、增加網(wǎng)站服務(wù)器以應(yīng)對即將來臨的拒絕服務(wù)攻擊第十四頁,共九十七頁。試題(shìtí)15某單位系統(tǒng)管理員對組織內(nèi)核心資源的訪問制定訪問策略,針對每個用戶指明能夠訪問的資源,對于不在指定資源列表中的對象不允許訪問,該訪問控制策略屬于以下哪一種:a、強制訪問控制b、基于角色的訪問控制c、自主訪問控制d、基于任務(wù)的訪問控制答案C在2014年巴西世界杯舉行期間,,一些黑客組織攻擊了世界杯贊助商及政府(zhèngfǔ)網(wǎng)站,制造了大量網(wǎng)絡(luò)流量,阻塞正常用戶訪問網(wǎng)站△這種攻擊類型屬于下面什么攻擊()a、跨站腳本(crosssitescripting,XSS)攻擊b、TCP會話劫持(TCPHIJACK)攻擊c、ip欺騙攻擊

d、拒絕服務(wù)(denialservice.dos)攻擊第十五頁,共九十七頁。知識(zhīshi)域:軟件安全開發(fā)概況知識子域:軟件安全開發(fā)的必要性理解軟件安全保障的含義(hányì)、思路和目標(biāo)了解傳統(tǒng)軟件開發(fā)的局限性理解軟件安全開發(fā)生命周期的概念和必要性16第十六頁,共九十七頁。需要安全(ānquán)的軟件理想的安全軟件不存在安全漏洞能抵御各種攻擊威脅按照預(yù)期的方式執(zhí)行軟件(ruǎnjiàn)安全保障的思路通過在軟件開發(fā)生命周期各階段采取必要的、相適應(yīng)的安全措施來避免絕大多數(shù)的安全漏洞△采取措施只能有效減少,但并不能完全杜絕所有的安全漏洞△沒有完全安全的軟件17第十七頁,共九十七頁。軟件安全(ānquán)保障軟件可以規(guī)避安全漏洞而按照預(yù)期的方式執(zhí)行其功能目標(biāo):在軟件開發(fā)生命周期中提升軟件的安全性可信賴性:無論是惡意而為還是無意疏忽,軟件都沒有(méiyǒu)可利用的漏洞存在可預(yù)見性:對軟件執(zhí)行時其功能符合開發(fā)者的意圖的信心△遵循性:將(軟件開發(fā))跨學(xué)科的活動計劃并系統(tǒng)化,以確保軟件過程和軟件產(chǎn)品滿足需求、遵循相關(guān)標(biāo)準(zhǔn)△18第十八頁,共九十七頁。軟件(ruǎnjiàn)安全保障與風(fēng)險管理在軟件(ruǎnjiàn)安全保障中,需要貫徹風(fēng)險管理的思想“安全就是風(fēng)險管理”軟件安全是以風(fēng)險管理為基礎(chǔ)安全不必是完美無缺的,但風(fēng)險必須是能夠管理的,將風(fēng)險值降到最低最適宜的軟件安全策略就是最優(yōu)的風(fēng)險管理對策這是一個在有限資源前提下的最優(yōu)選擇問題防范不足會造成直接的損失;防范過多又會造成間接的損失19第十九頁,共九十七頁。傳統(tǒng)(chuántǒng)的軟件開發(fā)局限性傳統(tǒng)軟件開發(fā)教育的局限性軟件教育包括軟件工程、數(shù)據(jù)結(jié)構(gòu)、編譯原理、系統(tǒng)結(jié)構(gòu)、程序語言等缺乏安全開發(fā)教育傳統(tǒng)開發(fā)人員能力的局限性對安全問題沒有的足夠理解不了解安全設(shè)計的基本原理不知道安全漏洞的常見類型不知道如何設(shè)計針對安全的測試數(shù)據(jù)傳統(tǒng)軟件生命周期的局限性軟件生命周期包括需求分析、架構(gòu)設(shè)計、代碼編寫、測試和運行維護(hù)五個階段缺乏安全介入的階段20需要(xūyào)安全的軟件開發(fā)!第二十頁,共九十七頁。軟件(ruǎnjiàn)安全開發(fā)生命周期軟件安全開發(fā)采取措施防止由于設(shè)計、開發(fā)、提交、升級或維護(hù)中的缺陷而導(dǎo)致的系統(tǒng)脆弱性20世紀(jì)末/21世紀(jì)(shìjì)初開始展開研究安全軟件開發(fā)生命周期安全軟件開發(fā)涵蓋了軟件開發(fā)整個生命周期是軟件從產(chǎn)生直到報廢的生命周期,周期內(nèi)有問題定義、可行性分析、總體描述、系統(tǒng)設(shè)計、編碼、調(diào)試和測試、驗收與運行、維護(hù)升級到廢棄等階段△通過軟件開發(fā)的各個步驟來確保軟件的安全性,其目標(biāo)是確保安全的軟件得以成功21第二十一頁,共九十七頁。安全(ānquán)軟件開發(fā)生命周期將安全融入在設(shè)計/開發(fā)/測試等過程中融入安全在傳統(tǒng)的過程中增加安全過程安全提前介入NIST:在軟件發(fā)布以后進(jìn)行修復(fù)的代價(dàijià)是在軟件設(shè)計和編碼階段即進(jìn)行修復(fù)所花代價(dàijià)的30倍軟件系統(tǒng)發(fā)布以后才進(jìn)行漏洞修復(fù)代價是最高的,且常常伴隨著軟件系統(tǒng)使用者的極大損失實施軟件安全開發(fā)規(guī)范指南最佳實踐22第二十二頁,共九十七頁。降低解決(jiějué)軟件安全問題的代價早期發(fā)現(xiàn)(fāxiàn)并改正錯誤有以下優(yōu)點在軟件開發(fā)生命周期中,后面的階段改正錯誤開銷比前面的階段要高出數(shù)倍早期發(fā)現(xiàn)并改正錯誤可以減少時間和開銷23第二十三頁,共九十七頁。試題(shìtí)24某公司在互聯(lián)網(wǎng)區(qū)域新建了一個WEB網(wǎng)站(wǎnɡzhàn),為了保護(hù)該網(wǎng)站(wǎnɡzhàn)主頁安全性,尤其是不能讓攻擊者修改主頁內(nèi)容,該公司應(yīng)當(dāng)購買并部署下面哪個設(shè)備()a、負(fù)載均衡設(shè)備b、網(wǎng)頁防篡改系統(tǒng)c、網(wǎng)絡(luò)防病毒系統(tǒng)d、網(wǎng)絡(luò)審計系統(tǒng)

答案B某政府機構(gòu)委托開發(fā)商開發(fā)了一個OA系統(tǒng),其中有一個公文分發(fā),公文通知等為WORD文檔,廠商在進(jìn)行系統(tǒng)設(shè)計時使用了FTP來對公文進(jìn)行分發(fā),以下說法不正確的是a、FTP協(xié)議明文傳輸數(shù)據(jù),包括用戶名和密碼,攻擊者可能通過會話過程嗅探獲得FTP密碼,從而威脅OA系統(tǒng)b、FTP協(xié)議需要進(jìn)行驗證才能訪問在,攻擊者可以利用FTP進(jìn)行口令的暴力破解c、FTP協(xié)議已經(jīng)是不太使用的協(xié)議,可能與新版本的瀏覽器存在兼容性問題d、FTP應(yīng)用需要安裝服務(wù)器端軟件,軟件存在漏洞可能會影響到OA系統(tǒng)的安全第二十四頁,共九十七頁。試題(shìtí)25IS審計師參與應(yīng)用系統(tǒng)開發(fā),他們從事以下哪項可以導(dǎo)致(dǎozhì)獨立性的減弱.a、對系統(tǒng)開發(fā)進(jìn)行了復(fù)核

b、對控制和系統(tǒng)的其他改進(jìn)提出了建議c、對完成后的系統(tǒng)進(jìn)行了獨立評價d、積極參與了系統(tǒng)的設(shè)計和完成以下關(guān)于安全套接層協(xié)議(SecureSocketsLayer,SSL)說法錯誤的是:a、SSL協(xié)議位于TCP/IP協(xié)議層和應(yīng)用協(xié)議之間b、SSL協(xié)議廣泛應(yīng)用于web瀏覽器與服務(wù)器之間的身份認(rèn)證和加密數(shù)據(jù)傳輸c、SSL是一種可靠的端到端的安全服務(wù)協(xié)議d、SSL是設(shè)計用來保護(hù)操作系統(tǒng)的第二十五頁,共九十七頁。知識域:軟件安全(ānquán)開發(fā)概況知識(zhīshi)子域:軟件安全開發(fā)模型及研究了解安全開發(fā)生命周期(SDL)的發(fā)展歷程,理解SDL的主要內(nèi)容了解使安全成為軟件開發(fā)必須的部分(BSI)系列模型了解綜合的輕量級應(yīng)用安全過程(CLASP)的主要內(nèi)容了解軟件保障成熟度模型(SAMM)的框架了解各個模型的特點及適用性26第二十六頁,共九十七頁??尚庞嬎惆踩?ānquán)開發(fā)生命周期微軟,2002.1,蓋茨安全開發(fā)生命周期SDLSDL即SecurityDevelopmentLifecycle(SDL),是微軟提出的從安全角度指導(dǎo)軟件開發(fā)過程的管理模式△SDL不是一個空想的理論模型△它是微軟為了面對現(xiàn)實世界中安全挑戰(zhàn),在實踐中的一步步發(fā)展起來的模式△軟件安全開發(fā)周期SDL的核心理念就是將軟件安全的考慮集成在軟件開發(fā)的每一個階段需求分析、設(shè)計、編碼、測試(cèshì)和維護(hù)△27第二十七頁,共九十七頁。SDL發(fā)展(fāzhǎn)歷史2002.1~今20世紀(jì)90年代中期到后期(Melissa)和21世紀(jì)初期(CodeRed、Nimda、UPnP等)出現(xiàn)了一系列影響重大的惡意軟件事件(shìjiàn),促使微軟重新考慮開發(fā)人員安全過程和策略28第二十八頁,共九十七頁。SDL的階段和安全(ānquán)活動軟件安全開發(fā)生命階段5+2個階段16項必需(bìxū)的安全活動29第二十九頁,共九十七頁。IE采用(cǎiyòng)SDL后的效果30Source:BrowserVulnerabilityAnalysis,MicrosoftSecurityBlog27-NOV-2007采用(cǎiyòng)SDL之前采用SDL之后漏洞總數(shù)降低了35%高危漏洞數(shù)降低了63%正式發(fā)布后12個月內(nèi)修復(fù)的漏洞總數(shù)第三十頁,共九十七頁。BSI系列(xìliè)模型BSI——使安全成為軟件開發(fā)必須的部分(bùfen)在整個軟件開發(fā)生命周期中要確保將安全作為軟件的一個有機組成部分△無須改變你的軟件開發(fā)方法適用各種軟件開發(fā)生命周期合作NIST美國國土安全部大學(xué)(加州大學(xué)戴維斯分校、普林斯頓、萊斯…)31第三十一頁,共九十七頁。接觸點模型(móxíng)接觸點,即在軟件開發(fā)生命周期中保障(bǎozhàng)軟件安全一套最優(yōu)方法、一種戰(zhàn)術(shù)性方法在每一個開發(fā)階段上盡可能地避免和消除漏洞“黑帽子”和“白帽子”32第三十二頁,共九十七頁。SSFSSF(SoftwareSecurityFramework)軟件安全(ānquán)框架33監(jiān)管信息/情報SSDL接觸點部署策略和度量攻擊模式架構(gòu)分析滲透測試履約和策略安全特征和設(shè)計代碼審計軟件環(huán)境培訓(xùn)標(biāo)準(zhǔn)和需求安全測試配置管理和漏洞管理第三十三頁,共九十七頁。BSIMMBSI成熟度模型BuildingSecurityInMaturityModeGaryMcGraw、BrianChess和SammyMigues使用SSF對所有項目進(jìn)行描述了解別人的安全項目過程,指導(dǎo)自己的安全項目目標(biāo)是對真實的軟件安全項目所開展的活動(huódòng)進(jìn)行量化構(gòu)建和不斷發(fā)展軟件安全行動的指南BSIMM3.02011年42個公司(Microsoft、Intel、Google、…)34第三十四頁,共九十七頁。CLASP綜合的輕量應(yīng)用安全過程(Comprehensive,LightweightApplicationSecurityProcess(CLASP))選取了30個特定的基于角色的活動(activities),用于提升整個(zhěnggè)開發(fā)團(tuán)隊的安全意識,并針對這些活動給出了相應(yīng)的指南、導(dǎo)則和檢查列表35第三十五頁,共九十七頁。CLASP介紹(jièshào)基于角色項目經(jīng)理、需求分析師、軟件架構(gòu)師、設(shè)計者、實施人員、集成和編譯人員、測試者和測試分析師、安全(ānquán)審計員對于每個活動,CLASP描述了以下內(nèi)容安全活動應(yīng)該在什么時間、應(yīng)該如何實施如果不進(jìn)行這項安全活動,將會帶來的多大的風(fēng)險如果實施這項安全活動,估計需要多少成本36第三十六頁,共九十七頁。SAMMOWASPSAMMSoftwareAssuranceMaturityMode軟件保證成熟度模型OWASP(開放Web應(yīng)用安全項目)一個開放的框架,用以幫助制定并實施針對軟件安全特定風(fēng)險的策略評估一個組織(zǔzhī)已有的軟件安全實踐;建立一個迭代的權(quán)衡的軟件安全保證計劃;證明安全保證計劃帶來的實質(zhì)性改善;定義并衡量組織中與安全相關(guān)的措施△37第三十七頁,共九十七頁。SAMM規(guī)定了四個軟件開發(fā)過程中的核心業(yè)務(wù)(yèwù)功能治理:組織管理其軟件開發(fā)的過程和活動構(gòu)造:組織在開發(fā)項目中確定目標(biāo)并開發(fā)軟件的過程與活動驗證:組織測試和驗證軟件的過程與活動部署:組織軟件發(fā)布的相關(guān)管理過程與活動4個成熟度級別0-3級38第三十八頁,共九十七頁。各模型(móxíng)比較39SDL文檔豐富,維護(hù)更新及時較多工具支持適合大型企業(yè)BSI接觸點強調(diào)開發(fā)安全重點注重實用方法上手容易BSIMM最佳實踐參考他山之玉不強制實踐CLASP

輕量級過程;以角色及其職責(zé)為核心適合小型企業(yè)SAMM開放框架安全知識要求較低和BSIMM的安全活動能對應(yīng)第三十九頁,共九十七頁。試題(shìtí)40以下哪個選項不是(bùshi)防火墻技術(shù)?a、IP地址欺騙防護(hù)b、NATc、訪問控制d、SQL注入攻擊防護(hù)

答案D消息在發(fā)送前,用發(fā)送者的私鑰加密消息內(nèi)容和它的哈希(hash,或譯作:雜選、摘要)值,能夠保證:a、消息的真實性和完整性b、消息的真實性和保密性c、消息的完整性和保密性d、保密性和防抵賴性答案A為增強Web應(yīng)用程序的安全性,某軟件開發(fā)經(jīng)理決定加強Web軟件安全開發(fā)培訓(xùn),下面哪項內(nèi)容要在他的考慮范圍內(nèi)?a、關(guān)于網(wǎng)站身份簽別技術(shù)方面安全知識的培訓(xùn)b、針對OpenSSL心臟出血漏洞方面安全知識的培訓(xùn)c、針對SQL注入漏洞的安全編程培訓(xùn)d、關(guān)于ARM系統(tǒng)漏洞挖掘方面安全知識的培訓(xùn)第四十頁,共九十七頁。試題(shìtí)41下面哪項屬于軟件開發(fā)安全方面的問題?a、軟件部署時所需選用服務(wù)性能不高,導(dǎo)致軟件執(zhí)行效率低b、應(yīng)用軟件來考慮多線程技術(shù),在對用戶服務(wù)時按序排隊提供服務(wù)c、應(yīng)用軟件存在sql注入漏洞,若被黑客利用能竊取數(shù)據(jù)庫所用數(shù)據(jù)d、軟件受許可證(license)限制,不能在多臺電腦上安裝某網(wǎng)站在設(shè)計時經(jīng)過了威脅建模和攻擊面分析,在開發(fā)時要求程序員編寫安全的代碼,但是在部署時由于管理員將備份存放在WEB目錄下導(dǎo)致了攻擊者可直接下載備份,為了(wèile)發(fā)現(xiàn)系統(tǒng)中是否存在其他類擬問題,以下哪種測試方式是最佳的測試方法?a、模糊測試b、源代碼測試c、滲透測試d、軟件功能測試答案C由于頻繁出現(xiàn)軟件運行時被黑客遠(yuǎn)程攻擊獲取數(shù)據(jù)的現(xiàn)象,某軟件公司準(zhǔn)備加強軟件安全開發(fā)管理,在下面做法中,對于解決問題沒有直接幫助的是(

)a、要求所有的開發(fā)人員參加軟件安全開發(fā)知識培訓(xùn)b、要求增加軟件源代碼審核環(huán)節(jié),加強對軟件代碼的安全性審查c、要求統(tǒng)一采用Windows8系統(tǒng)進(jìn)行開發(fā),不能采用之前的Windows版本d、要求邀請專業(yè)隊伍進(jìn)行第三方安全性測試,盡量從多角度發(fā)現(xiàn)軟件安全問題第四十一頁,共九十七頁。試題(shìtí)42微軟SDL將軟件開發(fā)生命周期制分為(fēnwéi)七個階段,并列出了十七項重要的安全活動△其中“棄用不安全的函數(shù)”屬于(

)的安全活動a、要求(Rapuiroments)階段b、設(shè)計(Design)階段

c、實施(Implenpentation)階段d、驗證(Verifcation)階段某公司開發(fā)了一個游戲網(wǎng)站,但是由于網(wǎng)站軟件存在漏洞,在網(wǎng)絡(luò)中傳輸大數(shù)據(jù)包時總是會丟失一些數(shù)據(jù),如一次性傳輸大于2000個字節(jié)數(shù)據(jù)時,總是會有3到5個字節(jié)不能傳送到對方,關(guān)于此案例,可以推斷的是(

)a、該網(wǎng)站軟件存在保密性方面安全問題b、該網(wǎng)站軟件存在完整性方面安全問題c、該網(wǎng)站軟件存在可用性方面安全問題d、該網(wǎng)站軟件存在不可否認(rèn)性方面安全問題第四十二頁,共九十七頁。試題(shìtí)43在提高阿帕奇系統(tǒng)(ApacheHTTPServer)系統(tǒng)安全性時,下面哪項措施不屬于安全配置內(nèi)容()?a、不在Windows下安裝Apache,只在Linux和Unix下安裝b、安裝Apache時,只安裝需要的組件模塊c、不使用操作系統(tǒng)管理員用戶身份運行Apache,而是采用權(quán)限受限的專用用戶賬號來運行d、積極了解Apache的安全通告,并及時下載和更新下面哪一種關(guān)于安全的說法是不對的?a、加密技術(shù)的安全性不應(yīng)大于使用該技術(shù)的人的安全性b、任何電子郵件程序的安全性不應(yīng)大于實施加密的計算機的安全性c、加密算法的安全性與密鑰的安全性一致d、每個電子郵件消息的安全性是通過用標(biāo)準(zhǔn)(biāozhǔn)的非隨機的密鑰加密來實現(xiàn)第四十三頁,共九十七頁。試題(shìtí)44某網(wǎng)站為了更好向用戶提供服務(wù),在新版本設(shè)計時提供了用戶快捷登錄功能,用戶如果使用上次的IP地址進(jìn)行訪問,就可以無需驗證直接登錄,該功能推出后,導(dǎo)致大量用戶賬號被盜用,關(guān)于以上問題的說法正確的是:a、網(wǎng)站問題是由于開發(fā)人員不熟悉安全編碼,編寫了不安全的代碼,導(dǎo)致攻擊面增大,產(chǎn)生此安全問題b、網(wǎng)站問題是由于用戶缺乏安全意識導(dǎo)致,使用了不安全的功能,導(dǎo)致網(wǎng)站攻擊面增大,產(chǎn)生此問題c、網(wǎng)站問題是由于使用便利性提高,帶來網(wǎng)站用戶數(shù)增加,導(dǎo)致網(wǎng)站攻擊面增大,產(chǎn)生此安全問題d、網(wǎng)站問題是設(shè)計人員不了解安全設(shè)計關(guān)鍵要素,設(shè)計了不安全的功能,導(dǎo)致網(wǎng)站攻擊面增大,產(chǎn)生此問題在對某面向(miànxiànɡ)互聯(lián)網(wǎng)提供服務(wù)的某應(yīng)用服務(wù)器的安全檢測中發(fā)現(xiàn),服務(wù)器上開放了以下幾個應(yīng)用,除了一個應(yīng)用外其他應(yīng)用都存在明文傳輸信息的安全問題,作為一名檢測人員,你需要告訴用戶對應(yīng)用進(jìn)行安全整改以外解決明文傳輸數(shù)據(jù)的問題,以下哪個應(yīng)用已經(jīng)解決了明文傳輸數(shù)據(jù)問題:a、SSHb、HTTPc、FTPd、SMTP答案A第四十四頁,共九十七頁。試題(shìtí)45S公司在全國有20個分支機構(gòu),總部有10臺服務(wù)器.200個用戶終端,每個分支機構(gòu)都有一臺服務(wù)器.100個左右用戶終端,通過專網(wǎng)進(jìn)行互聯(lián)互通△公司招標(biāo)的網(wǎng)絡(luò)設(shè)計方案中,四家集成商給出了各自的IP地址規(guī)劃和分配的方法,作為評標(biāo)專家,請給S公司選出設(shè)計最合理的一個:a、總部使用(shǐyòng)服務(wù)器.用戶終端統(tǒng)一作用10.0.1.X.各分支機構(gòu)服務(wù)器和用戶終端使用192.168.2.X~192.168.20.Xb、總部使用服務(wù)器使用~11.用戶終端使用2~212,分支機構(gòu)IP地址隨意確定即可c、總部服務(wù)器使用10.0.1.X.用戶終端根據(jù)部門劃分使用10.0.2.X.每個分支機構(gòu)分配兩個A類地址段,一個用做服務(wù)器地址段.另外一個做用戶終端地址段d、因為通過互聯(lián)網(wǎng)連接,訪問的是互聯(lián)網(wǎng)地址,內(nèi)部地址經(jīng)NAT映射,因此IP地址無需特別規(guī)劃,各機構(gòu)自行決定即可在軟件保障成熟度模型(SoftwareAssuranceMaturityMode,SAMM)中,規(guī)定了軟件開發(fā)過程中的核心業(yè)務(wù)功能,下列哪個選項不屬于核心業(yè)務(wù)功能:a、治理,主要是管理軟件開發(fā)的過程和活動b、構(gòu)造,主要是在開發(fā)項目中確定目標(biāo)并開發(fā)軟件的過程與活動c、驗證,主要是測試和驗證軟件的過程與活動d、購置,主要是購買第三方商業(yè)軟件或者采用開源組件的相關(guān)管理過程與活動第四十五頁,共九十七頁。試題(shìtí)46關(guān)于軟件安全開發(fā)生命周期(SDL),下面說法(shuōfǎ)錯誤的是:a、在軟件開發(fā)的各個周期都要考慮安全因素b、軟件安全開發(fā)生命周期要綜合采用技術(shù).管理和工程等手段c、測試階段是發(fā)現(xiàn)并改正軟件安全漏洞的最佳環(huán)節(jié),過早或過晚檢測修改漏洞都將增大軟件開發(fā)成本d、在設(shè)計階段就盡可能發(fā)現(xiàn)并改正安全隱患,將極大減少整個軟件開發(fā)成本第四十六頁,共九十七頁。知識域:軟件(ruǎnjiàn)安全開發(fā)關(guān)鍵工作知識子域:軟件安全需求和設(shè)計了解軟件安全需求分析和安全設(shè)計的重要性理解軟件安全設(shè)計基本原則理解影響(yǐngxiǎng)系統(tǒng)安全性的6類威脅,以及威脅建模過程47第四十七頁,共九十七頁。軟件安全需求(xūqiú)及安全設(shè)計的重要性安全編碼?安全測試?傳統(tǒng)方法:軟件發(fā)布后測試、等待修復(fù)Bug安全提前介入(jièrù),效益高,成本低48設(shè)計缺陷——舉例明文存儲口令,甚至將口令拿到客戶端對比驗證SQL注入越權(quán)訪問、驗證機制不完善上傳漏洞第四十八頁,共九十七頁。軟件安全(ānquán)需求及安全(ānquán)設(shè)計的重要性軟件安全需求和設(shè)計是開發(fā)安全軟件的基礎(chǔ)軟件安全需求分析以風(fēng)險管理為基礎(chǔ),建立(jiànlì)“威脅”分析計劃建立軟件安全需求定義,確保軟件安全需求定義正確安全需求應(yīng)文檔化軟件安全設(shè)計軟件系統(tǒng)的每一項需求,都應(yīng)該在軟件安全設(shè)計階段認(rèn)真考慮49第四十九頁,共九十七頁。安全設(shè)計(shèjì)原則最小特權(quán):只分配所需的權(quán)限權(quán)限分離:不允許根據(jù)單一條件執(zhí)行操作最小共享完全中立:不偏重任何技術(shù)手段的原則心理可接受:他們將使用它嗎?默認(rèn)故障處理:出故障時自動關(guān)閉;無單點故障經(jīng)濟(jì)機制:保持簡單、易懂的特性不信任縱深防御保護(hù)最薄弱的環(huán)節(jié)公開(gōngkāi)設(shè)計:假設(shè)攻擊者具有源代碼和規(guī)格隱私保護(hù)攻擊面最小化50第五十頁,共九十七頁。受攻擊面概念(gàiniàn)什么是受攻擊面對一個軟件系統(tǒng)可以采取的攻擊方法集合,軟件的功能、API、接口、資源、數(shù)據(jù)存儲等都是受攻擊面為什么要降低受攻擊面一個軟件的攻擊面越大安全風(fēng)險就越大房子(fángzi)門窗越多,被入侵的可能性更高△51第五十一頁,共九十七頁。降低(jiàngdī)受攻擊面的方法第一步:分析產(chǎn)品功能的重要性(是否必須)第二步:分析從哪里訪問這些功能第三步:采取合理措施(降低(jiàngdī)特權(quán))52受攻擊面增加遠(yuǎn)程訪問受限訪問本地訪問僅管理員訪問用戶訪問匿名訪問第五十二頁,共九十七頁。降低軟件(ruǎnjiàn)受攻擊面策略重要等級為低的功能:攻擊面大,取消該功能重要等級為中的功能:攻擊面大,設(shè)置為非默認(rèn)開啟,需要用戶配置(pèizhì)后才予以開啟重要等級為高的功能:攻擊面大,關(guān)閉或限制一些接口方式,增加一些安全的保證措施或技術(shù)53降低受攻擊面對于提高軟件源代碼安全性至關(guān)重要!第五十三頁,共九十七頁。減少(jiǎnshǎo)軟件受攻擊面54較高受攻擊面較低受攻擊面默認(rèn)執(zhí)行默認(rèn)關(guān)閉打開網(wǎng)絡(luò)連接關(guān)閉網(wǎng)絡(luò)連接同時偵聽UDP和TCP流量僅偵聽TCP流量匿名訪問鑒別用戶訪問弱ACLs強ACLs管理員訪問普通用戶訪問因特網(wǎng)訪問本地子網(wǎng)訪問代碼以管理員或root權(quán)限運行代碼以NetworkServices、LocalServices或自定義的低權(quán)限賬戶運行統(tǒng)一缺省配置用戶可選的配置ActiveX控件.NET代碼標(biāo)記有腳本安全的ActiveX控件未標(biāo)記有腳本安全的ActiveX控件非SiteLockedActiveX控件SiteLockedActiveX控件第五十四頁,共九十七頁。威脅(wēixié)建模什么是威脅建模威脅建模是了解系統(tǒng)面臨的安全威脅,確定威脅風(fēng)險并通過適當(dāng)?shù)木徑獯胧┮越档惋L(fēng)險,提高系統(tǒng)安全性的過程△為什么要威脅建模幫助在設(shè)計階段充分了解各種安全威脅,并指導(dǎo)選擇適當(dāng)?shù)膽?yīng)對措施對可能的風(fēng)險進(jìn)行管理(guǎnlǐ)可以重新驗證其架構(gòu)和設(shè)計有助于軟件的受攻擊面降低威脅建模使得您可以對最可能影響系統(tǒng)的威脅進(jìn)行系統(tǒng)地識別和評價55第五十五頁,共九十七頁。威脅(wēixié)建模為什么要用威脅建模?無論(wúlùn)您是構(gòu)建新系統(tǒng)還是更新現(xiàn)有系統(tǒng),都需要考慮入侵者攻擊系統(tǒng)的可能方式,然后在系統(tǒng)的設(shè)計和實施階段構(gòu)建適當(dāng)?shù)姆烙侄巍鱉icrosoft通過稱作威脅建模的技術(shù)來進(jìn)行安全系統(tǒng)設(shè)計,這種技術(shù)對系統(tǒng)設(shè)計和體系結(jié)構(gòu)進(jìn)行系統(tǒng)化的檢查,以發(fā)現(xiàn)和更正設(shè)計級的安全性問題△威脅建模是安全性開發(fā)生命周期(SecurityDevelopmentLifecycle)項目不可或缺的一部分△56第五十六頁,共九十七頁。威脅(wēixié)建模流程確定對象識別威脅(wēixié)評估威脅消減威脅57威脅降低威脅漏洞攻擊者第五十七頁,共九十七頁。威脅(wēixié)建模流程標(biāo)識資源△找出系統(tǒng)必須保護(hù)的有價值的資源△創(chuàng)建總體體系結(jié)構(gòu)△利用簡單的圖表來記錄應(yīng)用程序的體系結(jié)構(gòu),包括子系統(tǒng)、信任邊界和數(shù)據(jù)流△分解應(yīng)用程序△分解應(yīng)用程序的體系結(jié)構(gòu),包括基本的網(wǎng)絡(luò)和主機基礎(chǔ)結(jié)構(gòu)的設(shè)計,從而為應(yīng)用程序創(chuàng)建安全配置文件△安全配置文件的目的是發(fā)現(xiàn)(fāxiàn)應(yīng)用程序的設(shè)計、實現(xiàn)或部署配置中的缺陷△識別威脅△牢記攻擊者的目標(biāo),利用對應(yīng)用程序的體系結(jié)構(gòu)和潛在缺陷的了解,找出可能影響應(yīng)用程序的威脅△記錄威脅△利用通用威脅模板記錄每種威脅,該模板定義了一套要捕獲的各種威脅的核心屬性△評價威脅△對威脅進(jìn)行評價以區(qū)分優(yōu)先順序,并首先處理最重要的威脅△這些威脅帶來的危險最大△評價過程要權(quán)衡威脅的可能性,以及攻擊發(fā)生時可能造成的危害△評價的結(jié)果可能是:通過對比威脅帶來的風(fēng)險與為使威脅得到減少所花費的成本,對于某些威脅采取的行動是不值得的△58第五十八頁,共九十七頁。STRIDE建模方法(fāngfǎ)STRIDE建模微軟SDL中提出發(fā)現(xiàn)或糾正設(shè)計級(design-level)的安全問題一種確保應(yīng)用程序具有這些屬性的方法是使用STRIDE進(jìn)行威脅建模,STRIDE是Spoofing(假冒)、Tampering(篡改(cuàngǎi))、Repudiation(否認(rèn))、InformationDisclosure(信息泄漏)、DenialofService(拒絕服務(wù))和ElevationofPrivilege(提升權(quán)限)的字母縮略詞59SSpoolfingIdentity假冒身份/欺騙標(biāo)識TTamperingwithdata篡改數(shù)據(jù)RRepudiation抵賴IInformationDisclosure信息泄漏DDenialofService拒絕服務(wù)EElevationofPrivilege權(quán)限提升第五十九頁,共九十七頁。理解(lǐjiě)STRIDE威脅威脅安全屬性定義舉例Spoofing(哄騙)可鑒別性模仿其他人或?qū)嶓w偽裝成或ntdll.dll△Tampering(篡改)完整性修改數(shù)據(jù)或代碼修改硬盤、DVD或網(wǎng)絡(luò)數(shù)據(jù)包中的DLLRepudiation(抵賴)不可抵賴性聲稱沒有執(zhí)行某個動作“我沒有發(fā)送過那封電子郵件”,“我沒有修改過那個文件”,“親愛的,我確實沒有訪問過那個網(wǎng)站!”InformationDisclosure(信息泄露)機密性把信息披露給那些無權(quán)知道的人允許某人閱讀Windows源代碼;公布某個Web網(wǎng)站的用戶清單△DenialofService(拒絕服務(wù))可用性拒絕為用戶提供服務(wù)使得Windows或Web網(wǎng)站崩潰,發(fā)送數(shù)據(jù)包并耗盡CPU時間,將數(shù)據(jù)包路由到某黑洞中△ElevationofPrivilege(權(quán)限提升)授權(quán)獲得非授權(quán)訪問權(quán)允許遠(yuǎn)程因特網(wǎng)用戶執(zhí)行命令,讓受限用戶獲得管理員權(quán)限△60第六十頁,共九十七頁。消減威脅(wēixié)舉例61消減(xiāojiǎn)威脅威脅類型消減機制舉例消減技術(shù)舉例假冒認(rèn)證認(rèn)證方式:Cookie認(rèn)證、Kerberos認(rèn)證、PKI纂改完整性哈希函數(shù)、消息認(rèn)證碼、數(shù)字簽名、防篡改協(xié)議抵賴非抵賴性服務(wù)強認(rèn)證、安全審計、數(shù)字簽名、時間戳信息泄露保密性加密、保護(hù)秘密、訪問控制、不保存秘密、隱私保護(hù)協(xié)議拒絕服務(wù)可用性認(rèn)證、訪問控制、過濾、流量控制、授權(quán)特權(quán)提升授權(quán)訪問控制列表、最小權(quán)限運行第六十一頁,共九十七頁。試題(shìtí)62數(shù)據(jù)在進(jìn)行傳輸前,需要由協(xié)議棧自上而下對數(shù)據(jù)進(jìn)行封裝,TCP/IP協(xié)議中,數(shù)據(jù)封裝的順序是:a、傳輸層、網(wǎng)絡(luò)接口層、互聯(lián)網(wǎng)絡(luò)層b、傳輸層、互聯(lián)網(wǎng)絡(luò)層、網(wǎng)絡(luò)接口層c、互聯(lián)網(wǎng)絡(luò)層、傳輸層、網(wǎng)絡(luò)接口層d、互聯(lián)網(wǎng)絡(luò)層、網(wǎng)絡(luò)接口層、傳輸層以下關(guān)于PGP(PrettyGoodPrivacy)軟件敘述錯誤的是:a、PGP可以實現(xiàn)對郵件的加密.簽名和認(rèn)證b、PGP可以實現(xiàn)數(shù)據(jù)壓縮c、PGP可以對郵件進(jìn)行分段(fēnduàn)和重組d、PGP采用SHA算法加密郵件微軟提出了STRIDE模型,其中R是Repudiation(抵賴)的縮寫,關(guān)于此項錯誤的是:a、某用戶在登錄系統(tǒng)并下載數(shù)據(jù)后,卻聲稱“我沒有下載過數(shù)據(jù)"軟件R威脅b、某用戶在網(wǎng)絡(luò)通信中傳輸完數(shù)據(jù)后,卻聲稱“這些數(shù)據(jù)不是我傳輸?shù)摹蓖{也屬于R威脅△c、對于R威脅,可以選擇使用如強認(rèn)證、數(shù)字簽名、安全審計等技術(shù)d、對于R威脅,可以選擇使用如隱私保護(hù)、過濾、流量控制等技術(shù)第六十二頁,共九十七頁。試題(shìtí)63以下關(guān)于軟件安全測試說法(shuōfǎ)正確的是?a、軟件安全測試就是黑盒測試b、Fuzz測試是經(jīng)常采用的安全測試方法之一c、軟件安全測試關(guān)注的是軟件的功能d、軟件安全測試可以發(fā)現(xiàn)軟件中產(chǎn)生的所有安全問題下面哪個模型和軟件安全開發(fā)無關(guān)()?a、微軟提出的“安全開發(fā)生命周期(SecurityDevelopmentLifecycle,SDL)”b、GrayMcGraw等提出的“使安全成為軟件開發(fā)必須的部分(BuildingSecurityIN,BSI)”c、OWASP維護(hù)的“軟件保證成熟度模型(SoftwareAssuranceMaturityMode,SAMM)”d、美國提出的“信息安全保障技術(shù)框架(InformationAssuranceTechnicalFramework,IATF)”第六十三頁,共九十七頁。試題(shìtí)64微軟提出了STRIDE模型,其中R是Repudiation(抵賴)的縮寫,關(guān)于此項安全要求,下面描述錯誤的是()?a、某用戶在登錄系統(tǒng)并下載數(shù)據(jù)后,卻聲稱“我沒有下載過數(shù)據(jù)”軟件系統(tǒng)中的這種威脅就屬于R威脅b、解決R威脅,可以選擇使用抗抵賴性服務(wù)技術(shù)來解決,如強認(rèn)證、數(shù)字簽名、安全審計等技術(shù)措施c、R威脅是STRIDE六種威脅中第三嚴(yán)重的威脅,比D威脅和E威脅的嚴(yán)重程度更高d、解決R威脅,也應(yīng)按照確定(quèdìng)建模對象、識別威脅、評估威脅以及消減威脅等四個步驟來進(jìn)行第六十四頁,共九十七頁。知識域:軟件安全(ānquán)開發(fā)關(guān)鍵工作知識子域:軟件安全編碼理解通用安全編碼準(zhǔn)則:驗證輸入、避免緩沖區(qū)溢出、程序內(nèi)部安全、安全調(diào)用組件、禁止使用不安全函數(shù)等理解使用安全編譯技術(shù)對提高編碼安全水平的作用,了解常用安全編譯技術(shù)理解源代碼審核的目的及方式,了解常見(chánɡjiàn)源代碼靜態(tài)審核工具65第六十五頁,共九十七頁。通用安全(ānquán)編碼準(zhǔn)則驗證輸入避免緩沖區(qū)溢出(yìchū)程序內(nèi)部安全安全調(diào)用組件禁止使用不安全函數(shù)66第六十六頁,共九十七頁。驗證(yànzhèng)輸入安全程序第一道防線是檢查每一個不可信的輸入難以檢查所有的輸入,可能導(dǎo)致IE被惡意利用檢查、驗證或者過濾輸入不讓惡意數(shù)據(jù)進(jìn)入(jìnrù)程序后續(xù)處理類似網(wǎng)絡(luò)中部署防火墻何處檢查最初接收數(shù)據(jù)時(第一次)使用數(shù)據(jù)時67第六十七頁,共九十七頁。驗證(yànzhèng)輸入——常見輸入源命令行參數(shù)數(shù)量、數(shù)據(jù)格式、內(nèi)容環(huán)境變量環(huán)境變量可能超出期望有的環(huán)境變量存儲格式(géshi)存在危險文件不信任可以被不可信用戶控制的文件內(nèi)容不信任臨時文件網(wǎng)絡(luò)來自網(wǎng)絡(luò)的數(shù)據(jù)是“高度不可信的”其他來源68第六十八頁,共九十七頁。驗證(yànzhèng)輸入——常見數(shù)據(jù)類型數(shù)字?jǐn)?shù)字檢查(正則表達(dá)式/ASCII值)負(fù)數(shù)檢查(大數(shù)溢出為負(fù)數(shù))Sendamil攻擊合法范圍檢查文件名最好(zuìhǎo)不讓用戶設(shè)置文件名避免特殊字符69第六十九頁,共九十七頁。驗證輸入(shūrù)——常見數(shù)據(jù)類型電子郵件地址非法的電子郵件地址UTF-8變長編碼URI/URL非法地址在合法地址后面增加惡意內(nèi)容(nèiróng)畸形數(shù)據(jù)包70第七十頁,共九十七頁。避免(bìmiǎn)緩沖區(qū)溢出緩沖區(qū)溢出:是指當(dāng)計算機向緩沖區(qū)內(nèi)填充數(shù)據(jù)位數(shù)時超過了緩沖區(qū)本身的容量,溢出的數(shù)據(jù)覆蓋在合法數(shù)據(jù)上△理想的情況是:程序會檢查數(shù)據(jù)長度,而且并不允許輸入超過緩沖區(qū)長度的字符△但是絕大多數(shù)程序都會假設(shè)數(shù)據(jù)長度總是與所分配的儲存空間相匹配,這就為緩沖區(qū)溢出埋下隱患△操作系統(tǒng)所使用的緩沖區(qū),又被稱為“堆?!?,在各個操作進(jìn)程之間,指令(zhǐlìng)會被臨時儲存在“堆?!碑?dāng)中,“堆?!币矔霈F(xiàn)緩沖區(qū)溢出△是一個非常普遍而且嚴(yán)重的問題緩沖區(qū)溢出是一種非常普遍、非常危險的漏洞,在各種操作系統(tǒng)、應(yīng)用軟件中廣泛存在△利用緩沖區(qū)溢出攻擊,可以導(dǎo)致程序運行失敗、系統(tǒng)宕機、重新啟動等后果△更為嚴(yán)重的是,可以利用它執(zhí)行非授權(quán)指令,甚至可以取得系統(tǒng)特權(quán),進(jìn)而進(jìn)行各種非法操作△惡意攻擊者常用溢出漏洞提升權(quán)限,并以管理員權(quán)限執(zhí)行非法操作△71第七十一頁,共九十七頁。緩沖區(qū)溢出(yìchū)后果溢出后果攻擊者可以使遠(yuǎn)程服務(wù)程序或者本地程序崩潰攻擊者可以設(shè)計溢出后執(zhí)行的代碼C/C++語言語言特性決定(juédìng)大量的庫函數(shù)存在溢出其他語言調(diào)用C語言庫C#允許設(shè)置“不安全”例程72第七十二頁,共九十七頁。避免(bìmiǎn)緩沖區(qū)溢出——解決辦法解決辦法編碼避免緩沖區(qū)溢出填充(tiánchōng)數(shù)據(jù)時計算邊界、動態(tài)分配內(nèi)存、控制輸入使用替代的安全函數(shù)或函數(shù)庫使用沒有緩沖區(qū)溢出問題的函數(shù):strncpy、strncat、C++中std:string使用替代庫:Libmib、libsafe使用更新更安全的編譯環(huán)境,打開具有安全防御機制的安全編譯選項StackGuard、ProPolice、/GS非執(zhí)行的堆棧防御不可在堆棧上執(zhí)行代碼73第七十三頁,共九十七頁。程序(chéngxù)內(nèi)部安全程序內(nèi)部接口安全程序內(nèi)部接口數(shù)據(jù)的檢查異常安全處理檢測異常,安全處理各種(ɡèzhǒnɡ)可能運行路徑檢測到某些錯誤行為/數(shù)據(jù),必須以合適的方式處理,保證程序運行安全必要時立即拒絕服務(wù),甚至不回送詳細(xì)的錯誤代碼74第七十四頁,共九十七頁。程序(chéngxù)內(nèi)部安全最小化反饋避免給予不可靠用戶(yònghù)過多的信息成功或失敗作為跟蹤檢查的日志可以記錄較為詳細(xì)的信息認(rèn)證程序在認(rèn)證前盡量少給信息(版本)如果程序接受了密碼,不要返回它避免拒絕服務(wù)攻擊輸入錯誤盡快返回設(shè)置超時延時服務(wù)75第七十五頁,共九十七頁。程序(chéngxù)內(nèi)部安全避免競爭條件訪問共享資源時(文件/變量)沒有被適當(dāng)?shù)乜刂?kòngzhì)使用原子操作使用鎖操作——避免死鎖安全使用臨時文件很多安全漏洞發(fā)生在訪問已知文件名或可猜測的臨時文件時76第七十六頁,共九十七頁。安全(ānquán)調(diào)用其他組件應(yīng)用程序?qū)嶋H上幾乎都不會是自包含的,它們通常都會調(diào)用其他(qítā)組件底層的操作系統(tǒng)數(shù)據(jù)庫可重用的庫網(wǎng)絡(luò)服務(wù)(WEB、DNS)77第七十七頁,共九十七頁。安全調(diào)用(diàoyòng)其他組件組件安全檢查組件文檔,搜索相關(guān)說明gets隨機數(shù)使用經(jīng)過認(rèn)可的組件盡可能不調(diào)用外部命令,如果不得已要調(diào)用,必須嚴(yán)格(yángé)檢查參數(shù)system、open、exec、78第七十八頁,共九十七頁。安全調(diào)用其他(qítā)組件返回值安全一定要檢查返回值,調(diào)用是否成功成功時檢查返回值,是否按照期望值處理數(shù)據(jù)(shùjù)中可能含有NUL字符、無效字符或其他可能產(chǎn)生問題的東西錯誤時檢查錯誤碼傳遞數(shù)據(jù)安全視安全需求和安全環(huán)境考慮傳輸加密,包括密碼算法和安全協(xié)議79第七十九頁,共九十七頁。安全(ānquán)編譯使用最新版本編譯器與支持工具(gōngjù)使用編譯器內(nèi)置防御特性gcc-Wall-Wpointer-arith-Wstrict-prototypes-O2

80第八十頁,共九十七頁。源代碼審核(shěnhé)源代碼審核就是檢查源代碼,檢測并報告源代碼中的可能導(dǎo)致安全弱點的薄弱之處△人工審核費時費力容易(róngyì)遺漏工具審核速度快,自動可升級知識庫81

源代碼審核關(guān)注編碼中的實現(xiàn)缺陷,通常通過靜態(tài)分析工具進(jìn)行,它們掃描源代碼,能夠發(fā)現(xiàn)大約50%的安全問題△第八十一頁,共九十七頁。代碼(dàimǎ)審核工具商業(yè)工具(gōngjù)

CoverityFortifyOunceLabsSecureSoftware免費/開源工具BOONCqualXg++FindBugs82第八十二頁,共九十七頁?!昂谩钡脑创a分析(fēnxī)工具安全性安全審核,不要以功能為主多層性軟件的多層架構(gòu)(jiàɡòu)、多層平臺、多種語言可擴(kuò)展性擴(kuò)展規(guī)則、擴(kuò)展技術(shù)知識性主用于分析,開發(fā)者也能“學(xué)到”安全編程知識集成性支持與IDE集成,支持make、ant等工具83第八十三頁,共九十七頁。知識(zhīshi)域:軟件安全開發(fā)關(guān)鍵工作知識子域:軟件安全編碼理解通用安全編碼準(zhǔn)則:驗證輸入、避免緩沖區(qū)溢出(yìchū)、程序內(nèi)部安全、安全調(diào)用組件、禁止使用不安全函數(shù)等理解使用安全編譯技術(shù)對提高編碼安全水平的作用,了解常用安全編譯技術(shù)理解源代碼審核的目的及方式,了解常見源代碼靜態(tài)審核工具84第八十四頁,共九十七頁。為什么要軟件(ruǎnjiàn)安全測試?軟件測試按照特定規(guī)程,發(fā)現(xiàn)軟件錯誤的過程△檢查軟件是否滿足規(guī)定的要求,或是清楚地了解預(yù)期(yùqī)結(jié)果與實際結(jié)果之間的差異其目的在于發(fā)現(xiàn)軟件中的錯誤軟件安全測試有關(guān)驗證軟件安全等級和識別潛在安全缺陷的過程查找軟件自身程序設(shè)計中存在的安全隱患,并檢查應(yīng)用程序?qū)Ψ欠ㄇ秩氲姆婪赌芰鹘y(tǒng)測試僅考慮軟件出錯時的處理,沒有考慮對軟件的故意攻擊85第八十五頁,共九十七頁。安全(ānquán)測試在應(yīng)用投產(chǎn)前,應(yīng)由獨立的安全團(tuán)隊對應(yīng)用的安全性進(jìn)行綜合評估功能性安全測試(cèshì)對抗性安全測試傳統(tǒng)測試方法白盒測試黑盒測試灰盒測試特定的

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論