B2B SaaS Tech: 避けては通れぬセキュリティに参加してきた
イベント参加レポート
に参加してきたので自分用にまとめる。
イベント概要
https://b2b-saas.connpass.com/event/137931/
セキュリティツール検証、個人情報保護
藤代 俊祐
BPM株式会社 SFH
資料
https://speakerdeck.com/bpm/shang-chang-shen-cha-niyao-qiu-sareru-sekiyuriteidui-ce-toha
上場企業に要求されるセキュリティ
・義務付けられているものが必要
システム管理基準 追補版(財務報告に係るIT統制ガイダンス)
https://www.meti.go.jp/policy/netsecurity/tuihoban.html
※上場審査の際はこれを読んで対策しておけばOK!
セキュリティ対策の定義は難しい
何を守るか、どう守るか・・・
各方面の利益を守るために必要な対策を考えるしかない
JIS規格の原本は閲覧有料!
SREチーム運用
杉浦 英史
freee株式会社 CSIRT専属エンジニア
資料
https://speakerdeck.com/eijisugiura/sutatoatupugasecuritywosrekaradan-bao-suruniha
クラウドの会計ソフト
ターゲット:従業員300人以下
経営陣が未来を予測する手助け
監査向け書類を発行できる→株式公開すぐできる体制に
会社の財務情報を扱う→情報漏えいは絶対にあってはならない
そうならないよう
なったとしても記者会見が開けるような体制を
開発文化
品質を犠牲にしない!
全てパブリッククラウドにサーバ有
Cyber kill Chain
軍事用語:7段階の侵入方法を想定
防ぐために:
パッシブディフェンス ※ログとらないと検知できない
アクティブディフェンス
ログは全てS3へ
内部からの侵入:IP制限、MFA、コンソールは全てロギング
SSMに入るときはslackで通知、【特殊】監査法人がslackを見てくれる
人に負担がかからないような工夫を
PR出さないと変更できない
インフラのコード化、仕組みづくり
SREって何をしてる?
新しい環境への先導役:技術的な障壁を解決する
コンテナヒーローが一人会社にいる・・・
知見を借りながら実装
DevSecOpsが目標
新人研修でHardening:インフラ関係
月1回の「失敗js」失敗から学んだことを共有する
組織としてSecureに同じ文化を共有し
slack障害に備えてメールにも飛ばすようにしている
堅牢なアプリケーション設計
和田 浩一
弁護士ドットコム株式会社 Tech Lead兼ラボコーディネーター
資料
https://speakerdeck.com/koichiwada/first-steps-to-build-a-robust-and-secure-application
クラウドサインとは
クラウド型の電子契約サービス
送信者はPDFでアップロード、登録の必要なし
要件:
堅牢
受信側はアカウントを創らなくても使えるように ※この非対称性が難しい
開発で気をつけたこと
- 設計:状態遷移によるデータ管理
予想外の動きが起きないようにする
- Go言語を使用
コンパイル時に文法エラー拾える
メモリリーク起きにくい
外部ライブラリの呼び出しが比較的簡単
フォーマット整形機能があり、コーティングスタイルがそろう
- こまめにサーバにデータを保存、ユーザ(ブラウザ側)にデータ残さない
アプリが落ちても再開できるように
プロセス監視により落ちたら自動起動
ブラウザのリロードで中断部分から再開可能
RDSを使用
ファイルはS3へ
漏えい防止
不要な情報が外に出にくくする
- ID UUID V4 乱数でIDを創り、推測できないURLを作成
※プライマリーキーがランダムすぎるとインサートの速度が落ちるため、全てがこの実装ではない
受信側には期限付きで推測できないURL発行
ステータスコードは400,404,500だけ返す
ネットワーク対策
WAF
OSSE
- 脆弱性を創りこまない
エスケープを忘れない!
HTMLはGoのライブラリを使えば大丈夫
ただしコメントタグも自動で消される・・・
- jQuery.html()を使わない
・直接のDOM操作を避けるためVue.jsを使用
- SQLを直書きしない
自分たちが知らない脆弱性に対して:
フレームワークの使用 Revel
VAddyによる脆弱性診断
+外部機関の脆弱性診断ときどき
脆弱性検査
神戸 康多(kotakanbe)
フューチャー株式会社 シニアアーキテクト
脆弱性のいろいろ
web
プラットフォーム
資産管理的 →この紹介がメイン。Vuls
ネットワーク系
パッケージと脆弱性DBの情報を突き合わせするから日々回せる!
脆弱性を突くコードがあれば、素人でも攻撃できる
Gitなどに公開されている exploit-dbなどのサイト
awesome poc
You Tubeなどで調べても出てくる・・・
攻撃コードのサンプル)
https://github.com/knqyf263/CVE-2018-7600
※自分の環境で試すこと!
→毎日チェックしないと危険!Vlusなどで対策を。
自分で対策しないとダメ
パッチ当てていないのは論外。「パッチ管理どうしていますか?」でセキュリティの習熟度が分かる
脆弱性に対して・・・
Vlusで日々対策を!
cron,スケジューラーで日々回す
関係のある脆弱性しか出ない
スキャンできるものがたくさん!
コンテナ
ライブラリ
ネットワーク系
※全部Docker使用ならTrivyで対策可能
検知した脆弱性の95%は即時に対応しなくてよい
FutureVulsで優先順位づけができる!
パネルディスカッション: どこまで守るセキュリティ
モデレーター:三木 明(threetreeslight)
Repro株式会社 VP of PeopleOps
→時間がおしたためなし
感想
- ツールが障がい等で使えない際の対策として、代替手段を一つは持っていないといけないと感じた。
ツール対策は悩ましいところではあるが。
- Go言語の長所が分かった!
フォーマット整形できるのはチーム開発するうえで大きなポイントだと思う。
- Vlusのすごさが分かった!
手動ではなく自動で脆弱性を検知できるツール、くらいの認識しかなかった。
どれだけ幅広い脆弱性を検知できるか図表を見て初めて実感でき、そのような機能がOSSとして公開されているなんて素晴らしいと感激。