GitLab with Git Fundamentals - ハンズオンラボ: Static Application Security Testing (SAST)
完了までの推定時間: 30 分
目標
このラボでは、CI/CD パイプラインのオプション機能である SAST を使用して、コードのセキュリティ上の脆弱性を特定します。GitLab の脆弱性レポートは、パイプラインの実行ごとに検出された古い脆弱性と新しい脆弱性を表示します。詳細についてはドキュメントをご覧ください。
タスク 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コマンドを削除するなど)、変更をコミットしてください。脆弱性レポートでは、その問題が引き続き存在するとして報告されますか?
ラボガイド完了
このラボ演習が完了しました。このコースの他のラボガイドを見ることができます。
ご提案は?
ラボへの変更を提案したい場合は、マージリクエストを通じて送信してください。
