0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OSSリポジトリ最新化のお知らせ(2026年4月)

0
Posted at

ご挨拶

皆様、セキュリティ対策してますか?
今回は、個人で公開しているOSSリポジトリ2つを2026年4月時点の最新に更新しましたので、その内容をまとめます。

更新対象リポジトリ

リポジトリ 概要
aws-wafv2-fail2ban AWS WAFv2でfail2banライクなIP制御を行うOSS
AWS-Client-VPN-Template AWS Client VPNをTerraformで構築するテンプレート

aws-wafv2-fail2ban

更新の背景

OWASP Top 10:2026 および2026年現在の攻撃動向に合わせて、WAFルールの大幅な強化とTerraform / CloudFormationの最新化を行いました。

Terraform 最新化

  • required_version >= 1.6 / AWS Provider ~> 5.80 / Archive ~> 2.7 に更新
  • rate_based_statementscope_down_statement に変更(構文バグ修正)
  • pattern_sets.tf の正規表現エスケープ問題を全面修正
  • IP Set に lifecycle { ignore_changes = [addresses] } を追加(Lambda動的更新との競合防止)
  • IAMポリシーをアカウントIDスコープに最小権限化
  • Lambda用 CloudWatch Log Group を明示的に定義
  • 変数バリデーション強化(CIDR検証、WAFv2最小値制約、環境名制約)

CloudFormation 最新化

  • 段階的制裁システム完全統合(Stage 1-4 + IP Set + Regex Pattern Set)
  • IP Manager Lambda / Teams通知Lambda をテンプレートに追加
  • CustomResponseBodies によるJSON形式のブロックレスポンス
  • Teams通知を Adaptive Card形式に移行(MessageCard非推奨対応)
  • パラメータに MinValue / MaxValue / AllowedValues バリデーション追加
  • LambdaPythonRuntime / IpTtlHours / TeamsWebhookUrl パラメータ追加

2026年攻撃動向対応(新規ルール)

2026年現在の攻撃動向に合わせて、以下のルールを新規追加しています。

ルール 対象
ModernAttackPatternRule SSRF、NoSQLi、GraphQLi、Log4Shell、エンコーディング回避
SuspiciousUserAgentRule強化 AI駆動スキャナ(GPT-crawler、LLM-agent、Crawl4AI等)
OversizedHeaderRule HTTP Flood / Slowloris(8KB超ヘッダー検知)

AI駆動のスキャナやクローラーが増加している昨今、User-Agentベースの検知ルールも強化しています。

従来型パターンの改善

  • SQLi: UNION-based + stacked queries + blind対応
  • XSS: SVG-based、iframe、object、embed追加
  • Traversal: double encoding回避対策
  • Body検査追加(oversize_handling = MATCH)
  • text_transformation に URL_DECODE + LOWERCASE の2段階適用

Lambda 改善

  • Python 3.13 + from __future__ import annotations 型ヒント対応
  • IP TTL自動期限切れ(デフォルト24時間、ip_ttl_hours で設定可能)
  • WAFv2 OptimisticLockException リトライ(最大3回)
  • CloudWatch Logs Insights ポーリング改善(Complete状態まで待機)
  • httpRequest.clientIp フィールド名修正
  • Teams通知: Adaptive Card v1.4形式に移行

破壊的変更

以下の破壊的変更がありますので、既存環境で利用されている方はご注意ください。

  • count_threshold の最小値が 100 に変更(WAFv2 rate-based制約)
  • CloudFormation テンプレートのリソース名が一部変更(既存スタック更新時は注意)
  • Teams通知が MessageCard → Adaptive Card に変更

AWS-Client-VPN-Template

更新の背景

Terraformコードのモダン化とSASTセキュリティ強化を実施しました。

Terraform & Provider

  • required_version>= 1.9 に更新(最新安定版: 1.14.x)
  • AWS Provider を ~> 5.80~> 6.39 にメジャーバージョンアップ

AWS Provider v6 破壊的変更の影響

破壊的変更 本プロジェクトへの影響
aws_eipvpc パラメータ廃止 影響なし(既に domain = "vpc" 使用済み)
Boolean strictness(文字列 "1"/"0" 不可) 影響なし(文字列boolean未使用)
OpsWorks/SimpleDB/WorkLink リソース削除 影響なし(未使用)
Redshift デフォルト値変更 影響なし(未使用)

既存環境への適用前に必ず terraform plan で差分を確認してください。また、terraform init -upgrade 実行時に .terraform.lock.hcl が更新されます。

セキュリティ強化(SAST)

今回の大きなポイントはセキュリティ強化です。

  • KMS CMK暗号化: CloudWatch Logs / CloudTrail / S3(キーローテーション有効)
    • enable_kms_encryption 変数で有効/無効を切替可能(デフォルト: true)
    • 無効時: S3はAES256、CloudWatch Logs/CloudTrailはデフォルト暗号化
  • S3バケット: SSL/TLS強制(DenyInsecureTransport)、ライフサイクルルール追加
  • セキュリティグループ: インラインルール → aws_vpc_security_group_*_rule に分離
  • UDP 443 ingressルール追加(Client VPNはTCP/UDP両対応)
  • VPNエンドポイント: セッションタイムアウト + ログインバナー追加
  • 証明書ARN outputを sensitive に設定
  • VPC Flow Logs追加(IAMロール付き、変数で有効/無効切替可能)

NAT Gateway モード選択

nat_gateway_mode 変数を追加し、用途に応じたNAT Gatewayの配置が選択できるようになりました。

モード 説明
regional 1 NAT GW(AZ非依存)
single_az 1 NAT GW(最初のAZに配置、コスト節約)※デフォルト
multi_az AZごとに1 NAT GW(高可用性)

multi_az 時はAZごとにルートテーブルを分離します。コストと可用性のバランスに応じて選択してください。

モダン化

  • Terraform check ブロックによる継続的バリデーション
  • Variable validation追加(CIDR、region、environment、retention)
  • 全outputを outputs.tf に集約
  • 不足していたoutput追加: VPN Endpoint ID/DNS、Subnet ID、KMS ARN
  • 非推奨 iic_vpn_group_id 変数を削除
  • log_retention_days 変数追加(デフォルト90日、旧30日)
  • vpn_session_timeout_hours 変数追加
  • default_tagsvar.environment を使用(ハードコード解消)

新規追加変数一覧

変数名 デフォルト 説明
nat_gateway_mode string single_az NAT GWの配置モード
enable_kms_encryption bool true KMS CMK暗号化の有効/無効
enable_vpc_flow_logs bool true VPC Flow Logsの有効/無効
log_retention_days number 90 CloudWatch Logs保持期間
vpn_session_timeout_hours number 8 VPNセッションタイムアウト

まとめ

2つのOSSリポジトリを2026年4月時点の最新に更新しました。

  • aws-wafv2-fail2ban: OWASP Top 10:2026対応、AI駆動攻撃対策、Terraform/CloudFormation最新化
  • AWS-Client-VPN-Template: SASTセキュリティ強化、KMS暗号化、NAT Gatewayモード選択、Terraformモダン化

どちらもOSSとして公開していますので、Issue・PRお待ちしております。

では。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?