2012.05.08

해커들이 악용하는 최악의 웹 애플리케이션 로직 결함 톱 10

Ellen Messmer | Network World
해커들은 온라인 주문이나 기타 프로세스의 약점을 악용하기 위해서 특히 웹 상에서 비즈니스 로직(Business Logic)의 결함을 찾아 다니고 있다. 애플리케이션의 보안을 검증하는 NT OBJECTives는 가장 빈번히 발견되는 비즈니스 로직 결함 열 가지를 선정했다.
 
1. 인증 플래그(Flag) 및 권한 승급
애플리케이션에는 자체적인 접속 제어 목록과 권한이 설정되어 있기 때문에 인증 이행이 약화되면 다른 사람의 콘텐츠에 접근하거나 더 큰 권한을 갖는 더 높은 수준의 사용자가 되는 등에 악용할 수 있는 취약성이 나타나게 된다. 
 
여기서 필요한 것은 목표가 될 수 있는 ACL/권한과 관련이 있는 매개변수의 이름을 확인하는 일이며, 테스트를 진행하는 사람은 퍼지(Fuzzy) 툴을 이용해 비트 패턴이나 권한 플래그를 바꿀 수 있으며, 이를 통해 공격자가 권한을 악용하거나 승급시키거나 인증 과정을 우회하는 위치를 찾아낼 수 있다.
 
2. 중요한 매개변수 조작 및 승인되지 않은 정보/콘텐츠에 대한 접근
HTTP GET 및 POST 요청이 애플리케이션에 전달될 때는 일반적으로 이름/값 쌍(Pair), JSON, XML 등 여러 매개변수가 수반되지만, 이런 것들은 추측을 통해 조작하거나 예상할 수 있다. 이를 위해서는 쉽게 예상할 수 있는 값을 찾고 매개변수의 값을 변환해 승인되지 않은 접속 권한을 얻을 수 있는지 확인해야 한다.
 
3. 개발자의 쿠키 추측 및 비즈니스 프로세스/로직 우회
쿠키는 종종 HTTP에서의 상태를 유지하기 위해서 사용되지만, 개발자들은 세션 쿠키(Session Cookie)를 사용할 뿐 아니라 세션 전용 변수를 이용해 내부적으로 데이터를 구축한다. 애플리케이션 개발자들은 로직의 약점을 드러내는 주요 시점에서 브라우저 상에 새로운 쿠키를 설정한다. 
 
여기서 문제는 쿠키가 역엔지니어링되거나 추측하거나 판독할 수 있는 값을 갖고 있어 공격자들이 악용하기 쉬운 약점을 찾아내려 한다는 것이다. 테스트에는 일반적으로 프로파일링(Profiling) 중에 제공되는 쿠키의 분석, 쉽게 예측할 수 있는 값 찾아보기, 쿠키 값의 변경 가능 여부 확인 등이 포함된다.
 
4. LDAP 매개변수 식별 및 주요 인프라 접근
LDAP는 대형 애플리케이션의 중요한 측면으로 자리잡고 있으며, SSO(Single Sign On)과도 통합될 수 있을 것이다. 사이트마인더(SiteMinder)와 로드 밸런서(Load Balancer) 등 많은 인프라 계층 툴들이 인증과 권한 설정을 위해 LDAP를 사용하고 있다. 
 
LDAP 매개변수는 악용될 수 있는 비즈니스 로직 결정 플래그를 가질 수 있다. 공격자들은 애플리케이션이 충분한 검증을 수행하지 않는 경우 비즈니스 계층을 우회하는 방법과 논리적 결함을 찾아낼 수 있다. 이를 위한 테스트는 목표로 예상되는 이메일이나 사용자명을 취하는 LDAP와 연결된 매개변수를 찾는데 초점을 맞춘다.
 
5. 비즈니스 콘스트레인트(Business Constraint) 악용
애플리케이션의 비즈니스 로직은 규칙과 제약을 정의하지만 설계가 엉성할 경우 공격자들은 이것들을 이용해 숨겨진 영역을 찾아내고 그 환경을 파악할 수 있게 된다. 따라서 숨겨진 매개변수와 값을 테스트하여 조작의 목표가 될 수 있는 비즈니스에 국한된 요청을 검토해야 한다.
 



2012.05.08

해커들이 악용하는 최악의 웹 애플리케이션 로직 결함 톱 10

Ellen Messmer | Network World
해커들은 온라인 주문이나 기타 프로세스의 약점을 악용하기 위해서 특히 웹 상에서 비즈니스 로직(Business Logic)의 결함을 찾아 다니고 있다. 애플리케이션의 보안을 검증하는 NT OBJECTives는 가장 빈번히 발견되는 비즈니스 로직 결함 열 가지를 선정했다.
 
1. 인증 플래그(Flag) 및 권한 승급
애플리케이션에는 자체적인 접속 제어 목록과 권한이 설정되어 있기 때문에 인증 이행이 약화되면 다른 사람의 콘텐츠에 접근하거나 더 큰 권한을 갖는 더 높은 수준의 사용자가 되는 등에 악용할 수 있는 취약성이 나타나게 된다. 
 
여기서 필요한 것은 목표가 될 수 있는 ACL/권한과 관련이 있는 매개변수의 이름을 확인하는 일이며, 테스트를 진행하는 사람은 퍼지(Fuzzy) 툴을 이용해 비트 패턴이나 권한 플래그를 바꿀 수 있으며, 이를 통해 공격자가 권한을 악용하거나 승급시키거나 인증 과정을 우회하는 위치를 찾아낼 수 있다.
 
2. 중요한 매개변수 조작 및 승인되지 않은 정보/콘텐츠에 대한 접근
HTTP GET 및 POST 요청이 애플리케이션에 전달될 때는 일반적으로 이름/값 쌍(Pair), JSON, XML 등 여러 매개변수가 수반되지만, 이런 것들은 추측을 통해 조작하거나 예상할 수 있다. 이를 위해서는 쉽게 예상할 수 있는 값을 찾고 매개변수의 값을 변환해 승인되지 않은 접속 권한을 얻을 수 있는지 확인해야 한다.
 
3. 개발자의 쿠키 추측 및 비즈니스 프로세스/로직 우회
쿠키는 종종 HTTP에서의 상태를 유지하기 위해서 사용되지만, 개발자들은 세션 쿠키(Session Cookie)를 사용할 뿐 아니라 세션 전용 변수를 이용해 내부적으로 데이터를 구축한다. 애플리케이션 개발자들은 로직의 약점을 드러내는 주요 시점에서 브라우저 상에 새로운 쿠키를 설정한다. 
 
여기서 문제는 쿠키가 역엔지니어링되거나 추측하거나 판독할 수 있는 값을 갖고 있어 공격자들이 악용하기 쉬운 약점을 찾아내려 한다는 것이다. 테스트에는 일반적으로 프로파일링(Profiling) 중에 제공되는 쿠키의 분석, 쉽게 예측할 수 있는 값 찾아보기, 쿠키 값의 변경 가능 여부 확인 등이 포함된다.
 
4. LDAP 매개변수 식별 및 주요 인프라 접근
LDAP는 대형 애플리케이션의 중요한 측면으로 자리잡고 있으며, SSO(Single Sign On)과도 통합될 수 있을 것이다. 사이트마인더(SiteMinder)와 로드 밸런서(Load Balancer) 등 많은 인프라 계층 툴들이 인증과 권한 설정을 위해 LDAP를 사용하고 있다. 
 
LDAP 매개변수는 악용될 수 있는 비즈니스 로직 결정 플래그를 가질 수 있다. 공격자들은 애플리케이션이 충분한 검증을 수행하지 않는 경우 비즈니스 계층을 우회하는 방법과 논리적 결함을 찾아낼 수 있다. 이를 위한 테스트는 목표로 예상되는 이메일이나 사용자명을 취하는 LDAP와 연결된 매개변수를 찾는데 초점을 맞춘다.
 
5. 비즈니스 콘스트레인트(Business Constraint) 악용
애플리케이션의 비즈니스 로직은 규칙과 제약을 정의하지만 설계가 엉성할 경우 공격자들은 이것들을 이용해 숨겨진 영역을 찾아내고 그 환경을 파악할 수 있게 된다. 따라서 숨겨진 매개변수와 값을 테스트하여 조작의 목표가 될 수 있는 비즈니스에 국한된 요청을 검토해야 한다.
 

X