파로스(paros)는 웹 보안을 위한 공개용 웹프락시(web proxy) 툴로 잘 알려져 있고 기능 또한 막강하다. 하지만 2006년 이후로 더 이상 업그레이드되지 않아 최근 보안 이슈에 대한 대응이 미흡한 단점이 있다. 이에 파로스 소스를 직접 내려받아 이클립스를 통해 컴파일 하여 기능을 추가해보고자 한다.
본문에서는 단순히 컴파일 방법에 대해서만 다룰 예정이며 소스코드를 수정하여 기능을 추가하는 부분에 대해서는 별도의 포스팅에서 다룰 예정이다.
※ 운영환경
OS : Windows XP 32bit & Windows 7 64bit & Windows 2008 Server R2 64bit
JAVA : JDK 1.6.0_25
Eclipse : eclipse 3.6.2
Paros : paros-3.2.13
1. 파로스 소스 파일을 내려 받아 압축을 푼다.
파로스의 공식 웹사이트(http://www.parosproxy.org) 를 방문하면 2006년을 끝으로 더 이상 업데이트가 되지 않고 있다는 사실을 알 수 있다. 사이트가 죽지 않고 살아 있다는 사실 만으로 감사하자. 소스는 http://sourceforge.net/projects/paros/files/Paros/ 에서 내려 받을 수 있다. 마지막 버전인 3.2.13을 선택한 후 paros-3.2.13-src.zip 내려 받아서 적당한 폴더에 압축을 풀기 바란다.
2. 이클립스를 실행하여 프로젝트를 생성한다.
이클립스에서 File - New - Java Project 를 실행한 다음 Project Name에 "paros" 라고 입력한 후 "Use default location" 의 체크를 해제한 다음 "Browse" 버튼을 클릭한다. 다음으로 압축 해제한 파로스 디렉토리를 선택한 후 확인 버튼을 클릭한다. 필자의 경우 D:\paros 에 paros 소스를 풀었다.
Next 버튼을 누르면 다음과 같이 환경설정 하는 화면이 나오는데 특별한 세팅은 필요 없고 그냥 Finish 버튼을 눌러서 프로젝트를 생성한다.
3. Ant Build 파일을 추가한다.
프로젝트를 생성했으면 컴파일 하기 위해서 Ant 설정파일을 불러와야 한다. Ant는 일종의 자바 컴파일 자동화 도구라고 보면 된다. C언어의 make와 비슷한 역할을 한다. 우측 하단에 Ant 뷰(View) 영역에서 "Add Buildfiles" 아이콘을 클릭한다. (Ant 뷰 영역에서 마우스 우측 버튼을 클릭 후 Add Buildfiles 를 선택해도 된다.) Buildfile Selection 창에서 build.xml을 선택한 후 OK 버튼을 누른다. 다시 Ant 뷰 영역을 살펴보면 parosng 라는 뷰파일이 추가 된 것을 확인 할 수 있다.
만일 이클립스에 Ant 뷰 영역이 존재 하지 않을 경우 당황하지 말고 다음과 같이 Window메뉴에서 Show View - Ant 를 선택하면 우측 하단에 Ant 뷰 영역이 나타난다.
4. 컴파일 한다.
이제 Ant를 사용하여 컴파일을 해보도록 하자. Ant 뷰 영역의 컴파일 버튼을 클릭한다.
과연 컴파일이 한번에 성공할까? 기대를 품고 컴파일 버튼을 눌렀는데 역시 기대를 저버리지 않고(?) 경고 메시지와 함께 컴파일이 중단된다. 필자의 경험으로 비추어 볼 때 이런 현상은 지극히 평범(?)하고 정상(?) 적인 현상이니 전혀 당황하거나 불평불만을 늘어놓을 필요가 없다. 오픈소스를 매뉴얼대로 컴파일해서 한번에 성공한다면 필자라면 주저 없이 당장 로또를 사러 갈 것이다. (대박난 날이니까ㅋ~~) 다시 본론으로 돌아와서 경고메시지 내용을 살펴보면 문자셋(Character Set)에 관련된 오류임을 알 수 있다.
에러 해결 방법은 간단하다. 경고메시지에 나온 HistoryFilterDialog.java 파일을 클릭하거나 좌측 Package Explorer 창의 src의 org.parosproxy.paros.extention.history 영역의 HistoryFilterDialog.java 파일을 더블 클릭하여 해당 파일을 열어보면 두 번째 줄에 이상한 문자가 나오는데 해당 줄만 제거해 주면 된다. 같은 방법으로 LogPanel.java 파일의 두 번째 줄도 제거한다.
이제 다시 컴파일 해보자. 하단의 콘솔창에 에러나 경고 메시지 없이 BUILD SUCCESSFUL 이라고 뜨면 컴파일에 성공한 것이다.
5. 실행
자 이제 모든 작업이 마무리 됐다. 실행만 하면 된다.
탐색기를 열어 빌드 디렉토리로 이동한다. 필자의 경우 D:\paros\build\paros 가 빌드 디렉토리이다. 컴파일이 정상적으로 됐다면 paros.jar 와 startserver.bat 파일이 생성돼 있을 것이다.
이제 심호흡을 한번 크게 하고 startserver.bat 파일을 실행하면 다음과 같이 명령창에서 paros.jar 파일이 실행된다.
방화벽에서 파로스를 허용할것인지 물어보는데 당연히 액세스 허용을 클릭한다.
기대하시라~~ 짜잔~~~!! 드디어 파로스를 만나게 됐다.
※ 64비트 운영체제인 경우
만일 운영체제가 64비트인 경우에는 컴파일까지는 잘 되지만 실행할 때 jdic.dll 부분에서 "Can't load IA 32-bit .dll on a AMD 64-bit platform" 라는 에러메시지가 나면서 paros 초기 로고화면까지만 실행되고 더 이상 진행이 안된다. 이는 자바 실행프로그램을 32비트용으로 사용 해서 생기는 오류이기 때문에 콘솔에서 직접 C:\Windows\SysWOW64\java -jar paros.jar 라고 실행 하거나 startserver.bat 파일의 내용을 수정하여 C:\Windows\SysWOW64\java -jar paros.jar 라고 변경한 후 실행하면 된다.
6. 결론
이상으로 파로스를 소스를 가지고 직접 컴파일 하는 방법에 대해서 알아보았다. 굳이 컴파일 하지 않아도 파로스를 이용하는데 아무 지장이 없기 때문에 일반 사용자라면 소스를 내려받지 말고 이미 컴파일된 바이너리 파일을 내려받아 실행하는 것이 정신건강에 이로울 것이다. 다만 한글화를 한다거나 UI를 개선하고 싶은 사용자들 혹은 약간이나마 기능추가를 해보고 싶은 사용자는 소스를 내려받아 직접 컴파일 해야한다. 본 포스팅은 필자가 직접 32bit와 64bit 운영체제를 번갈아 가면서 컴파일 해 본 후 작성된 것이라 그대로 따라서 하면 큰 무리 없이 컴파일 할 수 있을 것이다.
다음에는 파로스의 간단한 사용법 및 소스를 수정하여 기능을 개선하는 방법에 대해서 포스팅 하도록 하겠다.
'IT > 보안' 카테고리의 다른 글
snort 실행시 Invalid keyword '}' for server configuration 오류 (0) | 2018.02.01 |
---|