ハッカーになりたいんですか?

最近、「情報セキュリティ」ゲームに参加することに関する大量の質問、投稿、一般的な議論を読みましたが、少なくとも私の意見では、それは通常、かなり誤解を招く情報によってフォローされています。 善意であることを考えると、少し厳しいかもしれませんし、そのアドバイスが彼らにとって有効であった可能性もありますが (すべてのアドバイスに当てはまるものはありません)、新進ハッカーが前進する助けになればと思い、私の考えをここに書き記します。 まず最初に認識すべきは、情報セキュリティの分野には膨大な種類があり、その膨大な種類のそれぞれに、一生分の学習コンテンツがあるということです。 スポーツを選ぶように、「これが一番」というものはなく、自分が好きな分野が他よりも多いだけなのです。 例えば、以下のような分野がありますが、決して網羅的ではありません。

  • Web アプリケーション セキュリティ
  • Reverse Engineering
  • Malware Reverse Engineering
  • Network Security
  • Incident Response
  • Standards Compliance
  • Programming / Creating Tools for Others
  • Exploit Development
  • Forensics
  • これらの中には、より技術的な性質のものもあれば、より理論的に焦点を絞ったものもあります。 あなたが好きなものは何でも、時には他の人が興味を持つものと同じように、それを退屈に感じる人がそこにいることを保証します。 これを読んでいるあなたは、これらの分野のことをほとんど知らないかもしれませんが、重要なのは、あなたの学ぶ意欲とどのようなモチベーションを持っているかということです。

    ハッキング タイプ
    これらの分野の人たちに共通するトレードマークは、自立した、自己管理された学習へのフォーカスです。 残念ながら、ある意味でセキュリティはまだ「ダークアート」と考えられています。つまり、そうするつもりでなければ、なぜ誰もコンピュータシステムに侵入する方法を知りたがらないのでしょうか。 その結果、多くの人がセキュリティ関連の質問に対して軽蔑から敵意までを示し、それは単にシステムをハックすることを学びたい「スクリプトキディ」であり、その知識を良い目的のために使いたいのではないという誤った(おそらく時には本当の)前提に立つことになるのです。 また、情報セキュリティの「学習」リソースは、学習材料の本当の中央リポジトリがなく、かなりばらばらであることも事実です。

    ここで強調したいのは、もしあなたが情報セキュリティの分野で成功したいのなら、誰かが手を握って正しい道に導いてくれるのを待つのではなく、自分から飛び込んで道を切り開く覚悟を持つべきだということです。 上記の用語でググってみて、楽しそうなものを探してみてください。 時々、学ぶための「最高の」フィールド、または「最高の」リソース、または学ぶための「最高の」方法を見つけるために一定の戦いのように見えるにもかかわらず、多くの場合、実際に学習に時間を捧げるのではなく、これらの質問を疑問に先延ばしにして時間を費やしています。 ハッキングの例としてyoutubeでビデオを見ましょう。意味がわからなくても大丈夫です。 興味のあるトピックに関する知識のウェブをどんどん増やしていくために、興味のあるポイントを利用するのです。

    最初にXを学ぶ必要がありますか?
    もちろん、始める前にOSIレイヤーの完全な知識を持っている必要があります。 TCP プロトコルに関する 1000 ページの本を読む必要があります。 そうです、ハッキングを考える前に 5 つのプログラミング言語 (最低でも!) に習熟している必要があります。 Linuxカーネルをソースコードから自分でコンパイルできますか? できない? ハッキングをわざわざ学ぶ必要はありません。 実は……これらはすべてくだらないことですが、情報セキュリティを学ぼうとする人たちによく言われる答えのひとつです。 まともなハッカーになるための条件は1つ、「興味を持つこと」です。 未来のハッカーとスクリプト小僧の違いは、知識ではなく、学ぼうとする意欲なのです。

    コンピュータの使い方について漠然とした考えを持っている限り、あなたは仕事ができるスタート地点にいるのです。 TCP がどのように機能するかについてしっかり理解していなければ、誰かがハッキングのチュートリアルでそれについて話しているときに調べるために、それを To Do リストに入れておくべきです。しかし、興味のあるトピックについて学び始めることが許される前に、たくさんの前提知識が必要だと考えるのは馬鹿げています。 ハッキングサイトでログインパズルの仕組みを調べていて、それがJavaScriptを使用している場合、JavaScriptの仕組みを学ぶことになります。 バッファオーバーフローの仕組みがPythonのテンプレートで書かれているのを読めば、Pythonの基礎が学べます。 いや、その言語を使った開発者として仕事を得ることはできないだろうけど、その言語を壊す一般的な方法を学ぶことはできるだろう。

    インフォーマル・ラーニング
    “わかりました、ヒントはわかりました。

    確かに、どのトピックに魅力を感じるかによって、始めるための素晴らしい無料または安価なリソースが山ほどあります。 ここにいくつかの例を示します。

    Web Application Security

  • HackThisSite – Web ベースの基本的な課題に最適 (link)
  • Enigma Group – Hack this site と同様 (link)
  • OWASP Top 10 – 最もよく知られるセキュリティのアイデア (link)
  • Web Application Security – Web アプリケーションのセキュリティのアイデア (link) HackThisSite – 基本的な Web ベースの課題に最適。 一般的な脆弱性 (link)

  • OWASP Broken Wep Apps – ネットワーク上でハッキングスキルを練習するためにロードできる仮想コンピュータ (link)
  • Pentesting Lab – ウェブに焦点を当てた別の仮想マシン (link)
  • 実際、vulnhubから興味を持ったものは何でも良い (link)

  • The Web Application Hackers Handbook – Webハッキングと脆弱性に関する本 (link)
  • Reverse Engineering / Malware Reversing

    (逆エンジニアリング / マルウェアリバーシング

  • Lena’s Tutorials – リバースエンジニアリングの最高の入門書として知られている (link)
  • The Legends of Random – これもまたリバースエンジニアリングのための堅実なチュートリアルセット (link)
  • Reversing: Secrets of Reverse Engineering – リバースエンジニアリングの基礎について書かれた良書 (link)
  • Practical Malware Analysis – マルウェアの解析に焦点を当てた素晴らしい本 (link)
  • Malware Analysts Cookbook – マルウェア解析に焦点を当てた別の本 (link)
  • ネットワークセキュリティ

  • Virtual Machinesは実機に対して練習できるのでこのカテゴリでは圧倒的な存在感です。 vulnhub に向かい、面白そうな VM をダウンロードします。 (link)
  • Metasploit Unleashed – VM に対して併用する metasploit テスト フレームワークの堅実な実行です。 (link)
  • The Basics of Hacking and Penetration Testing – ペネトレーション・テストについて、全く初めての人に役立つ、非常に基本的なルックです。 (link)
  • Metasploit – The Penetration Testers Guide – 侵入テストにおける metasploit の使用に焦点を当てたもう一つの本 (link)
  • これは非常に大きな分野なので、しばしば一つの側面に分解し、その側面を特別に研究することになります。 ブログはここでの最良の友です。 (link)
  • Exploit Development

  • Corelan – エクスプロイト開発について学ぶには、これが最も優れたリソースです。 (リンク)
  • FuzzySecurity – いくつかのチュートリアルが利用可能な、もうひとつの優れた学習リソース (リンク)
  • Exploit-Japan (リンク)
  • Exploit-Japan (リンク)DB – エクスプロイトの例を見つけて (多くの場合アプリが添付されています)、単独でエクスプロイトを再現してみるのが一番です (link)
  • Hacking – The Art of Exploitation – 数多くの異なるエクスプロイト技術をカバーする素晴らしい本 (link)
  • The Shellcoders Handbook – エクスプロイト開発およびシェルコーディングに関するもう一つの素晴らしい本 (link)
  • 他にはありますか? グーグル、グーグル、そしてさらにグーグル。 フォレンジックやコンプライアンスなど、個人的に興味がないので資料を探しに行ってないので省きましたが、きっと素晴らしい資料があるはずです。

    Formal Learning
    無料のリソース以外では、キャリアパスとしてこの分野に移行したい場合、雇用者にアピールするために証明書を取得し始めることもできます。 そのため、このような「曖昧さ」があるのです。 このコースは、私がこの分野で経験した最高の学習体験の1つで、60日間で、独学で1年かけて学んだことよりも多くのことを教えてくれました。 同社の「Cracking the Perimeter」も素晴らしいコースで、エクスプロイトの開発にもう少し焦点を当てたものです(リンク)。

    プログラミングのスキルを伸ばしたいなら、SecurityTube の “Python for Pentesters and Hackers” (link) は素晴らしい基礎で、ポートスキャナーやパスワードクラッカーなどを自分で作るような気のきいたことをたくさん教えてくれる。 私は雇用の観点から彼らが提供する認定資格に大きな価値を置いていませんが、私はそれを、まだ価値のある販売用の知識と例の統合された塊として見ています。

    「Certified Ethical Hacker」コースもよく言われるものです。 正直なところ、それは一般的に見下されているので、必ずしもお金を払う価値があるとは思いません。しかし、物事を学ぶために正式なコースが必要であれば、それはあなたにとってお金を払う価値があるかもしれません。 これらの資格とその価値については、TheEthicalHacker.netのフォーラム(こちら)で議論されています。

    「できるかどうか見ているだけ」
    ハッキングとは、意図しないものにアクセスできるようになることです。 エクスプロイトの作成、SQL インジェクションの発見、パスワード クラックなど、すべては私たちが攻撃しているボックスをコントロールするという目標に向けて設計されています。 新米ハッカーのほとんどは、学校のウェブサイトにアクセスすることを夢見るようになったことでしょう。 「近所のWiFiネットワークにアクセスできるかもしれない。 友人にトロイの木馬ウイルスを送り、「自分がコントロールできるかどうか試してみる」。 さらに悪いことに、HackForums.netのような場所を訪れて、多くの人がRATで他人を感染させようとしたり、ボットネットを構築したりするのを見て、これがハッキングだと思い込んだり、悲しいことにこれが唯一の学習方法だと思い込んでしまうかもしれません。

    これは事実ではないことを強調する必要があります。 どのようなタイプの「できるかどうか確認する」タイプの演習も、仮想マシンや自分のルーター、あるいは旗取りゲームやウォーゲーム競技を使用することで再現することができます。 現実的な話として、他人のマシンにアクセスできたとして、それで何をするつもりなのでしょうか? クレジットカードの詳細を盗んで、不正な取引をしようとするのでしょうか? 誰かのメールを覗き見するために、本当にパスワードを盗んだり、自分の行動が追跡されることに怯えたりするのでしょうか? 新人が自分の犯している罪の重さに気づかず、起訴された例はいくらでもあります。 もしあなたがFBIに就職して、あなたの投稿履歴を調べられたら、ボットネットをホストする方法を尋ねた投稿を読ませたいですか? インターネット上の情報は永遠に残るという典型的な例で、情報セキュリティの分野で本当に仕事をしたいのであれば、仕事をする上で必要なセキュリティ・クリアランスを取得するために、そのクリーンな記録が必要です。 くだらないことで捕まるのは、その価値がないのです。

    まとめ
    さて、長々と書いてきましたが、肝心の内容はどうでしょうか。

  • ハッカーは、他人から与えられるのを待つのではなく、積極的に情報を探し求める
  • スクリプト小僧と新人ハッカーの違いは、学ぶ意欲だ
  • 幅広い情報セキュリティ分野を試し、自分の興味を引くものを見つける必要がある
  • 情報セキュリティを学ぶための前提条件があるなんて言わせない、そんなものはないんだから。
  • 合法でないことを「できるかどうか確認する」価値はありません。 情報セキュリティは素晴らしい分野であり、それに関わることで毎日新しいことを学ぶことができます。 この分野に入るための正解はなく、両足で飛び込むしかありません。 濡れて、水を踏んで、浮いて、いつか少しは泳げるようになるかもしれませんよ。
  • コメントを残す

    メールアドレスが公開されることはありません。