서버 메시지 블록
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]
- 정보통신기술용어해설