보안은 언제나 정보 기술의 가장 중요한 측면 중 하나였으며, 오늘날 많은 조직과 개발자는 애플리케이션을 구축할 때 보안을 우선시하는 사고방식을 채택하고 있습니다. 이러한 원칙과 조치는 종종 'DevSecOps'로 통칭되며, 이는 애플리케이션 보안의 전체 문화와 접근 방식을 포괄합니다. DevSecOps는 개발, 보안, 운영을 의미합니다. 이 정책의 목표는 정보 기술과 인프라의 모든 측면에 보안을 최우선으로 하는 사고방식을 도입하는 것입니다.
정보 기술 분야에서 가장 최근이고 가장 흥미로운 분야 중 하나는 블록체인입니다. 블록체인은 분산형 프로토콜과 애플리케이션으로 구성된 거대한 생태계를 갖추고 있으며, 이를 통해 많은 사람이 Web3라고 부르는 업데이트된 버전의 웹으로 우리를 인도하는 것을 목표로 합니다.
Web3라는 용어는 애플리케이션 아키텍처와 사용자 경험 측면에 초점을 맞춘 다양한 개념을 포괄합니다.
이러한 핵심 개념의 목표는 공개 키 암호화를 사용하여 사용자에게 신원에 대한 제어권을 돌려주고 다양한 블록체인 메커니즘과 프로토콜을 통해 P2P 경제의 채택을 확대하는 것입니다. 많은 블록체인과 이를 둘러싼 프로토콜은 격리된 가상화된 환경 내에서 실행되는 스마트 계약을 사용하여 고급 거래를 처리하고 상태를 관리할 수 있습니다.
이후 이는 합의 알고리즘이라는 메커니즘을 통해 네트워크의 모든 노드에서 동기화됩니다. 이는 사용자나 노드가 분산 환경에서 협력하여 일부 에이전트가 실패하더라도 시스템의 모든 노드가 단일 진실 출처에 동의할 수 있도록 하는 메커니즘입니다. 또한, 많은 블록체인은 프로토콜을 개방적이고 허가 없이 유지하여 검열 방지 방식으로 작동합니다.
블록체인 기반 아키텍처에는 추가적인 위험이 있습니다. 왜냐하면 네트워크의 백본은 일반적으로 디지털 토큰 기반 암호화폐로 구동되고 일반적으로 금전적 가치를 지니기 때문입니다. 이러한 토큰은 일반적으로 외부 소유 계정이나 스마트 계약에 저장된 주소에 보관됩니다. 그리고 공개 키 암호화를 사용하면 신뢰도 분산되므로 네트워크의 각 주소는 공격을 받기 쉽습니다.
각 계좌의 잔액은 공공원장이라 불리는 네트워크 전반에 분산되어 누구나 볼 수 있는데, 이를 통해 해커가 특정 사용자나 계약을 표적으로 삼을 수 있는 가능성이 생깁니다. 이로 인해 블록체인에 있어 개인정보 보호와 익명성이 특히 중요한 측면이 됩니다. 종종 이러한 계정을 관리하는 인간은 공격 대상이 되거나 자신의 지위를 통해 불법적인 행동을 할 수 있으며, 다음과 같은 위협이 있습니다.
또한, 다양한 블록체인 기술, 프로토콜, 분산형 애플리케이션의 기술적 영향력은 이미 크고 빠르게 성장하고 있습니다. 그러므로 이 빠르게 성장하는 생태계가 보안에 미치는 영향에 대해 생각하는 것이 중요합니다. 분산화라는 핵심 개념을 기반으로 구축된 모든 것은 확장성이 높고 따라서 주의 깊게 분석하고 보호해야 할 공격 지점도 더 많습니다.
분산형 애플리케이션과 기술 인프라의 보안을 감사할 때 고려할 가치가 있는 몇 가지 주제는 다음과 같습니다.
애플리케이션 개발 라이프사이클에서 DevSecOps에 대해 이야기할 때 일반적으로 보안 중심 개발을 지칭합니다. 이는 일반적으로 보안을 왼쪽으로 이동시키는 행위로 알려져 있습니다. 이는 DevSecOps 문화의 가장 중요한 측면 중 하나인데, 개발자가 보안을 코드로 생각하는 것에서 시작하기 때문입니다. 블록체인 기반 스마트 계약은 가치를 저장하고 은행 역할을 할 수 있으므로, 계약 내의 코드는 공격에 매우 취약하며, 엄격한 보안을 염두에 두고 작성해야 합니다.
업계에서는 스마트 계약의 취약점을 노린 해킹 사건이 여러 건 발생했으며, 주로 코드 악용에 초점을 맞췄습니다. 역사상 가장 큰 해킹 사건 중 하나는 작년에 발생했는데, 크로스체인 프로토콜인 Poly Network가 공격자가 스마트 계약을 해킹하여 해커가 제어하는 외부 지갑 주소로 다양한 자산을 이동하여 6억 1,000만 달러 상당을 이체했다고 보고했습니다.
스마트 계약 개발에는 많은 취약점이 있지만 가장 빈번한 공격은 다음과 같습니다.
블록체인, 분산형 애플리케이션 및 이를 둘러싼 다양한 프로토콜이 빠르게 성장하고 있습니다. 애플리케이션을 배포하는 이러한 새롭고 흥미로운 방법은 다양한 산업에 혁신을 일으킬 수 있는 잠재력을 가지고 있습니다. 하지만 가능한 한 보안을 최우선으로 생각하는 사고방식에 집중하고 DevSecOps 문화를 구현하는 것이 중요합니다.
블록체인을 처음 접하는 사람이라면 누구나 먼저 해당 프로토콜에 대한 관련 백서를 읽어보는 것이 좋습니다.
다음으로, 이전의 해킹과 취약점을 연구하고 심지어 개발 환경에서 해킹을 재현해 보는 것도 좋습니다.
이더리움 보안에 대한 실습적 학습 경험을 얻으려면 의도적으로 취약한 프로그램이나 웹사이트에 취약점이나 '플래그'를 숨겨 보안의 기본을 가르치는 다음 플래그 캡처(CTF) 프로그램을 추천합니다.