Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Woman Developers Summit 2022 (セキュリティ技術者として大切にしていること、 攻めと守り、仕組みづくりの視点から) PSIRT FY23Q2

freee
November 08, 2022

Woman Developers Summit 2022 (セキュリティ技術者として大切にしていること、 攻めと守り、仕組みづくりの視点から) PSIRT FY23Q2

freee

November 08, 2022
Tweet

More Decks by freee

Other Decks in Technology

Transcript

  1.  
    2022.11.02 13:10 ~ 13:40
    Woman Developers Summit 2022
    セキュリティ技術者として大切にしていること、
    攻めと守り、仕組みづくりの視点から

    View Slide

  2.  
    2
    越智郁
    2022 1.17 freeeにjoin.
    PSIRT(Product Security Incident Response Team)所属
    脆弱性診断の業務を中心に、さまざまなプロダクトセキュリティに
    関する業務に携わっています。
    PSIRT
    kaworu
    プロフィール画像の
    トリミング方法

    View Slide

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

    View Slide

  4.  
    4
    freee会計
    freee開業
    freee福利厚生
    freeeアプリストア
    freee人事労務
    freee会社設立
    freee受発注
    freeeプロジェクト管理
    freee資金調達 freee申告 freeeカード
    プロダクトラインアップ
    freeeサイン

    View Slide

  5. 5
    00 はじめに
    01 PSIRTの日常
    02 攻めの視点「脆弱性診断」
    03 守りの視点「sensor監視」
    04 仕組みづくり
    05 おわりに
    目次

    View Slide

  6. 6
    00 はじめに
    01 PSIRTの日常
    02 攻めの視点「脆弱性診断」
    03 守りの視点「sensor監視」
    04 仕組みづくり
    05 おわりに
    目次

    View Slide

  7. 7
    PSIRT(Product Security Incident Response Team)
    serviceを守るのがPSIRTの責務

    View Slide

  8. 8
    Plan
    Code
    Build Test
    Deploy Configure
    Monitor
    Code Review
    Response
    Logging
    Detect
    SAST
    SCA
    E2E
    IaC
    CSPM
    Vulnerability
    Assessment
    コードレビュー

    静的解析

    動作検証

    脆弱性スキャン

    脆弱性診断

    ログを取る

    異常検知

    インシデント対応

    構成管理

    ポリシー検証

    PSIRTの日常…DevSecOpsへの取り組み
    開発と運用にsecurityを埋め込む

    View Slide

  9.  
    9
    日々の運用
    freee PSIRT OODA loop
    Security
    Weekly
    もくもく会

    Incident
    Handling
    Kaizen
    hour
    Observe
    担当者が集まって分析
    気になるものは一緒に探ってみる
    世話を焼いていくスタイル
    Decide
    CSIRT/PSIRTで情報共有
    検知状況を解釈し、対処方針を決める
    あえて共有
    理想ドリブン
    Act
    改善してみる
    かっとなって、しゅっとやる
    Hack Everything
    Orient
    もしものときには
    足りないものに気付く
    失敗して攻めよう

    View Slide

  10. PSIRTのメンバー構成
    1000人規模の会社
    インフラからアプリケーションまで
    それぞれの必殺技(得意な分野)の
    バリエーションがひろいチーム!
    セキュリティチーム構成
    CISO下に、CSIRT、PSIRTの構成
    PSIRTの女性はふたり
    もうひとり、素敵な方がいます
    彼女のお仕事の話も本日少し触れます
    1%
    CSIRT
    CISO
    PSIRT

    View Slide

  11. freeeにきてからのとりくみ
    PSIRT配属

    03 04 05 07
    01 02 06 08 10
    09 視点
    脆弱性診断

    Sensor

    監視

    守り
    仕組みづくり
    GitHub audit logを

    監視できる仕組み

    攻め

    View Slide

  12. 12
    00 はじめに
    01 PSIRTの日常
    02 攻めの視点「脆弱性診断」
    03 守りの視点「sensor監視」
    04 仕組みづくり
    05 おわりに
    目次

    View Slide

  13. freeeにきてからのとりくみ
    PSIRT配属

    03 04 05 07
    01 02 06 08 10
    09 視点
    脆弱性診断
 攻め

    View Slide

  14. 「脆弱性診断」
    擬似的な攻撃
    ふるまいをみて
    脆弱性を探す
    脆弱性…セキュリティ上の問題点を探す

    View Slide

  15. 攻めの視点「脆弱性診断」
    診断 結果
    外部依頼時
    - 指摘内容を確認
    - トリアージ
    内部実施時
    ツール診断
    手動の診断
    脆弱性を探す、まさに攻める部分

    View Slide

  16. 攻めの視点「脆弱性診断」
    対象決め 診断
    準備 結果 対応
    ツール診断
    手動の診断
    脆弱性診断のながれ

    View Slide

  17. 脆弱性診断のながれ
    対象決め 診断
    準備 結果 対応
    新規リリース
    新機能追加
    対象の仕様
    スケジュール調整
    診断用環境
    ダミーデータ
    外部依頼時
    - トリアージ
    内部実施時
    - 詳細手順
    開発チームに
    対応依頼
    ツール診断
    手動の診断

    View Slide

  18. 脆弱性診断のながれ
    対象決め 診断
    準備 結果 対応
    対象の仕様
    スケジュール調整
    診断用環境
    ダミーデータ

    View Slide

  19. 脆弱性診断の準備
    テンプレート化
    共通の確認事項をテンプレートに
    準備ツールの作成
    “診断ヒアリングし太郎”

    View Slide

  20. 20
    同期的なヒアリングが、非同期でできるようになった。
    (その分の工数を他のことで利用できるようになった)
    診断ヒアリングし太郎(診断太郎)

    View Slide

  21. 攻めの視点「脆弱性診断」
    対象決め 診断
    準備 結果 対応
    対象の仕様等
    スケジュール調整
    診断用環境
    ダミーデータ
    安定して攻め続けるために、一連の流れをスムーズに回していく体制や仕組みづくりも大切

    View Slide

  22. 攻めの視点「脆弱性診断」
    対象決め 診断
    準備 結果 対応
    ツール診断
    手動診断

    View Slide

  23. 「脆弱性診断」の攻め方
    ツール診断 内部だからこそ
    手動診断

    View Slide

  24. 「脆弱性診断」ツール診断
    Pattern

    ../../../../../../../../../../../etc/hosts
    ../../../../../../../../../etc/hosts%00
    /etc/hosts
    |/bin/sleep 20|
    ;/bin/sleep 20;
    ../../../../../../../bin/sleep 20|
    $(../../../../../../../bin/sleep 20)
    '`/bin/sleep 20`'
    `/bin/sleep 20`
    ツールを用いて機械的な検証

    View Slide

  25. 「脆弱性診断」ツール診断
    ツールの検知内容や、HTTP responseの情報を参考に判断
    Pattern

    ../../../../../../../../../../../etc/hosts   
    ../../../../../../../../../etc/hosts%00  
    /etc/hosts
    |/bin/sleep 20|
    ;/bin/sleep 20;
    ../../../../../../../bin/sleep 20|
    $(../../../../../../../bin/sleep 20)
    '`/bin/sleep 20`'
    `/bin/sleep 20`
    StatusCode

    400
    400
    200
    500
    500
    500
    500
    500
    500
    mil sec

    139
    164
    213
    165
    211
    198
    156
    20158
    209

    View Slide

  26. 「脆弱性診断」手動診断
    200 OK
    {“name”: “越智郁”,
    “company”: “A” }
    ビジネスロジックや権限まわりの検証など
    GET /api/profile/1

    View Slide

  27. 「脆弱性診断」手動診断
    403 forbidden
    権限がありません
    ビジネスロジックや権限まわりの検証など
    GET /api/profile/2

    View Slide

  28. OK
    「脆弱性診断」手動診断
    200 OK
    {“name”: “名前太郎”,
    “company”: “B”
    GET /api/profile/2
    403 forbidden
    権限がありません
    GET /api/profile/2
    ビジネスロジックや権限まわりの検証など
    本来見えてはいけないデータが見えてしまう例
    脆弱

    View Slide

  29. 「脆弱性診断」内部だからこその観点
    ソースコードや設定、開発チームとの詳細なコミュニケーションがとれる
    よりリスクの高いパスをじっくり検証したり、”抜き打ち”したり

    View Slide

  30. 攻めの視点「脆弱性診断」
    対象決め 診断
    準備 結果 対応
    新規リリース
    新機能追加
    対象の仕様
    スケジュール調整
    診断用環境
    ダミーデータ
    外部依頼時
    - トリアージ
    内部実施時
    - 詳細手順
    開発チームに
    対応依頼
    ツール診断
    手動の診断

    View Slide

  31. 31
    00 はじめに
    01 PSIRTの日常
    02 攻めの視点「脆弱性診断」
    03 守りの視点「sensor監視」
    04 仕組みづくり
    05 おわりに
    目次

    View Slide

  32. freeeにきてからのとりくみ
    PSIRT配属

    03 04 05 07
    01 02 06 08 10
    09 視点
    Sensor

    監視

    守り

    View Slide

  33. 33
    Triage
    SIEMを参照しながら、
    優先度、重要度を判断
    SIEM
    Dashboard
    es-loader
    守りの視点「Sensor監視」
    SIEM : Security Information & Event Mangement = logを解析するviewer
    WAF: Web Application Firewall を担当することになった
    Security Sensor
    AWS WAF
    CloudOne
    GuardDuty
    AWS Log
    CloudTrail
    ELB
    DNS query log
    VPC flow log
    簡易対処
    とりあえず止血
    根本対処
    間違いが起きない仕
    組み

    View Slide

  34. Sensor監視のながれ
    SIEMを確認 深堀り
    起票 対応
    開発チームに
    対応依頼

    View Slide

  35. SIEMを確認(1週間)
    とあるサービスのBlock状況


    View Slide

  36. SIEMを確認(1週間→1日)


    View Slide

  37. SIEMを確認(1週間→1日→Block数の多い特定IP)


    View Slide

  38. 深堀り…典型的な攻撃・探索パターン 


    View Slide

  39. Sensor監視のながれ
    SIEMを確認 深堀り
    起票 対応
    開発チームに
    対応依頼

    View Slide

  40. Sensor監視:Public APIの大量リクエスト
    freeeユーザー freee Public API
    freee Public API:要望に合わせた機能開発ができるように、APIを提供しています。

    View Slide

  41. Sensor監視:Public APIの大量リクエスト
    特定ユーザーの特定パスにて、大量のリクエストが発生し、Block。
    Block開始


    View Slide

  42. Sensor監視:Public APIの大量リクエスト
    特定ユーザーの特定パスにて、大量のリクエストが発生し、Block。
    Sensorが検知
    Issue Open
    Triage → お客様へお知らせ


    View Slide

  43. Sensor監視:Public APIの大量リクエスト
    お客様側で 対処
    Issue Close


    View Slide

  44. Sensor監視:Public APIの大量リクエスト
    特定ユーザーの特定パスにて、大量のリクエストが発生し、Block。
    Block=悪い通信とは限らない。みきわめが大変。
    Block開始 Sensorが検知
    お客様側で 対処
    Issue Close
    Issue Open
    Triage → お客様へお知らせ


    View Slide

  45. Sensor監視のながれ
    SIEMを確認 深堀り
    起票 対応
    開発チームに
    対応依頼

    View Slide

  46. Sensor監視のながれ
    SIEMを確認 深堀り
    起票 対応
    開発チームに
    対応依頼
    関連情報を
    リンクで含む 検索時間が大幅に短縮
    起票まで自動化 + 深掘りに必要な情報がリンク化
    一つあたりの対応時間の大幅な短縮で、確認できる範囲が5倍になった
    検知内容の通知

    View Slide

  47. Sensor監視のながれ
    SIEMを確認 深堀り
    起票 対応
    開発チームに
    対応依頼
    関連情報を
    リンクで含む 検索時間が大幅に短縮
    起票まで自動化 + 深掘りに必要な情報がリンク化
    一つあたりの対応時間の大幅な短縮で、確認できる範囲が5倍になった
    検知内容の通知
    mbです!
    私がつくりました!!

    View Slide

  48. 48
    00 はじめに
    01 PSIRTの日常
    02 攻めの視点「脆弱性診断」
    03 守りの視点「sensor監視」
    04 仕組みづくり
    05 おわりに
    目次

    View Slide

  49. freeeにきてからのとりくみ
    PSIRT配属

    03 04 05 07
    01 02 06 08 10
    09 視点
    仕組みづくり
    GitHub audit logを

    監視できる仕組み


    View Slide

  50. 50
    仕組みづくり「GitHub audit logのSIEMへの取り込み」
    audit log: 監査ログ
    内部起因のインシデントを予防を目的に

    View Slide

  51. 51
    audit log: 監査ログ
    内部起因のインシデントを予防を目的に
    仕組みづくり「GitHub audit logのSIEMへの取り込み」

    View Slide

  52. 52
    仕組みづくり「GitHub audit logのSIEMへの取り込み」
    audit log: 監査ログ, GitHub上のいろいろな操作の履歴

    View Slide

  53. 53
    仕組みづくり「GitHub audit logのSIEMへの取り込み」
    audit log: 監査ログ, GitHub上のいろいろな操作の履歴
    画面操作で監査ログを取り扱うのも地味に大変
    ※検索結果のイメージです。 実際は組織名/repository名、日付、国名が入っています。

    View Slide

  54. 54
    GitHub audit logの取得
    Request
    GET /orgs/{org}/audit-log
    Response
    [{
    "@timestamp": 1606929874512,
    "action": "team.add_member",
    "actor": "octocat",
    "created_at": 1606929874512,
    "_document_id": "xJJFlFOhQ6b-5vaAFy9Rjw",
    "org": "octo-corp",
    "team": "octo-corp/example-team",
    "user": "monalisa"
    }, … ]
    audit log

    View Slide

  55. 55
    GitHub audit logのSIEMへの取り込み
    es-loader
    audit log
    siem

    View Slide

  56. 56
    GitHub audit log SIEMとりこみ 結果
    お盆休みの時期 シルバーウィークの時

    従来は文字列を追う必要があった
    可視化されることで、違う視点からも調べられるようになった
    ログの取り込み件数…活動量という見方もできる



    View Slide

  57. 57
    00 はじめに
    01 PSIRTの日常
    02 攻めの視点「脆弱性診断」
    03 守りの視点「sensor監視」
    04 仕組みづくり
    05 おわりに
    目次

    View Slide

  58. freeeにきてからのとりくみ
    PSIRT配属

    03 04 05 07
    01 02 06 08 10
    09 視点
    脆弱性診断

    Sensor

    監視

    守り
    仕組みづくり
    攻め
    GitHub audit logを

    監視できる仕組み


    View Slide

  59. 私がセキュリティ技術者として大切にしていること
    幅を広げる
    脆弱性診断のエンジニアから
    セキュリティ技術者へ
    積み重ね
    積み重ねてよりセキュアに
    自身のできることも増やしたい
    視点・視野を広げる
    攻め・守り・仕組みづくり
    相互に影響しあっていると実感

    View Slide

  60. freeeの開発文化

    View Slide

  61. freeeについて
    mission
    https://corp.freee.co.jp/mission/
    Developers Blog (security)
    https://developers.freee.co.jp/archive/ca
    tegory/セキュリティ
    エンジニア採用
    https://jobs.freee.co.jp/engineers/

    View Slide

  62.  
    2022.11.02 13:10 ~ 13:40
    Woman Developers Summit 2022
    セキュリティ技術者として大切にしていること、
    攻めと守り、仕組みづくりの視点から

    View Slide