Programa feito em Java com FALHA (MySQL)

Olá, desenvolvi um programa feito em Java e ele estabelece conexão com o MySQL, mesmo com os códigos ofuscados, é possivel obter Host, Porta, Usuario e Senha, através do jMap /Visual VM
assim, deixando o programa e o banco de dados exposto… alguém sabe alguma solução?

É uma aplicação web ou desktop? É JDBC ou está usando algum framework/implementação de JPA?

Isso só ocorre se sua aplicação for cliente -> persistência.
A solução é mudar para a arquitetura cliente -> servidor -> persistência.

Ofuscar o código é placebo.

A premissa básica é que aplicações cliente são por natureza inseguras e a segurança é buscada no servidor em conjunto com outros mecanismos de proteção.

1 curtida

Concordo. Tem até desenvolvedores experientes que teimam em não concordar com isso.

1 curtida

Geralmente eu coloco estes dados em arquivos de texto criptografados fora do sistema, mas também fica vulnerável, pois precisa ser uma criptografia fraca que permite ser desfeita para o sistema poder ler estes parâmetros.

Para aplicações de pouca visibilidade tais procedimentos parecem seguros, por isso é um placebo.
Guardar senhas de aplicação com o cliente é um risco assumido.
Neste caso ele executou um man in the middle, logo não seria eficaz pois o atacante está fazendo apenas sniffing.
Mesmo que ele fizesse malabarismos, em último caso um atacante pode fazer engenharia reversa, alterar a interface e capturar o password e outras informacoes depois de descriptografado.
Ofuscar o código não altera a semântica computacional, se o atacante for um no cego, só aplicações de baixa visibilidade “se fazem” seguras.

Quando se utiliza software para a ofuscação do código ou de conversão de .jar para .exe não tem controle do que será realizado e pode prejudicar o funcionamento correto do seu software.

1 curtida