이 포스트의 내용은 SECU BOOK에서 발간한 [웹 해킹과 시큐어코딩 탐지/수정 실습가이드]를 참고하였습니다.
안녕하세요. 휴먼스케이프의 개발자 김병하입니다.
이 번 포스트에서는 OWASP(The Open Web Application Security Project)에서 발표한 10대 웹 애플리케이션의 취약점 2017 (2017 OWASP TOP 10) 중 세 번째에 해당하는 A3-Sensitive data exposure이 (민감 데이터 노출)에 대해서 다뤄보겠습니다.
해당 이슈는 OWASP TOP 10 2013년 버전에선 6번째인 A6에 올랐으나 2017년엔 A3로 그 순위가 올랐습니다. 그만큼 어플리케이션이 다루는 민감 데이터가 많아지고 있고, 노출로 인한 위험성이 올라가고 있는 것으로 보입니다.
정의
(민감 데이터 노출) 이란?
OWASP TOP 10에서는
Many web applications and APIs do not properly protect sensitive data, such as financial, healthcare, and PII. Attackers may steal or modify such weakly protected data to conduct credit card fraud, identity theft, or other crimes. Sensitive data may be compromised without extra protection, such as encryption at rest or in transit, and requires special precautions when exchanged with the browser.
이라고 설명하고 있습니다. 한국말로 번역한다면,
많은 웹 애플리케이션과 API는 금융, 건강, 개인 식별 정보 및 인증 정보와 같은 중요한 데이터를 제대로 보호하지 않는다. 공격자는 신용카드 사기, 신분 도용 또는 다른 범죄를 수행하는 등 약하게 보호된 데이터를 훔치거나 변경할 수 있다. 중요 데이터가 저장 또는 전송 중이거나 브라우저와 교환하는 경우 특별히 주의하여야 하며, 암호화와 같은 보호조치를 취해야 한다.
유형
관리자 페이지 노출
관리자 페이지가 일반인에게 접근 허용되거나 관리자 페이지 내부에 존재하는 페이지를 추측하여 접근하는 방법입니다.
예를 들어 어드민 페이지 (ex. /admin.html)에 접근하는 경우입니다.
일반적으로 관리자 인증(ex. 관리자 로그인)을 거치지 않고 페이지 접근을 시도하면 잘못된 접근이라는 에러와 함께 초기 페이지로 이동하게 될 것입니다. 하지만 자바스크립트로 통제하는 등의 부적절한 방법으로 접근통제를 하는 경우, 해당 자바스크립트를 수정하여 관리자 페이지에 접근할 수 있습니다.
중요정보 비암호화 노출
로그인 페이지 및 개인정보 수정 페이지와 같이 중요정보가 전달되는 구간은 적절히 암호화하여 정보를 전달해야 합니다. 보통은 이 같은 페이지에는 HTTPS 등을 통해 암호화를 시행합니다.
만약 HTTPS가 아닌 HTTP로 중요정보를 전달한다면 Sniffing(스니핑) 공격을 통해 중요정보를 탈취할 수 있습니다.
암호화는 필수죠!
파일 시스템 노출
파일 시스템에 접근할 수 있을 때 발생할 수 있습니다. 예를 들어 /admin_check.py 와 같이 파일 시스템에 접근할 수 있다면 중요정보가 노출될 수 있습니다.
예를 들어서, 애플리케이션 기본 설치 파일, 시스템 파일, 백업 파일, 테스트 페이지, 소스 파일 등과 같은 파일들이 노출되면 문제가 발생할 수 있습니다.
부적절한 에러메시지 노출
에러가 발생했을 때, 예외처리가 적절하게 수행되지 않아서 DB 정보 등이 그대로 노출되어 취약점이 발생할 수 있습니다.
검색 엔진에 의한 노출
구글과 같은 검색엔진이나 쇼단과 같은 IoT 검색엔진에서 검색 키워드를 통해 어플리케이션 내부 정보, 개인정보 등 다양한 중요정보에 접근할 수도 있습니다.
감사합니다.
Get to know us better! Join our official channels below.
Telegram(EN) : t.me/Humanscape KakaoTalk(KR) : open.kakao.com/o/gqbUQEM Website : humanscape.io Medium : medium.com/humanscape-ico Facebook : www.facebook.com/humanscape Twitter : twitter.com/Humanscape_io Reddit : https://www.reddit.com/r/Humanscape_official Bitcointalk announcement : https://bit.ly/2rVsP4T Email : support@humanscape.io