Shared posts

18 Sep 19:29

Vergonhas que eu passava

by Will Tirando

18 Sep 19:27

Photo



15 Sep 19:43

Nothing but love for Garfield Comics of course, I grew up...




Nothing but love for Garfield Comics of course, I grew up reading them :)

Btw, the Slack Wyrm Store sale has less than 24 hours left! Hit the link or regret it for All Eternity! http://shrsl.com/ja1d

13 Sep 23:18

by Berkeley Mews

13 Sep 20:18

by Berkeley Mews

13 Sep 20:17

Double Trouble

by boulet
13 Sep 19:16

Mentirinhas #1184

by Fábio Coala

Quase bateu meu recorde.

O post Mentirinhas #1184 apareceu primeiro em Mentirinhas.

13 Sep 19:14

Reddit comments

by Cale

Oh the joys of sharing comics to reddit,
It's really quite a treat.
But careful now don't read the comments,
They'll knock you off your feet.
I can't help myself sometimes,
And I click in to see the thread.
Holy crap my fucking eyes,
These people will see me dead!


Share this comic

COMIC BONUS PANEL

Looking for the poem? Hover over the comic. On mobile, tap and hold the comic.
Down my forehead the bands of sweat stream, it's like I'm in hot hell. Reddit commenters are OK, heh, th-they just wish me well

The post Reddit comments appeared first on Things in Squares.

13 Sep 19:13

Auréolos #127

by Fábio Coala

As vagas na política estão todas preenchidas.

O post Auréolos #127 apareceu primeiro em Mentirinhas.

13 Sep 19:12

Photo



07 Sep 18:35

Read Brandon Sanderson’s Oathbringer, Stormlight Archive Book 3, for Free on Tor.com!

by Tor.com
Barciella

Eles vão lançar vários capitulos de graça toda terça até o lançamento do livro em novembro. Que daora.

Oathbringer serialization Tor.com

Oathbringer, the eagerly-awaited third installment of Brandon Sanderson’s epic Stormlight Archive fantasy series, arrives on bookshelves on November 14, 2017. Fans of the series can start reading it here on Tor.com for free, starting on Tuesday, August 22!

Tor.com will be hosting a weekly serialization of Oathbringer, leading all the way up to the release day. Every Tuesday, readers will be able to read the next three chapters of Book 3 of the Stormlight Archive, starting with the Prologue: “To Weep” on August 22, then continuing on August 29 with Chapters 1 through 3, and onward up to Chapter 32!

Yes, that’s a lot of the book.

But it’s not nearly all of the book.

Every installment of the serialization will be collected here in the Oathbringer index.

Here’s a handy refresher on the events that occurred in the first two Stormlight Archive novels, as well.

Happy reading! We’ll see you back here bright and early on August 22!

05 Sep 20:48

(via striderepiphany)

05 Sep 20:45

Illusion

by Reza

05 Sep 20:44

Maybe HBO can finish Ferragus’s quest for him ;P




Maybe HBO can finish Ferragus’s quest for him ;P

05 Sep 20:41

Anésia # 359

by Will Tirando

Já garantiu o livro da Anésia lá no Catarse?  A campanha está indo bem! Dá uma conferida lá. Assista ao vídeo, conheça as recompensas e se gostar, garanta o seu livro 🙂 Dá um pulo lá!

01 Sep 18:29

Six Feet Above

by boulet
01 Sep 18:11

Fruto proibido

by Will Tirando

29 Aug 18:48

“Solar Flair” by Extra Fabulous Comics



“Solar Flair” by Extra Fabulous Comics

28 Aug 19:23

acomik: If it looks like a duck and swims like a duck… it might...

by spenmore


acomik:

If it looks like a duck and swims like a duck… it might just be a rabbit trying to impress a duck.

Twitter / Instagram

21 Aug 21:13

safelyendangered: beautiful webtoon / website / facebook /...

21 Aug 21:12

thejakelikesonions:So romantic



thejakelikesonions:

So romantic

21 Aug 21:07

It’s true. (by Big Fat Comics)

21 Aug 20:58

Tudo isso será delas

by Will Tirando

21 Aug 20:57

Even the bravest armies shudder when they see General Otho...




Even the bravest armies shudder when they see General Otho appear on the horizon, atop his mighty she-mammoth.

16 Aug 17:36

by Goat to Self

15 Aug 20:51

Roubando contratos bancários de uma fintech brasileira

Introdução

Já falei aqui nesse blog de algumas vunerabilidades de segurança encontrada em aplicações web, entre elas: Como eu usei o cartão de crédito do CEO do Trampos.co que explorava uma falha de níveis de permissões, e outra brecha no maior ecommerce de petshop do Brasil que permitia que usuários roubassem toda a base de usuários do site.

Dessa vez eu não vou revelar qual é a startup pois a criticidade da falha não me permite fazer isso, porém vou te contar como explorei mais uma brecha e consegui acesso a Contratos bancários emitidos por um banco brasileiro com VÁRIOS dados pessoais de boa parcela dos usuários dessa plataforma.

Essa falha não explora nenhum endpoint da aplicação(não passa nem pelos servidores da startup), também não explora níveis de acesso da aplicação ou XSS ou CSRF via browser, ou algo do tipo, essa brecha de segurança creio que se encaixa mais na categoria “Exposição de dados sensíveis”, que faz parte do Top 10 de principais falhas de seguranças de aplicações web segundo a OWASP.

Abaixo um preview de um dos contratos bancarios:

Contrato Bancário Emitido por um banco brasileiro

Essa falha está diretamente ligada a upload de documentos(nesse caso PDF gerado com dados do usuário), portanto se sua aplicação faz esse tipo de processamento(especificamente para o AWS S3, porém não necessariamente), te recomendo investir alguns minutos para ler esse post e em seguida dar uma verificada na sua aplicação pra ter certeza que tá tudo nos conformes ;)

Esse post será mais direto ao assunto e menor, portanto você deve ser capaz de efetuar a leitura com atenção em cerca de 10 minutos, aproveite!

Importante: “Roubando” no título sim é clickbait(xD), e somente isso! Nenhum dado foi roubado, nenhum dado aqui citado foi compartilhado com terceiros.



Aplicação alvo

Eu adoro tecnologia e todas as formas com a qual a mesma torna nossas vidas mais práticas e simples! Por exemplo: Efetuamos pagamento pelo Internet Banking sem a necessidade de ir até lotéricas ou mesmo banco e enfrentar filas longas, assim economizando tempo para ser aplicado em outra atividade de maior valor para nós.
Recentemente temos vistos inúmeras fintechs surgindo e facilitando as vidas dos seres humanos ao redor do mundo, e aqui nas terras Tupi Guarani também não seria diferente: Por exemplo, aqui nas terras tupi-guarani temos empresas como o NuBank que causaram uma revolução na forma como utilizamos e temos acesso aos nossos cartões de créditos, arrumando treta direta com o monopólio dos bancos! Da hora né? SIM!

Eu estou sempre procurando formas de facilitar a minha vida, e numa dessas conversas um amigo me enviou um produto desenvolvido por uma fintech, curioso que sou eu imediatamente comecei a fuçar no site e me dar conta da Stack que tornava possível a missão dessa startup: No frontend um AngularJS maroto conectando-se numa HTTP API rodando em cima do NodeJS (utilizando express).

Sidenote: Como eu sei disso?

Ao visitar qualquer site, você pode acompanhar todo o fluxo de comunicação entre client -> servidor pelo DevTools do seu browser, por exemplo, no caso do Chrome você pode utilizar a tab “network” para verificar como o client(app que você tá usando no browser, seu site, front-end) envia e recebe os dados do servidor(uma aplicação rodando num servidor remoto, ex: uma web API), e então verificar a resposta HTTP gerada pelo server, ex:

Server Response
(Geralmente um request HEAD é mais indicado para obter esse tipo de informação, ex: curl -I http://github.com)

Na resposta acima, o header X-Powered-By é exposto pelo express por default e indica que a aplicação provavelmente é um HTTP Server em cima do NodeJS.

Continuei navegando visualizando os requests para tentar encontrar possíveis brechas nas respostas e nos endpoints que a aplicação AngularJS se conectava para receber e enviar os dados, até ai tudo bem, nenhuma falha aparente.

Intrigado criei uma conta no site e segui para o perfil do usuário, geralmente é nessas páginas restritas que moram muitas falhas de exposição de dados e de parameter injection, então fui logo me animando \o/

Tentei alguns ataques simples como parameter injection e tentar acessar recursos de outros usuários, porém tudo me parecia bem blindado, pelo menos contra esses ataques mais simples e que não necessitam de muito setup, já que um atacante pode roubar os dados diretamente pelas respostas dos endpoints da aplicação.

Depois de alguns minutos navegando, percebi que nessa primeira camada a aplicação estaria segura, e já tava quase “deixando pra lá” quando eu percebi uma resposta no retorno do dados do meu usuário, a resposta incluia algo como:

1
2
3
4
5
6
{
  name: "Meu Usuário",
  email: "<...>@<...>",
  (...),
  document_url: "https://s3-us-west-2.amazonaws.com/[nomedoproduto]/production/clientes/:id/contratos_[:id].pdf"
}

WOW, percebem a propriedade document_url? Fiquei curioso e já fui logo abrindo a URL no browser. Logo percebi que se tratavam de dados bem sensíveis, e logo pensei:

Será que os dados de outros usuários também estão abertos assim?

Fui logo testando, randomizei um número e mandei bala, ex:

1
$ curl -f https://s3-us-west-2.amazonaws.com/[nomedoproduto]/production/clientes/100/contratos_100.pdf

Ao abrir o arquivo, me deparo com o seguinte contrato(os dados foram ocultos manualmente) emitido por acional**(1).

Contrato Bancário Emitido por um banco brasileiro

scream Assustador não? Como você pode visualizar na imagem acima, o contrato bancária COM MUITOS dados sigilosos de usuários, entre eles:

1
2
3
4
5
6
7
8
* Nome completo, nome do pai e da mãe completo
* CPF e RG
* Data de nascimento
* Nacionalidade
* Número de documentos como Passaporte/CRM
* Endereço completo
* Email do usuário
* Dados profissionais (empresa que trabalha, cargo)

Já imaginou o tipo de estrago que dá pra fazer na vida de uma pessoa com todos esses dados em mãos? Esses dados nas mãos de criminosos pode abrir inúmeras formas de engenharia social) para manipular psicologicamente uma pessoa e obter mais dados confidenciais e mais acessos, e enfim executar algum golpe nessa pessoa.

O que impede qualquer um com esses dados ligar para o usuário e se passar por algum funcionário desse banco e assim tentar ludibriar essa pessoa? Vemos casos como esses acontecendo o tempo todo no Brasil, e olha que dificilmente os criminosos tem acessos a tantos dados assim de sua vítima, é realmente assustador imaginar o quão pessoal e confidencial são esses dados….

Esses dados são extremamente críticos e confidenciais, e estavam ali abertos, PARA QUALQUER UM ACESSAR.

Conforme você pode notar, essa falha MUITO SIMPLES expõe dados muito sensíveis e críticos dos usuários dessa aplicação. Aplicação está que está sim bem codificada, que está segura ao menos na camada de acesso aos dados através da aplicação, porém mesmo com todo o esforço e dinheiro possívelmente aplicados para proteger várias possíveis brechas de segurança foram elimidas por um erro bem simples, e ai não importa se você gastou 500 mil reais ou 50 reais para proteger sua aplicação, em muitos casos um atacante só precisa de uma única entrada para conseguir invadir um sistema.

Um simples script Ruby como o abaixo poderia baixar TODOS os documentos disponiveis DIRETAMENTE do AWS S3, sem sequer passar pelos servidores dessa Fintech, tornando praticamente impossível que a empresa tome ciência que esse tipo de ataque pode estar acontecendo, já que as requisições HTTP nem sequer passam pelos servidores da aplicação, ex:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
URL = "https://s3-us-west-2.amazonaws.com/[nomeproduto]/production/clientes/%s/contratos_%s.pdf"

threads = []

start = 0
max_threads = 30
total = 100_000

start.upto(total).each do |i|
  next if File.exists?("contrato_#{i}.pdf")

  print "#{i.next}/#{total}\n"

  command = "curl -f #{URL % [i,i]} -o contrato_#{i}.pdf --silent"

  threads << Thread.new { system(command) }

  threads.map(&:join) if (i % max_threads) == 0
end


Como posso proteger minha aplicação?

Não importa se sua aplicação é uma fintech ou não, você certamente também está lidando com dados pessoais dos seus usuários e provavelmente não quer deixar nenhuma brecha de segurança para que um atacante consiga acesso aos dados dos seus usuários, certo?

Primeiros vamos fazer uma analise técnica da falha encontrada:

Essa aplicação gera um pdf de acordo com os dados cedidos pelo usuário no momento do cadastro, e em seguida faz upload desse mesmo arquivo gerado para o AWS S3, e salva a URL retornada pelo S3 numa coluna do usuário(creio), e então fornece essa URL para os clients para que o usuário possa visualizar seu contrato em algum momento(eu sinceramente não encontrei essa opção na interface, então não sei porque raios esse atributo estava sendo retornado na resposta, só pra começar);

Até aqui não tem nenhuma treta, todos nós já estamos acostumados a lidar com esse tipo de cenário, então aonde estaria o problema na implementação dessa Fintech?

Bom, de forma resumida eu posso dizer que o erro está claramente no nível de permissão de acesso ao arquivo no S3, pois o mesmo NÃO estava protegido com uma chave única permitindo somente o acesso aos usuários que possuem essa chave. Para ficar mais claro, a URL retornada pelo endpoint seguia a seguinte estrutura:

1
https://s3-us-west-2.amazonaws.com/[nomedoproduto]/production/clientes/:id_sequencial/contratos_[:id_sequencial].pdf

Portanto eu poderia “adivinhar” as demais URLS tentando incrementar o valor de id_sequencial até encontrar documentos válidos, ex:

1
2
3
4
5
6
7
https://s3-us-west-2.amazonaws.com/[nomedoproduto]/production/customer/1001/contratos_1001.pdf

https://s3-us-west-2.amazonaws.com/[nomedoproduto]/production/customer/1002/contratos_1002.pdf

https://s3-us-west-2.amazonaws.com/[nomedoproduto]/production/customer/1003/contratos_1003.pdf

(...)

Esse ataque poderia simplesmente ser evitado se cada arquivo possuísse uma chave de acesso única, conforme exemplo abaixo:

1
https://s3-us-west-2.amazonaws.com/[nomedoproduto]/production/clientes/:id/contrato_[:id].pdf?AWSAccessKeyId=ec9a3dc2b33e51be17de07f70302fed3b1ed590386d7b1e232d315bc33b64ce593a008ffac77403ca3c11d31425118c8e0e487e358aaf3c42fc96da593d8fdc7

Isso tornaria impraticável o ataque conforme descrito no script Ruby acima, pois somente o usuário dono do contrato teria acesso a essa chave, a URL do documento já iria incluir essa chave na resposta, que somente deve ser válida para esse arquivo.
Uma outra maneira paliativa de resolver isso “na gambetagem”(o ideal mesmo é sempre proteger os acessos aos arquivos) seria gerar nomes únicos e não sequenciais para os arquivos, por exemplo, se as URL’s dos arquivos seguissem o seguinte padrão abaixo o ataque teria tornado se inviável:

1
https://s3-us-west-2.amazonaws.com/[nomedoproduto]/production/clientes/96e9e269-3037-442e-aa07-df87b5f7e732/contrato_96e9e269-3037-442e-aa07-df87b5f7e732.pdf

Se você olhar com atenção, vai perceber que eu substitui o id sequencial por um UUID: 96e9e269-3037-442e-aa07-df87b5f7e732, e dessa forma seria praticamente impossível para um atacante adivinhar ou gerar sistematicamente TODAS as combinações necessárias para poder construir as URL’s e então acessar os arquivos.

O mais recomendado nesses casos é logo unir as duas técnicas: Gerar chaves únicas de acesso e por via das dúvidas gerar identificadores ÚNICOS E NÃO SEQUENCIAIS para seus os seus arquivos, simples assim!



Responsible Disclosure

Desde quando sabem da falha: [algum dia [1]]/04/2017
Dia que corrigiram: [algum dia [1]]/04/2017
Dia que entrei em contato [OFICIALMENTE] por email: 24/06/2017
Dia que responderam: NEVÁ
Meios de contato: Email
Resposta da empresa: ……. (isso é pra representar o silêncio)

[1] - Não sei exatamente o dia, mas a empresa foi notificada ali pelo mês de abril…



Sobre reports de segurança

As fintechs brasileiras parecem estar caindo no gosto da população, e enquanto essas empresas continuarem a ignorar os reports de segurança pode crer que vai ter muita gente explorando esses dados e eles NUNCA saberão disso, simplesmente porque ao que me parece report de segurança no Brasil parece inutil…será que as empresas realmente estão se importando com os dados de seus usuários?
Eu faço essa pergunta muito seriamente, depois de alguns reports que eu já enviei para empresas nacionais e nunca recebi resposta. Enquanto isso quem se fode é quem?? O USUÁRIO que confia numa empresa que “repassa sem saber” os dados privados e sigilosos das pessoas para serem explorados por pessoas má intencionadas. (Você sabia que a CADA 20 segundos um brasileiro é vítima de fraude de identidade?)

Então hey você! Antes de colocar seus dados na pŕoxima fintech super quente do mercado, pense um pouco sobre isso…os dados que você preenche nos formulários podem estar acessíveis para qualquer atacante que já conhece(ou irá descobrir brevementes) as falhas abertas e esquecidas nessas aplicações.
E SIM, todo software provavelmente tem falhas de segurança, mas me parece que nem todas estão REALMENTE se importando com isso….o esquema é crescer né? GOGOGOGOGGOGO dominar o mundo…

Ao que me parece as Fintechs são um ótimo parque de diversões para hackers….enquanto EU acredito que muitos estão explorando essas falhas somente “pra não perder a ternura”(provar sua capacidade), conforme um print que removi dessa materia no Motherboard:

Fintechs novo playground dos hackers

E ainda nesse mesmo artigo um dos hackers alerta o seguinte:

Reports de segurança são ignorados



Notas Finais

Algumas vezes nos focamos tanto em implementações de segurança que acabamos deixando as mais simples passarem, por isso é sempre importante dedicar um tempo para tentar invadir ou obter dados da sua aplicação simulando o ataque de uma pessoa com más intenções, dessa forma é possível se ligar nessas falhas básicas e então mitigar.

E pra você que é CTO/CEO de uma startup de tecnologia no Brasil e recebe um report de uma falha de segurança, por favor, não deixe quem tá reportando no vacuo…no meu caso eu quero reportar para que vocês cuidem dos nossos dados.

E você como usuário deveria TAMBÉM se importar bastante com seus dados, já pensou em pesquisar ou mesmo perguntar para as empresas que você usa qual é a politica de segurança deles? Lembre-se que isso é só o começo dessa nova era tão conectada para nós….muita coisa ainda está por vir nesse mundo tão digital…

OBS: Vale ressaltar que todos os dados coletados durante o desenvolvimento desse post foram devidamente descartados.

15 Aug 18:33

by Loading Artist

15 Aug 18:31

Ducks.

by Ryan
11 Aug 18:35

Jesus cheater

by O Criador


>.<

The post Jesus cheater appeared first on DrPepper.com.br.

10 Aug 18:50

“The Dragon Slayer” by Good Bear Comics







“The Dragon Slayer” by Good Bear Comics