Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ログに対する誤解とベストプラクティス
Search
Tech Leverages
November 27, 2024
Technology
0
1.3k
ログに対する誤解とベストプラクティス
Security.any #01 セキュリティあるあるLT の登壇スライドです。
https://security-any.connpass.com/event/333680/
Tech Leverages
November 27, 2024
Tweet
Share
More Decks by Tech Leverages
See All by Tech Leverages
理想のパスワードは?
leveragestech
1
76
データエンジニアとしてのキャリア戦略 〜これからの挑戦〜
leveragestech
0
92
ドメインロジックで考えるテスタビリティ
leveragestech
1
330
専門領域に特化したチームの挑戦
leveragestech
0
440
もう一度、 事業を支えるシステムに。
leveragestech
6
4.8k
We Are PdE!! 〜高価値なプロダクトを作れるようになるための勉強会〜
leveragestech
1
1.8k
Prisma Typed SQLのススメ
leveragestech
1
260
今日から始める技術的負債の解消
leveragestech
4
580
ドキュメントとの付き合い方を考える
leveragestech
3
250
Other Decks in Technology
See All in Technology
Skip Skip Run Run Run ♫
temoki
0
350
トレードオフスライダーにおける品質について考えてみた
suzuki_tada
3
160
アクセシブルなマークアップの上に成り立つユーザーファーストなドロップダウンメニューの実装 / 20250127_cloudsign_User1st_FE
bengo4com
2
1.1k
Autify Company Deck
autifyhq
2
41k
DevSecOps入門:Security Development Lifecycleによる開発プロセスのセキュリティ強化
yuriemori
0
220
一人から始めたSREチーム3年の歩み - 求められるスキルの変化とチームのあり方 - / The three-year journey of the SRE team, which started all by myself
vtryo
7
5.3k
ソフトウェアアーキテクトのための意思決定術: Software Architecture and Decision-Making
snoozer05
PRO
17
3.6k
re:Invent Recap (January 2025)
scalefactory
0
340
プロダクト価値を引き上げる、「課題の再定義」という習慣
moeka__c
0
190
Women in Agile
kawaguti
PRO
2
160
ココナラのセキュリティ組織の体制・役割・今後目指す世界
coconala_engineer
0
210
ソフトウェア開発現代史:製造業とソフトウェアは本当に共存できていたのか?品質とスピードを問い直す
takabow
14
4.8k
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Optimising Largest Contentful Paint
csswizardry
33
3k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
A better future with KSS
kneath
238
17k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
KATA
mclloyd
29
14k
We Have a Design System, Now What?
morganepeng
51
7.4k
Building an army of robots
kneath
302
45k
Designing Experiences People Love
moore
139
23k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Transcript
ログに対する誤解と ベストプラクティス Security.any #01 セキュリティあるあるLT 2024.11.19 松浪 亮
| © 2024 Levtech Co., Ltd. 2 レバテック開発部 DevOps推進グループ 認証基盤チーム 松浪
亮 RYO MATSUNAMI レバテックでは主に認証基盤(レバテックID)の開発に従事。 どうすればDevSecOpsを組織に浸透させられるか日々悩み中。 プライベートでは2人の子育てに従事。 あと、Vue.jp Japan User Group で Vue Fes の運営のお手伝いなんかも時々。
今日話したいこと
今日話したいこと ログに余分な情報を出力しないでね
| © 2024 Levtech Co., Ltd. 5 ログ(log)とは、起こった出来事についての情報などを一定の形式で時 系列に記録・蓄積したデータのこと。“log” の原義は船の航海記録(日 誌)。
ある機器やソフトウェア、システムについて、その起動や停止、エラー や障害の発生、利用者による操作や設定の変更、外部との通信など、稼 働中に起こった出来事の内容を日時などとともに時系列に記録したもの をログという。稼働状況の確認や集計、不具合の原因調査などのために よく参照される。 ログとは? ※出典: IT用語辞典 e-Words
| © 2024 Levtech Co., Ltd. 6 ログ(log)とは、起こった出来事についての情報などを一定の形式で時 系列に記録・蓄積したデータのこと。“log” の原義は船の航海記録(日 誌)。
ある機器やソフトウェア、システムについて、その起動や停止、エラー や障害の発生、利用者による操作や設定の変更、外部との通信など、稼 働中に起こった出来事の内容を日時などとともに時系列に記録したもの をログという。稼働状況の確認や集計、不具合の原因調査などのために よく参照される。 ログとは? ※出典: IT用語辞典 e-Words
| © 2024 Levtech Co., Ltd. 7 誤解 01 機能に影響しないしテキトーで大丈夫 誤解
02 外部から見られることはない 誤解 03 誤解されがちなこと とりあえず全部ログに出しておけばいい
| © 2024 Levtech Co., Ltd. 8 誤解 01 機能に影響しないしテキトーで大丈夫 誤解
02 外部から見られることはない 誤解 03 誤解されがちなこと とりあえず全部ログに出しておけばいい
| © 2024 Levtech Co., Ltd. 9 • 受け取ったリクエストや処理結果のレスポンスの内容、DBから取得 した情報を全部ログに出す •
ログレベルをDEBUGにしておけば自動でいろいろ出力してくれるから何か あった時に調査がラク 誤解1 とりあえず全部ログに出しておけばいい
| © 2024 Levtech Co., Ltd. 10 • 大概のシステムでは個人情報を扱っている ◦ 例:
氏名、住所、電話番号、メールアドレス • ログインや決済などの機能ではユーザの機密情報を扱う ◦ 例: ログインパスワード、クレジットカードの番号 • 何でもログに出力させているとこれらの情報も出力されてしまう 個人情報や機密情報が出力されるリスクがある
| © 2024 Levtech Co., Ltd. 11 • 処理名と対象が誰かわかれば大概は問題ない ◦ 例:
logger.info({name: “registerCreditInfo”, user.id: request.user.id}); ◦ user.idのユーザがregisterCreditInfoという処理を実行したと伝わればOK、クレジット カードの番号まで出力する必要はない • 個人情報は出力する前にマスク処理を挟む ◦ 例: const mask = (value?: string) => { return value?.replace(/./g, "*") ?? “” } ◦ *に置き換える関数を用意してマスクする 解決策 必要な分だけログに出力する
| © 2024 Levtech Co., Ltd. 12 誤解 01 機能に影響しないしテキトーで大丈夫 誤解
02 外部から見られることはない 誤解 03 誤解されがちなこと とりあえず全部ログに出しておけばいい
| © 2024 Levtech Co., Ltd. 13 • 機能に影響しないのでわざわざルールは設けなくてもいい • どのようなログをいつ出力するかは開発者が好きに決めてもいい
• ログを確認せずに機能をリリースした(💬 けど、機能はちゃんと動 いていたしテストもしたし、まぁいいか) 誤解2 機能に影響しないしテキトーで大丈夫
| © 2024 Levtech Co., Ltd. 14 • 明らかに想定外な事象のはずなのに、INFOで出力されていたから検 知できなかった... •
システムエラーが発生した!けど、ログを出力していなかったから どこで発生したのかわからない... • ブラウザの開発者ツールを開くと、Consoleに何か色々と出ている んだけど... ルールがないとログが無法地帯に...
| © 2024 Levtech Co., Ltd. 15 • ログレベルごとに用途と出力タイミングを定義する ◦ DEBUGは開発環境でのみ出力可能とする
◦ ERRORはcatchや例外をスローする時にスタックトレースも含めて出力する ◦ INFOは処理やトランザクションの開始と終了のタイミングで出力する • console.log()を実装したままリリースしないように ◦ クライアント側にログを残すとセキュリティ的な脆弱性に繋がる可能性がある ◦ フロントエンドではログを出力するのはSSRの時に留める 解決策 ログを設計する
| © 2024 Levtech Co., Ltd. 16 誤解 01 機能に影響しないしテキトーで大丈夫 誤解
02 外部から見られることはない 誤解 03 誤解されがちなこと とりあえず全部ログに出しておけばいい
| © 2024 Levtech Co., Ltd. 17 誤解3 外部から見られることはない • 社内の人しかサーバログを見ることができないから個人情報を出力
しても問題ない • ログローテーションさせているから個人情報を出力しても問題ない
| © 2024 Levtech Co., Ltd. 18 情報は社内の人によって外部に流出することもある • むしろ、ほとんどの情報漏洩は内部の犯行である(不注意や故意に よる流出)
◦ 例1: ベネッセ、業務委託先の社員が約3,504万件分の情報を名簿業者へ売却 ◦ 例2: 東急リバブル、元従業員が顧客情報を不正に持ち出し同業他社で利用 ◦ (※上記の事例はログではなくいずれもDBから情報を持ち出したことによる流出) • DBに暗号化されているデータやそもそもDBに保存されないデータで あれば、ログから情報を持ち出される可能性は十分ある
| © 2024 Levtech Co., Ltd. 19 解決策 内部だからこそセキュリティ対策が必要 • 必要最小限の人だけがアクセスできるように、ログファイルへのア
クセス権限を制限しておく ◦ 例: 派遣社員・インターン・業務委任者はアクセス不可にする ◦ 例: 組織のマネージャー、チームのリーダーのみアクセス可能にする • セキュリティに関する話題に日頃から触れておくことが大事 ◦ 情報漏洩などの話題に触れることで、他人事ではないことを理解する ◦ 情報漏洩による損害額を知ることで、事の重大さを理解する ◦ 結果としてセキュリティ意識の向上に繋がる
| © 2024 Levtech Co., Ltd. 20 誤解 01 機能に影響しないしテキトーで大丈夫 →
ログを設計する 誤解 02 外部から見られることはない → 内部だからこそセキュリティ対策が必要 誤解 03 まとめ とりあえず全部ログに出しておけばいい → 必要な分だけログに出力する
宣伝
開発職向け会社紹介資料 プロダクトや開発組織についてご紹介しています。 https://speakerdeck.com/leverages/levtech-hui-she-shao-jie-zi-liao-enzi niazhi-xiang-ke レバテック開発部テックブログ 日々の開発におけるリアルをお届けしています! https://zenn.dev/p/levtech カジュアル面談フォーム 気軽にご応募ください!いろんなお話しましょう! https://hrmos.co/pages/leverages/jobs/A_c_00071
ご清聴ありがとうございました。