서버 메시지 블록

위키백과, 우리 모두의 백과사전.
(CIFS에서 넘어옴)

서버 메시지 블록(Server Message Block, SMB)은 도스윈도우에서 파일이나 디렉터리 및 주변 장치들을 공유하는데 사용되는 메시지 형식이다. NetBIOS는 SMB 형식에 기반을 두고 있으며, 많은 네트워크 제품들도 SMB를 사용한다. 이러한 SMB 기반의 네트워크에는 랜매니저, 윈도우 포 워크그룹(Windows for Workgroups), 윈도우 NT, 그리고 랜 서버(Lan Server) 등이 있다. 서로 다른 운영 체제 사이에 파일을 공유할 수 있도록 하기 위해 SMB를 사용하는 제품들도 많이 있다. 그 중 하나가 삼바인데, 유닉스와 윈도우 컴퓨터들간에 디렉터리와 파일을 공유할 수 있게 해 준다.

SMB는 대부분 마이크로소프트 윈도우를 실행하고 있는 컴퓨터에서 이용된다. 마이크로소프트 환경에서 사용자들은 대개 이를 단순히 "마이크로소프트 윈도우 네트워크"로 알고 있다.

서버 메시지 블록(SMB)에 대해 논할 때에는 다음을 구별해야 한다:

기능[편집]

SMB는 세션 네트워크 계층의 최상위에서 여러 방법으로 수행할 수 있다:

역사[편집]

SMB / CIFS / SMB1[편집]

Barry Feigenbaum은 도스 인터럽트 33 (21h) 로컬 파일 접근을 네트워크 파일 시스템으로 전환하기 위해 IBM에서 SMB를 설계하였다.[3] 마이크로소프트는 가장 흔히 사용되는 버전에 상당한 수정을 하였다. 마이크로소프트는 1990년 경 3Com과 함께 OS/2용으로 개발을 시작한 SMB를 랜 매니저 제품에 병합하였으며 윈도우 포 워크그룹(1992년 경) 및 차기 운영 체제에서 이 프로토콜에 기능 추가를 계속하였다.

SMB 2.0[편집]

마이크로소프트는 2006년에 윈도우 비스타에서 새로운 버전의 프로토콜(SMB 2.0, SMB2)를 선보였다.[4]

SMB 2.1[편집]

윈도우 7과 윈도우 서버 2008 R2에 도입된 SMB 2.1은 새로운 잠금 매커니즘과 더불어 사소한 성능 개선을 추가하였다.[5]

SMB 3.0[편집]

SMB 3.0(과거 명칭: SMB 2.2)[6]윈도우 8[6], 윈도우 서버 2012[6]와 함께 도입되었다.

SMB 3.0.2[편집]

SMB 3.0.2(당시 3.02로 알려짐)는 윈도우 8.1과 윈도우 서버 2012 R2 이후에 도입되었다.[7][8]

SMB 3.1.1[편집]

SMB 3.1.1은 윈도우 10윈도우 서버 2016과 함께 도입되었다.[9]

구현[편집]

클라이언트-서버 접근[편집]

SMB는 클라이언트-서버 접근을 통해 동작하며, 클라이언트는 특정한 요청을 하면 서버는 이에 따라 응답하는 방식이다.

삼바[편집]

NQ[편집]

NQ는 1998년에 지멘스 데이터 커뮤니케이션스의 전 CEO Sam Widerman이 설립한 이스라엘 기업 Visuality Systems가 개발한 포터블 SMB 클라이언트 및 서버 구현체이다.

MoSMB[편집]

MoSMB는 리눅스 및 기타 유닉스 계열 운영 체제를 위한 사유 SMB 구현체로서, Ryussi Technologies가 개발하였다. SMB 2.x, SMB 3.x만 지원한다.[10]

Tuxera SMB[편집]

Tuxera SMB는 Tuxera가 개발한 사유 SMB 서버 구현체로, 커널이나 사용자 공간에서 실행할 수 있다.[11] SMB 3.0 및 이전 버전들을 지원한다.

보안[편집]

수년에 걸쳐, 이 프로토콜이나 이 프로토콜에 기반을 둔 구성 요소에 대한 마이크로소프트의 구현체들에 수많은 보안 취약점들이 있었다.[12][13] 다른 업체들의 보안 취약점들은 NTLMv1, LanMan, 플레인텍스트 암호와 같은 프로토콜을 선호하면서 NTLMv2커베로스와 같은 더 새로운 인증 프로토콜의 지원 부족으로 인해 발생되었다. 실시간 공격을 추적한 바에 따르면[14] SMB는 침투 시도를 위한 주된 공격 벡터들 가운데 하나인데[15], 2014년의 소니 픽처스 엔터테인먼트 해킹 사건이라든지[16] 2017년의 워너크라이 랜섬웨어 공격[17]을 예로 들 수 있다.

같이 보기[편집]

각주[편집]

  1. “Direct hosting of SMB over TCP/IP”. Microsoft. 2007년 10월 11일. 2009년 11월 1일에 확인함. 
  2. Richard Sharpe (2002년 10월 8일). “Just what is SMB?”. 2009년 12월 2일에 원본 문서에서 보존된 문서. 2011년 7월 18일에 확인함. 
  3. Tridgell, Andrew. “Myths About Samba”. 2016년 1월 3일에 확인함. 
  4. Navjot Virk and Prashanth Prahalad (2006년 3월 10일). “What's new in SMB in Windows Vista”. 《Chk Your Dsks》. MSDN. 2006년 5월 5일에 원본 문서에서 보존된 문서. 2006년 5월 1일에 확인함. 
  5. “Implementing an End-User Data Centralization Solution”. Microsoft. 2009년 10월 21일. 10–11쪽. 2010년 9월 6일에 원본 문서에서 보존된 문서. 2009년 11월 2일에 확인함. 
  6. Jeffrey Snover (2012년 4월 19일). “Windows Server Blog: SMB 2.2 is now SMB 3.0”. Microsoft. 2012년 9월 24일에 원본 문서에서 보존된 문서. 2012년 6월 14일에 확인함. 
  7. Jose Barreto (2014년 7월 7일). “Updated Links on Windows Server 2012 R2 File Server and SMB 3.02”. Microsoft TechNet Server & Management Blogs. 
  8. Jose Barreto (2013년 12월 12일). “Storage Developer Conference – SDC 2013 slides now publicly available. Here are the links to Microsoft slides…”. Microsoft TechNet Server & Management Blogs. 
  9. Jose Barreto (2015년 5월 5일). “What’s new in SMB 3.1.1 in the Windows Server 2016 Technical Preview 2”. Microsoft TechNet Server & Management Blogs. 
  10. Dr. Sunu Engineer. “Building a Highly Scalable and Performant SMB Protocol Server” (PDF). 
  11. “Microsoft and Tuxera strengthen partnership through Tuxera SMB Server”. 《Microsoft》. Microsoft News Center. 2017년 2월 6일에 확인함. 
  12. “MS02-070: Flaw in SMB Signing May Permit Group Policy to Be Modified”. Microsoft. 2007년 12월 1일. 2009년 11월 1일에 확인함. 
  13. “MS09-001: Vulnerabilities in SMB could allow remote code execution”. Microsoft. 2009년 1월 13일. 2009년 11월 1일에 확인함. ,
  14. “Sicherheitstacho.eu”. Deutsche Telekom. 2013년 3월 7일. 2013년 3월 7일에 확인함. 
  15. “Alert (TA14-353A) Targeted Destructive Malware”. US-CERT. 
  16. “Sony Hackers Used Server Message Block (SMB) Worm Tool”. 
  17. “WannaCry Ransomware Attack Hits Victims With Microsoft SMB Exploit”. 《eWeek. 2017년 5월 13일에 확인함.