■ OTP(One Time Password)
로그인 과정에서 주로 사용하는 인증 방식은 아이디와 비밀번호를 입력하여 시스템 사용 권한을 확인하고 접근 권한을 부여하는 것입니다. 하지만 이런 방식은 스니핑(sniffing) 또는 키 로깅 등을 이용한 공격 방법에 의해 인증 정보가 쉽게 노출될 수 있다는 취약점이 있습니다. 이미 노출된 아이디, 비밀번호로 인해 개인 정보 유출이나 아이디 도용 등의 피해를 입기도 합니다.
이런 피해를 줄이기 위해 주요 온라인 사이트에서는 지식 기반(아이디, 비밀번호) 인증에 소유 기반(보안카드, OTP 등) 인증을 추가한 2차 인증을 도입하고 있습니다. 소유 기반 인증은 사용자가 인증 요소를 소유하고 있어야 인증이 가능한 방식으로 보안카드, 하드웨어 방식의 OTP(One Time Password), 공인인증서 등이 주로 사용됩니다. 최근에는 스마트폰 사용자가 증가하면서 USIM(Universal Subscriber Identity Module) 기반 또는 VM(Virtual Machine) 기반의 모바일 OTP를 이용한 인증 서비스가 사용되고 있습니다.
이 글에서는 OTP의 생성 방식 및 2차 인증 적용 사례를 소개하겠습니다.
다양한 OTP 생성 방식
OTP 생성 방식은 시도 응답(challenge-response) 방식, 시간 동기화(time-synchronous) 방식, 이벤트 동기화(event-synchronous) 방식, 시간-이벤트 동기화(time-event synchronous) 방식으로 나눌 수 있다. 각 방식의 장단점을 살펴보자.
시도 응답 방식
서버가 제시하는 시도 값을 사용자가 알고리즘에 입력해 출력되는 값을 얻고 이를 응답 값으로 서버에 전송하여 자신을 인증하는 방식이다. 온라인 이체 시 사용하는 보안카드 숫자 입력이 시도 응답 방식의 대표적 예다. 즉, 서버가 임의의 난수를 생성하여 사용자에게 전송하면 사용자는 해당 시도 값을 OTP 토큰에 입력해 그 결과로 얻은 OTP를 다시 입력하는 방식이다.
시도 응답 방식은 입력 값이 매번 임의의 값이 된다는 측면에서는 안전성을 갖추고 있으나, 네트워크 모니터링에 의해 전송되는 값이 노출될 수 있다는 단점이 있다. 또 서버와 클라이언트 사이의 통신 횟수도 비교적 많이 요구된다.
다음은 시도 응답 방식의 인증 과정을 나타낸 것이다.
- 시도 값 생성
- 생성된 시도 값 전달
- 시도 값을 이용해서 OTP 생성
- 생성된 OTP 입력
- OTP 인증 서버로 검증 요청
- 시도 값을 이용해서 OTP 생성 및 검증
- OTP 검증 결과 전송
시간 동기화 방식
시도 응답 방식은 사용자의 입력 값이 많다는 단점이 있다. 시간 동기화 방식은 이 문제를 개선하기 위해 임의의 난수 대신에 시간 값을 입력 값으로 사용해 OTP를 생성한다.
서버와 OTP 토큰 간에 동기화된 시간을 기준으로 특정 시간 간격마다 변하는 OTP를 생성한다. 하지만 특정 시간 간격마다 OTP가 변하기 때문에 OTP를 입력하는 도중에 다른 값이 생성되어 OTP가 변경되는 단점이 있다. 이러한 단점 때문에 시간 간격을 길게 설정하면 공격자가 중간에 OTP를 알아채 사용할 가능성이 커지게 되는 또 다른 문제점도 생길 수 있다. 시간 동기가 어긋나면 인증이 실패할 수 있으므로 추가적으로 OTP 토큰과 서버 간의 시간 동기를 맞추는 알고리즘도 필요하다.
시간 동기화 방식은 OTP가 노출되더라도 사용 시간을 제약하거나 동일 OTP값을 사용하지 못 하도록 제약할 수 있다. 하지만 특정 시간 동안 값을 입력하지 못하면 중간에 OTP값이 변경되어 다시 입력해야 한다.
다음은 시간 동기화 방식의 인증 과정을 나타낸 것이다.
- OTP 토큰 내부의 자체 시간 정보를 이용해서 OTP 생성
- 생성된 OTP값 입력
- OTP 검증 서버로 검증요청
- 서버의 자체 시간 정보를 이용해서 OTP 생성 및 검증
- OTP 검증 결과를 전송
이벤트 동기화 방식
이벤트 동기화 방식은 서버와 OTP 토큰이 동기화된 시간 대신에 동일한 카운트 값을 기준으로 비밀번호를 생성한다. 사용자가 OTP를 생성할 때 카운트 값을 OTP 알고리즘의 입력 값으로 사용하여 OTP를 생성하고, OTP를 생성한 후에는 카운트 값을 증가시켜서 저장해 두었다가 다음 번에 사용한다.
이 방식은 인증 실패 시 재시도를 위해 특정 시간을 기다릴 필요가 없지만, OTP 토큰에서 OTP만 여러 번 생성하고 해당 OTP를 서버에 입력하지 않으면 OTP 토큰과 서버 간의 카운트 값이 달라져 OTP 토큰을 다시 초기화해야 하는 단점이 있다.
다음은 이벤트 동기화 방식의 인증 과정을 나타낸 것이다.
- 토큰 내부의 이벤트 정보를 이용해서 OTP 생성
- 생성된 OTP값 입력
- OTP 인증 서버로 검증요청
- 서버의 자체 이벤트 정보를 이용해서 OTP 생성 및 검증
- OTP 검증 결과를 전송
시간-이벤트 동기화 방식
시간 동기화와 이벤트 동기화 방식의 단점을 보완하기 위해서 두 가지 방식을 조합한 OTP 생성 방식이다. 시간-이벤트 동기화 방식은 OTP 생성 입력 값으로 시간 값과 카운터 값을 모두 사용한다.
시간 동기화와 같이 특정 시간 간격마다 비밀번호를 새로 생성하며, 같은 시간 내에 OTP 생성 요청이 여러 번 발생하면 카운트 값을 증가시켜 새로운 OTP를 생성한다. 동일한 시간 간격 내에서도 새로운 OTP를 생성할 수 있으므로 OTP의 일회성을 높여 안전성이 뛰어나다.
다음은 시간-이벤트 동기화 방식의 인증 과정을 나타낸 것이다.
- OTP 토큰 내부의 자체 시간 정보와 이벤트 정보를 이용해서 OTP 생성
- 생성된 OTP값 입력
- OTP 인증 서버로 검증 요청
- 서버의 자체의 시간 정보와 이벤트 정보를 이용해서 OTP 생성 및 검증
- OTP 검증 결과를 전송
2차 인증 적용 사례
OTP 방식의 2차 인증을 제공하고 있는 주요 온라인 사이트의 사례는 다음과 같다.
Google의 2차 인증
Google은 휴대폰 SMS(Short Message Service)와 음성 통화로 인증 코드를 제공하는 방법으로 2차 인증을 제공한다. 로그인 후 계정 > 보안 > 2단계 인증에서 신청할 수 있다. 로그인할 때마다 2차 인증을 물어 보는 불편함을 줄이려면 이 컴퓨터를 신뢰함을 선택하여 동일 브라우저에서 로그인 시 2차 인증을 생략할 수 있다.
휴대전화를 사용할 수 없는 경우를 대비해 미리 백업 인증 코드 10개를 제공하며, 각 코드는 한 번씩만 사용할 수 있다. 백업 인증 코드가 부족하면 새 백업 코드를 생성한다. 브라우저 외부에서 작동하는 일부 애플리케이션에서 2차 인증이 지원되지 않아 인증 코드를 요청할 수 없을 때는 애플리케이션 비밀번호를 생성하여 사용해야 한다.
Facebook의 2차 인증
Facebook은 SMS로 보안 코드를 전달받아 로그인하는 형태의 2차 인증을 제공한다. 로그인 후 계정 설정 > 보안 > 로그인 승인에서 신청할 수 있다. Google과 마찬가지로 '인증된 기기'를 등록하면 동일 브라우저에서 로그인 시 2차 인증을 생략할 수 있다. 로그인 승인 기능을 활성화할 때는 기기 등록이 필수이다.
Facebook은 앱에서 '코드 생성기'를 제공하므로 SMS를 받을 수 없거나 인터넷을 이용할 수 없을 때에도 인증 코드를 제공받아 로그인할 수 있다. Facebook 앱의 코드 생성기를 사용하려면 Facebook 앱에 로그인된 상태여야 한다.
Facebook의 인증은 SMS의 보안 코드나 코드 생성기의 인증 코드 중 하나를 선택해 로그인할 수 있다는 점에서 Google과 다르다. 일부 Facebook 앱, Jabber, 스카이프, Xbox에서는 계정 비밀번호 대신 앱 비밀번호를 사용해 로그인한다.
네이버의 2차 인증
네이버도 2012년부터 네이버 OTP를 이용한 2차 인증을 제공하고 있다. 로그인 후 내정보 > 내정보보호 > OTP에서 신청할 수 있다.
네이버 OTP는 스마트폰(Android, iPhone)에 설치된 네이버앱의 설정 > 네이버 OTP에서 확인할 수 있다. 일련번호가 생성되는 시점에 인증 서버와 키 교환이 필요하기 때문에 반드시 인터넷에 접속되어 있어야 하지만, 일련번호를 발급 받은 후에는 인터넷 접속 없이도 OTP 인증 번호를 확인할 수 있다.
네이버 OTP는 시간-이벤트 동기화 방식으로 구현되어 있다. 특정 시간 동안 인증 번호가 유효하며, 뒤로 가기 후 다시 OTP 메뉴로 재진입하는 이벤트를 통해 새로운 인증 번호를 사용할 수도 있다.
네이버 OTP는 Facebook의 코드 생성기와는 달리 별도의 OTP 일련번호가 존재하여 여러 아이디에 사용할 수 있으며, 타 서비스에도 적용할 수 있게 되어 있다.
Google, Facebook과 마찬가지로 로그인 시에 OTP 상태유지와 애플리케이션 비밀번호를 제공하고 있다.
Google, Facebook과 마찬가지로 로그인 시에 OTP 인증 유지를 선택하면 동일 브라우저에서 로그인 시 2차 인증을 생략할 수 있다. 아웃룩, 스마트TV 등 네이버 OTP 인증번호를 입력할 수 없는 환경을 위해서 애플리케이션 비밀번호를 제공하고 있다.
네이버는 OTP의 불편함을 느끼는 사용자를 위해 일회용 로그인 번호를 이용한 인증을 추가로 제공하고 있다.
네이버 앱에서 로그인된 아이디의 일회용 로그인 번호를 생성하고, 이를 통해 아이디, 비밀번호를 입력하지 않고도 로그인할 수 있다. 이 방식은 일회용 로그인 번호를 입력해 로그인하므로 공격자에게 아이디, 비밀번호가 노출되지 않고 안전하게 로그인할 수 있다는 장점이 있다.
마치며
2012년 초, ZDNet에 Google의 QR코드 로그인에 관한 기사가 실린 적이 있다. 이 방법은 사용자가 브라우저에 특정 URL을 입력하여 QR코드를 생성하고, 로그인된 스마트폰의 QR코드 리더를 통해 이를 인식하여 해당 브라우저에 로그인하는 기능이다. 아직까지 실 서비스에 적용되지 않았지만, 빠르고 쉽게 로그인할 수 있다는 점에선 좋은 시도였다. 앞서 소개한 네이버의 일회용 로그인 번호도 아이디, 비밀번호와 같은 인증 정보를 직접 입력하지 않고 로그인할 수 있다는 점에선 QR코드 로그인과 유사하다고 할 수 있다.
현재까지 2차 인증은 OTP 기반으로 제공되고 있지만, 앞으로의 2차 인증은 본인이 신뢰할 수 있는 기기에서만 로그인하고 그 인증 정보를 활용하여 다른 기기에서 로그인하는 방식으로 발전해 갈 것으로 예상된다.
■ 사용자 인증(Factor 인증)
사용자 인증의 유형
유형 | 설명 | 예 |
Type 1 (지식) | Something you know | Password, PIN |
Type 2 (소유) | Something you have | Token, Smart card |
Type 3 (존재) | Something you are | 생체인증 |
Type 4 (행위) | Something you do | 서명, 움직임, 음성 |
Two Factor | 4가지 Type중 두 가지 인증 매커니즘으로 구현 | Password + 지문인식 |
Multi Factor | 가장 강한 인증으로 3가지 이상의 인증 매커니즘 구현 | Token + PIN + 지문인식 |
■ legacy firewall
1. Legacy Firewall의 한계
어플리케이션은 변화하고 진화하였지만 방화벽은 여전히 그대로였다.
legacy F/W 나 Stateful inspection F/W 등은 어플리케이션을 제어하기에는 무리가 있다.
Ports != Applications IP Addresses != Users Packets != Contents
방화벽은 이제 "어플리케이션 레벨에서, 유저 단위로, 컨텐츠를 제어" 해야할 필요성이 생겼다.
그래서 Next Generation 즉, 차세대 방화벽이 나타난 것이다.
2009년 가트너는 어플리케이션 레벨에서의 보안정책 구조의 강화뿐만 아니라
복잡하고 정교한 공격을 탐지하고 차단할 수 있는 기능을 제공하는
차세대 방화벽의 필요성이 가속화 되고 있다고 보았다.
2. "Lecacy Firewall" VS "Next Generation Firewall"
기존의 방화벽과 차세대 방화벽이 어떻게 차이점이 있는지, 차세대 방화벽이 어떠한 경쟁력을 갖는지 알아보자.
2-1. Legacy Firewall 특징
* 1세대, Packet Filter Firewall
패킷필터링 방화벽은 1세대 방화벽으로, 1980년 중반에 등장했다.
일반적으로 Router에 포함되어 있는 방화벽이라고 볼 수 있다.
Ip header, port 정보로 접근을 허용하거나 차단하는 방화벽이다. 정말 단순하다.
ip, port만 보고 판단하니까, 어플리케이션 레벨의 컨트롤이 힘들다.
Well-known port를 사용하는 DNS, SMTP, HTTP 등의 전통적인 어플리케이션은
제어가 어느정도 가능하지만, JAVA, RPC, FTP 등의 다이나믹한 기능을 하는 어플리케이션들은 제어가 불가능하다.
게다가 룰이 많이 생기면 많은 포트가 외부로 노출되는 것이다.
* 2세대, Stateful Inspection Firewall
1994년에 CheckPoint사에 의해서 혁신적으로 개발된 firewall이다.
패킷필터링 방화벽의 단점을 보완하기 위해 state table, 상태 테이블이라는 개념을 사용한다.
트래픽의 흐름안에서 포트번호를 기반으로 트래픽을 분류하여 필터링하는 방화벽이다.
들어오는 포트, 나가는 포트를 기억하기 때문에 그 세션에 대한 검사가 가능한 방화벽임,
현존하는 보안제품에는 모두 이 방화벽의 기능이 들어 있다고 보면된다.
하지만 Stateful inspection도 단점이 존재한다.
어플리케이션을 이용한 우회 접근통제가 불가능하다.
게임, 메신져, p2p 등 어플리케이션 단위로 패킷을 판별하여 필터링 할 수 없다.
또한, 방화벽이 방어모드로 들어가기 전에 맺어진 연결에 대해서는 수정이 불가능하다.
2-2. Next Generation Firewall 특징
자 1, 2세대 방화벽이 부족하다는건 잘 알았을 것이다. 그래서 이제 나온게 차세대 방화벽 (NG-FW) 이다.
신뢰할 수 있는 Gateway 경계에서 강제로 정책을 제어하고, 모든 트래픽을 검사한다.
사실 차세대 방화벽은 UTM이라고 봐도 무방하다.
그냥.. 좋다라는 말밖에 할게 없다. 매우 고가의 장비지만 확실히 좋다.
우선 모든 직원들의 SNS 통신을 차단해주세요. 아! 홍보팀, 인사팀은 제외해주시는데 저희는 기업을 홍보할 때 트위터랑 페이스북만 쓰니까 홍보팀, 인사팀 직원들만 트위터, 페이스북에 한해 허용이 필요한데, 굳이 chat기능은 필요없으니까 인사팀 김OO대리만 제외하고 chat기능은 차단바랍니다. 그리고 지금 토렌트 차단정책 올라가 있는걸로 아는데, 송OO대표님은 제외해주시고, 중국, 러시아 대역 통신 모두 차단추가해주시고요. 이번 자바 업데이트 버전에서 취약점나왔던데 전사 직원 자바업데이트 막아주세요. |
위와 같은 식의 복잡한 요구사항도 단 몇줄에 해결되는 신통방통한 방화벽이다.
NG Firewall에는 대표적으로 많이쓰는 PaloAlto가 있다.
팔로알토는 효율적으로 위협에 대응하기 위해 Application, User, Contents 기반의
■ VPN
1. 들어가면서
최근 한국수력원자력의 내부자료유출 사건 기사를 보면 용의자가 중국 선양에 있는 VPN(가상 사설망)업체를 통해 한수원에 접속하여 정보를 빼낸 듯 하다는 말이 많이 나타난다. 예전의 농협 전산망 중단 사건 때도 VPN을 거쳐 농협 전산망에 접속한 흔적을 발견했다는 기사가 나곤 했다. 여기에 공통적으로 해킹의 수단으로 사용된 것이 VPN인데 해커들이 VPN을 통해 IP 주소를 우회해서 접속하였다는 것으로 마치 VPN이 IP 주소를 우회하는 수단으로 오해를 받고 있다. 뿐만 아니라 스마트폰 등에서도 VPN 앱을 검색하면 수많은 VPN 앱이 나타나는데, 대부분의 용도가 차단된 사이트를 우회해서 접속하거나 혹은 자신의 IP를 감추는데 사용할 수 있다고 되어 있다.
이러한 기사나 앱의 용도로 보면 VPN은 마치 보안을 뚫기 위한 도구로 오해하기 쉬우나 실제로 VPN은 안전한 네트워크 접속을 위한 도구로 개발되었으며 용도에 맞게 사용한다면 보안을 강화하는데 큰 도움을 줄 수 있다. 이 글에서는 VPN에 대한 유래와 기본적인 개념에 대해서 설명하고자 한다.
2. 사설망(Private Network)과 공중망(Public Network)
VPN에 대한 이해를 위해서는 먼저 사설망(Private Network)과 공중망(Public Network)에 대한 이해가 필요하다.
- 사설망(Private Network)이란 특정한 회사나 조직이 소유하고 독점적으로 사용하는 네트워크를 의미한다. 위키피디아에서는 “사설 IP 주소 공간을 이용하는 네트워크이며 RFC 1918과 RFC 4193 표준을 준수한다. 이러한 주소는 가정, 사무실, 기업 랜에 쓰인다”라고 설명하고 있다. 쉽게 말해서 우리가 가정에서 공유기 내부에서 사설 IP로 사용하고 있는 네트워크가 대표적인 사설망이라고 보면 된다.
- 공중망(Public Network)은 사설망과 대칭되는 개념으로 불특정 다수의 사용자에게 서비스를 제공하는 통신망으로 우리가 흔히 쓰고 있는 인터넷이 대표적인 공중망이라고 볼 수 있다.
우리가 알고 있는 대표적인 사설망으로는 회사 내부의 네트워크, 행정전산망이나 금융 기관에서 사용하고 있는 금융망 등을 들 수 있는데, 사설망은 보안과 일정한 통신 품질을 제공한다는 면에서 공중망에 비해 장점이 있다.
그런데 은행 등에서 본점과 지점을 사설망으로 연결하고자 할 경우에는 어떻게 연결할 것인지를 고민해보자. 가장 안전하게 연결하고 싶다면 본점과 지점을 전용회선으로 연결하고 이를 사설망으로 구축하면 될 것이다. 그러나 전용회선의 경우 보안성이나 품질 면에서는 인터넷 망에 비해서 뛰어날 수도 있으나(최근에는 인터넷이 품질이나 속도는 더 뛰어나다) 직접 전용망을 구축하거나 통신 사업자에게서 전용망을 임대하고 이를 연결하기 위한 전용 네트워크 장비를 도입하는데 막대한 비용이 소요된다.
위의 그림은 2000년대 초반 데이콤(현재는 LG U+)에서 서비스하던 보라넷 전용선의 가격이다. 그림에서 볼 수 있듯이 512Kbps의 속도를 내는 전용선을 임대하는 경우에도 수십에서 수백만원의 비용을 지불해야만 했음을 알 수 있다. 이러한 이유로 고가의 전용망을 대체하여 인터넷을 이용하여 사설망처럼 안전한 전용 네트워크를 구성하고자 하는 요구가 생겨났는데, 이러한 요구로 개발된 것이 바로 VPN(Virtual Private Network, 가상 사설망)이다. 최근의 기업 전용선 서비스는 저 당시의 전용선 서비스와는 달리 인터넷 망을 이용하여 고정 IP를 부여하는 서비스가 대부분으로 엄밀한 의미에서의 사설망이라고 볼 수는 없다. 물론 최근에도 기관간에 전용망을 구축해주는 서비스는 통신사업자들이 계속 수행하고 있으나, 그 비용은 여전히 높은 실정이다.
3. VPN의 개념
앞에서 설명한대로 VPN은 인터넷을 이용하여 고비용의 사설망을 대체하는 효과를 얻기 위한 기술로 인터넷망과 같은 공중망을 사용하여 둘 이상의 네트워크를 안전하게 연결하기 위하여 가상의 터널을 만들고 암호화된 데이터를 전송할 수 있도록 구성된 네트워크라고 정의할 수 있으며 공중망 상에서 구축되는 논리적인 전용망이라고 할 수 있다. 위키피디아에서는 다음과 같이 VPN을 정의하고 있다.
공중 네트워크를 통해 한 회사나 몇몇 단체가 내용을 바깥 사람에게 드러내지 않고 통신할 목적으로 쓰이는 사설 통신망이다. 가상 사설망에서 메시지는 인터넷과 같은 공공망 위에서 표준 프로토콜을 써서 전달되거나, 가상 사설망 서비스 제공자와 고객이 서비스 수준 계약을 맺은 후 서비스 제공자의 사설망을 통해 전달된다.
위의 그림에서와 같이 본점과 지점간에 전용망을 연결하는 것과 공중망(인터넷) 상에서 VPN 터널을 구성하고 VPN을 연결하는 것이 논리적으로 동일하다고 할 수 있으며, VPN은 인터넷을 통해 전용망과 같은 사설 네트워크를 구성할 수 있도록 해주는 기술이라고 이해하면 된다.
4. VPN 터널링 프로토콜
VPN 연결을 구성하는 가장 중요한 요소인 VPN 터널링 프로토콜은 크게 VPN 연결 지점간에 오가는 데이터 패킷의 암호화, VPN 터널의 생성 및 관리, 그리고 암호화 키 관리를 수행한다. 터널링 프로토콜은 데이터가 전송 네트워크를 통과할 수 있도록 하는 라우팅 정보를 포함한 헤더와 개인데이터를 캡슐화한다. 캡슐화된 프레임은 헤더에 추가되어 있는 라우팅 정보를 기반으로 인터넷과 같은 공중망을 경유하여 터널의 엔드포인트로 전송되고 목적지에 도달하면 디캡슐화 되어 최종 목적지로 향하게 된다.
대표적인 VPN 터널링 프로토콜로는 PPTP(Point-to-Point Tunneling Protocol), L2TP(Layer 2 Tunneling Protocol), IPsec(IP Security) 등을 들 수 있다.
4.1 PPTP(Point-to-Point Tunneling Protocol)
PPTP는 PPP(Point-to-Point) 접속을 확장하여 원격 사용자와 사설망 사이의 보안 접속을 제공하는 Layer 2 터널링 프로토콜로 마이크로소프트, 3Com 등이 공동으로 제안하였다. PPTP는 인터넷 프로토콜인 TCP/IP를 그대로 이용하면서도 외부인이 접근할 수 없는 별도의 가상사설망을 구축할 수 있도록 해주는 프로토콜이다. PPTP를 사용하여 VPN 사용자(클라이언트)는 PPP(우리가 흔히 쓰는 다이얼업 방식의 인터넷 연결이 여기에 해당된다) 방식으로 서버에 접속한 후 인증을 받으면 VPN 터널이 생성되고 이를 통해 VPN 연결이 가능해진다. 주로 외부에서 사내의 서버에 접속하기 위해 널리 이용되며 Microsoft Windows, 안드로이드 등 다양한 OS에서 기본적으로 제공하고 있다.
위의 그림은 Windows와 안드로이드에 기본으로 내장된 VPN 클라이언트에서 PPTP를 지원하는 예를 나타내고 있다.
위의 그림은 PPTP 프로토콜의 캡슐화 및 암호화 과정을 나태낸다. 그림에서와 같이 터널링된 데이터에 대해서 PPTP 프로토콜은 수정된 버전의 GRE(Generic Routing Encapsulation)를 사용하여 PPP 프레임을 캡슐화하고 캡슐화된 PPP 프레임의 페이로드에 대해 암호화나 압축을 수행하게 된다. 이 때 PPP 프레임은 MS-CHAP v2 또는 EAP-TLS 인증 프로세스에서 생성된 암호화 키를 사용하여MPPE(Microsoft Point-to-Point Encryption, Microsoft 지점 간 암호화)로 암호화할 수 있다. 사용자 인증은 PPP 인증을 이용한다.
4.2 L2TP (Layer 2 Tunneling Protcol)
L2TP는 Microsoft가 제안한 PPTP와 Cisco가 제안한 L2F(Layer 2 Forwarding) 프로토콜을 결합한 것으로 PPTP의 장점과 L2F의 장점을 하나로 모으자는 의도로 개발된 프로토콜이다. PPTP와는 달리 L2TP는 IP 네트워크(UTP/IP) 뿐만 아니라 IP 전송계층이 없는 WAN 구간에서도 사용이 가능하며 X25, 프레임 릴레이, ATM(Asynchronous Transfer Moder) 등 다양한 네트워크를 지원한다는 장점이 있다. PPTP에 비해서 L2TP는 다음과 같은 차이점을 갖는다.
- PPTP는 IP기반의 네트워크만 지원하는 반면 L2TP는 패킷 중심의 지점간 연결이기만 하면 통신이 가능하다. L2TP는 IP(TCP가 아닌 UDP 사용), 프레임 릴레이 PVC(permanent virtual circuit), X.25 VC(virtual circuit), ATM VC에서 사용할 수 있다.
- PPTP는 두 지점 사이에 하나의 터널만 가능하지만 L2TP는 두 지점 사이에 여러개의 터널을 사용할 수 있으며 터널에 따른 QoS를 적용할 수 있다.
- PPTP와 달리 PPP 데이터 그램을 암호화하지 않으므로 암호화에는 IPsec(IP Security)를 사용하는데 이러한 L2TP와 IPsec의 조합을 L2TP/IPsec이라고 한다.
L2TP/IPsec의 캡슐화는 L2TP 캡슐화와 IPsec 캡슐화의 두 단계로 구성된다.
위의 그림과 같이 PPP 프레임(PPP 헤더+IP 데이터그램)이 L2TP 헤더 및 UDP 헤더와 함께 래핑된다.
다음으로 L2TP 메시지가 IPsec ESP(Encapsulating Security Payload) 헤더 및 트레일러, 메시지 무결성과 인증을 제공하는 IPsec 인증 트레일러, 최종 IP 헤더와 함께 래핑된다. IP 헤더에는 VPN 클라이언트와 VPN 서버에 해당하는 원본 및 대상 IP 주소가 포함되어 있다. 이 때, L2TP 메시지는IKE(Internet Key Exchange) 협상 프로세스에서 생성된 암호화키를 사용하여 DES(Date Encryption Standard) 또는 3DES(Triple DES)로 암호화된다. L2TP에서는 인증서 혹은 사전 공유키를 사용하여 인증을 수행한다.
4.3 IPsec(IP Security)
IPsec은 VPN 터널링의 업계 표준 프로토콜로 강력한 사용자 인증과 암호화를 제공하는 Layer 3 프로토콜이다. IETF IPsec Working Group에 의해 제안되었으며 데이터 송신자의 인증을 허용하는 인증 헤더(AH)와, 송신자의 인증 및 데이터 암호화를 함께 지원하는 보안 페이로드 캡슐화(ESP: Encapsulating Security Payload)의 두 종류의 보안 서비스를 제공한다.
- 인증 헤더(Authentication Header, AH): 데이터의 무결성과 인증 및 재사용 방지를 위한 헤더로 페이로드는 암호화하지 않아 완전한 기밀을 보장하지는 않으나 Replay Attack을 방지함
- 보안 페이로드 캡슐화(Encapsulating Security Payload, ESP): 데이터의 무결성과 인증 및 기밀성을 제공, 트랜스포트 계층 세그먼트를 암호화할 경우와 전체 IP 패킷을 암호화할 경우에 사용
IPsec은 보안 게이트웨이 간의 연결 상태에 따라 터널 모드와 전송(Transport) 모드의 두가지 모드로 나뉘어진다.
터널 모드에서는 IP 헤더와 페이로드를 모두 암호화하지만 전송 모드에서는 페이로드만 암호화하는데 두 모드의 특징은 다음과 같다.
- 전송(Transport) 모드
- IP 페이로드만 암호화되고 IP 헤더는 변하지 않음
- 패킷에 작은 바이트(byte)만 더해지는 장점이 있음
- 공용 네트워크상에서 패킷의 마지막 출발지와 목적지를 식별할 수 있으므로 QoS 등이 가능함
- 클라이언트가 패킷에 대한 암호화, 복호화를 수행함
- IP 헤더가 암호화되지 않으므로 Layer 4 이상에서는 트래픽을 분석할 수 있음
- 터널 모드
- IP 헤더와 페이로드가 모두 암호화되며 새로운 패킷의 페이로드가 됨
- 라우터가 IPsec 프록시처럼 동작하게 하고 라우터가 호스트 대신에 암호화를 수행함
- 출발지의 라우터가 패킷을 암호화하고 IPsec을 통해 전달함
- 목적지의 라우터는 IPsec을 통해 전달된 패킷을 복호화 함
- 단말이 IPsec을 수정할 필요가 없으며 트래픽을 분석할 수 없다는 장점이 있음
IPsec은 LAN-to-LAN 방식의 VPN과 Dialup-To-LAN 방식을 동시에 지원할 뿐 아니라 IPv6를 필수적으로 지원하도록 되어 있어서 확장성에 유리하다는 장점과 함께 서로 다른 VPN 제품들 간의 호환성을 극대화할 수 있다는 점에서 많은 장점이 있으나 IP 프로토콜 처리 비용 증가 및 통신 지연으로 인한 성능 저하의 우려가 존재한다.
5. 맺음말
이상으로 VPN의 유래와 개념에 대해서 간략하게 살펴보았다. 서두에서 언급한 바와 같이 VPN은 인터넷과 같은 공중망에서 전용망과 같은 보안 네트워크를 구현하기 위해 개발된 기술로 결코 해킹을 위한 IP 우회 수단이 아니라는 점을 이 글을 통해 전하고자 한다. 다음에는 VPN의 주요 사용 사례와 실제 VPN을 구축하는 내용에 대해서 논하고자 한다.
■ VDI (데스크탑 가상화)
1. 기존 데스크탑 환경의 문제점
대부분 기업체의 IT 인프라 투자는 중요 서버나 스토리지 네트워크 등에 집중되고 있으며, 장애 대응 방안이나 보안 등 IT 운영 관리도 서버 및 스토리지를 중심으로 진행되고 있다. 통상 서버나 스토리지 등 주요 IT 인프라는 99.999%의 가용성(일년에 5분 이내의 다운타임)을 보장을 목표로 투자가 진행되나, 정작 데스크탑에 대해서는 이러한 투자나 관리가 수행되는 기업은 거의 없는 것이 현실이라고 할 수 있다.
알려진 바에 의하면, PC나 노트북 등 데스크탑 환경은 99.5%의 가용성(일년에 43시간의 장애 시간)을 만족하는 수준이며 이로 인해, 일반 기업체의 사용자는 데스크탑 환경의 장애로 인하여 연간 2일의 업무 손실을 초래하고 있다고 한다.
그럼에도 불구하고, 대부분의 기업은 여전히 데스크탑을 사무용품과 동일한 수준으로 관리하고 있으며, 관리 부서도 IT 부서가 아닌 총무 부서 등으로 분산되어 있는 것이 현실이다.
구체적으로 현재 기업들이 겪고 있는 데스크탑 환경의 문제점을 살펴보면 다음의 6가지로 요약할 수 있다.
이기종 환경
기업들은 데스크탑을 사용연한(통상 3~5년)에 맞춰서 사용자별로 구매해서 지급하고 있다. 이로 인해서, 기업에서 사용중인 데스크탑은 하드웨어, OS, 어플리케이션 등이 통일되지 못하고 구입 시기에 따라서 다양할 수 밖에 없다. 이로 인하여, 전사적으로 통합된 데스크탑 관리 및 사용 정책 설정이 불가능하다.
높은 관리 비용
IDC의 자료에 의하면 미국 기업들이 데스크탑 한대를 관리하기 위하여 지출하는 총 TCO(Total Cost of Ownership)는 2006년 현재 대당 $6,800에 이른다고 한다. 이 비용 중의 49%는 사용자 관리(OS 및 어플리케이션 설치 등)에 사용되고, 29%는 하드웨어 및 소프트웨어, 11%는 기술 지원 비용, 9%는 관리 비용으로 사용된다고 한다.
비효율적인 관리
IDC에 의하면, 데스크탑 관리 활동의 31%는 하드웨어 유지보수이며, 16%는 헬프데스크 운영, 12%는 사용자 소프트웨어 관리, 7%는 OS 설치, 6%는 업그레이드에 투자되는 것으로 알려져 있으며, 28%는 기타 데스크탑에 관련된 잡무(네트워크 연결, 데이터 복구 등)에 할애되는 등, 투자되는 TCO에 비해 효율적인 데스크탑 관리가 이루어지지 못한다는 것이 현실이다.
보안 취약
최근의 보안 사고의 대부분은 서버나 스토리지 등 데이터 센터 인프라에 대한 공격보다는 사용자 데스크탑에 대한 해킹이나 바이러스로 인해 발생하고 있으며, 사용자 데스크탑의 도난 및 분실로 인한 중요 기업 정보의 유출 사례가 빈번해지고 있다. 이로 인해, 기업은 사용자 데스크탑 환경에 대한 보안 강화에 막대한 IT 예산을 투입하고 있으며, 그 비용은 점점 증가할 것으로 예상된다.
호환성 및 라이선스 불일치
대부분의 기업은 표준 OS와 표준 어플리케이션을 지정해두고 있음에도 불구하고, 사용자들이 임의로 OS를 변경하거나, 버전이 다른 어플리케이션을 설치함으로 인해서, 호환성 및 라이선스 불일치 문제가 발생한다. 이로 인해서 데스크탑의 장애가 발생하고 업무 중단으로 연결되는 경우가 빈번하다. 뿐만 아니라, 기업이 계약하지 않은 어플리케이션을 사용자가 임의로 설치함으로 인한 법적 문제까지 발생하는 경우가 빈번하다.
낮은 자원 활용률
데스크탑 PC나 노트북의 하드웨어 성능은 비약적으로 발전하고 있으므로, 신규로 도입되는 데스크탑 하드웨어의 성능은 이전의 서버나 워크스테이션을 대체하고도 남을 만큼 충분하다. 그럼에도 불구하고, 데스크탑은 정해진 사용 연한을 넘어서게 되면 폐기되고 신규 하드웨어로 교체되는 등, 자원 낭비가 점점 심해지고 있다.
2. 프리젠테이션 가상화를 이용한 데스크탑 문제점 해결
앞 절에서 살펴본 바와 같이 대부분의 기업은 데스크탑 환경의 중요성을 점차 인식하고 있으며, 상기의 문제점을 효과적으로 해결하고자 하는 방안을 강구하게 되었다. 이와 더불어 많은 IT 벤더 들은 전사의 데스크탑을 효율적으로 운영, 관리할 수 있는 솔루션을 개발하여 제시하고 있다.
이러한 관점에서 최근의 가상화 기술을 데스크탑 관리 및 운영에 적용하고자 하는 시도가 이루어져 왔으며, 이중에서 가장 널리 알려진 기술이 Citrix가 제공하고 있는 프리젠테이션 가상화 또는 SBC(Server Based Computing)로 통칭되는 어플리케이션 가상화와 데스크탑 가상화 기술이라고 할 수 있다.
그림 1 프리젠테이션 가상화 기본 개념
프리젠테이션 그림 1과 같이 가상화 기술은 사용자가 수행하고자 하는 모든 어플리케이션 또는 데이터는 서버에 존재하고 사용자 데스크탑은 단지 입출력 장치로만 사용되어, 사용자에게는 서버에서 수행되는 어플리케이션이나 데스크탑 환경이 이미지로만 전송되는 기술이다.
3. 데스크탑 가상화 – Citrix XenDesktop
프리젠테이션 가상화 기술은 어플리케이션 가상화와 데스크탑 가상화 기술로 구분할 수 있다고 지난 번 글에서 논한 바 있다. 다시 한번 두 기술의 간략한 차이에 대해서 논하면 다음과 같다.
어플리케이션 가상화는 한대의 서버에서 복수의 사용자 어플리케이션이 수행되고 그 어플리케이션에 대한 이미지가 PC로 전송되는 기술인 반면, 데스크탑 가상화는 한대의 서버에 복수의 사용자를 위한 개별 데스크탑 환경을 가상머신으로 각각 제공하고, 각 데스크탑 환경의 수행 이미지를 사용자의 입출력 PC로 전송되는 기술이다.
이번 글에서는 프리젠테이션 가상화 기술 중에서 특히, 데스크탑 가상화 기술에 대해서 논하고, 데스크탑 가상화의 대표적인 솔루션인 Citrix의 XenDesktop에 대해서 알아보기로 하자.
데스크탑 가상화를 도입하는 목적으로는 다음의 네 가지 사항을 들 수 있다.
중앙 집중화된 전사 데스크탑 관리
어플리케이션 및 데이터의 중앙 집중화
데스크탑 보안성, 관리 유연성, 신뢰성 확보
장소 및 클라이언트 접속 환경에 무관한 데스크탑 환경 제공
데스크탑 가상화를 통해 전사 데스크탑 환경을 중앙으로 통합함으로써, 사용자 데스크탑에 대해서 IT 부서에서 근접 관리가 가능해질 뿐 아니라, 전사적으로 일관된 데스크탑 정책을 적용할 수 있게 된다. 뿐만 아니라, 사용자 어플리케이션과 데이터도 개별 데스크탑에 저장되는 것이 아니라, 중앙의 서버와 스토리지에 저장되고 실행됨으로써, 보안적인 측면과 더불어 라이선스 불일치 등의 문제점도 한번에 해결할 수 있다.
이와 동시에 사용자 입장에서는, 장소와 클라이언트 환경에 무관하게 자신의 데스크탑을 사용할 수 있게 됨으로써 업무의 연속성을 확보할 수 있을 뿐 아니라, 개발이나 테스트 등을 위한 데스크탑 환경도 손쉽게 제공 받을 수 있어, 데스크탑 설치 및 구성을 위한 시간과 비용을 획기적으로 절감할 수 있다.
뿐만 아니라, 서버 가상화 기술인 XenServer 상에 가상머신의 형태로 데스크탑을 제공함으로써, 직원의 데스크탑 활용도에 따라 서버 및 스토리지 투자가 가능해짐으로써, TCO를 절감이 가능할 뿐 아니라, 사용자 클라이언트는 단말로만 사용됨으로써, 데스크탑 PC의 교체 주기를 연장할 수 있어, 노후 PC로 인한 성능저하 문제를 막을 수 있다.
데스크탑 가상화 구성
그림 2 XenDesktop 구성도
그림 2에 XenDesktop 기반의 데스크탑 가상화 구성도가 나타나 있다. 그림에서 볼 수 있듯이, 사용자 데스크탑은 중앙의 데이터 센터의 XenServer 호스트 서버 위에 가상머신 형태로 설치되고, 사용자는 씬클라이언트, 노트북, PC 등 원하는 단말 장치에서 로그인하게 되면, 자신에게 할당된 데스크탑 이미지를 전송 받아서 기존 PC와 동일한 형태로 업무를 수행하게 된다.
■ SSO(Single Sign On)
1 SSO (Single Sign On)
1.1 SSO 개요
1.1.1 SSO 정의
하나의 아이디로 여러 사이트를 이용할 수 있는 시스템으로 'single sign on'의 첫글자를 따서 SSO라고도 한다. 여러 개의 사이트를 운영하는 대기업이나 인터넷 관련 기업이 각각의 회원을 통합 관리할 필요성이 생김에 따라 개발된 방식으로, 1997년 IBM이 개발하였으며 우리나라에는 2000년 코리아닷컴이 처음 도입하였다. 이후 삼성전자(주)와 SK 등이 도입하며 활성화되어, 애니패스와 오케이캐쉬백·롯데타운 등 다양한 사이트와 네티그리티·다우기술 등 솔루션 공급업체도 많이 설립되었다.
개인의 경우, 사이트에 접속하기 위하여 아이디와 패스워드는 물론 이름·전화번호 등 개인정보를 각 사이트마다 일일이 기록해야 하던 것을 한 번의 작업으로 끝나므로 불편함이 해소되며, 기업에서는 회원에 대한 통합관리가 가능해 마케팅을 극대화시킬 수 있다는 장점이 있다. 특히 권한관리시스템(EAM)과 함께 사용할 경우 보안성과 효율성을 함께 갖춘 통합인증시스템으로 활용할 수 있어 향후 더욱 인기를 끌 것으로 전망된다.
1.2 SSO 도입 목적
기하급수적인 인터넷 사용자의 증가와 발전으로 우리는 업무나 일상생활에서 수많은 인터넷 서비스를 접하게 되었고, 이제 인터넷은 우리 생활의 필수 불가결적인 요소가 되었다.그런데 이러한 여러 인터넷 서비스들은 사용자들의 개인 정보를 요구하고, 사용자가 이를제공해주는 경우에만 아이디를 발급하여 필요한 정보들을 얻을 수 있게끔 하고 있다. 이와같은 이유 때문에 사용자들은 그 수많은 서비스들 각각에 해당하는 자신의 인증 정보를 기억해야만 하는 불편함을 가지고 있다. 그래서 어떤 사람은 아이디와 패스워드를 따로 관리하는 목록을 만들거나 아이디와 패스워드를 관리하는 소프트웨어를 사용하거나 모든 아이디와 패스워드를 하나로 통일에서 사용하는 사람도 있다. 그러나 이런 현상은 보안의 관점에서 보면 상당한 취약성을 가지고 있다. 서비스 업체들에 제공된 개인 정보들이 유출되어악용되는 문제점을 가지고 있는 것이다. 만일 아이디와 패스워드의 목록이 다른 사람에게노출된다면 그 사람이 사용하고 있는 모든 아이디와 패스워드를 변경해야 한다. 시스템의아이디와 패스워드의 잦은 변경은 기업의 생산력을 떨어뜨리는 원인들이 되며 또한 보안상의 상당한 취약성을 가지고 있다. 이러한 보안상의 취약성과 생산력 저하를 극복하기 위해서 싱글사인온(Single Sign On, 이하 SSO)이란 개념이 나오게 되었다.
예를들어 A라는 게임 포탈사이트는 게임 흥행의 성공으로 User가 폭발적으로 추가 되었고, 그에 따라 UserDB(사용자데이터베이스)는 증가 되어야만 했습니다.기타 관리 서버등의 증설도 불가피하게 되었지요.거기에 사업 확장에 따른 B포털사이트와의 전략적 제휴까지 맺게 되어 A와B라는 포탈은 성격은 다르지만 A,B어느쪽의 유저라도 A와 B의 서비스를 부분적으로 이용가능 하게 되었습니다.
이렇듯 시스템의 규모가 커질 수록 시스템의 구조는 더욱 복잡해지고 관리하기는 더욱 힘들게 될 것입니다. 전문가가 아니라면 그 복잡한 구조를 이해하는 데, 더 어려움이 생길뿐만 아니라, 문제가 발생했을때 그 문제를 처리하는 과정에서도 더 많은 시간과 노력을 초래하게 만듭니다. 그래서 SSO이란 하나의 솔루션이 등장한 것입니다.
이러한 이슈를 중심으로 SSO은 상품에 따라 방식에 차이가 있습니다. 마치 DataBase가 여러 종류 인것 처럼요.
인터넷 뱅킹하실때 XecureWeb이란 보안 프로그램이 설치되는 걸 보신적이 있을겁니다.
자물쇠모양의 프로그램이 설치 되어 오른쪽 하단 트레이에 설치 되는데 이것은 PKI(Public key Infrastructure)란 인증 형태를 가지는 SSO이라고 볼 수 있습니다. 엄밀하게는 EAM(Extranet Access Management)라고 말해야 할지 모르겠지만, 사실상 SSO->EAM->IAM(Identify Access Management)과 같은 형태가 됩니다. 어떤 관점에서 바라보느냐 또는 어떤 대상을 주로 하는가가 차이랄까요.
SoftForum의 XecureWeb의 주된 이슈는 '지금 이 계좌에 접근 할 수 있는 권한이 있는 사람은 오직 '나뿐' 그리고 PKI방식을 통해 인증 받는다' 라는 것에 있는 것 같습니다.
보통 우리가 생각하는 session과 cookie의 개념으로 보면여기서는 xecureWeb이란 프로그램을 통해 Client측에 그 고유의 정보를 보관한다. 정도가 되겠습니다.
반면 Netegrity의 Siteminder의 경우는위의 XecureWeb이 하는 방식과 달리 서버측에서 Siteminder Policy Server란 정책 서버를 통해 통합 관리를 하게 됩니다.User의 인증, 인가정책, UserDB의 통합 등의 모든 컨트롤 역시 이 Policy Server에서 제어 합니다. Siteminder는 다양한 인증 방식을 제공하며(일반 ID/PW방식부터 지문인식에 이르기까지), 다양한 인증스키마를 웹 프로그래밍언어등과 연동해서 구현 할 수 있는 API를 제공하기도 합니다.
성격과 구현 방식의 차이로 인해, XecureWeb은 주로 은행권에서 , 그리고 Siteminder는 Korea.com을 비롯한 대기업이나 통합포털 사이트에서 많이 적용되어 왔습니다.
1.3 SSO 구성
1.3.1 SSO 개념도
1.3.2 SSO 구성요소
강력한 인증 기법을 이용한 SSO 시스템에는 인증서에 의한 인증 메커니즘, LDAP에 의한 접근제어 및 내부사용자 정보관리, 클라이언트와 서버 간의 데이터 암호화를 위한 통신보안 기술등이 필요하다.
■ (DPI) deep packet inspection
1. 개요
- 최근 인터넷 보안 침해 및 위협요소의 증가와 멀티미디어의 증가 및 트래픽 폭증으로 인해 네트워크 트래픽의 실시간 분석이 요구되고 있음
- 실시간 분석을 위한 기법으로는 네트워크 방화벽 시스템에서 패킷을 검사하는 SPI와 7계층인 어플리케이션까지 실시간 분석하는 DPI가 있음
2. 실시간 트래픽 분석 필요성
- 네트워크 보안, 혼잡관리 및 기타 사업상의 목적에 따라 트래픽 관리의 필요성이 증가
3. SPI
- Stateful Packet Inspection
- 주로 네트워크 방화벽 시스템을 위해 개발되어 온 기술
- 패킷의 헤더 정보를 조사하고 이들 정보가 블랙리스트에 있으면 패킷을 전달하지 않는 방식
- SPI는 세션 및 프리젠테이션이나 애플리케이션 계층을 읽을 수 없고, 이는 패킷의 페이로드 부분까지 들여다 볼 수 없음을 의미
- 패킷의 헤더 정보만을 통해 트래픽을 판단하기 때문에 트래픽에 대한 정교한 분석(특히, 애플리케이션 관련 추론)은 어렵지만, DPI에 비해 대용량의 트래픽을 매우 빠르게 처리할 수 있다
4. DPI
- Deep Packet Inspection
- 패킷의 헤더뿐만 아니라 콘텐츠가 담긴 페이로드부분까지 보는 기술
- 5~7계층까지 패킷을 분석, 따라서 DPI는 패킷의 내용까지 보는 기술
- DPI기술은 데이터 보호와 프라이버시 이슈 야기
- 망 중립성은 인터넷망 위에 흐르는 데이터 트래픽을 그 내용, 유형, 인터넷 주소, 제공사업자, 부착된 단말기기 등에 관계없이 동등하게 처리하는 것을 의미한다.
- 그러나 네트워크 보안, 혼잡관리 및 기타 사업상의 목적에 따라 트래픽 관리의 필요성이 증가하면서 트래픽 관리가 망 중립성을 저해하는 것이 아닌지에 대한 논란이 제기되고 있음
5. 상호비교
구분 | SPI | DPI |
조사계층 | 1~3계층 | 1~7계층 |
처리속도 | 빠름 | 느림 |
분석성 | 낮음 | 높음 |
비용 | 낮음 | 높음 |
■ 접근제어
■ 멀웨어(악성 프로그램(Malicious software))
바이러스(Virus) : 바이러스는 다른 대상(정상파일)을 감염시키는 형태로 실행되며, 감염시킬 대상이 존재하지 않을 때에는 실행되지 않습니다. 또한 감염 파일에서 다른 정상파일로의 자기 복제 기능을 가지고 있으나, 네트워크를 통하여 전파되지는 않습니다. 바이러스는 감염시키는 방식 및 위치에 따라, 부트바이러스, 파일 바이러스, 메모리 상주 바이러스, 매크로 바이러스 등으로 나뉩니다.
웜(Worm) : 웜은 감염시킬 대상이 존재하지 않아도, 스스로 실행될 수 있습니다. 자가복제 및 네트워크를 통한 전파도 가능합니다.
트로이목마(Trojan) : 트로이목마는 정상 파일을 가장하거나, 정상 파일 안에 삽입되어 실행되는 것이 특징입니다. 사용자의 설치를 유도한 후, 사용자 pc에 있는 정보를 해커에게 유출하는 악성 행위를 하는 프로그램 입니다. 최근 발생하는 대부분의 악성코드는 이 트로이목마 범주에 포함된다고 보시면 됩니다. 공격자들은 트로이 목마 악성코드를 이용하여 자신들이 원하는 목적(주로 금전적인 이득)을 달성하려고 합니다.
백도어(Backdoor) : 백도어는 말 그대로 ‘뒷문’으로, 시스템 관리자가 일부러 열어놓은 시스템의 구멍입니다. 해커가 이미 장악한 PC의 다음 침입을 쉽게 하기 위해, 사용자가 모르는 침입 루트를 뚫어 놓은 것입니다.
애드웨어(Adware) : 애드웨어는 광고 프로그램입니다. 프로그램 자체는 악의적인 행위를 하지 않지만, 광고를 띄워 사용자들에게 불편함을 초래합니다.
악성 봇(Malicious Bot) : 스스로 실행되지 못하고, 해커의 명령에 의해 원격에서 제어 또는 실행이 가능한 프로그램 혹은 코드입니다. 주로 취약점이나 백도어 등을 이용하여 전파되며, 스팸 메일 전송이나 분산 서비스 거부 공격(DDoS) 등에 악용됩니다. 사용자들에게 잘 알려진 '좀비PC'는 악성 봇에 의해 감염된 것입니다.
■ APT 공격
I. 다양하고 지속적인 지능형 타깃위협, APT 개요
가. APT(Advanced Persistent Threat) 정의
특수목적을 가진 조직이 기간 시설 망 또는 핵심보안업체 등을 표적으로 삼고 다양한 IT기술과 방식들을 이용해 지속적으로 정보를 수집하고 취약점을 파악하여 이를 바탕으로 피해를 끼치는 공격
나. APT의 특징
특징 | 설명 |
명확한 타겟 | 불특정 다수가 아닌 명확한 표적을 정하여 지속적인 정보수집 후 공격감행 |
우회공격 | 시스템에 직접 침투하는 것뿐 아니라, 표적 내부직원들이 이용하는 다양한 단말을 대상 |
지능화 | 한가지 기술만이 아닌 Zero-day 취약점, 악성코드 등 다양한 보안위협공격기술사용 |
지속적 | 특정조직이 특정목적을 달성하기 위해 끊임없이 새로운 기술과방식을 지속적으로 이용 |
II. APT의 공격 시나리오 및 공격기법
가. APT 공격 시나리오
침투 공격자가 취약한 시스템이나 직원들을 악성코드로 감염시켜 네트워크 내부로 침투 | 탐색 침투한 내부시스템 및 인프라구조에 대한정보를 수집한 후 다음 단계를 계획 | 수집 보호되지 않은 시스템상의 데이터 수집 또는 시스템운영방해 | 유출 (제어) - 공격자의근거자료데이터전송 - 시스템 운영방해 또는 장비파괴 |
나. APT의 공격방식
공격방식 | 설명 |
스피어피싱 (Spear Phishing) |
|
PLC (Programmable Logic Controller) |
|
익스플로잇(Exploit) |
|
내부자 위협 |
|
APT 라이프 사이클 |
|
사회공학적 기법(Social ngineering) |
|
* 선택과 집중의 방법을 통해 해킹대상의 집요한 지속적 공격
III. APT 공격 시나리오에 따른 공격기법
단계 | 공격기법 | 설명 |
침투 (Incursion) 훔친 인증정보, SQL 인젝션, 악성코드 등을사용하여 오랜시간에거쳐 공격대상 시스템에 활동 거점을 구축 | 관찰 (Reconnaissance) | APT 공격자들은 표적대상을 파악하기 위해 수개월에 걸쳐 철저히 분석 |
사회공학 (Social Engineering) | 내부 임직원의 실수 또는 부주의로첨부파일을 열도록 유도하거나 링크를 클릭하도록 하는 사회공학적 기법을 사용 | |
제로데이취약점 (Zero-day vulnerabilities) | 개발자들이 패치를 제공하기 전 침투할 수 있는 보안상의허점 | |
수동공격 (Manual Operation) | 자동화 대신 각각의 개별시스템과사람을 표적으로 삼고, 고도의 정교한 공격을 감행 | |
탐색 (Discovery) APT 공격자는 한번 시스템에 침입하면 목표로 하는 기관의 시스템에 대한정보를 수집하고 기밀데이터를 자동으로 검색 | 다중벡터 (Multiple Vector) | APT 공격 시 일단 악성코드가 호스트 시스템내에 구축이 되면 소프트웨어, 하드웨어 및 네트워크의 취약점을 탐색하기 위해 추가적인 공격툴들을 다운로드 |
은밀한 활동 (Run silent, run deep) | APT의 목표는 표적의 내부에 잠복하면서 장시간 정보를 확보 하는 것이므로, 모든 검색 프로세스는 보안탐지를 회피하도록 설계됨 | |
연구 및 분석 (Research and analysis) | 정보 검색은 네트워크구성, 사용자아이디 및 비밀번호등을 포함하여 확보된 시스템과 데이터에 대한 연구 및 분석을 수반함 | |
수집 (Capture) 보호되지 않은 시스템의 데이터는 공격자에게 노출 | 은닉 (Convert) | 1차 공격 성공 후, 정상 이용자로 가장하여 정보수집 및 모니터링 활동을 진행 |
권한상승 (privilege escalation & lateralization) | 시스템 접근을 위한 시스템 접근권한을 가진 직원에 대한 계정정보를 수집하기 위한 각종접근행위. (브루트포스(Brute Force) : 패스워드 등의 계정정보를 획득) | |
제어 (Control) APT 공격자는 표적시스템의 제어권한을 장악하여, 각종 기밀 데이터를 유출하며 SW 및 HW에 손상을 입힘 | 유출 (Exfiltration) | 기밀 데이터가 웹메일 또는 암호화된 패킷, 압축파일의 형태로 공격자에게 전송 |
중단 (Disruption) | APT 공격자는 원격시동 이나 SW, HW 시스템을 자동 종료 할수도 있음 |
IV. APT 대응방법
가. APT 대응체계
- APT 공격은 지능적이며, 고도의 기술력을 기반으로 행해지는 공격이므로, End-to-End로 전방위적인 보안체계수립이 필요하며, 망분리와 요소기술을 기반으로 안전한 시스템아키텍처를 제시함
- 또한 침해사고대응센터와 시큐리티대응센터를 분리, 운영하여, 예방과 대응활동을 균형 있게 추진
V. APT 대응활동
- APT 발생이전과 이후로 나누어, 위험예방전략, 악성코드유입최소화, 악성코드 감염예방, 데이터유출예방, 위험탐지와 대응활동 등을 수행
시기 | 활동 | 내용 |
위험발생 이전 (시큐리티 대응센터) | 위험 예방 전략 수립 | 보안관제 수행 위험분석 수행 보안전략 유효성 분석 |
위험발생 이전 (시큐리티 대응센터) | 악성코드 유입 최소화 | 보안 인식 교육 수행 지속적 보안 업데이트 관리 보안 소프트웨어 설치 및 운영 |
위험발생 이후 (침해사고 대응센터) | 악성코드 감염 예방 | 어플리케이션 화이트리스트 접근 권한의 최소화 네트워크 접근 제한 및 분리 신원확인 및 접근 권한관리 |
위험발생 이후 (침해사고 대응센터) | 데이터 유출 예방 | 중요 데이터 보호 중요 데이터 유출 예방 |
위험발생 이후 (침해사고 대응센터) | 위험 탐지와 대응 | 호스트 및 네트워크 이상징후 탐지 침해사고 대응 프로세스 수행 침해사고 포렌식 프로세스 수행 |
VI. APT 공격에 대한 대응방법
대응방법 | 보안 강화 내용 | 대상 조직 |
보안관리 및 운영 | 조직의 종합적인 보안위험 분석 후 보안체계 재정비 | 보안정책관리 조직 |
보안교육 강화 | 조직 구성원들의 적극적인 참여 유도, 효과적인 보안교육 실시 | 임직원 대상 |
엔드포인트 보안 | APT공격의 1차대상인 엔드포인트 보안 강화 인터넷, 이메일, 메신저, P2P 통신서비스 제한 | 엔드포인트 단말 |
접근권한관리 | 조직의 중요정보보호에 대한 접근권한관리, 권한관리자 최소화, 접근권한 세분화, 사람/기기 인증 추가 | 권한관리 인가자 |
중요정보 암호화 및 DLP운영 | 조직 내 중요정보는 암호화 저장, 정보유출방지를 위한 DLP(Data Loss Prevention)솔루션 운영 | 암호화 솔루션 |
계층형 방어 (Layered Defence) | 단계별, 용도별 배치로 계층적 방어 구현 | CPNT Layered 방어 |
- APT공격은 조직적으로 하나의 표적을 대상으로 장기간 지속적으로 이루어지므로, 조직내부의 구성원들의 체계적인 대응이 무엇보다도 중요함.
- 외부에서 들어오는 공격과 내부에서 유출되는 것을 동시에 감시 및 대응하는 종합적인 대책 필요
■ 일방향 암호화
m 일방향 암호화 방식은 해쉬함수를 이용하여 암호화된 값을 생성하며 복호화 되지 않는 방식이다.
m 해쉬함수는 임의의 길이를 갖는 메시지를 입력으로 하여 고정된 길이의 해쉬값 또는 해쉬 코드라 불리는 값을 생성하며,
동일한 입력 메시지에 대해 항상 동일한 값을 생성하지만 해쉬값만으로 입력 메시지를 유추 할 수 없어 전자서명 체계와 함께 데이터의 무결성을 위해 사용된다.
비밀번호와 같이 복호화가 필요 없지만 입력 값의 정확성 검증이 필요한 경우에 사용하고 있다.
m 대표적인 해쉬함수로는 SHA-2(SHA-224/256/384/512), RIPEMD-160 등과 국내에서 개발한 HAS-160이 있다.
누군가의 신원을 증명할 때 인증의 방법으로 사용하는 비밀번호는 위와 같은 단방향 암호화를 사용합니다.
비밀번호를 저장하기 전에 암호화하여 저장합니다.
예를 들어 비밀번호를 ‘password’라 만들었다면 이를 암호화하여 ‘WaBauZ2.Hnt2’라 저장합니다.
평문 ‘password’와 암호문 ‘WaBauZ2.Hnt2’ 사이에는 아무런 유사성을 찾을 수 없어야 합니다.
이러한 단방향 암호화는 역변환을 할 수 없습니다.
어떠한 방법을 쓰더라도 암호문을 원래의 평문으로 되돌릴 수 없습니다.
사용자가 입력한 비밀번호가 맞는지 확인하기 위해 저장된 비밀번호를 복호화하지 않고,
입력한 비밀번호를 다시 암호화하여 저장된 비밀번호와 일치하는지를 비교하여 신원을 인증합니다.
대다수 암호화 과정은 역변환이 가능합니다.
'자격증 > 정보보안기사' 카테고리의 다른 글
시스템 및 네트워크 보안특성파악(작업형) (0) | 2017.05.15 |
---|---|
정보보안기사 실기 기출 정리 (0) | 2017.04.22 |
정보보안 관리 및 법규 - 정보보호 관련 법규 - (0) | 2016.07.21 |
정보보안 관리 및 법규 - 정보보호 관리 - (0) | 2016.07.21 |
정보보안일반 - 암호학 - (0) | 2016.07.21 |
댓글