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
1
5.4k
ログに対する誤解とベストプラクティス
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
古き良き Laravel のシステムは関数型スタイルでリファクタできるのか
leveragestech
1
1.1k
リファクタリングいつやるの? 〜依存の整理〜
leveragestech
0
85
ディメンショナルモデリングを軽く語る
leveragestech
1
4k
アクターモデルによる効率的な分散システム設計
leveragestech
0
3.8k
Terraform による運用効率化の取り組みと最新のテストアプローチの紹介
leveragestech
0
3.8k
OpenFGAで拓く次世代認可基盤 〜予告編〜
leveragestech
0
3.8k
リソース・管理効率の向上だけでない、分散システムとしてのTiDBの魅力
leveragestech
0
3.8k
作ってわかる!非同期ランタイム
leveragestech
0
3.8k
レバテック開発部 技術広報 これまでとこれから
leveragestech
0
190
Other Decks in Technology
See All in Technology
OPENLOGI Company Profile
hr01
0
67k
「クラウドコスト絶対削減」を支える技術—FinOpsを超えた徹底的なクラウドコスト削減の実践論
delta_tech
4
170
american airlines®️ USA Contact Numbers: Complete 2025 Support Guide
supportflight
1
110
Lufthansa ®️ USA Contact Numbers: Complete 2025 Support Guide
lufthanahelpsupport
0
190
成長し続けるアプリのためのテストと設計の関係、そして意思決定の記録。
sansantech
PRO
0
120
Backlog ユーザー棚卸しRTA、多分これが一番早いと思います
__allllllllez__
1
150
事業成長の裏側:エンジニア組織と開発生産性の進化 / 20250703 Rinto Ikenoue
shift_evolve
PRO
2
21k
SmartNewsにおける 1000+ノード規模 K8s基盤 でのコスト最適化 – Spot・Gravitonの大規模導入への挑戦
vsanna2
0
130
Core Audio tapを使ったリアルタイム音声処理のお話
yuta0306
0
190
AIの全社活用を推進するための安全なレールを敷いた話
shoheimitani
2
510
Delta airlines®️ USA Contact Numbers: Complete 2025 Support Guide
airtravelguide
0
340
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
7.7k
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
430
65k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
GitHub's CSS Performance
jonrohan
1031
460k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
820
Gamification - CAS2011
davidbonilla
81
5.4k
We Have a Design System, Now What?
morganepeng
53
7.7k
Rebuilding a faster, lazier Slack
samanthasiow
82
9.1k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
510
Embracing the Ebb and Flow
colly
86
4.7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
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
ご清聴ありがとうございました。