'보안'에 해당되는 글 3건

  1. 2017.04.13 :: SSL(TLS)란?
  2. 2017.01.26 :: 코드 난독화 (Obfuscation)
  3. 2017.01.25 :: Ransomware(랜섬웨어) 1
보안 2017. 4. 13. 00:54


Client와 Server간의 암호화 통신을 위한 SSL/TLS


SSL(TLS)란?

SSL은 Secure Socket Layer의 약자로 웹서버와 웹 브라우저 간의 암호화 통신을 위하여 응용계층과 TCP/IP 계층에서 동작하는 프로토콜이며, Netscape사에서 만들었으며 ISO표준 정식명칭은 TLS(Transport Layer Security)이다.



SSL/TLS의 주요기능

1) 인증 : 상대 사이트에 대한 신뢰성 인증

2) 암호화 : 다양한 암호화 알고리즘을 이용하여 메시지 암호화

3) 무결성 : 송/수신 메시지에 대한 Checksum기능, 변조 방지

4) 지원 프로토콜 : HTTPS(port:443), TELNETS(port:992), POP3S(port:995), SFTP(port:22)



SSL/TLS 처리과정


[Handshake 과정]


위의 그림에서 보듯이 많은 단계를 거쳐야 메시지 송/수신 처리가 가능하다. 그만큼 처리 속도가 떨어진다는 얘기다. 또한, DDOS 공격 시 그 만큼 부하가 많이 발생한다는 의미이기도 하다. 그래서 주요정보가 송/수신되는 기능에만 SSL/TLS 처리가 필요함.


그외 암호화 통신을 위해 SET(전자결제), IPSEC(VPN 구현) 등이 있음.

'보안' 카테고리의 다른 글

코드 난독화 (Obfuscation)  (0) 2017.01.26
Ransomware(랜섬웨어)  (1) 2017.01.25
posted by 생각퍼즐
:
보안 2017. 1. 26. 03:34

SW의 안전한 배포를 위한 코드 난독화 기술을 알아볼까요?


 코드 난독화란 치환 및 자리바꿈 등의 기법을 사용해 소스코드를 알아보기 어렵게하는 만드는 기술입니다.

JAVA를 다루는 개발자라면 난독화 기술을 알아둘 필요성이 있습니다. 자바는 JVM(JAVA Virtural Machine)위에서 실행되는 바이트코드 형태로 컴파일되며 컴파일된 코드에는 자바 소스코드 정보가 그대로 포함되어 있어 역컴파일(Decompile)을 쉽게 할 수 있습니다.



난독화가 관심을 받는 이유를 정리해보면

▶ 역공학 방지

Decompiler를 통한 소스코드 분석 방지. 즉, 실행 중인 프로그램은 반드시 메모리에 적재되어야 하고 메모리에 적재된 코드를 Decompiler를 통해 원래의 소스코드로 변환이 가능하다는 이야기죠. 하지만 소스코드가 난독화가 되어있으면 디컴파일된 소스코드를 제대로 분석하기는 어려워요~~ 그래서 솔루션을 판매하는 기업은 핵심 알고리즘 및 라이센스 부분은 반드시 난독화를 적용 후에 판매해야 돈을 벌 수 있을겁니다.

 보안강화

외부 공격 및 통계적 공격에 의한 코드 조작이 어려워 집니다.



난독화는 적용 대상에 따라 소스코드 난독화와 바이너리 난독화로 나누어집니다.

소스코드 난독화는 java, c/c++과 같은 소스코드를 문자열 치환, 자리바꿈 등의 기법을 사용해 소스코드를 읽기 어렵게하는 것이고, 바이너리 난독화는 exe, apk와 같은 실행파일이 대상이며 컴파일 후에 생성된 바이너리의 심볼 정보를 제게 및 변형하여 역공학을 통해 코드를 분석하기 어렵게 만드는 기술입니다.


난독화 적용기법

- 배치 난독화

프로그램에 큰 영향을 끼치지 않는 세부적인 요소들을 변화시키거나 제거하여서, 복원된 프로그램의 내용을 부분적으로 훼손시킴으로써 난독화를 한다. 변수 및 식별자의 이름 변조, 주석제거가 대표적인 방법이다.

- 데이터 난독화

데이터를 담는 변수 str을 str1, str2, str3로 나누거나 합치는 방법을 이용하여 난독화 수행

- 제어난독화

프로그램의 실행순서 및 흐름을 변경하는 것으로 프로그램의 문장이 묶이는 단위를 조절함으로서 난독화 한다

- 방지 난독화

알려진 Decompiler의 역난독화 기법을 봉쇄하여 디컴파일 수행 시 프로그램이 충돌하게 만드는 방법이다. 


소스코드 난독화 적용 시 고려사항

- 난독화에 투입되는 비용과 효과를 분석하여 난독화 범위 및 수준 결정

- 높은 수준의 난독화는 시스템에 부하를 발생시켜 성능이 저하됨

- 난독화된 코드는 보안장비(IDS 등)를 우회할 수 있어 보안관리자 입장에서는 눈을 크게 뜨고 악성코드를 찾아야 겠죠~




'보안' 카테고리의 다른 글

SSL(TLS)란?  (0) 2017.04.13
Ransomware(랜섬웨어)  (1) 2017.01.25
posted by 생각퍼즐
:
보안 2017. 1. 25. 01:54

점점 악랄해지는 랜섬웨어


지피지기면 백전불패라고 랜섬웨어가 무엇인지 알아보자!


 '몸값'을 뜻하는 ransom과 '제품'을 뜻하는 ware의 합성어로 사용자PC에 Drive By Download 형태로 악성 소프트웨어가 배포되어 개인정보 및 중요파일을 암호화는 악성 소프트웨어(멀웨어)를 지칭. 즉, 암호화된 개인정보 및 중요파일을 인질로 삼아 돈을 요구하는 공격기법이다. 매년 10억$가 넘는 돈이 몸값으로 지불되는 큰 시장으로 성장(?) 했습니다.


최근에는 돈을 지불하더라도 데이터를 복호화해주지 않는 악랄한 랜섬웨어도 등장했습니다.




잠깐 악성코드(Malicious Code)에 대해서 알아보고 넘어가죠~

악성코드란 악의적인 행위를 하기위해 공격자가 만든 프로그램 및 구성요소를 총하는 단어로 해외에서는 악성 프로그램(Malicious Software), 줄여서 Malware라고 부릅니다. 

악성코드(Malicious Code) = 악성 프로그램(Malicious Software) = Malware


악성 프로그램(멀웨어) 종류는 어떤것이 있을까요?

1. Virus(바이러스)

가장 친숙한 단어죠!

정상파일을 감염 시키는 형태의 악성코드로 감염대상이 없을 때는 실행이 안되며, 감염파일에서 다른 정상 파일로자기복제가 가능하고 N/W를 통한 전파는 안

2. Worm(웜)

바이러스와 다르게 감염대상이 존재하지 않아도 스스로 실행이 되며 자기복제 및 N/W를 통한 전파 가능

3. Trojan(트로이목마)

우리가 알고있는 트로이목마 이야기처럼 정상파일로 가장하거나 정상파일 안에 삽입되어 실행되며 사용자의 정보를 공격자에게 유출

4. Adware

광고를 계속해서 띄워서 사용자를 불편하게 하는 악성코드로 정보유출은 하지 않는다.

5. Malicious Bot 

악성 프로그램이 스스로 실행을 못하고 공격자의 원격제어로 실행, 주로 취약점, 백도어(Back Door) 등을 이용해 전파

6. Back Door 

시스템 관리자가 고의적으로 만들어놓은 시스템의 보안 헛점으로 사용자 인증 절차를 거치지 않고 시스템에 접근할 수 있도록 응용프로그램 또는 운영체제에 삽입된 프로그램. 그래서 공격자는 다음 침입을 위해 관리자(사용자)가 모르는 백도어를 만들어 놓고 빠져나가죠~~


랜섬웨어로 다시 돌아와서 램섬웨어의 감염경로를 알아보죠~


 방법

감염경로 

내용 

 Spam

 이메일의 첨부파일

악성코드가 이메일의 첨부파일 형태로 전송

 Social Engineering

 사회적 친분 관계 위장

친분관계를 이용한 악성 프로그램 설치 유도

 Drive By Download

 위·변조 웹 사이트

잘 알려진 웹 브라우저 또는 플러그인의 보안 취약  점을 통해 웹 사이트에 접속만으로 사용자PC에 악성 프로그램 설치

 Malvertising 스파이웨어 

온라인 광고에 악성 프로그램을 심어서 공격



그러면 랜섬웨어에 감염되면 어떤 현상이 벌어지죠?

해커가 아래의 [그림1]처럼 아주 친절하게(?) 설명해줍니다ㅜ.ㅜ

당신의 컴퓨터가 잠겼으니 돈을 지불하면 해결해주겠다~



[그림1]


대부분의 사이버 공격이 그렇듯이 랜섬웨어도 마찬가지로 감염되면 완전한 복구(해결)이 힘듭니다.

 - CryptoLocker 같은 경우 비대칭키 암호화 방식(RSA-2048)을 사용하여 암호화한 공격자의 개인키가 없으면 복보화 불가능  


[그림1]과 같은 화면과 마주하지 싫으시다면 다음과 같은 방법으로 예방하세요~~

1. 백업 : 중요파일(사진, 동영상, 문서 등)을 미리 외장하드나 구글 드라이브 등에 백업한다.

2. 이메일 : 확인되지 않은 이메일의 링크 클릭, 첨부파일 다운로드를 하지 않는다.

3. 페치 : 귀찮더라도 OS 및 백신의 최신 보안 페치 업데이트

4. 브라우저 설정 : 무분별한 다운로드 방지를 위한 설정

5. Safe URL : 신뢰성있는 안전한 사이트 접속(도박 및 성인 사이트 접속 자제)


위의 예방방법을 보시면 알겠지만 기술적 접근보다는 보안에 대한 개인의 관심과 노력이 중요합니다.

'보안' 카테고리의 다른 글

SSL(TLS)란?  (0) 2017.04.13
코드 난독화 (Obfuscation)  (0) 2017.01.26
posted by 생각퍼즐
: