최근 인기 온라인 강좌 플랫폼 코세라(Coursera)에서 취약점이 발견되었습니다. 이 문제는 API에서 비롯되었으며, 해커들이 "BOLA" 취약점을 악용하여 사용자들의 강좌 선호도를 파악하고 강좌 선택에 영향을 미쳤을 가능성이 제기되고 있습니다.
더욱이 최근 공개된 취약점들은 패치되기 전에 사용자 데이터를 노출시켰을 가능성이 있는 것으로 추정됩니다. 이러한 결함은 애플리케이션 보안 테스트 회사 인 체크마크(Checkmarx) 의 연구원들이 발견하여 지난주에 공개했습니다.
이번 취약점은 Coursera의 다양한 애플리케이션 프로그래밍 인터페이스(API)와 관련이 있으며 , 연구원들은 코로나19 팬데믹으로 인해 온라인 업무 및 학습으로의 전환이 가속화되면서 Coursera의 인기가 높아짐에 따라 Coursera의 보안을 더욱 심층적으로 조사하기로 결정했습니다.
Coursera에 익숙하지 않은 분들은 82만 명의 사용자를 보유하고 200개 이상의 기업 및 대학과 협력하는 회사라는 것을 아실 것입니다. 주목할만한 파트너십에는 일리노이 대학교, 듀크 대학교, 구글, 미시간 대학교, 국제 비즈니스 머신, 임페리얼 칼리지 런던, 스탠포드 대학교, 펜실베니아 대학교가 있습니다.
여러 API 관련 문제가 발견되었는데, 여기에는 비밀번호 재설정 기능을 통한 사용자/계정 열거, GraphQL 및 REST API 모두를 제한하는 리소스 부족, 잘못된 GraphQL 구성 등이 포함됩니다. 특히, 객체 수준 권한 부여 오류가 가장 심각한 문제입니다.
일반 사용자(학생)로 Coursera 웹 응용 프로그램과 상호 작용할 때 최근에 본 과정이 사용자 인터페이스에 표시되는 것을 확인했습니다. 이 정보를 나타내기 위해 동일한 엔드포인트에 대한 여러 API GET 요청을 감지합니다. /api/userPreferences.v1/[USER_ID-lex.europa.eu~[PREFERENCE_TYPE}.
BOLA API 취약점은 사용자 환경설정에 영향을 미치는 것으로 알려져 있습니다. 이 취약점을 악용하면 익명 사용자조차도 환경설정을 조회하고 변경할 수 있습니다. 최근 시청한 강좌나 자격증과 같은 일부 환경설정은 메타데이터도 유출합니다. BOLA API 결함은 객체 식별자를 처리하는 엔드포인트를 노출시켜 더 광범위한 공격의 가능성을 열어줍니다.
«이 취약점은 일반 사용자의 코스 선호도를 대규모로 이해하는 데 악용될 수 있지만 최근 활동의 조작이 특정 기간 동안 Coursera 홈페이지에 표시되는 콘텐츠에 영향을 미치기 때문에 사용자의 선택을 어떤 식으로든 왜곡할 수 있습니다. 사용자”라고 연구원들은 설명합니다.
"불행히도 인증 문제는 API에서 매우 일반적입니다."라고 연구원들은 말합니다. "잘 테스트되고 지속적으로 테스트되고 적극적으로 유지 관리되는 단일 구성 요소에서 액세스 제어 유효성 검사를 중앙 집중화하는 것이 매우 중요합니다. 새로운 API 엔드포인트 또는 기존 엔드포인트에 대한 변경 사항은 보안 요구 사항에 따라 신중하게 검토해야 합니다."
연구원들은 API에서 권한 부여 문제가 매우 일반적이며 액세스 제어 유효성 검사를 중앙 집중화하는 것이 중요하다고 언급했습니다. 그렇게 하려면 잘 테스트된 단일 유지 관리 구성 요소를 통해 이루어져야 합니다.
발견된 취약점은 10월 5일 코세라(Coursera) 보안팀에 제출되었습니다. 코세라 측은 10월 26일 보고서를 접수하고 조치 중이라는 확인을 해 주었습니다. 이후 코세라는 체르크마르크스(Cherkmarx)에게 12월 18일에서 1월 2일 사이에 문제를 해결했다고 통보한 후, 새로운 문제점을 포함한 재테스트 보고서를 제출했습니다. 그리고 마침내 5월 24일, 코세라는 모든 문제가 해결되었다고 최종 확인했습니다.
공개부터 수정까지 꽤 오랜 시간이 걸렸지만, 연구원들은 Coursera 보안 팀과 함께 일할 수 있어서 즐거웠다고 말했습니다.
"그들의 전문성과 협력, 그리고 그들이 가정한 신속한 소유권은 우리가 소프트웨어 회사와 협력할 때 기대하는 바입니다."라고 그들은 결론지었습니다.