오라클조작공격 (Oracle Manipulation Attack)

정보보안학
한 줄 정의: 블록체인 외부 데이터를 스마트 컨트랙트에 전달하는 오라클의 가격 또는 데이터 값을 인위적으로 왜곡시켜 부당한 이익을 취하는 공격입니다.

쉽게 풀면

스마트 컨트랙트는 외부 세계의 정보를 스스로 알 수 없기 때문에 오라클이라는 정보 전달자에게 가격 같은 데이터를 물어봅니다. 만약 이 오라클이 참고하는 정보원이 조작하기 쉬운 곳이라면, 공격자는 순간적으로 가격을 왜곡시켜 컨트랙트가 잘못된 값을 믿게 만들 수 있습니다. 마치 부동산 시세를 조사할 때 딱 한 곳의 허위 매물만 보고 감정가를 매기게 만드는 것과 비슷합니다. 그 틈을 타 싼값에 자산을 사거나 비싼 값에 팔아 차익을 챙기는 방식입니다.

왜 중요한가

오라클조작공격은 탈중앙화 금융 프로토콜에서 자산 가격 산정의 신뢰성을 무너뜨리는 핵심 위협으로, 정보보안학과 블록체인 신뢰성 연구에서 오라클 설계의 안전성을 평가하는 중요한 사례로 다루어집니다. 신뢰할 수 있는 데이터 공급이 스마트 컨트랙트 보안의 전제 조건이라는 점을 보여줍니다.

논문에서는 이렇게 쓰입니다

"공격자는 플래시론 공격으로 확보한 자금을 이용해 단일 유동성 풀 기반 오라클을 조작하여 오라클조작공격을 수행하였다."

플래시론과 결합해 실행되는 전형적인 오라클조작공격의 시나리오를 설명하는 예문입니다.

"다중 데이터 소스를 집계하는 분산형 오라클 구조는 오라클조작공격에 대한 저항성을 높이는 것으로 나타났다."

오라클조작공격을 방어하기 위한 설계 방식을 다루는 문맥입니다.

조금 더 깊게 보면

오라클조작공격은 대체로 단일 거래소나 단일 유동성 풀의 순간 가격을 참조하는 취약한 오라클을 대상으로 발생합니다. 이를 방지하기 위해 여러 시점의 가격을 평균하는 시간가중평균가격 방식이나, 다수의 독립적인 데이터 소스를 종합하는 분산형 오라클이 대안으로 연구됩니다. 공격의 성공 여부는 대상 오라클이 얼마나 적은 자본으로 흔들릴 수 있는지에 크게 좌우됩니다.

주의할 점

모든 오라클이 조작에 취약한 것은 아니며, 데이터 소스의 분산성과 갱신 방식에 따라 저항성이 크게 달라집니다. 오라클 자체의 결함과 오라클을 사용하는 컨트랙트 로직의 결함을 구분해서 분석할 필요가 있습니다.

관련 용어