プログラマーのみなさんはセキュリティについてどのくらい勉強していますか?ひょっとしたらセキュリティはエンジニアが勉強するもので、設計をコーディングするだけで精一杯と感じている方もいるでしょう。
しかしプログラマーもセキュリティについて知らなければこれから生き残れないと筆者は考えます。
この記事ではなぜプログラマーはセキュリティを勉強するべきか、そしてプログラマーのキャリアプランとしてのセキュリティエンジニアについて、さらにセキュリティ関連の資格の紹介をしています。ぜひご覧下さい。
参照:ITエンジニアが絶対取得すべき資格ランキングを紹介した記事はこちら
プログラマーがセキュリティを学ぶべき3つの理由
設計のコーディングだけではステップアップできない
プログラマーの仕事は基本的にエンジニアが書いた設計書通りにプログラミングをして、アプリケーションやwebサービスを実装することです。このためほとんどのプログラマーはプログラミングスキルを鍛え、新しい案件では早く仕事に慣れるように設計書を読み進めます。不明点があればリーダーのプログラマーやエンジニアに質問や相談をして、ひとつひとつの問題をクリアにしていきますよね。
こんな質問や相談はほとんどの場合「仕様」に関するものです。仕様のズレはプログラマー自身の仕事を増やしてしまうため、誰でもしっかり確認するものです。
SEが喜ぶセキュリティのアドバイス
もしプログラマーにセキュリティの知見があれば「このモジュールはセキュリティ的にまずいかもしれない」といった具合に、仕様以外にシステムを俯瞰的な視点から見たアドバイスをすることが出来ます。
この手のアドバイスはエンジニアにとってとても助かるため、プログラマーとして一目置かれるようになるのは間違いありません。悪意のあるプログラムや攻撃は日々進化していますが、同じく攻撃から身を守るためのセキュリティ技術や情報も日々アップデートしています。
「◯◯モジュールに脆弱性が見つかった」「セキュリティ対策のために◯◯モジュールが更新される」といった情報は毎日のように発信されるため、すべてのSEがこのような情報を追い切れているとは限りません。
SEが追いきれない情報に詳しいプログラマーは重宝されますよ。
すぐにセキュリティ対応して!〜あなたはできますか?
セキュリティ対策の中には緊急に施さないといけないものもあり、プログラマーとしてはどんな事態にも対応できるスキルを身につけておくべきでしょう。
運用部門が「サイトにアタックがきている」ことを確認すれば、すぐにサイトは一時停止され、マルウェアの有無や改ざんされていないか確認します。これと並行してSEは対策を考えますが、実装するのはプログラマーです。
セキュリティについてわからない、対策の説明をされても内容がわからないのはプログラマーとして失格です。最新のセキュリティの情報を頭に入れつつ、すでに知られている攻撃手法や防御方法も勉強しておきましょう。
セキュアプログラミングを武器にするとキャリアの幅が広がる
セキュリティ対策を意識した設計、実装のことをセキュアプログラミングと呼びますが、実装レベルのスキルとして身につけるとキャリアの幅が大きく広がります。
「PHPプログラミングのスキルがあります」
「PHPでセキュアプログラミングのスキルがあり、◯◯対策などの実装ができます」
後者のプログラマーのほうがスキルは高く優秀な印象がありますよね。
もちろん単なる印象だけでキャリアの幅が広がるわけではありません。プログラマーのステップアップ先として、システムエンジニアやセキュリティエンジニアといった職種に進むためにも実装レベルの高いスキルは不可欠です。
セキュリティに強いプログラマーのキャリアプラン〜セキュリティエンジニア
システムエンジニアの中でもセキュアな設計や実装を担当する方をセキュリティエンジニアと呼ぶことがあります。特に昨今、クラウドを利用したシステム作りや悪意のあるプログラムの進化、攻撃手法の多様化にともなってセキュリティの重要性が増していることは明白です。
マイナンバー制度や東京オリンピックが近づいていることからもセキュリティにどんどん注目が集まっています。
セキュリティエンジニアはアーキテクチャに強い
セキュリティ対策はシステム全体に関わる設計と実装が必要なため、アーキテクト並のスキルが必要です。またすでに運用済みのシステムにおいて脆弱性が見つかった場合、作り込んだモジュールに弱点があれば修正は容易でないため、実装レベルのスキルを持つエンジニアでなければセキュリティ対策が施せません。
プログラマーがセキュリティエンジニアを目指すのであれば、セキュリティ対策の知識や経験を積みつつ、並行してアーキテクトとしてのスキルを身につけていきたいところです。
簡単に身につくスキルではありませんが、早い段階でキャリアパスを描いて進んでいけばたどり着くキャリアだと筆者は考えます。
スキルチャレンジ〜資格合格を目指してみよう
セキュリティに関する資格には「情報セキュリティスペシャリスト試験」と「情報セキュリティマネジメント試験」の2つがあります。
情報セキュリティスペシャリスト試験
この試験はIPA:情報処理推進機構が実施する試験で、プログラマーのみなさんなら基本情報技術者試験や応用情報処理技術者試験など一度は聞いたことがある試験を実施する団体が運営しています。
本試験は業務分析・設計・製造・運用までセキュリティ管理やシステム整備ができるスキルを問うため、セキュリティエンジニアを目指すのであれば必須とも言える試験です。
セキュリティ分野の重要性は上にも書いたようにどんどん高まっていますので、ITエンジニアやプログラマーなら誰にでもおすすめできる試験とも言えます。
情報セキュリティマネジメント試験
この試験もIPAが主催する試験でシステムの脆弱性や危険度の評価、さらに対策実施や支援できるスキルを問う試験です。
情報セキュリティスペシャリスト試験に内容が似ている印象を受けますが、この試験はITを利用する方を対象とした試験のため、この試験は比較的難易度が低いです。セキュリティのスキルをあまり意識してこなかった場合、こちらの試験からチャレンジするのも良いでしょう。
なおこの試験は平成28年春期試験から始まりました。合格率は88%と非常に高いものでしたが、今後難易度は変化すると思われます。セキュリティの基礎を確認するための勉強やモチベーション維持を目的とした受験としては良い難易度ですね。
差をつけるプログラマーになるにはセキュリティのスキルがおすすめ
この記事ではプログラマーがセキュリティを勉強する理由などをお話ししました。みなさんは他のプログラマーと差をつけるためにスキルアップや自己啓発をしていますか?
セキュリティはあらゆるシステムに関わるため汎用性が高く、アピールの機会が多いスキルです。プログラマーのステップアップやエンジニアへの転身に有利に働きますので、ぜひセキュリティのスキルを高めることもチャレンジして下さいね。
参照:ITエンジニアが絶対取得すべき資格ランキングを紹介した記事はこちら
フリーランスになるために必要な知識やスキルアップの方法等、様々なお役立ち情報を発信していきます。
(リモートワーク案件に強いフリーランスエージェント「クラウドワークス テック」を運営)