Ofuscação ou integridade de páginas? Escolha a categoria primeiro
O Jscrambler vende duas coisas que resolvem problemas sem relação entre si, e a maior parte de quem procura uma alternativa quer apenas uma delas.
A proteção de código ofusca o seu próprio JavaScript e adiciona antiadulteração e antidepuração para que alguém fazendo engenharia reversa do seu bundle tenha mais trabalho. O modelo de ameaça é a sua propriedade intelectual e a lógica client-side que você não quer ver copiada ou contornada.
A integridade de páginas observa os scripts de terceiros que rodam nas suas páginas, para você saber o que carregou, o que fez e se mudou. O modelo de ameaça é um skimmer na página de pagamento, um fornecedor comprometido ou um script de quarta parte que o seu fornecedor trouxe sem avisar. Esta é a metade que corresponde aos requisitos 6.4.3 e 11.6.1 do PCI DSS 4.0.1.
Quase todas as alternativas abaixo substituem apenas a segunda metade. Se você precisa da primeira, o mercado é bem menor e a opção open source no fim da lista costuma ser o ponto de partida. Errar aqui é o engano mais caro desta avaliação, porque uma ferramenta de monitoramento de scripts não vai proteger o seu código-fonte e um ofuscador não vai fazer você passar por uma revisão de QSA.
As opções em detalhe
cside
A cside é um único script JavaScript first-party com dois modelos de operação. O Script Method busca e analisa os scripts de terceiros na infraestrutura da cside antes que eles rodem na sessão, e arquiva o payload bruto como evidência. O Scan Method roda um crawler agêntico que mapeia a cadeia de carregamento dos fornecedores, incluindo os scripts de quarta parte que eles trazem junto. Não exige mudança de DNS e não fica na frente do seu tráfego.
Como substituto do Jscrambler Webpage Integrity, chega perto de equivalente em monitoramento e ainda acrescenta o arquivamento do payload, útil quando um QSA pergunta o que um script estava de fato fazendo em uma data específica. Os preços são públicos e há um plano gratuito, então dá para implantar e avaliar sem um ciclo de compras.
Escolha a cside em vez do Jscrambler quando os requisitos 6.4.3 e 11.6.1 do PCI DSS forem o motivo da compra e você quiser evidências para entregar a um auditor.
Escolha o Jscrambler em vez da cside quando você precisar de ofuscação de JavaScript e hardening de código, algo que a cside não faz de forma alguma.
Reflectiz
O Reflectiz adota uma abordagem de scanner: revisa as suas páginas em uma programação a partir da própria infraestrutura em nuvem, então não há nada para adicionar à página e nenhuma pegada em tempo de execução. Isso é genuinamente atraente se o seu time de segurança reluta em introduzir mais um script, ou se você quer cobertura rápida em muitos domínios.
A contrapartida é inerente à varredura programada. A cobertura se limita ao que o crawler vê quando roda, então comportamentos que só aparecem para usuários logados, em determinadas regiões ou entre duas varreduras podem passar despercebidos.
Escolha o Reflectiz em vez da cside quando adicionar qualquer script à página for um impedimento e visibilidade periódica for suficiente.
Source Defense
O Source Defense é a opção arquiteturalmente mais diferente da lista. Em vez de apenas reportar sobre os scripts de terceiros, ele aplica um modelo de permissões que restringe o que esses scripts podem fazer na página, de modo que um script de fornecedor comprometido pode ser impedido de ler um campo de formulário.
Essa postura de prevenção é a razão para escolhê-lo. Ela também significa mais configuração no começo, porque você define política por script em vez de apenas ligar um monitoramento.
Escolha o Source Defense em vez da cside quando o seu requisito for restringir ativamente o comportamento dos scripts, e não detectá-lo e documentá-lo.
Akamai Page Integrity Manager
A Akamai entrega monitoramento de scripts pela sua plataforma de edge. Para uma organização já padronizada na Akamai, esse é o caminho de menor resistência: nenhum fornecedor novo, nenhum contrato novo, e ele herda os controles de acesso que a plataforma já tem.
A restrição é a mesma coisa que o benefício. Ele pressupõe que você é cliente da Akamai, e sua profundidade em forense de scripts costuma ser menor que a de ferramentas dedicadas só a isso.
Escolha a Akamai em vez da cside quando a consolidação de fornecedores importar mais que a profundidade e você já estiver na Akamai.
Imperva Client-Side Protection
O módulo client-side da Imperva entrega inventário de scripts e gestão da Content Security Policy dentro da plataforma da Imperva, mirando diretamente os requisitos do PCI DSS. Assim como a Akamai, seu apelo principal é para clientes atuais que querem um console só e um contrato só.
Se você ainda não é cliente do WAF da Imperva, comprar a plataforma para obter o módulo client-side raramente é o caminho mais barato até a conformidade.
Cloudflare Client-Side Security
Antes chamado de Page Shield, o produto client-side da Cloudflare monitora os scripts e as conexões que observa no tráfego que já passa pela Cloudflare, e reporta violações da Content Security Policy. Ele vem incluído nos planos superiores, então para muitos times o custo incremental é zero.
A limitação decorre de onde ele está: ele vê o que o edge vê. Perguntas mais profundas sobre o que um script fez depois de já estar rodando no navegador não são bem a sua alçada.
Escolha a Cloudflare em vez da cside quando você já estiver em um plano que a inclui e visibilidade básica de scripts atender ao seu escopo.
javascript-obfuscator
A opção open source, e a resposta honesta para "existe uma alternativa gratuita ao Jscrambler". É um ofuscador maduro e bastante usado que você hospeda e conecta ao seu build. Ele faz codificação de strings, achatamento de fluxo de controle, injeção de código morto e saída autodefensiva.
O que você abre mão é de tudo em volta da transformação: nenhuma detecção de ameaças em tempo de execução, nenhuma telemetria de antidepuração de volta para um console, nenhum contrato de suporte e nenhuma ajuda com monitoramento de scripts de terceiros ou com escopo de PCI. Para times cujo único requisito era "deixar o nosso bundle mais difícil de ler", isso costuma ser uma troca aceitável.
Como escolher uma alternativa ao Jscrambler
Quatro perguntas resolvem a maior parte das avaliações:
- Qual produto você está substituindo? Proteção de código e integridade de páginas quase não têm fornecedores em comum. Responda isso antes de montar qualquer lista.
- Há um prazo de conformidade por trás? Se os requisitos 6.4.3 e 11.6.1 do PCI DSS estão no escopo, pergunte a cada fornecedor qual artefato ele entrega a um auditor, e não apenas o que o painel dele mostra.
- Você pode adicionar um script à página? Se não, as ferramentas baseadas em scanner são a sua categoria e vale aceitar a contrapartida de cobertura de forma explícita.
- Você quer detecção ou prevenção? O monitoramento diz o que aconteceu. Um modelo de permissões impede que parte disso aconteça. São orçamentos diferentes e riscos de implantação diferentes.
Se você prefere o confronto direto em vez do panorama, o comparativo cside vs Jscrambler coloca preços, evidências e cobertura lado a lado.
Recursos relacionados
Researching & writing about client side security.