GitLab Security Essentials - ハンズオンラボ: 脆弱性への対応
推定所要時間: 15 分
前のラボでは、SAST とシークレット検出スキャナーをプロジェクトに導入しました。このラボでは、脆弱性をトリアージして解決する方法を探ります。
タスク A. 脆弱性トリアージプロセス
Security Labs プロジェクトに移動します。
左サイドバーで Secure > 脆弱性レポート を選択します。トリアージプロセスを開始するには、まだトリアージされていない脆弱性に焦点を当てて、重大度順に脆弱性を並べ替えることをお勧めします。これがデフォルトの設定です。
セキュリティレポートで 重大度 を選択して並べ替え順を変更します。矢印が下を向いていて、重大度が高い順から低い順に並んでいることを確認します。
GitLab Advanced SAST スキャンで検出された脆弱性 Active debug code を選択します。
脆弱性を確認します。
main.pyの HTTP デバッグコードが「True」に設定されているため、この検出結果は有効であることがわかります。右上隅の 脆弱性を編集 をクリックし、ステータスを変更 を選択します。ステータスを 確認済み に設定し、ステータスを変更 をクリックします。
ページの下部にスクロールし、Issue を作成 を選択します。
Issue には脆弱性のタイトルと詳細が自動的に入力されています。Issue の詳細を確認し、Issue を作成 を選択します。
Secure > 脆弱性レポート に戻ります。
脆弱性 SQL コマンドで使用される特殊要素の不適切な無効化(「SQL インジェクション」) の最初のインスタンスを選択します。
コードフロー タブを選択します。
コードフローを確認して、脆弱性がどのように発生するかを確認します。右上隅の 脆弱性を編集 をクリックし、ステータスを変更 を選択します。ステータスを 確認済み に設定し、ステータスを変更 をクリックします。
詳細 タブを選択します。
ページの下部にスクロールし、Issue を作成 を選択します。
Issue を確認し、Issue を作成 を選択します。
この時点で、アプリケーションのセキュリティ Issue として対処すべき 2 つの Issue を作成しました。これらの脆弱性を修正するプロセスを確認しましょう。
タスク B. 脆弱性の修正
プラン > 作業アイテム に移動します。
Investigate vulnerability: Active debug code というタイトルの Issue を選択します。
コードの場所
main.py:14を選択します。編集 > Web IDE で開く を選択します。
main.pyファイルを選択します。コードの行を以下のように変更します:
app.run(debug=False)左サイドバーで ソース管理 アイコンを選択します。
適切なコミットメッセージ(例: 「Turned off debug mode」)を入力し、新しいブランチを作成してコミット をクリックします。
Enter を押してデフォルトのブランチ名を使用します。
画面右下の MR を作成 を選択します。
ページ下部の マージリクエストを作成 を選択します。
マージリクエストのパイプラインが完了するまで待ち、ページを更新します。パイプラインのすべての検出結果を表示 をクリックします。
検出結果を確認します。セキュリティリストに Active debug code の脆弱性が表示されなくなっているはずです。
MR に戻り、マージ を選択してセキュリティ更新をマージします。
main ブランチのパイプラインが完了したら、脆弱性レポート に移動します。フィルターの右側にある X をクリックして、レポートからすべてのフィルターを削除します。この脆弱性が自動的に解決済みとしてマークされていることが確認できます。
ラボガイド完了
このラボ演習が完了しました。このコースの他のラボガイドを参照できます。
ご提案・改善点
ラボに変更を加えたい場合は、マージリクエストで変更内容を送信してください。
