정보보안 및 블록체인 인터뷰

KangMyungJoe·2024년 4월 1일
0

정보보안 및 블록체인 인터뷰 요청이 들어와, 인터뷰를 수행했습니다.


1. 정보보안의 기본이라 불리는 기밀성, 무결성, 가용성이란 무엇입니까?

기밀성이란, 어떤 시스템에 접근할 때, 시스템에 접근할 수 있는 권한을 가진 자만 접근해야 하는 성질입니다. 무결성이란, 데이터를 다룰 때 데이터의 주체를 제외한 타인으로 인해 위조, 변조되지 않고 보호받아야 하는 성질입니다. 가용성이란, 어떤 주체가 필요한 데이터가 있을 때 그 데이터에 문제없이 필요로 하는 시점에 접근할 수 있어야 하는 성질입니다.


2. 아래는 과기부 산하 진행중인 연구들입니다 (정보공개 청구를 통해 받아낸 자료) 현재는 어떤 취약점과 리스크가 알려져 있습니까? 분산앱은 무엇이고 소스 SW 리스크는 무엇입니까?

  • A. 블록체인 플랫폼 보안 취약성 분석 연구
  • B. 블록체인 분산앱 취약점 분석 연구
  • C. 블록체인 모든 소스 sw 리스크 분석 연구
  • D. 안정성 보장 연구

분산 앱은, DAPP을 의미하는데, 분산 컴퓨팅 환경이나 블록체인에서 스마트 계약을 통해 자율적으로 혼자 작동할 수 있는 시스템을 의미합니다. 사용자가 일반적으로 사용하는 시스템들은 중앙 서버를 통해 인터랙션을 처리하지만, 분산 앱은 블록체인과 같이 탈중앙화 되어 스마트 계약을 통해 인터랙션을 처리합니다.

  • 탈중앙화: 중앙집중화를 벗어나 분산된 소규모 단위로 자율적으로 운영될 수 있는 성질
  • 스마트 계약: 블록체인 상에서 계약의 주체가 사전에 협의한 내용을 미리 프로그래밍하여 전자 계약서 안에 넣어두고, 계약의 조건을 만족하면 자동으로 계약 내용이 실행되는 시스템

소스 소프트웨어 리스크는 아마 오픈소스 소프트웨어에 대한 리스크를 말씀하신 것 같은데, 먼저 오픈소스란 제이쿼리나 부트스트랩과 같이 저작권 없이 자유롭게 누구나 사용할 수 있는 소프트웨어를 의미합니다.

오픈소스 소프트웨어 사용에 대한 리스크의 예로, 많은 기업에서 자체 시스템을 개발할 때 오픈소스 소프트웨어를 사용하는데, 오픈소스 소프트웨어는 때로는 주기적으로 가끔은 갑작스럽게 보안 취약점에 대한 업데이트를 진행합니다.

하지만 기업에서 이를 놓치고 업데이트를 하지 않은 채 구버전의 오픈소스 소프트웨어를 사용하고 있다면, 공격자들은 해당 오픈소스 소프트웨어의 취약점을 이용해 공격해 시스템에 악영향을 끼칠 수 있습니다.

  • 제이쿼리: HTML의 클라이언트 측 조작을 단순화하도록 설계된 자바스크립트 라이브러리
  • 부트스트랩: 웹사이트를 쉽게 만들 수 있게 도와주는 HTML, CSS, 자바스크립트 프레임워크

블록체인에 가장 위협적인 취약점은 코드 오류인 것 같습니다. 블록체인 역시 하나의 소프트웨어이기 때문에, 소스코드 상 오류가 발생할 가능성이 있습니다. 대표적인 예로 이더리움 DAO 공격과 이중지불 버그 등이 있습니다.


DAO 해킹은 이더리움에 스마트 계약 프로젝트로부터 시작되었는데, 2016년 6월 DAO를 구성하고 있는 소스코드에 오류가 발생하여 재귀호출이 무한정으로 발생하는 일이 생깁니다. 이로 인해 DAO 프로젝트에 투자한 투자금을 이더리움으로 반환하는 기능이 계속해서 실행되었고, 약 243만개의 이더리움을 탈취당한 사건이 있습니다. 다행스럽게도 이더리움 네트워크에서 하드포크를 통해 탈취된 이더리움을 복구시켰지만, 소스코드 오류로 인해 발생할 수 있는 많은 문제점을 보여준 사건입니다.

  • 하드포크: 블록체인의 기본 기능 자체를 수정하는 업데이트, 하드포크 수행 시 기존과 다른 블록체인 네트워크가 됨


    이중지불 버그는, 오픈소스 프로젝트의 비트코인 특성상 코드 반영이 신중히 결정되지 않아 발생한 문제로, 2016년 12월에 속도 향상을 위해 반영된 잘못된 코드로 인해 단일 블록에 대한 이중지불 확인과정이 필요하지 않은 것으로 처리되어 트랜잭션이 두 번 실행되는 블록이 생성된 문제가 있었습니다.


    또한, 블록체인에서 블록에 대한 무결성과 부인방지 등을 위해 사용자의 전자서명과 같은 암호화 기술이 사용되는데, 이때 전자서명에 사용되는 공개키는 사용자의 식별주소가 되고 개인키는 사용자의 자산에 접근할 수 있는 열쇠가 됩니다. 그러므로 개인키의 유실이나 분실, 탈취와 같은 문제점은 사용자의 자산을 한순간에 0으로 만들 수 있는 문제임을 알고, 관리적 보안이 최우선이어야 합니다.

3. 메타콩즈 디스코드 해킹사건 - 봇, 웹훅이 무엇입니까? 링크 한 번 누른다고 채널의 관리자 권한이 그렇게 쉽게 탈취당할 수 있는겁니까?

봇이란, 특정한 작업을 수행하도록 프로그래밍된 소프트웨어 응용 프로그램으로, 대부분 네트워크에서 작동하는 경우가 많습니다. 봇으로부터 공격을 받는 사용자는 특정 프로그램을 실행하지 않았는데 알아서 혼자 실행되고 있다던가, 모르는 프로그램이 계속해서 실행되고 있을 수 있습니다.


웹훅이란, 특정 웹이나 앱에서 다른 시스템으로 관련 이벤트 데이터를 실시간으로 제공하기 위한 방법으로, 특정 이벤트에 대한 커스터마이즈 된 콜백으로 해석할 수 있습니다. 즉, 앱이나 웹에서 이벤트가 발생한 즉시 미리 설계해 둔 URL을 통해 다른 시스템으로 이벤트 관련 정보를 보내는 것입니다.

  • 콜백: 특정 함수의 작업이 끝나면 수행되는 함수


    관리자에게 DM을 통해 업무협업인 척을 하는 스미싱의 형태로 공격을 시작했고, 평소 업무협업이 잦았던 관리자는 아무런 의심 없이 해당 URL을 클릭했을 것입니다. 해당 URL에는 실제 협업 관련 내용인 것처럼 보이지만 실제로는 악성 봇을 설치하기 위한 함정이었고, 관리자 몰래 설치된 악성 봇은 시스템을 서서히 장악할 수 있기 때문에, URL을 클릭한 순간 관리자 권한은 넘어갔다고 판단됩니다. 이런 일을 방지하기 위해서 모르는 사용자가 보낸 URL은 확인하지 않고, 신뢰할 수 있는 사용자의 메일만 확인해야 합니다.

  • 스미싱: 문자 메시지를 이용한 피싱

4. 전통 금융권은 망분리나 레이어 나눔 등이 잘 되어 있다는데, 이것이 무엇입니까?

망분리란, 기업에서 사용하는 내부 네트워크를 외부 인터넷의 불법적인 접근이나 내부정보 유출 등과 같은 행위들을 차단하기 위해 기업에서 업무를 수행하는 업무망과 외부 인터넷망을 분리하는 행위입니다.

우리나라에서는 2012년 정보통신망법을 개정하여 100만명 이상의 개인정보를 보유했거나 매출이 100억원 이상인 정보통신서비스 사업자의 경우 망분리를 의무적으로 도입하도록 했습니다. 금융권에서는 외부로 데이터가 빠져나가거나 외부 인터넷으로부터 공격을 받게 될 경우, 사용자들의 자산이 위험해질 수 있기에 더욱 정밀하고 예민하게 설계하는 것으로 알고 있습니다.

레이어 나눔이란, 실제 서비스가 수행되는 중앙서버나 기타 서비스 주체들에 대한 접근을 제어하기 위해 IPS 및 IDS, 방화벽, DMZ, 내부 네트워크와 외부 네트워크를 분리 등 시스템 주체를 보호하기 위한 수단을 층별로 설계하여 손쉽게 시스템에 영향을 끼칠 수 없도록 하는 행위입니다. 이 또한 망분리와 마찬가지로 금융권에서는, 사용자들의 자산이 위험해질 수 있는 경우를 방지하기 위해 더욱 정밀하고 세밀하게 설계하는 것으로 알고 있습니다.

  • IPS(Intrusion Prevention System): 침입 방지 시스템
  • IDS(Intrusion Detection System): 침입 감지 시스템
  • DMZ(Demilitarized Zone): 비무장지대

5. 전통 금융권에 비해 블록체인은 상대적으로 보안에 구멍이 많고, 업계 자체가 취약하다는데 왜 그런가요?

아무래도, 전통 금융권 같은 경우 거래나 돈에 있어 중앙집중식으로 정보를 관리하고 장부의 복제본을 많이 만들어 이상 행위 등을 탐지하기 때문에 자동화나 모니터링 시스템이 잘 되어 있는 현재에서 서버를 해킹하는 방법 말고는 실질적인 보안 공격이 어렵습니다.

블록체인의 경우 탈중앙화를 이루어내면서 누군지도 모르는 사람들이 네트워크에 참여하고, 악의적인 마음을 가진 사용자인지 순수한 사람인지 구분하기에도 어려울 뿐만 아니라 실질적인 법률이 존재하지 않아 범죄 행위를 저지르고도 처벌을 받지 않기 때문에 더 많은 보안 공격 시도가 있는 점도 의미가 있고, 엄청나게 큰 규모의 기업 서버를 해킹하는 것보다 일반인의 블록체인 네트워크 지갑 주소를 해킹하는 게 더 쉬운 점도 의미가 있는 것 같습니다.


6. NFT 해킹 수법의 종류에는 어떤 것이 있습니까?

NFT 해킹 수법은 다른 해킹 수법에 비해 많이 다양하지는 않은 것으로 알고 있습니다. 관련된 데이터가 분산시스템인 블록체인이나 IPFS 등에 담겨 있어 손쉽게 해킹할 수 없기 때문입니다. 그래서 대부분의 NFT 관련 보안 공격은 NFT를 사고 파는 주체인 사용자를 방심하게 만들고, 이를 이용해 부적절한 링크라던가 공격 의지가 담긴 메일을 통해 지갑 주소를 탈취하는 게 일반적인 해킹 수법입니다. 지갑을 탈취하게 되면 모든 게 공격자 마음대로 조종될 수 있어, 항상 조심해야 합니다.

  • IPFS(InterPlanetary File System): 분산 파일 시스템에서 사용하는 데이터베이스

A. 원본 훼손

아무래도, NFT를 발급한 디지털 자산의 메타데이터를 블록체인에 저장하게 되면서, 메타데이터 속 자산의 주소를 쉽게 파악할 수 있고 공개 저장소일 경우 디지털 자산의 비밀성이 보장되지 않아, 디지털 자산의 원본을 훼손하고자 하는 공격 방법이 아닐까 생각됩니다.

  • 메타데이터: 구조화된 데이터, 다른 데이터를 설명해주는 데이터

B. 설계(알고리즘), 소프트웨어 구현 간 관계

설계와 소프트웨어 구현 간 관계는 서로 관계가 적어보이지만, 소프트웨어 구현에 필요한 기초가 설계라고 생각합니다. 소프트웨어를 구현할 때 사용하는 알고리즘 기법에 따라 메모리 사용을 효율적으로 사용할 수도 있고 낭비하는 코드를 작성할 수도 있습니다.

현재 많은 IT 기업에서 이력서만 넣으면 코딩테스트를 보게 해주는 것도, 실제 소프트웨어 구현을 위해 작성할 코드의 효율성을 볼 때 가장 쉽게 판별할 수 있는 지표이기 때문입니다. 그러므로, 소프트웨어 구현 시에는 설계 단계가 매우 중요하다고 개인적으로는 생각합니다.

C. 논리적 오류란 무엇인가요?

논리적 오류란, 사전적 의미로 논증을 구성하거나 추론을 진행하는 데 있어 타당하지 않은 방식을 사용하는 것이다. 즉, 겉에서 봤을 때는 타당한 것처럼 보이지만, 그 속내를 보고 구체적으로 조사해보면 옳지 않은 것으로 증명되는 경우입니다.

블록체인에서의 논리적 오류로 예를 들면, 개발자의 실수 등으로 인해 블록체인 거래에 사용되는 기능에서 잘못된 응답이나 요청이 이루어지고 있지만, 겉으로 봐서는 정상적으로 실행되는 상황이나, 실제 자산의 움직임과 사용자가 확인하는 자산이 다른 경우 등을 들 수 있을 것 같습니다.

또한, 다른 경우로 코딩을 진행할 때 관리자의 권한에서 할 수 있는 일과 사용자의 권한에서 할 수 있는 일을 반대로 구현해 사용자들이 접근해서는 안 될 영역에 접근한 예도 있다고 합니다.

D. 오류 발생 시 왜 해킹에 취약해지나요?

오류가 발생한 것은 시스템이 정상적으로 작동하지 않는다는 의미로 해석할 수 있고, 시스템을 운영하던 도중 오류가 발생한다면, 연쇄적인 시스템 손상이 발생할 수밖에 없습니다.

이런 경우 공격으로부터 시스템을 방어하는 방화벽, IPS, IDS 등이 정상작동하지 않을 수 있고 시스템의 관리자 또한 오류를 파악하고 해결하기 위해 몰두할 가능성이 많아, 오류가 발생하면 해킹에 매우 취약해집니다.

E. 전자지갑 키 유출로 인해 NFT 소유권이 쉽게 상실될 수 있나요?

네, 전자지갑의 키를 유출하게 되면 아무런 제약 없이 손쉽게 계정을 탈취할 수 있습니다. 그렇게 되면 NFT 소유권 또한, 유출된 전자지갑 키를 이용해 공격을 시도한 공격자 마음대로 제어할 수 있습니다. 그래서 전자지갑 키는 꼭 자신만 확인할 수 있는 종이 같은 곳에 적어놓으라고 당부하곤 합니다.

F. 인터넷 교란 시에도 NFT 탈취가 가능하다고 하는데, 인터넷 통신체계의 구조적 취약점 때문이라고 합니다. 이것이 무엇인가요?

인터넷 교란 시에는 인터넷이 지연되거나 정상적으로 작동하지 않는 상황을 의미하는데, 이러한 상황에서 NFT를 저장하고 있는 노드가 인터넷과 연결이 끊겨 작동을 멈추거나 블록체인 상에서 디지털 자산에 대한 NFT 발급과 관련된 트랜잭션이 담긴 블록이 확정되기 전에 공격자의 트랜잭션이 담긴 블록이 확정되는 등의 상황이 발생하면, 디지털 자산에 대한 소유권이 공격자에게 넘어갈 수 있는데, 그러한 상황을 의미하는 것 같습니다.


7. 가상자산 시장의 전망에 대해 어떻게 생각하십니까?

NFT와 관련된 가상자산 시장은 향후 5년 정도는 계속 증가하는 추세가 지속될 것으로 생각하고 있습니다. 그 후에는 점차 시장이 안정화되면서 수요가 있는 게임이나 미술품, 캐릭터쪽 분야가 활발히 발전할 것으로 생각합니다. 비트코인, 이더리움과 같이 실제로 많이 사용되며 다른 시스템과 연동이 가능한 가상화폐들만 살아남을 것으로 생각합니다.


8. 연구자의 입장에서 법적, 제도적으로 어떤게 필요하다고 생각하십니까?

현재 블록체인 쪽 시장에는 법적으로나 제도적으로 어떤 조치를 하는 행위 자체가 정의되어 있지 않습니다. 예를 들어, 가상화폐에 투자했다가 화폐가 아무런 이유 없이 소멸해도 아무런 조치를 할 수 없고, 한풀이할 곳도 없습니다.

어떻게 보면 중앙에서 관리하는 주체가 없다는 개념이 블록체인 시스템에서 가장 중요한 개념인데, 법이나 제도가 생겨 블록체인이 갖는 의미가 퇴색될 수 있는 단점은 존재한다고 생각합니다. 하지만 순수한 소비자나 아무것도 모르는 사람들을 사기 치려고 하는 악의적 공격자들을 차단하거나 심판할 수 있는 법이나 제도는 필요하다고 생각합니다.

profile
소통을 잘하는 개발자가 되고 싶습니다.

0개의 댓글