[sphinx-doc] 외부 링크 새 탭(또는 창)에서 열기

Nowaday/유용한 정보 2015. 3. 27. 08:53 Posted by 알 수 없는 사용자


$ sudo vi /usr/local/lib/python2.7/dist-packages/sphinx/writers/html.py


Line 200~

    # overwritten
    def visit_reference(self, node):
        atts = {'class': 'reference'}
   +    isExternal = False
        if node.get('internal') or 'refuri' not in node:
            atts['class'] += ' internal'
        else:
            atts['class'] += ' external'
   +        isExternal = True
        if 'refuri' in node:
            atts['href'] = node['refuri']
   +        if isExternal:
   +            atts['target'] = '"_blank"'
            if self.settings.cloak_email_addresses and \
               atts['href'].startswith('mailto:'):
                atts['href'] = self.cloak_mailto(atts['href'])
                self.in_mailto = 1


AND

[Adieu] SK 하이닉스 2G DDR3 메모리

Nowaday 2013. 7. 9. 21:28 Posted by 알 수 없는 사용자


맥북 프로에 들어있던 메모리 판매합니다.


맥북 구입일은 2011년 6월이구요.


2GB / DDR3 입니다. :)


--------

안 팔려서 나눔했습니다.ㅋ

2013.07.13.



AND


1. 취약점 분석, 실제 데이터 흐름 분석 및 시각화


CanSecWest 2012에서 악성코드 샘플 및 PoC 파일 분석을 위해 제안한 기술입니다. 여기서는 취약점 분석을 위해 사용될 수 있는 많은 방법들 중에서 DBI(Dynamic Binary Instrumentation)와 데이터 흐름 분석을 사용하였습니다. 이를 시각화하여 분석을 쉽고 빠르게 할 수 있도록 도와주고 있습니다.


Control flow differential analysis result



2. SDhash와 Gephi를 이용한 악성코드 클러스터링 시각화 도구


악성코드 샘플들 간의 유사성을 알아내기 위해 SDhash를 이용하여 클러스터링을 수행하고, 이를 시각화하여 보여줍니다.


An example cluster excerpt from the graph produced by converting SDhash scored hashes to GDF


3. 악성코드 API 호출 및 심볼 정보 시각화 도구


악성코드에서 사용되는 API 호출과 바이너리에 포함된 심볼 정보를 시각화하여 보여주는 도구입니다. 파이썬으로 제작되었으며 코드가 공개되어 있습니다.



AND

문서 기록

  2013 6 10 월요일 12:24 AM 작성 완료.

 

문서 내용

  디스어셈블 라이브러리 정리

 

문서내용

 

Distorm64

사용용도

  16 비트, 32 비트, 64 비트 - x86, AMD64 명령어 집합(instruction set) 사용하는 코드 디스어셈블

 

제작언어

  C 언어

 

사용약관

  이중 라이센스(Dual Licnse) - GPL v3 상용 라이센스(Commercial License)

 

주의사항

  GPL 라이브러리 파일과, 상용 라이센스용 라이브러리가 다르다.

  GPL이기 때문에 파이프나 소켓을 통해 라이브러리를 사용하지 않는 GPL 따라야한다.

  (동적 링킹이든, 정적 링킹이든 프로세스의 주소 영역에서 사용되는 것은 GPL 의해

   배포된 프로그램으로부터 파생된 프로그램으로 간주한다.)

  Python에서 사용 가능

 

관련 사이트

  홈페이지 : http://www.ragestorm.net/distorm/

  프로젝트(GPL v3) 페이지 : https://code.google.com/p/distorm/

 

개인적인 생각

  volatility에서  라이브러리를 사용하는 코드를 봤는데 사용법이 쉽게 느껴졌다.

  거기다 문서화 작업도 되어 있으니 프로그램을 오픈소스로 만들 생각이면 가장 좋다고 생각되는 

  라이브러리이다.

 

Udis86

사용용도

  16비트 ,32 비트, 64 비트 명령어 집합(instruction set) 사용하는 코드 디스어셈블

 

제작언어

  C언어

 

사용약관

  2-clause license(FreeBSD License)

 

주의사항

  -

 

관련 사이트

  홈페이지 : http://udis86.sourceforge.net/

  프로젝트 페이지 : https://github.com/vmt/udis86

 

개인적인 생각

  문서화도 괜찮고, 라이센스도 간편하고 64비트 디스어셈블도 지원하고 좋네!

 

BeaEngine

사용용도

  IA-32, Intel64 명령어 집합(instruction set) 사용하는 코드 디스어셈블

 

제작언어

  C 언어(Windows API 미사용. 순수 C로만 작성)

 

사용약관

  LGPL v3.0

 

주의사항

  LGPL 사용 약관 참조할 .

  (웹상에서 찾을 있는 LGPL 대한 설명이 많이 복잡하다.)

 

관련 사이트

  홈페이지 : http://beatrix2004.free.fr/BeaEngine/index1.php

 

개인적인 생각

  MASM32, AT&T, NASM 3가지 구문(syntex)으로 디스어셈블이 가능하므로 기능이 필요할  

  사용하면 좋겠다.

  관련 문서 상태는 별로다.

  라이센스에 관해선 말이 있는데, 상에서 떠도는 의견들이 많이 상반되어 있어 모르겠다. -_-;;

  LGPL 라이센스가 2007년에 3.0 버전이 새로 나와 이전 버전과 의견이 분분한건가?

 

libdasm

사용용도

  x86 명령어 집합(instruction set) 사용하는 코드 디스어셈블

 

제작언어

  C언어(순수 C로만 작성된거 같음)

 

사용약관

  3-clause license(New BSD License)

 

주의사항

  32bit 명령어 셋의 디스어셈블만 지원한다.

 

관련 사이트

  제작자 블로그 : http://corkami.blogspot.kr/search/label/libdasm

  프로젝트 페이지 : https://code.google.com/p/libdasm/

 

개인적인 생각

  2006년까지 개발이 진행되어온 라이브러리이기 때문에 64bit 디스어셈블을 지원안하는건가?

  New BSD 저작권과 보증책임이 없다는 점만 명시하면 된다.

 

libdisam

사용용도

  x86 명령어 집합(instruction set) 사용하는 코드 디스어셈블

 

제작언어

  C언어(리눅스 기반)

  Perl(C언어로 작성된 라이브러리를 이용하는거 같음)

 

사용약관

  명시되어있지 않음.

 

주의사항

  최신 배포 년도는 2008.

 

관련 사이트

  홈페이지 : http://bastard.sourceforge.net/libdisasm.html

  프로젝트 페이지 : http://sourceforge.net/projects/bastard/files/libdisasm/

 

개인적인 생각

  사용법이 복잡해보이네.. 문서화도 별로고..

  리눅스에서만 사용 가능하네.. 리눅스 라이브러리를 DLL 변경하는 프로젝트도 있다던데

  다른 좋은 디스어셈블러가 없는 이상 윈도우에서 이걸 사용할 필요는 없을 하다.

 

Hacker Disassembler Engine

사용용도

  x86 명령어 집합(instruction set) 사용하는 코드 디스어셈블

 

제작언어

  ?

 

사용약관

  ?

 

주의사항

  정식 배포 사이트가 없는 같음.(개발자의 홈페이지 에러)

 

관련 사이트

  홈페이지 : http://vx.netlux.org/index.html?id=eh04

  다운로드http://forum.tuts4you.com/topic/9426-hacker-disassembler-engine-source-code/

 

개인적인 생각

  .. 프로그램일지도? 홈페이지가 접속이 안되니 정확한 내용을 수가 없다.

 

libdiassemble

사용용도

  x86 명령어 집합(instruction set) 사용하는 코드 디스어셈블
 

제작언어

  파이썬(Python)

 

사용약관

  GPL v2.1

 

주의사항

  파이썬 라이브러리.

 

관련 사이트

  다운로드 : http://www.immunitysec.com/resources-freesoftware.shtml

 

개인적인 생각

  GPL이라 이거 사용할 바에 distorm 사용하는게 좋겠다.

 

결과 정리

  윈도우에서 디스어셈블 라이브러리를 사용해야할 때에는

  distorm64(GPL), Udis86(FreeBSD), BeeEngine(LGPL) 셋 중에 사용하자.


참고 문헌

라이브러리 홈페이지 프로젝트 페이지(본문 참고).


이철남, 권순선, 최민석, 이진태

오픈소스SW 라이선스 가이드, 정보통신부, 2007 

URL : http://www.olis.or.kr/ossw/license/open_source_guide.pdf.


http://www.jopenbusiness.com/mediawiki/index.php/GNU_Lesser_General_Public_License_3.0.

http://en.wikipedia.org/wiki/BSD_licenses.


'Programming > C/C++' 카테고리의 다른 글

[C++] String to Hex 변환  (0) 2012.10.12
메모리 내의 문자열 검색  (2) 2010.08.25
AND

문서 기록

2013.04.10 00:41 AM 1 문서 작성 시작

2013.04.10 03:52 AM 1 문서 작성 완료

 

문서 개요

행동 익명화와 익명화에 이용되는 프록시 서버에 대한 개념을 배운 윈도우에서 SSH 터널을 이용하여 프록시를 연결하는 방법을 다룬다.

 

문서 내용

 

행동 익명화

나는 악성 코드를 배포한 공격자라고 하자. 내가 배포한 악성 코드는 금융 기관의 PC들을 공격했고 악성 코드를 배포한 사이트를 수사관들이 살펴보기 시작했다. 그리고 지금 나의 눈에는 특정 기관으로 생각되는 IP들이 사이트에 접속하는 것을 보게 되었다. 나는 지금 수사를 방해하기 위해 어떤 행동을 해야 하는가? 나는 이들을 가지고 놀고 싶다.

 

여러분이 위의 상황이면 어떻게 것인가? 공격자는 특정 IP들에 대해 공격 전략을 바꿔 수사망을 흔들어 놓을 수도 있으며, 웹사이트 자체를 은폐하여 조사를 방해할 수도 있다. 더욱이 IP들에 대해 DDOS 공격을 가해 보복할 수도 있다.

 



 

행동 익명화는 이처럼 신분을 노출시키지 않고 어떠한 작업을 수행하는 것이다. 공격자 또한 행동 익명화를 있으며, 악성코드 연구자 또는 수사관 또한 악성코드를 분석하기 위해 행동 익명화가 필요하다.

 

행동 익명화의 종류는 토르를 이용한 익명 브라우징, 프록시 서버를 이용한 익명 브라우징으로 나눌 있으며 문서에서는 프록시 서버를 이용한 익명 브라우징을 주된 내용으로 다룬다.

 

*그림 출처 : http://blog.daum.net/fidesmd2/171

 

프록시 서버

프록시 서버는 일반적으로 클라이언트와 서버 사이에 중간자 시스템으로 설계되었고, 대역폭 절감, 콘덴츠 필터링 등을 위해 흔히 사용된다. 하지만 인터넷에서 익명성을 보장하기 위한 목적으로도 사용된다.

  흔히 프록시 서버는 토르와 비교되는데, 이들의 가장 차이는 프록시 서버는 서버 자체에서 요청한 클라이언트를 있다는 것이고 토르의 최종 노드에서는 요청한 클라이언트를 모른다는 것이다.

 

 


 

  이러한 요청한 클라이언트를 아는 프록시 서버의 특성 때문에 프록시의 유형은 투명한 프록시, 익명성을 보장하는 프록시, 매우 높은 익명성을 보장하는 프록시로 나뉜다.

 

  • 투명한 프록시 : 요청 클라이언트의 정보를 HTTP 추가 헤더를 설정하여 서버에 전송한다.
  • 익명성을 보장한 프록시 : 요청 클라이언트의 정보를 서버에 보여주지는 않지만, 프록시를 통해 전송되었다는 정보를 포함한다.
  • 높은 익명성을 보장하는 프록시 : 대상 서버에 어떠한 정보도 제공하지 않는다. 서버는 프록시를 통해 전송되었다는 정보를 없다.

 

 

윈도우에서 SSH 터널 프록시 사용

프록시로 연결하는 방법 가장 좋은 방법은 SSH 터널을 통해 포트를 포워딩하는 방식이며, SSH 터널은 사용자 PC 포트를 오픈하여 SSH 통해 서버로 연결한 서버를 SOCKS4/5 프록시로 사용할 있게 한다.

 

인터넷 어플리케이션을 SSH 터널을 통해 프록시하는 데는 다음과 같이 4가지 이유가 있다.

 

  • 보안 : 사용자와 서버 사이의 로컬 트래픽이 암호화된다.
  • 프라이버시 : 사용자의 실제 IP 주소를 감춘다.
  • 기술적 이유 : 다른 장소에서 IP 기반 인증 메커니즘을 사용하는 어플리케이션에 접근해야할
  • 그리고 그냥.. 가능하니까 :)

 

그렇다면 어떻게 서버를 통해 프록시 연결을 하는 것인가?

 

SSH 프록시 서버 사용을 위한 준비물은 다음과 같다.

  • 사용할 있는 SSH 프록시 서버
  • Putty
  • 브라우저(IE, FireFox )

 

*직접 SSH 프록시 서버를 구축해서 실습을 해야한다면 SSH 프록시 서버 구축을 위해 "How to setup an SSH Proxy Server using Putty and Spoon Proxy" 참조하기 바란다. 필자는 직접 SSH 프록시 서버를 구축하였으며, 아래 내용은 해당 서버를 이용한 정보이다.

 

Putty 실행하면 다음과 같은 설정창을 보게 된다.

 



 

  • Host Name : SSH 프록시 서버의 주소를 적는다.
  • Port : 서버에서 지원하는 SSH 포트 번호(일반적으로 22) 적는다.
  • Connection type : SSH 설정한다.

 

* 이후 계속 사용하기 위해서 세션에 대한 정보를 저장해 둔다. 여기서는 SSH TEST 저장한다.

 

Connection -> SSH 누르면 SSH 세팅 정보가 나오며 다음과 같이 설정해 준다.

 


 

  • Enable Compression 체크
  • Preferred SSH protocol version : SSH 서버에서 지원하는 버전으로 설정(일반적으로 2 설정)

 

Connection - SSH - Tunnels 누르면 SSH 터널에 대한 설정을 해줄  있다.



  • Source port : 사용자의 PC에서 사용되지 않는 포트 번호를 적는다. 여기서는 4567 적었다.
    포트는 사용자 PC에서 프록시 서버 포트로 사용될 , SSH 터널로 포워딩될 포트이다.
  • Dynamic, Auto 설정해준다.

 

Add 누르면 입력한 포트번호가 다음과 같이 포워딩된 포트 목록에 추가된다.

 

 

이제 설정이 모두 완료되었다.

다시 Session 눌러 설정한 세션 정보를 저장한다.

 

 

저장된 세션에 접속하고 서버에서 제공한(또는 설정한) 계정명과 비밀번호를 입력하면 다음과 같이 접속하게 된다. Putty 통해 SSH 프록시 서버를 사용하기 위해서는 반드시 서버에 로그인 상태여야 한다.

 

 

서버에 로그인된 상태에서

파이어폭스 - 설정 - 고급 - 네트워크 - 연결란의 설정을 누르고 다음과 같이 설정해준다.

 

 

*필자는 IE에서 먼저 시도해보았으나 SOCKS 프로토콜 사용이 원활히 진행되지 않아 파이어폭스에서 진행하였다.

 

접속 IP 확인해보면 외부에서 확인한 필자의 IP 실제 PC에서의 IP 다르단 것을 확인 있다.

 

 

마치며

일단 문서에서는 '높은 익명성을 보장하는 프록시' 대한 증명을 전혀 하지 않았다. 점에 대해서는 추후 문서에 추가할 예정이다.

  필자는 행동 익명화에 대해 공부하기 전에는 단순히 공격자만이 행동 익명화를 요구하는지 알았으나 수사관 또한 공격자의 감시를 피하기 위해 행동 익명화가 요구된다는 사실을 알게 되었다. 이를 포함한 많이 부족한 지식을 조금이라도 채워준 저자들에 대해 감사를 표한다.

 

참조

Malware Analyst's Cookbook and DVD, p10-17

Proxy Connections With SSH or PUTTY

(http://www.webhostingtalk.com/showthread.php?t=539067)

How to setup an SSH Proxy Server using Putty and Spoon Proxy

(http://www.pccured.com/blog/how-to-setup-ssh-proxy/)

Putty 0.60(r3) (http://www.chiark.greenend.org.uk/~sgtatham/putty/)

'Analysis > Reverse Engineering' 카테고리의 다른 글

자식 프로세스 디버깅하기  (0) 2012.09.08
AND