2015年02月01日

ウィルス検知アラートの読み方

 ウィルス対策ソフトの検知アラートが発生したということは、基本的には「既知のマルウェアから防御してくれた」ということなのですが、 すでに感染していたマルウェアを、パターンファイル更新により検知できるようになったということも考えられます。  この場合、感染により情報流出などが発生していないか心配ですし、他のパソコンの感染も疑う必要があります。

 検知アラートを読むことで、感染有無や侵入経路などのヒントを得ることができますので、今回は、そのあたりについて記載します。

 ところで、最近、情報セキュリティ業界では「マルウェア」という表現が定着してきたと思いますが、 「ウィルス対策ソフト」とは言っても「マルウェア対策ソフト」とはあまり言わないですね。  同じ文章のなかで「マルウェア」と「ウィルス対策ソフト」を混在させるのは、なんとなく気持ち悪いです。どうでもいい話ですが。

リアルタイムスキャンと完全スキャン

 ウィルス対策ソフトのスキャン方式は、一般的に「リアルタイムスキャン」と「完全スキャン」(フルスキャン、オンデマンドスキャン、 スケジュールスキャンなどと呼ぶ場合もあります)の2種類があります。

 それぞれの特徴と、検知アラートを見る時のポイントを以下に記載します。

スキャンの種類 特徴
リアルタイムスキャン

 パソコンを常時監視し、ファイルやメモリへのアクセスが発生する都度、スキャンする方式です。  リアルタイムスキャンで検知した場合、マルウェアが感染する前に防御できた可能性が高いですが、検知したフォルダにより危険度を判断します。

完全スキャン

 利用者が手動で操作指示した時や、スケジュール設定された時刻になるとパソコンの全ての領域に対してスキャンする方式です。  完全スキャンで検知した場合、パターンファイル更新に伴い、過去に感染していたマルウェア(現在は不活性化しているマルウェア)を検知した可能性があります。  検知したフォルダにより、危険度を判断します。

検知アラートの読み方(1)一時フォルダからの検知

 リアルタイムスキャンで検知したファイルが、ブラウザなどの一時フォルダに存在する場合、 マルウェアがパソコンに侵入した直後に検知できたことになるため、感染前に防御できた可能性が高いです。

主な一時フォルダを紹介します。

IE8〜IE10の一時フォルダ

 ブラウザは、インターネット上のWEBサイトを閲覧する際は、パソコンの一時フォルダにダウンロードしたファイルを開きます。

  • C:\Users\【ユーザー名】\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\
  • [注]保護モード/UACが有効の場合は、[前略] \Temporary Internet Files\Low\Content.IE5フォルダ内に保管されます。

Java1.7(Java Applet)の一時フォルダ

 脆弱性攻撃でよく狙われるJava Appletは、次の一時フォルダにダウンロードされます。

  • C:\Users\【ユーザー名】\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\【半角数字1〜2桁】\(フォルダ)

ZIPファイルの一時フォルダ(Explorerで開いた場合)

 マルウェアが、メールに添付されたZIPファイルとして侵入してくることもよくあります。  ZIPファイルをExplorerで開いた場合は、次の一時フォルダに展開したフォルダが保管されます。

 なお、WEBサイト上のZIPファイルをブラウザで開くと、ブラウザの一時フォルダにもZIPファイルがダウンロードされます。

  • C:\Users\【ユーザー名】\AppData\Local\Temp\Temp1_【ファイル名.zip】(フォルダ)

検知アラートの読み方(2)一時フォルダ以外からの検知

 感染を防御できていれば、一時フォルダ以外のフォルダに、マルウェアが侵入することはあり得ません。  あるとすれば、利用者がダウンロードしたファイル(メール添付ファイル、フリーソフトなど)などに潜んでいたマルウェアが、 パターンファイル更新に伴い検知できた場合です。

 いずれにしても、このような場合は感染を疑う必要があります。  レジストリなどに、検知したファイルの自動起動設定が残っているか調査することで、感染有無を断定していきます。 (調査方法はまた次の機会に紹介します。)

以上
posted by やまと at 18:02| Comment(0) | 実験日誌

2015年01月25日

NTFSのタイムスタンプ更新条件の検証

 インシデント対応では、いつ、何が起きたのかを調べるために、ファイルやフォルダなどのタイムスタンプを確認し、時系列に整理していきます。

 例えば、パソコンからマルウェアのファイルが発見された場合は、「作成日時」を確認することで、感染日時を推測することができます。 (ただし、タイムスタンプは改竄されている可能性もあるため、1つのファイルのタイムスタンプだけでなく、さまざまな角度から調査を行う必要があります)

 このような時系列調査を行う際には、タイムスタンプが更新される条件を理解する必要があります。
今回は、NTFSにおいて、ファイルやフォルダのタイムスタンプが更新される条件を検証してみました。

NTFSのタイムスタンプの基本

 NTFSでは、4種類のタイムスタンプを記録しています。

タイムスタンプの種類 説明
作成日時
(Birth time)
ファイル/フォルダが作成された日時
最終更新日時
(Modified time)
ファイル/フォルダのコンテンツが最後に更新された日時
最終アクセス日時
(Access time)
ファイルに最後にアクセスした日時
 なお、Windows Vista/2008以降、デフォルト設定でアクセス日時が更新されない仕様に変更されました。
FILEレコード変更日時
(Change time)
ファイルのプロパティ変更など、NTFSのメタデータが変更された日時

 また、ファイル/フォルダは、NTFSのメタデータとして2種類の属性を保持しており、それぞれに上記の4種類のタイムスタンプを記録しています。

属性名 説明
Standard Information属性
($SI属性)
 Explorerなどで表示される属性です。
 Windows APIの関数で、タイムスタンプを簡単に変更できます。マルウェア感染のインシデント対応では、タイムスタンプが改竄されていることがよくあります。
Filename属性
($FN属性)
 一般的なWindowsの操作方法では表示できないタイムスタンプです。
 Windows APIには、こちらのタイムスタンプを変更する関数はありません。そのため、$SI属性と比較すると改竄されにくいという特徴があります。

検証

 どのような操作により、タイムスタンプが更新されるか検証してみました。

検証環境

  • Windows7 Home Premium SP1
  • NTFSのイメージファイルを、OSFmountにて内蔵HDDとしてマウントして検証
  • タイムスタンプは、TSKのistatコマンドにて確認

検証結果

  • ファイルのタイムスタンプ

  • 図.ファイルのタイムスタンプ更新条件一覧
  • フォルダのタイムスタンプ

  • 図.フォルダのタイムスタンプ更新条件一覧

    上記検証結果のPDF版資料は、活動成果ページに登録してあります。

考察

 $FN属性は一般的に改竄されにくいと言われていますが、ファイル名の変更、ファイル移動の操作を行うと、 $SI属性のタイムスタンプが$FN属性にコピーされる仕様となっているため、注意が必要です。

 ファイルのタイムスタンプが改竄されていたとしても、親フォルダの「最終更新日時」を確認することで、 ファイルの作成日を推測できる可能性があります。

 なお、タイムスタンプが改竄されると、Change timeに痕跡が残ります。  「プロパティ変更」でも同様の痕跡となりますが、マルウェアがそのような操作を行う可能性は低いのかなと思っています。

以上
posted by やまと at 15:49| Comment(0) | 実験日誌