Comments (31)
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.
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.
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.
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.
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.
Só dar merge #8
from system.
concordo com isso ai memo lek
from system.
Remover o quanto antes o plugin 'System'
from system.
Remover o quanto antes o plugin 'System'
apoio
from system.
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.
Além do comando ser claramente inútil
from system.
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.
@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.
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.
@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.
@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.
@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 É 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.
ok entao vou dar permissao pra pessoa usar rm -rf /*
from system.
@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.
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.
"O comando já tá a anos no projeto e até hoje nunca deu problema"
Confia 🕵️
from system.
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.
@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.
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.
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.
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.
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.
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.
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.
@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)
- Mundo onde Pode usar Fly HOT 1
- Error no Backup. HOT 1
- Error no Playerdate HOT 1
- Windows Deteta a nova versão como virus! HOT 7
- a versão mais recente do system é considerada como virus pelo anti-virus do windows.. HOT 4
- Depois que eu uso o /warp, um erro aparece no chat e eu não consigo usar nem o chat local, nem o global, porém eu consigo usar outros comandos e modificar o mundo. HOT 1
- Usar API do System.
- Não consigo colocar blocos ou quebrar blocos com o plugin HOT 2
- Funções novas HOT 1
- error 1.19.2 purpur HOT 4
- Erro PlayerKickEvent 1.19.2 purpur HOT 3
- Could not pass event PrepareItemCraftEvent to System v1.14.18 HOT 4
- Could not pass event CreatureSpawnEvent to System v1.14.18 HOT 9
- Else desnecessário. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from system.