欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
安全軟件開(kāi)發(fā)入門(mén)(教程) - [Matrix - 與 Java 共舞]

安全軟件開(kāi)發(fā)入門(mén)(教程)

cleverpig 發(fā)表于 2007-07-03 17:22:58
作者:cleverpig     來(lái)源:Matrix
評論數:1 點(diǎn)擊數:435     投票總得分:5 投票總人次:1
關(guān)鍵字:安全,軟件,開(kāi)發(fā)
 

摘要:

本人近日對安全軟件開(kāi)發(fā)頗感興趣,于是在作比較深入的研究后,寫(xiě)下此文,與大家一起共享、討論。安全軟件開(kāi)發(fā)入門(mén):描述了在軟件開(kāi)發(fā)中需要重視的安全問(wèn)題,并介紹了兩種安全開(kāi)發(fā)模式——微軟的“威脅模式”和Gary McGraw提出的“接觸點(diǎn)模式”。最后提出了實(shí)用的安全Web開(kāi)發(fā)“藥方”:從系統架構師、開(kāi)發(fā)人員、系統維護人員的角度出發(fā)討論安全web開(kāi)發(fā)的實(shí)用方案。
安全軟件開(kāi)發(fā)入門(mén)

作者:cleverpig


軟件安全問(wèn)題

有趣的《黑客帝國》終極解釋?zhuān)?/span>



《黑客帝國》故事里面的人物關(guān)系,就像電腦里面的各種程序的關(guān)系一樣:
電腦里面的系統程序:Matrix;
病毒程序:以Neo為首的人類(lèi);
防病毒軟件:Agent特工、機器章魚(yú)、先知(迷惑和引導病毒程序的);
以及出錯程序:Smith和Merovingian。

第一集:病毒程序入侵Matrix,喚醒被隔離的病毒源代碼Neo,并通過(guò)破壞Agent特工這些防毒軟件取得控制部分機器系統的勝利。

第二集:講述Matrix系統通過(guò)蒙騙的方法將Neo等病毒代碼或受感染的程序收集引導到一個(gè)Zion區域,進(jìn)行殺毒,結果在片尾,病毒程序Neo意識到了這一點(diǎn)。

第三集:Matrix系統軟件通過(guò)利用Agent防病毒軟件和Smith出錯程序來(lái)對付Neo這些病毒程序,并且成功地消滅了這兩方,達到系統防御能力升級。

其實(shí)故事一開(kāi)頭就注定了Neo的悲劇結局和人類(lèi)的失敗。因為病毒如果最后導致系統崩潰,病毒也將被消滅。所以病毒要不被系統消滅,要不導致系統崩潰,和系統一起滅亡。

軟件安全問(wèn)題的根源:

內因:軟件有錯誤
        * 脆弱點(diǎn)
                * 缺陷(設計層)
                * Bug(實(shí)現層)
        * 軟件開(kāi)發(fā)方法存在問(wèn)題
外因:軟件的運行環(huán)境
        * 網(wǎng)絡(luò )對軟件的發(fā)展產(chǎn)生了巨大的影響(負面居多)
外部環(huán)境:黑客、惡意代碼
內部環(huán)境:誤操作、報復、經(jīng)濟犯罪

7+1的軟件安全問(wèn)題領(lǐng)域:

1.輸入驗證和表示法
2.濫用API
3.安全特性
4.時(shí)間和狀態(tài)
5.錯誤處理
6.代碼質(zhì)量
7.封裝
*.環(huán)境

1.輸入驗證和表示法

輸入驗證和表示問(wèn)題由元字符、替換編碼、數字表示法引起。如果選擇使用輸入驗證,那么就要使用白列表、而不是黑列表。
由于輕信輸入而造成的大問(wèn)題包括:緩沖區溢出、跨站腳本攻擊、SQL注入、緩存毒藥和其它腳本小子們非常輕易吃到的“低掛的果實(shí)”(這里只安全性較低的軟件設計)。

2.濫用API

API規定了調用者和被調用程序之間的使用約定。濫用API的常見(jiàn)模式是由調用者錯誤地信任被調用方造成的。例如,調用者希望從被調用程序那里返回獲取用戶(hù)信息,而被調用程序并沒(méi)有任何的安全性保證其信息的可靠性。于是調用者就假定了調用程序返回數據的正確性和安全性。當然,也存在“壞人”有意破壞調用者-調用程序之間約定的行為。

3.安全特性

軟件安全不是安全軟件。世界上所有的加密算法都不能滿(mǎn)足真正的安全需要。盡管使用SSL保護網(wǎng)絡(luò )流量的手段,而認證、訪(fǎng)問(wèn)控制、機密性保障、加密算法、權限管理等都可能存在著(zhù)安全缺陷。

4.時(shí)間與狀態(tài)

分布式計算與時(shí)間和狀態(tài)相關(guān)。為了使多個(gè)組件進(jìn)行通信,狀態(tài)必須在組件之間共享,而所有這些都需要花費時(shí)間。因此在時(shí)間和狀態(tài)之間可能存在著(zhù)巨大的、未發(fā)現的天然攻擊資源。
多數開(kāi)發(fā)者人格化了他們的工作(將程序看作“它”的單體)。他們自以為單一、全能的控制線(xiàn)程能夠孜孜不倦地日夜工作,以同一種方式支撐整個(gè)應用。而現代計算機在任務(wù)之間切換速度與日俱增,并且多核、多CPU或者分布式系統的應用使兩件事情完全可以在同一時(shí)間發(fā)生。因此缺陷便出現在開(kāi)發(fā)者所設想的程序執行模型和實(shí)際情況之間的差異中。這些缺陷與在線(xiàn)程、進(jìn)程、時(shí)間和信息之間的無(wú)法預期的交互相關(guān)。而這些交互往往通過(guò)共享狀態(tài)發(fā)生:信號、變量、文件系統、全局信息等。

5.錯誤處理

如果想破壞軟件,那么就讓它拋出一下垃圾數據,并看看你導致了哪些錯誤。在現代面向對系統中,異常的想法取代了被禁止的goto概念。
與錯誤處理相關(guān)的安全缺陷在開(kāi)發(fā)中很常見(jiàn)。在A(yíng)PI被濫用的情況下,安全缺陷主要存在于兩種方式:第一,開(kāi)發(fā)者忘記處理錯誤或者粗略得處理錯誤;第二,在產(chǎn)生錯誤時(shí)要么給出過(guò)于詳細的信息,要么錯誤過(guò)于太具放射性以至于沒(méi)有可處理它們的方式。

6.代碼質(zhì)量

安全是可靠性的子集。如果可以完整地描述你的系統和其存在的正面、負面的安全可能性,那么安全成為了可靠性的子集。劣質(zhì)代碼將導致無(wú)法預期的行為,從軟件使用者的觀(guān)點(diǎn),它將被認為是很差的可用性;而從攻擊者的視角看,糟糕的代碼將提供給系統施壓的可乘之機。

7.封裝

封裝是指在事物之間的邊界和它們之間建立的界限。在web瀏覽器中,它確保了移動(dòng)代碼不能夠強行我們的硬盤(pán)攻擊。在web服務(wù)端,它意味著(zhù)在經(jīng)過(guò)認證的有效數據和私密數據之間的差別。這里的邊界非常重要,如今在類(lèi)之間的一些方法構成了重要的邊界,因此信任模式需要謹慎的設置。

8.環(huán)境

這是上面七種領(lǐng)域的外部領(lǐng)域,它包括在代碼外部的所有東西,并對于我們建立的軟件安全同樣重要。

十大web安全問(wèn)題:

1.未驗證輸入

        問(wèn)題描述:web 請求信息在被Web應用使用之前都是未驗證的,攻擊者能夠利用其中的弱點(diǎn)攻擊服務(wù)器;攻擊者通過(guò)偽造HTTP請求的各個(gè)部分,例如URL,查詢(xún)字符串,頭,cookies,表單域,隱藏域等繞過(guò)站點(diǎn)的安全機制。
        這些常見(jiàn)的偽造輸入攻擊通常包括:強制瀏覽,命令插入,跨站腳本,緩沖區溢出,格式化字符串,SQL注入,cookie中毒,隱藏域操作等等。
        保護方法:過(guò)濾惡意輸入;客戶(hù)端輸入驗證、服務(wù)器端驗證。

2.破壞訪(fǎng)問(wèn)控制

        問(wèn)題描述:對認證用戶(hù)能夠進(jìn)行的操作缺乏合理的限制。攻擊者利用其中的缺陷訪(fǎng)問(wèn)其他用戶(hù)的賬戶(hù),瀏覽敏感文件,或使用未授權的功能。
        保護方法:
        加強對會(huì )話(huà)的保護(會(huì )話(huà)ID);
        防止暴力瀏覽繞過(guò)訪(fǎng)問(wèn)控制檢查;
        合理設置訪(fǎng)問(wèn)權限;
        禁止客戶(hù)端緩存。

3.破壞認證和會(huì )話(huà)管理

        問(wèn)題描述:賬戶(hù)信用和會(huì )話(huà)令牌沒(méi)有被合理保護,攻擊者能夠危及密碼、密鑰、會(huì )話(huà)cookies或其他限制而冒用他人的賬戶(hù)
        保護方法:
        加強密碼強度;
        限制登錄次數;
        使用SSL保護傳輸中的認證信息;
        使用SSL保護會(huì )話(huà)ID;
        禁止客戶(hù)端緩存。

4.跨站腳本缺陷

        問(wèn)題描述:web應用能被利用將攻擊轉送到端用戶(hù)的瀏覽器。成功的跨站攻擊能夠暴露用戶(hù)的會(huì )話(huà)令牌,攻擊本地計算機或者用虛假信息欺騙用戶(hù)。
        保護方法:
        對用戶(hù)提供的輸出進(jìn)行編碼;
        根據白列表,嚴格驗證查詢(xún)字符串;
        過(guò)濾、清除頁(yè)面請求中的活動(dòng)內容。

5.緩沖區溢出漏洞

        問(wèn)題描述:Web應用組件可能存在緩沖區溢出漏洞,對它的攻擊會(huì )造成嚴重的攻擊后果。這種漏洞是由于CGI,庫函數,驅動(dòng)程序、應用服務(wù)器組件等沒(méi)有合理地驗證輸入。
        保護方法:
        密切跟蹤Web應用產(chǎn)品的最新錯誤報告,及時(shí)打補??;
        使用漏洞掃描工具定期對系統進(jìn)行緩沖區溢出漏洞掃描;
        嚴格審查Web應用程序中從用戶(hù)請求接收數據的代碼,確保對緩沖區長(cháng)度進(jìn)行了檢查。

6.注入缺陷

        問(wèn)題描述:Web應用在訪(fǎng)問(wèn)外部系統或本地操作系統時(shí)需要傳遞參數,這些參數可能會(huì )被攻擊者利用嵌入惡意代碼,這樣導致外部系統能以應用服務(wù)器的權限執行系統命令。
        保護方法:
        避免使用外部解釋器;
        對于涉及到的后臺數據庫調用,應對數據進(jìn)行嚴格驗證;
        將Web應用程序設置為能滿(mǎn)足需要的最小權限運行;
        不得不使用外部命令時(shí)進(jìn)行嚴格檢查;
        應該檢查調用的所有輸出、返回代碼和錯誤代碼,最低限度要能確定何時(shí)發(fā)生了錯誤。

7.不合理的錯誤處理

        問(wèn)題描述:正常操作中的錯誤條件沒(méi)能合理處理,如果攻擊者使Web應用產(chǎn)生未作處理的錯誤,就能得到具體系統信息,使安全機制失效,使服務(wù)器崩潰。
        保護方法:
        設計合理的錯誤處理策略并作好文檔,包括要處理的錯誤類(lèi)型、錯誤提示信息、日志需記錄的信息;
        處理所有可能的錯誤,但不暴露不該暴露的細節;
        遇到重復的錯誤嘗試時(shí)發(fā)出警告。

8.不安全存儲

        問(wèn)題描述:Web應用經(jīng)常使用加密函數保護信息和身份證明,這些函數和保護其完整性的代碼很難完全正確地實(shí)現,從而導致弱保護問(wèn)題。
        保護方法
        除非必要,盡量少保存數據;
        存儲密碼的摘要(例如SHA-1)而非加密的密碼;
        必須使用加密算法時(shí),盡量采用公開(kāi)的密碼算法庫。并妥善存儲秘密信息,如密鑰、證書(shū)、密碼等。

9.拒絕服務(wù)

        問(wèn)題描述:攻擊者能夠消耗Web應用的資源,使其無(wú)法正確為合法用戶(hù)服務(wù),或封閉用戶(hù)賬戶(hù)甚至使服務(wù)癱瘓。
        保護方法:
        限定分配給每個(gè)用戶(hù)最少量的資源;
        限制每個(gè)合法用戶(hù)僅有一個(gè)連接,并采用適當的丟棄部分請求的策略;
        避免非認證用戶(hù)對數據庫或其他關(guān)鍵資源的非必要訪(fǎng)問(wèn);
        使用內容緩存的方法減少對數據庫的訪(fǎng)問(wèn)。

10.不安全配置管理

        問(wèn)題描述:對服務(wù)器合理配置是實(shí)現安全性的重要因素,服務(wù)器通常都有損害安全性的不合理配置。
        保護方法:
        為特定服務(wù)器和Web服務(wù)器建立強化安全配置策略,關(guān)閉無(wú)用服務(wù),建立角色、權限和賬戶(hù),使用日志和告警措施;
        始終維護服務(wù)器的安全配置,跟蹤最新安全漏洞,應用最新補丁,升級安全設置,定期漏洞掃描,定期進(jìn)行內部審查。

兩種安全模型:

微軟的安全軟件開(kāi)發(fā)模型:

1.安全開(kāi)發(fā)生命周期(SDL):



SDL總計為四步:
第一步:安全教育,通過(guò)教育才能提高安全意識。
        設計人員:學(xué)會(huì )分析威脅
        開(kāi)發(fā)人員:跟蹤代碼中每字節數據、質(zhì)疑所有關(guān)于數據的假設
        測試人員:關(guān)注數據的變化
第二步:設計階段,利用威脅建模技術(shù)建立系統模型。
第三步:開(kāi)發(fā)階段,編碼與測試并行。
第四步:發(fā)行與維護階段,使用標準的修復機制修復安全缺陷。

2.威脅建模:

威脅模型是一種基于安全的分析,有助于人們確定給產(chǎn)品造成的最高級別的安全風(fēng)險,以及攻擊是如何表現出來(lái)的。
其目標是確定需要緩和哪些威脅,如何來(lái)緩和這些威脅。

主要分為四個(gè)步驟:

第一步:分解應用程序。使用DFD(數據流圖)或者UML(統一建模語(yǔ)言)描述威脅模型,作為分析應用程序的重要組成部分。對應用程序進(jìn)行形式化分解,自頂向下,逐層細化,在分解過(guò)程中關(guān)注過(guò)程之間的數據流。
例如:

第二步:確定系統面臨的威脅。按照“STRIDE”威脅模型:
        S:身份欺騙(Spoofing identity),造成冒充合法用戶(hù)、服務(wù)器欺騙(DNS 欺騙,DNS緩存中毒)。
        T:篡改數據(Tampering with data)。
        R:否認(Repudiation)、。
        I:信息泄露(Information disclosure)。
        D:拒絕服務(wù)(Denial of service, DOS)。
        E:特權提升(Elevation of privilege)。

第三步:威脅評估。按照“DREAD”算法為威脅分級,并建立攻擊樹(shù):
        D:潛在的破壞性(damage potential)
        R:再現性(reproducibility)
        E:可利用性(exploitability)
        A:受影響的用戶(hù)(affected users)
        D:可發(fā)現性(discoverability)
        例如:
        Threat #1: 惡意用戶(hù)瀏覽網(wǎng)絡(luò )上的秘密工資數據
        潛在的破壞性: 讀取他人的私密工資并不是開(kāi)玩笑的事?!L(fēng)險值為8
        再現性:100%可再現?!L(fēng)險值為10
        可利用性: 必須處于同一子網(wǎng)或者處于同一路由器下?!L(fēng)險值為7
        受影響的用戶(hù): 每個(gè)人都將受到影響?!L(fēng)險值為10
        可發(fā)現性: 讓我們假設它已經(jīng)發(fā)生?!L(fēng)險值為10
        計算風(fēng)險DREAD: (8+10+7+10+10) / 5 = 9

        攻擊樹(shù)描述了攻擊者利用系統漏洞破壞各組件,對威脅目標進(jìn)行攻擊所經(jīng)歷的決策過(guò)程。建立攻擊樹(shù)需要考慮的幾個(gè)方面:
        安全威脅:潛在的事件,當攻擊有動(dòng)機并付諸實(shí)施時(shí),威脅轉變?yōu)楣羰录?br>        安全漏洞:系統中的弱點(diǎn)。
        資源:受威脅(或攻擊)的目標。
        
        例如:
        對Threat #1的威脅描述表格:


        Threat #1的攻擊樹(shù):

        
第四步:建立緩和方案,選擇適當的安全技術(shù)。



接觸點(diǎn)開(kāi)發(fā)模型:



根據有效性排列的接觸點(diǎn):
代碼審查(Code review)
架構風(fēng)險分析(Architectural risk analysis )
滲透測試(Penetration testing )
基于風(fēng)險的安全測試(Risk-based security tests )
濫用用例(Abuse cases )
安全需求(Security requirements )
安全操作(Security operations )

1.代碼審查

代碼審查的目標是找到bug,架構風(fēng)險分析的目標是找到缺陷。在很多情況下,這兩個(gè)主要的接觸點(diǎn)的執行順序能夠交換。

靜態(tài)分析工具:
靜態(tài)分析工具在代碼中查找固定的模式或規則集合。
靜態(tài)分析工具的輸出仍然需要人為判斷。
錯報(false negatives)問(wèn)題,程序中含有bug但工具沒(méi)有報告。
誤報(false positives)問(wèn)題,工具報出的bugs程序中不存在。

動(dòng)態(tài)分析工具:
執行程序、錯誤注入。

二進(jìn)制分析:
反匯編和反編譯都是攻擊者最常用的黑客工具。
例如:Fortify Source Code Analysis Suite


2.架構風(fēng)險分析

架構風(fēng)險分析的主要活動(dòng)是從適當的高度建立一個(gè)目標系統的視圖,避免“只見(jiàn)樹(shù)林不見(jiàn)森林”,提倡一頁(yè)紙的總覽, “forest-level”視圖。
例如:


在forest-level視圖中主要分析以下幾個(gè)方面:
威脅(誰(shuí)可能攻擊系統)、每一層環(huán)境中的風(fēng)險、每個(gè)組件和數據流中可能存在的漏洞、技術(shù)風(fēng)險可能造成的商業(yè)破壞、風(fēng)險被實(shí)現的可能性、任何在每一層能夠實(shí)現的可行對策、考慮整個(gè)系統范圍內的可用保護機制。

3.滲透測試

滲透測試,針對系統威脅嘗試對系統進(jìn)行滲透,包括:積極(正向)測試,驗證軟件正常執行了規定的任務(wù);消極(負向)測試,安全測試人員必須深入研究安全風(fēng)險(可能由濫用用例和體系風(fēng)險驅動(dòng))以便確定系統在攻擊之下如何反應。

測試工具:
錯誤注入工具。
其他工具:Fortify Software, CANVAS。
攻擊者的工具包。

4.基于風(fēng)險的安全測試

此測試旨在揭示可能的軟件風(fēng)險和潛在攻擊。

實(shí)施人員:
使用傳統方式的標準測試組織可以執行功能安全測試;
基于風(fēng)險的安全測試更依賴(lài)于專(zhuān)門(mén)技術(shù)和經(jīng)驗,而不是測試經(jīng)驗和安全經(jīng)驗;
教會(huì )測試專(zhuān)業(yè)人員學(xué)會(huì )在測試時(shí)如何象一個(gè)攻擊者一樣思考。

實(shí)施方式:
有源碼:白盒測試,靜態(tài)分析--發(fā)現程序中的錯誤;
根據基于對軟件體系深入的理解而進(jìn)行的風(fēng)險分析的結論,進(jìn)行白盒測試;
無(wú)源碼:黑盒測試,運行程序--惡意輸入。

5.濫用用例

濫用用例指軟件開(kāi)發(fā)人員需要在正常特性之外思考軟件系統的固有特性,如可靠性、安全和性能。

實(shí)施方式:
對系統的異常行為必須事先有所預期;
象攻擊者一樣思考你的系統,利用“反需求”嘗試出錯點(diǎn)。
例如:你的系統有一個(gè)使用加密保護通過(guò)序列化將關(guān)鍵數據寫(xiě)到磁盤(pán)上的安全需求,與這個(gè)需求對應的反需求就是要確定當缺少加密的時(shí)候會(huì )發(fā)什么情況。

6.安全需求

設計系統的安全需求。

7.安全操作

注重配置管理的安全性,由于配置的改變是必然的,因此我們在開(kāi)發(fā)和維護過(guò)程中需要控制配置的改變,建立開(kāi)發(fā)活動(dòng)(程序、數據、文檔)的快照,驗證配置的任何修改,防止惡意修改配置。

常用工具:
Rational ClearCase,MS Visual SourceSafe等。

實(shí)用的安全Web開(kāi)發(fā)“藥方”

規劃體系結構和設計解決方案時(shí):

識別和評估威脅:使用威脅建模系統地識別威脅,而不是以任意的方式應用安全性。接著(zhù),根據攻擊或安全損害產(chǎn)生的風(fēng)險和可能造成的潛在損失,對威脅進(jìn)行評價(jià)。這樣就可以適當的次序對威脅進(jìn)行處理。

創(chuàng )建安全的設計:使用嘗試或檢驗過(guò)的設計原則。集中處理關(guān)鍵區域,在這些區域,方法正確是必須的,而且經(jīng)常會(huì )出現錯誤。這里將它們稱(chēng)為應用程序缺陷類(lèi)別。其中包括輸入驗證、身份驗證、授權、配置管理、敏感數據保護、會(huì )話(huà)管理、密碼系統、參數處理、異常管理和審核與日志記錄各項。要特別注意部署問(wèn)題,包括拓撲、網(wǎng)絡(luò )基礎設施、安全策略和步驟。

執行體系結構和設計復查:應用程序設計的復查與目標部署環(huán)境和相關(guān)的安全策略有關(guān)。需要考慮底層基礎設施層安全性(包括邊界網(wǎng)絡(luò )、防火墻、遠程應用程序服務(wù)器等)帶來(lái)的限制。使用應用程序缺陷類(lèi)別幫助我們對應用程序進(jìn)行分類(lèi),并分析適合于每個(gè)領(lǐng)域的方法。

進(jìn)行應用開(kāi)發(fā)時(shí):

開(kāi)發(fā)工具的安全性:充分了解開(kāi)發(fā)工具(包括語(yǔ)言、虛擬機、IDE環(huán)境、引用的第三方工具包),最好選擇開(kāi)放源代碼的開(kāi)發(fā)工具,這樣以便仔細審核其安全性。檢查開(kāi)發(fā)工具是否提供了用戶(hù)和代碼安全模型,是否允許對用戶(hù)和代碼可以執行的操作進(jìn)行限制。如果開(kāi)發(fā)中涉及公開(kāi)對稱(chēng)和不對稱(chēng)的加密與解密、散列、隨機數生成、數字簽名支持等算法,最好選用可靠的公開(kāi)算法,避免自己炮制算法。

編寫(xiě)安全代碼庫:對程序集進(jìn)行數字簽名,使它們不能隨意改動(dòng)。通過(guò)遵守面向對象設計原理,減小程序集受攻擊面,然后使用代碼訪(fǎng)問(wèn)安全性,進(jìn)一步限制哪些代碼可以調用您的代碼。使用結構化的異常處理方法防止敏感信息蔓延到當前信任邊界之外,并開(kāi)發(fā)更加可靠的代碼。避免常規問(wèn)題,特別是輸入文件名和 URL 的問(wèn)題。

安全地處理異常:不要顯示內部系統或應用程序的詳細信息,如堆棧跟蹤、SQL 語(yǔ)句片斷等。確保這類(lèi)信息不被允許蔓延到最終用戶(hù)或當前信任邊界以外。在異常事件中安全地“失敗”,確保應用程序拒絕非法訪(fǎng)問(wèn),而且沒(méi)有停留在不安全的狀態(tài)下。不記錄敏感或私有數據,如密碼,以免造成危害。在記錄或報告異常時(shí),如果用戶(hù)的輸入包括在異常消息中,對其進(jìn)行驗證或清理。例如,如果返回一個(gè)HTML錯誤消息,那么應該對輸出進(jìn)行編碼,以避免腳本注入。

執行第三方代碼的安全復查:使用分析工具分析二進(jìn)制程序集,確保它們符合安全設計準則,并修復分析工具識別出的所有安全缺陷。復查具體的應用程序元素,包括 Web 頁(yè)面和控件、數據訪(fǎng)問(wèn)代碼、Web 服務(wù)、服務(wù)組件等。要特別注意 SQL 注入和跨站點(diǎn)腳本編寫(xiě)缺陷。

保證開(kāi)發(fā)人員工作站的安全性:使用一套方法保證工作站的安全性。保證帳戶(hù)、協(xié)議、端口、服務(wù)、共享、文件與目 錄和注冊表的安全。最重要的是,保持工作站具有當前最新的補丁與更新。例如如果在 Microsoft Windows_ XP 或 Windows 2000 上運行 Internet 信息服務(wù) (IIS),則運行IISLockdown。IISLockdown 應用安全的IIS配置,并安裝URLScan Internet 安全應用程序編程接口 (ISAPI) 篩選器,該篩選器用于檢測和拒絕潛在的惡意 HTTP 請求。

編寫(xiě)具有最低權限的代碼:可以限制代碼能夠執行的操作,這與運行該代碼所使用的帳戶(hù)無(wú)關(guān)。通過(guò)配置策略或編寫(xiě)代碼,可以使用代碼訪(fǎng)問(wèn)安全性控制來(lái)限制代碼允許被訪(fǎng)問(wèn)的資源和操作。如果代碼不需要訪(fǎng)問(wèn)某種資源或執行某種敏感操作,可以安全性配置/控制來(lái)確保代碼不會(huì )被授予這種權限。

防止SQL注入:使用數據訪(fǎng)問(wèn)的參數化存儲過(guò)程。使用參數要確保輸入值的類(lèi)型和長(cháng)度都 得到檢查。將參數視作安全文本值和數據庫內的不可執行代碼。如果不能使用存儲過(guò)程,也可以使用帶有參數的SQL語(yǔ)句。但不要通過(guò)連接SQL命令和輸入值來(lái)構建 SQL 語(yǔ)句。還要確保應用程序使用具有最低權限的數據庫登錄,以限制它在數據庫中的功能。

防止跨站點(diǎn)腳本編寫(xiě):對輸入類(lèi)型、長(cháng)度、格式和范圍進(jìn)行驗證,并對輸出進(jìn)行編碼。如果輸出包括輸入(包括 Web 輸入),則對輸出進(jìn)行編碼。例如,對窗體字段、查詢(xún)字符串參數、cookie等進(jìn)行編碼,以及對從無(wú)法確定其數據是安全的數據庫(特別是共享數據庫)中讀取的輸入進(jìn)行編碼。對需要以HTML返回客戶(hù)端的自由格式的輸入字段,對輸出進(jìn)行編碼,然后選擇性地清除在許可元素(如用于格式化的 <b> 或 標記)上的編碼。

管理機密:最好尋找避免存儲機密的替代方法。如果必須存儲它們,則不要在源代碼或配置文件中以明文的方式存儲。

安全地調用代碼接口:特別注意傳遞給接口和接口返回的參數,防止潛在的緩沖區溢出。驗證輸入和輸出字符串參數的長(cháng)度,檢查數組邊界,并特別小心文件路徑的長(cháng)度。

執行安全的輸入驗證:對輸入進(jìn)行限制、拒絕和清理,因為驗證已知有效類(lèi)型、模式和范圍的數據要比通過(guò)查找已知錯誤字符來(lái) 驗證數據容易得多。驗證數據的類(lèi)型、長(cháng)度、格式和范圍。對字符串輸入,請使用正則表達式。有時(shí)候可能需要對輸入進(jìn)行清理。一個(gè)例子是在對數據編碼后清理編碼元數據,以保證其安全性。

保證頁(yè)面訪(fǎng)問(wèn)身份驗證的安全性:安全地劃分Web站點(diǎn),隔離匿名用戶(hù)可以訪(fǎng)問(wèn)的公共可訪(fǎng)問(wèn)頁(yè)面和需要身份驗證訪(fǎng)問(wèn)的限制性頁(yè)面。使用安全套接字層 (SSL) 來(lái)保護窗體身份驗證憑據和窗體身份驗證 cookie。限制會(huì )話(huà)生存時(shí)間和確保身份驗證 cookie 只在 HTTPS 上傳輸。對身份驗證 cookie 加密,不要在客戶(hù)端計算機上保留它,也不要將其用于個(gè)性化目的;對個(gè)性化使用單獨的 cookie。

管理和維護系統時(shí):

實(shí)現補丁管理:針對Microsoft平臺,那么可以使用 Microsoft Baseline Security Analyzer (MBSA) 檢查當前安裝可能漏掉的補丁和更新。定期運行該操作,保持服務(wù)器當前安裝有最新的補丁和更新。在應用補丁前,對服務(wù)器數據進(jìn)行備份;在將補丁安裝在生產(chǎn)服務(wù)器上之前,先在測試服務(wù)器上進(jìn)行測試。還要使用 Microsoft 提供的安全通知服務(wù),并訂閱通過(guò)電子郵件接收安全布告。針對Unix/Linux平臺,可以 訂閱有關(guān)漏洞及補丁的郵件列表,定期使用工具,檢查服務(wù)器上安裝的補丁是否與Unix/Linux廠(chǎng)商發(fā)布的最新補丁列表相一致。

保證Web服務(wù)器的安全性:針對Microsoft平臺上運行的IIS服務(wù),可以使用IISLockdown應用安全的IIS配置,并安裝URLScan Internet 安全應用程序編程接口 (ISAPI) 篩選器,該篩選器用于檢測和拒絕潛在的惡意 HTTP 請求。針對Unix/Linux平臺上運行的Apache服務(wù),可以采用選擇性訪(fǎng)問(wèn)控制(DAC)和強制性訪(fǎng)問(wèn)控制(MAC)的安全策略,或者安裝安全相關(guān)的modules。針對WebService常用的協(xié)議(如soap),可以使用 XML 加密以確保敏感數據保持其私有性。使用數字簽名保證消息的完整性,尤其重要的數據應使用SSL加密。最重要的是,保持服務(wù)器安裝了當前最新的補丁和更新,并使其按照最小權限運行。

保證數據庫服務(wù)器的安全性:應用一種常見(jiàn)方法評估帳戶(hù)、協(xié)議、端口、服務(wù)、共享、文件與目錄和注冊表。還要評估 SQL Server的安全設置,如身份驗證模式和審核配置。評估身份驗證方法和 SQL Server登錄、用戶(hù)與角色的使用。確保安裝最新的服務(wù)包,定期監測操作系統和 SQL Server 補丁與更新。

防止拒絕服務(wù)攻擊:確保加強了服務(wù)器上的 TCP/IP 堆棧配置,以應對如 SYN flood 這樣的攻擊。對web服務(wù)的配置做適當的修改以限制接受的 POST 請求的規模,并對請求的執行時(shí)間做出限制。

限制文件 I/O:可以配置代碼訪(fǎng)問(wèn)安全策略,以確保限制單個(gè)程序集或整個(gè) Web 應用程序只能訪(fǎng)問(wèn)文件系統。例如,通過(guò)配置運行在媒體信任級上的 Web 應用程序,可以防止應用程序訪(fǎng)問(wèn)其虛擬目錄層次結構以外的文件。同時(shí),通過(guò)為特定程序集授予受限的文件 I/O 權限,可以精確控制哪些文件可以被訪(fǎng)問(wèn)以及應該如何訪(fǎng)問(wèn)它們。

執行遠程管理:針對Microsoft平臺,其終端服務(wù)提供了一種專(zhuān)用的協(xié)議 (RDP)。它支持身份驗證,并可以提供加密。如果需要文件傳輸工具,可以從 Windows 2000 Server 資源包中安裝文件復制實(shí)用工具。建議不要使用 IIS Web 管理,如果運行 IISLockdown 該選項將被清除。應該考慮提供一個(gè)加密的通信通道,并使用 IPSec 限制可以用于遠程管理您的服務(wù)器的計算機。還應該限制管理帳戶(hù)的數量。針對Unix/Linux平臺,建議采用SSH進(jìn)行遠程管理,文件傳輸使用SFTP。

參考資源:

Microsoft Corporation的《編寫(xiě)安全的代碼》第二版
Gary McGraw編寫(xiě)的《Software Security: Building Security In》
微軟Web安全解決方案一覽
使用Yassp工具包安裝安全的Solaris系統
微軟IIS Lockdown Tool
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
網(wǎng)絡(luò )安全的 10 個(gè)步驟之架構和配置
互聯(lián)網(wǎng)從業(yè)者必須知道的36個(gè)安全技術(shù)術(shù)語(yǔ)
ASP.NET安全問(wèn)題-- 創(chuàng )建安全的Web應用程序
程序設計者需要謹記的九大安全編碼實(shí)踐
Java安全性評估
怎樣查看系統安全日志
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久