정의
Attack vector는 공격자가 시스템의 무결성, 가용성 또는 기밀성에 대해 무단으로 영향력을 행사할 수 있는 명확하게 정의된 경로를 의미합니다. blockchain과 smart contract 보안에서 이는 의도하지 않은 동작을 유발하거나 가치를 탈취하기 위해 악용될 수 있는 구체적인 메커니즘, 상태, 상호작용 패턴을 가리킵니다. Attack vector는 프로토콜 설계 결함, 구현 오류, Oracle과 같은 외부 구성 요소에 대한 안전하지 않은 가정 등에서 발생할 수 있습니다.
시스템의 약점을 의미하는 일반적인 취약점(vulnerability)과 달리, attack vector는 그 약점에 실제로 어떻게 도달하고 이를 공격자가 어떻게 활용하는지를 설명합니다. 예를 들어, smart contract에서의 Reentrancy 조건은 취약점이지만, 이를 악용 가능하게 만드는 호출 순서와 상태 변화의 조합이 바로 attack vector입니다. 보안 검토, Bug Bounty 프로그램, White Hat 연구는 이러한 attack vector가 실제 Exploit로 악용되기 전에 식별하고 특성을 파악하는 데 초점을 맞춥니다.
맥락과 활용
고급 크립토 보안 논의에서 attack vector라는 용어는 복잡하고 조합 가능한(composable) 시스템 내에서 잠재적인 침해가 일어날 수 있는 정확한 경로를 분류하고 전달하는 데 사용됩니다. 이는 smart contract 로직의 저수준 이슈, 컨트랙트 간 상호작용, 프로토콜 수준의 인센티브 실패, 오프체인 데이터 소스 및 인프라에 대한 의존성 등을 설명할 수 있습니다. Attack vector를 체계적으로 파악하면 프로토콜의 위협 모델을 형식화하고, Oracle의 신뢰성 같은 어떤 가정이 가장 중요한지 명확히 하는 데 도움이 됩니다.
Attack vector는 사고 발생 후 작성되는 포스트모템(post-mortem)에서 자주 문서화되며, Exploit로 이어진 모든 조건의 연쇄가 재구성됩니다. 또한 Bug Bounty 공개 보고서에서도 White Hat 연구자들이 문제를 촉발하기 위해 필요한 정확한 사전 조건과 트랜잭션 패턴을 명시할 때 등장합니다. 시간이 지나면서 Reentrancy나 잘못 구성된 접근 제어처럼 반복적으로 나타나는 attack vector는 보안 분류 체계에서 표준 카테고리로 자리 잡고, 프로토콜 설계와 감사(auditing)를 위한 모범 사례를 형성하는 데 기여합니다.