GIAC試験攻略法（Ver2.0)

# はじめに
本記事は過去に作成した[GIAC試験攻略法](https://qiita.com/log0417/items/78f1e3136f508d54784d)に追記修正し、体裁を見直したものです。

# GIACとは
GIACは、GCFA、GPEN、GCIHなどの資格試験を開発している組織の名称です。すべての資格名の冒頭に「GIAC」の「G」が付きます。
GIACが開発している資格試験は50種類以上あり、ペネトレーションテスト、フォレンジック、マルウェア解析といったセキュリティの各分野に特化したものと、セキュリティ全般を広く扱ったものの両方があります。
資格試験の一覧は以下を参照してください。

https://www.giac.org/certifications/?msc=main-nav

# GIAC資格の種類
これまで私が取得したGIAC資格や、他の方が持っている代表的なGIAC資格として、GCFA,GPEN,GCIH,GREM,GSECなどが挙げられます。
これらはPractitioner certificationsと呼ばれており、いずれも対応するSANSのトレーニングがあります。
GCFAであればFOR508、GPENであればSEC560です。以下に日本人がよく取得している資格を挙げます。

攻撃技術を扱うオフェンシブの分野ではGCIH、GPEN、GWAPT、GXPNなどを見かけます。GIACでは赤色のロゴになっています。このうちGCIHはインシデントハンドリングの資格とされていますが、実際に受験した経験からはオフェンシブ分野の資格だと思いました。GXPNはSEC660に対応する資格でGIAC最難関の一角と聞いたことがあります。
オフェンス分野だとOSCP等が有名で、GIACはそれらよりは簡単だと思います。ただしそれなりに深い理解が必要ですので、トレーニングを受けるか、トレーニングなしで合格するなら、それなりの深い理解が必要になります。この中でGCIHは簡単で、脆弱性診断の経験があれば合格は容易でしょう。

ディフェンス分野ではGSEC、GCIA、GCED、GPYC、GSOCなどです。GSEC以外は日本ではあまり取得者を見かけません。GIACでは青色のロゴになっています。防御技術を扱う分野ですがその幅は広いです。GSECは攻撃技術も含めたセキュリティ全般、GCIAはパケット調査に関する分野全般、GCEDはセキュリティの各技術分野から出題、GPYCはPythonによるコーディング、GSOCはSOCアナリスト向けという具合にバラエティに富んだ資格があります。私の個人的な経験からは、他の分野に比べるとこの分野の試験は比較的易しめかなと思います。GSECやGCEDならトレーニングなしでもある程度経験がある人なら十分突破可能でしょう。ただし、GDSAは合格ラインが他の試験よりかなり低く設定されていることからもわかるとおり、別格の難易度になっています。

DFIR（デジタルフォレンジックおよびインシデントレスポンス）分野でよく見かけるのはGCFA、GCFE、GNFA、GREMなどです。GIACでは黒色のロゴです。WindowsフォレンジックのGCFE、macOSとiOSのGIME、保全に特化したGBFA、マルウェア解析のGREM、そして大規模なインシデントの調査のGCFAです。特にGCFAは取得者も多く、この分野では著名な資格と言えます。Windowsフォレンジックの経験が十分にあるならGCFEの合格は容易でしょう。GBFAも保全に特化しており、比較的簡単に合格できると思います。マルウェア解析の経験が十分あるならGREMの合格も可能だと思います。

これとは別にApplied Knowledge certificationsと呼ばれる資格があり、本記事執筆時点でGX-IH、GX-CS、GX-IA、GX-FA、GX-PT、GX-FEの6つが存在します。
これらの資格はいわゆる上位資格であり、対応するトレーニングは存在しません。ただし、試験範囲に最も近いトレーニングコース（Primary Fit Course）は存在します。GX-IHであればSEC504、GX-CSはSEC401です。これらは各試験の公式ページに記載されています。

# 試験形式
試験によって難易度、内容は異なりますが形式は基本的に決まっています。

## 共通ルール
最初に試験によって変わることがない共通のルールについて記載します。

### 言語
どの試験も共通して英語で出題されます。問題文だけでなく選択肢ももちろん英語です。
ただし、画面キャプチャを見て解答する問題もあり、その場合の問題文は、「以下の画面キャプチャから言えることは？」のようなもので、英語を読まなくても解答できます。

試験問題の英語は理解しやすい文章になっており、辞書がなくても解答できる問題が多いと思います。
不安な人は辞書を持ち込んだり、よく出てくる英単語と和訳のリストを作っておくと良いと思います。

### オープンブック
GIACはすべての試験がオーブンブックです。印刷物であれば模擬試験のコピー以外、すべて持ち込むことが可能です。トレーニングコースのテキストはもちろん、英和辞典、自作の資料、市販の書籍も持ち込み可能です。
ただし、すべての問題の答えを持ち込み資料から探すことは時間的にできません。半分程度は何も見ずに解答するつもりで準備した方が良いです。

### 回答は1回のみ
一度解答を決めると後から変えることはできません。
ただし、Skipボタンを押すことで一定数（試験によって異なる。10問または15問）の問題のみ後から解答することができます。
Skipを選択した問題は最終問題の後に再度出題されます。Skipした問題の数は、1回目の回答の間（最終問題が出題されるまで）は表示されますが、最終問題の後、Skipした問題の1問目からは表示されません。試験会場で渡されるノートボードに正の字を書くなどしてメモした方が良いでしょう。

なお、Skipボタンの下にフィードバッグを送れるボタンがあります。これは試験問題にスペルミスがある、正解が2つあるように見えるなどの不具合があった場合に報告するボタンです。ただし、仮に不具合があったとしてもその問題を採点対象外にするなどといったことはできません。実際に問題の不具合を見つけたことはないですし、このボタンは基本的に使わないと思った方が良いでしょう。

### 15分の休憩時間
試験時間とは別に休憩時間として15分用意されており、いつでも取ることができます。この休憩時間でトイレに行くことも可能です。休憩時間はどの試験でも共通して15分です。この休憩は2回まで取ることができ、2回の合計時間が15分です。以前はskipした問題をすべて解答しなければ休憩が取れませんでしたが、最近になりこの制限はなくなったようです。

## 試験ごとに異なるルール
ここからは試験によって異なるルールを記載します。

### Practitioner certifications
Practitioner certificationsの場合、ほとんどが3～5択の選択式です。試験によってはCyberLiveと呼ばれる仮想マシンを操作して解答する問題が1割程度あります。
問題数は試験によって異なり、75問～106問であることが多いですが、これ以下の問題数の試験もあります。
試験時間も試験によって異なり、2時間、3時間、4時間のいずれかです。

### Applied Knowledge certifications
Applied Knowledge certificationsは前述のとおり本記事執筆時点で5種類あり、共通してCyberLiveの問題が25問、試験時間は4時間です。Skip可能な問題は10問、休憩は2回取れ、合わせて15分間です。
なお、試験冒頭の１～２分程度は解答するためのVMが起動する時間に使われてしまいます。のちにこの時間は加算されているようですので安心してください。

# 試験攻略法
ここまでに記載したGIACの試験ルールと形式、さらに多くのGIAC試験に合格した経験も踏まえた攻略法をご紹介します。

## Practitioner certificationsの攻略法
### 勉強方法
多くの人が受験するであろうPractitioner certificationsは、原則として対応するトレーニングコースの内容から出題されます。このためいかにコースの内容を理解し、かつ問題で問われている内容をテキストから探せるかが勝負です。

多くの受験者はインデックスと呼ばれる目次に相当する資料を作成しています。私もこれを強く推奨します。

インデックスは自身の好みの形式で良いと思いますが、多くの人が以下のような形式で作成しており、私もこの形式を採用しています。
これを作成するためにはテキストを一読する必要があります。時間はかかりますが、おそらくこれが最も早く合格する方法です。

| 言葉 | 意味 | ページ番号 |
|:-:|:-:|:-:|
| CIA  | 機密性、完全性、可用性  | 10  |
| ペネトレーションテスト  | 疑似攻撃  | 11  |

もし英語に不安があれば、上記に加えて英語と日本語の対応表を作成しておくと良いと思います。以下のような形式で良いと思います

| 英語 | 日本語 |
|:-:|:-:|
| vulnerability  | 脆弱性  |
| detect  | 検出する  |

私が行っている準備は以上で、後は模擬試験を受けてインデックスを見直したり、理解が足りないところを再度確認したりします。模擬試験を2回受け終わる頃にはテキストの内容はほとんど頭に入ってくると思います。
なお、模擬試験の1回目で不合格でも悲観する必要はありません。1回目不合格で焦ったこともありましたが、きちんと復習しておけば2回目では合格点を取れることが多いです。
また、模擬試験の英語はネイティブ向けなのかわかりにくいことがあります。選択肢も判断に迷う表現になっていることが多いように思います。
本番の試験問題はかなりわかりやすく書かれており、選択肢も正しく判断すれば正解が導けるようになっています。このため英語がわからなくて模擬試験が突破できないという人でも、本番では意外と読めるかもしれません。

本番の試験では、即答できる問題は即答する、テキストのどこを見れば答えにたどり着けるかわかる問題はテキストから探して回答するの2点が重要です。テキストのどこを見れば良いかわからない問題はとりあえずスキップしましょう。そういう問題も数問出る場合があるようですが大勢には影響ありません。確実に解ける問題を確実に正解できれば合格ラインは十分超えられます。時間が余るようであればわからない問題にじっくり取り組めば良いですし、時間がなければとりあえず適当に回答しましょう。

### CyberLive問題について

Practitioner certifications試験のCyberLive問題は、基本的にトレーニングコース内のラボが理解できていれば問題ありません。問題文に使うツールが指定されていることも多く、まず間違えることはないでしょう。
トレーニングを受けていない場合でも、その分野の知見が十分にあれば正解できるはずです。
CyberLive問題は選択式問題より配点が高いとされていますが、問題自体は簡単なことが多いので、確実に得点することが合格につながります。基本的に全問正解または1問ミスに抑えることが合格においてほぼ必須だと考えた方が良いと思います。
私はCyberLive問題が出題されるGIAC試験を複数受験していますが、本番の試験でCyberLive問題を全問正解できた試験はほぼ80%を超えているのに対し、1問ミスしたGSECは79%でした。GSECは全体的に入門向けの問題ばかりで、全体的に得点で来ている分野がほとんどですが、CyberLiveの1問ミスが得点を大きく下げていると思われます。
一方、GIAC最難関とも言われるGXPN試験も同じ79%でした。こちらはCyberLive問題を全問正答できたおかげで選択式問題のミスを取り戻せたと思います。
模擬試験の成績や本番の成績を踏まえると、選択式問題を1点とすると、CyberLiveは3点ほど、つまり3倍の配点になっていると思われます。この配点であると仮定して正答割合を計算すると、模擬試験においては実際の成績とほぼ一致します。

### 試験の難易度
Practitioner certifications試験にはペネトレーションテストのGPEN、GWAPT、フォレンジックのGCFA、GCFE、マルウェア解析のGREM、Cyber Defense（攻撃を検知あるいは予防する分野をGIACではCyber Defenseと呼んでいるようです）のGCIA、Pythonに特化したGPYCなどの個々の分野に特化した試験や、GSECのようなセキュリティ全般を広く試験範囲としているものがあります。
いずれの試験であっても攻略法は上記の方法で問題ありませんが、難易度は試験によって大きく異なります。概ね対応するトレーニングコースが400番台であれば簡単、500番台であれば中くらい、600番台であれば難しいという大雑把な区分はあります。
しかしこれもそれほど正確ではありません。後述しますが、例えばSEC504に対応したGCIHは500番台としては簡単な試験だと思いますし、同じ500番台の中でも難易度は異なります。

個人的に特に難しいと感じたのはGCFA、GREMです。GCFAは初めて取得したGIAC資格であったこと、あまり使ったことがないツールが多く含まれていたため難しいと感じました。GREMはいくつかのツールは使用経験がありましたが、アセンブラの読解が特に難しいと感じました。また、GDSAは他のGIACと比べて1段階難しい問題が出題されるように思います。ほとんどのGIAC試験の合格ラインが70%程度なのに対し、GDSAは63%と低く設定されているので、それだけ難しい問題を出題しているのだと思います。
逆に簡単だったと思うのは、GSEC、GCIH、GBFAです。GSECは試験そのものが簡単です。範囲こそ広いですが、ある程度セキュリティ分野を経験していればトレーニングなしでも合格できるレベルです。GCIHも脆弱性診断の経験があれば難しくありません。GBFAは主に保全方法から出題されるため、フォレンジックの経験がある程度あればそれほど難しくはないでしょう。

ただ、試験問題が難しい＝合格が難しいではありません。難しい問題が多い場合は合格ラインが下がっているようですので、GIAC全体としては概ね難易度は同じに設定されていると思います。上記はこれを前提とした上で特に難しいor簡単と感じた試験を挙げています。

## Applied Knowledge certificationsの攻略法
以下に詳細に記載していますのでこちらをご参照ください。

https://qiita.com/beardog/items/f3ca19cd1fc922db049c

# メタ推理
これは完全に試験テクニックなのですが、私は解答がわからない問題や英語が理解できない問題に対してメタ推理をしています。格付けチェックでGACKTさんが行っていたものと同じで、問題そのものに解答するのが困難な場合、作問者の意図を読み取るというテクニックです。

一般的な4択の試験問題は4択のうち2つは明らかな不正解、残り2つで解答に迷うように作られています。
このため解答の性質が異なるものを見つけることで正解に近づけます。
例えば4択の回答が以下の4つだったとします。
１．機密性
２．完全性
３．汎用性
４．冗長性

特に問題文がなくても、セキュリティの試験だったら１か２だろうという予想はつくと思います。これだけで4択から2択まで絞れました。

選択肢がツール名であれば、問題文はおそらく「〇〇という操作をするためのツールはどれですか？」のような問題でしょう。選択肢のツールのうち、用途が似ているものと異なるものがあると思います。例えば選択肢にhashcatとjohnがあった場合、ユーザのパスワードを特定するという目的においては、普通はどちらを使っても良いはずです。答えは1つなので、この2つは正解ではなく、問題文はユーザのパスワードを特定するためのツールは問われていないことが予想できます。
逆によく似ているけど若干違うツールが出てくるかもしれません。例えばddとFTK Imagerはディスクの保全を行うという点では同じですが、FTK ImagerはGUIであり、機能も豊富です。この点を踏まえると、問題文で問われている内容は、「GUIのツールはどれですか？」や「メモリダンプをするためのツールはどれですか？」になるでしょう。

あるいは問題作成者の気持ちになって考えてみるのも手です。前述のとおり、4択から2択までは絞りやすく、2択から正解を見つけるのは難しいというのが一般的な試験問題です。つまり4択のうち2択は明らかに間違いなのですから、仲間外れを探すつもりで選択肢の違いを見つけてみるのも良いと思います。
例えば先ほどのddとFTK Imagerの例であれば、他の選択肢は明らかに用途が異なるnmapだったりMetasploitだったりするかもしれません。ddとFTK Imagerのどちらかまでは絞れずとも、明らかにnmapやMetasploitではないとわかるなら、正解する確率を大幅に上げることができます。

以上のように解答がわからないという場合でも、作問者の意図を読み取ってみたり、性質の異なる選択肢がないか探してみるなどの方法で正解を特定したり、選択肢を絞り込むことができる可能性があります。

# GIACの更新
最後に、GIACの更新について触れておきます。

GIACを維持するためには4年ごとに更新が必要です。
取得後2年経過すると更新するかどうか選択できるようになります。更新の方法はCPEを36ポイント貯めるか、もう1度試験を受け、合格するかの2択です。試験を受ける場合は最新版のコーステキストが更新料に含まれます。ここでは多くの人が選択するであろうCPEによる更新について記載します。

CPEについては以下の記載のとおり、いくつかの方法から選択可能です。

https://www.giac.org/renewal/cpe-information/

注意点として、活動ごとに最大CPEポイント数が決まっており、36ポイントすべて稼ぐ方法は、GIAC/SANS Affiliated ProgramsまたはCareer Development Activitiesしかありません。例えばBlachHatに行ったとしても、最大で18ポイントしか稼げず、これだけでは更新に必要なポイントを稼ぐことはできません。

SANSが定期的に行っているサミットは1回あたり12ポイント稼げます。これは「GIAC/SANS Affiliated Programs」のカテゴリになるようですので、最大で36ポイント、つまりこれだけで更新可能です。
また、トレーニングなしでGIACに合格した場合（GX-IAやGX-CSのようなApplied Knowledge certificationsも含む）もCPEを36ポイント獲得できます。これは最大で5つのGIAC資格に適用でき、最も効率的に稼ぐことができます。
難易度を問われないため、更新のためだけであれば簡単なGSECやGCIHなどで獲得してしまっても良いでしょう。

なお更新した場合、最新版のコーステキスト（演習用のVMが含まれたISOイメージを含む）が提供されます。

これから初めてのGIAC試験に挑む方の参考になれば幸いです。