【微强化v2】温和的安全事件体验

您好,我是系统解决方案部的犬冢。
用户对安全事件并不陌生。他们使用的某项服务可能有一天会成为网络攻击的目标,导致服务不可用,或者某些功能被暂停,服务运行状态下降。
这次,我参加了一个名为“微加固”的活动,在这个活动中,你可以真正体验到这样的安全事件,我在一篇博客文章中总结了我的经历。
拒绝
・为避免剧透,本博客不包含使用微强化技术进行攻击的实际案例或详细的应对措施。
・包含大量犬冢牙的个人观点。
・共有六组练习,但我们将提供精简版。
什么是微硬化?
安全加固是其中一个子项目。由 1 至 4 人组成的团队负责维护一个小型云环境,保护其免受各种网络攻击,并不断提升应对攻击的能力。同一种攻击会在短时间内分多次进行。
原有的加固项目对技能要求很高,参与门槛也很高,因此,即使没有事件响应经验,任何人都可以轻松参与的微型加固活动,是推荐给非工程师和刚开始学习安全知识的人的加固活动。
版本之间的差异
Micro Hardening v2 的事故数量比 v1 更高。
公司还引入了新的服务级别协议 ( SLA 作为满足业务需求的标准
主要故事
介绍
为了到达比赛场地所在的淡路岛,我先后乘坐了地铁、JR线和巴士。
前一天因多次事件而感到恐惧我兴奋得睡不着觉,所以在转机后的巴士上打了个盹儿。
除此之外,淡路岛
是一个热门的旅游目的地,所以地理位置优越,而且从比赛场地 SAKIA 还可以欣赏到濑户内海的全景。
SAKIA,包括餐厅、酒店、联合办公空间,并营造了友好的氛围。
会前简报和团队划分
根据事先提供的材料,活动内容包括对赛事和参赛队伍的介绍。
(材料主要侧重于比赛环境,因此这里我就不赘述了。)
团队组成是在当天公布的,所以我们无法提前沟通,但犬冢所在的 1 队由三名程序员和犬冢组成。
与每个人交谈都很有趣,因为每个人都有不同的背景和参加活动的理由。
事件开始
第一组
"GET /_________________________________________________ HTTP/1.1" 404 486 "-" "curl/7.29.0" "GET /_____aaaaa______a_____a_____a__aaaaaaa___________ HTTP/1.1" 404 486 "-" "curl/7.29.0" "GET /____a_____a____a_a____aa___aa__a_________________ HTTP/1.1" 404 486 "-" "curl/7.29.0" "GET /____a_________a___a___a_a_a_a__a_________________ HTTP/1.1" 404 486 "-" "curl/7.29.0" "GET /____a__aaaa__a_____a__a__a__a__aaaaa_______________ HTTP/1.1" 404 486 "-" "curl/7.29.0" "GET /____a_____a__aaaaaaa__a_____a__a_________________ HTTP/1.1" 404 486 "-" "curl/7.29.0" "GET /____a_____a__a_____a__a_____a__a_________________ HTTP/1.1" 404 486 "-" "curl/7.29.0" "GET /_____aaaaa___a_____a__a_____a__aaaaaaa___________ HTTP/1.1" 404 486 "-" "curl/7.29.0" "GET /________________________________________________ HTTP/1.1" 404 486 "-" "curl/7.29.0" "GET /_________________________________________________ HTTP/1.1" 404 486 "-" "curl/7.29.0" "GET /_____aaaaa___aaaaaaa_____a_____aaaaaa___aaaaaaa__ HTTP/1.1" 404 486 "-" "curl/7.29.0" "GET /____a_____a_____a_______a_a____a_____a_____a_____ HTTP/1.1" 404 486 "-" "curl/7.29.0" "GET /____a___________a______a___a___a_____a_____a_____ HTTP/1.1" 404 486 "-" "curl/7.29.0" "GET /_____aaaaa______a_____a_____a__aaaaaa______a_____ HTTP/1.1" 404 486 "-" "curl/7.29.0" "GET /__________a_____a_____aaaaaaa__a___a_______a_____ HTTP/1.1" 404 486 "-" "curl/7.29.0" "GET /____a_____a_____a_____a_____a__a____a______a_____ HTTP/1.1" 404 486 "-" "curl/7.29.0" "GET /_____aaaaa______a_____a_____a__a_____a_____a____ HTTP/1.1" 404 486 "-" "curl/7.29.0" "GET /_________________________________________________ HTTP/1.1" 404 486 "-" "curl/7.29.0"
游戏开始时,访问日志中会显示[游戏开始]的ASCII字符,这意味着微加固机制已经启动。
目前,我们决定暂时不采取任何预防措施,只专注于观察、整理事件并创建时间线。
时间已经过去了几分钟。
没有发生任何特别重要的事件,他内心的紧张感也开始消退。
(犬冢当时并不知道,这只是暴风雨前的宁静。)
不久之后,团队收到报告称网站标题已被更改……
当他们重新加载电商网站时,网站标题中出现了“匿名黑客入侵”的字样。
这简直是赤裸裸的宣战!
首先,我查看了相关时间段的访问日志,发现一个指向可疑 URI 的请求。
此外,该请求返回了 HTTP 状态码 200。
查看文档根目录后,我发现了一个文件名很常见的陌生 PHP 文件。
看来有人利用了某种漏洞安装了后门。
与此同时,某电商网站上的产品价格遭到恶意篡改。
很可能是该电商网站数据库的管理员用户信息泄露,或者有人通过SQL注入恶意更新了数据记录。
如果是前者,现在可能已经来不及查明真相了。
与此同时,产品页面中嵌入了误导用户的登录表单,页面布局也被修改以迎合攻击者的喜好,导致页面看起来惨不忍睹……
最终,服务崩溃,第一批产品以糟糕的方式收场。
真是糟糕的体验。不过也挺有意思的。
第一轮测试结果对所有队伍来说都停滞不前。


防守得分会根据通过的评估项目数量而增减。
这次没有防守,所以队伍的防守得分是0。
然而,如果防守过于僵化,可能会影响合法爬虫的购买流程,而且防守似乎也未必能提高服务水平协议(SLA)。
〇
在第二轮和第三轮攻击中,我们未能确定具体的入侵路径或实施根本性的应对措施,因此我们的策略是分头行动,坚持不中断服务,并在准备期间进行了各种设置调整并应用了安全补丁。
如上所述,袭击和事件会按照一定的时间线在特定时间发生,因此一旦你采取了措施,将来你可能会感到相对安心。
然而,服务中断的情况仍然存在。
不过,我们暂时阻止了一些入侵和篡改行为。
〇 第 4 组和第 5 组
根据上述结果,在第 4 组和第 5 组中,我们决定审查需要改进的领域,并根据第 3 组暴露出的漏洞和事件制定进一步的改进和缓解措施。
尤其需要注意的是,如果服务在某个时刻停止运行,后果将不堪设想,因此必须避免这种情况发生。
由于事件到达 Web 服务器之前就返回了超时错误,我们认为可能是其他层出现了某种问题。
由于竞争环境涉及多种服务器,团队最好能够详细了解这些服务器的规格并进行有序整理……
最终,我们在此阶段实施的改进和缓解措施效果不佳,未能避免服务水平协议 (SLA) 的下降……
第六组比赛的最后一组开始前,
我们收到了一些提示,并决定根据这些提示再次进行检查。
结果,我们通过简单地重启某个服务就改善了情况。
即便在我撰写这篇博客时,我仍然深感遗憾,因为我们当时忙于应对其他事件,而忽略了对服务日志的全面检查,毕竟这是我们一直关注的服务。
不过,上述措施似乎取得了良好的效果,服务级别协议 (SLA) 也持续改进,没有出现任何停滞。
包括最后一局在内的比赛结果如下。


正如人们常说的,起步阶段只能发挥50%的水平,我们可以看到,每支队伍第一局和第六局之间的得分差距都超过了一倍。
这充分说明了反复练习的重要性。
事实上,我认为球队能够顺利应对第一局和第六局中出现的突发事件。
充分享受微硬化的秘诀
以下是一些建议(包括犬冢的感想),供计划参加未来活动的各位参考,以帮助您 100% 享受微硬化。
1. 需要具备一定的预备知识。
如果您不是工程师或初学者,建议您了解如何使用 LPIC-1 考试中将要测试的命令。
这些练习涵盖了基本规范,并提供了有关如何重启服务的附加信息,但并未深入解释命令。
2. 团队建设至关重要。
让我们一起探讨一下这组动作的目的,谁扮演什么角色,以及我们将如何进行下一组动作。
在这种情况下,我们第一阶段只制定了时间表,而没有花时间在团队内部理解和整理规范。这在后期造成了很大的影响,我们后来才意识到这是原因所在。即使每个人都理解规范,团队一起审阅并统一理解仍然非常重要。
3. 留下工作记录。
你可以使用 Slack 或 Google 表格来记录,务必留下痕迹。这
对于日后整理工作分工也至关重要。
4. 考虑使用外部服务和工具。
为了发现问题并维持服务质量,充分利用外部服务和工具更为现实。
别以为你能像犬冢牙那样单枪匹马做到。
排名靠前的队伍都很擅长利用这个区域。
5. 注意满足业务需求 仅仅
运行一项服务并不会提高你的评分。
思考如何提高评分,以及满足业务需求意味着什么。
概括
虽然立即营造竞赛级别的环境可能比较困难,但我至少希望在公司内部举办一次安全事件经验分享会。
感谢您阅读至此!
5