10Xセキュリティチームの沢田(@swdyh)です。10Xアドベントカレンダー2024 の26日目の記事です。昨日は@yutatatatata さんの「商品データの裏側を覗く:意外に知らない商品IDの世界」という記事でした。自分も商品データに関する開発をしていた時期がけっこうあったので、奥が深くて面白いなと思って読みました。
先日、情報処理安全確保支援士の試験を受けたのですが、今日が結果の発表日でした。結果は不合格でした。JavaScriptのコードができてたり、画面を描く問題あったりして面白く解いてたはずだったんですが、午後の点数が57点で、あと1歩でした。またがんばります。
今日の記事では、セキュリティチームの日々の取り組みについて紹介したいと思います。
プロダクトの設計と実装レビュー
社内で書かれたDesign Docに一通りチームで目を通すようにしていて、気になるものあればレビューをするようにしています。また開発チームから、ここ気になるのでみてほしい言われることもあります。また実装されたときのコードレビューもやれる範囲でやっています。レビュー対象は、外部連携だったり、認証に関わるものが多かったりします。最近の事例だとOpenID Connect連携があります。
安全なサービスを提供するというのが第一の目的ではありますが、自分も元は開発をしていて、そういう大事な部分をつくるときには、これで大丈夫なはずだけど、、、みたいな不安を持っていたので、そういう開発者の不安を減らすこともできればと思っています。
プロダクトに関わる脆弱性アラートのトリアージ
GitHubの全リポジトリでDependabotのチェックを有効化し、新しくてできたアラートにに対処しています。さっと更新できそうなものは更新しつつ、そうでなくて影響がありそうなものは、issueを作って調査しています。
それとは別で、全範囲に適用できていないものの、Renovateを運用していて脆弱性のあるなしにかかわらず日々依存パッケージ更新できるようにしていて、こっちの更新でアラートが解消する場合もあります。
それから各リポジトリの更新できていないパッケージ情報集めるスクリプトを書いて、可視化するツールをお試しで作っていて、全体でどれくらい溜まっているとか、どのあたりのパッケージが手当されていないのかなどが分かるようにしています。
クレデンシャルレビュー
サービス連携などの使われるクレデンシャルを発行して使うケースで、それらの情報を記録し、管理方法や権限の強さや範囲をレビューするようにしています。過去、Secret Managerや1Passwordなどに用途不明のsecretがある状態になってしまっていたために、それはら棚卸ししつつ新規に発行するものにつては記録をしようということで始めました。クレデンシャルでできることは、その目的に対して最小限のものになっていてほしいところですが、そもそも細かく権限を指定できるサービスも多くなかったりして、大きめの権限を要求するサービス連携が多いのが悩み種だったりします。あとWorkload Identity Federationが普及してほしいなと日々感じています。Workload Identity Federationであっても適切に設定されているかのレビューは必要ですが、クレデンシャルそのものがないというのは安心ですね。
外部セキュリティアドバイザーとの相談会
セキュリティに関わる施策の相談や、設計レビュー、そのほか悩み事を相談をさせてもらっています。もともとチームメンバーがセキュリティ専門でないことを補うために始めた取り組みですが、悩みはつきないし、自分たちでは気づきにくい視点を得られるため大変助かっています。開発チームから開発担当者を呼んでいっしょにレビュー会をすることもあります。
アクセス制御不備チェック会
定期的に脆弱性診断を実施していますが、よく見つかるのが、本来アクセスできてはいけないデータにアクセスできてしまうケースで、パラメータのチェックが足りていなかったり、認可のチェックが足りていなかったりするものです。これに類似したケースは見つかってないだけで、他にもあるだろうということで、エンドポイントを1から眺めて同じようなパターンがないかを確認するという作業をはじめました。なかなか地味で果てのない作業なので、それぞれの担当場所のコードを読みながら、これどういうことなんだろうとか、ここちょっと危ないかも、みたいなことを話しながらやっています。実際に危なそうな箇所をみつけることもあり、成果もあるんですが、これをずっと続けるのはコストが高いので、ある程度読み進めた中で、いくつかパターンをまとめ、そういうこと自体がおきにくくする仕組みを作れないかみたいなことを考えたいと思っています。
セキュリティ輪読会
セキュリティに関する本やWebの記事を読みながら話合う会をしています。事前準備なしで参加者のた誰かが本文を読み上げ、気になるところがあれば都度話をしながら進めています。これもセキュリティの専門性を補うためにはじめた取り組みですが、ときどき仕事のなかでも「あの本のあれに書いてあった」ということもあったりしています。今年読んだものとしては以下になります。
- Authorization Academy
- ポートスキャナ自作ではじめるペネトレーションテスト
- 基礎から学ぶコンテナセキュリティ
- Software Desifgn - 成功するPSIRTの極意(2024-06,07,08,09)
これらの日々の取り組み以外にも、いろいろな施策をしていて、一部紹介の記事があるので興味のあるかたはこちらも見てみてください。
これからの話
今まではプロダクトセキュリティをメインに担当していましたが、それに加えて、コーポレートセキュリティ/コーポレートIT領域もやっていくことになりました。いくつかの経緯があってこうなったのですが、それぞれの領域は重なっている部分も多く、ソーシャルエンジニアリングやマルウェアなどの攻撃が高度化してるなかで、プロダクトという枠を超えていくことでやれることも多くあると思っています。
こんなセキュリティチームで、コーポレートIT/コーポレートセキュリティ領域メインに一緒にやってもらえる方を募集しはじめました。応募とまではいかなくても、少しでも興味があるかたは声をかけてもらえると嬉しいです。
明日のアドベントカレンダーは、代表の矢本さんの記事です。おたのしみに。