Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ログに対する誤解とベストプラクティス
Search
Tech Leverages
November 27, 2024
Technology
0
46
ログに対する誤解とベストプラクティス
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
0
88
もう一度、 事業を支えるシステムに。
leveragestech
4
520
We Are PdE!! 〜高価値なプロダクトを作れるようになるための勉強会〜
leveragestech
1
570
Prisma Typed SQLのススメ
leveragestech
1
96
今日から始める技術的負債の解消
leveragestech
3
530
ドキュメントとの付き合い方を考える
leveragestech
2
210
開発者体験を向上させる ボトムアップな組織改善
leveragestech
1
250
市場価値の高いエンジニアを 目指そう!!
leveragestech
2
69
より快適なエラーログ監視を目指して
leveragestech
5
1.7k
Other Decks in Technology
See All in Technology
LLMの気持ちになってRAGのことを考えてみよう
john_smith
0
170
プロダクト活用度で見えた真実 ホリゾンタルSaaSでの顧客解像度の高め方
tadaken3
0
320
'24/11月開催 Visual Studio CodeのDev Containersを使って開発環境構築してみよう
devops_vtj
0
120
"とにかくやってみる"で始めるAWS Security Hub
maimyyym
2
170
ヤプリのデータカタログ整備 1年間の歩み / Progress of Building a Data Catalog at Yappli
yamamotoyuta
3
260
LINEヤフーにおけるPrerender技術の導入とその効果
narirou
3
3.2k
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
3
390
Android 15 でウィジェットピッカーのプレビュー画像をGlanceで魅せたい/nikkei-tech-talk-27-1
nikkei_engineer_recruiting
0
110
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
3
730
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
1
190
【LT】ソフトウェア産業は進化しているのか? #Agilejapan
takabow
1
130
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
190
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
460
Gamification - CAS2011
davidbonilla
80
5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
Why Our Code Smells
bkeepers
PRO
334
57k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Happy Clients
brianwarren
98
6.7k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
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
ご清聴ありがとうございました。