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

+ Recent posts