736 Views
July 01, 17
スライド概要
YAPC::Fukuoka 2017 HAKATA 07/01 におけるトーク
ウェブセキュリティの最近の話題早分かり EGセキュアソリューションズ株式会社 徳丸 浩
アジェンダ • 最近の侵入事件に学ぶ – – – – – – メルカリ CDNキャッシュからの情報漏えい WordPress REST API の脆弱性 GMOペイメントゲートウェイのクレジットカート情報漏洩事件 日本テレビの侵入事件 パイプドビッツ WebDAVの設定不備による情報漏洩 イプサ クレジットカード情報漏洩事件 • まとめ Copyright © 2012-2017 EG Secure Solutions Inc. 2
徳丸浩の自己紹介 • 経歴 – 1985年 京セラ株式会社入社 – 1995年 京セラコミュニケーションシステム株式会社(KCCS)に出向・転籍 – 2008年 KCCS退職、HASHコンサルティング株式会社(現EGセキュアソリューションズ株式会社)設立 • 経験したこと – 京セラ入社当時はCAD、計算幾何学、数値シミュレーションなどを担当 – その後、企業向けパッケージソフトの企画・開発・事業化を担当 – 1999年から、携帯電話向けインフラ、プラットフォームの企画・開発を担当 Webアプリケーションのセキュリティ問題に直面、研究、社内展開、寄稿などを開始 – 2004年にKCCS社内ベンチャーとしてWebアプリケーションセキュリティ事業を立ち上げ • 現在 – EGセキュアソリューションズ株式会社 代表 http://www.eg-secure.co.jp/ – 独立行政法人情報処理推進機構 非常勤研究員 http://www.ipa.go.jp/security/ – 著書「体系的に学ぶ 安全なWebアプリケーションの作り方」(2011年3月) 「徳丸浩のWebセキュリティ教室 」(2015年10月) – 技術士(情報工学部門) Copyright © 2012-2017 EG Secure Solutions Inc. 3
メルカリ CDNキャッシュからの情報漏えい Copyright © 2012-2017 EG Secure Solutions Inc. 4
「メルカリ」の個人情報漏えい、原因はCDNキャッシュの仕様、技術的な詳細情報を公表 岩崎 宰守2017年6月23日 13:14 株式会社メルカリは22日、「メルカリ」のウェブ版サービスで、一部ユーザーの個人情報が他者に 閲覧できる状態になっていた原因について、CDN(Content Delivery Network)プロバイダーの切り 替えにおけるキャッシュ仕様の違いによるものであることを発表。技術的な原因の詳細をMercari Engineering公式ブログで公表している。 メルカリでは22日9時41分に、同サービスのパフォーマンス改善のため、CDNプロバイダーの切り 替えを行った。その後、14時41分、「マイページをクリックしたら他人のアカウントのページが表示 された」とのユーザーからの問い合わせにより、この切り替えが原因で情報漏えいが発生したことを 認識したという。 これを受けて15時5分、元のCDNを使用する状態に戻し、同16分に同サービスをメンテナンスモー ドに切り替え、同38分にキャッシュサーバーへのアクセスを遮断。これにより問題は解消したという。 CDNにキャッシュされた情報は、コントロールパネルから削除を行ったとのこと。 切り替え前のCDNプロバイダーでは、キャッシュの制御を設定で行う仕様だったが、移行先のCDN プロバイダーでは、特定のヘッダーによりキャッシュ制御が可能な仕様だった。しかし、問題発覚後 に移行先CDNプロバイダーのキャッシュ仕様を再度確認したところ、キャッシュをしないのはヘッ ダーに「Cache-Control: private」が含まれている場合のみだったことが分かったという。さらなる詳 細が、Mercari Engineering公式ブログで公表されている。 http://internet.watch.impress.co.jp/docs/news/1066949.html より引用 5
https://docs.fastly.com/ja/guides/tutorials/cache-control-tutorial より引用 6
デモ環境の説明 nginx Apache キャッシュサーバー(リバースPROXY) PHP SNS Copyright © 2012-2017 EG Secure Solutions Inc. 7
Google検索で見つけた記事を設定にコピペする server { listen 80; server_name hogehoge.jp; ##公開するURL #キャッシュ設定 proxy_cache cache-space; proxy_cache_valid 200 302 304 10m; #応答コードが200/302/304だったら10分キャッシュ proxy_cache_valid 404 1m; #応答コードが404だったら1分キャッシュ proxy_ignore_headers X-Accel-Redirect X-Accel-Expires Cache-Control Expires Set-Cookie; #な にがなんでもキャッシュ send_timeout 300; proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; proxy_temp_path /home/nginx/tmp; この記事をdisる意図ではありません。 目的によって設定は異なるので、考え なしにコピペすることが問題 Copyright © 2012-2017 EG Secure Solutions Inc. 8
WordPress REST API の脆弱性 Copyright © 2017 EG Secure Solutions Inc. 9
WordPressの脆弱性突く攻撃が激増、6万以上のWebサイトで改ざん被害 脆弱性情報が公開されてから48時間足らずの間に悪用コードが投稿され、脆弱性のあるサイトを探して攻撃を試す動きはインターネット全体に 広がった。ハッキングされたWebサイトの数は6万6000以上にのぼり、現在も増え続けている。 1月下旬のパッチで修正された、WordPressの深刻な脆弱性を突く攻撃が、わずか2週間足らずの間に激増し、多数のWebサイトが改ざんなど の被害に遭っていることが分かった。この問題を発見したセキュリティ企業のSucuriが2月6日のブログで伝えた。 WordPressは1月26日に公開した更新版の4.7.2で複数の脆弱性を修正した。このうち特に深刻なWordPress REST APIの脆弱性については、2月1 日まで待ってから情報を公開していた。この問題を悪用された場合、認証を受けないユーザーがWordPressサイトのコンテンツやページを改ざん できてしまう可能性が指摘されている。 脆弱性を悪用した攻撃のイメージ(出典:IPA) Sucuriでは、脆弱性情報が公開されてから48時間足らずの間に悪用コードがWeb上に掲載され、共有されていることを確認した。その情報が簡 単に入手できることから、脆弱性のあるサイトを探して攻撃を試す動きはインターネット全体に広がったという。 http://www.itmedia.co.jp/enterprise/articles/1702/09/news064.html より引用 10
WordPress、更新版で深刻な脆弱性を修正 安全確保のため情報公開を先送り WordPress.orgは2月1日のブログで、1月末に公開したWordPressの更新版で深刻 な脆弱性に対処していたことを明らかにした。安全確保のため、意図的にこの脆弱 性に関する情報の公開を遅らせていたという。 WordPressは1月26日に更新版の4.7.2が公開され、この時点ではそれほど危険性の 高くない3件の脆弱性についてのみ情報を掲載していた。 今回新たに情報が公開された深刻な脆弱性は、WordPress REST APIに存在する。 この問題はセキュリティ企業のSucuriが1月20日にWordPressに通知していたといい、 悪用された場合、認証を受けないユーザーがWordPressサイトのコンテンツやページ を改ざんできてしまう恐れがあった。 WordPressではこの問題について、「セキュリティ問題は常に公開されるべきとい うのがわれわれのスタンスだが、今回のケースでは、何百万というWordPressサイト の安全を保証するため、意図的に公開を1週間先送りした」と説明している。 http://www.itmedia.co.jp/enterprise/articles/1702/03/news063.html より引用 11
GMOペイメントゲートウェイのクレジット カート情報漏洩事件 Struts2 S2-045(CVE-2017-5638) 12
GMOペイメントゲートウェイに不正アクセス クレジットカード情報など約72万件が流出した可能性 GMOペイメントゲートウェイが提供する決済サービスに不正アクセスがあり、東京都の都税クレジッ トカードお支払いサイトと、住宅金融支援機構の団体信用生命保険特約料クレジットカード支払いサ イトから、クレジットカードなどの情報約72万件が流出した可能性がある。 [園部修,ITmedia] GMOペイメントゲートウェイが3月10日、第三者による不正アクセスにより、クレジットカードの 番号や有効期限などを含む71万9830件の情報が流出した可能性があると発表した。 不正アクセスがあったのは、東京都の都税クレジットカード支払いサイトと、住宅金融支援機構の 団体信用生命保険特約料クレジットカード支払いサイト。「Apache Struts2」の脆弱性を悪用した不 正アクセスが発生し、悪意のあるプログラムが仕込まれていたことが判明した。調査の結果、クレ ジットカード番号やクレジットカードの有効期限、メールアドレスなどの情報が流出した可能性があ ることが分かった。 なお現時点では、該当2サイト以外のサービスでは、同様の問題は発生していないことを確認して いるという。 不正アクセスの痕跡を確認したのは、3月9日の深夜。3月9日にIPAが発表した「Apache Struts2 の 脆弱性対策について(CVE-2017-5638)(S2-045)」ならびにJPCERTの「Apache Struts 2の脆弱性 (S2-045) に関する注意喚起」の情報に基づき、同日18時からGMOペイメントゲートウェイのシス テムへの影響調査を行った結果判明した。Apache Struts 2の脆弱性対策はすでに実施済みだという。 http://www.itmedia.co.jp/enterprise/articles/1703/10/news157.html より引用 13
3.調査経緯と対策について ■3/9(木) 18:00 IPA独立行政法人情報処理推進機構様の「Apache Struts2 の脆弱性対策について(CVE-2017-5638)(S2-045)」 (※1)ならびにJPCERT様の「Apache Struts 2 の脆弱性 (S2-045) に関する注意喚起」(※2)の情報に基づき、 当社システムへの影響調査を開始。 20:00 当社内で当該脆弱の対象となるシステムの洗い出しが完了。対策方法の検討開始。 21:56 WAF(※3)にて該当する不正パターンによるアクセスの遮断を実施。[対策1] 同時に不正アクセスの可能性の 調査を開始。 (※3)WAF(Web Application Firewall)Webサイト、およびその上で動作するWebアプリケーションを狙った 攻撃を防御するセキュリティ対策システム。 23:53 不正アクセスの痕跡を確認したため「Apache Struts 2」が稼働しているシステムを全停止。ネットワーク未接続 状態にあったバックアップシステムに切替を実施。[対策2] https://corp.gmo-pg.com/news_em/20170310.html より引用 14
3.調査経緯と対策について ■3/10(金) 00:30 「Apache Struts 2」の脆弱性対策を[対策2]のバックアップシステムに実施。[対策3] 調査の結果、東京都様の都税クレジットカードお支払サイトと独立行政法人住宅金融支援機構様の団体信用生命 保険特約料クレジットカード支払いサイトにおいて不正アクセスを確認。 02:15 東京都様の都税クレジットカードお支払サイトと独立行政法人住宅金融支援機構様の団体信用生命保険特約料ク レジットカード支払いサイトにおいて不正にデータ取得された可能性が高いことを確認。 06:20 不正アクセスされた可能性のある情報の内容と件数を確認。 08:40~ 東京都様の都税クレジットカードお支払いサイト運営会社ならびに独立行政法人住宅金融支援機構様へ報告。対 策を協議。 https://corp.gmo-pg.com/news_em/20170310.html より引用 15
Apache Struts 2の脆弱性を突かれて不正アクセス、都税支払いサイト などからクレジットカード情報72万件が流出した可能性 GMOペイメントゲートウェイ株式会社(GMO-PG)は10日、同社が運営受託している東京都税クレジットカー ド支払いサイトおよび独立行政法人住宅金融支援機構の団体信用生命保険特約料のクレジットカード支払いサイ トに不正アクセスがあり、利用者のクレジットカード番号・有効期限など合計72万件近くの情報が流出した可能 性があると発表した。アプリケーションフレームワーク「Apache Struts 2」の脆弱性「CVE-2017-5638/S2-045」 を突かれたもの。 GMO-PGによると、いずれもクレジットカード番号は暗号化処理された状態だったという。一方、住宅金融支 援機構のサイトにおいては、クレジットカード番号・有効期限のほか、セキュリティコード、住所、氏名、電話 番号、生年月日なども含まれている。セキュリティコードの情報は、カード業界のセキュリティ標準であるPCI DSSによりシステムで保持してはならないことになっているが、今回の不正アクセス被害で調査するまで、セ キュリティコードを保持していることをGMO-PGでは認識していなかったとしている。 CVE-2017-5638/S2-045の脆弱性については、脆弱性を修正したバージョン「2.3.32」および「2.5.10.1」がリ リース済みだが、これを狙った攻撃が3月7日ごろから急増していることがセキュリティベンダー各社から報告さ れていた。これを受けてGMO-PGが9日、この脆弱性の対象となる同社のシステムの洗い出しを行ったところ、 上記2サイトに悪意あるプログラムが仕掛けられ、第三者に不正にデータを取得された可能性が高いことが判明 した。詳細はフォレンジック調査中だが、日本時間の8日未明に不正アクセスされた痕跡が確認されており、そ の時点でプログラムが仕掛けられたとみられる。 http://internet.watch.impress.co.jp/docs/news/1049261.html より引用 16
時系列のまとめ(日本時間) 3月6日 19時頃 S2-045のアドバイザリー公開、修正バージョンが dev リポジトリにUPされる、 3月7日 21時頃 修正バージョンが dev から release に移される 3月8日 早朝 東京都税クレジットカード支払いサイトおよび団体信用生命保険特約料のクレジッ トカード支払いサイト(以下、両サイト)に不正アクセス(後に判明) 3月8日 午後 IPAから注意喚起 3月8日 21時頃 正式アナウンスのメール、Webサイト更新 3月9日 午前 JPCERT/CCから注意喚起 3月9日 18:00 GMO-PGにてS2-045を把握、対象サイトの洗い出しを開始 3月9日 20:00 対象となるシステムの洗い出しが完了、対策方法の検討開始 3月9日 21:56 WAFにシグネチャを設定 3月9日 23:53 不正アクセスの痕跡を確認したため「Apache Struts 2」が稼働しているシステムを全 停止。ネットワーク未接続状態にあったバックアップシステムに切替を実施 3月10日 00:30 両サイトにおいて不正アクセスを確認 3月10日 02:15 両サイトにおいて不正にデータ取得された可能性が高いことを確認。 https://twitter.com/kitagawa_takuji/status/839457500021702660 http://internet.watch.impress.co.jp/docs/news/1049261.html https://corp.gmo-pg.com/news_em/20170310.html などをもとにまとめた 17
Struts2 S2-045の攻撃はどうすれば防げたか? or 緩和できたか? • 早期に脆弱性情報をキャッチして以下のいずれかを行う – とにかく パッチ適用 / バージョンアップをやってしまう – サイトを停止する • 高性能のWAFを導入する • データを暗号化する – Internet Watchの記事によると、両サイトともクレジットカード番号は暗号化 された状態で保存されていた – 4月14日付けのリリースで、不正利用は確認されていないとのこと • ファイルパーミッションの制限 • SELinuxの活用 • いわゆる"出口対策" として外向き通信の制限 Copyright © 2012-2017 EG Secure Solutions Inc. 18
日本テレビの侵入事件 ケータイキット for Movable Type Copyright © 2012-2017 EG Secure Solutions Inc. 19
http://itpro.nikkeibp.co.jp/atcl/news/16/042301210/ より引用 20
ケータイキット for Movable Type の脆弱性 (CVE-2016-1204) に関する注意喚起 各位 JPCERT-AT-2016-0019 JPCERT/CC 2016-04-26(新規) 2016-05-06(更新) <<< JPCERT/CC Alert 2016-04-26 >>> ケータイキット for Movable Type の脆弱性 (CVE-2016-1204) に関する注意喚起 https://www.jpcert.or.jp/at/2016/at160019.html I. 概要 アイデアマンズ株式会社のケータイキット for Movable Type には、OS コマンドインジェクションの脆弱性 (CVE-2016-1204) があります。この脆弱性を悪用された場合、当該製品が動作するサーバ上で任意の OS コマンドを実行される可能性がありま す。 本脆弱性や影響の詳細については、以下を参照してください。 Japan Vulnerability Notes JVNVU#92116866 ケータイキット for Movable Type に OS コマンドインジェクションの脆弱性 https://jvn.jp/vu/JVNVU92116866/ なお、本脆弱性を悪用した攻撃活動が確認されているとの情報があります。 https://www.jpcert.or.jp/at/2016/at160019.html より引用 21
日本テレビ 個人情報不正アクセスに関する調査報告書 より引用 http://www.ntv.co.jp/oshirase/20160714.pdf 22
ケータイキット for Movable Typeは何が問題だったか? • ImageMagickのconvertコマンドを用いて画像変換をしている # わりとよくある • convertコマンドのパラメータについて – バリデーションを十分していない – エスケープもしていない ← こちらが主原因 • ファイル名については、ファイルの存在チェックがあり、攻 撃は難しい • convertに渡すパラメータはノーチェック • OSコマンドインジェクションが可能 Copyright © 2012-2017 EG Secure Solutions Inc. 23
パイプドビッツ WebDAVの設定不備による情報漏洩 Copyright © 2012-2017 EG Secure Solutions Inc. 24
パイプドビッツのECサイト基盤から個人情報流出、システムの設定不備でバックドア置かれる パイプドビッツは6月22日、同社が運営するアパレル特化型ECプラットフォーム 「スパイラルEC」が不正アクセスを受け、利用者1万946人分の個人情報などが外部 にダウンロードされたことを確認したと発表した。現時点で悪用などは確認されて いないとしている。 同社によると、流出した情報はスパイラルEC上でウェアハートが運営するECサイ ト「NET ViVi Coordinate Collection」の1万5581件の注文履歴。2015年8月22日午後3 時から2016年4月18日午後4時38分までの間に同サイトで注文を行った1万946人の氏 名、住所、メールアドレス、電話番号、コメント、配送先の住所、電話番号、金額、 送状番号などとしている。これら注文に関する情報の中に会員IDやパスワードは含 まれておらず、クレジットカード情報も保有していないことから、外部には流出し ていないという。 一方、スパイラルEC上でECサイトを運営する43社53サイトの314人分の管理画面 にアクセスするためのログインIDや暗号化されたパスワード情報が第三者に閲覧さ れた恐れがある。さらに、40社42サイトについては約98万件の会員データの一部が 第三者に閲覧された可能性を排除できないという。これらの情報のデータが外部に 流出した事実は確認されていない。http://www.itmedia.co.jp/enterprise/articles/1606/22/news160.html より引用 25
攻撃されたシステムの構成と不正アクセスの流れ https://www.pi-pe.co.jp/pb/info/ より引用 26
WebDAVとは • HTTPを拡張して、外部からファイルの作成、変更、削除等の管理がで きるようにした仕様 PUT /phpinfo.php HTTP/1.1 Host: exampmle.jp Content-type: application/octet-stream Content-Length: 16 <?php phpinfo(); /phpinfo.php にPHPスクリプトを書き込む例 http://www.atmarkit.co.jp/flinux/special/webdav02/webdav01a.html より引用 27
デモの流れ 攻撃者 PUTが有効 nginx Apache キャッシュサーバー(リバースPROXY) / AJP (プロキシ) /img 画像配信 / WebDAV PHPスク リプト設置 Tomcat Servlet / JSP Copyright © 2012-2017 EG Secure Solutions Inc. 28
イプサ クレジットカード情報漏洩事件 Copyright © 2012-2017 EG Secure Solutions Inc. 29
http://www.jiji.com/jc/article?k=2016120200445&g=eco より引用 30
イプサ公式オンラインショップ のリリース 平成28年12月2日 お客さま各位 株式会社 イプサ 代表取締役社長 宮澤 雅之 弊社通販サイト「イプサ公式オンラインショップ」における 不正アクセスによるお客さま情報流出に関するお知らせとお詫び いつもイプサ製品をご愛顧いただきありがとうございます。 弊社 株式会社 イプサの通販サイトである「イプサ公式オンラインショップ(http://www.ipsa.co.jp/)」にお いて、外部からの不正アクセスにより、お客さまのクレジットカード情報、その他お届け先等の個人情報が流出 している可能性があることを確認いたしました。 お客さま及び関係者の皆さまに多大なるご迷惑、ご心配をおかけ致しましたこと深くお詫び申し上げます。 また第三者調査機関による調査を実施し正確な情報を把握するとともに、カード会社と連携を取り、お客さまの 対応に万全を期したため、本日のご案内となりましたこと併せてお詫び申し上げます。 http://www.ipsa.co.jp/news/2/ より引用 31
イプサ、不正アクセスの調査結果を公表 - デバッグモードによりカード情報残存 化粧品の製造、販売を手がける資生堂子会社のイプサが不正アクセスを受けた問題 で、同社は調査結果を明らかにした。不正アクセスの原因のほか、あらたな情報漏 洩の可能性が判明している。 問題の不正アクセスは、同社の通信販売サイトへ行われたもので、2016年11月に決 済代行業者より指摘があり発覚。同社では、同サイトを閉鎖し、顧客情報が流出し た可能性について12月2日に公表した。 同社によれば、2015年12月より不正アクセスが行われており、2016年8月、10月に 同じ攻撃者によって2台のウェブサーバが攻撃を受け、その際にバックドアが設置さ れた。 同サイトではサーバサイドインクルードを利用していたが、脆弱性が存在したとい う。さらに同サイトでは本来クレジットカード情報を保持しない設計としていたが、 立ち上げ時に利用していたデバッグモードのまま運用し、決済処理のログが残って しまったという。 http://www.security-next.com/077978 より引用 32
イプサ ショッピンサイト 情報漏洩の原因 • サイト構築にSSI (Server Side Include)を使用しており、SSIの 使い方に脆弱性があった • SSIの脆弱性をつかれて、バックドアを攻撃者に設置された • サイトにはカード情報を蓄積していないはずだったが、実際 にはカード決済のログが「デバックモード」で取得されてい て、そこにカード情報が蓄積されていた • バックドア経由で、ログファイルが漏洩し、そこからカード 情報が漏れた Copyright © 2012-2017 EG Secure Solutions Inc. 33
SSI(Server Side Include)とは • HTML中に簡易なコマンドを埋め込んで、外部ファイルを取り込んだ り、コマンド実行の結果を取り込む機能 • Apache等のウェブサーバーの機能として実装 • コマンドの例 – <!--#include file=“ファイル名” --> 外部ファイルの取り込み – <!--#exec cmd=“~” --> コマンド実行 – <!--#exec cgi=“~” --> CGIプログラムの実行 – <!--#if expr=“~” --> – <!--#elif expr="~" --> 条件分岐 – <!--#else --> – <!--#endif --> Copyright © 2012-2017 EG Secure Solutions Inc. 34
ログにカード情報が蓄積される 一般利用者 ECサイト カード情報入力 カード情報入力 ・・・・・・・ ・・・・・・・ ・・・・・・・ ・・・・・・・ Confirm ログ出力 カード情報を含む ログファイル Copyright © 2012-2017 EG Secure Solutions Inc. 35
バックドア経由でカード情報が漏洩 ECサイト カード情報を含む ログファイル Copyright © 2012-2017 EG Secure Solutions Inc. 36
デモの流れ(1) EC-CUBEのカスタマイズ画面の脆弱性 Copyright © 2012-2017 EG Secure Solutions Inc. 37
デモの流れ(2)
• メールアドレスに <s>xss</s> を入力すると、バリデーションでエ
ラーになる
• エラーメッセージ表示の際にHTMLエスケープがされていない
– Mailer Error: Invalid address: (punyEncode) xss ←XSS脆弱性
– HTMLソースは下記の通り
Mailer Error: Invalid address: (punyEncode) <s>xss</s>
• HTMLタグの代わりに、SSIコマンドを入力すると、サーバー上でコマ
ンドが実行できる
– <!--#exec cmd="cat /etc/passwd" -->
Copyright © 2012-2017 EG Secure Solutions Inc.
38
まとめ • 最近話題のウェブサイトへのインシデントを紹介 • 原因は設定不備あるいはソフトウェアの脆弱性 • 設定不備によるもの – メルカリ CDNキャッシュからの情報漏えい – パイプドビッツ WebDAVの設定不備による情報漏洩 • ソフトウェアの脆弱性によるもの – – – – WordPress REST API の脆弱性 GMOペイメントゲートウェイのクレジットカート情報漏洩事件 日本テレビの侵入事件 イプサ クレジットカード情報漏洩事件 • 対策は、設定不備とソフトウェアの脆弱性の双方をつぶすこと Copyright © 2012-2017 EG Secure Solutions Inc. 39