Pages:
Author

Topic: Abrir exchange de Bitcoins - page 2. (Read 4814 times)

hero member
Activity: 882
Merit: 1000
It's got electrolytes
March 13, 2014, 10:19:17 PM
#7
Legal o desenho algorista - já pensei em arquiteturas assim mas se o saque de coins for automatico, então não encontrei uma proteção nessa arquitetura sua contra forjar compras/vendas diretamente no server.

Exemplo:
1 Alguem abre uma conta na exchange (possivelmente documentos falsos)
2 Transfere 1 BTC por exemplo pra lá
3 Ganha acesso ao webserver
4 Altera o book order direto no banco retirando todas as ordens de venda e todas de compra e faz as seguintes operacoes:
5 Cadastra uma ordem de venda igual ao valor total de todo o dinheiro disponivel nas contas de cada um
6 Cadastra ordens de compra pra gastar o dinheiro de todo mundo comprando aquele 1 BTC
7 Cadastra uma ordem de compra usando o dinheiro todo e valor do BTC a R$ 0.00000001
8 Cadastra ordens de venda de todos os BTCs em saldo
9 Pede uma retirada do saldo total da conta...


Como para o CronServer todas essas são operações 'validas' de compra e venda  (saldo total de R$ e BTC está valido) ele vai processar as ordens todas e liberar os BTCs...

Você descreveu um ótimo exemplo de ataque que poderia ser implementado com um SQL Injection bem elaborado.

Mas acredito que na minha arquitetura ele seria barrado no CronServer já na etapa 4 (pois suas operações de exclusão de ordens não estariam conectadas a um token valido de login, necessário para cada usuario alterar as proprias ordens) - O Token de login registrado junto com as operações não foi mencionado na ilustração mas é um padrão minimo de segurança que deveria ser adotado juntamente com o restante.

Caso o invasor altere as ordens diretamente no BD do webserver, ou ainda tente registrar novas ordens (etapa 5,6,7,8), o BD se tornaria diferente da copia incremental presente no cronserver e o sistema inteiro se desativa, acionando o alarme de invasão.

Mas caso o invasor consiga forjar tokens de login, e consiga registrar exclusão de ordens e adicionar novas ordens, então ele ainda seria barrado na etapa 6, pois o mesmo BTC não poderia ser vendido mais de uma vez, pois a auditoria automatica é executada antes de cada ordem, e cuidaria disso, impedindo o ataque e bloqueando a conta.

Mas caso tudo dê errado e o atacante seja ninja o bastante para chegar na etapa 9, ele ainda assim seria barrado alí, pois o saldo é calculado usando todo o historico de depositos, saques e operações no mural, da exchange toda, usando checkpoints para diminuir o processamento. O saldo não fica registrado para uso em operações. Existe um saldo usado para exibição no webserver, mas mesmo assim é assinado para evitar que seja forjado.
Como a auditoria leva em conta o histórico inteiro da exchange desde o ultimo checkpoint, eu acho muito improvável que um saldo incorreto passe daqui.
Podem entender essa auditoria como um balanço de estoque que ordena tudo que entra e sai de cada conta, e no final os números precisam fechar com precisão.

E se ainda assim o cara seja um Hacker Ninja Super Sayajin e consiga burlar esse sistema inteiro, ele ainda esbarraria nos limites de saques automaticos, que fracionam os grandes valores em saques menores transferidos em períodos espaçados de tempo, e que não deixariam ele sacar muita coisa, e claro poderiam disparar um aviso ao admin que poderia ao menos estranhar um saque muito fora do comum e agir a tempo.

Eu não conseguiria invadir o meu sistema, mesmo conhecendo ele em detalhes mínimos.

Mas sei que sou só um aprendiz e possivelmente tem gente que daria conta disso com um pé nas costas.  Grin

Alguma ideia de como quebrar esses sistema ?  Cheesy

sr. member
Activity: 315
Merit: 250
March 13, 2014, 08:47:39 PM
#6
Legal o desenho algorista - já pensei em arquiteturas assim mas se o saque de coins for automatico, então não encontrei uma proteção nessa arquitetura sua contra forjar compras/vendas diretamente no server.

Exemplo:
- Alguem abre uma conta na exchange (possivelmente documentos falsos)
- Transfere 1 BTC por exemplo pra lá
- Ganha acesso ao webserver
- Altera o book order direto no banco retirando todas as ordens de venda e todas de compra e faz as seguintes operacoes:
- Cadastra uma ordem de venda igual ao valor total de todo o dinheiro disponivel nas contas de cada um
- Cadastra ordens de compra pra gastar o dinheiro de todo mundo comprando aquele 1 BTC
- Cadastra uma ordem de compra usando o dinheiro todo e valor do BTC a R$ 0.00000001
- Cadastra ordens de venda de todos os BTCs em saldo
- Pede uma retirada do saldo total da conta...


Como para o CronServer todas essas são operações 'validas' de compra e venda  (saldo total de R$ e BTC está valido) ele vai processar as ordens todas e liberar os BTCs...

A unica forma que eu vejo de evitar esse cenario seria cada usuario assinando digitalmente um pedido de compra ou venda com base em um endereco original conhecido. Infelizmente não é "user-friendly".

Para o OP (BanqueiroGordo) sugiro NÃO fazer uma exchange se não tiver uma equipe MUITO boa de segurança e excelentes conhecimentos de tecnologia... é pedir pra ter dor de cabeça e prejuízo.
Alias, esse vai se tornar cada vez mais um dos piores negócios de Bitcoin = alto risco e margens muito pequenas.

Pense que serviço você pode oferecer e ser pago em BTC. Esses são projetos melhores pois ajudam a economia como um todo e não apenas a especulação.
hero member
Activity: 882
Merit: 1000
It's got electrolytes
March 13, 2014, 04:27:49 PM
#5
Também vale lembrar que o mercado pra exchanges que operam exclusivamente com criptomoedas já está saturado, e operam em nível mundial e não nacional.

O que os brasileiros demandam nesse momento são empresas para atuar primariamente com R$, e pra esse tipo de empresa, tantos exchanges quanto gateways de pagamentos estão com alta demanda.

Também existe a questão da segurança juridica, portanto será preciso de mecanismos que proteja ambos os lados, exchange e usuario.

É preciso pensar também no tempo de aceitação do seu produto, pois para receber depositos será preciso primeiro estabelecer a reputação.

Você pediu pra não falar em segurança dos acessos, mas acho isso o ponto central de qualquer negocio baseado em criptomoedas, e nisso posso te dar uma sugestão de arquitetura.
O ano passado eu projetei esse rascunho abaixo, que seria a minha visão de um exchange seguro (contra roubo de moedas).
É um rascunho bem basico e ainda precisa melhorar muitas coisas, mas deixo como sugestão.



O legal dessa minha arquitetura é que é praticamente impossível ter acesso as moedas entrando pelo webserver, e o servidor das carteiras (cronserver) poderia ficar em qualquer lugar, inclusive em um datacenter pequeno, não demanda muita internet ou processamento, só precisa ser mantido em segredo e com boa segurança física e logica.
Inclusive no projeto estão previstas as proteções contra depósitos forjados, saques inválidos, saldos fraudulentos, e clonagem de operações de mural.


member
Activity: 81
Merit: 10
March 13, 2014, 06:30:41 AM
#4
cuidado que o paypal, esta banido contas que estejam usando para comprar e receber pagamentos de cryptomoedas.

abra um empresa, consulte um advogado, pq envolve muita coisa, cuidado com a lavagem de dinheiro.

o MtGox nao foi o primeiro nem o ultimo.

nao existe lei que proteja os usuarios, ate la sera uma festa.

ae depois disso pensa em programar Smiley




Valeu por lembrar esse detalhe do PP, cara, obrigado.
legendary
Activity: 2296
Merit: 1170
Advertise Here - PM for more info!
March 13, 2014, 05:58:46 AM
#3
cuidado que o paypal, esta banido contas que estejam usando para comprar e receber pagamentos de cryptomoedas.

abra um empresa, consulte um advogado, pq envolve muita coisa, cuidado com a lavagem de dinheiro.

o MtGox nao foi o primeiro nem o ultimo.

nao existe lei que proteja os usuarios, ate la sera uma festa.

ae depois disso pensa em programar Smiley



E lembre, toda empresa de informática é 90% marketing e vendas, 10% informática. Não ache que por ter um produto bacana você vai ter lucro. luvcro vem da sua capacidade de vender, não de fazer.
hero member
Activity: 567
Merit: 502
Hey yo let's go
March 13, 2014, 04:02:09 AM
#2
cuidado que o paypal, esta banido contas que estejam usando para comprar e receber pagamentos de cryptomoedas.

abra um empresa, consulte um advogado, pq envolve muita coisa, cuidado com a lavagem de dinheiro.

o MtGox nao foi o primeiro nem o ultimo.

nao existe lei que proteja os usuarios, ate la sera uma festa.

ae depois disso pensa em programar Smiley

member
Activity: 81
Merit: 10
March 13, 2014, 12:41:15 AM
#1
Olá a todos. Eu frequento esse fórum faz algum tempo mas não costumo postar, essa é minha primeira vez. Se postei em lugar errado, peço desculpas.

Vamos ao que interessa. Pessoal, eu estou interessado em começar um exchange de Bitcoins, porém a quebra (?) do MtGox me deixou um pouco para baixo agora pois as pessoas podem e com toda razão ficar com medo de usar uma nova exchange qualquer, tenha ela boas intenções ou não, infelizmente o comportamente humano é assim mesmo, as pessoas julgam de acordo com experiências passadas. Mas continuando com o projeto, eu li muito, acessei e me cadastrei em várias exchange e procurei vários scripts, uma vez que eu não sou programador, para o início da minha exchange, dai vem uma dúvida, eu gostei muito do script do bitcoin-central, mas alguém conhece outro melhor ainda ou talvez mais simples, porém que dê conta do serviço? Pois as vezes algo simples pode ser muito melhor que algo extremamente grande e pesado.

Outra coisa, na questão do servidor* (Quando tiver asterisco, por favor, leiam lá em baixo), eu tenho aqui em casa várias máquinas que estão desmontadas e eu estou pensando em monta las para usar como servidor para o projeto. Eu pesquisei o preço de hospedagem e tal e percebi que não valeria a pena pois ficaria no fundo o mesmo que eu usando um servidor aqui de casa, montado e totalmente controlado por mim. E também eu poderia usar o dinheiro da primeira mensalidade do servidor para outras despesas, uma vez que o projeto não tem muitos recursos investidos. Alguém vê algo de errado na ideia do servidor? O que? Explique por favor. O que você faria diferente? É uma má ideia hospedar em casa, mesmo com o sistema de could storage?

Em relação ao dinheiro, eu não queria usar dinheiro real no negócio no início. Pretendo sim usar, depósitos, dólares, Paypal, PagSeguro... mas no começo eu gostaria de usar apenas troca de moedas para moedas, sem mexer com moeda bancária agora pois apesar de ter experiência com Btc, eu nunca tive uma exchange, então fico com medo de fazer alguma m* e afetar alguém. No início, para aprender como o negócio funciona e tal, eu ficaria apenas na troca de moedas, depois faria uma upgrade**. O que acham disso?

Ninguém abre um negócio apenas por amor, vamos ser honestos. Eu gosto de informática, gosto do projeto, mas claro que almejo dinheiro, lucro. Sei que isso não vem rápido, mas será que é um bom negócio? Existe mercado após a sujeira feita pela MtGox? Você ainda usa serviços desses? Usaria um novo?

Terminando: Caso você fosse abrir um negócio baseado em Btc, o que seria?





*Eu sei que muitos de vocês vão falar da questão de segurança e tal (E com razão pois a questão é dinheiro e não um brinquedo sem valor, alguns de vocês investem pensando na aposentadoria, nos filhos, família ou mesmo futilidades, mas isso não interessa, o dinheiro pertence a vocês e ninguém tem o direito de agir de forma irresponsável com ele.... então eu compreendo a preocupação de vocês), mas um servidor pago não é sinônimo de segurança, quando eu montar meu servidor, se caso eu o fizer, darei enfase a segurança, não se preocupem com isso. Mas peço que atentem ao tema ajudando no que foi perguntado e não mantendo a atenção em temas que são óbvios, mas mesmo se ainda assim você quiser frisar o tema de segurança, por favor, não se esqueça de responder também o tema proposto. 

**Pretendo colocar o máximo de moedas bancárias possíveis. Além de idiomas abrangendo assim o mundo todo.

Pages:
Jump to: