搞安全開發,需要學什麼程式語言呢?

csdn程序人生 發佈 2021-10-20T16:21:28+00:00

作者 | 軒轅之風O來源 | 編程技術宇宙(ID:xuanyuancoding)搞安全開發,需要學什麼程式語言呢?今天就來詳細說說這個話題,我打算從安全公司研發的產品這個角度來切入,看看都有哪些產品,以及都用到哪些語言。安全公司的產品研發,主要是下面這些東西,下面分別來說一下。

作者 | 軒轅之風O

來源 | 編程技術宇宙(ID:xuanyuancoding)

搞安全開發,需要學什麼程式語言呢?

今天就來詳細說說這個話題,我打算從安全公司研發的產品這個角度來切入,看看都有哪些產品,以及都用到哪些語言。

安全公司的產品研發,主要是下面這些東西,下面分別來說一下。

  • WAF(Web網站應用防火牆)

  • 資料庫網關

  • 防火牆、IDS、IPS

  • NTA(網絡流量分析)

  • SIEM(安全事件分析中心、態勢感知、大數據安全分析)

  • EDR(終端設備上的安全軟體)

  • DLP(數據泄漏防護)

  • UBA(用戶行為分析)

  • 殺毒軟體

  • 安全檢測沙箱

WAF

WAF全稱Web網站應用防火牆,是一種特殊的防火牆,專門用來保護Web應用安全的安全產品,主要防禦SQL注入、XSS注入、CSRF、CC攻擊之類的網絡攻擊。

這類產品一般有兩個流派。一種是基於底層網絡流量來做,一種是基於nginx/openresty這類上層WebServer來做。

基於底層流量分析引擎的來做的,以 C/C++ 為主。

基於nginx/openresty引擎來做的,以C/C++ 和 Lua為主。

資料庫網關

和WAF有點類似,但保護的目標不是Web應用,而是資料庫。

畢竟,對於絕大多數網際網路公司來說,WebServer和資料庫是支撐他們業務中最重要的兩個角色,所以守護好這兩個東西是必須的!

資料庫網關,主要負責防禦對資料庫的攻擊,檢測高危操作,數據安全備份等。

用到的程式語言以C/C++ 和 Java為主。

現在雲計算時代,很多公司的業務都放在了雲端,這些雲計算廠商相應的也都有推出自己的安全防護服務,WAF、資料庫網關、DDOS雲盾三大件是標準配置。

殺毒軟體

最常見的,普通人最能直接接觸的應該就是安全軟體了。

主要涉及到的技術有病毒木馬分析、驅動開發,使用的程式語言主要是C、C++。

NTA、防火牆、IDS、IPS

NTA就是網路流量分析的簡稱,IDS是入侵檢測系統,IPS是入侵防禦系統。

這類東西,主要是基於網絡流量的安全檢測和防禦產品。涉及到網絡抓包、抓包分析等東西。

一般來說,這類產品對性能要求特別高,因為通常需要處理非常大的流量數據,10Gbps的萬兆網絡流量分析是常規操作。

所以,這部分抓包、分析比較底層的引擎基本都是用 C/C++ 來開發。

SIEM

SIEM全稱Security Information Event Management(安全信息事件管理中心),差不多就是很多公司中的大數據安全分析系統、態勢感知系統之類的玩意兒。

那些看起來各種高端大氣狂拽炫酷的界面,基本上都是這種產品:

這是一個安全分析平台,通過匯集多方(網絡流量、日誌、威脅情報、沙箱檢測等)產生的數據,並對這些數據進行關聯分析,然後判斷有沒有安全風險,產生安全告警。

SIEM,基本上很多公司都有,但真正做得好的不多,想要做好,除了數據源的高價值,對分析算法、算法模型都有非常高的要求,這方面的人才很難找。

這塊偏重於業務層的分析工作,涉及各種處理,在我見到的各大公司產品中,主要是Java開發,畢竟Java背後的大數據生態是一大優勢,對於數據挖掘,關聯分析都是緊密相關的。

EDR

全稱終端安全響應系統,是運行在終端設備上的一套軟體。

其實跟我們常見的殺毒軟體很像,除了具備基礎的安全防禦功能,保護主機免受攻擊,還會將主機上發生的一些事情匯報到SIEM用於安全分析。

EDR和殺毒軟體類似,也是用 C/C++ 開發。

UBA

全稱用戶行為分析,是基於EDR、NTA等產品的產生數據之上,用來分析用戶行為的一套系統。

簡單來說,這玩意根據收集到的員工的行為(電腦上的操作、上網數據等),可以分析出,這個用戶是不是異常,有沒有幹什麼壞事。

比如某個用戶工作時間微信相關的IP產生的流量非常多,則很有可能判斷這傢伙上班經常群聊摸魚~

這套系統是一套純後端系統,一般也是使用Java開發。

DLP

全稱數據泄漏防護,也是運行在終端設備上的一套軟體,當然也有一些不在終端而以網關形式存在。

不同於殺毒軟體和EDR,DLP的主要作用是防止主機上的數據泄露。一般用在一些比較重要的單位中,員工電腦上的數據非常重要,用於防止竊密事件發生。

主要涉及的技術是驅動開發技術,流量分析技術,用的程式語言也是C/C++。

安全檢測沙箱

病毒木馬和Exploit的分析,除了傳統的基於特徵和規則的靜態分析引擎之外,動態分析技術是另一個重要的補充。而動態分析中,則主要是以沙箱分析為代表。

所謂沙箱,就是一個虛擬的執行環境,將待分析的目標丟進去,觀察並記錄其行為,從而判定其威脅程度。

沙箱用到的技術主要有內核驅動開發、虛擬化技術、後端服務系統。

底層的分析引擎主要是C/C++開發,上層的安全分析主要是Python。

總結

以上就是安全行業常見的一些產品了。

程式語言上面呢,C/C++是主流,尤其是在終端側的產品上,無一例外是C/C++。

在後端的安全系統方面,涉及到流量分析等對性能要求很高的場景,也一般是C/C++,若涉及數據關聯分析,則Java比較多。

除此之外,有一些小型的後端服務也會採用Python進行開發。

基本上,C/C++、Java、Python,就是安全開發領域的三大主流技術棧了。

最後限於見識有限,可能列舉的不全面,歡迎大家補充。

關鍵字: