API7:2019 잘못된 보안 구성: What, 샘플 악용 및 예방 방법

블로그

홈페이지홈페이지 / 블로그 / API7:2019 잘못된 보안 구성: What, 샘플 악용 및 예방 방법

Jul 07, 2023

API7:2019 잘못된 보안 구성: What, 샘플 악용 및 예방 방법

홈 » 편집 달력 » API 보안 » API7:2019 보안 구성 오류:

홈 » 편집 달력 » API 보안 » API7:2019 잘못된 보안 구성: 무엇, 샘플 악용 및 예방 방법

잘못된 보안 구성은 웹 애플리케이션뿐만 아니라 API에서도 매우 일반적인 보안 위험입니다. 이는 지속적으로 OWASP 상위 10개 웹 애플리케이션 취약점의 일부였습니다. 이는 2019년에 게시된 원래 OWASP 상위 10대 API 보안 위험의 일부였으며 이제 업데이트된 2023 목록에 포함되었습니다.

잘못된 보안 구성은 7위를 유지하고 있습니다.OWASP 상위 10개 API 2023RC널리 퍼져 있고, 쉽게 악용될 수 있으며, 쉽게 탐지할 수 있기 때문입니다.

잘못된 보안 구성이란 정확히 무엇입니까? 원인은 무엇이며, 완화하는 방법은 무엇입니까? 알아 보려면 계속 읽으십시오.

잘못된 보안 구성은 보안 취약성을 초래할 수 있는 API 구성, 구현 또는 유지 관리 중에 발생하는 오류 및 감독입니다. 이는 개발자/IT 팀이 API 구현 및 구성 시 보안 모범 사례를 따르지 않았을 때 발생합니다.

개발자와 IT 보안 팀이 적절한 구성을 통해 공격 표면을 강화하지 못하기 때문에 잘못된 보안 구성이 발생할 수 있습니다.

이는 단순히 필수 API 보안 설정이 구현되지 않았거나 잘못되어 API에 위험한 공백과 약점이 남아 있음을 의미합니다. 위협 행위자는 이러한 격차를 이용하여 대규모 공격과 데이터 침해를 조율할 수 있습니다.

이러한 잘못된 구성은 API 서버, API 게이트웨이, 클라이언트 애플리케이션, API를 지원하는 인프라, 네트워크 수준, 시스템 수준, 애플리케이션 수준 등을 포함하여 API 스택의 다양한 수준에서 발생할 수 있습니다. 이러한 잘못된 구성이 웹 앱과 API에 미치는 영향에는 거의 차이가 없습니다.

// 안전하지 않은 API Endpointapp.get('/api/user/:id', (req, res) => {const userId = req.params.id;// 인증이나 승인 없이 데이터베이스에서 사용자 데이터를 가져옵니다.User.findById( userId, (err, user) => {if (err) {return res.status(500).json({ error: '내부 서버 오류' });}if (!user) {return res.status(404) .json({ 오류: '사용자를 찾을 수 없음' });}// 사용자 반환 datares.json(user);});}); 이 예에서 API 엔드포인트 /api/user/:id는 다음과 같이 설계되었습니다. 제공된 ID를 기반으로 사용자 데이터를 검색합니다. 그러나 인증이나 승인 확인은 이루어지지 않습니다.

코드는 사용자의 신원을 확인하거나 필요한 권한이 있는지 확인하지 않고 데이터베이스에서 사용자를 직접 가져옵니다.

이러한 잘못된 구성을 악용하는 공격자는 id 매개변수를 사용하여 간단히 /api/user/:id에 GET 요청을 보내고 인증이나 적절한 권한 부여 없이 사용자 데이터를 검색할 수 있습니다. 이로 인해 민감한 사용자 정보가 승인되지 않은 개인에게 노출됩니다.

잘못된 시스템 구성은 API, 웹 애플리케이션, 네트워크, 컨테이너 또는 개발 플랫폼에서 악용될 수 있는 취약점입니다. API를 부적절하거나 부적절하거나 안전하지 않게 구성된 상태로 두면 API가 광범위한 보안 위험에 노출되게 됩니다.

잘못된 보안 구성 취약점은 다양한 위험 수준과 함께 모든 형태와 크기로 나타납니다. 다음은 이러한 잘못된 구성으로 이어질 수 있는 몇 가지 예입니다.

API 구성 오류의 전체 목록을 확인하세요.API 침투 테스트 체크리스트.

다음은 API 구성 오류 공격 시나리오의 5가지 예와 잠재적인 영향입니다.

2019년 Capital One 침해 사건은 공격자가 보안 구성을 잘못 악용한 실제 사례입니다. Capital One의 경우, 공격자들은 회사의 앱과 API를 보호하기 위해 오픈 소스 WAF가 사용되고 있음을 발견했습니다. 이 WAF는 회사 AWS 환경의 요구 사항과 상황에 맞게 적절하게 구성 및 조정되지 않았습니다. 결과적으로 제로 트러스트 및 최소 권한 원칙을 따르지 않았습니다.

지나치게 허용적이므로 공격자는 쉽게 WAF를 우회할 수 있습니다. 공격자들은 백엔드 AWS 클라우드 메타데이터 서비스를 표적으로 삼는 주입 스크립트를 제작했습니다. WAF는 메시지 내용을 검사하거나 필터링할 수 없으며 삽입 요청이 백엔드에서 처리되도록 허용했습니다. 이제 공격자는 액세스해서는 안 되는 메타데이터를 수집할 수 있습니다.