栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

软件工程与技术(题集4)

软件工程与技术(题集4)


1配置管理改进总体思路:基于产品(),拉通研发和配置管理活动(A)

A. 全量全视角的软件信息树设计
B. 软件架构设计
C. 配置识别和配置控制

2配置管理的目的:通过使用配置识别、配置控制、配置状态记录及配置审计,来建立和维护工作产品的完整性。

3小张是某产品的CME(配置管理工程师),在产品的TR2评审会上,小张汇报了本阶段配置项的基线情况,请问小张的工作属于配置管理的哪个活动(C)

A. 版本管理
B. 分支管理
C. 配置状态发布
D. 管理配置库

4配置管理可保证交付产品的什么特征(ACD)

A. 完整性
B. 正确性
C. 一致性
D. 可追溯性

5某特性设计文档已经在DBOX完成基线,由于特性接口需要变更,那么该特性设计文档应如何处理(A)

A. 根据实际的特性接口变更规则,通过便跟过流程更新已基线的特性设计文档
B. 更新特性设计文档,更新后的设计文档归档在小名工作电脑的专属文件夹,并共享给相关模块的开发工程师进行参考
C. 由于特性设计文档不参与版本构建,所以特性设计文档没有人查阅,不用更新
D. 由于该特性设计文档已经基线,所以不能更新

6运维人员在对某电商网站进行手动升级后第二天发生线上事故,影响了整个西安地区的所有用户。接到用户投诉后,运维人员进行手动回滚,约1小时恢复正常。事后分析发现,事故的根本原因是代码逻辑存在问题,在特定数据(西安地区用户)的场景下,会出现错误,以下哪些实践可以有效减少或者防止类似问题出现(BCDE)

A. 为增强团队对产品的敬畏心,防止类似事故出现,引发事故的产品经理开发测试以及实施变更运维人员全年绩效不得超过B+
B. 引入灰度发布,功能先对小范围用户开放,然后增量开放给其他用户
C. 引入自动化测试,减少测试人员手工测试可能导致的错误
D. 自动化产品的部署和回滚,降低失败对用户的影响时间
E. 预生产环境数据准备要接近生产环境,可以更好的针对生产环境数据进行验证
BCDE - b8325823

 
BDE - b8186353

7某局”A“设备的”B“板异常挂死,所有B单板上业务全部中断,维护人员插拔单板后业务恢复。但该问题后来在网上多次出现,造成业务多次长时间中断,研发人员首先提供软件补丁,在”B“单板挂死后可以自动复位,尽快恢复业务;经过长时间分析,最后定位根本原因是设备对”0“字节包处理不当,导致设备异常,版本升级后问题解决。上述网上事故案例,从可靠性设计角度考虑,下面说法正确的是(AB)

A. 系统设计方案缺少对B单板业务的自动故障检测和故障恢复功能,是造成业务长时间中断的主要原因
B. 原设计方案缺少对异常报文的容器处理能力,是导致B单板业务全部中断的主要原因
C. “0”字节报文属于异常报文,应要求局方改善网络质量,而不是对A设备打补丁或升级软件
D. 维护人员水平低,不应该只拔插单板,而应进行系统复位,完全恢复业务

1确定性应对是指对未认知的新增攻击/失效/伤害/隐私影响类型所产生的冲击能够恰当应急、快速修复和彻底排查(√)

2韧性是指面对复杂的网络攻击(如APT),具备纵深防御能力、态势感知能力、降低攻击的影响程度,或已发生攻击时控制影响范围的能力、维持核心业务/服务继续运作的能力,及攻击后的业务快速恢复的能力(√)

3产品的安全属性,一般是指(ABC)

A. 机密性
B. 完整性
C. 可用性
D. 可靠性

4系统的可信目标可以通过如下哪些方式被确定的(ACDE)

A. 通过分析利益相关人的可信诉求而确定
B. 客户需求就是可信目标
C. 参考相关行业共识而确定
D. 参考相关国际标准而确定
E. 参考产品相关可信认证要求而确定
F. 根据产品开发的安全部测试用例而确定

5威胁分析和建模流程STRIDE包含哪些关键元素(ABCDEF)

A. 仿冒
B. 篡改
C. 抵赖
D. 信息泄露
E. 拒绝服务
F. 权限提升
G. 隐私

6STRIDE High level威胁分析基于数据流图中各元素进行S、T、R、I、D、E多个维度的分析,而ASTRIDE High Level威胁分析是基于架构视图中的什么进行S、T、R、I、D、E多个维度的分析(AB)

A. 组件
B. 接口
C. 报文
D. 参数

7关于ASTRIDE High Level威胁分析,说法正确的有(AB)

A. 基于产品架构视图进行威胁分析
B. 重点分析业务组件和接口
C. 基于产品数据流进行威胁分析
D. 重点识别产品特性安全威胁

8风险管理的秩序体现在:基于全面的、结构化的信息模型包括清晰的风险评价准则、影响准则、风险接受准则;基于授权和问责机制,在以下(BCD)实施一致的风险管理

A. 战略级(strategy level)
B. 组织级(organization level)
C. 业务级(business level)
D. 技术级(system level)

9华为可信框架中可信任特征包括(ABCDEF)

A. 韧性(Resilience)
B. 安全(Security)
C. 隐私(Privacy)
D. 安全(Safety)
E. 可靠(Reliability)
F. 可用(Availability)
G. 完整性(Integrity)
H. 可维护(Maintainability)

10可靠/可用性设计的目的,是预测和预防产品所有可能发生的故障,通过设计预防和设计改进,有效地消除隐患和薄弱环节,使产品达到规定的可靠/可用性要求。故障管理是可靠/可用性设计的重要内容,包括(ABCD)

A. 故障检测
B. 故障诊断
C. 故障隔离
D. 故障恢复

11移动设备上用户可以通过应用权限设置开启或关闭应用对敏感信息的访问,该功能满足隐私保护的(B)属性要求

A. 不可关联性
B. 可干预性
C. 透明性
D. 机密性

12描述关于网络韧性工程的架构/技术的描述错误的是(D)

A. 非持久性是在有限时间内保留信息,服务和连接,从而减少攻击者利用漏洞并建立持久立足点的机会
B. 分割可以根据系统的重要级别进行划分,以限制成功攻击的传播和损害
C. 权限限制是指根据关键性和信任模型,限制使用网络资源所需的权限,以及分配用户和网络实体的权限,以最大限度地减少对手活动潜在的后果。
D. 多样性使用异构技术(例如,硬件,软件,固件,协议),这样增加了网络建设的成本,运维的难度,是不可取的

13违反密钥用途单一规则的有(A)

A. 同一个预共享密钥,既可以用于认证,又可以用于完整性保护
B. 一个密钥可以通过算法派生两个密钥,一个用于计算MAC值以验证数据的完整性,一个用于敏感数据加密以保证数据的机密性
C. 分组密码算法中的某些工作模式,如GCM、CCM,可以同时提供加密和消息认证服务
D. 数字签名可以同时提供身份认证、数据完整性以及抗抵赖服务

14代码安全检视有哪些分析方法(ABD)

A. 自上而下分析法
B. 关键字搜索
C. 根因分析法
D. 静态工具扫描

Half of the people think the answer is ABD and the other half think the answer is ABCD(source)

15 CSF(Cybersecurity framework)核心框架包含5个功能IPDRR,其中P代表保护功能(Protect Function),保护功能可以限制或抑制网络安全事件的潜在影响。以下哪一组全部属于核心架构中的保护功能项(A)

A. 身份管理和访问控制、数据安全、信息保护流程和步骤、安全运维
B. 身份管理和访问控制、数据安全、安全运维、安全连续监控
C. 身份管理和访问控制、数据安全、安全运维、风险评估
D. 身份管理和访问控制、数据安全、信息保护流程和步骤、安全连续监控

16常见的安全编码问题不包括(A)

A. 认证绕过
B. 缓冲区溢出
C. 命令注入
D. 整数溢出

安全编码Top问题

17FMEA是一种可靠性分析方法,可以用于产品的设计阶段。下列哪个选项不是设计阶段FMEA分析的输出(D)

A. FMEA分析表
B. 软件故障需求管理
C. 硬件故障需求管理
D. 软件功能需求

18过载控制是指确保设备在业务过载场景下仍能保持较高业务处理能力的一种设计方法。下列选项中,哪个是常用的过载控制方案(C)

A. 拒绝所有业务
B. 接入所有业务
C. 服务降级
D. 复位系统

19从浴盆曲线来看,电子产品的失效包括以下哪几个阶段(ABD)

A. 偶然失效期
B. 早期失效期
C. 生产失效期
D. 耗损失效期

E. 市场失效期

20程序在处理外部数据时必须经过严格的合法性校验,编程人员在处理外部数据过程中必须时刻保持这种思维意识,不能做出任何外部数据符合预期的假设,外部数据必须经过严格判断后才能使用。下列选项中属于外部数据的是(ABCD)

A. 进程间通信(包括管道、消息、共享内存、socket、RPC等)
B. 函数参数(对于API)、全局变量(在本函数内,其它线程会修改全局变量)
C. 用户输入(包括命令行、界面)、用户态数据(对于内核程序)
D. 文件(包括程序的配置文件)、注册表、网络、环境变量

21安全风险评估就是从风险管理角度,运用科学的方法和手段,系统地分析网络与信息系统所面临的威胁及其存在的脆弱性。评估安全风险等级主要依赖于(D)

A. 资产的购买价值
B. 已有的风险消减措施
C. 社会工程
D. 安全风险发生可能性和业务影响性

22开展PIA时,区分数据控制者与数据处理者的关键原则是(A)

A. 决定个人数据处理的目的及方式
B. 管理数据分配时间
C. 管理访问数据权限
D. 决定数据存储方式

23根据《华为隐私保护总体政策》要求,在业务活动中构筑隐私保护时,如下哪些不是收集个人数据的原则(A)

A. 机密性
B. 目的相关性
C. 必要性
D. 最小限度

24GDPR针对数据跨境转移有一定要求,如必须满足特定规则后才可传输,以下哪个场景不属于跨境转移场景(A)

A. 作为数据处理者的法国供应商,基于成本考虑将数据转移到德国处理
B. 在中国的维护终端上,远程查看和分析德国服务器上的个人数据
C. 德国子公司的个人数据传输到俄罗斯处理
D. 德国子公司个人数据传输到美国处理

25关于故障管理设计原则,下列说法错误的是(B)

A. 冗余系统中,主备用模块的故障都需要检测,避免静默故障
B. 对于不引起系统故障只导致系统或服务KPI下降的亚健康异常不需要检测
C. 故障定时检测的周期,需综合考虑对CPU占用率的影响和检测延迟对业务恢复速度的影响
D. 应及时监控有特殊寿命(如Flash有撰写次数限制)要求的器件健康状态,通过提前预警采取维护措施

26欺骗(Deception)是使用混淆和误导手段来干扰攻击者,比如部署蜜罐系统。以下哪个目标是通过欺骗(Deception)无法达成的(D)

A. 为反击取证和提供支撑
B. 消耗攻击者的攻击能力和时间,为联动防御或反制等提供时间差
C. 发现正在进行的攻击和潜在实施的攻击
D. 将系统进行划分,以限制成功攻击的传播和损害

27下列选项中,属于故障检测技术的是(C)

A. 单板重启
B. 软件复位
C. 时间检查(如:心跳检测)
D. 隔离仓设计

28下列哪项描述是正确的(A)

A. 所有的软件bug都会导致安全漏洞
B. 从成本上考虑,在验证阶段发现多数bug是比较好的
C. 多数的安全bug不重要,因为攻击者不可能注意到
D. 所有的软件都有bug,只有一些bug才是安全漏洞

29()与()需求是产品的质量属性之一,也是客户的基本诉求,产品需结合合规、准入及现网安全风险将其构筑在研发过程中(CD)

A. 最优惠的价格
B. 设备平稳运行
C. 网络安全
D. 隐私保护

30容灾系统包括三个级别,数据级、应用级和业务级

31以下几种不同的隐私保护技术中,对数据进行加躁处理,用于匿名数据收集和统计分析方法是(A)

A. 差分隐私
B. 枚举
C. 截断
D. 掩码

32关于过载控制设计原则,下列说法错误的是(B)

A. 自保恢复原则:负荷下降到设计能力范围之内后,网元可以立即恢复处理能力
B. 业务保证原则:确保在出现大流量冲击时所有业务不被丢弃
C. 及早控制原则:应尽可能在业务流程处理前端或业务处理较早的处理单元(网元/单板/芯片等)或底层协议层次上控制业务接入
D. 优先级保证原则:系统过载时保证高优先级的业务能够优先获得资源,优先得到处理

33为保证业务的正常运行,提高产品和解决方案的安全和韧性,可以从以下哪些方面进行设计(ABCD)

A. 不利情况发生后恢复业务
B. 不利情况下维持核心业务
C. 限制不利情况发生时的损害
D. 降低攻击成功可能性

34基于威胁建模的测试设计方法需要在安全测试活动中哪个阶段使用(B)

A. 动态分析和Fuzz测试
B. 测试方案设计
C. 总体测试策略
D. 静态分析

35关于故障预测预防技术,以下说法错误的是(B)

A.通过故障预测预防,用户可以根据故障出现的概率以及出现的位置,采取相应的手段提前避免这些有可能出现的故障
B.故障预测预防是一种被动故障处理技术
C.故障预测预防技术是一种有效的主动故障处理技术
D.故障预测可以在系统故障出现之前,通过分析系统的状态得到故障可能出现的概率以及出现的故障种类"

36安全合规成为政府持续关注的焦点,业界在持续探索安全应对策略,平衡好监管和创新之间的关系,业界对业务风险本身的关注点从封闭网络的互联网出口延伸到系统内部模块,从业务结果风险可控,延伸到研发过程风险控制及可视化。针对以上变化点,下列说法正确的是(ABC)

A.在研发过程中对各个环节的关键基础设施落地严格的风险应对措施,如对代码仓尽心更严格的访问、完整性方案设计,保障产品软件开发过程的完整性,一致性,不因恶意篡改导致最终的功能特性与客户预期不相符,设置损害客户利益
B.产品要做到结果风险可控,须通过有效执行研发过程的安全活动控制项要求。
C.产品要做到具备威胁无处不在的视角,通过有效的基础设施及环境保护应对研发过程恶意篡改风险。
D.通过后端测试保证产品质量即可,研发过程风险无须过多关注

37移动设备上敏感信息访问开关,属于 可干预性

38故障预测预防设计,可采用哪些方法(AD)

A. 基于故障机理模型的故障预测
B. 基于代码的故障预测
C. 基于文档的故障预测
D. 基于数据驱动的故障预测

39下面选项中,不属于故障隔离设计方法是(A)

A. 重试设计
B. 故障域划分设计
C. 隔离舱设计
D. 断路器隔离设计

40以下关于安全设计原则的描述,正确的有(ABCD)

A. 一个账号或账号组只能拥有必须的角色和必须的权限,一个角色只能拥有必需的权限,不分配不必要的权限,符合“权限最小化原则”
B. 账户登录失败N此后可以暂时锁定账户X分钟,符合“失败-默认安全原则”
C. 对资源访问的共享数量和使用应尽可能最小化,符合“最小公共化原则”
D. 将直接对外交互的高权限高风险进程拆分为两个进程,一个负责外部交互,一个负责内部业务逻辑,符合“权限分离原则”

41如下对提高产品的可用度描述正确的是(ABCD)

A. 产品架构采用必要的冗余设计措施
B. 冗余设计相关的要素如故障检测和回复措施得到合理设计和验证
C. 采用更高可靠性等级的器件
D. 采用必要的简化设计措施,降低复杂度

42关于容灾设计,以下说法错误的是(B)

A. 容灾指除了生产站点以外,用户另外建立的冗余站点,当灾难发生后,生产站点受到破坏时,冗余站点管用户业务
B. 容灾设计重点在于业务接管,数据可靠性不是其重点
C. 衡量容灾系统的主要指标有RPO和RTO
D. 容灾系统包括三个级别:数据级、应用级和业务级

43下面关于故障恢复的描述,正确的是(ABC)

A. 冗余系统如果发生了影响业务的软、硬件故障后,应能通过主备倒换或符合分担实现自动的故障恢复
B. 在非冗余系统中,对于影响业务的软件故障或硬件故障瞬间故障,可通过自动触发单板复位或局部复位等方式,系统恢复正常状态
C. 系统自动执行故障恢复动作,可大大减少业务中断时间,但注意一定要保证判断的准确性,避免误动作。同需要在系统设计复杂性和减少业务中断时间之间权衡
D. 通常的故障恢复技术包括进程复位、主备倒换

44下列关于数字签名的叙述中错误的是(B)

A. 保证信息传输过程中的完整性
B. 保证数据传输的机密性
C. 发送者身份认证
D. 防止交易中的抵赖行为发生

1开源软件归一化管理,优选编码和非优选编码不需要审批,禁选编码不能使用(x)

2没有使用GPL、LGPL、MPL等具有对外开源义务的软件,使用声明中也要包含“书面邀约”(x)

3只要动态链接的方式使用了LGPL软件,LGPL软件本身不需要开源(x)

4产品在发布之前就经过了开源认证,维护阶段就不必关注该产品中的开源及第三方软件了(x)

5开源软件应用十分广泛,外购软件也可能应用开源软件,但外购软件没有开源软件使用风险(x)

6若产品对开源软件进行了修改,在被修改文件的文件头上须附上修改声明(√)

7LGPL:开源软件本身(包含修改)&与其静态链接部分必须以LGPL许可对外开源,最措施是(C)

A. 不修改使用
B. 自研修改部分开源
C. 动态链接使用,或者进程隔离

8开源软件及第三方软件使用申请流程优化,建设第三方软件同源实体,CI集成FOSSID工具,进行认证风险扫描。

9开源软件及第三方软件使用的管控内容不包括(C)

A. 软件有明确的许可证或签订有相关使用协议
B. 对于开源软件履行开源义务,避免导致产品开源或公司声誉受损
C. 产品使用第三方软件须先使用后申请
D. 建立优选库路标库,减少种类和数量,牵引使用优选软件,禁选软件禁止使用

10不同License约束对代码开源要求和范围不同,公司推荐使用的License类型是BSD类

11MPL类License约束内容说法正确的是:若对其进行了修改,只需将修改的部分开源

12MPL最合理的解决措施:不修改使用

13GPL:程1内的所有代码都会被GPL传染,必须以GPL许可对外开源,最合理的解决或规避措施是:进程隔离

14开源软件要严进宽用,在引入时需经过严格网络安全选型评估,其主要评估内容包括(ABC)

A. 已知安全问题及漏洞扫描,如:对业界公开的严重级别的安全漏洞已修复
B. 病毒扫描
C. 软件完整性及一致性检查
D. 高风险模块静态代码扫描分析和代码人工检视

15以下关于公司IPD中开源及第三方软件风险管控活动的说法有误的是(A)

A. 产品在TR4前必须进行开源认证
B. 产品使用开源及第三方软件必须先申请后使用
C. 在产品发布前,需进行开源认证
D. 开源软件中心会定期将开源软件漏洞通知到产品

16产品代码开源包外发前为了保证不泄露关键信息资产,必须使用KIA扫描

17IPD流程中开源及第三方软件相关活动的顺序正确的是

开源入库选型—>开源使用申请—>开源认证—>开源义务履行—>漏洞闭环处理

18如下哪些描述符合开源及第三方软件管理要求(ABCD)

A. 如果需要使用优选等级为‘DXX(禁选)’或者EOX的软件,或者应用技术风险为‘高’的软件,需要提供对应备案纪要
B. 优先使用优选等级为‘B (优选)’的版本
C. 不允许使用应用技术风险为‘高’的软件
D. 不允许使用优选等级为‘DXX(禁选)’和EOX的软件

19如下哪些情况需要入库PDM(ABC)

A. 如果待入库的的开源及第三方软件在PDM中已存在,需要引入新版本
B. 如果待入库的开源及第三方软件在PDM中已存在,且版本号未更新,但供应商因为修改bug等原因更新了软件包
C. 如果待入库的开源及第三方软件在PDM中不存在
D. 供应商提供的软件包本身没有变化,且已经入库PDM,我司人员在其上进行的二次开发/编译的部分需要入库PDM

20以下哪个软件可以作为开元第三方的选型(C)

A. XXXX master B.XXXX 1.1.11-beta C.XXXX.3..19 D.XXXX.1.1.12rc2

21 关于开源使用,一下描述或做法不正确的是(ABCD)

A. 客户要求使用开源软件新版本,产品A集成使用的开源软件B近3年无人维护且无可代替软件,产品A将该开源软件B及修改的代码在GitHub以新项目C开源并自行维护,再将开源软件C集成到产品A中使用。
B. 产品A使用的开源软件被爆出存在严重漏洞(CVSSL>7),产品A的安全SE分析发现该漏洞涉及的代码产品A未调用,可以不需要对产品A的现网版本打补丁。
C. 产品A软件开发人员在编写代码时,拷贝Apache license 2.0的XXC++开源软件中的排序算法实现代码,以提升开发效率。
D. 某产品共130K行代码,其中仅10行diamante与开源代码相似度较高;该10行代码可以确认为自研代码。

E. 开源软件的选用,是产品在需求分析和架构设计时决定的;产品需基于全量全视角视图管理产品和平台使用的开源及第三方软件,确保使用的开源及第三方版本归一和满足生命周期需求。

22关于开源使用,下列说法错误的是(ABCD)

A. 产品A自研开发且对外开源XXComb软件,并捐献到Apache基金会成为顶级项目,产品B选用社区XXComb软件,仍应认定XXComb软件为自研软件。
B.某产品开发一款仅给内部一线行销员工使用的APP(必须华为员工账号才能使用),并上架华为手机应用市场供一线行销人员下载,该APP通过静态链接方式集成使用了一款AGPL开源软件,由于只是内部一线行销员工使用,可以不需要履行开源义务。
C. 某员工在业余时间以个人名义,在GitHub开源了X项目;该员工在公司办公环境下载该X项目代码集成到产品A中使用,产品A不需要履行开源义务。
D. 公有云服务产品A通过静态链接的方式集成使用了license为GPL V2.0的开源软件,服务产品A可以不履行代码开源义务。


24在业务版本发布前,对于版本中的开源及第三方软件的网络安全要求,以下描述正确的有(ABCD)

A. 为保证来源可靠,业务版本使用的开源及第三方软件必须来自保存在华为PDM库中的软件副本
B. A类红线和高风险(CVSS评分>=7)的B类红线问题在版本发布前解决或规避,中低风险(CVSS评分<7)的B类红线问题则可待供应商/合作方修复后再同步其修复版本
C. 非A/B类红线安全问题,如果是高风险的安全问题则在版本发布前解决或规避,如果是中低风险的安全问题可待供应商/合作方修复后再同步其修复版本
D. 在业务版本的研发过程中,开源及第三方软件需随产品代码一起开源产品网络安全测试

25产品A计划选择一款加密算法软件,实现主控板从上电到启动过程中对比加载文件和芯片中保存的文件是否一致,当不一致时则禁止单板启动,并告诉用户,以下选型不建议的是(DE)

A. 向其配套的底层平台提需求,由其实现此功能并对上层提供统一的接口
B. 对比,测试,分析&应用业界主流的加密算法软件,权衡性能和占用的单板看空间
C. 整包引入业界主流软件OpenSSL,并采用部分编译的方式,仅编译其使用的5%左右的代码
D. 拷贝OpenSSL软件密码算法功能相关的部分文件

E. 参考OpenSSL中的密码算法的实现,完整的代码逻辑,对部分代码实现进行封装后作为自研代码使用

26GPL V2 License 的规避产品开源方式,以下做法正确的是(AC)

A. 若无法直接进程隔离,则可制作隔离层,将该软件包装为一个进程(需开源),通过隔离层进行交互
B. 在内核态中对Linux kernel进行调用,以避免GPL传染
C. 可以采用进程隔离方式使用,即产品与GPL软件在不同进程中运行,通过进程间通信进行交互
D. 以动态链接的方式使用GPL软件,使产品代码不会被GPL传染

27产品计划引入选型OpenSSL软件,下列说法正确的是(C)

A. 修改的OpenSSL软件源码如果得到作者的认可,产品可以不用回馈社区直接引入选型OpenSSL
B. 从官网下载OpenSSL源码太麻烦,可以直接使用git命令下载github上的openssl源码
C. openssl-fips是OpenSSL的一个分支开源的独立项目,应该以新软件的方式引入
D. 可以从任意网站下载OpenSSL源码包,只要扫描不出病毒

28下面关于开源软件代码修改说法正确的是(BC)

A. 产品P引入XX开源软件,工程师小A分析&应用后认为将XX软件的其中几个接口再重新封装成新接口,可以更好支撑业务,于是小A在XX软件代码文件中新增一个功能接口,并且归档到开源软件目录支撑产品编译发布
B. 产品P引入XX开源软件,工程师小A分析&应用后确认只使用其中2个特性,将开源软件归到开源代码目录,并通过部分编译的形式,仅编译需要的特性进行打包发布
C. 产品P引入XX开源软件,工程师小A分析&应用后认为需要对开源代码进行少量修改才能满足产品需求,通过团队架构评审等确认后,将修改代码以Patch的方式进行管理
D. 产品P引入XX开源软件,工程师小A分析&应用后确认只使用其中2个特性,于是将其它特性代码删除后,归档到开源代码目录支撑产品编译发布

29针对FOSSID上扫描出来的,和开源相似的代码,是否可以确认为自研,判断原则是什么(B)

A. 判断原则是基于工具,如果FOSSID无法扫描出来,则都是自研代码
B. 判断原则是基于事实,没看过开源代码的人写出来的东西叫自研,其他任何形式直接参考开源写的代码都算开源
C. 判断原则是基于目录结构,自研目录下的都是自研代码,open_source目录下都是开源软件
D. 判断原则是相似度,如果相似度很低,如低于5%可以判断为自研
CS&IMS可信知识竞赛第一期第2问


28为了有效支撑事后审计,并向内部、外部客户证明研发过程风险是可控的,须准确记录所有参与软件研发环节的相关人员的信息和其交付件的信息,保证获取的上下游信息准确,需跟踪和记录的研发过程阶段有(ABD)

A. 软件编码与构建
B. 需求分析与设计
C. 现网部署
D. 验证发布

29为了促进开源回馈被社区接纳,下述哪个行为不值得推荐(D)

A. 在社区邮件列表/issue列表里充分交流提交的方案,并根据意见反复修改
B. 在社区线下会议上介绍自己的方案,赢得社区的认可
C. 和社区维护者进行沟通,理解对方的规划思路
D. 由于社区一直未采纳提交补丁,自己在社区中fork一个新项目出来维护

30以下关于开源选型的说法,哪些是正确的(BD)

A. 铲平A使用一款tinyxml软件,内存分配和解析速度均可满足产品要求,且现网已稳定运行10+年,社区近期发布了tinyxml2,且社区也表示后续主要在tinyxml2上进行维护,其解析速度为tinyxml的5倍,但综合考虑升级成本及新版本的影响,产品确定继续使用tinyxml
B. Json-lib软件社区2013年后社区已无人贡献,建议产品独臂Jackson、fastJson、Gson等同类软件,结合产品使用场景,选择生态、license较友好的开源软件
C. XML解析开源软件SAX性能比Dom4j快10倍,SAX 2004年发布最后一个稳定版本,当前平均每周下载量34+次,对性能要求较高,且使用场景为只读不写(xml文件)的产品可以考虑选择此软件
D. Log4j日志组件的作者2015年发布log4j2.X和logback;性能比log4j1.X高10倍,建议使用log4j1.X的产品考虑切换到log2.X或logback

31关于开源义务履行,下面说法错误的是(D)

A. 原则上只要使用了开源软件,就需要履行开源使用声明义务。
B. 代码对外开源义务是值按照开源许可证要求将一定范围内的代码对外开源,开源范围视具体许可证要求的和产品使用具体方式而定。
C. 修改声明是指公司做出的对修改过的开源软件就修改期间,修改的代码以及修改过的文件做出声明,无强制要求产品执行,但建议产品在修改GPL/LGPL类开源软件时,履行该义务。
D. 不同许可证的开源代码不存在兼容性问题(如GPL License与BSD License),只需要申请后即可按规范使用。
D - b8298985, b8262667

A - b8186353

32在进行二进制文件差异消除时,需要根据不同的差异引入原因拟定差异消除方案进行业务功能性能测试,确保差异消除不影响业务功能和性能,下列差异消除方案哪一个是不合适的(D)

A. 通过BepKit辅助消除python编译pyc文件时引入的时间差异
B. 为消除自验代码中时间宏引入的二进制差异,可以选择删除DATE/TIME宏,并测试删除后是否影响业务功能
C. 对于arj等压缩引入二进制差异的情况,可以通过反解的方式辅助进行差异消除
D. gcc lto优化引入二进制差异,直接删除lto优化选项消除差异,无需对业务性能进行测试

33选用开源软件时,需考虑以下哪些方面(ABCD)

A. 合法合规
B. 网络安全风险
C. 生命周期情况
D. 开源软件的技术生态

34关于开源软件常见license的解读正确的是(ABC)

A. BSD类license,如Apache/BSD/MIT等,原则上没有对外开源要求
B. MPL类软件若无修改,则无需对外开源
C. GPL软件本身须开源,且具有传染性,与该软件在同一进程中运行的代码都必须对外开源
D. LGPL软件本身须开源,且具有传染性,与其动态链接部分的代码也必须以LGPL许可开源;静态链接则不被传染

35某产品进行开源选型时,其中功能、性能等匹配度同属最高的有软件A和软件B,以下做法正确的是(ABC)

A. 假定软件A的License为GPL V2,软件B的License为BSD类,由于GPL V2的License可能导致产品整体被迫开源,而BSD类License商业更为友好,所以推荐使用软件B
B. 假定软件B的License为LGPL V2,如果选择软件B,为防止自研代码被传染,则只允许动态链接方式使用
C. 假定软件A的License为MPL类,如果选择软件A,则必须关注修改后对应的开源义务
D. 假定软件A的License为Apache V2.0,软件B的License为WTFPL,虽然Apache V2.0 License的商业比较友好,但WTFPL的License限制更少,所以建议选择软件B

通用基础算法及数据结构

1. 掌握基本数据结构,数组、字符串、队列、堆、栈、链表、哈希表、二叉树、平衡树等

1下列关于B+树的说法不正确的是(C)

A. B+树通常用于数据库和操作系统的文件系统中
B. 非叶子节点中的每个索引顼通常只含有对应子树的最大关键字和指向该子树的指针
C. 在B+树中的所有非叶子节点不仅起到索引的作用,还可以直接在非叶子节点中词到每个关键字对应的value
D. B+树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度

2在任意一颗非空二叉排序树T1中,删除某结点v之后形成二叉排序树T2,再将v插入T2形成二叉排序树T3,下列关于T1与T3的描述中,正确的是(AD)

A. 若v不是T1的叶节点,则T1与T3可能不同
B. 若v不是T1的叶节点,则T1与T3相同
C. 若v是T1的叶节点,则T1与T3不同
D. 若v是T1的叶节点,则T1与T3相同

3栈的入栈顺序为1、2、3、...、N,在入栈过程中随机出栈随机序列,若第一个元素是 i,则第 j 个出栈元素是(D)

A. j-i+1
B. i-j
C. i-j-1
D. 不确定

4以下哪个说法是正确的(ABD)

A. 顺序表插入变动的时间复杂度为O(n)
B. 顺序表按下表查找的时间复杂度为O(1)
C. 顺序表在使用时,长度可随意变动
D. 顺序表存储空间连续,即允许元素的随机访问

5有如下一个类似调表的数据结构,每层都是已经排好序的链表,level1层的链表有所有元素,levelN层的链表只有level N-1的一般元素,level N层的节点指向levelN-1层中相同的节点,现在要查找32,需要经过的比较次数是 5

1

1        15

1   9    15    21    61

1 3 9 10 15 17 21 32 61 76

6对于下列关键字序列,不可能构成某二叉排序树中一条查找路径的序列是(D)

A. 92,20,91,34,88,35
B. 12,25,71,68,33,34
C. 21,89,77,29,36,38
D. 95,22,91,24,94,71

7已知一颗完全二叉树的第8层(设根为第1层)有10个叶节点,则该完全二叉树的节点个数可能有(BD)

A. 329
B. 137
C. 201
D. 491

There is no 490 choice - b8303755

8无向图G有12条边,6个3度定点,其余定点的度均小于3,则G中可以有(ABC)个顶点

A. 9
B. 10
C. 11
D. 8

9已知一棵二叉树,如果先序遍历的节点顺序是 KDCEFGHB, 中序遍历是 CDFEGHKB, 则后序遍历的结果为(D)

A. CFHGEBDK
B. CDFEGHBK
C. FGHCDEBK
D. CFHGEDBK

10一个栈的入栈顺序是abcde,则不可能的出栈顺序是(C)

A. edcba
B. decba
C. dceab
D. abcde

11用有序的双向链表存储一个支持“增”、“删”、“改“三个操作的键值系统,有几个能做到时间复杂度为O(1) 0个

12使用数组作为队列时,最实用的方式是循环队列,即在到达数组结尾时,重复利用数组头的空闲空间。假定用长度为N的数组来存储一个循环队列,队列头用front表示,队列尾用rear表示。当队列初始化为空时front=rear=0,每一次成功的入队时rear++,每一次成功的出队时front++,在front和rear永远不会溢出的情况下,关于队列存放的最大元素数目正确的是

队列最多只能存放N-1个元素

13元素a,b,c,d,e,f,g依次放入一个初始为空的栈中,若元素进栈后可以立即出栈,也可停留,直到所有元素都出栈,出栈顺序为b,d,c,f,e,a,g,则栈容量最小为多少(C)

A. 2
B. 1
C. 3
D. 6

14假设有四个队列Q1、Q2、Q3、Q4,容量无限大。Q1是原始队列,其中有四个元素:a、b、c、d;Q2和Q3是中转队列;Q4是目标队列。现在要将原始队列中的元素经过一个或者多个中间队列中转后存入目标队列(中转的意思是说原始队列每个元素出队后入队到中间队列,原始队列全部出队后,再从中间队列出队并入队到目标队列)下列哪些序列是目标可能出现的?(AD)

A. a、b、c、d
B. d、b、c、a
C. d、c、b、a
D. a、c、b、d

15一个链队列,头尾指针分别为front和rear,在进行出队操作时(D)

A. 仅修改队头指针
B. 仅修改队尾指针
C. 队头、队尾指针都要修改
D. 队头、对位指针可能都要修改

nowcoder

16如果一颗非空的二叉树的前序遍历结果与后序遍历结果正好相反,则该二叉树一定满足(C)

A. 所有的结点均无左孩子
B. 所有的结点均无右孩子
C. 只有一个叶子结点
D. 是任意的一颗二叉树

nowcoder

17仅包含三个节点的二叉树有 5 种不同的树形

 
C(2n, n) / (n + 1)

2. 常用基础算法,常用排序算法、搜索算法(深搜,广搜等)、递归、分治、最优化算法、贪心算法、动态规划等

sort

十种常见排序算法的思想、应用场景、C++代码实现及时间效率直观对比

递归

递归法是利用大问题与其子问题间的递推关系来解决问题的。能采用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用相同的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模较大问题的解。特别地看,当规模N=1时,能直接得解。

分治

该问题的规模缩小到一定程度就可以容易地解决 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质 利用该问题分解出的子问题的解可以合并为该问题的解 该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题

贪心算法

待求解问题必须可以分解为若干子问题 每一子问题,都可以得到局部最优解 解决问题通常自顶向下 Dijkstra单源最短路径算法是贪心算法

what algorithm questions looks like

专业级可信软件工程与技术考试经验

1在对n个元素进行快速排序的过程中,最好情况 logn 最快情况 n-1

2对快速排序算法,在最差的情况下,它的时间复杂度的递归公式和时间复杂度是(C)

A. T(n) = T(n/10) + T(9n/10) + O(n) 和 O(nLogn)
B. T(n) = 2T(n/2) + O(n) 和 O(nLogn)
C. T(n) = T(n-1) + O(n) 和 O(n^2)
D. T(n) = T(n-2) + O(n) 和 O(n^2)

3给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序列中元素和最大的一个,例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和为20;针对此问题,其状态转移方程可以表示为

sum[i]=max(sum[i-1]+a[i],a[i])

4递归以下说法正确的是(ABCE)

A. 在函数中直接调用自己成为函数的直接递归调用
B. 递归是一种分而治之、将复杂问题转换成简单问题的求解方法
C. 递归可以使编写的程序简洁、结构清晰
D. 在使用递归时,可以无限递归下去,不需要考虑其他因素
E. 函数f1调用了函数f2又再次调用了函数f1,这种调用的方式我们称之为间接递归调用

4DevOps新型研发模式的目的(ABC)

A. 促进研发(应用程序/软件工程)、技术运营(运维)部门之间的沟通、协作与整合,持续交付可靠的软件产品和服务。
B. DevOps是以业务驱动的软件交付方法。从需求到交付生产环境,研发与运维间紧密协的文化运动与实践。
C. DevOps文化更注重沟通,快速获得用户反馈提升创新能力。
D. 开发和运营关注点和目标不匹配,业务交付模式需要独立开展以提高效率

5SCRUM是以短周期迭代为核心,包含团队、工作件、管理和技术优秀实践的集合,Sprint事件包括(BCDE)

A. 产品Backlog
B. 冲刺
C. 计划
D. 每日站会
E. 评审会议
F. 回顾会议

6下面的描述中,哪些属于敏捷宣言的主要内容(ABCD)

A. 个体与交互重于过程和工具
B. 可工作的软件重于完备的文档
C. 客户协作重于合同谈判
D. 响应变更重于遵循计划

E. 计划驱动,阶段分离,顺序执行

7在敏捷开发模式中,Scrum Master角色的主要作用包括(ABD)

A. 负责确保Scrum被理解并实施
B. 按需推动Scrum事件
C. 有权要求团队做事以及改变列表条目优先级
D. 担当教练角色, 引领团队达到更高级的凝聚力、自组织和表现

8SCRUM框架的工件包括(BCD)

A. 开发文档
B. 产品Backlog
C. SprintBacklog
D. 产品增量

9SCRUM框架的关键角色包括(ABC)

A. 产品负责人(Product Owner)
B. Scrum Master
C. 开发团队
D. 软件工程师

10瀑布式模型的优缺点描述正确的是(ACD)

A. 模型简单过程易于理解
B. 交付周期长
C. 反馈周期短
D. 无法应对需求快速变化的场景和领域

11下面关于系统之系统描述错误的是(D)

A. 系统之系统中的系统的不同部分可分别对应不同的管理和控制策略和规则
B. 系统之系统中并不存在一个对系统各个部分进行管理的管理者
C. 系统之系统是两个或以上独立管理和治理的系统的集合
D. 系统之系统不可能是最小规模系统,如包含不同提供商提供的服务的较小的系统,大规模系统经常是系统之系统"

12关于软件工程,以下说法错误的是(B)

A. 软件工程发展的目的就是希望找到合适的方法和技术适用软件系统
B. 软件工程仅指实现软件生产开发的活动序列
C. 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科,它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式灯方面
D. 软件工程的目的是支持专业化的软件开发、而不仅仅是个人编程

13某电商公司的网站的部署周期(需求提出到部署产品环境的时间)为4周(工作日20天),其中需求分析3天,开发时间为5天,测试人员手动进行功能测试时间为6天,环境准备和部署时间为4天,该公司为了提升自身竞争力,目标在半年内将部署周期降低到2周,以下哪些DevOps时间可以帮助该公司实现目标(ABC)

A. 功能测试自动化
B. 自动化部署
C. 软件开发过程引入敏捷、精益思维,最小化需求范围(MVP)
D. 微服务拆分

14面向服务的方法的好处(ABCD)

A. 服务提供商会公开服务的信息,任何获得授权的用户都可以使用相应服务
B. 组织内部或外部的服务提供商都可以提供服务
C. 服务的用户能根据使用而不是提供商提供的服务来付费
D. 应用能够延迟服务绑定直到这些服务被部署或执行

15当一个企业不得不支持许多相似但不完全相同的系统时,最有效的一种复用方法是(A)

A.软件产品工程SPLE
B.分布式系统
C.应用框架
D.应用系统复用

16关于软件开发和维护工作,以下说法错误的是(B)

A. 软件交付的主要工作是将程序代码和相关文档交给用户
B. 持续集成是频繁持续地将团队成员的工作进行集成
C. 用户培训是帮助用户理解产品并掌握系统的使用和操作
D. 软件部署是通过配置、安装和激活等活动保证软件系统的正常运行

持续集成是一个将集成提前至开发周期早期阶段的软件开发实践方式,是指软件个人研发部分向软件整体部分交付,让构建、测试和集成代码更经常性地发生,并且每次集成都要通过自动化的构建来验证,使集成错误尽早被发现。

17下面正确地描述了SaaS和SOA的是(D)

A. SaaS和SOA本质都是基于服务的思想,只是说法不同
B. SaaS必须以SOA技术为基础
C. SaaS环境下考虑可伸缩模型时,我们一般采用增强扩展,SOA技术能很好地支持增强扩展
D. SaaS是向用户交付应用功能的方法,而SOA是应用系统的一种设计技术

18以下哪一项不属于工程化软件开发所面临的根本性困难(B)

A. 软件是庞大的逻辑产品
B. 软件开发工具所提供的开发支持弱
C. 软件的复杂程度高
D. 软件系统的问题空间和解空间之间的巨大鸿沟

下面描述正确或分析方法正确的是(ABC)

A. 可以使用gcore输出进程的运行coredump快照作分析
B. 两个线程可能发生了互锁
C. 可以attach到进程,查看两个std::mutex的_owner信息,是否为对方线程ID
D. 两个线程可能同时在访问一个锁

1GCC安全编译选项-fstack-protector-all的作用有哪些(DE)

A. GCC安全编译选项-fstack-protector-all的作用有哪些
B. 在栈顶插入一个随机数防止栈溢出
C. 设置栈为代码不可执行
D. 将字符串数组调整到栈的高地址
E. 在栈底插入一个随机数防止栈溢出

2下面哪些选项是IPD中要求使用gcc编译器必须开启的编译选项(ABCDE)

A. -fPIC-fPIE
B. -fstack-protector-all 栈溢出保护
C. -Wl,-z,relro          保护got表 - 部分重定向只读
D. -Wl,-z,noexecstack    堆+栈不可执行
E. -z,now                保护got表 - 全部重定向只读
F. -ftrapv

3攻击者通过逆向分析可执行程序或动态库,获取程序运行过程,下面哪个选项可以删除可执行程序或动态库的符号表信息,提高逆向分析的难度(B)

A.-Wpointer-arith
B.-s
C.-ftrapv
D.-Wl,-z,relro

4以下关于-Wl,-z,noexecstack选项描述正确的是(AD)

A.可有效提高缓冲区溢出的难度,但仍可以被ret2lib、rop等攻击绕过
B.只能保护栈的不可执行
C.不能保护数据段的不可执行
D.可以保护堆的不可执行

5链接选项-Wl, --disable-new-dtags,-rpath [path]阻止LD_Library_PATH攻击的原理是什么(A)

A. 设置程序启动时优先加载[path]路径下的共享库
B. 设置只有[path]路径下的动态库才允许被加载
C. 设置程序启动时优先加载[path]路径下的静态库
D. 设置[path]路径没有代码可执行权限

6GCC安全编译选项-fstack-protector-all的作用有哪些(DE)

A. 将字符串数组调整到栈的低地址
B. 在栈顶插入一个随机数防止栈溢出
C. 设置栈代码为代码不可执行
D. 将字符串数组调整到栈的高地址

E. 在栈底插入一个随机数防止栈溢出

1如下关于编译构建环境的说法,哪些是正确的(D)

A. 构建环境上的工具,可以由CIE从公司外网下载直接安装。
B. 每一次构建成功后,都应该记录生成的版本包和构建环境镜像的关联关系,方便以后溯源。
C. 为了方便开发人员定位构建问题,构建环境应该对所有开发者开放。
D. 版本发布构建所用的环境,应该是封闭的,只能有任命的CIE可以访问环境。

2涉及对外源码交付的产品/平台版本,构建环境需安装BepKit工具进行构建一致性验证并明确验证频度, “不可识别差异”作为缺陷处理

3Binscope是可以通过检查程序二进制特征,判断安全编译选项是否落地的工具

4对于构建一致性的必要性和要求,说法正确的有(ABD)

A. 基于相同源码、环境、生产与客户现网部署逐比特一致的二进制
B. 随机差异要全部消除,除非能准确知晓这些差异的内容
C. 随机差异优先消除,时间差异太大时没必要消除
D. 交付源码和二进制要保持一致

5某产品在进行源码交付时被认证机构认定为所集成的A平台源码无法溯源,经过确认发现了根源,产品经理小强通过文件夹共享方式获取到A平台的联调版本并集成了该版本,A平台二进制对应的源码信息未做基线,产品在正式发布版本仍然使用A平台该联调版本,源码交付后,认证机构经过验证发现A平台源码缺失,上述行为违背了哪些配置管理原则(ABCD)

A.A平台二进制及源码没有进行配置标识及基线,导致源码缺失
B.产品正式发布的版本应配套使用A平台的正式发布版本,不应使用A平台的联调版本
C.联调版本没有通过联调版本发布流程发布,而是通过文件共享方式私下进行传递
D.具备在任意时刻都能交付二进制对应的准确源代码的能力

6按照二进制文件的差异现象,可以将差异分为时间戳差异和随机差异,时间戳差异表现为各种形式的时间信息,下列哪些场景属于时间戳差异(ABCD)

A. 其他自定义格式:1990+月-日-天-小时-分-秒的偏移量
B. 构建时刻距离1970/01/01秒数
C. "NOV1,2016,21:04:16“字符串
D. “20170304180056"字符串

7以下哪些是链接选项(BCD)

A. -Fpic
B. -Wl,-z,relro
C. -pie
D. -Wl,-z,noexecstack

8下面关于-fPIC和-fPIE -pie选项描述正确的是(BC)

A. 两者作用相似可以互相替换
B. -fPIC是编译选项
C. -fPIE -pie用于可执行程序
D. -fPIC用于静态库

9关于工程构建,以下说法错误的是(ABD)

A. 允许使用-w选项屏蔽所有告警
B. 使用虚拟化OS工具在Windows上来模拟Linux进行构建
C. 构建输出的日志简洁明晰,信息应分级为error/warning/info;出现error信息表示构建失败,必须终止构建
D. 构建模块较多时,对于子模块私有的配置,可以在模块内定义config.xml作为子模块的配置

10有关构建脚本,下列说法正确的是(ABC)

A. 构建脚本必须使用相对路径,禁止使用绝对路径
B. 构建脚本成功返回0;构建失败,应以非0的退出码退出
C. 每个文件开头包含一个注释,简要概述文件源代码的功能、版权声明
D. 产品软件构建脚本语言智能选择一种,推荐Python

A. ubsan
B. Isan
C. kasan
D. asan

关于过载控制设计原则,下列说法错误的是 B

A.自保恢复原则:负荷下降到设计能力范围之内后,网元可以立即恢复处理能力
B.业务保证原则:确保在出现大流量冲击时所有业务不被丢弃
C.及早控制原则:应尽可能在业务流程处理前端或业务处理较早的处理单元(网元/单板/芯片等)或底层协议层次上控制业务接入
D.优先级保证原则:系统过载时保证高优先级的业务能够优先获得资源,优先得到处理

以下描述关于网络韧性工程的架构/技术的描述错误的是 C

A.非持久性是在有限的时间内保留信息、服务和连接,从而减少攻击者利用漏洞并建立持久立足点的机会
B.权限限制是指根据关键性和信任模型,限制使用网络资源所需的权限,以及分配给用户和网络实体的权限,以最大限度的减少对手活动的潜在后果
C.多样性使用异构技术(例如 硬件、软件、固件、协议),这样增加了网络建设的成本,运维的难度,是不可取的
D.分割可以根据系统的重要级别进行划分,以限制成功攻击的传播或损害

关于冗余设计,下面说法错误的是 B

A.主用单元和备用单元的故障检测率都直接影响冗余系统可用度
B.系统的冗余设计是硬件独立完成的,与软件关系不大
C.电信产品要求具备高可用性,但同时也需要考虑成本等多方面的因素,所有冗余设计并不是使用的越多越好
D.资源池冗余设计中要考虑负载均衡

以下哪一条是软件选课系统的质量需求,并且满足原子性要求? A 疑问

A.用户规模不超过5千人时,登录密码验证时间不超过2秒,用户规模不超过2万人时,登录密码验证不超过5秒
B.课程属性与学生专业属性不符时不允许选课
C.系统应当在2018年9月1日之前上线部署运行
D.系统可按照院系统计学生选课请款个,指定统计范围后1秒内返回统计结果

某公司产品开发人员,功能实现时预留后门,在特定场景下可以绕过支付机制获利,并成功在商用版本中发布,可以通过哪项活动避免该问题出现 D

A.威胁建模
B.软件包完整性保护
C.设计架构审查
D.代码检视

不管怎么设计,还是最终得落实代码,因此,代码检视才是保障

基于威胁建模的测试设计方法需要在安全测试活动中哪个阶段使用?B

A.动态分析和Fuzz测试
B.测试方案设计
C.总体测试策略
D.静态分析

FMEA(Failure Mode and Effects Analysis)是一种可靠性分析方法,FMEA分析过程中,我们常说的补偿措施,不包括以下哪个选项() C

A.通过负荷分担保护业务
B.主备单板倒换
C.现场更换单板
D.自动复位单板

关于“开放设计安全原则”,下面描述不正确的是() C

A.涉及加密算法选择时,多使用业界公开标准的成熟算法,而不要设计私有的,自以为安全可靠的算法
B.设计不应该是秘密的,不应依赖对设计和实现的保密,以及攻击者的无知
C.加密秘钥要公开开放
D.密钥禁止硬编码

密码算法需要遵循公开设计,但不能随意泄露密钥

关于故障预测预防技术,以下说法错误的是() B

A.通过故障预测预防,用户可以根据故障出现的概率以及出现的位置,采取相应的手段提前避免这些有可能出现的故障
B.故障预测预防是一种被动故障处理技术
C.故障预测预防技术是一种有效的主动故障处理技术
D.故障预测可以在系统故障出现之前,通过分析系统的状态得到故障可能出现的概率以及出现的故障种类

GDPR针对数据跨境转移有一定要求,如必须满足特定规则后才可传输,以下哪个场景不属于跨境转移场景:疑问

A. 在中国的维护终端上,远程查看和分析德国服务器上的个人数据
B. 德国子公司个人数据传输到美国处理
C. 德国子公司的个人数据传输到俄罗斯处理
D. 作为数据处理者的法国供应商,基于成本考虑将数据转移到德国处理

产品在代码实现过程中,会存在因为对外部输入参数校验不严格而导致堆栈溢出的漏洞,给产品带来风险,下列关于输入校验说法错误的是()

A. 软件最为普遍的缺陷就是对来自客户端或者外部环境的数据没有进行正确的合法性校验。这种缺陷可以导致几乎所有的程序弱点
B. 直接使用任意用户输入来构造格式化字符串会带来安全风险
C. 当程序需要用户上传文件时,只需要校验用户上传的文件后缀名即可有效防止可执行文件上传漏洞
D. 输入校验中如果没有特殊要求,应当首先考虑采用"白名单”校验形式

下面有关IPDRR来源说法正确的是() A

A. IPDRR源自美国NIST Cybersecurity framework
B. IPDRR源自ISO 27001
C. IPDRR源自美国NIST SP 800-53
D. IPDRR源自OWASP TOP 10

https://www.aqniu.com/news-views/12002.html

系统中禁止存在未公开接口,以下哪些属于未公开接口? ABCD

A. 隐藏命令或参数
B. 可绕过系统认证的访问接口
C. 可以进入系统的隐藏快捷键
D. 隐藏账号

考察对未公开接口的理解

()与()需求是产品的质量属性之一,也是客户的基本诉求,产品需结合合规、准入及现网安全风险将其构筑在研发过程中 CD

A.最优惠的价格
B.设备平稳运行
C.网络安全
D.隐私保护

为了有效支撑事后审计,并向内部、外部客户证明研发过程风险是可控的,须准确记录所有参与软件研发环节的相关人员的信息和其交付件的信息,保证获取的上下游信息准确,需跟踪和记录的研发过程阶段有(ACD)

A.验证发布
B.现网部署
C.需求分析与设计
D.软件编码与构建

它这里关注的是研发过程阶段,所以,B选项不符合

故障预测预防设计,可采用哪些方法 AD

A.基于故障机理模型的故障预测
B.基于代码的故障预测
C.基于文档的故障预测
D.基于数据驱动的故障预测

如果基于代码、文档可以故障预测,为何不提前采取措施预防呢?因此,BC都不对

对于个人数据保护,系统更应该提供一些技术机制,如下哪些属于匿名化技术 ABCD

A.截断:舍弃属性值的后几位信息来保证数据的模糊性
B.置换:在表中某字段各记录的数据随机进行打乱(shuffling)
C.掩码:将属性值的部分字符替换为固定的特殊字符(例如*)
D.加噪:对原始数据增加一个随机值


安全合规成为政府持续关注的焦点,业界在持续探索安全应对策略,平衡好监管和创新之间的关系,业界对业务风险本身的关注点从封闭网络的互联网出口延伸到系统内部模块,从业务结果风险可控,延伸到研发过程风险控制及可视化。针对以上变化点,下列说法正确的是() ABC

A.在研发过程中对各个环节的关键基础设施落地严格的风险应对措施,如对代码仓尽心更严格的访问、完整性方案设计,保障产品软件开发过程的完整性,一致性,不因恶意篡改导致最终的功能特性与客户预期不相符,设置损害客户利益
B.产品要做到结果风险可控,须通过有效执行研发过程的安全活动控制项要求。
C.产品要做到具备威胁无处不在的视角,通过有效的基础设施及环境保护应对研发过程恶意篡改风险。
D.通过后端测试保证产品质量即可,研发过程风险无须过多关注

根据《华为隐私保护总体政策》要求,在业务活动中构筑隐私保护时,如下哪些不是收集个人数据的原则( )。 B

A. 必要性
B. 机密性
C. 最小限度
D. 目的相关性

1.1 二进制差异消除

1、对于时间宏引入二进制差异

可以选择删除DATE/TIME宏,并测试删除后是否影响业务功能

2、gcc lto优化引入的二进制差异

lto性能优化效果比较好,删除之后要充分的性能测试,或其他方案

3、pyc/pyo文件头事件戳差异:

 
BepKit工具

4、arj引入随机差异:

通过arj反解后比较内容

1.4 配置管理原则(版本发布)

1、版本转测前,CME检查代码标签,配套文档,将文档和二进制文件共同基线化、转测试

2、版本发布前由配置经理、SE及各领域代表评审确认交付件的完整及配套关系

2、安全可信基础

2.1 理解可信中安全、隐私、韧性、可用性和可靠性的基本概念,熟悉常见软件攻击手段和规避措施,熟悉常见消减风险的方法、工具等

2.1.1 预留的后门消除手段:代码检视

2.1.2 系统之系统

考点:

系统之系统是两个或两个以上独立管理和治理的系统的集合

系统之系统并不存在一个对系统各个部分进行管理的管理者

系统之系统不同部分可分别对应不同的管理和控制策略和规则

2.1.3 故障预测预防技术

是一种主动故障处理技术

2.1.4 故障隔离技术

故障隔离技术的核心思想是降低故障影响范围,防止产生级联故障

2.1.5 故障隔离设计

隔离仓

断路器

组合切片

可靠性沙箱

有限重试

考题里面有个故障域划分设计选项不对

2.1.6 韧性架构或技术措施

降级、隔离、监控可视化等

考题中,云化部署、同操作系统选项不对

2.1.7 数据匿名化

差分隐私:经过加噪聚合得出的统计结果

3、开源及第三方组件使用能力

3.1 开源软件认知、选型及使用、生命周期、义务履行

3.1.1 开源软件版本规范

不可选:rc版本、beta版本、没有版本号的

注1:LTS(Long Term Support)指的是由社区维护的版本

LTS>稳定版>最新:是指由LTS版本优先选择最新LTS版本:无LTS版本,选稳定版;如果有多个稳定版或无法明显判定稳定版,选最新;

注2:谨慎选型:文本中“谨慎选型”标识原则上不建议使用

3.1.2 PDM中的禁选软件

不能:先改成可选,发布之后再标识禁选

应该:不能集成到发布包,仍要集成需要风险备案决策

3.1.3 开源license理解

WTFPL类的license禁选,其license正文就一句话(You just DO WHAT THE FUCK YOU WANT TO)

3.1.4 License隔离措施

3.1.5 开源软件使用规范

涉及到:

【规则】:整包使用开源软件,版本名称与官网保持一致

【规则】:设计源代码交付,对开源原生代码进行修改的代码,使用Patch方式管理

【规则】:开源修改的patch独立存放可管理

【规则】:禁止片段引用开源软件代码

3.1.6 开源试题

1. 关于开源义务履行,说法错误的 (A)

A. 不同许可的开源代码不存在兼容性问题,只要申请后即可按规范使用。
B. 外开源义务是指按照开源许可证要求将一定范围内的代码对外开源,开源范围视具体许可证的要求和产品具体使用方式而定。
C. 修改声明是指公司做出的对修改过的开源软件就修改时间,修改的代码以及修改过的文件做出的声明。无强制要求产品执行,但建议产品在修改GPL/LGPL类开源软件时,履行该义务。
D. 原则上只要使用了开源软件,就需要履行开源使用声明义务。

2. 开源选型的顺序 (2)

XX开源软件,什么开发稳定之类的,目前存在如下版本:

1. 开发过程版本 5.6.dev
2. 最新维护期的版本 LTS 3.4.65
3. 最新发布版本 5.2
4. 社区已知道的稳定的版本 5.0

3. 关于开源patch式管理的说法不正确的是 (1)

1. 开源社区发布的补丁要和自研修改的补丁做成一个patch

2. 原则上,开源修改的patch独立存放可管理

3. 基于开源修改的patch可以包含开源权利人声明

4. 华为修改开源软件的patch量,不要超过5%。

5、在开源选型中,下列哪个符合软件选型的要求? (B)

A、apache master
B、struts 3.20
C、struts 3.2.1T
D、struts 11.beta


6、关于GPLV2  license的规避产品开发方式,正确: (CD)

A、动态链接方式使用
B、内核态中对kernel调用
C、隔离层,将软件包开源,通过隔离层和其它进程交互
D、进程隔离,通过进程通信交互


7、有关三方件软件引入的评估,正确的是 (ABD)

A、无可以替代的三方件不建议引入
B、未签署网络协议的禁止引入
C、已EOSS三方件不建议引入
D、供应商发布的软件正式版本


8、开源软件及三方件的网络安全要求: (ABCD)

A、必须来源于PMD库中
B、非A/B类红线安全问题,如果高风险CVSS>=7,版本发布前解决,CVSS<7可以等供应商修复后同步版本
C、A类红线和高风险CVSS>=7,版本发布前解决,中低风险CVSS<7的B类红线可以等供应商修复后同步版本
D、研发过程中,三方件要和产品代码一起开展网络安全测试

 9、开源软件patch式管理,不对的

选 开源社区发布的补丁和自研修改的补丁做成一个补丁。

4、通用算法及数据结构

4.1 掌握基本数据结构:数组、字符串、队列、堆、栈、链表、哈希表、二叉树、平衡树等

4.1.1 二叉排序树

给定几个序列,判断是否能够构成一个二叉树的查找排序

举例:95,22,90,23,94,71(不能)

4.1.2 二叉树的第k层节点数

根为第一层  2的k-1次方

所有节点 2的k次方-1

4.1.3 非空二叉排序树

非空二叉排序树T1,删除某节点,形成二叉排序树T2,再将V插入,形成二叉排序树T3

若V是T1的叶子节点,T1是否等于T3?(等于)

若V不是T1的叶子节点,T1是否等于T3?(不等于)

在一棵二叉排序树中删除一个节点后再将此节点插入到二叉排序树中,如果删除的节点是叶子节点,那么在插入节点后,后来的二叉排序树与删除节点之前相同。如果删除的节点不是叶子节点,那么再插入这个节点后,后来的二叉树可能发生变化,不完全相同。

4.1.4 栈

给一个序列a b c d e f g依次入栈,给个出栈序列b d c f e a g,栈容量最小为多少? (3)

a b

a c d

a e f

a g

4.1.5 二叉树遍历,给你前序和后序,给出终须之类的问题

4.2 常用基础算法:常用排序算法、搜索算法(深搜、广搜)、递归、分治、最优化算法、贪心算法、动态规划等

4.2.1 排序算法使用场景

各种排序算法适用场景、举例:

数据范围和数据个数差不多,最有效的是基数排序

4.2.2 冒泡排序算法

考察冒泡排序算法是否正确

4.2.3 使用数组作为循环队列,存放最大元素个数

比如数组大小是N,能够存最大元素个数:N-1

https://blog.csdn.net/weixin_34250434/article/details/93958402

4.2.4 二分查找算法

给几个算法那,找出哪几个是有问题的

5、现代软件工程

5.1 掌握软件开发相关的过程活动及方法,包含需求分析、架构设计、软件设计、开发、测试、项目管理等

5.1.1 质量需求,满足原子性要求

某选课系统质量需求,且满足原子性要求?(1)

1、  用户规模不超过5000,登录密码验证时间不超过2s,用户规模不超过2w,验证时间不超过5s。

2、  系统可以按照院系统计学生选课情况,指定统计范围后1s内返回统计结果。(两个需求,非原子)

3、  系统在2020年1月1号上线部署

4、  Xxx条件不符不允许选课

5.2 掌握典型的现代软件工程方法、实践及应用,包含敏捷、DevOps、产品线工程(PLE)等。

5.2.1 每日站立会议

scrumMaster不会逐个的问每个人问题,团队成员互相交流,不是评价,不是想ScrumMaster报告

是一个简短的团队会议,团队成员每天固定时间地点举行

高效、每个人都集中精力

会议后,Scrum Master指导哪些问题需要帮助团队成员解决

6、调试与定位能力

6.1 掌握JvisualVM/JMC、jstack/jmap工具,定位堆内存/堆外内存、线程资源消耗、典型死锁问题。

6.1.1 Jmap

考察某环境经常full gc,长期内存占用很高,一次内存泄漏,使用的命令

6.1.2 堆内存溢出风险

Jstat -gcutil 1111 2000 对java进程进行观察,其中一个E、O都是100%,预示着有更大的风险发生OOM

6.1.3 Jvisualvm工具

http://visualvm.github.io/

考察关于jvisualvm使用

6.1.4 Dump线程堆栈,检查死锁

从线程dump可以看出:

线程A,持有lock1, 等 lock2

线程B,持有lock2,等lock3

线程C,持有lock3,等lock1

形成死锁

6.2 掌握远程调试原理及参数设置

7、编译构建知识与应用

7.1 掌握Debug版与Release版控制参数

7.2 掌握静态检查告警总体开关参数

7.2.1 编译参数导致编译告警被关闭

禁止使用

-nowarn -Xlint:none -Xlint:name

-g:none -g:[keyword list]

必须使用

-source -target -Xlint:all

Maven-compiler-plugin的showWarnings设置为true

-X 输出非标准选项的提要

-Werror 出现警告时终止编译

-nowarn 不生成任何警告

-Xlint:none 不生成任何警告

7.2.2 泛型没有具体化,给出哪几行有编译警告

7.3 掌握Java语言语法兼容性控制参数

7.3.1 Lamda表达式

编译时需要 javac -source 8 xxx

7.4 以POM文件格式组织编译依赖树

7.4.1dependencies与dependencyManagement的区别

1、dependencies即使在子项目中不写该依赖项,那么子项目仍然会从父项目中集成该依赖项(全部继承)

2、dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中集成该项,并且version和scope都读取子父pom;另外如果子项目中制定了版本号,那么会使用子项目中指定的jar版本

3、scope取值为import,只能用于dependencyManagement

7.5 maven体系结构

7.5.1 Maven生命周期

Maven 构建生命周期就是Maven讲一个整体任务划分为一个个的阶段,类似于流程图,按顺序依次执行。也可以指定该任务执行到中间的某个阶段结束。

Maven 的内部有三个构建生命周期,分别是clean、default、site。其中default生命周期的核心阶段如下所示:

Mvn install :将完成validate、compile、test、package、verify、install阶段,并将package生成的包发布到本地仓库中,团队其他成员没法使用。

Mvn dependency:tree 分析项目依赖关系

Mvn test运行单元测试

Mvn clean 清理上一次构建产生的内容

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/676909.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号