バグバウンティの学び方 beta

f:id:NickShadows:20191104091305j:plain



バグバウンティをやり始めて1年。
脆弱性診断士を始めて半年。


勉強のやり方や情報収集などを試行錯誤してきました。
今私が考えている学び方を残しておこうと思います。


今後変わる可能性は大いにあるのでbeta版としておきます。


1年前の自分に向けて。


セキュリティの基本、モラルを学ぶ

最低限、IPAの情報セキュリティマネジメントを合格できるようなレベルは身につけましょう。

www.jitec.ipa.go.jp



なぜバグを見つけ、報告するのか?という根本的な目的を理解していないと、単なる攻撃者となり、犯罪者になります。


そうならないよう、この試験レベルの知識とモラルは必須と言えます。


合格率は50%前後なので、簡単な部類です。
合格点を取るだけのような勉強法はやるだけ無駄なので、なぜそうなっているのか理由まで理解するようにしましょう。


教えてもらえる環境を探す

前に「1人で勉強するのは無理がある」みたいな記事を書きました。


それは今でも考えは変わらないので、さっさと教えてもらえる人や仲間を探しましょう


私が取り組んでいたときは、このステップを無視してしまい、知識を習得するのに時間が大きくかかりました。


脆弱性診断士となり、周りに教えて貰える人がたくさんいる環境となってからこのステップの重要性に気付きました。


想像しているより10倍くらいは有効です。


仕事仲間でも、友達でも、スクールでも良いです。
私のグループもあるので、何でも良いので環境を作ってください。

www.nicksecuritylog.com



実際に学ぶ

知識をつける

実際に知識をつけていきます。

海外の記事だといろいろ紹介されていますが、徳丸本が良いと思います。



読み方はこちら

www.slideshare.net



随時アウトプットする

学んだことをアウトプットしましょう。
例外を除けば、アウトプットしたほうが知識が定着する効率が良いです。


次項以降で手を動かすことによるアウトプットを行いますが、それが出来るまではテキストなり言葉なりでアウトプットすると良いです。


見られており、残るところが良いので、ブログサービス(はてなやnoteなど)がオススメです。
私のグループでも良いですよ!(宣伝)


わからないところがあったらガンガン質問しましょう。
この記事のほぼすべての記載は、教えてもらえる環境があることが前提となっています。


検証環境で確かめる

学んだことを実際に確かめましょう。
徳丸本であれば、検証環境がくっついてくるので、同時並行でやれます。


それ以外の検証環境を使いたい場合は、以下を検討してみてください。


OWASP juice shop

www2.owasp.org



OWASP BWA

www.owasp.org



(脆弱性診断士でない場合)検証環境を診断してみる

部分部分で確かめるのもいいですが、やはりやり通すのが一番です。

OWASPの脆弱性診断プロジェクトを参考に、検証環境を診断してみましょう。
www.owasp.org



診断項目の中には、それ単体では報告の対象になりえないものがあります(Cookieの属性など)
しかし、これらは脆弱性によるリスクを報告する上で重要なことになります。


これらを理解できていないと、非常にふわっとした報告になってしまいます。
実際私は、ふわっとした報告をしてしまい認められなかったことがあります。


どういう脆弱性があって、どういう状況だからどれだけのリスクがあるか?
診断をすると、そのあたりが学べるので良いです。


脆弱性診断士の方は仕事でやればいいので省略して良いです。


(脆弱性診断士でない場合)実際の環境を可能な範囲で診断してみる

実際の環境を診断してみましょう!


といっても、そこらのサイトをやるのはNGです。
バグバウンティプログラムの対象のサイトをやりましょう。


初めてやるときは、ルールなどの知っている人に確認しましょう。
規約などは対象のページに書いてあります。


どの範囲で、どの行為は禁止なのか。
その練習です(本番ですが)


自分が把握している範囲で順次やりましょう。
よくわかってないのに、決定処理をスキャナで回したりすると大惨事になる可能性があるのでやめましょう。


いろいろやりたい場合はサイボウズのバグバウンティに申し込みましょう。
検証環境を発行してくれるので、ある程度のことができます。

cybozu.co.jp



試行錯誤する

あえて項を立てるほどのことでは無いのですが、試行錯誤しましょう。


「どうやったらいいんだろう?」を繰り返し検証しましょう。
わかんなかったり、気になってることは聞きまくりましょう。


情報収集をする

新たな知識を随時入れましょう。
日本語で検索してもいい情報は出てこないので、英語で検索しましょう。


参考にした記事を最後に貼っておきます。


また、Twitterを使うのが手っ取り早いです。
以下のタグを監視してるとまぁまぁ情報が入ります。

  • #bugbounty
  • #bugbountytips



気に入った脆弱性を選び、集中して学ぶ

脆弱性を絞って学びます(XSSとか)


とにかく種類が多いので、網羅しようとするとめっっちゃ時間がかかります。
私は網羅しようとして無理でした。


絞って学ぶと、細かいことがいろいろわかりました。
私はXSSを選んだのですが、DOM XSSの詳細など、得るものは大きかったです。


ちなみに、初心者だとXSSかIDORが良いそうですよ。


終わりに

これは書くかどうか悩んだのですが、今しか書けないと思い、書きました。


一応beta版としています。
リリース版を出せるよう、精進していきます。


参考

Bugcrowd コミュニティ



バグバウンティガイド

medium.com



medium.com



medium.com



medium.com



www.reddit.com