在写这篇文章的之前,我会考虑尽量把身边朋友和公司的“事故性”信息避开,只跟自己对话。

  昨天是6.1儿童节,在这个社交网络爆炸的时代,各种段子和小视频在社交媒体上互动,尽显智慧与欢乐。出于搞笑的性格,我时不时的去打开浏览,却常常没有耐心的关掉,因为最近这些天来状态很不好,并在晚上做了一个不成熟的决定,写了一封辞职邮件发给了老板。

  在信中我写道:

尊敬的福哥:
    您好!
    首先感谢青藤,2015年8月3日入职到今天2017年6月1日。感谢青藤对我一个新人的关照和培养,使我在安全从业道路上跨过了一个又一个台阶。
对行业的认知,安全圈人脉的拓展,渗透能力的提高,开发技能的提升,对Linux的认识和先进的企业安全理念,了解一款产品的内外兼修的重要,创业公司的发展历程。
    但在今年***同时,个人也反思了一下所做的事情已经远离了职业发展规划,所以希望我将重新寻求一个合适的甲方锻炼机会,或是更专注于安全技术的提升。
    望批准一个不成熟的辞职申请。
    祝愿您身体健康,青藤茁壮成长。
    此致

                                                                                    敬礼

  可能在常人看来it行业离职跳槽再寻常不过了,但对于我个人来讲当我珍惜了一次机会,就会忠诚于一个领导,一家公司。青藤在成长,而季节的更迭总会吐陈纳新。

  在2015年6、7月份毕业季的时候,我也曾在大三的下半年踌躇徘徊,不知是该从事软件开发、还是信息安全,毕竟自己的专业是软件工程,安全完全是自己“搞”出来的爱好和特长。就像是在刚入学时不知道该选择学习哪种语言,哪个方向一样,因为都感兴趣、都很喜欢,所以就广泛吸收,但没有一样精通,直到偶然的机会参加了两届山东省信息安全比赛获得了一些成绩,才因为成就感使自己越来越向安全方面偏重倾斜,投入更多精力。

  我们学校是一所山东省内普通二本,在我那届毕业生的前后流行一股风潮,临近毕业计算机专业的应届生就会到it培训机构培训各种开发、美工等技能,高额学费换来的是学渣在经过培训机构打磨和包装后到企业以2到3年工作经验找到高额的薪水工作。从内心里我也是渴望的,但是最后经过深思熟虑,还是坚持初心去找找看信息安全相关工作。在大学的时候打一些线上CTF,关注下安全圈,偶然机会接触到几个行业资深的安全人士。正好一个机会,在风宁的推荐下进入了从居民楼即将搬入嘉华大厦的青藤实习。

  在学校的时候我当过班长,混过学生会,后来的一些事情索性不谈,一句话总结是青春很燥,也很美好。一天课堂上,一个电话广东深圳的电话打过来,我悄声说在上课,电话那头的人也被我带入小声说话的模式,说那下午再打过来。怀着激动忐忑的心情等到了公司安全同事的电话,他先谈了下公司产品的功能大概,需要一个安全工程师做的事情,还有公司的文化;我了解了大概之后,向他说明了自己能做的事情和欠缺之处,但在他口中技术都不是问题,只要认可公司的价值观,是可以培养的。于是我挑了一个英语四级考试之前的一天跑去北京面试了,见到的第一个人就是打电话给我的人,一件灰色T恤,一个大短裤,走路有点瘸,一双拖鞋,带个眼睛,个子也不高,还有我记得那天他给我点了份巨无霸。然而后来我也有告诉他,其实那份汉堡不够吃;后来才知道他是“深圳梅西”,踢断了黄金右脚,回去深圳做手术了一段时间;后来我想在这个男人面前炫耀我的广泛兴趣爱好,他却在各个方面都鄙视了我,素描、吉他、写字他都会,工作技能自然也不用说,除了街舞他不会跳;再后来他就一直是我的领导,从北京总部的安全总监到深圳分部的安全总监;最后变成老师,也是兄弟。关于这个男人,他现在的id是0x001,不过多的吹嘘他的能力,用低调和传奇描述就可以了,想知道的更多可以跟他做朋友,他人很搞笑。

对了如果你想知道我当实习生之前面试被问过哪些问题?简单的插几句,如何渗透一个目标,web安全的常见漏洞类型和修复方式(修复是重点),爱好。

实习生涯

  写到这里,虽然很想写出点什么,但记忆里都是碎片,让我打开产品的后台慢慢回忆吧。

  开始到金隅嘉华大厦A座1012上班,一个比我早到一些日子的实习生来教给我日常的工作,0x001和TT进行指导。TT是也是一位资深的安全人士,现在在武汉青藤研发中心做安全总监。实习生的生涯前期做的最多的就是一些基础安全运营工作,比如公司的爬虫爬来的国外漏洞库和补丁信息,我和小伙伴们就一起把他们汉化补充到后台,这样前台用户看到的就是清晰的有修复建议的中文;应用的安全基线录入,当时我们有现成的基线json数据,开发把功能框架写好,我们就把基线翻译成中文继续录入到后台,经过agent的分析,在前台就可以显示出服务器上不符合规范的基线配置。但那时候我做的事情总会被要求多2、3页,以至于我每天要工作到凌晨2、3点钟,这段时间持续了很久。直到最后我们这些小伙伴把多个常用和经典的操作系统版本常见漏洞和补丁录入完成,常见的中间件应用基线做完,才算是从这项繁琐劳累的工作中解脱出来,在这期间宗阳同学写了一个打补丁的工具,受到大家的赞赏。宗阳同学人非常好,北京一所重点高校毕业的,女票考上了北师大,两个人非常搭。当我们熬过那些坑之后,再进来的实习生必学的一项技能就是打补丁,我们俗称“搬砖”。我们开始把更多时间放在对客户服务上,由斌哥教大家如何接收客户问题,如何学会与客户沟通,斌哥在客户服务上非常有经验,他还把曾经任职过公司的员工客服录音拿出来与我们讲评。当然我们安全运营的客户服务会对接更多的技术问题,不仅仅是产品的答疑,噜噜来带我们补充Linux相关的知识体系,他是一个非常有经验的老运维。斌哥和噜噜都是老北京,住二环,哈哈哈。

  在每天从产品上帮客户发现安全风险,推进解决问题的同时,青藤迎来了一个最大的客户。我们公司开始协助此公司建立安全体系,基于企业的特点和需求对产品做定制化开发,当然期间很多好的需求也帮助产品快速的迭代成长。我们安全运营部的小伙伴也开始轮换到大客户那里提供驻场的服务,我几乎每天都在,从他们公司业务和人员的迅速扩展,我们几个小伙伴也随着他们将办公地点先由北京金融街搬到北师大附近,最后搬到仰山公园一起戴着口罩当新办公室的人体空气净化器,期间跟着0x001和TT一起在对方内网做渗透测试,操作审计,产品的运营等等。在没实习之前我也只是简单的日个站,提个权,对内网渗透并不熟悉,但在这个客户那里我见到了一个大企业内部的it资产和各种类型的应用系统,必然学到了很多姿势。在我们渗透过之后,大客户又请了多家当时很有名的安全公司进行渗透测试,最终客户除了我们之外选择了一家非常有实力的乙方安全公司,购买了他们的产品和渗透测试服务,他们的渗透测试很犀利拿到了非常重要的系统权限,当然青藤的安全产品也同时检测到了很多异常告警,也被绕过了多道防线。我们两家乙方在产品上有互补,也相当于在企业内部做红蓝对抗,还是非常有价值的。青藤的产品有一个审计功能,每天会记录几十万条bash操作命令,开始由TT进行人工的审计,后来慢慢交接给我,并指定要我写出一个节省人力的工具,于是我用Python写了一个半自动化审计的工具,先过滤掉无用的shell日志,留下有价值的几百或几千条日志进行人工的审计,如果有可疑再进行回溯。怎么说呢?这个工具其实效果还是有的,但并不是太理想。这家大客户慢慢待遇越来越好,有了自己的食堂,自己的健身房,在吃饭娱乐的时间结实了隔壁乙方安全公司的一个员工,他有些沉默、闷骚、愤青,但熟悉之后发现没想到我们有共同的爱好poppin和篮球,不过今年他好像支持勇士,我是詹密!没想到他竟然也是那个乙方公司的创始人之一,我叫他景牛。

  谈工作回忆的好累,我还是想想那些可爱的小伙伴吧~范范,我们安全运营部的一个软妹子,关系跟噜噜可好啦,后来去了绿盟,现在在美团。宗阳,之前有介绍过,人非常好,现在在做自己喜欢的事情,渗透相关吧。一横,广东人,北航的一个同学,我高中的一个好兄弟也在北航,他们打球互相认识,我从好兄弟那里知道一横唱粤语歌非常好听,一次大家团建到ktv,果然名不虚传。瑞陶,英国留学回来,开始在我们部门,又被调到安全研究部做调研和开发,现在在爱立信做C开发,人也非常好,上次去上海还一起吃饭,不过头发留的特别长,有点认不出了,对了我去深圳分部之前,他还送我一个小蛋糕,吃了之后我的运气爆棚!涂瑜,客户端组的C/C++,跟我关系也非常好,技术很牛逼,现在在知乎。艺珍,长得很漂亮,开始在我们部门,后来被俊哥抢到产品组了,现在在360。王先生,开始在我们部门,后来到安全研究部做开发,非常搞笑的一个帅气的男生,一起睡过客厅~忠阳,产品组的男生,人很好,喜欢笑,异地恋,哈哈哈,跟我一样。还有服务器端组的老大,关系也很好,一起加班,一起跟涂瑜畅聊。还有好多人,在职的不想提太多,因为可能会被邪恶的人拿去做信息收集,社工或钓鱼,先鄙视下!

正式入职

  其实早已熟悉了工作内容和工作节奏,无法正式入职是因为还没有拿到毕业证。深圳分部是一个新的开始,从我和0X001两个人,慢慢来了一个做销售的女孩子吕芳,接着加入我们的华不再扬,加入又离开的泳少,接着加入的YD,深圳的团队已基本定型。在深圳我们开疆扩土,宣传“自适应”的安全理念,提供客户测试产品,与北京对接提交bug,反复验证产品,提交功能需求,写文档,写方案,参加展会等等。不得不说深圳是一个OPEN的城市,非常年轻,很有活力,但在这里客户要求产品的用户体验和产品功能,很少有讲情怀的。相对于北京,深圳更像是战场的前线,我们几个人在一起就像是战友,虽然没有行政,没有财务,但大家配合的还蛮默契。既然是前线,就需要经常与客户接触,我们也必须培养起售前工程师的一些基本素养,要能解答客户的技术细节问题、技术方案的疑惑、流利的讲解产品功能、场景、价值。在售前的工作过程中,我和吕芳的配合还是挺默契,她也愿意带我一起出去,只是我心里还是想把更多时间投入到技术研究中,所以没有表现的非常好。0x001在深圳打拼了很多年,不仅仅是技术上可以hold住很多场面,在人脉和关系上也非常强悍,所以前期我们对接了不少政府资源,其中渗透测试是一项重要任务,这项任务主要落在华不再扬身上,常常能够披荆斩棘,撸穿对方企业内网,日报写的像精彩的案例分享,TT和福哥都经常点赞。YD之前在其他安全公司做过,对传统网络设备和等保基线比较熟悉,就负责青藤的这项工作。而我则独自承担起了产品的一项重要检测功能的优化,webshell检测。开始我对这项工作并不看好,但既然要做就认真对待。webshell检测功能在前期与我对接的时候差不多一个星期我都在调试产品的功能,很多bug,有客户端的问题,有服务端的问题,发现异常就反馈给研发配合测试进行改进。直到第二个周,才开始真正运营这项功能,在一个Q的时间内,我申请开通了阿里云的安骑士、安全狗、D盾,参考对比进行规则的运营,最终在样本数量和检测率上完全超出了这几家的竞品,但功能仍有许多需要借鉴和学习别家产品的地方,我已经总结了一个不成熟的webshell文档和功能检测改进的脑图。在我离职之前的几天产品经理问我产品3.0功能在webshell方面有什么改进的建议,我已经把能看到的问题反馈给他,希望青藤能在未来把功能做的更细致一些。

  在分别承担起某一项任务之余,我建了一个小的微信群,取名“捡垃圾”,哈哈哈~里面有我和华不再扬、YD,主要是团结协作一起写poc,我们把收集到的Python脚本的exp或poc,用lua进行转化重写,写完样本之后,就在网络上收集漏洞进行分析,并也转化成lua脚本,我们的github上应该有上千个poc了吧。后来“捡垃圾”就变成了我们3个人闲聊扯淡的小群咯~我喜欢取一些特别的名字,比如我们深圳分部的微信群叫做“小白兔白又白”,哈哈哈哈哈。

  在深圳的后面几个月开始支持独立部署的客户,将产品整个server端部署到客户的机房,有多种不同的方案,学到了很多Linux运维方面的技能,0x001是比我晚一些接手这项工作的,但老司机毕竟是老司机,我竟然都开始问他部署的各种依赖包解决的问题和部署脚本的问题等等。接着就是南方各个城市的出差,去的甲方也都是各行业的top级别的,拓宽了自己的视野,也认识了一些不错的负责人。比如做事风格非常屌,人很nice的某直播行业的安全负责人,希望有机会去武汉吃小龙虾。

  在青藤的那些日子里,也做过多次的应急响应,其中有一次对日志的排查,很感谢现在的北京的安全总监对我提供的帮助,他的实力也毋庸置疑,并且做安全工作非常有经验和条理。从深圳到北京培训的那些日子,他教会了我很多教科书式的工作方法,比如应急报告应该怎样写,要注意的多个问题,他也硬生生的带我吃好吃的把我养肥了好多斤,最后培训的结果并不令他很满意,我也感到很抱歉。在应急响应的不同案例中,我个人认为要彻底回溯还原攻击场景和修复安全问题,不仅仅需要分析问题的能力,有一点也很重要,就是要了解攻击者的目的和“玩法”。比如,有一次的问题排查过程中,问题基本解决,但从搜索引擎入口进行搜索发现该高权限站点,从搜索引擎点击到站点的点击行为都会进行跳转,若直接打开站点的页面就不会跳转。这是一种黑帽的手法,服务器上并不存在webshell,只加了一些判断ua进行跳转的代码。于是我们从伪静态规则和站点模板进行再次深入排查,最终定位到了一句恶意代码,并通过在产品的后台添加规则,通过agent马上识别出了10多个被加入恶意代码的模板文件。使用SaaS产品的好处就是可以从一家客户的攻击到问题的解决,将整个安全防护和检测规则及时同步到其他客户那里,迅速保护客户资产免受侵害。所以安全从业人员也应该关注威胁情报,关注互联网底层黑客活动,以及利益驱动的各种黑客攻击和手法,知己知彼才能百战不殆。

离职前的网投简历

  在我提交离职邮件之前,我先在拉钩上写了一份简历,并尝试投递了几家心仪的公司。因为在创业公司工作过一段时间,甚至在深圳连行政角色都体验过,人难免容易产生优越感,往往把自己定位的过高。网投的时候我刻意避开了北京的一些跟公司有业务来往的企业,心理觉得是不是会有些尴尬。我也问过几个好朋友,他们的建议是没啥,是我自己想太多了。

  A公司,薪水20K起,我的简历被直接转发给了安全负责人,经过沟通过后希望我能挖一个漏洞给他,我挖到了一个刷短信接口的漏洞,对方研发反馈说是一个feature,不算漏洞。没关系,我不争辩,继续看业务逻辑,继续挖到了一个短信炸弹的参数,这个短信接口很多参数都做了限制,唯独其中一个参数没有做限制,反馈了;找外网的漏洞,穿过cdn找到了业务网段,并发现了一个监控全国路由节点的系统smokeping,反馈了本想利用一下,对方马上把此服务器停止对外服务;实在挖的很累,期间也做了很多其他工作,谈薪水的时候说只能给15K,要20k,必须找到外网的严重漏洞。

我说:谢谢,我再看看其他机会。

  B公司,薪水20K起,hr电话邀请北京面试,但我在深圳,来回的成本实在太高,所以协商过后可以远程电话面试,对方安全负责人问了很多问题,其中包括:去深圳的原因、给我一个网站怎么入手、web安全常见的漏洞、业务逻辑的例子、重放攻击(短信验证码炸弹)如何修复、甲方的产品安全应该如何做、SDL有什么好的落地方法、众多服务器的情况下如何检测webshll、开源安全产品了解哪些、对网络操作系统熟悉吗、看你对Python熟悉还有其他的编程语言吗。个人感觉除了sdl回答的不好,其他问题都hold住了。第二天问hr反馈,结果是“跟XX的需求不匹配,你的能力偏重测试领域,甲方经验略少,思维方面不太契合。面试官给的建议是了解一下SDL或类似的产品安全管理体系和落地方法。祝好!”

感觉hr说的很中肯,我确实缺少甲方的工作经验和一些体系化的工作方法和理论与实践。

  C公司,薪水15K-25K,该公司还没有安全人员,我在B公司碰壁后,自然信心不足了,直接跟hr说了自己的欠缺的能力和擅长的事情,并希望可以远程面试。hr反馈不可以远程,希望现场面试,说我的情况比较符合C公司的需求。我于是当天晚上对其外网C段进行了检测,干进了内网,并做了crontab的后门和socks5的反弹进行内网渗透,发现了多个内网网段和不同程度的未授权访问等。第二天凌晨3点多给hr留言,发现安全问题,即使并不去贵公司也会将漏洞反馈给对方。第二天运维的老大跟我对接,并修复了外网的安全隐患。

准备到C公司面试

  其他,其实也有朋友要帮忙内推,心里很感谢。我想自己提前感受下社会的招人需求和氛围,一开始并没有接受,就开始了以上3家公司的面试经历,还是很多收获。更清楚的了解了自己的真实水平,以及对自己职业的定位,把浮躁的心安抚了一下。感受了下失业者无所事事的心情,还好有我家宝宝和“狐朋狗友”~

  即使自己曾经对公司有过抱怨,即使工作上有些许不如意,但青藤是我的一份工作,我与他一起成长。如果我到一家公司能够决定买一款安全产品,我肯定会把青藤纳入考虑范围,因为它首先让我知道自己的风险资产在哪里,从根源上减少攻击面,更重要的是它在黑客攻击的每个路径上都有特征锚点,让我及时发现入侵行为。听说过段时间V3.0版本就要问世了,很遗憾没有给V3.0注入自己的贡献,还是挺羡慕北京安全团队对产品的输出,对应用的检测和windows版本功能调研与开发,羡慕sevck和一夜30万郎,还有演讲能力超赞的刘磊,还有emma等等哈哈哈。

谢谢你们,加油吧!