CCSPの勉強を通じて学んだこと

CCSPの勉強を開始してちょうど3年が経過が経過しました。途中の1.5年ぐらいは本業に集中するためほぼ勉強していないため、実質の勉強期間は1.5年程度ですが。勉強を始めたきっかけは、当時所属していた会社の周りの同僚に、既にCCSPホルダーまたは受験を予定していて勉強をしている人が多かったため、感化されたためだったような気がします。この記事はCCSPの勉強を通じて学んだことの振り返りです。ちなみに2022年5月に初受験して落ちました。次回はパスしたいです。

# 習得の邪魔になったもの
## それまでの経験
私は20数年前にSoftwareエンジニアリングからキャリアを開始して、主なテクノロジバックグラウンドはプラットフォームやインフラストラクチャの設計・構築・運用です。サイバーセキュリティを専門に取り扱うようになってからまだ4年程度で、CCSPの勉強開始時点でサイバーセキュリティそのものに関しては初学者だったと言えます。サイバーセキュリティ自体は初学者でしたが、それまでに別のテクノロジドメインで20年の経験がありました。この20年の経験が習得の邪魔をしていました。例えば[下記の問題](https://www.examtopics.com/discussions/isc/view/20826-exam-ccsp-topic-1-question-170-discussion/)を見てみます。

Which of the following can be useful for protecting cloud customers from a denial-of-service (DoS) attack against another customer hosted in the same cloud?

A. Reservations
B. Measured service
C. Limits
D. Shares

正解はAですね。問題は、DoS攻撃に対する策としてどれが有効か?です。選択肢を外観すると、クラウドコンピューティングの特性のうち、どれがDoS攻撃に対する策になり得るか(=可用性の担保)を聞いていることがつかめるかと思います。"これは可用性のことだな。BとCは明らかに関係ないから消せるね。AとDは似ている特性だけど、可用性の担保って文脈であればAだな。"

これは理想的な思考回路かと思います。では、勉強開始当時の私のよくあった思考回路を振り返ってみます。

"DoSって総当たり攻撃のことだよなぁ。それは普通、CDNとはFWのようなフロントエンドで対策するよなぁ。(選択肢を眺めながら)何言ってんだこれ?"

極端な例ですが、当時の私の思考回路はこんな感じでした。問われていることの本質的な考え方を理解しようとせずに、それまでの自分の経験だけを頼りに、問題を自分の都合の良いように捉えていました。これでは正解にたどり着けませんね。

## 思い込み
それまでの経験と類似しているかもしれませんが、強い思い込みを長い間捨てることができなかったことも、習得を邪魔していた大きな要因の1つです。先に触れた可用性の担保を例に取っても、プラットフォームやインフラストラクチャのテクノロジバックグラウンドを持っている人になると、古くはMicrosoft ClusterやRed　Hat Clusterのような、クラスタリングのことと早合点してしまうことがあるかもしれません。しかしながら、サイバーセキュリティ全般やCCSPの母体である[ISC2](https://www.isc2.org/)や[CSA](https://cloudsecurityalliance.org/)の可用性の定義は、クラスタリングのような具体的な手法だけではなく、もっと根源的な抽象化された本質のことかと思います。

## 凝り固まった学習方法
これも前に挙げた2つと同じことかもしれません。これまでの人生で経験した凝り固まった学習方法が習得を邪魔していました。勉強開始〜3ヶ月程度は、[Officila Study Guide](https://www.amazon.co.jp/-/en/OHara/dp/1119277418)を斜め読みして、巻末にある練習問題を解いて、開設を斜め読みして、理解した気になっていました。先に触れた根源的な本質や考え方はあまり理解していませんでした。取り敢えず問題を解いて、問題と答えを暗記していた気がします。単位を取ることだけを目的にした学生時代と同じアプローチです。これでは目も当てられませんね。

# 改善に向けてやったこと
## サイバーセキュリティの原理原則を抑える
何事にも原理原則があるかと思います。自分が経験したことや目に見えること具体的なことでも、抽象化すると他の事にも当てはまる本質的な原理原則に辿り着くはずです。先ず改善に向けて始めたことは、CCSPの試験のことは一旦忘れて、サイバーセキュリティやクラウド全般の原理原則の深い理解に務めることです。具体的には、[SANS](https://www.sans.org/cyber-security-training-overview/?msc=main-nav), [NIST](https://www.nist.gov/), [CSA](https://cloudsecurityalliance.org/)等の標準化団体が公表しているホワイトペーパー等の各種ドキュメントや、良書と呼ばれている書籍を読み漁りました。また、Linkedinで積極的に新しい考え方や興味深い内容を投稿している人を見つけてはフォローして、最新の考え方をキャッチアップするようにもしていました。これらを継続したお陰で、お客様やパートナー様との会話の中で、サイバーセキュリティのCIAやDIE原則を空で説明したり触れたりできるようになりました。

## 哲学や脳科学の勉強
話が逸脱して申し訳ありません。サイバーセキュリティとは直接の因果はありませんが、哲学や脳科学を積極的に勉強することで、先に触れた思い込みや早合点が少なくなってきた気がしています。CCSPで問われる内容は、範囲も広くかつ内容も深いため、個々のドメインの個別のテーマをどれだけ勉強しても、いつまでたっても合格には辿り着かないと感じています。であれば、哲学や脳科学を勉強して、根本的な考え方や脳の特性に沿った新たな勉強方法を習得することが大切と感じています。これは私個人の趣味かもしれません。

## ISC2とCSA特有の考え方の理解
いくら原理原則を深く理解したとしても、人は常に現実の世界に生きています。現実の世界で人の目に見えるのは具体的なものです。これはISC2もCSAも例外では無く、各々特有の考えかたや答えを持っている気がします。例えば[下記](https://www.examtopics.com/discussions/isc/view/75803-exam-ccsp-topic-1-question-148-discussion/)の問題を見てみます。

How many additional DNS queries are needed when DNSSEC integrity checks are added?

A. Three
B. Zero
C. One
D. Two

正解はBとのことです。私は理解できません。Dだと信じています。DNSSECは完全性の担保のことで、リゾルバや権威ノードが管理しているレコードが絶対に正しいことを証明するためにSignatureをチェックする必要があります。Signatureにチェックには最適でも2回のトランザクションが必要なはずです(これも私の思い込みの1つのはず。間違っていたらどなたかご指摘お願いします。)これはあくまで1つの例ですが、問題によっては納得しがたい問題もいくつかあるため、ISC2やCSA特有の考え方を理解するように努めています。

<br>
<br>
最後までお付き合い頂きありがとうございます。ちなみに、2022年5月の受験は日本語と英語の併記で望みましたが、これが大失敗でした。英語のマテリアルしか勉強していない人が、意味不明な日本語の問題文を正確に理解することは不可能ですね。次回は潔く英語のみで望みます。