With a littleÂ delay, here is my wrap-up of the last OWASP Belgium chapter meeting. It was held at NVISO, an information security company located in Brussels which is known for its ApkScan tool. After some pizzas, drinks and chats with peers, two speakers came on stage. Amongst known faces, a lot of new people were present. That’s good to have fresh blood in such events!
The first speaker wasÂ Tiago Teles from Cigital. The title of his presentationÂ was “Securing password storage – Increasing resistance to brute force attacks“. Passwords… a hot topic. Indeed, yesterday, eBay announced to have suffered of a data leak of users data. Passwords are in the wild now. Tiago explained how to handle properly the password of your users and started with a fact:
“Your passwords WILL be extracted from your system”
Thus, we have to make them unusable or at least make the attackers’ job more difficult. ModenrÂ websites allow users to register and use credentials to buy stuff, to access private data, to organize their profile, etc. You’re responsible of those passwords and must protect them in the right way. After a review of the history of protections (do you remember the old /etc/passwd UNIX files with passwords hashed and stored in it, readable for everyone?) and the challenges we are facing, Tiago gave very interesting suggestions to protect the passwords against brute-force attacks. Hashing (with salt!) is a best practice. Why?Â
- They are unique
- They are resistant to collision
- They can’t be reversed
- They can’t be predicted
- They are… fast!
A technique to attack hashed passwords is to use rainbow tablesÂ but they also have limitations. To protect against brute force attack, Tiago explained what are adaptive hashes. They are designed to remove one of the properties of classic hashes: speed! Finally, Tiago give a very good advice to everybody: Be prepared to be attacked and to have a good communication plan!Â The slides are available here.
After a short break, the second talk was given byÂ Daan Raman and Erik Van Buggenhout (from NVISO). The title was “A history of ATM violence – From blowing up safes over jackpotting to all-round malware“. ATM’s or “Automated Teller Machine” are used daily by most of us and are often nice targets for thieves. As said Erik: “We don’t need to ask why to target them! That’s were the money is…“. After a short history of ATM’s (did you know that they are currently 2.2 millions ATM’s worldwide?), Erik described the standard layout of a modern ATM. It is based on two main parts: the safe itself containing the money and a computer. The safe is usually quite well protected but the computer is vulnerable in many points. To learn how ATM’s work, Erik just bought its own and made some research! Computers used in ATM’s are classic computers with all the required I/O: USB ports, keyboard, mouse, CD player etc… Even if some physical attacks were reviewed with funny pictures, Erik & Daan focused on attacking the ATM via the built-in computer (which remains based on Windows XP in most cases). How?
ATM systems are based on a unique set of APIs that are developed by CEN/XFS (“eXtensions for Financial Services“). They allow to operated with the ATM devices like:
- Cash dispensers
- Identification card units
- Personal identification number keypads (PIN)
- Text terminal units
Like any API, there are two layers: vendor dependent and vendor independent. Using this API and some C code, Erik wrote a PoC tool called “ATMDispenser.exe” which can perform cash-out operations! To demonstrate the tool, a live funny demo was performed using Erik’s ATM fullfilled with fake banknotes. Of course, to install the malicious code, a physical access is required to the ATM but many people have access to it (maintenance team, cleaning teams). Sometimes the ATM is located in a public area. Funny note again, someÂ computers are protected in the ATM rack with a lock and a key. This key looks to be the same for all ATMs and the lock has been opened by Erik in 10 mins using standard lock-picking tools. Nice presentation! The slides are available here.