百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

上医治未病:云上入侵检测安全启示录

bigegpt 2024-09-18 08:06 5 浏览

两千多年前,《黄帝内经》提到“上医治未病,中医治欲病,下医治已病”。云安全也是同理,未雨绸缪、防患于未然,这虽是老生常谈,但真正能具备这一能力的企业却不多,各种各样的安全事件仍在频频上演。


—— 01 ——云安全拒绝“事后诸葛亮”
2017年5月,WannaCry勒索病毒在全球爆发,百余个国家遭受大规模攻击,是史上波及范围最广的病毒之一。这次安全事件为各行各业敲响了警钟,但却并没有“长鸣”。

图:近两年部分重大网络安全事件一览

可以看到,黑客入侵攻击是无处不在的。而没有防护的云计算环境相当于裸奔,只要任意一点遭受攻击,便有可能波及云上所有业务。在黑客威胁日益严重的情况下,云主机又该如何应对呢??


UHIDS是UCloud为保护用户云主机安全而设计的一套基于主机的安全检测体系。该体系能够实时监控云主机的安全性,及时发现安全隐患,帮助用户了解云主机的安全状况并有针对性地进行加固。UHIDS能在事前做好风险检测并加以告警,也就是我们所说的“上医治未病”。


那么,UHIDS又是如何“治疗”云安全“未病”的呢?


—— 02 ——从入侵时间链看“未病”
入侵受害者有两类人,一种是知道自己已经被入侵了,可此时亡羊补牢,为时晚矣;另一种是不知道自己被入侵了,等到大厦将倾时才发现。


其实,还可以存在第三类人:在系统受到危害前便已接收到警告,因而可以做到防患于未然。
如何才能做到在系统受到危害前便可有效检测出入侵方式呢?未知攻,焉知防,如下图,基于Cyber-Kill-Chain网络攻击杀伤链模型,我们首先还原出了一个简化的入侵攻击流程。

图:一个简化的入侵攻击流程

每个阶段的攻击详情如下:
侦察阶段:以扫描、信息收集为主,通常包含IP收集、域名收集、端口扫描等步骤,黑客进行这些步骤的目的是尽可能探测出攻击目标的资产信息,例如使用什么软件,什么版本等。 攻击阶段:收集到足够的信息后,黑客会尝试使用一些手段来探测目标是否存在可利用的漏洞,这些尝试有的是手工精确实施,有的是使用大量攻击手段来进行遍历尝试。 分发阶段:主要以留后门、下载木马等为主,黑客会利用获取到的系统权限,在服务器上安装后门、Botnet、挖矿程序等。 安装维持阶段:主要以替换服务器关键配置为主,例如隐藏木马进程,对木马进程进行保护等。


UHIDS的整体设计思路就是在每一个攻击步骤的关键点设置检测手段,这样设计的好处是避免单点失效,且尽可能的提前知晓黑客入侵手段从而采取相应的防御措施。此外,在越早的攻击环节阻止入侵,修复漏洞的成本和时间损耗也会越低。


—— 03 ——UHIDS全流程入侵检测设计
根据入侵攻击链不同阶段的特点,UHIDS云上入侵检测有三种思路,可提供对各类攻击的有效防御。


| 登录安全风险检测
登录安全是所有服务器最基础的安全内容,代表了服务器的入口。登录安全通常存在的安全风险包括:密码泄露、弱密码、暴力破解、不安全的配置、漏洞利用等。作为云上用户,我们遇到最常见造成入侵的风险往往是弱口令,弱口令带来的风险也是不容小觑的。


2015年春运前夕爆发了12306数据泄露事件,乌云网发布漏洞报告称,大量12306用户数据在网络上疯狂传播。本次泄露事件被泄露的数据达131653 条,弱密码在其中就占据了举足轻重的地位。


通常,针对弱口令的攻击方式包括异地登录和暴力破解。传统的检测方式一般按照非黑即白的策略去检测,即让用户添加一个白名单列表,只要不在白名单列表中的地点/IP均告警,然而该方法的缺点在于需要用户在维护白名单列表上投入大量人力,往往造成用户使用上的麻烦。

图:黑白名单策略示意
? 基于机器学习的检测机制

UHIDS提出了一种基于机器学习的检测机制。基于机器学习模型强大的自学习及泛化能力,通过学习大量的数据,挖掘出潜在的登录风险为业务决策提供支撑。


机器学习都需要一个训练阶段,从数据收集到模型建立通常会面临诸多难题,下面是我们遇到的典型问题与解决思路。

  • 样本类别不平衡


在入侵检测的场景中,由于黑名单数据(黑样本)的数量远少于白名单数据(白样本),因此会出现样本类别不平衡的问题,进而导致机器算法模型失效。


为解决该问题,我们通过SMOTE算法在相似样本中进行 feature 的随机选择并拼接出新的样本。SMOTE算法的思想是合成新的少数类样本,合成的策略是对每个少数类样本a,从它的最近邻中随机选一个样本b,然后在a、b之间的连线上随机选一点作为新合成的少数类样本,如下图所示。

图:SMOTE算法原理示意

  • 模型过拟合问题


在模型建立后,后续的数据清洗和预处理、数据分析到合并稀疏特征、One-hot编码处理离散型特征、随机森林选择特征、标准化、归一化、正则化也都会对模型的最终效果也会产生较大影响。因此还需研究如何根据登录IP、登录时间、登录地点、登录方式等字段构建出不影响模型拟合问题的特征工程。


针对该问题,我们采用交叉验证的方法评估模型的预测性能,并通过网格搜索进行模型参数选择,在后期还会通过bagging、stacking等模型集成手段进一步提升效果。


最终,通过机器学习和业务经验的结合,UHIDS的检测模型大大提高了异地登录的检测准确率,降低了误报率,提升了用户体验。

图:UHIDS异地登录检测功能示意


| 应用安全风险检测
应用安全风险通常由三部分构成:
? 漏洞风险:程序是人为写的,只要是人为参与的就一定会有Bug,这类漏洞被黑客分析出来后,加以利用就构成了入侵服务器的杀手锏。? 不安全的配置:这类问题通常是某种特性使用不当造成的,比如最常见的Redis空密码的问题。Redis本身提供了一个配置,使得用户可以不使用密码就能登录Redis,很多用户有意或无意间设置了这个选项,被黑客利用造成Redis被入侵,并以Redis为跳板又可以进一步入侵至整个服务器。? 设计问题:这类问题基本为开发人员的不规范操作导致的。例如开发人员一次性返回API所有字段,放松了对前端人员的管控,造成敏感字段数据泄露。再比如在公网开远程debug接口,导致被黑客攻击。这个问题的解决需要企业的代码规范与前端开发管理,提高人员安全意识。


针对应用安全漏洞风险,UHIDS的应对方案如下:
UHIDS采集服务器上应用的特征信息,送往后端数据集群和漏洞库进行比对,并将比对结果进行入库,在UHIDS控制台上用户也可看到漏洞检测结果。如果发现系统存在漏洞风险,便会向用户发出告警,以此便可规避黑客的无差别漏洞扫描。

图:UHIDS漏洞库匹配功能示意


UHIDS继续通过分析进程确定配置文件路径,再对配置文件内容按照标准语法树进行解析。解析后,使用预先定义好的通用数据模型将其一一填充送往服务端进行再次分析检测,一旦发现不安全的配置,便会向用户发出告警及修复建议。


| 木马安全风险检测
云计算场景中最常见的木马类型是僵尸网络 Botnet和挖矿木马。近年来,随着区块链技术和数字货币的火爆,无数黑客及黑产组织盯上了云端充足的计算资源,据统计,今年挖矿木马已经超越Botnet成为造成用户损失最多的病毒。挖矿木马通常会占用用户全部服务器带宽和CPU资源,导致正常业务中断。


这类木马通常是利用成熟已公开的漏洞或者简单的安全问题进行全球范围内的无差别扫描,一般不会涉及到特别复杂的技术原理。预防此类木马,需要用户加强对应用安全中未修复的安全漏洞和不安全的配置的关注。


目前,UHIDS针对木马查杀主要使用以下三种手段:
分析关键系统配置:在这里UHIDS更多关注的是深层次的系统基础配置,比如内核模块加载等问题,通过分析上述问题来确认用户是否被感染木马。 清除残余顽固木马:由于Linux的特性,即使木马进程的可执行文件被删除了,其进程如果仍在运行,那么Linux中仍残存有顽固木马文件。对此,UHIDS会还原出该文件进行分析,分析后送往大数据集群进行检测。一旦检测到某个进程和特征库中的木马相匹配,便会向用户发出告警。 Webshell漏洞检测:Webshell作为Web入侵后留下的后门,在入侵过程中非常常见。UHIDS首先对Webserver的进程进行分析,确定好Web目录后,进而解析Web目录中的文件。然后进行特征匹配,将匹配到的内容上传到大数据集群,进行打分模型判断,当分数权重超过一定值后就会告警。

图:UHIDS控制台木马检测功能示意


—— 04 ——预见云上安全风险
最后,从安全防御的角度来讲,安全防御是一个与黑客竞争的过程,只有抢占先机,在攻击者利用漏洞攻击前修复漏洞,才可以有效防止此类攻击。而抢占先机的前提就是关注云厂商发布的漏洞和事件预警,在第一时间做好防范工作。


以一个ThinkPHP漏洞为例。ThinkPHP是一款国内流行的开源PHP框架,2018年12月9日ThinkPHP官方发布一则安全更新,内容为修复了一个严重的远程代码执行漏洞,该漏洞可导致(php/系统)代码执行,由于框架对控制器名没有进行足够的检测,最终会导致出现在没有开启强制路由的情况下可能的Getshell漏洞。


在官方预警发布后,UHIDS也在第一时间更新漏洞特征库并开启入侵检测模式。此后,在该漏洞大规模爆发时,UHIDS及时向用户发布了漏洞告警,免于遭受入侵攻击。

图:UHIDS检测到ThinkPHP漏洞

结语
需要明确的是,UHIDS入侵检测只是UCloud云安全防护体系中的一环。在实际业务中,还需针对具体需求明确具体防护手段,例如DDoS防护、Web安全防护等。此外,在与黑客暗中较量的赛场上,最重要的还是安全意识的建立,产品可以提供外力的辅助,但内在安全的构建仍需企业巩固提高自身安全意识。

相关推荐

方差分析简介(方差分析通俗理解)

介绍方差分析(ANOVA,AnalysisofVariance)是一种广泛使用的统计方法,用于比较两个或多个组之间的均值。单因素方差分析是方差分析的一种变体,旨在检测三个或更多分类组的均值是否存在...

正如404页面所预示,猴子正成为断网元凶--吧嗒吧嗒真好吃

吧嗒吧嗒,绘图:MakiNaro你可以通过加热、冰冻、水淹、模塑、甚至压溃压力来使网络光缆硬化。但用猴子显然是不行的。光缆那新挤压成型的塑料外皮太尼玛诱人了,无法阻挡一场试吃盛宴的举行。印度政府正...

Python数据可视化:箱线图多种库画法

概念箱线图通过数据的四分位数来展示数据的分布情况。例如:数据的中心位置,数据间的离散程度,是否有异常值等。把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)...

多组独立(完全随机设计)样本秩和检验的SPSS操作教程及结果解读

作者/风仕在上一期,我们已经讲完了两组独立样本秩和检验的SPSS操作教程及结果解读,这期开始讲多组独立样本秩和检验,我们主要从多组独立样本秩和检验介绍、两组独立样本秩和检验使用条件及案例的SPSS操作...

方差分析 in R语言 and Excel(方差分析r语言例题)

今天来写一篇实际中比较实用的分析方法,方差分析。通过方差分析,我们可以确定组别之间的差异是否超出了由于随机因素引起的差异范围。方差分析分为单因素方差分析和多因素方差分析,这一篇先介绍一下单因素方差分析...

可视化:前端数据可视化插件大盘点 图表/图谱/地图/关系图

前端数据可视化插件大盘点图表/图谱/地图/关系图全有在大数据时代,很多时候我们需要在网页中显示数据统计报表,从而能很直观地了解数据的走向,开发人员很多时候需要使用图表来表现一些数据。随着Web技术的...

matplotlib 必知的 15 个图(matplotlib各种图)

施工专题,我已完成20篇,施工系列几乎覆盖Python完整技术栈,目标只总结实践中最实用的东西,直击问题本质,快速帮助读者们入门和进阶:1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编...

R ggplot2常用图表绘制指南(ggplot2绘制折线图)

ggplot2是R语言中强大的数据可视化包,基于“图形语法”(GrammarofGraphics),通过分层方式构建图表。以下是常用图表命令的详细指南,涵盖基本语法、常见图表类型及示例,适合...

Python数据可视化:从Pandas基础到Seaborn高级应用

数据可视化是数据分析中不可或缺的一环,它能帮助我们直观理解数据模式和趋势。本文将全面介绍Python中最常用的三种可视化方法。Pandas内置绘图功能Pandas基于Matplotlib提供了简洁的绘...

Python 数据可视化常用命令备忘录

本文提供了一个全面的Python数据可视化备忘单,适用于探索性数据分析(EDA)。该备忘单涵盖了单变量分析、双变量分析、多变量分析、时间序列分析、文本数据分析、可视化定制以及保存与显示等内容。所...

统计图的种类(统计图的种类及特点图片)

统计图是利用几何图形或具体事物的形象和地图等形式来表现社会经济现象数量特征和数量关系的图形。以下是几种常见的统计图类型及其适用场景:1.条形图(BarChart)条形图是用矩形条的高度或长度来表示...

实测,大模型谁更懂数据可视化?(数据可视化和可视化分析的主要模型)

大家好,我是Ai学习的老章看论文时,经常看到漂亮的图表,很多不知道是用什么工具绘制的,或者很想复刻类似图表。实测,大模型LaTeX公式识别,出乎预料前文,我用Kimi、Qwen-3-235B...

通过AI提示词让Deepseek快速生成各种类型的图表制作

在数据分析和可视化领域,图表是传达信息的重要工具。然而,传统图表制作往往需要专业的软件和一定的技术知识。本文将介绍如何通过AI提示词,利用Deepseek快速生成各种类型的图表,包括柱状图、折线图、饼...

数据可视化:解析箱线图(box plot)

箱线图/盒须图(boxplot)是数据分布的图形表示,由五个摘要组成:最小值、第一四分位数(25th百分位数)、中位数、第三四分位数(75th百分位数)和最大值。箱子代表四分位距(IQR)。IQR是...

[seaborn] seaborn学习笔记1-箱形图Boxplot

1箱形图Boxplot(代码下载)Boxplot可能是最常见的图形类型之一。它能够很好表示数据中的分布规律。箱型图方框的末尾显示了上下四分位数。极线显示最高和最低值,不包括异常值。seaborn中...