1
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?

FUJITSUAdvent Calendar 2024

Day 3

【AWS】EFSマルウェアスキャンの定期実行(ECS Fargate+ClamAV)

Last updated at Posted at 2024-12-04

はじめに

AWSマネージドサービスのNFSサーバーである EFS に対してECS Fargate+ClamAVでマルウェアスキャンを定期実行する方法を共有します。

要件として「マルウェア対策を導入すること」というのがよくあります。EFSを使っているケースで、安価にマルウェア対策したい場合の参考になれば幸いです。

概要

現時点でAWSによるEFSのマルウェア対策の機能は提供されていません。

  • サードパーティー製品の導入などのコストをかけたくない
    → OSSのClamAVとサーバーレスのコンテナで定期スキャンしよう!

想定ケース

Webシステムでアップロードされたファイルの保存先としてEFSを使用

要件

  • EFS上のファイルを定期スキャンしたい(週1回、フルスキャンなど)
  • 安価に対応したい。過剰な対策コストはかけられない

対応検討

  • 万一、EFSにマルウェアが保存されても、それだけでは悪用されないと割り切る
  • エンドポイント側とサーバー側で責任共有/分担する
  • サーバー側では定期的なフルスキャンのみ対応する
    • エンドポイント側でリアルタイムスキャンできなかった未知のマルウェアは、サーバー保存時のスキャンでも対応できない可能性が高い
    • サーバー側では定期的にフルスキャンすることでカバーする。(時間が経ち、未知→既知になれば対応できる)

具体策

  • 安価に対応したいため、OSSの ClamAV を使用する
  • docker版があるため、サーバーレスのコンテナで動かす
    • 制限の少ない ECS Fargate を選択
    • ECSタスク定義で、EFSマウントを設定
  • コンテナでウイルスデータベース更新(freshclam)とスキャン(clamscan)を実行する
  • 定期実行するため、ECSタスクスケジューリングを使用

ClamAVについて

オープンソース(GPLv2)のウイルス対策ツールキット。Cisco Systems, Incによって提供されている。

構成要素

  • EFS
  • ECS Fargate+タスクスケジューリング
  • ClamAV(Docker Hub / clamav/clamav:1.2)

構成図

aws-ecs-efs-scan.png

ClamAVコンテナの用意

  • Dockerfile
    FROM clamav/clamav:1.2
    COPY scan.sh /
    RUN chmod +x /scan.sh
    RUN mkdir -p /data
    CMD /scan.sh
    
  • scan.sh
    #!/bin/sh
    freshclam
    clamscan -v -r /data
    
  • 参考:docker-compose.yml (ローカル検証用)
    services:
      clamav:
        build: .
    

AWS設定

手順(詳細は省略)

  • 前提:EFS 作成、アクセスポイント設定済み
  • CodeCommit リポジトリ作成 (Git)
  • ECR リポジトリ作成 (コンテナイメージ管理)
  • ECS タスク定義作成
  • ECS タスクスケジューリング設定

留意事項

  • メモリは2GB以上必須
    • 1GBメモリでは clamscanの実行中に Killed で停止した
    • AWS Cloud9の場合、t3.small (1GBメモリ) ではハングアップ状態になった。t3.mediumで動くことを確認
1
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
1
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?