こんにちは、ゆるいぞITチャンネルです。
今回は「ハッキング」や「セキュリティ関連の知識」を身につける為には「どのようなスキルが必要になるのか?」というのを優先度順に解説していきたいと思います。
※個人的な見解になりますのでご了承ください。
※Youtubeでは動画版をご視聴いただけます。
- ハッカーやホワイトハッカーに興味があるけれど、何から勉強していいかわからない方
- セキュリティ分野の学習を始めたばかりの初心者の方
- サイバーセキュリティに必要なスキルの優先順位を知りたい方
1.ITインフラの知識 (優先度:★★★★★)
ハッキングやセキュリティを学ぶ上で最も優先度が高く土台となるのが「ITインフラの知識」になります。
IT系の知識がないと「そもそもITインフラって何ですか?」ってなると思うんですけど…
例えば、NETFLIXやYoutubeで動画みたり、Xやインスタ等のSNSをやったり、仕事でTeamsを使ってWeb会議とかチャット等のサービスを普段から多くの人が利用していると思うんですけど、それらのサービスを使えるようにする設備や仕組みを「ITインフラ」といいます。

要するにパケットやデータとか呼ばれている通信を目的地まで送り届けてあげるようにするのが「ITインフラ」の役目ってことになりますね。

過去の動画で「ハッキングの基本的な流れ」について解説したんですけど、「nmapでスキャンした時のポート情報」や「gobusterでのディレクトリ情報」、「公開鍵認証を使ったログイン」、いずれもITインフラの範囲ですし、その知識(スキル)が無いと何をやっているのか理解できない内容になっていると思います。

こういった理由から「ITインフラの知識」がハッキングやセキュリティ系を扱う上で一番優先度が高いのではないかと思います。
2.ツールについての知識(優先度:★★★★☆)
次に優先度が高いのが「セキュリティツールについての知識」になります。
ハッキングやセキュリティ診断(ペネトレーションテスト等)では非常に多くのツールを使用します。
- 情報収集用ツール(偵察フェーズで使用)
- ペネトレーション用ツール(システムの脆弱性をテストするツール)
- エクスプロイト用ツール(実際の攻撃手法を検証するツール)
情報収集するにしても、セキュリティ診断するにしても、ハッキングの検証をするにしても、ツールって必ず使うものなので、これはマストで抑えておいた方が知識になるんじゃないかなと思います。

すべてのツールの細かい仕様やコマンドを丸暗記する必要はありませんが、「こういう場面では、あのツールが使えるな」みたいな程度のことは知っとく良いんじゃないなと思います。
3.根気よく調べる力(優先度:★★★☆☆)
次に優先度が高いのが「根気よく調べる力」になります。
この事に限らずだと思うんですけど、何か分からないことがあったら「とにかくまずは調べてみる」ってことですね。
例えば、少し前に私がハマったことがあって、その時はTryHackMeの演習問題を解いていてたんですけど、ファイルのアップロードもしくはダウンロードだけエラーになって、それ以上の先の問題に進めないってケースがありました。
演習サーバへのPing、nmap・gobusterなどのコマンド形式で実行するツールは問題なくできたんですけど、ファイル関連の処理だけできませんっていう変な事象でした。
原因としては「マンションの共用回線を使ってると、特定の通信を制限している関係でそういった事象が起きる場合がある」ってことだったんですよね。
色々検索して調べてた中で、海外のIT系の掲示板の書き込みに「マンション云々…」みたいな書き込みを確認できたので、その情報を元に有線LAN(ゲーブル)から無線LAN(モバイルルーター)に切り替えて試してみたらファイルのアップロード・ダウンロードが問題なくできましたよって経緯でした。

こういった経験から「よく分からないエラーが出て先に進めない」、「ツールを実行したけど想定通りの結果にならない」といった時に「根気よく調べる力」というのは重要になってくるんじゃないかと思いました。

4.プログラミングスキル(優先度:★★☆☆☆)
次に重要となるのが「プログラミングスキル」になります。
「プログラミングって一番重要じゃないんですか?」って思われる方もいると思うんですけど、これは考え方の問題で…
仮に「ツールの仕組みを理解したい」、「ペネトレーションやエクスプロイト用のツールを自作したい」、「新しいマルウェアを作りたいんだ」といった考えの人であれば、プログラミングスキルを一番重要視した方がいいかと思います。
ただ、単純にハッキングやセキュリティ系の知識を身に付けたいのであれば、プログラミングスキルは後回しにして問題ないと思います。
結局のところ「調査用ツール」や「ペネトレーションテスト用」などのツールって既にパッケージ化されたものがあるので、実行方法さえ知ってれば自分が欲しい結果が取得することができます。

そういった観点から優先度は低いのではないかと思います。
例えば、「ドラクエをプレイしよう」と思った時にゲームのプレイ方法さえ知っていれば、誰でもプレイすることができますよね。

「どういったプログラムでゲームが動いてるのか?」を気にするのって開発者の人たちだけだと思うので、「プログラミングの知識がなくても何ら問題ありませんよ」ってことで、それと同じような感じですね。

もちろん、PtyhonやJavaなどの何かしらのプログラミングスキルがあった方がいいに越したことはないんですけど、インフラの勉強とプログラミングの勉強を両方やるって結構ハードルが高いので、優先するなら「ITインフラの知識」を先に身に付けた方が汎用性が高いかなという理由からになります。

5.ラボ環境構築についての知識(優先度:★☆☆☆☆)
最後に「ラボ環境構築についての知識」になります。
勉強したり、演習問題解いたり、何か実環境で試したい場合にラボ環境が必要になります。
VirtualBoxやVMwareなどの仮想環境上に「ペネトレーションテスト用のOS」、「やられ役(脆弱性のある)サーバ」、「仮想PC(Windows)」など、色々立てると思いますが、それを構築する為の知識になりますね。
この辺りのことはネットで調べると詳細なセットアップ手順などが紹介されいて、初心者の人でも、それを見ながら環境構築すれば良い感じにできるようになってるので優先度は低いなと思います。
やり方忘れたら、また紹介しているページを見ながらやればいいだけなので。
「ハッキングラボの初期構築」、「TryHackMeへの接続方法」については下記のページをご参照ください。
6.最後に
ということで以上が「ハッカーやホワイトハッカーになる為に必要なスキル」になります。
本記事では「ITインフラの知識」が一番優先度が高いですよと紹介しましたが、「自分が何をやりたいか?」によって優先するスキルは変わってくると思うので、そこはご自身で考えて判断ください。
今回紹介したスキル以外のものが必要になるかもしれないですし、やってみないと分からない部分もあると思いますね。
ということで、今回はここまでにしたいと思います。
それではまた次回お会いしましょう!