Slide 1

Slide 1 text

freee 株式会社
 スタートアップがSecurityをSREから担保するには?
 B2B SaaS Tech 2019-07-31


Slide 2

Slide 2 text

10年間、受託開発。TCP/IPとかLinux Kernel netfilter
 10年間、MSSPでUTMのOSとサービス基盤を開発
 
 2017年12月にfreeeにjoin
 Eiji Sugiura 杉浦 英史
 freee株式会社 
 CSIRT専属エンジニア
 2 Incident Response
 SRE


Slide 3

Slide 3 text

freee 株式会社
 3


Slide 4

Slide 4 text

創業からIPOまで、中小企業活性化のためのサービスを一気通貫で提供
 freee会社概要
 ❂ 納税する
 ↗ 育てる
 ↻ 運営する 
 ✩ はじめる
 会社設立 freee
 開業 freee
 クラウド会計ソフト freee 
 人事労務 freee
 (マイナンバー管理 freee 含む) 
 クラウド申告 freee
 161億603万円 (資本準備金等含む) 従業員数 事業内容 クラウド型バックオフィスサービスの開発・販売 資本金 設立年月日 2012年7月 505名(2019年1月末時点) 2017年「働きがいのある会社」 ランキング3位 4


Slide 5

Slide 5 text

会計・給与共に法人シェアNo.1
 クラウド給与ソフト
 市場
 40% クラウド会計ソフト
 市場
 35.2% 100万
 事業所
 以上
 10万
 事業所
 以上
 * BCN調べ * MM総研調べ * 2017年8月より、クラウド給与計算ソフト freeeは、機能を強化し、新たに 「人事労務 freee」というサービス名に変更しました。  
 5

Slide 6

Slide 6 text

6 成長企業においての導入が進む
 41 社 資金調達TOP100社における freee 導入社数 *VCからの資金調達額TOP100社: 直近1年で1億円以上の 資金調達をした企業 を対象に調査。 6


Slide 7

Slide 7 text

01 freee の直面する恐怖
 7
 Section

Slide 8

Slide 8 text

最新テクノロジーでリアルタイムデータ収集
 8 クレジット
 金融機関
 決済サービス
 業務データ
 freee Core Engine 


Slide 9

Slide 9 text

9 9 金融機関・
 各種サービス連携数
 4,000 以上
 ※2019年1月時点
 POSレジ
 金融機関
 ログイン・ 認証
 業務システム
 ECサイト
 共有ツール
 決済サービス
 ファイル取込
 クラウド会計ソフト 業界最多の連携数を実現 9


Slide 10

Slide 10 text

生の経営情報
 深刻な情報漏洩
 金融機関サイトからのスクレイピング、API連携
 10


Slide 11

Slide 11 text

freeeの失敗=Fintech業界の危機
 一企業を超えた悪影響
 Fintech業界のセキュリティにおいて重要な役割を担っている
 11


Slide 12

Slide 12 text

Culture of Developers 開発文化 12 品質を犠牲にしない最高速度 最優先するミッションは、高速リリースにより顧客に価値を届けること リリースには、顧客にとって価値がある最低限の品質が求められる 速さと品質を両立するために、自動化や開発プロセスの工夫を行なう トラッカビリティ大事 プロダクトや施策は作りっぱなしにせず追跡可能な状態にしておく 推測より計測:反復するかどうかは、計測されたデータを見て決める 失敗して攻めよう 学びのある失敗をして最速で成長しよう 学びのある失敗=チームやプロダクトの成長につながる失敗 学びのある失敗をしていない=成長への挑戦が足りない あえて、共有する あえて、記事に残す チームの壁を突き抜けろ! freeeの開発文化は、開発をする上で実際に全員が 意識している判断基準です

Slide 13

Slide 13 text

スタートアップらしくリスクは取り、
 高いセキュリティも実現する
 あえて、二兎を追う
 13


Slide 14

Slide 14 text

02 CloudNative SaaSをどう守る?
 14
 Section

Slide 15

Slide 15 text

VPC 外部と内部からの侵入を想定
 想定攻略経路/Cyber Kill Chain
 Security group Availability Zone web ALB log jpeg pdf Redis Amazon RDS WAF Instance Profile Users GuardDuty Gotanda HQ Developer Maintainer Step 15


Slide 16

Slide 16 text

VPC 外部と内部からの侵入を想定
 想定攻略経路/Cyber Kill Chain
 Security group Availability Zone web ALB log jpeg pdf Redis Amazon RDS Instance Profile Users GuardDuty Gotanda HQ Developer Maintainer Step intruder intruder WAF 16


Slide 17

Slide 17 text

ログを残さないと、検知できない
 Access Log, Deny/Accept Log
 17


Slide 18

Slide 18 text

Logを集める = S3 Centric Apploach
 VPC ALB Flow logs WAF Firehose Redshift Log Elasticsearch 18


Slide 19

Slide 19 text

外部からの侵入
 HTTP request regex filter
 L3/L4 restriction
 IPS = HTTP request signature filter
 
 Ratelimit/session/URI
 Application Logic
 AntiMalware
 LogInspection
 IntegrityCheck
 ALB WAF Security Group Flow logs 19


Slide 20

Slide 20 text

VPC 内部からの侵入
 MFA
 IP restriction
 Login/Logout
 Remote copy restriction
 Console logging
 web api Gotanda HQ Step 20


Slide 21

Slide 21 text

PR出さないと、変更できない
 Change History, Review
 21


Slide 22

Slide 22 text

Codeで記述する
 VPC Security Group  Auto Scaling group ALB IAM 22


Slide 23

Slide 23 text

SREって何をしてる?
 新しい環境への先導役
 Kubernetes on AWSの場合
 
 23


Slide 24

Slide 24 text

03 Securityを意識したSaaSを作るに は?
 Section 24


Slide 25

Slide 25 text

Security Group Namespace ClusterにNamespaceは1つだけ
 EKS / Single Cluster でサービスするには...
 WAF GuardDuty IAM Node Node Node worker nodeにいれるには?
 
 k8s未対応?
 使えない?
 流用できそう
 Flow logs 直kubectl exec -it $POD bash
 ログなしでアクセス可能
 EKS 25


Slide 26

Slide 26 text

伝統的なtoolは、k8s非対応?
 IPS/AntiMalwareが動かない?
 worker nodeにいれるには?
 k8s signatureある?
 podで入れられる
 default ruleでOK?
 
 26


Slide 27

Slide 27 text

SecurityGroup、FlowLogがk8s非対応
 Namespaceの中は把握できない?
 Security Group Namespace Node Node Node EKS podで入れられる
 L3/L4/L7 Firewall
 
 27


Slide 28

Slide 28 text

内部からの侵入が容易?
 MFA
 IP restriction
 Login/Logout
 Remote copy restriction
 Console logging
 Gotanda HQ Namespace Node Session Manager 直kubectl exec -it $POD /bin/bashを許さない
 28


Slide 29

Slide 29 text

これまでのものだけでは記述できない
 Clusterを何で記述する?
 Security Group Namespace Node IAM ECR EKS HELMFILE ekscluster 29


Slide 30

Slide 30 text

DevSecOps
 普通にcode書いてdeployしたら、secure SaaSになる仕組み
 code書かないとdeploy出来ません
 
 30


Slide 31

Slide 31 text

まとめ Logがないと検知できない
 
 Passive/Active Defence
 
 PR出さないと変更できない
 
 yaml書かないと、releaseできない
 なければ作る
 
 Hack Everything★
 共有する
 
 みんなで感じる、考える
 31

Slide 32

Slide 32 text

32 ● サイバー脅威を知る
 ○ サイバー脅威を知るには、攻撃者の思考を知るのが一番
 ● 脆弱性を探せ!
 ○ あえてヨワヨワにしたプロダクトを、修正・強化する研修プログラム
 ○ 実際に攻撃をうける体験をすることで、セキュリティ意識を醸成
 新人研修でHardening Program
 Private Network
 Shared System:zzz.zzz.zzz.zzz 会計 認証基盤 DB 人事労務 KVS Team A システム
 xxx.xxx.xxx.xxx
 application Team B システム
 yyy.yyy.yyy.yyy
 application 攻撃者
 攻撃
 ユーザX
 登録
 閲覧
 ユーザY
 登録
 閲覧
 通常
 利用


Slide 33

Slide 33 text

カジュアルに失敗から何を学んだかを共有する
 希望者によるLT形式
 月1回の「失敗.js」
 33


Slide 34

Slide 34 text

Engineer組織としてSecureになる
 Security Engineerなんていない世界
 Monitoring, Vulnability management, Incident Responseについては、またの機会に...
 
 34


Slide 35

Slide 35 text

スモールビジネスを、
 世界の主役に。
 35