O Slack, a popular plataforma de comunicação e colaboração de equipes, recentemente abriu seu verificador de tipos 'Hakana', uma ferramenta que eles criaram para uso interno.
Esse movimento ocorre em um momento em que uma boa quantidade de software proprietário está se tornando de código aberto.
O que é isso?: Hakana é uma ferramenta de análise estática para a linguagem de programação Hack que usa Psalm como base e é escrita em Rust.
Em termos mais simples, é uma ferramenta que fornece verificação de tipo para a Hack executando vários métodos analíticos.
Atualmente, o Slack está usando-o para detectar problemas em seu código Hack; eles migraram do PHP para o Hack em 2016 citando várias inconsistências com ele.
Algumas das habilidades da Hakana incluem:
- Impede funções não utilizadas e métodos privados.
- Evita atribuições não utilizadas dentro de fechamentos.
- Capacidade de detectar verificações de tipo impossíveis e redundantes.
- Pode avisar sobre possíveis ataques de injeção de SQL e vulnerabilidades de script entre sites.
- Evita o uso indevido de APIs internas do Slack (via ganchos de plug-in).
O Slack menciona mais de seus casos de uso como:
Também usamos o Hakana para automatizar migrações de API com reconhecimento de tipo (novamente por meio de plug-in) e para excluir funções não utilizadas em massa. Graças ao Rust, essas migrações de toda a base de código são relativamente rápidas.
Além disso, o Hakana investiga como os dados se movem entre funções em uma base de código e tenta verificar se algum dado controlado pelo invasor aparece em lugares que não deveria.
Ele também tem uma versão web que pode ser acessada através de navegadores da web usando WASM, graças a ele ser escrito em Rust.
O Slack lista algumas razões pelas quais eles decidiram abrir o código da Hakana:
- A comunidade de linguagem de programação mais ampla pode ser capaz de ajudar, especialmente no caso de análise de segurança.
- Isso serve para retribuir o favor ao Psalm, a ferramenta na qual Hakana é baseado.
- Eles esperam que as empresas com enormes bases de código PHP se beneficiem do Hakana bifurcando e alterando-o para atender às suas necessidades.
Apenas algumas empresas usam a linguagem Hack por causa de seus "altos custos da migração", o que significa que, se uma empresa decidir migrar para o Hack do PHP, grande parte de sua infraestrutura de servidor também precisará de uma mudança. Veja o anúncio no blog se estiver interessado em saber mais sobre as partes técnicas do Hakana.