Aikido

DIYガイド:OSSコードスキャンとアプリセキュリティツールキットを「自作するか購入するか」

ジョエル・ハンスジョエル・ハンス
|
#
#
#

開発スキルには自信がある——自分が構築したアプリにセキュリティや設定上の欠陥が完全になくはないことも理解しているほどに。また、利用可能なスキャンツールの深いエコシステムを調査し、選択肢の多さに圧倒されたこともあるだろう。依存関係、Infrastructure as Code(IaC)設定、コンテナなどの脆弱性を特定するための、適切なオープンソースのアプリケーションセキュリティツールの「ポートフォリオ」とは何だろうか?

正しい軌道に乗るために、コード・スキャンとセキュリティ・ツールの重要な10のカテゴリーを取り上げ、9つのOSSプロジェクトを推薦する:

  • そのスキャンがアプリのセキュリティにどのように役立つのか。
  • どのオープンソースプロジェクトをインストールし、どのように実行するか。
  • 利用可能な場合は)いくつかの選択肢から選ぶことができる。

これによって、コードとクラウド構成に重大なセキュリティ問題がないか、アプリをスキャンするためのノーBSパスが手に入る。これほど素晴らしいことはない。

まあ、コンフィギュレーションと管理の部分はバラ色ではないが、それは後で説明しよう。

必要なもの

デスクトップでもラップトップでも、macOSでもWindowsでもLinuxでも構いません。

開発者環境はオプションだが、推奨される。このオープンソースのスキャンツール群を動かすには、ベースとなるOSにインストールしたくないソフトウェアをたくさんインストールする必要があり、大きなアップデートが必要になったり、オートコンプリートを汚染したり、すべてのプロジェクトで動作しないかもしれない特定のツールに固定されたりする。開発者環境は、すべての開発専用ツールをコンテナ化し、OSの他の部分からある程度隔離します。

幸いなことに、素晴らしいオープンソースのツールから選ぶことができる:

  1. Dockerという名前の新しいベアボーンコンテナをスピンアップすることができる。 デーヴン01 このように docker run --name devenv-01 -it ubuntu:24.04 sh
  2. デイトナこれは、開発ワークフローに必要な多くの「バッテリー込み」である: デイトナ・クリエイト -コード
  3. また、Distroboxを使えば、あらゆるLinuxディストリビューションをターミナル内に組み込み、ソフトウェアをインストールすることができる。

開発者環境の素晴らしいところは、特定の「スタック」を使い終わったら、ワークステーションに影響を与えることなくコンテナを安全に削除できることだ。

#1: クラウドセキュリティポスチャ管理 (CSPM)

CSPM アプリケーションのセキュリティをどのようにCSPM しますか?

CSPMは、クラウド環境のセキュリティとコンプライアンスを強化するのに役立ちます。業界のベストプラクティスと社内ポリシーに照らしてアプリケーションとそのアップストリームサービスを継続的に監視することで、CSPMツールは問題を評価し、その重要度に基づいて優先順位を付け、修復のための推奨事項を提供します。CSPMを活用することで、脆弱なアプリケーションが本番環境に昇格されるのを防ぐためのベースラインとガードレールに対するより多くのオーナーシップを持ち、同時に設定ミスや過度に許可されたユーザーロールを排除することができます。

OSSCSPM のインストールと実行: CloudSploit

CloudSploitをインストールするには、まずNode.jsが必要です。依存関係 ダウンロードし依存関係 エンジンを実行できます。

git clone https://github.com/aquasecurity/cloudsploit.git
cd cloudsploit
npm install

次に、CloudSploitにクラウドアカウントへの読み取り権限を設定する必要があります。 AWS, Azure, GCPそして オラクル.クラウドプロバイダーの指示に従って、レポの config_example.js ファイル をテンプレートとして作成します。 config.js ファイルに、最初の完全な診断を実行し、JSONで結果を得るために必要なすべての詳細を記述する。

./index.js --collection=file.json config.js

#2: オープンソースの依存関係のソフトウェアコンポジション分析 (SCA)

SCA アプリケーションのセキュリティをどのようにSCA しますか?

あなたのアプリは必然的に、UIフレームワークから単一のLOCで使用するヘルパーライブラリ(メールアドレスのバリデータなど)に至るまで、現在依存依存関係 大規模な依存関係 ツリーを有しています。 SCA は、コードの拡張ファミリーに対する身元調査のようなもので、脆弱性 ライセンス問題を一度きりではなく継続的に特定します。SCA 新たな脆弱性と修正策を通知するため、オープンソースのサプライチェーンが生産性の妨げではなく支援者であり続けるという確信が持てます。

OSSSCA のインストールと実行: Syft + Grype

ローカルでSCAには、ソフトウェア部品表(SBOM)を作成するSyftと、SBOM 既知の脆弱性SBOM 分析するGrypeが必要です。SyftとGrypeは同じチームが開発しているため、多くのインストール方法をサポートしていますが、それぞれの一行コマンドの使用を推奨しています:

curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin

ローカルワークステーションにSyftをインストールすると、コンテナSBOM を作成でき、 <YOUR-IMAGE> を、設定されたコンテナ・レジストリまたはローカル・ディレクトリにあるイメージと置き換える。

syft <YOUR-IMAGE> -o syft-json=sbom.syft.json

を手にすることになる。 sbom.syft.json を作業ディレクトリにコピーし、それをGrypeに入力する。

grypesbom:パス/to/syft.json -o json

Grypeはその後、以下の形式で脆弱性 を印刷します。これには深刻度の詳細と既知の修正情報も含まれており、優先順位付けと修復プロセスの指針として活用できます。

{
"vulnerability": {
   ...
 },
"relatedVulnerabilities": [
   ...
 ],
"matchDetails": [
   ...
 ],
"artifact": {
   ...
 }
}

代替案と注意点

Trivy はSCAの堅実なOSS代替手段です。全体的に1対1の機能パリティを提供するわけではありませんが、開始するには十分すぎるほどです。

#3: シークレット検出

シークレット アプリのセキュリティにどのように役立つのか?

シークレット 、公開したくない認証情報をコードや設定からスキャンします。シークレット API 、サードパーティプロバイダーへのアクセストークン、上流データベースのパスワード、証明書、シークレット 。一度パブリックリポジトリにプッシュされると、Git履歴から削除する面倒な作業が必要になります。コミット前に早期に検出して対策を講じる方が賢明です。

OSSシークレット プロジェクトをインストールして実行する: Gitleaks

Gitleaks リポジトリをスキャンし、Gitログを解析することで、過去または現在におけるハードコードされたシークレットの存在を確認します。 見つける behavior は既にコミットシークレット 識別する一方、 守る ビヘイビアはコミットされていない変更をスキャンし、ミスを未然に防ぐ。

最大限の制御を行うには、ソースからGitleaksをインストールすることをお勧めします。

git clone https://github.com/gitleaks/gitleaks.git
cd gitleaks
make build

Gitleaksを初めて実行する際、新規のシークレット のみの結果を表示するベースラインレポートを作成できます。

gitleaks detect --report-path gitleaks-report.json

を参照する必要があります。 gitleaks-report.json ベースラインレポート作成以降にシークレット のみをGitログからスキャンするファイル。

gitleaks detect --baseline-path gitleaks-report.json --report-path findings.json

あなたの 所見.json ファイルには、各リーク候補のコミットハッシュと作者に関する詳細が含まれており、修正に集中するのに役立つ。

代替案と注意点

残念ながら、Gitleaks以外に選択肢は多くありません。他のオープンソースシークレット プロジェクトは、最後のコミットから数年が経過しています。現在開発中のアプリを保護する上で、決して信頼できる状況とは言えません。サービスプロバイダーの方は、GitHubシークレットスキャンパートナープログラムに登録できます。このプログラムは、ユーザーが誤ってシークレットトークン形式をリポジトリにコミットした際に検知します。

#4: 静的アプリケーションセキュリティテスト (SAST)

SAST どのようにSAST のですか?

SASTは、アプリケーションセキュリティツールのきめ細かい櫛であり、コードベースを1行ずつ分析して、アプリケーションを脆弱な状態にする可能性のある欠陥のある構文、構造、またはロジックをチェックします。SQLインジェクション攻撃、クロスサイトスクリプティング (XSS) の機会、バッファオーバーフローなどを考えてみてください。既知のCVEの人気データベースと照合することで、堅牢なSASTツールは、大きなセキュリティ上の欠陥を見逃していないという自信を与え、中には迅速な修復のための自動修正提案を提供するものもあります。

OSSSAST 「Semgrep」をインストールして実行する

Semgrepはコードをスキャンし、バグを見つけ、30以上の言語をサポートし、呼び出すたびに確立されたコード標準を実施します。簡単に説明するため、Semgrep CLIに焦点を当てますが、これは複雑な製品のエコシステムの一部に過ぎません。

Semgrep CLIをインストールする最も一般的な方法は、Python/pipを使用することです。

python3 -m pip install semgrep

最初のスキャンを実行して、コードレベルの欠陥と脆弱性のレポートをJSONファイルとして作成する。

semgrep scan --json --json-output=semgrep.json

代替案と注意点

SAST 機会が溢れています。Semgrepが合わない場合は、Bandit(Python)、Gosec(Go)、Brakeman(Ruby on Rails)など言語固有の代替ツールを試して始めてみましょう。

#5: 動的アプリケーションセキュリティテスト (DAST)

DAST アプリケーションのセキュリティにどのようにDAST ?

SAST異なり、 DAST は、本番環境においてアプリに対して一般的に悪用される脆弱性をシミュレートします。これは、記述したコードの構文や構造に焦点を当てるというより、攻撃者が本番環境に対して取る可能性のある手法を再現することに重点を置いています。DAST 、使用しているフレームワークやライブラリにおける既知のCVEを再確認し、権限設定の不備や複数の脆弱性が組み合わさった「有害な組み合わせ」によって、ログインユーザーが機密データにアクセスできるかどうかをテストします。これにより、アプリがはるかに深刻な結果に晒される可能性を検証します。

OSSDAST 「Nuclei」をインストールして実行する

Nucleiは、コミュニティ主導の脆弱性スキャナーであり、テンプレートを使用してローカル環境で実行されている保護したいアプリにリクエストを送信します。YAMLを使用してカスタムテンプレートを作成できますが、Nucleiコミュニティには、アプリに対してテストするための広範な事前設定済みテンプレートライブラリもあります。

Nucleiをインストールするには、ローカルのワークステーションにGoが必要です。

go install -vgithub.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

そこからNucleiを実行する最もシンプルな方法は、単一のターゲット(開発者環境でローカルに実行するアプリ)を指定し、Nucleiがデフォルトで有効化するテンプレート・ライブラリを活用することだ。

nuclei -u localhost:5678 -je nuclei-report.json

代替案と注意点

Zed Attack Proxy(ZAP)は、セキュリティ専門家と開発者のグローバルチームによって活発にメンテナンスされている素晴らしいスキャナーだ。しかし、このリストの他のものとは異なり、ZAPはデフォルトでグラフィカルなアプリだ。ターミナルを使うオプションもあるが、ここまでたどってきた他のプロセスと比べると、開発者フレンドリーとは言い難い。

#その6:インフラストラクチャー・アズ・コード(IaC)スキャン

IaCスキャンはアプリのセキュリティにどのように役立つのか?

今日、ほとんどのチームはTerraform、CloudFormation、そして "基本 "Kubernetes HelmチャートのようなIaCツールを使って、宣言的でバージョン管理された再現可能な方法でクラウドサービスをプロビジョニングしている。IaCスキャナは、これらのJSONまたはYAMLブループリントの脆弱性を特定し、安全でない状態を本番環境にデプロイすることを防ぎます。

OSS IaCスキャンプロジェクトをインストールして実行する:チェックオフ

Checkovは、Terraform設定、Helmチャート、Dockerファイルなど、多くのタイプのIaCコードをスキャンし、一般的な設定ミスや潜在的なセキュリティ脆弱性を検出します。AWS、GCP、Azure用の1,000以上のポリシーチェックが組み込まれており、このツールは、クラウド展開の現在のリスクと機会を数分で迅速に理解するのに役立ちます。

チームは、Pythonのパッケージマネージャーを使ってローカルにCheckovをインストールすることを推奨している。

python -m pip install checkov

そして、作業ディレクトリ(またはIaCファイルを保存している別のディレクトリ)に対してCheckovを実行し、出力としてJSONファイルを得ることができる。

checkov --directory .-o json

#7位:コンテナ画像スキャン

コンテナ・イメージのスキャンは、アプリのセキュリティにどのように役立つのか?

コンテナは複雑性を抽象化してくれるため我々は愛していますが、コンテナイメージをビルドするたびに、ベースイメージや依存関係脆弱性を継承する可能性があります。コンテナイメージスキャナーは、依存関係ツリーの深さに関わらず、ベースイメージやDockerfile内の脆弱性を発見し、悪用可能なアプリケーションを無意識にデプロイするのを防ぎます。

年配の男性と少年がベンチに座っているミーム画像のテンプレート。パネル1"私のマシンで動きます"パネル2:「では、あなたのマシンを出荷しましょう」。パネル3:「こうしてDockerは誕生した。

コンテナ・イメージの脆弱性はこうして生まれたのだ。

OSSコンテナ・イメージ・スキャン・プロジェクトをインストールし、実行する:Trivy

Trivy は、CVEを持つ既知の脆弱性、IaCの問題と設定ミス、シークレットの存在などについて、コンテナイメージを解析できる多機能なセキュリティスキャナーです。オープンソースのTrivyプロジェクトを支えるAqua Securityチームは、12以上のデータソースから収集された脆弱性情報の公開データベースを維持しています。

これまで推奨してきた他のインストール方法と同様に、最新のGitHubリリースから直接インストールする場合は、Trivyのスクリプトを使うことをお勧めします。

curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.51.1

デフォルトでは、Trivyは指定したコンテナイメージ シークレット 脆弱性、設定ミス、シークレット スキャンし、結果は標準のJSON形式で出力されます。

trivy image --format json --output trivy-result.json <YOUR-IMAGE>

代替案と注意点

これまでの手順を追ってきた方なら、前のSCAセクションで既にローカルワークステーションにGrypeをインストール済みであり、SyftでSBOM コンテナイメージ スキャンに非常に有効です。AWSをご利用の場合、ここでもAmazon Inspectorが「一石二鳥」の形で役立つ場面となります。

Amazon Inspectorも選択肢の1つだが、2つの大きな注意点がある。1つ目は、AWSのデプロイメントでしか動作しないこと、2つ目は、他のおすすめ製品のようにオープンソースのソフトウェアではないため、月額費用がかかることだ。

#8位:オープンソースのライセンススキャン

オープンソースのライセンススキャンはアプリのセキュリティにどう役立つのか?

商用製品におけるオープンソースソフトウェアの使用の合法性は、法務やコンプライアンス部門に一度確認すればそれで終わりというものではありません。OSSプロジェクトは想像以上に頻繁にライセンスを変更するため、エンタープライズ版を購入するか、代替手段を探すか、あるいは自社非公開コードの一部をオープンソース化する必要があります。ライセンススキャナーは変更点を特定し、すぐに使えるソフトウェア部品表(SBOM)を用意することで、セキュリティ監査を円滑に通過する手助けをします。

OSSライセンススキャンプロジェクトをインストールして実行します:Syft

前回のステップでGrypeをインストールした際と同様に、ローカルワークステーションには既にSyftがインストールされており、GrypeとのSCA SBOM 作成されている可能性もあります。まだ作成していない場合は、設定済みのレジストリからコンテナイメージを参照するか、ローカルワークステーション上のパスを指定することで、新しいSBOMを素早く作成できます。

syft <YOUR-IMAGE> -o syft-json=sbom.syft.json
syft /path/to/image -o syft-json=sbom.syft.json

イメージの複雑さや依存関係深さによっては、数千行にも及ぶSBOM が生成される場合があります。その膨大なJSON出力の中から、 出土品 の配列である。 ライセンス コンテナ・イメージが依存する各パッケージと依存関係の値を指定します。

{
"artifacts":[
   {
"id":"cdd2655fffa41c69",
"name":"alpine-baselayout",
"version":"3.4.3-r2",
"type":"apk",
"foundBy":"apk-db-cataloger",
"locations":[
       …
     ],
"licenses":[
       {
"value":"GPL-2.0-only",
"spdxExpression":"GPL-2.0-only",
"Type":"declared",
         …

これらの詳細を単一SBOMに集約することで、下流工程で必要となる変更や、準備を始めるべき移行計画について、ライセンス義務をスキャンできるようになります。また、次に受けるセキュリティ監査の際にも、すぐに参照できるリソースとして活用できます。

代替案と注意点

前節で最初に紹介したTrivyには、ライセンススキャン機能があり、オープンソースの依存関係ツリーにあるプロジェクトに関連するリスクについて、意見付きの結果を提示してくれる。

#9位:マルウェア検知

マルウェア検知はアプリのセキュリティにどう役立つのか?

マルウェアスキャナーは、近年急増している脅威、つまり攻撃者によって依存パッケージに注入されたマルウェアを特定するのに役立つ。最近のzxバックドアの試みは、素晴らしい、そして恐ろしい例です。マルウェアスキャナは、コードをマージする前にこのようなソフトウェアサプライチェーン攻撃を検出し、CVEが公開された後に時間やコストのかかる修正が必要になるのを防ぎます。

OSSマルウェア検出プロジェクトをインストールして実行する:Phylum

PhylumのCLIツールを使用すると、ロックファイルを彼らのAPIに送信して依存関係分析を行うことができます。これは、ここで推奨する他のオープンソースツールとは少し異なり、分析はローカルワークステーションでは行われません。代わりに、Phylumのサービスで認証するためにアカウントを登録する必要があります。

Phylumをローカルにインストールすることから始める。

curl https://sh.phylum.io | sh

それからアカウントを登録し、最初の分析を実行する。

phylum auth register
phylum auth login
phylum init
phylum analyze --json

Phylumの分析は、以下のような包括的なアウトプットを提供する。 真の または 擬似 プロジェクトがPhylumのマルウェアチェックを通過したか否かに基づく結果です。各依存関係に対する拒否配列の下には、OSSコミュニティからの脆弱性 詳細な説明脆弱性 修正アドバイスが記載されています。これにより、SAST、DAST、SCA の結果を集約でき、どの脆弱性が依存関係 起因し依存関係 どの脆弱性が自身が記述したコードに直接埋め込まれているかを把握することが可能になります。

{
"is_failure": true,
"incomplete_packages_count": 2,
"help": "...",
"dependencies": [
   {
"purl": "pkg:npm/next@13.5.6",
"registry": "npm",
"name": "next",
"version": "13.5.6",
"rejections": [
       {
"title": "next@13.5.6 is vulnerable to Next.js Server-Side Request Forgery",
"source": {
"type": "Issue",
"tag": "HV00003FBE",
"domain": "vulnerability",
"severity": "high",
         ...

#10: ランタイム・エンド・オブ・ライフ(EOL)の検出

EOLランタイムの検出は、アプリのセキュリティにどのように役立つのか?

アプリに組み込むフレームワーク、ライブラリ、ランタイムが増えるほど、古いバージョンやメンテナンスされていない依存関係に対して危険に晒される機会も増えます。これは特に、パブリックインターネットに直接公開されているランタイムにとって重大な問題です。EOLランタイム検出ツールは、コンテナ内のものも含むロックファイルを通じて依存関係ツリーを読み取り、更新や移行の準備ができるよう、十分な余裕をもって警告を発します。

OSSプロジェクトのインストールと実行: endoflife.date

endoflife.dateは、300以上のツールやプラットフォームに関するEOL情報のデータベースで、その多くはあなたのアプリの動作やセキュリティに不可欠なものです。特定のバージョンの依存関係がいつメンテナンスされなくなるかを知るために、曖昧なドキュメントサイトを探検したり、メーリングリストを探し回ったりする代わりに、必要なアップグレードの日付を素早く表示し、今後の努力の優先順位をつけることができます。

EOLデータを発見する最も簡単な方法は、プログラミング言語、データベース、フレームワーク、デプロイツール、クラウドサービスのCLIに特に注意を払いながら、サイトを探索することだ。

開発者として、主要なランタイムやライブラリのEOLデータを探索する際、よりCLI中心のアプローチを望むかもしれません。endoflife.dateはJSONデータAPI シンプルなAPI 備えており、将来参照するためにローカルファイルに追加することも可能です。

curl --request GET \
--urlapi\
--header 'Accept: application/json' \
>> eol.json

新たな問題:コードスキャンとアプリのセキュリティデータの管理

ここまでたどってきたなら、オープンソースのコードと設定のスキャンツールの便利なツールキットを構築したことになる。ローカルに保存されたプロジェクトやブランチに対して、これらを実行し、コミット前のセキュリティ保証をはるかに向上させる準備が整いました。これを持って、左にシフトしてください!

しかし、あなたの未来がすぐに完璧になるわけではない。この新しいツールキットには大きな注意事項がある。

あなたはまだ、この先も責任がある:

  1. 各ツールを個別に設定する。例えば、本番環境のセキュリティに関連しないため、スキャンする手間をかけたくない特定のディレクトリや依存関係の許可リストのような簡単なオプションを考えてみましょう。各CLIツールの引数をドキュメントを読んでテストすることで学ぶ必要があり、これは実際にやりたいこと、つまり修正を実装することから貴重な時間を奪ってしまいます。

  2. 各リポジトリとブランチに対して各スキャナを実行する.単一のレポと2つのブランチがある場合でもメイン そして デヴ -つまり、脆弱性をスキャンするのに20回近く操作することになる。理想的なのは、リモートに変更をプッシュする前にこれらのスキャナーを実行することだ。

    もちろん、これを単純化する方法もあります。これらのオープンソーススキャナをチェーンして手動で実行するスクリプトを書いたり、コミット前の Git フックとして実行したりすることもできます。ターミナルにかかる時間は節約できますが、JSON の出力が速くなるだけです。 をプッシュし、プルリクエストを作成する。
  3. 膨大なJSON配列を調べ、洞察を得る。これらのツールは、多くの場合、数千行の出力を生成する。包括的であることは良いことですが、何十、何百もの潜在的なセキュリティ問題を調査し、その重大性を理解するために、1つ1つの問題を十分に理解することを望んでいる時間がある人はいないでしょう。

    時間が経つにつれて、Google Sheetsにインポートしたり、結果を表示するための単純なアプリを構築したりするように、JSONのフォーマットされていない行よりも直感的な結果を読み取る方法が必要になるでしょう。
  4. 走行中に何が変わったかを理解する。セキュリティスキャンには2つの目的があります。1つ目は、コードと設定における既存の問題を特定するのに役立つことです。2つ目は、構築中に新しい脆弱性を導入するのを防ぐことです。特定の脆弱性を修正したかどうかを迅速に理解できない場合や、新しい脆弱性がコードに紛れ込んだ際に通知されない場合、この取り組み全体は時間の無駄になります。

    1つのオプションは、出力JSONファイルをインクリメントまたはタイムスタンプし、CLIツールを使用してそれらを比較することです。 diff file1.json file2.json は素晴らしいスタンドアローンツールである。 git diff --no-index file1.json file2.json Git リポジトリにコミットされていないファイル。
  5. 長期的な分析のためにデータを集約、保存、共有する。前にも述べたように、セキュリティ・スキャンは継続的な作業であり、TODOリストの単発項目ではない。さらに、あなたのスキャンの努力の結果は、あなたのローカル・ワークステーションに閉じ込めておくべきではありません。あなたの仲間は、たとえ同じようなツールキットを現在実行していなくても、自分が構築したものに最も関連する脆弱性について知りたがるでしょう。

    あなたは、これらの情報を1つの場所にまとめるデータ・プラットフォームを探索する必要があります。
  6. JiraまたはGitHubでチケットを作成します。あなたまたは同僚は、特定された各脆弱性を、必要なすべてのコンテキストと可能な修正策を含む関連チケットにエスカレートする必要があります。これが、セキュリティの透明性を確保し、同僚との協力を促し、コンプライアンス基準で要求される可能性のある監査ログを作成する唯一の方法です。これらのツールはいずれもチケットプラットフォームとの統合をサポートしていないため、これらのチケットを手動で作成する必要があります。そして、それは数十、場合によっては数百にも及ぶ可能性があります。
  7. チケットを重要度に基づいて優先順位付けする。リポジトリをチケットで溢れさせることは、プロジェクト管理上の悪夢です。それはアラート疲れの異なる、しかし同様に苦痛なバージョンです。誰もが最初にどれに集中すべきかを知るにはどうすればよいでしょうか?もしOSSツールが重要度の判断を助けてくれない場合、自分でそれらの決定を下すのに時間を費やす必要があり、それは単純に近道できない長年のセキュリティ知識を伴うかもしれません。
  8. 各OSSツールのライフサイクルを管理する。ツールの更新維持、自動化の構築、CI/CD への実行と結果の連携など、ツールキットの長期的な有効性に対する責任は今やあなたにあります。セキュリティ態勢はかつてないほど強化されているかもしれませんが、実際の運用態勢にはどれほどの代償を払っているのでしょうか?
  9. プロジェクトのメンテナが失われた場合に何が起こるか、懸念と疑問を抱くべきです。 依存関係 タイム依存関係 EOL(サポート終了)を迎え問題を引き起こす可能性があるのと同様に、ローカル開発環境が依存するツールやプラットフォームも同様のリスクを抱えています。残念ながら、オープンソースプロジェクトは長期的に持続不可能な資金調達モデルやメンテナ体制の上に構築されていることが少なくありません。 CLIでは停滞したプロジェクトや放棄されたプロジェクトを依然として使用できますが、アプリのセキュリティ強化を図る際には、新たな脆弱性や攻撃手法を発見する助けにはなりません。

開発者ツールの現在の話題は、「開発者エクスペリエンス(DX)」という1つのコンセプトの周りに渦巻いている。DXが優れていればいるほど、ツールが統合され、使用され、大切にされ、支持される可能性は高くなる。そして正直に言おう、このローカルで運営されているOSSスキャンツールキットのDXは、特に素晴らしいものではない。プロセスやデータは完全に自分のものだが、並外れたコストと時間がかかる。高度なアプリ・セキュリティのためにいくら払うつもりですか?

オープンソースのセキュリティツールは素晴らしい——Node.jsアプリケーションを一般的な重大な攻撃から自律的に保護するWebアプリケーションファイアウォールすら構築した——しかし継続的なセキュリティスキャンと脆弱性 には、別の方法が必要だ。おそらくこの素晴らしいOSS基盤の上に構築された方法さえも。

新たなアプリセキュリティソリューション: Aikido

Aikido これらのオープンソースソリューションをすべて、単一のエンドツーエンドセキュリティプラットフォームに置き換えます。

最新の変更をコミットする準備をするたびに10以上のツールを実行する代わりに、リポジトリ、Dockerイメージ、クラウドプロバイダーを追加するだけで済みます Aikido に一度追加するだけで、包括的なスキャンが実行されます。 Aikido はバックグラウンドで自動実行され、継続的スキャンを実現。CI/CD 内でプルリクエストごとにターゲットを絞った推奨事項を提供します。これにより新たな脆弱性から保護されると同時に、コードベースに数ヶ月あるいは数年潜んでいた既存の脆弱性も指摘します。

さらに良いことに、すべての結果、状況、および可能な改善策は、単一の場所—— Aikido ダッシュボードに集約・保存されるため、JSONの解析や複数データソースの統合、信頼できる情報源構築のための高額なデータ管理プラットフォームの購入に頭を悩ませる必要は一切ありません。さらに、これらのオープンソースプロジェクト間にカスタムルールと特別な「接着剤」を構築し、社内の専門セキュリティ研究者でなければ発見できなかった相関関係や結果を明らかにしています。

Aikido また、GitHubやSlackなどのタスク管理やメッセージングプラットフォームと連携し、事前分類・優先順位付け済みのチケットを作成します。すべてのコンテキスト、ドキュメント、自動修正提案が揃っているため、チームの誰もが問題を即座に把握し、迅速かつ包括的に修正まで対応できます。

もしこれらのオープンソースツールや他の多くのツールがなかったら、アプリのセキュリティははるかに悪化していただろう。それは紛れもない事実だ。しかし、開発者向けツールがローカル・ワークステーション上で、ターミナル内で動作するということは、無限の柔軟性と本質的な隔離性を併せ持つことを意味する。私のマシンでは動いた」というミームは、言い方が違うだけで、ここでもまだ当てはまる:

イーロン・マスクと、窓ガラスが割れたサイバートラックのアプリ・セキュリティ・ミーム画像:"私のマシンでスキャンされました"
これがアプリのセキュリティの未来であってはならない。

もし別の方法をお探しなら、このオープンソースツールキットを構築する負担をすべて、同じプロジェクトの上に構築済みのプラットフォームで置き換える方法があります。 Aikido 無料で Aikido ご検討ください。

オープンソースの道を選ぶなら、我々は敬意と称賛を捧げます…しかし依存関係 新たなツールや依存関係 積み重ねる際には、AikidoNode.jsアプリを自律的かつ継続的に保護させるべきです。最も悪質な脆弱性からも守ります。結局のところ、最高の開発体験とは、ツールが本当に全ての面倒な作業を代行してくれる状態なのです。

4.7/5

今すぐソフトウェアを保護しましょう

無料で始める
CC不要
デモを予約する
データは共有されない - 読み取り専用アクセス - CC不要

今すぐ安全を確保しましょう

コード、クラウド、ランタイムを1つの中央システムでセキュアに。
脆弱性を迅速に発見し、自動的に修正。

クレジットカードは不要。