当前位置:   article > 正文

2023年最新最全网络安全工程师面试题合集!

网络安全工程师面试题

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

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

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攻击,主要思路是控制连接数;

  1. net.ipv4.tcp_max_syn_backlog = 4096 ``#表示SYN队列的长度,加大队列长度可以容纳更多等待连接的网络连接数
  2. net.ipv4.tcp_syncookies = 1 ``#表示开启SYN Cookies功能。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭,1表示打开;
  3. net.ipv4.tcp_synack_retries = 2 ``#下面这两行表示定义SYN重试次数
  4. net.ipv4.tcp_syn_retries = 2
  1. #提高TCP连接能力
  2. net.ipv4.tcp_rmem = 32768
  3. net.ipv4.tcp_wmem = 32768
  4. 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分的大题;必须要对目前的知识进行拆分;

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

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

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

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

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

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

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

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

。。。(由于篇幅原因,不做完整展示)

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

(由于篇幅原因,不做完全展示)

 

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/267377
推荐阅读
相关标签
  

闽ICP备14008679号