Blog

AWS環境におけるセキュリティの取り組みについて

こんにちは。ココネでサービスインフラを担当している谷澤です。

セキュリティが何かと話題になる昨今、ココネで導入してきたAWSのセキュリティサービス、その中でもInspectorについてご説明させて頂こうと思います。

ココネで導入を行ってきたAWSのセキュリティサービス(一部)

  • Amazon Inspector (以下 Inspectorで記載)
  • AWS Config
  • GuardDuty
  • SecurityHub

今回は2021年末に新バージョンがリリースされている脆弱性検知サービスのInspectorについて取り上げたいと思います。

ざっくり説明すると、EC2やECSのイメージに対して、脆弱性についてのスキャンを継続的に行ってくれるサービスです。

導入について詳細を確認したい場合は以下の公式ドキュメントをご参照ください。

Inspectorについて

利用料金

  • 15日間の無料期間有り
  • 東京リージョンの場合、 EC2インスタンス1台辺り 1.512USD/月(2022年8月3日時点)

最新情報については以下をご確認ください。

Inspectorの料金

Inspectorの動作方法

EC2をスキャンする場合、SystemsManagerを通して通信を行います。

ssm-agentがプリインストールされていないディストリビューションを利用する場合は、別途インストールが必要です。

インストールについては以下の公式ドキュメントをご参照ください。

ssm-agentのインストール

EC2でSystemManagerを利用する場合、

AmazonSSMManagedInstanceCore” のポリシーが付与されたロールが必要です。

CVSSについて

脆弱性への対応を検討するにあたり、CVSSについてある程度理解しておく必要があります。CVSSは脆弱性を汎用的に評価する仕組みで、2005年にv1、現在はv3(3.1)となっています。

以下のIPAの内容が参考になります。

CVSSv3について

デモ

今回は動作確認のため、ubuntu18.04LTSの昔のイメージを用いてInspectorの導入を行います。

①Inspectorの有効化

InspectorのサービスページからInspectorを有効にしてください。

有効にすると、以下のようなダッシュボードが表示されます。 

この時点でそのアカウントに存在するEC2やECRの総数が表示され、その中でどれだけのインスタンスでInspectorが有効になっているか等が分かります。

 

②インスタンスの作

今回作成するインスタンスはCloudFormationで作成します。 EC2で利用するKeyPairは事前に作成してください。

起動テンプレートはEBSにもインスタンス同様のタグを作成時に付与するために利用しています。

CloudFormationは「スタックの作成→新しいリソースを使用(標準)」からスタックの作成ページに飛び、以下を指定してください。

  • テンプレートの準備: テンプレートの準備完了
  • テンプレートの指定: テンプレートファイルのアップロード
  • ファイルの選択: 以下のCloudFormation設定ファイルをローカルに名前を付けて保存し、それを選択する。

スタックの名前とパラメータは各自の環境に合わせて設定頂き、その他は全てデフォルトの設定で問題ないです。

InspectorInstance.yml

AWSTemplateFormatVersion: 2010-09-09
Description: Create Inspector Sample EC2
Parameters:
KeyName:
Type: ‘AWS::EC2::KeyPair::KeyName’
Description: Decide EC2 Key Pair
InstanceType:
Description: Decide EC2 instance type
Type: String
Default: t3.micro
ConstraintDescription: Please choose a valid instance type.
AMIID:
Description: Decide image-id
Type: String
Default: ami-0ee0b7ac4daa15e1d
EBSDeviceName:
Description: Decide DeviceName amzn)/dev/xvda ubuntu)/dev/sda1
Type: String
Default: /dev/sda1
SubnetId:
Description: Select SubnetId
Type: AWS::EC2::Subnet::Id
SecurityGroupId:
Description: Select SecurityGroupId
Type: AWS::EC2::SecurityGroup::Id
EC2Tag:
Description: Tags to add to the EC2 Instance service and name tags
Type: String
Default: InspectorSampleInstance
LaunchTemplateName:
Description: Name of launch template name
Type: String
Default: InspectorSampleInstanceResources:
IAMRoleCreate:
Type: “AWS::IAM::Role”
Properties:
AssumeRolePolicyDocument:
Version: “2012-10-17”
Statement:

Effect: “Allow”
Principal:
Service:
– “ec2.amazonaws.com”
Action:
– “sts:AssumeRole”
ManagedPolicyArns:
– “arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore”
Path: “/”
RoleName: InspectorSampleInstance
InspectorInstanceProfile:
Type: AWS::IAM::InstanceProfile
Properties:
Path: “/”
Roles:
– !Ref IAMRoleCreate
EC2Create:
Type: AWS::EC2::Instance
Properties:
IamInstanceProfile: !Ref InspectorInstanceProfile
LaunchTemplate:
LaunchTemplateId: !Ref LaunchTemplateCreate
Version: !GetAtt ‘LaunchTemplateCreate.LatestVersionNumber’
SubnetId: !Ref SubnetId
LaunchTemplateCreate:
Type: AWS::EC2::LaunchTemplate
Properties:
LaunchTemplateName: !Ref LaunchTemplateName
LaunchTemplateData:
ImageId: !Ref AMIID
InstanceType: !Ref InstanceType
BlockDeviceMappings:
– DeviceName: !Ref EBSDeviceName
Ebs:
VolumeType: gp3
DeleteOnTermination: ‘true’
KeyName: !Ref KeyName
SecurityGroupIds:
– !Ref SecurityGroupId
TagSpecifications:
– ResourceType: volume
Tags:
– Key: “Name”
Value: !Ref EC2Tag
– ResourceType: instance
Tags:
– Key: “Name”
Value: !Ref EC2Tag

③作成されたリソースとInspectorの詳細確認

  • CloudFromationのスタックが「CREATE_COMPLETE」のステータスになった後、EC2のコンソールを確認し、インスタンスが起動していることを確認します。
    また、ssm-agentがプリインストールされていない環境の場合、各ディストリビューションに応じた方法でインストールし起動して下さい。
  • Inspectorのコンソールに移動し、有効になっているインスタンスが増えていることを確認します。
    インスタンスのIDをクリックすると、詳細を確認することができます。
  • 実際に検出結果を確認すると、共通脆弱性識別子であるCVEと対象のパッケージ名が記載されています。
    CVEをクリックすると、対象の詳細を確認することができます。またNVD(米国政府主導)をはじめとする脆弱性管理データリポジトリ等でも、CVEを検索することで同様の脆弱性を見つけることができます。

NVD検索サイト

CVE-2021-3156の結果

■Inspector

 

■NVD

 

最後に

以上の方法で、インスタンスにインストールされたパッケージの脆弱性について、Inspectorで確認することができました。

脆弱性を放置しておくと、様々な攻撃を受けてしまう恐れがあるので、方針を決めて対処することが望ましいです。

日頃からセキュリティについて意識し、アップデートがあった際にはすぐに動けるように対応していきたいと思います。

 


 

ココネでは一緒に働く仲間を募集中です。

ご興味のある方は、ぜひこちらの採用特設サイトをご覧ください。

https://www.cocone.co.jp/recruit/contents/

Popular posts

Category

Tag

Category

Tag

%d人のブロガーが「いいね」をつけました。