using web security
play

Using Web Security Scanners to Detect Vulnerabilities in Web - PowerPoint PPT Presentation

Using Web Security Scanners to Detect Vulnerabilities in Web Services Marco Vieira, Nuno Antunes , Henrique Madeira {mvieira, nmsa, henrique}@dei.uc.pt DSN 2009 CISUC Department of Informatics Engineering University of Coimbra Outline


  1. Using Web Security Scanners to Detect Vulnerabilities in Web Services Marco Vieira, Nuno Antunes , Henrique Madeira {mvieira, nmsa, henrique}@dei.uc.pt DSN 2009 CISUC Department of Informatics Engineering University of Coimbra

  2. Outline  Contextualization  Research Goals  Methodology  Results  Conclusions and Future Work 2 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  3. Contextualization  Web services are increasingly becoming a strategic component in a wide range of organizations  Web services are so exposed that any existing vulnerability will most probably be uncovered/exploited  Both providers and consumers need to assess services’ security 3 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  4. Web Services 4 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  5. Web Services Security  Security threats  Hackers are moving their focus to applications’ code  Traditional security mechanisms (Firewall, IDS, encryption) cannot mitigate these attacks  Vulnerabilities like SQL Injection and XPath Injection are particularly relevant  Developers must  Apply best coding practices  Security testing! 5 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  6. Vulnerability Examples public String auth(String login, String pass) throw SQLException { String sql = "SELECT * FROM users WHERE "+ "username='" + login + "' AND "+ ' OR 1=1 -- "password='" + pass + "'"; ResultSet rs = statement.executeQuery(sql); "SELECT * FROM users WHERE username='' OR 1=1 -- ' AND (…) password= ''“; } public void delete(String str) throw SQLException{ String sql = "DELETE FROM table ' OR ''=' "WHERE id='" + str + "'"; statement.executeUpdate(sql); "DELETE FROM table WHERE id='' OR '' = ''"; } 6 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  7. Software Testing techniques  White-box testing:  The analysis of the application’s code  Black-box testing:  The analysis of application’s execution searching for vulnerabilities  Known as penetration testing  Gray-box testing:  Approaches that combine black box and white box 7 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  8. Web Security Scanners  Easy and widely-used way to test applications searching vulnerabilities  Use fuzzing techniques to attack applications  Perform thousands of tests in an automated way  What is the effectiveness of these tools?  Can programmers rely on these tools? 8 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  9. Research Goals  Study the effectiveness of the scanners  Identify common types of vulnerabilities  In the context of web service environments 9 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  10. Methodology  Apply leading commercial scanners in public web services  300 Web Services tested  Randomly selected  4 Scanners used (including two different versions of a brand) 10 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  11. Experimental Study  Preparation  Select services and scanners  Execution  Test the services using the scanners  Verification  Identify false positives  Analysis  Analysis and systematization of results 11 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  12. Scanners 12 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  13. Vulnerabilities Found  SQL injection  XPath Injection  Code Execution  Possible Parameter Based Buffer Overflow  Possible Username or Password Disclosure  Possible Server Path Disclosure 13 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  14. Overall results analysis VS1.1 VS1.2 VS2 VS3 Vulnerability Types # Vuln. # WS # Vuln. # WS # Vuln. # WS # Vuln. # WS 11 SQL Injection 217 38 225 38 25 5 35 XPath Injection 10 1 10 1 0 0 0 0 0 Code Execution 1 1 1 1 0 0 0 Possible Parameter Based 0 0 0 0 0 0 4 3 Buffer Overflow Possible Username or 3 0 0 0 0 0 0 47 Password Disclosure Possible Server Path 5 0 0 0 0 0 0 17 Disclosure Total 228 40 236 40 25 5 103 22 14 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  15. SQL Injection 225 VS1.2 15 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  16. SQL Injection VS1.1 19 198 27 VS1.2 16 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  17. SQL Injection VS1.1 19 172 26 3 6 24 VS3 VS1.2 17 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  18. SQL Injection VS1.1 19 VS2 2 1 171 21 1 5 3 5 24 VS3 VS1.2 18 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  19. SQL Injection VS1.1 19 ? VS2 2 1 171 21 1 5 3 5 24 VS3 VS1.2 19 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  20. False Positives examination  False positive when  the error/answer obtained is related to an application robustness problem.  the same problem occurs when the service is executed with valid inputs  Confirmed Vulnerabilities when  is possible to observe that a SQL command was invalidated by the “injected” values  the “injected” values lead to exceptions raised by the database server  is possible to access unauthorized resources 20 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  21. False Positives results 225 False Positives 200 37% 40% Doubtful 83 175 87 Confirmed Vulnerabilities 150 11,6% 6,5% 26 125 14 100 25,7% 75 14% 116 116 50 32% 9 25 5 8 21 17 0 VS1.1 VS1.2 VS2 VS3 21 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  22. SQL Injection without False Positives 142 VS1.2 22 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  23. SQL Injection without False Positives VS1.1 3 127 15 VS1.2 23 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  24. SQL Injection without False Positives VS1.1 3 2 103 24 VS3 15 VS1.2 24 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  25. SQL Injection without False Positives VS1.1 3 VS2 2 1 1 21 102 1 3 VS3 15 VS1.2 25 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  26. SQL Injection without False Positives ? VS1.1 3 VS2 2 1 1 21 102 1 3 VS3 15 VS1.2 26 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  27. Coverage analysis  Real number of vulnerabilities unavailable  It is possible to make a comparative analysis  Overestimated Coverage values!! Scanner # SQL Injection Vulnerabilities Coverage % VS1.1 130 87.2% VS1.2 142 95.3% VS2 25 16.8% VS3 26 17.4% Total 149 100% 27 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  28. Common Vulnerabilities SQL Injection (149) 1 10 1 16 Possible Server Path Disclosure (16) XPath Injection (10) Code Execution (1) 149 Possible Parameter Based Buffer Overflow (1) 28 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  29. Conclusions  A large number of vulnerabilities was observed  SQL Injection vulnerabilities are prevalent  Selecting a scanner for web services is a very difficult task  Different scanners detect different types of vulnerabilities  High false positives rates  Low coverage rates  Can we do better? 29 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  30. Preliminary work  Develop a new approach for vulnerabilities detection  Detect SQL Injection and XPath Injection vulnerabilities effectively  Generate workload and attackload  Analyze responses  Analyze vulnerabilities to avoid False positives 30 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

  31. Preliminary Work Results 180 False Positives 160 Doubtful 140 Confirmed 120 86 93 100 80 14 60 25 13 13 40 1 0 52 47 47 4 20 4 21 17 0 VS1.1 VS1.2 VS2 VS3 VS.WS 31 Nuno Antunes DSN 2009, June 29 - July 2, Estoril, Portugal

Recommend


More recommend