ハッキングとは一体なにか?
ハンク・グリーン氏:よく聞きますよね。巨大銀行がハックされた。Tumblerがハックされた。アシュレイ・マディソンがハックされて誰が誰と不倫してるかわかってしまった。でも実はそんなに単純なことではなく、映画などで見るような華やかさはないのです。
ハッキングは魔法の言葉をタイピングするということではありません。片手でキーボード、もう片方もキーボード。一度で2人分のキーボードを使うというようなことではないのです。ハッキングは難しいのです。入念な計画とそれ相応の時間もかかります。悪いハッカーを阻止するというのはさらに難しいことです。しかし、なかにはそれに時間をかける人もいるのです。
ハッキングとは認証を受けていない人がコンピューターシステムに入ることです。ハッカーが入ると、見るべきでない情報にアクセスできます。FacebookやTwitterがハックされたとかはよく聞きますが、ここで話す内容はそれとは違うものです。
Facebookのアカウントがハックされた場合、それは大抵パスワードを知られたことが理由です。それでも大変ですが、企業のインフラに入り込んで何十億のパスワードが盗まれるということとはレベルが違います。幸いにもそれは並大抵の労力ではできませんが。
ただしそれが起こったことはあります。12月に、ヤフーは2013年に個人データを含む数十億のアカウントが被害を受けたことに気づきました。セキュリティーの質問やパスワードを含む個人データです。こういったことのため企業はハッカーに油断できないのです。
ハッカーが侵入した後にはいくつか選択肢があります。情報を集める。コンピューターシステムに被害を与える。またはなにもせずにセキュリティリスクを企業に報告するかです。この3つがハッカーの主な違いです。
ブラックハットは基本的に悪者です。システムに侵入して情報を手に入れたりダメージを与えたりします。ちなみにこれは違法です。
ホワイトハットというハッカーもいます。自分自身のシステムに侵入したり、人を雇って別のシステムに侵入を試みます。しかし危害を加えるためではなく、脆弱性を確認して修正するためです。
そして最後にグレーハット。名前の通り、黒と白を行ったり来たりします。とくに危害を加えようとしているわけではないのですが、違法行為や非道徳的な行動をとります。依頼されることなくシステムをハックしたりします。情報を奪うことはないですが、企業に後で報告すると同時に脆弱性を公表したりします。
ブラックハット、ホワイトハット、グレーハットといるわけですが、彼らのテクニックはおおむね同じです。システムの脆弱性を確認するホワイトハットでも、ブラックハットがどんな手を使うかを理解していなければいけません。ハリーポッターがダークアーツと戦う感じです。彼らから身を守るためにはダークサイドのことも知っておかなければいけませんから。
ホワイトハットが主にやることでペネトレーションテストというものがあります。省略してペンテストと呼ばれます。ブラックハットのように危害を加えるのではなく、脆弱性を修正します。基本的な手順です。このステップを見るとハッキングの基本的な考え方がわかります。
最初のステップは偵察でreconとも呼ばれます。情報を集めてシステムに侵入する最善の方法を探します。例えばブラックハットの場合、ターゲットのコンピュータのOSを知っていると有利です。攻撃をそのOS用に調整します。脆弱性を修正するホワイトハットの場合、どんなデータにアクセスしたいかを知りたいわけです。
ハッカーたちの手法
偵察には2パターンあります。パッシブとアクティブです。パッシブ偵察はターゲットのコンピュータに一切干渉せずにハッカーが情報を集める場所です。パッシブ偵察には多くの方法があります。すでにある情報を見たりWebで公表されているファイルを見たりします。これがブラックハットだと、捨てられたハードドライブを奪ったりします。
パッシブ偵察は時間がかかりますが、企業にとっても対抗しづらいものです。なぜなら何も察知できないからです。ハッカーが企業のシステムに接触しないので、攻撃の計画の警告も見つからないのです。企業にできる最善策は手がかりをやたらと残さないことです。害がなさそうでも不要なデータはできるだけ破壊します。ハードドライブを軽々しく捨てないというのも有効です。
それに対してアクティブハッカーは、企業のコンピュータシステムに直接関与して有効な情報を得ようとします。ハッカーは早く情報が得られますが、感知されるのも簡単です。それはサーバーのようなところにアクセスしているためです。コンピュータにデータを供給する中心的な部分ですね。
彼らのネットワークに見知らぬマシーンや怪しいコマンドを察知すれば、アクションを取ります。コマンドを送りアドレスをブロックしたりするのです。ホワイトハットとしてはペンテストの一環でアクティブ偵察の体を成すのですが、そうやってブラックハットが情報を得ないように防御を施しているのです。
普通、オープンコネクションを見ることから始めます。portsと呼ばれるのもです。それぞれのオープンポートは、デバイスとインターネット間のリンクとして働き、そこでデータが交換されます。それが危険なこともあります。なぜならそこに マシーンを攻撃するコードを送るためにハッカーがそのポートを使えるからです。
ホワイトハットはオープンポートを見つけると、そのハードウェアとOSがわかるかどうかをチェックします。なぜならそれがブラックハットの手口だからです。ブラックハットが攻撃のための情報を得られるとわかったら、ポートを考え直したり、マシーンが情報開示しないような方法を探します。
たいていの場合、ポートはできるだけ閉じていたいものです。その方法の1つがファイアウォールです。プログラムだったり丸ごとデバイスだったりしますが、招かれざるアクセスをブロックするためのものです。
他のもの同様にファイアウォールはポートの位置を把握し、開かれる必要のあるものだけが開いているという状態を確認します。コンピューターのセキュリティーガードみたいなもので、ドアがちゃんとロックされているかを確認するのです。
ここまでが偵察です。次に攻撃からの防御を見ていきましょう。特定のセットアップを利用するものです。まずハードウェアとOSに既存のハックがないかを確認します。開発したOSやソフトウェアは普通公開されます。そして企業が脆弱性を修正していきます。しかし修正はすぐにアップデートされないので、古いものかどうかの確認をまずします。ブラックハットが最新版を駆使することも可能ですが、それには相当な労力と技術を要します。既存のハックを防御する方がよっぽど防御になるのです。
別のペンテストはWebに関係しています。どのWebも万人が見られるページが存在します。例えばYouTubeなら動画やチャンネルのページです。それと同時に、Webには普通見られない運営サイドもあります。そこにはデベロッパーが運営に必要な情報や大衆がアクセスできないファイルがあります。ユーザーネームやアドレスなどのデータベースです。どこかのスティーブさんとかがURLを打っただけでアクセスできるような状況にはしたくないですよね。
でもそれを探すのがブラックハットです。色々なURLを試してパブリックのアクセスが不可能なURLを見つけます。そのためにはクローラを使います。リンクやディレクトリを訪ねることでサイトのマップを自動生成します。データのある場所のURLを試すプログラムも使えます。「yourwebsite.com/info」とか「/files」とかです。
クローラがエアーページに到着した場合も重要です。そのエラーにハッカーが攻撃に使える情報がないか確認しなければいけません。もしエラーの表示に「プライベートページです」などと表示されたら、攻撃する価値のあるページという意味にもなり、ブラックハットの標的になり得ます。エラーページの表示には気をつけなければいけません。
別のWebテストはフォームに関係することです。送品用住所入力やOkCupidなどのプロフィールの質問ページなどです。ここをちゃんとしないと、ブラックハットが害のあるコードを送れてしまします。このタイプのコードは企業のどのデータベースからも情報を集められます。入力されたクレジットカードの番号などです。
Webが怪しいものがないかフォームを確認し、突破できるか防御を確認することは重要なのです。ペンテストにはもっと方法がありますが、これらがベーシックなものです。テストの結果が出た後は修正です。
それでも全てのハッキングに対し安全というわけではありません。ブラックハットはいつもクリエイティブな突破方法を考えていますし、政府や有名組織のターゲットが見つかれば、攻撃のチャンスを常に狙います。
セキュリティの脅威を常に確認してブラックハットの一歩前に行く、ヤフーができなかったことですが、これが強い守りとなるのです。