DevOpsからDevSecOpsまで、プロセス全体にわたって実行されるセキュリティスタック

DevOpsからDevSecOpsまで、プロセス全体にわたって実行されるセキュリティスタック

「21世紀に最も大切なものは何でしょうか?それは才能です!」ゲーおじさんはかつて『泥棒のいない世界』でこのように叫んだことがある。しかし、今日では、最も重要なのはデータのセキュリティだと言えるでしょう。自動化されたDevOps、ビッグデータ、AIのいずれにおいても、セキュリティは最優先事項であり基盤であり、国家レベルのセキュリティは国家戦略にも言及されています。開発後にオンラインリリースを行う DevOps ワンスタックモデルでは、DevOps を安全なレベルにアップグレードし、スタック全体のあらゆる段階でセキュリティチェックと修正を実施し、安全なスタック DevSecOps を構築することが必須です。この記事では、DevSecOps の各段階で使用されるセキュリティのプラクティスとツールについて説明します。

[[286538]]

DevSecOps は基本的に DevOps プラクティスを採用し、対応する段階でセキュリティ チェックを追加し、それらを CI/CD パイプラインに統合して、既存の DevOps ツールとプラクティスを拡張します。

パイプラインに安全シールドを追加する

セキュリティは簡単ではありません!セキュリティ機能を DevOps に統合する場合、圧倒されて混乱してしまうことがよくあります。現在のワークフローとツールを理解することは、セキュリティ チェックとセキュリティ制御をパイプラインに統合するための鍵となります。一般的に、DevOps の継続的インテグレーション (CI)、継続的デリバリー、継続的デプロイメント (CD) パイプラインは、次の 6 つの段階に分かれています。

コーディング: コードがソース コード リポジトリに入る前の開発フェーズ。

ビルド: システムの基本的な自動テストをビルドして実行します。

テスト: ビルドが成功すると、成果物はステージング環境とテスト環境にデプロイされます。

ホスト操作: このフェーズでは、インフラストラクチャに適用する必要がある構成とバージョンの更新が行われます。

実行: ホストが正常に実行されると、アプリケーションを本番環境にデプロイする準備ができており、グレースケール方式でリリースおよびアップグレードできることを意味します。

監視: 生産活動を継続的に測定し、監視します。

この記事では、上記の 6 つの段階に基づいて、セキュリティ統合の実践と調査を行います。

開発フェーズ

DevOps の実践では、適切なコードを書くことを重視します。コードは適切に動作し、変更や理解も簡単です。 DevSecOps は、適切で安全なコードを作成するためのセキュリティ チェックを追加することで、これらのプラクティスを拡張します。

この段階では、従来の単体テスト、静的コード分析、コードレビュー、コミット前フック (git クライアント フック) などの手法をセキュリティ チェックに拡張できます。開発者の生産性に影響を与えることなく、ソース コード リポジトリにコードをコミットする前に、一般的なセキュリティ問題を見つけて修正します。

コードレビュー

コードレビューは、コードのセキュリティを向上させる重要な手段です。開発者の責任感と透明性を高め、内部の脅威(コードの汚染、隠れたバックドア、ロジック爆弾など)のリスクを軽減し、コードレビューによってコード品質の向上にも役立ちます。コードに加えて、Puppet マニフェスト、Ansible プレイブック、Dockerfiles、.gitlab-ci.yml などのいくつかの主要な構成ファイルもコードレビューの範囲に含める必要があります。

静的解析ツール

市場にはオープンソースと商用の両方で多数の静的解析ツールがあり、お気に入りの IDE に統合して、コードの一貫性、保守性、明確さ、エラー パターンなどをチェックするのに役立ちます。また、基本的なルールを追加することで、基本的なセキュリティの脆弱性を特定することもできます (このツールは言語を対象としています)。

ツールリスト

この段階で使用できるツールの一覧は次のとおりです。

Gerrit、Phabricator、SpotBugs、PMD、CheckStyle、セキュリティバグの検出など

プロジェクトビルド

コードがソース リポジトリ (gitlab など) にコミットされると、アプリケーションのビルドと基本的な自動テストが実行され、コードが常にコンパイル可能およびビルド可能であることが確認されます。

同様に、この段階で重大かつ重大度の高いセキュリティ問題を検出するためにチェックを追加する必要があります。重大な問題が見つかった場合は、ビルドを失敗に設定し、アラート通知を送信する安全制御が必要です。

依存コンポーネントのセキュリティ分析

Sonatype の 2018 年ソフトウェア サプライ チェーン レポートによると、開発者はその年に 3,000 億を超えるオープン ソース コンポーネントをダウンロードして使用しましたが、そのうち 8 分の 1 に既知の脆弱性が含まれていました。さらに、今年は基本ライブラリにトロイの木馬が挿入されることによるセキュリティインシデントが多発しています。これについては、Chong Chong の以前の記事で具体的に紹介されています。歴史記事を検索できます。

依存コンポーネントのセキュリティ分析を使用すると、依存するオープン ソース コンポーネント (ライブラリ) に既知のセキュリティ脆弱性が含まれているかどうかを確認できます。 SCA ツールを実行すると、既知のセキュリティ脆弱性を持つ古いライブラリやフレームワークを特定するのに役立ちます。

SAST (静的解析セキュリティテスト)

このフェーズでセキュリティを向上させ、チームに迅速なフィードバックを提供するもう 1 つの効果的な方法は、静的解析ソフトウェア テストを実行することです。これらのツールは、レビュー担当者が見逃したり、他の種類のテストでは見つけるのが難しい隠れたエラーを見つけることができます。

ユニットテスト

ユニット テストは、コードをリファクタリングしたり、その他の変更を加えたりするときに回帰バグを検出するのに非常に役立ちます。各機能ブロックにユニット安全性テストを追加する必要があります。

ツールリスト

この段階で使用できるツールには、よく知られている Sonarqube、OWASP 依存関係チェック、sourceclear、Retire.js、snyk などがあります。

テストフェーズ

ビルドが成功すると、生成された成果物を選択し、コンテナーまたはテスト環境にデプロイすることでテスト フェーズがトリガーされます。これらのテストには、機能テスト、統合テスト、パフォーマンス テスト、高度な SAST、セキュリティ、DAST が含まれます。

このフェーズでは通常、実行に多くの時間とリソースが必要となり、フェイルファスト アプローチの第一原則に従います。つまり、より困難で時間のかかるテストは可能な限り延期し、他のテストに合格した場合にのみ実行する必要があります。

ターゲットを絞った動的スキャン

アプリケーションがデプロイされると、クロスサイト スクリプティング、SQL インジェクション、認証バイパスなどのさまざまな攻撃にさらされることになります。ここで、動的アプリケーション セキュリティ テスト (DAST) が役立ちます。現在テストされているアプリケーションは、OWASP Top 10 にまとめられている一般的な脆弱性と高リスクの脆弱性に基づいて分析できます。

ファジー

ファズ テストは、ブラック ボックス テストとブルート フォース信頼性テスト技術であり、主に予期しないデータ テスト結果を使用して自動的に脆弱性を発見するテスト方法が含まれます。

自動攻撃

自動テスト サイクルの一環として、さらに一歩進んで、実行中のアプリケーションに対する攻撃をシミュレートし、システムの基本的な対象を絞った自動侵入テストを実行することもできます。

ツールリスト

この段階で利用可能なツール (オープンソースと商用の両方) には、Acunetix Web Vulnerability Scanner、BDD Security、JBroFuzz、Boofuzz、OWASP ZAP、Arachi、IBM AppScan、Mittn、GAUNTLT、SecApp Suite などがあります。

ホスト操作(スタンドアロン)

ホスト操作フェーズでは、ランタイム環境とそこで実行されるアプリケーションの保護に主な焦点が置かれます。長年にわたり、業界ではインフラストラクチャを強化し、より回復力を高めるために、多くのセキュリティのベストプラクティス、パターン、ガイドライン、ツールが考案されてきました。

降格、最小限の権限

PoLP では、各モジュール (対象に応じてプロセス、ユーザー、プログラムなど) は、正当な目的に必要な情報とリソースにのみアクセスできる必要があると規定されています。

構成の自動化

構成管理ツールを使用すると、大規模な安全なインフラストラクチャを繰り返し展開および作成することが容易になります。 CM ツールは構成を標準化することで、パッチ管理に関連する問題を軽減し、パッチが適用されていないサーバーをハッカーが悪用するリスクを最小限に抑え、異なる環境間の差異を減らすのに役立ちます。 CM ツールを使用すると、構成情報を中央リポジトリで追跡し、バージョン管理できるようになることにも留意してください。

不変のインフラストラクチャ

不変のインフラストラクチャでは、システム内に成果物が作成されると、ユーザーによる変更によって変化することはなく、増分変更もありません。つまり、一連の増分更新と変更ではなく、新しいサーバー インスタンスが作成され、古いインスタンスが置き換えられます。 1つ。

安全基準

多くのコミュニティがインフラストラクチャの強化に関するガイダンスとアドバイスを提供しています。これらの標準には、Center for Internet Security (CIS) ベンチマークや NIST 構成チェックリストなどが含まれます。

ツールリスト

この段階で使用できるツールには、Ansible、Puppet、(R)?ex、HashiCorp Terraform、Chef、Docker などがあります。

運用段階

上記のすべてのステージが正常に実行された場合は、本番環境で実行するための準備をする必要があります。このフェーズの目標は、構成時または展開時にエラーが発生していないかどうか、これらのエラーによってシステムの信頼性と回復力が低下するかどうか、障害発生時にこれらのエラーを介して攻撃される可能性があるかどうかを確認することです。

このフェーズでは、自動化されたランタイム チェックとテストが重要な役割を果たします。特に、セキュリティ違反や脆弱性を発見し、アクセス制御ポリシーやファイアウォール ルールの変更などのリスクを強調する上で重要な役割を果たします。

ツールリスト

この点に関して、Netflix のオープンソース ツールである chaosmonkey について特に言及したいと思います。これは、カオスの原理を使用して分散システムで実験を行い、実稼働環境での制御不能な状況に抵抗するシステムの能力と信頼性を構築することを目的としています。

監視フェーズ

セキュリティは、システムが稼働した時点で終わるのではなく、そこから始まるのです。 DevSecOps では、自動化されたセキュリティ チェックと監視フィードバック ループの反復が、運用オペレーションの基本的な部分です。

継続的な監視により、アプリケーションが受信するトラフィックの種類を把握し、悪意のあるユーザーからの攻撃パターンを特定するのに役立ちます。

ランタイムアプリケーションセキュリティ保護

RASP テクノロジーは、アプリケーションのセキュリティ脅威をリアルタイムで識別してブロックします。 RASP は、アプリケーション ランタイム環境に検出機能と保護機能を追加することで、特定の条件に応じて人間の介入なしに自動的に再構成することで、アプリケーションが「自己保護」できるようにします。

セキュリティ監視

1 つ目は、潜在的なセキュリティ脅威の指標を収集して分析し、アラートをトリガーする動作の種類を定義し、アラートに対して本格的なアクションを実行するプロセスを自動化することです。たとえば、IDS、ホスト プロセスの監視、作業ディレクトリの変更の監視、トラフィックの監視などです。

バグバウンティ

脆弱性報奨金プログラムを通じて、第三者の協力を得て、徹底的な脆弱性調査を実施し、実際のリスクレベル、システムの弱点や脆弱性を完全に理解することができます。通常、システムを混乱させたり、機密データを危険にさらしたり漏洩したりすることなく、自由に行動できます。

ツールリスト

市場には、Prevoty、Alert Logic、HALO、EVIDENT など、多くのランタイム防御ツールが存在します。

<<:  Kubernetes がハイブリッドクラウドの様相をどう変えたか

>>:  Docker コンテナでインターネットにアクセスできない問題に対する 6 つの解決策

推薦する

共同購入の救済:ハンガー・ゲームの生存者

中国の共同購入業界のカードはついに片付けられ、ゲームはついに最終段階に到達した。かつて最大の共同購入...

多様化するか、それとも死ぬか?マルチクラウド戦略がデータ保護に重要な理由

アプリケーションをホストする場合でも、単一のプラットフォームとして使用する場合でも、クラウド コンピ...

財務管理製品の発売に関するヒント: 短期的なチャネル コストを心配する必要はありません。

微博はQudianやRong360などのインターネット金融プラットフォームの上場に伴い、インターネッ...

安定したブランドドメイン名投資家になる方法について話す

少し前に、a5ウェブマスターのウェブサイトに掲載された「国内インターネット市場取引概要」というタイト...

Google ウェブサイト品質ガイドに隠された SEO テクニックを発見

実際、ここには多くの SEO テクニックが明確に書かれていますが、それらの多くは現在の SEO 専門...

ユーザーを引き付けるデザイン: 明確なモバイルアプリフォーム

[編集者注] この記事は@elya妞の個人ブログから転載したものです。より多くの設計者がモバイル ア...

新しいサイトに権限がない場合はどうなるでしょうか?新しいサイトBaiduを重くする方法をお教えします

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスウェブサイトのBaidu...

質の高い情報が基礎であり、ユーザーに支払いを促すことが鍵となる

ウェブサイトにとって、運営の最終目標は、ユーザーがウェブサイトで消費できるようにすることです。直接消...

フレンドリーリンクのトリック

バックリンクの品質が高ければ高いほど、ランキングの向上に大きく貢献するということは以前から言われてき...

ジャック・マーのWeChatに対する恐怖と莱王への推進の背後にあるもの

LaiWang は以前から Taobao と Tmall で強力に宣伝されており、現在は Taoba...

個人のウェブマスターも優れたユーザーエクスペリエンスを提供できます

「ユーザー エクスペリエンス」は、ウェブマスターがさまざまな役割を担っているため、個々のウェブマスタ...

host1plus - 共有ホスティングが 55% オフ / VPS が 80% オフ / 南アフリカの VPS が 50% オフ

Host1plus の共有ホスティングと VPS の新しいプロモーションは 12 月 1 日から始ま...

オンライン採用の過去、現在、そして未来: トラフィック効果、敗者ユーザー、そして究極の体験

[IT Times Weekly 編集者注] 現在のオンライン求人市場には、51job や Zhao...

クラウドジャイアントはパニックに陥っています!インド、大規模なクラウドコンピューティング政策を開始:データ保存はインド国内で行う必要がある

インドがローカリゼーションを推進しているのは、企業によるユーザーデータの保管方法に対する世界的な監視...