물리 법칙으로 센서를 지키는 디지털 트윈이 도시 보행 흐름 속 숨은 조작을 찾는 법

멜버른 6년 데이터로 검증된 물리 제약 디지털 트윈이 희소한 보행 센서망에서 스텔스 데이터 조작을 가려내고 컨포멀 보정으로 경보 기준을 잡는 과정을 따라갑니다.

원문 논문 보기
'물리 법칙으로 센서를 지키는 디지털 트윈이 도시 보행 흐름 속 숨은 조작을 찾는 법' 기사 커버 이미지

오늘 살펴볼 연구는 Physics-Constrained Digital Twins for Sensor Integrity in Urban Pedestrian Flow: Detecting Stealthy False Data Injection with Conformal Guarantees이며, arXiv에 2609.17635번으로 공개된 연구진의 논문입니다. 이 연구는 도시 보행자 계수 센서를 그대로 믿는 디지털 트윈이 스텔스 데이터 조작에 취약하다는 진단에서 출발해, 거리 그래프 위에 방향성 흐름을 추정하고 흐름 보존 잔차와 컨포멀 보정으로 조작을 가려내는 방법을 제안합니다. 원문 논문 링크는 제목 아래에 걸려 있습니다.

제가 이 논문에서 가장 흥미롭게 본 부분은 문제 설정이었습니다. 보행자 계수 시스템이 이제는 경제 지표와 계획 결정, 안전 운영에 직접 들어간다는 대목이었는데요. 숫자가 행정과 돈으로 이어지는 순간, 센서 하나가 틀어지면 그 파장이 단순한 계측 오류로 끝나지 않기 때문입니다. 그래서 저는 이 논문을 단순한 이상 탐지 연구로 읽지 않았습니다. 도시 운영의 신뢰를 어디에 걸 것인가에 대한 연구로 읽었습니다.

제가 이 논문을 멈춰서 읽은 이유

안녕하세요, 패트릭입니다.

도시를 걷다 보면 길모퉁이에 달린 작은 계수기를 본 적이 있을 겁니다. 그 숫자가 모여서 어느 상권이 살아나는지, 어디에 횡단보도를 더 놓을지, 축제 때 인파를 어떻게 나눌지를 정한다면 어떨까요. 실제로 요즘 도시 보행자 계수 시스템은 그렇게 쓰이고 있는데요. 경제 지표와 계획 결정, 그리고 안전 운영까지 먹여 살린다는 점에서 저는 이 대목을 읽고 멈칫했습니다.

그렇다면 이런 질문이 바로 생깁니다. 숫자를 세는 장치가 거짓말을 시작하면 도시는 무엇을 믿어야 할까요. 센서가 고장 나는 것과 누군가 값을 조작하는 것은 겉보기에는 비슷해 보이지만, 대응 방식은 전혀 다릅니다. 고장은 수리하면 되지만, 조작은 의도를 읽어야 하니까요. 특히 조작된 값이 그럴듯하게 보인다면 기존의 단순 경보로는 잡히지 않습니다.

저는 그래서 이 연구가 디지털 트윈의 약한 고리를 정면으로 찌른다고 봅니다. 많은 쌍둥이 모델이 들어오는 스트림을 진실이라고 가정하고 그 위에 예측과 의사결정을 쌓는데요. 입력이 오염되면 그 위의 모든 계산이 함께 기울어집니다. 논문은 이 당연해 보이는 가정을 의심하는 데서 출발합니다. 들어오는 숫자를 그대로 믿지 않고, 물리 법칙으로 한 번 더 묻는 구조를 만들자는 것이죠.

숫자를 그대로 믿는 쌍둥이가 위험한 이유

쌍둥이라는 말을 들으면 완벽한 복제품을 떠올리기 쉽습니다. 그런데 실제 도시 디지털 트윈은 복제품이라기보다 해석기에 가깝습니다. 센서에서 들어오는 계수 스트림을 받아서 현재 상태를 추정하고, 그 추정을 근거로 다음 행동을 정하죠. 이 과정에서 입력 스트림은 의심의 대상이 아니라 전제처럼 다뤄지는데요. 바로 그 전제가 공격자에게는 문이 됩니다.

false data injection이라는 개념은 원래 전력망이나 수도망에서 많이 다뤄졌습니다. 공격자가 계측값을 살짝 바꿔서 상태 추정을 속이는 방식이죠. 그런데 보행 흐름에서는 이 문제가 더 까다로워집니다. 잠재된 흐름에서 관측으로 가는 지도가 전력이나 수도보다 훨씬 더 rank deficient하다는 것이 논문의 진단인데요. 쉽게 말하면, 보이는 숫자만으로 숨은 흐름을 되돌려 맞추기가 훨씬 더 어렵다는 뜻입니다.

여기서 재미있는 질문이 생깁니다. 왜 하필 보행은 더 어려울까요. 전력망은 물리 법칙이 비교적 단단하고 계측 밀도도 높은 편인데, 도시 보도는 계측이 듬성듬성하고 사람의 움직임은 갈림길마다 흩어지기 때문입니다. 연구 대상 네트워크에서는 걸을 수 있는 구간 가운데 겨우 1.18%만 계측되고 있었는데요. 저는 이 숫자를 보고 공격자가 숨을 곳이 얼마나 넓은지 실감했습니다. 보이는 곳보다 보이지 않는 곳이 압도적으로 많으니, 그럴듯한 거짓말을 끼워 넣기가 쉬운 것이죠.

센서가 듬성듬성 놓인 도심 보행 네트워크와 방향성 흐름 화살표 개념도
센서가 듬성듬성 놓인 도심 보행 네트워크와 방향성 흐름 화살표 개념도

전력망과 달리 여기는 왜 속이기 쉬울까

전력 상태를 떠올려 보면 발전과 송전, 배전이라는 뼈대가 비교적 또렷합니다. 측정 지점도 촘촘하고, 키르히호프 법칙 같은 제약이 강하게 걸리죠. 그래서 조작된 값이 들어오면 어딘가에서 모순이 드러나기 쉽습니다. 반면 도시 보행은 출입구가 너무 많고 움직임이 자유로운데요. 백화점 입구와 지하철 출구, 골목과 광장이 한 블록 안에 뒤섞여 있으면 흐름을 하나의 식으로 묶기가 어렵습니다.

문제는 그다음입니다. 관측으로 가는 지도가 rank deficient하다는 것은 수학적으로는 되돌릴 수 있는 정보가 부족하다는 뜻이지만, 운영 관점에서는 의심할 근거가 부족하다는 뜻이기도 합니다. 센서가 몇 개 없는 상태에서 공격자가 한두 개 값을 살짝만 틀어도, 시스템 입장에서는 진짜 혼잡과 조작된 혼잡을 가리기가 어렵습니다. 그래서 기존의 잔차 검사만으로는 스텔스 공격이 그대로 통과할 수 있죠.

저는 여기서 조금 의심했습니다. 그렇다면 계측을 늘리면 해결될까요. 물론 도움이 되겠지만, 모든 골목을 다 계측하는 것은 비용이 감당되지 않습니다. 도시 전체를 놓고 보면 계측 밀도를 두 배로 올려도 여전히 희소한 상태가 이어질 텐데요. 그래서 논문이 택한 방향이 눈에 띕니다. 센서를 늘리는 대신, 센서 사이에 있는 물리를 더 세게 쓰는 것이죠. 없는 정보를 측량으로 메우는 대신, 있어야 할 관계로 메우겠다는 발상입니다.

지도 위에 흐름을 올려놓으면 무엇이 달라질까

이 연구의 쌍둥이는 보행자 거리 그래프 위에 방향성 흐름을 올려놓습니다. 교차로를 노드로 보고, 보도 구간을 방향이 있는 간선으로 보는 것이죠. 특정 구간의 보행자 수가 아니라, 어느 방향으로 얼마나 이동하는지를 추정 대상으로 삼는데요. 이 차이는 생각보다 중요합니다. 숫자 하나를 맞히는 것이 아니라, 움직임의 연결을 맞히게 되기 때문입니다.

그리고 들어오는 계수 관측은 학습된 graph-localised gain을 통해 동화됩니다. 칼만 필터에서 본 듯한 구조인데요. 관측과 예측의 차이인 innovation을 그대로 믿는 대신, 그래프 이웃의 정보를 섞어서 반영합니다. 옆 골목과 앞 교차로의 상태가 함께 고려되니, 단일 센서의 튐이 전체 추정을 흔들기 어려워집니다. 저는 이 대목을 읽으면서 분산된 목격자 진술을 모으는 과정 같다는 생각을 했습니다. 한 사람의 말이 아니라, 주변 사람들의 말을 함께 들어야 진실에 가까워지니까요.

그런데 여기서 질문이 하나 더 생깁니다. 이웃 정보를 섞는 것만으로 충분할까요. 만약 공격자가 이웃 센서까지 함께 속인다면 국소적인 평활화는 오히려 거짓말을 퍼뜨리는 통로가 될 수도 있습니다. 그래서 논문은 여기서 멈추지 않고, 흐름 보존이라는 더 단단한 제약을 끌어들입니다. 이웃과 비슷해지라는 부드러운 요청을 넘어, 들어오고 나가는 양이 맞아야 한다는 단단한 조건을 거는 것이죠.

센서 값을 그대로 믿는 쌍둥이와 물리 법칙으로 검증하는 쌍둥이의 대비
센서 값을 그대로 믿는 쌍둥이와 물리 법칙으로 검증하는 쌍둥이의 대비

보이지 않는 길까지 묶는 보존 법칙은 어떻게 작동할까

흐름 보존은 말 그대로 들어온 만큼 나가야 한다는 원리입니다. 교차로에 100명이 들어오면, 어딘가로 100명이 나가야 하죠. 물론 현실에서는 매장 안에 머무르거나 잠시 멈추는 사람이 있어서 매 순간 완벽히 맞지는 않습니다. 하지만 장시간 평균이나 네트워크 전체로 보면 이 관계가 흐름을 강하게 묶어줍니다. 논문은 이 잔차를 학습에 직접 넣는데요. 계측된 구간과 계측되지 않은 구간을 함께 묶어서 물리를 강제합니다.

이 대목이 저에게는 이 논문의 진짜 손잡이처럼 느껴졌습니다. 계측되지 않은 구간은 보통 골칫거리로 취급되는데, 여기서는 오히려 검증자가 되기 때문입니다. 센서가 없는 길의 흐름도 추정해야 하니, 그 추정이 보존 법칙을 어기면 어딘가 잘못됐다는 신호가 됩니다. 공격자가 계측된 값만 조작해도, 그 여파가 미계측 구간의 추정과 부딪히면서 잔차가 커지는 것이죠. 보이지 않는 길이 방패가 되는 셈입니다.

학습 과정을 따라가 보면 그림이 더 또렷해집니다. 모델은 단순히 관측을 잘 맞히는 것을 넘어, 보존 잔차를 함께 줄이도록 훈련됩니다. 관측 적합과 물리 적합이라는 두 목표를 동시에 맞추는 것인데요. 이렇게 되면 모델은 센서 숫자에만 과적합되지 않고, 거리 구조와 어울리는 흐름을 찾게 됩니다. (참고로 저는 이런 식의 이중 목표를 볼 때마다 저울을 떠올립니다. 한쪽으로 기울면 바로 티가 나니까요.) 그래서 스텔스 공격처럼 관측만 그럴듯하게 맞춘 조작은, 물리 쪽 저울에서 들통나기 쉽습니다.

교차로에서 유입과 유출이 맞아야 하는 흐름 보존의 원리
교차로에서 유입과 유출이 맞아야 하는 흐름 보존의 원리

잔차 두 개를 합치면 경보가 똑똑해질까

탐지 단계에서 논문은 innovation과 흐름 보존 잔차를 함께 봅니다. innovation은 관측이 예측에서 얼마나 벗어났는지를 말해주고, 보존 잔차는 추정된 흐름이 물리를 얼마나 어겼는지를 말해주는데요. 둘 가운데 하나만 보면 스텔스 공격은 빠져나갈 구멍이 있습니다. 관측을 살짝만 틀면 innovation이 작게 유지되니까요. 하지만 두 개를 함께 보면 이야기가 달라집니다.

생각해보면 사람도 비슷하게 거짓말을 가려냅니다. 말 자체는 그럴듯해도, 앞뒤 맥락과 맞지 않으면 의심하죠. 여기서 innovation이 말 자체라면, 보존 잔차는 앞뒤 맥락에 해당합니다. 공격자가 센서 값을 자연스럽게 조작해도, 그 조작이 주변 흐름과 어긋나면 두 번째 검사에서 걸립니다. 저는 이 숫자보다 그 뒤의 구조가 더 중요하다고 봅니다. 단일 검사의 문턱을 높이는 것이 아니라, 검사의 차원을 늘렸기 때문입니다.

실제 시스템 관점에서 보면 다음 질문이 바로 생깁니다. 두 잔차를 어떻게 합쳐야 할까요. 단순히 더하면 스케일이 다른 두 신호가 서로를 삼킬 수 있는데요. 논문은 이 결합을 탐지 점수로 설계하고, 그 점수의 경보 기준을 데이터에서 정하도록 넘깁니다. 사람이 손으로 문턱을 정하는 대신, 보정 절차가 구간과 시간대에 맞게 기준을 잡는 것이죠. 이 선택 덕분에 공격 여유라는 개념이 수치로 드러납니다. 얼마나 크게 조작해야 경보가 울리는지를 잴 수 있게 되니까요.

하나의 검사만 피한 조작이 두 잔차의 결합 검사에서 걸리는 모습
하나의 검사만 피한 조작이 두 잔차의 결합 검사에서 걸리는 모습

문턱을 손으로 정하지 않으면 무슨 일이 생길까

경보 문턱을 정하는 일은 생각보다 손이 많이 갑니다. 출근 시간과 심야의 보행량은 전혀 다르고, 비 오는 날과 축제 날도 다르죠. 고정된 문턱을 쓰면 평소에는 조용하다가 행사 때만 오경보가 터지거나, 반대로 평소에 맞춰두면 진짜 공격을 놓치기 쉽습니다. 그래서 많은 현장 시스템이 계절과 시간대마다 문턱을 손으로 만지는데요. 이 과정은 노동집약적일 뿐 아니라, 공격자가 그 기준을 역이용할 여지도 남깁니다.

논문은 이 자리를 adaptive conformal calibration으로 채웁니다. 컨포멀이라는 말이 어렵게 들리지만, 발상은 겸손합니다. 과거의 정상 잔차들을 모아두고, 지금 관측이 그 분포에서 얼마나 벗어났는지를 기준으로 삼는 것이죠. 적응형이라는 수식어가 붙은 이유는 분포 자체가 시간에 따라 바뀌기 때문인데요. 요일과 계절, 도시 행사가 바뀌면 정상의 범위도 함께 움직입니다. 고정된 자 대신 움직이는 자를 쓰는 셈입니다.

저는 이 선택이 운영의 아침을 지켜주는 장치라고 느꼈습니다. 밤사이 공사가 끝나고 아침에 특정 구간이 막혀도, 경보 라인이 멈추면 안 되기 때문입니다. 분포가 바뀌어도 보정 절차가 따라가면 오경보는 줄고, 진짜 이상은 남습니다. 물론 컨포멀 보장이 만능은 아닙니다. 분포가 급격히 바뀌는 구간에서는 보장이 느슨해질 수 있는데요. 여기서는 조금 조심해서 읽을 필요가 있습니다. 보장은 정상 데이터의 교환 가능성 같은 조건 위에서 서는 것이지, 어떤 공격에도 무조건 통한다는 뜻은 아니기 때문입니다. 다만 손으로 정한 고정 문턱보다는 실패 방식이 훨씬 더 투명합니다. 왜 울렸고 왜 안 울렸는지를 분포 위에서 설명할 수 있으니까요.

시간에 따라 넓어졌다 좁아졌다 하는 적응형 경보 구간
시간에 따라 넓어졌다 좁아졌다 하는 적응형 경보 구간

멜버른 6년 데이터가 말해주는 공격 여유는 어느 정도일까

실험 무대는 6년치 멜버른 데이터입니다. 짧은 시연용 데이터가 아니라, 계절과 행사, 도시 변화가 여러 번 겹친 긴 기록인데요. 저는 기간이 길다는 점을 좋게 봤습니다. 보행 패턴은 요일과 계절을 타는데, 6년이면 그 주기를 여러 번 본 셈이라 평가가 운에 덜 흔들리기 때문입니다. 게다가 계측 희소성이 극단적이라서 방법이 진짜 통하는지를 가리기에 좋은 시험대이기도 합니다.

결과에서 눈길을 끄는 숫자는 공격 여유입니다. 단일 장치가 손상됐을 때 여유는 0.54까지 올라갔는데요. 공격자가 그만큼 크게 값을 틀어야 경보를 피하지 못한다는 뜻이라서, 숫자가 클수록 방어자에게 유리합니다. 반면 손상된 장비가 전체의 3분의 1까지 늘어나면 여유는 0.19까지 떨어집니다. 공격자가 여러 센서를 함께 움직이면 그럴듯한 이야기를 만들기 쉬워지니, 당연한 방향이죠. 그런데 저는 떨어진 뒤의 숫자에도 주목했습니다. 3분의 1이 뚫린 상태에서도 0.19의 여유가 남는다는 것은, 결합된 잔차 검사가 완전히 무너지지 않았다는 뜻이기 때문입니다.

이 숫자는 그대로 믿기 전에 조건을 봐야 합니다. 여유는 공격 모델과 평가 구간에 따라 달라지는데요. 단일 장치 공격과 다수 장치 공모는 난이도가 다르고, 출근 피크와 한밤중의 정상 분포도 다릅니다. 그럼에도 방향성은 분명합니다. 계측이 희소해도 물리 제약이 있으면 스텔스 공격에 필요한 조작 크기가 커지고, 손상 범위가 넓어지면 그 여유가 줄어든다는 것이죠. 저희가 새로운 AI 아키텍처를 볼 때도 숫자만 보지는 않습니다. 실제로 무엇이 바뀌었고, 그 변화가 시스템에서 어떤 비용 구조를 만드는지를 함께 보는데요. 여기서 바뀐 것은 경보의 예민함이 아니라, 공격자가 들키지 않기 위해 치러야 할 비용입니다.

거리 그래프로 바꾸면 왜 무너질까

연구진이 준비한 대조 실험 가운데 제가 가장 오래 머문 것은 거리 그래프 실험입니다. 거리 그래프는 지리적으로 가까우면 연결된 것으로 보는 방식인데요. 얼핏 보면 합리적으로 들립니다. 옆 블록이면 비슷하게 붐비지 않을까요. 그런데 이 그래프로 바꾸자 공격 여유는 0.09까지 무너졌습니다. 원래의 거리 구조 기반 결과와 비교하면 차이가 매우 큰데요. 이 차이는 생각보다 중요합니다.

이유는 가까움이 같음이 아니기 때문입니다. 지도상 직선거리가 가까워도, 한쪽은 대로변이고 다른 쪽은 막다른 골목일 수 있습니다. 보행 흐름은 직선 거리가 아니라 길의 연결과 방향을 따라 움직이는데요. 거리 그래프는 그 연결을 지워버립니다. 그러면 모델은 이웃과 비슷해지라는 부드러운 요청만 남게 되고, 들어오고 나가는 양이 맞아야 한다는 단단한 조건은 사라집니다. 공격자 입장에서는 감사한 일입니다. 물리 검증이 빠진 자리에는 그럴듯한 평활화만 남으니까요.

표면적으로 보면 단순합니다. 그래프를 바꾸면 숫자가 나빠진다, 그뿐이죠. 실제로는 그렇지 않습니다. 이 실험은 성능 향상의 출처를 가려내기 때문입니다. 국소성을 쓴 덕분인지, 보존 법칙을 쓴 덕분인지를 분리한 것이죠. 결과는 후자 쪽이었습니다. 저는 그래서 이 0.09라는 숫자를 실패가 아니라 증명으로 읽었습니다. 물리를 빼면 남는 것이 거의 없다는 것을 보여줬으니까요. 좋은 대조 실험은 이처럼 무엇을 빼야 하는지를 알려줍니다.

계측 구간과 미계측 구간이 섞인 도심 격자에서 희소성을 보여주는 지도
계측 구간과 미계측 구간이 섞인 도심 격자에서 희소성을 보여주는 지도

앞으로 도시 센서를 믿으려면 무엇을 봐야 할까

여기까지 읽으면 이런 오해를 할 수도 있습니다. 물리 제약을 걸면 모든 조작이 잡히는 것 아닌가, 하고요. 그렇지 않습니다. 이 방법은 흐름 보존이라는 관계가 성립한다는 전제 위에서 서는데요. 공사나 우회, 대규모 행사로 흐름이 일시적으로 어긋나는 구간에서는 잔차가 커질 수 있습니다. 그럴 때 컨포멀 보정이 따라가면 오경보는 줄겠지만, 공격이 그런 혼란에 숨어들 여지도 생깁니다. 그래서 저는 이 기술을 방패라기보다 체온계에 가깝다고 봅니다. 열이 나면 어딘가 아프다는 것을 알려주지만, 병명을 찍어주지는 않으니까요.

그렇다면 운영자는 무엇을 해야 할까요. 첫째, 센서 숫자와 함께 센서 사이의 관계를 함께 관리해야 합니다. 거리 그래프가 바뀌면 성능이 달라지듯, 지도 정보가 낡으면 검증도 함께 낡습니다. 새로 생긴 골목과 사라진 통행로가 그래프에 바로 반영되지 않으면, 정상 흐름마저 이상으로 보일 수 있는데요. 둘째, 경보 문턱을 고정값으로 두지 말고 분포 위에서 관리해야 합니다. 시간대와 계절에 따라 정상이 움직이니, 기준도 함께 움직여야 합니다. 셋째, 손상 범위를 가정한 훈련이 필요합니다. 단일 장치 공격과 3분의 1 공모는 전혀 다른 게임이라서, 대응 플레이북도 달라져야 합니다.

제가 앞으로 보고 싶은 것은 다음 질문입니다. 보행뿐 아니라 자전거와 대중교통, 차량 흐름까지 함께 묶으면 보존 법칙이 더 단단해질까요. 여러 층의 흐름이 서로를 검증하면 공격자가 치러야 할 비용은 더 커질 텐데요. 반대로 층이 늘면 모델이 복잡해지고, 그 복잡함이 새로운 빈틈이 될 수도 있습니다. 또한 실시간성도 궁금합니다. 도시 운영은 사후 분석이 아니라 지금 이 순간의 판단이 필요하니, 잔차 계산과 보정 절차가 현장 지연 안에 들어오는지가 관건이죠. 이 논문은 긴 기록 위에서 가능성을 열었고, 다음 단계는 현장의 속도와 소음 위에서 그 가능성을 벼리는 일이 될 것입니다.

도시의 숫자를 믿는다는 것은 결국 도시의 결정을 믿는다는 뜻입니다. 센서 하나가 틀어지면 상권 평가가 흔들리고, 안전 배치가 흔들리고, 사람들의 발길이 바뀌는데요. 그래서 저는 이 연구를 이상 탐지 기법 하나로 정리하고 싶지 않습니다. 들어오는 숫자를 전제로 두지 않고 관계로 묻는 태도, 보이지 않는 길을 버리지 않고 증인으로 세우는 태도, 기준을 손맛이 아니라 분포 위에서 정하는 태도가 함께 담겼기 때문입니다. 앞으로 도시 센서를 볼 때마다 저는 같은 질문을 던질 것 같습니다. 이 숫자는 어디와 맞아떨어지는가, 하고요. 그 질문에 답할 수 있을 때 비로소 쌍둥이를 믿어도 된다고 말할 수 있을 것 같습니다.

참고 자료

  1. Physics-Constrained Digital Twins for Sensor Integrity in Urban Pedestrian Flow: Detecting Stealthy False Data Injection with Conformal Guarantees · arxiv.org

    리뷰 원문