안녕하세요, IT 정보보안 연구를 하고 있는 @StolenByte 입니다.
요즘 학위 때문에, 한창 정신 없어서 글이 뜸했습니다.
Steem이 아니라도 관심이 있었을 법한 DDoS에 대한 이야기를 해볼까 합니다.
우선 결론부터 이야기하고 시작 합니다.
모든 네트워크를 사용하는 서비스는 DDoS 위협에서 벗어날 수 없으며 Steem 또한 동일하다.
몇가지 짚고 넘어가도록 하겠습니다.
Steemd 에서 확인 할 수 있는 Bandwidth는 DDoS 방어를 하는 목적이 될 수 없다.
@leesunmoo 님께서 이 부분을 DDoS 방어에 대해 이야기를 해서 먼저 이야기를 해보고자 합니다.
저는 IT 보안 업무를 하고 있기 때문에 @leesunmoo 님과 의견이 달라 다른 의견을 제시 하고자 하는 것이니 기분 나빠하지 않으셨으면 합니다. ^^;;
정확히 Steemd에서 제공하는 Bandwidth의 사용목적은 모릅니다.
하지만 Bandwidth가 DDoS를 막는 기술방법론 적으론 전혀 적당하지 않는다라는 것은 알고 있습니다. Bandwidth를 제한하여 DDoS 막는 기술은 80/90년대에도 사용하지 않았을 법한 기술 입니다.
그렇다면 Bandwidth는 무엇때문에 존재하는 것일까요? 블록체인의 구조나 Steem의 구조와 이더리움 구조를 생각해봤을 때 제가 생각한 의견은 다음과 같습니다.
(1) 이더리움은 멀티 쓰레딩의 구조를 가지지 않는다.
이유는 트랜잭션 시 블록을 생성하여 체인구조로 엮어야 하지만 멀티쓰레드 관리 부재로 인해 Collision 현상 및 각종 큰 문제를 야기 시킬 수 있습니다. "뭐 설마 그렇게 개발하겠어?" 라고 하지만 서버 개발쪽에선 가장 크게 알아주는 게임 서버 개발 분야에서도 현재까지 멀티 쓰레딩 이슈는 끊임없이 발생되고 있습니다. 금전적인 문제와 체인구조라는 것 때문에 0.1% 오차률이 발생되어도 큰 문제가 발생됩니다. 그리고 이러한 문제점은 이미 비탈릭이 몇차례 언급 했을
정도로 이더리움 내에선 나름 개발 이슈라고 볼 수 있습니다. 그래서 Queue와 비슷한 시스템을 도입하여 일괄처리를 하는 시스템 입니다.
하지만 일괄처리로 처리하게 되면 많은 데이터가 트랜잭션을 하기 위해 몰리게 되면 느려집니다. 그래서 이더리움 사용자들이 항상 "느리다느리다" 를 달고 사는 큰 이유죠.
그렇기 때문에 이더리움 플랫폼을 가지고 가는 Steem으로선 트랜잭션의 문제점을 안고 가는 것입니다. Steemit을 사용할 때 스팀달러/스팀파워 등 이러한 코인류들도 결국엔 블록으로 관리를 할 것이며 이것이 문제 없이 관리되기 위해 Bandwidth를 도입하여 블록에 대한 트러블 슈팅으로 예상 됩니다. 한마디로 "너는 이정도면 되니깐 이정도만 거래해, 그 이상은 너에게 줄 자원이 없어"
(2) 인가/비인가 구분이 없는 서비스
비인가 된 사용자는 Steem이란 서비스 자체를 아예 접근 조차 불가능해야 가능해야 Bandwidth가 DDoS 방어적으로 도움이 되는 것입니다.
하지만 인가된 사용자에 대해서 Bandwidth가 제공된다는 것은 결국 인가된 사용자 관리 측면이 더욱 크다는 것이죠.
Connect만 되도 DDoS 공격이 가능하며 Marai 같이 최소 600Gbps, 최대 1Tbps 공격이 존재 하기 때문에 원천적 방어는 불가능하다.
테라 단위가 들어오게 되면 현존 존재 하는 장비들은 대부분 다 죽는다고 보면 됩니다.
DDoS 방어 프로그램? 어플리케이션으로 DDoS를 죽었다 깨어나도 방어 불가능 합니다.
DDoS 네트워크 장비? 500기가 단위 넘어가면 있으나 마나하는 수준입니다.
트위터, CNN, Github, Netflex 등이 해당 공격을 맞고 잠시지만 서비스 중지가 되었습니다. 위 서비스보다 Steem이 네트워크 관리가 뛰어나다고 생각하지 않습니다. 트위터, Github 등에도 엄청나게 뛰어난 해커들이 존재하고 있고 직접 만나봤으니깐요.
그렇다면 DDoS의 위협에서 어떻게 벗어나야 하나?
사실 벗어나긴 힘듭니다. 공격이 발생되면 관리자가 신속히 처리해주길 바랄 수 밖에 없는 실정입니다.
하지만 DDoS 공격으로 인해 블록체인이 깨질 순 없습니다.
DDoS 공격으로 인해 해당 공격을 맞는 서버의 하드웨어가 고장나서 그로 인해 데이터 손실이 날 수 는 있습니다. 하지만 그 외 문제는 발생하기 상당히 어렵고 힘든 것이 현실입니다. 이미 한차례 비슷한 문제가 Steem에서 발생되었지만 블록은 깨지지 않았다고 하고 정확히 구현하고 관리 했다면 깨질 수 없습니다.
거래의 문제는 발생할 수 있겠지만, 스스로의 자산에 대한 피해는 없을 것이라 생각하시면 되겠습니다.
이만, 마치겠습니다.