天天看點

2023年最新網絡安全面試題合集——甲方類(含答案解析)

作者:秃頭程式員ya

以下是對目前部分熱門的甲方面試/筆試題(偏管理和營運)的總結和思考,希望可以幫助到正在準備甲方面試的你們;

願我們披荊斬棘,享受前進路上的每一處風景

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

最後詳細的過程如下圖:

2023年最新網絡安全面試題合集——甲方類(含答案解析)

1. 第一步: 用戶端确定随機數,發送支援的密碼算法放進到TLS協定中,供服務端進行選擇;服務端存儲用戶端發送的随機數1;

2. 第二步:服務端确定與用戶端的加密算法,并确定一個随機數2,以明文的方式發送給用戶端,用戶端儲存随機數2;

3. 第三部:服務端發送數字證書(包括:公鑰、簽名、服務端主體資訊)給服務端,此時伺服器也确定了對應公鑰的解密私鑰;用戶端收到後驗證數字證書是否有效,并确定随機數3;

4. 第四步:用戶端發送經過公鑰加密的随機數3,服務端接收并使用儲存的私鑰進行解密;

5. 第五步:這下服務端和用戶端都有了對稱密鑰生成的三個随機數:随機數1、随機數2、随機數3,使用DH(現在比較流行的是:ECDH算法)秘鑰生成算法進行生成對稱秘鑰,使用對稱秘鑰進行加密資料進行傳輸;

頭條大禮包:《黑客&網絡安全入門&進階學習資源包》免費領取

4. 如何提升非對稱加密的運作效率(10分)

答:

可以采用獨立的硬體加密子產品的方式進行,非對稱對稱加密使用的算法需要考慮大數乘法、大因數分解、大數模運算,在計算機中簡單的是加法和減法,是以乘法本身就是有損耗;其次,算法對于秘鑰的存儲需要空間和算法的複雜度,也會影響非對稱加密的運作效率;

使用量子計算和橢圓曲線算法來進行加密的方式,橢圓曲線算法涉及到幾何學,是以比大數乘法、大因數分解、大數模運算的複雜度要較低;

5. 請簡述什麼是企業安全營運 / 在企業内部中如何推行安全營運建設(20分 + 20分)

答:

這個問題真的非常***鑽,需要很強的體系知識以及在企業中的實踐經曆,甚至對于企業的體系群組織架構有一定的了解,是以是一個20分的大題;必須要對目前的知識進行拆分;

**什麼是企業的安全營運,安全營運的概念:**

安全營運被定義為:以資産為核心、以安全事件管理為關鍵流程,采用安全域的劃分思想,建立一套實時的資産風險模型,協助管理者進行事件分析、風險分析、預警管理和應急響應處理的集中安全管理系統;

安全營運以使用者網絡的最終安全為目的,實作營運過程上的統籌管理;

安全風險不僅僅指的是目前的網際網路技術、計算機科學技術,而是将企業整個體系的安全囊括在安全營運建設上,包括:合規安全(監管機構、行業規範)、營運風險管理(在實際營運中的風所有險,例如金融行業的風險控制部門,涉及到業務、産品等);

安全營運本質上就是一個:以技術、流程和人有機結合的複雜系統過程,包含:

> 産品、服務、運維、研發等,已有安全工具、安全服務産出的資料進行有效分析,持續輸出價值,解決安全風險

其模式:用“服務模式”開展合作,以“安全能力”進行賦能,以“安全資料”提供決策,以“營運能力”作為傳遞,以營運模式來發現問題、驗證問題、分析問題、響應處理、解決問題并持續優化;

**企業安全營運存在的問題:**

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

6. 簡述如何增強企業的資料安全(20分)

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

2023年最新網絡安全面試題合集——甲方類(含答案解析)
2023年最新網絡安全面試題合集——甲方類(含答案解析)

**注:做這個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,其原理是什麼,此類特性還會造成什麼安全問題?(★)

2023年最新網絡安全面試題合集——甲方類(含答案解析)

如果需要領取網絡安全面試題資料包的話,可以下方領取!

面試題大禮包:《黑客&網絡安全入門&進階學習面試題資源包》免費領取

繼續閱讀