
独学ハッカーのロードマップ
ハッキングとは、物事を意図しない方法で使う技術です。例えば、ソフトウェアのトライアル期間がもうすぐ切れる場合、コンピュータの日付を先週に変更することで延長できるかもしれません。それがハッキングです。
ハッキングは非常に広い用語であるため、学ぶための「唯一の正しい方法」はありません。そのため、このガイドの目的は、ロードマップではなく方向性を提供することです。
追加・改善すべきことがあれば、issueを作成してください。
自分のルーツを知ることは重要だと思います。なので、あまり深く分析せずに起源について話しましょう。
1960年代、電話ネットワークは電話を処理するために一連の音を使用していました。あるグループの人々がその仕組みを解明し、ネットワークで使われている2600Hzの周波数の音を再現することに成功しました。どうやってやったのか?シリアルについてきた無料のホイッスルを吹くことで。この行為はフリーキングと呼ばれ、それを行った人々はフリークと呼ばれました。
フリークの一人、Denny Teresiはインタビューでこう言っています。
「それは電話会社をだますためだけじゃなかった。技術的な挑戦だったんだ——できるかどうか試してみたかった。」
彼らはそれを解決するのが魅力的な問題だったからやり、解決できるかどうか確かめたかったのです。これこそが、今日でもハッキング文化の本質です。
もし薬を売りたいだけなら、薬を保管する場所と、顧客が必要とするものを渡すことだけが必要です。一方、病気の治療法を作りたいなら、人体やそのすべての仕組みを知る必要があります。理にかなっていますよね?同じことがハッキングにも当てはまります。何かを本当にうまくハックし、そのための新しいテクニックを生み出したいなら、それがどう動くかを理解しなければなりません。
他の人に役立つかもしれない情報を持っているなら、ソーシャルメディアやフォーラム、ブログで共有しましょう。それは多くの面であなたに利益をもたらします:
好奇心を持ち、たくさん実験し、クールなものを作ろう。それが全てのポイントであり、すべてが始まった方法です。他人が開発したテクニックやツールを使って人生を過ごすなら、こんなクールな道を選ぶ意味があるでしょうか?
ロードマップには、いくつかの良いリソースとともに、自分でGoogle検索して調べる必要があるトピックも含まれています。これは単なる「ステップバイステップガイド」やリソース集ではありません。
ものを見たり読んだりして、理解できない用語をメモし、Googleで調べて、少なくとも3つの異なる情報源から学びましょう。また理解できない用語をメモし、そのプロセスを繰り返します。 なぜ少なくとも3つの情報源か?1人の作成者が提供する情報はその人の知識に限られます。3人の異なる作成者から得ることで、異なる視点からより良い理解が得られます。
この方法論をガイド全体で「再帰的学習」と呼びます。
ハッキングにはリバースエンジニアリング、Webハッキング、カーハッキングなど多くの分野がありますが、分野に関係なく役立つものもあるので、まずはそれらについて話しましょう。
それは、毎日何時間も使うマシンについての深い理解を得るのに役立ちます。また、言葉で説明できない貴重な視点を得ることにもつながります。
覚えておいてほしいのは、基礎を知っておけば十分だということです。なぜなら、「ファイルを削除するとどうなる?デバイス上に残っているなら、どうやって空き容量が増える?本当に消えているなら、復元ソフトはどうやって復元する?」といった疑問を持ち、好奇心を持ち続ければ、この知識は発展し続けるからです。
リソース:
インターネット(およびその他のネットワーク)がどのように機能するかを理解することは不可欠です。なぜなら、ネットワークはどこにでもあるからです。
再帰的学習を始めるためのトピック:
IP address, MAC address, port, client & server, dns, tcp, udp, proxy, tls/ssl, vpn
リソース:
プログラムの実行やリモートサーバーへのアクセスなど、ターミナルで多くの時間を過ごすことになります。どのOSでも構いませんが、LinuxベースのOSをお勧めします。なぜなら、そのすべてを変更できるからであり、それがハッキングの本質だからです。Ubuntuは初心者に最適なLinuxディストリビューションです。
特定のソフトウェアがどのように動作するかを理解し(ハックしやすくなる)、ハッキングやその他のタスクのための独自のソフトウェアを作成するために必要です。
多くのプログラミング言語がありますが、Pythonから始めることをお勧めします。簡単で、顔検出器の作成からウェブサイトまで、ほぼ何でもできるからです。
始め方についての記事を書きました。チェックしてみてください。
サイバーセキュリティ関連の記事でよく見かける概念がいくつかあり、ほとんどの分野で役立ちます。
再帰的学習を始めるためのトピック:
phishing, ddos and dos attack, website crawling, encoding and encryption, password cracking, login bruteforcing, man in the middle attack
すべての基礎、特に基本的なハッキングの概念を学んできたなら、すでに特定のことに興味が湧いているかもしれません。そうでない場合、ここにサイバーセキュリティ関連の分野をいくつか挙げます。気になるものをGoogleで調べてみてください:
最も興味を持った分野が見つかったら、1日かけてその始め方と最適なリソースを調べてください。次の日、すぐに始めて学ぶことをやめなければ、すべてはうまくいくでしょう。
また、以下のことも行いましょう:
盛り上げるつもりはありませんが、合法的に一日でお金持ちになることも可能です。
スキルはありますか? バグ報奨金をやるか、Zerodium のようなプラットフォームに脆弱性を提出しましょう。
スキルがあり、質の高い公的な成果もありますか? フリーランスをするか、仕事に応募しましょう。
注: これらの指示は、技術職で働くことを決意している人のみを対象としています。
学校に通っているなら、理科と数学をしっかり学びましょう。この知識は重要です。近くの大学に入学するのが難しくないなら、成績を気にしすぎないでください。残りの時間は友達と過ごしたり、運動したり、スキルを磨くのに使いましょう。最初の2つは必須です。
大学に通っているなら、技術的なスキルを磨くためにより多くの時間を費やしましょう。試験に合格して学位を取得するだけで十分です。就職の際に成績はまったく重要ではありません。学校時代に挙げた3つのことをすべてやってきたなら、今頃は健康で社交的で能力のある人間になっているはずです。もし1つ以上をすでに台無しにしていたとしても、大丈夫です——今から修正できますが、できるだけ早くやるように。
わかりました。どうやってその結論に至りましたか?最近の複数の面接でそのフィードバックを得ましたか?自分の分野の「専門家」が話しているときに、一言も理解できませんか?
それとも、ただそう感じているだけですか?多くの場合、それは単なる感情であり、実はうまくやっているという指標です。ダニング=クルーガー効果がそれをよく説明しています:
1日を3つの部分に分けましょう:
燃え尽きは、長時間働きすぎるか、同じことを長時間続けることで起こります。毎日新しいことを学び、楽しむことを確保すれば、燃え尽きを防げます。
この問題について、Haroon Meer のトークが非常によく扱っています: You and your research。これは、Richard W. Hamming博士が理系学生向けに行った元のトーク "You and your research" のハッキング特化版です。
また、私のブログ「創造性、自己不信、そして素晴らしい仕事をすること」も読んでみてください。
やるべき重要なことがあると分かっているのに、それをやり遂げられない段階に行き詰まっていませんか?始めるための十分なモチベーションがなく、短時間で集中力が切れたり、一日中何もせずにその後自己嫌悪に陥ったりしていませんか?
最低限のことだけをやって、物事をやり遂げる気持ち良さを自分の心に知らせてあげましょう。以下の4つの項目があるToDoリストを作成してください:
全部できましたか?では、時間を無駄にしても構いません。もう十分にやったのです。このToDoリストを実行すると、次の2つのうちどちらかを感じるでしょう:
もし2つ目なら、「重要なこと」を小さなタスクに分解して、それらからToDoリストを作りましょう。以下は、博士論文を書きたい友人のために私が作ったテンプレートです:

もし1つ目で、タスクを終えた後にすでに良い気分になり始めているなら、徐々に記事の数や腕立て伏せの回数を増やし、活動リストを拡張しましょう。すぐに、重要なタスクに取り組みたくなり、それを前述のように分解して始めるでしょう。
覚えておいてください:毎日最低1つのタスク。絶対にゼロにしてはいけません。さもないと最初の「何もしない」状態に戻ってしまいます。怖がる必要はありません。もし午後11時にベッドにいて、一日中何もせずにミームを見ているなら、腕立て伏せを1回やってリストから消しましょう。 簡単でしょう?今すぐ始めよう。