この記事を書いているちょうど今頃、世間では「ドコモ口座の不正利用」問題が明らかになり、改めてセキュリティと利便性の実現バランスを考えさせられます。昨年は、モバイル決済サービスの一つである「7pay(セブンペイ)」に不正利用被害が発生し、サービスそのものが廃止されるということもありましたよね。

建物であってもセキュリティと利便性がトレードオフの関係にあるのは同じことで、玄関に5箇所の異なる鍵を設置すれば、玄関からの侵入は相当困難になりますが、一方で、普段の生活においては不便さが増し、結局の所、「5箇所の鍵のうち2箇所だけ使おう」といった具合に、運用でセキュリティレベルを緩めてしまう場合もありそうです。
ネット上のサービスに例えれば、「入力が面倒だからサービスに用意されている多段階認証を使用せず、IDとパスワードだけの一番入力の少ない認証だけでいいや」という使い方をするのが、上記で言えば、建物に用意された鍵をフルに使用しない状態と同じです。

「我が社の建てる住宅では、絶対に5箇所の施錠をしないとアラームが鳴り続ける仕様になっていて、セキュリティは万全です!」…確かにそうなのでしょうけれど、ゴミを捨てに近くのゴミ集積所に行くにも5箇所施錠が必要だとしたら、残念ながら爆売れの人気物件にはならないような気がします。いろいろなインターネットサービスの立ち上げ等に関わってきましたが、セキュリティと利便性とのトレードオフには毎回悩まされます。

今や、「ITシステムのセキュリティ」は、サービス運営企業の信用・信頼に関わる大きな要素の一つとなりました。しかし、私が現場に出ていろいろなお客様から伺うお話、実際に目にする成果物(設計書やプログラムソース)からは、残念ながらITシステムに関わるエンジニアのセキュリティに対する関心・スキルには相当な差がある(あまりにも有名な最低限の対応さえ講じられていない劣悪なものもある)のを感じます。

そこで、今回は、御社システムやITサービスの開発・運用アウトソース先のエンジニアが、どの程度のセキュリティ意識・関心を持っているか、または、トレーニングを受けているか等々を判断する材料として簡単なチェックリストを作ってみました。
「スキルの高低を判断する」というよりは、「セキュリティに興味・関心を寄せる人は、こういうこと知ってそう」という内容を並べてみます。

尋問のようにならないよう、雑談に織り交ぜたりしながらリラックスした状態で確認してみてくださいね。

ヒアリングしている様子の画像

ヒアリングしてみましょう!

一般的なトピックについて聞いてみましょう

次のような知識事項にアンテナが張られているかな?を確認できれば十分だと思います。「正しい・正しくない」のような正誤を付けたいのではなく、セキュリティに関する情報収集を行っているか、自分なりの考え方を持っているかを確認してみましょう。

最近のWebサイトは、「https://」で始まるものがほとんどになりました。「http://」と「https://」の違いって何ですか?
ユーザーがログインする時に入力する「パスワードをそのままデータベースに保存してはいけない」と聞きました。どうやって保存するのですか?
以前は定期的にパスワード変更することが良いとされていたような気がしますが、最近でもそうなのですか?
「ゼロトラスト」という言葉を目にすることがありました。これまでのセキュリティ施策と異なる考え方なのでしょうか?
客先デモで使用したいので自社の開発サーバーに客先からアクセスしたいのですが、一般にはどんな方法がありますか?

技術担当者に聞いてみましょう

ここは、「実際に手を動かしている」エンジニアに聞いてみると良いでしょう。開発現場がアウトソース先だと顔を合わせる機会が多くはないかもしれませんが、打ち合わせの終わり際やエレベーターまでの見送り時等、雑談話題にでもしてみましょう。

セキュリティ対応はパーフェクトを目指せばキリが無いと思うのですが、プログラミング部分について「これだけは絶対」と、ガイドライン的に活用している情報はありますか?
「SQLインジェクション」や「コマンドインジェクション」とは、どういった攻撃を指すのですか?
また、当社のシステムではどのように対応されていますか?

※. 他にも、プログラミング上のセキュリティ用語はいろいろあるのですが、「SQLインジェクション」や「コマンドインジェクション」は、他の用語と比べ、図解など無くても比較的簡単に説明しやすい概念なので取り上げてみました。

ログイン処理に関して「セキュリティに配慮」している仕様はどのあたりになりますか?
当社のシステム以外を含め、第三者の「セキュリティ診断」サービスを活用したことがありますか?
その際は、どのような指摘内容がありましたか?

※. 当事者としてまたは主体的に関わった場合は、どんな指摘があったか記憶しているものです。「どのような指摘内容がありましたか?」に回答できない場合は、作業レベルで手伝ったものの自分が主担当に近い立場ではなかったと思われ、スキルとして評価できるものではないと考えられます。

当社のシステムでは、不正なアクセス等があった場合、ログを活用すれば分かるようになっていますか?

※. 他社の指示の下での設計・プログラミング経験しか無い場合、セキュリティを含め「運用開始後」をイメージできない(結果、必要なログを用意できない。開発作業用のログしか出力しない)エンジニアが多いです。システム運用経験は結構重要なスキルです。

経験などを確認してみましょう!

これまで、私自身がエンジニアの選考をする時に、セキュリティ面においてどのような観点を確認してきたかを振り返ってみました。私自身の経歴によって偏っている部分がありそうですが、次のような部分は確認してきました。

評価してきた保有資格

  • 情報処理技術者試験:システム監査技術者
  • 情報処理技術者試験:情報処理安全確保支援士
  • 情報処理技術者試験:ネットワークスペシャリスト
  • 個人情報保護士認定試験
  • その他、理論だけではなく作業レベルまで問うようなネットワーク系試験

評価してきた経験

  • 所属組織内のISO, ISMS等のマネジメントシステム設計・運用経験
  • 所属組織のプライバシーマーク取得・運用経験
  • 所属組織のネットワーク構築・運用経験(機器調達や設定等あればなお良い)
  • インターネットサービスの立ち上げ・運用
  • ITシステムの運用・監視

お役に立ちそうでしょうか?

ITシステムやサービスの初期立ち上げ時は、作業規模(工期、工数)が大きいことが多く、必然的に関わるエンジニア数が多くなります。
すると、その中にセキュリティに明るいエンジニアが含まれる可能性が高くなりますし、また、予算規模が大きいため、セキュリティ面の手当て(外部の脆弱性診断サービスを受ける等)が講じられることも多いのではないかと思います。

一方、運用が始まってからは、最低限の人員構成または兼任で運用チームが構成されることが多く、日々進歩していく外部からの攻撃手法への対応や、それらに対応するためのシステムアップデートへのキャッチアップが出来ないということが発生し易くなります。

そのような中に合って「セキュリティに無頓着」なエンジニアの存在はリスク具現化の可能性が高まることに繋がります。

社内エンジニアのアサイン、外部からのエンジニアの調達、いずれの場合であっても、「どの程度のセキュリティ知識が求められるポジションか」に相応な知識を持っているかどうか、是非、一度確認をしてみてください。