Serverless扫描技术研究及应用
字数 1365 2025-08-22 18:37:21
Serverless扫描技术研究及应用
1. 技术概述
Serverless扫描技术是一种利用云函数(Serverless)服务实现隐匿扫描的技术,通过云函数作为代理进行扫描活动,具有以下特点:
- 绕过态势感知、WAF等安全设备
- 增大蓝队研判人员溯源难度
- 实现"封无可封,查无可查"的效果
- 利用云服务商的IP资源,增加扫描的隐匿性
2. 实现原理
2.1 核心思想
- 云函数仅实现单次扫描功能
- 本地控制代码负责整体扫描逻辑
- 通过API网关触发云函数执行
2.2 技术优势
- 出口IP随机分配,难以封禁
- 可自定义请求头,降低特征识别
- 多地域部署增加IP多样性
- 请求分散,难以关联为扫描行为
3. 目录扫描实现
3.1 云函数配置(以腾讯云为例)
-
创建云函数:
- 运行环境:Python 3.6
- 函数名:自定义
- 地域:随机选择(影响出口IP)
-
云函数代码:
import requests
def main_handler(event, context):
headers = event["headers"]
url = event["queryString"]["url"]
path = event["queryString"]["path"]
crake_url = str(url + path)
try:
r = requests.get(crake_url, timeout=5, headers=headers, verify=False)
status = r.status_code
except Exception:
status = None
pass
return status, crake_url
- 触发器配置:
- 创建API网关触发器
- 取消勾选"集成响应"
- 路径设置为"/"
3.2 本地控制代码优化
- User-Agent随机化:
# get_ua-header.py
UA = [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64)...",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...",
# 更多UA...
]
# 使用时随机选择UA
headers = {
"User-Agent": random.choice(UA)
# 可添加更多合法header
}
- 多地域部署:
- 创建相同功能的云函数,选择不同地域
- 单个地域限制:5个随机出口IP
- 多地域可突破IP数量限制
3.3 扫描执行
- 通过API网关域名传参(url和path)
- 多个云函数分工扫描字典不同部分
- 结果汇总到本地
4. 端口扫描实现
4.1 云函数代码
from socket import *
def main_handler(event, context):
IP = event["queryString"]["ip"]
port = event["queryString"]["port"]
try:
conn = socket(AF_INET, SOCK_STREAM)
res = conn.connect_ex((str(IP), int(port)))
conn.send('Hello,World!'.encode("utf8"))
results = conn.recv(25)
if res == 0:
conn.close()
return port
except Exception as err:
print(err)
finally:
print("")
conn.close()
return None
4.2 本地控制实现
- 使用协程加速扫描(grequests模块)
- 多云函数分工扫描不同端口段
- 结果汇总分析
4.3 扫描特征
- 出口IP显示为云服务商IP
- 在态势感知中表现为分散的单次连接
- 难以关联为扫描行为
5. 高级技巧与对抗
5.1 规模化部署
-
多地域策略:
- 同一云服务商不同地域部署
- 单个用户每个地域5个随机IP
- n个地域可获得n×5个IP
-
多云策略:
- 同时使用多个云服务商(腾讯云、阿里云等)
- 进一步增加IP多样性
5.2 隐匿增强
-
请求特征优化:
- 完全自定义HTTP头
- 模拟正常用户请求模式
- 添加随机延时
-
扫描策略:
- 分批扫描,降低频率
- 随机化扫描顺序
- 与正常业务请求混合
5.3 蓝队防御思路
-
检测方法:
- 分析请求内容而非仅IP频率
- 关注IDC IP段的异常请求
- 关联多个IP的相似行为
-
防御措施:
- 封禁可疑IP
- 增强WAF规则检测非常规扫描
- 监控云服务商IP段的异常请求
6. 工具与资源
-
空间测绘工具Kunyu:
- 用于分析扫描IP归属
- 下载地址: https://github.com/knownsec/Kunyu
-
示例代码仓库:
- Serverless扫描实现代码
- 下载地址: https://github.com/wikiZ/ServerlessScan
7. 总结与思考
7.1 技术价值
- 提供了一种高隐匿性的扫描方式
- 突破了传统扫描的IP限制
- 展示了云服务在安全领域的双刃剑特性
7.2 攻防对抗启示
- 红队需不断寻找新的技术突破点
- 蓝队需更新防御思路,超越IP封禁的传统方法
- 云服务的安全使用需要厂商和用户共同关注
7.3 未来发展
- 结合更多云原生技术增强隐匿性
- 自动化部署和扫描策略优化
- 对抗检测的持续演进
通过本文介绍的技术,安全研究人员可以更好地理解Serverless技术在安全扫描中的应用,同时也提醒防御方需要更新传统的安全防护策略,以应对新型的攻击手法。