Japan
サイト内の現在位置
マルウェア解析プロフェッショナルのための資格 GREM合格体験記
NECセキュリティブログ2021年1月22日
はじめに
NECサイバーセキュリティ戦略本部セキュリティ技術センターの松本です。
本稿ではマルウェア解析に関する国際的な資格であるGREM(GIAC Reverse Engineering Malware)試験について筆者の合格体験を含めてご紹介します。インシデントレスポンス対応やマルウェア解析を始めたばかりの方やそれらの業務に興味のある方を想定して、執筆をしています。
筆者のGREMを受験するきっかけは、インシデントレスポンス対応の業務を円滑に進めるために専門的なトレーニングが必要だったこと、もともとマルウェア解析に興味があり挑戦してみたい分野であったことです。
SANS、GIAC、GREMについて
まず、SANS、GIAC、GREMについて概要をご説明します。
SANSは情報セキュリティ分野に特化した教育専門機関として有名な組織です。SANSは公式サイトでGIAC試験について以下のように記載しています。
「SANS Instituteでは、セキュリティプロフェッショナルの技術やスキルを客観的に証明する必要性から、GIAC(Global Information Assurance Certification)試験を1999年に創設しました。GIAC試験の目的は、情報セキュリティの分野において必要な知識やスキルを、当該個人が有していることを証明することです。SANSのトレーニングプログラムとGIAC認定試験は、Security Essentials、セキュリティ監査、侵入検知、インシデント・ハンドリング、ファイアウォール、フォレンジック、 Windows OS、Unix/Linux OSなど、入門レベルから高度な専門性を要求される分野までのすべてをカバーしています。」(https://www.sans-japan.jp/giac)
GIAC試験は、セキュリティ分野で業務をするうえで必要となる考え方から必要なツールの具体的な使い方までが問われるなど、実践的な内容となっている点が特徴だと考えています。
そして、GREMはGIAC試験の資格の一つです。
GREM(GIAC Reverse Engineering Malware)はGIAC試験のうち、Microsoft WindowsやWebブラウザなどの一般的なプラットフォームを標的とする悪意のあるソフトウェア(マルウェア)をリバースエンジニアリングするための知識とスキルを持っていることを認定するための資格です。(https://www.giac.org/certification/reverse-engineering-malware-grem)
GIAC試験は米国を中心に国際的にも高い評価を得ています。SANSは公式サイト(https://www.sans-japan.jp/giac)にて以下のように記載しています。(一部抜粋)
- ガートナーグループは、情報セキュリティの分野における最上位の認定はGIACであるとの調査結果を公表しています。
- NSA (アメリカ国家安全保障局)は、SANSのSEC-401について、NSTISSI 4013(情報セキュリティのトレーニング標準)を完全に満たしているとの見解を示しています
トレーニングと資格試験について
GIAC試験はトレーニングを受けなくとも受験可能ですが、実態としてはトレーニングを受けてから受験する方が多いようです。筆者も、トレーニングを受けてから受験をしました。
トレーニング
GREMに対応したFOR610は計6日間のトレーニングとなり、各日程のタイトルは以下となります。
- Day1: Malware Analysis Fundamentals
- Day2: Reversing Malicious Code
- Day3: Malicious Web and Document Files
- Day4: In-Depth Malware Analysis
- Day5: Examining Self-Defending Malware
- Day6: Malware Analysis Tournament
(https://www.sans-japan.jp/sans_tokyo_autumn2017/for610)
トレーニングでは、マルウェア解析全般に渡る考え方から、マルウェアのマニュアルアンパックといった技術的なスキルまで、ハンズオンを中心に学ぶことができます。本物のマルウェア検体を使っていること、ハンズオンテキストの内容が良く整理されていること、講師の説明が分かりやすいことから、効率的に学習できたと感じています。
最終日の6日目はCTF形式の競技となっていて、与えられたマルウェア検体を解析していく実戦形式の演習になります。優勝、準優勝には、メダルが授与されます。
費用
筆者が申し込みをした際には、トレーニングと試験を同時に申し込み、約100万円かかりました。また、試験を申し込むと2回分の模擬試験が利用可能になりますので実力チェックを行ってから試験に臨むことができます。以下に詳細が記載されていますので、受験を検討される方は確認されると良いと思います。(https://www.sans-japan.jp/courses/sans_secure_japan_2021/for610)
試験概要
試験時間・問題形式・合格ラインなどは、どの資格を選ぶかによって変わります。GREMの場合は以下となります。
カテゴリ | 内容 |
---|---|
試験時間 | 120分 |
問題数 | 75問 |
出題形式 |
|
合格ライン | 70%以上 |
再試験 | 不合格になってから30日以上経過後に再試験が可能です。 |
試験環境 |
|
その他 |
|
出題範囲
出題範囲の詳細は公式サイトから確認できます。(https://www.giac.org/certification/reverse-engineering-malware-grem)
概要だけを抽出すると以下となります。
- Analysis of Malicious Document Files
- Analyzing Protected Executables
- Analyzing Web-Based Malware
- Common Windows Malware Characteristics in Assembly
- In-Depth Analysis of Malicious Browser Scripts
- In-Depth Analysis of Malicious Executables
- Malware Analysis Using Memory Forensics
- Malware Code and Behavioral Analysis Fundamentals
- Windows Assembly Code Concepts for Reverse-Engineering
勉強方法
ここからは勉強方法について、体験談を交えて記載していきます。SANS の調査によると、SANS トレーニングに加えて平均で55時間の自己学習が必要という結果がでているそうです。
公式に紹介されている勉強方法
SANSの公式サイトには、合格のための勉強例が記載されています。(https://www.sans-japan.jp/giac/get_certified)
大まかにまとめると以下の手順で学習を進めることが例に挙げられています。
- トレーニングテキストのスライドと解説を一通り読む。
- 模擬試験を一回受ける。
- 模擬試験の結果から苦手な分野を把握して、補強する。
- 模擬試験の2回目を受ける。
- 模擬試験結果でスコアが出ず、不安であれば追加の模擬試験を買って再度実力を試す。
筆者が実施した勉強方法
基本的に、公式の勉強方法を参考にしました。具体的な読み進め方や、かかった時間などを含めて一例としてご紹介したいと思います。
まずトレーニングテキスト(以下、テキスト)を、ハンズオンを含めて手を動かしながら復習しました。テキストには英語で内容が丁寧に記載されており、トレーニング中には触れられていなかった(聞き逃しでなければ)こともあったりするので注意深く読みました。この際に、重要だと思うこと・気づきがあったことを、ページ番号を併記してノートに書き込みました。具体的には「重要なキーワード+概要」、「ツール名+オプションや操作方法」を書き残しました。この作業は、一つのテキストに対して平均して10時間程度かかりました。英語力があればもっと短い時間で済むかもしれません。テキストは5日分あったので計50時間かかった計算です。また、この際にテスト中すぐに検索できるようテキストに付箋を貼っておきました。
このように自分用の索引ツールとして付箋付きのテキストやノートを作っておくと、試験中にわからないことがあった際に焦らずに済むため、お勧めです。試験にはテキストとノートを持ち込み可能ですが、限られた試験時間ですので、目的の情報へスムーズにアクセスできることは試験の合格にとって重要です。また、模擬試験で間違った問題について復習を進めるうえでも役に立ちました。
ここまでで、テキストの内容を一通り復習することができたので、あとは試験対策として、模擬試験の1回目を実施しました。このときは試験傾向に不慣れだったこと、また業務終了後で疲れている中で実施したこともあり(言い訳)、69%でギリギリ不合格ラインでした。
模擬試験の結果は出題範囲の分野ごとに得意・不得意が判別できるように表示されます。模擬試験後、不得意な部分をテキストとノートを参照しながら復習を行いました。筆者の経験として、本番では同じ問題がでることは稀であるため、復習の際には不得意な領域を満遍なく確認することをお勧めします。2日後に模擬試験の2回目を(頭の冴えた業務開始前に)実施し、94%で合格ラインを超えられたため、本番の試験を予約しました。
試験対策に使った時間としては、トレーニング以外で合計60時間程度という計算になります。
試験対策としては模擬試験を1回受けて傾向をつかんだうえで、テキストを読みこむ方が効率的かもしれません。ただ、マルウェア解析業務の遂行スキルを向上させたいという思いで取り組んだトレーニングと試験だったので、試験の合格を意識せずに勉強に集中できたことは無駄ではなかったと感じています。業務や家庭などのため時間が取りづらい方は、模擬試験の1回目を早めに体験しておく方がテキストの読み込みにかかる時間を短縮できるかと思います。
終わりに
過去に、マルウェア解析の勉強を自力でやっていましたが、道半ばで挫折していました。「Practical Malware Analysis - The Hands-on Guide to Dissecting Malicious Software -」という宇宙人が表紙の有名な参考書を買って勉強していましたが、英語の読解力不足と、解説を読んでもハンズオンがうまく動かない(私の操作ミスなのか、ラボ環境が原因なのかもわからない)ことが原因で勉強が進んでいませんでした。今回は、有償のトレーニングであったこともあり、効率的かつ高度な知識・スキルを得ることができ、大変有意義な勉強になったと感じています。
※トレーニングを受けた後に知りましたが最近「初めてのマルウェア解析」という本がオライリーから出版されていました。こちらも読み込んでみたいと思っています。
GREMを取得するうえで、マルウェア解析の一通りの概要を把握することができ、プロフェッショナルとしてのスタートラインに立てたかと思っています。今後は実際の解析業務の中で、マルウェア検体に触れながら知識・スキルを磨いていきたいと思います。
この記事がGREM資格の受験を考えている方の後押しになること、受験するうえでの勉強の仕方について参考になることがあれば幸いです。
執筆者プロフィール
松本 康平(まつもと こうへい)
セキュリティ技術センター リスクハンティングチーム
所属:
サイバーセキュリティ戦略本部
セキュリティ技術センター リスクハンティングチーム
経歴:
2017年に新卒入社、セキュア開発運用に関するドキュメント整備、リスクアセスメントに従事
2018年にIPA 中核人材育成プログラムにて制御システムセキュリティについて知見を獲得
2019年から現在まで、ペネトレーションテスト、脆弱性診断、インシデントレスポンス対応、セキュリティ関連のツール調査に従事
その他:
趣味は、キャンプ・アニメ・Vtuber
最近はテレワークによる運動不足解消のため、週末はフットサルを楽しむ。

執筆者の他の記事を読む
アクセスランキング