수천 개의 데이터 유출로 인한 사망: API가 보안을 압도하는 방법

게시 됨: 2022-06-14

오늘날의 공격 표면은 그 어느 때보다 더 광범위하며, 취약점이 앱에서 스며들고 기술 세계를 계속 변화시키는 유연한 애플리케이션 프로그래밍 인터페이스에 상주하고 있습니다.

안타깝게도 대부분의 사람들이 전통적인 웹 앱 위협을 알고 있지만 API는 여전히 모호한 보안 영역입니다. 오늘날의 거대한 위협 환경에는 유능한 클라우드 WAF와 WAAP에 대한 투자가 필요합니다.

API란 무엇입니까?

API는 최신 브라우징 경험을 함께 유지하는 접착제입니다. API는 개별 웹 앱이 데이터를 교환할 수 있도록 하여 소프트웨어 사용 및 개발을 단순화합니다. 앱을 통해 서버에 요청하는 것은 적절하게 구현된 API가 매우 안전하다는 사실 덕분에 현재 관련 API에 의해 처리됩니다.

서버가 귀하의 정보에 직접 노출되는 대신 귀하의 장치와 관련 API는 필요한 것만 통신하면서 작은 데이터 패킷을 공유해야 합니다.

애자일 및 API: 보안 이중 문제

Agile은 과거의 비즈니스 유행어였습니다. 이는 '최소 실행 가능한 제품'이라는 기업가적 아이디어를 증폭시키는 생산 형태를 나타냅니다. Agile의 목표는 각 단계에서 최소 제품을 밀어내는 것입니다. 제품을 '완성'이라고 부르지 않고 버그 수정 및 개선을 패치하는 또 다른 라운드로 반복됩니다.

이 영구적인 패치는 보안을 위해 환상적으로 보이지만(지속적인 소프트웨어 지원? 멋지다!) 소프트웨어 생산의 경제적 현실은 API의 양이 순식간에 감당하기 어려워진다는 것을 의미합니다.

개발 팀이 빠르게 움직이면서 API가 포괄적으로 문서화되는 경우는 거의 없습니다. 이로 인해 앱의 내부 메커니즘을 살펴보고 어떤 API가 무엇을 하는지 이해하기가 매우 어렵습니다. 또한 개발 팀 자체가 API 인벤토리의 실제 크기를 모르기 때문에 보안을 훨씬 더 어렵게 만듭니다. 이는 사이버 보안을 낮은 우선 순위로 지정합니다. 항상 반응적이며 결코 능동적이지 않습니다.

간과된 API

앱 보안을 언급할 때 가장 먼저 떠오르는 것은 보안 분야입니다. 사이트 간 스크립팅과 같은 공격 SQL 주입 및 DDoS 공격은 모두 매우 잘 알려져 있습니다. 앱 자체는 경계 순찰 웹 애플리케이션 방화벽과 같은 플러그 앤 플레이 솔루션으로 잘 보호되는 경우가 많습니다.

API에 대해서는 거의 관심을 기울이지 않으며, 조직과 해당 고객에게 큰 피해를 줍니다. Uber의 시스템에서 발견된 API 취약점의 예를 살펴보십시오.

Uber 드라이버가 추천 링크를 통해 Uber에 합류하면 앱을 부팅하고 추천 코드를 입력합니다. Enter 버튼을 누르면 앱 브라우저가 API 호스트 "bonjour.uber.com"과 통신합니다. 거기에서 bonjour.uber는 사용자 ID 매개변수를 수신하고 다음 동의 화면에 입력할 준비가 된 사용자의 앱에 운전자에 대한 세부 정보를 반환합니다.

그러나 이 하나의 API는 두 가지 주요 보안 위반으로 유죄 판결을 받았습니다. 첫 번째는 BOLA(Broken Object Level Authorization)였습니다. API는 사용자의 ID가 ID 매개변수와 일치하는지 확인하지 않았습니다. 따라서 단순히 사용자 ID를 변경하여 다른 사용자의 데이터에 액세스할 수 있었습니다.

두 번째 문제는 과도한 데이터 노출이었습니다. API의 응답(사용자 세부 정보 반환)은 모든 정보를 사용자 세부 정보를 모두 포함하는 하나의 배치로 묶었습니다. 이는 API가 클라이언트에게 명시적으로 필요하지 않은 정보를 반환했음을 의미하며 사이버 보안 모범 사례의 주요 기둥을 위반했습니다.

이제 일반 조직이 15,500개 이상의 API에 의존하고 위험 규모가 나타나기 시작한다고 생각해 보십시오. 다행히 큰 피해가 발생하기 전에 Uber API가 연결되었습니다. 다음 회사는 운이 좋지 않았습니다.

펠로톤 문제

Peloton의 재택 피트니스 브랜드는 3백만 명이 넘는 가입자가 즐기고 있습니다. 라이브 피트니스 수업은 주요 판매 포인트이지만 다른 수업 참석자와 의료 데이터를 공유하고 싶지 않다면 펠로톤 계정을 비공개로 설정할 수 있습니다.

불행히도 많은 API 취약점으로 인해 권한이 없는 사용자에게 이 데이터가 노출되었습니다. 하나의 API 엔드포인트가 요청한 사용자의 유효성을 검사하지 못했기 때문에 수업 참석자의 정보가 대규모로 스크랩될 수 있습니다. 이를 통해 승인되지 않은 공격자가 Peloton 사용자의 사용자 이름, 위치, 운동 ID, 성별 및 나이를 알아낼 수 있었습니다.

API는 수년간 세간의 이목을 끄는 데이터 유출의 원인이었습니다. 2018년과 2019년 내내 Facebook의 끊임없는 데이터 스캔들은 주로 타사 개발자 API를 통해 하나씩 침해가 발생하는 것을 보았습니다. 한 가지 예는 그룹스 API입니다. B2B 소셜 미디어 관리 앱에서 작업하는 개발자는 그룹 구성원의 이름과 더 많은 개인 정보에 자유롭게 액세스할 수 있습니다. 이 소셜 미디어 관리 앱은 그룹 관리자가 그룹을 보다 효과적으로 관리할 수 있도록 지원하기 위한 것이지만 Facebook은 이 앱과 해당 API를 제거해야 했습니다.

이러한 데이터 스캔들은 2021년 5억 3,300만 명이 넘는 Facebook 사용자의 암시장 데이터베이스에서 이름, 전화번호 및 Facebook 사용자 ID가 유출되면서 절정에 달했습니다.

API 유출 방지

OWASP(Open Web Application Security Project)는 가장 심각하고 광범위한 웹 앱 취약점을 정기적으로 게시하여 주시해야 합니다. API로 대표되는 증가하는 보안 위협은 자체 OWASP 상위 10위 목록을 보증할 만큼 충분히 심각하며, 이는 지속적으로 Broken Object Level Authorization에 의해 상위를 차지합니다.

고맙게도 API를 보호하는 것은 느린 개발 주기를 요구하는 것 외에는 전체 조직 전체를 보호하는 것과 밀접하게 연결되어 있습니다. 첫 번째 호출 지점은 괜찮은 WAF(웹 응용 프로그램 방화벽)입니다. 이 솔루션은 앱의 경계를 모니터링하여 API 게이트웨이가 주요 취약점에 의해 악용되는 것을 방지합니다.

WAAP(웹 애플리케이션 및 API 보호)는 한 단계 더 나아갑니다. 앱의 공개 경계에 완전히 위치하여 들어오는 모든 트래픽을 분석합니다. 합법적인 트래픽 및 요청의 패턴을 모니터링함으로써 WAAP는 API를 보호하도록 특별히 설계된 고도로 전문화된 보안 도구입니다.

WAAP가 엔드포인트 수준의 방어 시스템인 반면 RASP(런타임 애플리케이션 자체 보호) 솔루션은 특정 웹 앱을 둘러싸고 있습니다. WAF와 구별되는 RASP 솔루션은 애플리케이션의 내부 작동 및 동작에 대한 통찰력도 가지고 있습니다. 이렇게 하면 API가 공격의 거점으로 사용되고 실행 가능한 것보다 더 많은 정보가 쿼리되면 RASP가 공격을 사전에 차단할 수 있습니다.

수많은 API 보호 옵션을 사용할 수 있으므로 앱과 조직을 보호하는 것이 그 어느 때보다 쉬워졌습니다.