kiwiki

主にセキュリティ関連の技術メモブログです。

セキュリティ対策製品に頼らなくても自前でできるサーバセキュリティ対策

目次

サーバセキュリティ対策製品のメリット/デメリット

メリット

  • 高度で多彩な機能
    • セキュリティベンダーの技術や研究が詰め込まれているため、サイバー攻撃に対する防御能力やゼロデイ脆弱性への対応の早さがある
    • また、多層的な防御が 1 つの製品(※1)で実現できる(一般的には複数の製品やサービスを組合せて実現する)
  • セキュリティベンダーによるサポート
    • 公式ドキュメントや知見が充実しているし、セキュリティベンダーのサポート窓口も利用可能

※1: [参考] Trend Micro Cloud One - Workload Security
https://www.trendmicro.com/ja_jp/business/products/hybrid-cloud/cloud-one-workload-security.html

デメリット

  • 製品が高額
    • 全セキュリティベンダーの製品が高額であるわけではないが、一般的には高額である(もちろん、費用に見合っただけの機能が提供されている)
  • 高度な運用スキルが必要
    • 製品を導入したから安全ではなく、製品のチューニングやアラートへの対応など、製品を運用していくためのスキルが必要になる

自前でできるサーバセキュリティ対策

セキュリティ対策製品はかなり優秀ですが、費用面や運用面で導入のハードルが高くなってしまっています。まずは、自分でできることから取り組んで、次のステップとして、セキュリティ対策製品の導入を検討してみても良いのでは?と思います。

前提

筆者の独断で、人気のクラウドである AWS で Amazon EC2(OS: Amazon Linux 2)を利用している想定で話を進めます。
「サービス側(Amazon EC2)のセキュリティ対策」と「OS 側(Amazon Linux 2)のセキュリティ対策」が考えられます。下記にどのような考え方やガイドラインを参考にすべきなのかを記載します。

1. サービス側(Amazon EC2)のセキュリティ対策

参考 1. AWS 公式ドキュメント

Amazon EC2におけるセキュリティ
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-security.html

上記のドキュメントは、Amazon EC2 に対するセキュリティについて記載されています。「インフラストラクチャ」「データ保護」「権限管理」などについて、詳細に紹介されています。
Amazon EC2 のセキュリティを強化するためには、Amazon EC2 以外の AWS サービスを活用する必要があります。例えば、権限権限だと AWS IAM(※1)、インフラストラクチャだと Amazon VPC(※2)、といった具合に AWS の他のサービスを活用することで Amazon EC2 のセキュリティを強化することができます。

※1: AWS IAM, https://aws.amazon.com/jp/iam/
※2: Amazon VPC, https://aws.amazon.com/jp/vpc/

参考 2. AWS Foundational Security Best Practices

AWS Foundational Security Best Practices コントロール > Amazon EC2
https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#fsbp-ec2-1

上記のドキュメントは、AWS Foundational Security Best Practices に準拠するために実施することが記載されています。 AWS Foundational Security Best Practices には、Amazon EC2 のセキュリティに関するものも含まれており、各項目ごとに重要度や対応手順が具体的に紹介されています。
AWS Foundational Security Best Practices に準拠して Amazon EC2 のセキュリティを強化するためには、参考 1. 同様、Amazon EC2 以外の AWS サービスを活用する必要があります。

例: [EC2.1] Amazon EBS スナップショットはパブリックにしないでください。これは、誰でも復元可能であるかどうかを基に判断されます。

カテゴリ: 保護 > セキュアなネットワーク設定

重要度: 非常事態

リソースタイプ: AWS アカウント

AWS Config ルール : ebs-snapshot-public-restorable-check

スケジュールタイプ : 定期的

パラメータ : なし

このコントロールは、Amazon Elastic Block Store スナップショットがパブリックではないかどうかをチェックします。Amazon EBS スナップショットを誰でも復元できる場合、コントロールは失敗します。

EBS スナップショットは、特定の時点の EBS ボリュームのデータを Amazon S3 にバックアップするために使用されます。スナップショットを使用して、EBS ボリュームを以前の状態に復元できます。スナップショットのパブリックへの共有は滅多に認められていません。一般的に、スナップショットを公開する決定は、誤って行われたか、影響を完全に理解せずに行われています。このチェックは、そのような共有がすべて完全に計画され、意図的であったことを確認するのに役立ちます。

注記
このコントロールは、アフリカ (ケープタウン) およびヨーロッパ (ミラノ) ではサポートされていません。

修正
この問題を修正するには、EBS スナップショットを更新して、パブリックではなくプライベートに変更します。

パブリック EBS スナップショットをプライベートにするには

1.Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。
2.ナビゲーションペインで Elastic Block Store の [Snapshots] (スナップショット) メニューを選択し、パブリックスナップショットを選択します。
3.[Actions] (アクション) から、[Modify permissions] (許可を変更する) を選択します。
4.[Private] (プライベート) を選択します。
5.(オプション) スナップショットの共有を許可されたアカウントの AWS アカウント番号を追加し、[Add Permission] (許可の追加) を選択します。
6.[Save] を選択します。

[EC2.1] Amazon EBS スナップショットはパブリックにしないでください。これは、誰でも復元可能であるかどうかを基に判断されます。 https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#fsbp-ec2-1

参考 3. CIS AWS Foundations Benchmark

CIS AWS Foundations Benchmark とは、下記にある通り、CIS(Center for Internet Security)という団体が提供している AWS に特化したベンチマークです。

We are a community-driven nonprofit, responsible for the CIS Controls® and CIS Benchmarks™, globally recognized best practices for securing IT systems and data.
(CIS(Center for Internet Security)はコミュニティ主導の非営利団体で、IT システムとデータを保護するために世界的に認められたベストプラクティスである「CIS Controls」と「CIS Benchmark」を提供しています。)

About us
https://www.cisecurity.org/about-us

CIS Amazon Web Services Foundations Benchmark(v1.5.0)
https://workbench.cisecurity.org/benchmarks/7366

上記のドキュメントは、AWS 全体のセキュリティを強化するためにCIS が定めたベンチマークです。 CIS Amazon Web Services Foundations Benchmark には、Amazon EC2 のセキュリティに関するものも含まれており、参考 2. 同様、各項目ごとに重要度や対応手順が具体的に紹介されています。参考 2. と異なる点は、内容はもちろんですが、確認手順が具体的に記載されています。どのように確認したらいいのか?というときに非常に役に立つ情報となります。
CIS Amazon Web Services Foundations Benchmark に準拠して Amazon EC2 のセキュリティを強化するためには、参考 1. & 参考 2. 同様、Amazon EC2 以外の AWS サービスを活用する必要があります。

例: 2.2.1 Ensure EBS Volume Encryption is Enabled in all Regions (Automated)

例として、「CIS Amazon Web Services Foundations Benchmark(v1.5.0)」の「2.2.1 Ensure EBS Volume Encryption is Enabled in all Regions (Automated)」の項目を下記に記載しました。内容は「すべてのリージョンで EBS ボリュームの暗号化が有効であることを確認する」というものになっています。下記のように、「Profile Applicability」「Description(説明)」「Rationale(この項目が必要である理由)」「Impact(この項目の対応を実施することで考えられる影響)」「Audit(確認方法)」「Remendiation(対処方法)」という項目があり、それぞれ詳細に記載されています。特に、Audit や Remendiation には、実行するコマンドや実行結果が記載されているので、その通りに確認することができます。

Profile Applicability:

  • Level 1

Description:
Elastic Compute Cloud (EC2) supports encryption at rest when using the Elastic Block Store (EBS) service. While disabled by default, forcing encryption at EBS volume creation is supported.

Rationale:
Encrypting data at rest reduces the likelihood that it is unintentionally exposed and can nullify the impact of disclosure if the encryption remains unbroken.

Impact:
Losing access or removing the KMS key in use by the EBS volumes will result in no longer being able to access the volumes.

Audit:
From Console:
1.Login to AWS Management Console and open the Amazon EC2 console using
https://console.aws.amazon.com/ec2/
2.Under Account attributes, click EBS encryption.
3.Verify Always encrypt new EBS volumes displays Enabled.
4.Review every region in-use.

Note: EBS volume encryption is configured per region.

From Command Line:
1.Run

aws --region <region> ec2 get-ebs-encryption-by-default

2.Verify that "EbsEncryptionByDefault": true is displayed.
3.Review every region in-use.

Note: EBS volume encryption is configured per region.

Remediation:
From Console:
1.Login to AWS Management Console and open the Amazon EC2 console using
https://console.aws.amazon.com/ec2/
2.Under Account attributes, click EBS encryption.
3.Click Manage.
4.Click the Enable checkbox.
5.Click Update EBS encryption
6.Repeat for every region requiring the change.

Note: EBS volume encryption is configured per region.

From Command Line:
1.Run

aws --region <region> ec2 enable-ebs-encryption-by-default

2.Verify that "EbsEncryptionByDefault": true is displayed.
3.Repeat every region requiring the change.

Note: EBS volume encryption is configured per region.

CIS Amazon Web Services Foundations Benchmark(v1.5.0)
https://workbench.cisecurity.org/benchmarks/7366

2. OS 側(Amazon Linux 2)のセキュリティ対策

参考 1. CIS Amazon Linux 2 Benchmark

CIS Amazon Linux 2 Benchmark(v2.0.0)
https://workbench.cisecurity.org/benchmarks/7333

上記のドキュメントは、Amazon Linux 2 に対応した CIS ベンチマークです。 CIS Amazon Linux 2 Benchmark には、Amazon Linux 2 のセキュリティを強化するために、各項目ごとに重要度や確認方法、修正方法などが記載されています。

例:3.5.1.1 Ensure firewalld is installed (Automated)

例として、「CIS Amazon Linux 2 Benchmark(v2.0.0)」の「3.5.1.1 Ensure firewalld is installed (Automated)」の項目を下記に記載しました。内容は「firewalld がインストールされていることを確認する」というものになっています。下記のように、「Profile Applicability」「Description(説明)」「Rationale(この項目が必要である理由)」「Impact(この項目の対応を実施することで考えられる影響)」「Audit(確認方法)」「Remendiation(対処方法)」という項目があり、それぞれ詳細に記載されています。特に、Audit や Remendiation には、実行するコマンドや実行結果が記載されているので、その通りに確認することができます。

Profile Applicability:

  • Level 1

Description:
firewalld is a firewall management tool for Linux operating systems. It provides firewall features by acting as a front-end for the Linux kernel's netfilter framework via the iptables backend or provides firewall features by acting as a front-end for the Linux kernel's netfilter framework via the nftables utility.
firewalld replaces iptables as the default firewall management tool. Use the firewalld utility to configure a firewall for less complex firewalls. The utility is easy to use and covers the typical use cases scenario. FirewallD supports both IPv4 and IPv6 networks and can administer separate firewall zones with varying degrees of trust as defined in zone profiles.
Note: Starting in v0.6.0, FirewallD added support for acting as a front-end for the Linux kernel's netfilter framework via the nftables userspace utility, acting as an alternative to the nft command line program.

Rationale:
A firewall utility is required to configure the Linux kernel's netfilter framework via the iptables or nftables back-end.
The Linux kernel's netfilter framework host-based firewall can protect against threats originating from within a corporate network to include malicious mobile code and poorly configured software on a host.
Note: Only one firewall utility should be installed and configured. FirewallD is dependent on the iptables package.

Impact:
Changing firewall settings while connected over the network can result in being locked out of the system.

Audit:
Run the following command to verify that FirewallD and iptables are installed:

# rpm -q firewalld iptables
firewalld-<version>
iptables-<version>

Remediation:
Run the following command to install FirewallD and iptables:

# yum install firewalld iptables

CIS Amazon Linux 2 Benchmark(v2.0.0)
https://workbench.cisecurity.org/benchmarks/7333

参考 2. IPA ー OSセキュリティに関する知識

6-3-基.OSセキュリティに関する知識
https://www.ipa.go.jp/files/000056115.pdf

上記のドキュメントは、IPA(独立行政法人 情報処理推進機構)が OS に対するセキュリティについて記載しています。 「ログの確認と設定」「プロセスのチェック」「iptables の設定方法/iptables の運用手順」など、OS のセキュリティ管理に必要な部分に焦点を当てて説明されています。

まとめ

  • 一言に「サーバセキュリティ」といっても、様々なレイヤー(クラウドサーバ: Amazon EC2、OS:Amazon Linux 2、とか)のセキュリティについて考える必要がある
    • Amazon EC2 のセキュリティを強化するためには、他の AWS サービスを活用する(そうなると、他の AWS サービスのセキュリティも同じように強化する)
  • セキュリティ対策製品に頼らなくても自前でできることもたくさんある
    • AWS 公式ドキュメントやベストプラクティス、CIS Benchmark など