基于NIDS构建纵深防御体系思考

基于NIDS构建纵深防御体系思考一、NIDS重要性1、bypassWAF/FW的可能性(大包/绕过/0day/SSRF)2、内向外的恶意行为(反弹shell/内鬼/边界存在漏洞的情况/C&C通讯)3、多数买来的WAF/FW自主性,灵活性差二、点融NIDS架构1、镜像负载均衡/核心交换流量2、Packetbea

大家好,欢迎来到IT知识分享网。基于NIDS构建纵深防御体系思考

 一、NIDS重要性

  1、bypass WAF/FW的可能性(大包/绕过/0day/SSRF)

  2、内向外的恶意行为(反弹shell/内鬼/边界存在漏洞的情况/C&C通讯)

  3、多数买来的WAF/FW自主性,灵活性差

二、点融NIDS架构

  1、镜像负载均衡/核心交换流量

  2、Packetbeat/Bro对流量进行DPI

  3、用ES/Kibana进行存储展示(原始数据, 告警数据), 图数据使用ArangoDB

  4、主要有规则引擎/异常检测模块/资产模块组成

三、引擎规则

  1、自主研发好处: 更加灵活

  2、支持常规检测(正则/多模块匹配等), 支持频率检测(频率检测/自定义类型频率检测),

  支持外部函数(写外部函数/规则引擎调用, 满足场景如: 威胁情报), 支持自定义告警方式/自定义联动方式等.

四、基本场景

  1、某部门需要删除某临时表想得到实时反馈.

  2、添加临时规则, 检测SQL语句, 符合条件向相关人员发送邮件

  3、某组件出现0day, 无法及时升级版本修复有问题的组件

  4、根据PoC编写临时规则, 并联动WAF/FW进行封禁IP处理

五、自动化场景

  前提: 规则引擎可以帮助我们快速的发现一些已知的安全问题, 但是这并不够, 甲方安全人员相对较少, 不可能全部精力放在编写规则上, 如何自动化

  发现安全问题?

  场景一: 数据库操作

  (1) 假设某公司有一个数据库, 且仅有一个业务: 登陆

  (2) 那么对于数据库的操作应该仅有: select uid from user where uid = ? and pwd = ?

  场景二: 

  (1) 公司业务如上, 仅有登陆操作

  (2) 那么相关的HTTP请求(提交参数)应该也仅有一个: 

  www.test.com/login.php   {“uid”: “123@qq.com”, “pwd”:”123″}

  举例:

  1、SQL注入: 

  HTTP : uid从邮箱变成了包含其他多种符号的字符串

  SQL: AST由select uid from user where uid = ? and pwd = ? 变成了 

    select uid from user where uid = ? or ?=? and pwd = ?

  2、脱裤

  出现了不常见的AST: select * from user 

六 异常检测模块

  1、 根据上面思路: 根据当前业务自动进行白名单的生成, 以HTTP协议为例, 以接口为单位, 生成接口—参数key —参数的白名单

  2、白名单生成的算法目前使用多种无监督类算法和异常点检测算法实现

  3、针对业务更新迭代专门做了优化和调整

七 异常检测模块流程

  1、 Request请求包含参数, 且Response Code不为4XX/5XX

  2、进行Path分析( Request Path中经常包含参数, 如:/get/12345/name)

  3、对Request Params进行解析和Feature计算

  4、保存Feature, 进行机器学习计算, 得到相关模型

  5、定期更新模型

八 异常检测的缺点

  1、异常不等于攻击( 某用户喜欢脸滚键盘, 但不会一直滚) 

  2、面对富文本型接口误报/漏报高且难以调整

  3、性能问题 ( 但是通过白名单的数据不需要过规则引擎)

  4、可解释性差

  5、 需要一定的数据量进行白名单模型的生成

九 异常检测的优点

  1、可以和黑名单形成互补

  2、不仅可以发现攻击行为, 也可以帮助甲方梳理自己的业务

  3、面对大多数攻击(除逻辑漏洞), 漏报极低

十 异常检测扩展

  1、可以适用于多种协议

  2、使用异常检测算法对ICMP隐秘通道检测的情况是零漏报

  3、其他类似场景( 可通过数据建立白名单的场景)

十一 NIDS资产模块

  1、 实时梳理资产信息: 端口, 服务, 版本

  2、实时记录资产间关系: 协议, 频次, 对于部分协议进行全量记录

  3、 按小时分片, 帮助安全事件调查, 溯源, 分析

————-

  根据资产间通信和规则引擎, 可以编写基于行为的规则, 如:

  1、X秒连接X个端口被RST视作端口扫描行为.

  2、 WebServer通过高权限登陆数据库或SSH登陆其他任何主机视为异常

  3、主动连接外网服务器会进行威胁情报检测等

十二 NIDS联动能力

  即使得到告警, 我们信息也有限, 需要获得更多的信息:

  1、 联动CMDB, 得到IP基本信息和业务信息, 如PM/DBA/DevOps等

  2、联动FW, 获得连接规则

  3、联动Nginx配置文件, 获得配置信息

  4、联动FW白名单, 避免误报

  5、联动云管理端, 获得云资产列表信息等

 

十三 NIDS不足

  1、 Packetbeat/Bro不支持的协议, 加密协议, 场景:

  * 各种反弹shell

  * 各种后门

  2、 信息过少, 安全人员无法准确分析, 场景:

  *威胁情报半夜3点告警一台服务器连接恶意服务器

  *此时抓包已经来不及, 我们也不知道具体是什么进程/文件的行为

  

    

  

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/33137.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信