지난달 미국의 몇몇 연구원들이 상용 자동차를 해킹했다는 기사가 보도됐다. 이 연구원들은 자동차를 해킹하고 자동차가 주행중인 동안 원격으로 자동차의 다수 기기를 조작하는데 성공했다고 한다. 연구원들은 직접 개발한 네트워크 프로토콜 분석기(CarShark)를 사용해 CAN이라고 하는 자동차 내부 네트워크 패킷을 분석하고, 노트북을 사용해 원격에서 조작했다고 한다.
▲ 해킹된 자동차 콘솔, 연구원들이 개발한 툴 (CarShark) 이름이 보인다.
이 해킹방법은 개념적으로 인터넷에서 암호화되지 않은 웹사이트의 ID와 패스워드를 훔쳐내는 방법과 개념적으로 동일하다. 인터넷에서는 네트워크 스니퍼나 ARP 스푸핑 등의 방법으로 같은 네트워크에 속해 있는 타인의 네트워크 패킷을 훔쳐 볼 수 있다. HTTPS와 같은 보안 프로토콜을 사용하지 않는 경우 패킷에서 ID와 패스워드를 어렵지 않게 찾아 볼 수 있다.
| |
▲ PC용 네트워크 프로토콜 분석기 WireShark2 |
연구 결과에서 볼 수 있듯이 오늘날의 자동차는 더 이상 순수하게 기계로 이루어진 탈 것이 아니다. 순수한 기계적 탈 것은 경운기 정도일 것이다. 현대의 자동차는 다수의 컴퓨터에 의해서 통제되며 이들은 내부 네트워크로 서로 연결되어 있다. 개념적으로 인터넷으로 연결된 PC와 같다고 할 수 있다. 인터넷 냉장고나 기타 인터넷 또는 다른 네트워크로 연동되는 기기 들 모두 해당된다고 할 수 있다. CPU가 다르고 연결되어 있는 네트워크가 다르긴 하지만 결국 그 원리는 같다.
해킹할 대상(예를 들면 IPTV 셋탑박스)를 확보하고 뜯어서 내부의 부품과 S/W를 확인하고 취약점을 찾아 볼 수 있다. 취약점이 확인되면 공격할 수 있는 코드를 만들거나 이식할 칩을 생각해 볼 수도 있을 것이다. 매번 신제품이 나올 때 마다 보안이 강화되어 발표되지만 몇 달 만에 보안이 해제되는 플레이 스테이션이나 X박스, NDS와 같은 게임기가 그 실 예이다.
▲ X박스 해킹에 사용된 Modchip3 X박스 기판 위에 전선으로 연결돼 있다.
컴퓨터로 구성된 제품은 100% 해킹 불가라고 말하기는 어려울 듯 하다. 자동차의 예에서 볼 수 있듯이 장치가 해커의 손에 들어가면 어떤 식으로던지 분석 가능하기 때문이다. 분석된 결과는 동일한 장치를 사용하는 다른 장비를 공격하는데 사용될 것이다. 자동차 연구에서 해킹된 차종은 동일한 방법으로 모두 해킹될 수 있다.
해킹을 막는 가장 좋은 방법 중 하나는 해커가 소스코드나 실행파일, 칩과 같은 하드웨어를 직접 손에 넣을 수 없도록 물리적으로 막는 것이다. 국가보안과 같은 매우 중요한 컴퓨터 시스템의 경우 가능하다면 해당 시스템 운용 S/W에 해커가 접근할 수 없도록 비공개 고유 S/W를 개발하여 사용하는 것이 안전한 방법일 듯 하다.
우리가 실생활에서 만나는 대부분의 전자기기는 소스코드는 아닐지라도 실행파일이나 칩이 공개된다. 기계어로 되어 있는 실행파일을 어떻게 분석해?라고 생각이 들 수도 있지만, 실행파일을 분석하는 툴들도 여럿 있고 심지어는 C코드로 변환해 주기까지 한다.
보안 측면에서는 실행파일도 읽기 어려운 소스코드라고 생각하는 것이 좋다. 따라서, 어떤 중요한 시스템을 보호하는 방안을 수립할 때는 항상 해킹될 수도 있다라고 가정하고 계획을 세워야 할 것이다. 해킹되어도 별 문제가 없도록 설계할 수 있다면 최선일 것이다. 마이크로소프트의 게임기인 XBOX의 경우 해킹되면 온라인 업그레이드가 되지 않고 또 온라인 게임 서버에도 접속되지 않아 멀티플레이를 할 수 없게 된다.
▲ 보기 졸도록 기계어를 C코드로 변환해서 보여주는 실행파일 코드분석기, IDA와 Hex Decompiler4
자동차 해킹에 대한 기사를 계기로 해킹될 수 있는 기기는 어떤 것이 될 수 있는 지와 해킹을 막는 방법이 가능한지 대해서 짧게나마 생각해 보았다. 이론적으로는 전자기기를 포함하고 있는 모든 기기가 해킹될 가능성이 있다. 그리고 완벽하게 대처하기란 사실상 불가능 하다. 다행스러운 것은 자동차 해킹과 같은 고도(?)의 기술적 해킹은 특수한 장비가 들어가므로 실생활에서는 발생할 가능성은 그리 높지 않을 것이란 것이다.
그렇다고는 해도 자동차나 냉장고와 같은 전자기기를 제조할 때도 해킹에 대비하여 보안을 고려해야 할 것이다. 공격은 가장 취약한 곳을 노리면서 시작되고, 우리가 지켜야 할 대상은 컴퓨터에 한정되어 있지 않다. 다양한 관점에서 보안을 검토해야 할 때라고 생각한다.
ARP스푸핑 : 랜 카드의 고유한 주소(MAC 주소)를 동일 네트워크에 존재하는 다른 PC에 꽂혀있는 랜 카드의 주소로 위장, 다른 PC에 전달돼야 하는 정보를 가로채는 공격을 말한다. ARP스푸핑은 이미 오래 전부터 알려져 있는 새로운 공격 기법이 아니지만 최근 많이 활용되면서 부각되고 있으며 이를 통해 유포되는 악성코드는 개인 계정정보 유출과 분산서비스거부(DDos) 공격에 악용되고 있다.
| |
l 황용석 프로그래머
| |