2016년 9월 8일 목요일

[Web] OWASP ZAP(Zed Attack Proxy) 점검


홈페이지 취약점 점검 대상 URL이 정해지면 OWASP-ZAP을 실행한다.


http://demo.testfire.net

취약점 점검은 IBM에서 취약점 점검툴의 테스트를 위해 제공해주는 사이트를 이용할 것이다.


공격대상 URL에 취약점 점검을 진행할 URL 을 입력한 후, 공격을 클릭한다.


Spider의 URL 수집 기능이 오나료되면 OWASP-ZAP은 자동으로 "Active Scan" 기능을 수행한다. 이 단계에서는 수집한 URL에 대하여 경로 조작(Path Traversal), 원격 OS 명령 삽입(Remote OS Command Injection), 시스템 파일 다운로드, XSS(Cross-site Script), SQL문 삽입(SQL Injection) 등의 다양한 취약점을 점검한다.


취약점 점검이 완료되면 위와 같은 결과를 확인할 수 있다.


Alerts 탭에서 OWASP-ZAP이 발견한 취약점들이 항목별로 나열된다. 


나열된 취약점에 대해 자세한 정보를 확인할 수 있다.

[출처]

http://www.memozee.com/download.file.php?t=2&d=3447&o=2




[Web] OWASP ZAP(Zed Attack Proxy) 구성


[주메뉴(Top level Menu)]



주메뉴의 각 기능

  • File : OWASP-ZAP의 세션 열기, 저장 등의 조정 및 세션값 설정
  • Edit : 검색 기능 제공과 관리하고 있는 세션 추적
  • View : OWASP-ZAP을 구성하고 있는 tab의 보여주기 조정
  • Analysis menu : 스캔 정책을 조정
  • Report : 파일 형태별 결과보고서 출력 관련 조정
  • Tools menu : OWASP-ZAP 도구와 일반적인 옵션 조절
  • Online menu : 인터넷에 있는 관련자료 링크
  • Help menu : 도움말  


[툴바(Top level Toolbar)]



툴바의 각 기능

  • mode : 스캔 모드 설정
  • New Session : 신규 세션 설정
  • Open Session : 저장되어 있는 세션 읽기
  • Persist Session : 점검 중인 세션 저장
  • Snapshot Session : 현재 진행되고 있는 세션 저장
  • Session Properties : 세션 환경 값 설정
  • Options : OWASP-ZAP의 환경 값 설정
  • Show tab names and icons : 각 창에 있는 tab의 이름 및 아이콘 보이기/숨기기
  • Expand Sites Tab : 트리창(Tree Window)의 크기 확대
  • Expand Information Tabs : 정보창 (Information Window)의 크기 확대
  • Expand Full : 정보창에서 선택된 tab 크기 확장
  • Request and Response tabs side by side : 작업창(Workspace Window)에 있는 Request tab과 Response tab을 나란히 배치
  • Request show above Response : 작업창(Workspace Window)에 있는 Request panel을 Response panel 상하로 배치
  • Request and Response panels side by side : 작업창(Workspace Window)에 있는 Request panel을 Response panel 좌우로 배치
  • Set/Unset break an all requests : proxy 기능 활용 시 요청값(request)에 대한 trap 설정 및 해제
  • Set /Unset break on all responses : proxy 기능 활용 시 반환값(response)에 대한 trap 설정 및 해제
  • Step : proxy 기능 활용 시 trap이 설정된 request나 response에 대하여 순차적으로 실행
  • Continue : proxy 기능 활용 시 trap이 설정된 request나 response에 대하여 끝까지 모두 실행
  • Drop : proxy 기능 활용 시 trap이 설정된 request나 response에 대하여 실행시키지 않고 종료
  • Add a custom HTTP break point : 특정 URL에 대한 break point 설정하는 대화창 활성화
  • Force User Mode On / Off : 사용자 모드 켜기 / 끄기 

[바닥글(Footer)]

발견된 취약점 개수 및 현재 수행하고 있는 점검 개수에 대한 정보 출력


취약점 점검결과 (위험도 상, 중, 하 및 단순정보)에 대한 개수

[트리창(Tree Window)]

URL에 대한 정보를 트리형태로 출력하는 Sites tab

Site tab에서 방문했던 특정 URL을 선택한 후 마우스 오른쪽 버튼을 클릭하면 URL을 대상으로 취약점 점검 URL을 대상으로 취약점 관리 등을 수행할 수 있는 창이 열린다.


[작업창(Workspace Window)]


작업창의 각 기능
  • 빠른시작 : 취약점 점검을 쉽게 수행할 수 있도록 공격대상 URL을 입력하여 점검 시작 및 중지를  할 수 있음
  • Request Tab : 취약점 점검 또는 Proxy 기능에서 사용자 브라우저에서 점검 대상 홈페이지로 송신하는 요청값(Request)를 보임
  • Response Tab : 취약점 점검 또는 Proxy 기능에서 점검 대상 홈페이지로부터 수신되는 반환값(Responses)를 보임
  • Break Tab : 지정된 break point에 대한 request와 response 변경

[정보창(Information Window)]


정보창의 각 기능

  • Spider Tab : 홈페이지 취약점 점검 시 취약점 점검을 수행할 대상 URL에 대한 스캐닝 화면 출력 및 조정
  • Active Scan Tab : 홈페이지 취약점 점검을 수행하는 화면 출력 및 조정
  • Alerts Tab : 홈페이지 취약점 점검결과 발견된 취약점을 위험도 순으로 트리형태로 출력하며, 각 취약점에 대한 상세한 정보 제공
  • History Tab : 취약점 점검 및 Proxy 기능 활용 시 홈페이지에 송신한 요청값(Request)를 순차적으로 출력하고 필터링 기능 제공
  • Search Tab : OWASP-ZAP에서 수행된 URL, Request, Response 등 모든 결과에 대한 검색 기능
  • Break points Tab : 사용자가 설정한 중단점(Break point) 출력
  • Fuzzer Tab : Fuzzing 실행 시 결과값 출력
  • Params Tab : 홈페이지 점검 시 사용된 매개변수값 출력
  • Output Tab : 다양한 정보 메시지 출력

[출처]

http://www.memozee.com/download.file.php?t=2&d=3447&o=2

2016년 9월 7일 수요일

[Web] OWASP ZAP(Zed Attack Proxy) install

OWASP ZAP은 개발 단계에서 개발자가 손쉽게 보안 취약점을 발견하고 조치할 수 있도록 하는 오픈소스 제품이다.

오픈소스 프로젝트인 Paros Proxy라는 웹 어플리케이션 스캐너를 기반으로 다양한 기능을 추가하고 개선한 제품이다.

OWASP ZAP이 자동으로 진단 검사 할 수 있는 취약점은 접근할 수 없는 부분을 제외한 웹어플리케이션의 주요 취약점을 포괄적으로 확인할 수 있다.

OWASP ZAP은 Proxy 기반의 스캐너

OWASP ZAP의 주요 기능

  1. 프록시
    - 브라우저와 어플리케이션 간의 HTTP 통신 내용을 저장
    - 보안 진단을 위한 요청을 보내면 응답 데이터를 시각화
  2. 스파이더
    - 전체 웹 어플리케이션에 대한 정보 수집
    - 공개해서는 안되는 파일이나 디렉토리 유무 확인
  3. 정적 / 동적 검색
    - 다양한 취약점 자동 감지
  4. Fuzzer
    - 기본적인 정적/동적 스캔으로는 검출이 어려운 취약점을 수동으로 검색
  5. 애드온 Script
    - 어플리케이션 고유의 기능에 대응할 수 있는 진단 도구 작성
  6. ZAP API
    - 스파이더와 검색 등 다양한 기능을 외부에서 조작하여 진단 작업을 완벽하게 자동화

OWASP ZAP Install

아래 링크에 접속한다.

https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project


Downlaod ZAP을 클릭한다.


설치할 운영체제 환경을 선택한다.


Next 클릭


동의 후 Next 클릭


Next 클릭


Next 클릭


Next 클릭


Install 클릭


Finish 클릭


Java가 설치 되지 않을 경우 위와 같은 창이 나타난다. 


무료 자바 다운로드를 클릭한다.


동의 및 무료 다운로드 시작을 클릭한다.


설치 클릭


Java 설치가 완료되었다. OWASP ZAP 을 실행한다.



[출처]

http://opennaru.tistory.com/124
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project

2016년 9월 5일 월요일

[Network Management System] The Dude install

NMS(Network Management System)는 네트워크를 관리하기 위한 도구로, 보안관제에서 많이 사용되고 있다. 간단하게 설명하면 NMS는 등록된 모든 시스템에 대해 주기적으로 Ping 이나 SNMP를 체크 하여 상태를 모니터링한다.

The Dude는 무료로 쉽게 설치하고 테스트 할 수 있는 프로그램이다.

The Dude install


아래 링크에 접속한다.

the-dude.en.lo4d.com


다운로드를 클릭한다.


File Mirror #1을 클릭한여 설치파일을 다운 받는다.


I Agree 클릭


Next 클릭


Install 클릭


Close 클릭

설치가 완료되면 언어를 선택하는 화면이 나오며, 아래와 설치된 화면을 확인할 수 있다.



[Web] CSRF 공격 가능 여부

1. 개요


1.1 CSRF(Cross Site Request Forgery)이란?


- 공격자가 작성해 놓은 악성스크립트 [사이트에서 제공하는 기능을 피해자의 웹 브라우저에서 요청] 을 통해서 일어나는 악의적인 공격방식이다.
- 피해자는 공격자가 게시한 글을 읽었을 때 악성스크립트에 의한 요청이 서버로 보내지게 되고 서버는 피해자의 권한 내에서 해당 악성스크립트 요청을 처리하게 된다.

1.2 CSRF(Cross Site Request Forgery) 발생 원인

- 개별 링크와 폼이 사용자 별로 예측 가능한 토큰을 사용할 때 발생 한다. 예측 불가능한 토큰이 있다면 공격자는 요청 메시지를 변조 할 수 없지만, 예측 가능한 토큰이 있다면 공격자는 요청 메시지를 변조할 수 있다.
- 인증이나 세션, 쿠키 등 모든 웹 사이트에서 인증된 사용자가 보내는 데이터는 정상적인 경로를 통한 파라미터 요청으로 판단한다. 즉,  정상적인 요청과 비 정상적인 요청을 구분하지 못한다.

1.3 CSRF(Cross Site Request Forgery)와 XXS(Cross Site Scripting) 차이

- XSS: XSS는 웹 브라우저에 악성 스크립트를 삽입해 데이터를 수집하거나 브라우저의 특정 동작을 유발하며, 악성스크립트가 사용자 클라이언트에서 실행 된다.
- CSRF: CSRF는 인증 완료 된 사용자의 권한으로 악성 스크립트를 서버에 요청하여 공격자가 원하는 명령을 사이트로 전송한다.

1.4 CSRF(Cross Site Request Forgery) 공격 과정


  1. 공격자는 CSRF 스크립트가 포함된 게시물을 등록한다.
  2. 사용자는 CSRF 스크립트가 포함된 페이지의 게시물 열람을 요청한다.
  3. 게시물을 읽은 사용자의 권한으로 공격자가 원하는 요청이 발생한다.
  4. 공격자가 원하는 CSRF 스크립트 결과가 발생한다.

2. 시나리오


  1. 공격자는 게시판에 관리자가 관심을 가질 수 있는 제목으로 CSRF 스크립트가 포함된 게시물을 등록한다.
  2. 관리자는 확인이 필요한 게시물로 파악하여, CSRF 스크립트가 포함된 게시물을 확인한다.
  3. 게시물을 읽은 관리자는 CSRF 스크립트가 포함된 것을 알지 못한 채 게시물을 확인한다. 하지만, 관리자의 권한으로 공격자가 원하는 CSRF 스크립트 요청이 발생한다.
  4. 공격자가 원하는 CSRF 스크립트 결과가 발생하여, 관리자 및 사용자의 피해가 발생한다.

3. 실제 공격


웹 어플리케이션

1. XSS 공격 테스트를 통해 CSRF 공격 가능성을 확인



웹 사이트의 게시판에 스크립트를 삽입하여 사용자가 해당 글을 클릭하면 스크립트가 실행 되는지 확인한다.



XSS 공격 테스트를 통해 CSRF 공격 가능성을 확인 했다.

2. 프록시를 통해 웹 사이트의 게시물을 등록하는 스크립트 확인


프록시를 통해 웹 사이트의 게시물을 등록한다.



파로스 툴을 이용하여 'board/board_insert.asp' 에서 POST 방식으로 등록된 것을 확인한다.




게시물 등록 시 필요한 데이터 변수명 들을 확인한다.

3. CSRF 스크립트가 포함된 게시물 등록


<body onload="document.form.submit();">
<form METHOD ="POST" action="http://192.168.137.143:81/board/board_insert.asp" name="form" enctype="multipart/form-data">
  <input type=hidden name="cmd2" value="write">
  <input type=hidden name=info_idx value="4">
  <input type=hidden name="p_from" value="">
  <input type=hidden name="re" value="">
  <input type=hidden name="sr" value="">
  <input type=hidden name="k" value="">
  <input type=hidden name="w" value="">
  <input type=hidden name="page" value="1">
  <input type=hidden name="gubun" value="qna">
  <input type=hidden name="b_com" value="yes">
  <input type=hidden name="info_title" value="제목 입력">
  <input type=hidden name="info_name" value='작성자 입력'>
  <input type=hidden name="info_pwd" value="비밀번호 입력">
  <input type=hidden name="info_content" value="게시물 내용 입력">
</form>


파로스 툴을 이용하여 확인한 결과를 이용하여 위와 같은 스크립트가 포함된 게시물을 등록한다. 관리자는 확인이 필요한 게시물로 파악하여 게시물을 확인한다.


관리자는 CSRF 스크립트가 포함된 게시물을 확인시 위와 같이 관리자의 권한으로 게시물이 등록 되게 된다.


관리자의 권한으로 공격자가 원하는 CSRF 스크립트 요청이 발생한다.


4. 대응방안


  1. 서버에서 쿠키 이외의 다른 파라미터 값으로 추가 인증을 처리
    - 중요 action을 처리 할 때, 추가 인증 수단을 사용한다면 공격은 불가능하다.
  2. XSS 스크립트의 실행 방지
    - XSS 취약점이 존재하지 않더라도 스크립트를 실행시킬 수 있기 때문에 XSS만 막았다고 해서 CSRF를 막았다고는 할 수는 없다.
  3.  값이 매번 바뀌는 one TIME 값 사용
    - 인증 값을 알아내는것이 힘들고, 사용자 마다 매번 인증 값이 바뀐다. 쿠키가 아닌 다른 형태의 매번 바뀌는 인증 값을 사용한다.
  4. IPS나 웹 방화벽을 사용
    - CSRF 스크립트는 정상적인 HTML 스크립트 이기 때문에 보안 솔루션으로는 방어를 할 수 없고 중요 공격 로직을 파악하고 분석하여 안전한 웹 어플리케이션을 개발한다.

[출처]

http://blog.naver.com/limjongmin15/40161766681
http://blog.naver.com/axlovelee/130169545811
http://tm-csc.tistory.com/entry/7-ebHacking%EC%9B%B9%ED%95%B4%ED%82%B9-CSRF
http://cafe.naver.com/bwys/545
http://blog.daum.net/sysnet924/277

2016년 9월 4일 일요일

[Web] 웹 기반 공격 모니터링 분산 시스템 - Honerix

Honerix는 웹 기반의 공격을 저장하고 모니터링 하기 위한 분산 시스템이다. 취약한 응용프로그램을 시물레이션 하여 보여 주고 있다. 원하는 사례들을 검색하고 그 공격이 어떤 형태로 진행했는지 한눈에  볼 수 있기 때문에 학습하는데 도움이 된다.

https://www.honerix.com

위 사이트에 접속하면 아래와 같은 화면이 나타난다.



'wordpress'와 'bash' 단어를 입력하였다.


워드프레스 기반에서 제일 많은 공격이 되는 계정 무작위 대입 공격(brute Force)에 대한 사례를 볼 수 있다. 


Bash의 경우 Shellshock Exploit 공격을 볼 수 있다.

이뿐만 아니라 다양한 공격 사례들을 볼 수 있다. 학습할 때 패턴 검색이 어렵다면 이를 충분히 활용해도 좋을거 같다.

[출처]

https://brunch.co.kr/@c4u/133

[보안이슈] POS시스템 보안취약점 대응 필요

POS시스템 보안취약점 대응 필요


국내외 POS(Point of Sales, 판매시점 관리 시스템)과 관련된 보안 사고가 꾸준히 발생하고 있다. 신규 POS시스템 설치 가맹점에 대해서는 개정된 정보보호 기술기준을 만족하도록 규정하고 있으나, 아직 대부분의 가맹점은 보안에 취약한 기존 단말기를 사용하고 있는 실정이다.

출처 - http://www.starmountshare.com/retail-cross-channel/what-does-the-future-hold-for-retail-pos

POS의 정의 및 구조


  • POS란 현금을 관리하는 금전등록기와 컴퓨터 단말기의 기능을 결합한 시스템이며, 매상금액을 정산해 줄 뿐만 아니라 동시에 소매경영에 필요한 각종정보와 자료를 수집 처리해주는 시스템이다.
  • 물리적으로 POS단말기 본체와 카드리더기로 구성되어 카드리더기는 유선으로 연결되거나 POS단말기 본체에 내장될 수 있으며, 대부분의 POS 단말기 본체는 권리권한을 가진 관리자에 의해서 관리, 운영된다.


POS시스템 관련 법률


  • 여신금융협회의 "신용카드 단말기 정보보호 기술기준(2015.04.29)"에서  명시한 기준을 충족하여야하며, 법시행일자(2015.07.21) 이후 3년 동안 유예기간이 있다.
  • 여신전문금융업법
    -제27조의4(신용카드 단말기의 등록)
    ① 부가통신업자는 자신이 전기통신서비스를 제공하는 신용카드 단말기를 금융위원회에 등록하여야 한다. 다만, 부가통신업자가 전기통신서비스를 제공하지 아니하는 신용카드 단말기의 경우에는 신용카드가맹점이 금융위원회에 등록하여야한다.
    ② 등록하려는 신용카드 단말기는 신용카드회원의 정보보호를 위하여 금융위원회가 정하는 기술기준에 적합하여야 한다.
    ③신용카드 단말기의 등록요건 및 등록절차 등에 필요한 사항은 대통령령으로 정한다.
  • [부칙]
    - 제4조(신용카드 단말기의 등록에 관한 경과조치) 이 법 시행 당시 신용카드 거래와 관련하여 전기통신서비스를 제공하는 신용카드 단말기는 제27조의4의 개정규정에 따른 등록을 한 것으로 본다. 다만, 이법 시행 후 3년 이내에 제27조의4의 개정규정에 따라 금융위원회에 등록하여야한다.
  • 여신전문금융업법 시행령
    - 제9조의9(신용카드 단말기의 등록절차)
    ① 법 제 27조의4제1항에 따라 신용카드 단말기를 등록하려는자는 금융위원회가 정하여 고시하는 등록신청서를 금융위원회에 제출하여야한다.
    ② 신용카드 단말기의 등록신청의 방법 절차 등에 관한 세부사항은 금융위원회가 정하여 고시한다.

POS시스템 보안 위협


  • 중요정보 붑법접근
    - 메모리 해킹 등의 공격 기법을 사용하여 중요정보를 유출할 수 있는 보안 위협
  • 암호키 유출
    - 중요정보 암호화 연산을 위해 사용되는 암호키가 유출되어 중요정보가 유출될 수 있는 보안위협
  • 전송데이터 유출
    - 신용카드 단말기 구성요소간 또는 신용카드 단말기와 VAN 서버간 정송되는 중요정보를 무단으로 노출, 변경시킬 수 있는 보안위협
  • 보안기기능 우회
    - 악성코드를 통해 신용카드 단말기 보안기능과 관련된 실행파일 또는 설정파일 등이 변조되어 보안기능을 우회할 수 있는 보안위협

POS시스템 보안사고 사례

  • 목포 커피전문점 POS 단말기 카드정보 유출
  • 미국 대형 유통마드 Target 카드 정보 유출


향후 대응방안


  • IC카드로의 교체
  • 악성코드 등 보안취약점 유입 방지
  • 불필요한 서비스 및 이용 제한
  • 운영체제 업그레이드 및 지속적인 보안 패치

[출처]

http://blog.naver.com/PostView.nhn?blogId=skinfosec2000&logNo=220658765709