2016.02.25

ITWorld 용어풀이 | 백도어

박상훈 기자 | ITWorld
'백도어(backdoor)'란 어떤 제품이나 컴퓨터 시스템, 암호시스템 혹은 알고리즘에서 정상적인 인증 절차를 우회하는 방법론을 뜻합니다. 우리말 '뒷문'이라는 단어의 어감에서 알 수 있듯이, 허가받지 않고 시스템에 접속하는 권리를 얻기 때문에 대부분 은밀하게 작동합니다. 백도어는 어떤 고정된 형태가 있는 것은 아닙니다. 프로그램 일부로 감춰져 있을 수도 있고, 독자적인 프로그램이나 하드웨어 모습을 갖기도 합니다.

백도어의 개념은 1967년 미국정보처리협회 컨퍼런스까지 거슬러 올라갑니다. 이때 나온 '정보 프라이버시의 시스템 영향(System Implications of Information Privacy)' 논문을 보면 '트랩도어(함정문, trapdoor)'라는 용어가 등장합니다. 보안 기능을 우회해 데이터에 직접 접근하는 공격방법인데, 사실상 백도어와 같습니다. 이후 트랩도어는 공개키 암호화 관련 용어로 쓰이고 대신 백도어라는 용어가 더 널리 사용되고 있습니다.


영화 <워게임>의 한 장면

백도어의 위협이 부상한 것은 지금의 인터넷의 원형인 다중 사용자 네트워크가 확산되면서부터입니다. 로그인 시스템에서 아이디와 비밀번호의 조합 형태의 백도어가 등장합니다. 백도어의 위험은 영화로도 나왔는데, 1983년작 <워게임>이 대표적입니다. 우연히 미 국방성 중앙 컴퓨터의 백도어를 발견한 사용자가 게임인 줄 알고 시스템을 조작했다가 실제 3차 세계 대전이 발발할 위기에 처한다는 내용입니다.

대표적 백도어를 몇 가지 살펴보죠. '오브젝트 코드 백도어(Object code backdoors)'가 있습니다. 오브젝트 코드란 개발자가 작성한 소스 코드를 기계가 이해할 수 있도록 변환한(컴파일, compile) 후의 코드입니다. 영화 <매트릭스>에서 오퍼레이터가 녹색 모니터를 통해 보던 장면처럼 숫자와 기호의 조합으로 나타납니다. 오브젝트 코드 백도어는 여기에 백도어를 삽입하기 때문에 코드만 보고 백도어가 있는지 여부를 알아내기 매우 어렵습니다.

'비대칭 백도어(Asymmetric backdoors)'도 있습니다. 전통적인 백도어는 일단 발견하면 누구나 이용할 수 있지만 이 백도어는 암호화 기술을 이용해 이를 심은 공격자만 사용할 수 있습니다. 이런 종류의 공격을 '클랩토그라피(kleptography)'라고 부르는데, 소프트웨어와 하드웨어(스마트카드 등), 혹은 둘 모두에서 실행할 수 있습니다. 비대칭 백도어 관련 개념은 현재 '바이러스 암호학(Cryptovirology)'에서 다뤄지고 있습니다.


형광 표시된 곳이 코드 속에 숨겨진 백도어 패스워드이다. (이미지 출처 : 위키피디아)

'컴파일러 백도어(Compiler backdoors)'는 컴파일러를 변조해 컴파일 과정에서 백도어를 심는 방식입니다. 일반적으로 백도어는 원본 소스 파일을 재컴파일해 없앨 수 있는데, 이런 방식의 백도어는 소스코드 자체를 바꿔 마치 백도어가 없는 것처럼 위장합니다. 이후에 컴파일러를 변조되기 전으로 돌려놓으면 결국 원본 소스 파일과 컴파일러 모두가 문제가 없는 상태처럼 보이게 할 수 있다는 점에서 매우 위험한 백도어입니다.

일단 백도어에 노출되면 이를 찾아내 삭제하기가 쉽지 않습니다. 그래서 일반 사용자는 감염된 시스템을 포기하고 깨끗한 시스템을 만들어 데이터만 옮기는 경우도 있습니다. 그러나 아무리 힘들어도 반드시 백도어를 검증해야 하는 분야가 있습니다. 운영체제나 보안 소프트웨어를 만드는 업체입니다. 자칫 백도어가 들어있는 프로그램을 대량 배포할 수 있기 때문에 강력한 소스 관리 시스템을 사용하고 있습니다.

그동안 많은 백도어의 개념이 나왔지만 구체적으로 확인된 사례는 많지 않습니다. 가장 유명한 사례 중 하나가 2003년 리눅스에 백도어를 심으려는 시도였습니다. 값을 할당하는 '=' 대신 등가 여부를 검사하는 '=='로 단 2줄을 바꿔 최고 관리자 권한을 탈취하는 백도어였습니다. 그러나 다수가 참여하는 오픈소스의 장점 덕분에 이내 발각이 됐습니다. 2014년에는 삼성전자의 갤럭시 스마트폰이 백도어 논란에 휩싸이기도 했습니다.


이미지 출처 : flickr / DonkeyHotey

최근 백도어가 다시 주목받는 것은 애플-FBI 갈등 때문입니다. FBI는 테러 용의자의 아이폰 속 데이터를 조사해야 하는데 아이폰 보안이 너무 강력하니 백도어를 만들어 달라고 애플에 요구하고 있습니다. 사실 백도어를 향한 정보기관의 탐욕은 이번이 처음이 아닙니다. 1993년 미국 정부는 암호화 칩 '클리퍼(Clipper)'를 발표하고 이를 강제로 사용하도록 하는 법안을 추진했습니다. 범죄 수사 등 필요할 때 암호를 해독해 내용을 보겠다는 논리였죠.

당시 이를 밀어붙인 곳은 우리나라 국정원에 해당하는 미국의 NSA였습니다. 2013년 스노든의 폭로로 광범위한 사찰 행각이 드러난 바로 그 기관입니다. NSA는 이미 그때부터 합법적인 백도어를 원했던 것입니다. 그러나 클리퍼 칩 계획은 거센 여론의 반발에 부딪혀 완전히 실패했습니다. 그리고 다시 20여년 만에 이번엔 FBI가 '아이폰 백도어'를 요구하고 있습니다. 백도어의 역사에 이번 사건은 어떻게 기록될까요? editor@itworld.co.kr


2016.02.25

ITWorld 용어풀이 | 백도어

박상훈 기자 | ITWorld
'백도어(backdoor)'란 어떤 제품이나 컴퓨터 시스템, 암호시스템 혹은 알고리즘에서 정상적인 인증 절차를 우회하는 방법론을 뜻합니다. 우리말 '뒷문'이라는 단어의 어감에서 알 수 있듯이, 허가받지 않고 시스템에 접속하는 권리를 얻기 때문에 대부분 은밀하게 작동합니다. 백도어는 어떤 고정된 형태가 있는 것은 아닙니다. 프로그램 일부로 감춰져 있을 수도 있고, 독자적인 프로그램이나 하드웨어 모습을 갖기도 합니다.

백도어의 개념은 1967년 미국정보처리협회 컨퍼런스까지 거슬러 올라갑니다. 이때 나온 '정보 프라이버시의 시스템 영향(System Implications of Information Privacy)' 논문을 보면 '트랩도어(함정문, trapdoor)'라는 용어가 등장합니다. 보안 기능을 우회해 데이터에 직접 접근하는 공격방법인데, 사실상 백도어와 같습니다. 이후 트랩도어는 공개키 암호화 관련 용어로 쓰이고 대신 백도어라는 용어가 더 널리 사용되고 있습니다.


영화 <워게임>의 한 장면

백도어의 위협이 부상한 것은 지금의 인터넷의 원형인 다중 사용자 네트워크가 확산되면서부터입니다. 로그인 시스템에서 아이디와 비밀번호의 조합 형태의 백도어가 등장합니다. 백도어의 위험은 영화로도 나왔는데, 1983년작 <워게임>이 대표적입니다. 우연히 미 국방성 중앙 컴퓨터의 백도어를 발견한 사용자가 게임인 줄 알고 시스템을 조작했다가 실제 3차 세계 대전이 발발할 위기에 처한다는 내용입니다.

대표적 백도어를 몇 가지 살펴보죠. '오브젝트 코드 백도어(Object code backdoors)'가 있습니다. 오브젝트 코드란 개발자가 작성한 소스 코드를 기계가 이해할 수 있도록 변환한(컴파일, compile) 후의 코드입니다. 영화 <매트릭스>에서 오퍼레이터가 녹색 모니터를 통해 보던 장면처럼 숫자와 기호의 조합으로 나타납니다. 오브젝트 코드 백도어는 여기에 백도어를 삽입하기 때문에 코드만 보고 백도어가 있는지 여부를 알아내기 매우 어렵습니다.

'비대칭 백도어(Asymmetric backdoors)'도 있습니다. 전통적인 백도어는 일단 발견하면 누구나 이용할 수 있지만 이 백도어는 암호화 기술을 이용해 이를 심은 공격자만 사용할 수 있습니다. 이런 종류의 공격을 '클랩토그라피(kleptography)'라고 부르는데, 소프트웨어와 하드웨어(스마트카드 등), 혹은 둘 모두에서 실행할 수 있습니다. 비대칭 백도어 관련 개념은 현재 '바이러스 암호학(Cryptovirology)'에서 다뤄지고 있습니다.


형광 표시된 곳이 코드 속에 숨겨진 백도어 패스워드이다. (이미지 출처 : 위키피디아)

'컴파일러 백도어(Compiler backdoors)'는 컴파일러를 변조해 컴파일 과정에서 백도어를 심는 방식입니다. 일반적으로 백도어는 원본 소스 파일을 재컴파일해 없앨 수 있는데, 이런 방식의 백도어는 소스코드 자체를 바꿔 마치 백도어가 없는 것처럼 위장합니다. 이후에 컴파일러를 변조되기 전으로 돌려놓으면 결국 원본 소스 파일과 컴파일러 모두가 문제가 없는 상태처럼 보이게 할 수 있다는 점에서 매우 위험한 백도어입니다.

일단 백도어에 노출되면 이를 찾아내 삭제하기가 쉽지 않습니다. 그래서 일반 사용자는 감염된 시스템을 포기하고 깨끗한 시스템을 만들어 데이터만 옮기는 경우도 있습니다. 그러나 아무리 힘들어도 반드시 백도어를 검증해야 하는 분야가 있습니다. 운영체제나 보안 소프트웨어를 만드는 업체입니다. 자칫 백도어가 들어있는 프로그램을 대량 배포할 수 있기 때문에 강력한 소스 관리 시스템을 사용하고 있습니다.

그동안 많은 백도어의 개념이 나왔지만 구체적으로 확인된 사례는 많지 않습니다. 가장 유명한 사례 중 하나가 2003년 리눅스에 백도어를 심으려는 시도였습니다. 값을 할당하는 '=' 대신 등가 여부를 검사하는 '=='로 단 2줄을 바꿔 최고 관리자 권한을 탈취하는 백도어였습니다. 그러나 다수가 참여하는 오픈소스의 장점 덕분에 이내 발각이 됐습니다. 2014년에는 삼성전자의 갤럭시 스마트폰이 백도어 논란에 휩싸이기도 했습니다.


이미지 출처 : flickr / DonkeyHotey

최근 백도어가 다시 주목받는 것은 애플-FBI 갈등 때문입니다. FBI는 테러 용의자의 아이폰 속 데이터를 조사해야 하는데 아이폰 보안이 너무 강력하니 백도어를 만들어 달라고 애플에 요구하고 있습니다. 사실 백도어를 향한 정보기관의 탐욕은 이번이 처음이 아닙니다. 1993년 미국 정부는 암호화 칩 '클리퍼(Clipper)'를 발표하고 이를 강제로 사용하도록 하는 법안을 추진했습니다. 범죄 수사 등 필요할 때 암호를 해독해 내용을 보겠다는 논리였죠.

당시 이를 밀어붙인 곳은 우리나라 국정원에 해당하는 미국의 NSA였습니다. 2013년 스노든의 폭로로 광범위한 사찰 행각이 드러난 바로 그 기관입니다. NSA는 이미 그때부터 합법적인 백도어를 원했던 것입니다. 그러나 클리퍼 칩 계획은 거센 여론의 반발에 부딪혀 완전히 실패했습니다. 그리고 다시 20여년 만에 이번엔 FBI가 '아이폰 백도어'를 요구하고 있습니다. 백도어의 역사에 이번 사건은 어떻게 기록될까요? editor@itworld.co.kr


X