Contrast CodeSecについて
Contrast CodeSecとは、企業向けに開発されたContrastのアプリケーションセキュリティを、アプリケーション開発者が利用できるよう無償で提供するものです。
CodeSec概要:
- CodeSec Scan: アプリケーション(Java、Javascript、.NET、React、Angular、JQuery、Vue.js、and TypeScript)コードのセキュリティを最適化する、高速で高精度のスキャン(SAST)
- CodeSec Serverless: AWS Lambda関数 (Java、Python)のサーバレス環境向けの革新的なアプリケーションセキュリティツール
- CodeSec SCA: OSSに潜む脆弱なライブラリ (Java、Javascript、Python、GO、PHP、.NET) を検出し、対策の表示や標準化されたSBOMを作成
上記全ての機能は、シンプルなコマンドラインインターフェース(CLI)から利用できますし、CodeSec ScanはGitHub Actionでも利用できます。
ステップ1 – インストール
コマンドプロンプトまたはターミナルを開いて、NPM か Homebrewでインストールします。または、Artifactoryからバイナリをダウンロードします。
(Contrast CodeSecは、Node.js v.16.13.2以降、且つv.17より前のバージョンに対応しています。)
brew tap contrastsecurity/tap
brew install contrast
npm install -g @contrast/contrast
Linux、Mac、Windows用のバイナリは、Artifactoryよりダウンロード可能です。
最新のビルドとお使いのOSを選択します。
OSによっては、ファイル実行のパーミッションを許可する必要があります。
ステップ 2 – 認証
お持ちのGitHub または Googleアカウントを使用して認証を行います。
contrast auth
ステップ 3 – スキャン
脆弱性を検査します。
以下のコマンドを使用し、Java、Javascript、React、Angular、JQuery、Vue.js、TypeScriptまたは .NET のコードでSASTスキャンを実行します。
contrast scan
数分で全ての脆弱性が検出され、その脆弱性内容と対策方法が表示されます。
GitHub Action開発パイプラインでこの SAST スキャンを自動化するためにも使用できます。
以下のコマンドを使用して、コード(Java、Javascript、Python、Ruby、GO、PHP、 .NET)にSCAスキャンを実行します。
contrast audit
数分で全ての脆弱性が検出され、その脆弱性の情報と対策方法が表示されます。
GitHub Action開発パイプラインでこの SCA スキャンを自動化するためにも使用できます。
contrast lambda
AWSポリシー
以下のAWSの権限が有効であることを確認してください。
- Lambda: GetFunction, GetLayerVersion
- IAM: GetRolePolicy, GetPolicy, GetPolicyVersion, ListRolePolicies, ListAttachedRolePolicies
AWSポリシーの例:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"iam:GetPolicyVersion",
"iam:GetPolicy",
"lambda:GetLayerVersion",
"lambda:GetFunction",
"iam:ListAttachedRolePolicies",
"iam:ListRolePolicies",
"iam:GetRolePolicy"
],
"Resource": [
"arn:aws:lambda:*:YOUR_ACCOUNT:layer:*:*",
"arn:aws:lambda:*:YOUR_ACCOUNT:function:*",
"arn:aws:iam::YOUR_ACCOUNT:role/*",
"arn:aws:iam::YOUR_ACCOUNT:policy/*"
]
}
]
}
AWSの認証情報
Contrast CodeSecは、以下のいずれかの方法によってAWSの認証情報を特定します。
- ユーザープロファイルに設定 (通常は
~/.aws/credentials
) --profile
オプション (contrast lambda --profile myProfile
)で指定AWS_DEFAULT_REGION
、AWS_ACCESS_KEY_ID
、AWS_SECRET_ACCESS_KEY
環境変数を使用
lambda
コマンドの使用方法の詳細については、contrast lambda --help
を実行してください。以下は、使用例です。
contrast lambda --function-name myFunctionName
contrast lambda -f myFunctionName --region eu-central-1
contrast lambda -f myFunctionName --region eu-central-1 --profile myDevProfile
contrast lambda -f myFunctionName -v -j -r eu-central-1 -p myDevProfile
contrast lambda --function-name myFunctionName --verbose --json-output --region eu-central-1 --profile myDevProfile