Apresentamos nosso novo Robot antivírus para uploads mais seguros
À medida que as pessoas transferem mais partes da vida para plataformas digitais, há mais em jogo, e mantê-las seguras se torna mais importante do que nunca.
Seja ao desenvolver aplicativos nativos, APIs ou aplicações web, é nossa responsabilidade como profissionais de desenvolvimento e operações dedicar tempo e atenção suficientes para proteger nossos usuários de pessoas mal-intencionadas.
Sanitizar entradas, configurar firewalls, implantar atualizações, limitar quais versões de SSL podem ser usadas: a lista só cresce.
Permitir que usuários finais façam upload de arquivos traz desafios adicionais, pois você basicamente permite que qualquer pessoa capaz de usar um teclado armazene arquivos potencialmente maliciosos na sua plataforma, que, fora isso, foi cuidadosamente protegida.
É possível, claro, que um arquivo malicioso simplesmente fique ali e nada aconteça. Mesmo assim, sempre existe o risco de algo ruim acontecer, e você deve ficar atento ao seguinte:
Primeiro, você terá que tomar muito cuidado para que um arquivo malicioso não seja executado de alguma forma. Você provavelmente já tem 100 mecanismos para impedir isso: remover permissões de execução, escapar qualquer entrada do usuário e assim por diante. Mas sempre existe uma 101ª maneira de contornar tudo isso. Com tempo e motivação suficientes, um hacker habilidoso encontrará essa maneira e executará o arquivo dele na sua plataforma. Os riscos vão da exposição de segredos à destruição de dados.
Segundo, você provavelmente permite uploads de usuários para que outros usuários consumam o conteúdo. Isso significa que, se um arquivo malicioso tiver sido enviado por upload, você passa a distribuir malware. Não há como saber se quem consumir o conteúdo executará o arquivo, se o antivírus local entrará em ação e essas pessoas falarão mal de você, ou se elas repassarão o vírus sem perceber. Além disso, se o seu conteúdo estiver acessível a rastreadores da web, mecanismos de busca como o Google perceberão, o que prejudicará sua posição nos resultados e, consequentemente, seu negócio.
Por qualquer ângulo, se você pudesse contar com algum tipo de barreira que rejeitasse cavalos de Troia, vírus, malware e outras ameaças maliciosas antes que chegassem à sua plataforma, quaisquer riscos seriam drasticamente reduzidos.
Foi por isso que a equipe da Transloadit começou a trabalhar e projetou um Robot totalmente novo para ajudar você com isso: /file/virusscan.
Embora a segurança de 100% seja um mito, o /file/virusscan é baseado no ClamAV, amplamente adotado. Quando você o usar como barreira de proteção, ele será capaz de reconhecer e rejeitar quase 4 milhões de cavalos de Troia, vírus, malware e outras ameaças maliciosas.
Ativar essa proteção é tão simples quanto adicionar algumas linhas às suas instruções.
Talvez suas instruções antes convertessem uploads para o formato do iPad, extraíssem algumas miniaturas de prévia e exportassem os resultados para seu servidor privado via SFTP:
{
"steps": {
"ipad": {
"use": ":original",
"robot": "/video/encode",
"preset": "ipad-high"
},
"thumbnails": {
"use": "ipad",
"robot": "/video/thumbs"
},
"store": {
"use": [":original", "ipad", "thumbnails"],
"robot": "/sftp/store",
"credentials": "sftp_destination",
"path": "./transloadit-uploads/${unique_prefix}/${file.url_name}"
}
}
}
Estes exemplos usam o stack padrão atual do FFmpeg. Substitua sftp_destination pelas
suas Credenciais de Template para SFTP e escolha um caminho de destino
no seu servidor.
Para rejeitar malware, adicione um Step scanned no início:
{
"steps": {
"scanned": {
"use": ":original",
"robot": "/file/virusscan"
},
"ipad": {
"use": "scanned",
"robot": "/video/encode",
"preset": "ipad-high"
},
"thumbnails": {
"use": "ipad",
"robot": "/video/thumbs"
},
"store": {
"use": ["scanned", "ipad", "thumbnails"],
"robot": "/sftp/store",
"credentials": "sftp_destination",
"path": "./transloadit-uploads/${unique_prefix}/${file.url_name}"
}
}
}
Como você pode ver, adicionamos um Step de varredura. Fizemos com que ele consumisse
:original e alteramos os outros
Steps que antes dependiam de
:original para que usassem o Step scanned recém-adicionado.
É bem parecido com conectar várias ferramentas unix por pipes. Você também adora a flexibilidade
da nossa lógica de fluxo das Assemblies? 😄
Neste exemplo típico, aplicamos a barreira de proteção no primeiro Step. No entanto, assim como funciona o nosso Robot /file/filter, você pode inserir a varredura antivírus em qualquer Step. Isso faz sentido se você importar conteúdo de outros lugares, como faria com o nosso Robot /http/import. Nesse caso, você importaria primeiro, depois faria a varredura e, somente se não encontrássemos nenhuma ameaça, continuaria com a codificação e a exportação.
Para saber mais sobre este Robot ou seus parâmetros, como
error_on_decline, consulte a documentação.
Você pode começar a usar o /file/virusscan hoje pelo preço em $/GB do seu plano.
