서버 메시지 블록

From CS Wiki

Server Message Block

네트워크 상 존재하는 노드들 간에 자원을 공유할 수 있도록 설계된 프로토콜

  • 주로 네트워크에 연결된 서버, 컴퓨터간 프린터, 포트 또는 기타 메시지를 전달하는데 사용된다.

출현[edit | edit source]

SMB는 1990년에 도스, 윈도우, NT, OS/2, 유닉스 등 난잡했던 운영체제 간 자원 공유를 쉽게 해줄 목적으로 만들어졌고, 윈도우로 거의 통일된 지금도 NAS, 네트워크 스캐너 등 리눅스 기기와의 파일 공유를 클라이언트 없이 탐색기로 직접 수정 가능하다는 장점이 있어 아직도 널리 쓰이고 있다. 리눅스에서는 samba라는 소프트웨어를 설치하면 누구나 쉽게 SMB를 이용한 공유가 가능하다.[1]

이 프로토콜은 윈도우에 종속되어 있어 호환성 때문에 수십 년 간 낡은 코드를 유지하면서 자리를 지켜왔으나, 엄청나게 많은 보안 취약점과 도저히 수정할 수 없는 코드로 인해 마이크로소프트의 골칫거리가 되어왔다. 특히 2017년 5월 발생한 WannaCry라는 랜섬웨어가 바로 SMB의 취약점을 노린 것으로 드러났다.

특징[edit | edit source]

  • 클라이언트/서버 및 요청/응답 구조의 프로토콜
    • SMB 서버의 화일시스템, 다른 자원(프린터 등)에 대하여 SMB 클라이언트가 네트워크를 통해 접근할 수 있게 함
  • SMB는 응용계층에 속하는 메세지 기반의 프로토콜
    • MS 제안 표준인 CIFS(Common Internet File System)에 대한 초안으로 받아들여짐
    • SMB 대신 CIFS(Common Internet File System)라고도 부름
  • SMB 클라이언트 및 서버
    • SMB 서버가, 서버 존재 정보에 대해 브로드캐스트하면, SMB 클라이언트는, 이 브로드캐스트에 응답하고 검색 목록을 구축 함
  • 한편, 서버와 클라이언트 상호간에 교환하는 요청과 응답은 SMB 명령어 또는 SMBs라고 불리우며, 그 포멧은 요청응답 모두 유사한 형태를 갖음  

발전[edit | edit source]

SMBv1[edit | edit source]

  • 1990년경, MS-DOS 시절 처음 등장한 프로토콜의 원형
  • SMB가 처음 만들어질 당시 보안에 대한 개념이 희박하여 보안성 취약
    • 윈도우 해킹에 자주 이용되며, 보안 패치를 통해 해결해보고자 하였으나 근본적인 설계상의 문재로 한계 존재
  • 호환성 때문에 윈도우 10까지도 계속 지속 지원
    • 처음 나온 이후 16년 동안 사용되었고 구현이 쉬워 NAS나 프린터 제작사들이 계속해서 SMBv1만 지원하는 제품 출시
    • OS 기본 설정이나 기업 방화벽으로는 공격을 막기위해 인터넷 망이 아닌 내부 네트워크에서만 수발신이 가능하도록 하였으나, 랜섬웨어가 인터넷을 통해 한 컴퓨터에 들어온 뒤 내부 네트워크 전체를 감염시키는 행태를 보이자 SMB 사용의 위험성이 다시 알려져 사용이 지양됨
  • 윈도우 10 RS3부터는 단계적으로 지원 종료
    • 기존 버전에서 업그레이드 한 컴퓨터는 15일 이내에 SMBv1을 사용하지 않으면 기능이 제거되며, 클린설치한 컴퓨터는 기본적으로 기능이 없이 설치됨[2]

SMBv2[edit | edit source]

  • SMBv1을 새롭게 대체하고자 만들어진 신버전의 프로토콜로 2006년, 윈도우 Vista부터 탑재
  • 완전히 새로 개발되었기 때문에 이전 버전과의 호환성 없음
    • 윈도우 XP 이하의 운영체제에서는 사용 불가
  • 현재 구형 리눅스 장비를 제외한 대부분의 기기가 SMBv2를 이용한 통신이 가능하며, SMBv1에 비해 속도와 보안 모두 기존보다 월등

SMBv3[edit | edit source]

  • 현재 기준 최신 버전
  • SMBv2에 속도 최적화 및 각종 기능을 추가한 것으로 2012년, 윈도우 8, 윈도우 서버 2012부터 탑재 (SMB 3.0)
  • SMBv3는 SMBv2와도 통신이 가능[3]
  • SQL 데이터 및 가상화 솔루션 간 파일 전송, 서버 클러스터 관리, 분산 전송을 통한 장애조치 등 데이터센터와 같은 서버 간 통신을 위한 기능 강화

같이 보기[edit | edit source]

참고 문헌[edit | edit source]

  • 정보통신기술용어해설

각주[edit | edit source]

  1. 애플 진영에서는 이것 대신 AFP라는 유사한 프로토콜을 주로 사용한다.
  2. 필요할 경우 다시 설치할 수 있으나 권장하지 않는다.
  3. 이 때문인지 SMBv2를 비활성화하면 SMBv3도 같이 꺼진다.