今天我顶着白花花的太阳赶到一个客户现场做合规,这个客户是一家大厂旗下的子公司。进去一看,楼道里有一个大屏商业作战(宣传)地图,大屏上以光点显示用户地理位置和设备安装量(是一些专供商家使用的设备,比如摄像头、收银等)。
我想,大厂风格就是不一样哈,天天在楼道里给打工人看地图,激发大家的战斗精神,这种文化顿时让我心生敬畏。
带着深深的敬意我走进了会议室,一边问一边看一边做证明截图,不知不觉就到了中午12点吃饭时间。客户工程师脸露深深的倦意,暗示上午的工作就先到这里,下午1点半再开始。我不知趣的斗志昂扬的说:“行,中午我注册一y个账号登录Web看一下,能自己看的就先过掉"。工程师看我的眼神有点不对劲,估计他心想:哪儿来的一家伙,我可是要休息的。其实我对他的心理也比较了解,毕竟大厂的风格是喜欢优化员工,带着前途未卜的想法,他可不想干只付出没结果的事儿,按点吃饭,按点下班,给多少钱干多少事儿。不过我也并不是想当劳模,只是经常出差没有条件午睡,渐渐给自己炼成了一个能干一整天活儿的家伙。另外是自己在内卷的工作环境中被逐渐异化成了一个无趣的人,除了工作,一时还真找不到太多其他的成就感。(不多说了,说多了都是泪)
中午,我绕过曲曲折折的门禁和玻璃门,到园区找了一家价格能接受的面馆吃了一餐,好家伙,普通一碗红汤面也花了快30大洋。出差除了工作时间比较自由,没同事频繁找我之外,吃饭容易遇到刺客。我时常想念我们那个破旧园区食堂的平价地沟油饭菜,两菜一汤一饭也就18元。
吃完饭,我又绕过曲曲折折的门禁和玻璃门回到了那个小会议室,打开电脑开始我按部就班的合规审核工作。
用自己的手机号注册了账号,登录了web后台,找来找去没找到可视化的日志。就是没日志功能。这让我犯了难了,为啥呢?我找一个通保的要求来看看。
1、日志记录范围应覆盖到每个用户的关键操作、重要行为、业务资源使用情况等重要事件。如普通用户异常登录、发布恶意代码、异常修改帐号信息等行为,以及管理员在业务功能及帐号控制方面的关键操作;
这种情况下,要求Web应用的日志能有操作用户、操作时间、操作行为、操作结果等记录。我举个例子:
操作用户 | 操作时间 | 操作行为 | IP地址 | 操作结果 |
sami | 2024.1.2 | 登录 | XX.XX.XX.XX | success |
jie | 2024.1.7 | 修改密码 | XX.XX.XX.XX | success |
skyline | 2024.1.14 | 留言:<script>alert('弹一个呗')</script> | XX.XX.XX.XX | success |
cherry | 2024.1.23 | 搜索:1' and '1=1' | XX.XX.XX.XX | failed |
shasha | 2024.2.1 | 会员续费 | XX.XX.XX.XX | failed |
admin | 2024.3.1 | 添加用户catfish为收银员角色 | XX.XX.XX.XX | success |
在这个简单的例子中,我们看到其实有两个层面的日志收集要求,一是普通用户的一些关键操作,比如登录啊、登出啊、修改密码啊、订购续费啊、搜索啊、留言啊等。没有记录非关键操作,比如浏览了哪些页面,停留了多长时间,点击了哪些Button等。为啥要记录这些关键操作呢?看表格中的信息,如果有黑客或者内外部恶意人员攻击,那么通过这些行为是可以做追溯的。二是管理员在业务功能及帐号控制方面的关键操作,比如这里我们看到管理员有做授权行为。
2、应禁止在日志中记录用户密码,验证授权标识等敏感信息
这块很容易理解,日志中如果记录了这些敏感信息,能看到后台日志的特权账号人员可能会泄密,或做出其他恶意行为。这样就扩大了风险,而安全是要收拢攻击暴露面,收拢风险的。
3、应防止日志欺骗(Log Spoofing),如果在生成日志时需要引入来自非受信源的数据,则需要进行严格校验,防止日志欺骗攻击
日志欺骗是一种常见的攻击手法,攻击者可以在里面注入恶意代码。感兴趣的可以多查阅相关文章并阅读一下。那么,我们就需要在生成日志时不能有非受信源的数据,如果必须要有,就需要在代码层面进行严格校验。
4、应禁止将日志保存在web目录下,确保日志数据的安全存储并严格限制日志数据的访问权限,可对日志记录进行签名实现防篡改
日志保存在web目录下有一个隐患,因为web目录下的所有文件,按道理都是能被用户浏览到的。那么鉴于日志的重要性,我们要严格限制权限,减少日志被暴露给恶意人员的机会。最后,为了防篡改,我们可以对日志文件内容进行hash散列,生成摘要,对生成的摘要,使用私钥进行加密,形成签名,将得到的签名,附到文件内容后部。
原文始发于微信公众号(透明魔方):安全开发之Web应用可视化日志操作审计
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论