Good UX Life

人生のUXを高めるための知見

ハッカーになるためにはなにをすればよいか【和訳】

なにかHack的なことをしたくなって色々みていたらQuoraというサイトに良い文章があったので和訳しました。 www.quora.com

この頃、メディアの派手な宣伝によってたくさんの大学生や高校生達がハッカーになりたがっています。ハッカーはかっこ良いと同時に犯罪的だとも思われています。私のブログは基本的に私のハッキングへの道のりを書いたものなのでたくさんのメールが送られてきます。”どうやってハッカーになるの?” "ハッキングの初心者qqなんですけどどうやって始めれば良いですか?" "友達のFacebookをハックできるようになりたいです" 等、他にも頻繁に質問が送られてきます。この記事ではこれらの質問や他のことについても答えていこうと思います。どのようにハッキングを始めるか、どのようにしてハッキング領域の専門知識を底上げするかについて詳細な指示書きを与えましょう。
ハッキングはスキルです。ただ単に友達のFacebookアカウントやメールを面白がってハッキングしてもあなたのためにはならないことを覚えておく必要があります。 あなたはハッキングを学ぶべきです。なぜなら技術に対するあなたの興味や欲望はあなたをコンピュータシステムのエキスパートにしてくれるからです。

"ハッカーであることはとても楽しいでが、多くの努力を必要とする楽しみです。努力にはやる気がいります。"

ハッカーになるための重要な最初の一歩はEric Raymondのこの記事(日本語版はこちら)を読むことです。志高いハッカーになるためのデファクトスタンダードガイドラインです。

ハッカーマインドセット

ハッカーになるためには現実世界であらゆる技術に出会ったとき、ハッカーの視点でそれらをハックすることを考えて見ることを始めなければなりません。ハッキングはコンピュータに限ったことではありません。日常の中で問題に出会ったとき論理や創意工夫で問題解決することもそうです。何もないことはとてもハッキング対策です。自動人力車メーター、電子投票機、自動ドア、生体認証、車やヨットは全て過去にハックされています。なんらかのテクノロジーに出会った時はいつでも別のアクションをどのようにして起こせるかを考えてください。パズル解決することや挑戦をする好奇心を備えておくべきです。

あなたの技術を知る

ハッカーになることは簡単ではありません。数日、数週間ではなれません。数ヶ月、数年かけてハッカーと自分自身で呼べるところまで届くのです。主な理由はハッカーは様々な技術的ノウハウを必要とするからです。もしあなたがコンピュータをハックしたいなら、コンピュータがどのように動いているかを知ることが論理的だと思いませんか?コンピュータの内外に精通していて、ITドメイン内のすべてについて少し知っておくべきです。そのため、あなたは様々なことについて学ばなければなりません。この学習段階で大抵の意欲的なハッカーは諦めてしまいます。

一般的なITの知識:

上記のものは最低限の概念で、あなたはこれらを徹底的に勉強しなければなりません。例えば、データがOSIレイヤーをどのように行き来しているか、データ転送におけるそれぞれのレイヤーの役割を知る必要があります。COMPTIA A+ CERTIFICATIONのようなネットワークコースを受けることをお勧めします。

プログラミング言語

ハッカーになるために必須ではありませんがプログラミングの知識は必要です。世界的なハッカー達もプログラマーから始まっています。あなたがプログラミングを知っていれば、コードを分析して解析することができるし、自分用のスクリプトやハッキングツールを作ることができます。では、あなたはどのプログラミング言語を学ぶべきなのでしょうか?HTML、JavaScriptはインターネットの言語です。だからこそ最初にこれらを学ぶ方が良いでしょう。これらは信じられないほど簡単に理解し学ぶことができます。あなたがコンピュータサイエンス学部の学生なら、おそらくC言語C++Javaを勉強するでしょう。この三つのメジャーな言語は素晴らしいので学習を続けるべきです。しかし、ハッカーにとってはPythonがベストな言語です。"なぜ?"とあなたは聞くでしょう。なぜならPythonは極めて強力な言語であると同時に簡単に学習することができるからです。Pythonは少ないのコードで結果を得ることができ、コンパイルが必要ありません。これはスクリプトを書くだけで即座にコンパイルなしで実行できることを意味しています。この先ハッカーではなくプログラマーになることを決意した時、PythonGUIアプリケーションも作ることができます。実際、Youtubeの大部分はPythonで書かれています 。
他の言語ではPHPを学ぶべきです。PHPも同様にフリーのOSSです。PHPはサーバーサイド言語です。ログインページや他のWeb FormもPHPにハンドルされているということになります。ASP.NETの知識も役立ちます。MySQLのコマンドやシンタックスについても知るべきです。この知識はSQLインジェクションに対抗する際に極めて重要になってきます。XAMPPをダウンロードしてPHPMySQLの練習をしてください。
もう1つ重要なことは、ほとんどの大学があなたに高度なプログラミング概念を教えないということです。重要なでファイルハンドリング、ネットワークソケットプログラミングは言語に関係なくあなた自身で熟知すべきです。

オープンソース

ハッカーコミュニティはOSSの大きなサポータです。あなたはできる時にOSSに貢献するべきです。プログラミングスキル向上させるためにOSS活動をするのが良いでしょう。人気のOSSをダウンロードしてソースコードを読みましょう。SourceforgeGithubは素晴らしいスタートポイントです。あるいは自分でプロジェクトを始めオンラインにソースコードを投稿するのも良いでしょう。これはあなたの知名度をあげるのに役立つでしょう。

Linux

ほとんどのユーザーにとってWindowsOSは簡単で便利かもしれませんが、ハッカーに適したものではありません。いくつかのWindows専用ツールをのぞいて、大抵のハッキングツールはLinux環境下で最適な動作をします。私はここで10個の最高のハッキングツールを紹介しました。これらのうち9個はLinux環境下でベストな動作をします。UbuntuFedoraのようないかなるLinuxディストリビューションでも使うことができます。しかし、BackTrackとKaliのメジャーな二つのLinuxディストリビューションは特にハッカー向けに設計されています。これらのOSは人気のハッキングツールが全てインストールされており、自分でインストールする際のトラブルを回避することができます。もしまだWindowsから離れることを嫌だと思っているなら、Virtual Boxを使ってBackTrackをインストールするか、OSをデュアルブートすることもできます。情報技術はとても大きな分野です。 大学を見ると、教授はプログラミングの概念と理論について、システム管理者はネットワークとシステムについて、Webサイトの開発者はWebのプログラミングと設計について知っています。あなたは、ハッカーとして、これらすべてのことを知っている必要があります。

ハッキング領域の下でさえ、Webアプリケーション、ネットワークセキュリティ、デジタルフォレンジックリバースエンジニアリング etcなどの様々なサブカテゴリーがあります。全て理解している人などいません。一般的なハッキングの知識や経験を手にした後、どの分野のエキスパートになるかを選びましょう。

では、現実的なハッキングについて話しましょう。仮想環境を作ってハッキングの練習をしましょう。やり方はここにあります。先ほど紹介した10個のツールを使ってみよましょう。あなたがハッキングやその他の技術の理論的概念を理解しているのであればこれらのツールを簡単に使うことができます。ハッキングされることを目的としたWebサイトを使ってWebアプリケーションのハッキングの練習をしましょう。良い例はhttps://www.hackthissite.org/です。このようなサイトはたくさんあります。 Googleはあなたの親友です。 ハッキングを学ぶ方法の一つとして、PDFとビデオリソースをダウンロードして勉強することが良いでしょう。CBTナゲットや他の機関のビデオチュートリアルはtorrentで利用可能です。Youtbeはどのトピックでも豊富なチュートリアルがあります。http://www.securitytube.net/も良いでしょう。 私が始めた頃の勉強方法を教えましょう。日記(ブログ等)をつけることを初めて、あなたがハックしたいもののリストを作ります。例えばあなたが大学生なら、あなたの目的になるものはWebフィルターを巡回すること、出席記録にアクセすること等かもしれません。達成できるまで取り組みましょう。同様に、あなたの目的は誰かのシステムに入ることかもしれません。成功するまでギプアップしないでください。全てを日記に記録してください。これらはあなたがどれだけ成長したかを教えてくれるでしょう。

練習と勉強をすることを続けましょう。これがハッカーへの唯一の道です。あなたが大学生ならパーティーFacebookを見ることに時間を費やしてはいけません。時間はとても貴重です。起きている時間を全て有効活用しましょう。もしWebサイトや小さな会社をやっている友人がいるのならWebサイトやネットワークへの侵入テスト(ホワイトハック)をさせてもらえないか聞いてみましょう。しかし、許可を得ることを忘れないでください。誰かのWebサイトやシステムに許可なく書き込むことは犯罪であり刑務所に入ることになります。口だけの許可は法廷では通じません。彼らのウェブサイトをハックすることができるようになったら、レポートを書いて提出してください。

これがハッカーになる方法です!この通りハッカーになるための道のりは長いです。なので、あなたがただハックしたいだけならばこの業界はあなたにふさわしくありません。要するに、あなたは常にホワイトハッカーであるべきということを忘れないでください。不注意を起こしたり、間違って犯罪者になる可能性があります。ホワイトハッキングは危険な領域です。