본문 바로가기

SWLUG/논문 분석

[논문 분석] Charger -Surfing

Charger-Surfing.pdf
2.59MB

※ 해당 논문을 분석하여 작성한 글입니다.

 

Exploiting a Power Line Side-Channel for Smartphone Information Leakage

 

 

논문 선정 이유

고성능의 어플리케이션 사용량이 증가하면서 배터리의 소모가 더욱 빨라지고 있으며 그로 인해 외부에서 전자기기를 충전하는 일이 증가하고 있다. 그에 따라 외부에 배치되어 있는 충전기 혹은 배터리 충전기 등의 시설이 증가하는 추세이다.

따라서 이에 따른 보안 위협을 알아보고자 해당 논문을 선정하게 되었다.

 

 

 

* Charger -Surfing :

동적 전력 신호를 기반으로 구축된 사이드 채널을 활용하여 공격자는 터치스크린에서 가상 버튼을 누르는 위치를 정확하게 식별할 수 있으며, 이를 통해 사용자의 비밀번호와 같은 민감한 데이터를 훔치는 것과 같은 보안 위협을 뜻함

 

 

[2장] 위협 모델과 USB 충전, 터치스크린 기술 및 터치스크린 애니메이션에 대한 간략한 소개

[3장] USB 전력선을 통한 세밀한 정보 유출의 존재 설명

[4장] Charger - Surfing 에 의한 보안 위협

[5장]  심층적 사례 연구

[6장] 공격에 대한 논의

[7장] Charger - Surfing에 대한 대책

[8장] 관련 유사 작업 조사

[9장] 마무리

 

 

실험 대상

USB 전력선을 통한 암호 잠금 해제 화면에 대한 사례 연구

 

터치스크린 기반 장치를 대상으로 하는 전력선을 통한 부채널 누출로 인한 보안 위협을 밝혀낸다.

스마트폰이 충전되는 동안 USB 충전 케이블을 통해 측정할 수 있는 전력 추적을 통해 화면의 동적 콘텐츠에 대한 정보가 유출될 수 있다. (세부적인 정보 누출, 눌린 버튼의 정확한 위치를 식별하고 동적 전력 추적을 통한 사용자의 입력을 추출)

 

전력 소비 정보는 터치스크린에서의 활동과 높은 상관관계를 가지는 특성을 활용

 

* 부채널 공격(side channel attack)

알고리즘즘의 약점을 찾거나 무차별공격을 하는 대신에 암호체계의 물리적인 구현 과정의 정보를 기반으로 하는 공격 방법

 

 

간단한 기술 설명

 

충전기의 경우 제 3자에 의해 제어되므로 연결된 장치의 전력 소비는 포장 내부 또는 충전 인터페이스 뒤에 숨겨진 장치를 통해 모니터링 가능하다.

 

USB 충전

USB는 휴대용 장치를 충전하는 동시에 시리얼 통신을 가능하게 하는 표준 인터페이스 구현

표준 USB 플러그에는 4개의 핀과 1개의 실드가 포함

핀 1개 : +5VDC를 전달하고 접지를 형성하는 실드에 연결

핀 1개 : 접지를 형성하는 실드에 연결

핀 2개 : 차동 데이터 전송에 사용되며 배터리 충전 시 무시할 수 있는 전류 전달

 

* 시리얼 통신 (직렬 통신)

하나의 신호선을 이용하여 데이터를 한번에 1bit씩 보내는 방식. 시간 소모가 큼

 

기기를 충전하면 배터리가 충전 상태로 들어가고, 기기의 전원은 배터리가 아닌 USB 전원선으로 연결된 전원에서 공급된다.

 

LCD/OLED 터치스크린 기술

* LCD

상시 켜져 있는 백라이트, 수직 편광 필터, 액정의 세 가지 주요 구성 요소 포함

액정은 서로 다른 전압으로 충전되어 서로 다른 색상 표시

 

* OLED

 개별 OLED는 각 픽셀을 생성하는 데 사용된다.

 

둘은 서로 다른 메커니즘을 사용하므로 매우 다른 전력 트레이스를 생성함

따라서 개별 픽셀에 인가되는 전압을 관찰할 수 있다면 동일한 이미지를 표시할 때 서로 반대의 값을 가져야 함.

 

 

터치스크린 애니메이션

USB 충전 케이블을 통해 측정할 수 있는 동적 전력 소비로 인해 터치스크린에서 가상 버튼을 누르는 위치가 유출될 가능성이 있다.

 

 

 

feature

유사 신호 식별 : 사용자가 버튼을 눌렀을 때 버튼을 누른 위치를 식별하는 과정에서, "유사해 보이는" 신호를 식별하고 전력 누출을 통해 애니메이션의 위치를 추출한다.

 

이런 잠재력 조사를 위해 서로 다른 화면 기술을 사용하는 두 스마트폰에서 실행되는 맞춤형 안드로이드 애플리케이션 설계 (화면을 6개 부분 -위, 중간, 아래, 왼, 중간, 오른- 으로 나누고 검은색 배경에 화면의 각 부분을 채우는 깜빡이는 흰 막대 표시)

-> LCD 화면의 Motorola G4와 AMOLED 화면의 삼성 갤럭시 Nexus

 

전력 누출을 통한 정보 유출: Charger-Surfing은 스마트폰의 전원 라인을 통해 발생하는 전력 누출을 이용하여 사용자의 터치스크린 동작을 추론한다.

폰 타입 감지: Charger-Surfing은 각각의 전화 모델에 대한 신뢰도 값을 확인하여 전화 모델을 추론하고, 이를 통해 누출된 정보를 해당 모델에 맞게 처리한다.

화면 애니메이션 분류: 터치스크린의 동적 콘텐츠를 분류하기 위해 신경망을 사용하여 화면에서 발생하는 동적 애니메이션을 식별하고 정보 누출을 감지한다.

사용자 상호작용 추론: Charger-Surfing은 전원 라인을 통해 수집된 정보를 기반으로 사용자의 터치스크린 상호작용을 추론하여 버튼 누름이나 패스코드 입력과 같은 사용자 동작을 파악한다.


 

 

실험환경

 

다양성 : 신호 처리 및 신경망 기술을 활용하여 안드로이드 및 ios 장치 모두에서 암호 생성

 

독립성 : 개별 사용자가 Charger-Surfing의 정확성에 미칠 수 있는 영향을 평가하기 위해 스마트폰에서 정기적으로 비밀번호 기반 인증을 사용하는 15명의 자원봉사자로부터 입력 데이터 수집

 

균일성 : 미리 결정된 200개 이상의 버튼 순서를 잠금화면에서 누른다. 버튼 누름의 균일한 분포를 수집하여 불균형한 양의 샘플이 없도록 설계함.

 

화면 설정: 실험에서는 다양한 화면 설정을 고려하였습니다. 예를 들어, 화면 배경, 밝기 설정 등이 다른 환경에서의 Charger-Surfing의 성능을 평가

전원 라인 수집 시스템: Charger-Surfing의 전력 누출을 측정하기 위해 휴대용, 저가의 전력 추적 시스템을 개발하여 사용

다양한 사용자 설정: 실험에서는 다양한 사용자 설정을 고려. 예를 들어, 다른 사용자가 사용하는 스마트폰에서 Charger-Surfing을 수행하여 사용자 독립적인 효과를 확인.

 

 

 

데이터 취득하기 위한 장비

채널 구축을 위한 상용 (COTS) 하드웨어를 사용 

 

*COTS (Commercial, off-the-shelf)

완성품으로 일반 대중에게 판매, 대여 또는 권한을 부여할 수 있는 컴퓨터 소프트웨어나 하드웨어, 기술 또는 컴퓨터 제품 등을 뜻함

 

 

데이터 수집을 위한 휴대용 저가형 마이크로컨트롤러 기반 시스템을 설계하고 개발

(dual-core Tensilica Extensa LX6 processor를 갖춘 Espressif ESP32 칩으로 구성)

 

 

CNN (Convolution Neural Network) 활용 - 공간적 상관관계가 있는 데이터 처리와 시계열 데이터를 분류할 때 정확도가 높음

 

 

detection model

 

전력 누출 조사를 위해

저비용 데이터 수집 시스템의 정확성과 효율성 : 수정된 충전 케이블 :  접지 케이블을 절단하고 작은 저항기(0.3Ω)로 접합한 USB 충전 케이블에 연결된 Mototola G4를 사용

 

오실로스코프는 위 저항기의 전압을 모니터링하여 장치의 전류 활용도를 모니터링 하는 데 사용 - Tektronix MDO4024C

 

* 오실로스코프

기본적으로 시간에 따라 변하는 전압을 표시하는 장치로 수직축 (Y-축)은 전압의 크기 그리고 수평축 (X-축)은 시간의 변화를 각각 나타낸다

 

 

 

 

전력선 누설 탐사

 

1) 버튼 누름 감지

- 오실로스코프

- 충전 케이블 설정

 

스마트폰의 절전 상태에서는 소음을 최소화하며 전류를 안정적으로 활용

절전상태에서 교란되면 현재 사용률이 즉시 증가한다.

사용자가 각 버튼을 누를 때마다 신호의 명확한 상승 및 하강이 표시된다.

 

=> USB 전력선에서 측정된 신호에서 화면의 전원 켜짐과 버튼을 누르는 순서의 정확한 시작점을 명확히 감지할 수 있음

=>  잠금화면 모드에서는 사용자가 누르는 각 버튼을 명확하게 관찰하고 분리할 수 있음.

 

 

2) 버튼 누름 위치 식별

 

버튼 누를 때 전력 사용량이 상승하는데 이러한 증가는 모바일 OS의 활동으로 인해 발생

"유사해 보이는" 신호를 식별하고 전력 누출을 통해 애니메이션의 위치를 추출한다.

=> feature

 

이런 잠재력 조사를 위해 서로 다른 화면 기술을 사용하는 두 스마트폰에서 실행되는 맞춤형 안드로이드 애플리케이션 설계 (화면을 6개 부분 -위, 중간, 아래, 왼, 중간, 오른- 으로 나누고 검은색 배경에 화면의 각 부분을 채우는 깜빡이는 흰 막대 표시)

-> LCD 화면의 Motorola G4와 AMOLED 화면의 삼성 갤럭시 Nexus

 

안드로이드 OS가 사용자 인터페이스 요소와 잠금 화면을 렌더링하는 방식을 모방하기 위해 -> hardwareAccelerated 개발자 플래그를 설정하여 GPU가 이미지 렌더링에 포함되도록 함

 

 

 

3) 배터리 충전의 영향

 

공용 USB 충전 시설에서 충전되는 스마트폰은 임의의 배터리 수준을 가질 수 있으므로 매우 중요하다.

충전기에 연결되면 스마트폰은 충전기에서 전력을 끌어오고 남은 전력을 사용하여 배터리를 충전한다. 

충전 배터리는 완전 충전된 배터리보다 전력 소모가 더 높을 뿐만 아니라 전류 스파이크에 포함된 고주파 신호가 필터링될 수 있으므로 배터리 충전 회로가 전력 누출 정보를 감쇠할 수 있다.

 

 

 

 

 

민감한 정보 추론

 

(1) 공격자는 먼저 숨겨진 전압 모니터가 있는 서핑 풍전기로부터 원시 신호를 획득
(2) 원시 신호를 검색하여 버튼 시퀀스 감지
(3) 신경망은 신호를 처리하여 대상 장치 모델을 결정
(4) 사전 훈련된 신경망 집합에서 버튼 식별을 위한 정확한 모델을 선택
(5) 누르기 신호는 휴대폰 모델별 신경망에 대해 전처리되어 최종적으로 사용자가 터치스크린에서 누른 가상 버튼을 추론함

 

 

1) 원시 신호 획득

사용자 모르게 충전기에 부착된 숨겨진 전압 모니터를 통해 전력 추적을 은밀하고 포괄적으로 캡쳐

 

-> 샘플링 빈도에 영향을 미치는 두 요소 : 화면 새로 고침 주기, 화면 해상도

125KHz의 샘플링 속도 사용 (동일한 수직선에서 연속적인 샘플이 채취되지 않도록 하여 유용한 위치 정보를 제공)

 

 

2) 버튼 순서 감지

 

캡쳐된 전력 추적을 처리하고 버튼을 누르는 순서에 해당하는 신호 부분 분리

사용자가 터치스트린의 가상 버튼을 누르면 모바일 OS는 입력 위치를 파악하고 사용자에게 알림

 

-> 원시 전력 사용 신호에 가시적인 스파이크를 생성하여 전력 소비를 증가

이를 감지하기 위해 moving mean filter와 level detector 사용

필터는 신호에서 노이즈를 제거하여 레벨이 경험적으로 결정된 임계값을 초과하면 레벨 감지기가 버튼 누르기 시퀀스에 속하는 신호 부분을 격리할 수 있도록 함

 

완전 충전된 경우와 충전 중인 경우에서 잠금 화면 버튼을 눌렀을 때의 전압 판독값 비교

(a) - 필터링되지 않은 원시 신호

(b) - 오프셋을 제거하기 위해 차단 주파수가 60Hz인 high pass filter 활용

(c) - 필터링된 신호의 푸리에 변환을 나타내며 휴대폰의 충전 상태가 신호 무결성에 영향을 미치지 않음을 보여줌

 

 

 

 

3) 개별 버튼 분리

 

개별 프레스를 감지하는 프로세스에는 moving mean filter와 level detector의 조합 활용

 moving mean filter를 통과하면 버튼 시퀀스에 스파이크 표시되며 각 스파이크는 버튼 누름의 시작 부분에 해당

 

버튼 누르는 속도에 따라 원시 전력 신호는 단일 및 격리된 누르기 또는 여러 겹피는 버튼 누르기로 표시될 수 있다.

 

 

 

4) 전화 감지 (휴대폰 유형 감지)

 

공격자는 가장 인기 있는 스마트폰 모델의 전원 충전 역학을 미리 프로파일링 하고 신경망 모델을 사전 훈련할 수 있다.

USB 전력선을 통해 수집된 피해자의 신호는 전화 유형이 결정되면 사전 훈련된 모델에 공급 가능하다.

 

-> 격리된 버튼 누름 신호로 훈련된 신경망 활용

 

화면 기술, 화면 해상도, 전화기 내의 다양한 구성 요소에 따라 전력 추적 패턴이 크게 달라지므로 개별 버튼 누름을 분류하는 것보다 훨씬 쉽다. 

 

 

상단 -  raw signal of multiple overlapping button presses         하단 -  how peak detection can be utilized to determine non-overlapping portions of individual button presses

 

 

 

5) 신호 전처리 휴대폰 모델을 결정 후 Charger-Surfing

 

특정 휴대폰 모델의 특성에 따라 전원 신호를 크기 조정하고 표준화한다.

대상 휴대폰 모델에 맞게 설계된 스케일러를 사용하여 데이터를 전처리한다, (자체 장치의 몇 샘플을 사전 학습하여 생성)

결과 신호 범위는 -1과 1 사이

 

 

6) 애니메이션 추론

 

전처리된 전력 신호가 특정 유형의 장치에 대해 훈련된 신경망으로 전송되어 피해자가 장치에 입력하는 다중 누르기 시퀀스 재구성

 

수집된 신호는 전압 측정의 1차원 시계열이므로 1차원 CNN 활용

(일련의 컨벌류션 및 최대 풀링 레이어 포함, 입력 신호를 가능한 버튼 중 하나로 분류하고 각 클래스와 관련된 신뢰도 값을 제공하는 소프트맥스 회귀 레이어 포함)

 

Model Classifier Configuration -> 모든 CNN에서 중요한 고려 사항은 컨볼루셔널 커널의 사이즈 

=> 전력 추적의 특징 크기에 의존 -> 샘플링 속도, 화면 레이아웃, 감지할 애니메이션 크기에 의존

 

작은 커널 ~ 입력 신호의 많은 부분이 걸쳐 나타나는 특징을 인식 못할 수 있음

큰 커널 ~ 너무 거칠어 입력 신호의 미세한 세부사항과 특징 누락 가능

 

ex) 장치 텍스트 입력 키보드의 개별 키를 분류

-> 화면 크기에 따라 키 누르기 애니메이션의 크기를 계산하고 이에 따라 커널 크기를 수정한다.

 



사례 연구 : 비밀번호 추론

 

1) 데이터 수집

 

ios와 Android OS 모두에서 데이터 수집

배경이 모두 다른 15명의 자원봉사자로부터 입력 데이터 수집

 

-> 수정된 충전 케이블과 오실로스코프 사용

 

 

2) 분류기 구성 및 훈련

 

최상의 성능을 위해서 분류되는 화면 레이아웃과 애니메이션을 기반으로 CNN의 커널 크기를 조정하는 것이 필요

 

 

 

Convolution Neural Networks (합성곱 신경망)

CNN 이란? CNN은 Convolutional Neural Networks의 줄임말로 인간의 시신경을 모방하여 만든 딥러닝 구조 중 하나입니다. 특히 convolution 연산을 이용하여 이미지의 공간적인 정보를 유지하고, Fully connected Ne

yjjo.tistory.com

 

 

 

3) 전화 식별

 

신호가 획득된 후 버튼 격리를 함

전처리 시스템 및 분류기에 의해 신호가 처리되도록 대상 휴대폰 모델을 올바르게 식별함

-> 수집된 사용자의 하위 집단에서 고역 통과 필터링된 데이터를 사용하여 기본 신경망 훈련 -> 모델 식별에 이용

 

 

4) 단일 버튼 추론

 

안드로이드는 화면 전력 사용량에 대해 - 공간적 시간적 변화를 보여줌

ios는 화면 전력 사용량에 대해 - 시간적 및 처리적 변화를 보여줌

 

 

5) 오분류 분석

 




 

6) 비밀번호 추론

 

단일 버튼 누름을 분류하는 기능으로 수행

10번의 시도 이내에 4자리 및 6자리 비밀번호를 추론한다.

 

4자리 : 1,000 random 4-digit combinations을 선정

 In a brute force attack scenario ->  the success rate on the first trial is only 0.01%.

(with only one user in the training set) Charger-Surfing achieves an average success rate of 13.9% on the first trial and a 20.8% success rate after the 10th trial.

 

6자리 : 1,000 random 6-digit  선정 + evaluate the effectiveness of Charger-Surfing

6자리 비밀번호의 검색 공간은 1,000,000개의 조합이 있으므로 검색 공간이 훨씬 넓지만 4자리 비밀번호를 디코딩 할 때와 비슷한 성공률을 보여준다.

 

=> 무차별 공격에 비해 Charger - Surfing은 96,000배 이상 더 효과적

 

 

7) 샘플링 주파수의 영향

 

약 125KHz의 샘플링 속도 사용

더 높은 주파수에서 샘플링하기 위해서는 더 비싸고 강력한 장비가 필요함

 

감소된 샘플링 속도로 수집된 데이터를 사용할 수 있도록 신경망의 크기가 조정되고 재교육된다.

 

3인 사용자 데이터를 기반으로 한 다양한 샘플링 속도가 단일 버튼 정확도에 미치는 영향

 

 

8) 탐지 세분성 분석 Granularity

 

 

 

공격 실용성

 

1) 휴대용 데이터 수집 시스템

 

아래 그림과 같이 데이터 수집을 위한 휴대용 마이크로컨트롤러 기반 시스템을 설계하고 개발한다.

dual-core Tensilica Extensa LX6 processor를 갖춘 Espressif ESP32 칩으로 구성

ADC(아날로그 디지털 변환기)에 연결된다.

단일 버튼 및 비밀번호 추론 정확도 (훈련 사용자 5명/ 테스트 사용자 15명)

 

 

 

2) 다양한 장치 설정 테스트

 

피해자의 화면 배경, 밝기 설정 등이 다를 가능성이 높은데 이는 공격자의 정확성에 영향을 미칠 수 있으므로 피해자의 네트워크를 다양한 구성으로 테스트한다.

단일 버튼 추론 정확도(교육 5명/ 테스트 1명) - 다양한 구성

-> 구성의 차이가 추론의 정확도에 거의 영향을 미치지 않음을 알 수 있다.

이는 Charger-Surfing이 매우 강력함을 보여준다.

 

 

3) 교차 장치 테스트

 

Charger-Surfing은 다양한 사용자들에게만 잘 작동하는 것이 아닌 진짜 보안 위협을 제기하는 같은 모델의 다른 기기에서도 잘 작동하는 것을 확인할 수 있다.

 

 

 

 

대책 Countermeasures

 

해당 실험 결과에 따르면 Charger-Surfing은 버튼 위치를 찾는 데 매우 효과적이다. 터치 스크린을 누르고 사용자의 비밀번호와 같은 민감한 정보를 추론한다.

 

randomizing a number’s position on the keypad for code entry는 사용자의 민감한 정보를 감지하는 Charger-Surfing의 기능을 방해한다.

 

소음을 통한 익사로 해결.

utilize a moving background such as the readily available live/dynamic wallpapers on Android/iOS

 

 

 

 

 

소감

꼭 WiFi와 같은 무선 네트워크 뿐만 아니라 유선 충전을 통해서도 높은 정확성의 보안 위협이 나타남을 알 수 있었다. 하드웨어적 지식을 요하는 부분들이 있어서 어렵게 다가왔으며, 앞으로 더욱 공부해야 할 부분들이 많음을 알 수 있었다. 아직은 그냥 이런 공격이 이런 형태로 가능하구나~ 정도의 이해로 와닿는데 더 깊이 공부해서 어떤 원리로 인해 전력이 누출되며 그걸 어떻게 감지해서 어떻게 분석할 수 있는 것인지까지 이해할 수 있으면 좋겠는 바람이다.

 

 

[논문 분석] Charger-Sufing.pdf
0.68MB