私がインターンで勤めている企業のハッカーは、イスラエル国防軍におけるサイバー攻撃・防御の超精鋭部隊、 8200部隊出身のガチプロハッカーです。8200部隊はアメリカのNSAと並んで世界最高のハッキング技術を持つと言われています。高校卒業後に兵役の義務があるイスラエルで、なんと彼は大学の学位を取り終えて、入隊したそう。
そんなスペシャルなハッカーに、東京大学で(一応)コンピュータ関係を専攻する私が、「一流のハッカーになる方法」について聞いてみたら面白かったので、本人の許可を得てその邦訳を記事にしてみました。
イスラエルのハッカーエコシステム
イスラエルの8200部隊について教えてください。
8200部隊はイスラエル軍におけるインテリジェンスユニットです。詳しい内容は秘密事項でお伝えすることはできませんので、Wikipediaなどを見ていただくのが早いと思います(笑)。主にサイバーセキュリティに関して色々やっています。
どのような過程を経て入隊したのですか?
イスラエルでは男女ともに兵役の義務があり、高校卒業と同時に入隊します。自分は高校時代に大学の学位をあと少しのところまで取り終えていたので、軍に言って1年猶予してもらい大学の学位を取り終えてから入隊しました。
高校時代に大学の学位!?
はい、実は8200部隊に入隊する人の中ではそんなに珍しくない話です(笑)。大学が専用の特別なプログラムを用意していて、高校などで情報が回ってきます。同様のプログラムから8200部隊に入った、3年年上の先輩が熱心に勧めてきたことも大きかったです。
8200部隊に入隊するためにはどのようなステップを踏む必要があるのですか?
たくさんのインタビューとテストがあります。論理的思考力に代表されるような一般的なスキルから、OSやネットワークなどの専門的知識まで色々と見られますね。プログラミングは教育過程で教えられるものではないですが、独学で小さい頃からやっていました。
入隊後はどのようなことをしていたのですか?
詳しい内容については同様に秘密事項なので言えません(笑)。ざっくり言うと、インテンシブコースがあり、そこでは一日中学習することになります。主にプログラミングのこと、サイバーセキュリティのこと、コンピュータを含む電子機器の仕組みのことを扱います。個人のスキルに応じてとるプログラムが変わります。例えば、プログラミングがかなりできる人はプログラミング以外のことを重点的にやります。
競争が激しい感じですか?
いえ、どちらかと言うと逆です。そのコースではチームワークがかなり重要視されます。基本的に与えられた課題はチームで解くことになります。これはもちろんgeek(いわばオタク)が多いからということもありますが、主に軍のような大組織で働く術を学び、また、様々な問題解決のアプローチを評価する経験を積むためだと思われます。
ハッカーになるためにしたこと
ハッカーになるために勉強したことなどを具体的に教えてください。
自分がサイバーセキュリティに興味を持ち始めたときは、大きく分けて2つのことをしました。一つは学習、もう一つは練習です。
まず学習についてですが、自分はオンラインで学習しました。今でさえ色々なコースがUdemyやYouTubeにありますが、当時はなかったのでTel Aviv University(訳者注:イスラエルの一流大学)がインターネット上に公開している授業を受けました。
次に練習についてですが、これは非常に重要な部分です。練習を経て初めて、実際のハッキングの方法論を体得し、習熟することが可能になります。とは言ってもハッキングの練習として、実際に会社や組織を攻撃することは違法なので、ハッキングチャレンジやバグバウンティをやるといいと思います。自分は部隊で積んだところは大きいと思います。
ハッキングチャレンジやバグバウンティについて詳しく教えてください。
ハッキングチャレンジはその名の通り、ハッキングを試してみることです。有名なのは『OverTheWire』でしょうか。このサイトとかも参考になりますね。
バグバウンティは大企業や大きな組織がそのシステムのバグを発見したら報酬を支払うというようなプログラムです。GoogleやMicrosoftのような企業が独自に開いたりしていますね。
ハッキングの大会への参加などは?
それもいいと思います。CTF(訳者注:Capture The Flag)とかですよね。自分も同僚のハッカーチームの準備を手伝ったことがあります。ただし、参加するのは既に実経験のあるハッカーが多いですね。日本からも何チームか出ているとは思いますが...
一流のハッカーになるには
一流のハッカーになる要件などは何だと思いますか?
うーん、個人的には3つあると思います。
1つ目は問題解決能力です。論理的に、数学的に問題を解くような力が非常に重要です。具体的には、より多くのプログラミングの問題や数学の問題を解いていくといいと思います。もちろん先ほど言ったように、これは8200部隊入隊の要件と通じているとは思います。
2つ目はハッキングのプロセスについて習熟することです。ハッキングは情報の分析、脆弱性の洗い出し、脆弱性を利用した攻撃(エクスプロイト)の3パートがあります。これを完全に習熟し、使えるようになっていることが重要です。
3つ目はトライアンドエラーをするマインドセットです。ずっと机上で考えるよりもとりあえず試してみる方が経験上ずっと得です。それは問題解決しかり、ハッキングの経験しかりです。こういうのを英語ではhandsonと言いますね。
新人ハッカーへのアドバイス
新人ハッカーへのアドバイスをどうぞ?
とりあえず始めましょう。ハッキングチャレンジでもなんでも構いません。それがハッカーがどう考え、どう行動するかを知る最善の方法だと思います。がんばって!
終わりに
ハッカーになる方法は、AIエンジニアやWebエンジニアになる方法と比べて日本語の文献数が少なく、中々具体的にイメージしにくいのではないでしょうか。本記事がそのような方々にとって、有益なものとなれば幸いです。この記事良かったなと思った方は、ぜひLGTMお願いします。(LGTMが多ければ、続編も書くかもしれないです。)また、弊社のサービスに少しでもご興味を持っていただけたら、こちらのリンクから弊社HPをご覧ください。ちょっとしたご相談でもフォームにご記入くださると、ご返信できると思います。