SlideShare uma empresa Scribd logo
1 de 51
Baixar para ler offline
OWASP Top Ten API Project
Os 10 principais riscos de segurança em APIs
Fernando Galves
+20 anos de experiência em TI
Certified Application Security Engineer
OWASP Code Review Guide
OWASP São Paulo Chapter Leader
Diretor de Segurança da Informação na OITI Technologies
Apresentação
https://www.owasp.org/index.php/Category:OWASP_Code_Review_Project
OWASP API Security Top Ten 2019
https://www.owasp.org/index.php/OWASP_API_Security_Project
1
2
3
Coleta de dados públicos sobre
incidentes de segurança de APIs
Revisão e categorização dos dados
por especialistas em segurança
Pentesters foram convidados para
enviar suas próprias listas
Gerado o primeiro draft4
Metodologia e dados
OWASP Top Ten API 2019
https://www.owasp.org/index.php/OWASP_API_Security_Project
API1:2019 - Broken Object Level Authorization
DATA LAYER ACCESS CONTROL
• A API vulnerável não realiza o controle de acesso
corretamente e permite o acesso não autorizado a
dados confidenciais;
• O vetor de ataque pode ser através de um ataque
enumerado no ID de um objeto na chamada da API
www.example.com.br
W
A
F
APIWEB
GET /users/ID/info
GET /users/1/info
IDOR (Insecure Direct Object Reference)
Expõe uma referência para um objeto interno
Enumeration Attack
API1:2019 - Broken Object Level Authorization
?
Usuário X pode
acessar esse dado?
DATA LAYER ACCESS CONTROL
Testes de
autorização
https://daleys.space/writeup/0day/2019/09/09/verizon-leak.html
API1:2019 - Broken Object Level Authorization
DATA LAYER ACCESS CONTROL
API1:2019 - Broken Object Level Authorization
DATA LAYER ACCESS CONTROL
API2:2019 - Broken Authentication
• O processo de autenticação da API vulnerável é mal
implementado e permite que atacantes assumam
identidades de outros usuários.
www.example.com.br
W
A
F
API
WEB
POST /api/v1/auth
API2:2019 - Broken Authentication
JWT
GET /api/v1/user/1/info
1
2
(credenciais)
(JWT)
JSON
Credential
Stuffing
Wordlist
? Protege contra brute force?
Protege contra credential stuffing?
Gerenciamento correto do JWT?
JWT possui expiração?
Permite o uso de senhas fracas?
Vetor de ataque! Manual Code Review for:
- Authentication
- Credential Storage
- Crypto
- Other things of that nature
API2:2019 - Broken Authentication
Temos todos os dados para realizar
o brute force na assinatura!
www.example.com.br
W
A
F
API
WEB
MOBILE
IOT
API2:2019 - Broken Authentication
Injection
XSS
XXE
Broken Authentication
Log Injection
Sensitive Data Exposure
Insecure Deserialization
Broken Access Control
Broken Authentication
API3:2019 – Excessive Data Exposure
• A API vulnerável expõe mais dados do que o cliente
legitimamente precisa, confiando no browser ou no
aplicativo para fazer a filtragem.
www.example.com.br
W
A
F
API
WEB
API3:2019 – Excessive Data Exposure
GET /api/v1/user/1/info
JSON
JSON
App filtra os
dados sensíveis
EXCESSIVE DATA EXPOSURE BY DESIGN
API3:2019 – Excessive Data Exposure
https://www.pentestpartners.com/security-blog/group-sex-app-leaks-locations-pictures-and-other-personal-details-identifies-
users-in-white-house-and-supreme-court/
API3:2019 – Excessive Data Exposure
https://www.pentestpartners.com/security-blog/group-sex-app-leaks-locations-pictures-and-other-personal-details-identifies-
users-in-white-house-and-supreme-court/
API4:2019 – Lack of Resources & Rate Limiting
• A API vulnerável não está protegida contra uma
quantidade excessiva de chamadas ou tamanhos de
payloads.
• Os atacantes usam isso para DoS e ataques de força
bruta.
www.example.com.br
W
A
F
API
WEB
API4:2019 – Lack of Resources & Rate Limiting
GET /api/v1/users?page=1&size=100000000
2
GET /api/v1/users?page=1&size=100
1
JSON
X
Pode causar Denial of Service
Pode permitir Brute Force Attack
Input
Validation
Estabeleça e
respeite os limites
O Docker facilita o limite de memória, CPU,
número de reinicializações, descritores de
arquivo e processos.
API não protege contra quantidade
excessiva de chamadas por tamanho
de payloads
API5:2019 - Broken Function Level Authorization
• A API vulnerável não realiza o controle de acesso
corretamente de endpoints e permite que usuários
comuns acessem funções não autorizadas.
URL ACCESS CONTROL
www.example.com.br
APIWEB
?
Usuário X pode
acessar essa URL?
API5:2019 - Broken Function Level Authorization
URL ACCESS CONTROL
DELETE /api/v1/users/716
ADM
GET /api/v1/users/717
DELETE /api/v1/users/717
W
A
F
API6:2019 – Mass Assignment
• A API vulnerável permite que os atacantes modifiquem
propriedades de objetos internos que não deveriam.
www.example.com.br
W
A
F
API
WEB
POST /api/v1/adduser
API6:2019 – Mass Assignment
userid=bobbytables
password=hashedpass
email=bobby@tables.com
isAdmin=true
Whitelist
BlacklistDTO
?
isAdmin pode ser
atribuído via POST
do cliente?
API7:2019 – Security Misconfiguration
• Security Misconfiguration geralmente é o resultado de:
• Configurações padrão inseguras;
• Configurações incompletas ou ad-hoc;
• Armazenamento em nuvem aberta;
• Cabeçalhos HTTP configurados incorretamente;
• Métodos HTTP desnecessários;
• Compartilhamento permissivo de recursos de
origem cruzada (CORS);
• Mensagens de erro detalhadas que contêm
informações confidenciais.
www.example.com.br
W
A
F
API
WEB
API7:2019 – Security Misconfiguration
?
Configuração padrão em produção
Patches não aplicados
Mensagens de erro com stack trace
Criptografia fraca
Cross-Origin resource sharing permissivo
Headers HTTP mal configurados
API7:2019 – Security Misconfiguration
https://www.wizcase.com/blog/medical-breaches-research/
API7:2019 – Security Misconfiguration
https://www.wizcase.com/blog/medical-breaches-research/
API7:2019 – Security Misconfiguration
https://www.wizcase.com/blog/medical-breaches-research/
API7:2019 – Security Misconfiguration
https://www.wizcase.com/blog/medical-breaches-research/
API7:2019 – Security Misconfiguration
https://www.wizcase.com/blog/medical-breaches-research/
API7:2019 – Security Misconfiguration
https://www.wizcase.com/blog/medical-breaches-research/
API7:2019 – Security Misconfiguration
https://www.wizcase.com/blog/medical-breaches-research/
API8:2019 – Injection
• Falhas de injeção ocorrem quando dados não confiáveis
são enviados para um interpretador como parte de um
comando ou consulta;
• Os dados maliciosos do atacante podem induzir o
interpretador a executar comandos não intencionais ou
acessar dados sem a devida autorização.
www.example.com.br
W
A
F
API
WEB
POST /api/v1/auth
API8:2019 – Injection
usr: teste
pwd: teste123
select name from users where username = `teste` and password = `teste123`
POST /api/v1/auth
usr: ` or 1=1 or `
pwd: 123456
select name from users where username = `` or 1=1 or `` and password = `123456`
Bloqueio
EX: SQL INJECTION
API8:2019 – Injection
Na prática
API9:2019 – Improper Assets Management
• O atacante encontra versões que não são de produção
da API, como teste, beta ou versões anteriores - que
não são tão bem protegidas e que podem ser utilizadas
para iniciar um ataque.
API9:2019 – Improper Assets Management
www.example.com.br
W
A
F
API
WEB
POST /api/v1/auth
POST /api/v1/auth
beta-api.example.com.br
Inventário
Plano descontinuidade/versionamento
INVENTÁRIO
Versões de teste, beta, descontinuadas que permanecem em produção
API10:2019 – Insufficient Logging & Monitoring
• A falta de registro, monitoramento e alerta adequados
deixa os ataques passarem despercebidos
www.example.com.br
W
A
F
API
API10:2019 – Insufficient Logging & Monitoring
ATAQUE 1
ATAQUE 2
ATAQUE 3
ATAQUE 4
ATAQUE N
Tempo para detectar um vazamento é superior a 200 dias!
Normalmente é detectado por terceiros
São os pequenos atos que são
negligenciados e causam
os maiores problemas
Dado vazado não “desvaza”
Grande parte dos problemas
poderiam ter sido evitados
“Se você não tem tempo de fazer
certo da primeira vez, como você
vai ter tempo pra fazer e depois
consertar?”
“Na OWASP, estamos tentando tornar o mundo
um lugar onde software inseguro seja a anomalia,
não a regra”
Eoin Keary, OWASP Global Board
Obrigado!
Para mais informações, acesse:
www.owasp.org
Fernando Galves
São Paulo Chapter Leader
fernando.galves@owasp.org

Mais conteúdo relacionado

Mais procurados

OWASP Top 10 API Security Risks
OWASP Top 10 API Security RisksOWASP Top 10 API Security Risks
OWASP Top 10 API Security RisksIndusfacePvtLtd
 
OWASP Top 10 Web Application Vulnerabilities
OWASP Top 10 Web Application VulnerabilitiesOWASP Top 10 Web Application Vulnerabilities
OWASP Top 10 Web Application VulnerabilitiesSoftware Guru
 
API Security Best Practices & Guidelines
API Security Best Practices & GuidelinesAPI Security Best Practices & Guidelines
API Security Best Practices & GuidelinesPrabath Siriwardena
 
OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)TzahiArabov
 
Owasp top 10 vulnerabilities
Owasp top 10 vulnerabilitiesOwasp top 10 vulnerabilities
Owasp top 10 vulnerabilitiesOWASP Delhi
 
SSRF For Bug Bounties
SSRF For Bug BountiesSSRF For Bug Bounties
SSRF For Bug BountiesOWASP Nagpur
 
APISecurity_OWASP_MitigationGuide
APISecurity_OWASP_MitigationGuide APISecurity_OWASP_MitigationGuide
APISecurity_OWASP_MitigationGuide Isabelle Mauny
 
OWASP Top 10 - 2017
OWASP Top 10 - 2017OWASP Top 10 - 2017
OWASP Top 10 - 2017HackerOne
 
OWASP Top 10 Vulnerabilities - A5-Broken Access Control; A6-Security Misconfi...
OWASP Top 10 Vulnerabilities - A5-Broken Access Control; A6-Security Misconfi...OWASP Top 10 Vulnerabilities - A5-Broken Access Control; A6-Security Misconfi...
OWASP Top 10 Vulnerabilities - A5-Broken Access Control; A6-Security Misconfi...Lenur Dzhemiliev
 
Peeling the Onion: Making Sense of the Layers of API Security
Peeling the Onion: Making Sense of the Layers of API SecurityPeeling the Onion: Making Sense of the Layers of API Security
Peeling the Onion: Making Sense of the Layers of API SecurityMatt Tesauro
 
Introduction to Web Application Penetration Testing
Introduction to Web Application Penetration TestingIntroduction to Web Application Penetration Testing
Introduction to Web Application Penetration TestingNetsparker
 
Sql Injection - Vulnerability and Security
Sql Injection - Vulnerability and SecuritySql Injection - Vulnerability and Security
Sql Injection - Vulnerability and SecuritySandip Chaudhari
 
A5: Security Misconfiguration
A5: Security Misconfiguration A5: Security Misconfiguration
A5: Security Misconfiguration Tariq Islam
 
Introduction to Web Application Penetration Testing
Introduction to Web Application Penetration TestingIntroduction to Web Application Penetration Testing
Introduction to Web Application Penetration TestingRana Khalil
 
Top 10 Web Security Vulnerabilities (OWASP Top 10)
Top 10 Web Security Vulnerabilities (OWASP Top 10)Top 10 Web Security Vulnerabilities (OWASP Top 10)
Top 10 Web Security Vulnerabilities (OWASP Top 10)Brian Huff
 
Web application security & Testing
Web application security  & TestingWeb application security  & Testing
Web application security & TestingDeepu S Nath
 

Mais procurados (20)

OWASP Top 10 API Security Risks
OWASP Top 10 API Security RisksOWASP Top 10 API Security Risks
OWASP Top 10 API Security Risks
 
OWASP Top 10 Web Application Vulnerabilities
OWASP Top 10 Web Application VulnerabilitiesOWASP Top 10 Web Application Vulnerabilities
OWASP Top 10 Web Application Vulnerabilities
 
API Security Best Practices & Guidelines
API Security Best Practices & GuidelinesAPI Security Best Practices & Guidelines
API Security Best Practices & Guidelines
 
Security in NodeJS applications
Security in NodeJS applicationsSecurity in NodeJS applications
Security in NodeJS applications
 
OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)
 
Owasp top 10 vulnerabilities
Owasp top 10 vulnerabilitiesOwasp top 10 vulnerabilities
Owasp top 10 vulnerabilities
 
Sql injection
Sql injectionSql injection
Sql injection
 
SSRF For Bug Bounties
SSRF For Bug BountiesSSRF For Bug Bounties
SSRF For Bug Bounties
 
APISecurity_OWASP_MitigationGuide
APISecurity_OWASP_MitigationGuide APISecurity_OWASP_MitigationGuide
APISecurity_OWASP_MitigationGuide
 
OWASP Top 10 - 2017
OWASP Top 10 - 2017OWASP Top 10 - 2017
OWASP Top 10 - 2017
 
OWASP Top 10 Vulnerabilities - A5-Broken Access Control; A6-Security Misconfi...
OWASP Top 10 Vulnerabilities - A5-Broken Access Control; A6-Security Misconfi...OWASP Top 10 Vulnerabilities - A5-Broken Access Control; A6-Security Misconfi...
OWASP Top 10 Vulnerabilities - A5-Broken Access Control; A6-Security Misconfi...
 
Peeling the Onion: Making Sense of the Layers of API Security
Peeling the Onion: Making Sense of the Layers of API SecurityPeeling the Onion: Making Sense of the Layers of API Security
Peeling the Onion: Making Sense of the Layers of API Security
 
How to identify and prevent SQL injection
How to identify and prevent SQL injection  How to identify and prevent SQL injection
How to identify and prevent SQL injection
 
Introduction to Web Application Penetration Testing
Introduction to Web Application Penetration TestingIntroduction to Web Application Penetration Testing
Introduction to Web Application Penetration Testing
 
Sql Injection - Vulnerability and Security
Sql Injection - Vulnerability and SecuritySql Injection - Vulnerability and Security
Sql Injection - Vulnerability and Security
 
A5: Security Misconfiguration
A5: Security Misconfiguration A5: Security Misconfiguration
A5: Security Misconfiguration
 
Introduction to Web Application Penetration Testing
Introduction to Web Application Penetration TestingIntroduction to Web Application Penetration Testing
Introduction to Web Application Penetration Testing
 
Top 10 Web Security Vulnerabilities (OWASP Top 10)
Top 10 Web Security Vulnerabilities (OWASP Top 10)Top 10 Web Security Vulnerabilities (OWASP Top 10)
Top 10 Web Security Vulnerabilities (OWASP Top 10)
 
Web application security & Testing
Web application security  & TestingWeb application security  & Testing
Web application security & Testing
 
Owasp top 10
Owasp top 10Owasp top 10
Owasp top 10
 

Semelhante a OWASP Top 10 API

Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxEdlaine Zamora
 
Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Alcyon Ferreira de Souza Junior, MSc
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPFabiano Pereira
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de SegurançaAlan Carlos
 
Explorando 5 falhas graves de segurança que os programadores sempre cometem
Explorando 5 falhas graves de segurança que os programadores sempre cometemExplorando 5 falhas graves de segurança que os programadores sempre cometem
Explorando 5 falhas graves de segurança que os programadores sempre cometemAlcyon Ferreira de Souza Junior, MSc
 
Segurança de APIs - API eXperience
Segurança de APIs - API eXperienceSegurança de APIs - API eXperience
Segurança de APIs - API eXperienceDaniel Varanda
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012Marcio Cunha
 
APIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a pontaAPIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a pontaJosé Vahl
 
APIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a pontaAPIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a pontaFábio Rosato
 
Suite de Soluções Site Blindado
Suite de Soluções Site BlindadoSuite de Soluções Site Blindado
Suite de Soluções Site BlindadoSite Blindado S.A.
 
WEB_Report_Penetration_Test_Verifact_Gray_Box_Publicacao.pdf
WEB_Report_Penetration_Test_Verifact_Gray_Box_Publicacao.pdfWEB_Report_Penetration_Test_Verifact_Gray_Box_Publicacao.pdf
WEB_Report_Penetration_Test_Verifact_Gray_Box_Publicacao.pdfFranciscoZunza1
 
Segundo relatório anual sobre incidentes de segurança em redes de automação ...
Segundo relatório anual sobre incidentes de segurança em redes  de automação ...Segundo relatório anual sobre incidentes de segurança em redes  de automação ...
Segundo relatório anual sobre incidentes de segurança em redes de automação ...TI Safe
 
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...Magno Logan
 
Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Alex Hübner
 
Melhores práticas para segurança em um mundo multi cloud
Melhores práticas para segurança em um mundo multi cloud Melhores práticas para segurança em um mundo multi cloud
Melhores práticas para segurança em um mundo multi cloud Alexandre Freire
 
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Alcyon Ferreira de Souza Junior, MSc
 
Gerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores WebGerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores WebEduardo Lanna
 

Semelhante a OWASP Top 10 API (20)

Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
 
Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem
 
Antar ferreira
Antar ferreiraAntar ferreira
Antar ferreira
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASP
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de Segurança
 
Explorando 5 falhas graves de segurança que os programadores sempre cometem
Explorando 5 falhas graves de segurança que os programadores sempre cometemExplorando 5 falhas graves de segurança que os programadores sempre cometem
Explorando 5 falhas graves de segurança que os programadores sempre cometem
 
Segurança de APIs - API eXperience
Segurança de APIs - API eXperienceSegurança de APIs - API eXperience
Segurança de APIs - API eXperience
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012
 
APIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a pontaAPIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a ponta
 
APIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a pontaAPIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a ponta
 
OWASP Top 10 e aplicações .Net - Tech-Ed 2007
OWASP Top 10 e aplicações .Net - Tech-Ed 2007OWASP Top 10 e aplicações .Net - Tech-Ed 2007
OWASP Top 10 e aplicações .Net - Tech-Ed 2007
 
Suite de Soluções Site Blindado
Suite de Soluções Site BlindadoSuite de Soluções Site Blindado
Suite de Soluções Site Blindado
 
WEB_Report_Penetration_Test_Verifact_Gray_Box_Publicacao.pdf
WEB_Report_Penetration_Test_Verifact_Gray_Box_Publicacao.pdfWEB_Report_Penetration_Test_Verifact_Gray_Box_Publicacao.pdf
WEB_Report_Penetration_Test_Verifact_Gray_Box_Publicacao.pdf
 
Segundo relatório anual sobre incidentes de segurança em redes de automação ...
Segundo relatório anual sobre incidentes de segurança em redes  de automação ...Segundo relatório anual sobre incidentes de segurança em redes  de automação ...
Segundo relatório anual sobre incidentes de segurança em redes de automação ...
 
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
 
Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?
 
Melhores práticas para segurança em um mundo multi cloud
Melhores práticas para segurança em um mundo multi cloud Melhores práticas para segurança em um mundo multi cloud
Melhores práticas para segurança em um mundo multi cloud
 
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
 
MTI-MT Desenvolvimento Seguro
MTI-MT Desenvolvimento SeguroMTI-MT Desenvolvimento Seguro
MTI-MT Desenvolvimento Seguro
 
Gerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores WebGerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores Web
 

OWASP Top 10 API

  • 1.
  • 2. OWASP Top Ten API Project Os 10 principais riscos de segurança em APIs
  • 3. Fernando Galves +20 anos de experiência em TI Certified Application Security Engineer OWASP Code Review Guide OWASP São Paulo Chapter Leader Diretor de Segurança da Informação na OITI Technologies Apresentação
  • 5.
  • 6. OWASP API Security Top Ten 2019
  • 7. https://www.owasp.org/index.php/OWASP_API_Security_Project 1 2 3 Coleta de dados públicos sobre incidentes de segurança de APIs Revisão e categorização dos dados por especialistas em segurança Pentesters foram convidados para enviar suas próprias listas Gerado o primeiro draft4 Metodologia e dados
  • 8. OWASP Top Ten API 2019 https://www.owasp.org/index.php/OWASP_API_Security_Project
  • 9. API1:2019 - Broken Object Level Authorization DATA LAYER ACCESS CONTROL • A API vulnerável não realiza o controle de acesso corretamente e permite o acesso não autorizado a dados confidenciais; • O vetor de ataque pode ser através de um ataque enumerado no ID de um objeto na chamada da API
  • 10. www.example.com.br W A F APIWEB GET /users/ID/info GET /users/1/info IDOR (Insecure Direct Object Reference) Expõe uma referência para um objeto interno Enumeration Attack API1:2019 - Broken Object Level Authorization ? Usuário X pode acessar esse dado? DATA LAYER ACCESS CONTROL Testes de autorização
  • 11. https://daleys.space/writeup/0day/2019/09/09/verizon-leak.html API1:2019 - Broken Object Level Authorization DATA LAYER ACCESS CONTROL
  • 12. API1:2019 - Broken Object Level Authorization DATA LAYER ACCESS CONTROL
  • 13. API2:2019 - Broken Authentication • O processo de autenticação da API vulnerável é mal implementado e permite que atacantes assumam identidades de outros usuários.
  • 14. www.example.com.br W A F API WEB POST /api/v1/auth API2:2019 - Broken Authentication JWT GET /api/v1/user/1/info 1 2 (credenciais) (JWT) JSON Credential Stuffing Wordlist ? Protege contra brute force? Protege contra credential stuffing? Gerenciamento correto do JWT? JWT possui expiração? Permite o uso de senhas fracas? Vetor de ataque! Manual Code Review for: - Authentication - Credential Storage - Crypto - Other things of that nature
  • 15. API2:2019 - Broken Authentication Temos todos os dados para realizar o brute force na assinatura!
  • 16. www.example.com.br W A F API WEB MOBILE IOT API2:2019 - Broken Authentication Injection XSS XXE Broken Authentication Log Injection Sensitive Data Exposure Insecure Deserialization Broken Access Control Broken Authentication
  • 17. API3:2019 – Excessive Data Exposure • A API vulnerável expõe mais dados do que o cliente legitimamente precisa, confiando no browser ou no aplicativo para fazer a filtragem.
  • 18. www.example.com.br W A F API WEB API3:2019 – Excessive Data Exposure GET /api/v1/user/1/info JSON JSON App filtra os dados sensíveis EXCESSIVE DATA EXPOSURE BY DESIGN
  • 19. API3:2019 – Excessive Data Exposure https://www.pentestpartners.com/security-blog/group-sex-app-leaks-locations-pictures-and-other-personal-details-identifies- users-in-white-house-and-supreme-court/
  • 20. API3:2019 – Excessive Data Exposure https://www.pentestpartners.com/security-blog/group-sex-app-leaks-locations-pictures-and-other-personal-details-identifies- users-in-white-house-and-supreme-court/
  • 21. API4:2019 – Lack of Resources & Rate Limiting • A API vulnerável não está protegida contra uma quantidade excessiva de chamadas ou tamanhos de payloads. • Os atacantes usam isso para DoS e ataques de força bruta.
  • 22. www.example.com.br W A F API WEB API4:2019 – Lack of Resources & Rate Limiting GET /api/v1/users?page=1&size=100000000 2 GET /api/v1/users?page=1&size=100 1 JSON X Pode causar Denial of Service Pode permitir Brute Force Attack Input Validation Estabeleça e respeite os limites O Docker facilita o limite de memória, CPU, número de reinicializações, descritores de arquivo e processos. API não protege contra quantidade excessiva de chamadas por tamanho de payloads
  • 23. API5:2019 - Broken Function Level Authorization • A API vulnerável não realiza o controle de acesso corretamente de endpoints e permite que usuários comuns acessem funções não autorizadas. URL ACCESS CONTROL
  • 24. www.example.com.br APIWEB ? Usuário X pode acessar essa URL? API5:2019 - Broken Function Level Authorization URL ACCESS CONTROL DELETE /api/v1/users/716 ADM GET /api/v1/users/717 DELETE /api/v1/users/717 W A F
  • 25. API6:2019 – Mass Assignment • A API vulnerável permite que os atacantes modifiquem propriedades de objetos internos que não deveriam.
  • 26. www.example.com.br W A F API WEB POST /api/v1/adduser API6:2019 – Mass Assignment userid=bobbytables password=hashedpass email=bobby@tables.com isAdmin=true Whitelist BlacklistDTO ? isAdmin pode ser atribuído via POST do cliente?
  • 27. API7:2019 – Security Misconfiguration • Security Misconfiguration geralmente é o resultado de: • Configurações padrão inseguras; • Configurações incompletas ou ad-hoc; • Armazenamento em nuvem aberta; • Cabeçalhos HTTP configurados incorretamente; • Métodos HTTP desnecessários; • Compartilhamento permissivo de recursos de origem cruzada (CORS); • Mensagens de erro detalhadas que contêm informações confidenciais.
  • 28. www.example.com.br W A F API WEB API7:2019 – Security Misconfiguration ? Configuração padrão em produção Patches não aplicados Mensagens de erro com stack trace Criptografia fraca Cross-Origin resource sharing permissivo Headers HTTP mal configurados
  • 29. API7:2019 – Security Misconfiguration https://www.wizcase.com/blog/medical-breaches-research/
  • 30. API7:2019 – Security Misconfiguration https://www.wizcase.com/blog/medical-breaches-research/
  • 31. API7:2019 – Security Misconfiguration https://www.wizcase.com/blog/medical-breaches-research/
  • 32. API7:2019 – Security Misconfiguration https://www.wizcase.com/blog/medical-breaches-research/
  • 33. API7:2019 – Security Misconfiguration https://www.wizcase.com/blog/medical-breaches-research/
  • 34. API7:2019 – Security Misconfiguration https://www.wizcase.com/blog/medical-breaches-research/
  • 35. API7:2019 – Security Misconfiguration https://www.wizcase.com/blog/medical-breaches-research/
  • 36. API8:2019 – Injection • Falhas de injeção ocorrem quando dados não confiáveis são enviados para um interpretador como parte de um comando ou consulta; • Os dados maliciosos do atacante podem induzir o interpretador a executar comandos não intencionais ou acessar dados sem a devida autorização.
  • 37. www.example.com.br W A F API WEB POST /api/v1/auth API8:2019 – Injection usr: teste pwd: teste123 select name from users where username = `teste` and password = `teste123` POST /api/v1/auth usr: ` or 1=1 or ` pwd: 123456 select name from users where username = `` or 1=1 or `` and password = `123456` Bloqueio EX: SQL INJECTION
  • 39. API9:2019 – Improper Assets Management • O atacante encontra versões que não são de produção da API, como teste, beta ou versões anteriores - que não são tão bem protegidas e que podem ser utilizadas para iniciar um ataque.
  • 40. API9:2019 – Improper Assets Management www.example.com.br W A F API WEB POST /api/v1/auth POST /api/v1/auth beta-api.example.com.br Inventário Plano descontinuidade/versionamento INVENTÁRIO Versões de teste, beta, descontinuadas que permanecem em produção
  • 41. API10:2019 – Insufficient Logging & Monitoring • A falta de registro, monitoramento e alerta adequados deixa os ataques passarem despercebidos
  • 42. www.example.com.br W A F API API10:2019 – Insufficient Logging & Monitoring ATAQUE 1 ATAQUE 2 ATAQUE 3 ATAQUE 4 ATAQUE N Tempo para detectar um vazamento é superior a 200 dias! Normalmente é detectado por terceiros
  • 43.
  • 44. São os pequenos atos que são negligenciados e causam os maiores problemas
  • 45.
  • 46. Dado vazado não “desvaza”
  • 47.
  • 48. Grande parte dos problemas poderiam ter sido evitados
  • 49. “Se você não tem tempo de fazer certo da primeira vez, como você vai ter tempo pra fazer e depois consertar?”
  • 50. “Na OWASP, estamos tentando tornar o mundo um lugar onde software inseguro seja a anomalia, não a regra” Eoin Keary, OWASP Global Board
  • 51. Obrigado! Para mais informações, acesse: www.owasp.org Fernando Galves São Paulo Chapter Leader fernando.galves@owasp.org