테크레시피

iOS‧맥OS 앱 300만개…공급망 공격에 노출되어 있었다

iOS와 맥OS용 애플리케이션 개발에 사용되는 라이브러리 관리 도구인 코코아팟(CocoaPods)에 지난 10년간 취약점이 존재했음이 밝혀졌다. 이로 인해 300만 개에 이르는 iOS와 맥OS 애플리케이션이 공급망 공격 위험에 노출되어 있었다는 게 드러났다.

코코아팟 관리에 사용되는 트렁크 서버에 취약점이 존재했다고 보고한 건 보안 기업 E.V.A 인포메이션시큐리티(E.V.A Information Security) 연구 그룹. 코코아팟에서는 개별 코드 패키지를 지칭하는 팟에 변경을 가하면 코코아팟을 사용하는 앱은 보통 앱 업데이트를 통해 해당 변경 사항을 자동으로 적용하도록 설계되어 있으며 최종 사용자 조작은 필요하지 않다.

E.V.A인포메이션시큐리티 측은 코코아팟에서 취약점 3개를 발견했으며 이는 개별 팟 개발자를 인증하는 데 사용되는 확인 이메일 메커니즘이 안전하지 않았기 때문. 개발자가 팟과 관련된 이메일 주소를 입력하면 트렁크 서버는 이메일 주소로 링크를 보내 응답한다. 사용자가 이 링크를 클릭하면 계정에 접근할 수 있게 된다.

하지만 공격자는 트렁크 서버 응답 이메일을 위장해 공격자가 관리하는 서버로의 링크를 보낼 수 있었다고 연구원은 지적하고 있다. 서버는 HTTP 요청에서 지정된 대상 호스트를 식별하기 위한 HTTP 헤더로 가짜 XFH를 수용했다고 한다. 연구원은 위조된 XFH를 사용해 임의 URL을 구축할 수 있었다고 지적했다.

이번에 발견한 취약점은 CVE-2024-38367, CVE-2024-38368, CVE-2024-38366 3가지다. 이 기능을 악용해 앱에 악성 코드를 삽입하면 공격자는 신용카드 정보나 의료 기록 등 사용자 개인 정보에 접근해 랜섬웨어 공격을 수행하거나 산업 스파이 활동을 할 수 있게 된다.

코코아팟 관리자는 2023년 10월 이런 취약점을 공개하고 수정 패치를 배포했다. 패치 배포 시 관리자는 서버에서 임의 셸 명령을 실행할 수 있다는 건 공격자에게 환경 변수를 읽을 수 있는 능력을 부여하고 코코아팟/Specs 저장소에 쓰기, 트렁크 데이터베이스를 읽을 수 있음을 의미한다고 말했다.

E.V.A인포메이션시큐리티 측은 앱 개발자들에게 다음과 같은 조치를 취할 것을 권고하고 있다. 첫째 podfile.lock 파일을 모든 코코아팟 개발자와 동기화해 모두가 동일한 버전 패키지를 사용하고 있는지 확인한다. 둘째 내부에서 개발되고 코코아팟에서만 호스팅되는 팟을 사용하는 경우 개발자는 코코아팟 트렁크 서버에서 다운로드한 것에 대해 CRC 검증을 수행해야 한다. 셋째 애플리케이션에서 사용되는 서드파티 코드에 대한 철저한 보안 검토를 실시한다. 넷째 코코아팟 의존성을 확인하고 고립된 팟을 사용하지 않는지 확인한다. 5번째 적극적으로 유지 보수되고 소유권이 명확한 서드파티 의존성을 사용하도록 한다. 마지막으로 정기적으로 보안 코드 스캔을 실행해 모든 외부 라이브러리 악성 코드를 탐지하는 것이다.

E.V.A인포메이션시큐리티 측은 잠재적인 코드 변경은 아이폰, 맥, 애플TV, 애플워치 등 전 세계 수억 대에 달하는 애플 기기에 영향을 미칠 수 있다고 언급하고 있다. 관련 내용은 이곳에서 확인할 수 있다.

정용환 기자

대기업을 다니다 기술에 눈을 떠 글쟁이로 전향한 빵덕후. 새로운 기술과 스타트업을 만나는 즐거움을 독자들과 함께 나누고 싶습니다.

뉴스레터 구독