Scripts do PowerShell para profissionais de TI: Desativação de cifras SSL/TLS fracas de forma fácil

Quando se trata de segurança cibernética, a linha entre conformidade e comprometimento costuma ser tênue. Se você trabalha na área de TI, especialmente se é um profissional de TI ou faz parte de um provedor de serviços gerenciados (MSP), é provável que esteja seguindo essa linha há algum tempo. Sejamos realistas: cifras antigas, como SSL 2.0, SSL 3.0, TLS 1.0 e TLS 1.1, não só estão desatualizadas, como também são riscos de segurança cibernética que estão esperando para explodir. Esse é um problema que precisa ser resolvido, e esta postagem do blog é o seu guia passo a passo para fazer exatamente isso: desativaras cifras SSL fracas e aumentar sua postura de segurança no processo.

O que são cifras fracas e por que você deve se preocupar com elas?

As cifras fracas são algoritmos desatualizados usados na criptografia SSL/TLSque são suscetíveis a ataques. Os criminosos cibernéticos podem explorar esses links fracos para comprometer dados confidenciais. Considerando o rigoroso cenário regulatório atual, manter esses protocolos desatualizados em uso também pode acarretar riscos de conformidade, sem mencionar os danos à reputação que isso pode causar a uma organização.

Script do PowerShell para desativar cifras fracas em SSL/TLS

Se você estiver gerenciando uma infraestrutura baseada no Windows, o PowerShell é seu melhor amigo. Para aqueles que desejam mergulhar de cabeça, o script apresentado abaixo automatiza o processo de desativação de cifras fracas, como TLS 1.0, TLS 1.1, SSL 2.0 e SSL 3.0, enquanto ativa o TLS 1.2, mais robusto.

O roteiro

Observação: O script requer o PowerShell 5.1 e privilégios em nível de administrador para ser executado. Ele é compatível com o Windows 10 e o Windows Server 2016. Embora possa ser executado em versões mais antigas, como o Windows 7 ou o Server 2008 R2, o PowerShell 5.1 seria um pré-requisito.

#Requires -Version 5.1

<#
.SYNOPSIS
    Disables TLS 1.0, TLS 1.1, SSL 2.0, SSL 3.0. Enables TLS 1.2.
.DESCRIPTION
    Disables TLS 1.0, TLS 1.1, SSL 2.0, SSL 3.0. Enables TLS 1.2.
.EXAMPLE
    No Parameters Needed
    Disables TLS 1.0, TLS 1.1, SSL 2.0, SSL 3.0. Enables TLS 1.2.
.EXAMPLE
    -Restart
    Disables TLS 1.0, TLS 1.1, SSL 2.0, SSL 3.0. Enables TLS 1.2. Does Restart the computer.
.OUTPUTS
    String[]
.NOTES
    Minimum OS Architecture Supported: Windows 10, Windows Server 2016
    Could possibly run on Windows 7 and Server 2008 R2, but PowerShell 5.1 would be required.
    Release Notes:
    Initial Release
By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https://www.ninjaone.com/terms-of-use.
    Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. 
    Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. 
    Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. 
    Warranty Disclaimer: The script is provided “as is” and “as available”, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. 
    Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. 
    Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. 
    EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).
#>

[CmdletBinding()]
param ()

begin {
    function Test-IsElevated {
        $id = [System.Security.Principal.WindowsIdentity]::GetCurrent()
        $p = New-Object System.Security.Principal.WindowsPrincipal($id)
        $p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)
    }
}

process {
    if (-not (Test-IsElevated)) {
        Write-Error -Message "Access Denied. Please run with Administrator privileges."
        exit 1
    }
    
    @(
        [PSCustomObject]@{
            Protocol = 'SSL 2.0'
            Value    = 0
            Default  = 1
        }
        [PSCustomObject]@{
            Protocol = 'SSL 3.0'
            Value    = 0
            Default  = 1
        }
        [PSCustomObject]@{
            Protocol = 'TLS 1.0'
            Value    = 0
            Default  = 1
        }
        [PSCustomObject]@{
            Protocol = 'TLS 1.1'
            Value    = 0
            Default  = 1
        }
        [PSCustomObject]@{
            Protocol = 'TLS 1.2'
            Value    = 1
            Default  = 0
        }
    ) | ForEach-Object {
        $RegServerBase = "HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocols$($_.Protocol)Server"
        $RegClientBase = "HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocols$($_.Protocol)Client"
        
        New-Item $RegServerBase -Force -ErrorAction SilentlyContinue | Out-Null
        New-ItemProperty -Path $RegServerBase -Name 'Enabled' -Value $($_.Value) -PropertyType 'DWord' -Force -ErrorAction SilentlyContinue | Out-Null
        New-ItemProperty -Path $RegServerBase -Name 'DisabledByDefault' -Value $($_.Default) -PropertyType 'DWord' -Force -ErrorAction SilentlyContinue | Out-Null
        
        New-Item $RegClientBase -Force -ErrorAction SilentlyContinue | Out-Null
        New-ItemProperty -Path $RegClientBase -Name 'Enabled' -Value $($_.Value) -PropertyType 'DWord' -Force -ErrorAction SilentlyContinue | Out-Null
        New-ItemProperty -Path $RegClientBase -Name 'DisabledByDefault' -Value $($_.Default) -PropertyType 'DWord' -Force -ErrorAction SilentlyContinue | Out-Null

        $State = if (
            $(Get-ItemPropertyValue -Path $RegServerBase -Name 'Enabled') -eq 0 -and
            $(Get-ItemPropertyValue -Path $RegServerBase -Name 'DisabledByDefault') -eq 1
        ) { 'disabled' } else { 'enabled' }

        Write-Host "$($_.Protocol) has been $State."
    }

    Write-Host "Please reboot for settings to take effect."
}
end {}

 

Acesse mais de 300 scripts no NinjaOne Dojo

Obter acesso

Principais recursos do script

  1. Verifique se há privilégios administrativos: O script é encerrado se não for executado com permissões administrativas, o que protege contra a execução acidental.
  2. Edições de registro: O script faz alterações direcionadas no Registro do Windows, especificamente nas áreas que gerenciam os protocolos SSL/TLS, para aplicar as configurações de segurança.
  3. Loop de feedback: O script confirma quais protocolos foram ativados ou desativados.
  4. Não são necessários parâmetros: A execução do script é simples. Se você quiser reiniciar o computador após a execução do script, inclua o parâmetro -Restart.

Como os profissionais de TI e os MSPs podem se beneficiar?

Economia de tempo

Para profissionais de TI e MSPs que gerenciam vários sistemas, esse script é uma dádiva de Deus. Implemente-o em várias máquinas com facilidade, economizando inúmeras horas de trabalho.

Compliance

As estruturas regulatórias, como o PCI DSS, exigem que as cifras fracas sejam desativadas. Esse script oferece uma solução completa para obter conformidade com o mínimo de problemas.

Escalabilidade

O script pode ser incorporado a fluxos de trabalho de automação maiores, o que o torna uma ferramenta versátil para dimensionar as operações de segurança.

Mitigação de riscos

Ao desativar as cifras fracas no SSL/TLS, você reduz os riscos de violações de dados e ataques cibernéticos, melhorando assim a postura de segurança da sua organização.

Integração do script com o NinjaOne para operações simplificadas

Se você é um profissional de TI ou faz parte de um MSP, há uma boa chance de já estar familiarizado com o NinjaOne. Os recursos da nossa plataforma podem ir muito além das funções usuais de emissão de tíquetes, gerenciamento de patches e inventário que você pode associar a um RMM.

Veja como você pode integrar o script do PowerShell para desativar as cifras fracas em SSL/TLS em sua configuração do NinjaOne:

Implementação centralizada

O NinjaOne oferece implantação centralizada de scripts, permitindo que você execute esse script do PowerShell em vários endpoints simultaneamente. Navegue até a seção “Scripting”, carregue o script e execute-o nos sistemas que você gerencia – tudo a partir de um único painel.

Execução programada

Configure cronogramas no NinjaOne para executar o script em horários designados. Isso é particularmente útil para novos dispositivos que ingressam na rede ou para impor padrões de conformidade periodicamente.

Alertas e monitoramento

Configure o NinjaOne para monitorar as configurações do registro relacionadas aos protocolos SSL/TLS. Qualquer desvio das normas estabelecidas (como a ativação de uma cifra fraca) pode acionar um alerta, permitindo uma ação corretiva imediata.

Relatórios

Os relatórios abrangentes do NinjaOne permitem que você valide o sucesso da implementação do script. Você pode gerar relatórios que confirmem a desativação de cifras fracas, o que pode ser fundamental durante as auditorias de conformidade.

Considerações finais

Se você ainda estiver usando cifras fracas em 2023, considere isso como um alerta. Use o script do PowerShell acima para desativar as cifras fracas em ambientes Windows e dê um passo concreto para reforçar sua infraestrutura de segurança cibernética.

Você não usaria uma fechadura velha e enferrujada para proteger um cofre; não use cifras desatualizadas para proteger seus dados. É hora de modernizar e proteger sua rede. E se você se perguntar novamente como desativar as cifras fracas no Windows, lembre-se de que esta postagem do blog tem tudo o que você precisa.

Isenção de responsabilidade: Sempre teste os scripts e as alterações em um ambiente controlado antes de implantá-los na produção.

Add a Comment

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

Próximas etapas

Montar uma equipe de TI eficaz requer uma solução centralizada que seja a principal ferramenta de entrega de serviços. Com NinjaOne, a TI monitora, gerencia, protege e oferece suporte a todos os dispositivos, onde quer que estejam, dispensando infraestrutura complexa no local.

Saiba mais sobre a solução NinjaOne Remote Script Deployment, agende uma demonstração, ou inicie sua avaliação gratuita da plataforma NinjaOne.

Categories:

You might also like