【体験談】未経験からセキュリティエンジニアへのなりかた【脆弱性診断士】

f:id:NickShadows:20190618211039j:plain





私が過去求めたシリーズ。
SESのころ、一日に何回「セキュリティエンジニア なりかた」、「セキュリティエンジニア 未経験」で検索しかたわかりません。




前にセキュリティエンジニア(脆弱性診断士)になった経緯を記事にしました。

www.nicksecuritylog.com





今回は実際に役に立ったと思ったことをまとめます。
どこかの誰かの役にたてば幸いです。
※Webの脆弱性診断士を前提として書きます







結論 ~やりたいことをやる~

最初に結論を述べます。


「やりたいと思ったことをやり続けること」

このごろよく聞くようなフレーズですが、真理でした。
実際そう思いました。


理由~熱中できる人はレア~

私はなんとかセキュリティ分野に行くため、個人的に以下のものに取り組んでいました。

  1. セミナー・カンファレンス参加
  2. CTF
  3. ハニーポット(Web系)
  4. バグバウンティ

1番思ったのは、面接のウケが良いです。


私は2回転職しているのですが、面接において1回目は1社目で学んだことを中心に聞かれたのですが、今回は全く1、2社目で学んだことは聞かれませんでした
SESとして4年ほどテクニカルサポートとしての経験がそこまで役に立たなかったのは悲しかったですが、嬉しさのほうが大きかったです。




会社での業務より、個人で取り組んだことを認められました。
これは私の経験なので、誰でも脆弱性診断士になれると思っています。
(年齢が若かった、というのも大きいと思ってます。なので、全年齢対象ではないかもです)




やってきたことの詳細を書いていきます。

1.セミナー・カンファレンス参加



  • デジタル・フォレンジック研究会の「IDF15周年記念表彰式及びシンポジウム」。
  • NICT サイバーセキュリティシンポジウム2019
  • SECCON カンファレンス2018
  • 情報セキュリティ事故対応アワード



覚えている限りだとこのくらいです。
平日が多かったですが、休んだり業務後になんとか行きました




正直、内容が難しいことが多く、得られるものは少ないのですが、「自分が知識が無い」ということを学べるいい場になったので行ってよかったと思ってます。
NICTのシンポジウムは量子暗号化とかの話で全くわからなかったのはいい思い出です。




2.CTF



セキュ塾に通っていた時期がありまして、そこからCTFに取り組んでいました。
分野はWebだけでなく、Forensic、Pwn、Network、Reverseとほぼ全部です




結果はさっぱりでした。
warm up以外は解けないとかそんなレベルです。
WebはLevel1くらいは解けましたね。




このころはReverseに憧れていて、ひたすらReverseばっかりやっていました。
CPUとかアセンブリがこれまたさっぱりわからないんですよね。
レジスタの種類ありすぎ!




なので、今Web分野である脆弱性診断をしていることが不思議でもあります。
何が起きるかわかりませんね。


3.ハニーポット(Web系)



2018年の3月頃からはじめました。
一番最初はT-Potという、様々なハニーポットがつまったものをやっていました。
実際の攻撃の様子を見るのは楽しかったですね。




そこから、2018年の10月くらい?からWebのハニーポットである「wowhoneypot」をはじめました。


github.com



構築、運用もわかりやすく、費用も安い。まさに初心者向けでした。
それなのにしっかり代表的な攻撃は来る。素晴らしい。




そして、2019年の3月くらいから始めたのが「BW-pot」です。

github.com



ハードルが高いと思っていた高対話ハニーポットを運用しやすいように作ってくださった方がいらっしゃいました。
本当に感謝しています!




wowhoneypotはBW-potに内包されているので、辞めたことにはなってないです。
AWS、Google Data Portal、BigQueryといったGAFAに染まります
(ちなみに私はiPhoneユーザーです。GAFA最高)
視覚的にも見やすく、解析もしやすいです。



なんでハニーポットを始めたか忘れましたが、これまた最初はWeb系じゃありませんでした。
最初なんて何でもいいですね。始められれば。




4.バグバウンティ



これがメインテーマです。
正直、脆弱性診断とやっている内容はかなり近いです。
狭く深くか、広く半ばまでかの違いです(浅いところは全くありません)




だいたい知識を持っていたのは以下ですね。



  • XSS
  • SQLインジェクション
  • オープンリダイレクト
  • ディレクトリトラバーサル
  • セッションハイジャック



代表的なものだけですね。
これらも、攻撃方法を知っていたくらいで明確な対策や影響度などは詳しくありませんでした
(今も詳しくないです)


なぜバグバウンティを始めたか。明確な理由は覚えていません
金が手に入りやすいセキュリティ分野とかそんな感じだったと思います。




ここまで恩恵があるとは当時思ってませんでした。
今ではバグバウンティで学んだことを脆弱性診断で活かし、脆弱性診断で学んだことをバグバウンティで活かしています
もはや生活の一部となっています。




こうやって振り返ってみると、今を想定して始めたものは何一つとしてない ということがわかりました。



Web分野から始めたことはバグバウンティくらいですが、当時は脆弱性診断までは考えていなかったです。
感じたこと、経緯、それらを持って結論は「やりたいと思ったことをやり続けること」なのです。
「続けること」がある理由は、分野は変えども辞めたことはないからです


簡潔に手順

  1. 始める
  2. 続ける
  3. 改善する
  4. アウトプットする(Twitterなり転職サービスなり)




終わりに~セキュリティエンジニアになろうと思ったときには、既にセキュリティエンジニアになっていた~

この記事を書くのはしばらく迷っていました。
私は脆弱性診断士になったばかりで、成果はあげられていないからです。




ですが、「セキュリティエンジニア」にはもうなっていると気付きました。
脆弱性診断士でなくなったとしても、もう「セキュリティエンジニア」なのです。




この記事、前に書いた記事では「セキュリティエンジニアになった」とありますが、その定義は「会社にセキュリティエンジニアとして雇われた」です。
今回も最終的な定義としては「雇われること」として書いてありますが、本質的にはセキュリティに取り組んだ時、その時既に「セキュリティエンジニア」なのです。


会社に雇われることが出来なくても、楽しんで取り組めていればセキュリティエンジニアです。