Olá, Vinicius, como vai?
Sua análise do código está correta. O problema realmente está no uso de um único sinal de igual, o que faz com que a expressão não realize uma comparação, mas sim uma atribuição.
Ao usar somente um sinal de igual, o JavaScript atribui o valor de senhaDoSistema à variável senha. Como o valor senhaDoSistema não é um valor nulo, indefinido, zero, uma string vazia, ou false, o if sempre será avaliado como verdadeiro. Isso explica porque o acesso é sempre permitido, independentemente do que o usuário digite.
Usar == é a forma correta de realizar uma comparação simples de valores em JavaScript. Para uma verificação mais rigorosa, que compara tanto o valor quanto o tipo de dado, você poderia utilizar ===. Por exemplo, 2 == '2' retornaria verdadeiro, enquanto 2 === '2' retornaria falso.
É por meio de análises como essa que desenvolvemos nosso raciocínio lógico na programação. Continue compartilhando suas soluções no fórum.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!