코더정복 보안 OWASP 상위 10 API 시리즈 - 질량 할당

게시일: 2020년 10월 21일
작성자: 마티아스 마두, Ph.
사례 연구

코더정복 보안 OWASP 상위 10 API 시리즈 - 질량 할당

게시일: 2020년 10월 21일
작성자: 마티아스 마두, Ph.
리소스 보기
리소스 보기

많은 최신 프레임워크는 개발자가 클라이언트의 입력을 코드 변수 및 내부 개체로 자동으로 바인딩하는 함수를 사용하도록 유도하기 때문에 대량 할당 취약점이 생깁니다. 이는 코드를 단순화하고 작업 속도를 높이기 위해 수행됩니다.

공격자는 이 방법론을 사용하여 클라이언트에서 업데이트해서는 안 되는 개체 속성에 변경 내용을 강제로 사용할 수 있습니다. 일반적으로 이로 인해 사용자가 웹 사이트를 가져오거나 회사 기밀을 훔치는 대신 관리자 권한을 자신에게 추가하는 것과 같은 비즈니스 별 문제가 발생합니다. 공격자는 또한 개체 간의 관계와 악용 중인 응용 프로그램의 비즈니스 논리에 대해서도 고려해야 합니다.

그러나, 그 중 어느 것도 대량 할당 취약점 영리하고 악의적 인 사용자의 손에 덜 위험하게만들지 않습니다.

전체 가이드를 시작하기 전에 게임화된 챌린지를 플레이하고 요금을 어떻게 알려주는지 확인하세요.

공격자는 대량 할당 취약점을 어떻게 악용할 수 있습니까?

OWASP에 의해 제시된 시나리오(그리고 당사가 약간 수정)는 질량 할당을 사용하여 코드의 개체에 바인딩된 다른 속성을 포함하는 차량 공유 응용 프로그램을 가정합니다. 여기에는 사용자가 변경할 수 있는 권한 관련 속성과 응용 프로그램에서만 내부적으로만 설정해야 하는 프로세스 종속 속성이 포함됩니다. 둘 다 질량 할당을 사용하여 속성을 개체에 바인딩합니다.

이 시나리오에서는 차량 공유 응용 프로그램을 통해 많은 사용자가 많은 사용자를 향한 응용 프로그램에서 흔히 볼 수 있듯이 프로필을 업데이트할 수 있습니다. 이 작업은 PUT로 전송된 API 호출을 사용하여 수행되며 다음 JSON 개체를 반환합니다.

{"user_name":"SneakySnake", "age":17, "is_admin":false}

이 경우 공격자인 SneakySnake씨가 속성과 개체 간의 관계를 파악했기 때문에 다음 문자열로 프로필을 업데이트하라는 원래 요청을 다시 보낼 수 있습니다.

{"user_name":"SneakySnake","age":24,, "is_admin":true}

끝점이 질량 할당에 취약하므로 새 입력을 유효한 것으로 받아들입니다. 뿐만 아니라 우리의 해커는 자신의 프로필에 몇 년을 추가 않았다, 그러나 그는 또한 자신에게 관리 권한을 할당.

대량 할당 취약점 제거

일부 프레임워크에서 대량 할당 함수를 사용하는 것이 편리할 수 있으므로 API를 안전하게 유지하려는 경우 이를 사용하지 않아야 합니다. 대신 요청 값을 개체에 직접 바인딩하는 대신 구문 분석합니다. 또한 감소된 데이터 전송 개체를 사용하여 관련 위험 없이만 개체 자체에 직접 바인딩하는 것과 거의 동일한 편의성을 제공할 수 있습니다.

추가 예방 조치로 위의 예제의 관리자 권한과 같은 중요한 속성은 거부되어 API 호출의 서버에서 허용되지 않을 수 있습니다. 더 나은 아이디어는 기본적으로 모든 속성을 거부 한 다음 사용자가 업데이트하거나 변경할 수 있도록 특정, 비 민감하지 않은 것들을 허용하는 것입니다. 이러한 작업을 수행하면 API를 잠그고 사용자 환경에서 대량 할당 취약점을 제거하는 데 도움이 될 수 있습니다.

체크 아웃 Secure Code Warrior 이 취약점에 대한 자세한 정보를 위한 블로그 페이지와 다른 보안 결함의 파괴로부터 조직과 고객을 보호하는 방법. 데모를 시도할 수도 있습니다. Secure Code Warrior 모든 사이버 보안 기술을 연마하고 최신 상태로 유지하기 위한 교육 플랫폼을 제공합니다.

리소스 보기
리소스 보기

저자

마티아스 마두, Ph.

Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.

마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.

더 알고 싶으신가요?

블로그에서 최신 보안 코딩 인사이트에 대해 자세히 알아보세요.

Atlassian의 광범위한 리소스 라이브러리는 안전한 코딩 숙련도를 확보하기 위한 인적 접근 방식을 강화하는 것을 목표로 합니다.

블로그 보기
더 알고 싶으신가요?

개발자 중심 보안에 대한 최신 연구 보기

광범위한 리소스 라이브러리에는 개발자 중심의 보안 코딩을 시작하는 데 도움이 되는 백서부터 웨비나까지 유용한 리소스가 가득합니다. 지금 살펴보세요.

리소스 허브

코더정복 보안 OWASP 상위 10 API 시리즈 - 질량 할당

게시일: 2020년 10월 21일
마티아스 마두, Ph.

많은 최신 프레임워크는 개발자가 클라이언트의 입력을 코드 변수 및 내부 개체로 자동으로 바인딩하는 함수를 사용하도록 유도하기 때문에 대량 할당 취약점이 생깁니다. 이는 코드를 단순화하고 작업 속도를 높이기 위해 수행됩니다.

공격자는 이 방법론을 사용하여 클라이언트에서 업데이트해서는 안 되는 개체 속성에 변경 내용을 강제로 사용할 수 있습니다. 일반적으로 이로 인해 사용자가 웹 사이트를 가져오거나 회사 기밀을 훔치는 대신 관리자 권한을 자신에게 추가하는 것과 같은 비즈니스 별 문제가 발생합니다. 공격자는 또한 개체 간의 관계와 악용 중인 응용 프로그램의 비즈니스 논리에 대해서도 고려해야 합니다.

그러나, 그 중 어느 것도 대량 할당 취약점 영리하고 악의적 인 사용자의 손에 덜 위험하게만들지 않습니다.

전체 가이드를 시작하기 전에 게임화된 챌린지를 플레이하고 요금을 어떻게 알려주는지 확인하세요.

공격자는 대량 할당 취약점을 어떻게 악용할 수 있습니까?

OWASP에 의해 제시된 시나리오(그리고 당사가 약간 수정)는 질량 할당을 사용하여 코드의 개체에 바인딩된 다른 속성을 포함하는 차량 공유 응용 프로그램을 가정합니다. 여기에는 사용자가 변경할 수 있는 권한 관련 속성과 응용 프로그램에서만 내부적으로만 설정해야 하는 프로세스 종속 속성이 포함됩니다. 둘 다 질량 할당을 사용하여 속성을 개체에 바인딩합니다.

이 시나리오에서는 차량 공유 응용 프로그램을 통해 많은 사용자가 많은 사용자를 향한 응용 프로그램에서 흔히 볼 수 있듯이 프로필을 업데이트할 수 있습니다. 이 작업은 PUT로 전송된 API 호출을 사용하여 수행되며 다음 JSON 개체를 반환합니다.

{"user_name":"SneakySnake", "age":17, "is_admin":false}

이 경우 공격자인 SneakySnake씨가 속성과 개체 간의 관계를 파악했기 때문에 다음 문자열로 프로필을 업데이트하라는 원래 요청을 다시 보낼 수 있습니다.

{"user_name":"SneakySnake","age":24,, "is_admin":true}

끝점이 질량 할당에 취약하므로 새 입력을 유효한 것으로 받아들입니다. 뿐만 아니라 우리의 해커는 자신의 프로필에 몇 년을 추가 않았다, 그러나 그는 또한 자신에게 관리 권한을 할당.

대량 할당 취약점 제거

일부 프레임워크에서 대량 할당 함수를 사용하는 것이 편리할 수 있으므로 API를 안전하게 유지하려는 경우 이를 사용하지 않아야 합니다. 대신 요청 값을 개체에 직접 바인딩하는 대신 구문 분석합니다. 또한 감소된 데이터 전송 개체를 사용하여 관련 위험 없이만 개체 자체에 직접 바인딩하는 것과 거의 동일한 편의성을 제공할 수 있습니다.

추가 예방 조치로 위의 예제의 관리자 권한과 같은 중요한 속성은 거부되어 API 호출의 서버에서 허용되지 않을 수 있습니다. 더 나은 아이디어는 기본적으로 모든 속성을 거부 한 다음 사용자가 업데이트하거나 변경할 수 있도록 특정, 비 민감하지 않은 것들을 허용하는 것입니다. 이러한 작업을 수행하면 API를 잠그고 사용자 환경에서 대량 할당 취약점을 제거하는 데 도움이 될 수 있습니다.

체크 아웃 Secure Code Warrior 이 취약점에 대한 자세한 정보를 위한 블로그 페이지와 다른 보안 결함의 파괴로부터 조직과 고객을 보호하는 방법. 데모를 시도할 수도 있습니다. Secure Code Warrior 모든 사이버 보안 기술을 연마하고 최신 상태로 유지하기 위한 교육 플랫폼을 제공합니다.

우리는 당신에게 우리의 제품 및 / 또는 관련 보안 코딩 주제에 대한 정보를 보낼 수있는 귀하의 허가를 바랍니다. 우리는 항상 최대한의주의를 기울여 귀하의 개인 정보를 취급 할 것이며 마케팅 목적으로 다른 회사에 판매하지 않을 것입니다.

양식을 제출하려면 '분석' 쿠키를 활성화하세요. 완료되면 언제든지 다시 비활성화할 수 있습니다.