ETC
웹 해킹 공부 환경을 구성해보자, webgoat
2017 03 10
  • Facebook
  • Twitter
  • Copy URL

보안 공부를 하려고 하면 무엇을 해야 할지 막막한 생각부터 든다. 요즘 유행한다는 디바이스 해킹을 한다고 해도 어디서부터 무엇을 어떻게 해야 할지, 어떤 제품이나 프로그램에서 버그를 찾아야 할지 총체적 난국이다. 가장 난감한 것은 직접 해볼 곳이 없다는 것이다. 물론, 알아서 잘하는 사람은 잘 찾아서 하겠지만 오늘은 공부를 시작하는 이들에게 도움이 될 만한 것을 소개해볼까 한다. 막상 공부를 시작하면 책으로만 보는 이론 지식이 제대로 발휘될 리가 없다. 합법적으로 웹 해킹해볼 수 있는 공간, Webgoat다.

이미지를 불러오는데 실패했습니다.

누군가는 말했다. 컴퓨터는 헤딩하면서 배우는 것이라고 한다. 삽질에서 가장 많이 배우고 거지같이 배운 것은 잊을 수가 없다. 같은 이치로 이론만 공부하면 뒤돌아 잊어버리기가 십상이다. 그래서 실제로 해불 수 있는 공간이 필요한 것이 사실이다. 하지만, 웹 애플리케이션 해킹을 실제 서비스에서 연습하면 잡혀간다. 가장 좋은 방법은 내가 사이트를 만들고 만든 사이트를 공격해보는 것이 가장 좋다고 하지만 배우는 것도 실습하는 것도 여간 과정이 번거롭다. 특히나 실제로 서비스를 제공하는 온라인 서점이나 온라인 뱅크 같은 완전한 웹 페이지를 취약점 분석하면 그 것은 불법이다. 외에도 전문적으로 웹 페이지 취약점을 분석하는 이들에게 새로 나온 취약점을 분석할 수 있는 웹 애플리케이션은 필요하다. 이러한 공부나 분석 연구는 합법적이고 안전한 상태에서 이뤄져야 한다. 다시 한 번 강조해서 이야기하지만 좋은 의도로 실제 서비스를 제공하는 웹사이트를 허락 없이 취약점 분석한다면 그것은 불법이다. 이러한 점을 봤을 때 Webgoat의 목표는 간단하다. Webgoat은 웹 응용 프로그램 보안을 위해 대화형 웹 보안 환경을 구성하고 JAVA 기반의 보안 벤치마킹 플랫폼, 허니팟으로 확장한 개념이다. 이러한 플랫폼을 이용하여 웹 해킹을 실습해보고, 취약점 연구를 해볼 수 있을 것이다.[1]

Webgoat은 웹 애플리케이션의 취약점을 알고 보안적으로 조처를 할 수 있는 공부환경을 제공한다. 가장 초기 버전은 OWASP 취약점을 포함한 웹 페이지를 시작으로 현재 7.1버전(2016.11.16 기준)을 제공하고 있다.[2] Webgoat에는 약 50개 이상의 취약점을 포함하고 있으며 자바로 작성되어 어떠한 OS에서도 사용이 가능하다. 또한, 개발자와 비 개발자 모드로 나뉘어 비 개발자는 단순히 문제 위주로 풀지만, 개발자 모드는 소스 코드를 고칠 수 있으며 비 개발자 모드에 없는 문제도 풀 수 있다. Webgoat를 제공하는 이는 개발자도 보안을 몰라서는 안 된다고 얘기한다. 심지어 최고의 프로그래머도 보안 오류를 만들어낸다. Webgoat는 그런 프로그래머가 공부할 수 있는 환경을 제공한다.[3]

 

먼저 Webgoat를 설치하기 위한 준비를 해보자.

- Java JDK 설치

1. ORACLE 홈페이지에서 파일을 다운로드 한다.

이미지를 불러오는데 실패했습니다.

이미지를 불러오는데 실패했습니다.

이미지를 불러오는데 실패했습니다.

다운받은 파일 ‘jdk-8u111-windows-x64’ 파일을 실행한다. ‘Next’만 누르면 된다.

이미지를 불러오는데 실패했습니다.

2. 환경변수를 설정한다. (제어판 – 시스템 및 보안 – 시스템 – 고급 시스템 설정)

이미지를 불러오는데 실패했습니다.

이미지를 불러오는데 실패했습니다.

이미지를 불러오는데 실패했습니다.

이미지를 불러오는데 실패했습니다.

이미지를 불러오는데 실패했습니다.

이미지를 불러오는데 실패했습니다.

- Tomcat 설치과정

1. 톰캣 홈페이지에서 원하는 버전을 다운받는다. 필자는 9버전을 다운 받았다. 

이미지를 불러오는데 실패했습니다.

이미지를 불러오는데 실패했습니다.

다운로드 한 ‘apache-tomcat-9.0.0.M13-windows-x64’파일의 압축을 풀면 설치없이 실행된다.

- webgoat 설치

1.  Google에서 ‘webgoat owasp’ 검색

이미지를 불러오는데 실패했습니다.

2. ‘Quick Download’의 ‘Source Code @ WebGoat on Github’

이미지를 불러오는데 실패했습니다.

3. ‘WebGoat’

이미지를 불러오는데 실패했습니다.

4. 새 탭을 열어 주소창에 ‘http://webgoat-war.s3-website-us-east-1.amazonaws.com/’입력

이미지를 불러오는데 실패했습니다.

5. 명령 프롬프트(CMD)를 열어 파일을 저장할 위치로 이동(cd 저장할 주소)

이미지를 불러오는데 실패했습니다.

6. 명령이 오류 없이 잘 실행이 되면 웹 페이지를 하나 열어 ‘http://127.0.0.1:8080/WebGoat’ 주소로 들어간다.

이미지를 불러오는데 실패했습니다.

7. 계정은 아래와 같이 User, Admin 계정으로 로그인할 수 있다.

이미지를 불러오는데 실패했습니다.

이렇게 하면 본격적으로 Webgoat 실행 환경을 구성했다. Webgoat 7.0 버전은 옛날보다 훨씬 깔끔해지고 더욱 많은 취약점을 포함하고 있다. 이렇게 환경구성을 한 후, 이제 남은 일은 취약점만 찾으면 된다. 취약점만…

공부만 하면 ㄷ.. ㅎ

 

 

유성경 yuopboy@grayhash.com