ソースコードから脆弱性を見つけよう

解説資料

ハンズオンのやりかた

skeletonディレクトリ以下に問題があり、X個のセクションに分けられています。 各セクションはいくつかのエクササイズに分かれており、静的解析を用いてソースコードから脆弱性を見つける方法について学べます。

各ステップに、READMEが用意されていますので、まずはREADMEを読みます。 READMEには、そのステップを理解するための解説が書かれています。

READMEを読んだら、ソースコードを開きTODOコメントが書かれている箇所をコメントに従って修正して行きます。 TODOコメントをすべて修正し終わったら、READMEに書かれた実行例に従ってプログラムをコンパイルして実行します。

途中でわからなくなった場合は、solutionディレクトリ以下に解答例を用意していますので、そちらをご覧ください。

macOSの動作結果をもとに解説しています。 Windowsの方は、パスの区切り文字やコマンド等を適宜読み替えてください。

ソースコードの取得

$ go env GOPATH
$ cd ↑のディレクトリに移動
$ mkdir -p src/github.com/gohandson/
$ cd src/github.com/gohandson
$ git clone https://github.com/gohandson/analysis-ja
$ cd analysis-ja

ソースコードの編集

skeletonディレクトリ以下のソースコードを編集する際にはセクションごとにブランチを作って作業するとよいでしょう。 以下の例は、Section 01を編集するためのfix-section01ブランチを作成しています。

$ git checkout -b fix-section01

作業にひと区切りがついたら以下のように作業内容をコミットしてください。

$ git add 編集したファイル
$ git commit -m "変更の概要"

ソースコードのアップデート

ハンズオン資料が更新された場合は以下のように更新してください。 なお、編集中のものがある場合はコミットしておきましょう。

$ git fetch -p
$ git merge origin/main 

アップデートの内容によっては編集中の内容とコンフリクトを起こす可能性があります。

ライセンス