2022/07/27

CSRFとは?Salesforce Lightning Platformは安全?

 
  

CSRFとは?

CSRFとは、クロスサイトリクエストフォージェリのことで、「CSRF攻撃」という言葉があることからも分かるように、サイバーアタックのようなものの一つです。 もう少し詳しく説明すると、Webアプリケーションに存在する脆弱性を利用した攻撃方法のことで、これを受けると、本来拒否しなければならない他サイトからの悪質なリクエストを受信し処理してしまうようになってしまいます。 具体的には、掲示板へのいたずら的な書き込みや、これを大量に行うことによるDoS攻撃、不正サイトへの誘導などといったリクエストを、攻撃者自身が攻撃対象のサーバーへ直接アクセスすることなく処理させます。

CSRFの攻撃方法と特徴

まず、攻撃者は偽のWebサイトを用意し、リンクをメールで送信するなど、どうにかしてそのWebサイトへ誘導します。 偽のWebサイトにアクセスしたユーザーが、攻撃対象となるWebサイトにログイン状態となっていると、あらかじめ偽のWebサイトに用意されていた不正なリクエストが攻撃対象となるWebサイトに送られます。 攻撃対象となるWebサイトは、このユーザーが意図していない不正なリクエストである、いたずら的な書き込みなどをユーザーからのリクエストとして処理してしまうのです。 このCSRFによる一連の攻撃の流れを見てわかるように、偽のWebサイトにアクセスしたユーザーが、攻撃対象となるサーバーへの不正なリクエストを送信した「攻撃者」として認識されてしまう危険性があるのです。 Salesforceの場合でも同じように、攻撃者は偽のWebサイトを用意し、SalesforceユーザーがSalesforceにログイン時、そのサイトにアクセスしたときにURLが取得され、サイトへの通信量を増大させるなど、ユーザーが意図していないアクションが実行されます。

CSRF攻撃への対策方法

CSRF攻撃は、ログインを必要とする重要な情報があるWebサイトで、ユーザーの意図しないアクションが起こってしまう危険なものですが、しっかりとした対策方法があります。 その対策方法は、ユーザー、Web管理者、IT管理者でそれぞれ異なります。

ユーザーが行うべき対策

ユーザーが行うべき対策は、偽のWebサイトにアクセスしない、ということになります。 CSRF攻撃は、偽のWebサイトにアクセスすることをトリガーとして、攻撃を行います。そのため、偽のWebサイトにアクセスすることがなければ、CSRF攻撃を受けることはないのです。 これを踏まえて具体的な対策方法を考えると、まずは、メールや、Web上に存在する、出所などが不明瞭なURLを簡単にクリックしないことが一つ挙げられます。 最近は、フィッシング詐欺などが横行したこともあったため、こういったことが当然になりつつありますが、CSRF攻撃に対しても有効な対策になります。 もう一つの具体的な対策方法としては、デバイス上のセキュリティ対策で、偽のWebページがある不正なサイトへのアクセスをブロックする、というものです。 結果的に言えば、どちらの対策も、偽のWebサイトにアクセスしないための対策となるため、インターネットを利用してWebサイトへ訪問する際は、しっかりと訪問先サイトの安全性を確認するということが重要となります。

Web管理者が行うべき対策

Web管理者が行うべき対策は、自分たちのWebサイトやアプリケーションが、サイト外からのリクエストを受信、処理しないシステムを設計する、ということになります。 そのために、攻撃者が推測しにくい任意の情報、すなわち、ランダムな数字や、ページトークンなどの情報を、照合する処理の実装が一つの対策方法となります。 もう一つの対策方法は、セキュリティ向上のための画像認証機能である、「CAPTCHA機能」を実装することです。CAPTCHA機能は、ランダムな文字が書かれた画像が表示され、これに対して正しく回答できなければリクエストの受信を拒否するものです。 また、「私はロボットではありません」の項目とチェックボックスが追加され、これにチェックを入れなければリクエストの受信を拒否するといったものもあり、ランダムな文字列の画像生成よりもセキュリティ面では劣りますが、より簡易的なCAPTCHA機能として最低限の効果は発揮します。

IT管理者が行うべき対策

IT管理者が行うべき対策は主に3つで、「エンドポイントへの総合的なセキュリティソフトの導入」と「外部不正サイトへのアクセスを、ネットワーク内部からブロックする」、そして「メールサーバーでの不審なメールの検出」になります。

SalesforceでのCSRFの対策

SalesforceのLightning Platform内では、CSRF攻撃を回避するための対CSRFトークンが実装されています。 すべてのページにランダムな文字列が表示形式項目として指定され、次のページが読み込まれると、アプリケーションはその文字列の正当性を確認し、一致しない限りはコマンドを実行することはありません。 この機能により、標準コントローラとメソッド使用時に攻撃から保護されています。

注意点

SalesforceのLightning Platform内では、上述のとおり、対CSRFトークンにより対策が行われていますが、注意しなければならないことが二点あります。 まず一つ目は、独自のactionメソッドを作成するなどで、開発者がリスクを意識せずに組み込み防御策をスキップしてしまう場合があるということです。 回避策として、アクションを実行する前に中間の確認ページを挿入することで、ユーザーが本当にそのページを開こうとしているのか確認するという方法が挙げられます。これにより、その確認に答えることができなければリクエストに答えることがなくなり、防御策として機能します。 二つ目は、ユーザーが複数のSalesforceログインページを開いていると、CSRFに対するSalesforceの組み込み防御策が作動し、エラーが表示されてしまうことがあるということです。 一つのタブでSalesforceにログインし、その後、別のタブでログインしようとすると、「送信したページは、セッションに対して無効でした。」というエラーが表示されてしまいます。これは、ログインページを更新するか、別でログインをもう一度試みることで解決します。

Salesforceのユーザーが行うべき対策

Salesforceのユーザーが行うべき対策は、基本的には上で書いた「CSRF攻撃への対策方法」のユーザーが行うべき対策とほとんど同じです。 信頼性の低いWebサイトには訪問しないようにし、身に覚えのない操作履歴等があれば、すぐに確認するようにしましょう。 また、これも基本的な対策となりますが、CSRF攻撃のログインしている状態を狙うという特性から、サービスの利用後は逐一ログアウトする、ということも効果的です。これにより、もし偽のWebサイトへアクセスしてしまったとしても、CSRF攻撃を受けることはありません。

CSRFについて理解し、セキュリティの向上を!

今回はCSRFについて紹介しました。 CSRFは、基本的にプログラムエラーよりも、保護対策がきっちり行われていないことが原因で攻撃をうけます。今回ご紹介した対策は、基本的なものばかりですが、どれも根本的な解決策となるものです。 Salesforceの利用者にも同じことが言えるので、これをまずはきっちりと理解した上で利用し、少し面倒ではありますが、サービスの利用後は逐一ログアウトするように心がけましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】