VOOVO SYSTEMS

占쌉삼옙占쏙옙占쏙옙

제목 2017년 치명적인 웹 애플리케이션 보안 위협은?

OWASP(The Open Web Application Security Project)가 최근 ‘OWASP가 선정한 가장 치명적인 웹 애플리케이션 보안 위협 10(이하 OWASP Top 10)’을 발표했다. 비영리재단인 OWASP(www.owasp.org)는 애플리케이션 보안 위협의 중요성에 대한 인식을 제고하고자 14년째 OWASP Top 10을 소개하고 있다. 이번에 발표한 OWASP Top 10 2017은 지난 2013년 이후 4년 만이다. OWASP가 최신 트렌트에 맞춰 선정한 치명적인 웹 애플리케이션 보안 위협에는 무엇이 있는지 알아보자. 

 

 

OWASP Top 10 2017, 이전 버전과 무엇이 달라졌나?

OWASP Top 10 2017은 8개의 컨설팅 회사와 3개의 제품 공급업체를 포함한 애플리케이션 보안 전문 업체 11개의 데이터셋을 기반으로 선정됐다. 이 데이터는 수백 개의 조직과 5만 개 이상의 실제 애플리케이션 및 API에서 수집된 취약점을 포함한다. Top 10 항목은 이 데이터와 함께 악용 가능성, 탐지 가능성 및 영향에 대한 합의된 추정에 따라 선정되고 우선순위가 지정된다.

이번 업데이트에는 지난 2013년 버전 이후 두 가지 항목이 추가되었다. 하나는 취약한 공격 방어(Insufficient Attack Protection)이며, 또 다른 하나는 취약한 API(Underprotected APIs)이다. 이 외에도 2013년의 객체 직접 참조(Insecure Direct Object References)와 기능 수준의 접근제어 누락(Missing Function Level Access Control)이 접근 제어 실패(Broken Access Control로 통합되었다. 

특히, 이 보고서에서는 “최신 애플리케이션에는 API에 연결하는 많은 클라이언트 애플리케이션이 포함되는 경우가 많다. 그러나 API는 대부분 취약하며, 조직들이 이러한 문제에 대해 신경을 써야 한다”고 취약한 API 항목을 새롭게 포함한 이유를 설명했다. 

 

 

[표 1] OWASP Top 10 2013 vs. 2017 (*출처: 2017.04. OWASP)

 

2017 Top 10 OWASP 애플리케이션 보안 위협

애플리케이션 및 API의 위협 환경은 지속적으로 변화한다. 이 진화의 핵심 요소는 클라우드, 컨테이너 및 API를 포함한 새로운 기술의 도입, 애자일(Agile) 및 데브옵스(DevOps)와 같은 소프트웨어 개발 프로세스의 가속화 및 자동화, 타사 라이브러리 및 프레임워크의 증가, 공격자의 발전 등이다. 이러한 요소로 인해 애플리케이션과 API를 분석하기가 어려워지고 위협 환경이 크게 변화할 수 있다. 이러한 변화에 발맞추기 위해 OWASP Top 10은 주기적으로 업데이트되고 있으며, 이번 2017 버전에서는 다음과 같이 변경되었다.

 

A1 – 인젝션(Injection)

SQL, OS, XXE(Xml eXternal Entity), LDAP 인젝션 취약점은 신뢰할 수 없는 데이터가 명령어나 쿼리문의 일부가 인터프리터로 전송될 때 발생한다. 공격자의 악의적인 데이터는 의도하지 않은 명령을 실행하거나 적절한 권한 없이 데이터에 액세스하도록 인터프리터를 속일 수 있다.

 

A2 – 인증 및 세션 관리 취약점(Broken Authentication and Session Management) 

인증 및 세션 관리와 관련된 애플리케이션 기능은 종종 잘못 구현되어 공격자에게 취약한 암호, 키 또는 세션키를 제공해 다른 사용자의 권한을 일시적 또는 영구적으로 탈취하는 것을 허용한다. 

 

A3 – 크로스사이트 스크립팅(Cross-Site scripting, XSS) 

XSS 취약점은 애플리케이션이 적절한 유효성 검사 또는 이스케이프 처리 없이 새 웹 페이지에 신뢰할 수 없는 데이터를 포함하거나 자바스크립트(Javascript)를 만들 수 있는 브라우저 API를 사용하여 사용자가 제공한 데이터로 기존 웹 페이지를 업데이트할 때마다 발생한다. XSS를 사용하면 공격자가 공격 대상자의 브라우저에서 스크립트를 실행하여 사용자 세션을 도용하거나 웹 사이트를 손상 시키거나 악의적인 사이트로의 리다이렉션을 할 수 있다.

 

A4 – 취약한 접근 제어(Broken Access Control) 

취약한 접근 제어는 인증된 사용자가 수행할 수 있는 것에 대한 제한이 제대로 적용되지 않는 것을 의미한다. 공격자는 이러한 취약점을 악용하여 사용자의 계정 액세스, 중요한 파일 보기, 사용자의 데이터 수정, 액세스 권한 변경 등과 같은 권한 없는 기능, 또는 데이터에 액세스할 수 있다.

 

A5 – 보안 설정 오류(Security Misconfiguration) 

바람직한 보안은 애플리케이션, 프레임워크, 애플리케이션 서버, 웹 서버, 데이터베이스 서버, 플랫폼 등에 대한 보안 설정을 정의하고 적용하는 것이다. 보안 설정의 기본값은 안전하지 않기 때문에 적절한 보안 설정을 정의∙구현∙유지 관리해야 한다. 또한 소프트웨어는 최신 상태로 유지해야 한다. 

 

A6 – 중요 데이터 유출(Sensitive Data Exposure) 

많은 웹 애플리케이션과 API가 재무, 의료, 개인 식별 정보(PII)와 같은 중요한 데이터를 제대로 보호하지 않는다. 공격자는 신용 카드 사기, 신원 도용 또는 다른 범죄를 수행하기 위해 잘 보호되지 않은 데이터를 유출하거나 수정할 수 있다. 중요 데이터는 데이터 유휴 상태 또는 전송 중일 때 암호화되어야 하고 브라우저와 데이터를 교환할 때 특별한 주의가 필요하다.

 

A7 – 공격 방어 취약점(Insufficient Attack Protection) 

대부분의 애플리케이션과 API는 수동 및 자동화된 공격을 모두 탐지(detect)∙방지(prevent)∙대응(respond)할 수 있는 기본 기능이 부족하다. 공격 방어(protection)는 기본적인 입력 유효성 검사를 뛰어넘어 자동으로 탐지, 로깅, 응답 및 공격 시도 차단을 포함한다. 애플리케이션 소유자는 공격으로부터 보호하기 위해 패치를 신속하게 배포할 수 있어야 한다.

 

A8 – 크로스사이트 요청 변조(Cross-Site Request Forgery, CSRF) 

CSRF 공격은 로그인된 공격 대상자의 브라우저가 공격 대상자의 세션 쿠키와 자동으로 포함된 인증 정보를 포함하여 위조된 HTTP 요청을 취약한 웹 애플리케이션에 보내도록 하는 것이다. 예를 들어, 공격자는 공격 대상자의 브라우저가 취약한 애플리케이션이 합법적이라고 생각하는 요청을 생성하도록 한다.

 

A9 – 알려진 취약점이 있는 컴포넌트 사용(Using Components with Known Vulnerabilities) 

라이브러리, 프레임워크 및 기타 소프트웨어 모듈과 같은 컴포넌트는 애플리케이션과 같은 권한으로 실행된다. 취약한 컴포넌트가 악용되면 이러한 공격으로 심각한 데이터 손실이나 서버 탈취가 용이해질 수 있다. 알려진 취약점이 있는 컴포넌트를 사용하는 애플리케이션 및 API는 애플리케이션 방어를 약화시키고 다양한 공격을 가능하게 한다.


A10 – 취약한 API(Underprotected APIs) 

최신 애플리케이션 및 API에는 API(SOAP / XML, REST / JSON, RPC, GWT 등)에 연결하는 브라우저 및 모바일 애플리케이션의 자바스크립트와 같은 여러 클라이언트 애플리케이션이 포함되는 경우가 많다. 이러한 API는 대부분 보호되지 않으며 수많은 취약점을 포함한다. 

 

 

OWASP Top 10 보고서의 주요 목적은 개발자, 디자이너, 설계자, 관리자 및 조직에게 가장 중요한 웹 애플리케이션 보안 취약점에 대해 교육하는 것이다. 또한 이러한 고위험 영역으로부터 보호할 수 있는 기본 기술을 제공하며 여기에서 개선 방향에 대한 지침을 제공하는 것이다. 이 보고서에서는 OWASP Top 10을 다음과 같이 적용하기를 권장하고 있다. 

“OWASP는 Top 10을 참고하여 조직의 애플리케이션 보안을 시작해야 한다. 개발자는 다른 조직의 실수로부터 배우고 경영진은 소프트웨어 애플리케이션 및 API가 발생시키는 위험을 관리하는 방법에 대해 생각하기 시작해야 한다. 장기적으로 기업의 문화 및 기술과 호환되는 애플리케이션 보안 프로그램을 만들어야 한다. 이 프로그램은 온갖 형태와 크기로 제공되며 일부 프로세스 모델에 지정된 모든 작업을 시도하지 않고 대신에 기업의 기존 강점을 활용하여 적합한 작업을 하고 측정해야 한다.”

 

참고로, 현재 공개한 내용은 RC1(Release Candidate 1) 버전으로, OWASP는 2017년 6월 30일에 종료되는 공개 의견 수렴 기간 이후 2017년 7월 또는 8월에 OWASP Top 10 – 2017 최종 버전을 공개할 계획이다.


- 출처 : 안랩(2017.05.02)