搞安全开发都是用什么编程语言?

李志宽
• 阅读 1192

很多小伙伴都在微信上问我:搞安全开发,到底开发个啥,都是用什么编程语言?

今天就来详细说说这个话题,我打算从安全公司研发的产品这个角度来切入,看看都有哪些产品,以及都用到哪些语言。

安全公司的产品研发,主要是下面这些东西,下面分别来说一下。

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,就是安全开发领域的三大主流技术栈了。

最后限于见识有限,可能列举的不全面,欢迎大家补充。

喜欢的朋友可以点赞关注一波,我在这里准备了一份安全开发的资料

需要的朋友可以点击下方传送门自取

【安全开发资料】

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Java修道之路,问鼎巅峰,我辈代码修仙法力齐天
<center<fontcolor00FF7Fsize5face"黑体"代码尽头谁为峰,一见秃头道成空。</font<center<fontcolor00FF00size5face"黑体"编程修真路破折,一步一劫渡飞升。</font众所周知,编程修真有八大境界:1.Javase练气筑基2.数据库结丹3.web前端元婴4.Jav
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
李志宽
李志宽
Lv1
男 · 长沙幻音科技有限公司 · 网络安全工程师
李志宽、前百创作者、渗透测试专家、闷骚男一位、有自己的摇滚乐队
文章
89
粉丝
25
获赞
43