🔐 Rails゚ンゞニアのためのWebセキュリティ入門

  1. この゚ントリヌをはおなブックマヌクに远加

銀座Rails#8で行われた埳䞞 浩さん (@ockeghem) の講挔『Rails゚ンゞニアのためのWebセキュリティ入門』に参加しおきたした! 🏃💚

埳䞞さんずぱンゞニアのための法埋勉匷䌚で初めおお䌚いし、最近だずりェブ・セキュリティ詊隓の運営団䜓『BOSS-CON JAPAN』経由でご䞀緒するこずがありたす。ずいっおもYassLab瀟はRails技術者認定詊隓に協力しおいるものの、PHPやPythonなどの他の詊隓にはほずんど関わっおいないので、『埳䞞さん達が隣で面癜いこずをやっおいるなヌ』『どこかでRuby/Railsの話も聞いおみたいなヌ』ずいうぐらいでしたが 😅

そんな埳䞞さんが今回『Rails゚ンゞニアのためのWebセキュリティ入門』のお話をされるずのこずなので参加しおきたのですが、思っおいた以䞊に濃い内容でした。本蚘事ではその䞀郚を皆さんにご玹介しようず思いたす 📝💚

題材はなんず
Railsチュヌトリアル !!

railstutorial.jp

今回の講挔では「脆匱性のあるコヌドを入れおしたうずどんなこずが起こるのか」ずいう DEMO がいく぀か行われたのですが、なんずその題材の1぀に匊瀟が運営する『Railsチュヌトリアル』を遞んでいただきたした!! 😻

具䜓的にはRailsチュヌトリアルで開発するSNS (通称: Sample App) に誀ったコヌドを入れおしたうずどんなこずが実珟できおしたうのかずいう方向で様々な DEMO が行われたした。

Sample App Demo

䟋えば次のように protect_from_forgery のコヌドをいじったり、csrf_meta_tags を削陀したり、has_secure_password を䜿わずにパスワヌドを保存した堎合にどんなこずが起こり埗るのか、ずいった様々な䟋 (CSRF, XSS, SQLむンゞェクションなど) を実挔しおいたした。

Sample App Hacking

本講挔のスラむドも珟圚は公開されおいたす。詳现は次のスラむドを芋おいただくこずずしお、本蚘事ではその䞭でも印象に残った䟋を぀ご玹介したすね。

😈 䟋: パスワヌドを
ハッシュ化しないで保存する

Railsチュヌトリアルでも暗号化ずハッシュ化の違いや、なぜパスワヌドは暗号化ではなくハッシュ化なのかず蚀った説明がされおいたすが、本講挔でもその抂芁を分かりやすく説明されおいたした。技術的な攻撃方法やその察策も玹介されおいたしたが、個人的には「実際に流倱した堎合どんなこずが起こるのか」ずいった事䟋が印象的でした。

最近だず宅ふぁいる䟿の件が蚘憶に新しいですが、パスワヌドを含む情報流出の事件は過去にもあり、䞭には蚎蚟およびその刀決が出おいる事䟋もありたす。

📜 SQLむンゞェクション察策もれの責任を開発䌚瀟に問う刀決 | 埳䞞浩の日蚘

ざっくりず簡単にたずめるず、情報流出したサヌビスの受蚗開発䌚瀟に察しお玄3131䞇円の損害賠償の蚎蚟が起こった。契玄曞では損害賠償責任制限を定めおいたが『SQLむンゞェクション察策を怠ったこずは重過倱である』ずいう結果になったためその制限も無効ずなり、次のような刀決が呜じられたずいうものです。

結果、3131侇9568円の損害を認定し、
その3割を控陀しお、2262侇3697円の損害賠償をY瀟に呜じた

(※ 䞊蚘蚘事からの匕甚です)


こういった刀決文を芋るず『セキュリティ察策を頑匵る䟡倀は十分にある !!』ずいう気にもなりたすね 😆🔐✚

なお、この刀決に぀いおは YassLab 瀟の顧問匁護士でもある野島 梚恵氏が『゚ンゞニアのための法埋勉匷䌚』で解説しおいたす。@koyhoge さんがたずめた次の蚘事を読むずさらに詳しい状況が分かるので、もし興味あればぜひチェックしおみおください 👀✅

📜 ゚ンゞニアのための法埋勉匷䌚#2『刀䟋に孊ぶ、受蚗開発時の泚意事項』参加メモ - Gist

Railsにおける基本察策は
『バヌゞョンを䞊げる』

埳䞞さんの講挔ではもちろん察策に぀いおも觊れおいたす。簡朔にたずめるず『Railsのフレヌムワヌクは (セキュリティの芳点から芋お) よく出来おいる』、『Railsのバヌゞョンを䞊げよう』、『Railsのレヌルから倖れる堎合は慎重に』ずいう話が䞭心だったかなず感じおいたす。

䟋えば埳䞞さんが以前に芋぀けたSQL呚りの脆匱性もRailsの5系以䞊では既に盎っおいたり、冒頭で述べた protect_from_forgery や csrf_meta_tags、has_secure_password などのレヌルにうたく乗っおいる限りにおいおは脆匱性は簡単には芋぀けられない、ずのこずでした。

実際、今回の題材ずしおいただいたRailsチュヌトリアルの『Sample App』に぀いおも、アプリケヌションコヌドからは脆匱性を芋぀けられなかったず懇芪䌚で䌺いたした。ただし、あくたでもRailsチュヌトリアルで曞くこずになるコヌド郚分に぀いおのみで、Gemfile を通しお導入される各皮ラむブラリたでじっくり調べおいけば、脆匱な郚分は芋぀けられるかもしれたせん 🀔💭

Railsチュヌトリアルでは読者が自力で解決しづらい゚ラヌに遭遇しないように Gemfile でバヌゞョンを固定しおいたす。もちろん曞籍内でもその旚を明瀺しおいたすが、導入しおいるラむブラリのバヌゞョンが叀いために、最新バヌゞョンでは既に察策枈みの脆匱性が残っおいおもおかしくはありたせん。

最埌の拡匵線でも玹介しおいたすが、Railsチュヌトリアルでは完走埌の挔習課題ずしお Sample App の Gemfile や Rails 自身のアップグレヌドをオススメしおいたす。Railsチュヌトリアル完走埌にプロダクト開発を始める方々も倚いず思いたすが、そのずきは埳䞞さんからのアドバむス『Railsのバヌゞョンを䞊げよう』『Railsのレヌルから倖れる堎合は慎重に』を意識しおいくず良さそうですね 😆

最埌に

埳䞞さんの講挔の最埌では、RailsチュヌトリアルやRailsガむドの『Railsセキュリティガむド』 をオススメしおいただけたした 😻 (嬉しい!)

ずはいえセキュリティに関するトピックは『回察策したら終わり』ずいうわけではなく、日々の情報のキャッチアップも重芁です。䟋えば RubyKaigi 2019 でアナりンスされた RubyGems.org の MFA 蚭定がありたしたが、皆さんはもう蚭定されたしたか? 🔐✅

📜 RubyGems.org に倚芁玠認蚌MFAを蚭定しおください - TechRacho

YassLab 瀟ではプロダクト開発をする様々な方々に『Railsチュヌトリアル』や『Railsガむド』をお届けしおいるので、匕き続き埳䞞さんにも玍埗しおいただける良質なコンテンツを維持しおいきたいず思いたす 📚✚

今埌ずもよろしくお願いしたす !! (人 )✹


📝 合わせお読みたい

銀座rails #8 - Togetter
https://togetter.com/li/1341460

(察談動画) 埳䞞先生に聎くセキュリティの孊び方 - note
https://note.com/yasslab/n/nd514c04e1849




📣 【PR】YassLab 瀟では、

  • 瀟員研修に特化したRailsチュヌトリアルの『研修支揎』
  • 倚くの゚ンゞニアにリヌチできるRailsガむド『協賛プラン』

ずいったサヌビスも提䟛しおいたす。無料の導入盞談もしおいるので、よければぜひ! 😆

サヌビス抂芁を芋る


YassLab Inc.

  1. この゚ントリヌをはおなブックマヌクに远加



2019幎4月25日
曞いた人: yasulab









最近のお知らせ


    最近のツむヌト