온라인 해킹 훈련장 Pentest Gym의 오픈 베타 서비스를 시작합니다. 미리 체험해보세요. [Pentest Gym 바로 가기]
웹, HTTP 프로토콜, 세션, 쿠키와 같은 웹과 관련된 기초적인 지식을 포함해 웹 해킹 학습에 앞서 먼저 알아야 할 중요하고 다양한 웹 기술들에 대해 읽어보실 수 있습니다.
대다수의 웹 애플리케이션은 로그인한 사용자를 식별하기 위한 인증과 사용자별로 실행할 수 있는 기능을 결정하는 권한 부여라는 접근 통제 시스템에 의해 동작됩니다. 접근 통제가 손상되면 민감한 데이터의 무단 공개, 수정 또는 파괴로 이어질 수 있으며 사용자의 권한을 벗어난 기능을 허용하게 될 수 있습니다.
웹 애플리케이션이 수집, 저장, 전송하는 민감한 데이터는 암호화를 통해 보호되어야 합니다. 데이터에 대한 안전하지 않은 암호화를 사용할 경우 사용자 로그인 패스워드, 신용카드 번호와 같은 민감한 데이터가 노출될 수 있습니다. 일반 텍스트로 된 패스워드 사용, 취약한 암호화 알고리즘 사용, 불충분한 엔트로피 등의 사례가 이에 해당됩니다.
오늘 날의 웹 애플리케이션은 대부분 사용자로부터 입력을 받아 특정 기능을 수행하는 동적 웹 애플리케이션입니다. 잘못되거나 악의적인 입력 데이터는 웹 애플리케이션의 오작동을 유발하거나 공격자가 의도한 행위를 하도록 할 수 있습니다.
모든 소프트웨어의 보안은 소프트웨어 개발 생명주기(SDLC)의 설계 단계에서부터 고려되어야 합니다. 설계 단계의 결함은 간혹 구현상의 결함으로 이어지기도 하지만 구현 이후에는 발견하기 쉽지 않으며 복구에도 더 많은 비용이 필요하게 됩니다. 이 카테고리에 해당하는 공격 유형은 매우 광범위하여 웹 애플리케이션마다 다양하게 나타날 수 있습니다.
안전하지 않거나 정확하지 않은 보안 설정으로 시스템과 데이터가 위험해질 수 있습니다. 클라우드 서비스에 대한 부적절한 권한 구성, 불필요한 기능의 활성화 또는 설치, 변경되지 않은 기본 설정, 지나치게 상세한 오류 메세지 노출 등 웹 애플리케이션의 전반에 걸쳐 보안 설정이 안전하지 않게 구성되었을 때 발생합니다.
웹 애플리케이션에는 효율과 편의를 위해 다양한 라이브러리와 컴포넌트가 사용될 수 있습니다. 하지만 웹 애플리케이션을 구현한 이후 이러한 라이브러리와 컴포넌트의 관리를 잊어버린채 방치한다면 매우 위험합니다.
사용자의 신원확인, 인증 및 세션관리가 안전하지 않은 경우이며 해당하는 취약점으로는 안전하지 않는 자격증명 복구, 세션 고정 취약점 등이 있습니다.
이 카테고리는 해당되는 직접적인 취약점이 없습니다. 하지만 웹 애플리케이션에 대한 적절한 보안 로깅 및 모니터링이 없거나 실패한다면 공격 탐지 및 대응에 직접적인 영향을 미칠 수 있으므로 적절한 보안 로깅 및 모니터링 시스템을 갖추는 것은 매우 중요합니다.
웹 애플리케이션이 사용자가 제공한 URL의 유효성을 검사하지 않고 원격 리소스를 가져올 때 발생합니다. 이를 통해 공격자는 방화벽, VPN 또는 네트워크 ACL(액세스 제어 목록)에 의해 보호되는 경우에도 웹 애플리케이션이 의도치 않은 대상 시스템으로 악의적인 요청을 강제로 보내도록 할 수 있습니다.