[웹 애플리케이션 보안] 웹 스캐너-arachni에 대해 알아보자

2020. 05. 18 | 블로그

안녕하세요 디딤365입니다.

나날이 발전하며 편리해지는 웹 개발에 비해 그에 걸맞는 보안을 갖춘다는 건 쉽지 않은 일입니다. 그래서 이번 포스팅에선 웹 애플리케이션 보안에 힘을 실어줄 웹 스캐너에 대해 알아보고자 합니다.

웹 스캐너(취약성 스캐너)는 웹과 네트워크에서의 결함을 탐지하는 일을 수행합니다. 이는 웹 개발자가 미처 파악하지 못했거나 소홀했던 보안 구멍을 메꿔줄 수 있는 유용한 도구라고 볼 수 있습니다.

이미 수많은 웹 스캐너 솔루션이 시중에 유통되고 있는데요. 그 중 무료로 이용 가능하면서 준수한 성능을 갖춘 arachni를 소개해보려 합니다.

웹 스캐너 성능 비교 – 유료 웹 스캐너

웹 스캐너 성능 비교 – 무료 웹 스캐너(유료와 비교해도 부족하지 않는 모습)

* 주의사항

허가되지 않은 사이트에서의 웹 스캔은 명백한 불법행위 입니다. 반드시 로컬 환경이나 허가 받은 사이트에서 웹 스캔을 진행하시길 바랍니다. 이 포스팅에선 로컬 환경으로 테스트 하였습니다.

1. 설치 환경

– Windows x86 64bit Win Pro

2. arachni 설치

– https://www.arachni-scanner.com/

공식 홈페이지에 접속하시어 사용하시는 운영체제에 맞게 다운로드를 진행해주시면 됩니다.

다운로드 받은 파일을 실행하게 되면 cmd창이 열리며 설치를 진행합니다. 완료되면 실행한 폴더 위치에 arachni 폴더가 생성됩니다.

3. XAMPP

– www.apachefriends.org

DVWA 환경 구축을 위해 XAMPP를 설치합니다. XAMPP란 Apache, MySql, PHP, Perl 환경 구축을 한 번에 할 수 있도록 도와주는 패키지 프로그램입니다. 설치 설정은 모두 기본값으로 두었으며 Apache, PHP, MySQL, Perl을 제외한 나머지는 체크를 해제하셔도 무방합니다. 프로그램 사용 편의를 위해 설치 폴더는 D\로 변경하였습니다.

XAMPP를 실행하고 Apache, MySql start를 누른 뒤 웹에서 http:127.0.0.1로 접속 하였을 때 데모 사이트가 열리게 된다면 문제 없이 진행이 된 것입니다.

만약 여기까지 하시는 데 문제가 발생한다면 port 문제일 가능성이 있습니다. 가장 보편적으론 IIS 웹서버가 사용 중인 port와 XAMPP가 사용할 port가 겹치는 경우가 있습니다.

4. DVWA 다운로드 및 구동

 http://www.dvwa.co.uk/

이제 DVWA 구동을 위해 소스 파일을 다운받아 줍니다. 다운 받은 zip파일 압축 해제 위치는 다음과 같습니다.

– XAMPP경로\htdocs\dvwa

정상적으로 파일 이동을 완료했다면 이제 각 설정을 변경해야 합니다.

– dvwa/config 폴더의 config.inc.php.dist 파일 이름을 config.inc.php 로 변경한다.

– config.inc.php 에서 ‘db_password’ 값을 ‘(빈 값)’으로 변경한다.

– config.inc.php 에서 ‘recaptcha키’ 값을 변경한다.(키 발급 필요)

– .htaccess 파일의 php버전체크를 수정한다.

– XAMPP php.ini에서 url open 설정 변경

설정 변경 후 본인 아이피/dvwa로 이동했을 때 다음 사이트가 열리면 됩니다.

5. 아라크네 웹 스캐너 구동

이제 준비가 완료됐으니 웹 스캐너를 본격적으로 실행해 볼 시간입니다. 먼저 설치가 완료된 폴더를 편한 위치로 이동시켜 줍니다. 이동이 완료되면 해당 폴더의 bin 폴더로 들어가 arachni_web 배치 파일을 실행합니다.

실행이 완료되면 위와 같은 cmd창에 Listening on tcp://localhost:9292 라는 메세지가 출력되는데 이 후 웹에서 localhost:9292로 접속하게 되면 로그인 창이 뜨게 됩니다.

arachni는 관리자/사용자 로그인을 제공하므로 원하는 계정으로 로그인 하면 됩니다. 계정 정보는 arachni폴더/README.txt에 적혀있습니다.

본격적인 스캔을 수행하기 전 설정을 위해 상단의 메뉴들을 먼저 살펴보겠습니다.

가장 먼저 Profiles 메뉴를 확인하시면 됩니다. arachni에서의 Profile은 웹 스캔을 어떻게 수행할지 미리 작성해놓은 검사지라고 보시면 됩니다. 간단하게는 프로필 정보부터 URL White/Black List, Fuzzing, HTTP, FingerPrinting, Plugin 등 다양한 설정들을 미리 만들어 둘 수 있습니다.

다음으로는 Scan 메뉴를 살펴보겠습니다.

new scan으로 새로운 스캔을 실행하려고 하면 실행하기 전 간단한 입력을 받게 됩니다. 왼쪽 위 빨간 박스는 스캔을 위한 URL을 입력하시면 됩니다. 그 다음으로 적용시킬 Profile을 선택합니다.

중간으로 내려와서 Advanced Options 를 클릭하시게 되면 추가 옵션들이 열리는데, 이때 Scan에 사용 Instance의 갯수를 정할 수 있습니다.

기본으론 1개의 Instance만을 사용하게 되며 소모되는 시간은 이에 반비례합니다. Instance를 할당하면 할수록 그 만큼의 자원을 소모하는데 아래에 보이는 Direct, Remote, Grid로 자원 부하 분담 방식을 변경 할 수 있습니다.

Direct : 로컬만 사용합니다.

Remote : 미리 설정해놓은 Dispatcher 서버를 사용합니다.

Grid : 로드-밸런서를 사용합니다.

각 설정을 끝마치고 Go!를 클릭하시면 드디어 스캔을 실행하게 됩니다.

본격적으로 스캔을 시작하게 되면 instance별 맡은 작업 URL, 탐색한 페이지와 그에 관한 대략적인 정보(요청과 응답의 수, 발견한 페이지 등), 발견된 Issue를 모두 보여줍니다.

이 중 제일 눈 여겨 보아야 할 것은 당연히 Issues 입니다. 발견된 이슈는 취약점 유형, 심각도에 따라 나누어 보여줍니다. 또한 발견된 취약점에 대한 상세 정보와 CWE 정보, 개선 방향 등을 제시해줍니다.

발견된 Issue의 ?를 클릭하게 되면 해당 이슈에 대한 상세 정보 페이지로 이동합니다. Request와 Response, cookie 등 가능한 정보를 모두 표현해주어 개선해야 할 부분을 알기 쉽게 해줍니다.

완료된 검사는 왼쪽 메뉴에서 다운로드하거나, Scan 메뉴에서 동일한 조건으로 새로운 테스트가 가능합니다. 또한 Scan 메뉴에서는 Import 기능도 제공하고 있으니 다운로드 한 결과를 전달받아 동일하게 테스트도 가능합니다.

이상 웹 스캐너 arachni에 대해 알아보았습니다. 추가로 공개 SW 포털에서 게시한 ‘웹 스캐너 8선’을 소개하며 글을 마치도록 하겠습니다. 감사합니다.

웹 스캐너 8선 링크 : https://www.oss.kr/info_techtip/show/6ca3f331-7d1f-4bf2-bce5-badc38ead21c

작성 : R&D센터 유준혁 사원

편집 : 전략사업본부 조항준 주임