如何为 SIEM on Amazon OpenSearch Service 添加 IP 地理位置?MaxMind GeoLite2 富集实战

📅 2026/8/18 18:21:16
如何为 SIEM on Amazon OpenSearch Service 添加 IP 地理位置?MaxMind GeoLite2 富集实战
如何为 SIEM on Amazon OpenSearch Service 添加 IP 地理位置MaxMind GeoLite2 富集实战【免费下载链接】siem-on-amazon-opensearch-serviceA solution for collecting, correlating and visualizing multiple types of logs to help investigate security incidents.项目地址: https://gitcode.com/gh_mirrors/si/siem-on-amazon-opensearch-serviceSIEM on Amazon OpenSearch Service 是一款开源的云原生日志安全分析平台用于收集、关联和可视化 VPC Flow Logs、CloudTrail、WAF 等多种日志帮助安全团队高效调查安全事件。但在实际使用中仅仅看到一串源 IP 往往难以快速判断威胁来源——如果每条日志都能自动附带这个 IP 来自哪个国家、哪座城市、属于哪个运营商调查效率将大幅提升。本文就带你实操如何为它添加IP 地理位置富集能力借助 MaxMind GeoLite2 免费数据库让日志分析自带地图。为什么安全分析需要 IP 地理位置富集在安全运营场景中IP 地理位置信息有三大核心价值攻击溯源发现可疑 IP 时立刻知道它来自哪个国家/城市辅助判断是否为预期流量来源跨境访问检测业务明明只在境内却出现大量境外 IP 访问往往是攻击的前兆可视化研判在地图上用热力图呈现流量分布异常一目了然汇报演示也更有说服力在 SIEM on Amazon OpenSearch Service 中这套能力由 es-loader日志加载 Lambda内置的地理信息富集模块提供使用 MaxMind 的GeoLite2-City城市级与GeoLite2-ASN自治域数据库完全免费、开箱即用。地理位置富集在 SIEM 中的整体工作流程 整个富集链路非常清晰下载器定期从 MaxMind 拉取数据库存入 S3 → es-loader 在处理每条日志时读取数据库进行 IP 查询 → 富集结果写入 OpenSearch → Dashboards 可视化展示。可以看到架构图中专门有一条 GeoIP 数据链路Lambda Function Download GeoIP负责下载数据库并上传到 S3 GeoIP BucketLambda Function es-loader在处理日志时从该 Bucket 获取 GeoIP 数据完成富集。整个流程全自动无需你手动维护数据库文件。第一步获取 MaxMind 免费 License Key GeoLite2 数据库需要 MaxMind 账号的 License Key 才能下载获取方式很简单访问 MaxMind 官网注册免费账号在账号后台创建 License Key会同时解锁 GeoLite2-City 与 GeoLite2-ASN 的下载权限复制这串 Key稍后部署时使用 提示License Key 形如 16 位或 40 位字符串。如果部署时留空SIEM 会直接跳过地理数据库下载日志将不含地理位置信息。第二步部署时开启地理位置富集最快配置方法⚡SIEM on Amazon OpenSearch Service 提供 CloudFormation 模板与 CDK 两种部署方式启用富集都只需填入一个参数GeoLite2LicenseKey。方式一CloudFormation 模板部署使用 deployment/siem-on-amazon-opensearch-service.template 创建堆栈时在参数列表的 Log Enrichment - optional 区域填入 License Key 即可。官方部署文档 docs/deployment.md 中对此参数有明确说明Maxmind license key. It will add country information to each IP address。方式二CDK 部署cdk deploy \ --parameters GeoLite2LicenseKeyxxxxxxxxxxxxxxxx部署完成后系统会自动创建aes-siem-geoip-downloaderLambda 函数下载数据库一个专用的 S3 地理数据库桶默认命名如aes-siem-123456789012-geo一条每 12 小时触发一次的 EventBridge 定时规则自动刷新数据库这些资源的编排逻辑集中在 source/cdk/mysiem/enrichment.py 中感兴趣的读者可以直接阅读源码。第三步为自定义日志开启 geoip 字段 ️对于内置支持的日志类型如 VPC Flow Logs、CloudTrail、WAF 等部署后即自动启用富集如果你接入的是自定义日志类型则需要在 es-loader 的配置文件user.ini/aws.ini中手动声明# 声明使用 GeoIP 的 ECS 字段值为 source 或 destination geoip source配套的字段映射示例完整说明见 docs/configure_siem.mdecs source.ip user.name http.request.method source.ip remotehost保存配置并重新加载 es-loader 后新写入的日志就会自动携带地理位置字段了。富集效果日志中新增了哪些字段 以 es-loader 中的 source/lambda/es_loader/siem/geodb.py 为例核心的GeoDB类会在每条日志处理时对 IP 执行查询带百万级 LRU 缓存性能无忧并返回以下字段字段含义示例值geo.country_iso_code国家 ISO 代码CNgeo.country_name国家名称Chinageo.city_name城市名称Beijinggeo.location.lon/lat经纬度116.39/39.90as.number自治域编号4134as.organization运营商/机构名称CHINANET查询逻辑同时支持 IPv4 与 IPv6并且对查询失败的 IP 会优雅降级返回空值不会影响日志加载主流程。进阶技巧处理代理背后的真实 IP ️很多场景下如 CDN 或 Web 应用日志里记录的是代理 IP 而非访客真实 IP。SIEM 内置了 X-Forwarded-For 处理与可信代理数据库机制下载器会定期抓取 AWS CloudFront、Global Accelerator、Cloudflare 等可信代理的 IP 段构建TrustedProxy数据库见 source/lambda/geoip_downloader/index.py配合trusted_proxy_list部署参数es-loader 可以自动穿透代理层、对真实客户端 IP 进行地理位置富集让地理信息更加准确。在 OpenSearch Dashboards 中查看地理位置热力图 富集完成后最直观的呈现方式就是地理位置热力图。以下面的 VPC Flow Logs 仪表板为例接受/拒绝的源 IP 流量会直接以颜色深浅标注在地图上异常地域的访问瞬间就能被发现。这类可视化可直接用于安全运营大屏与攻击溯源报告相关仪表板配置模板位于 source/saved_objects/each-dashboard/vpcflowlogs.ndjson导入即可复用。常见问题 FAQ ❓Q不填 License Key 会怎样A系统会跳过数据库下载日志不含地理信息其余功能完全不受影响之后可在 CloudFormation 控制台补充参数后更新堆栈。QLicense Key 失效了怎么办A下载器检测到 401 状态会停止更新并告警重新创建有效的 Key 并更新堆栈即可恢复。Q数据库多久更新一次A每 12 小时自动从 MaxMind 刷新一次到 S3es-loader 本地缓存 10 天内自动失效重下保证 IP 归属信息的时效性。小结 通过本文的 MaxMind GeoLite2 富集实战你已经可以为 SIEM on Amazon OpenSearch Service 的每一条日志自动补充 IP 地理位置与 ASN 信息让安全事件调查从看 IP升级为看地图。整个配置过程只需一个 License Key 和一次部署却能显著提升威胁研判效率强烈推荐在生产环境中启用。【免费下载链接】siem-on-amazon-opensearch-serviceA solution for collecting, correlating and visualizing multiple types of logs to help investigate security incidents.项目地址: https://gitcode.com/gh_mirrors/si/siem-on-amazon-opensearch-service创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考