Case
DNA에 악성코드를 심어라!
2017 08 11
  • Facebook
  • Twitter
  • Copy URL

자신의 몸에 있는 홍채, 망막, 정맥, 얼굴, 음성, 지문까지 내가 가지고 있는 고유한 특징들이 보안 인증 수단으로 쓰이기 시작했다. 개인의 신체적, 행동적 특징으로 한 보안 수단은 기존의 비밀번호 인증 수단의 단점을 채워줄 뿐만 아니라 높은 편의성을 제공한다. 이 때문에 생체인증의 활용성은 날로 커지고 있으며, 생체와 관련된 디지털 연구가 활발하게 이루어지고 있다.[1] 특히나 최근에는 DNA와 관련된 연구가 활발하게 이루어지는데 올해 3월 실제로 DNA에 데이터를 저장하는 데 성공했다는 연구가 나왔다.[2] 이러한 연구 성과는 수많은 정보가 난무하는 정보화 시대에서 하나의 새로운 데이터 저장 메커니즘을 보여주었다. 그리고 지난 9일, 유전자 정보가 담긴 DNA에 인코딩된 악성코드를 심어 컴퓨터를 해킹할 수 있다는 연구를 입증했다.[3] 공상 과학 소설 같은 이야기가 이제는 현실로 다가오고 있다.

이미지를 불러오는데 실패했습니다.

지난 3월, 미국 컬럼비아대와 뉴욕 게놈센터 연구진은 생명의 유전 정보가 담긴 DNA에 데이터를 넣는 데 성공했다. 컴퓨터의 경우, 데이터를 저장할 때 기본 단위로 쓰이는 비트 숫자 0과 1을 통해 정보를 저장한다. 이에 비해 DNA는 아데닌(As), 구아닌(Gs), 시토신(Cs), 티민(Ts) 이 네 가지의 염기를 통해 유전 정보를 기록하는데, 이런 저장 구조를 통해 디지털 데이터도 저장할 수 있다는 연구다. 더욱이 작은 DNA로 수많은 정보를 오래도록 보존할 수 있어 안정적이고 오래도록 저장할 수 있다는 장점이 있다.[4] 쉽게 말해, 1그램의 DNA에는 1000년 이상 동안 1,000,000,000테라바이트의 데이터를 저장할 수 있다.[5]

디지털 파일의 데이터를 0과 1로 나누고, 이 결과 값을 DNA의 네 가지 염기 As, Gs, Cs, Ts의 조각들로 바꾸었다. 이런 식으로 염기에 정보를 담아 디지털 파일을 몇만 개의 DNA 조각으로 만들고, 이를 하나의 DNA 분자 알갱이로 만든다. 즉, 기존의 데이터 표현 0과 1을 DNA의 데이터 표현인 As, Gs, Cs, Ts 네 가지 염기로 바꾸어 저장한 것이다.[6] 이 같은 방법으로 정보를 담은 인공 DNA를 만들고, 기존의 DNA 유전 정보를 해석하는 시퀀싱 과정을 거쳐 다시 디지털 파일로 재생할 수 있다. 그들은 이 연구의 이름을 ‘참신한 접근방식(novel approach)’ 이라고 하였고 당시 이 연구의 성공은 DNA 스토리지라는 새로운 데이터 저장 패러다임을 불러올 것이라고 예상하였다. 그리고 지난 6월에는 DNA 기반의 스토리지 기술 개발에 박차를 가하고 있다고 밝혀 상용화가 곧 멀지 않았다는 것을 밝히며 예측이 곧 눈앞에 있음을 보여줬다.[7][8]

그리고 DNA를 통한 데이터 저장은 영화에서 볼 법한 기술을 만들어 냈다. 바로 DNA 데이터 저장을 통한 해킹이다. 시애틀에 있는 워싱턴 대학 (University of Washington) 연구진은 DNA에 악성코드를 인코딩하여 DNA 안에 악성코드가 담긴 인공 DNA를 만들었다. 그리고 그들은 인공 DNA를 통해 DNA의 정보를 읽는 시퀀싱 프로그램을 코드를 변경하여 그 시스템을 장악하는 연구를 보여주었다.[9] 즉, 시퀀싱 프로그램이 DNA에서 정보를 읽는 과정에서 DNA에 있는 악성코드를 읽어 들이며 시퀀싱 프로그램이 손상되고 컴퓨터가 해킹된 것이다. 이 연구는 DNA를 통한 데이터 저장 구조 시스템에 최초의 악용 사례이며, DNA 처리 소프트웨어가 얼마나 보안이 부족한지 보여주는 사례라고 볼 수 있다.

조금 더 그들의 연구에 대해 말해보겠다. 해킹하기 위해 Tadayoshi Kohno 연구원은 온라인에서 DNA를 구매하였고, 앞서 얘기한 참신한 접근방식(novel approach)을 통해 DNA에 악성코드를 인코딩했다. 그들의 연구는 DNA에 있는 데이터를 파일로 보기 위해 DNA 시퀀싱이 필요하다는 것이 연구의 전제였다. 그런 다음 DNA 시퀀싱 시스템에서 유전자 데이터를 읽은 후에 유전자 데이터를 처리하려고 시도한 컴퓨터에서 그 시스템을 완전하게 제어하는 데 성공했다.[10] 익스플로잇은 비교적 기본적이었다. 안전하지 않은 함수, strcpy와 같은 C 런타임 라이브러리 함수를 호출하거나 버퍼 오버플로우 취약점을 통해 공격하였다.[11] 즉, 소프트웨어의 최대 길이를 일부러 벗어나게 하여 악의적인 명령을 실행시킨 것이다. 악의적인 명령은 시퀀싱 시스템을 지나 컴퓨터를 관리하는 서버로 연결되었고, 연결된 컴퓨터를 장악할 수 있었다.

이번 연구에서 주목할 점은 세 가지다. 먼저, DNA 데이터 저장을 통한 최초의 악의적 수법이라는 점이다. 이번 연구에서는 DNA에 악성코드를 심어 수행하였지만, DNA를 통해 중요한 장소의 데이터를 훔칠 수도 있고, 다른 파일들을 감염시킬 가능성을 보여준 셈이다. 즉, 언젠가 인공적인 혈액을 사용하거나 샘플을 뱉는 등 더 다양한 방법이 나올 수 있단 이야기다. 두 번째로 주목해야 할 점은 컴퓨터 기반으로 사용되는 DNA 관리 소프트웨어, 시스템들이 상당히 보안에 취약하다는 점이다. 이번 연구를 진행한 연구진들은 일반적으로 사용되는 DNA 관리 소프트웨어 13개의 오픈 소스를 분석해본 결과, 대다수 소프트웨어가 보안에 취약하다는 것을 보여줬다. 앞서 얘기했듯이 strcpy 함수의 호출 빈도가 높다거나 최신이 아닌 오래된 소프트웨어인 점을 고려했을 때 기본적인 보안 기준에 못 미치리라 생각한다.[12] 마지막으로 이러한 DNA 데이터 저장을 악의적으로 사용하여 의료업계나 수사를 하는 경찰들의 업무 등 DNA, 유전자 처리를 하는 기관의 업무에 차질이 생길 수 있다는 점이다. 예를 들어, 이 같은 기술로 혈액, 모발, 타액 등 샘플을 감염시켜 경찰 조사에 문제를 발생시킬 수 있다는 것이다.[13]

이러한 연구에 대한 사람들의 반응도 다양하다.[14] 이러한 기술과 행위에 경이로움을 느끼는 반면, DNA에 디지털 데이터를 저장한다는 것에 거부감을 느끼는 이들도 상당하다. 더욱이 의료업계는 사람 생명과 직결되는 문제에서 이러한 보안적 결함이 있다는 부분에서도 상당수가 거부감을 나타냈다. 물론, 현재 이 기술은 따로 채취한 DNA 샘플에 데이터를 저장한다는 점에서 아직 기술의 발전을 필요하기도 하다. 하지만 이러한 생체학적 기술 발전과 그리고 신체적 특징을 통해 악의적인 일을 할 수 있다는 점에서 이 글을 읽고 있는 여러분은 어떻게 생각하는가. 소름이 끼치는가 아니면 발전되는 기술에 짜릿함을 느끼는가.

유성경 yuopboy@grayhash.com