こんにちは。GMOインターネット セキュリティエンジニアの羽田です。セキュリティに興味はあるけど、 -具体的にどのような学習を行えば良いかわからない -環境の準備が大変と感じる方は少なくないのではないでしょうか。この記事では、TryHackMeという学習コンテンツを紹介し、誰でも簡単にセキュリティを学習する方法をご紹介します。読んでいただくことで、セキュリティを学習するうえで必要な「基礎知識とそれらを用いた実用の反復方法」がわかります。TryHackMeを用いることでセキュリティを楽しみながら学習することができるようになりますよ。
1.セキュリティとは何か
定義
まずこの記事での”セキュリティ”の定義はサイバーセキュリティとします。セキュリティと一言で言っても様々なとらえ方がありますが、下記のように定義します。
セキュリティ サイバーセキュリティ:データなどの電子資産を保護することに焦点を当てた考え方・手段 情報セキュリティ:電子資産だけではなく紙やハードウェアのような物理的な資産も対象にそれら資産の保護することに焦点を当てた考え方・手段
分解してみる
サイバーセキュリティの内訳は下記の通りです。内訳とは言ったものの、理解するうえで必要な要素を並べたものになります。
-ネットワーク -プログラミング(アプリケーション) -各種OS -暗号や認証 -データベース
これらの要素をそれぞれ理解することがまずは大事になってきます。なぜならセキュリティに関して起きる問題や課題というのはこれらが組み合わさったものであることがほとんどだからです。
上に挙げた各要素についての理解ができたら、それに関する何かしらの実例にあたることでより理解を深めることができます。最初はそれぞれ程度の低いものからはじめて、各要素の理解と事例を反復することで段々と難易度の高いことも理解・解決できる力がついてきます。
2.TryHackMeの紹介
「1. セキュリティとは何か」を踏まえ、セキュリティの各要素の理解と事例の反復方法ができる方法を1つご紹介します。
TryHackMeとは何か
TryHackMeというセキュリティ学習コンテンツがあります。公式サイトにも書かれていますが、初心者から熟練者まで利用できるほどコンテンツが充実していることがわかります。
TryHackMe is an online platform that teaches cyber security through short, gamified real-world labs. We have content for both complete beginners and seasoned hackers, incorporation guides and challenges to cater for different learning styles.(TryHackMeは、ゲーム化された短い実世界のラボを通じてセキュリティを教えるオンラインプラットフォームです。完全な初心者と熟練したハッカーの両方のためのコンテンツ、組み込みガイド、さまざまな学習スタイルに対応するための課題があります。) 引用元:https://tryhackme.com/about
環境準備
最低限必要になるものを挙げます。
ブラウザOpenVPN(こちらに公式の案内があります。)
必須ではありませんが、KaliLinuxを用意できる方はそちらもあると楽です。
room
TryHackMeの各ラボはroomと呼ばれる部屋に用意されています。それぞれ基本的なものからツールを扱った部屋まで様々なものがあります。
また学習の目的に合わせていくつかのroomを段階的に組み合わたものを提示もしてくれます。
1つのroomは次の図のようになっています。
Taskとよばれる問題が出題されており、1つずつ回答していきます。このroomが段階を踏んでいて、そのroomにおける必要な前提知識などを抑える内容のTaskから用意されています。そのため基本的には楽しく進められて、気が付けば基本が理解できているといった具合になります。
またラボと呼ばれる作業場所となる環境がTryHackMe側で用意されており、ブラウザ内で起動・操作することができます。画像の右側に見えるのが遠隔で起動したLinux環境です。
実際にやってみる
試しにこの部屋(Linux Fundamentals Part 3)を解いてみましょう。最初はこのroomの問題を解くにあたって必要な知識のレクチャーとなっていますね。
問題を進めていくと、Task8でこれまでと違い、知識を使って解く問題がでてきました。
(途中の内容省略)
Look for the apache2 logs on the deployable Linux machine
最初の設問は問題という問題では無いようですが、Linuxマシーンのapache2のログを確認するよう指示されていますので移動してみます。
どうやらアクセスログとエラーログがありますね。
What is the IP address of the user who visited the site?What file did they access?
続いてはIPアドレスの確認とアクセス先のページを尋ねられています。そのためアクセスログを確認。
それぞれ確認できたので、回答欄に入力してSubmitボタンを押します。
確認した内容で正解だったようですね。
また次のLog4jのような話題になった脆弱性についても用意されていて、基本的なことから実際のツールや脆弱性に関して扱ったroomまでカバーされています。
3.おわりに
今回は、セキュリティの学習方法とその具体的な手段としてTryHackMeについて紹介してきました。TryHackMeについては軽い紹介程度にとどまりましたが、執筆時点でroomの総数は500以上あるので、皆さんも興味があるroomを見つけたらぜひ試し見てください。