GitLab with Git Fundamentals - ハンズオンラボ: Static Application Security Testing (SAST)
完了までの推定時間: 30 分
目的
このラボでは、CI/CD パイプラインのオプション機能である SAST を使って、コード内のセキュリティ脆弱性を特定します。GitLab の Vulnerability Report は、パイプライン実行ごとに見つかった古いまたは新しい脆弱性を表示します。詳しくはドキュメントで学べます。
タスク A. CI Test プロジェクトで SAST を有効にする
CI Test プロジェクトに移動します。
.gitlab-ci.ymlファイルをクリックし、Edit > Edit single file をクリックします。gitlab-ci.ymlファイルの末尾に次の行をコピーします。include: - template: Jobs/SAST.gitlab-ci.ymlSASTスキャンを.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.ymlinclude を使うと、CI/CD 設定に外部の YAML ファイルを含めることができます。読みやすさを高めるため、または複数の場所で同じ設定が重複するのを減らすために、1 つの長い
.gitlab-ci.ymlファイルを複数のファイルに分割できます。include キーワードについて詳しくはドキュメントで読めます。適切な Commit message を入力します。
Target Branch を
mainに設定します。Commit changes ボタンをクリックします。
タスク B. run.py を追加し、SAST スキャンの結果を確認する
このタスクでは、既知の脆弱性を含むファイルを追加し、SAST がそれを検出するか確認します。
パンくずリストのセクションでプロジェクト名をクリックして、Project overview ページに戻ります。
プロジェクトのランディングページの上部、ブランチのドロップダウンの右側で、(+) > This directory > New file をクリックします。
File name フィールドに
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")適切な Commit message を追加します。
Target Branch を
mainに設定します。Commit changes ボタンをクリックします。
左側のナビゲーションペインで、Build > Pipelines をクリックします。
パイプラインのテーブルの行の上部で、running(まだ実行中の場合)または passed(パイプラインが完了している場合)のステータスラベルをクリックします。
SAST スキャンには少し時間がかかることがあるので、待っている間にコーヒーでも淹れてください。
パイプラインが完了したら、左側のナビゲーションペインで Secure > Vulnerability report をクリックします。
いずれかの脆弱性をクリックし、
run.pyで SAST スキャンが検出した潜在的なセキュリティ問題について読みます。提起された問題を修正するために(
subprocess.runコマンドを削除するなど)コードを自由に編集し、変更をコミットしてください。脆弱性レポートは、その問題がまだ存在すると示しますか。
ラボガイド完了
このラボの演習を完了しました。このコースの他のラボガイドを見ることができます。
c955a93f)