웹 해킹 개요

<world />·2021년 5월 20일
0

공부

목록 보기
13/17
post-thumbnail

정보 출처: https://dreamhack.io/

웹 해킹 개요

- 웹 해킹 개요


웹 해킹은 해킹의 의미처럼 본래의 의도와는 다른 동작을 일으키거나 주어진 권한 이상으로 정보를 열람, 복제, 변경 가능한 행위가 웹에서 발생하는 것을 말한다.

기업의 업무, 금융, 쇼핑 등 다양한 분야를 웹으로 서비스하면서 제공하는 서비스의 복잡도와 다양성이 증가하게 되었다. 그로 인해 서버와 어플리케이션에서 처리하는 사용자의 입력 역시 다양해졌고 기능 구현의 복잡도로 인해 개발 당시에는 의도치 않았던 동작을 일으킬 수 있는 웹 해킹의 위협도 따라서 증가하게 되었다.

기업에서 사용하는 웹에는 기업의 내부 자료, 직원 정보 등이 있고 금융/쇼핑 분야는 사용자들의 개인 정보, 금융(카드) 정보 등 서비스의 형태에 따라 수많은 정보가 웹에 포함되어 있으며 공격자는 가치 있는 정보를 획득하기 위해 웹 해킹을 시도하고 있다.

또한 많은 기업들이 자산을 보호하기 위해 많은 서비스와 네트워크를 내부망으로 사용하지만, 기업의 대표 사이트 또는 제품(서비스) 등과 같이 웹을 통해 서비스를 운영하는 경우가 많다. 이런 웹 서비스들은 내부망과 연결되어 있을 가능성이 높아 공격자들이 내부망 침투를 위해 가장 먼저 웹을 공격하기도 한다.

따라서 웹에서 발생할 수 있는 취약점에 대해 익히고 방어 대책을 연구하여 사전에 대응할 수 있는 역량을 키우는 것이 대두되고 있다.

해당 화면은 디페이스 공격을 당한 dreamhack.io (예시)





웹 해킹 개요

웹 해킹 공격 벡터


위 그림은 드림핵 웹 사이트 접속 시 발생하는 과정을 간략히 표현한 그림입니다. 사용자의 입력을 받고 웹 사이트 통신을 하는 Client-side, 사용자의 요청을 처리하는 Server-side로 크게 두가지로 나누어 볼 수 있다.

웹 해킹을 할 때에도 Client-side, Server-side로 공격 대상을 나누어 볼 수 있다. 공격 대상에 따라 공격하는 방식, 형태가 달라지며 공격을 통해 가능한 행위가 달라진다.


- Client-side Attack

서비스 사용자에 대한 공격을 의미한다.

웹을 이용하는 사용자는 웹 브라우저를 통해 서비스를 제공받는데 웹 서버가 제공해주는 데이터가 공격자에 의해 변조되었을 경우 웹 브라우저에서 렌더되는 과정에서 취약점이 발생하는 경우가 대표적이다.

예를 들어 게시판 서비스의 경우 사용자의 입력을 특별한 검증 없이 출력하게 되면 사용자의 입력도 html 처럼 취급되며 스크립트 또한 삽입할 수 있다. 공격자는 이를 악용하여 다른 사용자의 웹 브라우저에 원하는 행위를 수행할 수 있다.

-Server-side Attack

서비스를 운용하는 서버에 대한 공격을 의미한다.

다양한 공격 형태가 존재하며, 공격자가 공격에 성공하게 되면 서버의 어플리케이션 코드 또는 다른 사용자의 정보 유출, 서버 탈취 등으로 이어질 수 있다. 운영되는 서비스의 구조와 특징에 따라 위협의 형태가 달라진다.

또한 서비스의 형태에 따라 가지게 되는 특별한 공격 방법이 존재할 수도 있다. 예를 들어 송금 기능을 지원하는 서비스에서 자신이 가진 금액보다 더 큰 금액으로 요청하게 될 때 특별한 검증 절차 없이 기능이 수행된다면 공격자는 금전적인 이득을 취할 수 있게 된다.





Epilogue

-Review


이번 강의에서는 웹 해킹을 시작하기 전 익혀야 하는 웹 기초 지식을 학습해 보았다. 빈칸을 채우며 학습한 내용을 정리해보자.





웹과 브라우저

‣ 웹을 사용하기 위해 웹 브라우저 를 사용한다.
‣ HTML은 웹 문서의 뼈대를 구축하기 위한 마크업 언어이다.
‣ CSS는 이미지, 태그, 글자 등 다양한 웹 리소스들의 스타일 을 지정한다.
‣ Javascript는 동적으로 HTTP 요청을 주고 받고 사용자가 보고 있는 페이지를 컨트롤 할 수 있는 스크립트 언어이다.
‣ URI는 Uniform Resource Identifier의 약자로 리소스를 식별 하기 위한 식별자 이다.

HTTP

‣ 기본 HTTP 포트 번호는 80 이고 HTTPS 포트 번호는 443 입니다.
HTTP 헤더 는 서버에 추가 정보를 전달하는 데이터 부분이다. 사용자가 입력한 데이터를 전달하기 위한 부분보다는 사용자와 서버가 상호작용하기 위한 정보를 담는 부분으로 사용된다.
‣ 쿠키는 웹 브라우저 에 저장되고 세션은 서버 에 저장된다.

웹 서버 어플리케이션

웹 서버 는 사용자의 HTTP 요청을 해석하여 처리한 후 응답하여 주는 역할을 한다.
웹 어플리케이션 은 사용자의 요청을 동적으로 처리할 수 있도록 만들어진 프로그램이다.
DBMS 는 데이터를 저장하기 위해 사용하는 데이터 저장소관리 프로그램이다.

웹 해킹

‣ 웹 해킹을 포함한 다양한 분야에서의 해킹은 본래의 의도와는 다른 행위를 발생시키는 것 을 의미한다.

0개의 댓글