我是你的破壁人:网络入侵的攻与防
**编者按:**网络入侵和防护,一直是网络安全从业人员最关心的核心内容,入侵者是怎么攻入的?防护者又是如何发现入侵的?李澍非的这篇文章,通过真实的案例和丰富的图例,生动展示了一个最常见的入侵过程和一个最常见的入侵检测,并从系统架构和工作原理层面,介绍了入侵检测和防御系统的基本知识。
从一个故事开始
在一个月黑风高的周日夜晚,某高校一名信息安全专业的三年级学生小李坐在他略显杂乱的寝室里,电脑屏幕的光亮映在他疲惫的脸上。这个周末没有了繁重的课业和朋友的相约,小李感到前所未有的无聊和空虚。
他漫无目的地在网上浏览着,仿佛在寻找着什么能作为这个无聊周末的乐子。他在隔壁学校的官网上,找到了一个后勤管理平台的入口,于是他看到了这样一个页面:
图 1 某个系统的登录界面
他发现这是一个仅供内部人员使用的系统,界面上并没有注册新用户的入口。但通过web漏洞扫描器发现,似乎后台存在一个名为/user/register
的隐藏接口,看名称似乎是用于注册账户。恰好最近电脑上刚刚装好渗透测试工具BurpSuite,他怀着对未知世界的好奇,尝试用自己的手机号注册个新用户。
但经过几次尝试,小李都没有成功。不过,他没有放弃尝试,根据返回的内容,他不断调整POST包的请求内容。
“这次总该没有问题了吧!”,他一边这么想着,一边按下BurpSuite上的“Send”按钮。屏幕上的字符快速跃动,像是在等待着命运的宣判。
图 2 从隐藏端口进行用户注册
小李惊讶地发现,他竟然成功了!
他真的在这个内部系统中注册了一个账号。那个名为/user/register
的隐藏接口既没有被混淆处理,也没有限制访问策略。他既兴奋又紧张,决定登上去看看有没有什么新发现。
图 3 获取后台的token
他发现了一条token信息。 这条token就相当于后台系统的通行证,从此可在内部畅通无阻! 他开始心跳加速,有汗从脸颊落下。他继续尝试使用这个token构造POST请求:
图 4 利用 token构造POST请求获取后台数据库
很快就得到了回应,页面返回了包括账户名、密码在内的几千个账户的信息。
图 5 获取到后台账户信息
他找到了其中名为admin的账户,并解开了密文形式存储的密码。在准备展开进一步的探索时,他意识到自己的行为已经越过了法律的界限,侵犯了他人的隐私和安全。
“破壁人”小李迅速关闭了所有窗口,删除了所有相关文件和日志,仿佛这一切从未发生过。但他知道,内心的那份不安和愧疚是无法轻易抹去的。他开始反思自己的行为,意识到 技术应当用于建设而非破坏,任何对他人利益的侵犯都是不可原谅的。
注:以上案例改编自一次真实场景下的真实渗透测试
一场抵抗“破壁人”的战争
上面的故事只是一次针对毫无防备系统的简单的网络入侵。实际上,烈度更强、危害更深的攻击在地球的每个角落每时每刻都在发生。对不法分子来说,网络犯罪是一种极具吸引力且利润丰厚的行为,而不同意识形态、国家和民族间的冲突也推动着网络攻击愈演愈烈。
入侵是一种在未经授权的情况下,对信息系统资源进行访问、窃取和破坏等一系列致使信息系统不可靠或无法使用的企图。国际网络安全巨头CrowdStrike(也就是最近波及全球的windows蓝屏事件的罪魁祸首)在其发布的《2024年全球网络安全威胁报告》中指出,2023年相比2022年的交互式入侵活动的数量增长了60%。所谓“交互式入侵”,就是攻击者通过模仿预期的用户或管理员的行为,使防御者难以区分合法用户活动和网络攻击,而不是简单依赖部署恶意工具和脚本进行自动化攻击。
2023年,交互式网络犯罪入侵活动的平均突围时间从2022年的84分钟减少到2023年的62分钟,观察到的最快突围时间仅为2分7秒。对于一个有利可图的目标,黑客有多种成熟的攻击手段可以使用,比如通过SQL注入修改服务器数据库导致数据泄露或受损,或者是利用系统或软件的漏洞在内网传播木马控制主机,又或是在短时间内发动大规模DDOS攻击影响对外提供服务,也可以通过网站挂马或发送钓鱼邮件,以无安全意识的内部员工作为突破口。
当然,“破壁人”的对手也不都是待宰的羔羊。目前学术界和工业界早已提出了许多安全防护的解决方案,比如防火墙、数据加密等技术。如上文所述,防御入侵的重点在于识别“交互式入侵”,也就是区分真实黑客入侵攻击和合法用户的不当行为(如记错密码、访问被攻陷网站等)。在此之中,入侵检测(Intrusion Detection System,IDS)和入侵防御(Intrusion Prevention System,IPS)提供了一种有效的防御手段,能通过实时监视和分析受保护系统的状态和活动,采用误用检测(Misuse Detection)或异常检测(Anomaly Detection)的方式,通过提取行为的模式特征判断行为的性质,能够有效感知网络攻击,发现非授权或恶意的系统及网络行为。
入侵检测与防御都有什么?
按照数据的来源区分,通常可以分为以下几种类型:
- 基于主机的入侵检测与防御(Host-based Intrusion Detection and Prevention System, HIDPS)。HIDPS被安装在受监视的系统上, 监视主机系统的操作、状态和系统事件(如未经授权的访问或安装),通过分析浏览日志、系统调用、文件系统修改等系统活动信息检测入侵。因此,HIDPS能够在与外部交互前,通过扫描流量活动来检测内部威胁,并及时做出响应。HIDPS一般分为程序级和操作系统级两种部署模式,程序级IDPS使用源码、字节码、程序控制流等应用程序信息监视单个应用程序,操作系统级IDPS则通过监视系统日志、Windows注册表数据等内容,以区分操作系统级别的正常和异常行为。
- 基于网络的入侵检测与防御(Network-based Intrusion Detection and Prevention System, HIDPS)。NIDPS通过收集数据包信息,观察和分析实时网络流量,以检测网络中的入侵行为。相比于HIDPS需要在每个主机上安装软件进行部署,NIDPS只需布置一个系统即可监视整个网络区域。在NIDPS进行监控时,网络数据也分为基于流和基于包的数据,基于流的数据只包含与网络连接有关的元信息,而基于包的数据还包含有效负载。
按照检测技术区分,通常可以分为以下几种类型:
- 基于误用的入侵检测与防御(Misuse-based Intrusion Detection and Prevention System, MIDPS),也称为基于签名的入侵检测,该方法将网络流量与已知威胁的签名进行匹配。 签名代表了入侵行为的特征,如果该流量匹配了签名则判定为入侵行为的恶意流量。但是, MIDPS高度依赖已有的签名库,难以检测未知的入侵。
- 基于异常的入侵检测与防御(Anomaly-based Intrusion Detection and Prevention System, AIDPS),通过采集网络活动的随机样本,并与正常行为进行比较来判断入侵。 基于异常的检测技术比基于误用的检测技术识别范围更广,但也增加了误报的概率。异常检测和误用检测各有优劣,实际情况中往往是对网络数据使用误用检测,对系统日志使用异常检测。
入侵检测与防御是如何工作的?
一般来讲,入侵检测和防御至少应包括数据提取、入侵分析和响应防御三个部分,如图1所示。
图 6 入侵检测和防御的系统结构
首先,数据提取阶段负责提取与被保护系统相关的运行数据和记录,并对数据进行简单过滤。 如图所示,一般会先经由安全策略匹配,当安全策略没有直接阻断流量,且该安全策略引用了入侵检测和防御的配置文件时,就进入入侵检测的流程。然后设备将根据报文内容识别IP地址、端口、协议等信息(若直接输入原始数据流,则还需先经过TCP流重组及IP分片),并解析协议以提取报文特征。
其次,入侵分析阶段在提取到的数据中找出并标记入侵的痕迹,区分授权的正常访问行为和非授权的异常访问行为,分析出入侵行为并定位到入侵者的位置。 以基于误用的检测为例,设备会将解析后的报文特征与入侵防御特征库中的签名进行匹配,如果匹配到库中的签名,则进行下一步的响应处理。在基于误用的检测中,签名体现了入侵行为的特征。
最后,响应防御阶段在发现入侵行为后被触发,执行相应的响应措施(告警或阻断)。 一般情况下,在入侵防御的配置中还会包含白名单过滤,由管理员根据网络和业务情况手工配置响应条目,使设备只对筛选出的行为进行防御,避免在泛洪式攻击产生的海量日志中丢失关键的攻击情报。
在实际应用中,入侵检测与入侵防御往往会被部署为两个独立的系统。入侵检测系统主要检测系统内部,对网络行为、系统日志、进程和内存等指标进行监控。入侵防御系统通常部署在防火墙与外网之间,通过深度数据包检查、行为分析、威胁情报等手段分析外来的流量,并追踪攻击者的行为,对潜在的攻击行为(如SQL注入、XSS攻击、远程命令注入、恶意文件上传)采用关闭端口、封禁IP、隔离网络等手段进行阻断和拦截。
这样就结束了吗?
所谓魔高一尺,道高一丈,攻防双方在对抗中不断超越对手、超越自我。随着网络攻击的日益复杂和攻击技术的日益精进,攻击者为了逃避传统入侵检测和防御做出了大量的努力,为了抵御不断演进的网络威胁,目前学术界提出了许多结合人工智能的网络入侵检测和防御方法如深度学习、强化学习等,并有不少已付诸于实践。
人工智能技术可通过基于行为分析的威胁检测、威胁情报和数据分析、自动化威胁响应等手段提高网络威胁的应对能力,不仅能一定程度提高入侵检测的准确性,还可以加强网络安全整体能力。
首先,AI可以采用行为分析的方式进行威胁检测。传统方式依赖于特征匹配,攻击者能够通过修改攻击特征绕过检测。AI技术可通过分析网络活动和设备行为信息,检测出来自未知攻击的异常活动。其次,AI技术可应用于威胁情报和数据分析 ,通过快速分析包括日志文件、网络流量和漏洞信息在内的海量安全数据,识别潜在的威胁和攻击趋势。AI还能够整合不同来源的数据,帮助安全专家更好地了解攻击者的行为模式和目标,制定更加有效的防御策略。最后,AI技术可应用于自动化威胁响应。在检测到威胁时,AI可采用自动化方式隔离感染设备、阻断恶意流量、向安全团队告警,自动化响应方式能够迅速应对威胁,减轻工作负担。
回到开头
我们在开头提到了这样一个系统,它对网络入侵束手无策,甚至无法感知到入侵行为的发生。现在让我们将目光转移到一个合理配置的入侵检测与防御系统,在入侵发生时,会看到什么样的场景呢?
图7展示了另一次针对目标系统渗透测试并取得权限的过程。正如俗话所说,螳螂捕蝉黄雀在后,攻击者每一次取得进展,其实都在入侵检测系统的注视之下。
图 7 监控到的攻击成功的记录
而值得一提的是,不只是攻击成功才会被IDPS记录。就像下图中展示一样,仅仅是针对某一个IP,IDPS就已经记录下了攻击者的一千多次的扫描和尝试。在实际场景中,数量如此庞大的异常访问早就吸引到了安全监控人员的注意,在系统失陷前攻击者掌控的入口就已经被堵上了。因此,只有在安全管理人员的允许下,这场渗透测试才能如此顺利地进行。
图 8 针对单一IP攻击企图的监控记录
让我们沿着时间脉络回到攻击发生时,看看攻击者究竟做了什么。
通过多次扫描,攻击者发现了一个活跃着的端口。这个端口上运行着一个可能存在漏洞的Nacos服务,或许可以绕过认证直接访问后台 。这一漏洞发生在nacos进行认证授权操作时,当请求头中的user-agent字段为“Nacos-Server”时,则不进行认证直接放行。 攻击者根据该漏洞构造了请求包,获得第一个突破:在后台创建了一个新账户,并从/etc/passwd
文件看到新建账户信息验证了这一漏洞的存在,该文件中存储着系统后台账户的用户名和密文形式的口令,随后又删除了这一账户,掩盖了来过的痕迹。
图 9 利用Nacos未授权访问漏洞(CVE-2021-29441)创建用户成功
图 10 查看后台用户列表,确认新建用户信息
图 11 删除新创建的用户
通过上述一系列行为,攻击者证实了该系统确实存在这一漏洞。
此时攻击者已经可以正常登入系统后台查看配置了,这样的活动已与正常的用户行为无异,大可藏身于茫茫的网络流量中。但为了扩大战果,他们还是在后台执行了一些命令,如下图所示。
图 12 攻击者利用漏洞在后台执行命令
上图的命令执行利用了Nacos反序列化漏洞(CNVD-2023-45001),通过注入内存马(webshell的一种,是目前最主流的webshell攻击手段),实现命令执行的目的。下图展示了一个利用Nacos反序列化漏洞的过程。
图 13 Nacos反序列化漏洞的漏洞复现过程
事实上,这一系列工作可由自动化漏洞利用工具代劳,效率极高。如图14所示,攻击者正通过自动化漏洞利用工具执行查询网络配置命令ifconfig、查询当前账户名命令whoami, 图中行为均在图12中被IDS监控到 。
图 14 攻击者利用自动化攻击发起攻击(可在图12中监控到对应行为)
当然,对攻击者的围追堵截亦可由入侵防御系统代劳。以上行为都是被入侵检测系统判断为高危的行为,如果在整个过程中启用入侵防御,从攻击者一开始发起大规模扫描时,好不容易得来的受陷主机可能就已经被全面封禁了。
总结
入侵检测是网络安全防御的眼,入侵防御则是网络安全防御的手,二者都是网络安全领域中不可或缺的一部分。通过对入侵检测与防御的解析,我们不仅了解了其存在意义和工作原理,还认识到其在保护网络安全方面所发挥的关键作用。同时,通过案例剖析,我们也更加直观地感受到入侵检测与防御系统在实际应用中面对“破壁人”的价值和效果。展望未来,随着网络技术的不断发展和网络安全威胁的不断演变,入侵检测系统也将不断进化和完善,为构建更加安全、稳定的网络环境提供有力保障。
学习网络安全技术的方法无非三种:
第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。
第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
第三种就是去找培训。
接下来,我会教你零基础入门快速入门上手网络安全。
网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。
第一阶段:基础准备 4周~6周
这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇
第二阶段:web渗透
学习基础 时间:1周 ~ 2周:
① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
配置渗透环境 时间:3周 ~ 4周:
① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。
渗透实战操作 时间:约6周:
① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
以上就是入门阶段
第三阶段:进阶
已经入门并且找到工作之后又该怎么进阶?详情看下图
给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
