1人で勉強頑張ってたらセキュリティエンジニアにはなれない

f:id:NickShadows:20190826211532j:plain



1人では出来ることは限りなく少ない。
Webの脆弱性診断士としての観点で書いていきます。




目的とライン

セキュリティエンジニアとは?

www.manpowerjobnet.com



私はWebの脆弱性診断をしているので、Webアプリのセキュリティを高めることに貢献しています。




なぜWebアプリのセキュリティに貢献する必要があるのか?
それは、そのWebアプリを使っている人に被害が無いようにするためです。




なんでも好き勝手Webアプリを診断していいのか?
仕事で許可が出た範囲か、バグバウンティなどで許可が出た範囲だけです。




XSSを見つける。SQLインジェクションを見つける。
これらはネットを見ながら習得できると思います。



何が目的なのか?どれを診断していいのか?どの範囲なら問題ないのか?




これらって、独学でたどり着けるんですかね。
私は無理でした。


実践をやりたくなったら、誰かに聞きましょう。
やりかたを失敗すると、瞬間的に犯罪になります。


技術的側面でも難しい

どうやってXSSを見つけますか?





私はテキストボックスにalertって入れてアラートが出るかくらいしか知らず、それがXSSだと思ってました。
それ以外のパラメータで出たり、storedやDOMがあるなんて知りませんでした。




いざ、やられアプリを目の前にして「やってやるぞ!」と思った時。
真っ先にしたことはなにか?




フリーズ  でした。




私がその時思ってたことはこれです。

  1. 毎回alertって入れてアラートが出ればいいんでしょ?
  2. テキストボックスがないとこは、どこで出るの?
  3. あれ、できそうなテキストボックスが無いけど、これでXSS終了か・・・
  4. 「クロスサイトスクリプティング やりかた」 ・・・やりかたはあってるよなぁ





やがて徳丸本にもたどり着きますが、数多くの脆弱性に頭が追いつきませんでした


用意されている検証環境に書かれている通りにやれば再現できますが、なんでできてるかはわかりませんでした




「初心者」の私にとって、何をしていいかもうわかりませんでした。




私はどうやってきたか

以下のことをしたら転機が訪れました。

  1. カンファレンスに行った
  2. 転職した
  3. グループを作った



1.カンファレンスに行った



seccon2018本戦の傍らやってるカンファレンスでした。
↓の「バグハンター達が追い求めるものは?」ってやつです。

2018.seccon.jp





バグバウンティはどんな感じに取り組まれているのか、賞金を獲得しているのはどんな方なのかわかりました。
ここで情報元がある程度増えたり、英語の記事も読むようになりました




これが人に教わってるかは微妙ですが、もしこのカンファレンスに行ってなかったらバグバウンティにここまで取り組めていたかは微妙ですね。


脆弱性診断も出来てなかった可能性は高いです。




2.転職した



正直、これがデカイです。
転職できたのは↑だったり、ハッカー協会さんのおかげだったり、頼りまくってますね。




技術的に各種脆弱性の確認の仕方を教えてもらえたのが本当に大きいです。
「そんなことするんだ!」ってめっちゃ思ってました。




どう考えてみても、1人でやっていたら思いつかないと感じました
SQLインジェクションなんて、sqlmapやればいいや程度しか考えてなかったですからね。




覚えなきゃ仕事にならないというプレッシャーもあり、一気にレベルが引き上げられました。
もはや私の努力というより、会社や先輩方の協力が大半を占めてます




私個人ができたことなんて、ほんのちょっとですね。
ただ、行動していっただけ。




3.グループを作った



これも完全な思いつきでとりあえずやってみたものですが、想像以上の方が参加してくれました。




たかだか脆弱性診断を3~4ヶ月やっただけですが、教える立場になりました。




とりあえず勉強会を開催してみました。
貰う質問への回答、私自身の考えを話すのは難しかったです。




回答を繰り返す内に、技術や思考が私に定着していきました。
それはなぜか?説明したからです。




質問してくださった方に回答していたはずですが、私自身にも回答していたのですね。
これは自問自答では決して得られなかったです。




その他、情報収集や集めた情報の簡単な説明など。
自分だけのためだったらここまでやんないですね。




グループに参加してくださった方のおかげです。




このように色んな方に協力して頂いてからとてもスムーズに仕事やスキル習得が出来ています。
私自身も求める人に協力が出来たらと思っています。




でも1人で勉強もしてくれ

そうは言っても、1人で勉強するのは確実に有効なのでやってくださいね。




実践したいとか、これの意味がわからないとかになったら誰かに聞いてみてください。




え?初心者で聞ける人がいない?

Web関連ならdiscordのグループがあるらしいですよ?

www.nicksecuritylog.com



この記事を書いたときは、初心者を抜けるための企画やバグバウンティの手法効率化をやってたりします。




週1でボイスチャットの定例会をやってたりもしますので、ぜひともご気軽に。




まとめ

このテーマ、割と正しいかもな・・・
と思ったのは、グループの定例会で話しているときでした。




うすうす感づいてはいましたが、話すことで確実になりました。
1人でやるの無理。




「セキュリティエンジニア」ってくくりにしましたが、どの業界でもそうなのかもしれませんね。




1人で頑張っててなんとかなる業界ってあるんですかね?
商品やサービス作れたとしても、最終的に提供先は人間でしょ?