SLIDE 1
Erik Van Buggenhout Royal Holloway, University of London Distance - - PowerPoint PPT Presentation
Erik Van Buggenhout Royal Holloway, University of London Distance - - PowerPoint PPT Presentation
Erik Van Buggenhout Royal Holloway, University of London Distance Learning Conference 2014 Information Security Consultant Instructor Incident Response, Penetration Testing SEC 560 & 542 Royal Holloway, University of London Project: ATM
SLIDE 2
SLIDE 3
§ About the project § ATM Introduction § Attacking the ATM § Common ATM system design § Assessing a sample ATM § Conclusion
SLIDE 4
§ About the project § ATM Introduction § Attacking the ATM § Common ATM system design § Assessing a sample ATM § Conclusion
SLIDE 5
§ “A security assessment framework for Automated
Teller Machines”
§ Finished it this year (2014) § Supervisor: Frederik Mennes
SLIDE 6
SLIDE 7
§ About the project § ATM Introduction § Attacking the ATM § Common ATM system design § Assessing a sample ATM § Conclusion
SLIDE 8
§ Automated Teller Machine § Cash disposing & dispensing § 2.2 million devices worldwide § Different hardware & software vendors
SLIDE 9
The first ATM was installed in 1939 in New York City, known as “Bankograph”. Removed after 6 months because it was not used J It was reintroduced in Ohio in 1959, with huge success. There are currently more then 2.2 million ATM’s worldwide.
SLIDE 10
PIN validation Account balance Transfer / withdrawal authorization ...
The ATM is a “stupid” device, part of the bank’s overall architecture. It relies on back-end services for “important” decisions.
SLIDE 11
- 1. ATM computer
- 2. (Touch)screen
- 3. Card-reader
- 4. PIN pad
- 5. Cash dispenser
- 6. Cash cassettes
Typical lay-out of a modern ATM
SLIDE 12
- 1. ATM computer
- 2. (Touch)screen
- 3. Card-reader
- 4. PIN pad
- 5. Cash dispenser
- 6. Cash cassettes
SLIDE 13
- 1. ATM computer
- 2. (Touch)screen
- 3. Card-reader
- 4. PIN pad
- 5. Cash dispenser
- 6. Cash cassettes
SLIDE 14
- 1. ATM computer
- 2. (Touch)screen
- 3. Card-reader
- 4. PIN pad
- 5. Cash dispenser
- 6. Cash cassettes
CD / DVD CD / DVD Disk bays Disk bays Auxiliary ports USB
SLIDE 15
§ About the project § ATM Introduction § Attacking the ATM § Common ATM system design § Assessing a sample ATM § Conclusion
SLIDE 16
SLIDE 17
It stores MONEY
Handles interesting customer data as well, which could be abused to get MORE MONEY
SLIDE 18
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ...
SLIDE 19
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ...
SLIDE 20
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ...
SLIDE 21
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ...
SLIDE 22
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ...
SLIDE 23
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ...
SLIDE 24
SLIDE 25
Safe certification standards, bolts, video surveillance...
SLIDE 26
Ink cartridges that stain money upon breach
SLIDE 27
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ...
SLIDE 28
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ...
SLIDE 29
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ...
SLIDE 30
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ...
SLIDE 31
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ...
SLIDE 32
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ...
SLIDE 33
Anti-skimming devices
SLIDE 34
Security awareness campaigns
SLIDE 35
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ...
SLIDE 36
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ...
SLIDE 37
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ...
SLIDE 38
Awareness + force change of default passwords
SLIDE 39
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ...
SLIDE 40
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ...
SLIDE 41
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ...
SLIDE 42
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ... Barnaby Jack “Jackpotting ATMs” - 2010
SLIDE 43
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ... Network access?
SLIDE 44
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ... Network access? Shodan HQ (Internet search engine) lists 800+ ATMs available on the Internet
SLIDE 45
Blow up the safe Copy cards & steal PIN codes Steal the entire thing Attack back-end communication Attack the OS Access “operator” mode ... CCC 2013 “Electronic bank robberies” Boot ATMs from USB
SLIDE 46
§ About the project § ATM Introduction § Attacking the ATM § Common ATM system design § Assessing a sample ATM § Conclusion
SLIDE 47
CEN/XFS (eXtensions for Financial Services) provides a standard set
- f APIs that can be
used by Windows applications to operate the ATM peripherals
SLIDE 48
XFS Manager Windows-based application XFS APIs XFS SPIs XFS Service Providers ATM peripheral Vendor Dependent Vendor Independent Operating System
CEN/XFS (eXtensions for Financial Services) provides a standard set
- f APIs that can be
used by Windows applications to operate the ATM peripherals
SLIDE 49
95% of ATMs was running Windows XP in January 2014
(NCR, 2014)
SLIDE 50
“How will you approach the Windows XP end-of-support?”
(KAL 2013 – ATM Software Trends & Analysis)
SLIDE 51
§ About the project § ATM Introduction § Attacking the ATM § Common ATM system design § Assessing a sample ATM § Conclusion
SLIDE 52
SLIDE 53
SLIDE 54
SLIDE 55
SLIDE 56
SLIDE 57
SLIDE 58
SLIDE 59
SLIDE 60
SLIDE 61
SLIDE 62
Attack failed
SLIDE 63
Using openly available forensic toolkits we managed to recover the majority of the original hard disk content.
SLIDE 64
Sweet... But I don’t have a bank back-end (yet)
SLIDE 65
SLIDE 66
SLIDE 67
SLIDE 68
WFSOpen("CurrencyDispenser1", WFS_DEFAULT_HAPP , "NVISOSPIT", WFS_TRACE_NONE, WFS_INDEFINITE_WAIT , 0x0000FFFF , &serviceVersion, &spiVersion, &service); WFSCDMDISPENSE tDispense; WFSCDMDENOMINATION tDenomination; Set up XFS session with the “CurrencyDispenser1”, no logging is required J Create a dispense object “tDispense” Create a denomination
- bject “tDenomination”
SLIDE 69
tDispense.fwPosition =WFS_CDM_POSNULL; tDenomination.cCurrencyID[0]='E'; tDenomination.cCurrencyID[1]='U'; tDenomination.cCurrencyID[2]='R'; tDenomination.ulAmount=nviso_amount; tDenomination.usCount=5; tDenomination.ulCashBox=0; ulaValues[0] =nviso_cassette1; ulaValues[1] =nviso_cassette2; ulaValues[2] =0; ulaValues[3] =0; ulaValues[4] =0; €€€ I want “EUR” J The amount is specified dynamically by a command line argument Specify how many notes you want per cassette
SLIDE 70
tDenomination.lpulValues = ulaValues; tDispense.lpDenomination= &tDenomination; HRESULT hResult = WFSExecute(service,WFS_CMD_CDM_DISPENSE,&tDispense,WFS_INDEFINIT E_WAIT ,&lpResult); Load the dispense with the specified denomination & execute the dispense operation
SLIDE 71
SLIDE 72
TODO: Make it generic for different ATM devices (read custom config from registry J)
SLIDE 73
DEMONSTRATION
SLIDE 74
§ About the project § ATM Introduction § Attacking the ATM § Common ATM system design § Assessing a sample ATM § Conclusion
SLIDE 75