主题
法律红线:什么时候你能动手,什么时候会出事
前一课你学会了怎么打,这一课告诉你什么时候不许打。这不是吓唬你——安全圈每年都有人因为"手痒"从爱好者变成被告,而他们中的大多数并不觉得自己在犯罪。这一课把界限画清楚,让你能放心地练、长久地练。
⚠️ 本课讲的是通识性理解,不构成法律意见。真遇到具体问题,请咨询执业律师。
一、先记住三句话
- "未经授权访问别人的系统"就是违法起点——不管你有没有造成损失,也不管你出于什么目的。
- "我只是看看""我没删数据"不是免责理由——技术上的克制,不能替代法律上的授权。
- "这个站有漏洞,所以活该"更不是理由——有漏洞不等于你已经获得许可。
安全圈最常被引用的一句话:漏洞属于有权限发现它的人,不属于先发现它的人。
二、中国法律框架:几条你必须知道的条款
2.1 《刑法》第 285 条:非法侵入计算机信息系统
- 第 1 款:侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统,处三年以下有期徒刑或者拘役。这一款保护的客体特殊,一旦沾上后果最重。
- 第 2 款:侵入上述领域以外的计算机信息系统,或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。
- 第 3 款:提供侵入、非法控制计算机信息系统的程序、工具(比如卖扫描器、写专门工具),情节严重的,同样入罪。
人话版:你拿一个 SQL 注入读到别人网站的数据库,或者在别人服务器上传了 webshell 拿到命令行,落在第 2 款上。注意它不要求你"破坏"什么——拿到数据、控制住系统,本身就已经够了。
2.2 《刑法》第 286 条:破坏计算机信息系统
对计算机信息系统功能进行删除、修改、增加、干扰,造成系统不能正常运行,后果严重的;或者对系统里存储、处理、传输的数据和应用程序进行删除、修改、增加;或者故意制作、传播计算机病毒等破坏性程序,影响系统正常运行——都可能落到这一条。
人话版:你跑一次压测把人家网站打瘫、你删了一张表、你上传了一个只会弹窗的后门,只要造成了"不能正常运行",就可能是 286 条。
2.3 《刑法》第 253 条之一:侵犯公民个人信息罪
向他人出售或者提供公民个人信息,情节严重的;或者在履行职责、提供服务过程中获取的;或者非法获取公民个人信息的,都可能入罪。
人话版:你从漏洞里导出了一份用户表(手机号、身份证、地址),哪怕你没卖、只是在群里发了一句"看这个库",就已经走在很危险的路上了。数据一旦离开那个系统,性质就变了。
2.4 《网络安全法》《数据安全法》《个人信息保护法》
- 《网络安全法》第 27 条:任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动;不得提供专门用于从事这类活动的程序、工具;明知他人从事危害网络安全活动,不得为其提供技术支持、广告推广、支付结算等帮助。
- 《网络安全法》第 21 条:网络运营者要按等级保护制度履行安全保护义务。这一条是"你以后工作时要守的规矩"。
- 《数据安全法》:确立数据分类分级保护制度,要求开展数据处理活动建立健全全流程数据安全管理制度。合法性与授权是前提。
- 《个人信息保护法》第 13 条:处理个人信息必须有合法性基础——同意、合同必需、法定义务、公共利益等。"我在做安全测试"不在这个列表里,除非你拿到的是明确的书面授权,且范围写清楚了。
2.5 还可能落到行政责任上
即使情节没到刑事标准,也可能按《治安管理处罚法》中关于侵入、干扰计算机信息系统等条款给予拘留、罚款的行政处罚。也就是说,"没坐牢"不等于"没事"。
三、什么叫"未经授权访问":人话翻译
| 场景 | 算不算未经授权 | 为什么 |
|---|---|---|
| 自己的虚拟机、自己的靶场 | ❌ 不算 | 你拥有完全处分权 |
| 公司内部系统,且你是被派去做测试的 | ❌ 不算 | 有内部授权链条 |
| 客户签了合同、写清范围,你在范围内测试 | ❌ 不算 | 有书面授权 |
| 漏洞赏金平台明确列出的资产,你按规则测 | ❌ 不算 | 平台规则构成授权要约 |
| 随便扫一个网站看有没有漏洞 | ✅ 算 | 你没有任何许可文件 |
| 同学给你他的账号,你拿去练手 | ✅ 算 | 他没有处分权,授权无效 |
| 用公开 EXP 打一个陌生的线上站 | ✅ 算,且最危险 | 既无授权,又可能造成破坏 |
| 把靶场的 payload 抄到真实站上 | ✅ 算 | 场景换了,授权没有跟着换 |
| 在别人网站上"只是提交一个搜索框看看报不报错" | ✅ 很可能算 | 未授权访问已经在发生了 |
一条实用的自检标准:如果我需要向警察解释"我为什么有权访问这台机器",我能拿出一张纸吗? 拿不出,就停手。
四、授权测试的正确形态
一次合规的测试,在动手之前一定先有"纸面":
- 书面授权 / 委托合同:盖了章的授权书或合同,明确写清委托方、受托方、测试目的;
- 测试范围(Scope):具体到域名、IP 段、子域名、App 包名。没列出来的就不是范围——"顺便试一下他们的 OA 系统"是典型的越界;
- 时间窗口:明确从哪天几点到哪天几点。不在窗口内测试,即使有授权也是违约、也可能被视为入侵;
- 测试方法与禁止项:是否允许 DoS/压测、是否允许社会工程、是否允许上传文件、是否允许触碰真实用户数据;
- 应急联系人:万一触发告警或造成影响,第一时间联系谁、怎么联系;
- 数据处理约定:发现敏感数据怎么办——通常约定不下载、不外传、留存最少证据,测试结束后销毁。
漏洞赏金(SRC) 同样有规则:平台或厂商会在项目页写明"测试范围""禁止行为""报告流程"。规则页就是你的授权书,它写了什么你就能做什么,它没写的你就别做。常见禁止项包括:大规模扫描、自动化爆破、对用户数据的访问、对生产环境做压力测试。
五、什么叫"越界":九个千万不要
- 拿到权限后继续翻数据:你证明了能进就够了,再往下读用户表就是另一回事;
- 下载、导出、留存用户信息:哪怕是"为了取证",超过必要限度也不行;
- 横向移动:从一台机器跳到内网其他机器,攻击面瞬间放大,责任也瞬间放大;
- 留后门、留 webshell:测试结束必须清理,留着就是埋雷;
- DoS / 压测:除非合同明确允许,否则任何可能影响可用性的动作都不要做;
- 修改或删除任何数据:包括"测试用"的脏数据,也可能影响真实业务;
- 触碰第三方系统:你测的是 A,A 又依赖 B,那不叫"顺带测 B";
- 公开漏洞细节:未修复前公开,可能帮到攻击者,也可能构成违约或侵权;
- 拿别人的真实账号练习:账号主人无权授权你测试平台方,这是双重越界。
把这九条记住,能避开九成以上的麻烦。
六、真实世界里最常见的踩坑
- "我就扫一下看看":用目录扫描器跑别人的站,流量特征极其明显,防火墙和态势感知系统几秒钟就会记下来。你以为是"探索",对方看到的是"攻击前奏"。
- "同学把账号给我了":学校系统属于学校,账号主人无权授权。而且这类案件线索极好查——登录 IP、时间、行为异常,一查一个准。
- "这个漏洞是公开的":公开的是漏洞信息,不是攻击许可。用公开 EXP 打生产站是最常见也最容易踩实刑的路径。
- "我把靶场 payload 拿去真实站试试":你脑子里只有"同一种漏洞",法律上却是"未经授权入侵"。靶场和真实站的边界不是技术边界,是授权边界。
- "我没有恶意":动机在量刑里可能被考虑,但不改变"是否入罪"的认定。
- "我只是帮他们修漏洞":善意必须在授权之后才是善意,否则就是替人做决定。
七、发现漏洞了,正确怎么做
如果你在授权范围内发现了漏洞,或者你偶然发现自己有权访问的系统有问题:
- 立即停止深入:验证到"能证明危害存在"就够了,不要再往后挖;
- 保留最小证据:截图、请求响应报文、时间戳。不要下载数据本体;
- 不要公开:不要在贴吧、群、微博、CSDN 发细节,也不要在 GitHub 挂 PoC;
- 联系责任方:厂商安全应急响应中心(SRC)、平台漏洞接收入口,或者通过其公开的安全邮箱。找不到就找官方客服转安全团队;
- 提交报告:写清影响范围、复现步骤(可复现、最少步骤)、危害评估、修复建议,附上证据;
- 保管好沟通记录:邮件、平台工单、聊天记录都要留存,这是你"从始至终都是合规善意"的证明;
- 约定保密与披露时间:尊重厂商的修复周期,修复完成后要公开也先和厂商沟通。
如果对方不回应或拒绝:那就让它过去。你没有权利因为"他不修"而去打它。
八、个人学习的安全边界清单
把下面这些变成你的默认设置:
- 只打自己搭的靶场——DVWA、Pikachu、自己的虚拟机,随便你折腾,随便你打坏;
- 只打明确授权的 SRC——而且先读完项目规则,把范围和禁止项抄下来;不确定的资产一律当成"不在范围";
- 本地虚拟机做实验最稳:把网络设成 NAT 或仅主机模式,做敏感实验时干脆断网,从物理上杜绝"手滑打到真站";
- 永远不把靶场放到公网:会漏洞的站一旦上公网,很快会被别人当成跳板,你也要担责;
- 不碰真实用户数据:看见手机号、身份证、订单表,截图都尽量别截,更不要导出;
- 不分享攻击载荷给"想试试真站"的人——这可能落到刑法第 285 条第 3 款"提供工具"上;
- 留一份实验日志:记下时间、目标、操作、结果。它既是学习记录,也是你的"我没有乱来"的证据。
💡 动手实验 1:在桌面新建一个文件
我的实验边界.md,写下三行:① 我允许自己测试的目标清单(先填上你的两台靶场地址);② 我的实验时间约定(比如"只在自己的时间段,只在本机");③ 三条我承诺绝不做的事(从第五节的九条里挑三条)。这份清单以后每次动手前读一遍。
💡 动手实验 2:检查你的 CentOS 7 虚拟机的网络模式。在虚拟机里执行
ip addr记下 IP,再ping -c 3 8.8.8.8看是否能通外网。然后练习"断网做实验":在 VMware 里把网络适配器临时改成 仅主机模式(Host-only),在虚拟机里再执行一次ping -c 3 8.8.8.8,看到100% packet loss就说明断网成功——这种状态下打靶场,物理上不可能误伤真实站点。
💡 动手实验 3:打开一个漏洞赏金平台(例如补天
https://www.butian.net或 CNVDhttps://www.cnvd.org.cn),找一个厂商项目,把它页面上的测试范围和禁止行为逐条抄进你的笔记,数一数有几条你原本"顺手就会做"。抄完你会发现,规则页比任何教程都更像一份授权书。
九、小结
text
有授权 = 可以动手 没授权 = 一律停手
看范围、看时间、看禁止项,一条都不能含糊
拿权限后不翻数据、不下载、不横向、不留后门、不压测
发现漏洞 → 停止深入 → 存证据 → 联系厂商 → 提交报告 → 不公开三句话收尾:
- 技术能力决定你能做什么,授权决定你被允许做什么,后者永远优先;
- 你的目标是成为一个能长期做安全的人,而不是一个因为一次手痒提前结束职业生涯的人;
- 所有练习都放在自己的靶场里——你有 DVWA 这种随便打的靶子,就没有任何理由去碰别人的系统。
回看工具部分:Burp Suite 上手 与 DVWA 本地靶场。等你把这三课都走完,你既有了手感,也有了边界——这正是本阶段标题里说的"把知识变成手感(含法律红线)"。
📎 本课对应知识库阅读:《知识库里的"授权测试与安全边界"主题文章》