以下是對目前部分熱門的甲方面試/筆試題(偏管理和營運)的總結和思考,希望可以幫助到正在準備甲方面試的你們;
願我們披荊斬棘,享受前進路上的每一處風景
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分的大題;必須要對目前的知識進行拆分;
**什麼是企業的安全營運,安全營運的概念:**
安全營運被定義為:以資産為核心、以安全事件管理為關鍵流程,采用安全域的劃分思想,建立一套實時的資産風險模型,協助管理者進行事件分析、風險分析、預警管理和應急響應處理的集中安全管理系統;
安全營運以使用者網絡的最終安全為目的,實作營運過程上的統籌管理;
安全風險不僅僅指的是目前的網際網路技術、計算機科學技術,而是将企業整個體系的安全囊括在安全營運建設上,包括:合規安全(監管機構、行業規範)、營運風險管理(在實際營運中的風所有險,例如金融行業的風險控制部門,涉及到業務、産品等);
安全營運本質上就是一個:以技術、流程和人有機結合的複雜系統過程,包含:
> 産品、服務、運維、研發等,已有安全工具、安全服務産出的資料進行有效分析,持續輸出價值,解決安全風險
其模式:用“服務模式”開展合作,以“安全能力”進行賦能,以“安全資料”提供決策,以“營運能力”作為傳遞,以營運模式來發現問題、驗證問題、分析問題、響應處理、解決問題并持續優化;
**企業安全營運存在的問題:**
。。。(由于篇幅原因,不做完整展示)
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,其原理是什麼,此類特性還會造成什麼安全問題?(★)
如果需要領取網絡安全面試題資料包的話,可以下方領取!
面試題大禮包:《黑客&網絡安全入門&進階學習面試題資源包》免費領取