- 공공 코드 리포지터리의 핵심 기능을 공격자들이 악용하기 시작 - 해당 공격 방법에 대처할 수 있는 방법이 전무
내용
- 깃허브 및 깃랩 코멘트들을 활용해 피싱 링크를 생성하기 시작 > 정상적인 오픈소스 소프트웨어와 연결된 링크처럼 보임 > 누구나 아무 프로젝트를 사칭할 수 있게 해줌 > 프로젝트의 주인이 쉽게 알아낼 수 없으며, 대처법이 없음 ※ 과거 일부 공격자들 사이에 알려져 있었으며, 널리 사용되는 것을 발견해 알린 것
- 개발자들은 '코멘트' 기능을 이용해 기능 향상 및 버그와 관련한 제보를 받음 > 내용이 길 경우 문서 파일 또는 스크린 샷 등의 형태로 작성해 코멘트를 남길 수 있음 > 파일 형태로 코멘트를 남길 경우 해당 코멘트에는 자동으로 URL이 배정 > Ex) 깃랩의 프로젝트에 파일을 코멘트로 업로드한 경우 URL > hxxp://gitlab.com/{프로젝트_그룹_이름}/{리포지터리_이름}/uploads/{파일_id}/{파일_이름}
- 코멘트 부분에 멀웨어를 업로드해 악성 URL 생성 > URL에 깃허브, 깃랩, 프로젝트명 등이 포함되어 육안으로 판단하기 어려움 > 해당 프로젝트의 운영자들이 코멘트를 하나하나 살피기 어려워 URL을 전량 검사하기 어려움 > 해당 코멘트를 지우더라도 생성됐던 URL은 여전히 작동하며, 업로드 된 파일 또한 코멘트에서만 지워지고 CDN에는 그대로 남아있음 > 파일을 업로드한 후 코멘트를 등록하지 않아도 파일이 업로드되는 순간 URL이 생성(파일 업로드 기능만 활성화시키는 것으로 URL 생성 가능)
- 이런 코멘트의 특성으로 인해 URL을 매우 신뢰할 만한 형태로 생성 가능 > 사칭하는 프로젝트의 신뢰도를 훼손 > 대응할 방법이 사실상 전무
기타
- 프로젝트 이름이 포함된 URL을 악성인지 아닌지 판단하는 것은 불가능 > 알고 있는 이름들이 URL에 있다고 해서 믿는 것은 지양 > 보다 확실한 방법이 필요
- MS Teams 사용자는 각각 고유한 테넌트를 가지며, 다른 테넌트의 사용자에게 메시지를 보낼 수 있음
> 테넌시란 조직의 모든 사용자, 그룹, 리소스 및 서비스를 포함하는 컨테이너 역할을 하고, 조직의 전체 온라인 환경을 의미
> 외부 테넌트의 사용자에게 메시지를 보낼 경우 "External(외부)"가 표시됨
- 단, 외부 테넌트의 사용자에게 메시지를 보내는 경우 파일을 보낼 수 없도록 차단
- IDOR 취약점을 이용해 [사진 1]의 차단 정책을 우회하여 파일을 전송할 수 있게됨
IDOR(Insecure Direct Object Reference) 취약점 - ‘안전하지 않은 직접 객체 참조’ - 공격자가 요청 메시지의 URL 또는 파라미터를 변경해 정상적으로 허용되지 않는 기능을 실행하거나 다른 사용자의 리소스에 접근할 수 있는 공격 - 접근 제어 기능에서 발생하는 문제점 중 하나 - 수평적/수직적 권한 상승이 발생하며, 이로 인해 타 사용자 정보에 접근하거나, 기존 권한으로는 사용이 불가능한 기능을 이용하게 되는 문제가 발생
※ 접근 통제 리스크 사례 ① URL이나 파라미터를 조작하여 다른 사용자의 리소스에 접근하거나 허용되지 않은 기능을 실행할 수 있는 경우 ② 적절한 인증 및 인가 과정을 거치지 않고 관리자 페이지 접근할 수 있는 경우 ③ 디렉토리 트래버셜 취약점과 같이 웹 디렉토리 경로를 벗어난 호스트 내부 경로의 리소스에 접근할 수 있는 경우
※ 수평적 권한 상승: 동일한 권한을 가진 다른 사용자의 객체에 접근 ※ 수직적 권한 상승: 지니고 있는 권한을 넘어서는 기능을 수행(관리자 권한 등)할 수 있는 경우
- 공격자는 POST 메소드를 이용한 요청에서 ID 값(RECIPIENT_ID)을 수정하여 파일을 전송할 수 있음