GitLab Security Essentials - ハンズオンラボ: 脆弱性への対応

このハンズオンガイドは、アプリケーションの脆弱性をトリアージして対応する方法を案内します。

推定所要時間: 15 分

前のラボでは、SAST とシークレット検出スキャナーをプロジェクトに導入しました。このラボでは、脆弱性をトリアージして解決する方法を探ります。

タスク A. 脆弱性トリアージプロセス

  1. Security Labs プロジェクトに移動します。

  2. 左サイドバーで Secure > 脆弱性レポート を選択します。トリアージプロセスを開始するには、まだトリアージされていない脆弱性に焦点を当てて、重大度順に脆弱性を並べ替えることをお勧めします。これがデフォルトの設定です。

  3. セキュリティレポートで 重大度 を選択して並べ替え順を変更します。矢印が下を向いていて、重大度が高い順から低い順に並んでいることを確認します。

  4. GitLab Advanced SAST スキャンで検出された脆弱性 Active debug code を選択します。

  5. 脆弱性を確認します。main.py の HTTP デバッグコードが「True」に設定されているため、この検出結果は有効であることがわかります。

  6. 右上隅の 脆弱性を編集 をクリックし、ステータスを変更 を選択します。ステータスを 確認済み に設定し、ステータスを変更 をクリックします。

  7. ページの下部にスクロールし、Issue を作成 を選択します。

  8. Issue には脆弱性のタイトルと詳細が自動的に入力されています。Issue の詳細を確認し、Issue を作成 を選択します。

  9. Secure > 脆弱性レポート に戻ります。

  10. 脆弱性 SQL コマンドで使用される特殊要素の不適切な無効化(「SQL インジェクション」) の最初のインスタンスを選択します。

  11. コードフロー タブを選択します。

  12. コードフローを確認して、脆弱性がどのように発生するかを確認します。右上隅の 脆弱性を編集 をクリックし、ステータスを変更 を選択します。ステータスを 確認済み に設定し、ステータスを変更 をクリックします。

  13. 詳細 タブを選択します。

  14. ページの下部にスクロールし、Issue を作成 を選択します。

  15. Issue を確認し、Issue を作成 を選択します。

この時点で、アプリケーションのセキュリティ Issue として対処すべき 2 つの Issue を作成しました。これらの脆弱性を修正するプロセスを確認しましょう。

タスク B. 脆弱性の修正

  1. プラン > 作業アイテム に移動します。

  2. Investigate vulnerability: Active debug code というタイトルの Issue を選択します。

  3. コードの場所 main.py:14 を選択します。

  4. 編集 > Web IDE で開く を選択します。

  5. main.py ファイルを選択します。

  6. コードの行を以下のように変更します:

    app.run(debug=False)
    
  7. 左サイドバーで ソース管理 アイコンを選択します。

  8. 適切なコミットメッセージ(例: 「Turned off debug mode」)を入力し、新しいブランチを作成してコミット をクリックします。

  9. Enter を押してデフォルトのブランチ名を使用します。

  10. 画面右下の MR を作成 を選択します。

  11. ページ下部の マージリクエストを作成 を選択します。

  12. マージリクエストのパイプラインが完了するまで待ち、ページを更新します。パイプラインのすべての検出結果を表示 をクリックします。

  13. 検出結果を確認します。セキュリティリストに Active debug code の脆弱性が表示されなくなっているはずです。

  14. MR に戻り、マージ を選択してセキュリティ更新をマージします。

  15. main ブランチのパイプラインが完了したら、脆弱性レポート に移動します。フィルターの右側にある X をクリックして、レポートからすべてのフィルターを削除します。この脆弱性が自動的に解決済みとしてマークされていることが確認できます。

ラボガイド完了

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

ご提案・改善点

ラボに変更を加えたい場合は、マージリクエストで変更内容を送信してください。