こんにちは。インフラストラクチャー部セキュリティグループの水谷(@m_mizutani)です。2018年10月31日にクックパッドにて Security Engineering Casual Talks #1 を開催しました。
セキュリティに関する様々なトピックが議論されている昨今ですが、「実際のところサービス開発や運用にどうセキュリティを組み込んでいるのか」という話はまだなかなか表にでてこない、と感じる方もいらっしゃるのではないでしょうか。各種製品・サービスによってセキュリティを高めるための手段は増えてきましたが、それを自社のサービスやプロダクト、社内のセキュリティ運用にどう役立てているか、あるいはどのような工夫をして運用されているのかの知見は組織に閉じてしまっていることがまだまだ多いかと思います。
この会は「開発や運用に実際携わっているエンジニア」があつまって「現場におけるセキュリティに対し、エンジニアはどのようにアプローチしているのか」にフォーカスし、ビールでも飲みながらざっくばらんに話せるように、ということを目的として開催しました。
第1回は「クラウドサービスでつくるセキュリティ」と題してクックパッドを含む3社からの発表がありました。各クラウドサービスが提供しているセキュリティ機能をどのように実環境で構築・実用化し、どのように運用しているのか?という実情について話をしました。
[発表1] 自由でセキュアな環境のつくりかた by @kani_b
1件目の発表は弊社の星(@kani_b)が「自由でセキュアな環境のつくりかた」と題して、いかにセキュリティを維持しつつ開発者が自由にAWSを使える環境を作るかというテーマについて話しました。
[発表2] 踏み台環境のあれそれ by @ken5scal
2件目の発表はFolioの @ken5scalさんによる「踏み台環境のあれそれ」で、クラウド環境における踏み台を Folio でどのように構築しているかという話をしていただきました。Folioでは Teleportというリモートアクセスをサポートするツールを活用して実際の運用をされているとのことでした。
残念ながらsshから完全に開放されるわけではないとのことでしたが、WebUIから使えるコンソールを利用したりロールなどに基づいたログインの制御ができる点でメリットがあるようでした。まだAWS環境との密な連携ができなかったり、Enterprise版でしか使えない機能もあったり、構築・管理・運用での課題もなくはないので完璧というわけではないようですが、参加者の皆さんも反応をみるとかなり実用的に使える段階に来ているのではないか、ということを実感できているようでした。
[発表3] 開発現場で使えるAWS KMS by okzk
3件目の発表はCyberAgentのokzkさんによる「開発現場で使えるAWS KMS」でAWSのKMS、およびAWS System Manager の Parameter StoreやAWS Secrets Managerについてご紹介いただきました。それぞれで秘匿値を扱う際のポイントやtipsなどを共有してもらいました。
個人的に面白かったのはKMSやSecrets Managerによって秘匿値を取り出す実装をアプリに持たないようにしているということです。ではどうするかというと実際にKMSやSecretsManagerにアクセスする実装 env-injectorが秘匿値を取得し、アプリとなるプロセスを起動させる際に環境変数で渡すようにしているとのことでした。これによってアプリ側では実行環境に依存せず、透過的に環境変数から秘匿値を引き出せるため実装がシンプルになって管理しやすくなるというメリットがあり、実践的で参考になるtipsだなと感じました。
次回開催に向けて
懇親会中に「次回以降で聞きたいネタをホワイトボードに書き込んでください」というお願いをしてみたところ、想像以上にいろいろなトピックが集まりました。どのトピックも「で、実際のところどうなのよ」というのがなかなか見えにくく、気になる方は少なくないのではないかなと想像しています。
- データ暗号化ってぶっちゃけどうしてるの(対象、方法とか)
- エンドポイントセキュリティ・FIMどうしてますか
- DBのクエリログとってますか、監査してますか
- 予算どう確保&上に説明していますか
- マイクロサービスとセキュリティ
- CI、CDの文脈におけるセキュリティ、監査
- FaaSの権限管理
- セキュリティ部署の立ち上げ、各サービスのセキュリティを保障する方法
- docker imageとかLambdaの脆弱性診断
- 開発環境のアクセス制限
- 開発者にどれくらい権限を渡しているか@本番環境
- どれくらいアップデート作業をちゃんとやってますか
- 複数サービスの権限管理
- 誰に本番のアクセス権限を渡すのか(ルール・選別・etc)
- 固定IP以外での接続制限(クライアント証明書以外)
- 社員のID管理
- イケてる社内NW
今後も参加していただいた皆さんにあげていただいたトピックを中心としてSecurity Engineering Casual Talksを開催していきたいと考えています。次回は年明けあたりで開催したいと考えていますので、興味のある方はぜひご参加いただければと思います!!