netbiosd가 실제로 하는 일
netbiosd는 macOS에 함께 포함된 백그라운드 프로세스이며, Apple이 코드 서명한 구성요소입니다. 이 프로세스의 역할은 NetBIOS를 구현하는 것으로, Windows 기기들이 수십 년 동안 로컬 네트워크에서 서로를 알리고 찾기 위해 사용해 온 오래된 네트워크 이름 지정 계층입니다.
NetBIOS는 오늘날 우리가 현대 네트워킹이라고 생각하는 대부분보다 앞서 있습니다. 같은 사무실 네트워크의 컴퓨터가 짧고 사람이 읽기 쉬운 이름을 정하고, 이를 방송해 다른 기기들이 주소 뒤의 올바른 장치를 찾을 수 있도록 하던 시대를 위해 설계됐습니다. Windows는 이를 채택했고, 파일 및 프린터 공유와 강하게 엮였으며, 전통적인 Network Neighborhood 탐색의 기반이 됐습니다.
Apple이 이를 지원한 이유는 Mac이 오랫동안 Windows 네트워크와 공존해야 했기 때문입니다. Mac이 Finder 사이드바에서 Windows PC를 볼 수 있거나, 파일 공유를 켰을 때 Windows PC가 Mac을 볼 수 있다면, netbiosd가 그 연결을 가능하게 했을 수 있습니다. 오래된 네트워크 연결 저장 장치와 네트워크 프린터도 마찬가지인데, 이들 중 다수는 SMB와 Windows식 탐색을 기반으로 만들어졌습니다.
경계는 정확히 짚어둘 필요가 있습니다. netbiosd는 로컬 네트워크에서의 발견과 이름 지정을 담당합니다. 어떤 기기가 어떤 짧은 이름에 응답하는지 정하고, 같은 서브넷의 기기들이 서로를 알 수 있게 합니다. 실제 공유에 연결한 뒤의 파일 전송은 시스템의 다른 부분이 처리합니다.
왜 macOS 방화벽이 그것에 대해 묻는가
macOS 애플리케이션 방화벽은 단순한 원리로 작동합니다. 프로그램이 수신 연결을 허용하려고 할 때, macOS가 한 번 묻고 답을 기억합니다. 대화창을 띄우는 것은 나가는 트래픽이 아닙니다. 무언가가 수신 대기 중일 때입니다.
netbiosd는 설계상 수신 대기합니다. 이름 알림은 양방향 대화입니다. Mac이 자신의 이름을 방송해야 하고, 다른 기기가 특정 이름의 주인을 물을 때 응답 가능해야 합니다. 즉, 로컬 네트워크에서 수신 소켓을 여는 것이고, 이것이 바로 방화벽이 드러내도록 만든 동작입니다. NetBIOS 이름 서비스는 전통적으로 UDP 포트 137을, 데이터그램 서비스는 UDP 포트 138을 사용합니다. 이 번호들은 표준이지만, 실제 사용 여부는 macOS 버전과 활성화한 공유 서비스에 따라 달라질 수 있습니다.
그래서 netbiosd는 대부분의 시스템 프로세스보다 그 대화상자에 훨씬 자주 나타납니다. 이상 동작하는 것도 아니고 바뀐 것도 아닙니다. 같은 네트워크의 다른 기기에서 접근 가능해야 하는 것이 정상인 몇 안 되는 Apple 데몬 중 하나이며, 방화벽은 서명자가 누구인지와 상관없이 그런 프로세스를 모두 똑같이 다룹니다.
이 프롬프트는 시스템 업데이트 뒤에도 다시 나타나는 경향이 있습니다. 업그레이드 중 바이너리가 교체되면 방화벽이 이전에 본 프로그램으로 인식하지 못해 다시 물을 수 있습니다. 이는 정상이며, 문제가 있다는 뜻이 아닙니다.
이것이 맬웨어인지, 그리고 스스로 확인할 수 있는가
netbiosd는 맬웨어가 아닙니다. macOS의 일부로 배포되는 Apple의 1차 구성요소이며, 정상적인 시스템에서는 Apple 코드 서명이 적용됩니다. Activity Monitor나 방화벽 프롬프트에서 보이는 것만으로는 침해를 뜻하지 않습니다.
그 말을 그냥 믿을 필요는 없습니다. Activity Monitor에서 프로세스를 선택하고 검사기를 열어, 실행된 파일의 전체 경로를 확인하세요. 진짜 시스템 데몬은 Downloads 폴더가 아니라 시스템 디렉터리 아래에 있습니다. Terminal에 익숙하다면, verbose verify 옵션을 붙인 codesign 도구를 그 경로에 적용해 서명 기관을 확인할 수 있습니다. 정상 복사본이라면 그 기관은 Apple입니다. 예상치 못한 위치에서 같은 이름을 내세우거나 검증에 실패하는 항목은 더 살펴볼 가치가 있습니다.
안심해야 할 다른 절반도 중요합니다. netbiosd는 로컬 네트워크 프로세스이지 인터넷 프로세스가 아닙니다. NetBIOS 이름 서비스는 방송 기반이고 로컬 서브넷에만 한정됩니다. 인터넷으로 라우팅되지 않으며, 정상 동작 중 라우터가 그 트래픽을 바깥세상으로 내보내지도 않습니다. 흔히 이 검색 아래에 깔린 두려움, 즉 알 수 없는 데몬이 조용히 데이터를 어딘가로 보내고 있다는 걱정은 여기에 해당하지 않습니다. netbiosd가 무언가를 말한다면, 그 대상은 집이나 사무실 안의 장치입니다.
이 구분은 macOS에서 어떤 프로세스를 조사할 때도 중요합니다. 로컬 네트워크에서 수신 대기하는 프로세스와 원격 서버와 지속적인 연결을 유지하는 프로세스는 완전히 다른 일을 하며, 서로 다른 수준의 주의가 필요합니다.
허용해야 하는가 아니면 거부해야 하는가
대부분의 시스템 데몬에 대해 솔직한 조언은 허용하고 넘어가라는 것입니다. 거부하면 의존하는 무언가가 깨지기 때문이죠. netbiosd는 정말 드문 예외 중 하나라서, 그냥 클릭해 넘기기보다 잠시 생각해 볼 가치가 있습니다.
스스로 한 가지를 물어보세요. Windows PC의 공유 폴더, 오래된 NAS, 또는 Windows식 탐색에 의존하는 네트워크 프린터에 연결한 적이 있나요? 아니오라면, 그리고 Apple 기기만 쓰는 집이라면 많은 경우 그렇습니다, netbiosd를 거부해도 체감할 손해는 거의 없습니다. NetBIOS는 구식입니다. Apple 플랫폼의 최신 SMB 검색은 다른 메커니즘에 의존하며, NetBIOS에 의존하는 기기가 없는 네트워크라면 netbiosd가 상대할 대상도 없습니다.
만약 그렇다면 더 조심해야 합니다. 들어오는 연결을 거부하면 발견 기능이 깨질 수 있습니다. 기기가 Finder 사이드바에 자동으로 나타나지 않거나, Windows 컴퓨터가 Mac을 찾지 못하는 부분입니다. 보통은 목록에 뜨기를 기다리지 않고 이름이나 주소로 직접 연결하면 공유에 접근할 수 있으므로, 실패해도 대개는 막히는 것이 아니라 불편한 정도에 그칩니다. 프린터나 NAS가 갑자기 보이지 않는다면 이것이 원인일 수 있고, 방화벽 설정에서 결정을 되돌리는 것도 간단합니다.
프롬프트와 씨름하는 것보다 더 깔끔한 방법도 있습니다. netbiosd가 하는 일의 많은 부분은 Windows 호환 파일 공유를 켜 둔 데서 비롯됩니다. 한 번 전송하려고 켰다가 이후로 전혀 쓰지 않았다면, 공유 설정에서 다시 끄는 것이 문제를 근본에서 해결합니다.
무엇을 선택하든 의식적으로 선택하세요. 가장 나쁜 결과는 읽지 않은 대화 상자에서 허용을 누르는 것입니다. 대부분의 사람이 아무도 이해하지 못하는 방화벽 구성을 갖게 되는 이유가 바로 그것입니다.
더 큰 그림: 너의 Mac은 네가 보는 것보다 더 많은 이야기를 하고 있어
netbiosd가 특별한 것은 아닙니다. 일반적인 Mac은 네트워크와 접촉하는 백그라운드 프로세스를 수십 개나 실행합니다. 어떤 것은 Apple과 통신하고, 어떤 것은 로컬에서 서비스를 알리며, 어떤 것은 설치해 놓고 잊어버린 앱을 대신해 연결을 유지합니다. 방화벽 프롬프트는 들어오는 연결을 받아들이려는 좁은 범위만 보여줍니다. 밖으로 나가는 모든 것은 찾아보지 않는 한 보이지 않습니다.
문제는 바로 이 비대칭성입니다. 자기 서브넷 안의 구식 이름 지정 데몬 때문에 방해를 받는 동안, 원격 서버와 조용히 연결을 유지하는 프로세스는 아예 대화 상자조차 띄우지 않습니다. Activity Monitor는 프로세스가 존재한다는 것과 대략 얼마나 많은 바이트를 옮겼는지는 알려주지만, 어떤 도메인에 닿았는지는 알려주지 않고, 종료하는 방법도 제공하지 않습니다.
이 가시성의 빈틈을 메우기 위해 NetMute가 만들어졌습니다. 앱별, 프로세스별 네트워크 트래픽을 실시간으로 보여 주고 도메인 수준으로 기록하므로, 프로세스 이름과 바이트 수 대신 각 앱이 실제로 어디에 연결하는지 볼 수 있습니다. 앱별 방화벽은 한 번의 클릭으로 무엇이든 차단할 수 있고, 임시 규칙은 자동으로 만료되므로 짧은 테스트가 몰래 영구 설정으로 바뀌지 않습니다. 네트워크 프로필은 연결된 Wi-Fi 네트워크에 따라 다른 규칙을 적용하므로, 믿을 만한 집 네트워크와 공항 핫스팟에 서로 다른 수준의 주의가 필요할 때 유용합니다.
중요한 것은 더 많은 것을 차단하는 일이 아닙니다. 여기까지 오게 만든 질문, 이 프로세스가 무엇이고 누구와 대화하는지에 답하는 것입니다. 새 이름이 나타날 때마다 매번 답을 찾아 헤맬 필요 없이요.