CLPWN見聞録

私が今からサイバーセキュリティの勉強を始めるなら

ふと、ここまでのサイバーセキュリティの旅路を振り返って、ゼロからスタートするならばどのように進めて行きそうかを文章にしてみようと思った次第。
あくまでも個人の考えなので温かい目で見てください。

プロローグ ~パソコンよく分からないけれど、興味ある~

ゼロからと言ったのでゼロから検討しましょう。
「そもそもパソコンよく分からん」の状態から始めるなら何に触れるのが良いのかは、真面目に考えたことが無い。
とりあえず、パソコンをよく使うようにしてパソコン関連で何か困ったことがあったら、自分で解決しようとしてみるというところだろうか。
それがあってるか分からないなら、こういうアプローチをしたらどうなるっていうのを詳しい人に具体的に聞いてみて、そこから学んでいくというようなものですかね。
知識面?IT入門ならITパスポートですかね。
【ITパスポート試験】情報処理推進機構
何となくIT分かってきたになってきたなら、ハーバード大学コンピュータサイエンス入門コースも良いかもしれませんね。
CS50 for Japanese: コンピュータサイエンスの入門 – 当ウェブサイトは、Creative Commons ライセンスに基づいて管理されています。
また、ITの最新情報や良い情報は英語の方が多いので英語に触れていきましょう。
実際、高校までの英語である程度読めるので難しくは無いです。
ITで分からないことは英語で調べてみたり英語に触れていれば、そのうち英語でも気にならなくなる。

第一章 プログラミングを始める

プログラミングが必要であるし、セキュリティをやるにはサービスのどこに脆弱性ができそうか、自分の好きなことができるツールを作りたいときに絶対必要ですね。
学ぶ方法は人それぞれだと思うのでお好みで。
Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]
ドットインストール - 3分動画でマスターできるプログラミング学習サービス
環境構築不要!初心者でも楽しく学習できるプログラミング入門サービス【paizaラーニング】
さて、プログラミング言語は何を学べば良いんでしょうか。ここから先は大いに個人的な考えが入る訳ですが、C言語Pythonですかね。
C言語なんて遅れてるよって言う人もいますけど、やはり色々なものの基になってる言語であるしコンピュータの動作原理であったり低いレイヤに触れようとするほど必要になる。そして、これを学んでおけば他の大抵の言語の理解は直ぐに進む気がするので。
Pythonは流行りというのもあって色々なものがPythonで書かれているのでやっとくべきですけど、セキュリティを関連のツールであったり脆弱性を試すためのコード(エクスプロイトコード)であったりはPython 2で書かれていることが多いので、実際2と3どっち勉強すれば良いのかと言われてしまうと迷うところです。Python 2は公式サポートが終了したというのがありますが、Python 3が分かっていればPython 2も大体分かるので大丈夫ですよ。JavaJavascriptくらい違うなんてことは無いのですよ。
Learn Python - Free Interactive Python Tutorial
総合目次 - 苦しんで覚えるC言語 [MMGames]
ちなみに何を作ってみれば良いと聞かれると、色々な変換ツールだったりネットワークプログラミングですかね。
おすすめは、C言語なら
O'Reilly Japan - Hacking:美しき策謀 第2版
Pythonなら(Python2です)
O'Reilly Japan - サイバーセキュリティプログラミング
セキュアなプログラミングを学ぶならIPAですかね。
IPA セキュア・プログラミング講座:IPA 独立行政法人 情報処理推進機構

知識面でなら、次は基本情報技術者試験でも取ってみますか。
www.jitec.ipa.go.jp
もし、英語でも良いならばサイバーセキュリティで有名なSANSの動画もおすすめです。
Streaming Tutorials | Cyber Aces | Free online cybersecurity courses

第二章 始めましてサイバーセキュリティ

今、サイバーセキュリティを学び始めるなら最もおススメするのはTryHackMeです。
TryHackMe | Cyber Security Training
THM(TryHackMe)は、マシンにアクセスして手を動かし聞かれた問題に答えながらサイバーセキュリティを学ぶことができます。無料でもある程度できますが思いきって課金して楽しんで欲しいです。1万円/年くらいです。
登録したならば、Learning PathsにあるPre SecurityとComplete Beginnerに取り組みましょう。知識を振り返りつつ、セキュリティを実践的に学べます。

第X章 セキュリティつよつよを目指して

ここまで来ると割とセキュリティ分かってきたと思います。ここからセキュリティつよつよになるには2種類の学習方法があると思います。
1つ目はCTFに取り組むこと、2つ目は自分の好きなスキルを伸ばしていく方法です。

CTFでつよつよを目指す

CTFは与えられた課題に取り組み、特定の文字列を探す、その中で様々なセキュリティ関連のITスキルが試されるものです。
決められた期間内でスコアを競うものが毎週のようにやっているので参加してみましょう。
CTFtime.org / All about CTF (Capture The Flag)
また、常にCTF形式で様々なジャンル問題を配信しているサービスも沢山あるので、そちらも要チェックです。
GitHub - zardus/wargame-nexus: A sorted and updated list of security wargame sites.
CTFで使われるようなツール集も添えて
GitHub - zardus/ctf-tools: Some setup scripts for security research tools.

自分の好きなスキルを伸ばしてつよつよになる

ここまで来ると、サイバーセキュリティの中でも自分の好きな分野が見つかりそれを突き詰めていきたいという場合もあるでしょう。
例えば、脆弱性診断やペネトレーションテストといった攻撃面、セキュリティ脅威に対する検知や解析といった防御分野、Webセキュリティを突き詰めたいといったパターンです。それぞれの分野に専用の学習サービスがあるはずなので、興味があれば調べてみましょう。具体的には次のようなサービスがあります。

攻撃面(Red Team)

脆弱性診断やペネトレーションテスト系は、Penetration TestingやSecurity Red Teamと調べると出てきます。
おススメは、THM(TryHackMe),HTB(HackTheBox),Vulnhubです。
TryHackMe | Cyber Security Training
Hack The Box: Hacking Training For The Best | Individuals & Companies
Vulnerable By Design ~ VulnHub

防御分野(Blue Team)

防御系はBlue TeamやDFIR(Digital Forensics & Incident Response)で調べてください。
おススメは、LetsDefend,CyberDefenders: Blueteam Training,Blue Team Labs Onlineです。
LetsDefend - Blue Team Training Platform
CyberDefenders: Blueteam Training
Blue Team Labs Online - Cyber Range

Webセキュリティ

Webセキュリティのスキルアップには、Web系のCTFに取り組みつつバグバウンティを行っていきましょう。

HackerOne | Hacker-Powered Security, Bug Bounties, and Pentests
Bugcrowd
Intigriti - Bug Bounty & Agile Pentesting Platform

終わり

全ての分野に詳しくなっても良し、自分の好きな分野を見つけて突き詰めていくも良し、サイバーセキュリティには様々な分野があるので是非好きな分野を見つけていただきたいです。
by 4ensiX=Zarat