Skip to Content
初めてのマルウェア解析 ―Windowsマルウェアを解析するための概念、ツール、テクニックを探る
book

初めてのマルウェア解析 ―Windowsマルウェアを解析するための概念、ツール、テクニックを探る

by Monnappa K A, 石川 朝久, 北原 憲, 中津留 勇
December 2020
Beginner to intermediate
448 pages
7h 48m
Japanese
O'Reilly Japan, Inc.
Content preview from 初めてのマルウェア解析 ―Windowsマルウェアを解析するための概念、ツール、テクニックを探る

8章コードインジェクションとフッキング

 前章では、マルウェアが感染システムにとどまるために悪用する、様々な持続性メカニズム(Persistence)について検討してきました。この章では、マルウェアが(対象プロセスやリモートプロセスと呼ばれる)別プロセスへコードを挿入し、悪意のあるアクションを実行する方法について学習します。攻撃コードを対象プロセスのメモリへ挿入し、対象プロセスのコンテキスト内で攻撃コードを実行する手法は、コードインジェクション(または、プロセスインジェクション)と呼ばれています。

 攻撃者は通常、(explorer.exesvchost.exeなど)正当なプロセスを対象プロセスとして選択します。攻撃コードが対象プロセスに挿入されると、キーストロークの記録、パスワードの奪取、データの流出などの悪意のあるアクションを対象プロセスのコンテキスト内で実行できます。対象プロセスのメモリにコードを挿入した後、コード挿入を担当するマルウェアコンポーネントは、システム上で持続し続けるため、システムが再起動するたびに対象プロセスにコードを挿入するか、攻撃コードをメモリのみに保持するため、ファイルシステムから自身を削除できます。

 マルウェアのコードインジェクション技術を詳しく理解する前に、仮想メモリの概念を理解することが不可欠です。

8.1 仮想メモリ

 一連の命令コードを含むプログラムを実行すると、プロセスが作成されます。Windows OSは、(プロセスメモリと呼ばれる)独自のプライベートメモリアドレス空間で、作成された新しいプロセスを提供します。プロセスメモリは仮想メモリ(Virtual Memory)の一部です。仮想メモリとは、実際のメモリではなく、OSのメモリマネージャが提供する仮想的なメモリです。この仕組みのため、各プロセスは独自のプライベートメモリ空間を持っているように振る舞います。実行時、Windowsメモリマネージャはハードウェアの助けを借りて、仮想メモリアドレスを実際のデータが存在する(RAM上の)物理アドレスに変換します。メモリを管理するために、メモリの一部をディスクにページングします。プロセスのスレッドがディスクにページングされた仮想アドレスにアクセスすると、メモリマネージャは当該アドレスのデータをディスクからメモリへ戻します。次の図は、AとBの2つのプロセスを示しています。これらのプロセスメモリは、物理メモリにマップされ、一部はディスクにページングされます。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

Andreas C. Muller, Sarah Guido, 中田 秀基
初めてのGraphQL ―Webサービスを作って学ぶ新世代API

初めてのGraphQL ―Webサービスを作って学ぶ新世代API

Eve Porcello, Alex Banks, 尾崎 沙耶, あんどうやすし

Publisher Resources

ISBN: 9784873119298Other