Man-in-the-browser

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Man-in-the-Browser (MITB, MitB, MIB, MiB), a form of Internet threat related to man-in-the-middle (MITM), is a proxy Trojan horse[1] that infects a web browser by taking advantage of vulnerabilities in browser security to modify web pages, modify transaction content or insert additional transactions, all in a completely covert fashion invisible to both the user and host web application. A MitB attack will be successful irrespective of whether security mechanisms such as SSL/PKI and/or two or three-factor Authentication solutions are in place. A MitB attack may be countered by utilising out-of-band transaction verification, although SMS verification can be defeated by man-in-the-mobile (MitMo) malware infection on the mobile phone. Trojans may be detected and removed by antivirus software[2] with a 23% success rate against Zeus in 2009,[3] and still low rates in 2011.[4] The 2011 report concluded that additional measures on top of antivirus were needed.[4] A related, more simple attack is the boy-in-the-browser (BitB, BITB). The majority of financial service professionals in a survey considered MitB to be the greatest threat to online banking.

Description

The MitB threat was demonstrated by Augusto Paes de Barros in his 2005 presentation about backdoor trends "The future of backdoors - worst of all worlds".[5] The name "Man-in-the-Browser" was coined by Philipp Gühring on 27 January 2007.[6]

A MitB Trojan works by utilising common facilities provided to enhance browser capabilities such as Browser Helper Objects (a feature limited to Internet Explorer), browser extensions and user scripts (for example in JavaScript) etc.[6] Antivirus software can detect some of these methods.[2]

In a nutshell example exchange between user and host, such as an Internet banking funds transfer, the customer will always be shown, via confirmation screens, the exact payment information as keyed into the browser. The bank, however, will receive a transaction with materially altered instructions, i.e. a different destination account number and possibly amount. The use of strong authentication tools simply creates an increased level of misplaced confidence on the part of both customer and bank that the transaction is secure. Authentication, by definition, is concerned with the validation of identity credentials. This should not be confused with transaction verification.

Examples

Examples of MitB threats on different operating systems and web browsers:

Man-in-the-Browser examples
Name Details Operating system Browser
Agent.DBJP[7] Windows IE, Firefox
Bugat[8] Windows IE, Firefox
Carberp targets Facebook users redeeming e-cash vouchers[9] Windows IE, Firefox
ChromeInject*[10] Greasemonkey impersonator[11] Windows Firefox
Clampi[12] Windows IE
Gozi[1] Windows IE, Firefox
Nuklus[2][11] Windows IE
OddJob[13] keeps bank session open Windows IE, Firefox
Silentbanker[14] Windows IE, Firefox
Silon[15] Windows IE
SpyEye[16] successor of Zeus, widespread, low detection Windows IE, Firefox
Sunspot[17] widespread, low detection Windows IE, Firefox
Tatanga[18] Windows IE, Firefox, Chrome, Opera, Safari, Maxthon, Netscape, Konqueror
Torpig**[15] Windows IE, Firefox
URLZone****[1] Windows IE, Firefox, Opera
Weyland-Yutani BOT[19] crimeware kit similar to Zeus, not widespread[19][20] Mac OS X Firefox
Yaludle[15] Windows IE
Zeus***[12] widespread, low detection Windows IE, Firefox
Key Windows: IE Windows: IE & Firefox or Firefox Windows: other Mac OS X: any
*ChromeInject aka ChromeInject.A, ChromeInject.B, Banker.IVX, Inject.NBT, Bancos-BEX, Drop.Small.abw[10]
**Torpig aka Sinowal, Anserin[1]
***Zeus aka ZeuS, Zbot,[21] Wsnpoem,[22][23] NTOS,[3] PRG,[3] Kneber,[24] Gorhax[24]
****URLZone aka Bebloh!IK, Runner.82176, Monder, ANBR, Sipay.IU, Runner.fq, PWS.y!cy, Zbot.gen20, Runner.J, BredoPk-B, Runner.EQ

Protection

Antivirus

Known Trojans may be detected, blocked and removed by antivirus software.[2] In a 2009 study, the effectiveness of antivirus against Zeus was 23%,[3] and again low success rates were reported in a separate test in 2011.[4] The 2011 report concluded that additional measures on top of antivirus were needed.[4]

Hardened software

  • Browser security software: MitB attacks may be blocked by in-browser security software such as Trusteer Rapport for Microsoft Windows and Mac OS X which blocks the APIs from browser extensions and controls communication.[12][11][15]
  • Alternative software: Reducing or eliminating the risk of malware infection by using portable applications or using alternatives to Microsoft Windows like Mac OS X, Linux, or mobile OSes Android, iOS, Chrome OS, Windows Mobile, Symbian etc., and/or browsers Chrome, Opera.[25] Further protection can be achieved by running this alternative OS, like Linux, from a non-installed live CD, or Live USB.[26]
  • Secure Web Browser: Several vendors can now provide a two-factor security solution where a Secure Web Browser is part of the solution[citation needed]. In this case MitB attacks are avoided as the user executes a hardened browser from their two-factor security device rather than executing the "infected" browser from their own machine.

Out-of-band transaction verification

A theoretically effective method of combating any MitB attack is through an out-of-band (OOB) transaction verification process. This overcomes the MitB trojan by verifying the transaction details, as received by the host (bank), to the user (customer) over a channel other than the browser; for example an automated telephone call, SMS, or a dedicated mobile app with graphical cryptogram.[27] OOB transaction verification is ideal for mass market use since it leverages devices already in the public domain (e.g. landline, mobile phone, etc.) and requires no additional hardware devices yet enables three-factor authentication (utilising voice biometrics), transaction signing (to non-repudiation level) and transaction verification. The downside is that the OOB transaction verification adds to the level of the end-user's frustration with more and slower steps.

Man-in-the-Mobile

Mobile phone mobile Trojan spyware man-in-the-mobile (MitMo)[28] can defeat OOB SMS transaction verification.[29]

  • ZitMo (Zeus-In-The-Mobile) is not a MitB Trojan itself (although it performs a similar proxy function on the incoming SMSes), but is mobile malware suggested for installation on a mobile phone by a Zeus infected computer. By intercepting all incoming SMSes, it defeats SMS-based banking OOB two-factor authentication on Windows Mobile, Android, Symbian, BlackBerry.[29] ZitMo may be detected by Antivirus running on the mobile device.
  • SpitMo (SpyEye-In-The-Mobile, SPITMO), is similar to ZitMo.[30]

Web fraud detection

Web Fraud Detection can be implemented at the bank to automatically check for anomalous behaviour patterns in transactions.[31]

Related attacks

Proxy trojans

Keyloggers are the most primitive form of proxy trojans, followed by browser-session recorders which capture more data, and lastly MitBs are the most sophisticated type.[1]

Man-in-the-middle

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

SSL/PKI etc. may offer protection in a man-in-the-middle attack, but offers no protection in a man-in-the-browser attack.

Boy-in-the-Browser

A related attack that is simpler and quicker for malware authors to set up is termed boy-in-the-Browser (BitB or BITB). Malware is used to change the client's computer network routing to perform a classic man-in-the-middle attack. Once the routing has been changed, the malware may completely remove itself, making detection more difficult.[32]

Clickjacking

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Clickjacking tricks a web browser user into clicking on something different from what the user perceives, by means of malicious code in the webpage.

See also

References

  1. 1.0 1.1 1.2 1.3 1.4 Lua error in package.lua at line 80: module 'strict' not found.
  2. 2.0 2.1 2.2 2.3 Lua error in package.lua at line 80: module 'strict' not found.
  3. 3.0 3.1 3.2 3.3 Lua error in package.lua at line 80: module 'strict' not found.[dead link]
  4. 4.0 4.1 4.2 4.3 Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.[dead link]
  6. 6.0 6.1 Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. 10.0 10.1 Lua error in package.lua at line 80: module 'strict' not found.
  11. 11.0 11.1 11.2 Lua error in package.lua at line 80: module 'strict' not found.
  12. 12.0 12.1 12.2 Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. 15.0 15.1 15.2 15.3 Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. 19.0 19.1 Lua error in package.lua at line 80: module 'strict' not found.
  20. Lua error in package.lua at line 80: module 'strict' not found.[dead link]
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. Lua error in package.lua at line 80: module 'strict' not found.
  24. 24.0 24.1 Lua error in package.lua at line 80: module 'strict' not found.
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. Lua error in package.lua at line 80: module 'strict' not found.
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. Lua error in package.lua at line 80: module 'strict' not found.
  29. 29.0 29.1 Lua error in package.lua at line 80: module 'strict' not found.
  30. Lua error in package.lua at line 80: module 'strict' not found.
  31. Lua error in package.lua at line 80: module 'strict' not found.
  32. Lua error in package.lua at line 80: module 'strict' not found.

External links