ハッカーになるには何を勉強したらいいの?
ドラマで暗躍するハッカーを見て、「>なんかハッカーってかっこいい」って思っている人は少なくないはず。
海外ドラマの24(twenty four)に出てくるクロエのようなハッカーになりたいと思っている人も多いのかもしれませんね。
ただ、漠然としたあこがれを持っている人が多い一方、ハッキングの定義すらわかってない人が多いのも事実です。
そのため、まずはハッカーとはどういう人のことを言うのか知った上で、それでも興味があるのであれば、ハッカーになる方法を模索するのが良いのではないかと思います。
時間がない方のために、簡単に端折って言うと、ハッカーとは多くのプログラム言語、あらゆるシステムに精通しているセキュリティーのスペシャリストのことです。
ハッカーになるには、IT業界で働きながら、時に転職しながらプログラミングスキル、サーバー、DB、ネットワークのスキルと経験を深めることが重要になります。
世間的に、認知されている手あたり次第にハッキング行為を繰り返しているのは、ハッカーではなく、悪質なクラッカーですので、くれぐれも間違わないようにしてください。
ハッカーとクラッカーは全く違います
まず誤解してほしくないのは、システムを不正に乗っ取って悪いことをハッカーとは呼ばないということです。
そういう他人に迷惑をかけるシステム乗っ取り屋のことをクラッカーと言います。
クラッキングの流れは大きく言うと、通常
- 「ターゲットとなるサーバー選び」
- 「セキュリティホールを見つけるためのスキャン行為」
- 「間接的または直接的なターゲットサーバーアタック」
- 「一般ユーザー権限からのルート権限の奪取」
- 「リモートアタックによるルート権限の奪取」
- 「ログの消去や偽装」
- 「当初の目的を果たす」
- 「タイムスタンプやタイムゾーンの改竄」
- 「バックドアの仕込み」
という流れを踏みます。
ハッカーとクラッカーの大きな違いは、ハッカーはモノを創る人のことで、クラッカーはモノを壊す人のことだと定義する人がいますが、まさに核心を付いた喩えだと思います。
そんなわけでハッカーは、そうしたクラッカーと区別し、ホワイトハッカーなどとよんだりします。
ハッカーとしての腕を磨くために必要な知識や資格
もちろんクラッカーからシステムを守るために、ハッカーにはどういう仕組みで攻撃出来るのか、
- SQLインジェクションの知識
- Linuxとカーネル(OS)の知識
- バッファオーバーフローの知識
- XSS、MITM等の知識
も必要ですし、またどういう仕組みでシステムを防御出来るのかといった、ASLR、DEP、サニタイジング、PKI等の知識も必要となります。
ですが、基本的には、システム全般に対し高いレベルの知識と経験を持っている人のことをハッカーと言います。
ハッカーとは最高レベルのプログラマーである必要がある
つまり、ハッカーとは情報セキュリティのスペシャリストであり、かつ最高レベルの熟練プログラマである必要があります。
また、コンピュータシステム周りだけでなく電気回路一般についてより深い技術的知識を持っていることも要求されます。
そのため、ハッカーになるためには
- C言語をはじめとした多くの高水準言語プログラミング言語の習得
- アセンブラ、アセンブリ言語など低水準言語プログラミング言語の習得
- ソフトウェアのリバースエンジニアリング
- ITアーキテクチャの幅広い知識
- データベースの深い知識
- ネットワークの深い知識
- セキュリティの深い知識
- サーバーの深い知識
- 並外れた向上心を持つ
といったことが主に求められますし、資格として、CISSP,CCSP,CEH,CHFI,CISM,CISAなども取得すると良いでしょう。
まずは、IT業界で腕を磨き、広く深い知識を得ながら、ハッカーとしての経験を積むことが大事になってきます。
くれぐれも、他人のシステムの管理者権限を乗っ取って違法に侵入するようなことをして逮捕されることがないようにしてください。
そんなのはハッカーではなく、ただのITに詳しい犯罪者です。
繰り返しになりますが、ハッカーになるには、IT業界のいろんな分野で働きながら、プログラミングスキル、サーバー、DB、ネットワークの経験を深めることが最大の近道になるため、仕事を通じてまっとうな方法でハッカーの道を究めてほしいと思います。