이제 웹프로그래밍에서 Secure Coding 은 필수가 되었습니다. 설계 단계에서부터 보안설계가 들어가고, 그에 따라 코딩 시작부터 보안을 고려해서 코딩을 하게 됩니다. 하지만 늘어나는 공수에 대한 산정은 이런 추세를 아직 따라가고 있지를 못하는것 같아서 안타깝습니다.
Burp suite 는 웹 프록시 입니다. 웹브라우저만으로는 통신간의 정보를 상세히 보기가 힘든데, 프록시를 사용하면 클라이언트의 요청정보, 서버의 응답정보를 상세히 확인할 수 있습니다. 또한 서버로 전송되는 정보를 변경하여 취약점 분석에 사용할 수 있습니다.
Burp suite 를 설치하기 위해서는 먼저 JRE 가 설치되어 있어야 합니다. 설치되어 있지 않다면 "윈도우에 JDK 8 설치하기" 를 참고하여 설치를 합니다. Burp suite 프로그램은 다음 사이트에서( https://portswigger.net/burp/download.html) 무료 버전을 다운로드 해서 설치를 합니다. jar 파일로 제공되는 것도 있고, 윈도우 설치파일로 제공되는 것도 있습니다. 윈도우 설치파일로 받아서 설치하겠습니다.
1. 설치파일을 더블클릭하여 설치를 시작합니다. Next 버튼을 누릅니다.
2. 설치위치를 지정합니다. C:\util\BurpSuiteFree 폴더에 설치하겠습니다. Next 버튼을 누릅니다.
3. 시작메뉴 등록등 기본값을 사용합니다. Next 버튼을 누릅니다.
4. 설치 진행중입니다.
5. 설치가 완료 되었습니다. Finish 버튼을 누릅니다.
6. Burp Suite 를 실행합니다. 먼저 라이센스에 동의합니다. Temporary project 선택되어 있습니다. Next 버튼을 누릅니다.
7. 프로젝트 설정을 지정하는데, Use Burp defaults 가 선택되어 있습니다. Start Burp 버튼을 누릅니다.
8. 프로그램이 실행되었습니다. 이상태에서 기본값으로 8080 포트로 proxy 가 실행되고 있습니다. 브라우저의 연결설정을 프록시를 사용하도록 설정하면 Burp Suite 가 중간에서 연결을 중계하게 됩니다.
9. 간단하게 테스트를해보겠습니다. 프록시 탭을 눌러서 하위의 Intercept 탭에서 Intercept is on 버튼을 누릅니다. 그러면 버튼 텍스트가 Intercept is Off 로 바뀝니다. 기본설정이 인터셉트를 하도록 되어 있는데, 기본 규칙에 따라 인터셉트가 되면 요청 또는 응답이 사용자가 어떤 작업을 해줄 때까지 중지되게 됩니다. 보통 데이터를 확인하거나, 조작한 후 Forward 하게 됩니다. 여기서는 간단한 테스트를 위해서 중단없이 데이터를 가로채는것을 확인해보도록 하겠습니다.
10. 다음은 브라우저의 설정입니다. 인터넷 익스플로러를 사용합니다. 도구 -> 인터넷옵션 창을 띄웁니다. 연결탭을 선택하고, 창의 아래쪽의 LAN 설정에서 LAN 설정 버튼을 누릅니다.
11. 프록시 서버 항목에서 사용자 LAN에 프록시 서버 사용을 체크 합니다. 주소는 12.0.0.1, 포트는 8080 을 입력하고 확인 버튼을 누릅니다. 모두 확인버튼을 누르고 브라우서 주소창에 http://offbyone.tistory.com 을 입력합니다. (이 테스트는 단순히 프록시를 경유해서 데이터가 흘러가는것을 확인해보는것 뿐입니다.)
12. 모든게 제대로 설정이 되었다면, Burp Suite 의 Proxy 탭의 Http history 에 요청 정보가 보입니다.
추가로 몇가지 설정에 대해 알아보겠습니다.
- 위의 테스트에서 Intercept is Off 상태로 테스트 해 봤습니다. 버퍼슈트에서 인터셉트 설정은 요청에 대한 설정과 서버에서의 응답에 대한 설정을 할 수 있습니다.
- Proxy 탭을 선택하고, 하위의 Options 탭을 선택합니다. 처음 나오는 Porxy Listener 설정은 앞에서 보았고, 그 아래에 Intercept Client Requests 설정이 나옵니다. 여기에 요청시 자동으로 인터셉트할 규칙을 지정하게 되어 있습니다. Intercept request bases on the following rules 가 기본적으로 체크되어 있으므로 이 룰이 기본적용 됩니다. 그래서 처음 실행시 Intercept is Off 하여 인터셉트를 끄고 테스트 한것 이었습니다.
그 아래에는 Intercept Server Responses 설정이 있습니다. 서버에서의 응답을 기반으로 자동으로 인터셉트 할 수 있습니다. 이것은 기본값이 Intercept responses bases on the following urles: 가 체크가 되어 있지 않으므로 인터셉트 하지 않는 것입니다.
- Target 탭의 하위 탭인 Scope 탭에서 버퍼 슈트 전체에 적용되는 target scope을 지정할 수 있습니다. 특정 프로토콜(HTTP or HTTPS) 만을 사용하든가 특정 도메인 내에서만 탐색을 하던가 하는 규칙을 포함 규칙(Include in scope) 과 제외 규칙 (Exclude from scope)으로
지정할 수 있습니다.
- Target 탭의 하위 탭인 Site map 탭에서 상단의 Filter 부분을 클릭하면 MIME type, 상태코드 파일 확장자 등으로 필터링하여 볼 수 있습니다.
우측 하단의 검색어 입력란에 검색하고자 하는 단어를 입력하고, 상단의 URL을 선택하고 중간의 response 를 선택하면 서버측 응답에서 검색하고자하는 단어가 하이라이트되어 표시됩니다.
- Target 탭의 하위 탭인 Site map 탭에서 좌측 사이트 리스트에서 사이트에 마우스 오른쪽 키를 누르고 Spider this host 를 선택하면 자동으로 사이트를 탐색하여 URL 을 수집합니다.
이것으로 웹 프록시인 Burp Suite 를 설치하고 동작을 테스트 해보았습니다. 다음에는 앞에서 설치한 스프링 프레임웍 예제를 간단하게 수정해서 매개변수를 조작해서 보내는 방법을 실습해보겠습니다. 보안관련 테스트를 허가받지 않은 사이트에 대해 수행해서는 절대 안되겠습니다.
'프로그래밍 > 네트워크, 보안' 카테고리의 다른 글
유선 공유기에 무선 공유기 추가하기 (14) | 2018.04.18 |
---|---|
Tomcat HTTP 메소드 제한하기 (0) | 2018.04.17 |
리스크웨어(Riskware)가 무엇인가? (0) | 2018.04.10 |
칼리 리눅스 설치 - VirtualBox에 설치하기 및 한글 입력 (4) | 2018.04.03 |
Burp suite 사용하기 - Repeater 사용 및 매개변수 조작 실습 (4) | 2018.04.01 |