那些年我们一起犯过的错 - 旁观者 - 博客园

标签: | 发表时间:2019-04-29 18:08 | 作者:
出处:http://www.cnblogs.com

阶段性小结: 错误是我们的财富

对于事故处理,我们遵从航天二十字诀: 定位准确、机理清楚、可以复现、措施有效、举一反三。

“丰田生产体系”与航空航天的这个原则是相通的,如果对待错误的态度是开诚布公的,那么整套系统就能从中学习,能取得进步。

我们坚持每错必查、错了又错就整改、每错必写,用身体力行告诉每一个新员工直面错误、公开技术细节、分享给所有人,长此以往,每一次事故都会变为我们的财富。

 

 

我的错误1—做好被攻陷的准备:刚接手工作几个月,黑客入侵

很多年前,没想到我刚刚到任几个月,数据库就被黑客下载了。

过程是这样的:

凌晨2:46,黑客通过某地IDC机房里的一台肉鸡,仅仅两次尝试输入管理后台登录地址后,就准确地输对了,说明此黑客清楚我们的后台登录拼写规则,否则不可能在7秒内依次尝试很难的拼写。

登入8分钟后,他利用 FCKeditor 版本2.4.2以下的PHP版上传文件漏洞,上传了多个 php 文件。

然后,他种了一个 rootkit,即在 include 文件夹下放了一个 lndex.php,浏览这个 php 就可以从网页上修改操作系统 root 帐号的密码。

总之,黑客在凌晨3点到6点之间,在那台宿主机上密密麻麻地放了很多 php 文件上来,并修改了很多系统文件。

 

几天后,黑客又从那个肉鸡来了,访问他之前在服务器上种下的 rootkit。

然后,可能利用他从服务器上代码配置文件中看到的数据库用户名和密码,备份数据库并下载。

 

尾声:

内部IT系统的后端:

-在服务器端,日志文件里不要存储用户或商户的敏感信息,如登录密码、银行卡号、身份证号,曾经有一个知名公司的工程师为了调试方便,将用户的信用卡卡号和卡密记在日志文件里,但白帽子们发现能访问到这个日志文件……

-我们认为数据库有可能被盗走,所以要做到即使被拿走,也不要给客户和用户造成损失,所以数据库存取这些商业敏感信息时需要做高强度的对称加解密。

-工程配置文件只允许存储加密后的数据库登录密码,同时部署人员和开发人员都不允许掌握明文密码。

 

内部IT系统的前端:

-登录做两步验证;

-禁止多点登录;

-从框架上做好防 XSS+SessionHijacking+CSRF+SQLi……

-我们认为第三方很有可能拿到我们的平台登录权限(通过 session hijacking,或通过内部人),所以即使在合法用户登录状态下,敏感字段的展示要有遮挡,修改或查看敏感信息的时候要输入短验验证身份;

-内部IT系统的 robots.txt 内容必须是:『User-agent: * Disallow: /』,禁止搜索引擎收录。

 

点题:

我的态度是:放眼一年、三年、五年、十年,你的系统一定会被人攻陷,你的数据一定会被人拿走,往往是几个初中级安全漏洞,再加上一次社会工程学,就能成功渗透,并不需要高危漏洞。所以要做好灾难即将来临的准备,即使被攻陷,被拿走,也不要给商户和用户带来二次伤害。

 

 

别人的错误3—工具与风控:骑士资本集团的覆灭

2012年的时候,骑士资本是美国股票市场最大的经纪商,分别占有纽交所和纳斯达克 17% 的市场份额。

骑士资本的电子贸易部门管理的平均日交易量超过 33 亿股,交易额高达210 亿美元。

截止到 2012 年 7 月 31 日,骑士资本拥有高达 3 亿6500 万美元的现金及现金等价物。

 

在8月1日之前,骑士资本按照纽交所的项目计划,更新了算法程序 SMARS,它从交易平台接收大订单,然后根据买家或卖家的股票交易数量把大订单拆分成合适的小订单。

 

这次更新去掉了一些过时的代码,如 Power Peg,虽然它已经 8年没有用过了,但实际上 Power Peg 模块一直处于待命状态,只要系统的某一个特殊的参数被设置为「YES」,该模块就会被调用用来交易。

 

程序员开发了一个新的 RLP 模块,取代之前的 Power Peg 模块。取代后,之前那个特殊的参数被设置为「YES」,意思是使用 RLP 模块。

 

听起来是不是让人担心?

 

不用担心,测试完全通过,虽然更新后的代码沿用了以前用来激活 Power Peg 模块的标识符,但代码非常可靠。

 

7月27日到7月31日,骑士资本把 SMARS 软件手动部署到公司为数不多的服务器上。

一共才 8 台。

不幸的是,漏了一台服务器。

因为没有其他技术人员对部署过程做复查,所以没有人发觉第 8 台服务器上的 Power Peg 代码并没有被移除。

所以这台服务器上并没有 RLP 模块,只有 Power Peg 模块。「Power Peg」模块在被停用后的第10年被启动了。

 

灾难正在一分一秒地迫近。

 

2012年8月1日早上9点30分开盘后,很多交易员感觉到异乎寻常的事情发生了,某些个股涌现出大量不符合常理的订单,而且没有停止的迹象。

 

这个系统竟然没有断开的开关。

 

于是乎,在 45 分钟之内,骑士资本执行了超过日均交易额 50% 的订单,导致部分股票市值上升超过 10%,带来的连锁反应是其他股票价格暴跌。

 

由于没办法断开系统,也没有相关情况的预案说明,魂飞魄散的程序员只能在每分钟交易 800 万股的生产环境里调试。

 

因为没有能在线上发现问题,所以回滚了代码。

 

情况反而恶化了。

 

原本只是第 8 台上的 Power Peg 在疯狂地工作。

现在另外 7 台服务器上的 Power Peg 也加入了进来。

 

最后,骑士资本的技术人员和纽交所一起终于想办法终止了交易系统,然而已经过去了 45 分钟。

 

灾难现场,一片狼藉。

 

在这 45 分钟里,

对于内行人来说,骑士资本建立了 80 支个股 35 亿美元的净多头仓位和 74 支个股 31 亿 5000 万美元的净空头仓位。

对外行人来说,骑士资本在 45 分钟内亏损了 4 亿 6000 万美元,而上文提到,骑士资本仅有 3亿6500万美元的资产,这意味着骑士资本破产了。

 

骑士资本集团在整个事件中犯下的错误有哪些呢?

1,Power Peg 模块在停用时并没有从系统中删除,而是保留在系统里成为僵尸程序。

2,运维工程师手工部署,没有交叉验证,操作重大失误。

3,他们的风险管理完全是事后管理,缺乏事前控制。虽然对公司的敞口设置了限额,但超过限额时交易系统无任何限制。

4,他们的风险管理工具PMON,是一个事后的风险管理工具,完全依赖于人工监控。当交易量较大时,该系统还会有延迟,产生错误的报告。所以在灾难发生的时候,业务人员没有快速定位到敞口的来源,也没有意识到问题的严重性。

 

点题:

1,工具: 假定人的错误是不可避免的,上线部署就应该是自动化的,而且是可重复的过程,尽量排除人为因素的干扰。 如果你常年靠手动发布,总有一天会大难临头。

2.风控: 你的业务保障平台,你的风控管理系统,是你的最重要的伙伴,不要轻视它,在关键时刻,它会救你的命。

 

最后,我们再呼应一下主题:

第一,

『我得到正确判断的办法,

通常是先收集各种错误判断的例子,

然后仔细考虑怎样避免得到这些下场。』

——《穷查理宝典2》查理·芒格

 

第二,

错误是我们的财富。

我们坚持每错必查、错了又错就整改、每错必写的RCA制度,

用身体力行告诉每一个新员工直面错误、公开技术细节、分享给所有人,

长此以往,每一次事故都会变为我们的财富,而不是包袱。

 

-EOF-

相关 [那些年 旁观者 博客] 推荐:

那些年我们一起犯过的错 - 旁观者 - 博客园

- -
阶段性小结: 错误是我们的财富. 对于事故处理,我们遵从航天二十字诀: 定位准确、机理清楚、可以复现、措施有效、举一反三. “丰田生产体系”与航空航天的这个原则是相通的,如果对待错误的态度是开诚布公的,那么整套系统就能从中学习,能取得进步. 我们坚持每错必查、错了又错就整改、每错必写,用身体力行告诉每一个新员工直面错误、公开技术细节、分享给所有人,长此以往,每一次事故都会变为我们的财富.

异地双活的四个误区 - 旁观者 - 博客园

- -
郑昀(老兵笔记) 20190305. 阿里云华北二机房2019年3月3日凌晨服务中断长达三小时,我在微博上喊出了:工程师赶紧起床,切多活流量啊. 多年前,大家往往做成了灾备机房,一主一备. 结果是,真正灾难发生的时候,最高领导人下不了决心切机房,因为无法预料切换后果(灾难总是不期而遇,切过去就可能切不回来了).

我当初是怎么管理技术团队的 - 旁观者 - 博客园

- -
关键词:管理技术人才、管理技术团队、技术传承、对题集/错题集、研发哲学. 窝窝技术团队大约两三百人左右,主要是五大块:研发、数据、无线、质量、运维. 2012年年初,一个大项目结束后,我召开了飞行研讨会,经过这次深刻反思,形成了几个影响深远的管理观点:. 管理者要向下提供工具,以形成干部的简单、易记忆、易执行的工作套路.

云纵持续交付环境管理进化历程 - 旁观者 - 博客园

- -
破天(李进庄)、冬草(宋玥辉) 创作于2018-9-10. 一个公司的运维能力强弱和你线上环境敲命令是有关的,. 你越是喜欢上线敲命令,你的运维能力就越弱,. 越是通过自动化来处理问题,你的运维能力就越强. 持续集成(Continuous Integration, CI)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.

呵旁观者文 (梁启超)

- 云透 - 非常日报
天下最可厌、可憎、可鄙之人,莫过于旁观者. 旁观者,如立于东岸,观西岸之火灾,而望其红光以为乐;如立于此船,观彼船之沈溺,而睹其凫浴以为欢. 若是者,谓之阴险也不可,谓之狠毒也不可,此种人无以名之,名之曰无血性. 嗟乎,血性者,人类之所以生,世界之所以立也;无血性,则是无人类、无世界也. 故旁观者,人类之蟊贼,世界之仇敌也.

技术总监是干什么的? - 旁观者

- - 博客园_旁观者-郑昀
郑昀 创建于2013/12/16. 最后更新于2014/2/24. 本文遵循 Creative Commons 姓名标示-非商业性使用-禁止演绎 许可协议. 转载时请注明“转载自知乎”或者给出转载文章的 原始链接. 庄表伟曾撰文 谈及研发管理 的三个提升,由于研发、质量保障、运维三者连接紧密、不分家,所以下面郑昀将其扩展了一下:要『从一个整体来考虑企业的研发管理,应该注重建立一个良性的循环:.

我的那些年

- Felix - 這雙手雖然小
獨自去看《那些年,我們一起追的女孩》,似乎沒有想像中精采. 我和「九把刀」是同一個年代的. 那些年,王菲是最紅的歌星,四大天王方興未艾,而Beyond主音黃家駒的死,是我們最傷心的集體回憶. 但我唸的是女校,最受歡迎的同學,若非成績最出眾的那幾位,就是體育健將,「沈佳宜」一類女生,向來不是風頭躉──這種嫻靜端莊的女生實在太多,在沒有男性荷爾蒙的烘托下,她們太平凡.

【外刊IT评论网】“旁观者效应”是如何毁掉我们的代码的

- - 外刊IT评论
1964年,纽约昆斯区,28岁的Kitty Genovese在经受了长达35分钟的性侵犯后最终被谋杀致死,共有38个本地区人性正常的居民经过,但没有一人提供帮助. 图片来源: Abu Badali, CC 2.5, via. 这个故事例证了 ‘旁观者效应’中的一个不幸的心理特:援助的几率与旁观者人数成反比.

被小伙伴们蠢哭了的那些事儿:找回密码篇 - 旁观者

- - 博客园_旁观者-郑昀
郑昀 创建于2014-01-12;. 最后更新于2014-01-13.. 找回密码功能是漏洞传统重灾区,下面列出两个经典错误点,请引以为戒吧Web开发工程师们. 一)以为用户不会抓包不会看源码不会分析表单参数,HTML文档和表单里想写啥就写啥. +手机App的忘记密码功能:. 首先,通过抓包分析,发现密码重置接口可以Web访问;其次,填入手机号码提交,.

那些年,我們一起迷的港台男偶像♥(笑)

- ts - 宅宅新聞 by 卡卡洛普
是說~前幾天看了電影《那些年,我們一起追的女孩》,好好抗啊. (*’▽^)ъ請大家快去支持國片的同時,平常幾乎都在寫日本的如夢,其實小時候也跟同學一起迷過港星的說~("∀")當長大以後再次看到自己小時候的偶像,整個就是少女心失控炸裂. 所以今天要來回顧一下這些當年紅到墊板下面都是他們的男.偶.像(尖叫).