SMB(서버 메시지 블록)는 네트워크에 연결된 컴퓨터 간의 파일, 프린터 및 통신을 공유하기 위해 Windows에서 주로 사용되는 네트워크 계층 프로토콜입니다. 이 프로토콜은 주로 IBM/Microsoft에서 만들었으며 첫 번째 구현은 DOS/Windows NT 3.1에서 이루어졌습니다. 그 후 SMB는 XP, Vista, 7, 8, 10, 11과 같은 거의 모든 Windows 버전의 일부입니다. SMB 프로토콜은 Windows의 서버 버전에도 있습니다. SMB 프로토콜은 Windows 기본 프로토콜이지만 Linux(SAMBA를 통해) 및 macOS에서도 지원됩니다.
SMB 작업 메커니즘
가장 간단한 형태로 SMB 클라이언트 시스템은 SMB 인증에 성공한 후 SMP 포트(포트 445)를 사용하여 SMB 서버에 연결하여 SMB 기반 공유에 액세스합니다. SMB 연결이 설정되면 파일 공동 작업, 프린터 공유 또는 기타 네트워크 기반 작업을 수행할 수 있습니다.
SMB 프로토콜의 역사
SMB 프로토콜은 1980년대 IBM 그룹에 의해 개발되었습니다. 수년에 걸쳐 진화하는 네트워크 요구 사항을 충족하기 위해 SMB 프로토콜은 버전 또는 방언이라고 하는 여러 변형을 통해 발전했습니다. 이 프로토콜은 여전히 LAN 또는 직장에서 리소스 공유에 가장 많이 사용되는 프로토콜 중 하나입니다.
SMB 프로토콜 방언 또는 버전
끊임없이 변화하는 IT 지평과 호환되도록 SMB 프로토콜은 SMB 프로토콜의 원래 구현에서 많은 개선을 거쳤습니다. 가장 주목할만한 것은 다음과 같습니다.
- 중소기업 1 DOS에서 파일을 공유하기 위해 1984년에 만들어졌습니다.
- CIFS (또는 Common Internet File System)은 1996년 Microsoft에 의해 Windows 95에서 SMB의 Microsoft 버전으로 도입되었습니다.
- 중소기업 2 2006년에 Windows Vista 및 Windows Server 2008의 일부로 출시되었습니다.
- 중소기업 2.1 Windows Server 2008 R2 및 Windows 7과 함께 2010년에 도입되었습니다.
- SMB 3 Windows 8 및 Windows Server 2012와 함께 2012년에 출시되었습니다.
- SMB 3.02 2014년 Windows 8.1 및 Windows Server 2012 R2로 데뷔했습니다.
- 중소기업 3.1.1 Windows 10 및 Windows Server 2016과 함께 2015년에 도입되었습니다.
SMBv1
SMBv1은 1980년대에 IBM에서 개발되었으며 1990년대에 기능이 추가되어 Microsoft에서 CIFS로 이름을 변경했습니다. 당시 SMB 1은 큰 성공을 거두었지만 오늘날의 연결된 세상을 위해 개발되지 않았습니다(그 시대에 개발된 모든 소프트웨어 응용 프로그램과 마찬가지로). 결국 그 이후로 30년 이상의 정보 혁명이 흘렀습니다. Microsoft는 2013년에 SMBv1의 사용을 중단했으며 기본적으로 더 이상 Windows 및 Windows 서버 버전에 설치되지 않습니다.
구식 기술로 인해 SMBv1은 매우 안전하지 않습니다. 여기에는 많은 익스플로잇/취약점이 있으며 이들 중 많은 부분이 대상 시스템에서 원격 제어 실행을 허용합니다. SMB 1 취약점에 대한 사이버 보안 전문가의 경고가 있었지만, 악명 높은 WannaCry 랜섬웨어 공격을 통해 SMBv1에서 발견된 취약점을 겨냥한 공격임을 매우 분명하게 밝혔습니다.
이러한 취약점으로 인해 SMB1을 비활성화하는 것이 좋습니다. SMB1 취약점에 대한 자세한 내용은 Malwarebytes 블로그 페이지에서 확인할 수 있습니다. 사용자는 Metasploit을 사용하여 SMB1 취약점(특히 EternalBlue)을 직접 확인할 수 있습니다.
SMBv2 및 SMBv3
SMBv2 및 SMBv3은 SMB 프로토콜에 대해 다음과 같은 향상된 기능을 제공합니다(SMB 1에는 이러한 기능이 없음).
- 사전 인증 무결성
- 보안 언어 협상
- 암호화
- 안전하지 않은 게스트 인증 차단
- 더 나은 메시지 서명
시스템에 SMBv2 또는 3이 있는 경우 일부 사용자의 마음에 자연스러운 질문이 떠오를 수 있습니다. 사용자 컴퓨터의 SMB 1 취약점은 다루지 않습니까? 그러나 SMB에 대한 이러한 개선 사항은 다르게 작동하고 다른 메커니즘을 사용하기 때문에 대답은 아니오입니다. SMBv2 및 3이 있는 시스템에서 SMBv1이 활성화된 경우 SMB 1이 중간자 공격(MiTM)을 제어할 수 없으므로 SMBv2 및 3이 취약해질 수 있습니다. 공격자는 자신의 SMBv2와 3을 차단하고 SMB 1만 사용하여 대상 시스템에서 악성 코드를 실행하면 됩니다.
SMB 1 비활성화의 효과
본질적으로 필요하지 않은 경우(Windows XP 또는 SMB 1을 사용하는 레거시 응용 프로그램을 실행하는 컴퓨터의 경우) 모든 사이버 보안 전문가는 시스템 및 조직 수준에서 SMBv1을 비활성화할 것을 권장합니다. 네트워크에 SMBv1 응용 프로그램이나 장치가 없으면 아무 영향도 받지 않지만 모든 시나리오에서 그런 것은 아닙니다. SMBv1을 비활성화하는 모든 시나리오는 다를 수 있지만 I.T. 관리자는 SMB 1을 비활성화할 때 다음을 고려할 수 있습니다.
- 호스트와 애플리케이션 간의 암호화되지 않거나 서명된 통신
- LM 및 NTLM 통신
- 낮은(또는 높은) 수준 클라이언트 간의 파일 공유 통신
- 파일 공유는 서로 다른 운영 체제 간의 통신(예:Linux 또는 Windows 간 통신)
- 기존 소프트웨어 애플리케이션 및 고정 SMB 기반 통신 애플리케이션(예:Sophos, NetApp, EMC VNX, SonicWalls, vCenter/vSphere, Juniper Pulse Secure SSO, Aruba 등)
- 프린터 및 인쇄 서버
- Windows 기반 애플리케이션에 대한 Android 통신
- MDB 기반 데이터베이스 파일(SMBv2로 손상될 수 있음 SMBv3 및 SMBv1은 이러한 파일에 필수적임).
- SMB 1을 사용하는 백업 또는 클라우드 애플리케이션
SMB 1 비활성화 방법
많은 방법을 사용하여 SMB1을 비활성화할 수 있으며 사용자는 자신의 시나리오에 가장 적합한 방법을 사용할 수 있습니다.
기본적으로 비활성화됨
SMBv1은 Windows 10 Fall Creators Update 및 이후 버전에서 기본적으로 비활성화되어 있습니다. SMB 1은 Windows 11에서 기본적으로 비활성화되어 있습니다. 서버 버전의 경우 Windows Server 버전 1709(RS3) 이상에서는 SMB1이 기본적으로 비활성화되어 있습니다. SMB1의 현재 상태를 확인하려면:
- Windows를 클릭합니다. , PowerShell 검색 , 오른쪽 클릭 그리고 하위 메뉴에서 관리자 권한으로 실행을 선택합니다. .
- 지금 실행 다음:
Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol
선택
Microsoft는 Windows 업데이트를 통해 SMB 1을 자동으로 제거하는 기능을 포함했지만 사용자가 다시 활성화하면 나중에 프로토콜이 비활성화되지 않고 시스템이 취약해질 수 있습니다.
Windows 10, 8 또는 7의 제어판 사용
- Windows를 클릭합니다. , 검색하고 제어판을 엽니다. .
- 이제 프로그램을 선택합니다. Windows 기능 켜기 또는 끄기를 엽니다. .
- 그런 다음 SMB 1.0/CIFS 파일 공유 지원을 선택 취소합니다. 적용을 클릭합니다. .
- 지금 다시 시작 시스템과 SMB 1은 시스템에서 비활성화됩니다.
Windows 11의 선택적 기능 메뉴 사용
- Windows를 마우스 오른쪽 버튼으로 클릭 설정을 엽니다. .
- 이제 왼쪽 창에서 앱으로 이동합니다. 을 클릭한 다음 오른쪽 창에서 선택적 기능을 엽니다. .
- 그런 다음 아래로 스크롤하여 관련 설정에서 추가 Windows 기능을 클릭합니다. .
- 이제 표시된 메뉴에서 SMB 1.0/CIFS 파일 공유 지원을 선택 취소합니다. 적용을 클릭합니다. .
- 그런 다음 다시 시작 PC를 다시 시작하면 PC에서 SMBv1이 비활성화됩니다.
PowerShell 사용
위의 두 가지 방법은 최대 사용자의 요구 사항을 충족할 수 있지만 서버 시스템에서는 관리자가 PowerShell을 사용해야 할 수도 있습니다(단, 클라이언트 컴퓨터에서도 단계가 제대로 작동할 수 있음).
- Windows를 클릭합니다. , PowerShell 검색 , 오른쪽 클릭 여기에서 관리자 권한으로 실행을 선택합니다. .
- 지금 실행 다음:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 –Force or Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol or Set-SmbServerConfiguration -EnableSMB1Protocol $false or on server Remove-WindowsFeature -Name FS-SMB1 or Set-SmbServerConfiguration -EnableSMB1Protocol $false
- 그런 다음 다시 시작 시스템을 다시 시작하면 시스템의 SMB 1이 비활성화됩니다.
시스템 레지스트리 편집기 사용
Windows Server 2003과 같이 PowerShell이 없는 서버 컴퓨터의 관리자는 단계가 클라이언트 컴퓨터에서도 제대로 작동하지만 레지스트리 편집기를 사용하여 SMB 1을 비활성화할 수 있습니다.
경고 :
시스템 레지스트리를 편집하는 것은 능숙한 작업이며 제대로 수행하지 않으면 시스템, 데이터 또는 네트워크를 위험에 빠뜨릴 수 있으므로 극도의 주의를 기울이고 모든 위험을 감수해야 합니다.
- Windows를 클릭합니다. Regedit 검색 , 오른쪽 클릭 그리고 하위 메뉴에서 관리자 권한으로 실행을 선택합니다. .
- 이제 탐색 다음 경로로:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
- 그런 다음 오른쪽 창에서 SMB1을 두 번 클릭합니다. 값 설정 ~ 0 . Windows 7과 같은 일부 사용자는 SMB1 DWORD(32비트) 값을 생성하고 값을 0으로 설정해야 할 수 있습니다.
그룹 정책 편집기 사용
위의 단계는 개별 컴퓨터에서 작동하지만 조직 수준에서 SMB 1을 비활성화하기 위해 관리자가 그룹 정책 편집기를 사용할 수 있습니다.
SMB 1 서버 비활성화
- 그룹 정책 관리 콘솔 실행 오른쪽 클릭 GPO 새 기본 설정을 추가해야 하는 위치
- 그런 다음 수정을 선택합니다. 다음으로 이동 :
Computer Configuration>> Preferences>> Windows Settings
- 이제 왼쪽 창에서 오른쪽 클릭 레지스트리에서 레지스트리 항목을 선택합니다. .
- 그런 다음 입력 다음:
Action: Create Hive: HKEY_LOCAL_MACHINE Key Path: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters Value name: SMB1 Value type: REG_DWORD Value data: 0
- 지금 신청 변경 및 다시 시작 시스템.
SMB1 클라이언트 비활성화
- 그룹 정책 관리 콘솔 실행 오른쪽 클릭 GPO 새 기본 설정을 추가해야 하는 위치
- 그런 다음 수정을 선택합니다. 다음으로 이동 :
Computer Configuration>> Preferences>> Windows Settings
- 이제 왼쪽 창에서 레지스트리를 마우스 오른쪽 버튼으로 클릭합니다. 새 레지스트리 항목을 선택합니다. .
- 그런 다음 입력 다음:
Action: Update Hive: HKEY_LOCAL_MACHINE Key Path: SYSTEM\CurrentControlSet\services\mrxsmb10 Value name: Start Value type: REG_DWORD Value data: 4
- 지금 신청 변경하고 DependOnService를 엽니다. 속성 .
- 그런 다음 설정 다음과 신청 변경 사항:
Action: Replace Hive: HKEY_LOCAL_MACHINE Key Path: SYSTEM\CurrentControlSet\Services\LanmanWorkstation Value name: DependOnService Value type REG_MULTI_SZ Value data: Bowser MRxSmb20 NSI
- 최종 보기는 다음과 같아야 합니다. 재부팅 시스템.
SMBv2 또는 3 비활성화
SMB 1의 위협 수준으로 인해 일부 사용자는 현재 불필요한 SMBv2 또는 3을 비활성화하기로 결정할 수 있습니다. 사용자가 SMBv2 또는 3을 비활성화하면 다음을 잃을 수 있습니다.
- 로컬 캐싱
- 대규모 파일 공유 네트워크
- 장애 조치
- 심볼릭 링크
- 10GB 이더넷
- 대역폭 제한
- 다중 채널 내결함성
- 지난 30년 동안 발견된 보안 및 암호화 개선 사항
사용자가 SMB1을 사용하기 위해 바인딩
다음 시나리오에서는 사용자가 SMB 1을 사용하도록 강제할 수 있습니다.
- Windows XP 또는 Windows Server 시스템 사용자
- 사용자는 시스템 관리자가 네트워크 환경을 통해 탐색해야 하는 노후된 관리 소프트웨어를 사용해야 합니다.
- '스캔하여 공유'할 수 있는 구형 펌웨어가 설치된 구형 프린터 사용자
다른 방법이 없는 경우에만 SMB1을 사용하세요. . 응용 프로그램 또는 장치에 SMBv1이 필요한 경우 해당 응용 프로그램 또는 장치의 대안을 찾는 것이 가장 좋습니다(지금은 비용이 많이 들지만 장기적으로 도움이 될 것입니다. WannaCry로 고통받는 사용자 또는 조직에 문의하십시오).
그게 다야. 질문이나 제안 사항이 있으면 Google에 핑을 보내는 것을 잊지 마세요. 댓글에서.