SCW 아이콘
영웅 배경, 구분선 없음
블로그

コーダーズ・コンカー・セキュリティ OWASP トップ 10 API シリーズ-機能レベルのアクセス制御が欠けている

마티아스 마두 박사
게시일 : 2020.10.07
마지막 업데이트: 2026년 3월 10일

이 블로그 시리즈는 응용 프로그램 프로그래밍 인터페이스(API)와 관련된 최악의 취약점 중 일부에 초점을 맞출 것입니다. 이러한 상태는 너무 나빠서 개방형 웹 응용 프로그램 보안프로젝트(OWASP)상위 API 취약점 목록을 만들었습니다. 최신 컴퓨팅 인프라에 API가 얼마나 중요한지를 감안할 때, 이러한 문제는 응용 프로그램 및 프로그램을 모든 비용으로 유지해야 하는 중요한 문제입니다.

누락된 함수 수준 액세스 제어 취약점을 통해 사용자는 제한해야 하는 기능을 수행하거나 보호해야 하는 리소스에 액세스할 수 있습니다. 일반적으로 함수와 리소스는 코드 또는 구성 설정에 의해 직접 보호되지만 올바르게 수행하는 것이 항상 쉬운 것은 아닙니다. 최신 응용 프로그램에는 여러 유형의 역할과 그룹과 복잡한 사용자 계층 구조가 포함되기 때문에 적절한 검사를 구현하는 것이 어려울 수 있습니다.

하지만 먼저, 이 까다로운 종류의 버그를 탐색할 때 어디에서 있는지 확인하기 위해 게임화된 도전을 플레이해 보는 것은 어떨까요?

좀 더 심층적인 모습을 살펴보겠습니다.

API는 구조가 높기 때문에 특히 이 결함에 취약합니다. 코드를 이해하는 공격자는 코드를 제한해야 하는 명령을 구현하는 방법에 대해 교육된 추측을 할 수 있습니다. 이것이 기능/리소스 수준 액세스 제어 취약점으로 인해 OWASP 상위 10위권이 된 주된 이유 중 하나입니다.

공격자는 함수 수준 액세스 제어 취약점을 어떻게 악용할 수 있습니까?

함수 나 리소스가 제대로 보호되지 않는다고 의심되는 공격자는 먼저 공격하려는 시스템에 액세스해야 합니다. 이 취약점을 악용하려면 합법적인 API 호출을 끝점으로 보낼 수 있는 권한이 있어야 합니다. 아마도 낮은 수준의 게스트 액세스 기능 또는 응용 프로그램의 기능의 일부로 익명으로 가입 하는 몇 가지 방법이 있다. 해당 액세스 권한이 설정되면 합법적인 API 호출에서 명령을 변경할 수 있습니다. 예를 들어 PUT로 GET을 교환하거나 URL의 사용자 문자열을 관리자로 변경할 수 있습니다. API가 구조화되어 있기 때문에 허용되는 명령과 문자열에 배치할 위치를 쉽게 추측할 수 있습니다.

OWASP는 신규 사용자가 웹 사이트에 가입할 수 있도록 설정된 등록 프로세스의 이러한 취약점을 예로 들 수 있습니다. 다음과 같이 API GET 호출을 사용할 수 있습니다.

/api/초대/{invite_guid}

악의적인 사용자는 사용자의 역할과 이메일을 포함하여 초대에 대한 세부 정보가 포함된 JSON을 다시 가져옵니다. 그런 다음 GET을 POST로 변경하고 다음 API 호출을 사용하여 사용자에서 관리자로 초대를 올릴 수도 있습니다.

POST /api/invites/new
{"email":"shadyguy@targetedsystem.com","role":"admin"}

관리자만 POST 명령을 보낼 수 있어야 하지만 제대로 보호되지 않으면 API는 이를 합법적인 것으로 받아들이고 공격자가 원하는 대로 실행합니다. 이 경우 악의적인 사용자가 새 관리자로 시스템에 참여하도록 초대됩니다. 그 후, 그들은 합법적 인 관리자가 할 수있는 것을보고 할 수 있었고, 이는 좋지 않을 것입니다.

기능 수준 액세스 제어 취약점 제거

공격자가 구조화 된 API 내에서 보호되지 않은 함수를 찾는 것은 어렵지 않기 때문에 이 API 취약점을 방지하는 것이 특히 중요합니다. API에 대한 어느 수준의 액세스 권한을 얻을 수 있는 한 코드 구조를 매핑하고 결국 팔로우할 호출을 만들 수 있습니다.

따라서 역할 기반 권한 부여 방법을 사용하여 모든 비즈니스 수준 기능을 보호해야 합니다. 대부분의 프레임워크는 이를 실현하기 위해 중앙 집중식 루틴을 제공합니다. 선택한 프레임워크가 구현하기 어려운 경우 쉽게 사용할 수 있도록 특별히 빌드된 외부 모듈이 많이 있습니다. 궁극적으로 어떤 방법을 선택하든 서버에서 권한을 구현해야 합니다. 클라이언트 측에서 함수를 보호하려고 하지 마십시오.

함수 및 리소스 수준 권한을 만들기 위해 작업할 때는 사용자에게 필요한 작업과 더 이상 수행할 수 있는 권한만 부여해야 합니다. API 또는 기타 것을 코딩할 때항상 그렇듯이 권한 방법론을 가장 적게 연습하십시오. 그것은 당신의 환경을 보호하고 도로 아래로 사이버 보안 관련 문제를 많이 머리를 것입니다.

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

리소스 표시
리소스 표시

欠落している機能レベルのアクセス制御の脆弱性により、ユーザーは制限すべき機能を実行したり、保護すべきリソースにアクセスしたりできるようになります。

더 관심이 있으신가요?

마티아스 마두 박사는 보안 전문가, 연구원, CTO, 그리고 Secure Code Warrior의 공동 창립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션을 중심으로 애플리케이션 보안 분야 박사 학위를 취득했습니다.이후 미국의 Fortify에 합류하여 개발자가 안전한 코드를 작성하도록 지원하지 않고 단순히 코드 문제를 탐지하는 것만으로는 불충분하다는 점을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안 부담을 줄이며 고객 기대를 뛰어넘는 제품을 개발하게 되었습니다. Team Awesome의 일원으로 책상에 있지 않을 때는 RSA 컨퍼런스, BlackHat, DefCon 등의 컨퍼런스에서 발표하는 무대 발표를 즐깁니다.

더 알아보세요

Secure Code Warrior는 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 구축하는 데 도움을 드립니다. 애플리케이션 보안 관리자, 개발자, CISO 또는 보안 담당자이든, 안전하지 않은 코드와 관련된 위험을 줄이는 데 도움을 드립니다.

데모 예약
공유:
링크드인 브랜드사회적x 로고
저자
마티아스 마두 박사
게시일: 2020.10.07.

마티아스 마두 박사는 보안 전문가, 연구원, CTO, 그리고 Secure Code Warrior의 공동 창립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션을 중심으로 애플리케이션 보안 분야 박사 학위를 취득했습니다.이후 미국의 Fortify에 합류하여 개발자가 안전한 코드를 작성하도록 지원하지 않고 단순히 코드 문제를 탐지하는 것만으로는 불충분하다는 점을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안 부담을 줄이며 고객 기대를 뛰어넘는 제품을 개발하게 되었습니다. Team Awesome의 일원으로 책상에 있지 않을 때는 RSA 컨퍼런스, BlackHat, DefCon 등의 컨퍼런스에서 발표하는 무대 발표를 즐깁니다.

마티아스는 15년 이상의 소프트웨어 보안 실무 경험을 가진 연구자이자 개발자입니다. 포티파이 소프트웨어(Fortify Software)와 자신의 회사인 센세이 시큐리티(Sensei Security) 등 기업을 대상으로 솔루션을 개발해 왔습니다. 마티아스는 경력 전반에 걸쳐 여러 애플리케이션 보안 연구 프로젝트를 주도했으며, 이는 상용 제품으로 이어져 10건 이상의 특허를 취득했습니다.업무 외 시간에는 마티아스는 고급 애플리케이션 보안 교육 과정의 강사로 활동하며, RSA 컨퍼런스, 블랙햇, 디프콘, BSIMM, OWASP 앱섹, 브루콘 등 글로벌 컨퍼런스에서 정기적으로 발표를 진행하고 있습니다.

마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 그곳에서 애플리케이션의 내부 동작을 숨기기 위한 프로그램 난독화를 통한 애플리케이션 보안을 연구했습니다.

공유:
링크드인 브랜드사회적x 로고

이 블로그 시리즈는 응용 프로그램 프로그래밍 인터페이스(API)와 관련된 최악의 취약점 중 일부에 초점을 맞출 것입니다. 이러한 상태는 너무 나빠서 개방형 웹 응용 프로그램 보안프로젝트(OWASP)상위 API 취약점 목록을 만들었습니다. 최신 컴퓨팅 인프라에 API가 얼마나 중요한지를 감안할 때, 이러한 문제는 응용 프로그램 및 프로그램을 모든 비용으로 유지해야 하는 중요한 문제입니다.

누락된 함수 수준 액세스 제어 취약점을 통해 사용자는 제한해야 하는 기능을 수행하거나 보호해야 하는 리소스에 액세스할 수 있습니다. 일반적으로 함수와 리소스는 코드 또는 구성 설정에 의해 직접 보호되지만 올바르게 수행하는 것이 항상 쉬운 것은 아닙니다. 최신 응용 프로그램에는 여러 유형의 역할과 그룹과 복잡한 사용자 계층 구조가 포함되기 때문에 적절한 검사를 구현하는 것이 어려울 수 있습니다.

하지만 먼저, 이 까다로운 종류의 버그를 탐색할 때 어디에서 있는지 확인하기 위해 게임화된 도전을 플레이해 보는 것은 어떨까요?

좀 더 심층적인 모습을 살펴보겠습니다.

API는 구조가 높기 때문에 특히 이 결함에 취약합니다. 코드를 이해하는 공격자는 코드를 제한해야 하는 명령을 구현하는 방법에 대해 교육된 추측을 할 수 있습니다. 이것이 기능/리소스 수준 액세스 제어 취약점으로 인해 OWASP 상위 10위권이 된 주된 이유 중 하나입니다.

공격자는 함수 수준 액세스 제어 취약점을 어떻게 악용할 수 있습니까?

함수 나 리소스가 제대로 보호되지 않는다고 의심되는 공격자는 먼저 공격하려는 시스템에 액세스해야 합니다. 이 취약점을 악용하려면 합법적인 API 호출을 끝점으로 보낼 수 있는 권한이 있어야 합니다. 아마도 낮은 수준의 게스트 액세스 기능 또는 응용 프로그램의 기능의 일부로 익명으로 가입 하는 몇 가지 방법이 있다. 해당 액세스 권한이 설정되면 합법적인 API 호출에서 명령을 변경할 수 있습니다. 예를 들어 PUT로 GET을 교환하거나 URL의 사용자 문자열을 관리자로 변경할 수 있습니다. API가 구조화되어 있기 때문에 허용되는 명령과 문자열에 배치할 위치를 쉽게 추측할 수 있습니다.

OWASP는 신규 사용자가 웹 사이트에 가입할 수 있도록 설정된 등록 프로세스의 이러한 취약점을 예로 들 수 있습니다. 다음과 같이 API GET 호출을 사용할 수 있습니다.

/api/초대/{invite_guid}

악의적인 사용자는 사용자의 역할과 이메일을 포함하여 초대에 대한 세부 정보가 포함된 JSON을 다시 가져옵니다. 그런 다음 GET을 POST로 변경하고 다음 API 호출을 사용하여 사용자에서 관리자로 초대를 올릴 수도 있습니다.

POST /api/invites/new
{"email":"shadyguy@targetedsystem.com","role":"admin"}

관리자만 POST 명령을 보낼 수 있어야 하지만 제대로 보호되지 않으면 API는 이를 합법적인 것으로 받아들이고 공격자가 원하는 대로 실행합니다. 이 경우 악의적인 사용자가 새 관리자로 시스템에 참여하도록 초대됩니다. 그 후, 그들은 합법적 인 관리자가 할 수있는 것을보고 할 수 있었고, 이는 좋지 않을 것입니다.

기능 수준 액세스 제어 취약점 제거

공격자가 구조화 된 API 내에서 보호되지 않은 함수를 찾는 것은 어렵지 않기 때문에 이 API 취약점을 방지하는 것이 특히 중요합니다. API에 대한 어느 수준의 액세스 권한을 얻을 수 있는 한 코드 구조를 매핑하고 결국 팔로우할 호출을 만들 수 있습니다.

따라서 역할 기반 권한 부여 방법을 사용하여 모든 비즈니스 수준 기능을 보호해야 합니다. 대부분의 프레임워크는 이를 실현하기 위해 중앙 집중식 루틴을 제공합니다. 선택한 프레임워크가 구현하기 어려운 경우 쉽게 사용할 수 있도록 특별히 빌드된 외부 모듈이 많이 있습니다. 궁극적으로 어떤 방법을 선택하든 서버에서 권한을 구현해야 합니다. 클라이언트 측에서 함수를 보호하려고 하지 마십시오.

함수 및 리소스 수준 권한을 만들기 위해 작업할 때는 사용자에게 필요한 작업과 더 이상 수행할 수 있는 권한만 부여해야 합니다. API 또는 기타 것을 코딩할 때항상 그렇듯이 권한 방법론을 가장 적게 연습하십시오. 그것은 당신의 환경을 보호하고 도로 아래로 사이버 보안 관련 문제를 많이 머리를 것입니다.

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

리소스 표시
리소스 표시

보고서를 다운로드하려면 아래 양식을 작성해 주세요.

당사 제품 및/또는 관련 보안 코딩 주제에 관한 정보를 발송할 수 있도록 허락해 주십시오. 당사는 고객의 개인정보를 항상 세심한 주의를 기울여 처리하며, 마케팅 목적으로 타사에 판매하지 않습니다.

발신
scw 성공 아이콘
scw 오류 아이콘
양식을 제출하려면 '분석' 쿠키를 활성화해 주세요. 설정이 완료되면 다시 비활성화해도 됩니다.

이 블로그 시리즈는 응용 프로그램 프로그래밍 인터페이스(API)와 관련된 최악의 취약점 중 일부에 초점을 맞출 것입니다. 이러한 상태는 너무 나빠서 개방형 웹 응용 프로그램 보안프로젝트(OWASP)상위 API 취약점 목록을 만들었습니다. 최신 컴퓨팅 인프라에 API가 얼마나 중요한지를 감안할 때, 이러한 문제는 응용 프로그램 및 프로그램을 모든 비용으로 유지해야 하는 중요한 문제입니다.

누락된 함수 수준 액세스 제어 취약점을 통해 사용자는 제한해야 하는 기능을 수행하거나 보호해야 하는 리소스에 액세스할 수 있습니다. 일반적으로 함수와 리소스는 코드 또는 구성 설정에 의해 직접 보호되지만 올바르게 수행하는 것이 항상 쉬운 것은 아닙니다. 최신 응용 프로그램에는 여러 유형의 역할과 그룹과 복잡한 사용자 계층 구조가 포함되기 때문에 적절한 검사를 구현하는 것이 어려울 수 있습니다.

하지만 먼저, 이 까다로운 종류의 버그를 탐색할 때 어디에서 있는지 확인하기 위해 게임화된 도전을 플레이해 보는 것은 어떨까요?

좀 더 심층적인 모습을 살펴보겠습니다.

API는 구조가 높기 때문에 특히 이 결함에 취약합니다. 코드를 이해하는 공격자는 코드를 제한해야 하는 명령을 구현하는 방법에 대해 교육된 추측을 할 수 있습니다. 이것이 기능/리소스 수준 액세스 제어 취약점으로 인해 OWASP 상위 10위권이 된 주된 이유 중 하나입니다.

공격자는 함수 수준 액세스 제어 취약점을 어떻게 악용할 수 있습니까?

함수 나 리소스가 제대로 보호되지 않는다고 의심되는 공격자는 먼저 공격하려는 시스템에 액세스해야 합니다. 이 취약점을 악용하려면 합법적인 API 호출을 끝점으로 보낼 수 있는 권한이 있어야 합니다. 아마도 낮은 수준의 게스트 액세스 기능 또는 응용 프로그램의 기능의 일부로 익명으로 가입 하는 몇 가지 방법이 있다. 해당 액세스 권한이 설정되면 합법적인 API 호출에서 명령을 변경할 수 있습니다. 예를 들어 PUT로 GET을 교환하거나 URL의 사용자 문자열을 관리자로 변경할 수 있습니다. API가 구조화되어 있기 때문에 허용되는 명령과 문자열에 배치할 위치를 쉽게 추측할 수 있습니다.

OWASP는 신규 사용자가 웹 사이트에 가입할 수 있도록 설정된 등록 프로세스의 이러한 취약점을 예로 들 수 있습니다. 다음과 같이 API GET 호출을 사용할 수 있습니다.

/api/초대/{invite_guid}

악의적인 사용자는 사용자의 역할과 이메일을 포함하여 초대에 대한 세부 정보가 포함된 JSON을 다시 가져옵니다. 그런 다음 GET을 POST로 변경하고 다음 API 호출을 사용하여 사용자에서 관리자로 초대를 올릴 수도 있습니다.

POST /api/invites/new
{"email":"shadyguy@targetedsystem.com","role":"admin"}

관리자만 POST 명령을 보낼 수 있어야 하지만 제대로 보호되지 않으면 API는 이를 합법적인 것으로 받아들이고 공격자가 원하는 대로 실행합니다. 이 경우 악의적인 사용자가 새 관리자로 시스템에 참여하도록 초대됩니다. 그 후, 그들은 합법적 인 관리자가 할 수있는 것을보고 할 수 있었고, 이는 좋지 않을 것입니다.

기능 수준 액세스 제어 취약점 제거

공격자가 구조화 된 API 내에서 보호되지 않은 함수를 찾는 것은 어렵지 않기 때문에 이 API 취약점을 방지하는 것이 특히 중요합니다. API에 대한 어느 수준의 액세스 권한을 얻을 수 있는 한 코드 구조를 매핑하고 결국 팔로우할 호출을 만들 수 있습니다.

따라서 역할 기반 권한 부여 방법을 사용하여 모든 비즈니스 수준 기능을 보호해야 합니다. 대부분의 프레임워크는 이를 실현하기 위해 중앙 집중식 루틴을 제공합니다. 선택한 프레임워크가 구현하기 어려운 경우 쉽게 사용할 수 있도록 특별히 빌드된 외부 모듈이 많이 있습니다. 궁극적으로 어떤 방법을 선택하든 서버에서 권한을 구현해야 합니다. 클라이언트 측에서 함수를 보호하려고 하지 마십시오.

함수 및 리소스 수준 권한을 만들기 위해 작업할 때는 사용자에게 필요한 작업과 더 이상 수행할 수 있는 권한만 부여해야 합니다. API 또는 기타 것을 코딩할 때항상 그렇듯이 권한 방법론을 가장 적게 연습하십시오. 그것은 당신의 환경을 보호하고 도로 아래로 사이버 보안 관련 문제를 많이 머리를 것입니다.

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

온라인 세미나 보기
시작하자
더 알아보세요

아래 링크를 클릭하여 이 자료의 PDF를 다운로드하십시오.

Secure Code Warrior는 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 구축하는 데 도움을 드립니다. 애플리케이션 보안 관리자, 개발자, CISO 또는 보안 담당자이든, 안전하지 않은 코드와 관련된 위험을 줄이는 데 도움을 드립니다.

보고서 표시데모 예약
리소스 표시
공유:
링크드인 브랜드사회적x 로고
더 관심이 있으신가요?

공유:
링크드인 브랜드사회적x 로고
저자
마티아스 마두 박사
게시일: 2020.10.07.

마티아스 마두 박사는 보안 전문가, 연구원, CTO, 그리고 Secure Code Warrior의 공동 창립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션을 중심으로 애플리케이션 보안 분야 박사 학위를 취득했습니다.이후 미국의 Fortify에 합류하여 개발자가 안전한 코드를 작성하도록 지원하지 않고 단순히 코드 문제를 탐지하는 것만으로는 불충분하다는 점을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안 부담을 줄이며 고객 기대를 뛰어넘는 제품을 개발하게 되었습니다. Team Awesome의 일원으로 책상에 있지 않을 때는 RSA 컨퍼런스, BlackHat, DefCon 등의 컨퍼런스에서 발표하는 무대 발표를 즐깁니다.

마티아스는 15년 이상의 소프트웨어 보안 실무 경험을 가진 연구자이자 개발자입니다. 포티파이 소프트웨어(Fortify Software)와 자신의 회사인 센세이 시큐리티(Sensei Security) 등 기업을 대상으로 솔루션을 개발해 왔습니다. 마티아스는 경력 전반에 걸쳐 여러 애플리케이션 보안 연구 프로젝트를 주도했으며, 이는 상용 제품으로 이어져 10건 이상의 특허를 취득했습니다.업무 외 시간에는 마티아스는 고급 애플리케이션 보안 교육 과정의 강사로 활동하며, RSA 컨퍼런스, 블랙햇, 디프콘, BSIMM, OWASP 앱섹, 브루콘 등 글로벌 컨퍼런스에서 정기적으로 발표를 진행하고 있습니다.

마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 그곳에서 애플리케이션의 내부 동작을 숨기기 위한 프로그램 난독화를 통한 애플리케이션 보안을 연구했습니다.

공유:
링크드인 브랜드사회적x 로고

이 블로그 시리즈는 응용 프로그램 프로그래밍 인터페이스(API)와 관련된 최악의 취약점 중 일부에 초점을 맞출 것입니다. 이러한 상태는 너무 나빠서 개방형 웹 응용 프로그램 보안프로젝트(OWASP)상위 API 취약점 목록을 만들었습니다. 최신 컴퓨팅 인프라에 API가 얼마나 중요한지를 감안할 때, 이러한 문제는 응용 프로그램 및 프로그램을 모든 비용으로 유지해야 하는 중요한 문제입니다.

누락된 함수 수준 액세스 제어 취약점을 통해 사용자는 제한해야 하는 기능을 수행하거나 보호해야 하는 리소스에 액세스할 수 있습니다. 일반적으로 함수와 리소스는 코드 또는 구성 설정에 의해 직접 보호되지만 올바르게 수행하는 것이 항상 쉬운 것은 아닙니다. 최신 응용 프로그램에는 여러 유형의 역할과 그룹과 복잡한 사용자 계층 구조가 포함되기 때문에 적절한 검사를 구현하는 것이 어려울 수 있습니다.

하지만 먼저, 이 까다로운 종류의 버그를 탐색할 때 어디에서 있는지 확인하기 위해 게임화된 도전을 플레이해 보는 것은 어떨까요?

좀 더 심층적인 모습을 살펴보겠습니다.

API는 구조가 높기 때문에 특히 이 결함에 취약합니다. 코드를 이해하는 공격자는 코드를 제한해야 하는 명령을 구현하는 방법에 대해 교육된 추측을 할 수 있습니다. 이것이 기능/리소스 수준 액세스 제어 취약점으로 인해 OWASP 상위 10위권이 된 주된 이유 중 하나입니다.

공격자는 함수 수준 액세스 제어 취약점을 어떻게 악용할 수 있습니까?

함수 나 리소스가 제대로 보호되지 않는다고 의심되는 공격자는 먼저 공격하려는 시스템에 액세스해야 합니다. 이 취약점을 악용하려면 합법적인 API 호출을 끝점으로 보낼 수 있는 권한이 있어야 합니다. 아마도 낮은 수준의 게스트 액세스 기능 또는 응용 프로그램의 기능의 일부로 익명으로 가입 하는 몇 가지 방법이 있다. 해당 액세스 권한이 설정되면 합법적인 API 호출에서 명령을 변경할 수 있습니다. 예를 들어 PUT로 GET을 교환하거나 URL의 사용자 문자열을 관리자로 변경할 수 있습니다. API가 구조화되어 있기 때문에 허용되는 명령과 문자열에 배치할 위치를 쉽게 추측할 수 있습니다.

OWASP는 신규 사용자가 웹 사이트에 가입할 수 있도록 설정된 등록 프로세스의 이러한 취약점을 예로 들 수 있습니다. 다음과 같이 API GET 호출을 사용할 수 있습니다.

/api/초대/{invite_guid}

악의적인 사용자는 사용자의 역할과 이메일을 포함하여 초대에 대한 세부 정보가 포함된 JSON을 다시 가져옵니다. 그런 다음 GET을 POST로 변경하고 다음 API 호출을 사용하여 사용자에서 관리자로 초대를 올릴 수도 있습니다.

POST /api/invites/new
{"email":"shadyguy@targetedsystem.com","role":"admin"}

관리자만 POST 명령을 보낼 수 있어야 하지만 제대로 보호되지 않으면 API는 이를 합법적인 것으로 받아들이고 공격자가 원하는 대로 실행합니다. 이 경우 악의적인 사용자가 새 관리자로 시스템에 참여하도록 초대됩니다. 그 후, 그들은 합법적 인 관리자가 할 수있는 것을보고 할 수 있었고, 이는 좋지 않을 것입니다.

기능 수준 액세스 제어 취약점 제거

공격자가 구조화 된 API 내에서 보호되지 않은 함수를 찾는 것은 어렵지 않기 때문에 이 API 취약점을 방지하는 것이 특히 중요합니다. API에 대한 어느 수준의 액세스 권한을 얻을 수 있는 한 코드 구조를 매핑하고 결국 팔로우할 호출을 만들 수 있습니다.

따라서 역할 기반 권한 부여 방법을 사용하여 모든 비즈니스 수준 기능을 보호해야 합니다. 대부분의 프레임워크는 이를 실현하기 위해 중앙 집중식 루틴을 제공합니다. 선택한 프레임워크가 구현하기 어려운 경우 쉽게 사용할 수 있도록 특별히 빌드된 외부 모듈이 많이 있습니다. 궁극적으로 어떤 방법을 선택하든 서버에서 권한을 구현해야 합니다. 클라이언트 측에서 함수를 보호하려고 하지 마십시오.

함수 및 리소스 수준 권한을 만들기 위해 작업할 때는 사용자에게 필요한 작업과 더 이상 수행할 수 있는 권한만 부여해야 합니다. API 또는 기타 것을 코딩할 때항상 그렇듯이 권한 방법론을 가장 적게 연습하십시오. 그것은 당신의 환경을 보호하고 도로 아래로 사이버 보안 관련 문제를 많이 머리를 것입니다.

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

목차

PDF 다운로드
리소스 표시
더 관심이 있으신가요?

마티아스 마두 박사는 보안 전문가, 연구원, CTO, 그리고 Secure Code Warrior의 공동 창립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션을 중심으로 애플리케이션 보안 분야 박사 학위를 취득했습니다.이후 미국의 Fortify에 합류하여 개발자가 안전한 코드를 작성하도록 지원하지 않고 단순히 코드 문제를 탐지하는 것만으로는 불충분하다는 점을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안 부담을 줄이며 고객 기대를 뛰어넘는 제품을 개발하게 되었습니다. Team Awesome의 일원으로 책상에 있지 않을 때는 RSA 컨퍼런스, BlackHat, DefCon 등의 컨퍼런스에서 발표하는 무대 발표를 즐깁니다.

더 알아보세요

Secure Code Warrior는 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 구축하는 데 도움을 드립니다. 애플리케이션 보안 관리자, 개발자, CISO 또는 보안 담당자이든, 안전하지 않은 코드와 관련된 위험을 줄이는 데 도움을 드립니다.

데모 예약[다운로드]
공유:
링크드인 브랜드사회적x 로고
리소스 허브

시작하기 위한 리소스

기타 게시물
리소스 허브

시작하기 위한 리소스

기타 게시물