ハッキング

ハッキングについて語ろう

ハッカーとクラッカー
Webサーバに対する攻撃
パスワードクラック
特定の企業やユーザーを狙う攻撃
システムダウン型攻撃
なりすまし系

今日はみんな大好きハッキングの話にしようと思います。

ハッカーとクラッカー

まず前提ですが、「ハッカー」とは「システムを自分の考えで便利にする技術ある人」のような意味で、良い意味も悪い意味も無く、よく漫画に登場するような悪意があるのは「クラッカー」と呼びます。
例えば有償のパッケージソフトのセキュリティを破壊して不正コピーを売るような人はクラッカーにあたります。
現在はそれもハッカーのイメージがついているので、ここではまとめてハッカーと呼ぶようにします。
ハッカーというと「すごい技術を持った個人が企業のサーバに侵入する」というようなイメージが強かったかと思いますが、現在はミドルウェアの脆弱性を突くようなソフトも出回っているので、結果的にそれを使えるだけのフリーソフト使いのハッカーなどもいます。こういう人を「スクリプトキディ」と呼びます。どちらかというと蔑称ですが、一応ハッカーに分類されます。彼らは有名企業のサーバに侵入すると、闇サイト(IPアドレスの特定できないWebサイト)に投稿して自慢しあったりしています。 

この闇サイトを紹介すると多分スゲエ怒られるので、割愛します。

ルートキット

侵入者がシステムへ不正侵入した後に、痕跡を隠蔽したり再び侵入するためのバックドアを設置するための機能をまとめたソフトウェア群です。ルートキットにはキーロガー、パスワード窃盗ツール、クレジットカードやオンラインバンキングの情報を盗むモジュール、DDoS攻撃用のボット、セキュリティソフトウェアを無効にする機能など、多数の悪意あるツールが含まれているのだそうですよ。

ハッカーの戦いというのは、あらかじめ用意したツール群を起動したり、それにリアクションしたプログラムが動作することなので、テレビで見るみたいに四ツ目同士がキーボードでカチャカチャやってリアルタイムに戦う場面はあんまり無いのではと思います。

大雑把に分類すると、ハッカーにとってウィルスには以下の目的があります。

  1. 金銭目的

    そのまんまです。コンピュータをロックして身代金などを取ったり、架空請求をします。

  2. ハクティビズム

    ハックとアクティビズムの造語。なんか政治的社会的なアクティビティをサイバー攻撃を通して行う事です

  3. サイバーテロリズム

    インターネット上でテロリズムを行うことです。

ファイヤーウォール

さてハッキングの話をするには、前提にファイヤーウォールの話が必要になります。これは日本語に直訳すれば「防火壁」の意味になります。
自社サーバと外界のインターネットを分けて考えて、パケットフィルタリングやステートフルパケットインスペクション、アプリケーションゲートウェイなどのアクセス制御を利用して、悪意のあるパケットは遮断し、LANからインターネットへのアクセスは通信は許可します。そのほかインターネット側からLAN内のホストを隠したりします。
ファイヤーウォールの誕生は1990年代の初頭で、当初はインターネットとLANの間に設置されるゲートウェイに搭載する専用ソフトでした。常時接続、ブロードバンドが常識になると、特別なソフトウェアではなくなり、個人向けOSにもファイヤーウォールが標準搭載されるようになりました。

ファイヤーウォールは万能ではない

ファイヤーウォールの機能はIPアドレスやプロトコルを条件にパケットを許可したり、遮断する事なので、ブラウジングやメールの送受信など一般的に使う通信は防ぎません。Webアプリケーションに対する攻撃や、大量無駄データを送る攻撃も防ぐのは難しいことになります。さらに多くの場合でウィルスにも対処できません。

Secure通信

これら不正アクセスは、サイト運営者がSSLを導入する事で多少防御策を講じることができます。例えばショッピングサイトの画面で「このページはSSL通信で保護されています」というような表示を見たことがありますでしょうか。SSL(Secure Sockets Layer)はサーバ側に電子証明書を発行し、通信する相手の認証とデータの暗号化することができます。
SSLで保護されたサイトは比較的安全ですが、暗号化の処理に負荷がかかりレスポンスが遅くなることや、電子証明書の取得にも年間2万円くらい費用がかかるので、全てのサイトに導入されているわけではありません。ちなみに2017年ごろからiOSアプリはSSL必須になっています。 

コンピュータウィルス

ここから、いわいるコンピュータウィルスの話になります。コンピュータウィルスという言葉を定義するなら「悪意のある振る舞いし、自分のコピーをばらまくプログラム」となります。定義的には、次の3つの機能のうち1つ以上を持ったプログラムをウィルスと呼びます。

  1. 自己伝染機能
  2. 潜伏機能
  3. 発病機能

これらの機能のあるプログラムをmalicious software略してマルウェアと呼びます。
その昔は、他プログラムに隠れて活動するものを「ウィルス」単体で他のコンピュータに侵入するプログラムを「ワーム型」、普通のプログラムと見せかけて内部にウィルスが潜んでいるのを「トロイの木馬型」と分類していたのですが、習慣的にはすべて「ウィルス」と呼ぶかと思います。 ウィルスという言葉が一般的になったのは1980年代後半ごろで、アニメ「機動警察パトレイバーに登場したトロイの木馬型ウィルスを混入させたOS「HOS」で認知度が上がりましたよね。
1990年代後半ごろからネットの普及で、インターネットから侵入するウィルスが増えました。
ウィルスの種類で多くを占めているのが「スパイウェア」や「ボット」です。スパイウェアはPCに侵入して機密情報を持ち出したりします。これに対しボットはハッカーのプログラムによって動くリモートプログラムで、企業などのコンピュータに侵入し、他サイトへのDDoS攻撃やスパムメールの送信などの動作をします。

ウィルス以外の不正アクセス

盗聴」「なりすまし」「改竄」などがあります。
盗聴には正規のユーザーがタイプしたキーを記録する「キーロガー」などがあります。見たことあるかも知れませんが、UFJやアマゾンなど実在するメジャーサイトの偽物を作ってログインさせるのが「なりすまし」、FTP通信に侵入してWebサイトのコードを書き換えるのが「改竄」です。

WAF(Web Application Firewall)

前述のファイアウォールがネットワークレベルを防御するのに対し、WAFはWebアプリケーションへの攻撃を防ぐもので、Webサイト上のアプリケーションに特化したファイアウォールというようなものです。
主に動的にページを生成するWebサイトを不正な攻撃から守るためのものです。
これに検出パターンを設定することで、ウェブサイトとウェブサイト利用者との間の通信の内容を機械的に検査することができます。

パケットフィルタ型ファイアウォールの弱点

パケットフィルタ型は、通過しようとするパケットのヘッダーに含まれるIPアドレスとポート番号を見て許可するかを決めます。
しかし、XSSやSQLインジェクションなどの攻撃に使われるパケットは阻まれないHTTP通信を通り、HTTPポート(80番TCP)に送信されるので、普通のHTTP通信と区別がつきません。このため、パケットフィルタ型ファイアウォールで、これらの攻撃を遮断することは難しいことになります。

ワーム

正しくは、宿主に寄生するのがウィルス、単独で行動するのがワームです。

ワームにも数多くの種類があります。

SQL Slammer

マイクロソフトのSQL ServerやMSDEに含まれるバッファオーバーフローの脆弱性を突いて感染するワームの一種。

1,000分の1秒くらいの間にIPアドレスをランダムに発生させて、発生させたIPアドレスを持つホストに対して自身の分身を送り、世界的にネットワーク障害が発生させたワームです。

2003年に猛威をふるい、世界全体で250,000台のコンピューターにその影響が及んだとされます。

スパイウェア

利用者や管理者の目を盗んでこっそりインストールされ、個人情報を撮ったりキーログを収集して送信してしまう不正プログラム。
気付かれずに情報を収集するため、システムの改竄、破壊などの目立つ活動は行わず、インストールされていることをユーザから隠すようになっています。
メールやフリーソフト、フリー素材などに紛れて侵入します。

フットプリンティング

攻撃する前の下調べのような意味。
例えばURLを掘って存在しないページを開いて表示されるエラーでサーバの種類を調べたり、WHOIS検索などで情報収集します。
例えばNmapを使ったポートスキャンや、Google検索で「filetype:」や「site:」などのオプション検索で全体像を把握したり、コマンドプロンプトで「tracerouteコマンドでネットワーク経路を調べても、意外と脆弱性のある機器が使われていたりなどの手がかりがつかめるかも知れません。

ポートスキャン

フットプリンティングの次に、攻撃する進入路を探すのがポートスキャンです。 ポートとはサーバに対する出入り口のようなもので、これが開いているかを探します。 ポートはたくさんありますが、だいたい開いているのは以下の3つになります。
  1. 25/SMTP メールの送信
  2. 80/HTTP Webサービスなど
  3. 110/POP3 メールの受信
さてポートスキャンは、これら各ポートに対して順番にパケットを送り、返ってくるリアクションから状況を判断します。

TCPスキャン

SYNパケットを送り、サーバーからSYN/ACKパケットが返ってきたら、ACKパケットを送る。このハンドシェイクが成立したら、そのポートで通信が成立すると判断する。

SYNスキャン

コネクションを確立しないでポートの稼働状態を確認する。
SYNパケットのみを送信して、応答を確認し、SYN/ACKパケットが返ってきたときは、サービスが稼働している、RST/ACKパケットが返ってきた場合サービスが非稼働であると判断する。

FINスキャン

FINパケットを送信し、RSTパケットが返ってきたら、そのポートは稼働している、何も返ってこなかった場合はそのポートは稼働していないと判断する。

NULLスキャン

どのフラグも立っていないNULLパケット送信し、RSTパケットが返ってきたら稼働していないと判断する(サービスが稼働しているときは、何も返ってこない)。 こうしたスキャンを繰り返す事で、対象サーバーで稼働しているサービスやOSの種類を特定することができる。

Webサーバに対する攻撃

では、いよいよサーバに対する攻撃を見てみましょう。

バッファオーバーフロー攻撃

コンピューターがプログラムを実行する場合、3つのメモリ領域というのを使います。

  1. コード領域 実際にプログラムが動く領域
  2. スタック領域  ローカル変数やメソッドの情報がある領域
  3. ヒープ領域 計算や操作のためのデータがある領域

このスタック領域とヒープ領域を合わせてバッファと言うのですが、メモリ内に確保してあるバッファのサイズを超えたデータを入れることで、プログラムの誤作動を起こさせる攻撃です。

後述のDDoSと違うのは、ただの無駄データではなくコードが含まれ、脆弱性を悪用して誤作動したコンピューターの乗っ取りなどを行う事をバッファーオーバーフロー攻撃と呼びます。乗っ取ったサーバを踏み台にして、別のコンピューターを攻撃することもあります。

バッファオーバーフロー攻撃は、攻撃する領域により3つの種類があります。

  1. スタック領域型 データ領域とリターンアドレスが記載されている部分に対してオーバーフローを起こさせ、リターンアドレスを書き換える。
  2. ヒープ領域型未使用領域の管理に双方向リストが使われていることを悪用し、関数のリターンアドレス、例外ハンドラアドレス等を書き換える。
  3. その他UNIX系統環境下で、rootのSUIDコマンドを悪用し、管理者権限を奪う。

バッファオーバーフローは、処理できる量以上のデータを送ることで、システムに誤作動を起こさせる攻撃です。
現在WebアプリケーションはほとんどPHPやPerl、Javaなどの直接メモリを操作できない言語を使ってますが、昔からあるC言語や、C++、アセンブラなどの直接メモリを操作できる言語で記述されている場合にバッファオーバーフローが起こる可能性があります。
外部から送られたデータ内でリターンアドレスを改竄するなどで、バッファ領域(スタック領域とヒープ領域)で処理しきれない情報量を展開しバッファオーバーフローを起こさせます。
他の攻撃と組み合わせて乗っ取りなどに仕様します。
メモリ領域に本来想定している情報量以上の値が入力された場合、リターンアドレスなどの致命的な部分を上書きしてしまうという脆弱性を突いています。
それを悪用されると、他のサイバー攻撃の踏台にする侵入者が攻撃データに入れたコードで他のWEBサイトやサーバに対するサイバー攻撃を行う、なとの害を受けます。

SQLインジェクション

例えば検索窓などで、Webアプリケーションの入力データとしてデータベースへのコマンドを入力し、SQL文を意図的に実行させることで、データベースを破壊したりDBから情報を奪取するハッキングです。

入力欄に入れるユーザの入力値の中で、SQLに使うような記号(「’(シングルクォーテーション)」や「\(バックスラッシュ)」などを無効化するなどでSQLコマンドにならないようにデータ型を文字列扱いにする事で防げます。

DNSキャッシュポイズニング

ユーザーがWebサイトにおける一連の接触をセッションと言いますが、このユーザーセッションを乗っ取るのをセッションハイジャックと言います。
そのサイトが「今このユーザーとセッションしている」と判別するのはCookieか、URLに付与されるパラメータの中のIDで識別するのですが、このセッションIDを奪い取ると本人になりすましてサイトにログインしたりなどの操作をすることができます。
これにより、サーバ管理者に気づかれずにサイト内で管理されている資金や企業秘密、個人情報を盗み出す事が可能になってしまいます。
セッションIDは自分が会員登録してみてIDを確認し法則性を見つけたり、クロスサイトスクリプティングで露出させる、短いなら総当りでも取れる可能性があります。
対する予防は、一定時間でセッションが切れる、などの処理で本人確認を再度行ったりする事が必要です。

パスワードクラック

サーバを攻撃するわけではなく、パスワードをどうにかして入手する不正アクセスをパスワードクラックと呼びます。

方法はいくつかあります。

ブルートフォース攻撃

パスワードの文字数、文字種で設定される可能性のあるすべての組合せを試行して不正ログインする方法で「総当たり攻撃」などと呼ばれます。パスワードが短かかったり、使用可能な文字種が少ない場合に手法によって破られる可能性が高くなってしまいます。

現在、オンライン上での攻撃では数回の試行でロックアウトになってしまうことが多いですが、オフラインではいまだ使われるようです。

リバースブルートフォース攻撃

ブルートフォースとは逆に、パスワード1つにユーザーIDを総当りで試していくことで不正ログインを試行します。

昔のように数字4文字など少ないシステムに対しては、通常のブルートフォースよりも効率的に認証を突破できます。

パスワードを間違えるとロックアウトするシステムでも、ユーザーIDを変えていくとロックされにくいのを突いています。

辞書攻撃

総当たりに似ていますが、パスワードとして使用されやすい単語の辞書を作成してログインを試みる方法です。

人間は無規則な文字列よりも意味のある言葉をキーワードにするのを好むし覚えやすいという心理を突いています。

パスワードリスト攻撃

別のサイトから入手したIDパスワードを他サービスで試みる方法です。

うっかり、海外のいかがわしいサイトにアカウント登録すると、銀行やSNSなど他サイトでログインを試みられてしまう可能性があります。
複数のサイトで同様のID・パスワードの組合せを使用している利用者が多いことから発生しました。

レインボー攻撃

辞書攻撃とハッシュ化を組み合わせたパスワードクラックです。

想定され得るパスワードとそのハッシュ値との対のリストを用いて、入手したハッシュ値からパスワードを解析する攻撃です。

通常、パスワードは漏洩対策のためにハッシュ化された状態でサーバに記録されていますが、レインボー攻撃はこのハッシュ化されたパスワードから本来のパスワードを推測することでクラックします。

通信を利用したハッキング

IPスプーフィング

IPアドレスをSpoof(だます)攻撃方法。
例えばDoS攻撃の防御としてIP制限がかけられている場合、
あるいはIP制限のかかっている機密性のあるサイトへの攻撃したい場合、パケットの持つ送信元IPを偽装すればすり抜けられることになります。
例えば機密のあるサイトの管理画面にIP制限がかかっている場合、パスワードクラックだけで抜けられず、IPスプーフィングと組み合わせるかも知れません。

ブラウザの機能を利用したハッキング

MITB攻撃

江戸川乱歩の小説に「人間椅子」というのがありますが、ブラウザの中に誰かいるのがMan-in-the-Browser、略してMITB攻撃です。
主にメールや不正サイトからダウンロードさせたウィルスで一般ユーザーのブラウザを汚染し、例えば銀行口座のパスワードを記憶するキーロガーを仕掛けたり、銀行振込の振込先をハッカーの口座にしてしまうような攻撃になります。
もちろん企業秘密や、その企業のユーザーなどの機密情報も流出してしまいます。

クリックジャッキング

iframe(ページの中に覗かせている別のページ)や透明なボタンを使ってユーザーに意図しない操作をさせるハック。
例えば普通のWebコンテンツを閲覧しているつもりが、見えないボタンでSNSで意図しないアカウントをフォローをさせられていたり、
カメラやマイクをオンにしてページのあるサーバから盗撮されていたりなどがありえます。
本人が意図していなくても、例えばTwitterにログインしっぱなしだったら見えないまま別のページに遷移させられても自分のアカウントでフォローしてしまします。
また動画や音声、ローカルファイルを取得するような操作を、他の機能のボタンと勘違いして行ってしまうかも知れません。

クロスサイトスクリプティングフォージェリ

Webページのフォームにスクリプトを埋め込んで、それを閲覧したユーザーの情報を取得する方法。

自分のWebサーバだけではなく、そのページを閲覧したPC双方にサイトをまたぐように(Cross Site)にスクリプティングします。

例えば、ユーザーの動作で生成されるサイト上に、見えないフォームタグや、あるいはロード時に実行するスクリプトを埋め込むと、そのサイトを見たユーザーのブラウザ上でスクリプトが自動的に実行される事になります。すると、ブラウザで閲覧しただけで感染するウイルスを作ることができてしまいます。

ドライブ・バイ・ダウンロード

罠の仕掛けられたWebサイトを閲覧しただけで、見たユーザーの気づかない間に、ウィルスをダウンロードさせる攻撃手。
いかがわしいサイトでなくても、企業のWEBサイトが汚染されるとWebブラウザを閲覧したユーザーにも自動的にダウンロードされて増殖します。

梅木さんは2009年ごろ猛威を振るった「Gumblar」というウィルスに苦しめられました。汚染されたサイトを閲覧したPCのFTP通信を監視し、その人が管理している別のサイトにも同じように感染していきます。
当時はJR東日本、HONDAなど大手企業のサイトも感染していました。
感染したWebサイトは見た目には何も変わらず、コードで見ると数行のJavaScriptが書き込まれます。JSはロードしただけで発火するので、これがドライブ・バイ・ダウンロードを行ってまた感染し、閲覧ユーザーを別の悪意あるサイトに誘導したりします。
最近はアドネットワークなどを利用した新型もいるようです。

乗っ取り

パスワードクラックも乗っ取りですが、パスワードクラック以外の乗っ取りというのもあります。

管理者権限で動作しているプログラム侵入し、権限を奪取するのを乗っ取りと言います。
もしサーバ内に個人情報やクレジットカード情報があれば流失してしまいますので、重大な問題になります。

踏み台

他人のサーバーやパソコンを乗っ取り、サイバー攻撃や迷惑メールを仕掛ける行為を踏み台と呼びます。
例えばパスワードクラックやウィルスを感染させたりなどで影響下に置いたサーバーやパソコンを踏み台にして攻撃を行います。
もし自分がパソコンやサーバーが乗っ取られ、踏み台に利用されると、サイバー攻撃の犯人として疑われてしまい、実際にこういう事件がありました。(結局犯人だったみたいですが・・・)
ハッカーが特定の会社などに身元を偽装して攻撃するために踏み台を使う場合、複数台の踏み台を経由しながら攻撃すると多少は安全になります。

特定の企業やユーザーを狙う攻撃

例えば、産業スパイや企業をターゲットにするハッカーが企業の情報をハックする手段です。

APT攻撃

気づかれないように行われる執拗な攻撃のこと。
ターゲットを事前に調査して、ウィルスを送り込んだり、多少の内部情報を知ってから関係者を装って重要な情報を聞き出す方法です。
例えば社内の用語や、個人名などをメッセージに記載して警戒心を緩ませるといった手法が用いられるそうです。
最初に不正侵入などに成功しても、数ヶ月以上ただコミュニケーションだけを続け、情報収集や攻撃の準備などを行い、単体の攻撃を大きく上回る損害を与えたり、機密情報を盗み出したりする。事をねらいます。

どちらかと言うと詐欺行為で、一般的なハッカーのやることではないので、産業スパイや国家機関レベルの諜報活動の一環として行われていると言われます。

著名な例としては、2010年にイランの核燃料施設でドイツ製の産業機械がStuxnetと呼ばれるウイルスにより乗っ取られ、ウラン濃縮用遠心分離機が破壊され、国家間の電脳戦の幕開けとも言われているそうです。

水飲み場型攻撃

ターゲットや、その会社の人がよく閲覧するサイトに罠を仕掛ける攻撃。
例えるなら水場の川に動物がいるとワニが突然来るようなイメージでしょうか。
ターゲットの業種などから推測した利用サイトをリストアップし、そこに実際に侵入してアクセスログなどから標的のアクセスが多いかどうかを調べているのではないかと言われていますが、その会社のシステムを乗っ取って、遠隔操作して破壊したり、さらに外部の攻撃への踏み台にしたり、機密情報を盗み出したりします。標的以外の利用者がサイトにアクセスしても何も起きないことから、攻撃元が発覚しにくくなる傾向があるそうです。

ディレクトリトラバーサル攻撃

まずはディレクトリトラバーサルです。
本来、サイト管理者がブラウザに表示させたくないファイルやディレクトリのパスを掘り当てる不正アクセスです。
WebサーバにはPCのようにフォルダによる階層構造があり、プログラムやブラウザはパスと呼ばれる位置の指定で通信したり画像を取ってくる動作を行います。
ここでパス指定を利用して、本来であればアクセス権のないディレクトリを参照し、ファイルを不正に閲覧するのをこう呼びます。
ディレクトリトラバーサルによってIDやパスワードを含むファイルや、あるいは本来公開しない予定の情報か流出しますし、場合によってはシステムや他サービスのアカウントを乗っ取られてしまう可能性があります。
例えば芸能だったら公開前情報が見られてしまいます。

システムダウン型攻撃

サーバをダウンさせるなどの方法でサービスの運営を妨害するのをサービス妨害型攻撃と呼びます。

Dos攻撃

原始的な攻撃方法。大量のパケットを送り込んでダウンに追いやる攻撃です。Javascriptで数行で書けます。
2001年12月頃にタイム誌のパーソン・オブ・ザ・イヤーへのネット投票で田代まさしさんを1位にしよう、という謎の運動が起きて、自動で投票するために開発された「田代砲」が有名です。

昔、職業訓練校の講師の仕事をしていたのですが、受講生がJavascriptの授業中に意図せず田代砲を作ってしまった事があります。

現在では田代砲如きで落ちるサーバーはめったに存在しないので旧時代の言葉になりました。
同じですがpingコマンドを大量に送る場合はsmart攻撃です。

DDoS攻撃

上と同じですが。送信元をハッキングしたゾンビPCなどで複数に分散することで、1台のPCでやるより短時間で大量のパケットを送信することができます。

メールボム

大量のメールを送ることでシステムダウンさせるDos攻撃のような原始的なメール攻撃です。
現在はメールサーバにはじかれる事が多いのではと思いますので、相手サーバにメールを到達させるのも少し工夫が必要です。

なりすまし系

セッションハイジャック

ユーザーがWebサイトにおける一連の接触をセッションと言いますが、このユーザーセッションを乗っ取るのをセッションハイジャックと言います。
そのサイトが「今このユーザーとセッションしている」と判別するのはCookieか、URLに付与されるパラメータの中のIDで識別するのですが、このセッションIDを奪い取ると本人になりすましてサイトにログインしたりなどの操作をすることができます。
これにより、サーバ管理者に気づかれずにサイト内で管理されている資金や企業秘密、個人情報を盗み出す事が可能になってしまいます。
セッションIDは自分が会員登録してみてIDを確認し法則性を見つけたり、クロスサイトスクリプティングで露出させる、短いなら総当りでも取れる可能性があります。
対する予防は、一定時間でセッションが切れる、などの処理で本人確認を再度行ったりする事が必要です。

フィッシング

かなり一般的な用語になった気がしますが、釣りの意味です。
有用なサイトからのメールを偽って返信させたり、AmazonやGoogleの偽サイトを作ってログイン情報を記録したりします。
多くはフリーメールのアドレスをAmazonぽく作ったりします。
迷惑メールに分類されますが、迷惑メールの目的はいくつかあり
・そのメールアドレスが実際に使われているかを判断する
・返信してしまう騙されやすい人を選別する
・騙される人なら金銭を騙し取る
・偽サイトにログインさせて、本来のAmazonなどのアカウントにログインさせ、ログイン情報を記録してAmazonギフト券などを発行したり、本人になりすまして評価を書いたりする
などがあります。
あまりにも突拍子もない迷惑メールがあったりしますが、それもそれなりに意味があったりします。

ソーシャル・エンジニアリング

かなり古典的かつ物理的な攻撃で、心理的な隙を突くものが多い。
例えば、
  1. 電話でパスワードを聞き出す
  2. ショルダハッキング
  3. トラッシング
  4. フィッシングメール
などがこの類い。

ショルダハッキング

肩越しにパスワードや入力内容を盗み見ること。

トラッシング

ゴミ箱からパスワードのメモや個人情報を漁ること。
昔からある探偵手法。

フィッシングメール

他にも出てきましたが、ここにも属すると思います。以下のようなタイトルをつけて、ついメールを開かせるような心理にさせますので、フィッシング慣れのようなトレーニングをする会社もあるかと思います。
  1. 至急確認をお願致します
  2. 重要
  3. 至急開封
  4. 漏洩確認

ゼロデイ攻撃

OSやソフトウェアの脆弱性が発見された日のうちに該当のセキュリティホールを突く攻撃。
既知の脆弱性があるが、修正プログラムが適用されていない状態を「0日目」としたのがゼロデイ。
自分でセキュリティホールを見つけなくてよいが、常にフォーラムや公式発表をチェックし、出た瞬間にリアクションする暇と瞬発力の要る攻撃です。

ハードウェアに対するハッキング

サイドチャネル攻撃

ICカードやカードキー、Iotなど半導体製品に対し、物理的に観察、測定を行って内部の情報の取得を試みる攻撃。
暗号化や復号を行なうときの処理時間や消費電力の推移、外部に放出する電磁波、放熱や温度、動作音の変動などを測定し、入力値との相関から秘密鍵など秘匿された情報を割り出します。
いろんな方法があるのですが、
例えば、処理時間の違いを統計的に処理して内部の秘密鍵を推測する「タイミング攻撃」、
消費電力の違いから推測する「電力解析攻撃」、
暗号化演算を故意に誤作動させることで、正常に作動させた時との結果の差異を解析する「故障利用攻撃」など様々な計測が行われています。

テンペスト攻撃

前述のサイドチャネル攻撃の一種。
1960年代にアメリカが軍事目的で研究していたプロジェクトのコードネーム「TEMPEST(暴走・嵐)」が名前の由来。
ディスプレイやキーボードの接続ケーブル、LANケーブル、USBケーブルなどから発生している微弱な電磁波を検知することで、ディスプレイに表示された情報や、入力された文字列などが取得する技術。
ブラウン管の頃と違い、最近の機器は電磁波をそんなに出さないので、現在はあまり使われないのではと思います。

サイバー犯罪の捜査

ディジタルフォレンジクス

「デジタルな科学捜査」の訳。不正アクセスや情報漏えいで、原因究明やデジタル犯罪の法的証拠を明らかにするために電子的記録を解析すること。
CD-ROMやUSBのような記録媒体はもちろんのこと、プロバイダの記録なども証拠になる可能性があります。
これらの捜査をくぐり抜けるためには、

  • 自分のPCから直接侵入せず踏み台を使う
  • プロキシサーバを経由する
  • 外部記憶はなるべく残さない
  • 自作のツールは難読化
  • フリーWi-Fiの電波にしてみる
  • 使ったPCはなるべくゼロ消去

など、いろんな方法が考えられます。

ちょっと関係ないですが、その昔僕のFacebookアカウントに犯罪ぽい書き込みをした人がいたので、警察に通報したんですが、その時FacebookのID/PASSを通報メールに記載したところ、
「本人がいいと言っても、他人のIDでログインするのはいかがなものかとサイバー( サイバー犯罪捜査課?)に言われたので・・・」
と言われ、やむなくキャプチャを撮って送り直したことがあります。
その後、警察署で証拠を記録すると言われたんですが、PCの画面をカメラで撮影してました。
随分前の話なので今は違うかも知れませんが、まだまだ発展途上の分野だなと感じました。

不正プログラムの解析

検出された不正プログラムは解析にかけられますが、これには大きく分けて「動的解析」と「静的解析」があります。

動的解析

サンドボックス(保護、隔離された領域)でプログラムを実際に動作させ、動作をを監視して解析すること。
動作がわかれば無効化する方法もわかる可能性が高い。

静的解析

逆コンパイルしたプログラムのコードを読んで、どのような動作をするか解析すること 。
いかに難読化しても、専門家が解析不可能なコードを書くのは難しいので、これによりワクチンなどの対応が可能になります。

この記事は僕が何か思い出したり調べたりしたら随時更新します。
梅木千世でした。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です