1
/
5

とあるサーバーサイドエンジニアのキャリアシフト〜未経験からセキュリティエンジニアになれた理由〜

サイバーエージェントでは、グループ会社も含め様々な事業やプロダクトを開発していますが、セキュリティリスクを回避するために、組織を横断して安全性を担保する「システムセキュリティ推進グループ」というチームがあります。

発足して約7年のチームですが、2017年1月にセキュリティ未経験のサーバーサイドエンジニアが入社し、現在は様々なサービスのセキュリティ向上に携わっています。

どんなキャリアやスキルセットをもったエンジニアなのでしょうか。今、サイバーエージェントで求められるセキュリティエンジニア像を聞いてみました。

(左) 小笠原 清志 (オガサワラ キヨシ) システムセキュリティ推進グループ

SIerで8年間様々な業界でインターネットサービスに携わる。2017年1月にサイバーエージェントへ入社。セキュリティ推進グループに配属。セキュリティに関わる業務は入社するまで未経験。

(右) 野渡 志浩 (ノワタリ ユキヒロ) システムセキュリティ推進グループ

セキュリティベンダーやSIerを経て2011年11月にサイバーエージェントに入社。

現在はセキュリティ専任組織のマネージャとして業務にあたり、CyberAgent CSIRTの窓口も兼任している。

サービス開発におけるセキュリティのリアル

-- 今、サイバーエージェントでセキュリティに求められている事はなんですか?

小笠原:例えばユーザーの認証や決済といったセキュリティを考慮する必要のある機能の設計に関わったり、アプリ開発の設計におけるロギングやトレーサビリティの相談があります。また、不正アクセス等、セキュリティインシデントへの対応を求められることもあります。

野渡:認証に関しては、サービス側はFaceBookやGoogleのIDでログインするケースも増えてきました。ただマーケットを見渡すと、独自に認証機能を開発して、そのサービスにあった形に作っていくというところも多いです。サイバーエージェントでもそういったケースはありますので、特に認証やロギングの設計手法などの相談を受けたりします。

-- サービス開発はスピードが優先されがちです。セキュリティの担保はどのように実現していくのでしょうか。

野渡:たしかにサービスにおいてセキュリティは、担保しないと事業が維持できない機能ではありません。しかし対策が不十分でセキュリティ事故が発生した場合、ユーザーを適切に保護できないうえに、事業の継続性・信頼性に致命的なダメージをもたらします。また、解決するためのログがないといった状態にも陥ります。先程、小笠原さんが「ロギングを含めた設計手法」と言っていたのはまさにそれです。

小笠原:はい。サービス開発におけるセキュリティの担保はとにかく先回りすることです。セキュリティの問題が起こった時に備え、必要な機能を実装しておく、あるいはセキュリティの機能を後から追加しやすいような設計にしておく。

このように初期設計時からサービス開発に一緒に関わり、セキュリティ的な必要機能を満たすことで、結果的にセキュリティを担保できるようにするのが我々の仕事だと思っています。

野渡:そうですね。サイバーエージェントではこういったサービス開発とセキュリティの歩み寄りがうまくできてきた感じはします。

セキュリティ専任の組織ができた頃はリリース前に脆弱性診断を実施するという施策を展開するのみで、設計段階で関わるということも稀でした。

また、サービスもブログやゲームなど住所や決済情報など直接的な個人情報を取り扱うことも少なかったためです。

小笠原:確かに、IDとパスワードとメールだけ登録していればサービスは使えますからね。

野渡:しかし最近はアイテム購入などの決済や金融関連事業、マッチングサービスのように機密性の高い個人情報を扱う必要があります。そうなるとコミュニケーションサービスの時に使っている機能だけでは、セキュリティは不十分になります。

事業を守るためにセキュリティを高めたいというサービスは、マーケット全体を見渡してもどんどん増えていくと思います。

セキュリティ未経験でも一緒に働きたかった理由

-- 今、サイバーエージェントのセキュリティ推進グループに求められる人材とは?

野渡:サイバーエージェントグループではAbemaTVやアメーバブログなどインターネットメディア事業に加えて、マッチングサービスや金融関連等、多様な事業があり、サービスごとに求められるセキュリティのニーズも異なります。その多様なニーズに応えるためには、セキュリティチームも多様性をもっている必要があります。

それはシステムセキュリティ推進グループのチーム構成にもあらわれていて、以前はどちらかと言えばハッキング対策に詳しい、今だとホワイトハッカーと言われるような人材を中心に構成されていましたが、今では3分の1ぐらいはプロダクト開発で幅広い経験を積んだエンジニアが占めています。開発経験がない方もディレクションという立場で脆弱性診断やセキュリティ維持に必要なオペレーションに関わっているので、多様性のあるチームになっています。

その中でも特に求められているのが、小笠原さんのようなプロダクト開発で幅広い開発経験を積んだサーバサイドエンジニアです。

-- 小笠原さんはセキュリティエンジニアを目指して転職活動していたのですか?

小笠原:元々はJavaやNode.jsを用いたサーバーサイドやフロントエンドの開発を主に行っていました。転職活動をしていた時も、サービスの開発エンジニアという軸でポジションを探していました。セキュリティの専門知識や経験はゼロです。

もともとセキュリティには興味があったので、コーポレートサイトから応募しました。選考が進む中で、野渡さんと話すことになり、結果的に選考が通ってシステムセキュリティ推進グループに配属になりました。

-- 野渡さんは小笠原さんのプロフィールにどんな可能性を感じたのですか?

野渡:これはあくまで私の考えなのですが、サービス開発に一通り関わったエンジニアであれば、セキュリティの勘所を経験則として理解をしていて、サイバーエージェントのようなサービスを開発する会社ではその経験が必要な局面があります。

だからこそ、開発エンジニアとしての経験がある人にチームに加わって欲しいと思っていました。

小笠原さんのキャリアには、認証機能の開発経験があり、セキュリティに係わる資格を持っていました。また、会話する中でセキュリティに対する興味も強くもっていたのも良かったです。

システムセキュリティ推進グループには私を含めセキュリティ専門でやってきたエンジニアもいますが、我々とは違う開発経験を持つエンジニアの視野に可能性を感じました。

-- セキュリティは未経験。入社後に技術的についていけるものでしょうか?

小笠原:入社後に習得しなければいけないことは多かったです(笑)。例えばセキュリティはインフラと密接に絡む部分が多いのですが、私はインフラの知識があまりなかったので、入ってから必死で勉強しました。

ただ、未経験の分野にチャレンジすることが個人的には好きなので、あまり苦に感じませんでした。ある程度エンジニアとしての経験があれば、周囲のサポートを積極的にもらうことでキャッチアップできることがわかりました。

事業の成長を止めないためのセキュリティのありかた

-- サービス開発はスピードとクオリティのどちらも求められます。その状況でセキュリティを考慮した開発を行うにはどうしたら良いでしょうか。。

野渡:正直なところ、セキュリティを高めても売り上げが上がるわけではないですよね。また、インフラのようにパフォーマンスチューニングで速度が劇的に上がるわけでもない。

サービス側でもメリットは理解してくれているけれど、事業成果につながる機能とプライオリティを比較すると、どうしても優先度が下がるところです。だからこそ、できるだけ衝突しないということを心がけています。

小笠原:その心がけは私も入社してから特に気をつけるようにしています。セキュリティ的な理屈で言えば実装したほうが良い機能も、サービス開発からすれば「このフェーズでその機能は盛り込めない」というスタンスになります。セキュリティと開発という対立関係ではなく、一緒にセキュリティの課題を解決する仲間だと思ってもらえるような接し方をする。そこは強く意識しています。

野渡:トップダウンなやり方でセキュリティ強化が進められた場合、即効性は高いですが持続力が伴わず長期的にはセキュリティを必要なレベルで維持できないということが起こってしまいます。開発するチームの文化にセキュリティの意識を浸透させていくのが目指すべきゴールなんです。

つまり、我々がいなくても、サービス開発の時にセキュリティが担保されるように設計していく状態が一番理想なのです。

そういう状態を目指すことを考えた時に、開発の現場を知っているセキュリティエンジニアがいるのはやはり心強いです。

-- サイバーエージェントにおけるセキュリティエンジニアで必要な素養はなんですか?

野渡:サービスそのものへの理解と想像力です。そのサービスが何を目指していて、どういうポリシーで運用しているのか。何をKPIとしてこの事業が経営されているのか。この辺りを知らないと、空気が読めずにセキュリティのことばかり押しつけることになりかねないからです。

また、開発を行うエンジニアとの人間関係において、信頼関係をしっかり結ぶための技術的なバックグラウンドは必要です。技術的な好奇心や探究心があれば、その時点での知識や経験が不足していても必ず身につけることができると考えています。

小笠原:確かに、そのサービスで扱われているプログラミング言語であったり、クラウドサービス等について、事前に勉強して背景をしっかり理解した上で、セキュリティ的に守ってほしい勘所を一緒に模索することが必要かもですね。

-- それは具体的にどういうアプローチになるのですか?

野渡:サービスの開発経験があると、チームで開発している中で、セキュリティチームが相談に来るということがどういうことなのか。突然、セキュリティのタスクが差し込まれる状況というのは心情的にどうなのかといったことがわかるので、関係を壊さないように相手に伝えることもできると思っています。

小笠原:例えばセキュリティ的に理想の状態と現状の間でギャップがあった時に、いきなりセキュリティをパーフェクトの状態にするのではなく、段階を踏んで徐々にセキュリティを高めていきましょうといった配慮でしょうか。

それも、少ない工数で効果があがりそうな機能と、がっつり工数を割かないと実現できない機能の見極めなども、サービス開発での経験があってこそだと感じました。

野渡:既に予定されているタスクの把握や、その事業上の背景を理解したり、どのくらいの期間でやろうとしているのか、いま開発チームにどのくらいの負荷がかかっているのか。この辺りも把握するようにしています。

小笠原:チーム開発をしていると、事業KPIを目指すためのエンハンス開発だったり、既存のサービスのリファクタリングだったり、開発を進めていく中でもそういうバランスがあると思うんです。そこにセキュリティの案件を少しずつでいいから入れさせてくださいという感じです。

野渡:セキュリティだけしか見えていないと、現場の事情や会社の方針に従って立てている計画も完全に度外視して、とにかくセキュリティを最優先でやるべきだという前提で話を持って行ってしまう恐れがあります。衝突が発生するのはこういうケースだったりします。

サイバーエージェントでセキュリティエンジニアをやる面白さ

-- サイバーエージェントは幅広いサービスを展開しています。そういう状況下でセキュリティを推進する技術的なおもしろさはなんですか?

野渡:「セキュリティに関わる仕事 = セキュリティを高める仕事」だと思われがちですが、私は真ん中が理想的だと考えています。つまり、事業やフェーズによってセキュリティを強くする時と弱める時があると考えています。セキュリティが強すぎるとユーザーにとっては不便だし、開発もしづらく生産性が下がってしまう。強ければ強いほど良いわけではないんです。

その事業によって、例えば金融関連の情報や個人情報を取り扱う場合は強めに、そうじゃない場合はセキュリティチームの責任で弱めていく。それぞれのサービスごとに異なる脅威を理解して、適正に緩めていくというのもセキュリティエンジニアの仕事です。

会社が多様なサービスを運営していることほど、セキュリティにおける多様な経験も幅広く積み重ねていくことができるため、むしろサイバーエージェントでセキュリティの仕事をすることは非常に面白いと個人的には思っています。

小笠原:入社して1年ですが、それはすごく感じます。インフラ、サーバーサイド、フロントエンド、ネットワークとそれぞれの分野に様々なセキュリティがあり、幅広く知識を身に付ける必要がある。今までアプリの開発だけやってきて、もっと自分の幅を広げたいと考えた時に、それが身につくという点はすごくやりがいがあります。

-- どんな方と一緒に働きたいですか?

野渡:セキュリティの重要性はエンジニアなら誰もが感じていると思います。ただ、興味はあるけどセキュリティの業務経験がないために、セキュリティエンジニアを目指すことを躊躇している人がいたら是非チャレンジしてもらいたいです。長期的には必ず価値のある経験になるはずです。

サービス開発に寄り添ってセキュリティを高めていく上で、開発の経験がある人はとても貴重なので、少しでもセキュリティに興味があればぜひお話をしたいと思います。

株式会社サイバーエージェントでは一緒に働く仲間を募集しています
30 いいね!
30 いいね!
同じタグの記事
今週のランキング