Denial of Service Attack

 

  서비스 거부 공격(Denial of Service Attack) 은 시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격이다. 특정 서버에게 수 많은 접속 시도를 만들어 다른 이용자가 정상적으로 서비스를 이용하지 못하게 하거나, 서버의 TCP 연결을 바닥내는 등의 공격이 이 범위에 포함된다. 수단, 동기, 표적은 다양할 수 있지만, 보통 인터넷 사이트 또는 서비스의 기능을 일시적 또는 무기한으로 방해 또는 중단을 초래한다. 통상적으로 서비스 거부 공격은 유명한 사이트, 은행, 신용카드 지불 게이트웨이 또는 루트 네임 서버를 상대로 이루어 지기도 한다.

 

서비스 거부 공격 기술

 

  1) ICMP Flood

  2) tear drop

  3) Peer 2 Peer Attack

  4)  영구 서비스 거부 공격

  5) 응용 수준 공격

  6) DRDoS

 

출처 : 위키백과 

'0x012 Etc' 카테고리의 다른 글

[Term] CVE  (0) 2017.12.29
[Term] Intrusion Detection System  (0) 2017.12.29
[Term] Cryptography  (0) 2017.12.29
[Term] Social Engineering  (0) 2017.12.29
[Term] Code Obfuscation  (0) 2017.12.29

Cryptography

 

  암호학(Cryptography)은 정보를 보호하기 위한 언어학적 및 수학적 방법론을 다루는 학문으로 수학을 중심으로 컴퓨터, 통신 등 여러 학문 분야에서 공동으로 연구, 개발되고 있다. 초기의 암호는 메시지 보안에 초점을 맞추어져 군사 또는 외교적 목적으로 사용되었지만, 현재는 메시지 보안이외에도 인증, 서명 등을 암호의 범주에 포함시켜 우리의 일상에서 떼 놓을 수 없는 중요한 분야가 되었다. 현금지급기의 사용, 컴퓨터의 패스워드, 전자상거래 등은 모두 현대적 의미의 암호에 의해 안정성을 보장받고 있다. 현대 암호학은 암호 시스템, 암호 분석, 인증 및 전자서명 등을 주요 분야로 포함한다.

 

암호학을 이용하여 보호해야할 메시지를 평문(plaintext)이라고 하며, 평문을 암호학적 방법으로 변환한 것을 암호문(ciphertext)이라고 한다. 이때 평문을 암호문으로 변환하는 과정을 암호화라고 하며, 암호문을 다시 평문으로 변환하는 과정을 복호화라고 한다.

 

암호학적 서비스가 제공하고자 하는 목표

 

  1) 기밀성 : 부적절한 노출 방지. 허가받은 사용자가 아니면 내용에 접근 불가.

  2) 무결성 : 부적절한 변경 방지. 허가받은 사용자가 아니면 내용을 변경 불가.

  3) 가용성 : 부적절한 서비스 거부 방지.

  4) 부인방지 : 메시지를 전달하거나 전달받은 사람이 메시지를 전달하거나 전달 받았다는 사실을
                    부인할수 없어야함.

 

출처 : 위키백과 

 

'0x012 Etc' 카테고리의 다른 글

[Term] Intrusion Detection System  (0) 2017.12.29
[Term] Denial of Service Attack  (0) 2017.12.29
[Term] Social Engineering  (0) 2017.12.29
[Term] Code Obfuscation  (0) 2017.12.29
[Term] Debugging | Anti-Debugging  (0) 2017.12.29

Social Engineering

 

  사회공학(Social Engineering)은 보안학적 측면에서 기술적인 방법이 아닌 사람들간의 기본적인 신뢰를 기반으로 사람을 속여 비밀 정보를 획득하는 기법을 일컫는다. 우선 통신망 보안 정보에 접근 권한이 있는 담당자와 신뢰를 쌓고 전화나 이메일을 통해 그들의 약점과 도움을 이용하는 것이다. 상대방의 자만심과 권한을 이용하는 것, 정보의 가치를 몰라서 보안을 소홀히 하는 무능에 의존하는 것과 도청 등이 일반적인 사회 공학적 기술이다. 이 수단을 이용하여 시스템 접근 코드와 비밀번호를 알아내 시스템에 침입하는 것으로 물리적, 네트워크 및 시스템 보안에 못지 않게 인간적 보안이 중요하다.

출처 : 위키 백과

 

Phishing

 

  피싱(Phishing)은 전자우편  또는 메신저를 사용해서 신뢰할 수 있는 사람 또는 기업이 보낸 메시지인 것처럼 가장함으로써, 비밀번호 및 신용카드 정보와 같이 기밀을 요하는 정보를 부정하게 얻으려는 사회공학(Social Engineering)의 한 종류이다. 피싱(Phishing)이란 용어는 fishing에서 유래하였으며 Private date와 pishing 의 합성어이다. 즉, 점점 더 복잡한 미끼들을 사용해서 사용자의 금융정보와 패스워드를 '낚는다'는 데서 유래 되었다.

  피싱 사고에 대한 신고가 늘어감에 따라 피싱을 막으려는 방법들이 필요하게 되었다. 이런 방법들에는 법, 사용자 교육, 그리고 기술적인 도구 들이 있다. 최근에는 컴퓨터를 이용한 피싱외에도 보이스피싱(Voice Phishing)이라고 하여 전화를 이용한 피싱도 등장하고 있다.

 

 특징

   1) 메일을 이용해서 신뢰할 수 있는 메일 주소로 가장한다.

   2) 신용카드 번호나 패스워드 입력을 요구한다.

   3) 백신 소프트웨어에 검출되지 않는다.

   4) 웹 사이트를 만드는 기술 이외는 특별한 기술은 아무것도 필요가 없다.

 

출처 : 위키 백과 

 

'0x012 Etc' 카테고리의 다른 글

[Term] Denial of Service Attack  (0) 2017.12.29
[Term] Cryptography  (0) 2017.12.29
[Term] Code Obfuscation  (0) 2017.12.29
[Term] Debugging | Anti-Debugging  (0) 2017.12.29
[Term] Packing  (0) 2017.12.29

Code Obfuscation

 

  코드 난독화(Code Obfuscation)는 프로그램을 바꾸는 방법의 일종으로, 코드를 읽기 어렵게 만들어 역공학을 통한 공격을 막는 기술을 의미한다. 난독화는 대상에 따라 크게 소스코드 난독화와 바이너리 난독화로 나눌 수 있다. 소스코드 난독화는 C/C++/자바 등의 프로그램의 소스코드를 알아보기 힘든 형태로 바꾸는 기술이고, 바이너리 난독화는 컴파일 후에 생성된 역공학을 통해 분석하기 힘들게 변조하는 기술이다. 출처 : 네이버 지식백과

 

  .NET으로 개발된 프로그램의 경우 .NET Reflector 라는 툴을 이용하면 프로그램의 소스코드를 확인 할 수 있습니다. 이러한 경우 프로그램의 내부 흐름과 알고리즘등이 그대로 노출되는 문제점이 발생하게 됩니다.. 이러한 문제점을 막기 위해 사용 하는 방법 중 하나가 코드 난독화 입니다. 코드 난독화는 직접 프로그램을 만들어서 이용하셔도 되지만 이미 많은 툴들이 개발되어 출시 되고 있기 때문에 적당한 툴을 선택하셔서 이용하시면 됩니다. 

 

 

 

출처 : http://www.codejam.or.kr/codejam/index.jsp

'0x012 Etc' 카테고리의 다른 글

[Term] Cryptography  (0) 2017.12.29
[Term] Social Engineering  (0) 2017.12.29
[Term] Debugging | Anti-Debugging  (0) 2017.12.29
[Term] Packing  (0) 2017.12.29
[Term] Hooking  (0) 2017.12.29

Debugging

 

  디버깅(Debugging)은 컴퓨터 프로그램의 정확성이나 논리적인 오류(버그)를 찾아내는 테스트 과정을 뜻한다. 일반적으로 디버깅을 하는 방법으로 테스트 상의 체크, 기계를 사용하는 테스트, 실제 데이터를 사용해 테스트하는 법이 있다. 디버거는 디버그를 돕는 도구로 디버거는 주로 원하는 코드에 중단점을 지정하여 프로그램 실행을 정지하고, 메모리에 저장된 값을 살펴보며, 실행을 재개하거나, 코드를 단계적으로 실행하는 등의 동작을 한다. 고급 디버거들은 메모리 충돌 감지, 메모리 누수 감지, 다중 스레드 관리 들의 기능도 지원한다.

 

Anti-Debugging

 

  안티 디버깅(Anti-Debugging)이란 디버깅을 방해하고 분석을 방해하는 기술이다. 디버깅을 당한다면 해당 디버거 프로그램을 종료 시키거나 에러를 발생시키는 방법등 다양한 방법으로 분석을 방해한다. 안티 디버깅 기법을 이용하면 내부 코드를 분석하여 프로그램의 흐름을 파악 하는 걸 막을 수 있다. 주로 상용 프로그램에서 자주 이용되고 있다. 안티 디버깅 기술에는 수 많은 방법이 존재하며 현재도 발전하고 있으며, 그에 따라 이를 우회하는 기술도 지속적으로 발전하고 있다.

 

출처 - 위키백과 

 

'0x012 Etc' 카테고리의 다른 글

[Term] Social Engineering  (0) 2017.12.29
[Term] Code Obfuscation  (0) 2017.12.29
[Term] Packing  (0) 2017.12.29
[Term] Hooking  (0) 2017.12.29
[Term] Malware  (0) 2017.12.29

Packing

 

  실행 압축(Packing)은 말 그대로 실행 파일을 압축하는 것을 말한다. 수많은 실행 파일 압축 프로그램이 존재하며 이러한 프로그램들은 MS-DOS 시절부터 존재해왔다.

  소프트웨어 개발자들이 실행 파일 압축을 사용하는 까닭은 많은데, 주로 소프트웨어의 기억 장치의 용량을 줄이는 것이 목적이다. 실행 압축 프로그램의 목적은 실행 코드를 압축하는 것이며 표준 데이터 압축 프로그램 기능보다 더 나은 압축률을 보이고 있다. PE 포멧으로 되어 있는 실행 파일을 압축할 때의 한 가지 장점으로는 보안을 들 수 있다. 어떠한 프로그램 안의 데이터를 분석하는 프로그램을 사용하여 프로그래머가 짠 내용을 분석하지 못하게 막을 수 있다. 한글 패치를 만들때에도 이러한 프로그램이 이용되기도 한다. 압축된 실행 파일은 파일 시스템의 공간을 덜 차지하기 때문에 파일 시스템으로 부터 데이터가 메모리에 전송되는 시간이 덜 걸린다.

 

실행 압축 프로그램의 종류

 

  1) ASPack

  2) CExe

  3) exe32pack

  4) NeoLite

  5) PKLite32

  6) PEtite

 

출처 : 위키 백과 

 

'0x012 Etc' 카테고리의 다른 글

[Term] Code Obfuscation  (0) 2017.12.29
[Term] Debugging | Anti-Debugging  (0) 2017.12.29
[Term] Hooking  (0) 2017.12.29
[Term] Malware  (0) 2017.12.29
[Term] Exploit  (0) 2017.12.29

Hooking

 

  후킹(Hooking)은 소프트웨어 공학 용어로 운영체제나 응용 소프트웨어 등의 각종 컴퓨터 프로그램에서 소프트웨어 구성 요소 간에 발생하는 함수 호출, 메시지, 이벤트 등을 중간에서 바꾸거나 가로채는 명령, 방법, 기술이나 행위를 말한다. 이때 이러한 간섭됩 함수 호출, 이벤트 또는 메시지를 처리 하는 코드를 후크(Hook)라고 한다. 크래킹(불법적인 해킹)을 할 때 크래킹 대상 컴퓨터의 메모리 정보, 키보드 입력 정보 등을 빼돌리기 위해서 사용되기도 한다. 일반적으로 후크는 소프트웨어가 이미 실행중일때 삽입되지만, 후킹은 응용 프로그램이 실행되기도 전에 쓰일 수 있는 전략이다.

 

 1) 물리적 수정 : 응용프로그램이 실행되기 전에 리버스 엔지니어링 기법으로 실행 또는 라이브러리를 물리적 수정함으로써 후킹을 할 수 있다. 이러한 기법은 일반적으로 다른 모니터로 함수 호출을 가로채거나 기긋덜이 완전히 다른 함수로 대체하는데 사용된다.

 

  2) 런타임 수정 : 운영체제와 소프트웨어는 후크를 삽입하는 프로세스에 충분한 권한이 부여된 경우 런타임 도중 이벤트 후크를 쉽게 삽입할 수 있다. 예를 들어, Microsoft Windows 에서는 대화상자, 스크롤바 및 메뉴뿐만 아니라 다른 항목에 대한 시스템 이벤트와 응용 프로그램 이벤트를 처리하거나 수정하는데 사용될 수 있는 후크를 삽입 할 수 있다. 또한 후크는 키보드 및 마우스 이벤트를 삽입, 제거, 수정이 가능하다. 리눅스에서는 후크가 넷필터를 통해 커널 내의 네트워크 이벤트를 처리 하기 위해 비슷한 방식으로 사용될 수 있는 또 다른 예를 제공한다.

 

 - 출처 : 위키 백과 

 

'0x012 Etc' 카테고리의 다른 글

[Term] Debugging | Anti-Debugging  (0) 2017.12.29
[Term] Packing  (0) 2017.12.29
[Term] Malware  (0) 2017.12.29
[Term] Exploit  (0) 2017.12.29
[Term] Zero-Day Attack  (0) 2017.12.29

Malware

 

  악성 코드 또는 멀웨어(Malware)는 컴퓨터에 악영향을 끼칠 수 있는 모든 소프트웨어의 총칭이다. 예전에는 단순히 컴퓨터 바이러스만이 활동하였으나, 1990년대 말 들어서 감염 방법과 증상들이 다양해지면서 자세히 분류를 나누기 시작했다. 과거에는 디스크 복제 등 저장매체를 따라 전파되었으나 네트워크가 발달하면서 이메일이나 웹으로 감염되는 경우가 훨씬 많아졌다.

  악성코드를 분석하는 방법은 크게 정적 분석과 동적분석으로 나눌 수 있다.

 

   1) 정적 분석 : 프로그램을 디스어셈블하는 디버깅 프로그램들을 이용하는 방법으로 디스어셈블된 프로그램의 코드를 실행시키지 않고 분석하는 기법이다.

  

   2) 동적 분석 : 런타임 디버깅 기법을 이용하여 통제된 상황 하에서 악성코드를 직접 실행시키며 이후에 발생하는 변화들을 분석하는 형태로 이루어진다.

 

출처 : 위키백과 

'0x012 Etc' 카테고리의 다른 글

[Term] Packing  (0) 2017.12.29
[Term] Hooking  (0) 2017.12.29
[Term] Exploit  (0) 2017.12.29
[Term] Zero-Day Attack  (0) 2017.12.29
[Term] Buffer Overflow  (0) 2017.12.29

Exploit

 

  취약점 공격 또는 익스플로잇(Exploit)이란 컴퓨터의 소프트웨어나 하드웨어 및 컴퓨터 관련 전자 제품의 버그, 보안, 취약점 등 설계상 결함을 이용해 공격자의 의도된 동작을 수행하도록 만들어진 절차나 일련의 명령, 스크립트, 프로그램 또는 특정한 데이터 조각을 말하며, 이러한 것들을 사용한 공격 행위를 이르기도 한다. 취약점 공격은 주로 공격 대상 컴퓨터의 제어 권한 획득이나 서비스 거부 공격(Denial of Service) 등을 목적으로 한다.

  취약점 공격이 실행되는 곳에 따라 두가지로 구분 할 수 있습니다.

   1. 로컬 취약점 공격 : 취약점 공격이 공격 대상 자체에서 실행됨.

   2. 원격 취약점 공격 : 공격자의 컴퓨터에서 실행되어 다른 컴퓨터를 공격 대상으로 함.

 

출처 : 위키 백과 

 

'0x012 Etc' 카테고리의 다른 글

[Term] Hooking  (0) 2017.12.29
[Term] Malware  (0) 2017.12.29
[Term] Zero-Day Attack  (0) 2017.12.29
[Term] Buffer Overflow  (0) 2017.12.29
[Term] Reverse Engineering  (0) 2017.12.29

Zero-Day Attack

 

  제로 데이 공격(Zero-Day Attack)은 컴퓨터 소프트웨어의 취약점을 공격하는 기술적 위협으로, 해당 취약점에 대한 패치가 나오지 않은 시점에서 이루어지는 공격을 말한다. 이러한 시점에서 만들어진 취약점 공격을 제로 데이 취약점이라고도 한다.

  제로 데이 공격 대상물이 되는 프로그램은 공식적으로 패치가 배포되기 전에 감행된다. 이런 프로그램들은 보통 대중들에게 공개되기 전 공격자들에게로 배포된다. 단어의 어원은 공격이 감행되는 시점에서 유래한 것이다. 악성코드 제작자들은 제로 데이 대상물의 취약점을 여러 가지 경로로 공략할 수 있다. - 출처 : 위키 백과 

'0x012 Etc' 카테고리의 다른 글

[Term] Hooking  (0) 2017.12.29
[Term] Malware  (0) 2017.12.29
[Term] Exploit  (0) 2017.12.29
[Term] Buffer Overflow  (0) 2017.12.29
[Term] Reverse Engineering  (0) 2017.12.29

+ Recent posts