Steem, 그리고 DDoS에 대한 고찰
안녕하세요, 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에서 발생되었지만 블록은 깨지지 않았다고 하고 정확히 구현하고 관리 했다면 깨질 수 없습니다.
거래의 문제는 발생할 수 있겠지만, 스스로의 자산에 대한 피해는 없을 것이라 생각하시면 되겠습니다.
이만, 마치겠습니다.
Bandwidth 최대치는 증인들에 의해 결정되며 현재 블럭당 65536 kbyte입니다. 이 용량이 여유분(Moving avrage)이 많으면 큰 제약은 없으나 이게 꽉차면 스팀파워 보유비율에 따라 최대 사용량이 결정되게 됩니다.
따라서 스팀에 DOS를 하려면 스팀파워 구입비용을 먼저 지불해야합니다. 이렇게 스패머의 비용을 높여서 공격의 효율성을 낮추는건 대부분 블록체인이 취하고 있는 방식입니다.
안녕하세요, 말씀대로 제가 인가된 사용자로써 활동으로써 공격을 하자고 하면 스팀파워가 있어야 하겠지만, 제가 바라본 시작은 원천적으로 서비스를 내리고자 했을때에는 굳이 활동조차 필요없이 Connect만 맺어도 서비스를 내릴 수 있는 측면에서 글을 작성한 것입니다. 좋은 의견 감사합니다.
네 그것도 가능합니다. 조건은 20여 증인 ip를 확보한 뒤에 각 노드에 대해 DDOS를 해야하며, 후에 증인 목록이 바뀌거나 증인들이 백업노드를 사용할 경우 새로운 목록에 맞춰서 DDOS를 해야합니다.
흠..steemit 사이트 접속은 증인IP 여부를 알고 있지 않아도 가능하지 않나요?
Steemit은 ddos가 가능하겠지만 대체 사이트가 많습니다. 심지어는 개인이 노드를 돌리면서 직접 접속할 수도 있고요.
네, STEEM 체인에 대한 서버가 있을 것이고 해당 서버에 Syn만 날려서도 DDoS 할 수 있습니다. @clayop 께서는 DDoS가 되도 이러이러한 방안이 있다고 하시지만 결국엔 DDoS가 발생될 수 있다는 것은 어느정도 인정하시는거죠. 제 글의 요지는 DDoS는 발생 할 수 있으나 STEEM에 대해서는 영향을 끼치지 않는다라는 것을 알리고 싶었습니다.
넵 물론입니다. DDoS 자체는 막을 수 없고, 증인들도 이런 점을 인지하고 나름대로 대비를 하고 있습니다. 시스템적으로도 대비는 되어있고요. 언젠가는 일어날 것 같으니 준비해야죠 ㅎㅎ
네, 그렇습니다. 미리 위협에 대비하는 것은 모두에게 좋은 일인 것 같습니다.! @clayop 님 좋은 의견 감사합니다.!! 덕분에 글의 의미가 더욱 풍성해졌습니다!
좋은 글 감사드리고 특히 @clayop님과 @stolenbyte님 간의 주고받은 답글들이 너무나 좋았습니다. 감사합니다.!!
하하, 앞으로 좋은 토론의 장이 될 수 있는 스팀잇이 되었으면 좋겠습니다.
좋은 글 감사합니다.
잘 읽어주셔서 감사합니다.
잘 보고 갑니다..
저도 감사합니다~
좋은 글 감사합니다!!
앞으로 도움 될 수 있는 글 쓸수 있도록 노력하겠습니다.
글 감사드립니다. 전문가적 관점이라 저랑 관점이 확실히 다르십니다. 디도스 공격 자체는 가능하시만 스팀블록체인 자체에 손상을 입히긴 어렵다는 말씀으로 이해했습니다. 제가 틀리게 이해한 것이 아니라면 감사합니다.
저 같은 기술자 아닌사람들은 디도스 공격가능은 블록체인손상으로 짐작하고 있거든요. 디도스공격을 당해도 스팀체인손상이 없다면 조금 불편한 정도일뿐이고 자산에 피해가 없다면 제 입장에서는 만족하는 수준입니다. 제가 전하고 싶었던 의미기도 하거든요.
감사합니다.
안녕하세요, @leesunmoo 님. 부디 제 글에 심기가 불편해지지 않길 바랍니다. 이해 하신 내용이 맞고, 조금 내용을 덫붙히자면 진짜 얼마 안되는 확률로 손상을 갈 수 있으나 백업과 같은 작업을 통해 손상 된 부분을 언제든지 복구할 대비가 되어있는 것으로 알고 있어서 염려할 필요가 없습니다.
제 의견 잘 받아주셔서 감사합니다.
불편하다니요. 제가 전달하고픈 부분을 좀더 정확히 기술적으로 전달해 주신것입니다. 그리고 더 명확해졌구요. 저 같은 사람들은 디도스공격=블록체인손상 이렇게 생각하거든요. 위글로 볼때 공격자가 공격하는것은 스팀뿐 아니라 어던 블록체인도 네트워크도 피할순 없지만 대책은 있다는 점이니 안심할수 있는것이죠. 특히 허가받은자가 난동을 피울수 없다는게 핵심으로 생각합니다. 비인가권자가 할수 있는거야 제한적일테니.... 염려할 부분도 아니구요.
감사합니다.
블럭체인공부한지가 2달이 지났는데도 아직 이해하는데 힘이 드는군요, 포스팅 잘 보았습니다 ^^
좀 더 어려운 내용은 최대한 풀어 이해하기 쉽게 작성할 수 있도록 노력하겠습니다.
블록체인을 좀 더 이해하는데 도움이 되었습니다. 좋은글 감사드립니다1 :)
도움이 되셨다니 다행입니다.
궁금증 하나가 해결됐습니다! 정말 감사합니다.
감사합니다. 하지만 개인적인 의견이니 맹신하셔도 안됩니다~
감사합니다. tech쪽에 문외한 인데 글읽어보니 좀 이해가 됩니다.
감사합니다.
앞으로 많은 사람들이 이해할 수 있도록 최대한 쉽게 풀어 쓸 수 있도록 노력하겠습니다.