計(jì)算機(jī)網(wǎng)絡(luò)安全與管理17_第1頁
計(jì)算機(jī)網(wǎng)絡(luò)安全與管理17_第2頁
計(jì)算機(jī)網(wǎng)絡(luò)安全與管理17_第3頁
計(jì)算機(jī)網(wǎng)絡(luò)安全與管理17_第4頁
計(jì)算機(jī)網(wǎng)絡(luò)安全與管理17_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

計(jì)算機(jī)網(wǎng)絡(luò)安全與管理

第17講軟件安全 軟件學(xué)院田暄軟件安全相當(dāng)多的最弱點(diǎn)來源于拙劣的編程實(shí)踐cf.OpenWebApplicationSecurityTopTeninclude5softwarerelatedflaws經(jīng)常源于對于軟件輸入沒有進(jìn)行足夠的檢查/確認(rèn)了解這些問題是關(guān)鍵SoftwareQualityvsSecurity軟件質(zhì)量與可靠性程序的偶發(fā)性錯(cuò)誤來源于理論上隨機(jī)的不可預(yù)測的輸入通過采用結(jié)構(gòu)化的設(shè)計(jì)與測試加以改善不是有多少錯(cuò)誤,而是被觸發(fā)的頻率軟件安全與此相關(guān)攻擊者選擇輸入分布,特別針對bug代碼從那個(gè)被一些不太可能的輸入觸發(fā)常規(guī)測試無法標(biāo)記DefensiveProgramming作為防御性設(shè)計(jì)的一部分旨在保證不可預(yù)知的應(yīng)用不會影響程序功能的持續(xù)運(yùn)行需要關(guān)注程序執(zhí)行、環(huán)境、數(shù)據(jù)處理的各個(gè)方面也叫作安全編程無假設(shè),檢查所有潛在情況不僅僅關(guān)注于解決任務(wù)需要驗(yàn)證所有的企圖AbstractProgramModelSecuritybyDesign安全性與可靠性是大多數(shù)工程規(guī)范的公共設(shè)計(jì)目標(biāo)社會無法容忍像橋梁,飛機(jī)的失誤軟件開發(fā)仍未成熟很對高級別的錯(cuò)誤被容忍盡管已經(jīng)有了大量的軟件開發(fā)與質(zhì)量標(biāo)準(zhǔn)主要集中于軟件開發(fā)生命周期日益將安全性鑒別作為設(shè)計(jì)目標(biāo)之一處理程序輸入錯(cuò)誤的處理是一種常見的錯(cuò)誤input是任意的外部源數(shù)據(jù)可以是文件,網(wǎng)絡(luò),鍵盤也可以是執(zhí)行的環(huán)境,配置數(shù)據(jù)必須識別所有的數(shù)據(jù)源并在使用前確實(shí)的驗(yàn)證其大小與類型InputSize&BufferOverflow通常在Buffer大小上有預(yù)測eg.用戶只輸入一行Sizebuffer但未做大小檢驗(yàn)導(dǎo)致緩沖溢出測試可能沒能確定脆弱點(diǎn)由于主要集中于“normal,expected”的輸入安全編碼有的輸入都當(dāng)成危險(xiǎn)的因此必須處理以保護(hù)程序InterpretationofInput程序的輸入可以使二進(jìn)制的或文本形式的二進(jìn)制解釋依賴于編碼且通常是應(yīng)用程序所專屬的文本編碼通常是某種字符集e.g.ASCII國際化增加了多樣性同樣需要使用前有效解釋e.g.filename,URL,emailaddress,identifier有效性的錯(cuò)誤可能導(dǎo)致可探測的弱點(diǎn)注入攻擊InjectionAttacks與無效輸入處理相關(guān)的缺陷可影響程序的執(zhí)行經(jīng)常發(fā)生在作為參數(shù)傳遞給help程序,其他應(yīng)用程序或子系統(tǒng)大多發(fā)生在腳本語言鼓勵(lì)對其他程序/模塊的復(fù)用經(jīng)常在webCGI腳本中見到UnsafePerlScriptSaferScript通過確認(rèn)輸入來抵御攻擊通過對比模式來拒絕無效輸入如例SQLInjection另一種被廣泛使用的注入攻擊當(dāng)輸入對數(shù)據(jù)庫使用SQL請求類似與注入攻擊SQL元字符被使用必須檢測輸入的有效性代碼注入CodeInjection更進(jìn)一步輸入包含之后運(yùn)行的代碼PHP遠(yuǎn)程代碼注入的危害variable+globalfieldvariables+remoteinclude這種攻擊被廣泛使用CrossSiteScriptingAttacksattacks由一個(gè)用戶輸入后來又輸出到另一個(gè)用戶XSS常見于腳本web應(yīng)用程序中腳本代碼顯示于瀏覽器任何支持的腳本,e.g.Javascript,ActiveX架設(shè)來自網(wǎng)站的應(yīng)用程序XSS反射將惡意代碼提供給網(wǎng)站隨后提供給其他用戶XSSExamplecf.guestbooks,wikis,blogsetc注釋部分包含腳本代碼e.g.收集用戶cookie需要確認(rèn)數(shù)據(jù)支持包含處理不同的編碼同時(shí)攻擊輸入與輸出處理確認(rèn)輸入語法用來保證輸入數(shù)據(jù)附和假設(shè)e.g.isprintable,HTML,email,useridetc與已知的可接受對比并非已知的危險(xiǎn)可能錯(cuò)過新的問題,通常使用正則表達(dá)式允許的輸入字符進(jìn)行模式描述根據(jù)語言游戲機(jī)體的不同錯(cuò)誤的輸入拒絕或更改AlternateEncodings編碼的文本可能有多重含義根據(jù)數(shù)據(jù)的結(jié)構(gòu)構(gòu)成,e.g.HTML或使用大字符集Unicode在國際化中使用uses16-bit作為字符UTF-8encodesas1-4bytesequences具有多種變體e.g./is2F,C0AF,E080AF必須進(jìn)行完全的文件檢查!在檢查之前必須規(guī)范化確認(rèn)數(shù)字輸入ValidatingNumericInput可能有數(shù)據(jù)表示數(shù)字值內(nèi)部存儲為固定大小e.g.8,16,32,64-bitintegersor32,64,96floatsignedorunsigned必須正確解釋文本格式始終如一的處理對比signedtounsigned可能夠有問題e.g.largepositiveunsignedisnegativesigned被用來阻礙緩沖溢出檢測InputFuzzing強(qiáng)有力的測試使用大范圍的隨機(jī)生成輸入測試program/function是否正確處理不正常輸入簡單,無假定,便宜不僅僅用于安全性也用于可靠性也可使用模板生成大量錯(cuò)誤可能錯(cuò)失,也用前一輔助書寫安全代碼下一個(gè)考慮的是如何用算法處理數(shù)據(jù)解決問題編譯為機(jī)器碼或可解釋碼執(zhí)行機(jī)器指令操作內(nèi)存與寄存器數(shù)據(jù)安全問題:正確的算法算法的正確指令有效的操作正確的算法好的程序開發(fā)需考慮正確處理所有的問題的變化c.f.Netscape隨機(jī)數(shù)bug假設(shè)是不可預(yù)知的擔(dān)不是當(dāng)debug/test代碼在產(chǎn)品中有剩余用來訪問數(shù)據(jù)與繞過檢測c.f.MorrisWormexploitofsendmail解釋器不正確的解釋因此需要在design/implement十分小心正確的機(jī)器語言確定機(jī)器指令正確執(zhí)行高級代碼經(jīng)常被程序員忽視假設(shè)compiler/interpreter正確c.f.KenThompson’spaper需要把機(jī)器碼與原始程序?qū)Ρ葷M而且困難在高級的

EAL’s認(rèn)證中需要正確的數(shù)據(jù)解釋數(shù)據(jù)被以bits/bytes存儲聚合為words,longwordsetc解釋依賴于指令集語言針對數(shù)據(jù)使用提供不同的restricting/validating強(qiáng)制性語言更多限制更安全其他更自由方便但較少安全e.g.C強(qiáng)類型語言更加安全內(nèi)存的正確使用問題在于動態(tài)分配用來操作不知道數(shù)量的數(shù)據(jù)用時(shí)分配用完free釋放不正確內(nèi)存泄露很多老的語言沒有現(xiàn)實(shí)的動態(tài)內(nèi)存分配寧愿使用標(biāo)準(zhǔn)類函數(shù)程序員確定allocation/releasemodernlanguages自動處理共享內(nèi)存競爭當(dāng)multiplethreads/processesaccess共享data/memoryunlessaccesssynchronizedcangetcorruptionorlossofchangesduetooverlappingaccesses使用恰當(dāng)?shù)耐皆Z正確的choice&sequence可能并不易見死鎖問題與O/S相合programsexecuteonsystemsunderO/Smediatesandsharesaccesstoresourcesconstructsexecutionenvironmentwithenvironmentvariablesandargumentssystemshavemultipleuserswithaccesspermissionsonresources/dataprogramsmayaccesssharedresourcese.g.filesEnvironmentVariablessetofstringvaluesinheritedfromparentcanaffectprocessbehaviore.g.PATH,IFS,LD_LIBRARY_PATHprocesscanalterforitschildrenanothersourceofuntrustedprograminputattackersusetotrytoescalateprivilegesprivilegedshellscriptstargetedverydifficulttowritesafelyandcorrectlyExampleVulnerableScriptsusingPATHorIFSenvironmentvariablescausescripttoexecuteattackersprogramwithprivilegesgrantedtoscriptalmostimpossibletopreventinsomeformVulnerableCompiledProgramsifinvokeotherprogramscanbevulnerabletoPATHvariablemanipulationmustresetto“safe”valuesifdynamicallylinkedmaybevulnerabletomanipulationofLD_LIBRARY_PATHusedtolocatesuitabledynamiclibrarymusteitherstaticallylinkprivilegedprogramsorpreventuseofthisvariableUseofLeastPrivilegeexploitofflawsmaygiveattackergreaterprivileges-privilegeescalationhencerunprogramswithleastprivilegeneededtocompletetheirfunctiondeterminesuitableuserandgrouptousewhethergrantextrauserorgroupprivilegeslatterpreferredandsafer,maynotbesufficientensurecanonlymodifyfiles/dirsneededotherwisecompromiseresultsingreaterdamagerecheckthesewhenmovedorupgradedRoot/AdminProgramsprogramswithroot/administratorprivilegesamajortargetofattackerssinceprovidehighestlevelsofsystemaccessareneededtomanageaccesstoprotectedsystemresources,workserverportsoftenprivilegeonlyneededatstartcanthenrunasnormalusergooddesignpartitionscomplexprogramsinsmallermoduleswithneededprivilegesSystemCallsand

StandardLibraryFunctionsprogramsusesystemcallsandstandardlibraryfunctionsforcommonoperationsandmakeassumptionsabouttheiroperationifincorrectbehaviorisnotwhatisexpectedmaybearesultofsystemoptimizingaccesstosharedresourcesbybuffering,re-sequencing,modifyingrequestscanconflictwithprogramgoalsSecureFileShredderRaceConditionsprogramsmayaccesssharedresourcese.g.mailboxfile,CGIdatafileneedsuitablesynchronizationmechanismse.g.lockonsharedfilealternativeslockfile-create/check,advisory,atomicadvisoryfilelock-e.g.flockmandatoryfilelock-e.g.fcntl,needreleaselatermechanismsvarybetweenO/ShavesubtlecomplexitiesinuseSafeTemporaryFilesmanyprogramsusetemporaryfilesoftenincommon,sharedsystemareamustbeunique,notaccessedbyotherscommonlycreatenameusingprocessIDunique,butpredictableattackermightguessandattempttocreateownbetweenprogramcheckingandcreatingsecuretempfilesneedrandomnamessomeolderfunctionsunsafemustneedcorrectpermissionsonfile/dirOtherProgramInteractionmayuseservicesofotherprogramsmustidentify/verifyassumptionsondataespolderuserprogramsnowusedwithinwebinterfacesmustensuresafeusageoftheseprogramsissueofdataconfidentiality/integritywithinsamesystemusepipe/tempfileacross

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論