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.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
古き良き Laravel のシステムは関数型スタイルでリファクタできるのか
leveragestech
1
870
リファクタリングいつやるの? 〜依存の整理〜
leveragestech
0
73
ディメンショナルモデリングを軽く語る
leveragestech
1
3.4k
アクターモデルによる効率的な分散システム設計
leveragestech
0
3.2k
Terraform による運用効率化の取り組みと最新のテストアプローチの紹介
leveragestech
0
3.2k
OpenFGAで拓く次世代認可基盤 〜予告編〜
leveragestech
0
3.3k
リソース・管理効率の向上だけでない、分散システムとしてのTiDBの魅力
leveragestech
0
3.2k
作ってわかる!非同期ランタイム
leveragestech
0
3.2k
レバテック開発部 技術広報 これまでとこれから
leveragestech
0
170
Other Decks in Technology
See All in Technology
libsyncrpcってなに?
uhyo
0
260
大失敗しないための Web API 開発レシピ / A recipe for not making a big failure on WebAPI development
yokawasa
1
220
Google I/O 2025 Keynote & Developer Keynote Overview
yanzm
0
110
Drawing with LLMs
rist
0
230
エンジニア採用から始まる技術広報と組織づくり/202506lt
nishiuma
8
1.4k
ソフトウェア開発現代史: "LeanとDevOpsの科学"の「科学」とは何か? - DORA Report 10年の変遷を追って - #開発生産性_findy
takabow
1
320
上長や社内ステークホルダーに対する解像度を上げて、より良い補完関係を築く方法 / How-to-increase-resolution-and-build-better-complementary-relationships-with-your-bosses-and-internal-stakeholders
madoxten
11
5.2k
Grafana MCP serverでなんかし隊 / Try Grafana MCP server
kohbis
0
290
New Cache Hierarchy for Container Images and OCI Artifacts in Kubernetes Clusters using Containerd / KubeCon + CloudNativeCon Japan
pfn
PRO
0
120
Securing your Lambda 101
chillzprezi
0
150
TypeScript をより型安全に扱うプラクティス #TSKaigi #TSKaigi2025_kataritai
bengo4com
0
2.1k
MCPを利用して自然言語で3Dプリントしてみよう!
hamadakoji
0
1.3k
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
106
19k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
15
910
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Designing Experiences People Love
moore
142
24k
How STYLIGHT went responsive
nonsquared
100
5.6k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
7
640
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.5k
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
ご清聴ありがとうございました。