




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
應用系統安全開發技術規范
(版本號VI.3)
朗新科技股份有限公司
二O一五年十二月
更改履歷
更改的
版本號修改編號更改時間更改簡要描述更改人批準人
圖表和章節號
0.52013-11-24初稿施偉施偉
1.02015-11-19修改宋月欣陳志明
1.12015-11-30修改宋月欣陳志明
1.22015-12-3修改宋月欣施偉
1.32015-12-3修改施偉
注:更改人除形成初稿,以后每次修改在未批準確認前均需采用修訂的方式
進行修改。
目錄
1背景與目標........................................................1
2安全編程概念......................................................1
2.1安全編程.....................................................1
2.2結構化編程...................................................2
2.3脆弱性.......................................................2
2.4可信計算.....................................................3
2.5安全可信模塊.................................................3
2.6不可信任模塊.................................................3
2.7敏感信息.....................................................3
2.8特權.........................................................3
2.9信息隱藏.....................................................3
2.10中間件.......................................................4
2.11歹匕鎖....................................................................4
2.12可信邊界.....................................................4
2.13元字符.......................................................4
2.14參數化查詢...................................................4
2.15UNIXJAIL環境...............................................5
2.16臨時文件.....................................................5
2.17信息端.......................................................5
2.18SSL...................................................................................................................5
2.19TLS...................................................................................................................5
2.20HTTPS.............................................................................................................5
2.21HTTP會話....................................................6
2.22COOKIE.............................................................................................................6
2.23HTTPONLYCOOKIE...........................................................................................6
3安全編程原則......................................................7
3.1統一的安全規范...............................................7
3.2模塊劃分.....................................................7
3.3最小化功能...................................................7
3.4最小化特權...................................................8
3.5對多任務、多進程加以關注.....................................8
3.6界面輸出最小化...............................................8
3.7使代碼簡單、最小化和易于修改.................................8
3.8避免高危的服務、協議.........................................8
3.9數據和代碼分離...............................................8
3.10關鍵數據傳輸保護.............................................9
3.11禁止賦予用戶進程特權.........................................9
3.12使用適當的數據類型...........................................9
3.13使用經過驗證的安全代碼.......................................9
3.14使用應用中間件...............................................9
3.15設計錯誤、異常處理機制......................................9
3.16提供備份機制................................................10
3.17檢查傳遞變量的合法性........................................10
3.18檢查所有函數返回代碼........................................10
3.19修改面向用戶的操作的反饋缺省描述............................10
3.20文件操作的要求..............................................10
3.21其他編碼原則................................................10
4應用安全分析....................................................11
4.1安全需求....................................................11
4.2安全威脅....................................................12
4.2.1Web安全漏洞..............................................12
4.2.2拒絕服務攻擊..............................................12
4.2.3嗅探攻擊..................................................13
4.2.4中間人攻擊................................................13
4.3安全約束....................................................14
5安全編程要求.....................................................14
5.1輸入處理....................................................14
5.1.1建立可信邊界..............................................14
5.1.2驗證各種來源的輸入........................................15
5.1.3保證所有的輸入信息是被驗證過的............................15
5.1.4對輸入內容進行規范化處理后再進行驗證......................15
5.1.5選擇合適的數據驗證方式....................................16
5.1.6防范元字符攻擊............................................16
5.1.7拒絕驗證失敗的數據........................................16
5.1.8在服務端進行驗證..........................................16
5.1.9建立統一的輸入驗證接口....................................16
5.1.10控制寫入日志的信息........................................17
5.1.11從服務器端提取關鍵參數....................................17
5.2輸出處理....................................................17
5.2.1限制返回給客戶的信息......................................17
5.2.2建立錯誤信息保護機制......................................17
5.3數據庫訪問..................................................17
5.3.1合理分配數據庫訪問權限....................................17
5.3.2合理存放數據庫連接帳號和密碼信息..........................17
5.3.3使用參數化請求方式........................................18
5.3.4對SQL語句中來自于不可信區域的輸入參數進行驗證..........19
5.3.5對數據庫操作的返回數據進行驗證............................19
5.3.6分次提取數據..............................................19
5.3.7通過row(行)級別的訪問控制來使用數據庫..................19
5.3.8確保數據庫資源被釋放......................................19
5.4文件操作....................................................20
5.4.1對上傳文件進行限制........................................20
5.4.2把文件名以及文件內容作為不可信的輸入對待..................20
5.4.3安全的使用文件名..........................................20
5.4.4使用文件系統訪問控制......................................20
5.4.5注意文件訪問競爭條件......................................20
5.4.6安全使用臨時文件..........................................21
5.4.7確保文件系統資源被釋放....................................21
6安全特征.........................................................21
6.1關注應用的對象重用..........................................21
6.2用戶訪問控制信息的機密性....................................21
6.3不要在客戶端存放敏感數據....................................21
6.4避免內存溢出................................................22
6.5可配置數據保護..............................................22
6.6禁止在源代碼中寫入口令......................................22
6.7隨機數......................................................22
6.8使用可信的密碼算法..........................................23
6.9異常管理....................................................23
7應用安全設計規范................................................24
7.1應用安全規劃................................................24
7.2數據安全等級劃分............................................24
7.3數據庫規劃..................................................24
7.3.1用戶權限..................................................24
7.3.2數據源設計................................................24
7.3.3外部系統訪問..............................................25
7.4角色劃分....................................................25
7.5URL規戈IJ.......................................................................................................25
7.6程序文件目錄規劃............................................25
7.6.1數據及程序分離............................................25
7.6.2靜態程序資源..............................................25
7.6.3程序文件分類..............................................25
7.7COOKIE...........................................................................................................26
7.8文件安全....................................................26
7.8.1文件存儲..................................................26
7.8.2文件操作..................................................26
7.8.3文件類型..................................................26
7.9第三方組件安全.............................................26
7.9.1組件兼容性................................................26
7.9.2組件安全及成熟度..........................................26
7.9.3組件配置..................................................27
7.10WEBSERVICE..................................................................................................27
7.11RESTFULWEBSERVICE.................................................................................28
7.12應用安全關注點..............................................29
7.13應用安全限制應對方案........................................30
7.13.1外網隔離..................................................30
7.13.2外網文件操作..............................................31
7.13.3正向和反向隔離裝置(國網系統)...........................31
8應用安全開發規范................................................32
8.1JAVA及WEB安全編程規范...................................32
8.1.1不信任未知................................................32
8.1.2數據層開發................................................32
8.1.3會話管理..................................................34
8.1.4Cookie.........................................................................................................34
8.1.5輸入驗證..................................................35
8.1.6輸入文件名的驗證..........................................35
8.1.7輸出處理..................................................36
8.1.8敏感信息處理..............................................38
8.1.9異常信息處理..............................................38
8.1.10特殊頁面跳轉..............................................38
8.1.11文件操作..................................................39
8.1.12資源釋放..................................................40
8.1.13內存控制..................................................40
8.1.14外部程序調用漏洞.........................................40
8.1.15整數溢出.................................................40
8.2C++安全編程規范................................................41
8.2.1不信任未知...............................................41
8.2.2免緩存區溢出.............................................41
8.2.3免緩整數溢出.............................................44
8.2.4域名合法性檢查...........................................47
8.2.5檢查返回值...............................................49
8.2.6產生隨機數...............................................49
8.2.7驗證輸入文件名...........................................50
8.2.8類設計注意事項...........................................51
8.2.9外部程序調用漏洞.........................................52
8.2.10臨時文件處理..............................................52
編號:
時間:2021年x月x日書山有路勤為徑,學海無涯苦作舟頁碼:第1頁共61頁
1背景與目標
在Internet大眾化及Web技術飛速演變的今天,Web安全所面臨的挑戰日益
嚴峻。黑客攻擊技術越來越成熟和大眾化,針對Web的攻擊和破壞不斷增長,Web
安全風險達到了前所未有的高度。
許多程序員不知道如何開發安全的應用程序,開發出來的Web應用存在較多
的安全漏洞,這些安全漏洞一旦被黑客利用將導致嚴重甚至是災難性的后果。這
并非危言聳聽,類似的網上事故舉不勝舉,公司的Web產品也曾多次遭黑客攻擊,
甚至有黑客利用公司Web產品的漏洞敲詐運營商,造成極其惡劣的影響。
本規范為解決Web應用系統安全問題,對主要的應用安全問題進行分析,并
有針對性的從設計及開發規范、開發管理、安全組件框架、安全測試方面提供整
體的安全解決方案。
使本組織能以標準的、規范的方式設計和編碼。通過建立編碼規范,以使每
個開發人員養成良好的編碼風格和習慣;并以此形成開發小組編碼約定,提高程
序的可靠性、可讀性、可修改性、可維護性和一致性等,增進團隊間的交流,并
保證軟件產品的質量。
2安全編程概念
2.1安全編程
安全編程是指開發人員首先需要具備一定的安全知識,然后識別數據在流轉
(輸入、處理和輸出)過程中可能面對的威脅,對這些威脅進行分析得出其利用
的漏洞,通過合理地編寫代碼消除這些漏洞,降低軟件面臨的風險。本規范對開
發人員的編碼提出統一的安全要求,主要涉及輸入處理、輸出處理、數據庫訪
問、文件操作、異常管理等方面,如下圖:
第1頁共61頁
編號:
時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第2頁共61頁
輸入處理部分能指導開發者避免用戶的不良輸入;輸出處理能指導開發者對
輸出內容進行過濾;數據庫訪問、文件操作部分則能指導開發者進行數據庫查
詢,寫入文件等操作時進行防護;而異常管理、敏感數據保護、對象重用等技
術則指導開發者改進軟件的自身缺陷。WEB開發規范部分則指導用戶在WEB
系統(B/S架構應用)的研發方面時如何增加對應用軟件的保護。
2.2結構化編程
結構化編程,一種編程典范。它采用子程序、程式碼區塊、for循環以及while
循環等結構,來取代傳統的gOtOo希望借此來改善計算機程序的明晰性、品質以
及開發時間,并且避免寫出面條式代碼。
2.3脆弱性
脆弱性指計算機系統安全方面的缺陷,使得系統或其應用數據的保密性、完
整性、可用性、訪問控制、監測機制等面臨威脅。
第2頁共61頁
編號:
時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第3頁共61頁
2.4可信計算
可信計算的行為會更全面地遵循設計,而執行設計者和軟件編寫者所禁止的
行為的概率很低。
2.5安全可信模塊
審計和訪問控制模塊是唯一的安全可信模塊。
2.6不可信任模塊
除審計和訪問控制模塊外其它所有模塊均為不可信模塊。
2.7敏感信息
系統的敏感信息包括用戶身份信息、認證信息、授權信息、交易過程中的私
密或隱私信息、其它的敏感信息。
2.8特權
特權只是允許去做并不是每個人都可以做的事情。
2.9信息隱藏
信息隱藏指在設計和確定模塊時,使得一個模塊內包含的特定信息(過程或
數據),對于不需要這些信息的其他模塊來說,是不可訪問的。
信息隱藏基本原理框圖:
第3頁共61頁
編號:
時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第4頁共61頁
2.10中間件
中間件是提供系統軟件和應用軟件之間連接的軟件,以便于軟件各部件之間
的溝通.中間件技術創建在對應用軟件部分常用功能的抽象上,將常用且重要的過
程調用、分布式組件、消息隊列、事務、安全、連結器、商業流程、網絡并發、
HTTP服務器、WebService等功能集于一身或者分別在不同品牌的不同產品中分
別完成。
2.11死鎖
死鎖是操作系統或軟件運行的一種狀態:在多任務系統下,當一個或多個進
程等待系統資源,而資源又被進程本身或其它進程占用時,就形成了死鎖。
2.12可信邊界
可信邊界可以被認為是在程序中劃定的一條分隔線,一邊的數據是不可信的
而另一邊則是可信的。當數據要從不可信的一側到可信一側的時候,需要使用驗
證邏輯進行判斷。
2.13元字符
元字符就是在編程語言中具有特定含義的字符或者字符串。例如在SQL查詢
中,單引號(,)是危險的字符;在文件系統路徑中兩個點號(..)是危險的字符;
在命令shell中,分號(;)和雙&(&&)符號同樣是危險的字符,而換行符(\n)
對日志文件很關鍵。
2.14參數化查詢
參數化查詢(ParameterizedQuery或ParameterizedStatement)是指在設計與
數據庫鏈接并訪問數據時,在需要填入數值或數據的地方,使用參數(Parameter)
來給值,這個方法目前已被視為最有效可預防SQL注入攻擊(SQLInjection)的攻
擊手法的防御方式。
第4頁共61頁
編號:
時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第5頁共61頁
2.15UNIXJAIL環境
一個被改變根目錄的程序不可以訪問和命名在被改變根目錄外的文件,那個
w
根目錄叫做"chroot監獄(chrootjail,chrootprison)o
2.16臨時文件
創建臨時文件的程序會在完成時將其刪除。
2.17信息熔
信息熠指信息的不確定性,一則高信息度的信息端是很低的,低信息度的燧則
高。
2.18SSL
安全套接層(SecureSocketsLayer,SSL),一種安全協議,是網景公司(Netscape)
在推出Web瀏覽器首版的同時提出的,目的是為網絡通信提供安全及數據完整性。
SSL在傳輸層對網絡連接進行加密。
SSL采用公開密鑰技術,保證兩個應用間通信的保密性和可靠性,使客戶與
服務器應用之間的通信不被攻擊者竊聽。它在服務器和客戶機兩端可同時被支持,
目前已成為互聯網上保密通訊的工業標準。現行Web瀏覽器亦普遍將HTTP和SSL
相結合,從而實現安全通信。此協議和其繼任者是TLS。
2.19TLS
SSL(SecureSocketsLayer)是網景公司(Netscape)設計的主要用于Web的
安全傳輸協議。這種協議在Web上獲得了廣泛的應用。IETF()將SSL作了標準
化,即RFC2246,并將其稱為TLS(TransportLayerSecurity),其最新版本是
RFC5246,版本1.2。從技術上講,TLS1.0與SSL3.0的差異非常微小。
2.20HTTPS
超文本傳輸安全協議(縮寫:HTTPS,英語:HypertextTransferProtocolSecure)
第5頁共61頁
編號:
時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第6頁共61頁
是超文本傳輸協議和SSL/TLS的組合,用以提供加密通訊及對網絡服務器身份的
鑒定。HTTPS連接經常被用于萬維網上的交易支付和企業信息系統中敏感信息的
傳輸。HTTPS不應與在RFC2660中定義的安全超文本傳輸協議(S-HTTP)相混。
2.21Http會話
在計算機科學領域來說,尤其是在網絡領域,會話(session)是一種持久網絡
協議,在用戶(或用戶代理)端和服務器端之間創建關聯,從而起到交換數據包
的作用機制,session在網絡協議(例如telnet或FTP)中是非常重要的部分。
在不包含會話層(例如UDP)或者是無法長時間駐留會話層(例如HTTP)
的傳輸協議中,會話的維持需要依靠在傳輸數據中的高級別程序。例如,在瀏覽
器和遠程主機之間的HTTP傳輸中,HTTPcookie就會被用來包含一些相關的信息,
例如sessionID,參數和權限信息等。
當客戶端在多個服務器調取數據時,保持會話狀態的一致性是需要注意的,
客戶端需用同時保持和某一個主機的連接,或者多個服務器端需要共享一個儲存
會話信息的文件系統或者數據庫。否則,當用戶在一個新的而不是一開始保存會
話信息的主機上提交訪問請求的時候,主機會因為無法獲知原來主機的會話的訪
問狀態而產生問題。
2.22Cookie
Cookie(復數形態Cookies),中文名稱為小型文本文件或小甜餅,指某些網站
為了辨別用戶身份而儲存在用戶本地終端(ClientSide)上的數據(通常經過加密)。
定義于RFC2109。為網景公司的前雇員LouMontulli在1993年3月所發明。
2.23HttpOnlyCookie
HttpOnly是包含在Http響應頭信息Set-Cookie中的一個額外標志,如果瀏覽
器支持HttpOnly標志的話,在生成Cookie時使用HttpOnly標志可幫助減輕客戶
端腳本訪問受保護的Cookie時帶來的風險(客戶端腳本不能訪問HttpOnlyCookie)。
第6頁共61頁
編號:
時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第7頁共61頁
3安全編程原則
3.1統一的安全規范
每個軟件項目在設計階段都應明確在項目實施過程中項目組應遵循的統一規
范,具體包括:
1.命名規則、組件使用規范、異常處理規范、日志處理規范、工具使用要求、
代碼集成規范。
2.針對本規范提出的主要代碼脆弱性應進行相應的防范設計,具體內容應在
軟件概要設計中體現或有單獨的文檔體現。
3.2模塊劃分
1.軟件應該按照安全性劃分模塊,審計和訪問控制模塊為安全可信模塊,其
它模塊為不可信任模塊。只有安全可信模塊才可以執行安全控制功能,其
它的模塊不能訪問安全可信模塊的安全信息、功能或者權限。安全可信模
塊應該與其它模塊分離,由經授權的內部專人進行管理。
2.只有安全可信模塊,才能以高安全等級訪問系統的敏感信息,對于其他模
塊限制其訪問敏感信息。
3.3最小化功能
根據“沒有明確允許的就默認禁止”的原則,軟件應只包含那些為達到某個
目標而確實需要的功能,不應包含只是在將來某個時間需要但需求說明書中沒有
的功能。軟件在最小化功能建設方面應遵循如下原則:
1.只運行明確定義的功能。
2.系統調用只在確實需要的時候。
3.一次只執行一個任務。
4.只有在上一個任務完成后才開始下一個任務。
5.只在確實需要的時候訪問數據。
第7頁共61頁
編號:
時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第8頁共61頁
3.4最小化特權
1.只為程序中需要特權的部分授與特權。
2.只授與部分絕對需要的具體特權。
3.將特權的有效時間或者可以有效的時間限制到絕對最小。
3.5對多任務'多進程加以關注
軟件開發應盡量使用單任務的程序。如果軟件需要使用多任務和多進程,應
該認真分析研究多任務和多進程會不會發生沖突,同步所有的進程和任務以避免
沖突。同時作為結構化的編程,每個原子化組件都要保證一個入口和一個出口。
如果進程之間需要交互,則這些交互操作應同步。對于每一種可能的交互情況都
要考慮相關的安全策略。
3.6界面輸出最小化
軟件應保持用戶界面只提供必須的功能,沒有多余的、不必要的功能,確保
用戶不能通過用戶界面直接訪問數據或者直接訪問被保護對象。
3.7使代碼簡單'最小化和易于修改
開發時應盡量使代碼簡單、最小化和易于修改。使用結構化的編程語言,盡
量避免使用遞歸和Goto聲明。使用簡單的代碼,清除不必要的功能,防止采用
信息隱藏方式進行數據保護。
3.8避免高危的服務'協議
軟件應盡量避免使用不加保護的及已被證明存在安全漏洞的服務和通信協議
傳輸文件,如FTP、SMTPo
3.9數據和代碼分離
軟件應該把數據與程序放置在不同的目錄中,這里的數據包括遠程下載文件
等。
第8頁共61頁
編號:
時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第9頁共61頁
3.10關鍵數據傳輸保護
1.軟件在傳輸關鍵數據時,使用加密算法保證數據在通信過程不被破譯,使
用數字簽名保證數據在傳輸過程中的一致性和不可否認性。相關的加密算
法和簽名技術等應符合國家相關法律法規要求。
2.信息隱藏是不可靠、效率低的做法,軟件應該使用正確的安全保護措施,
不要依賴隱藏進行數據保護。
3.11禁止賦予用戶進程特權
用戶進程的授權應采用最小授權法,對于軟件的普通用戶進程,禁止賦予該
類進程特權用戶權限。特權用戶類型包括:
1.超級用戶。
2.直接操作數據庫用戶。
3.安全管理用戶。
3.12使用適當的數據類型
應該小心使用數據類型,盡量使用占用內存較小的數據類型,如可用整型數
據的不用實型,特別是在程序接口部分。例如,在一些編程語言中signed和
unsigned的數據類型是視為不同的(如C或者C++語言)。
3.13使用經過驗證的安全代碼
使用經過驗證的安全代碼模塊和外部源程序,防止潛在的安全風險。
3.14使用應用中間件
中間件作為一種應用層架構,軟件設計應盡可能使用中間件,中間件選型時
應選擇成熟的、業界主流的中間件產品。
3.15設計錯誤'異常處理機制
軟件設計開發時應建立防止系統死鎖的機制,異常情況的處理和恢復機制,
第9頁共61頁
編號:
時間:2021年x月x日書山有路勤為徑,學海無涯苦作舟頁碼:第1。頁共61頁
具體包括錯誤和異常檢測、數據回滾、安全錯誤通知、錯誤和異常記錄、斷點保
護等。
3.16提供備份機制
為保證運行數據的完整性和可用性,軟件開發應設計有效的備份策略,根據
業務和系統維護需要提供定期或不定期、自動或手動方式的備份機制。
3.17檢查傳遞變量的合法性
應檢查所有傳遞給系統函數調用(SystemCalls)或本地調用(NativeCalls)
的變量的合法性。
3.18檢查所有函數返回代碼
應檢查所有函數調用返回代碼(錯誤代碼),對每個期望的返回值設置相應的
處理程序。
3.19修改面向用戶的操作的反饋缺省描述
應對面向用戶的操作的反饋缺省描述進行必要的封裝,刪除有關后臺系統或
其它敏感信息。
3.20文件操作的要求
在需要進行文件操作時,應預先設定目前工作路徑(全路徑名),使用全路徑
名表示文件的位置。
3.21其他編碼原則
1.當一個進程對敏感對象(包含秘密信息或包含不可更改信息)使用完后,
應立即擦除對象的敏感信息,然后再刪除對象。任何不需要使用的資源應
及時釋放。
2.確保所有用來指示數組下標的數據(或指針)都指向了一個有效的數組元
素。如果某個函數不能保證下標所指向元素的有效性,或者根本不去檢
第10頁共61頁
編號:
時間:2021年x月x日書山有路勤為徑,學海無涯苦作舟頁碼:第11頁共61頁
查邊界時,不要使用該函數,應該尋找一個安全的函數,或者自己重新編
寫一個或者封裝一個不安全的函數,加上必要的判斷條件,使它安全。
3.當輸入不可信任數據時,要在該數據的內容和格式上同時加以檢查。對于
整數,應該檢查數據大小是否超出了能夠表示的范圍;對于輸入的字符串,
要確保長度沒有溢出,保證每一個字符都是有效的。
4.對經常使用的類似的SQL語句應使用綁定變量的方法,避免數據庫執行
類似SQL語句時重復解析、重復訪問數據文件的行為。
5.程序編碼結束后,應對代碼進行優化,提高應用處理SQL的性能。
6.禁止使用通配符的方式進行數據的插入操作。
7.采用數據庫作為系統間接口方式時,應建立獨立的接口表,并按最小化特
權原則進行授權。
4應用安全分析
4.1安全需求
系統安全本質上屬于信任問題,要保證應用安全,就必須將解決各種操作過
程中不可信問題。安全的幾個基本要素為機密性、完整性、可用性、可審計性、
不可抵賴性等方面的安全要求。
機密性要求保護數據內容不能泄露,加密是實現機密性的要求的常見手段。
完整性要求保護數據內容是完整、沒有被篡改的。
可用性要求保護資源是可被按照需要訪問。
可審計性對出現的安全問題提供調查的依據和手段。
不可抵賴性建立有效的責任機制,防止用戶否認其行為。
第11頁共61頁
編號:
時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第12頁共61頁
4.2安全威脅
4.2.1Web安全漏洞
根據結合國網系統安全檢測項目常見安全問題及OWASP組織發布的安全漏
洞,系統中存在的需要解決的安全風險如下:
序號安全威脅產生環節
1SQL注入編碼
2失效的身份認證及會話管理設計、編碼
3跨站腳本(XSS)編碼
4點擊劫持(Clickjacking)編碼
4不安全的直接對象引用編碼
5安全配置錯誤配置實施
6敏感信息泄露設計、編碼
7功能級訪問控制缺失(失敗的URL訪問權設計
限限制)
8跨站請求偽造(CSRF)編碼
9使用含有已知漏洞的組件管理、設計
10未驗證的重定向和轉發編碼
11傳輸層保護不足設計、編碼
12文件上傳漏洞編碼
13不安全的加密存儲設計、編碼
4.2.2拒絕服務攻擊
分布式拒絕服務攻擊(英文:DistributedDenialofService,縮寫:DDoS)亦
稱洪水攻擊。顧名思義,即是利用網絡上已被攻陷的電腦作為“僵尸”,向某一特
定的目標電腦發動密集式的“拒絕服務”式攻擊,用以把目標電腦的網絡資源及
系統資源耗盡,使之無法向真正正常請求的用戶提供服務。黑客通過將一個個“喪
尸”或者稱為“肉雞”組成僵尸網絡,就可以發動大規模DDoS或SYN洪水網絡
攻擊,或者將“喪尸”們組到一起進行帶有利益的刷網站流量、Email垃圾郵件群
第12頁共61頁
編號:
時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第13頁共61頁
發,癱瘓預定目標受雇攻擊競爭對手等商業活動。
4.2.3嗅探攻擊
利用計算機的網絡接口截獲目的地為其他計算機的數據報文的一種技術。它
工作在網絡的底層,把網絡傳輸的全部數據記錄下來.嗅探器可以幫助網絡管理員
查找網絡漏洞和檢測網絡性能。嗅探器可以分析網絡的流量,以便找出所關心的
網絡中潛在的問題。
證明你的網絡有嗅探器有兩條經驗:
1.網絡通訊丟包率非常高:通過一些網管軟件,可以看到信息包傳送情況,
最簡單是ping命令。它會告訴你掉了百分之多少的包。如果你的網絡結
構正常,而又有20%—30%數據包丟失以致數據包無法順暢的流到目的
地。就有可能有人在監聽,這是由于嗅探器攔截數據包導致的。
2.網絡帶寬出現反常:通過某些帶寬控制器,可以實時看到目前網絡帶寬的
分布情況,如果某臺機器長時間的占用了較大的帶寬,這臺機器就有可能
在監聽。應該也可以察覺出網絡通訊速度的變化。
4.2.4中間人攻擊
在密碼學和計算機安全領域中,中間人攻擊(Man-in-the-middleattack,通
常縮寫為MITM)是指攻擊者與通訊的兩端分別建立獨立的聯系,并交換其所收
到的數據,使通訊的兩端認為他們正在通過一個私密的連接與對方直接對話,但
事實上整個會話都被攻擊者完全控制。在中間人攻擊中,攻擊者可以攔截通訊雙
方的通話并插入新的內容。在許多情況下這是很簡單的(例如,在一個未加密的
Wi-Fi無線接入點的接受范圍內的中間人攻擊者,可以將自己作為一個中間人插入
這個網絡)。
一個中間人攻擊能成功的前提條件是攻擊者能將自己偽裝成每一個參與會
話的終端,并且不被其他終端識破。中間人攻擊是一個(缺乏)相互認證的攻擊。
大多數的加密協議都專門加入了一些特殊的認證方法以阻止中間人攻擊。例如,
SSL協議可以驗證參與通訊的一方或雙方使用的證書是否是由權威的受信任的數
字證書認證機構頒發,并且能執行雙向身份認證。
第13頁共61頁
編號:
時間:2021年x月x日書山有路勤為徑,學海無涯苦作舟頁碼:第14頁共61頁
4.3安全約束
序號限制
1外網不允許部署數據庫
2外網僅提供HTTP、HTTPS訪問,不提供等
3外網訪問內網必須通過強隔離裝置,僅支持TNS協議(國網系統要求)
4外網應用不允許直接訪問內網關鍵業務系統數據庫
5其它系統原則上都不允許直接連接營銷系統數據庫
5安全編程要求
5.1輸入處理
5.1.1建立可信邊界
需要在程序中定義清晰的可信邊界。在一些代碼中用于保存可信數據的數據
結構,不能被用來在其它代碼中存儲不可信數據。使數據穿越可信邊界的次數降
到最低。
當程序混淆了可信和不可信數據的界限時會導致安全邊界發生問題,最容易
導致這種錯誤的情況是把可信和不可信數據混合在一個數據結構里。如下例:
該例中程序接受一個http請求并將"usrname"參數放在HTTPsession里,
但是并未檢查用戶是否被授權。
usrname=request.getParameter(nusmamen);
if(session.getAttribute(ATTR_USR)==null){
session.setAttribute(ATTR_USR,usrname);
由于開發者都知道用戶是不能直接訪問session對象的,所以很容易信任來自
session的所有信息,但是如果在該session中混合存儲了可信和不可信的數據,
就會違反完全可信邊界的原則,帶來安全隱患。如果不能很好的建立和維護可信
第14頁共61頁
編號:
時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第15頁共61頁
邊界,開發者將不可避免的混淆未被驗證和已驗證的數據,從而導致一些數據在
未經驗證時就被使用。如果輸入的數據在處理前通過一些用戶的交互發生了改變,
可信邊界就會遇到一定的問題,因為它很可能在所有數據進入之前不能做出完全
的輸入驗證。在這種情況
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電氣設計與安裝作業指導書
- 專業技術培訓合作合同
- 湖北教育考試題庫及答案
- 安保外包合同終止協議書
- 建筑樁基礎施工合同
- 物流運輸優化與成本控制手冊
- 一年級數學上冊 3 1~5的認識和加減法第7課時 認識減法教學設計 新人教版
- 商標轉讓協議合同書
- 品牌建設中的情感共鳴構建計劃
- 一年級道德與法治下冊 4 我們長大了 3《我的成長記錄》教學設計 未來版
- 血液制品規范輸注
- 2025項目部與供應商安全生產物資供應合同
- 暖通空調面試題及答案
- 防造假培訓課件教案模板
- 冷庫項目工程施工組織設計方案
- 2025年上半年浙江金華義烏市勞動人事爭議仲裁院招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 護理文書如何規范書寫
- 2025年河北省石家莊市一中、唐山一中等“五個一”名校高三全真模擬(最后一卷)生物試題試卷含解析
- 2023年河南單招語文模擬試題
- 2025年鄭州鐵路職業技術學院單招職業傾向性測試題庫附答案
- 課題開題報告:醫學院校研究生“導學思政”創新實踐路徑研究
評論
0/150
提交評論