본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

보안

편안한 삶의 위협적인 존재, 디바이스 해킹

2015.04.27

해킹(Hacking)이란 무엇인가요?

해킹이란 웹서비스 서버에 침투해서 관리자 계정을 탈취하여 정보를 빼내거나, 사용자 PC에 악성코드 등을 침투시켜 제어권을 빼앗아 해커가 원하는 대로 작업할 수 있게 만드는 일련의 과정들을 의미하는데요. 즉, 비정상적인 방법으로 권한이 없는 사용자가 권한을 가져가는 것을 뜻합니다.

파밍(Pharming), 스미싱(Smishing)같은 범죄행위 역시 해킹의 범주 안에 속하는 것으로, 최근 이러한 해킹에 의해 은행, 방송사 등의 전산망이 피해를 입었고, 인터넷뱅킹 사용자가 피해를 당하기도 했습니다.

해킹은 서비스 서버의 취약점을 알려주는 화이트 해킹과 범죄에 이용하는 블랙 해킹으로 나눌 수 있는데요. 블랙 해킹을 일삼는 해커들을 크래커(Cracker)라 부르기도 합니다. 하지만 일반적으로 해커, 해킹이라 함은 주로 블랙해킹을 의미하고 있습니다.

지금까지는 PC의 이용이 많았기 때문에 대부분의 해킹이 서버나 PC에 많이 집중되었습니다. 하지만 최근에는 이런 해킹의 대상이 모바일과 사물인터넷(Internet of Things, 이하 IoT)으로 넘어오고 있는 추세입니다. 아이폰의 등장 이후 급성장한 모바일 시장으로 인해 스마트폰과 태블릿PC의 보급이 확대되었고, 스마트밴드, 스마트워치 같은 다양한 IoT 단말기들이 나오면서 해커들의 관심도 이동하는 것이지요. 이들 모바일, 임베디드 단말기(IoT 단말기를 포함하여 다양한 단말기들을 통칭)들을 해킹하는 것을 간단히 디바이스 해킹이라고 합니다.

디바이스 해킹과 펌웨어

디바이스 해킹은 흔히 하드웨어 해킹으로 생각하기 쉬운데요. 실제로는 그 하드웨어를 제어하는 소프트웨어에 대한 해킹으로 보는 것이 더 정확합니다. 컴퓨터라는 것이 처음 나왔을 때부터 하드웨어만으로는 아무 것도 할 수 없고, 소프트웨어로 제어 해야 제 기능을 발휘할 수 있기 때문에 디바이스 해킹은 하드웨어를 제어하는 소프트웨어인 펌웨어(Firmware)를 해킹하는 것이라고 볼 수 있습니다.

펌웨어는 그 종류가 상당히 많은데요. 디바이스의 제어를 담당하는 디바이스 드라이버, 디바이스에 OS(Operating System)를 올려주는 부트로더(Bootloader), 디바이스용 OS, 해당 디바이스에서 구동되는 응용 소프트웨어 등이 있습니다. 즉, 디바이스 위에서 직접 구동되는 어플리케이션은 모두 펌웨어라고 할 수 있는 것이죠.

일반적으로 펌웨어에는 윈도우, 리눅스, iOS, 안드로이드와 같은 형태가 아닌 RT OS(Real Time Operating System)라 불리는 형식의 소형 OS가 내장되어 있어 그 위에서 어플리케이션이 돌아가도록 되어 있는데요. 디바이스 해킹은 주로 이 OS 부분을 해킹하여 어플리케이션의 제어권이 해커에게 넘어가는 것을 의미합니다.

모바일 디바이스의 보안 취약성

모바일이나 IoT단말기의 해킹은 보통 관리자 계정을 탈취하는 것을 의미하는데요. 스마트폰이나 태블릿 PC의 경우 대체적으로 보안 설정이 잘 되어 있습니다. 아이폰은 기본적으로 샌드박스 위에서 동작하고 있으며 안드로이드폰은 다양한 보안 방식을 이용하여 관리자 계정을 보호하고 있습니다.

일반적으로 아이폰은 탈옥(Jailbreaking), 안드로이드폰은 루팅(Rooting)과 같은 방식으로 디바이스 해킹을 시도하는데요. 모두 관리자 계정에 마음대로 들어갈 수 있도록 작업을 해주는 것입니다. 이것을 이용하여 허가 받지 않은 어플리케이션도 설치하고 원하는 데이터들을 마음대로 넣고 빼고 하는 것이지요. 이 작업들이 해커들을 위해서 사용되면 바로 사용자의 피해로 연결될 수 있습니다.

IoT 단말기들의 보안은 좀더 심각한 편입니다. 요즘 많이 사용하는 스마트워치, 스마트밴드에 가장 많이 적용하는 것이 임베디드 리눅스(Embeded Linux)인데요. 이는 일반 리눅스 커널(Kernel)을 하드웨어에 맞게 변형해서 만든 것으로, 오픈소스로 되어 있어 손쉽게 소스를 커스터마이징 할 수 있습니다.

IoT는 주로 웨어러블(Wearable) 단말기로 사용하기 때문에 디자인 등을 고려하여 소형화 할 수 밖에 없고 하드웨어 퍼포먼스가 상대적으로 떨어질 수 밖에 없습니다. 그러다 보니 기본적인 기능 제공에만 집중하고 보안에는 소홀해 질 수 밖에 없는 것입니다.

생활 속의 디바이스 해킹

실제로 모바일과 IoT가 가지고 있는 보안 상의 문제점들로 인한 해킹 피해가 조금씩 생겨나고 있는데요. 스마트 냉장고나 자동응답기가 해킹 당하여 엉뚱한 동작을 했다는 뉴스는 쉽게 접할 수 있습니다. 스마트 전구 등을 비롯한 스마트홈이 현실화되기 시작하면 그러한 사례가 점점 더 많아질 것으로 예상됩니다.

애플에서 전기차 개발 프로젝트인 ‘타이탄 프로젝트’를 시작했다고 하는데요. 이 소식을 접하면서 전기차를 통한 디바이스 해킹에 대한 위험성도 상상해 볼 수 있습니다. 전기차로 유명한 테슬러(Tesla)에서는 전기차에 대한 모든 제어를 소프트웨어로 진행합니다. 테슬러에서 나온 전기차 모델 S는 내부차량용 펌웨어의 업데이트만으로 최고시속을 250km/h까지 올릴 수 있는데요. 엔진이 아닌 펌웨어의 튜닝(Tuning)만으로 속도를 개선한 것입니다. 일반 자동차와 달리 제어권이 펌웨어에 있기 때문에 이 펌웨어가 해킹을 당한다면 그 피해는 엄청날 것입니다. 이렇듯 디바이스 해킹은 IoT 단말기 뿐만 아니라 스마트카에서도 충분히 일어날 수 있습니다.

디바이스 해킹의 방지 방법

이런 위험성을 가지고 있는 디바이스 해킹을 방지하려면 어떻게 해야 할까요?

첫째, 데이터 암호화입니다. IoT 단말기든 스마트카든 대부분의 임베디드 기기들은 통신을 통해 데이터를 가져오는데요. 해킹을 당하는 것도 대부분 이 과정에서 이루어 집니다. 그렇기 때문에 통신 과정에 대한 보안이 필수적인데요. 가장 쉽고 확실한 방법은 암호화입니다. 하드웨어 성능의 제약으로 구현이 어렵다고 할 수도 있겠지만 암호화 통신은 필수라고 할 수 있습니다.

둘째, 펌웨어의 보안, 즉 시큐어코딩(Secure coding)입니다. 동작되는 어플리케이션 자체에 버그가 많거나, 데이터 보안이 잘 되어 있어도 인터페이스 부분이 열려 있다면 보안에 취약해 지겠지요. 사용하는 프로그램 언어에 대한 취약성을 제대로 파악하고 보안성을 강화하는 프로그래밍이 필수입니다. 이는 디바이스 해킹뿐만 아니라 일반 프로그램에서도 동일하게 적용되는 부분이기도 합니다.

셋째, 지속적인 업데이트입니다. 어플리케이션을 만들 때 사용하는 프로그래밍 툴(Tool)이나 언어는 기본적으로 많은 버그들을 가질 수 밖에 없습니다. 툴에 대한 버그 패치(Patch)를 진행하면서 펌웨어 암호화 알고리즘을 지속적으로 업그레이드 해야 하는 것이죠. 이를 통해 해킹에 대한 위협을 지속적으로 방어해야만 디바이스 해킹을 막을 수 있을 것입니다.

오늘은 디바이스 해킹의 위험성과 그에 대한 대응방안을 살펴보았습니다. 모바일이나 IoT 모두 인간의 삶을 편안하게 만들어 주기 위해서 발전하는 것인데요. 그것이 해킹으로 인해 위협으로 다가온다면 분명 문제가 되겠죠. 따라서, 디바이스 해킹에 대한 지속적인 대비와 보안 강화를 통해 모바일이나 IoT가 본래 원했던 방향으로 계속 발전할 수 있는 환경을 조성해 주어야 할 것입니다.

글 l 이학준 (http://poem23.com/ 필명: ‘학주니’)

챗봇과 대화를 할 수 있어요