Análise de
vulnerabilidade
CROWSEC ₢
Para Pentest e Bug Bounty
20:00h
20/02
F E V E R E I R O 2 0 2 1
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
ANÁLISE DE
VULNERABILIDADE
Open
Web
Appli
cation
Security
P
roject
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
OWASP
TOP 10
WEB SECURITY TESTING
GUIDE
WSTG (Planilha de testes e guia)
AUTOMAÇÕES
Automatizar os testes com ferramentas.
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
OWASP
C
R
O
W
S
E
C
|
2
0
2
1
Web Security
Testing Guide (WSTG)
Open Web Application
Security Project
O OWASP, ou Projeto Aberto de Segurança em Aplicações Web,
é uma comunidade online que cria e disponibiliza de forma
gratuita artigos, metodologias, documentação, ferramentas e
tecnologias no campo da segurança de aplicações web.
- Wikipédia
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
Falhas mais
comuns em
aplicações
WEB
1 ) I n j e c t i o n
2 ) B r o k e n A u t h e n t i c a t i o n
3 ) S e n s i t i v e D a t a E x p o s u r e
4 ) X M L E x t e r n a l E n t i t i e s ( X X E )
5 ) B r o k e n A c c e s s C o n t r o l
6 ) S e c u r i t y M i s c o n f i g u r a t i o n
7 ) C r o s s - S i t e S c r i p t i n g ( X S S )
8 ) I n s e c u r e D e s e r i a l i z a t i o n
9 ) U s i n g C o m p o n e n t s w i t h K n o w n
V u l n e r a b i l i t i e s
1 0 ) I n s u f f i c i e n t L o g g i n g & M o n i t o r i n g .
TOP 10
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
INJECTION
CROWSEC
|
20
21
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
INJECTION
Uma aplicação fica vulnerável a injeção quando:
Os dados fornecidos pelo usuário não são validados, filtrados
Consultas dinâmicas ou chamadas não parametrizadas são usadas
diretamente interpretador (SQL, Command, LDAP).
Utilização de dados enviados pelo usuário diretamente ou
concatenados.
ou sanitizados pelo aplicativo.
https://owasp.org/www-project-top-ten/2017/A1_2017-Injection
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
INJECTION
Exemplo:
Uma aplicação use um valor inseguro enviado pelo usuário
diretamente no código SQL e isso deixa a aplicação vulnerável.
Um atacante pode manipular o parâmetro 'id' no navegador e enviar
para o backend, exemplo: -1 or 1=1# e isso mudará o
comportamento do site.
https://owasp.org/www-project-top-ten/2017/A1_2017-Injection
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
BROKEN
AUTHENTICATION
CROWSEC
|
20
21
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
BROKEN AUTHENTICATION
A confirmação da identidade do usuário, autenticação e gerenciamento de sessão
são essenciais para proteção contra ataques relacionados à autenticação.
Uma aplicação pode estar vulneravel, se:
Permite ataques automatizados, como preenchimento de
credenciais, onde o invasor tem uma lista de nomes de usuário
e senhas válidos.
Permite força bruta ou outros ataques automatizados.
Permite senhas padrão, fracas ou conhecidas, como “qwerty” ou
“admin/admin“.
Usa recuperação de credencial fraca ou ineficaz e processos de
"esqueci a senha".
Usa senhas em clear/text, criptografadas com hash fraco.
Não invalida adequadamente os IDs de sessão.
https://owasp.org/www-project-top-ten/2017/A2_2017-Broken_Authentication
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
BROKEN AUTHENTICATION
Exemplo:
https://owasp.org/www-project-top-ten/2017/A2_2017-Broken_Authentication
Credential Stuff, usando uma lista de senha conhecidas para
fazer brute force é bem comum, e se a aplicação não possui um
mecanimos de proteção contra automações (account
lockout/rate limit), fica ainda mais simples.
Weak credencial (admin/admin, tomcat/tomcat)
Controle de timeout de sessão inválido (utilização de um
computador publico).
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
SENSITIVE DATA
EXPOSURE
CROWSEC
|
20
21
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
SENSITIVE DATA EXPOSURE
A primeira coisa é determinar as necessidades de proteção dos dados em trânsito
e em repouso. Por exemplo, senhas, números de cartão de crédito, registros de
saúde, informações pessoais e segredos comerciais exigem proteção extra,
especialmente se esses dados se enquadrarem nas leis de privacidade (LGPD,
GDPR), uma aplicação está vulneravel, quando:
Transmite dados em clear/text ou utiliza protocolos sem criptografia como: HTTP, SMTP, FTP,
Weak Cryptographic (criptografia utilizada é fraca ou antiga)
A solicitação do usuário utilizando algum cliente (browser, aplicativo, cliente de email) não
verifica se o certificado do servidor recebido é válido.
https://owasp.org/www-project-top-ten/2017/A3_2017-Sensitive_Data_Exposure
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
SENSITIVE DATA EXPOSURE
Exemplo:
Um aplicativo criptografa números de cartão de crédito em um banco de dados usando
criptografia automática de banco de dados. No entanto, esses dados são
descriptografados automaticamente quando recuperados, permitindo que uma falha de
SQL Injection recupere números de cartão de crédito em texto não criptografado.
O banco de dados usa hashes sem salt para armazenar senhas. Com isso um atacante
tendo acesso ao banco de dados poderá ter acesso as senhas senha com "md5" ou
clear/txt, Hashes gerados por funções de hash simples podem ser quebrados por GPUs.
https://owasp.org/www-project-top-ten/2017/A3_2017-Sensitive_Data_Exposure
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
XML EXTERNAL
ENTITIES (XXE)
CROWSEC
|
20
21
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
XML EXTERNAL ENTITIES (XXE)
Aplicativos e, em particular, serviços da web baseados em
XML ou integrações (SOAP, SAML) podem ser vulneráveis a
ataques se:
O aplicativo aceita XML diretamente ou uploads de XML, especialmente de fontes não
confiáveis, ou insere dados não confiáveis em documentos XML, que são então analisados
por um processador XML.
Qualquer um dos processadores XML no aplicativo ou serviços da web baseados em SOAP
possuem definições de tipo de documento (DTDs) habilitadas.
Se o aplicativo usa SAML para processamento de identidade dentro da segurança federada
ou para fins de logon único (SSO). O SAML usa XML para asserções de identidade e pode
ser vulnerável.
Se o aplicativo usa SOAP anterior à versão 1.2, é provável que seja suscetível a ataques XXE
se entidades XML estiverem sendo passadas para a estrutura SOAP.
https://owasp.org/www-project-top-ten/2017/A4_2017-XML_External_Entities_(XXE)
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
XML EXTERNAL ENTITIES (XXE)
Exemplo:
Um atacante pode manipular um XML e criar uma entidade externa para ler arquivos
dentro do servidor, como:
https://owasp.org/www-project-top-ten/2017/A4_2017-XML_External_Entities_(XXE)
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
BROKEN ACCESS
CONTROL
CROWSEC
|
20
21
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
BROKEN ACCESS CONTROL
O controle de acesso impõe uma ACL de modo que os usuários
não possam agir fora das suas permissões. As falhas
normalmente levam à acesso não autorizada de informações,
modificação ou destruição de dados.
vulnerabilidades comuns de BAC incluem:
Bypass de ACL modificando a URL, o estado interno do aplicativo ou a página HTML ou
simplesmente usando uma ferramenta de ataque de API personalizada (Postman e etc).
Permitir que a chave primária (PK) seja alterada para o registro de usuário de outra pessoa,
permitindo a visualização ou edição da conta de outra pessoa.
Elevação de privilégio. Atuar como um usuário sem estar logado, ou agir como um
administrador quando logado como um usuário.
Manipulação de metadados, como reproduzir ou adulterar um token de controle de acesso
JSON Web Token (JWT) ou um cookie ou campo oculto manipulado para elevar privilégios
ou abusar da invalidação JWT (None Algorithm Attack)
https://owasp.org/www-project-top-ten/2017/A5_2017-Broken_Access_Control
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
BROKEN ACCESS CONTROL
Exemplo:
Um atacante pode simplesmente força a navegação para URLs de destino. Onde direitos de
administrador são necessários para acessar a página de administrador, por exemplo:
http://site.com.br/user/me (informações do usuário atual)
http://site.com.br/users (lista de todos os usuários)
Se um usuário não autenticado pode acessar qualquer página, é uma falha.
Se um usuário não administrador pode acessar a página de administração, isso é uma falha.
https://owasp.org/www-project-top-ten/2017/A5_2017-Broken_Access_Control
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
BROKEN ACCESS CONTROL
Exemplo:
Insecure direct object references (IDOR)
http://site.com.br/post/1 (publicação do meu usuário)
http://site.com.br/post/2 (publicação de outro usuário)
Ao conseguir acesso a publicações ou quaisquer informações de outros usuário a aplicação
possui uma falha de IDOR.
https://owasp.org/www-project-top-ten/2017/A5_2017-Broken_Access_Control
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
SECURITY
MISCONFIGURATION
CROWSEC
|
20
21
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
SECURITY MISCONFIGURATION
O aplicativo é vulnerável se:
Falta de proteção de segurança apropriada em qualquer parte da stack de aplicativos ou
permissões configuradas incorretamente em serviços em nuvem (s3, elastic beanstalk,
azure blobs)
Recursos desnecessários são ativados ou instalados (por exemplo, portas, serviços,
páginas, contas ou privilégios desnecessários).
Contas padrão e suas senhas ainda ativadas e inalteradas (tipo tomcat/tomcat)
O tratamento de erros revela dados da stack ou outras mensagens de erro excessivamente
informativas aos usuários.
https://owasp.org/www-project-top-ten/2017/A6_2017-Security_Misconfiguration
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
SECURITY MISCONFIGURATION
Exemplo:
A configuração do servidor permite mensagens de erro detalhadas, por exemplo
rastreamentos da stack. Isso potencialmente expõe informações confidenciais ou
falhas subjacentes, como versões de componentes que são conhecidas por serem
vulneráveis.
Um exemplo clássico são frameworks como Laravel, Django e etc, quando estão com o
modo debug habilitado exibem várias informações desde chaves de criptografia à dados
de acesso a bando de dados e outros.
https://owasp.org/www-project-top-ten/2017/A6_2017-Security_Misconfiguration
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
CROSS-SITE
SCRIPTING (XSS)
CROWSEC
|
20
21
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
CROSS-SITE SCRIPTING (XSS)
Existem três formas de XSS, geralmente direcionadas aos
navegadores dos usuários:
XSS Reflected: O aplicativo ou API inclui entrada de usuário não validada e sem escape como parte da saída
HTML. Um ataque bem-sucedido pode permitir que o invasor execute HTML e JavaScript arbitrários no
navegador da vítima.
XSS Stored: O aplicativo ou API armazena entradas de usuários não sanitizadas que são visualizadas
posteriormente por outro usuário ou administrador. O XSS stored geralmente é considerado um risco alto
ou crítico.
DOM XSS: estruturas JavaScript, aplicativos PWA e APIs que incluem dinamicamente dados enviados por
invasores em uma página, são vulneráveis a DOM XSS.
https://owasp.org/www-project-top-ten/2017/A7_2017-Cross-Site_Scripting_(XSS)
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
CROSS-SITE SCRIPTING (XSS)
Exemplo:
Um atacante pode manipular o parâmetro nome e injetar códigos HTML e Javascript.
O atacante pode criar uma URL maliciosa para redirecionar usuários para sites de
phishing, malwares ou até roubar dados do usuário como cookies.
https://owasp.org/www-project-top-ten/2017/A7_2017-Cross-Site_Scripting_(XSS)
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
INSECURE
DESERIALIZATION
CROWSEC
|
20
21
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
INSECURE DESERIALIZATION
Aplicativos e APIs ficarão vulneráveis se desserializarem
objetos adulterados por um atacante. Isso pode resultar em
dois tipos principais de ataques:
Ataques relacionados a objetos e estruturas de dados em que o atacante modifica a lógica do aplicativo ou
atinge a execução remota de código se houver classes disponíveis para o aplicativo que podem alterar o
comportamento durante ou após a desserialização.
Ataques típicos de violação de dados, como ataques relacionados ao controle de acesso, em que as
estruturas de dados existentes são usadas, mas o conteúdo é alterado. (Algo como um BAC porem usando
Desserialização insegura)
https://owasp.org/www-project-top-ten/2017/A8_2017-Insecure_Deserialization
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
INSECURE DESERIALIZATION
Exemplo:
Um fórum PHP usa serialização de objetos PHP para salvar um "super" cookie,
contendo o ID do usuário, função, hash de senha e outros:
Um invasor pode alterar o objeto serializado para conceder a si mesmo privilégios de
administrador:
https://owasp.org/www-project-top-ten/2017/A8_2017-Insecure_Deserialization
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
INSECURE DESERIALIZATION
Exemplo:
Um fórum PHP usa serialização de objetos PHP para salvar um "super" cookie,
contendo o ID do usuário, função, hash de senha e outros:
Um invasor pode alterar o objeto serializado para conceder a si mesmo privilégios de
administrador:
https://owasp.org/www-project-top-ten/2017/A8_2017-Insecure_Deserialization
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
USING COMPONENTS
WITH KNOWN
VULNERABILITIES
CROWSEC
|
20
21
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
USING COMPONENTS WITH KNOWN VULNERABILITIES
O aplicativo é vulnerável se:
Se você não souber as versões de todos os componentes que usa (tanto do lado do cliente
quanto do lado do servidor). Isso inclui componentes que você usa diretamente, bem como
dependências aninhadas.
Se o software for vulnerável, sem suporte ou desatualizado. Isso inclui o sistema
operacional, servidor web/aplicativo, sistema de gerenciamento de banco de dados (DBMS),
aplicativos, APIs e todos os componentes, ambientes de tempo de execução e bibliotecas.
Se os desenvolvedores de software não testarem a compatibilidade de bibliotecas
atualizadas, atualizadas ou com patches.
https://owasp.org/www-project-top-ten/2017/A9_2017-Using_Components_with_Known_Vulnerabilities
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
INSUFFICIENT
LOGGING &
MONITORING
CROWSEC
|
20
21
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
INSUFFICIENT LOGGING & MONITORING
O aplicativo é vulnerável se:
Eventos auditáveis, como logins, logins com falha e transações " high-value" não são
registrados.
Avisos e erros geram mensagens e log inadequadas ou pouco claras.
Logs de aplicativos e APIs não são monitorados para atividades suspeitas.
Os logs são armazenados apenas localmente.
O teste de penetração e varreduras por ferramentas DAST (como OWASP ZAP) não
acionam alertas.
O aplicativo não é capaz de detectar, escalar ou alertar para ataques ativos em tempo real
ou quase real.
https://owasp.org/www-project-top-ten/2017/A10_2017-Insufficient_Logging%2526Monitoring
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
Falhas mais
comuns em
aplicações
WEB
1 ) I n j e c t i o n
2 ) B r o k e n A u t h e n t i c a t i o n
3 ) S e n s i t i v e D a t a E x p o s u r e
4 ) X M L E x t e r n a l E n t i t i e s ( X X E )
5 ) B r o k e n A c c e s s C o n t r o l
6 ) S e c u r i t y M i s c o n f i g u r a t i o n
7 ) C r o s s - S i t e S c r i p t i n g ( X S S )
8 ) I n s e c u r e D e s e r i a l i z a t i o n
9 ) U s i n g C o m p o n e n t s w i t h K n o w n
V u l n e r a b i l i t i e s
1 0 ) I n s u f f i c i e n t L o g g i n g & M o n i t o r i n g .
TOP 10
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
WEB
SECURITY
TESTING
GUIDE
https://github.com/OWASP/wstg
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
OWASP
ZED
ATTACK
PROXY
zaproxy.org
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com
CROWSEC
Fim
ANÁLISE DE VULNERABILIDADE
//0xff
@carlos.crowsec t.me/crowsec_public youtube.com/carlosvieiracrowsec
Licensed
to
Marcus
Santos
-
marcus.vini.gyn@gmail.com

Analise de vulnerabilidade como e feita.

  • 1.
    Análise de vulnerabilidade CROWSEC ₢ ParaPentest e Bug Bounty 20:00h 20/02 F E V E R E I R O 2 0 2 1 Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 2.
  • 3.
    OWASP TOP 10 WEB SECURITYTESTING GUIDE WSTG (Planilha de testes e guia) AUTOMAÇÕES Automatizar os testes com ferramentas. Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 4.
    OWASP C R O W S E C | 2 0 2 1 Web Security Testing Guide(WSTG) Open Web Application Security Project O OWASP, ou Projeto Aberto de Segurança em Aplicações Web, é uma comunidade online que cria e disponibiliza de forma gratuita artigos, metodologias, documentação, ferramentas e tecnologias no campo da segurança de aplicações web. - Wikipédia Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 5.
    Falhas mais comuns em aplicações WEB 1) I n j e c t i o n 2 ) B r o k e n A u t h e n t i c a t i o n 3 ) S e n s i t i v e D a t a E x p o s u r e 4 ) X M L E x t e r n a l E n t i t i e s ( X X E ) 5 ) B r o k e n A c c e s s C o n t r o l 6 ) S e c u r i t y M i s c o n f i g u r a t i o n 7 ) C r o s s - S i t e S c r i p t i n g ( X S S ) 8 ) I n s e c u r e D e s e r i a l i z a t i o n 9 ) U s i n g C o m p o n e n t s w i t h K n o w n V u l n e r a b i l i t i e s 1 0 ) I n s u f f i c i e n t L o g g i n g & M o n i t o r i n g . TOP 10 Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 6.
  • 7.
    INJECTION Uma aplicação ficavulnerável a injeção quando: Os dados fornecidos pelo usuário não são validados, filtrados Consultas dinâmicas ou chamadas não parametrizadas são usadas diretamente interpretador (SQL, Command, LDAP). Utilização de dados enviados pelo usuário diretamente ou concatenados. ou sanitizados pelo aplicativo. https://owasp.org/www-project-top-ten/2017/A1_2017-Injection Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 8.
    INJECTION Exemplo: Uma aplicação useum valor inseguro enviado pelo usuário diretamente no código SQL e isso deixa a aplicação vulnerável. Um atacante pode manipular o parâmetro 'id' no navegador e enviar para o backend, exemplo: -1 or 1=1# e isso mudará o comportamento do site. https://owasp.org/www-project-top-ten/2017/A1_2017-Injection Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 9.
  • 10.
    BROKEN AUTHENTICATION A confirmaçãoda identidade do usuário, autenticação e gerenciamento de sessão são essenciais para proteção contra ataques relacionados à autenticação. Uma aplicação pode estar vulneravel, se: Permite ataques automatizados, como preenchimento de credenciais, onde o invasor tem uma lista de nomes de usuário e senhas válidos. Permite força bruta ou outros ataques automatizados. Permite senhas padrão, fracas ou conhecidas, como “qwerty” ou “admin/admin“. Usa recuperação de credencial fraca ou ineficaz e processos de "esqueci a senha". Usa senhas em clear/text, criptografadas com hash fraco. Não invalida adequadamente os IDs de sessão. https://owasp.org/www-project-top-ten/2017/A2_2017-Broken_Authentication Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 11.
    BROKEN AUTHENTICATION Exemplo: https://owasp.org/www-project-top-ten/2017/A2_2017-Broken_Authentication Credential Stuff,usando uma lista de senha conhecidas para fazer brute force é bem comum, e se a aplicação não possui um mecanimos de proteção contra automações (account lockout/rate limit), fica ainda mais simples. Weak credencial (admin/admin, tomcat/tomcat) Controle de timeout de sessão inválido (utilização de um computador publico). Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 12.
  • 13.
    SENSITIVE DATA EXPOSURE Aprimeira coisa é determinar as necessidades de proteção dos dados em trânsito e em repouso. Por exemplo, senhas, números de cartão de crédito, registros de saúde, informações pessoais e segredos comerciais exigem proteção extra, especialmente se esses dados se enquadrarem nas leis de privacidade (LGPD, GDPR), uma aplicação está vulneravel, quando: Transmite dados em clear/text ou utiliza protocolos sem criptografia como: HTTP, SMTP, FTP, Weak Cryptographic (criptografia utilizada é fraca ou antiga) A solicitação do usuário utilizando algum cliente (browser, aplicativo, cliente de email) não verifica se o certificado do servidor recebido é válido. https://owasp.org/www-project-top-ten/2017/A3_2017-Sensitive_Data_Exposure Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 14.
    SENSITIVE DATA EXPOSURE Exemplo: Umaplicativo criptografa números de cartão de crédito em um banco de dados usando criptografia automática de banco de dados. No entanto, esses dados são descriptografados automaticamente quando recuperados, permitindo que uma falha de SQL Injection recupere números de cartão de crédito em texto não criptografado. O banco de dados usa hashes sem salt para armazenar senhas. Com isso um atacante tendo acesso ao banco de dados poderá ter acesso as senhas senha com "md5" ou clear/txt, Hashes gerados por funções de hash simples podem ser quebrados por GPUs. https://owasp.org/www-project-top-ten/2017/A3_2017-Sensitive_Data_Exposure Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 15.
  • 16.
    XML EXTERNAL ENTITIES(XXE) Aplicativos e, em particular, serviços da web baseados em XML ou integrações (SOAP, SAML) podem ser vulneráveis a ataques se: O aplicativo aceita XML diretamente ou uploads de XML, especialmente de fontes não confiáveis, ou insere dados não confiáveis em documentos XML, que são então analisados por um processador XML. Qualquer um dos processadores XML no aplicativo ou serviços da web baseados em SOAP possuem definições de tipo de documento (DTDs) habilitadas. Se o aplicativo usa SAML para processamento de identidade dentro da segurança federada ou para fins de logon único (SSO). O SAML usa XML para asserções de identidade e pode ser vulnerável. Se o aplicativo usa SOAP anterior à versão 1.2, é provável que seja suscetível a ataques XXE se entidades XML estiverem sendo passadas para a estrutura SOAP. https://owasp.org/www-project-top-ten/2017/A4_2017-XML_External_Entities_(XXE) Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 17.
    XML EXTERNAL ENTITIES(XXE) Exemplo: Um atacante pode manipular um XML e criar uma entidade externa para ler arquivos dentro do servidor, como: https://owasp.org/www-project-top-ten/2017/A4_2017-XML_External_Entities_(XXE) Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 18.
  • 19.
    BROKEN ACCESS CONTROL Ocontrole de acesso impõe uma ACL de modo que os usuários não possam agir fora das suas permissões. As falhas normalmente levam à acesso não autorizada de informações, modificação ou destruição de dados. vulnerabilidades comuns de BAC incluem: Bypass de ACL modificando a URL, o estado interno do aplicativo ou a página HTML ou simplesmente usando uma ferramenta de ataque de API personalizada (Postman e etc). Permitir que a chave primária (PK) seja alterada para o registro de usuário de outra pessoa, permitindo a visualização ou edição da conta de outra pessoa. Elevação de privilégio. Atuar como um usuário sem estar logado, ou agir como um administrador quando logado como um usuário. Manipulação de metadados, como reproduzir ou adulterar um token de controle de acesso JSON Web Token (JWT) ou um cookie ou campo oculto manipulado para elevar privilégios ou abusar da invalidação JWT (None Algorithm Attack) https://owasp.org/www-project-top-ten/2017/A5_2017-Broken_Access_Control Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 20.
    BROKEN ACCESS CONTROL Exemplo: Umatacante pode simplesmente força a navegação para URLs de destino. Onde direitos de administrador são necessários para acessar a página de administrador, por exemplo: http://site.com.br/user/me (informações do usuário atual) http://site.com.br/users (lista de todos os usuários) Se um usuário não autenticado pode acessar qualquer página, é uma falha. Se um usuário não administrador pode acessar a página de administração, isso é uma falha. https://owasp.org/www-project-top-ten/2017/A5_2017-Broken_Access_Control Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 21.
    BROKEN ACCESS CONTROL Exemplo: Insecuredirect object references (IDOR) http://site.com.br/post/1 (publicação do meu usuário) http://site.com.br/post/2 (publicação de outro usuário) Ao conseguir acesso a publicações ou quaisquer informações de outros usuário a aplicação possui uma falha de IDOR. https://owasp.org/www-project-top-ten/2017/A5_2017-Broken_Access_Control Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 22.
  • 23.
    SECURITY MISCONFIGURATION O aplicativoé vulnerável se: Falta de proteção de segurança apropriada em qualquer parte da stack de aplicativos ou permissões configuradas incorretamente em serviços em nuvem (s3, elastic beanstalk, azure blobs) Recursos desnecessários são ativados ou instalados (por exemplo, portas, serviços, páginas, contas ou privilégios desnecessários). Contas padrão e suas senhas ainda ativadas e inalteradas (tipo tomcat/tomcat) O tratamento de erros revela dados da stack ou outras mensagens de erro excessivamente informativas aos usuários. https://owasp.org/www-project-top-ten/2017/A6_2017-Security_Misconfiguration Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 24.
    SECURITY MISCONFIGURATION Exemplo: A configuraçãodo servidor permite mensagens de erro detalhadas, por exemplo rastreamentos da stack. Isso potencialmente expõe informações confidenciais ou falhas subjacentes, como versões de componentes que são conhecidas por serem vulneráveis. Um exemplo clássico são frameworks como Laravel, Django e etc, quando estão com o modo debug habilitado exibem várias informações desde chaves de criptografia à dados de acesso a bando de dados e outros. https://owasp.org/www-project-top-ten/2017/A6_2017-Security_Misconfiguration Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 25.
  • 26.
    CROSS-SITE SCRIPTING (XSS) Existemtrês formas de XSS, geralmente direcionadas aos navegadores dos usuários: XSS Reflected: O aplicativo ou API inclui entrada de usuário não validada e sem escape como parte da saída HTML. Um ataque bem-sucedido pode permitir que o invasor execute HTML e JavaScript arbitrários no navegador da vítima. XSS Stored: O aplicativo ou API armazena entradas de usuários não sanitizadas que são visualizadas posteriormente por outro usuário ou administrador. O XSS stored geralmente é considerado um risco alto ou crítico. DOM XSS: estruturas JavaScript, aplicativos PWA e APIs que incluem dinamicamente dados enviados por invasores em uma página, são vulneráveis a DOM XSS. https://owasp.org/www-project-top-ten/2017/A7_2017-Cross-Site_Scripting_(XSS) Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 27.
    CROSS-SITE SCRIPTING (XSS) Exemplo: Umatacante pode manipular o parâmetro nome e injetar códigos HTML e Javascript. O atacante pode criar uma URL maliciosa para redirecionar usuários para sites de phishing, malwares ou até roubar dados do usuário como cookies. https://owasp.org/www-project-top-ten/2017/A7_2017-Cross-Site_Scripting_(XSS) Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 28.
  • 29.
    INSECURE DESERIALIZATION Aplicativos eAPIs ficarão vulneráveis se desserializarem objetos adulterados por um atacante. Isso pode resultar em dois tipos principais de ataques: Ataques relacionados a objetos e estruturas de dados em que o atacante modifica a lógica do aplicativo ou atinge a execução remota de código se houver classes disponíveis para o aplicativo que podem alterar o comportamento durante ou após a desserialização. Ataques típicos de violação de dados, como ataques relacionados ao controle de acesso, em que as estruturas de dados existentes são usadas, mas o conteúdo é alterado. (Algo como um BAC porem usando Desserialização insegura) https://owasp.org/www-project-top-ten/2017/A8_2017-Insecure_Deserialization Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 30.
    INSECURE DESERIALIZATION Exemplo: Um fórumPHP usa serialização de objetos PHP para salvar um "super" cookie, contendo o ID do usuário, função, hash de senha e outros: Um invasor pode alterar o objeto serializado para conceder a si mesmo privilégios de administrador: https://owasp.org/www-project-top-ten/2017/A8_2017-Insecure_Deserialization Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 31.
    INSECURE DESERIALIZATION Exemplo: Um fórumPHP usa serialização de objetos PHP para salvar um "super" cookie, contendo o ID do usuário, função, hash de senha e outros: Um invasor pode alterar o objeto serializado para conceder a si mesmo privilégios de administrador: https://owasp.org/www-project-top-ten/2017/A8_2017-Insecure_Deserialization Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 32.
  • 33.
    USING COMPONENTS WITHKNOWN VULNERABILITIES O aplicativo é vulnerável se: Se você não souber as versões de todos os componentes que usa (tanto do lado do cliente quanto do lado do servidor). Isso inclui componentes que você usa diretamente, bem como dependências aninhadas. Se o software for vulnerável, sem suporte ou desatualizado. Isso inclui o sistema operacional, servidor web/aplicativo, sistema de gerenciamento de banco de dados (DBMS), aplicativos, APIs e todos os componentes, ambientes de tempo de execução e bibliotecas. Se os desenvolvedores de software não testarem a compatibilidade de bibliotecas atualizadas, atualizadas ou com patches. https://owasp.org/www-project-top-ten/2017/A9_2017-Using_Components_with_Known_Vulnerabilities Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 34.
  • 35.
    INSUFFICIENT LOGGING &MONITORING O aplicativo é vulnerável se: Eventos auditáveis, como logins, logins com falha e transações " high-value" não são registrados. Avisos e erros geram mensagens e log inadequadas ou pouco claras. Logs de aplicativos e APIs não são monitorados para atividades suspeitas. Os logs são armazenados apenas localmente. O teste de penetração e varreduras por ferramentas DAST (como OWASP ZAP) não acionam alertas. O aplicativo não é capaz de detectar, escalar ou alertar para ataques ativos em tempo real ou quase real. https://owasp.org/www-project-top-ten/2017/A10_2017-Insufficient_Logging%2526Monitoring Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 36.
    Falhas mais comuns em aplicações WEB 1) I n j e c t i o n 2 ) B r o k e n A u t h e n t i c a t i o n 3 ) S e n s i t i v e D a t a E x p o s u r e 4 ) X M L E x t e r n a l E n t i t i e s ( X X E ) 5 ) B r o k e n A c c e s s C o n t r o l 6 ) S e c u r i t y M i s c o n f i g u r a t i o n 7 ) C r o s s - S i t e S c r i p t i n g ( X S S ) 8 ) I n s e c u r e D e s e r i a l i z a t i o n 9 ) U s i n g C o m p o n e n t s w i t h K n o w n V u l n e r a b i l i t i e s 1 0 ) I n s u f f i c i e n t L o g g i n g & M o n i t o r i n g . TOP 10 Licensed to Marcus Santos - marcus.vini.gyn@gmail.com
  • 37.
  • 38.
  • 39.
    CROWSEC Fim ANÁLISE DE VULNERABILIDADE //0xff @carlos.crowsect.me/crowsec_public youtube.com/carlosvieiracrowsec Licensed to Marcus Santos - marcus.vini.gyn@gmail.com