GitLabとGit Essentials - ハンズオンラボ: 静的アプリケーションセキュリティテスト(SAST)
完了までの見積時間: 30分
目的
このラボでは、CI/CDパイプラインのオプション機能であるSASTを使用して、コード内のセキュリティの脆弱性を特定します。GitLabの脆弱性レポートでは、各パイプライン実行で見つかった古いまたは新しい脆弱性が表示されます。詳細については、ドキュメントを参照してください。
タスクA. CI Test
プロジェクトでSASTを有効にする
-
CI Testプロジェクトに移動します。
-
.gitlab-ci.yml
ファイルをクリックし、編集 > 単一ファイルを編集をクリックします。 -
次の行を
gitlab-ci.yml
ファイルの最後にコピーします:include: - template: Jobs/SAST.gitlab-ci.yml
SAST
スキャンを.gitlab-ci.yml
ファイルに統合する方法について詳しくは、ドキュメントを参照してください。 -
現在の
.gitlab-ci.yml
ファイルは次のようになります:stages: - build - test build1: stage: build script: - echo "Do your build here" test1: stage: test script: - echo "Do a test here" - echo "For example run a test suite" include: - template: Jobs/SAST.gitlab-ci.yml
includeは、CI/CD構成で外部のYAMLファイルを含めることができます。1つの長い
.gitlab-ci.yml
ファイルを複数のファイルに分割して可読性を向上させたり、同じ構成を複数の場所で重複させることを減らすことができます。include
キーワードについて詳しくは、ドキュメントを参照してください。 -
適切なコミットメッセージを入力します。
-
ターゲットブランチを
main
に設定します。 -
変更をコミットボタンをクリックします。
タスクB. run.py
を追加し、SASTスキャン結果を確認する
このタスクでは、既知の脆弱性を持つファイルを追加し、SASTがそれを検出するかどうかを確認します。
-
パンくずリストセクションでプロジェクト名をクリックして、プロジェクトの概要ページに戻ります。
-
プロジェクトランディングページの上部で、ブランチドロップダウンの右側にある、(+) > このディレクトリ > 新しいファイルをクリックします。
-
ファイル名フィールドに
run.py
と入力してください。 -
以下の内容をファイルにコピーしてください:
import subprocess in = input("Enter your server ip: ") subprocess.run(["ping", in]) print("Attempting to connect to the server") print("Application authentication was successful")
-
適切なコミットメッセージを追加してください。
-
ターゲットブランチを
main
に設定してください。 -
変更をコミットボタンをクリックしてください。
-
左側のナビゲーションパネルでビルド> パイプラインをクリックしてください。
-
パイプラインのテーブルの行の上部で、running(まだ実行中の場合)またはpassed(パイプラインが完了した場合)ステータスラベルをクリックしてください。
SASTスキャンには少し時間がかかる場合がありますので、待っている間にコーヒーを飲んでください。
-
パイプラインが完了したら、左側のナビゲーションパネルでSecure > 脆弱性レポートをクリックしてください。
-
いずれかの脆弱性をクリックし、
run.py
でSASTスキャンで検出された潜在的なセキュリティ問題について読んでください。 -
問題を修正するためにコードを編集しても構いません(例:
subprocess.run
コマンドを削除する)、変更をコミットしてください。脆弱性レポートは問題がまだ存在するとしていますか?
ラボガイド完了
このラボ演習が完了しました。他のこのコースのラボガイドをご覧いただけます。
提案はありますか?
ラボに変更を提案したい場合は、マージリクエストを介して提出してください。