Executando verificação de segurança...
26

parem de lançar apps vibecodados com segurança zero

Tá na hora de admitir: vibe coding veio pra ficar, gostando ou não. Mas segurança é uma preocupação ENORME e eu tô aqui pra ajudar um pouco.

Eu não vejo muito problema nisso, vibe coding tá substituindo o que costumavam ser os MVPs, o único problema é que como parece tão próximo da solução real, as pessoas esquecem que na verdade é só um MVP. E isso tá levando a riscos de segurança e vazamentos MASSIVOS. O mais recente que eu vi foi o Abrahub (todo mundo viu), uma plataforma totalmente vibe codada onde o criador falou no X algo tipo "A barreira do código morreu. Eu construí um software faturando 100k por mês sem saber programar". Ok... eu concordo que a barreira do código realmente morreu pra MVPs e provas de conceito, qualquer um consegue criar algo que aparentemente funciona. Aí ele disse: "Os 'puristas' da tech vão odiar esse vídeo, mas os resultados estão aí".

E quais exatamente são os resultados? Levou 2 minutos pra uma pessoa aleatória (salve pro Tiago) extrair dados pessoais de todo mundo da comunidade. Nem precisou hackear de verdade, tava tudo completamente exposto - sem proteção nas rotas (qualquer um conseguia pegar dados ou até virar admin simplesmente fazendo um request), repo público no github COM o .env commitado.. nem dá pra dizer que ele deixou a porta aberta, ele não tinha porta nenhuma.

Não sei vocês, mas pessoalmente eu não tenho muito medo de IA tomar meu emprego. Tá claro que enquanto a barreira do código tá sumindo, a barreira do software tá ficando mais definida. O que eu realmente tenho medo é de mais dados de pessoas vazando, então eu tô criando um checklist simples pra vibe coders. Se você tá fazendo vibe coding, provavelmente não sabe muito sobre software, então pede pro seu assistente de IA verificar essas coisas.

Note que isso não vai tornar seu app imune a ser hackeada, eu programo há quase uma década e NUNCA tenho 100% de confiança na minha segurança, sempre tem espaço pra melhorar. Isso é basicamente o primeiro passo pra colocar seu MVP no ar e NÃO CAGAR TUDO, mas pague um pentester de verdade pra encontrar as vulnerabilidades reais da sua aplicação assim que você tiver qualquer tração real.

Ah, e se você tá usando o FastroAI: a maioria dessas coisas já são checadas automaticamente antes de você fazer deploy, mas vale verificar (se não, começar com uma base sólida geralmente é uma boa ideia).

Então aqui estão, com o prompt pronto no repo do github pro seu assistente de IA checar:

  1. Banco de dados mal configurado (sem Row Level Security) - qualquer pessoa consegue ler/editar/deletar dados de outros usuários diretamente do banco
  2. Rotas de API desprotegidas (sem auth middleware) - seus endpoints estão completamente abertos, qualquer um consegue chamá-los sem fazer login
  3. Secrets commitados (.env no GitHub) - suas API keys, senhas do banco, etc. estão publicamente visíveis no seu repo
  4. Controle de acesso quebrado (IDOR) - trocar um ID na URL permite acessar a conta/dados de outra pessoa
  5. API keys secretas no código do frontend - qualquer pessoa consegue abrir o devtools do navegador e roubar suas keys
  6. Server-Side Request Forgery (SSRF) - atacantes conseguem fazer seu servidor buscar recursos internos que não deveria
  7. Sem proteção contra CSRF - um site malicioso consegue fazer requests em nome dos seus usuários logados
  8. Headers de segurança faltando - sua aplicação não diz pros navegadores ativarem proteções básicas como bloquear clickjacking
  9. CORS com wildcard - você tá dizendo pros navegadores "qualquer site pode fazer requests pra minha API", o que quase nunca é o que você quer
  10. Sem rate limiting - nada impede alguém de fazer brute-force em senhas ou spammar sua API com milhares de requests
  11. SQL injection - input do usuário vai direto nas queries do banco, permitindo atacantes ler/modificar/deletar seu banco inteiro
  12. Cross-site scripting (XSS) - atacantes conseguem injetar scripts que rodam no navegador de outros usuários e roubar suas sessões
  13. Webhooks do Stripe não verificados - qualquer pessoa consegue forjar uma confirmação de pagamento e ter acesso a features pagas de graça
  14. Upload de arquivos inseguro - usuários conseguem fazer upload de arquivos maliciosos que são executados no seu servidor
  15. Mensagens de erro verbosas - seus erros expõem detalhes internos como caminhos de arquivo, estrutura do banco, stack traces
  16. Hashing de senha fraco - se seu banco vazar, atacantes conseguem quebrar as senhas de todo mundo em minutos
  17. Pacotes alucinados (slopsquatting) - sua IA sugeriu um pacote que não existe, e alguém publicou um malicioso com aquele nome

Lance seu produto rápido, mas não esqueça de fazer O MÍNIMO.

Carregando publicação patrocinada...
4

cara li seu artigo, procurei o primeiro sistema vibecodado postado aqui que eu encontrasse e adivinha, com duas request da pra fazer um dump inteiro do banco de dados, é realmente muito grave essa situação principalmente quando envolve meios de pagamentos/créditos/informação pessoa/sensível etc.

2

Obrigado pelo post e pela sugestão. Rodei o prompt aqui, o Claude fez alguns ajustes e certificou que as minhas preocupações anteriores foram válidas. Me sinto mais seguro em disponibilizar o MVP em breve.

2
1

@igobernav

Que post fod* cara! É incrivel contextualizar a percepção de como a tecnologia está passando nas telas e há pessoas com essa malicia de simplesmente por pura questão de controle de privacidade e de dados que consideramos importantes - esse tema de cibersegurança e atividades rastreaveis vão além de simplesmente saber sobre o assunto, envolve usar esses meios para movimentar dados que criam históricos e desencadeiam consequencias quando utilizados mesmo com "segurança zero", pois de tanta privacidade a liberdade ainda corre solta quando se trata da web.
Lançar um MVP e desmistificar de que tudo é rastreavel nos tempos modernos com agentes e code claude é um contexto em que muitos devs se encaixam, -ssh post!

1
1

post muito bom. o problema real é que vibecoders confundem "funciona" com "tá pronto". eu uso agentes de IA pra codar o dia todo mas tem uma diferença enorme entre usar IA sabendo o que você tá fazendo e confiar cegamente no output

o checklist é útil, mas eu adicionaria uma coisa: se você não entende o que cada item da lista significa, pedir pro ChatGPT checar não vai te salvar. ele vai te dizer que tá tudo ok e você vai acreditar. já vi agente de IA gerar código com SQL injection e quando pedi pra revisar ele disse que tava seguro

a barreira do código realmente caiu, mas a barreira de entender o que você tá deployando pro mundo continua exatamente onde estava

1

O maior problema mesmo é que tem gente lançando app sem nem saber abrir a dev tools do chrome.

Eu acredito que pr aaprender programação devemos começar desmontando e entendendo como a web funciona. Tentando encontrar falhas e entendendo porque sites grandes usam captchas e rate limits

90 porcentos dos app vibecodadoa sao envolocros de IA e a maioria nao tem limite nenhum do uso de ia. ja achei ate chave do gemini no frontend fazendo o pronpt diretamente

0