[블록미디어 정아인 기자] “아무리 하드웨어 월렛을 사용해도 트랜잭션을 수락했다면 해킹당할 수밖에 없었다.”
렛저는 지난 14일(현지 시간) 웹사이트를 지갑에 연결하는 자바스크립트 라이브러리인 렛저 커넥트 키트를 통한 코인 탈취(익스플로잇) 사건을 당했다.
이번 사고의 경위는 [렛저 해킹 사건 총정리 (1)] 도마 위에 오른 셀프 커스터디, “내 코인을 내 지갑에?” 기사에서 알아봤다.
하드웨어 월렛의 라이브러리가 해킹 당했을 경우 어떻게 대처해야 할까? 렛저와 웹3 보안감사 업체 체인라이트가 제시한 대처법과 한계를 알아봤다.
# 렛저가 제시한 대처방법 “블라인드 서명 방식을 지양하세요?” …일반인에게는 너무 어렵다
렛저는 해킹 직후 “블라인드 서명이 아니라 명확한 서명이 이러한 문제를 완화할 수 있다”라고 대처 방법을 제시했다.
사용자가 믿을 수 있는 디스플레이(컴퓨터 화면 자체)에서 서명하는 내용을 볼 수 있다면 본인이 희망하지 않는 불량 트랜잭션에 서명하는 걸 방지할 수 있다는 것.
이는 현실적으로 불가능한 해법이다.
블라인드 서명은 컴퓨터에 적합한 원시 데이터를 사용한다. 일반 사용자들은 이를 해석하고 읽을 수 없다. 몇 바이트만 변경해도 자금이 쉽게 탈취 될 가능성이 높다.
게다가 렛저 생태계 외부 앱과 상호작용할 때는 장치에서 블라인드 서명 활성화가 필수다. 결국 ‘블라인드 서명’은 피할 수 없다.
블라인드 서명이 익숙해진 사용자들은 메시지가 표시되면 정보를 확인하지 않고 무엇이든 승인하게 된다는 부작용까지 있다.
투명한 서명을 사용할 때 신뢰할 수 있는 디스플레이에서 서명 내용을 볼 수 있다. 렛저는 해킹 직후 공식 성명을 통해 투명한 서명 방식을 통해서만 트랜잭션 승인을 할 것을 권장했다.
체인라이트 임준오 리드는 “유저가 트랜잭션을 읽을 수 있다면 투명하고, 분명한 사인을 보는 게 가능하다. 그러나 일반 유저 입장에서 생각해자. 보통의 사람이 확인할 수 있는 메시지가 아니라면 이걸 어떻게 확인하겠나. 현실적으로 어렵다”라고 설명했다.
체인라이트(ChainLight) 팀은 사이버 보안 스타트업인 티오리(Theori) 산하의 웹3 보안을 전문으로 담당하고 있다.
임 리드는 “이번 일은 월렛 커넥트 라이브러리가 해킹 당한 사건이다. 아무리 하드웨어 월렛을 사용해도 트랜잭션을 수락했다면 해킹당할 수밖에 없었다”고 지적했다.
임 리드는 “만약 사용자가 트랜잭션을 시뮬레이션해 줄 수 있는 크롬 익스텐션(예: 포켓 유니버스)를 사용했다면 비정상적인 트랜잭션을 확인할 수 있다. 시뮬레이션 기능이 레인보우 월렛에는 구현돼 있으나 메타마스크에는 아직 제대로 구현되지 않았다”라고 설명했다.
한 마디로 일반인들은 당할 수 밖에 없었다는 것.
# 체인라이트 “브라우저 캐시 삭제가 최선”
체인라이트는 렛저 사태 직후 해결 방안을 이렇게 제시했다.
애플리케이션은 문제가 해결될 때까지 웹사이트를 오프라인 상태로 전환해야 한다.
렛저 회사는 NPM-JS 의 2FA(2단계 인증)를 활성화해야 한다. 렛저 커넥트 패키지 신규 버전을 출시하고 기존 버전 제공을 취소해야 한다. CDN 캐시도 삭제해야 한다.
일반인들의 경우 브라우저 캐시를 삭제해야 한다. 손상된 라이브러리에서 캐시를 불러오는 걸 방지할 수 있다.
우선 F12를 눌러 ‘개발자 도구’를 연다. ‘신청’ 탭을 클릭 후 ‘저장소’ 탭을 선택해 ‘사이트 데이터 지우기’를 클릭한다.
캐시 삭제는 완전한 예방책이 될 수 없다. 해킹 피해가 의심되는 경우 보안을 극대화하기 위한 조치 중 하나에 불과하다.
이미 악성 드레이너와 상호작용한 경우 거래가 취소가 되지 않기 때문이다.
이번 렛저 해킹 사태로 렛저 회사 뿐만 아니라 하드웨어 월렛을 이용하는 ‘셀프 커스터디’ 방식이 위기에 직면했다.
같이 보면 좋은 기사
[블록페스타 2023] 체인라이트 “코인 유통량이 공급량보다 현저히 적어도 문제…가격 조작 가능성”–정책 가이드 필요