
내 집을 해킹당하지 않으려면: 스마트 홈 구축과 보안
편리함을 위해 시작한 스마트 홈 구축, 하지만 보안을 놓치면 집이 털릴 수도 있습니다. 와이파이 전구부터 스마트 도어락까지, IoT 기기들을 안전하게 연결하고 '로컬 제어' 시스템을 구축한 저의 삽질 기록을 공유합니다.

편리함을 위해 시작한 스마트 홈 구축, 하지만 보안을 놓치면 집이 털릴 수도 있습니다. 와이파이 전구부터 스마트 도어락까지, IoT 기기들을 안전하게 연결하고 '로컬 제어' 시스템을 구축한 저의 삽질 기록을 공유합니다.
프론트엔드 개발자가 알아야 할 4가지 저장소의 차이점과 보안 이슈(XSS, CSRF), 그리고 언제 무엇을 써야 하는지에 대한 명확한 기준.

매번 3-Way Handshake 하느라 지쳤나요? 한 번 맺은 인연(TCP 연결)을 소중히 유지하는 법. HTTP 최적화의 기본.

HTTP는 무전기(오버) 방식이지만, 웹소켓은 전화기(여보세요)입니다. 채팅과 주식 차트가 실시간으로 움직이는 기술적 비밀.

IP는 이사 가면 바뀌지만, MAC 주소는 바뀌지 않습니다. 주민등록번호와 집 주소의 차이. 공장 출고 때 찍히는 고유 번호.

겨울밤, 따뜻한 전기장판 속에 누워 있는데 불을 끄러 가야 할 때의 그 고통. 다들 아실 겁니다. 저는 그게 너무 싫어서 "아이언맨"의 자비스 같은 집을 꿈꾸며 스마트 전구를 하나 샀습니다. "헤이 구글, 불 꺼줘"라고 말하면 꺼지는 그 마법 같은 경험! 정말 신세계였습니다.
그날 이후 저는 열정적으로 스마트 기기를 사 모으기 시작했습니다. 알리익스프레스와 아마존을 드나들며 스마트 플러그, 스마트 커튼, 로봇 청소기, 공기청정기, 그리고 집을 비울 때 강아지를 보기 위한 홈캠(CCTV)까지 주문했습니다. 제 집은 바야흐로 21세기 최첨단 하우스가 된 것 같았습니다. 친구들이 놀러 오면 "오, 미래에 사는 것 같다"며 부러워했죠.
하지만 그 행복은 오래가지 않았습니다. 어느 날 저녁 뉴스를 보다가 등골이 오싹해졌습니다. "국내 아파트 월패드 해킹, 남의 집 거실 훔쳐보다... 영상 유출 심각"
소름이 돋았습니다.
"잠깐, 내 홈캠도 인터넷에 연결되어 있잖아? 누가 내 방을 보고 있으면 어떡하지?"
급하게 기기들을 확인해 봤습니다. 하나같이 중국산 저가형 제품들이었고, 펌웨어 업데이트는 제조사가 망했는지 3년 전이 마지막이었습니다.
더 충격적인 건 비밀번호였습니다. 모든 기기가 기본값 admin / 1234 또는 admin / admin으로 설정되어 있었습니다.
설상가상으로 기기가 30개가 넘어가자 공유기가 비명을 지르기 시작했습니다. 넷플릭스를 보는데 자꾸 버퍼링이 걸리고, 가끔은 스마트 전구가 "응답 없음"이라며 켜지지 않았습니다. 게다가 A사 전구는 A사 앱으로, B사 플러그는 B사 앱으로 켜야 하는 "앱 지옥(App Hell)"에 빠져버렸죠.
저는 결단을 내렸습니다. 이대로는 안 된다. 단순히 편한 집이 아니라 "안전하고 똑똑한 집"을 다시 짓기로 했습니다. 목표는 "외부 클라우드 없이, 내 집 안에서만(Local) 돌아가는 안전한 스마트 홈"입니다.
스마트 홈 초보 시절, 저는 무조건 와이파이(WiFi) 제품만 샀습니다. 별도의 허브도 필요 없고, 집에 있는 공유기에 연결만 하면 되니까 편해 보였거든요. 하지만 기기 수가 늘어나자 치명적인 문제들이 터져 나왔습니다.
그래서 저는 눈을 돌려 Zigbee(지그비)와 Z-Wave를 공부하기 시작했습니다.
"왜 굳이 5만 원짜리 허브를 따로 사서 지그비를 써야 해?"라고 생각했었습니다. 하지만 써보니 알겠더군요. 이건 스마트 홈을 위해 태어난 기술입니다.
저는 센서(문 열림, 온습도, 모션)와 조명은 전부 Zigbee로 바꿨습니다. 이러면 공유기에는 '지그비 허브' 하나만 와이파이로 연결되고, 나머지 30개 기기는 허브랑만 지그비로 대화하니 공유기 부하가 사라졌습니다. 넷플릭스가 다시 빨라졌습니다.
기기 통신 방식은 해결했지만, 여전히 "앱 지옥"은 남아있었습니다. 샤오미 센서로 필립스 전구를 켤 수 있을까요? 제조사가 달라서 불가능합니다. 각자 폐쇄적인 생태계를 구축하고 있으니까요.
이 장벽을 허물기 위해, 저는 오픈소스 플랫폼인 Home Assistant (HA)를 도입했습니다. 안 쓰는 라즈베리 파이 4에 HA를 설치했습니다. 이 친구가 이제 우리 집의 '중앙 관제탑'입니다.
그리고 이 관제탑과 기기들이 대화하는 공용어로 MQTT (Message Queuing Telemetry Transport)를 선택했습니다.
MQTT는 사물인터넷(IoT)을 위해 만들어진 아주 가벼운 메시지 프로토콜입니다. 발행(Publish)과 구독(Subscribe) 구조로 되어 있는데, 이게 마치 "단톡방"과 같습니다.
이 구조 덕분에 제조사가 어디든 상관없이, MQTT만 지원하면 서로 연동할 수 있게 되었습니다. 게다가 HTTP 요청보다 훨씬 가볍고 빨라서, 스위치를 누르면 0.1초 만에 불이 켜집니다. 클라우드를 거치지 않으니 반응 속도가 환상적입니다.
스마트 홈 구축에서 가장 중요한, 하지만 다들 귀찮아서 간과하는 보안 이야기입니다.
앞서 말했듯, 스마트 전구가 해킹당하면 단순히 불이 깜빡거리는 장난으로 끝나지 않습니다. 해커는 그 전구를 교두보(Gateway)로 삼아, 같은 네트워크에 있는 여러분의 PC나 NAS로 횡이동(Lateral Movement)을 시도합니다. 그리고 소중한 가족 사진을 암호화하고 비트코인을 요구하겠죠 (랜섬웨어). 혹은 여러분의 PC를 좀비 PC로 만들어 디도스 공격에 가담시킬 수도 있습니다.
그래서 저는 망 분리(Network Segmentation)를 감행했습니다. 회사에서나 하는 보안 정책을 집구석에 적용한 거죠.
고급 공유기(Unifi나 iptime 고급형)를 쓰면 VLAN(Virtual LAN) 기능을 쓸 수 있습니다. 물리적인 공유기는 하나지만, 논리적으로 네트워크를 찢어놓는 기술입니다.
저는 집 네트워크를 3개로 쪼갰습니다.
그리고 이 네트워크들 사이에 엄격한 국경 검문소(방화벽 규칙)를 세웠습니다.
규칙 1: Main -> IoT (허용) 내 아이폰(Main)에서 전구(IoT)를 제어는 할 수 있어야 합니다. 내가 명령하는 건 OK.
규칙 2: IoT -> Main (차단) 전구(IoT)가 내 아이폰(Main)으로 접근하는 건 절대 금지. 해커가 전구를 탈취해도, 거기서 제 PC로 넘어올 수 없습니다. 벽에 막히거든요.
규칙 3: IoT -> Internet (일부 차단) CCTV나 전구는 외부 인터넷 접속을 아예 막아버립니다. (Local Only). 중국 서버로 내 영상이 전송되는 걸 원천 봉쇄하는 겁니다. 펌웨어 업데이트 할 때만 잠깐 열어줍니다.
이제 중국산 로봇 청소기가 해킹당해도, 제 컴퓨터 근처에는 얼씬도 못 합니다. 고립된 섬에 갇힌 꼴이죠.
보안이라는 튼튼한 기반을 다졌으니, 이제 진짜 "스마트"한 기능을 구현했습니다. 단순히 폰으로 불 끄는 건 스마트 홈이 아닙니다. 그건 '리모컨'이죠. 진짜 스마트 홈은 내가 아무것도 안 해도 집이 알아서 해주는 것(Automation)입니다.
Home Assistant 앱이 제 아이폰의 GPS 위치를 추적합니다. (물론 데이터는 집 서버에만 저장됩니다). 제가 집 반경 500m 안에 들어오면:
밤 11시가 지났는데 안방 모션 센서에 30분간 움직임이 없으면:
가장 공들인 기능입니다. 제가 집을 비운 "외출 모드" 상태에서 현관문이 열리거나 거실에서 움직임이 감지되면:
이 모든 게 클라우드 서버 없이 집 안에서 로컬로 돌아갑니다. 해커가 인터넷 선을 끊어도 경보는 울립니다.
스마트 홈은 정말 편합니다. 침대에 누워 목소리로 불을 끄고, 집이 알아서 온도를 맞춰주는 건 마치 SF 영화 속 주인공이 된 기분이죠. 퇴근하고 집에 들어왔는데 따뜻한 온기가 나를 반겨줄 때의 그 감동은 해본 사람만 압니다.
하지만 그 편리함 뒤에는 "내 사생활이 털릴 수 있다"는 거대한 위험이 도사리고 있습니다. 우리는 너무 쉽게 내 집의 열쇠를 제조사 클라우드에 넘겨주고 있는 건 아닐까요? "대기업 제품이니까 알아서 잘 보안 챙겼겠지"라고 방심하는 순간, 여러분의 집은 해커들의 놀이터가 됩니다.
조금 귀찮더라도 공부하세요. 네트워크를 분리하고, 로컬 제어 환경을 구축하세요. 가장 안전한 집은, 가장 비싼 기기가 많은 집이 아니라 주인이 시스템을 이해하고 통제하는 집입니다.
오늘 집에 가서 공유기 설정 페이지(192.168.0.1)부터 한 번 열어보시는 건 어떨까요? 거기서부터 여러분의 '사이버 요새' 구축이 시작됩니다.