WEBSECURIFY WALKTHROUGH 웹 응용프로그램 침투 테스팅 도구 번역 문서 www.boanproject.com 번역 : 임효영 편집 : 조정원 해당 문서는 연구목적으로 진행된 번역 프로젝트입니다. 상업적으로 사용을 하거나, 악의적인 목적에 의한 사용을 할 시 발생하는 법적인 책임은 사용자 자신에게 있음을 경고합니다. 원본 : http://resources.infosecinstitute.com/websecurify-testing-tool/
내용 1. 개요... 2 2. 상세 내용... 2 2.1. 웹시큐리파이(Websecurify)의 주요 특징... 2 2.2. 웹시큐리파이를 이용한 웹 응용프로그램 침투 테스팅... 4 3. 결론... 8 4. 끝맺음... 9
1. 개요 정보보안은 현대의 인터넷 사회에서 매우 중요하다. 그래서 인터넷을 통해 웹 응용 프로그램을 실행하는 동안은 적절한 보호장치가 반드시 필요하다. 사용자의 개인정보보호와 보안성에 대해 전혀 생각하지 않고 취약한 웹 응용프로그램을 테스트 없이 적용하는 바람직하지 못한 회사가 많다. 이것은 사용자 정보를 공격에 취약하게 방치하는 원인이 되어 사이버 범죄자들은 해당 정보를 사용하여 불법적으로 돈을 갈취한다. 해커는 항상 취약점을 검색하여 찾고 있기 때문에 해커가 공격하기로 한 표적지를 회피 할 수는 없다. 인터넷 상에서 업무를 수행하는 모든 회사는 반드시 회사 내의 응용프로그램을 다양한 종류의 보안 취약점으로부터 안전한가 테스트 해야 한다. 다행히도, 취약점 테스트를 위한 많은 테스트 기법과 도구가 있다. 대부분의 회사는 이같은 취약점 테스트를 위해 침투테스트 업체나 윤리적 해커 를 고용한다. 이같은 과정의 비용은 회사의 자원과 응용프로그램에 따라 다르지만, 쉽게 사용할수 있는(easy-to-run) 웹 침투 테스트 도구를 사용한다면 비용을 줄일 수 있다. 웹시큐리파이(Websecurify)는 널리 퍼져있는 웹 응용프로그램 침투 테스트 도구이다. 다른 자동 침투테스트 도구와는 달리, 이 도구는 모든 과정이 자동적이지 않고 프로그램의 취약한 포인트의 가능성만을 보여준다. 그래서 웹시큐리파이를 사용하기로 결정하기 전에 테스트 기술의 매뉴얼이 필요하다. 그럼, 침투테스트에서 더 좋은 결과를 얻기 위해 웹시큐리파이를 도구를 가지고 침투 테스트를 할 때의 주의사항에 대해 알아보자. 어떻게 사용하는지, 그리고 이 2. 상세 내용 2.1. 웹시큐리파이(WEBSECURIFY)의 주요 특징 주요 특징은 다음과 같다. 사용법이 간단하고 쉬워서 사용자에게 친숙한 인터페이스 좋은 테스트와 스캐닝 기술 URL 을 자동적으로 막는 강한 테스팅 엔진 사용가능한 추가기능을 통한 확장성 주 데스크탑과 모바일 플렛폼에서의 사용성 모든 주요 플랫폼에서의 무료 버젼
앞에서 언급했듯이, 웹시큐리파이는 완전 자동 도구가 아니다. 단치 취약점이 존재할 가능성이 있는 웹사이트주소와 매개변수를 찾아 낼 뿐이다. 사용자는 이러한 가능성이 있는 웹 사이트를 검사하고 수동으로 취약점을 알아내는 테스트를 해야 한다. 시간이 다소 걸릴 수 있지만 도구의 성능은 아주 좋다. 어떤 취약점을 막을수 있을까? 다음은 웹시큐리파이가 주로 감지해내는 취약점이다. 크로스 사이트 스크립팅(Cross site scripting) 사이트 요청 위조 (Cross site request forgery) 경로 공개(Path disclosure) 내부 오류(Internal errors) SQL 인젝션(SQL injection) URL 리디렉션(URL redirection) HTTP 응답 분할(HTTP response splitting) 로컬 및 원격 파일 포함(Local and remote file include) 세션 쿠키 문제(Session cookies problem) 정보 공개 문제(Information disclosure problems) 그 밖에 많은 취약점을 탐지 이 보안도구를 통해 대부분의 모든 유명한 취약점을 탐지할 수 있다. SQLI(SQL 인젝션), XSS(크로스 사이트 스크립팅) and CSRF(사이트 요청 위조 공격) 등은 해커들이 악용하는 주요 취약점이다. 다운로드와 설치 (Download and Installation) 우선 웹시큐리파이를 공식 웹 사이트에서 다운로드 받아야 한다. 비록 상업적 상품이지만 오픈소스 버젼을 받아서 무료로 테스트 할 수 있다. 구글 코드를 사용하여 오픈 소스를 다운받을 수 있다. 이 도구는 아래와 같은 모든 주요 데스크탑 및 모바일 플랫폼에서 사용할 수 있다. Windows Mac Linux ios Android Web App
이 친절한 침투 테스트 도구는 또한 구글 크롬과 모질라 파이어 폭스에 사용가능 하다. 웹시큐리파이는 구글 크롬과 모질라 파이어폭스의 어디든지 지원가능하며 브라우져에서 직접 실행하도록 설계된 최초이자 유일한 웹 응용 프로그램 침투 테스트 도구이다. 구글 크롬을 설치하라 Chrome Web Store. 모질라 파이어폭스를 설치하라 Mozilla Add-on website. 필자는 개인적으로 더 나은 성능이 보장된 데스크탑 응용프로그램을 사용하는 것을 추천하지만, 웹 브라우저 확장 기능도 잘 작동된다. 2.2. 웹시큐리파이를 이용한 웹 응용프로그램 침투 테스팅 이 장에서는 나는 웹시큐리파이 윈도우 버젼의 무료 데스크탑 버젼을 알려주고자 한다. 시작을 위해 도구를 실행한다. 그러면 다음과 같은 스크린샷이 나온다. 도구의 주 윈도우는 플랫폼 지원을 보여주는 스플래시 화면이 된다. 웹시큐리파이 스플래쉬 화면 도구의 바깥쪽의 부분을 클릭하여 스플래쉬 화면을 벗어난다. 이제 왼쪽편에 세개의 아이콘과 함께 화면의 상단의 큰 URL 상자를 볼수 있을 것이다. 웹시큐리파이 메인 윈도우
보안 취약점을 테스트하고 싶은 웹 사이트의 주소를 주소박스에 입력한 후 엔터 키를 눌러 테스트를 시작한다. 웹시큐리파이 URL 입력 창 테스트가 시작되면 응용프로그램이 손상될 수 있다는 경고 메시지가 나타난다. 체크박스에 체크하고 테스트를 시작한다. 웹시큐리파이 경고 메시지 이제 응용프로그램의 테스트가 시작되고 진행과정 바를 확인할 수 있다. 웹시큐리파이는 자동적으로 대상 URL 에 따라 프로그램의 범위를 감지하는 강한 테스팅 엔진을 갖고 있다. 만약 대상의 URL 이 http://testingurl/app/app1 이라면 그것은 다음과 같은 규칙을 포함한다. http://testingurl/app/app1* http://testingurl/app/* https://testingurl/app/app1* https://testingurl/app/* 여기서, *는 와일드 카드(wild card) 문자를 나타낸다. 또한 한번에 하나 이상의 웹사이트를 스캔할 수 있지만, 그렇게 되면 그룹화 없이 스캔되는 전체 취약점 URL 을 나열하므로 다른 웹사이트를 모두 필터링 한 후 한 곳에서 작성해야 한다. 그러므로 작업을 좀더 수월하게 하기 위해서 하나씩 스캔하라. 하지만 한번에 하나씩 스캔하는 것을 원하는 지, 아니면 한꺼번에 하고 싶은지 해당 스캔의 목적에 달려있다.
스캔 결과를 보자. 스캔 결과를 보기 위해서 세번째에 있는 그래프 모양의 아이콘을 클릭한다. 클릭 후에 취약점이 발견된 특정 URL 그룹의 리스트를 볼 수 있다. 또한 이 리스트는 위에서부터 가장 위험한 순으로 정렬되어 있다. 예를 들면 SQL 인젝션을 XSS 보다 위에 표시한다. 스캔 결과 스캔이 끝나면 몇몇 취약점을 잠재하고 있는 의심스러운 URL 취약점이 존재하는지 아닌지에 대하여 도구를 사용하지 않고 증명해야 한다. 을 확인하게 된다. 이제 이 필자가 생각하기에 보고결과 중 한가지가 빠졌다. 이 도구에서는 탐지한 취약점 목록은 PDF 등의 다른 문서로 내보내기가 허용되지 않는 다는 것이 바로 그것이다. 하나하나를 복사하거나 모든 취약점을 선택하는 옵션을 사용하여 복사-붙여넣기 기능을 사용할 수 있다. 더 쉽게 하기 위해서는 하나하나를 클릭하여 취약점이 있는지 여부를 확인해야 한다. 만약 취약점이 있다면 보고서 파일에 쓴다. 만약 취약점이 아니라면 해당 취약점을 무시한다. 웹시큐리파이가 찾아낸 취약점을 어떻게 확인하나? 모든 스캐닝이 끝난 뒤에 취약점 리스트를 얻게 된다. 하지만 이 스캐너에 대해 반드시 알아야 할 것이 있다. 때때로 이 도구는 부정 판정(false positive), 즉 모든 형태의 크로스 사이트 요청 위조 취약점을 포함한 취약점을 정상으로 스캔하여 취약점으로 가려내지 못하는 경우가 있다. 2~3 번 정도 작업을 한 뒤에, 왜 이러한 부정 판정( false positive)이 존재하는지 알게 될 것이다. 또한 도구가 잘못된 결과를 정렬한다고 생각하지 않고, 스캐닝의 결과로 나온 취약점을 확인하려고 노력할 것이다. 보통 CSRF 취약점은 취약점으로 인식되지 않으므로 그것을 찾는 것은 정말 어렵다. 따라서 모든 경우를 확인해야 한다. 필자는 많은 사람들이 취약점을 확인하는 것을 실패하고, 취약점이 여전히 존재하는데에도 정상이라고 보고한 도구를 탓하는 것을 보았다. 당신이 프록시 설정을 사용한다면 어떻게 해야 하나
만약 당신이 인터넷 연결을 위해 프록시 설정을 사용한다면, 이 도구에서도 프록시 설정을 해야 한다. 그렇지 않으면 인터넷에 연결하지 못하고 이 도구를 쓸수 없게 된다. 이러한 경우 "Tool"라는 메뉴를 선택하고 "Preferences" 를 선택한다. 여기에 몇가지 설정과 함께 "Preferences" 대화상자가 있다. 일반 탭에서 프록시 설정을 구성할 수 있다. 그 앞의 것을 선택하자. 웹시큐리파이에서 프록시 설정 구성하기 누가 이 도구를 사용해야 하나 필자는 개인적으로 웹시큐리파이를 사용하고, 유명한 웹 응용프로그램에서 XSS 과 SQL 인젝션을 포함한 많은 보안 취약점을 발견했다. (프라이버시의 문제로 인해 해당 웹 사이트 이름은 비공개) 하지만 모든 침투테스트가 도구를 사용하여 수행하는 것은 아니다. 웹시큐리파이는 매뉴얼 테스트 방식에서도 아주 좋은 도구이다. 이 도구가 잘못된 탐지로 취약점이 아닌데도 불구하고 취약점이라고 했다고 해서 시간낭비라고 생각해서는 안된다. 취약점을 탐지하는 데에 있어서 많은 시간과 노력이 필요하다.
사용자가 검증 할 수 없다고 해서 도구가 잘못된 것이라 치부해버려서는 안된다. 하지만 이 도구는 CSRF 공격은 탐지를 잘 하지 못한다. 하지만 다른 취약점의 탐지에 있어서는 이 도구는 여전히 훌륭한 성능을 보인다. 그리고 필자는 침투테스트를 할 때에는 하나 이상의 스캐너를 사용하여, 웹시큐리파이가 더 나은 작동을 하여 다른 인기있는 자동 취약점 스캐너가 탐지하는 취약점보다 더 많은 취약점을 탐지하는 것을 알게 되었다. 만약 당신이 수동 취약점 테스트 방법에 있어 능숙하고 취약점 리스트를 확인학 수 있다면 웹시큐리파이를 한 번 써 봐야 할 것이다. 웹시큐리파이는 왜, 그리고 어디에 잘못된 취약점을 나열할까? 도구가 허위 보고를 하는 배경에는 몇가지 합법적인 이유가 있다. 그리고 만약 그 이유를 알고 있다면 이 도구를 능숙하게 사용할 수 있다. 때때로 XSS 공격을 받는 동안 웹 페이지에서 인젝션 문자열을 발견하지만, 자바스크립트 기능을 수행할때에는 응요프로그램은 사실 자바스크립트를 막아버린다. 만약 매뉴얼 인젝션으로 URL 리디렉션을 테스트 하면, 응용프로그램은 일부 내부 페이지에 기본 리디렉션을 갖는다는 것을 알수 있다. 이러한 상황에서 도구는 실제로 내부 리디렉션인 동안의 URL 리디렉션을 표시한다. 대부분의 폼에서, 해당 폼이 CSRF 에 대한 취약하지 않은데도 불구하고 도구는 CSRF 를 표시한다. 하지만 침투테스터가 그 폼이 충분히 안전하다는 것을 보장하기 위해 검사할 수 있다고 하여 그 목록을 나열한다. 3. 결론 웹시큐리파이는 데스크 탑 및 모바일 플랫폼을 포함하여 거의 모든 플랫폼에서 사용할 수 있는 스캐너이다. 만약 당신의 프랫폼에서 사용할 수 없다면 웹 응용프로그램 버전을 사용할 수 있다. 비록 이 도구가 모든 주요 취약점을 탐지 할 수 있지만, 부정 탐지의 가능성도 있다. 초보자는 취약점을 확인하고 찾는 것이 어려울 것이다. 때때로 내부 리디렉션을 URL 리디렉션으로 나타내기도 한다. 그리고 모든 폼이 CSRF 취약점이 있다고 하기도 한다. 그러므로 이 도구의 무료버전은 전문가 테스팅 도구로는 추천하지 않겠다. 유료버전은 더 성능이 좋고 몇몇 기능은 무료버전에서 사용할 수 없긴 하다. 여전히 몇몇 침투테스터들은 이 도구에 좋은 감정이지만 그들은 이 도구를 특별한 취약점을 탐지하는 데에만 사용한다. 만약 당신이 초보자이거나 적은 시간에 침투테스트를 해 보고 싶다면 웹시큐리파이의 무료버전을 추천한다. 하지만 어려운 취약점을 구분하지 못하는 초보자 용은 아니다.
만약 당신이 취약점 테스팅에 능숙하다면 웹시큐리파이를 사용해 보라. 관련된 컨텐츠 cross-site request forgery results from automated scans false-positives websecurify pass through user information user manual for websecurify tool possible reasons for error while performing penetration test penetration testing tools Infosec institute Web application penetration hacking laptop how to perform penetration testing for desktop application how many companies use web applications fuhs eu bff websecurity walktrough infosec 저자에 관하여 Pavitra Shandkhdhar 공학전공이며 보안 리서처이다. 관심분야는 웹 취약점 침투이다. 그는 웹 사이트에서 취약점을 찾고 개인시간에는 컴퓨터 게임을 하는 것을 좋아한다. 그는 현재 InfoSec Institute 에서 리서처로 활동중이다. 4. 끝맺음 http://resources.infosecinstitute.com/ 사이트에서는 다양한 해킹 공격 시연 문서 및 방어들이 정기적으로 배포되고 있습니다. 입문자들 대상으로 설명한 문서들이 많아서 연구 목적으로 번역을 시작하였습니다. 앞으로도 좋은 컨텐츠에 대해서는 정기적으로 번역을 해서 배포하도록 하겠습니다. 또한 꾸준히 활동하는 멤버들에게 번역출판의 기회를 드리고 있습니다. 번역에 참여해주신 멤버들에게 감사합니다.