SlideShare a Scribd company logo
Breaking the Bank
How to really test/annoy financial institutions
Who the hell am I?
!   One of the original OWASP members from back in the day.
!   Started the OWASP Testing Guide.
!   Security old fart.
What the hell am I on about?
!   Banking applications and frameworks are a pleasure to test.
!   They often have many vulnerabilities lurking beneath the
surface.
!   Not many testers know how to wrangle the frameworks to get
what they want.
!   It makes you look great compared to other testers.
Quick background lesson
!   Banking frameworks aren’t as confusing as you’d think.
!   Often only a handful of frameworks in use globally.
!   JAVA and .NET only (no-one really uses PHP, admit it!)
!   SAP/IBM/FLEXCUBE (Oracle Financial Services) are the popular choice.
!   Developed off-shore and customised in-house by dev teams onsite.
Overall security
!   Most modern banking frameworks are relatively secure.
!   Don’t expect Grossmann style attacks (a.k.a the net is falling,
aaaaaaaah).
!   They have large development teams and sexier budgets to fix
issues.
!   They’ve been tested heavily by many of the best for years.
So shall I give up now?
!   Have faith. Most big development teams still have little, or none,
knowledge about secure coding.
!   Off-shore development is 5 years behind the west.
!   There are loads of vulnerabilities still to be found.
Information gathering
!   You need to have all the information before any testing starts.
!   Understand regulatory requirements for market/application.
!   Understand what Banking Standards are required for app.
!   Obtain functional spec for all applications/frameworks to be
tested.
The goods
!   Business logic flaws.
!   Compliancy and financial regulation flaws.
!   Bypassing validation routines.
!   Outwitting the developer.
Business logic flaws
!   Most frameworks have logic flaws introduced during the
development phase.
!   Logic flaws require you to fully understand the application and
function.
!   They could be anywhere in the application, from authentication
to validation.
Business logic flaws are:
!   Legitimate requests with legitimate values.
!   The ability to abuse a function to perform a task it was not
meant to perform.
!   The ability to bypass, or circumvent, the intended flow of an
application.
Authentication business logic flaw
!   Banking app has 2-stage authentication:
!   first page prompts for userID/pass and passcode (4-6 digit)
!   second page asks for 3 random chars of memorable word.
!   This is ripe for a logic flaw attack.
Authentication business logic flaw
!   Enter a valid username and password combo and press enter, the
2nd phase always asks for the same 3 random chars. (good
practice).
!   Enter a valid username and incorrect password and press enter
(don’t add any memorable info from drop-down). The app asks for
different chars from the memorable password.
!   We can now determine when a valid password combo has been
entered by the behavior of the 2nd-phase page.
Business logic flaws
!   Use and Abuse cases are your friend:
!   how can an attacker subvert this function?
!   what are the maximum amounts allowed?
!   can the amount be a negative amount?
!   can you manipulate source and destination accounts?
Compliancy and financial regulation flaws
!   Banking apps are strictly controlled by various financial laws.
!   These laws protect the consumer from being ripped off.
!   Testing for these flaws requires knowledge of how .net/JAVA
handles monetary values.
!   NaN/Infinity and Exponential Notation are your friend.
Rounding errors
!   Float and double data types are based on IEEE754.
!   This standard acknowledges shortcomings relating to rounding
errors.
!   System.out.println(3.00 - 1.10);
!   result is actually 1.89999999999999999
Bypassing validation routines
!   The use of Nan/Infinity and exponential notation is key to bypassing
validation routines.
!   App has regulatory requirement to only allow a transaction under 10,000 per
day. Validation checks input amount for <6 characters. Anything more is
denied.
!   What about 9E1 or 0.99E+6 (all valid)
!   Test all listed reserved words in numeric fields!
Currency manipulation
!   Currency functions are easy to manipulate:
!   often they obtain the value at the start of the function.
!   change the value to see if it’s accepted. also change currency
value.
!   bypass currency restrictions using exponential notation.
Outwitting the developer
!   Most developers dabble with security but often don’t fully
understand implications.
!   Retail banking applications have functions to allow customers to
contact bank staff. Often these allow uploads (strictly
controlled).
!   I’ve yet to see any upload function checking content. This is ripe
for abuse.
Malicious uploads
!   Create malicious PDF. (use Metasploit, any Adobe vuln is
useful).
!   Log into banking app and contact administrators, attach PDF and
send.
!   Sit and wait for admin to launch PDF (which has been cleared by
the framework)
!   Control admin workstation.
Conclusion
!   Get as much information about the app/platform as possible.
!   Be methodical.
!   Think ‘how can this be subverted?’
!   Dare for more.
2010 za con_daniel_cuthbert

More Related Content

Viewers also liked

2010 za con_ian_de_villiers
2010 za con_ian_de_villiers2010 za con_ian_de_villiers
2010 za con_ian_de_villiersJohan Klerk
 
2010 za con_ivan_burke
2010 za con_ivan_burke2010 za con_ivan_burke
2010 za con_ivan_burkeJohan Klerk
 
Arts railway station tv exp
Arts railway station tv expArts railway station tv exp
Arts railway station tv exp
Mezbah Uddin
 
2010 za con_haroon_meer
2010 za con_haroon_meer2010 za con_haroon_meer
2010 za con_haroon_meerJohan Klerk
 
Anexo a demanda impugnacion laudo sunat comprimido
Anexo a demanda impugnacion laudo sunat   comprimidoAnexo a demanda impugnacion laudo sunat   comprimido
Anexo a demanda impugnacion laudo sunat comprimido
Paola Aliaga
 
2010 za con_jameel_haffejee
2010 za con_jameel_haffejee2010 za con_jameel_haffejee
2010 za con_jameel_haffejeeJohan Klerk
 
Cv paola aliaga 21
Cv paola aliaga 21Cv paola aliaga 21
Cv paola aliaga 21
Paola Aliaga
 
2010 za con_roelof_temmingh
2010 za con_roelof_temmingh2010 za con_roelof_temmingh
2010 za con_roelof_temminghJohan Klerk
 
2010 za con_georg-christian_pranschke
2010 za con_georg-christian_pranschke2010 za con_georg-christian_pranschke
2010 za con_georg-christian_pranschkeJohan Klerk
 
4 pliego reclamo 2015
4 pliego reclamo 20154 pliego reclamo 2015
4 pliego reclamo 2015
Paola Aliaga
 
2010 za con_jurgens_van_der_merwe
2010 za con_jurgens_van_der_merwe2010 za con_jurgens_van_der_merwe
2010 za con_jurgens_van_der_merweJohan Klerk
 
2010 za con_barry_irwin
2010 za con_barry_irwin2010 za con_barry_irwin
2010 za con_barry_irwinJohan Klerk
 
2010 za con_stephen_kreusch
2010 za con_stephen_kreusch2010 za con_stephen_kreusch
2010 za con_stephen_kreuschJohan Klerk
 
Training management
Training managementTraining management
Training management
Mezbah Uddin
 

Viewers also liked (14)

2010 za con_ian_de_villiers
2010 za con_ian_de_villiers2010 za con_ian_de_villiers
2010 za con_ian_de_villiers
 
2010 za con_ivan_burke
2010 za con_ivan_burke2010 za con_ivan_burke
2010 za con_ivan_burke
 
Arts railway station tv exp
Arts railway station tv expArts railway station tv exp
Arts railway station tv exp
 
2010 za con_haroon_meer
2010 za con_haroon_meer2010 za con_haroon_meer
2010 za con_haroon_meer
 
Anexo a demanda impugnacion laudo sunat comprimido
Anexo a demanda impugnacion laudo sunat   comprimidoAnexo a demanda impugnacion laudo sunat   comprimido
Anexo a demanda impugnacion laudo sunat comprimido
 
2010 za con_jameel_haffejee
2010 za con_jameel_haffejee2010 za con_jameel_haffejee
2010 za con_jameel_haffejee
 
Cv paola aliaga 21
Cv paola aliaga 21Cv paola aliaga 21
Cv paola aliaga 21
 
2010 za con_roelof_temmingh
2010 za con_roelof_temmingh2010 za con_roelof_temmingh
2010 za con_roelof_temmingh
 
2010 za con_georg-christian_pranschke
2010 za con_georg-christian_pranschke2010 za con_georg-christian_pranschke
2010 za con_georg-christian_pranschke
 
4 pliego reclamo 2015
4 pliego reclamo 20154 pliego reclamo 2015
4 pliego reclamo 2015
 
2010 za con_jurgens_van_der_merwe
2010 za con_jurgens_van_der_merwe2010 za con_jurgens_van_der_merwe
2010 za con_jurgens_van_der_merwe
 
2010 za con_barry_irwin
2010 za con_barry_irwin2010 za con_barry_irwin
2010 za con_barry_irwin
 
2010 za con_stephen_kreusch
2010 za con_stephen_kreusch2010 za con_stephen_kreusch
2010 za con_stephen_kreusch
 
Training management
Training managementTraining management
Training management
 

Similar to 2010 za con_daniel_cuthbert

Security by the numbers
Security by the numbersSecurity by the numbers
Security by the numbers
Eoin Keary
 
Keeping the wolf from 1000 doors.
Keeping the wolf from 1000 doors.Keeping the wolf from 1000 doors.
Keeping the wolf from 1000 doors.
Eoin Keary
 
Hide and seek - Attack Surface Management and continuous assessment.
Hide and seek - Attack Surface Management and continuous assessment.Hide and seek - Attack Surface Management and continuous assessment.
Hide and seek - Attack Surface Management and continuous assessment.
Eoin Keary
 
Evaluating Web App, Mobile App, and API Security - Matt Cohen
Evaluating Web App, Mobile App, and API Security - Matt CohenEvaluating Web App, Mobile App, and API Security - Matt Cohen
Evaluating Web App, Mobile App, and API Security - Matt Cohen
Inman News
 
Web Application Penetration Testing Introduction
Web Application Penetration Testing IntroductionWeb Application Penetration Testing Introduction
Web Application Penetration Testing Introductiongbud7
 
Advanced malwareanalysis training session2 botnet analysis part1
Advanced malwareanalysis training session2 botnet analysis part1Advanced malwareanalysis training session2 botnet analysis part1
Advanced malwareanalysis training session2 botnet analysis part1
Cysinfo Cyber Security Community
 
Fixing security by fixing software development
Fixing security by fixing software developmentFixing security by fixing software development
Fixing security by fixing software development
Nick Galbreath
 
Justin Ison
Justin IsonJustin Ison
Justin Ison
CodeFest
 
2 . web app s canners
2 . web app s canners2 . web app s canners
2 . web app s canners
Rashid Khatmey
 
Automated Exploratory Testing
Automated Exploratory TestingAutomated Exploratory Testing
Automated Exploratory Testing
Justin Ison
 
Zen and the art of Security Testing
Zen and the art of Security TestingZen and the art of Security Testing
Zen and the art of Security Testing
TEST Huddle
 
Owasp top 10 web application security hazards - Part 1
Owasp top 10 web application security hazards - Part 1Owasp top 10 web application security hazards - Part 1
Owasp top 10 web application security hazards - Part 1
Abhinav Sejpal
 
OWASPAppSecEU2006_CanTestingToolsReallyFindOWASPTop10
OWASPAppSecEU2006_CanTestingToolsReallyFindOWASPTop10OWASPAppSecEU2006_CanTestingToolsReallyFindOWASPTop10
OWASPAppSecEU2006_CanTestingToolsReallyFindOWASPTop10Juan Golden Tiger
 
Security as a new metric for Business, Product and Development Lifecycle
Security as a new metric for Business, Product and Development LifecycleSecurity as a new metric for Business, Product and Development Lifecycle
Security as a new metric for Business, Product and Development Lifecycle
Nazar Tymoshyk, CEH, Ph.D.
 
Security as a New Metric for Your Business, Product and Development Lifecycle...
Security as a New Metric for Your Business, Product and Development Lifecycle...Security as a New Metric for Your Business, Product and Development Lifecycle...
Security as a New Metric for Your Business, Product and Development Lifecycle...
IT Arena
 
Security engineering 101 when good design & security work together
Security engineering 101  when good design & security work togetherSecurity engineering 101  when good design & security work together
Security engineering 101 when good design & security work together
Wendy Knox Everette
 
RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...
RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...
RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...
Denim Group
 
Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013Nick Galbreath
 
Understanding Cross-site Request Forgery
Understanding Cross-site Request ForgeryUnderstanding Cross-site Request Forgery
Understanding Cross-site Request Forgery
Daniel Miessler
 

Similar to 2010 za con_daniel_cuthbert (20)

Security by the numbers
Security by the numbersSecurity by the numbers
Security by the numbers
 
Keeping the wolf from 1000 doors.
Keeping the wolf from 1000 doors.Keeping the wolf from 1000 doors.
Keeping the wolf from 1000 doors.
 
Hide and seek - Attack Surface Management and continuous assessment.
Hide and seek - Attack Surface Management and continuous assessment.Hide and seek - Attack Surface Management and continuous assessment.
Hide and seek - Attack Surface Management and continuous assessment.
 
Evaluating Web App, Mobile App, and API Security - Matt Cohen
Evaluating Web App, Mobile App, and API Security - Matt CohenEvaluating Web App, Mobile App, and API Security - Matt Cohen
Evaluating Web App, Mobile App, and API Security - Matt Cohen
 
Web Application Penetration Testing Introduction
Web Application Penetration Testing IntroductionWeb Application Penetration Testing Introduction
Web Application Penetration Testing Introduction
 
Advanced malwareanalysis training session2 botnet analysis part1
Advanced malwareanalysis training session2 botnet analysis part1Advanced malwareanalysis training session2 botnet analysis part1
Advanced malwareanalysis training session2 botnet analysis part1
 
Fixing security by fixing software development
Fixing security by fixing software developmentFixing security by fixing software development
Fixing security by fixing software development
 
Justin Ison
Justin IsonJustin Ison
Justin Ison
 
2 . web app s canners
2 . web app s canners2 . web app s canners
2 . web app s canners
 
soa
soasoa
soa
 
Automated Exploratory Testing
Automated Exploratory TestingAutomated Exploratory Testing
Automated Exploratory Testing
 
Zen and the art of Security Testing
Zen and the art of Security TestingZen and the art of Security Testing
Zen and the art of Security Testing
 
Owasp top 10 web application security hazards - Part 1
Owasp top 10 web application security hazards - Part 1Owasp top 10 web application security hazards - Part 1
Owasp top 10 web application security hazards - Part 1
 
OWASPAppSecEU2006_CanTestingToolsReallyFindOWASPTop10
OWASPAppSecEU2006_CanTestingToolsReallyFindOWASPTop10OWASPAppSecEU2006_CanTestingToolsReallyFindOWASPTop10
OWASPAppSecEU2006_CanTestingToolsReallyFindOWASPTop10
 
Security as a new metric for Business, Product and Development Lifecycle
Security as a new metric for Business, Product and Development LifecycleSecurity as a new metric for Business, Product and Development Lifecycle
Security as a new metric for Business, Product and Development Lifecycle
 
Security as a New Metric for Your Business, Product and Development Lifecycle...
Security as a New Metric for Your Business, Product and Development Lifecycle...Security as a New Metric for Your Business, Product and Development Lifecycle...
Security as a New Metric for Your Business, Product and Development Lifecycle...
 
Security engineering 101 when good design & security work together
Security engineering 101  when good design & security work togetherSecurity engineering 101  when good design & security work together
Security engineering 101 when good design & security work together
 
RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...
RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...
RSA 2015 Blending the Automated and the Manual: Making Application Vulnerabil...
 
Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013
 
Understanding Cross-site Request Forgery
Understanding Cross-site Request ForgeryUnderstanding Cross-site Request Forgery
Understanding Cross-site Request Forgery
 

2010 za con_daniel_cuthbert

  • 1. Breaking the Bank How to really test/annoy financial institutions
  • 2. Who the hell am I? !   One of the original OWASP members from back in the day. !   Started the OWASP Testing Guide. !   Security old fart.
  • 3. What the hell am I on about? !   Banking applications and frameworks are a pleasure to test. !   They often have many vulnerabilities lurking beneath the surface. !   Not many testers know how to wrangle the frameworks to get what they want. !   It makes you look great compared to other testers.
  • 4.
  • 5. Quick background lesson !   Banking frameworks aren’t as confusing as you’d think. !   Often only a handful of frameworks in use globally. !   JAVA and .NET only (no-one really uses PHP, admit it!) !   SAP/IBM/FLEXCUBE (Oracle Financial Services) are the popular choice. !   Developed off-shore and customised in-house by dev teams onsite.
  • 6.
  • 7. Overall security !   Most modern banking frameworks are relatively secure. !   Don’t expect Grossmann style attacks (a.k.a the net is falling, aaaaaaaah). !   They have large development teams and sexier budgets to fix issues. !   They’ve been tested heavily by many of the best for years.
  • 8. So shall I give up now? !   Have faith. Most big development teams still have little, or none, knowledge about secure coding. !   Off-shore development is 5 years behind the west. !   There are loads of vulnerabilities still to be found.
  • 9. Information gathering !   You need to have all the information before any testing starts. !   Understand regulatory requirements for market/application. !   Understand what Banking Standards are required for app. !   Obtain functional spec for all applications/frameworks to be tested.
  • 10. The goods !   Business logic flaws. !   Compliancy and financial regulation flaws. !   Bypassing validation routines. !   Outwitting the developer.
  • 11. Business logic flaws !   Most frameworks have logic flaws introduced during the development phase. !   Logic flaws require you to fully understand the application and function. !   They could be anywhere in the application, from authentication to validation.
  • 12. Business logic flaws are: !   Legitimate requests with legitimate values. !   The ability to abuse a function to perform a task it was not meant to perform. !   The ability to bypass, or circumvent, the intended flow of an application.
  • 13.
  • 14. Authentication business logic flaw !   Banking app has 2-stage authentication: !   first page prompts for userID/pass and passcode (4-6 digit) !   second page asks for 3 random chars of memorable word. !   This is ripe for a logic flaw attack.
  • 15. Authentication business logic flaw !   Enter a valid username and password combo and press enter, the 2nd phase always asks for the same 3 random chars. (good practice). !   Enter a valid username and incorrect password and press enter (don’t add any memorable info from drop-down). The app asks for different chars from the memorable password. !   We can now determine when a valid password combo has been entered by the behavior of the 2nd-phase page.
  • 16. Business logic flaws !   Use and Abuse cases are your friend: !   how can an attacker subvert this function? !   what are the maximum amounts allowed? !   can the amount be a negative amount? !   can you manipulate source and destination accounts?
  • 17. Compliancy and financial regulation flaws !   Banking apps are strictly controlled by various financial laws. !   These laws protect the consumer from being ripped off. !   Testing for these flaws requires knowledge of how .net/JAVA handles monetary values. !   NaN/Infinity and Exponential Notation are your friend.
  • 18. Rounding errors !   Float and double data types are based on IEEE754. !   This standard acknowledges shortcomings relating to rounding errors. !   System.out.println(3.00 - 1.10); !   result is actually 1.89999999999999999
  • 19. Bypassing validation routines !   The use of Nan/Infinity and exponential notation is key to bypassing validation routines. !   App has regulatory requirement to only allow a transaction under 10,000 per day. Validation checks input amount for <6 characters. Anything more is denied. !   What about 9E1 or 0.99E+6 (all valid) !   Test all listed reserved words in numeric fields!
  • 20.
  • 21. Currency manipulation !   Currency functions are easy to manipulate: !   often they obtain the value at the start of the function. !   change the value to see if it’s accepted. also change currency value. !   bypass currency restrictions using exponential notation.
  • 22. Outwitting the developer !   Most developers dabble with security but often don’t fully understand implications. !   Retail banking applications have functions to allow customers to contact bank staff. Often these allow uploads (strictly controlled). !   I’ve yet to see any upload function checking content. This is ripe for abuse.
  • 23. Malicious uploads !   Create malicious PDF. (use Metasploit, any Adobe vuln is useful). !   Log into banking app and contact administrators, attach PDF and send. !   Sit and wait for admin to launch PDF (which has been cleared by the framework) !   Control admin workstation.
  • 24. Conclusion !   Get as much information about the app/platform as possible. !   Be methodical. !   Think ‘how can this be subverted?’ !   Dare for more.