Giter VIP home page Giter VIP logo

Comments (31)

saiintbrisson avatar saiintbrisson commented on August 30, 2024 3

Não remover o comando é ignorar o problema óbvio de segurança, uma simples permissão não é o suficiente pra proteger algo que mexa fora do próprio servidor. A falha é clara pra qualquer um com o mínimo de noção, os donos de servidores que não entendem o risco ficam abertos a ataques que podem ser evitados com a simples remoção do comando.

from system.

eduardo-mior avatar eduardo-mior commented on August 30, 2024 3

Como citei anteriormente. Não irei remover o sub-comando do plugin, apenas irei deixar ele desabilitado por padrão, caso alguém precise então basta ativa-lo na config.

Se a pessoa tem permissão para mexer na config e ativar o comando, logo, ela também tem acesso a todo resto do servidor, então creio eu que desta maneira já ira aumentar bastante a segurança já que é isso que esta sendo discutido.

Como citei anteriormente, até hoje nunca ouvi nenhum relato de nenhuma pessoa ou servidor que foi prejudicado com este sub-comando, muito pelo contrario, ele já ajudou diversas pessoas conforme exemplos que citei anteriormente.

Creio eu que não há motivos para levar esta discussão adiante. Caso vocês achem que colocando a config não ira resolver o problema então vocês podem dar um fork no projeto e publicar o plugin sem o sub-comando.

from system.

vinhais avatar vinhais commented on August 30, 2024 3

Vamos ver um simples caso:

Um certo servidor usa o System e uma host com phpMyAdmin disponível, algum administrador do servidor tem a conta invadida e o script kiddie usa o comando cat para ver o arquivo de configuração do AuthMe/nLogin e assim consegue acesso ao banco de dados... Sabe o que acontece? uma chantagem gigante, quebra da LGPD e vazamento de senhas (mesmo que hasheadas)

Apoio uma frase de "use por sua conta e risco" no README do System

from system.

vinhais avatar vinhais commented on August 30, 2024 2

2 anos se passaram e essa falha grotesca de segurança continua nesse plugin que é usado por milhares de servidores no Brasil e no mundo...

Parabéns Rush pelo ótimo trabalho para a comunidade de script kiddies que invadem servidores

from system.

zLupa avatar zLupa commented on August 30, 2024 1

Estava concordando que esse comando não deveria ser removido, mas pelo último comentário do @vinhais fez mais sentido.
Claramente é algo bem inseguro, levando a uma escalação de privilégio gigantesco na máquina da vítima já que a maioria ainda executa os servidores como root ou administrator e ainda mais que contas de Minecraft não são tão seguras.

from system.

aripiprazole avatar aripiprazole commented on August 30, 2024

Só dar merge #8

from system.

axyiee avatar axyiee commented on August 30, 2024

concordo com isso ai memo lek

from system.

ThiaagoMP avatar ThiaagoMP commented on August 30, 2024

Remover o quanto antes o plugin 'System'

from system.

axyiee avatar axyiee commented on August 30, 2024

Remover o quanto antes o plugin 'System'

apoio

from system.

eduardo-mior avatar eduardo-mior commented on August 30, 2024

O comando /system terminal é um sub-comando do comando /system que é um comando administrativo, e esta destinado aos administradores do servidor.

Apenas os usuários que tem a permissão system.system podem utilizar este comando.

A permissão system.system da acesso a todos os sub-comandos do comando /system.

Se você não quer que ninguém use o comando /system terminal então não de permissão para usar o comando /system, ou simplesmente desative o comando /system no arquivo de configuração comandos.yml https://github.com/eduardo-mior/System/blob/master/resources/comandos.yml#L328

Não é só o sub-comando /system terminal que pode causar "problemas de segurança", todos os outros sub-comandos também podem causar isso, como por exemplo o /system stop /system plugin /system console e assim por diante.

Até hoje esse comando nunca deu problema pra ninguém, alias, ele já ajudou muitas pessoas, então não faz sentido remove-lo do plugin. Se você não quer que ninguém use ele então não de permissão para ninguém usa-lo, ou desative-o nas configurações do plugin.

from system.

aripiprazole avatar aripiprazole commented on August 30, 2024

Além do comando ser claramente inútil

from system.

zkingboos avatar zkingboos commented on August 30, 2024

Não remover o comando é ignorar o problema óbvio de segurança, uma simples permissão não é o suficiente pra proteger algo que mexa fora do próprio servidor. A falha é clara pra qualquer um com o mínimo de noção, os donos de servidores que não entendem o risco ficam abertos a ataques que podem ser evitados com a simples remoção do comando.

Mas ele quer deixar um comando que simplesmente nunca deveria existir

from system.

eduardo-mior avatar eduardo-mior commented on August 30, 2024

@Lorenzoog não é porque você nunca usa o comando que ele é inutil.

@saiintbrisson ninguém aqui esta ignorando nada. Todo o minecraft é baseado em sistema de permissões, é só você não dar permissão pra usar o comando que não vai acontecer nada. Até hoje NINGUÉM teve problema com esse comando e ele já esta a mais de 2 anos rodando tranquilamente.
Se você acha que só a permissão não é o suficiente pra proteger o comando, então vamos colocar uma autenticação em 2 fatores pra usar o comando.

from system.

eduardo-mior avatar eduardo-mior commented on August 30, 2024

Na próxima versão eu vou criar uma config chamada HabilitarComandoTerminal que vai ir DESABILITADA por padrão. Ai quem quiser usar o sub-comando ativa ele na config.

from system.

aripiprazole avatar aripiprazole commented on August 30, 2024

@Lorenzoog não é porque você nunca usa o comando que ele é inutil.

@saiintbrisson ninguém aqui esta ignorando nada. Todo o minecraft é baseado em sistema de permissões, é só você não dar permissão pra usar o comando que não vai acontecer nada. Até hoje NINGUÉM teve problema com esse comando e ele já esta a mais de 2 anos rodando tranquilamente.
Se você acha que só a permissão não é o suficiente pra proteger o comando, então vamos colocar uma autenticação em 2 fatores pra usar o comando.

Entendo seu ponto, mas n faz sentido ter um comando para mexer no host do plugin, coisa q pode ser feita por outro lugar e convenhamos, com mta mais segurança doq num server de minecraft,
coisas como baixar plugins, excluir a pasta do server podem ser simplesmente feitas por esse comando(o que abre milhares de brechas de segurança pra quem n sabe oq faz), e n faz nenhum sentido existir uma função como essa, em qualquer serviço, n só em um server de minecraft eu digo, tanto num site quanto num sistema maior

from system.

ThiaagoMP avatar ThiaagoMP commented on August 30, 2024

@Lorenzoog não é porque você nunca usa o comando que ele é inutil.

@saiintbrisson ninguém aqui esta ignorando nada. Todo o minecraft é baseado em sistema de permissões, é só você não dar permissão pra usar o comando que não vai acontecer nada. Até hoje NINGUÉM teve problema com esse comando e ele já esta a mais de 2 anos rodando tranquilamente.
Se você acha que só a permissão não é o suficiente pra proteger o comando, então vamos colocar uma autenticação em 2 fatores pra usar o comando.

" @Lorenzoog não é porque você nunca usa o comando que ele é inutil."

Eu acho que qualquer um que tenha o mínimo de noção sobre programação ao ler o código nem o plugin irá usar.

from system.

eduardo-mior avatar eduardo-mior commented on August 30, 2024

@ThiaagoMP É exatamente por causa desse código ai que o plugin nunca apareceu em nenhum timmings, já possui mais de 50 mil downloads e é usado atualmente por mais de 500 servidores.

@Lorenzoog Na verdade faz bastante sentido no caso do minecraft porque tem diversas hosts que não disponibilizam acesso a um terminal para executar comandos. Além disso já vi pessoas usando o system terminal para listar/parar/iniciar/reiniciar services que estão rodando na maquina, usando o system terminal pra monitorar status da memória e do processamento do servidor, usando pra apagar arquivos do servidor, usando para ver informações do servidor (memória, processador etc.. inclusive teve gente que descobriu fraudes em hosts por causa disso, a host falava que oferecia um processador X mas quando você analisava era outro processador muito inferior).

Em fim, eu poderia citar aqui diversas utilidades desse comando, mas isso não invalida o seu argumento da questão da segurança. Então para a próxima versão irei criar uma config pra habilitar e desabilitar apenas esse sub-comando especifico.

from system.

ThiaagoMP avatar ThiaagoMP commented on August 30, 2024

@ThiaagoMP É exatamente por causa desse código ai que o plugin nunca apareceu em nenhum timmings, já possui mais de 50 mil downloads e é usado atualmente por mais de 500 servidores.

Parabéns 50 mil pessoas desinformadas baixaram seu plugin para usar em seus respectivos servidores.

from system.

axyiee avatar axyiee commented on August 30, 2024

ok entao vou dar permissao pra pessoa usar rm -rf /*

from system.

saiintbrisson avatar saiintbrisson commented on August 30, 2024

@saiintbrisson ninguém aqui esta ignorando nada. Todo o minecraft é baseado em sistema de permissões, é só você não dar permissão pra usar o comando que não vai acontecer nada. Até hoje NINGUÉM teve problema com esse comando e ele já esta a mais de 2 anos rodando tranquilamente.
Se você acha que só a permissão não é o suficiente pra proteger o comando, então vamos colocar uma autenticação em 2 fatores pra usar o comando.

Porque nunca houve invasão e exploiting em servidores de Minecraft, né? 🙃
Colocar autenticação em dois fatores (por mais que a ideia seja irônica), seria um absurdo igual, a falha continua lá.
Deixar o comando no projeto é insistir no erro e perpetuar a ignorância entre a comunidade (já frágil) do Minecraft.

from system.

saiintbrisson avatar saiintbrisson commented on August 30, 2024

Se você tiver interesse em melhorar, vou deixar aqui a leitura desse artigo pelo MrDienns: https://www.spigotmc.org/threads/minecraft-security-part-2-the-exploit-chain.414155/
Na seção Functionalities which shouldn't exist entirely, o comando se encaixa muito bem nela 😉

from system.

zkingboos avatar zkingboos commented on August 30, 2024

"O comando já tá a anos no projeto e até hoje nunca deu problema"
Confia 🕵️

from system.

ThiaagoMP avatar ThiaagoMP commented on August 30, 2024

Parabéns avisamos você sobre a falha de segurança e o seu único argumento é "mas o comando está sendo utilizado a muitos anos" parabéns pela profissionalidade e pelo "excelente" plugin, com "excelente" códigos todos bem escritos.

from system.

eduardo-mior avatar eduardo-mior commented on August 30, 2024

@vinhais seria uma falha de segurança se qualquer pessoa pudesse usar o comando 😉, como já ressaltei anteriormente, esse comando é aos administradores do servidor, se outras pessoas estão com o acesso a este comando e então o dono do servidor tem outras coisas pra se preocupar além disso, pois com permissão administrativa o usuário faz oque ele quiser com o servidor.

from system.

eduardo-mior avatar eduardo-mior commented on August 30, 2024

De todas as pessoas que já me chamaram no Discord para pedir ajudar ou falar sobre o System e também nos comentários da Gamersboard nunca vi ninguém reclamar sobre esse comando, exceto essa discussão aqui do Github, até o momento baseado nos fatos que eu presenciei o comando já ajudou muitas pessoas e nunca vi ninguém reclamar dele, dos relatos que me passaram...

Caso haja algum relato de alguém que teve problemas com esse comando isso nunca chegou até mim e nunca foi do meu conhecimento.

De qualquer forma igual eu falei anteriormente, esse comando pode ser desabilitado na config caso não queria ele presente no servidor.

from system.

vinhais avatar vinhais commented on August 30, 2024

De todas as pessoas que já me chamaram no Discord para pedir ajudar ou falar sobre o System e também nos comentários da Gamersboard nunca vi ninguém reclamar sobre esse comando, exceto essa discussão aqui do Github, até o momento baseado nos fatos que eu presenciei o comando já ajudou muitas pessoas e nunca vi ninguém reclamar dele, dos relatos que me passaram...

Caso haja algum relato de alguém que teve problemas com esse comando isso nunca chegou até mim e nunca foi do meu conhecimento.

De qualquer forma igual eu falei anteriormente, esse comando pode ser desabilitado na config caso não queria ele presente no servidor.

Então para você corrigir um vetor de ataque alguém precisa sofrer com isso?

from system.

zLupa avatar zLupa commented on August 30, 2024

Como alternativa, talvez a opção de executar scripts (.sh, .bat) pré-definidos, assim não deixaria na mão o pessoal que já usa a funcionalidade do terminal (iniciar, parar servidores) como você já disse, e teria que ter acesso ao servidor completamente para mudar o conteúdo desses scripts limitando que qualquer comando seja executado (rm -rf /* e etc).

Exemplo:

scripts:
  iniciar:
    - "echo 'iniciando';"
    - "java -Xmx128MB"
  desligar:
    scriptPath: "./desligar.sh"

from system.

eduardo-mior avatar eduardo-mior commented on August 30, 2024

A sugestão do @zLupa é uma boa ideia.

@vinhais a questão do MySQL e do PhpMyAdmin também envolve a questão que o dono do servidor poderia configurar o firewall de rede do servidor para que somente determinados IPs acessasem o banco de dados, dessa forma se alguém conseguisse o usuário e senha do banco não iria conseguir acessar diretamente o banco de dados, outra questão importante também seria limitar o acesso do usuário do Linux que iria executar o servidor e limitar ele a somente determinadas operações.

Um ponto importante que também tem que ser levado em consideração é que muita gente contrata hospedagens que não dão acesso ao SSH ou as vezes não dá nem acesso ao FTP do servidor, então o comando do /system terminal cede esse acesso as pessoas, e esse foi um dos principais motivos pelo qual esse comando foi feito... Lá em 2017/2016/2015 que foi quando o System foi desenvolvido, a maioria das hospedagens não dava acesso ao SSH do servido então muita vezes as pessoas queriam fazer determinadas coisas mas não tinham como, e além disso existiam muitas hospedagens que roubavam seus clientes dizendo que determinado servidor possuía 4GB de RAM e um processos i7 mas na prática eles entregavam 2GB de ram e um i5, e com o comando /system terminal era possível executar comandos do Linux que mostravam as especificações reais do servidor, esses foram os 2 principais motivos pelo qual o comando foi criado, com o passar do tempo os donos de servidores acabaram vendo outras utilidades também pra esse comando, como por exemplo forçar a reinicialização do servidor usando o /restart do próprio Linux, mas os 2 exemplos que eu citei acima foram os que motivaram a criação do comando.

from system.

eduardo-mior avatar eduardo-mior commented on August 30, 2024

Essa discussão é uma discussão longa, eu acredito que o melhor a se fazer seria criar uma permissão separada para este comando, e além disso já deixar ele desabilitado por padrão no system, dessa forma só iria utilizar o comando quem habilitasse ele na config e tive uma outra permissão específica, talvez até daria pra colocar uma senha pra poder usar ele também como uma terceira camada de proteção...

Não acredito que seja válido remover por completo o comando e também não acredito que seja necessário isso visto que esse comando possui diversas utilidades e visto que ele já ajudou muitas pessoas e acredito que ainda vai ajudar.

Talvez eu possa reabrir essa issue e implementar essas melhorias que eu citei acima, se alguém tiver alguma sugestão melhor pode dizer.

from system.

saiintbrisson avatar saiintbrisson commented on August 30, 2024

Com ou ser permissão o problema continua, o mínimo que você pode fazer é tornar opt-in.

Aos demais que ainda estão aqui, até eu tinha esquecido da existência dessa issue, como que vocês acharam? é cada coisa

from system.

eduardo-mior avatar eduardo-mior commented on August 30, 2024

@saiintbrisson hoje o comando já é opt-in... a única questão é que você não tem como desativar esse sub-comando em específico, você desativa o comando inteiro.

Hoje só deixa habilitado o comando quem quer, e vai continuar assim no futuro, a única diferença é que vai ter uma config específica pra esse subcomando e por padrão ele vai vir desabilitado.

from system.

Related Issues (15)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.