OpenShift Security - Red Hat CoreOS

HOME デベロッパー向け OpenShift Security Red Hat CoreOS

OpenShift Security インデックス

  1. OpenShift Security
  2. Red Hat CoreOS
  3. Container Security

Immutable Operating System

OpenShiftと統合されたテスト

RHEL CoreOSは、プラットフォームと連動してテストされ出荷されます。Red Hat は、これらの構成に対して何千ものテストを実行しています。 例えば OpenShift 4.9 で使用される CoreOS のバージョンは 4.9です。

OpenShift Cluster の一部として Operatorにより管理

CoreOSは、Node の OSとして使われますが、クラスタの一部として運用され、インストール・コンポーネントの構成はMachine Config Operatorで管理されます。

  • CRI-O config
  • Kubelet config
  • Authorized registries
  • SSH config

RED HAT Enterprise Linux / CoreOS

Red Hat ENTERPRISE LINUX

汎用目的のOS

Red Hat ENTERPRISE LINUX CoreOS

イミュータブルなコンテナ用OS

BENEFITS
  • 10年以上のエンタープライズ・ライフサイクル
  • 業界標準のセキュリティ
  • あらゆるインフラで高いパフォーマンスを発揮
  • カスタマイズと幅広い互換性
  • パートナーソリューションのエコシステム
  • OpenShift と一体化された管理。ネットワーク経由によるアップデート
  • イミュータブルで自動化された Node 構築
  • OpenShift との緊密な統合
  • コンテナとホストのアイソレーションを実現
  • 最適化されたパフォーマンス
  • 最小化されたアタックサーフィス
WHEN TO USE カスタマイズや追加ソリューションとの連携が必要な場合。 クラウドネイティブでハンズフリーな運用が最優先される場合

OpenShift での利用は RHCOSがデフォルトです。RHEL を使用した場合、RHEL Node の管理は個別に行う必要があります。 OpenShift での RHELサポートは、RHEL 7で終了する予定でしたが、要望が強かったため、OpenShift 4.9から RHEL 8.4 のサポートが追加されています[1]。

[1]
OpenShift Container Platform 4.9 release notes | Release notes | OpenShift Container Platform 4.9

コンテナと RHEL CoreOS

OpenShift には CoreOS や、ミドルウェア・ライブラリのエンタイトルメントも含まれているため、UBIイメージを使用する事で OSレイヤーからミドルウェアまでの一括したサポートを受ける事ができます。

コンテナの RHELバージョンと Node の バージョンの組みあわせのサポートについて:Red Hat Enterprise Linux Container Compatibility Matrix - Red Hat Customer Portal

RHEL CoreOS の特徴

トランザクショナル・アップデート

RHCOSはイメージとして配布され、RHCOS のアップデートはバージョン管理され、アップデートは、OpenShift の更新と一緒にコンテナとして配布されます (rpm-ostree という技術を使用)。

メジャーリリース(および一部のzストリームリリース)では、新しいブートイメージを提供します。

イミュータブルな管理

RHCOSは、「Machine Config Operator」によってイミュータブルな方法で管理されています。

ダウンロードされたRHCOS イメージに対して、Machine Config Operator が、必要なコンポーネントを構成します。構成は全て自動化されているため、プロビジョニング後の構成、OSバージョン、ランタイム構成は、常に一貫性があります。これによってクラスターが、エラスティックに新規のノードを作成したり、破壊したりすることが可能になっています。

RHCOS 上のアプリケーションはコンテナ化する必要がある

RHCOSへ、直接ソフトウェアをインストールをする事はサポートされていません。
RHCOSに直接コンポーネントをインストールするのではなく、外側のプロセスとして全てコンテナとして実行するように構築されます。これにより、従来のOSが実現できる以上のアップグレードの成功や自動化を保証することができます。

ログイン

ユーザーID/パスワードを使ったログインはできません。初期構成では、ssh key を使ったログインのみが許可されていますが、ssh ログインも無効化する事が可能です。

RHCOS への直接のログインを禁止した場合いでも、debug 用のコンテナを使用して、コンテナ経由で、CoreOS Node にアクセスする事が可能です。

アタック・サーフィスの最小化

RHCOS は、コンテナを実行するためのコンポーネントと、管理に必要な最小限のコマンドだけがインストールされています。コンテナの実行に必要のないコマンドはインストールされていません。yum や dnf 等のコマンドもインストールされていません。

コンテナ専用のOSなので、コンテナがカーネル以外の、コンテナ稼働に必要なライブラリを保持している事を想定しています。

Machine Config Operator による RHCOSの構成

RHCOS と anti-virus scanners

RHCOSにアンチウィルススキャナをインストールすることはできますか?
  • アンチウィルス・スキャナなどのソリューションは、デーモンセットやコンテナ・イメージとして展開することができます。しかし、このような形態でソフトウェアを提供しているアンチウィルスベンダーはほとんどありません。
  • RHCOSはコンテナ用のOSであり、ライブラリ等はコンテナ側が保持している事が前提です。また、ディレクトリ構造も通常の Linux とは異なるため、そのままではアプリケーションが動作しない可能性が高いです。
  • RHCOSは「イミュータブル」に近い構成になっており、再起動やアップデートにより情報が失われる場合があります。標準 RHCOS イメージ以上の、追加構成、ソフトウェアのインストールは、MCO (Machine Config Operator) によって行われます。Worker Node の追加 (必要なネットワーク構成、Nodeの基本機能のインストール) が、自動でできるようになっているのはこの機能によるものです。
  • ただし、Gartnerが2019年に発表したクラウドワークロード保護プラットフォームに関する論文では、クライアントに対して “アンチウイルス(AV)中心の戦略を、可能な限りワークロード保護に対する「ゼロ・トラスト」/デフォルト拒否/アプリケーション制御のアプローチに置き換えましょう"と勧告しています。[1]

    社内ネットワークなどの特定のネットワークを安全だと考えて、ネットワークの入り口だけに防御策を講じるのではなく、全てのネットワークを信頼できないものと考え、個別のサーバー(サービス)毎にアクセスできるユーザーと権限の制御と、ポートなどのネットワーク管理を厳密に制限する事が提案されている。一方で例えば、個別のサーバー毎に WAFを配備するなど、これまでのネットワーク管理の手法をそのままサーバー単位で適用するとコストが著しく増大するので、IAP:Identity Aware Proxy と呼ばれる、ユーザーや端末認証を行う Proxy を通してサーバーへのアクセスを制御するような方法が提唱されはじめている。

[1]
Gartner: Market Guide for Cloud Workload Protection Platforms, ID G00356240, April 8, 2019 https://blog.morphisec.com/client-grade-tech-cloud-workload-protection

セキュリティの多層防御

クラウド上のサービス

  • 通信をプロキシーし不審なアクティビティを監視。よく知られた通信先へのアクセス遮断
  • DNS通信を装ったデータ送信の防御
  • 隔離用のサンドボックスの提供
  • クラウドサービスのセキュリティ管理

オンプレ・ネットワーク 機器型

  • GW型
  • 通信をプロキシーし不審な通信のアクティビティを監視
  • 特定の通信先へのアクセスの遮断

Agent ソリューション

  • 適切な構成管理
  • システムファイルへのアクセスを制限
  • 不審な通信のアクティビティを監視
  • ウィルスのシグネチャーマッチング

Kubernetes 用の AntiVirus: ClamAV

  • Clam AntiVirus は、Open Source の AntiVirus ソフトウェア。それをコンテナ化したもの。
  • Daemonset として Node 毎にデプロイする事を想定
https://cloud.google.com/container-optimized-os/docs/concepts/security?ref=thechiefio&hl=ja

Kubernetes 用の AntiVirus: kube-av

  • プロトタイプで、現在 stable ではない。
  • 2022/01/29時点で7ヶ月 Activity無し。
  • 現時点で、スキャン Engine としてはClamAVがサポートされている。
  • スキャンする PVCを VirusScan CRD の spec で指定する。hostpath のスキャンも例で示されている。
  • オンデマンドの Scan と、Scheduling Scan に対応。
https://github.com/mittwald/kube-av

参考資料:Red Hat OpenShift Security Guide

OpenShift のセキュリティの勘所についての概要

目次

  1. Risk Management and Regulatory Readliness
  2. Red Hat Enterprise Linux CoreOS Security
  3. Container Security
  4. Kubernetes Security
  5. Identiy and Acess Management Security
  6. Network Security
  7. Auditing
  8. Encryption, Secret Management, and Data Protection
  9. Security CI/CD
Red Hat OpenShift security guide

選ぶなら業界をリードするコンテナプラットフォーム

OpenShiftならインフラ運用の効率化はもとよりアプリケーション開発者がソースコードの開発に専念できるように必要な機能までも提供してくれます