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 つの解決策

推薦する

お金を稼ぐための非常にクールなWeChatマーケティング手法が失敗しそうだ

インターネット業界で働く私たちにとって、お金を稼ぐ良い方法は常に見つかりますが、こうした方法の多くは...

リベート ウェブサイトの徹底調査: Wanjia Shopping が「ポンジー」詐欺を開始した方法

衝撃的な知らせを聞いた潘阿成は台州から金華へ急いだ。浙江省金華市のイノベーション国際ビルの広場の入り...

友好的なリンクを交換する際の注意点といくつかの原則について簡単に説明します。

フレンドリーリンクは、ウェブサイトのエクスポートリンクの最も重要な部分でもあり、キーワードランキング...

さまざまなウェブサイトが有料音楽トライアルを提供しているが、ネットユーザーは支払いを拒否している

Doubanの「ミュージシャン」セクションには、数十万人の独立系ミュージシャンのオンラインリスニング...

YonSuite:中国のSaaS業界で「リーダー」の役割を果たすことができるか?

中国の情報技術および企業サービス産業のリーダーとして、UFIDA Network は常に業界で求めら...

theonionhost: 著作権フリーの VPS、月額 20 ドル、1G メモリ/1 コア/20g SSD/1T トラフィック/1Gbps 帯域幅/ブルガリア データ センター

theonionhost は 2009 年に設立されたオフショア サーバー プロバイダーで、著作権フ...

WeChatとAlipayは単なる誤報だったのか?

中国の「新四大発明」の一つ、モバイル決済QRコードが規制に直面? 11月26日、「#WeChat A...

中小企業がオンラインマーケティングを体系的に行うには(第2部) - チャネル(第2部)

2. 受動的な情報閲覧(興味のあるものを見る) - ソーシャル ネットワーキング サイトインターネッ...

SEO で良い成果を上げるためにユーザー心理を分析する方法

SEOをうまく行うのは非常に難しいです。多くのことを学び、Baiduとともに進歩する必要があります。...

AWS が Amazon EC2 向け Apple macOS インスタンスを開始

本日正式に開始された AWS re:Invent カンファレンスにおいて、Amazon Web Se...

小紅書でブランドマーケティングを促進する6つの方法

今日は、小紅書について私がまとめたちょっとした知識のポイントと、友人がよく困惑する質問、そしてノート...

ウェブサイト運営で見落としがちな3つのこと

この記事は主に、産業用不動産ウェブサイトの運営において避けるべきいくつかの問題について説明しています...

ソソが20億近い損失を被る:ペンギンにも弱点があるのか​​?

起業家は、自分たちの世界がこの境界線の向こう側にあるため、それを概説しようとします。投資家はこの問題...

SEO担当者の今後の方向性について語る

多くの人から、SEO とは何なのか、SEO はどのように行うのか、どのようなチャネルを通じて行うのか...

Baidu検索エンジンマーケティングマッチングモードの使用と最適化

インターネット広告は徐々に人々の生活習慣に影響を与え、消費行動を導き、さらには人々の固有の概念に対す...