検索
特集

「クレジットカード情報の非保持化は、脆弱性があれば意味がない」――徳丸浩氏が指摘基本的なセキュリティ施策が重要(2/2 ページ)

日本PHPユーザ会が開催した「PHP Conference 2018」でEGセキュアソリューションズの徳丸浩氏は、ECサイトのセキュリティ対策として「クレジットカード情報を保存しない(非保持化)」を推奨する動向に対し、「脆弱(ぜいじゃく)性があれば意味がない」と指摘する。

Share
Tweet
LINE
Hatena
前のページへ |       

偽の決済画面を追加する手口とは

 徳丸氏は「伊織ネットショップの手口がこれかどうかは分からない」と前置きした上で、Webアプリケーションセキュリティの改善活動を行う非営利団体「The Open Web Application Security Project」(OWASP)が発行した「OWASP Top 10 2017」で、Webアプリケーションの重大リスクに挙げられた「安全でないデシリアライゼーション」(CWE-502)を用いる方法を説明する。

 安全でないデシリアライゼーションとは、シリアライズ化(直列化)されたオブジェクトの復元処理(デシリアライズ)における脆弱性のことだ。外部から受け取ったクッキーやセッション変数など任意のオブジェクトを、デシリアライズ関数を用いて復元するようなコードがあった際に、攻撃者が任意のコードを実行できる恐れがある。

PHPにおけるシリアライズとデシリアライズ
PHPにおけるシリアライズとデシリアライズ

 「PHPのようなオブジェクト指向言語では、メモリ内にさまざまなオブジェクトが生成される。複雑なデータ構造をデータベースなどに保存する場合、データ構造はシリアライズ関数(serialize)を用いて直列化し、保存されたデータを復元(unserialize)する。どういったオブジェクト(クラス)が生成されるかは、保存されたシリアライズデータに依存するため、最悪の場合、攻撃者が仕込んだプログラムが実行される恐れがある」

 デモでは、クッキーを受け取る際にデシリアライズするようなECサイトを用意し、「Web経由でサーバコマンドを実行できる『Webshell』を外部からダウンロードする処理」をシリアライズ化してクッキーで送信。クラス実行終了時に呼び出されるデストラクタ関数を介して、その処理を実行させ、WebShellからECサイトサーバ内にあるトランザクションログを出力して、カード情報を盗めることを確認した。

 「WebShellのようなバックドアを追加すれば、Web経由でコマンドを実行してサーバ内のファイルを探索し、カード情報を含む重要な情報を盗むことができる。また、カード情報が保存されていないサーバだとしても、今回説明した手口を利用すれば、攻撃者が所有するドメインにリダイレクトする決済画面を追加できる。また、カード情報を入力すると『エラーです』と表示され、次に本物の決済画面が表示される仕組みにすれば、改ざんしたことを検知されづらいようにもできる」

悪意のあるクッキーを利用して(左)、サーバにWebShellを配置する処理を実行させ、Webからログファイルの中身を確認できた

 徳丸氏は、安全でないデシリアライゼーションの対策方法とまとめを述べて、説明を終えた。

 「PHPを利用するアプリケーションにおける『安全でないデシリアライゼーション』の対策は、外部から受け取るデータをserialize/unserialize関数ではなく、json_encode/json_decode関数で処理することだ。カード情報保護対策の一つに、カード情報を保存させない非保持化があることは確かだが、アプリケーションに脆弱性があれば、カード情報を盗まれてしまう。カード情報の非保持化にも取り組むべきだが、まず、カード情報を盗まれないために、アプリケーションに脆弱性を残さないという基本的なセキュリティ施策が求められるだろう」

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       

Security & Trust 記事ランキング

  1. 中小企業の20%の経営層は「自社はサイバー攻撃に遭わない」と信じている バラクーダネットワークス調査
  2. ChatGPTやClaudeのAPIアクセスをかたってマルウェアを配布するPython用パッケージ確認 Kasperskyが注意喚起
  3. 「生成AIのサイバー攻撃への悪用」は増加する? 徳丸浩氏が予測する2025年のセキュリティ
  4. AWS、組織のセキュリティインシデント対応を支援する「AWS Security Incident Response」を発表 アラートに圧倒されるセキュリティチームをどう支援?
  5. 従業員は「最新のサイバー脅威との戦い」を強いられている セキュリティ教育に不満を持つ理由の1位は?
  6. 「このままゼロトラストへ進んでいいの?」と迷う企業やこれから入門する企業も必見、ゼロトラストの本質、始め方/進め方が分かる無料の電子書籍
  7. Google、オープンソースのセキュリティパッチ検証ツール「Vanir」を公開 多種多様なAndroidデバイスの脆弱性対応を支援するアプローチとは
  8. 商用国家安全保障アルゴリズム(CNSA)の期限となる2030年までに暗号化/キー管理サービス市場が60億ドルに達するとABI Researchが予測 急成長の要因とは?
  9. 「SQLite」のゼロデイ脆弱性、GoogleのAIエージェントが見つける AIは脆弱性調査の課題をどう解決したのか?
  10. 高度なAIでAIをテスト OpenAIが実践するAIモデルのレッドチーム演習とは
ページトップに戻る