最近、「情報セキュリティ」ゲームに参加することに関する大量の質問、投稿、一般的な議論を読みましたが、少なくとも私の意見では、それは通常、かなり誤解を招く情報によってフォローされています。 善意であることを考えると、少し厳しいかもしれませんし、そのアドバイスが彼らにとって有効であった可能性もありますが (すべてのアドバイスに当てはまるものはありません)、新進ハッカーが前進する助けになればと思い、私の考えをここに書き記します。 まず最初に認識すべきは、情報セキュリティの分野には膨大な種類があり、その膨大な種類のそれぞれに、一生分の学習コンテンツがあるということです。 スポーツを選ぶように、「これが一番」というものはなく、自分が好きな分野が他よりも多いだけなのです。 例えば、以下のような分野がありますが、決して網羅的ではありません。
これらの中には、より技術的な性質のものもあれば、より理論的に焦点を絞ったものもあります。 あなたが好きなものは何でも、時には他の人が興味を持つものと同じように、それを退屈に感じる人がそこにいることを保証します。 これを読んでいるあなたは、これらの分野のことをほとんど知らないかもしれませんが、重要なのは、あなたの学ぶ意欲とどのようなモチベーションを持っているかということです。
ハッキング タイプ
これらの分野の人たちに共通するトレードマークは、自立した、自己管理された学習へのフォーカスです。 残念ながら、ある意味でセキュリティはまだ「ダークアート」と考えられています。つまり、そうするつもりでなければ、なぜ誰もコンピュータシステムに侵入する方法を知りたがらないのでしょうか。 その結果、多くの人がセキュリティ関連の質問に対して軽蔑から敵意までを示し、それは単にシステムをハックすることを学びたい「スクリプトキディ」であり、その知識を良い目的のために使いたいのではないという誤った(おそらく時には本当の)前提に立つことになるのです。 また、情報セキュリティの「学習」リソースは、学習材料の本当の中央リポジトリがなく、かなりばらばらであることも事実です。
ここで強調したいのは、もしあなたが情報セキュリティの分野で成功したいのなら、誰かが手を握って正しい道に導いてくれるのを待つのではなく、自分から飛び込んで道を切り開く覚悟を持つべきだということです。 上記の用語でググってみて、楽しそうなものを探してみてください。 時々、学ぶための「最高の」フィールド、または「最高の」リソース、または学ぶための「最高の」方法を見つけるために一定の戦いのように見えるにもかかわらず、多くの場合、実際に学習に時間を捧げるのではなく、これらの質問を疑問に先延ばしにして時間を費やしています。 ハッキングの例としてyoutubeでビデオを見ましょう。意味がわからなくても大丈夫です。 興味のあるトピックに関する知識のウェブをどんどん増やしていくために、興味のあるポイントを利用するのです。
最初にXを学ぶ必要がありますか?
もちろん、始める前にOSIレイヤーの完全な知識を持っている必要があります。 TCP プロトコルに関する 1000 ページの本を読む必要があります。 そうです、ハッキングを考える前に 5 つのプログラミング言語 (最低でも!) に習熟している必要があります。 Linuxカーネルをソースコードから自分でコンパイルできますか? できない? ハッキングをわざわざ学ぶ必要はありません。 実は……これらはすべてくだらないことですが、情報セキュリティを学ぼうとする人たちによく言われる答えのひとつです。 まともなハッカーになるための条件は1つ、「興味を持つこと」です。 未来のハッカーとスクリプト小僧の違いは、知識ではなく、学ぼうとする意欲なのです。
コンピュータの使い方について漠然とした考えを持っている限り、あなたは仕事ができるスタート地点にいるのです。 TCP がどのように機能するかについてしっかり理解していなければ、誰かがハッキングのチュートリアルでそれについて話しているときに調べるために、それを To Do リストに入れておくべきです。しかし、興味のあるトピックについて学び始めることが許される前に、たくさんの前提知識が必要だと考えるのは馬鹿げています。 ハッキングサイトでログインパズルの仕組みを調べていて、それがJavaScriptを使用している場合、JavaScriptの仕組みを学ぶことになります。 バッファオーバーフローの仕組みがPythonのテンプレートで書かれているのを読めば、Pythonの基礎が学べます。 いや、その言語を使った開発者として仕事を得ることはできないだろうけど、その言語を壊す一般的な方法を学ぶことはできるだろう。
インフォーマル・ラーニング
“わかりました、ヒントはわかりました。
確かに、どのトピックに魅力を感じるかによって、始めるための素晴らしい無料または安価なリソースが山ほどあります。 ここにいくつかの例を示します。
Web Application Security
Web Application Security – Web アプリケーションのセキュリティのアイデア (link) HackThisSite – 基本的な Web ベースの課題に最適。 一般的な脆弱性 (link)
実際、vulnhubから興味を持ったものは何でも良い (link)
Reverse Engineering / Malware Reversing
(逆エンジニアリング / マルウェアリバーシング
ネットワークセキュリティ
Exploit Development
他にはありますか? グーグル、グーグル、そしてさらにグーグル。 フォレンジックやコンプライアンスなど、個人的に興味がないので資料を探しに行ってないので省きましたが、きっと素晴らしい資料があるはずです。
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に就職して、あなたの投稿履歴を調べられたら、ボットネットをホストする方法を尋ねた投稿を読ませたいですか? インターネット上の情報は永遠に残るという典型的な例で、情報セキュリティの分野で本当に仕事をしたいのであれば、仕事をする上で必要なセキュリティ・クリアランスを取得するために、そのクリーンな記録が必要です。 くだらないことで捕まるのは、その価値がないのです。
まとめ
さて、長々と書いてきましたが、肝心の内容はどうでしょうか。