대량 할당 취약점

1 개요[ | ]

mass assignment vulnerability, mass assignment
대량 할당 취약점, 대량 할당
  • 웹 애플리케이션의 액티브 레코드 패턴을 악용하여 비밀번호, 부여된 권한, 관리자 상태 등 사용자가 정상적으로 접근할 수 없는 데이터 항목을 수정하는 컴퓨터 취약점

많은 웹 애플리케이션 프레임워크는 액티브 레코드와 객체-관계 매핑(ORM) 기능을 제공하여, 외부 데이터를 직렬화 형식에서 내부 객체로 자동 변환하고 이를 다시 데이터베이스 레코드 필드로 변환한다. 만약 프레임워크의 변환 인터페이스가 너무 허용적이고 애플리케이션 설계자가 특정 필드를 불변으로 표시하지 않는다면, 외부에서 절대 수정해서는 안 되는 필드(예: 관리자 권한 플래그)를 덮어쓸 수 있다.

이러한 취약점은 Ruby on Rails, ASP.NET MVC, Java Play 프레임워크로 작성된 애플리케이션에서 발견되었다.

2012년 Ruby on Rails에서 대량 할당 취약점으로 인해 매핑 제한을 우회하고 GitHub 사용자 계정에 무단 SSH 공개 키를 삽입하는 개념증명 인젝션이 이루어졌다. 이후 Ruby on Rails의 추가 취약점으로 인해 특별히 조작된 JSON 구조를 통해 내부 객체를 생성할 수 있었다.

ASP.NET Core에서는 [BindNever] 속성을 사용하여 매핑 제한을 선언할 수 있다.

2 같이 보기[ | ]

3 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}