ローン返済

現役の外資系コンサルタントがサイバーセキュリティの効率的な勉強方法や、暮らしを豊かにするためのアイテムなどを紹介するブログ

セキュリティ技術を独学で習得する!未経験からできる勉強方法を解説

f:id:yuukoutetu:20211024022032j:plain

「セキュリティ技術を勉強したいが何から始めたらいいか分からない」
「将来的にセキュリティ関連の仕事(コンサル、ペンテスター、SOCアナリストなど)をしたいが、どういう知識が必要なのか分からない」
「大学でセキュリティの研究をしているが、技術的なことがさっぱり分からない」

サイバーセキュリティの技術を独学するにあたって、何を勉強すればよいのか分からない人は多いのではないでしょうか。

私も何度も挫折してきた身ですが、今はコンサルタントとして、セキュリティに関わる課題を解決する支援をしています。

本記事では、私の経験をもとに、初心者がセキュリティの技術を楽しく学ぶための勉強方法や勉強を効率的に行う方法を解説します。

セキュリティ独学に必要なITスキルとは?

IPA情報処理推進機構)では、情報セキュリティに携わる人材には次のようなスキルが必要であると定義しています。

1.情報セキュリティマネジメント
2.ネットワークインフラセキュリティ
3.アプリケーションセキュリティ(Web、電子メール、DNS
4.OSセキュリティ(UnixWindows、Trusted OS)
5.ファイアウォール
6.侵入検知システム
7.ウイルス
8.セキュアプログラミング技法
9.セキュリティ運用
10.セキュリティプロトコル
11.認証
12.PKI
13.暗号
14.電子署名
15.不正アクセス手法
16.法令・規格

※参考:情報処理推進機構「IPA情報セキュリティマップ」

 

しかし、初心者の方がこれを見て「あ、じゃあ○○から勉強して、次はXXを勉強したらいんだな!」ってなりませんよね。

必要なスキルが分かっても、実際に道筋が立たなければ意味がありません。

なので、今回は「初心者の方がセキュリティを独学する上で何から始めれば良いのか」にフォーカスして、ご紹介します。

まず、私が考えるセキュリティに必要なIT基礎スキルは次の3点です。

  1. サーバ構築・運用スキル
  2. ネットワーク構築・運用スキル
  3. プログラミングスキル

そして、上記を「手を動かしながら学ぶ」ことが必須だと考えています。

特に、ネットワークの勉強を「ネットワークスペシャリスト」のような資格の勉強からスタートする人がいますが、座学では実践で使えるスキルは育ちにくいですし、何より楽しくないので、挫折してしまう人が多いのではないでしょうか。

本記事では、上記3つを勉強することをスタート地点として、よりセキュリティの必要性をリアルに感じながら学べる方法を紹介します。(ここで書かれている事以外にもオススメがあればぜひ教えてください)

セキュリティ独学は初心者でも可能

セキュリティの勉強において、何をどこまで勉強したら良いのか分からずに挫折してしまう経験はないですか?

私自身、セキュリティ勉強を始めた大学から今まで何度もありました。

独学を始める上で大事なのは、「自分にあった方法を見つけ、楽しく勉強することです。」

そのきっかけとなるような勉強手順を詳しく解説しますので、ぜひ参考にしてみてください。

ちなみに、セキュリティの勉強方法で役に立つと言われるCTFには注意が必要です。

私はセキュリティを独学する上でCTFは一切必要ないと考えています。

CTFは"クイズ"なので、個人によって合う合わないが凄くありますし、問題の品質などもバラバラなので学習効率が低いと思います。

なので、勉強のスタイルに固執することなく、柔軟に自分に合った方法を探すことが重要です。

セキュリティ独学の3つのステップ

セキュリティ独学に必要なIT基礎を独学するには、次のようなステップで進めると良いです。

  1. Linuxサーバを構築し、運用する
  2. 自宅ネットワークにL3スイッチを導入する
  3. Webアプリケーションをプログラミングしてみる

1つ1つ解説していきます。

Linuxサーバを構築し、運用する

まずは、守るべき情報資産が何であるのかを理解することが最も大事です。

そのためには、自分でLinuxサーバを構築し、運用してみることが効果的です。

Linuxサーバを構築、運用することによって、次のようなセキュリティ基礎スキルが身に付きます。

  • OS操作スキル
  • アプリケーションセキュリティ(Web、電子メール、DNSなど)
  • アクセス権限(一般ユーザ権限、管理者権限)
  • サービス、ポート
  • ファイアウォール
  • セキュリティプロトコルSSH, HTTPSなど)
  • 認証方式(パスワード認証、公開鍵認証など)
  • 電子署名

Linuxサーバの構築は、初心者が初めに自分の技術に自信をつけるのに凄く良い方法です。

特に、セキュリティコンサルタントに就職しようとしている学生や社会人の方は是非一度やってみてください。

意外とやったことがある人がいないので、それだけで優位性を持てます。

Linuxサーバ構築方法

Linuxサーバを勉強するためには、まずは環境を準備する必要があります。

Conohaというサービスを使うと月500円〜1000円程度で構築、運用することができます。

 

超高速レンタルサーバーならConoHa WING|初期費用・最低利用期間なし

 

Conohaは他のIaaS(AWSやAzure等)やVPSサービスよりも低額に利用することができ、初心者に分かりやすいUIになっているのでお勧めです。

サーバの構築までの手順は下記の公式マニュアルやブログを参考にしてみてください。

 

・ConohaでVPSを構築する方法

・ConohaのVPSCentOSを構築する方法

 

もし、Linux自体が初めてであれば、次のような書籍やサイトが分かりやすく解説されていたのでおすすめです。

 

・ゼロからはじめるLinuxサーバー構築・運用ガイド 動かしながら学ぶWebサーバーの作り方

初めてサーバを学ぶ方にとてもおすすめです。

本書では、CentOS 7を用いて、インストール手順からファイアウォールの設定やWebサーバの構築などの基本的な操作から、Docker周りの最新の技術周りも簡単に説明されていますので、初心者の方が基礎をおさえるのに最適です。

 
・ドットインストール
動画を見ながら、Linuxのコマンド操作を行っていくので、初心者の方が基礎を一通り学ぶのに最適でした。
 

以上でサーバの初期設定と基礎的なコマンド操作の理解ができるようになると思います。

ここから、実際にサーバにアプリケーションをインストールしていくのですが、

ぜひ「自分の生活を便利にするために必要なアプリケーション」を考えて、楽しみながら自分だけのサーバを作っていきましょう。

もし、困ったら次のようなものを参考にしてみてください。実際に私が今でも使用しているものや本を紹介します。

初心者におすすめなWebアプリケーション

1. WordPress

・ブログやホームページを作成可能なオープンソースCMSです。企業のホームページや一般的なブログの多くがWordPressを利用して作成されています。

・一度自分で構築してみることで Web周りのセキュリティ設定を自分で体験することが可能です。

CentOS 8 に WordPress 5.3 をインストール - Qiita

2. NextCloud

オープンソースのオンラインストレージです。DropboxGoogle Driveなどに対して、自分のサーバにインストールすることで使用可能な容量を自由に決めるメリットがあります。

CentOS 8 : NextCloud : インストール : Server World

3.  Rocketchat

オープンソースのチャットシステムです。SlackやTeamsなどと違い、完全プライベート用のチャットを使用することができます。また、ios用のアプリも公開されているので、ちょっとした備忘録などに使用できます。

CentOS8にRocket.Chatをインストール - ITC Engineering Blog

Linuxサーバの独学におすすめできる本

また、日経Linuxは非常におすすめです。Linuxサーバを用いて、生活を快適にできるようなアプリケーションが紹介されていたりするので、毎月本屋などでチェックしてみるのも良いでしょう。

このようにLinuxサーバを自分で立ててみることで、そもそもセキュリティで守るべき情報資産がどのようなものであるのかを理解することができます。

Webアプリケーション以外にも、メールサーバ、DNSサーバ、ファイルサーバなどを立ててみると、より企業で使用されているシステムの理解が進むと思います。

また、Linuxサーバに慣れてきたら、次のようなこともやってみるのも良いでしょう。

ハニーポットの構築

ハニーポットとは、わざと脆弱性のあるサーバを用意することで、サイバー攻撃者を誘い込み、そこで行われる攻撃手法を分析するために立てられるサーバです。

ハニーポットでできることとしては、例えば次のようなことがあります。

  • 流行しているマルウエアの検体の入手
  • 攻撃者による攻撃活動のログの分析
  • 重要なサーバを隠すためのおとり

もし、ハニーポットに興味を持った人がいれば、次の方のブログを参考にしてみるといいです。

【ハニーポット構築】初心者でもできた!ハニーポットの構築① ハニーポットの選定と場所の選定 - サイバーセキュリティはじめました

自宅ネットワークにL3スイッチを導入する

次はネットワークの勉強をしましょう。

ネットワークの勉強で重要なのは、座学ではなく、自分で手を動かしてネットワーク機器の設定などをやってみることです。

なので、身近な自宅ネットワークを改良して、より便利なものに変えることで、技術を学んでいくことをおすすめします。。

自宅でネットワークを構築することによって、次のようなセキュリティ基礎スキルが身に付きます。

また、実際の企業で使用されているネットワーク機器を使用するので、企業のネットワークインフラを想像しながら学ぶことができます。

自宅ネットワークにL3スイッチを導入(基礎編)

まず、これまでTCP/IPや基本的なネットワークの概念を学んでこなかった方は次の書籍で最低限の知識を抑えてから、次に進むと良いでしょう。

 

その上で、L3スイッチを購入して、自宅ネットワークに導入してみましょう。

L3スイッチであればメーカーは問いませんが、おすすめはAmazonで一万円以下で手に入るFortigate 60Dです。

こちらは、ネットワーク機能とセキュリティ機能(IDS/IPS, Webフィルタリングなど)を搭載したUTMと呼ばれる機器なのですが、L3の機能も充実しています。

また、何より一般的な企業でも利用されていることが多いメーカーの機器なので、独学する上で良い機器だと思います。

Fortigateの基本的な使い方は次のような書籍で勉強することができます。VPNの設定等が分かりやすく掲載されており、書かれていることを手順に沿ってやっていくだけで一通りのことを学べます。

自宅ネットワークにL3スイッチを導入(応用編)

基本的なL3スイッチの使い方が分かった後、次のようなことを実践すると、セキュリティをより効率的に勉強できるのでおすすめです。

  1. 自宅ネットワークをセグメンテーションして、インターネット用のセグメント(DMZ)を作成してみる。
  2. SSL VPNを設定して、自宅外から自宅のネットワークに安全にアクセスできるようにする。
  3. L3スイッチに通過するパケットをミラーリングし、パケットをオープンソースのIDSを使って解析してみる。

f:id:yuukoutetu:20211024004926p:plain

自宅ネットワーク構築例
Icons made by Freepik from www.flaticon.com

Webアプリケーションをプログラミングしてみる

次はプログラミングについてです。

ただ、個人的には、プログラミングはネットワークやサーバよりも優先度が低いと感じています。

なぜなら、プログラミングスキルが必要となるのは、主にセキュアな開発を行う場合に限られるからです。

なので、プログラマーの方や脆弱性診断を極めたい方にとっては必須なスキルとなりますが、一般的なセキュリティコンサルやSOCアナリストなどの方には優先度が低いスキルと感じています。

また、レッドチームやペンテスターも、多くはオープンソースのツールを使用して評価を行うので優先度は低いと思います。(あるのが理想なんですがね。。)

ですが、時として、WebやAPIの安全性を考える際や、データ分析の際にコーディングスキルが使えるので、最低限の知識を抑えておきましょう。

セキュリティにおいて勉強しておいた方が良いプログラミング言語は、JavascriptPHPだと考えています。

どちらもWebで利用される代表的な言語となるので、一度簡単なWebアプリケーションを使ってみることで、認証機能、暗号化処理、データベース処理の実装部分が分かるようになります。

また、pythonもオススメです。

ペネトレーション用のプログラムコードでpythonがよく利用されているのですが、現場でツールを作成する際や、ログなどをデータ分析する際に活躍します。

勉強方法としては、pythonの基礎を理解している前提ではありますが、下記の書籍は非常によかったです。

パケットキャプチャやnetcatを自作していくことで、wiresharkなどの簡単な機能を自作することができ、より深い技術に触れることができます。

ただ、将来的に技術職につく予定がなく、セキュリティコンサルタントなどの領域を目指すならば、ここまでは求められません。

セキュリティ独学を加速させるポイント

私自身、現職でレッドチームの分野でセキュリティコンサルタントをしていますが、

大学生の時はセキュリティ独学に何度も挫折してきました。

そんな中で、セキュリティ独学を加速させるポイントとして次の3つがあると思いました。

  1. 実務経験
  2. イベントや勉強会への積極的な参加
  3. 自分に合った勉強方法・領域の選択
実務を経験すること

私自身、最も自分の技術力がついたと感じたのは、大学時代にベンチャー企業でアルバイトしていたときです。

それまでは、セキュリティの研究はしていたものの、全く技術分野には疎くてコンプレックスを感じていました。

ベンチャー企業でセキュリティのアラート分析や海外製品の調査などを経験できたことで自分の中で自信がつきました。

なので、もし皆さんが今、学生であれば、ベンチャー企業などでのアルバイトを始めることを検討してみてください。

イベントや勉強会に積極的に参加すること

セキュリティキャンプやCODE BLUEなどの学生スタッフを通じて、セキュリティの面白さを実感し、勉強へのモチベーションにしていました。

また、多くの専門家の方や同世代の方と交流できるので、それも刺激となっていました。

今はCOVID 19の影響で数が少なくなっていますが、著名人などのTwitterなどから情報収集をしてみると良いイベントに出会えるかもしれません。

自分にあった勉強方法や領域を選択すること

私は学生時代からオフェンシブセキュリティに興味があり、代表的な資格であるOSCPの勉強をしたりしていました。

オフェンシブセキュリティの分野は私にはとてもあっており、勉強を継続することができました。

なので、もしセキュリティの勉強に行き詰まっている方がいれば、特に初心者の方は学習の方法を変えて、自分に合った方法を探してみるといいです。

セキュリティの分野はとても幅広いので、ブルーチームになりたい人がレッドチームに詳しいことは何の問題もなく、むしろとても歓迎されます。

なので、分野にあまり拘らず、色々な角度から勉強してみるとよいと思います。

セキュリティ独学におすすめの本

最後に上記で紹介した書籍以外のおすすめの書籍を紹介したいと思います。

1. ネットワーク技術&設計入門

こちらはネットワーク技術をより深く知りたい方に非常におすすめです。

ネットワークの基礎的なところから解説されているのと、図解が非常に多くあるので、初心者の方でも安心して読めます。

ここに書かれていることが理解できれば、ネットワークの知識は十分だと思います。

 

2. ハッキング・ラボのつくりかた

特に将来的にオフェンシブセキュリティの分野で働きたいと思われる方にはぜひおすすめです。

本書は上記で解説したような基本的なサーバやネットワークの知識があれば、理解できるものとなっています。

攻撃技術の重要な要素が多く記載されているので、オフェンシブのエントリ本としてお勧めです。