很多小夥伴都在微信上問我:搞安全開發,到底開發個啥,都是用什麼程式語言?
今天就來詳細說說這個話題,我打算從安全公司研發的產品這個角度來切入,看看都有哪些產品,以及都用到哪些語言。
安全公司的產品研發,主要是下面這些東西,下面分別來說一下。
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++ 和 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,就是安全開發領域的三大主流技術棧了。
最後限於見識有限,可能列舉的不全面,歡迎大家補充。
喜歡的朋友可以點贊關注一波,我在這裡準備了一份安全開發的資料
需要的朋友可以點選下方傳送門自取