Executando verificação de segurança...
1
Barba
1 min de leitura ·

[DISCUSSÃO] Como lidar com segurança em projetos open source?

Oi pessoal!
Estou desenvolvendo um projeto open source, mas que em algum momento quero motenetizar algumas funcionalidades dele. Não seria inseguro abrir o codigo onde ocorreram transações financeiras reais? De algum jeito não estaremos criando uma vulnerabilidade para o projeto, dando a chance de pessoas maliciosas entenderem como opera o codigo daquelas transações em produção, e de alguma forma capturarem dados financeiros dos usuários? E qual seria o jeito de mantermos o codigo aberto, mas ainda com segunrança principalmente no que se tratar a transações financeiras.

Eu não tenho essas respostas mas acho interressante levantar essa discussão por aqui.

  • pic triste:


Carregando publicação patrocinada...
1

É um enorme problema. Se você não confiar no que está fazendo no código. Se fechar o código for a única forma de dar segurança, então tanto faz. Se o código opera a segurança de forma correta, não muda nada. O Linux é aberto e opera coisas das mais críticas possíveis, muito mais do que qualquer projeto individual.

Segurança é algo que a pessoa precisa saber fazer. Para isso precisa dominar toda computação. O que os hackers/crackers fazem é explorar vulnerabilidades porque eles dominam toda computação e esperam que as pessoas façam códigos sem dominar ou sem a devida atenção.

Facilita poder ver um código? Claro que sim, mas não muda muito. Alguém vai tentar explorar alguma vulnerabilidade? Só se for usado em algo realmente que faz sentido um ataque. Tem casos que nem vão saber que existe, mesmo com código aberto.

Como complemento: https://pt.stackoverflow.com/q/46057/101

Faz sentido para você?

Espero ter ajudado.


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).

1

Faz muito sentido, sim. De maneira geral, segurança por obscuridade não é segurança, não é mesmo? Esconder algo não significa que está seguro. Se formos pensar em criar uma senha, ela estará segura pois ninguém sabe, mas se for "123456", mesmo estando escondida, não é segura.

Isso é um ponto.

1

Barba, ótima pergunta e nós estamos na mesma situação aqui no TabNews, dado que o repositório é open source.

Eu acredito que no nosso caso o saldo seja positivo, porque estamos facilitando que seja encontrado brechas de segurança tanto para pessoas mal-intencionadas, quanto pessoas bem-intencionadas, e como o projeto tem uma certa popularidade, há uma chance de esbarrar em pessoas bem-intencionadas, onde se o projeto não fosse open source, estas pessoas bem-intencionadas não teriam como contribuir (a não ser que você tenha programas de bug bounty em plataformas como HackerOne, mas é uma operação extremamente cara).

A questão é que você precisa ter um objetivo na escolha de disponibilizar o projeto open source, e tentar atingir esse objetivo. Como esse código faz parte de um serviço sério, não deixe o projeto aberto só por deixar.

1

Acho que, de um ponto de vista mais pragmático, o objetivo de qualquer projeto open source, de modo geral, seria horizontalizar um pouco a forma da construção e do uso de um software. Para quem desenvolve, mas principalmente para quem usa, ter a liberdade de entender como funciona e como pode contribuir para o desenvolvimento daquele projeto. Pelo menos para mim, esse é o objetivo de um projeto open source.

Mas... (heheh) criar uma comunidade que de fato ajude na manutenção desse projeto nem sempre é fácil, e pode levar um tempo para conseguir esse tipo de autodefesa. Concordo plenamente com você, acredito que quanto mais o projeto se mantiver relevante ao ponto das pessoas se disporem a trabalhar em melhorias, mais seguro e coberto esse projeto ficará. Mas sera que indo por essa perspectiva, não correríamos o risco de criar um "acoplamento" com vigilância da comunidade? E se for um projeto menor, que não atraia tantos colaboradores? Seria inviável deixá-lo open source? Será que esconder módulos que lidariam com operações mais sensíveis poderia ferir de algum jeito os princípios de um projeto open source?

Eu não sei as respostas. To tentando estimular o debate! E fiquei muito feliz que você resnpondeu nesse topico! (: