ハッカーを目指すならこれは勉強すべき!

どうも!ホワイトハッカーを目指して勉強している現役システムエンジニアのカペです。

私は「セキュ塾」のホワイトハッカー育成コースに通っているのですが、そこで見えてきた”ハッカーになるために勉強した方がいいこと”をご紹介します

アセンブリ言語

アセンブリ言語は、プログラミング言語のいとつで、コンピューターが理解するための言語(機械語)に非常に高い言語です。

昔の人はこれを使ってプログラムを書いてました。

OSとかもこのプログラムで書かれていたそうです。

(今もそうなのかはわかりません…。)

これ今読める人はめちゃくちゃ少ないです!!!!

昔の言語がなぜ必要なのかというと、逆アセンブルの際に必要になるためです!

逆アセンブルと言うのは、EXEファイルやELFファイルといった実行ファイルをアセンブリ言語でソース表示させることです。

マルウェアの解析などに使う技術ですね。

アセンブリ言語でソース表示されるので、アセンブリ言語が読めないと処理がわからないず、解析することができないので読めるように勉強しておいた方が良いです。

個人的には”OS自作入門”という本がオススメです。

この本はOSを作成するため本で、C言語、アセンブラを用いて簡易的なOSを作成するので、アセンブラの知識やC言語の勉強になります。

説明も非常にわかりやすく、そして細かく書いてあるので、初心者の方にもオススメです。

私もこの本でアセンブラについて勉強しました!

まだ勉強中ですが…。

レジスタとかも勉強できるので、個人的には基本情報技術者試験の参考書より役に立つと思います。

ネットワークの基礎

ネットワークも広いですが、まずは以下に関しての知識は持っておいた方が良いと思います。

  • IPアドレス
  • ポート
  • パケット
  • ハンドシェイク通信
  • プロトコル

これらがどういったものなのかを理解すると、大まかにネットの通信がどのように行われているのかを理解することができるのではないかなと思います。

ネットの通信がどのように行われているのかを、理解できていない状態でハッカーにはなれませんので、まずは大まかに理解して、細かいところを理解していった方が良いと思います。

人に説明できるくらい理解できるようになっていれば大丈夫です!

OSの基礎

みなさん、ハッキングの映画やドラマなどでこのような画面を見たことがあると思います。

上記の画像は、MAC上でファイル一覧を表示するコマンド(ls -al)を打っただけですが、実際にリモートでPCやサーバーにアクセスをしてからの操作は、このようにコマンドで作業することが一般的です。

OSの種類によってもコマンドは違ってくるので注意が必要です。

OSの種類OSは4種類あります!

以下の4種類です。

  • Windows
  • MAC
  • Linux
  • (Unix)

重要なのは、WindowsとLinuxのコマンドが使えることです。

サーバーはWindows ServerかLinuxをサーバーとして使用していることが多いですし、Windowsは一般的に家庭やオフィスで使用されていることが多いので、勉強しておいた方が良いです。

MACはLinuxのコマンドを使えれば、ほぼ同じように使えるので覚える必要なしです。

Unixは使われているのを見たことがないレベルなので、これも覚えても役に立つことはほぼないかと。

まず覚えた方が良いコマンドは

  • ディレクトリの階層を移動
  • 作業ディレクトリ配下のファイル、ディレクトリ一覧の表示
  • 現在の作業ディレクトリをフルパス表示

からですね。

そこから、

  • ファイル・ディレクトリの作成、コピー、移動、削除、編集
  • 権限変更
  • プロセス表示

などなど、習得していけば良いと思います。

高レイヤーのプログラミング言語

高レイヤーのプログラミング言語とは、C言語・JAVA・Pythonなどがありますね。

ちなみに低レイヤーのプログラミング言語は、機械語・アセンブラ言語です。

高レイヤーの言語は、どんなものかというと、人間がソースを読みやすいようにプログラムを組むことができますプログラムを書いた後は、コンパイルという作業を挟んで、機械語にします。

そのコンパイルという作業を挟む必要があるのが、高レイヤーのプログラミング言語だと思っていただければ、多分大丈夫です。

なぜ、高レイヤーのプログラミング言語がハッキングで必要なのかというと、Pythonなどでプログラムを組み、作業を効率化するためです。

計算処理や、解析処理などに関しては、機械にやってもらったほうが早いので、簡単にできそうなものであれば、自分で組んでしまった方が良いです。

未経験者がプログラミングをできるようになるには、どのようなことをすれば良いのか、以前記事にしましたので、そちらも参考にどうぞ↓

データベース言語

データベースは、一言で言えばデータを管理しているアプリケーションです。アカウント情報や、記録したい情報などをデータベースに保存しています。

このデータベースは、データベース言語というもので操作しなければいけません。

データベース言語は、よくクエリー(query)と呼ばれるものですね。

どういった操作をするのかというと、

  • ”Aさんの個人情報をください”
  • ”Aさんの会社情報とAさんの個人情報を合わせたものを一覧でください”

みたいな感じでやります。

上の内容を実際のクエリーで記載すると、

  • SELECT * FROM User WHERE name = “A”
  • SELECT * FROM Company INNER JOIN User ON Company.ID = User.companyID WHERE User.name = “A”

というような感じです。

基本的には、個人情報などは、このデータベースにどこの企業も保存しています。なので、個人情報の大量漏洩が行ったりした事件などは、クエリーを不正に発行されてしまい、情報を抜き取られてしまったケースが多いです。

どういったクエリーが発行されたのかを調べることや、あらかじめ不正を防ぐためにも、クエリーの知識は必要になってきますので、勉強しておいた方が良いです。

クエリーは最初はすこし難しく感じるかもしれませんが、やっていれば慣れてきます。

プログラミング言語に比べたら、覚えることもそんなに多くないので、習得は早いと思います。

最後に

今回色々ご紹介させていただきましたが、私もまだまだ勉強中です。

アセンブラ、難しいんですよね〜…。

ちなみにセキュ塾のことも記事にしているので興味がありましたらご覧あれ!

もっとホワイトハッカーについて詳しくなったら、また記事にしたいと思います。

以上、カペでした〜!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください