セキュリティチェックとの戦い
※本記事は、各担当記事を広報チームが代行して作成しています。
はじめまして、スクラムギアチームの高橋元です。
Skillnote Advent Calendar4日目は、私が入社以来格闘してきたセキュリティチェック対応に関する変遷について書いていきたいと思います。
入社当時の状況
プロダクトも会社も随分成長したものだと実感しています。弊社のプロダクトは2021年にリニューアルしましたが、レガシープロダクトも絶賛現役で稼働しています。
私はレガシープロダクトの担当をメインにジョインしましたが、開発Div.のリソースを新プロダクトの機能追加に全振りさせるべく、情シスっぽいものやらこぼれ落ちているよしなしごとを拾いきっていくと勝手に使命感を持っていました。
そんな中で始めたこと
オンプレ上で稼働していたレガシープロダクトをクラウド化させる案件がありました。
その際にEC2にウイルス検知やら改ざん検知、マルウェアの検知のツール構築のほか、通知周りとログローテーション周りを整備していきました。
その際に、無料で利用していた利用制限ありの監視サービスから 自前の監視サーバー に切り替えたり、社内利用のツールを入れたりと、なにやらセキュリティ周りの知見が増えてきたことでセキュリティチェックシートも一手に担いました。(全部拾うって使命感があったしね ドヤッ)
難しかったところ
WEBアプリケーションのよくある脆弱性や、暗号化についての通り一辺倒のことは知りつつも、セキュリティやらインフラは素人でしたので専門的な内容はチンプンカンプン。シンプルに大変でした。そんな中でもセキュリティチェックシートの回答のツラミは以下の特徴があるかなぁなどと思っております。
誰に向けた質問か?を読み解く必要がある
セキュリティチェックシートは、「サービスを利用されるお客様が事業者である私達に向けた質問であるパターン」と、「サービスを利用されるお客様のセキュリティ部門が、サービスを利用されるお客様に向けた質問であるパターン」の2種があります。
後者は本来であればお客様が回答する箇所ではありますが、専門的な知識を必要とするため弊社が代理で記入することもあります。すると、質問が同じ記述内容でも別の意味になることがあり、注意深く主語と述語を読み解く必要があります。
実現しきれていない機能への回答
生まれたてほやほやのプロダクトは全てのセキュリティ要件に応えることはもちろん難しいです。とは言うものの「満たしていません、以上!」のような回答は心苦しく、機能としては備えていないが、機能を組み合わせることでなんとか及第点を出せるというようなことも多かったです。
そんなこんなでセキュリティチェックシート回答マシーンと化していましたが、割と工数を取られてしまうという問題はどうしてもありました。当時は一項目2千円で有料化することを真剣に考えていましたが、開発以外でも対応できるように仕組みを整えることにしました。
なるべく開発以外でも対応できるようにする
通常、お客様からセールス、またはカスタマーサポート部門にセキュリティチェックの依頼があり、そこから開発に依頼がくるという流れが一般的かと思います。そこで、セールスやカスタマーサポート部門に事例集のようなものを集めて事前に記入いただいて、回答が難しいものを開発部門で対応することとしました。事例もそれなりに集まり、運用が回り始めたかなと思ったものの、みんな忙しい中、個々人の差や確認のやりとりに時間がかかるといった問題があり、わりと素早く破綻しました。
「そうだ!お客様に事前に回答を埋めてもらおう!」
閃いた私は頻繁に要求される事項と回答をまとめあげ「公開用セキュリティチェックシート」なるものを本当にサービスサイトに公開しました。
これで劇的に工数が減るはず!と夢想したものの、思うほどの成果は上がらず、セキュリティチェックシート回答マシーンとしての日々を過ごしました。(ダウンロード数をたまにチェックしていましたが、悲しいアクセス数でした)
特定の個人に業務知識が集まってしまうことを一般に属人化すると称しますが、まさに属人化が進む一方でした。
ここで突如「公開用セキュリティチェックシート」が光明を見せました。お客様向けに作った回答例をもとに、属人化まっしぐらであった業務を一気に標準化する道筋ができたのです!
実際のところ標準化ができたのは取り組み始めて一ヶ月程度であったかなと推測しています(割と早い)。セキュリティチェックシートの持ち回りはシニア、ミドル層だけではなく、経験3年程度のジュニア層でも担当します。初めて受け持つエンジニアは回答のレビュー依頼を出したり、一緒に進めていったりと完全に自走することは難しいですが、それでも一ヶ月程度あればなんとかなります。
こうして標準化をすることができたセキュリティチェックシートの対応ですが、やはり課題はあるものです。
今後の課題
プロダクトの成長に伴う陳腐化
セキュリティチェックシートを公開したのは2~3年前で、幾度かの改定を行ってきましたが、プロダクトの加速的な成長に伴って陳腐化が目立ってきました。まぁ、さっさと更新しろよというところではありますが、優先度を上げづらい業務ではあります(Excelを更新して、zipで固めて、アップロードして、と割とめんどくさい気持ちが)。
セキュリティ要求の高度化
続いて、セキュリティ要求の高度化が挙げられます。少し前までのセキュリティ要求は経産省フォーマット(と私が勝手に呼んでいます。正しくは SaaS 向け SLA におけるサービスレベル項目のモデルケース ,クラウドサービスレベルのチェックリストの2つです)そのままか、少しカスタマイズしたリストが中心でした。こういったフォーマットであれば回答もほぼ同じ内容になるため、一様の対応が可能ですが、ここ三ヶ月で経産省フォーマットを大きく超えた各社独自のセキュリティ要求が散見されるようになりました。
回答の個人差・ブレ
そのような背景のもと、回答者による内容の差が生じ始めました。品質の担保にはレビューの工数を割くこととなりますが、事後のサポートだけではなく予め教育の場をもたせる必要があるかもしれません。
無視できない工数
標準化が進み、漸次的に効率化がされてきたとはいえ、いずれにせよ工数を無視することはできず、さらなる改善が求められます。
最後に
SaaS各社で既に検証・導入を進められていますが、当社においても生成AIを活用したセキュリティチェックシート回答の改善検証を開始しています。回答工数の削減だけではなく、最新の回答内容を継続学習させていくことで陳腐化を防ぎ、高度化する要求への対応が期待できます。
ただ、一方でセキュリティ要求に回答をするということは、WEBアプリケーションの攻撃と防御、広範なインフラ知識、導入企業における行動証跡の重要性、規格の知識、コンプライアンスのための体制の理解など、幅広い知識を要します。
それはただの業務として割り切ることもできますが、エンジニアの鍛錬の場の一つになるのではと捉えています。生成AIによる「よくわからんがなんとなくできた!工数削減!」を一つの到達点とはしつつも、幅広い知識を習得する場というものをなんらかの形で残していきたいなと漠然と思っております。(完)
引き続きSkillnote Advent Calendar2024をお楽しみください!