第2章:セキュリティエンジニアに必要なスキル
第一章ではセキュリティエンジニアの仕事に関して大雑把に触れていきました。セキュリティエンジニアという仕事は多種多様かつ複合的なものであることがなんとなくご理解いただけたかと思います。しかし、なんだか幅が広すぎてピンと来ない方も多いのではないかと思います。そこで、ここからもう少し具体的な内容に入っていきましょう。
セキュリティエンジニアの仕事
ここではセキュリティエンジニアが関連する仕事としてどのようなフィールドがあるかをざっとあげてみたいと思います。例を挙げやすくするために、今筆者が勤めているIIJテクノロジーのセキュリティ関連のサービスマップを引き合いに出して説明します。なお、マップの分類は一つの例であり、業界で統一された基準等ではありませんのでその点はご留意ください。
さて、図の説明ですが、一番左端の縦一列はセキュリティエンジニアが接する企業部門を便宜的に4つに分類(IIJテクノロジーで独自に作成したものです)したものです。それ以外の部分に提供するサービス一覧を記載してあります。
「経営」は会社の意思決定を行う部門でわかりやすく言うと経営者つまり社長や、部長のことです。「企画」はサービス企画やシステム設計等の上流工程作業を行う部門で、比較的初期の段階のシステムコンセプト作成や、概要設計を担うところ、「技術部門」はシステムの詳細設計や実装、または運用といったテクニカルな作業を行う部門、「ユーザー」はシステムの利用者(一般社員等)を表しています。
それぞれの部門やユーザーに対してどのようなサービスを提供しているかが図の残りの部分です。例を一つあげると、図のまんなかのセキュリティアセスメントサービスは脆弱性検査のサービスで主に技術部門向けということになります。サービス内容をカテゴライズすると、経営部門に必要なサービスはコンサルティング、企画部門はコンサルティングや設計業務支援、技術部門はシステム実装や検査、一般ユーザーには教育となります。文字だけだとわかりづらいので、下記に簡単な表でまとめてみました。
分類 | 機能 | セキュリティエンジニアの仕事 | 仕事例 |
---|---|---|---|
経営 | 会社の意思決定 | コンサルティング | ISMS取得支援コンサルティング |
企画 | 上流工程作業 | コンサルティング、設計 | Firewall運用、セキュリティ検査 |
技術 | 実装、運用 | 設計、実装、検査 | Firewall運用、セキュリティ検査 |
ユーザー | 利用者 | 教育 | 社内教育講師 |
もう少しイメージしやすいように仕事例ごとにどういった作業を行うかを挙げていきます。
ISMS取得支援コンサルティングというのは、お客様がISMSを取得するために計画を作ったり、資料を整えたり、ミーティングに参加してアドバイスを行ったり、ドキュメントの作成を行ったりします。セキュリティアーキテクチャ設計支援というのは、安全を守るためにどのようなシステムにするべきか、データの配置をどうする、認証をどういう方式にする、といった検討を行います。Firewall運用はFirewallの稼動状況を確認したり、セキュリティ問題が発生した場合の対応を行ったりするため、テクニカルな作業を伴います。セキュリティ検査は実際にシステムに侵入できるかどうかをテストしたりします。社内教育の講師は、セキュリティリテラシーを一般社員に教育し、そのための資料を作成したり、講義を行ったりします。
長々と説明しましたが、注目していただきたいのはセキュリティエンジニアと十把一絡げに言っても、これだけ幅広い仕事があるということなのです。全部の仕事をできる人などというのは稀で、普通はこれだけ業務に幅があれば得意な仕事と不得意な仕事、やりたい仕事、希望しない仕事が存在するでしょう。単純に「セキュリティエンジニア募集」というキーワードに乗っかって転職したが、実際に自分がやりたい仕事ではなかったということが無いように、転職先でセキュリティに関するどのような業務があるのかを具体的に確認すること、これを忘れないようにしてください。
セキュリティエンジニアに必要な知識
上記のとおり、セキュリティエンジニアのフィールドは幅広く、それぞれに必要なスキルも異なってきます。次に、セキュリティエンジニアにはどのような知識が必要となるかについて説明していきたいと思いますので、下記を御覧ください。
- 情報セキュリティマネージメント
- ネットワークインフラセキュリティ
- アプリケーション・セキュリティ
Web / 電子メール /DNS - OSセキュリティ
Unix / Windows / Trusted OS - ファイアウォール
- 侵入検知システム
- ウィルス
- セキュアプログラミング技法
- セキュリティ運用
- セキュリティプロトコル
- 認証
- PKI
- 暗号
- 電子署名
- 不正アクセス手法
- 法令・規格
※JNSAセキュリティセミナー(2005年) スキルマップ作成WGの資料より抜粋
これは、日本ネットワークセキュリティ協会(以下JNSAと表記)という団体の中の、スキルマップ作成ワーキンググループが作成した、「セキュリティエンジニアに必要なスキル」の一覧です。どうですか?かなりたくさんの技術要素があることがおわかりいただけるかと思います。
これを見るだけでも、必要な知識が大変幅広いものであることがわかりますが、これからセキュリティ業界を目指される方はこれらをすべて網羅的に学習している必要はありません。必要なところ、興味のあるところから入っていけばよいのではないでしょうか。第一章でも述べましたが、管理系の仕事につきたいということであれば、情報セキュリティマネージメントの知識(代表的なものとしてはISMSやプライバシーマーク)や、法令・規格といったところを中心に学ぶほうが効率はよいと思われます。
技術系のほうはもう少し複雑です。製品開発、SIer、プログラマー、運用と役割によって必要な知識は異なってきます。製品開発を行う場合は、その製品がサポートしているセキュリティの機能に関して知っていることが必要となってきます(あたりまえですが)し、プログラマーであればセキュアプログラミングの知識が必要となってくるでしょう。実際の業務に関連した知識は深く、それ以外の部分は少なくとも概要くらいは理解したいところです。
もう少しイメージしやすいように例をあげて説明しましょう。筆者の仕事の一つにセキュリティ診断(一般的にペネトレーションテストと呼ばれる)があります。不正アクセスを模倣して検査対象機器(サーバやクライアント)にアクセスし、セキュリティホールがあるかどうかを調べるのですが、当然ながら不正アクセス手法の知識が必須です。それ自体はそれほど想像に難くないでしょう。しかし、それだけを知っているからといって検査業務ができるかというと実はそうではありません。
なぜなら、セキュリティ診断というのは単純に穴探しをするだけではなく、どのように実現可能な対策を行うべきかを提示する必要があるからです。当然ながら対策方法は様々です。サーバであれば、それぞれのOSに関しての仕組みや設定を理解していないといけませんし、ネットワーク機器であれば仕組みやオペレーションも知っている必要があります。つまり、アプリケーションセキュリティやOSセキュリティといった技術領域にも明るい必要があるのです。
さらに突っ込んで、そもそもどうしてそういう欠陥が埋め込まれてしまうのかを考えると、それは無理な開発スケジュールや大幅なコスト圧縮の影響かもしれませんし、担当者にまかせっきりでチェックする体制が無いからなのかもしれません。システム設計を行う時点でセキュリティのことなど考えていなかった可能性もあります。こうなってくると、マネージメントの領域となってきます。
まとめると、セキュリティ診断をやる場合は不正アクセス手法の知識をしっかりと持っており、かつ、OSやアプリケーションといった周辺知識も深く持っている、それ以外の部分についても少なくとも理解はしている、といったスキルセットが最低限必要ではないかと思います。言い方を変えると、得意な分野が1つあり、広く知識を持っているようなT字型のスキルセットという感じでしょうか。
このように一つの業務を取って見ても様々な知識が必要となるのですが、こういったことは実際に現場を経験してみないとなかなかわからないことが多いものです。実際、セキュリティ業界の第一線で働いている人の多くは、プログラミングやシステム構築、運用といったことを経験していることが多く、過去の経験を大いに活かして活躍されています。最近は入社して以来セキュリティしかやっていないという方もおられるようですが、様々な業務やシステムを経験することもセキュリティの知識に深みを持つという点においては大変有効だと思います。
なお、スキルマップの各項目に関して具体的な内容はここでは述べませんでしたが、JNSA監修の「情報セキュリティプロフェッショナル総合教科書」という本に詳細な中身が掲載されています。ご興味のある方はご一読されてはいかがでしょうか。
セキュリティエンジニアに必要なスキル
さて、ここで気になっている方もおられるかもしれませんが、本文で「スキル」と「知識」という言葉を混ぜて使っています。JNSAのスキルマップでは「スキル」として上記の内容が定義されていたため、「スキル」と書きましたが、本来の意味での必要なスキルはもっと幅が広いはずです。(個人的には上記のスキルマップは「知識マップ」だと考えています)
筆者は面接官もやっているのですが、知識以外のスキルで筆者が重要だと感じるポイントは以下のようなものです。参考までに挙げておきます。
-
コミュニケーションスキル
様々な人とコミュニケーションを取ることがセキュリティの仕事では必然的に多くなります。経営者から現場の担当者まで論理的に物事を説明し、納得させることができる能力が求められます。
-
モラル
スキルというとちょっと違和感がありますが、セキュリティという業務に係わる以上、当然高いモラルが要求されます。
-
洞察力/想像力
色々な場面で「想定の範囲外」を考慮する必要があるため、柔軟な発想が必要です。常識にとらわれないことも時には要求されるでしょう。
他にも色々とありますが、ビジネスマンとして必要な基本の能力は他の仕事と大きく変わりません。上記のようなスキルがあったほうが活躍の場は広がりますが、それほど難しく考える必要はありません。経験を積み重ねていくうちに身に付けていけばよいでしょう。
次回はセキュリティに関する仕事のできる企業と、セキュリティエンジニアのキャリアプランについてお話していこうと思います。