forwarding-loop attacks in content delivery networks2017/09/04  · forwarding-loop attacks in...

22
Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin Liang, Kang Li, Tao Wan, Vern Paxson 1

Upload: others

Post on 23-Apr-2020

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

Forwarding-Loop Attacks in Content Delivery Networks

Jianjun Chen, Jian Jiang, Xiaofeng Zheng,

Haixin Duan, Jinjin Liang, Kang Li,

Tao Wan, Vern Paxson

1

Page 2: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

Content Delivery Networks

• CDN is now an important Internet infrastructure, it is a popular solutions for:

– Performance, Security(WAF), Availability(anti-DDoS)

CDN has its own architectural weaknesses

Client

Attacker

WebsiteCDN

2

Page 3: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

Our work

• We present “forwarding loop” attacks that threaten CDN availability.

• We measured 16 popular CDNs and find all of them are vulnerable to such attacks.

• Vendors have acknowledged the problem and are actively addressing it.

3

Page 4: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

The normal forwarding process of CDNs

POST /Host: example.com

POST /Host: example.com

CDN A

Client Website D

example.com -> DNormal

CDN customer

4

Customer controls forwarding rules of CDNs

Page 5: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

Conceptual view of a forwarding-loop attack

POST /Host: example.com

CDN A

CDN BCDN CPOST

POSTPOST

example.com -> B

example.com -> Cexample.com -> A

Attacker

Attacker(Malicious customer)

5• Malicious customers can manipulate forwarding rules to create loop• Amplification -> consume resource -> potentially DoS

Page 6: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

Practicality of forwarding-loop attacks

• Cost– All 16 CDNs provide free or free-trial account

• Anonymity– 11/16 CDNs only require an email address

• Some CDNs agreed this attack is severe

• Next we describe 3 types of looping attacks, and 3 factors for enhancing the loop– Self loop, intra-CDN, Inter-CDN

– Abort-forwarding, Streaming, gzip bomb

6

Page 7: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

Self loop

CDN A

example.com ->IP of A/loopback

Attacker

POST

7

Affected vendors(1/16):• Azure(China)

Configuration Entry

Loop in a single node

Page 8: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

Intra-CDN loop

CDN A

CDN A2

CDN A3

POST

POST POST

Authority DNSns.attack.com

example.com ->attack.com

Loop among multiple nodes within one CDN

Attacker

POST

IP of A2

IP of A3

IP of A1

CDN A1

8

Affected vendors(7/16):• Azure(China)• CDN77• CDNlion• CDN.net• CDNsun• KeyCDN• MaxCDN

Configuration Entry

Page 9: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

Loop Detection by CDNs

9

Current Defenses Use headers to tag processed requests

Attacker countermeasure Extends forwarding loops across multiple CDNs

CDN A2CDN A3

POST /Host:example.comHeader: Loop-Detection-Tag

Authority DNSns.attack.com

example.com -> attack.com

Attacker

POST /Host:example.com

IP of A2

CDN A1

Page 10: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

Loop-Detection Headers are different

10RFC 7230 recommends to use Via header for loop detection

CDN Provider Loop Detection Header

CDN Provider Loop Detection Header

Akamai Akamai-Origin-Hop CloudFlare X-Forwarded-ForCF-Connecting-IP

Alibaba Via CloudFront Via

Azure(China) Fastly Fastly-FF

Baidu X-Forwarded-ForCF-Connecting-IP

Incapsula Incap-Proxy-ID

CDN77 KeyCDN

CDNlion Level3 Via

CDN.net MaxCDN

CDNsun Tencent X-Daa-Tunnel

Page 11: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

Bypassing CDN defenses

• Chain loop-aware CDNs to other CDNs that can be abused to disrupt loop-detection headers

• Abusive features provided by CDNs:

CDN Provider Reset Filter

CDN77 Via

CDNlion Via

CDN.net Via

CDNsun Via

Fastly No-self-defined

MaxCDN Any11

Page 12: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

Inter-CDN loops:POST /Host: example.com

CloudFront

Akamai

MaxCDN

POST /Host: example.comVia: 1.1 abcd (CloudFront)

POST /Host: example.comVia: 1.1 abcd (CloudFront)Akamai-Origin-Hop:1

POST /Host: example.comVia: 1.1 abcd(CloudFront)Akamai-Origin-Hop:1

Filter rules:1.Remove Via2.Remove Akamai-Origin-Hop

Attacker

12

Page 13: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

Can a loop last indefinitely ?

• Limitation on header size might terminates a loop – All CDNs limit header size;

– some CDNs increase header size when forwarding a request;

– Filtering and reset behaviors can bypass such limitation

• Timeout might also terminate a loop– A careful attacking plan can avoid this effect.

13

Page 14: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

Handling timeout

• Experiment– A request loops for 5+ hours among CloudFlare,

MaxCDN, CDN77 and our control node

Abort-forwarding No-abort-forwarding

Factors Attacker countermeasure

Timeout Add a no-abort-forwarding node(7/16)

A

BC

A

BC

14

Timeout

Continues

Timeout

Page 15: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

How to enlarge attacking traffic?

• Streaming loop

– faster speed -> overlap -> higher traffic

– All nodes need to support streaming

– 7/16 CDNs support request streaming, all CDNs support response streaming 15

Page 16: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

“Dam Flooding” attack: streaming loop with response

Attacker’s website D

CDN A

CDN BCDN C

Authority DNSns.attack.com

example.com -> A example.com -> C

example.com -> attack.comPOSTPOST

Attacker

IP of BIP of D

16

Page 17: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

Enhance streaming loop with gzip bomb

Attacker’s website

CDN A

CDN BCDN C

Authority DNSns.attack.com

example.com -> A example.com -> C

example.com -> attack.com

POST /Host:example.comAccept-Encoding:identity

Gzip bomb

Unzip

• 3 CDNs can be used to uncompress gzip bombs• Total Amplification Factor = Loop Amplification * Gzip Bomb Amplification(~ 1000)

Attacker

17

Page 18: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

Defenses

• Unifying and standardizing a loop-detection header,

– Via as recommended by RFC

• Interim defenses, independently

– Obfuscating self-defined loop-detection headers

– Monitoring and rate-limiting

– Constraint on forwarding destination

18

Page 19: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

CDN Vendor Feedback

• CDNs are actively addressing it

– CloudFlare and Baidu implemented Via header

– CDN77 and CDNsun will change to not reset Via

– Verizon (Edgecast) agreed the problem is serious

– Tencent evaluates as high risk

– Fastly actively discussed defenses with us

– Alibaba are intreseted in interim defenses

19

Page 20: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

Summary

• A variety of implementation issues makeforwarding loops a potentially severe attackvector

• A case that highlights the danger of allowing cross-organization, user-controlled (untrusted) policies without centralized administration

• How to enforce standard compliance, especially when global coordination is needed

20

Page 21: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

Acknowledgement

21

Page 22: Forwarding-Loop Attacks in Content Delivery Networks2017/09/04  · Forwarding-Loop Attacks in Content Delivery Networks Jianjun Chen, Jian Jiang, Xiaofeng Zheng, Haixin Duan, Jinjin

Thank you!

22