@port139 Blog

基本的にはデジタル・フォレンジックの技術について取り扱っていますが、記載内容には高確率で誤りが含まれる可能性があります。

Autopsy 4.4.0 におけるキーワード検索(二つのタブ)

Autopsy には「ストリング」と「インデクス化されたテキスト」と二つのタブが存在する。
PDF や DOCX ファイルなどの場合、ストリングとインデックス化されたテキストではそれぞれ異なるテキストデータが表示される。

下記画像では、PDFファイルを処理した後、それぞれのタブで文字列を確認している。


例)ストリングの出力結果

f:id:hideakii:20170814140915p:plain

例)インデックス化されたテキスト

f:id:hideakii:20170814140929p:plain

キーワード検索は、「インデックス化されたテキスト」を対象に行われるので、例えば「ストリング」のタブでのみ表示されている文字列は、キーワード検索から探す事はできない。(上記図であれば、ストリングで表示されている文字列 PDF-1.7 を検索してもヒットしない)
例えば、不明ファイルとして処理された場合は、「ストリング」と「インデックス化されたテキスト」は同じ内容になっているので、ある意味「ストリング」の文字列を対象にキーワード検索を行う事ができる。

「インデックス化されたテキスト」ではなく、「ストリング」で抽出された文字列を対象にキーワード検索を実施した方がよいケースとしては、どの様な場合が想定されますか?

 

Autopsy 4.4.0 におけるキーワード検索(Standard Tokenizer)

メールアドレスやドメイン名の区切り方

AutopsyのSolr用スキーマファイル schema.xml には、solr.StandardTokenizerFactory が定義されており、Apache Solr の Standard Tokenizer の動作については、下記ページを参照することで内容を確認できる。

https://lucene.apache.org/solr/guide/6_6/tokenizers.html#Tokenizers-StandardTokenizer

  • Periods (dots) that are not followed by whitespace are kept as part of the token, including Internet domain names.
  • The "@" character is among the set of token-splitting punctuation, so email addresses are not preserved as single tokens.

ドットと@については処理に注意する必要があり、特に電子メールアドレスや URL についてはこのルールの影響を受けるので検索文字列を考える上では考慮しておく必要がある。

英語の文字列については、下記のような区切りで処理されると上記URLでは例示されている。

In: "Please, email john.doe@foo.com by 03-09, re: m37-xq."
Out: "Please", "email", "john.doe", "foo.com", "by", "03", "09", "re", "m37", "xq"

上記の例文を Autopsy のキーワード検索で検索する場合、例えば完全一致で john を検索してもヒットしない。ピリオドを含む単位で区切られているため、サブストリング一致で検索する必要がある。

URL文字列を検索する場合にも、例えば www.example.co.jp であれば、example を検索するにはサブストリング一致で検索するか、www.example.co.jp  を完全一致で検索する必要がある。

例えば下記の一文では、「No.  221B」という部分は、No.  221B または 221B を完全一致で検索する事でヒットする。

WE MET next day as he had arranged, and inspected the rooms at No.  221B, Baker Street, of which he had spoken at our meeting.

なお、No という単語は stopwords_en.txt に定義されているため、ストップワードとして処理される。

例えば 03-09、03 09、03+09 のように複数のパターンが想定される場合には、正規表現を利用する事で検索する事ができる。

なお、Autopsy 4.4.0 のキーワード検索機能では、AND や OR を利用した Boolean search や、Proximity search を利用する事が出来ない。

ハイフンの扱い

上記例文「m37-xq」では、ハイフンが単語境界として?処理され"m37", "xq"となっている。ハイフンが含まれる場合、その位置で単語が分けられる。

UAX #29 4.1.1 Word Boundary Rules ではハイフンについて下記の記載がある。

UAX #29: Unicode Text Segmentation

The correct interpretation of hyphens in the context of word boundaries is challenging. It is quite common for separate words to be connected with a hyphen: “out-of-the-box,” “under-the-table,” “Italian-American,” and so on. A significant number are hyphenated names, such as “Smith-Hawkins.” When doing a Whole Word Search or query, users expect to find the word within those hyphens. While there are some cases where they are separate words (usually to resolve some ambiguity such as “re-sort” as opposed to “resort”), it is better overall to keep the hyphen out of the default definition. Hyphens include U+002D HYPHEN-MINUS, U+2010 HYPHEN, possibly also U+058A ARMENIAN HYPHEN, and U+30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN.

大文字・小文字の区別

スキーマファイルには solr.LowerCaseFilterFactory も定義されています。

https://lucene.apache.org/solr/guide/6_6/tokenizers.html#tokenizers

In: "I just *LOVE* my iPhone!"

Out: "i", "just", "love", "my", "iphone"

 大文字は小文字へ変換されます。

 完全一致で WWW.EXAMPLE.CO.JP を検索した場合も、www.example.co.jp にヒットします。

 

Autopsy 4.4.0 における文書ファイル・メタデータの扱い(パスワード付き DOCX)

パスワードが設定されているDOCXファイルのメタ情報

文書ファイル(DOCX)にパスワードが設定されている場合に、Autopsy の「キーワード検索」でファイルのテキストがどの様に処理されているか。

パスワードを設定したDOCXファイルを処理した後、「インデックス化されたテキスト」のタブでデータを確認すると、先頭部分は下記状況になっており、単純にファイルから文字列が抽出されたように見える。

Root Entry
EncryptedPackage
؀䐀愀琀愀匀瀀愀挀攀猀
Version
Microsoft.Container.DataSpaces
EncryptedPackage2
StrongEncryptionDataSpace
StrongEncryptionTransform
{FF9A3F03-56EF-4613-BDD5-5A41C1D07246}N
Microsoft.Container.EncryptionTransform
DataSpaceMap
DataSpaceInfo

抽出されたテキストを確認しても、Tika によりメタデータが抽出された項目は見当たらない。「インデックス化されたテキスト」の最後は下記のようになっており、メタデータの記載がない。

encryptedHmacKey="Q+z2b4wO9V6OO7y7rWg0+ujFtImhW4FQsueDnCvcU3XfZGqrBgGuX5PqszLuq/8z7Ur8zJRDRAseyVAjI2v/kw==" encryptedHmacValue="RSj2nNvO828MpgmISsfVt3XoVbEJk8YgAckQUpSShvLgUvMYUmDmtFj1XiA+jgnDpSja1ioIqqHsvSZOtsqDLw=="/><keyEncryptors><keyEncryptor uri="http://schemas.microsoft.com/office/2006/keyEncryptor/password"><p:encryptedKey spinCount="100000" saltSize="16" blockSize="16" keyBits="256" hashSize="64" cipherAlgorithm="AES" cipherChaining="ChainingModeCBC" hashAlgorithm="SHA512" saltValue="an/GDIINQOhnC7w4C+ciiw==" encryptedVerifierHashInput="Uyn8vKG8Q18Yloe+dxYumw==" encryptedVerifierHashValue="x4w5EHY/0imsXffowFDhYSNEEB5s8Jo7nrmXdOVTb661gF2tLwKB9p0CWzoatK8A3ZowkHmGvtMfIZ3aZeBU1A==" encryptedKeyValue="2T3ypeyqHBzGx9ErSVJoBMJOVDc9s2BEanzcRCzZ5Jk="/></keyEncryptor></keyEncryptors></encryption>aS
鰮牨㎤亅措
瑐躖焊虡楘濄梶
2\+g

Autopsyでタブを「ストリング」に切り替えて抽出されたテキストを確認すると、先頭部分は下記状態になっている。

Root Entry
EncryptedPackage
DataSpaces
Version
Microsoft.Container.DataSpaces
EncryptedPackage2
StrongEncryptionDataSpace
StrongEncryptionTransform
{FF9A3F03-56EF-4613-BDD5-5A41C1D07246}N
Microsoft.Container.EncryptionTransform
DataSpaceMap
DataSpaceInfo

先ほど、「インデックス化されたテキスト」で確認した先頭部分と同じく抽出したデータが確認できる。スクリプトのプルダウンメニューを切り替えて確認することで、デフォルトの Latin - Basic 以外の内容も確認できる。

 このような出力結果は、パスワード設定されている DOC ファイルにおいても同じ結果となる。

DOCX または DOC ファイルがパスワード設定されている場合、メタ情報は Tika により取得されず、「不明なファイル」としてオプションの“ストリング抽出”に従った処理が実施されている。

DOCX または DOC ファイルにパスワードが設定されている場合、本文テキストは抽出されない。また、Autopsy には「パスワード保護されたファイル」という項目でフィルタする機能がない。

この為、キーワード検索でヒットしない文書ファイル自体を確認するという意味では、“ストリング抽出”の結果として得られる文字列 『 Root Entry 』 を検索する方法も考えられる。

しかし、実際のケースデータに対して 『 Root Entry 』 を検索した場合、DLL や MSI ファイル内でも文字列が一致してくるため、結果を確認する場合には拡張子 DOCX でかつ文字列が存在する場合などで絞り込む必要がある。または、他の特徴的な文字列を検索KWとして指定する。

パスワード設定されているZIPファイル等

 パスワード設定されている ZIP や RAR ファイルについても、DOCX と同じく「不明なファイル」として“ストリング抽出”の処理が行われる。圧縮ファイル内のファイル名文字列などは部分的に抽出されるが、日本語部分は欠落する場合がある。

 パスワードが設定されている、ZIPファイルや RARファイルの検出については、「埋め込みファイルの抽出ツール」のエラーから確認ができる。インジェストモジュールを実行すると、パスワードが設定されている ZIP ファイルであれば下記のエラーが出力される。

アーカイブ: ファイル名.zipの一部のファイルは暗号化されています。 埋め込みファイルの抽出ツール エクストラクターがこのアーカイブの全てのファイルを抽出できませんでした。

また、該当ファイルの「結果」タブを参照することで、「暗号化検出済」や名前として「完全な暗号化」という記載を確認できる。(これらの文字列はインデクスされていない為、キーワード検索からの検索はできない)

f:id:hideakii:20170812071452p:plain

 

 調査対象のデータ内に存在する、パスワード保護や暗号化されているデータを効率よく発見するには、どのような手順を組み込めばよいですか?

 

 

Autopsy 4.4.0 における文書ファイル・メタデータの扱い(DOCX)

Autopsy はキーワード検索用のテキストファイルの抽出に、Apache Tika を利用しているが、ファイル形式により抽出されるメタ情報が異なる。

Office 形式ファイルのメタデータに関する情報は下記 URL に取得項目について記載がある。

 Interface MSOffice

https://tika.apache.org/1.16/api/org/apache/tika/metadata/MSOffice.html

サンプルの DOCX 形式ファイル(OOXML)を 、Autopsy の「キーワード検索」モジュールで処理後、「インデックス化されたテキスト」でメタデータを確認。

上記 URL には記載がない Last-Modified: の項目が取得されているが、これは...

------------------------------METADATA------------------------------

Application-Name: Microsoft Office Word
Application-Version: 16.0000
Author: ユーザー名
Character Count: 6669
Character-Count-With-Spaces: 7824
Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document
Creation-Date: 2017-08-10T11:01:00Z
Last-Author: ユーザー名
Last-Modified: 2017-08-10T11:02:00Z
Last-Save-Date: 2017-08-10T11:02:00Z
Line-Count: 55
Page-Count: 9
Paragraph-Count: 15
Revision-Number: 1
Template: Normal.dotm
Total-Time: 1
Word-Count: 1170
X-Parsed-By: org.apache.tika.parser.DefaultParser
cp:revision: 1
creator: ユーザー名
date: 2017-08-10T11:02:00Z
dc:creator: ユーザー名
dc:publisher:
dcterms:created: 2017-08-10T11:01:00Z
dcterms:modified: 2017-08-10T11:02:00Z
extended-properties:AppVersion: 16.0000
extended-properties:Application: Microsoft Office Word
extended-properties:Company:
extended-properties:Template: Normal.dotm
extended-properties:TotalTime: 1
meta:author: ユーザー名
meta:character-count: 6669
meta:character-count-with-spaces: 7824
meta:creation-date: 2017-08-10T11:01:00Z
meta:last-author: ユーザー名
meta:line-count: 55
meta:page-count: 9
meta:paragraph-count: 15
meta:save-date: 2017-08-10T11:02:00Z
meta:word-count: 1170
modified: 2017-08-10T11:02:00Z
publisher:
xmpTPg:NPages: 9

 Tika により抽出されたメタデータは、インデクスされているのでキーワード検索から検索する事ができる。

上記のサンプルであれば「ユーザー名」を検索すればメタ情報に含まれる文字列がヒットする。(漢字・平仮名は1文字単位でよいが、ユーザーのようにカタカナの場合にはどこで分割されたかを考慮する必要がある)

日時情報を検索文字列として利用する場合は、例えば 2017-08-10T11:02:00Z であれば完全一致でヒットする。

日付だけであれば、正規表現で 2017-08-10* を検索すればヒットするが、2017-08-10 では完全一致、サブストリング一致ではヒットしない。

メタの項目として、例えば Author: や Last-Author: を指定するのであれば、Author や Last-Author で完全一致する。(または Author でサブストリング一致で検索する)

カタカナの単語境界

http://unicode.org/reports/tr29/#Word_Boundary_Rules

4.1.1 Word Boundary Rules には下記ルールが記載されている。

Do not break between Katakana.
WB13 Katakana × Katakana

カタカナのステム処理

Autopsy のスキーマは JapaneseKatakanaStemFilter を設定していない為、「サーバ」と「サーバー」では検索パターンを分けて考慮する必要がある。

長音を付けて「サーバー」で検索した場合は、「サーバ」には一致しない。

「サーバ」でサブストリング一致を利用した場合はどちらにもヒットする。

 

フォレンジッカー向けの資格?

そもそも資格必要なの?という点は素朴な疑問としてあるのですが、資格取るなら何が良いのでしょうかね?

デジタル・フォレンジック関連の資格・試験には様々なものがあるようです。コンピュータ・フォレンジックという観点では、下記記事では 6種類ほど比較がされていますが、トータルの数値を見ると GCFA が一番ポイントが高いようですね。

Best Computer Forensics Certifications For 2017
http://www.tomsitpro.com/articles/computer-forensics-certifications,2-650.html

まずは GCFA を取得しておくと良いのかもしれませんが、私はベンダー(ガイダンスソフトウェア社)の EnCE しか持っていません(笑)(そういえば昔、eDiscovery用のプラットホームを扱うのにベンダの試験を受けて認定された気がしますが、世間では役立たないんですっかり失念していました)
これは解析用のソフトウェアとして EnCase を利用する前提であれば EnCE はよいかもしれませんが、ベンダーニュートラルという点では GIAC GCFA などの方が良いのではないでしょうか。

とはいえ、自分は GCFA 持ってないので、持っている方に聞いてみていただくのが一番よいと思います。多分、(超個人的には)名刺に GCFA と GREM 両方のロゴが入っていると結構カッコいいのではないでしょうか?、維持費用大変かもですが(笑)

EnCE Certification Program
https://www.guidancesoftware.com/training/certifications?cmpid=nav_r#EnCE

EnCEの場合、現在は 3年に一度の更新になっていますが、その期間内に一定のポイントを貯めておく必要があります。この辺りの資格維持の期間や仕組みは GCFA なども同じような仕組みになっていたかと思います。
Directory of Certified Professionals で公開している EnCE 取得者の名前を確認できますが、本日時点では 2,564名が公開で登録されているようです。ただ、Japan の登録に絞ってを見ると転職後にメールアドレス変更されてない方とかもいらっしゃるようですね(笑)

ちなみに、自分がなぜ EnCEを更新しているのか?という点では、官公庁の入札案件で講師の条件としてEnCEが GCFA などと一緒に書いてある事があるからという点と、それ以外に資格は持ってないからですね。

最近はEnCase使ってないので、GCFAとかのほうが良いのかもしれませんが、新たに英語で試験を受けるのが嫌なのでポイント貯めてEnCEを更新しています。

 

上記は主に Computer Forensics 関連だと思いますので、GIAC であれば他にもメモリ・フォレンジック、モバイル・フォレンジック、マルウェア解析などについては更に別の試験や資格なども用意されているようです。(商用製品については、その製品に関する試験や資格が用意されている事も多いと思います)

いずれにしても、試験で要求される技術的な内容は、スキルセットを考える上では参考になると思いますし、自分が弱いところが何処なのか?も把握できるのではないでしょうか。

どんなところからスタートすれば良いのか?という点もあるかもしれませんが、下記Blogは結構参考になるのではないかと個人的には思います。

Forensics – Where to start and What to know
https://fl0x2208.wordpress.com/2016/10/03/forensics-where-to-start-and-what-to-know/

フォレンジッカーの先は?という観点では、最近は Threat Hunting などが分野?として出てきているのではないでしょうか?、DFの延長線上にある分野?と言えるかは分かりませんが、最近 DFIR MLでRob Leeさんが公開されていた下記資料は興味深く眺めておりました。

Threat-Hunting-Courses.pdf
https://www.dropbox.com/s/8p9kefn2i9yx5fz/Threat-Hunting-Courses.pdf

その他、下記資料では2014年から2024年までに 27% の成長と出ていますが、実際にどうなるかは今後のサイバー犯罪次第なのかもしれません。というかそんなに成長はしないってことでしょうかね(笑)

When Computer Forensics Grows Up: Digital Forensics Explained – Infographic by Maryville University
https://eforensicsmag.com/computer_forens/

 

フォレンジッカーって何するの?

スキルマップなどを眺めていると、フォレンジッカーって何するの?という疑問が出てきます。

NICCS:Workforce Development ❯ Cybersecurity Workforce Framework ❯ Digital ForensicsのTasksに記載されている項目を参照すると、色々と興味深い項目が多くあります。

https://niccs.us-cert.gov/workforce-development/cyber-security-workforce-framework/digital-forensics

例えば上記URLでは、タスクの一つとして下記項目が出てきます。

Collect and analyze intrusion artifacts (e.g., source code, malware, and trojans) and use discovered data to enable mitigation of potential Computer Network Defense incidents within the enterprise

ネットワーク侵入に関する痕跡(アーティファクト)を収集・解析し、発見した結果をネットワーク防御にも役立てるという趣旨かもしれませんが、実務として考慮した場合にはかなり幅広い内容に分解される気がします。

痕跡の収集についても、例としてマルウェアやトロイの木馬が挙げられていますが、それらに関する収集という点では、インシデント発生前に組織外のオープンな情報に基づく場合もあるでしょうし、インシデント発生後に組織内ネットワークにおいてアーティファクトを発見するという観点もあるように思えます。
ネットワーク侵入に対しては、フォレンジッカーはデジタルデータの取得・解析(マルウェア解析含む)・対策を行う事が求められるという事になりそうですが、これは主に民間でのお話でしょうか?、Tasksの項目には法執行機関に関連すると考えられる項目もありますので、それらは求められる内容も異なるので分けて考えた方がよいかもしれませんね。

タスクの項目として典型的なハードディスクやファイルシステムに関しては下記が項目として出ていますが、この辺りは伝統的な手法ですね。流石にこの辺りは基本的な作業内容なので、例えばマルウェアを解析するにも検体を発見できない、という事になりかねませんね。(見落とすとか自分のスキル不足を痛感する点は別途ありますが...)

NICCS:Workforce Development ❯ Cybersecurity Workforce Framework ❯ Digital Forensics より引用

  • Perform file signature analysis
  • Perform file system forensic analysis
  • Perform hash comparison against established database
  • Perform timeline analysis
  • Perform static analysis to mount an \image\" of a drive (without necessarily having the original drive)"
  • Perform live forensic analysis (e.g., using Helix in conjunction with LiveView)
  • Use data carving techniques (e.g., FTK-Foremost) to extract data for further analysis

項目が混じっているのですが、マルウェア解析系の項目は下記あたりでしょうか。

NICCS:Workforce Development ❯ Cybersecurity Workforce Framework ❯ Digital Forensics より引用

  • Perform static malware analysis
  • Perform tier 1, 2, and 3 malware analysis
  • Perform virus scanning on digital media
  • Use network monitoring tools to capture and analyze network traffic associated with malicious activity

更にその他にも項目としては、サイバー犯罪や訴訟に関連した項目が出てきますが、この辺りは日本のスキルセット項目や実施項目としてはあまり記載されているのを見かけない内容ですね。

タスク内容を見ていると、インシデント発生時には何かと作業しないといけない人達というイメージになりそうですが、日本のスキルマップでは、デジタルデータのコピーを取得する人達というイメージなのでしょうか。

もちろん、例示されているタスクを一人ですべて可能とするのは大変な気がしますので、分業する箇所もあると思われますが、もしかして普通は一人で全部出来ちゃうもんなんでしょうかね。

 <2016/11/20追記>

海外(米国 ベンチュラ郡)での求人(Salary $60,614.86 - $85,017.89 Annually)が偶々 11/10 に DFIR ML で流れていましたが、ここで求められている内容は知識やスキルを確認する点でも参考になりますね。

Sheriff's Computer Forensics Examiner
https://www.governmentjobs.com/careers/ventura/jobs/1564057/sheriffs-computer-forensics-examiner

NECESSARY SPECIAL REQUIREMENTS としては下記が挙げられています。コンピュータ系と、モバイル系の取得・解析ツールについての経験が必要なようですね。

上記 Sheriff's Computer Forensics Examiner のページより引用:

  • Forensic examinations of computers and related peripherals
  • Various software used for investigative computer forensics, (i.e. EnCase, FTK)
  • Various hardware used for the extraction of information from cellular devices (i.e., Celle-Brite, Lantern, XRY)
  • Report writing
  • Product evaluation and procurement

更に知識としては上記のベースとなる項目が書かれている印象です。マルウェアなどに関する知識も求められていますね。わざわざレジストリは項目として記載しているのが興味深いところです。

上記 Sheriff's Computer Forensics Examiner のページより引用:
Knowledge, Skills, and Abilities:

  • Knowledge of information technology including computers and related peripherals. 
  • Knowledge of the principles and procedures used for investigative computer forensics.
  • Knowledge of and the ability to use a variety of software and hardware products used in computer forensics examinations and to extract information from cellular devices.
  • Knowledge of IT security, computer viruses, Trojan horses and malware.
  • Knowledge of and the ability to work with the systems registry.
  • Ability to tolerate exposure to images of a graphic and/or pornographic nature.
  • Must possess good interpersonal skills and have the ability to develop and maintain effective working relations with others.
  • Ability to effectively communicate in written form, specifically report writing.
  • Ability to communicate effectively in an oral manner.

日本の求人においては、この様な形で詳しく要件やKSAが書かれているのは少ないのではないでしょうか。

国内の民間企業における求人情報を検索してみると、なぜかコンサルタント経験などを求めている事が多い気がするのですが、気のせいでしょうか。会計監査法人などは更に簿記なども書かれていますので、業界により求められる知識などが異なりますね。

ちなみに、eDiscovery はまったく上記と異なるスキルセットが必要になってくる部分があり、そちらを希望される方は業界が異なるので注意が必要ですね。

 

フォレンジッカーに必要な知識?

NICCSのDigital ForensicsにおけるKSA(Knowledge, Skills, and Abilities)では、ナレッジとして約30個の項目が列挙されています。

ABC順に並んでいるようで、最初に出てくるのが「Knowledge of anti-forensics tactics, techniques, and procedures」とアンチ・フォレンジックに関する技術に関する知識となっており、やや全体が把握しにくいようにも感じます。

かなり大雑把な整理になりますが、大きくは以下のような項目になるのではないでしょうか?

  

(1)手続きに関する知識

項目としては技術的な内容以外に、法律や手続きといった部分もよく出てきます。例えば「産業横断サイバーセキュリティ人材育成検討会 最終報告」では、「フォレンジックス」については保全(複製の取得)を行う人員を想定しているようですので、関連する知識が必要になると思われます。

米国と日本では法律の違いなどもありますので、日本という点ではデジタル・フォレンジック研究会の証拠保全ガイドラインが参考資料になると思われます。(参照される場合には最新版を確認してください)

デジタル・フォレンジック研究会 証拠保全ガイドライン 第5版

https://digitalforensic.jp/home/act/products/df-guidline-5th/

 また、書籍であれば、下記があります。 

デジタル証拠の法律実務Q&A

デジタル証拠の法律実務Q&A

  • 作者: 高橋郁夫,梶谷篤,吉峯耕平,荒木哲郎,岡徹哉,永井徳人
  • 出版社/メーカー: 日本加除出版
  • 発売日: 2015/09/16
  • メディア: 単行本
  • この商品を含むブログを見る
 

 法律や証拠としての扱いなどは、技術的なトレーニングでなんとかなる分野ではないと思いますので、文献や専門家などが頼りになる分野でしょうか。

 

国内のスキルセットに関する資料では、この部分についての知識を求めている項目が見受けられない気がするのですが、気のせいでしょうか?
デジタルデータの保全、複製の取得を目的としている場合には、ケース(事案)によってはこの分野の知識が求められる事になります。例えばeDiscoveryなどでデジタルデータの複製が必要になるケースなどもあります。

 

(2)コンピュータやネットワークに関する知識

基本的なコンピュータの構成については、複製を取得する段階においても必要になる知識でしょうか。BIOSやHDD、各種インターフェイスやケーブルの接続方法などについての知識が必要になりますが、最近ではクラウドやモバイルデバイスに関する知識も必要になってきていますね。

一般的に利用されているWindowsやUNIX系OSに関する基本的な知識、TCP/IPなど基本的な知識という事になると、それぞれの分野における書籍を参照する事になりそうです。

Windowsについては内部的な理解も必要になるので、やはりインサイド Windowsやリソースキットといった書籍でしょうか。 

インサイドWindows 第6版 上

インサイドWindows 第6版 上

 

 技術的なお話でなければ、闘うプログラマー[新装版] ビル・ゲイツの野望を担った男達が個人的には好みだったりします。

ネットワークに関しては、TCP/IP関連書籍は多数出ていますが、技術的にはWireSharkの使い方も一緒に覚えると良いかもしれませんね。KSAsにも「Knowledge of common forensics tool configuration and support applications (e.g., VMWare, WIRESHARK)」とフォレンジック・ツールを補助するアプリケーションとしてWireSharkが登場しています。

仮想環境については、検証でも使いますし、マルウェアの動的解析などでも使う事になる部分でしょうか。

 

求められている スキルが、デジタルデータの保全、デジタルデータの複製であり、解析のスキルを必要としない場合もありえます。その場合、コンピュータやハードディスクなどの構造やインターフェイスなどについての知識が必要になります。最近ではクラウドからのデータ取得も発生しますので、その点ではネットワークを含めた知識も必要です。しかし、Windows内部構造の詳細、例えばレジストリに関する知識などはそれほど必要ないかもしれません。保全(複製取得)だけなのか、解析まで実施するのかにより、求められる深さや範囲が異なります。

 

(3)セキュリティに関する知識

基本的な攻撃手法・防御手法、インシデント・ハンドリングに関する知識などが列挙されています。

攻撃手法については、いわゆるペネトレーション的な分野もあると思いますが、セキュリティ関連企業が出しているレポートなどで、攻撃者の手口(TTPs)についての知識が必要になる部分も多いのではないでしょうか。

 

「産業横断サイバーセキュリティ人材育成検討会 最終報告」と「CSIRT 人材の定義と確保 Ver.1.0」では、この分野の知識について要求されていないように見えます。前提知識という扱いかもしれませんが、「CSIRT 人材の定義と確保 Ver.1.0」においても解析を前提としていないのであれば、どちらも複製の取得が主な内容になりますので、記載していないのかもしれません。

インシデント・ハンドラーが指定した機器を保全・複製の取得を行うだけであれば、セキュリティに関する知識という観点では、セキュアブートやアクセス権など、システム管理者よりの知識が必要になると思われます。

 

(4)デジタル・フォレンジックに関する知識

技術的な項目としては下記がポイントでしょうか。マルウェア解析は別枠で考えた方がよいかもしれませんが、大きくはファイルシステム・ファイルタイプ・カービングというのがありますね。メモリは?とか思うわけですが、その辺りはSkill項目に書かれているようです。

NICCS Digital Forensicsより引用

Knowledge of data carving tools and techniques (e.g., Foremost)
Knowledge of file system implementations (e.g., NTFS, FAT, EXT)
Knowledge of how different file types can be used for anomalous behavior
Knowledge of malware analysis tools (e.g., Oily Debug, Ida Pro)
Knowledge of types of digital forensics data and how to recognize them

 

興味深いのは「産業横断サイバーセキュリティ人材育成検討会 最終報告」のスキルセットを参照すると、この辺りの知識は求められていないように見えます。

「CSIRT 人材の定義と確保 Ver.1.0」では、上記(3)、(4)、に関連すると考えられる項目が記載されています。ただし、先に書きましたが「CSIRT 人材の定義と確保 Ver.1.0」が、「産業横断サイバーセキュリティ人材育成検討会 最終報告」と同じく複製の取得を目的・範囲としているのであれば、フォレンジック用ツールに関する知識として記載されているのは、複製の取得に利用するツールの知識だけを想定しているかもしれません。

<2016/11/19追記>

「CSIRT 人材の定義と確保 Ver.1.0」の追加資料として下記が公開されており、その中12ページにはもう少し技術的な項目が書いてありますね。

http://www.nca.gr.jp/2016/pr-seminar/files/20160223recruit-hr-appendix.pdf より引用
任用前提スキル
 OS、コマンド、システムファイル、プログラミング
言語の構造とロジックに関する知識
 脆弱性診断に関する知識
追加教育スキル
 デジタルフォレンジックに関する知識
 メモリダンプ解析能力
 マルウェア解析能力
 リバースエンジニアリングの能力
 バイナリ解析ツールを利用できる能力
 セキュリティイベントの相関分析を行える能力

前提スキルと追加教育スキルで、ややマルウェア解析よりの内容を求めている印象を受けますが、スライドの中にマルウェア解析者の区分がないので、ここに含められているという事なのかもしれません。

<追記ここまで>

 

ざっくりとした印象としては、国内で求められている知識やスキルは、デジタルデータを保全、つまり複製する事を想定としており、解析する事は考慮されていないという事なのでしょうか?

フォレンジッカーのスキルセット?

日本国内においても、デジタル・フォレンジック(以降DFと省略)の人材育成に関するスキルセットとして幾つか資料が出てきています。しかし、それらを比較してみると、求められている内容にはかなり違いがあるようです。

 

(1) 

産業横断サイバーセキュリティ人材育成検討会 最終報告 (平成28年9月14日公開)
http://cyber-risk.or.jp/sansanren/index.html

上記URLでは、A2.産業横断 人材定義リファレンス~機能と業務に基づくセキュリティ人材定義~(要求知識)では、CSIRTの項目として「フォレンジックス」がありますが、内容としては“機器の保全、被害拡大抑止、証跡保全活動”という項目が挙げられています。

対象者としてはかなり広い範囲で知識が求められる事になっていますが、それぞれのポジションにおいて、どの深さまでの知識が必要なのかについての定義は見当たりません。

この資料をベースとした場合、まずはデジタルデータの保全(つまり複製の取得)が出来る事を求めているように読めます。そうした場合、知識として保全があるという事を知っていれば良い人と、実際に複製の取得を行う担当者では求められる技術レベルが異なってきます。

 個人的には被害拡大抑止は、インシデント・ハンドリングやトリアージに関連した項目ではないかという印象も受けます。

 

(2)

CSIRT 人材の定義と確保 Ver.1.0
http://www.nca.gr.jp/activity/training-hr.html

インシデント対応の項目として「フォレンジックス」が登場し、内容としては“証拠保全、システム的な鑑識、足跡追跡。マルウェア解析”が記載されています。

一部の保全関連については産業横断サイバーセキュリティ人材育のスキルセットに近いですが、マルウェア解析、が新たな項目として出てきます。
PDFファイル 34ページでは、役割として①フォレンジック責任者、②業務推進者、③分析者、と定義されており、それぞれについてスキルが列挙されています。ただ、スキルについては役割が何であれ求められている内容としては下記になっています。

ページ34 役割と必要となるスキル(1/3)より引用
・情報セキュリティ監査能力
・マネジメント能力
・OS/ファイルシステム/アプリケーション/プロトコル/攻撃手法等に関する知識
・フォレンジック用ツールに関する知識

興味深いのは、産業横断サイバーセキュリティ人材育のスキルセットよりも幅広く定義されている点でしょうか。

ページ37には「役割毎のキャリアパス」が記載されていますが、前提条件として「セキュリティ技術基礎知識」が定義されています。キャリアパスの注目点としては2年で技術を習得し、3年目からはマネジメント能力の向上とだけ記載されている点でしょうか。

ページ34で求められるスキルセットが、キャリアパスでは1年ないし2年で身に付く事になっているのか分かりませんが、個人的にはかなり短期間で育成が行われる前提に見えます。

 (3)

セキュリティ知識分野(SecBoK)人材スキルマップ2016年版
http://www.jnsa.org/result/2016/skillmap/

NICE Cybersecurity Workforce Framework に原則として準拠と書かれています。
Exceシートに詳細が記載されていますが、手元のPCにExcel入ってないので。。。

 

(4)

NICCS
Workforce Development ❯ Cybersecurity Workforce Framework ❯ Digital Forensics
https://niccs.us-cert.gov/workforce-development/cyber-security-workforce-framework/digital-forensics

KSAsとTaskについてかなり詳細に記載があります。具体的な技術的な項目として何が必要とされるのか?という観点ではこちらのURLの方が参考になる点が多いかと思います。Related Job Titlesとしては、Computer Forensic Analyst、Computer Network Defense Forensic Analyst、Digital Forensic Examiner、Digital Media Collector、Forensic Analyst、Forensic Analyst (Cryptologic)、Forensic Technician、Network Forensic Examinerといった肩書で呼ばれる人たちですね。
KSA(Knowledge, Skills, and Abilities)としては下記が記載されています。実際の作業内容として求められる項目については Tasks に記載されていますが、どちらも実務という観点ではしっくりくる項目が多いですね。


NICCSのページより引用

 

  • Experts in this Specialty Area have the following Knowledge, Skills, and Abilities:
  • Ability to decrypt digital data collections
  • Knowledge of anti-forensics tactics, techniques, and procedures
  • Knowledge of applicable laws (e.g., Electronic Communications Privacy Act, Foreign Intelligence Surveillance Act, Protect America Act, search and seizure laws, civil liberties and privacy laws, etc.), statutes (e.g., in Titles 10, 18, 32, 50 in U.S. ...
  • Knowledge of basic concepts and practices of processing digital forensic data
  • Knowledge of basic physical computer components and architectures, including the functions of various components and peripherals (e.g., CPUs, Network Interface Cards, data storage)
  • Knowledge of basic system administration, network, and operating system hardening techniques
  • Knowledge of common forensics tool configuration and support applications (e.g., VMWare, WIRESHARK)
  • Knowledge of data carving tools and techniques (e.g., Foremost)
  • Knowledge of debugging procedures and tools
  • Knowledge of deployable forensics
  • Knowledge of electronic evidence law
  • Knowledge of encryption algorithms (e.g., IPSEC, AES, GRE, IKE, MD5, SHA, 3DES)
  • Knowledge of file system implementations (e.g., NTFS, FAT, EXT)
  • Knowledge of hacking methodologies in Windows or Unix/Linux environment
  • Knowledge of how different file types can be used for anomalous behavior
  • Knowledge of incident response and handling methodologies
  • Knowledge of investigative implications of hardware, Operating Systems, and network technologies
  • Knowledge of legal governance related to admissibility (Federal Rules of Evidence)
  • Knowledge of legal rules of evidence and court procedure
  • Knowledge of malware analysis tools (e.g., Oily Debug, Ida Pro)
  • Knowledge of processes for collecting, packaging, transporting, and storing electronic evidence to avoid alteration, loss, physical damage, or destruction of data
  • Knowledge of reverse engineering concepts
  • Knowledge of security event correlation tools
  • Knowledge of seizing and preserving digital evidence (e.g., chain of custody)
  • Knowledge of server and client operating systems
  • Knowledge of server diagnostic tools and fault identification techniques
  • Knowledge of the common networking protocols (e.g., TCP/IP), services (e.g., web, mail, Domain Name Server), and how they interact to provide network communications
  • Knowledge of types and collection of persistent data
  • Knowledge of types of digital forensics data and how to recognize them
  • Knowledge of virtual machine aware malware, debugger aware malware, and packing
  • Knowledge of web mail collection, searching/analyzing techniques, tools, and cookies
  • Knowledge of which system files (e.g., log files, registry files, configuration files) contain relevant information and where to find those system files
  • Skill in analyzing anomalous code as malicious or benign
  • Skill in analyzing memory dumps to extract information
  • Skill in analyzing volatile data
  • Skill in collecting, processing, packaging, transporting, and storing electronic evidence to avoid alteration, loss, physical damage, or destruction of data
  • Skill in conducting forensic analyses in multiple operating system environments (e.g., mobile device systems)
  • Skill in deep analysis of captured malicious code (malware forensics)
  • Skill in developing, testing, and implementing network infrastructure contingency and recovery plans
  • Skill in identifying and extracting data of forensic interest in diverse media (media forensics)
  • Skill in identifying obfuscation techniques
  • Skill in identifying, modifying, and manipulating applicable system components (Windows and/or Unix/Linux) (e.g., passwords, user accounts, files)
  • Skill in interpreting results of debugger to ascertain tactics, techniques, and procedures
  • Skill in one way hash functions (e.g., Sha, MDS)
  • Skill in performing packet-level analysis (e.g., Wireshark, tcpdump, etc.)
  • Skill in physically disassembling PCs
  • Skill in preserving evidence integrity according to standard operating procedures or national standards
  • Skill in setting up a forensic workstation
  • Skill in using binary analysis tools (e.g., Hexedit, xxd, hexdump)
  • Skill in using forensic tool suites (e.g., EnCase, Sleuthkit, FTK)
  • Skill in using virtual machines

 

 

トレーニングにおける質問の有無

先日、FaceBookのタイムラインに下記記事が流れてきて、興味深く読ませていただきました。(元の論文までは読んでないのですが)

自分自身、講師を担当している時に「何か質問はありますか?」という事を言ってしまいますが、受講者が質問をどう考え・受け取っているか?というのは興味深い観点ですね。

 

さて、個人的にこの記事を読んで衝撃を受けたのは、仮に受講者が質問しない理由が、内容を理解できていないのだとすれば、講師がしゃべっていた時間&受講者が聴いていた時間は、“まったく無駄”だったという事になるのか?という点です。

質問の仕方を変えるという案もあるとは思いますが、最終的には受講者が理解している事が必要であって、質問の仕方を変えたとしても意味がないですし、『生徒が学んでいないのは、先生が教えていないから』という人材開発の帯に書かれている言葉を思い出すわけです。 

トヨタ経営大全1人材開発 下

トヨタ経営大全1人材開発 下

  • 作者: ジェフリー・K・ライカー,デイビッド・P・マイヤー,稲垣公夫
  • 出版社/メーカー: 日経BP社
  • 発売日: 2007/12/28
  • メディア: 単行本
  • クリック: 6回
  • この商品を含むブログ (7件) を見る
 

 

さて、この部分について人材開発(下)のP195には下記が書かれていますので、引用したいと思います。

質問を奨励する

新人は、質問するのに尻込みする傾向がある。彼らは自分たちが仕事の知識がないと見られたくないのだ。トレーナーが「何か質問はありますか?」と聞いても、彼らはすぐに「いいえ」という。トレーナーは質問を奨励して、より理解することはいいことだという雰囲気を作らなければならない。これは「ボブ、今でも後でも質問があったら自由に聞いてね。あなたの疑問には全部答えられるようにしたいの」というような言葉でやるのが一番良い。その後で、トレーナーはキーポイントに関する理解を探る質問をするべきだ。「シール剤をみて、正しく塗布されているかどうかわかりますか?」などである。

 講師(トレーナー)側からの質問としては、キーポイントの理解度を探るという観点については、キーポイントをしっかり整理しそれを伝えている必要があるので、質問を考慮する上でも参考になります。

とはいえ、受講者からの質問というのは、個人的にはハラハラする部分でもあります。自分が答えられない難しい質問を受ける場合もありますし、説明した事が全然伝わっていない(正しく伝えられていないわけですが)事が分かる質問を受ける場合もあります。

ただ、いずれにしても上記にあるように、質問を奨励する環境を積極的に作り出す必要があるという点で、引き続きの改善に取り組みたいと思う今日この頃です。

 

 

 

Plaso Winjob パーサでタイムスタンプが+9時間ズレる件

Plaso 1.4.0 ベースの Log2timeline の winjob パーサですが、タイムゾーンの指定を正しく行わない場合、ジョブのスケジュールと実行日時が実際の時刻より +9 時間ズレて表示されます。

以下、Windows 10 環境上で、Plaso 1.4 ベースを実行しています。

log2timeline.exe --parsers winjob c:\case\winjob.db c:\Windows\Tasks

psort.exe -z Japan -w c:\case\winjob.csv -o L2tcsv c:\case\winjob.db

 上記コマンドの実行により、下記結果が得られましたが、ジョブのスケジュール日時は16時06分となっています。

02/05/2016,16:06:00,Japan,....,JOB,Windows Scheduled Task Job,Scheduled To Start,WORKGROUP\EXAMPLE$,-,Application: C:\Program Files (x86)\Google\Update\GoogleUpdate.exe /ua /insta...,Application: C:\Program Files (x86)\Google\Update\GoogleUpdate.exe /ua /installsource scheduler Scheduled by: WORKGROUP\EXAMPLE$ Run Iteration: DAILY,2,OS:c:\Windows\Tasks\GoogleUpdateTaskMachineUA.job,-,-,winjob,comment: Google ソフトウェアを常に最新の状態に維持します。このタスクを無効にするか停止すると、Google ソフトウェアは最新の状態に維持されなくなります。その場合、セキュリティの脆弱性が見つかっても修正できなかったり、機能が動作しなかったりする可能性があります。このタスクを使用する Google ソフトウェアがなくなると、タスクは自動的にアンインストールされます。 sha256_hash: 3022735948b1c774412bb361838fe5439eb7bad32d3c05c66225f41f27c452ac 

タスクスケジューラで確認すると、タスクは日本時間で 7時6分に設定されているので、9時間プラスされた値が出力されている事になります。

f:id:hideakii:20160319102959p:plain

Windows Job File Format の記述に従い JOB ファイルの内容を確認してみると、Trigerの項目として開始時刻などが入っていますが、ローカル時刻が登録されている為、これを +9 して出力している為でしょうか。

f:id:hideakii:20160319104433p:plain

次に、log2timelineの処理段階で -z オプションでタイムゾーンとして Japan を指定して処理します。

log2timeline.exe -z Japan --parsers winjob c:\case\winjobTZ9.db c:\Windows\Tasks

psort.exe -w c:\case\winjob9.csv -o L2tcsv c:\case\winjobTZ9.db

psortコマンドによるCSV出力時には -z を指定していない状態になりますので、ストレージ内に保存されているタイムスタンプ情報になります。

02/04/2016,22:06:00,UTC,....,JOB,Windows Scheduled Task Job,Scheduled To Start(以降省略)

ローカル時刻をUTC換算した値が保存されています。

psortにおいても-z Japanを指定して出力します。

02/05/2016,07:06:00,Japan,....,JOB,Windows Scheduled Task Job,Scheduled To Start(以降省略)

この場合は、日本時間として正しく出力されています。

  Winjobパーサなど、ローカル時刻を保存しているアーティファクトを処理する場合、タイムゾーン指定に注意が必要という事ですね。

 

 脱線した話題になりますが、タスクスケジューラのジョブファイルはカービングという観点ではどうなのでしょうか?

ファイルフォーマットによると、ファイル先頭部分にあるプロダクトバージョンとファイルフォーマットだけではノイズが多くなってしまいそうです。ただ、トリガー日時などが分かっているケースにおいては、そのパターンで探してみるというのも一つの案でしょうか。