从携程事件给我们警示

原创
2015/05/28 17:21
阅读数 4.7K

从携程事件给我们警示

你准备好了吗? 如果携程事件发生在你身上,这个问题怎么处理?有无应对方案?怎样快速找出攻击的方式,方法? 有句话说的好,常在河边走,哪有不湿鞋。

程序是一波人一波人开发的

国内软件行业人员流动还是很频繁的,程序是一波人一波人开发的,有如击鼓传球,谁最后接手烂在谁手里谁倒霉。 我们发现国内的软件业在重复做着同样的工作,一次一次推倒重来,自己开发的,心里才有底,对于上一波人开发的系统,谁也不能保证安全性。

我看到很多QQ群在转发携程事件,还有携程内部聊天纪录以及电子邮件,都在幸灾乐祸,我想问如果发生在你身上呢?

运维不能靠天吃饭

你不能期望运维不出事情,不出事,必有因果关系,种下因得到果。 很多企业的运维,不出事就不会出事,出事一定会出大事。 要你拿出预案,将事故消灭在萌芽状态。你的准备工作做得多少决定了你故障的大小以及范围。 出这样的事故一定是平时积累,爆发只是个时间问题。

应对方案

从年从业我也被攻击过,遇到各种各样的攻击,常常是被挖到新公司,首先面临的挑战就是安全问题。 我也总结一些经验,这里篇幅有限,不可能依依详解,仅仅给你提供一个思路一个启发。详细请看我的网站相关文章http://netkiller.github.io/。

携程代码被删除解决方案

WEB 服务器运行用户不能与代码所有者用户相同,因为一旦WEB服务器被攻陷将具有删除权限。 所以代码部署使用AAA用户,WEB服务器运行使用BBB用户。一旦WEB服务器被攻陷,用户拥有BBB权限,而无法删除AAA权限的文件。 这样的设置,除了防止删除文件,还能避免代码注入。攻击着更多是注入代码,下载数据库,而非破坏性攻击。 这样设置给攻击值制造了一定门槛,继续攻击,攻击者需要提升权限才能得到修改与删除权限。

携程数据被删除解决方案

  1. 在APP应用与数据库间增加了API服务器,应用程序通过API访问数据库,API主要采用ORM关系对象映射技术为用户提供接口。而不是让APP通过SQL直接操作数据库。APP需要提供用户认证,ACL控制(精确到方法),简单的说AAA用户只能从指定IP地址,访问指定类与方法,甚至可能精确到方法参数限制。

  2. 去掉Delete权限,只能通过更新状态删除,这样的缺点是会产生大量的脏数据。及时清理也问题不大。

  3. 控制恶意修改,通过触发器控制某些字段被恶意专改。参考 数据库记录安全解决方案》http://netkiller.github.io/journal/mysql.security.html

自动化运维

  1. 自动化安装,快速将标准的服务器,部署为指定功能的服务器,参考 https://github.com/oscm/shell

  2. 自动化发布,这个非常重要,目前国内很多代码发布仍然采用人工方式(处在时期时代)。自动化发布能瞬间部署,这点对快速抢修非常重要。参考 https://github.com/oscm/devops

Active-Active 灾备

异地灾备是非常奢侈的,不是每个企业都能承担的起,但是双活灾备系统是必须的。

怎样快速找出攻击的方式

以PHP为例,如果代码被删除。我会第一时间在php.ini中禁用删除函数,然后 grep -r unlink /www/example.com/xxx.example.com 找出具备删除功能程序。然后在web日志中找到该程序调用的url被什么时间什么IP地址调用过,最后禁用该IP地址。 如果Java被二进制植入就比较麻烦,无法直接找出,首要做的是修改代码所有者,不能与Tomcat启动用户相同。 另外我的自动发布程序能够每次发布时,看到那些文件被修改,那些文件是新增,发布程序与版本库为基准,删除新增的文件。通过观看那些文件被删除,瞬间找到恶意脚本。

延伸阅读 《PHP 安全与性能》http://netkiller.github.io/journal/security.php.html

文件与代码监控

代码被植入,删除修改,怎样能第一时间知道。而不是亡羊补牢。延伸阅读 《植入式攻击入侵检测解决方案》http://netkiller.github.io/journal/security.implants.html

就谈到此吧!

作者:netkiller(Neo) 时间:2015-05-28


展开阅读全文
打赏
14
170 收藏
分享
加载中
有些参考价值,但怎么读起来总觉得有些吃力呢?
2015/07/31 15:28
回复
举报
hehe
2015/06/12 19:56
回复
举报
公司要求一分钱投资,10分钱效益,搞啥灾备,没收益
2015/06/02 09:40
回复
举报
netkiller-博主

引用来自“neo-chen”的评论

从另一个角度携程事件
=====

携程事件后必有人得到加奖,升迁。这是一次不可多得的机遇。

运维这项工作就好比皇宫中的侍卫,御前带刀侍卫。这是一项风险搞,且不容易出成绩的工作。平时工作做得再好,不如救驾有功:)
平时工作做得太好刺客就不会有机会下手,如果没有刺客刺杀皇上,作为一个普通侍卫是很难,脱颖而出的:)
那么在能够把控全局的情况下创造立功机会,让皇上仅仅受到惊吓,或者皮外伤,此时出手必成。^_^

拿捏分寸非常重要,适当刷存在感 :P

引用来自“thrmgr”的评论

深得运维厚黑之真传..但这么直白说出来,还得历练..
2015/06/02 09:05
回复
举报

引用来自“neo-chen”的评论

从另一个角度携程事件
=====

携程事件后必有人得到加奖,升迁。这是一次不可多得的机遇。

运维这项工作就好比皇宫中的侍卫,御前带刀侍卫。这是一项风险搞,且不容易出成绩的工作。平时工作做得再好,不如救驾有功:)
平时工作做得太好刺客就不会有机会下手,如果没有刺客刺杀皇上,作为一个普通侍卫是很难,脱颖而出的:)
那么在能够把控全局的情况下创造立功机会,让皇上仅仅受到惊吓,或者皮外伤,此时出手必成。^_^

拿捏分寸非常重要,适当刷存在感 :P
深得运维厚黑之真传..但这么直白说出来,还得历练..
2015/06/02 09:03
回复
举报
有点瞎扯.
2015/06/01 15:42
回复
举报
这只是被攻击 还有内鬼的情况呢
2015/06/01 13:27
回复
举报
分析到位,容灾方案基本都说到了
2015/05/31 20:30
回复
举报

引用来自“雨下得狂”的评论

引用来自“neo-chen”的评论

从另一个角度携程事件
=====

携程事件后必有人得到加奖,升迁。这是一次不可多得的机遇。

运维这项工作就好比皇宫中的侍卫,御前带刀侍卫。这是一项风险搞,且不容易出成绩的工作。平时工作做得再好,不如救驾有功:)
平时工作做得太好刺客就不会有机会下手,如果没有刺客刺杀皇上,作为一个普通侍卫是很难,脱颖而出的:)
那么在能够把控全局的情况下创造立功机会,让皇上仅仅受到惊吓,或者皮外伤,此时出手必成。^_^

拿捏分寸非常重要,适当刷存在感 :P

甚高
神回复,精辟,已收藏
2015/05/29 11:09
回复
举报
更多评论
打赏
28 评论
170 收藏
14
分享
返回顶部
顶部