이오스(EOS) 보안(Security)에 대해 이야기 하다
이오스 메인넷의 보안은 다음의 2가지로 나누어 질 수 있습니다.
<1. 이오스 시스템 자체의 보안>
이오스의 설계의 오류 또는 구현 시 발생되는 소스 코드 상 보안
<2. 이오스 시스템을 운영하는 BP들의 보안>
BP들이 노드 운영을 위한 운영중인 시스템[서버] 자체에 대한 보안 및 BP간 [네트워크] 등에 대한 보안
1. 이오스 시스템 자체의 보안
설계상 또는 구현상 보안은 지난번 메인넷 중단과 같이 취약점이 발견되는 데로 수정하여 운영될 것입니다.
따라서, 큰 문제가 안될 수 있습니다.
이에 대한 부분은 취약점으로도 볼 수 있으며 제가 예전에 올린 스팀글 참조 바랍니다.
관련 URL : https://steemit.com/coinkorea/@j30231/eos-bug
얼마전 실제 소스코드 오류로 인해 서버가 중단된 사태에 대한 기사입니다.
관련 URL : https://www.coindeskkorea.com/eos-%EB%A9%94%EC%9D%B8%EB%84%B7-%EC%98%A4%EB%A5%98%EB%A1%9C-%EC%9D%BC%EC%8B%9C-%EC%A4%91%EC%A7%80-5%EC%8B%9C%EA%B0%84%EB%A7%8C%EC%97%90-%EC%86%8C%ED%94%84%ED%8A%B8%ED%8F%AC%ED%81%AC%EB%A1%9C/
2. 이오스 시스템을 운영하는 BP들의 보안
<서버 부분>
최근 빗썸이 해킹을 당했습니다. 100억이란 돈을 들이고, 안랩과 같은 보안회사의 보안장비를 설치하고 운영도 했는데 말이죠. 해킹을100% 막기란 매우매우매우 어렵습니다. 이건 빗썸이 아닌 어떤 누구라도 마찬가지 입니다(일반적인 서버 보안과 동일함) .
따라서 BP 들이 스스로 서버 보안에 대한 체계를 갖추어야 합니다.
하지만 서버 부분이 취약해서 문제가 생겨도 아래 추가 답변을 보시면 큰 문제가 안됨을 알 수 있습니다.
참고로, 국내 BP인 이오서울(@eoseoul) 측은 서버 구성을 안전하게 하도록 자신들이 서버 구성한 방법을 공개하고 다른 BP들에게도 알려주고 있습니다. 관련 URL : https://steemit.com/eos/@eoseoul/eoseoul-hybrid-infrastructure-for-eos-platform
<네트워크 부분>
이오스는 DDoS와 같은 서비스거부 공격에 대비하기 위해 패트로니오스와 같은 툴도 공개하고 있습니다.
이를 통하여 BP들이 블록생산하는 것을 방해하는 트래픽을 상당수 제거할 수 있을 것으로 기대됩니다.
관련 URL : https://steemit.com/kr/@eoseoul/patroneos
국내 BP인 이오스울 측의 네트워크 보안을 위한 활동을 살펴보면,
DDoS 공격 방어에 대한 고민흔적을 다음 글에서 살펴 볼 수 있습니다.
관련 URL : https://steemit.com/kr/@eoseoul/eos-ddos
이오스 BP(서버)가 공격을 당했다면?
만약 경우 2번와 같이 특정 BP가 공격을 당했다고 가정해 봅시다.
BP가 공격을 당했을때 최악의 경우는 BP의 노드운영 개인키가 탈취 당한 것이고, 이를 통하여 블록생산 시 잘못된 블럭을 생성하는 것입니다.
하지만 블록생성에 들어간 데이터 중 이오스 홀더들의 개인키로 서명된 데이터(가령 홀더의 지갑에서 다른 지갑으로 이오스 전송 등)는 BP 키를 탈취한 해커도 조작할 수 없습니다.
따라서 BP공격으로 인해 발생할 수 있는 영향력은 블록 조작 또는 해당 BP를 먹통으로 만드는것 뿐 입니다.
또한 잘못된 블록을 생성해봤자 15/21 이상의 검증을 받아 통과하지 못하기 때문에 해당 BP가 받은 피해는 전체 이오스 생태계에 영향을 미치지 못할 것입니다.
해커가 블록생산 전체에 영향을 미치는 블록을 만들기 위해선 15개 이상의 BP를 동시에 해킹하여 조작된 블록을 만들어야 하며, 이는 현실적으로 매우 어렵다 생각이 듭니다.
결론
따라서 이오스 시스템은 기존 중앙화 된 그 어떤 시스템 보다도 보안에 안전하다고 할 수 있습니다.
오히려 기존 중앙시스템에서는 해당 메인 시스템 하나가 뚤리면 전체 시스템이 망가지게 됩니다.
이러한 개념을 SPoF[Single Point of Failure)라 합니다.
하지만 이오스 시스템은 21개의 BP가 있어서 최소 15개 이상의 시스템을 망가뜨려야 시스템이 망가지게 됩니다.
개별 시스템들의 구성은 모두 다를 것이고, 따라서 하나의 BP 가 뚤렸다고 다른 BP가 같은 방법에 뚤린다는 보장은 없습니다.
또한 기존 중앙시스테밍제공 못하는 계정 동결 등의 기능을 통하여 잃어버린 자산에 대해서도 제어가 가능한 부분도 있습니다.
이는 얼마전 이오스 911 사태 때 해커의 계정 7개를 동결한 예를 통해 알 수 있습니다.
이와 관련해서 좀더 자세히 확인하시려면 댄라리머가 최근 남긴 글을 참고 하시면 됩니다. (한국어 번역 기사)
관련 URL : http://cointoday.co.kr/2018/06/21/%EB%8C%84%EB%9D%BC%EB%A6%AC%EB%A8%B8-eos-%EB%B6%84%EC%82%B0-%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8%EC%9D%98-%ED%86%B5%EC%B9%98/
저는 이오서울(@eoseoul)의 관계자가 아님을 밝혀둡니다. 다만 기술적으로 좋은 제안을 많이 해주신 부분이 있어서 예시로 적었을 뿐입니다. 국외 BP들도 보안에 대해서 많은 고민들을 하는 것으로 알고 있습니다.
(jjangjjangman 태그 사용시 댓글을 남깁니다.)
호출에 감사드립니다! 즐거운 스티밋하세요!
@snackplus님께서 이 포스팅에 많은 관심을 가지고 있어요. 리스팀을 해주셨군요~!
@neogia님께서 이 포스팅에 많은 관심을 가지고 있어요. 리스팀을 해주셨군요~!
@absolutefive님께서 이 포스팅에 많은 관심을 가지고 있어요. 리스팀을 해주셨군요~!