Segredos do SMB

SMB

Com a popularização dos computadores ligados em rede, veio a necessidade controlar como a transferência de dados é feita. É nesse momento que entra o SMB

Um pouco de história

SMB é a sigla de Server Message Block. O conceito surgiu na década de 80, na IBM, para facilitar o compartilhamento de arquivos e impressoras. Com o passar dos anos foi recebendo inovações e expandindo sua influência.

Na mesma época surgia o NFS, criado pela Sun, para sistemas baseados em Unix. Também passou por evolução e persiste em sistemas baseados em Linux

Embora similares, o SMB é melhor e ganhou popularidade com a ajuda do Windows, que o utiliza desde a primeira versão.

Ambos são largamente utilizados e cada um seguindo seu propósito e ambiente, porém estão fortemente relacionados a sistemas legados.

Versões do SMB

SMB v1 – Ainda em uso, tornou-se um padrão para o compartilhamento de arquivos.

SMB v2 – Foi lançado com o Windows Vista e Server 2008. Teve uma otimização dos comandos e no desempenho.

SMB v2.1 – Foi lançado com o Windows 7 e Server 2008 R2. Adicionou suporte a leitura e escrita maior.

SMB v3.0 – Foi lançado com o Windows 8 e Server 2012. Adicionou criptografia e outras melhorias na confiabilidade e desempenho

SMB v3.1 .1 – Foi lançado com o Windows 10 e Server 2016. Adicionou criptografia mais forte e proteção contra ataques MITM.

Vulnerabilidades

Muito se fala sobre o SMB e seus problemas. Por ter sido um padrão no passado, acompanhou a evolução de qualquer data center, que incluía na sua estrutura, servidores Windows, Linux, Unix, Mainframes, etc. No passado, uma vez que era possível a troca de dados com o SMB e o NFS, ninguém se importava com segurança nem imaginava o estrago que estava por vir. Então surgiu o WannaCry, um ransomware que explorava as falhas do SMB, uma delas conhecida como EternalBlue.

O SMBv1 permitiu que o caos se propagasse por diversas empresas. Como citei, segurança não era tão importante assim. Senhas fracas, configurações inadequadas e falta de postura permitiram que a movimentação lateral e escalonamento de privilégios ocorressem com facilidade. Foi assim que o Wannacry se propagou.

A Microsoft fez a sua parte com a liberação de correções de segurança, e com a implementação das versões posteriores.

E não pense que o problema é só o Wannacry. Há outros malwares antigos que exploravam a mesma falha, e embora tenha sido deixados de lado, a exploração persiste e pode ser usada em novos malwares bem mais elaborados.

Usar ou não usar, eis a questão

O SMB funciona muito bem e está presente em toda infraestrutura, principalmente on-premises. Porém é preciso preparar o ambiente para fazer o melhor uso possível deste recurso.

A primeira coisa é desativar o SMBv1, resolve-se um baita problema com essa atitude. Nos sistemas Windows, é possível habilitar serviços de compartilhamento, como cliente e como servidor. Se as políticas de segurança estão bem definidas e respeitadas, estações de trabalho não devem compartilhar arquivos, logo o serviço LanManServer precisa ser desativado. Como os malwares chegam quase sempre pelas estações, obtém-se uma ótima restrição.

Com os servidores existem a questão do gerenciamento. Por terem uma configuração bastante rígida, podem ter os dois serviços, mesmo aqueles em que o compartilhamento de arquivos não faça parte da sua função principal.

Próximo passo é ativar o SMBv2 nos servidores, forçar o uso e analisar o tráfego para descobrir se ainda há máquinas que fazem comunicação usando o SMBv1. Há listas na internet que relacionam quais produtos e versões não têm suporte ao v2.

Uma vez que não exista mais comunicação usando o SMBv1, é hora de desativar o SMBv1, mantendo apenas o v2 e posteriores.

Saliento que tais ações requerem reinício do sistema, então se programe.

Comandos e configurações

A seguir estão os comandos e configurações necessário para ser feliz. Vou considerar que no seu parque estão máquinas com pelo menos Windows 10 e Server 2016. Se não, atualize o sistema operacional primeiro.

Remover SMBv1

Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

Desativar o SMBv1

Set-SmbServerConfiguration -EnableSMB1Protocol $false
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 -Force
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled
Habilitar SMBv2/v3

Set-SmbServerConfiguration -EnableSMB2Protocol $true
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 1 -Force
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb20 start= auto

 Outros comandos

A seguir estão alguns comandos para auxiliar no processo
Auditar o uso do SMBv1. Uma vez ativo, localizar o evento 3000
Set-SmbServerConfiguration -AuditSmb1Access $true

Detectar se o SMBv1 está instalado

Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

Detectar se o SMBv1 está habilitado

Get-SmbServerConfiguration | Select EnableSMB1Protocol
sc.exe qc lanmanworkstation

Detectar se o SMBv2 está habilitado

Get-SmbServerConfiguration | Select EnableSMB2Protocol
sc.exe qc lanmanworkstation

Criptografia

Esse é um recurso da v3. Habilitando isso tudo suspende a comunicação de tudo que é legado e não tem suporte.

Ativando

Set-SmbClientConfiguration -RequireEncryption $true

Detectando

Get-SmbClientConfiguration | Format-List -Property RequireEncryption

Finalizando

Reconfigurar o SMB no ambiente é apenas metade do trabalho. Aplicar as atualizações necessárias é a outra metade do processo, e sua obrigação. Se há sistemas impedindo este trabalho, repense se vale a pena mantê-los.


Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *