Computer >> 컴퓨터 >  >> 스마트폰 >> 스마트폰

부채널 공격이란? 보안을 건드리지 않고 해킹하는 해커의 숨겨진 기술

해커라고 하면 컴퓨터의 방어막을 돌파하려는 할리우드 영화 속 전문가를 떠올리기 쉽습니다. 하지만 부채널(side-channel) 공격은 시스템의 보안에 손대지 않고도 기기에서 정보를 빼낼 수 있는 완전히 다른 차원의 공격 방식입니다.


부채널 공격이 정확히 무엇인지, 그리고 우리에게 어떤 의미가 있는지 자세히 살펴보겠습니다.

부채널 공격이란 무엇인가?

함께 사는 룸메이트가 가끔 물리적인 버튼이 달린 유선전화로 누군가에게 전화를 건다고 상상해 봅시다. 룸메이트는 누구에게 거는지 극비로 부치지만, 당신은 궁금합니다.

번호를 누르는 모습을 직접 지켜볼 수도 있겠지만, 굳이 그럴 필요가 없다면 어떨까요? 시각적 신호가 아닌 다른 신호만으로 번호를 알아낼 수 있다면 어떤 방법이 있을까요?

한 가지 방법은 룸메이트가 키를 누를 때마다 나오는 발신음을 듣는 것입니다. 각 키마다 서로 다른 음이 난다면, 그 소리를 역추적해 어떤 키가 눌렸는지 알아낼 수 있습니다.

또한 룸메이트가 한 키에서 인접한 키로 손가락을 옮기는 데 걸리는 시간을 미리 측정해 둘 수도 있습니다. 그다음 룸메이트가 번호를 누를 때 각 입력 사이의 시간 간격을 측정하는 것입니다.

간격이 측정값과 같다면 방금 누른 번호는 이전 번호와 인접한 것입니다. 더 긴 지연은 다음 번호가 인접하지 않았다는 뜻이고, 연달아 나오는 두 번의 빠른 탭은 같은 번호를 두 번 눌렀다는 신호입니다. 이렇게 시간 패턴에 맞는 가능한 모든 번호 조합을 계산한 뒤, 그 데이터를 바탕으로 누구의 번호일지 좁혀갈 수 있습니다.

각 키가 눌릴 때 나는 소리를 미리 학습해 두는 방법도 있습니다. 예컨대 3번 키는 묵직한 '쿵' 소리가 나고 9번 키는 살짝 끼익거리는 소리가 난다면, 룸메이트가 번호를 누를 때 소음을 관찰해 무엇을 눌렀는지 알아낼 수 있습니다.

이러한 방식들이 바로 '부채널 공격'의 정의입니다. 기기에 직접 침입하지 않고 데이터를 추출하는 기법이죠. 다소 과격해 보일 수 있지만, 컴퓨터를 대상으로 한 부채널 공격은 버튼 소리를 엿듣는 수준을 훨씬 넘어섭니다!

다양한 종류의 부채널 공격

부채널 공격의 작동 원리를 알았으니, 이제 해커들이 활용할 수 있는 대표적인 공격 유형들을 살펴보겠습니다.

타이밍 공격으로 알고리즘 파헤치기

타이밍(timing) 공격은 프로세스가 완료되기까지 걸리는 시간을 분석합니다. 룸메이트의 통화 걸기 시간을 세어 알고 있는 정보와 비교하는 것과 비슷한 원리입니다.

해커는 알고리즘에 다양한 입력을 넣어보고 처리에 얼마나 시간이 걸리는지 관찰합니다. 이 데이터에서 타이밍 정보와 일치하는 잠재적 알고리즘을 조합해 답을 찾아내는 것입니다.

실제 사례를 들어보겠습니다. 4개의 버튼으로 구성된 조합 잠금장치가 있다고 합시다. 코드를 입력하면 장치는 사용자 입력의 첫 부분과 정답 코드의 첫 부분을 비교합니다. 맞으면 두 번째 입력을 조합과 비교하고, 이런 식으로 진행됩니다. 틀리면 장치는 즉시 처리를 멈춥니다.

그 결과 첫 번째 입력으로 네 개의 버튼을 모두 테스트하면 정답인 버튼이 약간 더 오래 처리됩니다. 오답은 첫 비교 후 곧바로 중단되므로 비교가 한 번만 일어나지만, 정답 입력은 두 번째 비교로 넘어가기 때문에 시간이 더 걸리는 것입니다.

첫 번째 버튼을 알아냈다면, 가능한 두 번째 입력과 조합해 시도하고, 이어서 세 번째, 네 번째를 차례로 시험합니다. 처리 시간이 가장 긴 입력을 계속 남겨두면 결국 전체 코드를 찾아낼 수 있습니다.

타이밍 공격은 CPU 취약점인 멜트다운(Meltdown) 공격의 핵심 요소이기도 했습니다. 캐시가 읽히는 속도를 분석하고 그 결과를 이용해 스스로 데이터를 읽어낸 것이죠.

전력 분석으로 프로세서 사용량 확인하기

해커는 부품이 소모하는 전력량을 감시해 무엇을 하는지 파악할 수 있습니다. 평소보다 많은 전력을 쓰고 있다면 중요한 연산을 수행 중일 가능성이 높고, 소모량이 줄었다면 다음 연산 단계로 넘어가고 있을 확률이 큽니다.

심지어 전력 시그니처를 통해 어떤 데이터가 전송되는지까지 확인할 수 있습니다. 예를 들어 AnySilicon에서 공개한 전력 차트는 부품이 이진 데이터를 전송하는 모습을 보여줍니다. 작은 전력 피크는 0, 더 높은 피크는 1을 나타냅니다.

음향 분석으로 단서 포착하기

음향(acoustic) 분석은 기기에서 나오는 소리 패턴을 듣고 그 결과로 정보를 조합해 내는 공격입니다. 앞선 전화기 예에서 발신음이나 버튼 소리를 듣는 것도 음향 공격에 해당합니다.

음향 공격의 실현 가능성을 검증한 연구들도 여럿 있습니다. 한 연구는 프린터 소리를 듣고 인쇄 내용을 추측해 72%의 정확률을 기록했으며, 공격자가 문서의 대략적인 주제를 알고 있다면 정확률이 95%까지 치솟았습니다.

SonarSnoop이라 불리는 또 다른 연구는 스마트폰을 소나 장치로 변신했습니다. 스피커를 통해 사람 귀에 들리지 않는 초음파를 내보내고 마이크로 반향음을 녹음하는 방식입니다. 소나 반향을 통해 공격자는 피해자가 화면 잠금 패턴을 그릴 때 손가락 위치를 알 수 있고, 결국 휴대폰 잠금 해제 방법까지 알아내게 됩니다.

전자기 분석으로 배경 파동 감시하기

전자기(EM) 분석은 기기가 내보내는 전자기파를 감시합니다. 이 정보로부터 공격자는 기기가 무엇을 하는지 해독할 수 있습니다. 최소한 근처에 기기가 있는지는 파악할 수 있는데, 예를 들어 전자기파를 탐지해 숨겨진 감시 카메라를 스마트폰으로 적발할 수도 있습니다.

IoT 기기의 전자기 방출을 다룬 연구도 있습니다. 이 이론에 따르면 디지털 포렌식 팀은 기기를 해킹하지 않고도 용의 기기를 감시할 수 있습니다. 흔적을 남기지 않고 수사기관이 의심스러운 활동을 모니터링할 수 있다는 점에서 중요한 의미를 갖습니다.

부채널 공격으로부터 자신을 보호하는 방법

안타깝게도 PC를 부채널 공격에 완전히 면역시키는 쉬운 방법은 없습니다. 전력을 사용하고, 전자파를 내보내며, 작동 중 소리를 내는 한 해커가 분석할 여지는 항상 열려 있습니다.

다만 할 수 있는 일은, 애초에 해커가 공격을 실행하지 못하도록 막는 것입니다. 예를 들어 휴대폰의 로그인 패턴을 탐지할 수 있는 SonarSnoop 프로그램을 생각해 봅시다. 이런 프로그램이 실제로 퍼진다면 다른 악성코드와 같은 유통 경로를 탈 것입니다. 악성 앱과 프로그램 속에 숨어 누군가 다운로드하기를 기다리고 있겠죠.

따라서 기기가 신호를 내보내는 것 자체는 막을 수 없어도, 그 신호를 감시하도록 설계된 소프트웨어의 설치는 충분히 막을 수 있습니다. 백신 도구를 항상 최신 상태로 유지하고 좋은 사이버 보안 습관을 지키면 안전하게 지낼 수 있습니다.

하드웨어를 안전하게 지키기

부채널 공격은 공격이 자신도 모르는 사이에 일어날 수 있음을 보여주기 때문에 무섭게 느껴집니다. 하지만 해커가 시스템에 교두보를 확보해 개인 정보를 감시하지 못하도록 막는 노력은 우리 모두의 몫입니다.

하드웨어를 더욱 안전하게 지키고 싶다면, 도난으로부터 컴퓨터를 보호하는 방법을 추가로 알아보는 것은 어떨까요?