軟件供應鏈安全的基礎是( ?????)
A.完善的需求分析
B.源代碼安全
C.滲透測試
D.軟件測試
參考答案:B
保證源代碼安全的主要措施包括(???????)
A.開發工具和環境的安全
B.代碼安全
C.滲透測試
D.代碼審計
E.軟件的說明文檔完整
參考答案:ABCD
通過(????)技術,實現源代碼在終端、網絡及服務器存儲場景下全周期的安全管理,防止內部代碼有意、無意泄露、擴散出去。
A.數據加
B.數據脫
C.數據安全隔離
D.防火墻
參考答案:C
軟件供應鏈可劃分為開發、交付、運行三個大的環節,每個環節都可能會引入供應鏈(????????)從而遭受攻擊,上游環節的安全問題會傳遞到下游環節并被放大。
A成本增加
B.管理復雜
C.被黑客盯上
D.安全風險
參考答案:D
路徑遍歷、注入、NULL引用、資源管理、密碼管理、API誤用、配置管理、( ??????)等十類安全缺陷是程序員在編寫軟件代碼時經常會出現的典型安全缺陷。
A.輸入驗證
B.跨站腳本
C.安全培訓
D.日志偽造
參考答案:ABD
從漏洞的影響度來分析,在2021年影響范圍最大的開源軟件漏洞為CVE-2020-5421是( ????????)漏洞,影響了44.3%的軟件項目。
A.Google Guava訪問控制錯誤
B.FasterXML Jackson-databind代碼問題
C.Spring Framework安全
D.Apache Log4j信任管理問題
參考答案:C
CVE-2020-3947是一個存在于( ??????)產品中vmnetdhcp服務里的UAF漏洞, VMware官方評估這是一個極其嚴重的漏洞,CVSSv3評分為 9.3。
A.docke
B.云計算
C.VMware Workstation系列
D.邊緣計算
參考答案:C
()是通過靜態分析程序源代碼,找出代碼中存在的安全性問題。
A.源代碼審計
B.軟件測試
C.模糊測試
D.滲透測試
參考答案:A
將測試代碼運行起來,然后通過構造各種類型的測試數據來判斷代碼對數據的處理是否正常,以發現代碼中存在的安全性問題。這種方式稱為(???????????)
A.源代碼審計
B.合規檢查
C.模糊測試
D.漏洞檢查
參考答案:C
軟件的(?????)通常指的是計算機程序或硬件系統中存在的任何類型的錯誤、故障或缺陷,這些錯誤可能會導致意外的結果或異常的系統行為,更多的是影響軟件的功能性,比如包括編程錯誤、硬件故障、邏輯錯誤等。
A.漏洞
B.測試
C.脆弱性
D.Bug
參考答案:D
(?????????)是一種對軟件系統的源代碼進行詳細檢查以發現潛在安全漏洞的過程,目的是發現并修復應用程序中的安全漏洞,確保應用程序在發布之前沒有漏洞。
A.應用安全測試
B.代碼審計
C.漏洞掃描
D.滲透測試
參考答案:B
代碼審計崗位的主要職責包括:制定源代碼安全規范;熟悉OWASP TOP10 ; 熟練掌握主流的源代碼審計工具,如( ???????????) 、Armorize CodeSecure、RIPS等;持續關注網安發展動向;出色的溝通技巧和語言表達能力、文檔編寫能力;團隊協作精神和敬業精神。
A.Nmap
B.PingCode
C.Metasploit
D.Fortify SCA和Checkmarx
參考答案:D
(??????????)是常見軟件開發和硬件設計的安全漏洞列表,是安全工具的量尺,并且是弱點識別,緩解和預防工作的基準。
A.CVE (Common Vulnerabilities & Exposures)
B.CWE(CommonWeakness Enumeration)
C.CVSS (Common Vulnerability Scoring System)
D.CNNVD(China National Vulnerability Database of Information Security)
參考答案:B
漏洞是攻擊面管理中的重要組成部分,下列詞匯中,不屬于漏洞庫的是(??????????)
A.CNVD
B.CICSVD
C.CCF
D.CV
參考答案:C
攻擊者可利用跨站請求偽裝?漏洞假冒另一用戶發出未經授權的請求,即惡意用戶盜用其他用戶的身份使用特定資源。該漏洞是( ???????)
A.XSS
B.CSRF
C.SSRF
D.CNVD
參考答案:B
導致代碼缺陷的原因主要包括(?????????)
A.采用SDL
B.程序員的開發經驗和技術水平
C.項目中引入開源代碼,導致開源漏洞
D.項目發布前通常進行功能和性能測試,沒有安全測試
參考答案:BCD
常見的源代碼缺陷包括(????????)三類
A.輸入驗證
B.輸出驗證
C資源審計
D.代碼質量
參考答案:ACD
you can't manage what you can't measure是( ???????)的名言
A.李彥宏
B.彼得?· 德魯克
C.雷軍
D.馬丁.杰克遜
參考答案:B
程序接收的數據可能來源于(????????)。如果未對程序接收的數據進行校驗,則可能會引發安全問題。
A.合法用戶輸入
B.未經驗證的用戶
C.網絡連接和其他不受信任的來源
D.系統數據文件
參考答案:BC
對于無法確定固定格式的變量,一定要進行(???????)處理。
A.語法檢查
B.格式檢查
C.字符串長度
D.特殊符號過濾或轉義
參考答案:D
(???????)攻擊通常指的是通過利用網頁開發時留下的漏洞,通過巧妙的方法注入惡意指令代碼到網頁,使用戶加載并執行攻擊者惡意制造的網頁程序。這些惡意網頁程序通常是JavaScript,但實際上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。
A.XSS
B.CSS
C.CSRF
D.SQL注入
參考答案:A
當一個變量指向一個NULL值,使用這個變量的時候又沒有檢查,這時會導致( ????????)
A.緩沖區溢出
B.棧溢出
C空指針異常
D.系統錯誤
參考答案:C
(???????)中的敏感信息,如密碼,服務器的地址和加密密鑰,可能會泄露給攻擊者。敏感信息均必須存在在配置文件或數據庫中。
A.用戶加密
B.軟編碼
C.UNICODE
D.硬編碼
參考答案:D
SQL注入攻擊的本質,是( ???????)。根本解決辦法是預編譯,也就是sql語句事先編譯好了,隨后傳入參數填坑,不會重新再編譯,也就不會有sql注入:select,update,delete,insert等
A.注入的數據是全部是字符型數據
B.用戶可以定義數據庫的命令
C.程序把用戶輸入的數據當作代碼執行
D.語法規定太寬泛
參考答案:C
異常處理,也稱為(??????????)
A錯誤處理
B.系統故障
C.代碼缺陷
D.內存泄露
參考答案:A
異常處理的基本模型包括(?????????)兩類。
A.內存溢出、系統崩潰
B.終止模型
C.恢復模型
D.SDL、CND
參考答案:BC
可以直接使用無長度限制的字符拷貝函數轉移字符
參考答案:錯誤
ASLR是一種針對緩沖區溢出的安全保護技術,通過對堆、棧、共享庫映射等線性區布局的隨機化,通過增加攻擊者預測目的地址的難度,防止攻擊者直接定位攻擊代碼位置,達到阻止溢出攻擊的目的。
參考答案:正確
競爭條件指多個線程或者進程在讀寫一個獨立或隔離數據時結果依賴于它們執行的相對時間的情形
參考答案:錯誤
在多個進程或線程之間共享對資源的訪問,可限制”檢查“(CHECK)和”使用“(USE)資源之間的時間量,使他們相距盡量不要太遠。這種方案可以緩解TOCTOU問題。
參考答案:正確
在進行文件操作時,需要判斷外部傳入的文件名是否合法,如果文件名中包含?../等特殊字符,則會造成路徑穿越,導致任意文件的讀寫。
參考答案:正確
在一些涉及大小端數據處理的場景,需要進行大小端判斷,例如從大段設備取出的值,要以大段進行處理,避免端序錯誤使用。
參考答案:正確
在C/C++編程,使用無長度限制的的函數,它會產生( ?????????)漏洞。
A.內存泄露
B.信息泄露
C.輸入錯誤
D.緩沖區溢出
E.SQL注入
參考答案:BD
在C/C++編程中,不應直接使用legacy的字符串拷貝、輸入和輸出函數,如( ??????)等,這些函數的特征是:可以輸出一長串字符串,而不限制長度。
A.scanf
B.strcpy
C.strcat
D.sprintf
參考答案:ABCD
下列選項中,HTTP_HOST參數屬于的變量是( ?????)
A.$_GET
B.$_POST
C.S_COOKIE
D.$_SERVER
參考答案:D
SQL注入中的寬字節注入主要是由于程序使用( ?????)編碼引起的
A.Unicode
B.GBK
C.UTF8
D.MD5
參考答案:B
若在程序中對參數使用urldecode()函數進行了過濾,可能存在的注入方式為( ?????????)
A.二次URL解碼繞過
B.Base64編碼繞過
C.JSON編碼繞過
D.MD5繞過
參考答案:A
下列選項,PHP中屬于字符串替換的函數是( ?????)
A.substrreplace()
B.pregreplace()
C.Strreplace()
D.preg_split()
參考答案:D
下列選項中,不屬于PHP防御SQL注入的通用過濾函數的是( ?????)
A.mysql_escape_string
B.intval
C.adslashes
D.str_replace
參考答案:D
在SQL注入中將已經過濾后的“\”吃掉的注入方式為( ?????)
A.寬字節注入
B.報錯注入
C.GET注入
D.Cookie注入
參考答案:A
若程序中使用將敏感字符替換為空,可以繞過的方法為(??????)
A大小寫繞過
B.編碼繞過
C.雙寫繞過
D.簡單繞過
參考答案:C
下列選項中,將SQL語句指定連接的形式設置為Binary,使用的參數是( ?????)
A.character_client
B.character_set_client
C.character
D.character_set
參考答案:B
下列選項中,可以有效地防御FILE注入漏洞的參數是( ?????)
A.Magic_quotes_gpc
B.Magic_gpc
C.Magic_quotes_runtime
D.Magic_runtime
參考答案:C
下列選項中,可以獲取HTTP頭信息的函數是( ???????)
A.getenv()
B.getenvironment()
C.get_env()
D.environment()
參考答案:A
GET方式傳遞的數字型參數無法繞過addslashes()函數的過濾。
參考答案:錯誤
GET方式傳遞的字符型參數無法繞過addslashes()函數的過濾。
參考答案:正確
對于無過濾參數注入通常可使用union注入獲取數據。
參考答案:正確
寬字節注入可以在編碼設置不合理的情況下繞過防御函數addslashes().
參考答案:正確
二次URL編碼注入不能夠繞過GPC保護。
參考答案:錯誤
PDO預編譯方式可以有效地防御SQL注入漏洞。
參考答案:正確
常見的數字型SQL注入可使用報錯注入或盲注入的方式來進行繞過。
參考答案:正確
addslashes()函數的功能和magic_quotes_gpc()不完全相同。
參考答案:錯誤
在PHP中mysql_escape_string()和mysql_real_escape_string()函數效果是完全相同的。
參考答案:錯誤
在PHP中進行URL解碼的函數是urldecode.
參考答案:正確
按照數據類型分類,SQL注入主要分為( ?????)
A.整數型
B.浮點型
C.數字型
D.字符型
參考答案:CD
在SQL注入中若無正常回顯信息,則可以使用的方法是( ?????)
A.時間盲注
B.布爾盲注
C.報錯注入
D.手工注入
參考答案:ABC
下列選項中,可能存在SQL注入點的是( ?????)
A.COOKIE
B.HPPT頭
C.POST參數
D.Referer參數
參考答案:ABCD
下列選項中,屬于SQL注入的內置過濾函數的是( ??????)
A.str_replace()
B.intval()
C.addslashes()
D.mysql_escape_string()
參考答案:BCD
下列選項中,可以使用mysql_escape_string()函數過濾的特殊字符包括( ?????)
A.[\x00]
B.[\n]
C.[\r]
D.[\]
參考答案:ABCD
我國的代碼安全審計規范的標準是(????????)
A.GB./T25069
B.GB./T35273-2020
C.GB./T39412-2020
D.GB./T15272-1994
參考答案:C
代碼安全審計的基本流程,包括(????????)等環節。
A審計計劃
B.審計實施
C.審計報告
D.審計跟蹤
E.審計總結和反饋
參考答案:ABCD
代碼安全審計的相關技術和方法,包括(?????????)等。
A.靜態分析
B.安全需求分析
C.動態分析
D.測試和驗證
參考答案:ACD
代碼安全審計中的典型審計指標包括(?????????)
A.安全功能缺陷
B.代碼實現安全缺陷
C.資源使用安全缺陷
D.環境安全缺陷
E.提供了對應的證實方法
參考答案:ABCDE
代碼安全審計主要針對(???????????)。通過代碼審計形成審計報告,列出代碼中針對審計列表的符合性/違規性條目,提出對代碼修訂的措施和建議。
A.OS內核安全
B.代碼層面的安全風險
C.代碼質量
D.形成漏洞的各種脆弱性因素
參考答案:BCD
安全功能缺陷審計包括(???????)
A.數據清洗
B.數據加密和保護
C.訪問控制
D.日志安全
E.輸入輸出管理
參考答案:ABCD
數據的真實性進行驗證包括檢查(?????????)
A.數據源或通信源驗證
B.是否存在未驗證或不正確驗證數據的數字簽名
C.缺失或進行不恰當完整性和是否驗證未經校驗和完整性檢查的Cookie
D.安全相關的輸入是否僅依賴于加密技術而未進行完整性檢查
E.是否驗證文件內容而非文件名或擴展名
參考答案:ABCDE
代碼安全審計中的身份鑒別工作包括檢查身份鑒別(?????????)
A.暴露多余信息
B.繞過
C.嘗試頻率和時間限制
D.多因素認證
參考答案:ABCD
異常處理的代碼審計工作包括檢查(????????)
A.是否對異常進行檢查并處理,和是否采用標準化的、一致的異常處理機制來處理代碼中的異常
B.錯誤發生時,是否提供正確的狀態代碼或返回值來表示發生的錯誤
C.是否對執行文件Ⅰ/O的返回值進行檢查
D.是否對函數或方法返回值是否為預期值進行了檢查
E.是否返回定制的錯誤頁面給用戶來預防敏感信息的泄露
參考答案:ABCDE
根據上述圖片內容,以下是關于軟件安全的核心知識點和內容的詳細總結:
1. 源代碼安全
? ?定義:源代碼是軟件的原始形態,位于軟件供應鏈的源頭。源代碼安全是軟件供應鏈安全的基礎,其地位非常關鍵。
? ?重要性:源代碼的安全直接影響軟件的安全性和可靠性。
? ?管理步驟:
1. ?源代碼終端安全管理:在PC終端上構建源代碼終端安全區,防止源代碼泄露和擴散。
2. ?源代碼網絡安全管理:在內部網絡上構建加密子網,確保源代碼在加密子網內的自由存儲、流轉和使用。
3. ?源代碼服務器安全管理:將SVN代碼服務器通過準入控制納入到加密子網內,實現源代碼在終端、網絡及服務器存儲場景下全周期的安全管理。
4. ?源代碼管理制度:制定和嚴格執行《源代碼管理制度》。
2. 開發的工具和環境安全
? ?工具和環境:開發過程中使用的工具和環境需要確保安全,防止惡意代碼的注入和傳播。
? ?DSA數據安全隔離技術:通過該技術實現源代碼在終端、網絡及服務器存儲場景下全周期的安全管理,防止內部代碼有意、無意泄露、擴散出去。
3. 軟件供應鏈安全
? ?定義:軟件供應鏈可分為開發、交付、運行三個大的環節,每個環節都可能會引入供應鏈安全風險從而遭受攻擊,上游環節的安全問題會傳遞到下游環節并被放大。
? ?分析報告:
? ?2021中國軟件供應鏈安全分析報告:報告中提到,隨著軟件產業的快速發展,軟件供應鏈也越發復雜多元,復雜的軟件供應鏈會引入一系列的安全問題,導致信息系統的整體安全防護難度越來越大。
? ?漏洞統計:2020年全年,奇安信代碼安全實驗室對2001個國內企業自主開發的軟件項目源代碼進行了安全缺陷檢測,檢測的代碼總量為3.35億行,共發現安全缺陷338.7萬個,其中高危缺陷36.2萬個,整體缺陷密度為10.11個/千行,高危缺陷密度為1.08個/千行。
4. 開源軟件的安全問題
? ?漏洞數量:在2557個國內企業軟件項目中,共檢出16.86萬個已知開源軟件漏洞,涉及到4166個唯一CVE漏洞編號,平均每個軟件項目存在66個已知開源軟件漏洞,最多的軟件項目存在1200個已知開源軟件漏洞。
? ?高危漏洞:存在已知高危開源軟件漏洞的項目有2062個,占比為80.6%;存在已知超危開源軟件漏洞的項目有1802個,占比為70.5%。
? ?影響范圍:影響范圍最大的開源軟件漏洞為Spring Framework安全漏洞(漏洞編號為cve-2020-5421),影響了44.3%的軟件項目。
5. 框架漏洞概述
? ?Spring Framework:Spring Framework開源框架是當今JAVA界最基礎的框架。由于應用廣泛,使用項目組而言,每一次升級都需要經過深思熟慮,防止引發連鎖反應。針對CVE-2020-5421漏洞的公布,在緊迫的整改要求下盲目進行升級會對項目本身的穩定性和功能性造成影響,存在風險。該漏洞通過jessionid路徑參數,繞過防御RFD攻擊的保護。先前針對RFD的防護是為應對CVE-2015-5211添加的。
6. 報告建議
? ?政策和標準:我國急需制定軟件供應鏈安全相關的政策、標準、規范和實施指南,建立起國家級/行業級軟件供應鏈安全風險分析平臺,并且將軟件供應鏈安全的工作納入產品測評、系統測評等工作中。
7. 手寫筆記內容
? ?工具和環境:Fortify、DevSecOps、String vector、vector、CSPRING。
? ?風險:高風險(漏洞)。
? ?多線程并發:共享對象、改變對象。
? ?超賣:悲觀鎖、樂觀鎖。
? ?多線程同步:高風險——低風險。
? ?路徑穿越:特殊字符、整數溢出。
這些內容涵蓋了軟件安全的主要方面,包括源代碼安全、開發工具和環境安全、軟件供應鏈安全、開源軟件的安全問題以及框架漏洞概述等。
根據上述圖片內容,以下是關于軟件安全的核心知識點和內容的詳細總結:
1. 軟件安全的重要性
? ?軟件漏洞普遍存在:軟件漏洞是普遍存在的,系統軟件、應用軟件和第三方軟件在開發、部署和應用中的問題層出不窮。
? ?零日漏洞威脅:零日漏洞(0-Day)是指未被公開披露的軟件漏洞,攻擊者可以利用這些漏洞實施攻擊,對信息系統構成嚴重威脅。
? ?軟件安全與國家競爭力:軟件安全直接關系到國計民生與國家安全,是衡量一個國家信息安全水平的重要因素。
? ?軟件安全新變化:需要重新認識軟件安全的概念和定義,適應外部環境的變化,防范網絡攻擊,保護隱私。
2. 軟件面臨的安全威脅
? ?軟件漏洞:軟件漏洞通常被認為是軟件生命周期中與安全相關的設計錯誤、編碼缺陷及運行故障等。
? ?惡意代碼:惡意代碼(Malicious Software, Malware)是在未被授權的情況下,以破壞軟硬件設備、竊取用戶信息、干擾用戶正常使用、擾亂用戶心理為目的而編制的軟件或代碼片段。
? ?攻擊與隱私:軟件安全問題大多是遭受有意或無意的攻擊造成的,隱私保護是軟件安全中非常重要的一塊內容。
3. 軟件安全新思考
? ?代碼安全:源代碼安全是軟件供應鏈安全的基礎,其地位非常關鍵。
? ?軟件供應鏈安全:軟件供應鏈可分為開發、交付、運行三個大的環節,每個環節都可能會引入供應鏈安全風險從而遭受攻擊。
? ?軟件安全的變化:隨著軟件產業的快速發展,軟件供應鏈也越發復雜多元,復雜的軟件供應鏈會引入一系列的安全問題,導致信息系統的整體安全防護難度越來越大。
4. 軟件安全的具體措施
? ?源代碼安全管理:通過DSA數據安全隔離技術,實現源代碼在終端、網絡及服務器存儲場景下全周期的安全管理。
? ?開發工具和環境安全:確保開發過程中使用的工具和環境安全,防止惡意代碼的注入和傳播。
? ?軟件供應鏈安全管理:從國家、行業、機構、企業各個層面建立軟件供應鏈安全風險的發現能力、分析能力、處置能力、防護能力,整體提升軟件供應鏈安全管理的水平。
5. 軟件安全相關資源
? ?國家信息安全漏洞共享平臺:https://www.cnvd.org.cn/
? ?補天漏洞平臺:https://butian.360.cn
? ?漏洞盒子:https://www.vulbox.com/
? ?微軟安全情報報告SIR:https://www.microsoft.com/security/sir/default.aspx
6. 軟件安全的書籍和影片
? ?《零日攻擊:震網病毒全揭秘》:描述了震網病毒攻擊伊朗核設施的故事,揭露了網絡武器的巨大危險性。
? ?紀錄片《零日》:講述了震網病毒攻擊伊朗核設施的故事,揭露了網絡武器的巨大危險性。
7. 軟件安全的錯誤認識
? ?錯誤認識一:應對安全威脅的主要手段是密碼技術,是添置邊界防護等各種安全設備。
? ?錯誤認識二:沒必要在“關注軟件安全,降低糟糕的軟件開發、集成和部署帶來的風險”上花費成本。
8. 軟件安全的國家標準
? ?國家標準GB/T 30998—2014《信息技術 軟件安全保障規范》:給出的軟件安全(Software Safety)的定義是:軟件工程與軟件保障的一個方面,它提供一種系統的方法來標識、分析和追蹤對危害以及具有危害性的功能(例如數據和命令)的軟件緩解措施與控制。
這些內容涵蓋了軟件安全的主要方面,包括軟件安全的重要性、面臨的安全威脅、具體的安全措施以及相關的資源和書籍等。
根據上述圖片內容,以下是關于軟件安全的核心知識點和內容的詳細總結:
1. 軟件安全的重要性
? ?軟件漏洞普遍存在:軟件漏洞是普遍存在的,系統軟件、應用軟件和第三方軟件在開發、部署和應用中的問題層出不窮。
? ?零日漏洞威脅:零日漏洞(0-Day)是指未被公開披露的軟件漏洞,攻擊者可以利用這些漏洞實施攻擊,對信息系統構成嚴重威脅。
? ?軟件安全與國家競爭力:軟件安全直接關系到國計民生與國家安全,是衡量一個國家信息安全水平的重要因素。
2. 軟件面臨的安全威脅
? ?軟件漏洞:軟件漏洞通常被認為是軟件生命周期中與安全相關的設計錯誤、編碼缺陷及運行故障等。
? ?惡意代碼:惡意代碼(Malicious Software, Malware)是在未被授權的情況下,以破壞軟硬件設備、竊取用戶信息、干擾用戶正常使用、擾亂用戶心理為目的而編制的軟件或代碼片段。
? ?攻擊與隱私:軟件安全問題大多是遭受有意或無意的攻擊造成的,隱私保護是軟件安全中非常重要的一塊內容。
3. 軟件安全的概念和定義
? ?軟件安全的定義:根據國家標準GB/T 30998—2014《信息技術 軟件安全保障規范》,軟件安全(Software Safety)是軟件工程與軟件保障的一個方面,它提供一種系統的方法來標識、分析和追蹤對危害以及具有危害性的功能(例如數據和命令)的軟件緩解措施與控制。
? ?軟件保密性:軟件產品保護信息和數據的能力,以使未授權人員或系統不能閱讀或修改這些信息和數據,而不拒絕授權人員或系統對它們的訪問。
4. 代碼安全審計
? ?定義:源代碼審計(Code Review)是由具備豐富編碼經驗并對安全編碼原則及應用安全具有深刻理解的安全服務人員對系統的源代碼和軟件架構的安全性、可靠性進行全面的安全檢查。
? ?服務內容:
? ?系統所用開源框架:包括反序列化漏洞、遠程代碼執行漏洞、Spring、Struts2安全漏洞、PHP安全漏洞等。
? ?應用代碼關注要素:日志偽造漏洞、密碼明文存儲、資源管理、調試程序殘留、二次注入、反序列化。
? ?API濫用:不安全的數據庫調用、隨機數創建、內存管理調用、字符串操作、危險的系統方法調用。
? ?源代碼設計:不安全的域、方法、類修飾符未使用的外部引用、代碼。
? ?審計流程:
1. ?前期準備:確定審計對象、審計方式和時間。
2. ?代碼審計實施:源代碼掃描、人工代碼審計。
3. ?復測階段:回歸檢查(二次復查)。
? ?審計好處:
1. ?明確安全隱患點:可以從整套源碼切入最終明確至某個威脅點并加以驗證。
2. ?提高安全意識:有效督促管理人員杜絕任何一處小的缺陷,從而降低整體風險。
3. ?提升開發人員安全技能:通過審計報告,以及安全人員與開發人員的溝通,開發人員更好的完善代碼安全開發規范。
5. 軟件安全之路
? ?最佳實踐:采用從軟件開發之初就不允許漏洞發生的方式,在軟件開發的各個環節盡可能消除漏洞,這不僅使得軟件及其用戶更安全,關鍵基礎設施更具彈性,還將節省軟件企業的開發成本。
? ?挑戰性問題:由于漏洞的產生、利用以及相互作用的機理復雜,如何有效減少系統漏洞數量,提高信息系統整體安全性成為當前亟待解決的挑戰性問題。
6. 錯誤認識
? ?錯誤認識二:沒必要在“關注軟件安全,降低糟糕的軟件開發、集成和部署帶來的風險”上花費成本。開發出安全漏洞盡可能少的軟件應當是軟件開發者或者說是軟件廠商追求的目標。
7. 惡意代碼類型
? ?惡意代碼包括:
? ?計算機病毒(Computer Virus)
? ?蠕蟲(Worm)
? ?特洛伊木馬(Trojan Horse)
? ?后門(Back Door)
? ?內核套件(Rootkit)
? ?間諜軟件(Spyware)
? ?惡意腳本(Malice Script)
? ?惡意廣告(Dishonest Adware)
? ?流氓軟件(Crimeware)
? ?邏輯炸彈(Logic Bomb)
? ?僵尸網絡(Botnet)
? ?網絡釣魚(Phishing)、垃圾信息(Spam)等惡意的或令人討厭的軟件及代碼片段。近幾年危害甚廣的勒索軟件(Ransomware)也屬于惡意代碼范疇。
這些內容涵蓋了軟件安全的各個方面,包括軟件安全的重要性、面臨的威脅、安全概念和定義、代碼安全審計、錯誤認識以及惡意代碼類型等。
1. ?工具和環境:
? ?Fortify:一種靜態代碼分析工具,用于識別代碼中的潛在安全漏洞。
? ?DevSecOps:開發與運維的結合,強調在軟件開發過程中集成安全措施。
? ?String vector 和 vector:數據結構,用于存儲和操作字符串或數值數組。
? ?CSPRING:一種用于管理并發請求的Java框架。
2. ?風險:
? ?高風險(漏洞):指的是軟件中可能被利用的安全缺陷。
3. ?多線程并發:
? ?共享對象:在多線程環境中共享的數據結構,需要特別注意同步和并發控制。
? ?改變對象:在多線程環境中修改共享對象可能導致數據不一致或競爭條件問題。
4. ?超賣(Overselling):
? ?悲觀鎖:假設最壞情況,總是假設會發生沖突,通常通過鎖定資源來防止并發訪問。
? ?樂觀鎖:假設不會發生沖突,只在提交時檢查是否有其他事務修改了數據。
5. ?多線程同步:
? ?高風險——低風險:通過適當的同步機制,可以將高風險操作轉換為低風險操作。
6. ?路徑穿越(Path Traversal):
? ?特殊字符:利用特殊字符來操縱文件路徑,可能導致未授權訪問。
? ?整數溢出:整數運算結果超出其數據類型范圍,可能導致緩沖區溢出等安全