こんにちわ。
様々な形でマルウェアと業務で日々おつきあいしている者です。
> その改ざんしたページに直接ウイルスを置かず、別のサイトに誘導する理由は何ですか?
攻撃を多段化することによって対策しにくくすることが主な目的です。
このような攻撃を防ごうとする場合、ウイルスが置かれているサイトへのアクセスをチェックし、それを止めるのが基本になりますが、間に改ざんしたサイトを置くことで、本当にウイルスが置かれているサイトへのアクセスを隠すことができます。また、改ざんしたサイトは後からいくらでも量産できますし、ウイルスが置かれているところが1箇所であれば、新しいウイルスに入れ替えるのも簡単です。
入念に調べれば本当にウイルスが置かれているサイトを判別し、そこへのアクセスを止めることも可能ですが、何段階かに渡る連続的な誘導の中の”どこで”本当の攻撃が行われたかを判断するのは、意外と難しいのです。
> ジャンプとは何ですか?またシェルコードとは具体的に何で、それが発動する理由は何でしょうか?
PC上でプログラムは、よく使われる機能を部品として持っています。例えば、何かを画面に表示したい場合、一から画面に表示するプログラムを書くのではなく、あらかじめ用意された部品に必要最低限の情報(表示する文字とか)を渡すだけで、画面に表示できるようになっています。
この例の場合、画面を表示するパーツに必要な情報を渡してその機能を呼び出した後は、呼び出し元に戻って次の処理に進むことになりますが、必要な情報の代わりに不正な情報を呼び出し時に渡すことで、戻ってくる場所を本来とは異なる別の場所に書き換えることができてしまう場合があります(= 本来の処理手順にはないジャンプ)。
この時、攻撃者があらかじめ送り込んだ"シェルコード"という非常に短いプログラムを戻り先として指定すると、そのシェルコードが次に実行されることになります。シェルコードが実行されると、管理者の権限で任意の操作ができる状態になります。
ちなみに、シェルコード自身も"任意のコマンドを実行できる機能を持つパーツ"を呼び出すプログラムなので、サイズは数行~十数行程度と、非常にコンパクトになっています(こっそり送り込むにはサイズ上の制限があるため)。
かなり端折っていますが、イメージ的にはこんな感じです。
お礼
ありがとうございます