ForgeVision Engineer Blog

フォージビジョン エンジニア ブログ

Shift Left Security を設定してみた - コンテナ篇

フォージビジョン Orca Security のサービスサイト がオープンしました。

ForgeVision - Orca Security サービスサイト

こんにちは、Orca Security 担当の尾谷です。

私ごとですが、最近名刺を新調しまして、Orca のロゴを入れさせていただきました。
引き続き、お客様の Orca Security サポート、PoC をご支援しながら、ブログやセミナーなどでアウトプットして参りますので、よろしくお願いします。

今日は、Orca Security における Shift Left Security についてご紹介します。

Shift Left Security とは

ソフトウェア開発ライフサイクル (SDLC) の初期段階でセキュリティ対策を統合することに重点を置いたソフトウェア開発アプローチを Shift Left Security といいます。

開発が右に進んでいくという概念のもと、SDLC の早い段階でセキュリティ プラクティスを組み込むことにより、脆弱性や権限不備を、早い段階で特定し対処することで、後戻りの少ない開発サイクルを生み出し、結果としてコスト削減に貢献するという考え方です。

Orca Security における Shift Left Security

Orca Security は、開発者や DevOps チームのセキュリティを簡素化する、包括的なクラウドセキュリティプラットフォームを提供しています。
Orca のセキュリティに対するアプローチは全体的なもので、ソフトウェア開発ライフサイクル全体を通してのコンプライアンスチェックに加え、Infrastructure as Code(IaC)テンプレートやコンテナイメージのスキャンにより、設定ミスを最初から検出し修正します。

クラウドのための完全で一貫性のある文脈的なセキュリティを提供するという Orca のコミットメントに沿って、本番環境の調査結果を元のアプリケーション開発の成果物にまで遡って追跡することができます。

コンテナイメージセキュリティ

本ブログでは、手動でコンテナイメージをスキャンして Orca Security コンソールに情報がアップロードされて可視化される状況をご紹介します。
CI/CD への埋め込みは別の記事にてご紹介させていただきます。

イメージスキャンは Orca CLI を使うため、CLI のインストールが必要ですが、リポジトリに Push するパイプラインに組み込むことで自動化できるとしています。

用意するもの

  • AWS Cloud9
  • Amazon Elastic Container Registry

処理の流れ

  1. コンテナイメージを push する
  2. Orca CLI にてスキャンする
  3. スキャン結果が Orca Security コンソールに送信される

Cloud 9 を起動する

まず、Cloud 9 を起動します。

t3.small (2 GiB RAM + 2 vCPU) を選択します。
VPC はデフォルトのまま Create します。

File メニューから New File を選択します。

Command + S を押下して「Dockerfile」という名前でファイルを保存します。

コードを入力します。

FROM ubuntu:18.04

RUN apt-get update
RUN apt-get -y install apache2

RUN echo 'otani-test-container' > /var/www/html/index.html

RUN echo '. /etc/apache2/envvars' > /root/run_apache.sh
RUN echo 'mkdir -p /var/run/apache2' >> /root/run_apache.sh
RUN echo 'mkdir -p /var/lock/apache2' >> /root/run_apache.sh
RUN echo '/usr/sbin/apache2 -D FOREGROUND' >> /root/run_apache.sh

RUN chmod 755 /root/run_apache.sh

EXPOSE 80

CMD /root/run_apache.sh

build します。

docker build -t otani-test-container .

docker run で起動します。

docker run -d -p 8080:80 --name otani-test-container

Preview から「Preview Running Application」を実行し、

ページが表示されたことを確認しました。

トークンを発行

Settings から、Modules - Integrations を選択し、SHIFT LEFT SECURITY の [INTEGRATE] ボタンをクリックします。

ダイヤログ中断の、[CREATE API TOKEN] をクリックします。

CREATE API TOKEN をクリックすると、以下ダイヤログが表示されます。

Scan Type は Container Image Scanning を選択します。
Service token のチェックボックスにチェックを入れると、組織所有のトークンができます。チェックを入れることで特定のユーザーに紐づかない状態でトークンが作成されます。

API キーが発行されます。この画面を閉じるとトークンが見れなくなるので、取得しておきます。
Apply to command line をクリックすると、コマンドにキーが代入されるので、便利です。

上図の [CONTINUE] ボタンをクリックすると、以下に戻るので戸惑いますが、取得したトークンは利用できます。

Orca CLI のインストール

上の手順で取得したコマンドを Cloud9 のターミナルに投入すると、以下エラーになります。

Error: unknown command "Project" for "orca-cli"

ドキュメントに従って、Orca CLI をインストールします。

インストール後、コマンドを再投入したらスキャン結果が表示され、

スキャン結果が Orca Security コンソールに出力されました。

まとめ

いかがでしたでしょうか。
スキャンの動きを確認いただくため、今回は、手動にてスキャンする方法をご紹介しましたが、GitHub Actions などのパイプラインに挿入すれば、CI/CD 環境にて Shift Left Security を組み込むことができます。

方法に関しては、改めて別のブログでご紹介したいと思います。