本記事は『ハッキング・ラボのつくりかた 完全版 仮想環境におけるハッカー体験学習』の「第1章 ハッキング・ラボで できること」から一部を抜粋したものです。掲載にあたって編集しています。
なお、本書は前作『ハッキング・ラボのつくりかた』を全面刷新し、約1.5倍の1,200ページに増量したものです。前作を読んでいなくても楽しめますし、前作を読んでいるならより楽しめる内容となっています。
ハッキング・ラボとは
ハッキング・ラボの「ラボ」は"laboratory"の略称であり、「実験室」「研究室」といった意味を持ちます。また、本書においては「ハッキング」という用語を、コンピューターに対する攻撃の総称として使用します(*1)。例えば、サーバー侵入、遠隔操作、ネットワーク盗聴、パスワード解析などが該当します。
*1 ハッキングの本来の定義は、コンピューターの動作を解析したり、プログラムを改造・改良したりすることです。この定義では不正の有無は関係ありません。特に、不正な行為をクラッキングと呼びますが、現在ではハッキングとクラッキングを区別しない場面が多くなっています。こうした用語の使われ方は日本だけでなく、海外でも同様です。そのため、本書では便宜的にクラッキングに相当する行為もハッキングと呼ぶことにします。
「ハッキング・ラボ」を単純に訳すと、「ハッキングの実験室」という意味になります。たくさんのPCやネットワーク機器が並んでいる部屋を想像してしまうかもしれません。そういった物理的な環境で構築されたものもハッキング・ラボに該当しますが、本書でいうハッキング・ラボとは、ハッキングの実験を実現できる環境全般を意味します。例えば、次の環境はすべてハッキング・ラボに該当します(図1)。
-
ケース1
部屋に複数台のPCを設置し、ネットワークに接続している。 -
ケース2
1台のPCに複数の仮想マシン(*2)を起動し、仮想のネットワークに接続している。 -
ケース3
ノートPCで出先から自宅のLANに接続している。
PCが1台しかなくても、仮想環境でネットワークが組まれていれば、ハッキングの実験が十分に可能です。ハッキングの実験を行う場であれば、すべてハッキング・ラボといえるのです。
*2 仮想マシン(Virtual Machine:VM)とは、仮想的なPC環境のことです。
本書を読むにあたって
本書で実現できること
- 安全なハッキング実験室を構築できる。
- 典型的なサーバー侵入の手口を短時間で習得できる。
- 安全な環境でハッキングを体験できる。
- Linuxやネットワークの基礎知識が身につく。
- 仮想化ソフトの基本がわかる。
- Windows、Linuxへの攻撃手法を習得できる。
- セキュリティの教育や啓蒙に活用できる。
想定する読者層
- セキュリティの初学者
- ハッカーにあこがれている人
- Linuxを基本から復習したい人
- CTFに興味がある人、または参加している人
- Kali LinuxやParrotOSに興味がある人
- 『ハッキング・ラボのつくりかた』の読者
- 実際に手を動かしてハッキングを体験したい人
- 管理者権限を奪取する感動を体験したい人
前提知識
- PCの基本操作(ファイルの圧縮・解凍、アプリのインストールなど)ができる。
- Linuxの基本的なコマンドを操作できる。
- 自宅に小規模なLANを構築できる。
なぜハッキング・ラボを作るのか
化学者や生物学者にとって実験室は必須といえます。同様に、セキュリティの専門家にとってもハッキング・ラボはきわめて重要です。ハッキング・ラボは専門家だけのためのものではありません。本書では初学者にこそハッキング・ラボを構築してほしいと考えています。初学者がハッキング・ラボを構築することで、次に紹介する2つの目標を達成できるでしょう。
本書の目標
本書の主な目標は、次の2つを実現することです。
I.「いつでも」「どこでも」利用できるハッキング・ラボを構築する
本書では、主に仮想環境を駆使することで、メインPCをベースにしてハッキング・ラボを構築します。その構築を通じて、OSやネットワークの知識を吸収します。ネットワークに接続するというだけでなく、逆に制限するという観点を考えられるようになります。ハッキング・ラボがある程度完成すれば、ハッキングの実験のハードルが下がり、「いつでも」ハッキングできます。
さらに、外出先でもハッキング・ラボを利用できるようすることで、「どこでも」ハッキングできます。特に、勉強会やCTFに参加するたびに、持参するノートPCの環境構築に時間を費やすこともなくなります。
II. ハッキング・ラボを活用して、ハッキングのスキルを身につける
ハッキング・ラボは活用してこそ意味があります。仮想環境にて攻撃端末とターゲット端末を構築します。攻撃と防御を体験してみることは、セキュリティの理解を深めることに大変有効です。
ハッキングを指南する書籍は数多く存在しますが、そのハッキングを試す環境の構築に言及する書籍は現在のところあまり存在しません。ハッキング関連の書籍を通じてコンピューターに興味を持った若者たちが、そのハッキングを試した結果、逮捕されてしまうのは非常にもったいないといえます。本書では、健全にハッキングの実験を試せる環境を構築します。
ハッキング・ラボの心得
- その1. セキュリティを学ぶことと攻撃手法を学ぶことは表裏一体。
- その2. ハッキングの実験において、日常用途のPC環境に悪影響を与えないようにする。
- その3. 場所の制約がなく、気軽にハッキングを試せる環境を構築する。
- その4. 新旧のコンピューターやガジェットを有効活用する。
- その5. 完璧なハッキング・ラボは存在しない。
- その6. 環境構築にこだわりすぎない。システムを壊すぐらいの気持ちで遊び倒そう。
- その7. サイバーセキュリティ、ヒューマン(人的)セキュリティ、フィジカル(物理的)セキュリティの重要性を認識し、幅広く知識を吸収する。
- その8. 常に攻撃者の視点で物事をとらえるように心がける。日常生活においても攻撃に関するヒントはたくさん転がっている。
- その9. うまくいかない状況やトラブルは、学びのチャンスとしてとらえる。
- その10. ハッキング・ラボに関する情報を積極的に発信する。そして、困っているラボ仲間がいれば助けよう。
本書のコンセプトと心構え
- Linuxシステムの基本と、ParrotOSを通じてサーバー侵入の基本を同時に習得する。
- ParrotOSを初めて触る人でも読める内容とする。Kaliの経験は不要。
- 解説が詳しすぎると読みにくくなり、本当に重要とされる概念を見逃す可能性がある。ハッキングの実験を実践するうえで知っておくべき内容、将来的にLinuxを運用する際に役立つ内容を解説する。
- 初学者は環境構築に凝る必要はない。ParrotOSの仮想マシンを作成し、仮想ネットワーク上で通信できれば十分。
- 作成した仮想マシンを大事にする必要はない。壊れるほどいじり倒す。起動しなくなっても消去して作り直せばよい。
- PCのスキルアップには手を動かすことが欠かせない。実際にコマンドを入力して挙動を確かめる。
- 本書では「習うより慣れよ」の精神でハンズオン形式を採用している。途中で挫折することなく読み進められる。
- 思いついたことがあればどんどん試すべき。新しく覚えた知識があれば、既存の知識と組み合わせて試す。自身の管理下にあるハッキング・ラボであれば他人に迷惑がかからないので、不正あるいは無意味な入力を意図的に試してみよう。
- 本書は1,200ページ近くあるが、コンピューターに対する情熱と好奇心を持ち合わせていれば読破できる。
- 体系的にハッキングやセキュリティについて網羅したものにはなっていない。むしろ、理解を深められるように一部の解説は冗長になっている。網羅的に理論を学ぶ場合には他の本を併読すると効果的。
本書におけるハッキング・ラボ
仮想環境を活用する理由
ハッキングの実験をする際に、仮想環境が必須というわけではありません。仮想化技術が発達する以前は、実機でハッキングを学んだものです。現在でも実機を使う場面(*3)はありますが、本書では仮想環境を活用する方法を推奨しています。その理由は次のとおりです。
*3 セキュリティ会社でマルウェアを研究するといった場合は、実機で独立したネットワークを組むことが有効です。なぜなら仮想環境であることを検知して正常に動作しないマルウェアが存在するためです。
仮想マシンであれば、新規作成や削除が簡単にできる
本書ではたくさんの攻略対象の仮想マシンが登場しますが、実験が終われば不要になります。それを大切に保存しておいてもあまり意味がありません。むしろストレージの容量を圧迫するだけで無駄といえます。
また、攻撃端末の仮想マシンは実験ごとに新規作成せずに使いまわします。しかし、攻撃用OSがバージョンアップした場合、いろいろと修正するより、新規に作成し直した方が手っ取り早いことがあります。そういった意味で、攻撃端末の仮想マシンも大事にする必要性はそれほどありません。
PCを新しく新調した場合にも、仮想マシンのデータをコピーすればよいので移行が簡単です。
仮想ネットワークであれば、外部に影響を与えるリスクを避けられる
実験でミスしても、メインPCや他人の端末に悪影響を及ぼしてしまうことを避けられます。仮想環境であれば、高度なスキルを必要とせずに、被害を最小限にできる環境を構築できるのです。
本書が目指すハッキング・ラボの構成例
ハッキング・ラボの構成についてはそのつど解説しますが、ここではざっくりと構成パターンを紹介します。
もっとも基本的な構成は、メインPCに仮想環境を構築し、仮想ネットワーク内でハッキングの実験を行うというものです(図2)。こうすることで、環境構築に手間取ることなく、ハッキングの実験という本来の目的に注力できます。そして、LANからは分離されているため、誤操作によって外部に危険なファイルが流出することもなくなります。
ところで、ハッキングの勉強会や大会では、用意されたターゲット端末を攻撃するイベントが催されていることがあります。そういった場では堂々とハッキングを実践できます。用意するのは、攻撃用の仮想マシンを準備したノートPC、あるいは攻撃用OSをインストールしたノートPCだけで十分です。あとは、本書で培った技術をフル活用して、ハッキングを楽しんでください。