GitLab with Git Fundamentals - ハンズオンラボ: Static Application Security Testing (SAST)

このハンズオンガイドでは、コードのセキュリティ上の欠陥を追跡する SAST ジョブのセットアップ方法を説明します。

完了までの推定時間: 30 分

目標

このラボでは、CI/CD パイプラインのオプション機能である SAST を使用して、コードのセキュリティ上の脆弱性を特定します。GitLab の脆弱性レポートは、パイプラインの実行ごとに検出された古い脆弱性と新しい脆弱性を表示します。詳細についてはドキュメントをご覧ください。

タスク A. CI Test プロジェクトで SAST を有効にする

  1. CI Test プロジェクトに移動します。

  2. .gitlab-ci.yml ファイルをクリックし、Edit > Edit single file をクリックします。

  3. gitlab-ci.yml ファイルの末尾に以下の行をコピーします:

    include:
      - template: Jobs/SAST.gitlab-ci.yml
    

    SAST スキャンを .gitlab-ci.yml ファイルに統合する方法の詳細についてはドキュメントをご覧ください。

  4. 現在の .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 キーワードの詳細についてはドキュメントをご覧ください。

  5. 適切な Commit message を入力します。

  6. Target Branchmain に設定します。

  7. Commit changes ボタンをクリックします。

タスク B. run.py を追加して SAST スキャン結果を確認する

このタスクでは、既知の脆弱性を含むファイルを追加し、SAST がそれを検出するかどうかを確認します。

  1. ブレッドクラムセクションでプロジェクト名をクリックして、Project overview ページに戻ります。

  2. プロジェクトランディングページの上部、ブランチドロップダウンの右側にある (+) > This directory > New file をクリックします。

  3. File name フィールドに run.py と入力します。

  4. 以下の内容をファイルにコピーします:

    import subprocess
    
    in = input("Enter your server ip: ")
    subprocess.run(["ping", in])
    
    print("Attempting to connect to the server")
    print("Application authentication was successful")
    
  5. 適切な Commit message を追加します。

  6. Target Branchmain に設定します。

  7. Commit changes ボタンをクリックします。

  8. 左側のナビゲーションペインで Build > Pipelines をクリックします。

  9. パイプラインのテーブルの行の上部にある running(まだ実行中の場合)または passed(パイプラインが完了した場合)のステータスラベルをクリックします。

    SAST スキャンには少し時間がかかる場合があります。コーヒーブレイクしながらお待ちください。

  10. パイプラインが完了したら、左側のナビゲーションペインで Secure > Vulnerability report をクリックします。

  11. いずれかの脆弱性をクリックし、run.py で SAST スキャンが検出した潜在的なセキュリティ問題を読んでください。

  12. 問題を修正するためにコードを自由に編集し(subprocess.run コマンドを削除するなど)、変更をコミットしてください。脆弱性レポートでは、その問題が引き続き存在するとして報告されますか?

ラボガイド完了

このラボ演習が完了しました。このコースの他のラボガイドを見ることができます。

ご提案は?

ラボへの変更を提案したい場合は、マージリクエストを通じて送信してください。