<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>凭据治理 on Zero Day Notes</title>
        <link>https://blog.5772447.xyz/tags/%E5%87%AD%E6%8D%AE%E6%B2%BB%E7%90%86/</link>
        <description>Recent content in 凭据治理 on Zero Day Notes</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh</language>
        <lastBuildDate>Fri, 07 Aug 2026 07:00:00 +0800</lastBuildDate><atom:link href="https://blog.5772447.xyz/tags/%E5%87%AD%E6%8D%AE%E6%B2%BB%E7%90%86/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>一次服务器暴露面收敛Checklist：从端口扫描到凭据治理的落地清单</title>
            <link>https://blog.5772447.xyz/posts/83bf4e7f/</link>
            <pubDate>Fri, 07 Aug 2026 07:00:00 +0800</pubDate>
            <guid>https://blog.5772447.xyz/posts/83bf4e7f/</guid>
            <description>&lt;h2 id=&#34;问题背景&#34;&gt;&lt;a href=&#34;#%e9%97%ae%e9%a2%98%e8%83%8c%e6%99%af&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;问题背景&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;近几年我们连续踩过几类「看起来不相关、根因都是暴露面没收住」的坑：公网 Elasticsearch 9200 裸奔被 Meow 类脚本删库、云账号 AccessKey 硬编码进公开仓库被 11 分钟捡走挖矿、Web 上传接口只信前端后缀被种 Webshell、临时联调安全组 &lt;code&gt;0.0.0.0/0&lt;/code&gt; 放完忘记回收。每一起单独复盘都能写一篇排查文，但复盘越多越发现——真正缺的不是又一个应急手册，而是&lt;strong&gt;上线前就能挡住裸奔的收敛清单&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;这篇不再还原某一场事故的时间线，而是把过去半年处置经验压成一份可勾选的 &lt;strong&gt;服务器暴露面收敛 Checklist&lt;/strong&gt;。对象覆盖：Linux/Windows 主机、容器节点、云安全组/NSG、数据库与中间件监听面、运维入口（SSH/RDP/堡垒机）、静态密钥与临时凭证。目标很具体：任何一台新机器、任何一个新端口、任何一把新密钥，上线前都能在清单上找到对应勾选项；历史资产也能用同一套清单做季度收敛。&lt;/p&gt;&#xA;&lt;h2 id=&#34;故障现象&#34;&gt;&lt;a href=&#34;#%e6%95%85%e9%9a%9c%e7%8e%b0%e8%b1%a1&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;故障现象&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;暴露面失控通常不会以「安全事件」的名义出现，而是以下列「业务/运维症状」伪装登场：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;账单异常先于告警&lt;/strong&gt;：境外地域凭空多出高配实例、GPU 矿机，费用曲线夜间断崖上翘，业务监控却一片绿。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;数据组件忽然只剩勒索索引&lt;/strong&gt;：ES / Mongo / Redis / Kafka 管理口对公网开放，脚本化扫描器 24 小时内完成发现→删库→勒索索引三连。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;主机出现 UID 0 影子账户与异常外联&lt;/strong&gt;：应用低权限账户却能通过 sudoers 提权，或上传目录同源可执行导致 Webshell 落地后直接出网。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;临时放行永久生效&lt;/strong&gt;：联调同学开了 &lt;code&gt;0.0.0.0/0:9200/3306/6379/22&lt;/code&gt;，工单关了规则还在，九十天后某次全网扫描直接命中。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;「内网服务」其实在公网&lt;/strong&gt;：NLB/CLB 误绑公网 IP、K8s Service type=LoadBalancer 没走内网注解、NAT 网关 SNAT 表把管理口映出去——资产台账里写着内网，扫描器从公网就能打到。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;共同特征只有一句：&lt;strong&gt;攻击面比资产台账大，而台账又比监控面大&lt;/strong&gt;。下面用一次模拟演练场景（对照真实处置经验）把 Checklist 跑通。&lt;/p&gt;&#xA;&lt;h2 id=&#34;排查过程&#34;&gt;&lt;a href=&#34;#%e6%8e%92%e6%9f%a5%e8%bf%87%e7%a8%8b&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;排查过程&#xD;&#xA;&lt;/h2&gt;&lt;h3 id=&#34;1-先画谁在听谁能连两张图&#34;&gt;&lt;a href=&#34;#1-%e5%85%88%e7%94%bb%e8%b0%81%e5%9c%a8%e5%90%ac%e8%b0%81%e8%83%bd%e8%bf%9e%e4%b8%a4%e5%bc%a0%e5%9b%be&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;1. 先画「谁在听、谁能连」两张图&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;不做资产盘点就谈收敛，等于盲人摸象。我们用三层命令把「真实监听面」拉出来，和 CMDB/云厂商资产清单对账：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;10&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;11&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 主机层：所有对外监听（含 0.0.0.0 / :: / 内网多网卡）&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ss -lntup&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 或&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;netstat -lntup&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 进程归属：哪个二进制占了这个端口&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;lsof -iTCP -sTCP:LISTEN -P -n&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 云侧：安全组/NSG 入站 0.0.0.0/0 规则（以阿里云 CLI 为例，其他云换对应命令）&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;aliyun ecs DescribeSecurityGroupAttribute --SecurityGroupId sg-xxx &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  | jq &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;.Permissions.Permission[] | select(.SourceCidrIp==&amp;#34;0.0.0.0/0&amp;#34;)&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;对账结果常见三类漂移：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;漂移类型&lt;/th&gt;&#xA;          &lt;th&gt;典型表现&lt;/th&gt;&#xA;          &lt;th&gt;风险&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;台账有、实际无&lt;/td&gt;&#xA;          &lt;td&gt;CMDB 记着 8080，进程早下线&lt;/td&gt;&#xA;          &lt;td&gt;低，但干扰优先级&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;实际有、台账无&lt;/td&gt;&#xA;          &lt;td&gt;临时 NodePort / 调试端口未登记&lt;/td&gt;&#xA;          &lt;td&gt;&lt;strong&gt;高&lt;/strong&gt;，盲区&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;规则宽、业务窄&lt;/td&gt;&#xA;          &lt;td&gt;安全组放 0-65535，应用只听 443&lt;/td&gt;&#xA;          &lt;td&gt;&lt;strong&gt;高&lt;/strong&gt;，横向面过大&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;容器节点还要多查一层：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;3&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;4&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl get svc -A -o wide | awk &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;$5 ~ /LoadBalancer|NodePort/&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl get networkpolicy -A&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# CNI 层真实放行（Calico 示例）&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;calicoctl get gnp,np -o yaml | grep -E &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;cidr:|protocol:|ports:&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h3 id=&#34;2-端口收敛默认拒绝按业务建白名单&#34;&gt;&lt;a href=&#34;#2-%e7%ab%af%e5%8f%a3%e6%94%b6%e6%95%9b%e9%bb%98%e8%ae%a4%e6%8b%92%e7%bb%9d%e6%8c%89%e4%b8%9a%e5%8a%a1%e5%bb%ba%e7%99%bd%e5%90%8d%e5%8d%95&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;2. 端口收敛：默认拒绝，按业务建白名单&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;收敛顺序建议 &lt;strong&gt;从外到内&lt;/strong&gt;：公网入口 → 跨 VPC/专线 → 同 VPC 子网 → 主机本地防火墙。原则：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;公网只留 443（及必要的 80 跳转）&lt;/strong&gt;；SSH/RDP/数据库/缓存/消息队列 &lt;strong&gt;一律禁止对 &lt;code&gt;0.0.0.0/0&lt;/code&gt;&lt;/strong&gt;。&lt;/li&gt;&#xA;&lt;li&gt;运维入口收敛到 &lt;strong&gt;堡垒机 / VPN / 零信任网关&lt;/strong&gt; 之后，源 IP 写成堡垒机出口段，而不是「公司出口 + 家庭宽带 + 个人 4G」。&lt;/li&gt;&#xA;&lt;li&gt;数据库与中间件监听绑定 &lt;strong&gt;内网网卡或 127.0.0.1 + 本地 socket&lt;/strong&gt;，禁止直接绑 &lt;code&gt;0.0.0.0&lt;/code&gt; 再靠安全组兜底——安全组被误改时，本地绑定是最后一道闸。&lt;/li&gt;&#xA;&lt;li&gt;容器环境优先用 &lt;strong&gt;ClusterIP + Ingress&lt;/strong&gt;，慎用 NodePort；必须用 LoadBalancer 时强制内网注解（各云字段不同，写入变更模板）。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;主机防火墙示例（firewalld，策略与云安全组对齐，双保险）：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;3&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;4&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;firewall-cmd --permanent --set-default-zone&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;drop&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;firewall-cmd --permanent --zone&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;public --add-service&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;https&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;firewall-cmd --permanent --zone&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;public --add-rich-rule&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;rule family=ipv4 source address=10.20.0.0/16 port port=22 protocol=tcp accept&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;firewall-cmd --reload&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Windows 对等动作：&lt;code&gt;Get-NetFirewallRule&lt;/code&gt; 清点 + GPO 下发「禁止高危端口入站」，RDP 仅放行堡垒机网段。&lt;/p&gt;&#xA;&lt;h3 id=&#34;3-身份与凭据比关端口更难也更致命&#34;&gt;&lt;a href=&#34;#3-%e8%ba%ab%e4%bb%bd%e4%b8%8e%e5%87%ad%e6%8d%ae%e6%af%94%e5%85%b3%e7%ab%af%e5%8f%a3%e6%9b%b4%e9%9a%be%e4%b9%9f%e6%9b%b4%e8%87%b4%e5%91%bd&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;3. 身份与凭据：比关端口更难、也更致命&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;端口收敛解决的是「门开没开」；凭据治理解决的是「钥匙有几把、谁还握着」。对照真实事故，清单里这几项一项不能少：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;静态长期密钥清零目标&lt;/strong&gt;：云 AK/SK、对象存储签名密钥、镜像仓库 robot token、CI PAT——默认生命周期 ≤ 90 天，能上 STS/实例角色的全部上。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;代码与镜像禁硬编码&lt;/strong&gt;：pre-commit + CI 强制 gitleaks/trufflehog；历史仓库做过一次 &lt;code&gt;git filter-repo&lt;/code&gt; 的，要默认「仍按已泄露处置」轮换全部命中密钥。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;sudoers / 本地管理员最小化&lt;/strong&gt;：禁止 &lt;code&gt;NOPASSWD: ALL&lt;/code&gt;，禁止给 www-data/nginx 配 &lt;code&gt;find&lt;/code&gt;/&lt;code&gt;tar&lt;/code&gt;/&lt;code&gt;vim&lt;/code&gt;/&lt;code&gt;python&lt;/code&gt; 等 GTFOBins 高危组合；Windows 本地 Administrators 组成员季度审计。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;SSH 密钥与 authorized_keys 基线&lt;/strong&gt;：禁用密码登录、禁用 root 直登；&lt;code&gt;authorized_keys&lt;/code&gt; 纳入 FIM（AIDE/OSSEC/自研）；跳板机登录全量审计。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;应用密钥进密钥管理系统&lt;/strong&gt;：HashiCorp Vault / 云 KMS / 密封 secrets，禁止 &lt;code&gt;.env&lt;/code&gt; 进镜像层。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;快速体检命令：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;3&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;4&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;5&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;6&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;7&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;8&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;9&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 机器上是否残留明文密钥文件（示例，按环境改路径）&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;grep -RInE &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;AKIA[0-9A-Z]{16}|LTAI[0-9A-Za-z]{12,}|BEGIN (RSA |OPENSSH )?PRIVATE KEY&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  /home /opt /var/www /root 2&amp;gt;/dev/null | head&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# sudo 高危组合&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;grep -RInE &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;NOPASSWD|ALL\s*=\s*\(.*\)\s*ALL&amp;#39;&lt;/span&gt; /etc/sudoers /etc/sudoers.d/ 2&amp;gt;/dev/null&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# SSH 配置基线&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sshd -T | grep -E &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;passwordauthentication|permitrootlogin|pubkeyauthentication&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h3 id=&#34;4-云侧边界与以为内网的坑&#34;&gt;&lt;a href=&#34;#4-%e4%ba%91%e4%be%a7%e8%be%b9%e7%95%8c%e4%b8%8e%e4%bb%a5%e4%b8%ba%e5%86%85%e7%bd%91%e7%9a%84%e5%9d%91&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;4. 云侧边界与「以为内网」的坑&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;安全组/NSG 之外，还有三类高发误配：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;负载均衡误绑公网&lt;/strong&gt;：内网 CLB 创建时点错「公网」，或后续被变更成公网 IP。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;对象存储桶策略过宽&lt;/strong&gt;：&lt;code&gt;Principal: *&lt;/code&gt; + &lt;code&gt;s3:GetObject&lt;/code&gt; 组合等于公开读；再叠预签名 URL 长期有效就更糟。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;安全组引用安全组&lt;/strong&gt; 形成隐式大环：A 放行 B，B 放行 C，C 对公网 22 开放——人眼 ban 单组时看不出链路。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;建议每月导出全量安全组做离线分析，用脚本标红：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;入站源为 &lt;code&gt;0.0.0.0/0&lt;/code&gt; 或 &lt;code&gt;::/0&lt;/code&gt; 且端口 ∈ {22, 3389, 3306, 5432, 6379, 9200, 27017, 9092, 2379, 6443}&lt;/li&gt;&#xA;&lt;li&gt;出站完全放开且实例角色权限过大（可被 SSRF 换成凭证盗用）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;5-持续扫描收敛不是项目是节奏&#34;&gt;&lt;a href=&#34;#5-%e6%8c%81%e7%bb%ad%e6%89%ab%e6%8f%8f%e6%94%b6%e6%95%9b%e4%b8%8d%e6%98%af%e9%a1%b9%e7%9b%ae%e6%98%af%e8%8a%82%e5%a5%8f&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;5. 持续扫描：收敛不是项目，是节奏&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;一次性收敛做完，三个月后必然回潮。最低可行节奏：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;频率&lt;/th&gt;&#xA;          &lt;th&gt;动作&lt;/th&gt;&#xA;          &lt;th&gt;工具/产出&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;每日&lt;/td&gt;&#xA;          &lt;td&gt;公网高危端口变化 diff&lt;/td&gt;&#xA;          &lt;td&gt;masscan/nmap + 基线对比；或云厂商「暴露面」产品&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;每周&lt;/td&gt;&#xA;          &lt;td&gt;新增 &lt;code&gt;0.0.0.0/0&lt;/code&gt; 规则工单抽检&lt;/td&gt;&#xA;          &lt;td&gt;云配置审计 / Config&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;每月&lt;/td&gt;&#xA;          &lt;td&gt;全量监听端口 vs CMDB 对账&lt;/td&gt;&#xA;          &lt;td&gt;主机 Agent 采集 + 报表&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;每季&lt;/td&gt;&#xA;          &lt;td&gt;密钥轮换与权限右转&lt;/td&gt;&#xA;          &lt;td&gt;RAM/IAM 权限分析 + 密钥年龄报表&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;每半年&lt;/td&gt;&#xA;          &lt;td&gt;红队/外部扫描复测&lt;/td&gt;&#xA;          &lt;td&gt;第三方或自建漏洞扫描&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;告警必须「可行动」：只报「发现 9200 对公网开放」不够，要带 &lt;strong&gt;实例 ID、安全组规则 ID、首次发现时间、负责人、工单链接&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;h2 id=&#34;解决方案&#34;&gt;&lt;a href=&#34;#%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;解决方案&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;把上面过程固化成上线门禁与存量治理两份清单。&lt;/p&gt;&#xA;&lt;h3 id=&#34;a-新资产上线门禁-checklist未勾完禁止投产&#34;&gt;&lt;a href=&#34;#a-%e6%96%b0%e8%b5%84%e4%ba%a7%e4%b8%8a%e7%ba%bf%e9%97%a8%e7%a6%81-checklist%e6%9c%aa%e5%8b%be%e5%ae%8c%e7%a6%81%e6%ad%a2%e6%8a%95%e4%ba%a7&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;A. 新资产上线门禁 Checklist（未勾完禁止投产）&#xD;&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;strong&gt;资产登记&lt;/strong&gt;：主机/容器集群/中间件实例写入 CMDB，含负责人、环境、是否允许公网&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;strong&gt;监听面最小&lt;/strong&gt;：应用只绑必要网卡与端口；管理口不绑 &lt;code&gt;0.0.0.0&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;strong&gt;安全组默认拒绝&lt;/strong&gt;：入站白名单精确到源网段 + 端口；无 &lt;code&gt;0.0.0.0/0&lt;/code&gt; 高危端口&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;strong&gt;运维入口&lt;/strong&gt;：SSH/RDP 仅堡垒机网段；已禁用密码登录与 root 直登&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;strong&gt;主机防火墙&lt;/strong&gt;：与安全组同策略双保险（防安全组被误改）&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;strong&gt;身份最小权限&lt;/strong&gt;：实例角色 / 进程账户无多余 sudo；无 GTFOBins 高危组合&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;strong&gt;密钥来源&lt;/strong&gt;：无硬编码 AK/SK；CI/CD 用 OIDC 或短时令牌；镜像无 &lt;code&gt;.env&lt;/code&gt; 密钥层&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;strong&gt;日志与审计&lt;/strong&gt;：登录审计、安全组变更审计、高危 API 调用告警已接值班通道&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;strong&gt;备份与恢复点&lt;/strong&gt;：数据组件有最近一次成功备份，且恢复演练记录未过期&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;strong&gt;扫描通过&lt;/strong&gt;：上线前外部扫描 + 内部监听对账均无新增高危项&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;b-存量资产季度收敛-checklist&#34;&gt;&lt;a href=&#34;#b-%e5%ad%98%e9%87%8f%e8%b5%84%e4%ba%a7%e5%ad%a3%e5%ba%a6%e6%94%b6%e6%95%9b-checklist&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;B. 存量资产季度收敛 Checklist&#xD;&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 导出全网 &lt;code&gt;0.0.0.0/0&lt;/code&gt; 入站规则，高危端口清零或改堡垒机源&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 全量 &lt;code&gt;ss -lntup&lt;/code&gt; / 云负载均衡监听 与 CMDB 对账，盲区端口下线或补登记&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 数据库/缓存/消息队列管理口确认不可从公网与非业务网段直达&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 长期 AK/SK、robot token、CI PAT 年龄 &amp;gt; 90 天全部轮换&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 公开仓库与历史 commit 再扫一轮密钥（含 fork 与镜像站）&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; sudoers、本地管理员组、authorized_keys 抽样 100% + 全量自动化基线&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; K8s：清点 NodePort/LoadBalancer/无主 Ingress；NetworkPolicy 是否从 default-allow 误收到不可用（回滚预案必备）&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 对象存储桶策略与 ACL 扫描，公开读/写清零&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 临时联调规则自动过期机制是否生效（TTL 标签或云防火墙定时策略）&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 复测报告归档，遗留项录入风险台账并设到期日&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;c-发现已裸奔时的-30-分钟止血序&#34;&gt;&lt;a href=&#34;#c-%e5%8f%91%e7%8e%b0%e5%b7%b2%e8%a3%b8%e5%a5%94%e6%97%b6%e7%9a%84-30-%e5%88%86%e9%92%9f%e6%ad%a2%e8%a1%80%e5%ba%8f&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;C. 发现「已裸奔」时的 30 分钟止血序&#xD;&#xA;&lt;/h3&gt;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;先断后查&lt;/strong&gt;：安全组/NSG/防火墙立即收口，保留只读镜像/快照用于取证。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;判定是否失陷&lt;/strong&gt;：看操作审计与主机外联，区分「仅暴露」与「已被利用」。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;轮换凭据&lt;/strong&gt;：凡是这台机器/这个组件能摸到的密钥，默认按已泄露轮换。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;数据完整性&lt;/strong&gt;：核心库做只读快照，对比勒索索引/异常 drop。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;复盘进清单&lt;/strong&gt;：把本次漏网项回写到门禁 Checklist，避免同类第三次出现。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;根因分析&#34;&gt;&lt;a href=&#34;#%e6%a0%b9%e5%9b%a0%e5%88%86%e6%9e%90&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;根因分析&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;暴露面失控很少是「不会配安全组」这么简单，深层通常是四洞叠加：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;责任缝隙&lt;/strong&gt;：应用只关心服务起来，网络只关心通，安全只关心扫描器报表——没有人在上线门禁处做最终勾选。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;临时性没有生命周期&lt;/strong&gt;：联调规则、调试端口、个人 AK，创建时都有正当理由，却没有 TTL 与自动回收。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;控制面单一&lt;/strong&gt;：只信云安全组，主机防火墙空置；或只信主机 iptables，容器 NodePort 从旁路露出。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;检测滞后于攻击自动化&lt;/strong&gt;：扫描器与盗钥机器人是分钟级，人工季度巡检是季度级，窗口期天然留给攻击者。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;所以 Checklist 的本质不是文档，是 &lt;strong&gt;把「默认拒绝 + 最小权限 + 短生命周期 + 持续对账」写进发布流程的强制闸门&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;h2 id=&#34;预防措施&#34;&gt;&lt;a href=&#34;#%e9%a2%84%e9%98%b2%e6%8e%aa%e6%96%bd&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;预防措施&#xD;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;发布平台强制校验&lt;/strong&gt;：CI 流水线集成 gitleaks；CD 创建安全组前校验规则模板，拒绝高危 &lt;code&gt;0.0.0.0/0&lt;/code&gt;。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;安全组即代码&lt;/strong&gt;：Terraform/Pulumi 管理，PR 必经两人审批；控制台手工改动由配置审计告警并自动漂移纠正。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;密钥默认短时&lt;/strong&gt;：云上业务优先实例 RAM 角色 / Pod IRSA / OIDC 联邦，静态 AK 走例外审批且 90 天必轮换。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;暴露面日更大盘&lt;/strong&gt;：每日公网端口 diff 进值班群，新增项 T+0 认领、T+1 闭环。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;临时规则 TTL&lt;/strong&gt;：所有「临时放行」必须带过期时间，到期自动删；无 TTL 的变更单直接打回。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;双层防御&lt;/strong&gt;：云安全组 + 主机防火墙 +（容器）NetworkPolicy，任一层被误改另两层仍可兜住。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;桌面与服务器同一套思想&lt;/strong&gt;：运维笔记本的 RDP/SMB/WinRM、跳板机、堡垒机会话，一并纳入季度收敛，避免「服务器收了、人的电脑还是跳板」。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;演练&lt;/strong&gt;：每半年做一次「故意裸奔再收敛」桌面推演，验证清单是否可执行、告警是否会响、职责是否清晰。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;总结&#34;&gt;&lt;a href=&#34;#%e6%80%bb%e7%bb%93&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;总结&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;服务器被打穿的叙事里，0day 很少，&lt;strong&gt;忘关的端口、忘删的规则、忘轮换的密钥&lt;/strong&gt; 才是主角。把暴露面收敛写成 Checklist，是为了把分散在 ES 裸奔、AK 挖矿、Webshell、sudo 提权等多篇事故里的共性动作，收成上线前能勾、季度能复用、出事能止血的同一套动作。&lt;/p&gt;&#xA;&lt;p&gt;落地时不必追求一次完美：先上「新资产门禁」十条，再跑一个季度「存量高危 &lt;code&gt;0.0.0.0/0&lt;/code&gt; 清零」，同时把密钥扫描嵌进 CI。等这三件事稳定，再叠加日更扫描大盘与安全组即代码。暴露面不会归零，但可以逼近「攻击者自动化打不进、打进了分钟级能发现、发现了有清单可执行」——这比再写一篇漂亮的事后复盘，值钱得多。&lt;/p&gt;&#xA;</description>
        </item></channel>
</rss>
