漏洞赏金如何磨砺一位研究者的安全技能
How bug bounty sharpens one researcher’s security skills
The GitHub Blog
以下为原文逐段中文翻译,保留图表与说明。AI 翻译并经 AI 对照复核,仍可能存在错误;核对数据和引用时请同时查看原文。译文发布:2026年10月23日 04:36(北京时间)。
在网络安全意识月持续进行之际,GitHub 漏洞赏金团队很高兴继续聚焦 GitHub 安全漏洞赏金项目中的又一位顶尖安全研究者:@r31n !
作为全球开发者的家园,GitHub 致力于保障数百万项目背后代码的安全与可靠,而我们的漏洞赏金项目始终是这一承诺的基石。与外部研究者的协作是提升安全性最有效的方式之一,每年,社区都会帮助我们发现并修复漏洞,让平台对每个人而言都更加安全。
安全研究格局正在快速变化。AI 降低了入门门槛,已成为真正的力量倍增器。我们在自身内部安全项目中广泛使用它,也欢迎研究者以同样方式使用。然而,区分优秀研究的核心标准并未改变:验证、可运行的漏洞验证概念证明(PoC),以及对真实安全影响的清晰展示。工具并不重要,工作质量才重要。我们本月聚焦的研究者正是这一标准的典范——他们的发现都经过验证、可复现,并能证明已跨越了安全边界,而非仅仅停留在“可能存在”的理论层面。
持续达到这一水平的研究者将有机会获得我们常驻VIP项目的邀请,该项目提供更高的赏金、更快的响应速度,以及测试版产品和功能的早期预览。想要了解资格获取方式,请访问我们的公开赏金站点。
在网络安全意识月活动接近尾声之际,我们采访了 @r31n ——一位因其在 GitHub Enterprise Server 上的工作而闻名的研究者,他多次在该平台上发现高影响漏洞。他的报告始终包含可运行的漏洞验证概念证明和清晰的复现步骤,帮助我们的工程团队更快地从漏洞分诊推进到修复。
你是如何进入安全与漏洞赏金领域的?又是什么让你持续回到 GitHub 的项目?
我进入漏洞赏金领域,是因为我想找到一种方式,在日常工作的环境之外持续提升自己的安全技能。它让我接触到不同的产品、技术和架构,这些都是我原本不太可能遇到的。GitHub 是我持续参与的项目之一,因为它的攻击面实在太广了。它庞大、复杂且不断变化,新功能一直在发布,所以从来不会让人觉得这是个“已经挖完”的目标。同时,他们与研究者密切合作,赏金结构富有竞争力,周边礼品也是个不错的额外收获。它确实是一个让我乐在其中的项目。
你最喜欢研究哪类漏洞?为什么?
我并没有特别偏爱某一类漏洞。更让我感兴趣的是漏洞利用链,尤其是那些单独看似乎相对无害、组合起来却会产生更严重后果的情况。开放重定向就是一个简单的例子。它本身的影响可能很有限。但如果你发现一个会跟随重定向的、允许列表域名(allowlisted-domain)内的 SSRF,那这个开放重定向突然就能成为更大利用链中有用的一环。这大概是我最喜欢漏洞研究的地方:发现这些关联,把两三个独立的漏洞结合起来,意识到它们能以非预期的方式组合在一起。这需要一定的技术知识,但也需要相当多的创造力。
你如何保持技能敏锐,并跟紧新的漏洞趋势?
这其实是多种方式的结合。安全博客、漏洞分析文章、会议演讲、漏洞验证概念证明、研究论文、课程等等。我尽量从任何分享有价值工作的地方学习。但大多数内容只有在我亲自尝试之后才真正记牢。我可以读一篇漏洞分析文章,但自己亲手演练会让我理解得更深。如果我真正复现这项技术、摆弄它、把它弄坏,并搞清楚它为何会这样运作,那它才真正留在我脑中。之后,当我在真实目标上看到类似模式时,也就更容易识别出来。
哪些工具或工作流对你的研究产生了颠覆性影响?有没有什么鲜为人用、值得推荐的工具?
比起大型自动化工具链,我更倾向于手动调查和小型的专用脚本。如果我在研究中发现自己反复执行同一项任务,我通常会把那个具体环节自动化。AI 对我工作方式的改变,可能超过任何单一安全工具。
即便如此,我认为心态比工具更重要。你可以把某个工具用得非常熟练,却仍然错过有趣的漏洞,因为你只是通过那个工具所提供的视角来看待目标。有时过度依赖工具反而会窄化你的思维方式。工具会变,技术也会变。而好奇心和毅力往往更经得起时间考验。所以,我并没有一个推荐给所有人的工具。最有用的工具,通常就是那个能帮我回答当前正在研究的特定问题的工具。
带我们了解一下你的一般思路。你如何选择一个目标区域,又是如何从“有趣的功能”推进到一个已确认的发现?
我通常先从梳理应用程序的整体结构开始,去感受它的不同部分是如何组合在一起的。我往往会花更多时间在复杂功能、集成、信任边界,以及任何行为与其他部分略有不同之处。经验和直觉也很重要。有些区域天然看起来更容易暴露出有趣的安全行为。在此基础上,我常常从“源”和“汇”(sources and sinks)的角度来思考,而不是直接从某个具体的漏洞类型入手。源(source)就是攻击者可控数据进入应用程序的入口点。
比如一个请求参数、上传的文件、API 输入,或是来自另一个服务的数据。而“汇”(sink)则是一个消费这些数据的、对安全性敏感的操作,例如网络请求、文件访问、进程执行、数据库查询,或授权决策。有趣的部分在于追踪这两者之间的路径。我会观察数据是如何被转换、验证,或跨越信任边界传递的,以及在它到达“汇”之前,那些控制措施是否足够。
我喜欢这种方法,因为它让我能够围绕攻击路径进行推理,而不必把调查强行套入某个预定义的漏洞类型。有时,只有在理解了某个“源”如何影响一项安全敏感操作之后,漏洞才会变得清晰。当我理清了攻击路径、能够产出可运行的 PoC,并且能够解释其影响时,我才认为这一发现得到了确认。
你会在研究中使用 AI 吗?它真正起作用的地方在哪里,又在哪里力有不逮?
会,事实上用得相当多,但主要把它当作加速器。我用它来浏览不熟悉的代码、寻找调用点、在代码库中追踪数据流向,并理解系统的结构及其组件之间如何交互。在确认漏洞之后,我也发现它对于编写 PoC 脚本很有帮助。
它在问题很具体时效果最好。“这个应用有漏洞吗?”通常不是个很有用的提问。给它恰当的上下文,说明你已经知道的信息,再提出一个范围明确的问题,回答质量就会大幅提升。这其中有个悖论:你对问题本身理解得越透彻,AI 就越有用。而且我从不把它的结论当作事实。幻觉、误报、错误假设,以及自信满满的错误答案,都十分常见。一切都仍应经过人工验证。AI 让我的工作更快,但它并不能替代对应用的理解、直觉的培养,或是对某个问题确实成立的证明。
关于在漏洞赏金中负责任地使用 AI,你有什么建议?
用它来提升你的研究水平,而不是把责任外包给它。如果 AI 告诉你它发现了漏洞,那并不代表你真的发现了漏洞。你仍然需要自己复现它。你应该确切理解发生了什么、哪个安全边界或控制措施被违反,以及真实的影响是什么。理想情况下,你对问题的理解应当透彻到即便完全不用 AI 也能写出报告。构建一个清晰的 PoC,确保安全团队能按图索骥,并清楚每一步为何重要。
AI 降低了开展安全研究的门槛,这从很多方面来看都是好事。但你也能从各团队如今不得不处理的、未经核实的报告数量上,看到它的负面影响。AI 应该让研究变得更好,而不只是制造更多报告。
随着行业推出越来越多由 AI 驱动的功能,测试它们是否需要一种与传统 Web 漏洞不同的心态?
是的。传统漏洞依然重要,但攻击者也可能通过模型所接收的数据、指令或上下文,去影响一个概率性的决策组件。不过,让模型说出或做出意料之外的事,未必就是有趣的部分。更重要的问题是:这种影响能让攻击者达成什么?他们能否访问本不该访问的东西,或让系统以攻击者并不具备的权限行事?正因如此,我认为模型层面的护栏绝不应被视为唯一或主要的安全边界。你仍然需要在模型周围部署确定性的控制措施,包括恰当的授权、最小权限访问、隔离与验证。模型周围那些系统的重要性,与模型本身不相上下。而且,仅仅因为涉及 AI,传统应用安全并不会消失。模型输出仍应被视为不可信的输入。如果那段输出在未加正确控制的情况下,最终进入浏览器、数据库查询、Shell 命令、Web 请求或其他下游系统,你依然可能遭遇那些再熟悉不过的漏洞:XSS、SQL 注入、命令注入、SSRF 等等。我认为模型是新的,但许多危险的“汇”并不是。
有没有什么是你希望自己刚起步时就知道的?
学习系统,而非清单。刚起步时,我曾很想收集一长串技术、载荷、工具和绕过方法,然后逐一尝试。这些清单确实有用。
我现在仍会用它们。但理解一个系统如何运作,价值要大得多——它的内部逻辑、数据流、信任关系、各种假设、为什么某个组件被允许与另一个通信、某项限制最初为何存在。我还学会了不要因为某个东西“看起来安全”,或因为已有大量研究者测试过它,就假设它是安全的。
许多有趣的研究都始于“它为什么会这样运作?”而非“我接下来该试哪个载荷?”。这其中也有一些运气的成分。有时你会花上好几天追着一条完全走不通的线索,然后几乎偶然地注意到一个微小的细节,它就变成了一个高影响的发现。那部分你无法控制,但你能控制的是:是否保持足够的质疑,直到你注意到它。
对于试图提交第一份有效报告的研究者,你有什么建议或资源推荐?
先打好基础,然后选定一个项目、一个目标,并坚持一段时间。在不同目标之间不断跳转,会让你难以对任何目标建立真正的思维模型。实际使用这个应用,探索那些奇怪的流程,测试不同的角色和权限级别,阅读文档,观察请求与响应,查看 API。实验环境、课程、公开分析报告、已披露的漏洞赏金报告,以及专门设计的有漏洞应用,也都很有用。它们会教你漏洞通常藏在何处,并随着时间推移,帮你建立起识别类似场景的直觉。
我经常看到的一个错误是过早依赖工具。另一个则是因为明显的测试没发现什么就放弃。工具确实有用,但它们不会替你建立思维模型。而当你终于有所发现时,要花额外的时间认真加以验证:构建可运行的 PoC,让安全团队能轻松复现。对一个目标理解得足够深入,通常比急于尽快找到一个漏洞走得更远。
你不“搞破解”的时候,喜欢做些什么?
耐力运动,主要是公路自行车,尤其是山路骑行。我喜欢长距离爬坡带来的身体挑战,也享受在更长距离中突破自我。这也是一种暂时远离屏幕、在户外度过时光的好方式。实际上,爬坡这件事有某种与漏洞研究颇为相似的感觉:你可以付出很多努力,却看不到多少进展;有时你完全不知道自己正在做的事是否会通向任何结果,但你就是继续前行。而时不时地,它会有回报。
有没有想和读者分享的社交媒体账号?
你可以在 HackerOne 上找到我。
感谢 @r31n 参与 GitHub 的漏洞赏金研究者聚焦活动!每向我们漏洞赏金项目提交一份报告,都是让 GitHub、我们的产品以及我们的客户更加安全的机会,我们也持续欢迎并感激与安全研究社区的协作。所以,如果这篇文章激发了你去寻找漏洞的念头,欢迎随时通过 HackerOne 提交你的发现。
标签:
- 漏洞赏金
- 网络安全
- 网络安全意识月
- 安全
作者
展开英文原文 · 与中文逐段对应
How bug bounty sharpens one researcher’s security skills
As Cybersecurity Awareness Month continues, the GitHub Bug Bounty team is excited to spotlight another top-performing security researcher from the GitHub Security Bug Bounty Program: @r31n !
As home to the world’s developers, GitHub is dedicated to the security and reliability of the code behind millions of projects, and our Bug Bounty Program remains a cornerstone of that commitment. Collaboration with external researchers is one of the most effective ways to improve security, and every year, the community helps us identify and fix vulnerabilities that make the platform safer for everyone.
The security research landscape is changing rapidly. AI has lowered the barrier to entry and become a genuine force multiplier. We use it across our own internal security programs, and we welcome researchers who do the same . However, what separates great research has not changed: validation, a working proof of concept, and a clear demonstration of real security impact. The tools do not matter; the quality of the work does. The researchers we spotlight this month exemplify exactly that standard through findings that are verified, reproducible, and demonstrate that a security boundary has been crossed rather than simply theorizing that one exists.
Researchers who consistently work at that level can earn an invitation to our permanent VIP program, which offers higher payouts, faster response times, and early previews of beta products and features. Learn more about how to qualify on our public bounty site .
As we wrap up our Cybersecurity Awareness Month celebration, we interview @r31n , a researcher renowned for their work on GitHub Enterprise Server, where they have repeatedly uncovered high-impact issues. Their reports consistently include working proofs of concept and clear reproduction steps, helping our engineering teams move from triage to remediation more quickly.
How did you get started in security and bug bounty, and what keeps you coming back to GitHub’s program?
I got into bug bounty because I wanted a way to keep developing my security skills outside the environments I work with every day. It exposes me to different products, technologies, and architectures I probably wouldn’t run into otherwise. GitHub is one of those programs I keep coming back to because there’s just so much surface area. It’s large, complex, and constantly changing. New features ship all the time, so it never really feels like a finished target. They also work closely with researchers, the bounty structure is competitive, and the swag is a nice bonus. It’s simply a program I enjoy spending time on.
What are your favorite classes of bugs to research and why?
I don’t really have one favorite bug class. What interests me more are exploit chains, especially cases where a few things that seem relatively harmless on their own come together and create something much more serious. An open redirect is a simple example. By itself, the impact might be limited. But if you find an allowlisted-domain SSRF that follows redirects, suddenly that open redirect can become a useful part of a much bigger chain. That’s probably the part of vulnerability research I enjoy most: finding those connections, looking at two or three separate bugs and realizing they can be combined in a way that wasn’t intended. It takes some technical knowledge, but also quite a bit of creativity.
How do you keep your skills sharp and stay on top of new vulnerability trends?
It’s actually a mix of different things. Security blogs, vulnerability write-ups, conference talks, proof of concepts, research papers, courses. I try to learn from wherever useful work is being shared. But most of it only really sticks once I try it myself. I can read a vulnerability write-up, but working through it myself gives me a much deeper understanding. If I actually reproduce the technique, play around with it, break it, and figure out why it behaves the way it does, that’s when it really stays with me. And later, when I see a similar pattern on a real target, it’s much easier to recognize.
What tools or workflows have been gamechangers for your research? Any lesser-known utilities you’d recommend?
I tend to prefer manual investigation and small, purpose-built scripts over large automated toolchains. If I notice I’m repeating the same task during research, I’ll usually automate that specific part. AI has probably impacted my way of working more than any individual security tool.
Even then, I think mindset matters more than tooling. You can become extremely good with a particular tool and still miss interesting bugs because you’re only looking at the target through the lens that tool gives you. Sometimes relying too heavily on tooling actually narrows the way you think. Tools change. Techniques change. Curiosity and persistence tend to age much better. So, I don’t really have one tool I’d recommend to everyone. The most useful tool is usually the one that helps answer the specific question I’m investigating.
Walk us through your general approach. How do you pick a target area, and how do you go from “interesting feature” to a confirmed finding?
I usually start by mapping out the application and getting a feel for how its different parts fit together. I tend to spend more time on complex functionality, integrations, trust boundaries, and anything that behaves a little differently from the rest. Experience and intuition matter too. Some areas simply look more likely to expose interesting security behavior. From there, I often think in terms of sources and sinks rather than starting with a specific vulnerability class. A source is a point where attacker-controlled data enters the application.
Think of a request parameter, uploaded file, API input, or data coming from another service. A sink can be a security-sensitive operation that consumes this data, for example, a network request, file access, process execution, database query, or authorization decision. The interesting part is tracing the path between the two. I look at how the data is transformed, validated, or passed across trust boundaries, and whether those controls are sufficient before it reaches the sink.
I like this approach because it lets me reason about attack paths without forcing my investigation into a predefined bug class. Sometimes the vulnerability only becomes obvious once you understand how a particular source can influence a security-sensitive operation. I consider a finding confirmed once I understand the attack path, can produce a working PoC, and can explain the impact.
Do you use AI in your research? Where does it genuinely help and where does it fall short?
Yes. Quite a lot, actually, but mostly as an accelerator. I use it for navigating unfamiliar code, finding call sites, tracing data through the codebase, and understanding how a system is structured and how its components interact. I also find it helpful for writing PoC scripts once I’ve identified the vulnerability.
Where it works best is when the question is specific. “Is this application vulnerable?” usually isn’t a very useful prompt. Give it the right context, explain what you already know, and ask a narrow question, and the quality goes up dramatically. There’s a bit of a paradox there. AI becomes more useful as you understand the problem better yourself. And I never treat its conclusions as facts. Hallucinations, false positives, bad assumptions, and confidently wrong answers are all common. Everything should still be manually verified. AI makes my work faster. However, it doesn’t replace understanding the application, developing intuition, or proving that something actually works.
What’s your guidance on using AI responsibly in bug bounty?
Use it to improve your research, not to outsource responsibility for it. If AI tells you it found a vulnerability, that doesn’t mean you found a real vulnerability. You still need to reproduce it yourself. You should understand exactly what’s happening, which security boundary or control is being violated, and what the real impact is. Ideally, you should understand the issue well enough that you could write the report without AI at all. Build a clear PoC. Make sure the security team can follow it. Know why every step matters.
AI has lowered the barrier to doing security research, which is great in a lot of ways. But you can also see the downside in the number of unverified reports teams now have to deal with. AI should make research better. Not just make more reports.
As the industry ships more AI-powered features, does testing them require a different mindset than traditional web bugs?
Yes. Conventional vulnerabilities still matter, but attackers may also be able to influence a probabilistic decision-making component through the data, instructions, or context it receives. But getting a model to say or do something unexpected isn’t necessarily the interesting part. The more important question is what that influence allows an attacker to achieve. Can they access something they should not or cause the system to act with privileges the attacker does not have? That’s why I don’t think model-level guardrails should ever be treated as the only or primary security boundary. You still need deterministic controls around the model. This includes proper authorization, least-privilege access, isolation, and validation. The surrounding systems matter just as much as the model itself. And traditional application security doesn’t disappear just because AI is involved. Model output should still be treated as untrusted input. If that output ends up in a browser, database query, shell command, web request, or another downstream system without the right controls, you can still end up with very familiar vulnerabilities: XSS, SQL injection, command injection, SSRF, and so on. I think the model is new. A lot of the dangerous sinks aren’t.
What’s one thing you wish you’d known when you first started?
Learn systems, not checklists. When I started, I was tempted to collect huge lists of techniques, payloads, tools, and bypasses and then work through them one by one. Those lists can be useful.
I still use them. But understanding how a system works has been far more valuable. Its internal logic. The data flows. Trust relationships. Assumptions. Why one component is allowed to talk to another. Why a particular restriction exists in the first place. I also learned not to assume something is secure because it looks secure, or because plenty of researchers have already tested it.
A lot of interesting research begins with: “Why does this work this way?” rather than “Which payload should I try next?” There’s some luck involved too. Sometimes you spend days following something that goes absolutely nowhere. Then you notice one tiny detail almost by accident and it turns into a high-impact finding. You can’t control that part. You can control whether you keep questioning things long enough to notice it.
What advice or resources would you recommend to researchers trying to land their first valid report?
Get comfortable with the fundamentals, then pick one program and one target and stick with them for a while. Constantly jumping between targets makes it difficult to build a real mental model of any of them. Use the application. Explore weird flows. Test different roles and permission levels. Read the documentation. Watch the requests and responses. Look at the APIs. Labs, courses, public write-ups, disclosed bug bounty reports, and intentionally vulnerable applications are all useful too. They teach you where bugs tend to hide and, over time, help build the intuition to recognize similar situations elsewhere.
One mistake I see a lot is relying on tools too early. Another is giving up because the obvious tests didn’t find anything. Tools help. They don’t build the mental model for you. And when you finally do find something, spend the extra time validating it properly. Create a working PoC. Make reproduction easy for the security team. Understanding one target deeply will usually get you further than trying to find a bug as quickly as possible.
What do you enjoy doing when you aren’t hacking?
Endurance sports, mainly road cycling, especially in the mountains. I enjoy the physical challenge of a long climb and pushing myself over longer distances. It’s also a great way to get away from screens for a while and spend some time outside. There’s actually something about climbing that feels pretty similar to vulnerability research. You can put in a lot of effort without seeing much progress. Sometimes you have no idea whether what you’re doing is going to lead anywhere. You just keep going. And every now and then, it pays off.
Any social media profiles you’d like to share with our readers?
You can find me on HackerOne .
Thank you, @r31n , for participating in GitHub’s bug bounty researcher spotlight! Each submission to our bug bounty program is a chance to make GitHub, our products, and our customers more secure, and we continue to welcome and appreciate collaboration with the security research community. So, if this inspired you to go hunting for bugs, feel free to report your findings through HackerOne .
Tags:
- bug bounty
- cybersecurity
- Cybersecurity Awareness Month
- Security
Written by
查看本期独立摘要
中文独立摘要 · AI 整理
这件事
在网络安全意识月期间,GitHub漏洞赏金团队介绍顶级安全研究者@r31n。他因在GitHub Enterprise Server上反复发现高危漏洞而闻名,并分享了研究方法、偏爱的漏洞类型以及对入门者的建议。文章亦说明GitHub赏金项目如何随AI降低门槛而成为「倍增器」,并以常驻VIP项目提供更高奖金与更快响应。
本页概括所列来源的重点,属于独立摘要;完整报道请阅读原站。整理时间:2026年10月23日 12:40(北京时间)。
信息从哪里来
据The GitHub Blog报道,由本站译为全文中文。
- The GitHub Blog 报道正文