2022年12月14日

Continuous Integration

自動化されたセキュリティーとテストを CI/CD パイプラインに統合する

Harnessプラットフォームを使って、選択したセキュリティーツール、スイート、フレームワークを継続的インテグレーションとデリバリー(CI/CD)パイプラインに統合する方法を示します。

Harness_blog_image_9.png

セキュリティーはもはや後付けではなく、継続的インテグレーションとデリバリー(CI/CD)パイプラインの不可欠な部分ですDevOpsのプラクティスはアジャイルさとスピードに重点を置いていますが、DevSecOpsはセキュリティーがデリバリーパイプラインにしっかりと組み込まれていることを保証します。競争は熾烈で、顧客はすぐに新しい機能を要求します。新しいソフトウェアと機能が顧客にどれだけ早くリリースされるかは、組織のスキルセットと使用するツール次第です。

非常に多くのツールがあるため、DevOpsツールチェーンにセキュリティーを統合する方法を決めるのが難しい場合があります。ここでは、Harnessプラットフォームを使って、選択したセキュリティーツール、スイート、フレームワークをCI/CDパイプラインに統合する方法を紹介します。


CI/CDパイプラインのセキュリティー

CI/CDは、新しいコミットが行われるとすぐにコードを自動的にビルドしてデプロイするプロセスです。このプロセスには、通常、コードの構築、テストケースの実行、静的コード分析の実行、最終的なアプリケーションのデプロイが含まれます。企業がCI/CDパイプライン上で実行し、ワークフローを自動化するのに役立つ多くのツールがあります。CI/CDパイプラインでセキュリティーテストを自動化するには、コードに対してセキュリティースキャンを実行する自動化された方法が必要です。これは、さまざまなセキュリティツールをCI/CDパイプラインに統合することで実現できます。
 

CI/CDパイプラインでの手動テストの自動化

手動のテストは時間のかかるプロセスであり、拡張できません。各リリースの前に手動でテストすることをお勧めしますが、可能な限り自動化する必要があります。テストは、次の手順に従って自動化できます:

  • 本番環境を複製したテスト環境をセットアップします。環境が設定されたら、テストケースを追加してテストを実行できます。
  • 次に、何をテストする必要があるかを特定する必要があります。リスク分析を使って、コード内の懸念のある領域を特定できます。リスク分析では、コード違反、安定性、パフォーマンスの問題があればそれを見つけます。リスク分析は、テストに優先順位を付け、重要なテストケースを見逃さないようにするのに役立ちます。
  • テストケースの準備ができたら、テストを自動化する前に、テストデータを手動で設定する必要があります。テストデータの準備ができたら、テストツールをCI/CDパイプラインに統合できます。
  • もう1つのオプションは、CIツールがすべてのテストを実行してコードをビルドする「Build & Test」段階で、さまざまなテストツールとスイートを統合することです。これらの統合機能とカスタムテスト機能を組み込んだ最新のツールを選択することは非常に重要です。これが、Harnessのようなプラットフォームが、組織がセキュリティーと脆弱性の脅威に対抗するのに役立つ点です。

テストツールとパラメーター

複数のセキュリティーテストを並行して実行することは良いやり方であり、このチュートリアルでも同じことを示します。使用するテストスイートとツールの例をいくつか見てみましょう。

  • Assertible
  • Snyk
  • Pm2
  • SonarQube
  • BrowserStack
  • AppSignal

1つずつ、どんなものかを見てみましょう。

 

Assertible

Assertibleは、APIとウェブサイトのアップタイムと可用性、データの正確性を保証します。
 

Harness_blog_image_10.png

Snyk Test

Snykは、アプリケーションのオープンソースの脆弱性とライセンスの問題を検出します。

Harness_blog_image_5.png

Pm2テスト

Pm2は、ロードバランサーを内蔵したNode.jsアプリケーションのためのプロダクションプロセスマネージャーです。アプリケーションを永久に生かし、ダウンタイムなしに再ロードし、一般的なシステム管理作業を容易にすることができます。

Harness_blog_image_11.png

SonarQube

Sonarqubeは、アプリケーションのコード品質を報告します。

Harness_blog_image_4.png

BrowserStack

BrowserStackは、アプリケーションのクロスブラウザーテストを行います。
 

Harness_blog_image_12.png

AppSignal

AppSignalは、アプリケーションのエラー追跡とパフォーマンス監視を行います。

Harness_blog_image_6.png

Harnessは、現在利用可能な最も人気のある40を超えるアプリケーションセキュリティースキャナーと統合されています。

Harness CIを使った自動テスト

Harnessは主要なツール全てとうまく統合されており、CI/CDのさまざまな段階でさまざまなツールとプラットフォームを選択することで、それに応じてパイプラインをカスタマイズできます。同様に、テストに関しては、CI(この場合はHarness CI)ツールをさまざまなテストと統合して、バグや脆弱性を見つけることができます。上記の全てのセキュリティーテストでHarness CIを構成する方法を見てみましょう。

サンプルのNode.jsアプリケーションをフォークすることから始めます:https://github.com/pavanbelagatti/harness-ci-example

次に、Harnessプラットフォーム無料トライアルにサインアップし、CIモジュールを選択します

Harness_blog_image_2.png

プロジェクトを作成し、「Build and Test」ステージを構成します。

Harness_blog_image_3.png

Build and Test」の下で、さまざまなカスタムテストスイートを構成できます。「Run」ステップを使い、以下のように構成します。

Harness_blog_image_1.png

Harness_blog_image_7.png

Run」ステップを使用して、全部の異なるテストスイートを構成できます。全テストを構成したら、パイプラインを保存して実行します。全テストを簡単に構成でき、パイプラインはワンクリックで実行できます。パイプラインが正常に実行され、全てのテストがパスするはずです。脆弱性、バグ、または間違いが見つかった場合、パイプラインは前進せず、そこで停止します。

Harness_blog_image_8.png

 

Harness_blog_image_14.png

全テストが成功したことを確認できます。

Harness_blog_image_13.png

DevSecOpsとCI/CDを組み合わせる

CI/CDは、チームがコードをより迅速かつ効率的にビルド、テスト、デプロイするのに役立つプロセスです。エンジニアは手動でテストを実行する必要があるため、エラーが発生する可能性が高くなります。自動化がDevOpsのベストプラクティスの中心になりつつあるため、セキュリティーテストの自動化を実行するツールがより好まれています。間違いなく、セキュリティーテストはCI/CDの重要な部分であり、時間と労力を節約するために自動化できます。さらに、正しく実行すれば、安全でないコードをデプロイするリスクを減らせます。

多くのツールは、CI/CDパイプラインのセキュリティーテストを自動化するのに役立ちます。これには、脆弱性スキャナー、コードカバレッジアナライザー、コードレビューツール、静的コード分析ツール、障害後対策ツールなどが含まれます。デプロイが100%安全であることを確認するために必要なのは、CI/CDとセキュリティーテスト機能を備えたHarnessのようなプラットフォームだけです。

Harnessとインテリジェントなソフトウェアデリバリーの使い方について詳しく知りたい場合は、無料で試してみてください。詳細なチュートリアル、ビデオ、リファレンスドキュメントについては、Developer Hubチェックしてください。


この記事はHarness社のウェブサイトで公開されているものをDigital Stacksが日本語に訳したものです。無断複製を禁じます。原文はこちらです。


 

Harnessに関するお問い合わせはお気軽にお寄せください。

お問い合わせ