정보 출처: https://dreamhack.io/
웹 해킹은 해킹
의 의미처럼 본래의 의도와는 다른 동작을 일으키거나 주어진 권한 이상으로 정보를 열람, 복제, 변경 가능한 행위가 웹에서 발생하는 것을 말한다.
기업의 업무, 금융, 쇼핑 등 다양한 분야를 웹으로 서비스하면서 제공하는 서비스의 복잡도와 다양성이 증가하게 되었다. 그로 인해 서버와 어플리케이션에서 처리하는 사용자의 입력 역시 다양해졌고 기능 구현의 복잡도로 인해 개발 당시에는 의도치 않았던 동작을 일으킬 수 있는 웹 해킹의 위협도 따라서 증가하게 되었다.
기업에서 사용하는 웹에는 기업의 내부 자료, 직원 정보 등이 있고 금융/쇼핑 분야는 사용자들의 개인 정보, 금융(카드) 정보 등 서비스의 형태에 따라 수많은 정보가 웹에 포함되어 있으며 공격자는 가치 있는 정보를 획득하기 위해 웹 해킹을 시도하고 있다.
또한 많은 기업들이 자산을 보호하기 위해 많은 서비스와 네트워크를 내부망으로 사용하지만, 기업의 대표 사이트 또는 제품(서비스) 등과 같이 웹을 통해 서비스를 운영하는 경우가 많다. 이런 웹 서비스들은 내부망과 연결되어 있을 가능성이 높아 공격자들이 내부망 침투를 위해 가장 먼저 웹을 공격하기도 한다.
따라서 웹에서 발생할 수 있는 취약점에 대해 익히고 방어 대책을 연구하여 사전에 대응할 수 있는 역량을 키우는 것이 대두되고 있다.
해당 화면은
디페이스 공격
을 당한 dreamhack.io (예시)
위 그림은 드림핵 웹 사이트 접속 시 발생하는 과정을 간략히 표현한 그림입니다. 사용자의 입력을 받고 웹 사이트 통신을 하는 Client-side
, 사용자의 요청을 처리하는 Server-side
로 크게 두가지로 나누어 볼 수 있다.
웹 해킹을 할 때에도 Client-side, Server-side로 공격 대상을 나누어 볼 수 있다. 공격 대상에 따라 공격하는 방식, 형태가 달라지며 공격을 통해 가능한 행위가 달라진다.
서비스 사용자에 대한 공격을 의미한다.
웹을 이용하는 사용자는 웹 브라우저를 통해 서비스를 제공받는데 웹 서버가 제공해주는 데이터가 공격자에 의해 변조되었을 경우 웹 브라우저에서 렌더되는 과정에서 취약점이 발생하는 경우가 대표적이다.
예를 들어 게시판 서비스의 경우 사용자의 입력을 특별한 검증 없이 출력하게 되면 사용자의 입력도 html 처럼 취급되며 스크립트 또한 삽입할 수 있다. 공격자는 이를 악용하여 다른 사용자의 웹 브라우저에 원하는 행위를 수행할 수 있다.
서비스를 운용하는 서버에 대한 공격을 의미한다.
다양한 공격 형태가 존재하며, 공격자가 공격에 성공하게 되면 서버의 어플리케이션 코드 또는 다른 사용자의 정보 유출, 서버 탈취 등으로 이어질 수 있다. 운영되는 서비스의 구조와 특징에 따라 위협의 형태가 달라진다.
또한 서비스의 형태에 따라 가지게 되는 특별한 공격 방법이 존재할 수도 있다. 예를 들어 송금 기능을 지원하는 서비스에서 자신이 가진 금액보다 더 큰 금액으로 요청하게 될 때 특별한 검증 절차 없이 기능이 수행된다면 공격자는 금전적인 이득을 취할 수 있게 된다.
이번 강의에서는 웹 해킹을 시작하기 전 익혀야 하는 웹 기초 지식을 학습해 보았다. 빈칸을 채우며 학습한 내용을 정리해보자.
‣ 웹을 사용하기 위해 웹 브라우저
를 사용한다.
‣ HTML은 웹 문서의 뼈대를 구축하기 위한 마크업
언어이다.
‣ CSS는 이미지, 태그, 글자 등 다양한 웹 리소스들의 스타일
을 지정한다.
‣ Javascript는 동적으로 HTTP 요청을 주고 받고
사용자가 보고 있는 페이지를 컨트롤 할 수 있는
스크립트 언어이다.
‣ URI는 Uniform Resource Identifier의 약자로 리소스를 식별
하기 위한 식별자
이다.
‣ 기본 HTTP 포트 번호는 80
이고 HTTPS 포트 번호는 443
입니다.
‣ HTTP 헤더
는 서버에 추가 정보를 전달하는 데이터 부분이다. 사용자가 입력한 데이터를 전달하기 위한 부분보다는 사용자와 서버가 상호작용하기 위한 정보를 담는 부분으로 사용된다.
‣ 쿠키는 웹 브라우저
에 저장되고 세션은 서버
에 저장된다.
‣ 웹 서버
는 사용자의 HTTP 요청을 해석하여 처리한 후 응답하여 주는 역할을 한다.
‣ 웹 어플리케이션
은 사용자의 요청을 동적으로 처리할 수 있도록 만들어진 프로그램이다.
‣ DBMS
는 데이터를 저장하기 위해 사용하는 데이터 저장소관리 프로그램이다.
‣ 웹 해킹을 포함한 다양한 분야에서의 해킹은 본래의 의도와는 다른 행위를 발생시키는 것
을 의미한다.