信息安全|将挖洞当作爱好和职业的笑与泪:微软漏洞研究员的自白( 四 )


一言以蔽之:展现自己 , 让别人知道自己 , 让自己的声音被听到 , 你会发现自己身处一个超赞的社区 。

掌握好自己的节奏当我猎洞时 , 时间都是我的 。 我想挖的时候就去挖 , 如果感觉自己正被掏空 , 就会停下来做点别的 。 如果我有全职工作(进入微软之前) , 我就会放下安全研究工作做日常工作 , 所以从某种程度上讲我已经做到了平衡 。
我在疫情期间加入微软 , 所以和很多人一样我也是在家办公 。
作为新员工我想要学到所需学到的一切东西并尽最大努力做好这项工作 , 而在家办公也是我之前从未体验过的 , 它去除了那种人离开办公室并告诉大脑工作模式关闭的感觉 。
这两个因素叠加到一起使我工作很长时间而且在周末也在工作 。 我那时特别兴奋 , 因此在控制节奏方面犯了一个大错 。 我忽视了团队成员给出的关于精力耗竭的建议以及微软给出的关于工作生活平衡的消息和提醒 。
我感受到了这种倦怠 。 精神状态疲惫 , 感觉不适而且压力山大 。 于是我立即行动 , 停止在周末工作 。 我保证一天至少睡七八个小时并少喝咖啡 。 第一次度假时 , 我让自己不要想着工作的事情 , 回来后我的精神状态焕然一新 。 耗尽的感觉一扫而空 , 并做好了征服世界的准备 。
一言以蔽之:掌握好自己的节奏 , 防止耗竭 。 这是一场马拉松而非冲刺 。

如何进入浏览器安全领域?这可能是我遇到的最常见问题之一 。 于我而言 , 我只是觉得浏览器漏洞很酷 , 这一点支撑着我去挖洞 。 除了之前提到的低自尊障碍外 , 答案就是这么简单 。 要知道 , 你自己必须要阅读很多东西 , 没有任何捷径 , 其实对于其它任何事情而言也一样 , 阅读自己感兴趣的一切至关重要 , 知识就是一切 。
如下是一些可参考的入门:
1、Chromium 代码库——其中包含数百万行代码 , 查找你感兴趣的具体特性是如何运行的;Chromium bug tracker——某些被提交为安全漏洞的bug , 其中包含深度讨论;Chromium security FAQ (安全常见问答)——涵盖了很多被发送为安全问题的误报;Chromium severity guide(严重性指南)——它会通过案例告诉你如何判定安全漏洞的严重程度 。
2、Mozilla bug tracker——你可以找到影响 Firefox 6 的漏洞报告;Mozilla 安全公告——获取最新的 Firefox 安全漏洞修复方案 , 尽管通常而言 , 最近的几期中的漏洞尚未公开 。
浏览器漏洞大概可以分为两种主要类型:
1、内存相关漏洞——释放后使用漏洞、缓冲区溢出及其朋友们 , 这些漏洞类型在 Chromium安全漏洞(高危及以上级别)中占比大概70%;
(1)进入 “about:crashes” , 可以看到崩溃清单 。 对于Chrome 而言 , 可从如下位置找到崩溃转储:
C:\\Users\\test\\AppData\\Local\\Google\\Chrome\\User Data\\Crashpad\\reports

(2)获得 winbg , 打开这些崩溃转储并执行 !analyze –v
(3)通常通过fuzzing 就能找到这些漏洞 。
2、 逻辑漏洞——全局XSS、SOP 绕过、UI欺骗等都是逻辑漏洞类型 , 和损坏内存没有任何关系 。
(1)通常需要手动查找和/或阅读源代码
因为进入安全这一行之前 , 我基本从事的是web技术工作 , 因此有了一些 HTML/JS/CSS/HTTP的背景知识 , 所以会很自然地更加关注逻辑漏洞 。 因此 , 如果你已经具备一些 Web 知识 , 那专注于逻辑漏洞可能会更容易过渡一些 。 从另一方面来讲 , 如果你在逆向工程和/或自动化方面的经验更丰富 , 那就选择fuzzing 并重点关注内存损坏问题 。 当然 , 两个都抓也是可行的 。