코더는 보안 OWASP 상위 10 API 시리즈를 정복 - 과도한 데이터 노출

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

코더는 보안 OWASP 상위 10 API 시리즈를 정복 - 과도한 데이터 노출

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

과도한 데이터 노출 취약점은 매우 구체적인 종류의 데이터를 포함한다는 점에서 OWASP 목록의 다른 API 문제와 구별됩니다. 취약점의 실제 역학은 다른 사람과 유사하지만, 이 경우 과도한 데이터 노출은 법적으로 보호되거나 매우 민감한 데이터와 관련된 것으로 정의됩니다. 여기에는 PII라고도 하는 개인 식별 정보가 포함될 수 있습니다. 또는 결제 카드 산업 정보 또는 PCI가 포함될 수 있습니다. 마지막으로, 과도한 데이터 노출에는 유럽의 일반 데이터 보호 규정(GDPR) 또는 미국의 건강 보험 이식성 및 책임법(HIPAA)과 같은 개인 정보 보호법의 적용을 받는 정보가 포함될 수 있습니다.

당신이 상상할 수 있듯이, 이것은 깊은 우려의 원인이며, 정통한 개발자가 가능한 한 이러한 버그를 분쇄하는 방법을 배워야합니다. 데이터 노출 드래곤을 사용할 준비가 되어 있다면, 게임화된 도전과제로 향하세요.

점수는 무엇이었나요? 계속 읽고 자세히 알아보십시오.

과도한 데이터 노출의 몇 가지 예는 무엇입니까?

과도한 데이터 노출이 발생하는 주된 이유 중 하나는 개발자와 코더가 응용 프로그램에서 사용할 데이터의 종류에 대한 충분한 통찰력을 가지고 있지 않기 때문입니다. 따라서 개발자는 모든 개체 속성이 최종 사용자에게 노출되는 일반 프로세스를 활용하는 경향이 있습니다.

개발자는 또한 프런트엔드 구성 요소가 사용자에게 정보를 표시하기 전에 데이터 필터링을 수행한다고 가정하기도 합니다. 대부분의 일반 데이터의 경우 문제가 거의 없습니다. 그러나 세션 ID의 일부로 법적으로 보호되거나 중요한 데이터를 사용자에게 노출하면 보안과 법적 관점에서 큰 문제가 발생할 수 있습니다.

OWASP 보고서는 감지데이터를 실수로 쉽게 공유할 수 있는 방법의 예로, 보안 요원이 시설의 특정 IOT 기반 카메라에 액세스할 수 있는 시나리오를 구상합니다. 아마도 그 카메라는 밀봉 및 보안 영역을 감시하고, 사람들을 보는 다른 카메라는 더 높은 권한을 가진 경비원이나 감독자로 제한되어야합니다.

가드가 권한이 있는 카메라에 액세스할 수 있도록 개발자는 다음과 같은 API 호출을 사용할 수 있습니다.

/api/사이트/111/카메라

이에 대한 응답으로 앱은 가드가 다음 형식으로 볼 수 있는 카메라에 대한 세부 정보를 전송합니다.

{ "id":"xxx","live_access_token":"xxxxbbbbb","building_id":"yyy"}

표면에, 이것은 잘 작동하는 것처럼 보일 것입니다. 앱에서 그래픽 사용자 인터페이스를 사용하는 가드는 볼 권한이 있는 카메라 피드만 볼 수 있습니다. 문제는 사용되는 일반 코드 로 인해 실제 API 응답에 시설 전체의 모든 카메라의 전체 목록이 포함되어 있다는 것입니다. 해당 데이터를 캡처하거나 가드의 계정을 손상시키는 네트워크를 스니핑하는 사람은 네트워크의 모든 카메라에 대한 위치와 명명방법을 발견할 수 있습니다. 그런 다음 제한 없이 해당 데이터에 액세스할 수 있습니다.

과도한 데이터 노출 제거

과도한 데이터 노출을 방지하는 가장 큰 열쇠는 데이터와 데이터를 둘러싼 보호에 대한 이해입니다. 일반 API를 만들고 사용자에게 표시하기 전에 데이터를 정렬하도록 클라이언트에 맡기는 것은 예방 가능한 많은 보안 침해로 이어지는 위험한 선택입니다.

관련 데이터 보호를 이해하는 것 외에도 일반 API를 사용하여 모든 것을 사용자에게 보내는 프로세스를 중지하는 것도 중요합니다. 예를 들어 to_json() 및 to_string()와 같은 코드는 피해야 합니다. 대신 코드는 특별히 권한이 있는 사용자에게 반환해야 하는 속성을 선택하고 해당 정보를 독점적으로 보내야 합니다.

보호된 데이터가 실수로 과도하게 공유되지 않도록 하기 위해 조직은 스키마 기반 대응 유효성 검사 메커니즘을 추가 보안 계층으로 구현하는 것을 고려해야 합니다. 오류 보고 규칙을 포함하여 모든 API 메서드에서 반환되는 데이터를 정의하고 적용해야 합니다.

마지막으로 PII 또는 PCI를 포함하는 것으로 분류되는 모든 데이터 또는 GDPR 또는 HIPAA와 같은 규정에 의해 보호되는 정보는 강력한 암호화를 사용하여 보호해야 합니다. 이렇게 하면 과도한 데이터 노출 취약점의 일부로 해당 데이터의 위치가 미끄러지더라도 악의적인 사용자 또는 위협 행위자의 손에 닿더라도 데이터를 보호해야 하는 좋은 보조 방어 선이 있습니다.

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

리소스 보기
리소스 보기

저자

마티아스 마두, Ph.

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

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

리소스 허브

시작할 수 있는 리소스

더 많은 게시물
리소스 허브

시작할 수 있는 리소스

더 많은 게시물

코더는 보안 OWASP 상위 10 API 시리즈를 정복 - 과도한 데이터 노출

게시일: 2020년 9월 23일
마티아스 마두, Ph.

과도한 데이터 노출 취약점은 매우 구체적인 종류의 데이터를 포함한다는 점에서 OWASP 목록의 다른 API 문제와 구별됩니다. 취약점의 실제 역학은 다른 사람과 유사하지만, 이 경우 과도한 데이터 노출은 법적으로 보호되거나 매우 민감한 데이터와 관련된 것으로 정의됩니다. 여기에는 PII라고도 하는 개인 식별 정보가 포함될 수 있습니다. 또는 결제 카드 산업 정보 또는 PCI가 포함될 수 있습니다. 마지막으로, 과도한 데이터 노출에는 유럽의 일반 데이터 보호 규정(GDPR) 또는 미국의 건강 보험 이식성 및 책임법(HIPAA)과 같은 개인 정보 보호법의 적용을 받는 정보가 포함될 수 있습니다.

당신이 상상할 수 있듯이, 이것은 깊은 우려의 원인이며, 정통한 개발자가 가능한 한 이러한 버그를 분쇄하는 방법을 배워야합니다. 데이터 노출 드래곤을 사용할 준비가 되어 있다면, 게임화된 도전과제로 향하세요.

점수는 무엇이었나요? 계속 읽고 자세히 알아보십시오.

과도한 데이터 노출의 몇 가지 예는 무엇입니까?

과도한 데이터 노출이 발생하는 주된 이유 중 하나는 개발자와 코더가 응용 프로그램에서 사용할 데이터의 종류에 대한 충분한 통찰력을 가지고 있지 않기 때문입니다. 따라서 개발자는 모든 개체 속성이 최종 사용자에게 노출되는 일반 프로세스를 활용하는 경향이 있습니다.

개발자는 또한 프런트엔드 구성 요소가 사용자에게 정보를 표시하기 전에 데이터 필터링을 수행한다고 가정하기도 합니다. 대부분의 일반 데이터의 경우 문제가 거의 없습니다. 그러나 세션 ID의 일부로 법적으로 보호되거나 중요한 데이터를 사용자에게 노출하면 보안과 법적 관점에서 큰 문제가 발생할 수 있습니다.

OWASP 보고서는 감지데이터를 실수로 쉽게 공유할 수 있는 방법의 예로, 보안 요원이 시설의 특정 IOT 기반 카메라에 액세스할 수 있는 시나리오를 구상합니다. 아마도 그 카메라는 밀봉 및 보안 영역을 감시하고, 사람들을 보는 다른 카메라는 더 높은 권한을 가진 경비원이나 감독자로 제한되어야합니다.

가드가 권한이 있는 카메라에 액세스할 수 있도록 개발자는 다음과 같은 API 호출을 사용할 수 있습니다.

/api/사이트/111/카메라

이에 대한 응답으로 앱은 가드가 다음 형식으로 볼 수 있는 카메라에 대한 세부 정보를 전송합니다.

{ "id":"xxx","live_access_token":"xxxxbbbbb","building_id":"yyy"}

표면에, 이것은 잘 작동하는 것처럼 보일 것입니다. 앱에서 그래픽 사용자 인터페이스를 사용하는 가드는 볼 권한이 있는 카메라 피드만 볼 수 있습니다. 문제는 사용되는 일반 코드 로 인해 실제 API 응답에 시설 전체의 모든 카메라의 전체 목록이 포함되어 있다는 것입니다. 해당 데이터를 캡처하거나 가드의 계정을 손상시키는 네트워크를 스니핑하는 사람은 네트워크의 모든 카메라에 대한 위치와 명명방법을 발견할 수 있습니다. 그런 다음 제한 없이 해당 데이터에 액세스할 수 있습니다.

과도한 데이터 노출 제거

과도한 데이터 노출을 방지하는 가장 큰 열쇠는 데이터와 데이터를 둘러싼 보호에 대한 이해입니다. 일반 API를 만들고 사용자에게 표시하기 전에 데이터를 정렬하도록 클라이언트에 맡기는 것은 예방 가능한 많은 보안 침해로 이어지는 위험한 선택입니다.

관련 데이터 보호를 이해하는 것 외에도 일반 API를 사용하여 모든 것을 사용자에게 보내는 프로세스를 중지하는 것도 중요합니다. 예를 들어 to_json() 및 to_string()와 같은 코드는 피해야 합니다. 대신 코드는 특별히 권한이 있는 사용자에게 반환해야 하는 속성을 선택하고 해당 정보를 독점적으로 보내야 합니다.

보호된 데이터가 실수로 과도하게 공유되지 않도록 하기 위해 조직은 스키마 기반 대응 유효성 검사 메커니즘을 추가 보안 계층으로 구현하는 것을 고려해야 합니다. 오류 보고 규칙을 포함하여 모든 API 메서드에서 반환되는 데이터를 정의하고 적용해야 합니다.

마지막으로 PII 또는 PCI를 포함하는 것으로 분류되는 모든 데이터 또는 GDPR 또는 HIPAA와 같은 규정에 의해 보호되는 정보는 강력한 암호화를 사용하여 보호해야 합니다. 이렇게 하면 과도한 데이터 노출 취약점의 일부로 해당 데이터의 위치가 미끄러지더라도 악의적인 사용자 또는 위협 행위자의 손에 닿더라도 데이터를 보호해야 하는 좋은 보조 방어 선이 있습니다.

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

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

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

시작할 수 있는 리소스

더 많은 게시물