网络安全面试题整理——甲方类(含答案解析)

以下是对目前部分热门的甲方面试/笔试题(偏管理和运营)的总结和思考,希望可以帮助到正在准备甲方面试的你们;

愿我们披荆斩棘,享受前进路上的每一处风景

1. 简述一下目前主流编程语言的相关漏洞

答:这个题的相关思路就是聊一聊目前主流语言的漏洞,你可以从两个方面进行阐述:

Java 、Python、PHP(漏洞大户)的相关漏洞,其实也是那几个;
聊聊你知道的框架 - 比如Apache基金会框架、PHPAdmin、Python主流Web架构 - jinjia2、Django等;

Python的漏洞:

注入:Django 2022新的SQL注入漏洞,即使Django采用参数化查询和ORM的防范SQL注入也存在字典注入的方式,2022最新的CVE漏洞利用QuerySet.annotate()、aggregate()和extra()方法进行注入;
XML: XML的读取会造成DoS攻击;XXE 攻击的利用;
assert 语句: 不要使用 assert 语句来防止用户访问特定代码段。默认情况下,Python 以 debug 为 true 来执行脚本,但在真实环境中,通常使用优化运行,这将会跳过 assert 语句并直接转到安全代码,而不管用户是否是 is_admin 。
site-package: 伪造官方库进行代码注入和代码伪造;

Java漏洞:

Java最著名的就是反序列化漏洞,反序列化漏洞出现在WebLogic、JBoss等常见Web容器;
Structs2就是任意代码执行
Log4j2 也是很火的漏洞
Shiro 的身份验证绕过、远程代码执行;

PHP漏洞:一抓一大把

ThinlkPHP的远程代码执行
PHP的反序列化
ThinkPHP文件包含
PHP不安全函数: chroot、exec、一句话木马、proc_open等

2.如何发现目前在运行的相关系统正在遭受DDoS攻击?

答:问题背景:

首先现在大多数企业已经不自己购买抗DoS的相关防御设备了,或者只是简单部署DoS流量防御设备系统,因为如果企业遭受到DoS攻击指望那几台互联网出口的抗D设备已经无法满足需求,如果互联网出入口出现高峰流量就会直接将设备打挂,从而设备流量被绕过,还是无法做到流量清洗和DoS的相关防御;

本身这种攻击就没有有效的防御方法,最好的方法是在运营商上就做好流量清洗和流量黑洞,才能更有效的防范,因此最为省事和有效的办法是购买运营商的流量清洗服务;

CDN其实也是一个很有效的防范DoS攻击的途经,也是成本低廉的解决问题的方式;

如何发现系统正在遭受攻击?

首先,可以在现网中部署流量监视系统或者流量审计系统,从而对业务流量进行监视,进行业务正常流量和IP地址的追踪和观察,形成自身的业务流量安全相关模型,明确内网服务器或者自身应用系统对于服务流量的上限,设立相关的警戒阈值,超过该阈值需要考虑是否遭受DoS攻击;

利用分布式多核硬件技术,基于深度数据包检测技术(DPI)监测、分析网络流量数据,快速识别隐藏在背景流量中的攻击包,以实现精准的流量识别和清洗。恶意流量主要包括 DoS/DDoS 攻击、同步风暴(SYN Flood)、UDP 风暴(UDPFlood)、ICMP 风暴(ICMP Flood)、DNS 查询请求风暴(DNS Query Flood)、HTTP Get 风暴(HTTP Get Flood)、CC 攻击等网络攻击流量。

其次,Linux服务器对于CC攻击和DoS攻击有自身的日志记录,dmesg 和 message 日志都会有相关的Flood的日志记录,这个日志的记录是由于:net.ipv4.tcp_max_syn_backlog 参数设置的,Linux也有其他参数来防止DoS攻击,主要思路是控制连接数;

net.ipv4.tcp_max_syn_backlog = 4096   ``#表示SYN队列的长度,加大队列长度可以容纳更多等待连接的网络连接数
net.ipv4.tcp_syncookies = 1       ``#表示开启SYN Cookies功能。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭,1表示打开;
net.ipv4.tcp_synack_retries = 2     ``#下面这两行表示定义SYN重试次数
net.ipv4.tcp_syn_retries = 2   
#提高TCP连接能力
net.ipv4.tcp_rmem = 32768
net.ipv4.tcp_wmem = 32768
net.ipv4.tcp_sack = 0   ``#打开tcp_sack功能,1表示"关闭",0表示"打开"

DDoS deflate 也是一个控制 netstat 和 iptables 有效的工具,通过 netstat 监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限制时,该程序会通过APF或IPTABLES禁止或阻挡这些IP;

一些框架,例如Apache的Web框架就记录了:access log 来记录访问;

此外,可以检查Linux服务器的相关进程资源使用情况,通过 top命令查看监视系统进程的资源使用情况,对系统的资源使用进行监控,这里涉及到主机的监控的相关技术;或者通过 netstat 查看目前系统正在连接数;

netstat -npt | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n

也可以直接抓取网络流量进行分析,使用的相关工具有:tcpdump 和 tshark 可以抓取网络流量进行分析;

3. 简述TLS的加密过程(10分)

答:首先必须明确,TLS目前的版本已经从1.0到1.3版本,目前比较流行的版本是1.2,TLS的运作的OSI模型在传输层,SSL/TLS综合运用了密码学中的对称密码,消息认证码,公钥密码,数字签名,伪随机数生成器等,可以说是密码学中的集大成者。

握手协议;

握手协议负责在客户端和服务器端商定密码算法和共享密钥,包括证书认证,是4个协议中最最复杂的部分。

密码规格变更协议;

密码规格变更协议负责向通信对象传达变更密码方式的信号

警告协议;

警告协议负责在发生错误的时候将错误传达给对方

应用数据协议;

应用数据协议负责将TLS承载的应用数据传达给通信对象的协议。

TLS记录协议;

TLS加密原理

  • TCP建立了两端的连接;建立在TCP连接的基础上,TLS也是通过几次握手来保证应用层的数据安全传输;
  • 要保证数据的安全,就要对两端的传输的报文进行加密,且要防止被中间人攻击所破解。
  • TLS使用非对称加密的方式进行加密,当然这种加密的方式带来的问题就是:非常耗时,加密传输数据会影响效率,这一点非常关键;
  • TLS的秘钥交换规则是:

服务端生成非对称秘钥对,私钥自己保存,将公钥明文传输给客户端;
客户端自己生成一个对称秘钥,再将对称秘钥通过公钥加密,通过加密后的秘钥传给服务端,服务端通过自己保存的私钥进行解密,获得客户端指定的对称秘钥;
当前,这种交换密钥的方式也有一个问题,就是明文传输的公钥可能存在被篡改的问题,这个时候必须引出数字证书和CA的概念;

  • TLS的CA和数字证书(一定要回答这个方面的问题):

数字证书是一个包含了某个服务站点名字、公钥的文件,该文件由CA颁发,能够证明服务站点的真实性。
服务端自己向CA证书申请数字证书,而CA机构怎么获得相关信任呢?这个时候涉及到根证书机构,世界上的根证书机构只有几个,因此CA机构向根CA机构进行申请,整个CA的信任链也是一个逐级链式认证的过程,在这里不再进行详述。

  • TLS使用的加密协议:

TLS_DHE_DSS_WITH_AES_256_CBC_SHA256"
DHE-DSS-AES256-SHA256
TLS_DHE_DSS_AES_256_CBC_SHA256

最后详细的过程如下图:
在这里插入图片描述

  1. 第一步: 客户端确定随机数,发送支持的密码算法放进到TLS协议中,供服务端进行选择;服务端存储客户端发送的随机数1;
  2. 第二步:服务端确定与客户端的加密算法,并确定一个随机数2,以明文的方式发送给客户端,客户端保存随机数2;
  3. 第三部:服务端发送数字证书(包括:公钥、签名、服务端主体信息)给服务端,此时服务器也确定了对应公钥的解密私钥;客户端收到后验证数字证书是否有效,并确定随机数3;
  4. 第四步:客户端发送经过公钥加密的随机数3,服务端接收并使用保存的私钥进行解密;
  5. 第五步:这下服务端和客户端都有了对称密钥生成的三个随机数:随机数1、随机数2、随机数3,使用DH(现在比较流行的是:ECDH算法)秘钥生成算法进行生成对称秘钥,使用对称秘钥进行加密数据进行传输;

4. 如何提升非对称加密的运行效率(10分)

答:

可以采用独立的硬件加密模块的方式进行,非对称对称加密使用的算法需要考虑大数乘法、大因数分解、大数模运算,在计算机中简单的是加法和减法,因此乘法本身就是有损耗;其次,算法对于秘钥的存储需要空间和算法的复杂度,也会影响非对称加密的运行效率;

使用量子计算和椭圆曲线算法来进行加密的方式,椭圆曲线算法涉及到几何学,因此比大数乘法、大因数分解、大数模运算的复杂度要较低;

5. 请简述什么是企业安全运营 / 在企业内部中如何推行安全运营建设(20分 + 20分)

答:

这个问题真的非常***钻,需要很强的体系知识以及在企业中的实践经历,甚至对于企业的体系和组织架构有一定的了解,因此是一个20分的大题;必须要对目前的知识进行拆分;

什么是企业的安全运营,安全运营的概念:

安全运营被定义为:以资产为核心、以安全事件管理为关键流程,采用安全域的划分思想,建立一套实时的资产风险模型,协助管理员进行事件分析、风险分析、预警管理和应急响应处理的集中安全管理系统;

安全运营以用户网络的最终安全为目的,实现运营过程上的统筹管理;

安全风险不仅仅指的是目前的互联网技术、计算机科学技术,而是将企业整个体系的安全囊括在安全运营建设上,包括:合规安全(监管机构、行业规范)、运营风险管理(在实际运营中的风所有险,例如金融行业的风险控制部门,涉及到业务、产品等);

安全运营本质上就是一个:以技术、流程和人有机结合的复杂系统过程,包含:

产品、服务、运维、研发等,已有安全工具、安全服务产出的数据进行有效分析,持续输出价值,解决安全风险

其模式:用“服务模式”开展合作,以“安全能力”进行赋能,以“安全数据”提供决策,以“运营能力”作为交付,以运营模式来发现问题、验证问题、分析问题、响应处理、解决问题并持续优化;

企业安全运营存在的问题:

底层的安全基础能力不成熟、安全目标不清晰、安全运营工具依赖第三方厂商、没有形成合理的安全体系、安全人才不择;

企业安全运营的建设方向和大体内容:

合规性建设和企业自身安全制度体系建设:

首先对于任何企业,合规、合法是企业生存的生命线,必须要牢记这一点,相关安全规范可以参考GB/T或者ISO的相关概念和规章制度或者是已经公开的电子政务数据、安全标准、指导法规,有非常大的建设参考意义;

开展等级保护和风险评估流程、合规检查和评估指导、合规整改内容;

明确内部安全管理的要求、安全技术标准以及运营标准;

企业组织架构建设方向:

明确现状确立组织架构

安全运营的服务体系建设方向:

开展安全基线评估加固
网络设备安全配置基线 - ARP污染等常见攻击方式
安全设备安全配置基线
操作系统安全配置基线
数据库与中间件安全基线
安全配置核查系统和检查脚本工具
运维管理和安全审计

安全运维管理:对身份、访问、权限控制;

角色与权限 RBAC模型等

安全审计日志的审计和分析:运维操作产生网络访问日志、安全运维日志、操作日志、产品运行日志、网络流量数据;这些日志中隐藏着网络攻击行为或者未发现的相关攻击行为,安全审计通过这些信息进行审计和发掘,发现相关攻击行为特征;

服务交付成果审计

系统上线检查

安全事件分析

重点时期的攻防演练;

安全事件及态势监测、安全事件应急处理
专家应急响应、安全事件检测、安全事件抑制、安全事件根除、安全事件恢复、安全事件总结;

互联网资产发现

应用失陷资产的检测

安全策略优化服务

安全产品的运行、保障、运维

外部威胁的实时监测

漏洞的全生命周期管理

重大时期的安全检查

重大安全事件的通告

安全管理服务建设:

  • 管理组织建设:

按照《网络安全法》等法律法规和等保要求,对各个业务系统进行信息安全设计以及安全运营中心建设;
组织架构的建设需要通过审查;
明确安全职责矩阵;

  • 安全制度管理:

明确信息安全总方针、安全策略、说明机构安全工作的总体目标、范围、方针、原则;
完善安全中的管理制度;
建立日常管理操作制度、手册;
定期对安全制度进行评审、
成立信息安全领导小组和委员会,由信息安全小组统一负责并组织相关人员指定信息安全管理制度;

  • 安全流程管理:

安全事件处理流程、安全风险内容评估流程、安全事件应急相应流程、安全事件溯源取证流程、安全设备上线叫个流程;
变更流程
流程发布过程
人员安全管理
安全建设管理
系统定级、安全方案涉及、安全产品采购、自主软件开发、外包软件开发、工程实施、测试验收、系统交付、系统备案、等级测评、安全服务商选择;

  • 安全运维管理

环境管理 - 设置管理区
资产管理
介质管理
设备管理
安全监控
系统安全管理
恶意代码防范
供应链安全管理
密码管理
变更管理
备份及恢复管理
安全事件处置
应急预案管理

  • 安全培训管理
  • 安全运营管理

《网络安全法》和等保第三极进行分析,安全管理体系逐步建立和完善
对角色/权限管理、安全制度管理、风险管理、控制执行、绩效评价、威胁评价、威胁情报、工作流程进行统一管理

  • 安全咨询管理

6. 简述如何增强企业的数据安全(20分)

(由于篇幅原因,不做完全展示)
在这里插入图片描述
在这里插入图片描述

注:做这个List的目标不是很全,因为无论如何都不可能覆盖所有的面试问题,更多的还是希望由点达面,查漏补缺。

TODO LIST

  • 渗透测试
  • Web安全
  • PHP安全
  • Java安全
  • Linux相关
  • Windows相关
  • 内网渗透
  • 安全研发
  • 甲方安全运营

渗透测试

如何绕过CDN找到真实IP,请列举五种方法 (★★★)

redis未授权访问如何利用,利用的前提条件是?(★★★)

mysql提权方式有哪些?利用条件是什么? (★)

windows+mysql,存在sql注入,但是机器无外网权限,可以利用吗? (★)

常用的信息收集手段有哪些,除去路径扫描,子域名爆破等常见手段,有什么猥琐的方法收集企业信息? (★★)

SRC挖掘与渗透测试的区别是什么,针对这两个不同的目标,实施过程中会有什么区别 (★★)

存储xss在纯内网的环境中,可以怎么利用?(★★)

mssql中,假设为sa权限,如何不通过xp_cmdshell执行系统命令 (★★)

假设某网站存在waf,不考虑正面绕过的前提下,应该如何绕过(分情况讨论 云waf/物理waf) (★)

PHP安全

PHP中如何使用phar://伪协议触发反序列化,利用场景以及前提条件有哪些?(★★)

如何绕过php.ini中disable_function的限制,有哪些方法,其中成功率最高的方法是哪个,为什么?(★★★)

文件上传中%00截断的原理是什么,官方是如何设计修复方案的?(★★)

实现一个一句话webshell,绕过RASP的方式有哪些,绕过机器学习检测的方式有哪些,绕过AST-Tree的方式有哪些(★★)

PHP伪协议的攻击场景有哪些?(★★)

mail函数的攻击面有哪些?(★)

如何不通过数字以及字符构造webshell,其原理是什么,此类特性还会造成什么安全问题?(★)

如果需要领取网络安全面试题资料包的话,可以下方扫码!

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yinjiyufei/article/details/130011190