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
「フレームワークを使っていれば脆弱性は出ない」って本当? / Is it true that ...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
thatblue
March 16, 2019
Technology
0
110
「フレームワークを使っていれば脆弱性は出ない」って本当? / Is it true that Framework guards us from all vulnerability?
BSides Sendai 2019発表資料
thatblue
March 16, 2019
Tweet
Share
More Decks by thatblue
See All by thatblue
Kaigi on Rails 2025 お土産話 / Trip Stories of Kaigi on Rails 2025
thatblue
0
44
Stimulusのすすめ/Introduction to Stimulus
thatblue
0
37
RubyKaigi 2025 お土産話 / Trip Stories of RubyKaigi 2025
thatblue
0
19
発表資料テンプレート / My slide template
thatblue
0
610
GitHub Pagesで構築したブログをスマホ対応させてみた / make mobile-compatible with lightweight css framework
thatblue
0
400
Sendai.rbコミュニティ紹介 2022 / Introduction of Sendai.rb 2022
thatblue
0
100
Rails Girls Sendaiコミュニティ紹介2022 / Introduction of Rails Girls Sendai 2022
thatblue
0
130
競技プログラミングへのお誘い~私と競プロ友達になってください / Invitation to Competition Programming
thatblue
1
830
好みのコーヒー探し / find my favorite coffee
thatblue
0
730
Other Decks in Technology
See All in Technology
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
8
7.1k
JAWS DAYS 2026 CDP道場 事前説明会 / JAWS DAYS 2026 CDP Dojo briefing document
naospon
0
200
AIファーストを前提とした開発スタイルの変化
sbtechnight
0
170
Agentic Software Modernization - Back to the Roots (Zürich Agentic Coding and Architectures, März 2026)
feststelltaste
1
220
Abuse report だけじゃない。AWS から緊急連絡が来る状況とは?昨今の攻撃や被害の事例の紹介と備えておきたい考え方について
kazzpapa3
1
160
kintone開発のプラットフォームエンジニアの紹介
cybozuinsideout
PRO
0
840
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
72k
S3はフラットである –AWS公式SDKにも存在した、 署名付きURLにおけるパストラバーサル脆弱性– / JAWS DAYS 2026
flatt_security
0
1k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
18k
AIエージェント・エコノミーの幕開け 〜 オープンプロトコルが変えるビジネスの未来 〜
shukob
0
110
ヘルシーSRE
tk3fftk
2
240
クラウド × シリコンの Mashup - AWS チップ開発で広がる AI 基盤の選択肢
htokoyo
2
100
Featured
See All Featured
HDC tutorial
michielstock
1
510
Building Flexible Design Systems
yeseniaperezcruz
330
40k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
51k
Thoughts on Productivity
jonyablonski
75
5.1k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
76
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.4k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
140
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.8k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
310
Transcript
「フレームワークを使っていれば 脆弱性は出ない」って本当? そのレール、本当に乗ってますか #BSidesSendai BSides Sendai 2019 今野夕貴(@thatblue_plus)
とりあえず自己紹介 だいたい仙台出身、ほぼ仙台在住 学生時代を過ごした会津若松は 第二の故郷 新卒から10年くらい、ソフトウェ アエンジニア的なお仕事をしてい ます PHPやJavaを中心に、サーバサイ ドとかWebアプリケーションと呼 ばれるあたりの分野をやっていま
す ガルパン大好きなんですが近くにあ んまり語り合える人がいないのでお 友達になってください
こんな人に知ってほしい 業務での開発が未経験だけど、何か自分でWeb サービスの開発をしようとしている人 「脆弱性ってよくわからないけど、フレームワー ク使ってたら大丈夫でしょ」って思っている初 級エンジニア〜経験浅めのリードエンジニア もしくは上記のようなエンジニアを指導する 立場の人へ、指針の参考として 主にWebアプリケーション開発における、以下のような立 場の人
「フレームワークを使っていれば 脆弱性は出ない」って本当? 今回は 「フレームワーク=Webアプリケーションフレームワーク」 としてご理解ください
半分は本当だけど 半分は間違ってると思う
どのような攻撃からどう守っているのかを知らなければ (セキュリティ的な)意味は半減します 冨樫義博「幽☆遊☆白書 14巻」(集英社、1993年)
以上
……では登壇する意味が ないので
フレームワークを使っていても 脆弱性が入り込んでしまうポイント フレームワークやライブラリの選定ミス 設定ミス フレームワークの思想を無視した実装 フレームワークではどうしようもないところ のカバー漏れ
フレームワークや ライブラリの選定ミス
どうやって選ぶか RubyにおけるRailsのような、言語における「鉄板」があるなら従う 使用者数が少ないフレームワークは自信を持って選べるようになっ てからで十分 Google検索などで評判を調べてみる 少なくとも開発コミュニティが活発であること GitHubのstar数 中心になって開発している人がどんな人なのか 一万歩譲ってもセキュリティ対応期間中のもの、可能な限りリリース 済みの新しいバージョンを使う
評判の信ぴょう性を判断するには 結局自分が知識を持つしかない
とは言え、フレームワーク名で検索してサジェスト 上位に「脆弱性」って出てくるものは避けましょう フレームワークの名誉のため、モザイク処理済
設定ミス
デフォルト設定が安全側に倒れていないケース 設定変更のリスク判断が十分に出来ていないケー ス 設定の組み合わせによって問題が起きるケー ス
デフォルト設定が 安全側に倒れていないケース 例: FuelPHP(1.8のmasterで確認)のデフォル ト設定ではCSRFトークンのチェックをしてお らず、オプション機能扱いになっている 放っておいた場合何が起こるかは「はまち ちゃん事件」で検索 このときは勝手に日記を投稿されるだけで 済んだから良かった(!?)ものの、勝手に商品
を購入させるようなことになってたら……
設定変更のリスク判断が 十分にできていないケース DBなどに登録したHTMLをそのまま書き出した い、という要件 書き出す箇所だけエスケープを外すべきと ころ、全体のエスケープ設定を外してしま う
フレームワークの思想を 無視した実装
安全に実装する方法が分からない 「自分がやりたいことはフレームワークでサ ポートされていない」と思い込み、フレーム ワークを使わない実装を始めてしまう
安全に実装する方法が 分からない 是非が判断できないため、Google検索で見つ けた問題のある実装方法でそのまま済ませてし まう そもそも公式ドキュメントを読まない 読み慣れないと望む情報にたどり着くのが 大変なのはとてもよくわかる、が、読もう!
「やりたいことがフレームワーク でサポートされていない」という 思い込み 経験の浅いエンジニアにありがち フォームデータの多次元配列データに対応していないと思い 込み(というかそもそもそういう概念を知らず)、自前でPOST パラメータを読み出す処理を作り込んでしまった フレームワークのバリデーション機能でフォローできな くなるので、入力の検証が地獄になる 参考元のコードに求めているパターンの実装がなく、上長に
相談しても「もっとよく見て」と適当にあしらわれる(血涙) というわけで先輩方はどうかサポートしてあげてください
ここまでは、 ちゃんと「レールに乗って」いれば 回避できる話
フレームワークでは どうしようもないところの カバー漏れ
アクセスログを取ろうとして、リクエストパ ラメータに含まれていた平文のパスワードも そのままログに書き出してしまう 独自のバリデーションルールを作ろうとして、 正規表現をミスする そして問題のある入力を受け付けてしまう
余談:パスワードを平文で 保存してはいけない理由?
フレームワークなしでもそこそこセキュアに 組めるくらいの理解はないと正直厳しいと思っている 結局ここに戻ってくる 冨樫義博「幽☆遊☆白書 14巻」(集英社、1993年)
最低リードエンジニアくらいは、 とは思うのですが
できれば、みんなで勉強して頑張ろう 把握してるごく少人数で全部カバーとか死んじゃいます
みんな読もう、徳丸本 正式なタイトルは「体系的に学ぶ 安全なWebアプリケーションの作り方」 第二版がおすすめ
正しくレールに乗って ご安全に!