软件供应链安全的基础是( )
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):
• 特殊字符:利用特殊字符来操纵文件路径,可能导致未授权访问。
• 整数溢出:整数运算结果超出其数据类型范围,可能导致缓冲区溢出等安全