• Aucun résultat trouvé

Big problems with big data – Hadoop interfaces security Jakub Kaluzny

N/A
N/A
Protected

Academic year: 2022

Partager "Big problems with big data – Hadoop interfaces security Jakub Kaluzny"

Copied!
92
0
0

Texte intégral

(1)

Big problems with big data –

Hadoop interfaces security

Jakub Kaluzny

ZeroNights, Moscow, 2015

Плохо!

(2)

whoami

Sr. IT Security Consultant at SecuRing

Consul6ng all phases of development

penetra6on tests

high-risk applica6ons and systems

Researcher

Hadoop, FOREX, MFP printers, proprietary network protocols

(3)

Agenda

Big data nonsenses

Crash course on hacking Hadoop installa6ons

Ways to protect big data environments

Expect some CVEs

(4)

Results summary

no account standard user

admin user admin

privileges

data access

(5)

WHAT IS HADOOP?

Know your target

(6)

Normal database

Users Roles Data Model

(7)

Normal database architecture

hMp://hackaday.com/2014/04/04/sql-injec6on-fools-speed-traps-and-clears-your-record/

(8)

Still normal database scenario

CWE-xxx: SQL Injec6on through license plate

hMp://hackaday.com/2014/04/04/sql-injec6on-fools-speed-traps-and-clears-your-record/

hMp://hococonnect.blogspot.com/2015/06/red-light-cameras-in-columbia.html

hMp://8z4.net/images/ocr-technology

(9)

Normal database injection points

(10)

Normal database

Users Roles Data Model

Clear rules

Clear target

(11)

user db,

a lot of clients

cri6cal

banking data, one supplier

Anegdote

Only one common table

Q: Why don’t you split it into 2 dbs with a db link?

A: Too much effort and we want to have fast statistics from all data.

(12)

What is Hadoop?

hMps://www.flickr.com/photos/photonquan6que/2596581870/

hMp://fiveprime.org/blackmagic.cgi?id=7007203773

(13)

Hadoop architecture schema

(14)

More on Hadoop

(15)

Hadoop injection points

(16)

Hadoop scenario

hMps://en.wikipedia.org/wiki/Moneygami hMps://www.flickr.com/photos/madmadla/8349565473

hMp://bigdataanaly6csnews.com/tag/hortonworks/

(17)

21 PB of storage in a single HDFS cluster 2000 machines

12 TB per machine (a few machines have 24 TB each) 1200 machines with 8 cores each + 800 machines with 16 cores each

32 GB of RAM per machine

15 map-reduce tasks per machine

What is a lot of data?

(18)

Our latest assessment:

•  32 machines, 8 cores each

•  24TB per machine

•  64 GB of RAM per machine

•  Almost 1 PB disk space and 2TB of RAM

What is a lot of data?

hMp://mrrobot.wikia.com/wiki/E_Corp

(19)

Attacker perspective

hMps://plus.google.com/+Magiccardtrickszone6ps

(20)

RISK ANALYSIS

Know your threats

(21)

Who How What

Risk analysis

(22)

Business perspective: competitor, script-kiddies, APT Technical perspective:

Who?

External aMacker

Anonymous

Ex-employee Insider

Exployee (with some rights in Hadoop): user, admin

Infected machine, APT

(23)

Who How What

Risk analysis

(24)

Full compromise

(25)

Data safety vs. data security

(26)

Q: What will be stored? A: „We do not know what data will be stored!”

Typical bank scenario

Bigdata analytic says: „People who bought a dashcam are more likely to take a loan for a new car in the next month”

For what?

All transac6on data All sales data

All client data

hMp://thewondrous.com/julia-gunthel-worlds-most-flexible-secretary/

hMps://www.reddit.com/r/gifs/comments/37aara/calcula6ons_intensify/

(27)

For what? Data theft

(28)

Other

Privilege escala6on

Authen6ca6on bypass

Abuse

DoS

Data tampering

(29)

Who How What

Risk analysis

(30)

How?

hMps://en.wikipedia.org/wiki/Dowsing#Rods

(31)

WHAT HADOOP REALLY IS

under sales-magic-cloud-big-data cover

(32)

Typical architecture

hMp://thebigdatablog.weebly.com/blog/the-hadoop-ecosystem-overview

(33)

Apache Hue

hMp://techbusinessintelligence.blogspot.com/2014/11/tableau-sokware-cloudera-hadoop.html

(34)

Hadoop injection points

Differs much amongst distros

(35)

INTERFACES

(36)

Hadoop Distros specifics

Admin ifaces

external ifaces User

ifaces

Interfaces

(37)

OUR STORY WITH BIG DATA

ASSESSMENT

a.k.a. crash course on hacking big data environments

(38)

Hadoop Distros specifics

Admin ifaces

external ifaces User

ifaces

Interfaces

(39)

USER INTERFACES

for employees and applications

(40)

User interfaces

Hadoop Distros specifics

Admin ifaces

external ifaces User

ifaces

(41)

User interfaces

Apache Hue

• Pig, Hive, Impala, Hbase, Zookeeper, Mahout, Oozie

Other

Tez, Solr, Slider, Spark, Phoenix, Accummulo, Storm

H D

A E

U

(42)

Is Hue an internal interface?

H D

A E

U

hMp://9gag.com/gag/awrwVL1/hue-hue-hue

(43)

Apache Hue overview

H D

A E

U

hMp://gethue.com/

(44)

Apache Hue DOM XSS

var _anchor = $("a[name='" +

decodeURIComponent(window.location.hash.subs tring(1)) + "']").last();

Payload: URL/help/#<img src="x"

onerror="alert(1)">

H D

A E

U

(45)

Target old Hadoop installa6on (with Hue 2.6.1, Django 1.2.3)

Target a user with access to Hue

Send him XSS

Get access to all Hadoop data designated for the user

Apache Hue attack scenario

(46)

Default configurations sucks

X-Frame-Options:ALLOWALL

(47)

ADMIN INTERFACES

for admins and maintenance

(48)

Hadoop Distros specifics

Admin ifaces

external ifaces User

ifaces

Admin interfaces

(49)

Admin interfaces

Apache Ambari

Provisioning, monitoring

Apache Ranger

• Security: authoriza6on, authen6ca6on, audi6ng, data encryp6on, administra6on

Other

Knox, Cloudbreak, Zookeeper, Falcon, Atlas, Sqoop, Flume, Kapa

H D

A E

U

(50)

Apache Ambari

Trochę o Ambari

hMp://www.slideshare.net/hortonworks/ambari-using-a-local-repository?next_slideshow=1

H D

A E

U

(51)

Apache Ambari

hMp://www.slideshare.net/hortonworks/ambari-using-a-local-repository?next_slideshow=1

H D

A E

U

(52)

Is Ambari an internal interface?

H D

A E

U

hMp://knowyourmeme.com/memes/facepalm

(53)

Apache Ambari

•  Standard users can sign into Ambari (WHY?)

•  Low hanging fruits: directory listing by default, no cookie flags, no CSRF protection

•  Interesting proxy script ->

H D

A E

U

(54)

Apache Ambari REST API proxy

Standard request:

/proxy?url=http://XXXXXXXXX:8188/ws/v1/

timeline/HIVE_QUERY_ID?

limit=1&secondaryFilter=tez:true&_=142418001 6625

H D

A E

U

Tampered request (logs accessible only from DMZ):

/proxy?url=http://google.com

/proxy?url=http://XXXXXXX:8088/logs

/proxy?url=http://XXXXXXX:8088/logs/yarn- yarn-resourcemanager-XXXXXXX.log

(55)

Apache Ambari Server Side Request Forgery

H D

A E

CVE-2015-1775 U

(56)

Apache Ambari attack scenario

Target old Hadoop installa6on with Ambari 1.5.0 to 2.0.2

Hijack standard account (or use Hue XSS to perform CSRF) Log into Ambari, use CVE-2015-1775

Get access to local network (DMZ) – HTTP only

Download logs, exploit other Hadoop servers in DMZ

H D

A E

U

(57)

Hadoop Distros specifics

Admin ifaces

external ifaces User

ifaces

Admin interfaces

(58)

Apache Ranger overview

Previously: Apache Argus, XA-Secure

Provides central administration for policies, users/

groups, analytics and audit data.

H D

A E

U

hMp://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.2/bk_Sys_Admin_Guides/content/

ref-746ce51a-9bdc-4fef-85a6-69564089a8a6.1.html

(59)

Apache Ranger overview

H D

A E

U

hMp://hortonworks.com/blog/best-prac6ces-for-hive-authoriza6on-using-apache-ranger-in-hdp-2-2/

(60)

•  Low hanging fruits: no HTTP hardening, SlowHTTP DoS

•  Standard users can log into Ranger but have no permissions

•  Interesting function level access control ->

Apache Ranger

(61)

Apache Ranger vulnerabilities

H D

A E

U

(62)

Missing function level access control

H D

A E

U

CVE-2015-0266

(63)

Apache Ranger attack scenario

Target an old Hadoop installa6on (Apache Ranger 0.4 or XA-Secure v.

3.5.001 )

Hijack standard Hadoop account

Log into Ranger (with low permissions)

Use CVE-2015-0266 to escalate privileges

Edit accounts, authoriza6on rules, access policies

H D

A E

U

(64)

Apache Ranger vulnerabilities

H D

A E

U

hMps://cwiki.apache.org/confluence/display/RANGER/Apache+Ranger+0.5+-+User+Guide

(65)

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) <script>alert(1);</

script>

Apache Ranger XSS through UserAgent

H D

A E

CVE-2015-0265 U

(66)

Apache Ranger attack scenario

Target an old Hadoop installa6on (Apache Ranger 0.4 or XA- Secure v. 3.5.001 )

Network access to Apache Ranger is necessary (either from the internet or local network)

Log in with any user and password using XSS in UserAgent You don’t need to escalate privileges, you’re already an admin (aker admin opens session tab)

Deploy BEEF or whatsoever (CSRF script) to create users and change policies

H D

A E

U

(67)

•  Affected version: Apache Ranger v 0.4.0, XA Secure v. 3.5.001

•  Both vulnerabilities patched in Ranger v 0.5.0

•  For a while developers did a self-full-disclosure ->

Apache Ranger patched

(68)

RANGER-284 in public Jira now

H D

A E

U

(69)

RANGER-284 shortly after vendor contact

H D

A E

U

(70)

DISTRIBUTIONS SPECIFICS

not in every environment

(71)

Hadoop Distros specifics

Admin ifaces

external ifaces User

ifaces

Distribution specifics

(72)

Distros

H D

A E

U

hMp://blog.cloudera.com/blog/2012/07/the-hadoop-ecosystem-visualized-in-datameer/

(73)

cloud

based hosted locally

Basic distinction

(74)

Distros

How long does it take to create a new distro version?

How many components are outdated at that 6me?

How long does it take to deploy a new distro at a company?

How many components are outdated at that 6me?

H D

A E

U

Most cases:

•  MAJOR – ca. 1 year

•  MINOR – ca. 3 months

•  PATCH – ca. 1-2 months (differs much)

(75)

Hortonworks HDP components by version

hMp://hortonworks.com/hdp/whats-new/

(76)

Distros

Old components with known issues

Old OS components (java, php, ruby, etc.)

Old OS components (e.g. old tomcat used by Oozie and HDFS)

Old Hadoop components (e.g. old Hue, Ambari, Ranger) Default passwords

Default configura6on

H D

A E

U

(77)

vuln found

(e.g. Ambari) Hadoop

pached distro update deployment

Vulnerability timeline

Responsible Disclosure?

H D

A E

U

vuln found

(e.g. jQuery) jQuery

patched Django

patched Hue update distro

update deployment

Responsible disclosure?

Full disclosure?

Full disclosure?

(78)

Distros

Old components with known issues Default passwords

SSH keys configured but default passwords s6ll work

Default mysql passwords, NO mysql passwords Default configura6on

H D

A E

U

(79)

Distros

Old components with known issues Default passwords

Default configura6on

No network level hardening

No HTTP hardening (clickjacking, session mgmt, errors)

Hue uses Django with DEBUG turned on by default

„Hacking virtual appliances” by Jeremy Brown

H D

A E

U

(80)

Default configurations sucks

X-Frame-Options:ALLOWALL

H D

A E

U

(81)

EXTERNAL

INTERFACES

For clients or whatsoever

(82)

Hadoop Distros specifics

Admin ifaces

external ifaces User

ifaces

External interfaces

(83)

External

More than 25 internal Apache apps/modules

Vendor/distro specific apps/interfaces

Popular monitoring: Ganglia, Splunk

Auth providers: LDAP, Kerberos, OAuth

Many apps, many targets

H D

A E

U

(84)

Hadoop

Hadoop Distros specifics

Admin ifaces

external ifaces User

ifaces

(85)

SUMMARY

ways to protect your big data environment

(86)

Ways to protect your Hadoop environment Excessive network access

Keep it super 6ght!

Excessive user pesmissions Typical web vulnerabili6es Obsolete sokware

Distros dependent vulnerabili6es External system connec6ons

(87)

Ways to protect your Hadoop environment

Excessive network access Excessive user permissions

•  Map business roles to permissions

Typical web vulnerabili6es Obsolete sokware

Distros dependent vulnerabili6es External system connec6ons

(88)

Ways to protect your Hadoop environment

Excessive network access Excessive user permissions Typical web vulnerabili6es

Pentest it! Introduce applica6on independent security countermeasures

Obsolete sokware

Distros dependent vulnerabili6es External system connec6ons

(89)

Ways to protect your Hadoop environment

Excessive network access Excessive user permissions Typical web vulnerabili6es Obsolete sokware

Make a list of all components. Monitor bugtracks and CVEs.

Distros dependent vulnerabili6es External system connec6ons

(90)

Ways to protect your Hadoop environment

Excessive network access Excessive user permissions Typical web vulnerabili6es Obsolete sokware

Distros dependent vulnerabili6es

A pentest aker integra6on is a must. Demand security from sokware suppliers.

External system connec6ons

(91)

Ways to protect your Hadoop environment

Excessive network access Excessive user permissions Typical web vulnerabili6es Obsolete sokware

Distros dependent vulnerabili6es External system connec6ons

Make a list of all external system connec6ons. Do a threat modeling and pentest corresponding systems.

(92)

Thank you

jakub.kaluzny@securing.pl

MORE THAN SECURITY

TESTING

Contact me for additional materials

@j_kaluzny

Références

Documents relatifs

Hadoop installation delivers the following example MapReduce jar file, which provides basic functionality of MapReduce and can be used for calculating, like Pi value, word counts in

I Sequential text classification offers good performance and naturally uses very little information. I Sequential image classification also performs

opportunities for the use of big data in government, including case studies in using big data sets for public health and the provision of health care [7, 8, 9]. However, despite

Les deux contributions principales de ce document sont de détailler (sur quelques exemples simples) la façon dont des données (transformées en fichier HDFS ) sont structurés en

Bien qu’ils soient partisans de laisser parler les données, les auteurs nous préviennent: “nous devons nous garder de trop nous reposer sur les données pour ne pas

[r]

Como su nombre lo dice, en esta etapa se crean diferentes grupos dentro de cada proceso y son ordenados para un manejo más sencillo y adecuado de los datos.. •

Ces ratés surviennent quand on accorde trop d'attention à un processus largement automatisé, où l'on opère des vérifications qui peuvent nuire au bon déroulement de l'action,