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
ti-aiuto
PRO
April 27, 2024
Technology
0
69
情報セキュリティ入門(バックエンド編)
ti-aiuto
PRO
April 27, 2024
Tweet
Share
Other Decks in Technology
See All in Technology
令和版ソフトウェアエンジニアの情報収集術 PHPカンファレンス香川2024
ysknsid25
4
810
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
1.7k
ハードウェアを動かすTypeScriptの世界
9wick
3
1.1k
「できる!」を増やすGitHub Copilot活用法 / How to use GitHub Copilot to expand your possibilities
sansan_randd
1
210
[2024년 5월 세미나] 생성형 AI와 함께하는 데이터 분석가 커리어
datarian
0
570
cgroup v2 で何が変わったのか / TechFeed Experts Night #28
tenforward
2
140
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
0
2k
個人のAWSアカウントをマルチ運用してみた
miura55
2
290
成長をサポートするピープルマネジメントのやり方
sioncojp
9
1.5k
5分で分かる(かもしれない) Vector engine for OpenSearch Serverless
tsukuboshi
0
220
QA経験のないエンジニアリング マネージャーがQAのカジュアル面談に出て 苦労していること・気づいたこと / scrum fest niigata 2024
yoshikiiida
2
500
TailwindCSSでUIライブラリを作る際のハマりどころ
shuta13
0
210
Featured
See All Featured
A Philosophy of Restraint
colly
197
16k
The Straight Up "How To Draw Better" Workshop
denniskardys
228
130k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.7k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
Code Review Best Practice
trishagee
56
15k
Building Applications with DynamoDB
mza
88
5.7k
Adopting Sorbet at Scale
ufuk
69
8.6k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
67
14k
For a Future-Friendly Web
brad_frost
172
9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
245
20k
Web development in the modern age
philhawksworth
203
10k
What's in a price? How to price your products and services
michaelherold
238
11k
Transcript
情報セキュリティ入門 バックエンド編 アプリの裏側はどうなっている? 某連盟東海支部 ti-aiuto
目標 • 情報セキュリティに関連する基本的な用語や考え方がなんとな くでいいからわかっている状態 • 情報セキュリティの三要素 • クライアント・サーバ・WEBサーバ • セキュリティインシデントのよくある原因と関連する概念
• 参考事例 • そういうことを頑張ってる人たちがいるんだ~と思ってくれれ ば
ここでいう「情報システム」 • 情報のやりとりによって利用者の目的を達成する全体の仕組み のこと • 「ネットで買い物をしたい」 • 「スマホでメッセージを送受信したい」 • オンラインゲームとかも似たようなもんかな
• 「写真や文書などのデータを共有したい」 • 「ネットで動画などのコンテンツをみたい」
情報セキュリティの三要素 • 機密性:データを流出させない • 「登録したメールアドレスやパスワードが流出した!」 • 可用性:システムが正常に使える状態 • 「オンラインゲームを起動してもエラーと表示されて動かない!」 •
完全性:データが失われない・改ざんされない • 「セーブデータが消えている!レベルが勝手に変わっている!」 ※いろんな論点が出てきて混乱したときは、この中にどれに当てはまるか?を考えてみるといいかも
クライアント/サーバシステム クライアント サーバ インターネット などの通信路 と呼ばれるコンピュータ パソコンとかスマホに 入れてるアプリ ◦◦ちょうだい! 〇〇を実行して!
◦◦ちょうだい! 〇〇を実行して! どうぞ 実行したよ どうぞ 実行したよ 要求(リクエスト) 応答(レスポンス)
クライアント/サーバシステム クライアント サーバ スパゲッティちょうだい どうぞ serve: 提供する
WEBサーバ • WEBサーバ • WEBブラウザで色々ページ見るときの通信相手のサーバのこと • WEBブラウザ • WEBサーバと通信してWEBページを見るためのアプリ •
ChromeとかSafariとかEdgeとかFirefoxとか • WEBの技術はHTTPという規格で実現されている • 便利なのでWEBブラウザ以外の場所でも広く使われている HTTPが使われてそうなアプリの例(推測)
サーバの物理的な実体 • データセンタという建物の中にコンピュータが設置されている ことが大半 • 自分でコンピュータなどの機材を調達して管理:オンプレミス • 第三者が管理するコンピュータをサブスクのように利用:クラウド
裏側では様々なコンピュータが役割分担 WEBサーバ データベース サーバ ◦◦さんの データちょうだい! どうぞ WEBブラウザの要求に 応えることに専念 各種データを正確に
管理することに専念
ファイアウォール ファイアウォール 怪しそうな 要求をブロック 設定ミスや脆弱性(製品に含まれるセキュ リティ上の欠陥)を狙って攻撃
アクセス殺到への対策 • アクセス殺到で落ちる:「可用性」が損なわれている状態 https://www.asahi.com/articles/ASP5B7394P5BUNHB009.html https://www.nikkei.com/article/DGXMZO60782230V20C20A6000000/
WEBサーバを強化(=スケール)しよう 余裕のあるところに 振り分ける ロードバランサ 台数を増やして強化 (=スケールアウト)
スケールの限界 在庫数・座席の予約状況・予約枠の残数などは一か所で 中央集権管理する必要があるため、 データベースサーバを増やすわけにはいかない =>ここの性能の限界が全体の限界に(=ボトルネック)
スケールのしやすさ • データを読み出す処理はスケールしやすい • 例:ニュース記事を読む • 例:ログインして会員情報を見る • データを書き込む処理はものによってはスケールしづらい •
どんどん新しいデータを登録していくだけならまだマシ • 例:SNSに書き込みを行う • 例:新しい文書を作成する • ※インターネット投票アプリもこっちに入りそう • 処理がダブらないよう慎重に管理(=排他制御)が必要だと大変 • 例:限られた在庫数の商品・枠数のチケットを購入する
余談:なんとかしてスケールさせる方法 • 非同期化:見かけ上だけ「注文完了」画面を先に表示してしま い、排他制御により時間のかかる注文処理は裏側で実行する • 「他の人が先に購入していたので注文できてなかった」もあり得る https://techblog.yahoo.co.jp/entry/2023020230408203/
故障や不調への対策 • 故障で止まる:「可用性」が損なわれている状態 https://www.asahi.com/articles/ASNB13T3CNB1ULFA00B.html https://xtech.nikkei.com/atcl/nxt/news/24/00378/
冗長構成 いざというときのために 同じ組み合わせをもう一つ準備しておき (=冗長構成)、 問題が発生したときに切り替える (=フェイルオーバー) ※失敗することもある
事故、災害や人為的ミスも https://gihyo.jp/article/2023/12/zengin-nttdata https://cafe-dc.com/security/australian-mouse-plague-causes-multiple-network- outages-across-new-south-wales/#google_vignette https://gigazine.net/news/20150820-google-lightning-data-lost/
インターネット側からの攻撃 • DoS(サービス拒否攻撃)・DDoS(分散型サービス拒否攻撃)※F5攻撃 • 大量の要求を送って処理不能な状態にする • Rate Limit(〇分あたり〇回まで)のような制限をかける方法も • 脆弱性や設定ミスを突くことによりサーバに侵入する・不正な操作
を実行させる攻撃 • 機密性・完全性の侵害、ウイルスなど不正なプログラムを仕込む
WEBサーバに不正なプログラムを仕込む https://www.itmedia.co.jp/news/articles/2107/20/news150.html https://www.blueplanet-works.com/column/anti-malware/mining-virus/ https://scan.netsecurity.ne.jp/article/2024/04/26/50934.html
内部経由の攻撃 インターネットにつながっていないコンピュータの場合でも、 誰かがそのコンピュータのデータを利用したり、 そのコンピュータのメンテナンスをしたりしている
内部経由の攻撃 開発や運用・メンテナンスの担当者に悪意のある人が 紛れている場合もある(=内部犯行) そのような場合も含めてシステムに対して操作された内容を記録 しておく仕組み(=監査ログ)
開発運用体制も含めたセキュリティ対策 https://note.com/mickmack/n/n8aac06454ab4?sub_rt=share_h https://xtech.nikkei.com/atcl/nxt/column/18/00138/030501482/ https://techtarget.itmedia.co.jp/tt/news/1410/29/news04.html
標的型攻撃 特定の組織等を攻撃することを目的として ウイルス付きメールを送り付けるなど攻撃 (=標的型攻撃)
標的型攻撃 https://wired.jp/2016/04/30/german-nuclear-plants-fuel-rod- system-swarming/ https://www.asahi.com/articles/ASRBS5JMDRBSUTIL025.html
まとめ • 情報システムのセキュリティを損なう要因はいろいろある • 三要素のどれが侵害されているのか? • 人為的なもの?人為的でないもの? • 悪意のあるもの?ないもの? •
外部から?内部から? • そういうのをなんとかするために頑張っている人たちがいる!