Q&A

■質問 『ハッカーの学校』の読者ターゲットについては?

回答 コンピュータが大好きな人、モチベーションが高い人は自分で情報を収集します。ほおっておいてもたくさんの本やネットの情報を勉強して、成果物を出すでしょう。そういった人たちにはこの本はあまり向いていないかもしれません。

逆に、コンピュータについて興味があるが何をしたらよいのかわからない、これまでPC書籍を買ったことさえないといった人こそ手にとってもらいたいと思っています。

そういった人の中には映画のハッカー像にあこがれている人もいるかもしれません。最初はそれでもよいと思っています。誰でも最初は初心者ですし、この本を通じてコンピュータの面白さを感じてもらえればと思っています。さらに、その一部の人が、5年後10年後にIT業界に進んでくれたら、さらに嬉しいです。

■質問 『ハッカーの学校』のタイトルの由来を教えてください。

回答 「学校」というところは、小学校高学年、せいぜい中学校をイメージしています。義務教育のように誰でも知っておいてほしいという願いから付いています。

また、「ハッカー」というところは正直なところ許してください。出版のいきさつや、出版社の指示によるものであり、著者としてはどうすることもできないのです。

■質問 ハッキングやセキュリティの技術に興味がありますが、初心者なので理解できるか心配です。

回答 『ハッカーの学校』では普遍的なハッキング技法といえる、サーバー侵入に特化して解説を行っています。これは他のハッキング技法を習得するための基礎となります。

「小学校・中学校・高校・大学」で考えると、『ハッカーの学校』の内容は「小学校」レベルになります。そのため、PC初心者の人こそ、早く読んで欲しいと考えています。

すべての人に対して書かれている内容が完全にちょうどよい書籍などはめったにありません。良書と呼ばれている書籍であっても、人によっては難しすぎたり、すでに知っている内容だったりします。さらに同じ人であっても、以前はまったく意味がわかない内容であっても、数年後にはその意味が理解できる場合もあります。つまり、し理解できない内容に出会っても、気にせず通読することをお勧めします。どこに何が書いてあったかを把握しておく程度でも問題ありません。また、別の本に挑戦するのもよいでしょう。後々スキルが向上したら、再読すればよいのです。

■質問 『ハッカーの学校』では基礎を重要視していますが、なぜですか?

回答 基礎をしっかり理解しておかなければ、新しい局面に出会ったときに、対応できません。逆にいえば、基礎さえしっかりしていれば、新しい局面に出会えることが楽しくなってきます。

本来基礎を身に付けるためには、継続して学習を続けなければなりません。『ハッカーの学校』では、その学習の手助けになることを願い、作りました。

■質問 『ハッカーの学校』の執筆方針を教えてください。

『ハッカーの学校』の前に、似たようなタイトルの『ハッカーの教科書』や『ハッカーの教科書 完全版』を出版しています。その『完全版』が出版されたのは2005年で今から大体10年前です。10年ぐらい経つので、新しい内容にできないかということが、出版のきっかけです。

しかし、単純に改訂しても10年後にはまた同じことになってしまいます。そこで、検討の結果、執筆の基本方針が変えて、まったく別のタイプの本になりました。

その執筆の基本方針は、次の@ABになります。

@基本中の基本

A不変的な内容

B原点回帰

まず@の「基本中の基本」についてです。

この本は高度な内容はほとんど含まれていません。むしろほとんどが基本中の基本の内容です。なぜならば基本は一番難しくて、習得には時間がかかるからです。しかし、理解さえできれば、応用が効きます。

次になぜ「ネットワーク」を選んだのかということです。コンピュータの基本といっても、ネットワークの他に、プログラム、ハードウェア、OSなど色々あります。IT業界に進むのであればそれらはすべて必要な知識ですが、そうではない人でも役立つような内容として、ネットワークが向いていると判断しました。身近な例でいえば、自宅のLANの構築、そこで起きたトラブルの解消などに役に立つはずです。

次にAの「不変的な内容」についてです。

永久にというのは難しいと思いますが、5年後、10年後にも残るような内容を選びました。IT業界の人、これから進もうと思っている人は、現代的な手法やトレンドも追いかけ続ける必要があります。

しかし、そうではない人はなかなか難しいため、不変的な内容であれば、将来的に直接役に立たなくても、無駄にはならないと思います。

そしてBの「原点回帰」についてです。

今セキュリティといえばWebアプリ、マルウェア、スマホなどですが、あえて原点回帰をしてアタックの古典ともいうべきサーバー侵入に特化して解説しました。なぜなら、ボットやマルウェアなどによってサーバー侵入が自動化されていることが多いですが、動作を理解するうえでも基本的な侵入の手口やプロセスを知っておく必要があるからです。また、実際に手を動かしてみることで、ネットワークやサーバーについての理解が深まると考えたからです。

■質問 今作は『ハッカーの教科書 ○○編』といったタイトルではなく、なぜ『ハッカーの学校』なのですか。

回答 編集者MAD氏曰く「ハッカーの教科書というタイトルに飽きた」とのことです。

「ハッカーの教科書」というタイトルに飽きた( ^ω^)

今作はサーバー侵入という基礎中の基礎を取り扱っているので、『ハッカーの教科書 超基礎編』といったタイトルを考えていました。

その後、編集者MAD氏とデータハウス社長から『ハッカーの学校』という案が出ました。

ハッカー寺子屋に近いイメージであり、また今後の発展性(学校シリーズなど)があると考え、『ハッカーの学校』というタイトルに決定しました。

■質問 『ハッカーの教科書 完全版』をすでに所有していますが、『ハッカーの学校』を購入する意味はありますか。

回答 購入する意味があるかどうかは読者に依存するのでなんともいえません。

ただし、『ハッカーの教科書 完全版』と『ハッカーの学校』はまったく別物と考えてもらって構いません。個人としては、特に『ハッカーの教科書 完全版』に挫折した人にこそ、『ハッカーの学校』を読んでもらいたいと思っています。

前作の『ハッカーの教科書 完全版』は、タイトルに「完全版」と入っているため、ハッキング技法をふんだんに盛り込もうというスタンスで執筆していました。そのため、基礎に関する解説が不十分でした。『ハッカーの学校』では、初心に立ち返り、ハッキング技法の解説の量を犠牲にしてでも、基礎に関する解説に費やしました。その結果、解説編と実践編がバランスよくなりました。

また、『ハッカーの教科書 完全版』を全面的に見直して、普遍的ではないツールや解説は取り除きました。さらに、普遍的で残っているツールに関しては、新しいバージョンのオプションの解説を追加しました。必要に応じて、Windows 7/8での動作確認も行いました。

■質問 ハッキング技能の習得方法を教えてください。

回答 私はハッカーではないので正解はわかりませんが、一般的な話であれば次のようになります。

ハッキング技法を身に付けるためには、創造性と問題解決能力を養う必要があります。まだ発見されていない脆弱性を発見することが求められるからです。また、未知のシステムに対する攻略法を発見することが求められることもあります。

また、こうした無形のスキルと同様に、プログラミング、ネットワーク、アプリケーションの知識を身に付ける必要があります。こうした有形のスキルを身に付けるためには、長期間に渡り、技術的な資料を丹念に読む必要があります。さらに、失敗を恐れず試行錯誤を繰り返す必要があります。場合によっては、ハッカーのカンファレンスや勉強会に参加したり、他の仲間とも交流したりすることも有意義でしょう。

■質問 『ハッカーの学校』を欲しいのですが、購入方法を教えてください。

回答 インターネット上の書籍販売サイトから購入できます。

店頭のコンピュータ書籍でも販売されています。中身をじっくり吟味してから購入したい方は、本屋さんで探してみてください。

■質問 電子書籍版の出版の予定はありますか。

回答 現在のところはありません。

個人としては電子書籍版の登場を望みますが、データハウスさんの電子書籍に対する体制に関係することなので、現在のところは難しいと思います。

なお、Amazonの書籍ページには「Kindle化リクエスト」というリンクがあるので、ここをクリックすることで出版社に電子書籍化の要望を出すことができます。

■質問 『ハッカーの学校』を読み終えました。今後はどうしたらよいですか。

回答 『ハッカーの学校』は基礎の基礎であり、習得すべき技術はまだまだあります。セキュリティ書籍もたくさん出版されているので、どんどん読み漁ってください。とりあえずの目標は30冊です。

当然ながら、読書だけではなく、プログラミングやネットワーク構築などの経験も継続しなければなりません。

■質問 コンピュータの技術を習得するうえで、数学は必要ですか。

回答 研究者を目指すのであれば、数学は必須です。特に現代暗号は数学そのものです。

プログラマーを目指すのであれば、数学的思考は必要かもしれませんが、高度な数学は必要ないと思います。

しかしながら、あなたが学生であれば、数学を切り捨てるのはもったいないです。役に立つかどうかは別として、単純に楽しいですから。

■質問 Mac OSで使用できますか。

回答 Kaliを仮想環境で動かしているため、Mac OSであっても使用できます。

ただし、『ハッカーの学校』ではVMware Player上でKaliを動作させていますが、Mac OSではフリーのVMwareがありません。そこで、フリーの仮想環境であるVirtualBoxを使用します。

これ以降は、VirtualBoxでのKaliの起動方法の解説です(Windows, Mac OS共通)。

VirtualBoxのインストール後、KaliのダウンロードページからVirtualBox用のKaliを入手します。

真ん中にタブで、「VM」ではなく「VBox」の方を選択して、VirtualBox用のKaliをダウンロードします(32bit, 64bitは好みの方で問題ありません。通常であれば64bitでよいでしょう)。

ここでは"Kali Linux 64bit VBox"をダウンロードしたとします。

ダウンロードしたファイルは7zで圧縮されているので、7zに対応した解凍ソフト(好みのものでOK。The Unarchiverなど)で解凍します。

・Windowsであれば、VirtualBoxを起動して、メニューの「ファイル」>「仮想アプライアンスのインポート」から、解凍後のovaファイルを指定します。

・Mac OSであれば、解凍後のovaファイルをダブルクリックすることで、「仮想アプライアンスのインポート」が開始します。

インポートが完了すると、Kaliが起動できます。

■質問 ダウンロードしたKaliのイメージファイルが解凍できません

回答 7zに対応した解凍ソフトを使用します。

圧縮率の高い7zが使用されています。

7zファイルはlhaplusなどでは解答できません。7zの解凍に対応した解凍ソフトを用意します。WindowsであればExplzhなど、Mac OSであればThe Unarchiverなどがあります。各種解凍ソフトの使い方は解凍ソフトの開発ページに問い合わせてください。

■質問 Kaliを起動しましたが、ホーム画面が『ハッカーの学校』と異なります。

回答 Kaliのバージョンが上がったため、ホーム画面が変わりました。

『ハッカーの学校』ではKali 1.6で解説していましたが、その後にKali 2.0がリリースされました。

Kali 2.0ではホーム画面(下の画面)のインタフェースが大きく変わりました。ただし、基本的には見た目が変わっているだけで、ツール自体の使い方は変わりません。つまり、『ハッカーの学校』の内容が無駄になっているわけではありませんので、安心してください。

ホーム画面の右上を押すと、次の画面が表示されます。下にある左側の丸いボタン(スパナマーク)を押すとSetting画面が表示されます。また、右側の丸いボタンを押すと電源を落としたり、再起動したりすることができます。

ホーム画面の左側にある「Applications」を押すと、ツール一覧が表示されます。

1〜13の分類で見つからない場合は、「Unusal applications」を選択して探します。例えば、GVimであれば、メニューの「Applications」>「Unusal applications」>「GVim」になります。

どうしても場所がわからなければ、メニューの「Applications」>「Activities Overview」を選択すると、検索窓が表示されます。そこにツール名のキーワードを入力すると候補が表示されます。

ツールのコマンド名がわかる場合は、端末で"which xxx"と入力してコマンド名が正しいかをチェックし、問題なければコマンドから起動するというアプローチもあります

■質問 Kali 2.0の日本語の設定を教えてください。

回答 以下の説明を参考にしてください。

『ハッカーの学校』の記載通りに、タイムゾーンの設定まで行えば日本語の表示が完了します。

日本語(全角)入力をする予定がなければ、これ以降の設定は不要です。

念のため、端末やテキストエディタに色々入力してみてください。おそらく記号もきちんと入力されているはずです。

どうしても日本語入力をしたいのであれば、以降の設定を実行します。

上記の質問・解答を参考にして、Setting画面を表示します。

Kali 1.6では「インプットメソッド」でしたが、Kali 2.0では「入力ソース」と変わったようです(適時置き変えて読み変えてください)。

IBus-Anthyをインストールします。Kali 2.0の設定画面には「IBusの設定」が表示されません。自動的にIBusデーモンは起動しているので、飛ばして結構です。

「キーボード」画面の「タイピング」タブの下に「入力ソース」というリンクを選択します。

ここの入力ソースに「日本語(Anthy)」を指定します。

入力ソースの下の[+]ボタンで追加します。選択項目に「日本語(Anthy)」がない場合は、ログインし直してください。

入力ソースが複数あると、Kaliのタスクトレイで入力ソースの切り替えができるようになります。一度、「日本語(Anthy)」を選択すると、[半角/全角]キーなどで切り替えることができるようになります。

なお、タスクトレイの「入力ソース」>「Anthy - 設定」を選択すると、AnthyやIBusの設定ができるようになります。

【追記情報(2016年9月)】

Kali Linux 32 bit VM PAE(イメージファイル名:Kali-Linux-2016.1-vm-i686.vmx)にて、ibus-anthyをインストールしようとしても「パッケージが見つかりません」というエラーが出ることを確認しました。

以下の手順でuim-anthyをインストールすることで、日本語変換が可能になります。

未確認ですが、他のバージョンでも同様の問題が起きた場合、以下の手順を参考にしてください。

1:画面の右上から辿っていき、「設定」画面を表示します。

「設定」画面を表示する

「設定」画面から「Region & Language」を選びます。ここで地域と言語を変更できます。

「設定」画面

最初はLanguage(言語)に「English」、Input Sources(入力ソース)に「English US」が選択されています。

地域を日本にすると、ログアウトが促されます。ログアウトし直すと、日本語表記になっています。次に、入力ソースでは「日本語」(通常のキーボードであれば、次の選択でも「日本語」のままでOK)を追加します。これにより、日本語キーボードが使用できます。

日本語キーボードの選択時は、画面の右上が「ja」になります(切り替え可能)。

日本語キーボードの追加

2:事前にパッケージをアップデートします。

# apt-get update

次の画像のようにうまくアップデートできない(404が出るなど)場合は、"/etc/apt/sources.list"に以下を追加します。

root@kali:~# vi /etc/apt/sources.list

あるいは

root@kali:~# leafpad /etc/apt/sources.list ←viに慣れていない場合

----- 追加する行

deb http://repo.kali.org/kali kali-rolling main non-free contrib

deb-src http://repo.kali.org/kali kali-rolling main non-free contrib

-----

3:次のコマンドを実行して日本語入力環境をインストールします。

# apt-get install uim uim-anthy

4:インストール後に再起動します。

画面の右上が「ja」になっていれば、[Ctrl]+[Space]で日本語入力(全角入力)に切り替えることができます。

■質問 Metasploitについてもっと知りたいです。

回答 WebサイトであればOFFENSIVE securityのページが参考になります(@stahackさん@pansongisanさん情報Thanks)。左のメニューから「Exloitの使い方」「Metasploit用のペイロードの生成方法」などの解説に飛ぶことができます。

また、書籍であれば、『実践 Metasploit―ペネトレーションテストによる脆弱性評価』(オライリー刊)などが参考になります。

■質問 『ハッカーの学校』を読み始めましたが、少し難しいようです。『ハッカーの学校』を読むための基本はどのようにして学んだらよいでしょうか?

回答 スキルを上達させる方法については、著名な他の方の意見や行動を参考にした方が確実だと思います。ここでは『ハッカーの学校』を読むための基本を習得することだけについて述べます。コンピュータにはざっくりとプログラム、ネットワーク、ハードウェア、情報理論などといった多岐にわたった分野があります。『ハッカーの学校』を読むためには、この中でも主にネットワークの知識が必要となります。

そこでネットワークを実際に組んでみることをお勧めします。最近では仮想環境を使う場面が多いかもしれませんが、あえて物理的に複数台のPCとネットワーク機器(ルーターやハブなど)をケーブルで接続して、LAN環境を構築します。追加するPCは中古の安いもので問題ありません。せっかくなのでメインマシンとは別のOS(Linuxなど)をインストールします。さらに、Webサーバーやファイルサーバーを構築することで、Linuxの操作とサーバーの構築方法について知ることができます。Linuxのインストールや基本操作、サーバー構築については、多くの書籍が販売されています。この時点で、ネットワークの基礎(IPアドレスの概念、クライアントサーバーシステムなど)とLinuxの基本操作については自然に習得できているはずです。ここまできたら、改めて『ハッカーの学校』を読んでもよいでしょうし、Linuxやネットワークの世界にどっぷり浸かるのもよいでしょう。

■質問 感想を送りたいのですが。

回答 Amazonにレビューを投稿していただけると大変嬉しいです。読者の皆さんが満足していただければ、励みになります。また、課題があれば次回作の執筆の参考にします。