1/09/2007

[info] 사이버위협 (정보보안백문백답)

1. 해커란 어떤 사람을 가리키나?

- 본래 해커(Hacker)는 어떤 분야든지 그 분야에 심취하여 즐기면서도 사회나 세계에 도움이 되는 사람을 뜻하는 용어로, 60년대 미국 MIT의 작은 클럽에 속한 대학생들이 사용하기 시작하였다. 이들은 컴퓨터를 광적으로 좋아하여 밤낮으로 컴퓨터에 매달려 새로운 프로그램을 제작하고 토론하며 창조와 정의를 주장하였다. 또한, 전화를 공짜로 사용하는 방법을 전파시켰으며 스스로 그러한 장비를 제작하여 판매하기도 하였다.

- 시간이 지나고 세상이 변하면서 진정한 해커들의 숫자는 점차 줄어들었고, 초기의 '정보의 공유' 정신은 '정보 엿보기'로 변질되었다. 이들은 일반적으로 시스템 관리자의 권한을 불법적으로 획득하고 이를 악용해 다른 사용자에게 피해를 주고 있어 요즘은 '정보 파괴자'로까지 불리고 있다. 하지만 컴퓨터에 대한 심도 있는 지식과 경험을 바탕으로 악의적인 해커의 불법적 행위를 방지하는데 주력하는 해커를 화이트해커(White Hacker)라고 부르기도 한다.

- 흔히 TV나 신문에서 말하는 해커는 사실 크래커(Cracker)를 의미하는 것으로, 자신만의 이익이나 기분에 따라 사회나 세상에 해악을 주는 자를 말한다. 이들 중 대부분이 스크립트 키드(Script Kid)로 컴퓨터의 동작 원리와 내부 등에 대해서는 상세하게 이해하지 못한 채 인터넷 등에서 얻은 프로그램을 사용하여 몇 개의 버튼이나 명령어로 불법적인 행동을 하는 자들을 뜻한다.


2. 최근 유행하고 있는 해킹 기법 중 피싱이란 무엇인가?

- 피싱(Phishing)은 개인정보(Private data)와 낚시(Fishing)의 합성어로 유명 은행이나 전자거래업체 등의 홈페이지와 동일하게 보이는 위장 홈페이지를 만든 후, 인터넷 이용자들에게 전자우편을 보내 위장 홈페이지에 접속하여 계좌번호, 주민등록번호 등의 개인정보를 입력하도록 유인하는 신종 사기 수법을 말한다. 현재까지는 주로 외국에서 유행하는 신종 스팸으로 알려져 있다.

- 피싱의 유형은 크게 두 가지이다. 먼저, 유명 은행이나 카드사 등을 사칭(업체 마크, 로고 등이 정교하게 표현되어 있어도 위장 사이트일 수 있음)하여 계좌번호, 카드번호, 비밀번호 등의 확인 또는 갱신을 유도하는 유형이 있다. 두 번째로는 포털사이트나 쇼핑몰 등을 사칭하여 이벤트 당첨, 사은품 제공 등을 미끼로 수신자의 주민등록번호, 핸드폰번호 등의 개인정보를 입력하도록 유도하는 유형도 있다.

- 위장 홈페이지에 입력된 정보는 사기꾼의 손에 넘어가 각종 금융사기에 이용될 수 있다. 최근 미국 등 해외에서는 신용카드사나 은행이 전자 우편을 보낸 것처럼 위장해 개인의 금융정보(계좌번호, 카드번호, 비밀번호, 주민등록번호 등)를 요구, 금전적인 피해를 보는 사례가 잇따르고 있어 심각한 사회문제가 되고 있다.

- 이렇게 피싱이 영어권 국가들을 중심으로 급속하게 확산되고 있는 반면, 아직까지 한국에서의 큰 피해는 보고되지 않은 상태이다. 그 이유의 대부분은 피싱 전자우편이 영문으로 되어 있어 국내 사용자들이 무시하고 지나치기 때문인 것으로 풀이된다. 하지만 한국의 서버들이 피싱 범죄에 악용되는 사례가 적지 않은 것으로 알려져 있고, 조만간 한국어로 작성된 피싱 전자우편이 나타날 우려가 있어 사용자의 주의와 대책 마련이 필요한 것으로 지적되고 있다.


3. 악성코드는 무엇이며, 어떤 것들이 있나?

- 악성코드(Malicious Code, Malware)는 사용자의 의사와는 관계없이 시스템을 파괴하거나 정보를 유출하는 등 악의적 활동을 수행하도록 의도된 소프트웨어를 말한다. 현재는 웜(Worm), 바이러스(Virus), 트로이 목마(Trojan Horse), 백도어(Backdoor), 스파이웨어(Sypware), 애드웨어(Adware) 등을 통칭하는 개념으로 사용되고 있다. 이 중에서 대표적인 악성코드인 웜, 바이러스와 트로이목마에 대해서 설명하겠다.

- 먼저, 컴퓨터 바이러스는 자기복제 능력과 함께 사용자 몰래 다른 프로그램에 자신 또는 자신의 변형을 감염시켜 기생하는 능력을 가지고 있다. 바이러스에 감염되면, 해당 프로그램이 실행될 때마다 하드 디스크의 포맷, 파일 삭제 등의 악영향이 계속 수행된다.

- 웜은 컴퓨터 바이러스와는 달리 네트워크를 통하여 자기 자신을 복제하여 전파하면서 속도저하 등의 악영향을 미치는 프로그램이다. 웜은 일반적으로 강력한 전파 능력을 가지고 있지만 컴퓨터 바이러스처럼 다른 프로그램을 감염시키거나 기생하지 않는 특성을 가지고 있다. 초기의 웜은 독자적으로 동작하는 것이 주류를 이루고 있었지만 최근에는 전자우편을 통해 확산되고 있다.

- 트로이 목마라는 이름은 그리스 신화에서 유래된 것으로, 외관상 정상적인 기능을 하는 프로그램처럼 보이지만 실제로는 사용자 몰래 불법적인 일을 수행하는 프로그램이다. 이 악성코드는 다른 프로그램에 기생하지도 않고 자기복제 능력과 전파 능력을 가지고 있지도 않다. 하지만, 일단 설치되면 원격지의 컴퓨터에서 사용자의 컴퓨터를 마음대로 제어할 수 있다.

- 최근에는 이들 악성코드들의 특성이 서로 결합되거나 해킹기술과 접목된 신종 악성코드들이 나타나고 있어 즉각적인 대응이 더욱 어렵다.


4. 스파이웨어와 애드웨어는 어떤 것인가?

- 스파이웨어는 주로 무료 또는 유료로 배포되는 공개 프로그램을 통해 유포되어 개인이나 조직에 대한 정보를 수집하여 유출하는 프로그램이다. 스파이웨어가 설치되면, 컴퓨터 사용자의 개인 정보, 키보드 입력 등을 사전에 지정된 특정 서버로 보내도록 되어 있어 이용자의 신상정보뿐 아니라 비밀번호 등도 함께 유출될 위험성이 있다.

- 반면, 애드웨어는 사용자가 인터넷을 검색하는 동안 팝업 창 등을 이용하여 광고를 보여주는 프로그램이다. 애드웨어는 미국의 어느 인터넷 광고전문회사에서 개인 이용자의 취향을 파악하기 위해 사용을 시작한 것으로, 광고(advertisement) 효과를 높이기 위한 소프트웨어라는 의미로 애드웨어라 불린다. 애드웨어는 다음과 같은 피해를 발생시킬 수 있다.

* 사용자가 정상적으로 컴퓨터를 사용하기 어려울 정도로 무분별한 팝업광고 유발

* 인터넷 브라우저의 시작 페이지를 특정 홈페이지에 고정시켜 인터넷 이용을 불편하게 함

* 사용자가 원하지 않는 검색 툴바 또는 페이지 북마크의 설치

* 사용자의 인터넷 이용습관을 추적해 그 정보를 모회사에 전송


5. 익스플로잇이란 무엇인가?

- 익스플로잇(Exploit)은 일반적으로 소프트웨어가 가지고 있는 취약점을 이용하여 불법적인 행위를 가능하게 해주는 프로그램을 말하며, 주로 취약점의 존재여부를 증명하기 위한 목적으로 해커들에 의해 공개된다.

- 익스플로잇은 동전의 양면과 같아서, 선의의 사용자들이 자신의 시스템에 취약점이 존재하는지 확인하는데 사용될 수도 있지만, 타인의 시스템에 침투하기 위한 수단으로 사용하기도 한다. 이로 인해 최근에는 해커들 사이에도 익스플로잇을 공개하는 것에 대한 도덕적인 문제가 제기되고 있다. 이에 따라, 익스플로잇을 공개할 때 취약점의 존재여부만 확인 할 수 있도록 기능을 제한하기도 한다.

- 익스플로잇은 Security Focus(http://www.securityfocus.com/)나 Packet Storm(http://www.packetstormsecurity.org/)과 같은 사이트에서 참조할 수 있다.


6. IRC란 무엇이고, IRC BOT이란 무엇인가?

- IRC(Internet Relay Chat)는 하나의 독립된 서버에 많은 클라이언트들이 연결되어 서로 대화할 수 있게 도와주는 인터넷 서비스의 일종이다. 특정 주제를 정하여 대화방(Channel)을 만들거나, 이미 다른 사람이 개설한 대화방에 참가하는 형태로 전세계 사람들과 실시간으로 이야기를 나눌 수 있다.

- 최근에는 이러한 선의의 의도를 악용하여 불법 소프트웨어(WAREZ)를 공유하거나, 봇(BOT)이 설치된 컴퓨터를 제어하여 다른 컴퓨터를 공격하는 등 악용하는 사례가 급증하고 있다.

- 요즘 많은 이슈가 되고 있는 봇은 '로봇'의 준말로, 사용자나 다른 프로그램의 행동을 흉내내어 대리인으로 동작하는 프로그램을 의미한다. 인터넷상에서 가장 일반적으로 사용되는 봇은 스파이더(Spider) 또는 크로울러(Crawler)라고도 불리는 프로그램들로서, 웹 사이트를 주기적으로 방문하여 검색엔진의 색인을 위한 콘텐츠를 수집하는 일을 한다.

- IRC BOT의 경우는 아래 그림과 같이 사용자의 컴퓨터에 은밀히 설치되어 정보 유출, 시스템 제어, 다른 컴퓨터에 대한 공격 등의 피해를 줄 수 있다.




7. 스니핑이란 무엇인가?

- 스니핑(Sniffing)이란 사전적으로는 '코를 킁킁거리다', '냄새를 맡다' 등의 의미가 있다. 해킹 기법으로서의 스니핑이란 네트워크 상에서 자신이 아닌 다른 상대방들의 패킷을 엿듣거나 엿보는 것을 의미한다. 즉, 네트워크 트래픽을 도청하는 것을 스니핑이라 한다.

- 현재 인터넷에서 통신을 위해 사용되는 TCP/IP 프로토콜은 인터넷이 보편화되기 이전부터 학술적인 용도로 설계된 프로토콜이다. 즉, 패킷에 대한 암호화나 인증과 같은 보안적인 측면을 크게 고려하지 않았기 때문에 데이터 통신 보안의 기본 요소인 기밀성, 무결성 등을 보장할 수 없었다. 특히 스니핑은 기밀성을 해치는 공격 기법이다.

- 스니핑을 하는 대표적인 방법에는 다음과 같은 것이 있다.

* 공격 대상 시스템의 관리자 권한을 얻은 후, 스니핑 도구를 설치하여 스니핑

* 공격 대상 시스템 주변에 있는 다른 호스트에 대한 접근 권한을 얻은 뒤, 그 호스트를 이용하여 스니핑

* ISP 장비에 대한 시스템 권한을 얻어 스니핑 도구를 설치하여 스니핑


8. 스푸핑이란 무엇인가?

- 스푸핑(Spoofing)은 해킹시 자신의 IP 주소, DNS 이름, MAC 주소 등과 같은 고유 식별자를 위장하여 감춤으로써 역추적을 어렵게 만드는 기법이다. 스푸핑의 종류는 다음과 같다.

* IP 스푸핑 : 자신의 IP 주소를 다른 사람의 것으로 위장하는 것이다. (아래 그림 참조)

* ARP(Address Resolution Protocol) 스푸핑 : ARP 캐쉬 테이블의 정보를 위조함으로써 공격 대상 컴퓨터와 서버 사이의 트래픽을 해커 자신의 컴퓨터로 우회시킬 수 있다.

* 전자우편 스푸핑 : 전자우편 송신자의 주소를 위조하는 것이다.

* DNS(Domain Name System) 스푸핑 : DNS 서버에 IP 주소를 찾아 달라는 요청이 도착하였을 때, 원래의 IP가 아닌 임의의 IP를 전달하는 것이다.

- 스푸핑에 대응하기 위한 방법으로는 패킷 필터링을 통한 접근 제어와 IP 인증을 통한 접근 제어가 있으며, 취약점이 있는 서비스를 사용하지 않거나 암호화 프로토콜 사용 등이 있다.

** ARP : IP 네트워크 상에서 IP 주소를 이더넷 또는 토큰링의 48비트 네트워크 하드웨어 주소와 같은 물리적인 주소를 대응시키기 위해 사용되는 프로토콜이다.

** DNS : 웹과 같은 인터넷 서비스들의 활용을 지원하기 위하여 사람이 인식하기 쉬운 Domain 이름을 통신기기가 인식하는 IP 주소로 연결해 주는 기반 서비스이다.




9. 버퍼 오버플로우란 무엇인가?

- 버퍼 오버플로우(Buffer Overflow)는 유명한 해커 잡지인 PHRACK의 49권 14호에 발표된 Alephone의 기고문에 의해 알려졌다. 버퍼 오버플로우란 말 그대로 '버퍼(buffer)가 넘친다(overflow)'는 뜻으로, 데이터가 할당된 영역을 벗어나 다른 영역을 침범하면서 문제를 발생시키게 되고, 이때 해커는 시스템 권한을 획득할 기회를 얻게 되는 것이다.

- 예를 들어, x86 리눅스 시스템의 경우 메모리 구조는 아래 그림과 같다.

프로그램이 실행될 때, 가상 메모리는 크게 사용자 영역과 커널 영역으로 구분되며, 사용자 영역은 다시 텍스트(text), 데이터(data), 그리고 스택(stack) 영역으로 구분된다. 여기서 힙(heap) 영역은 아래에서 위 방향으로 증가하는 반면, 스택 영역은 그 반대 방향으로 증가하게 된다.

- 프로그램이 실행될 때 간혹 사용자 버퍼가 스택의 영역을 침범하여 sfp(saved frame pointer)나 복귀 주소(Return Address) 부분을 덮어쓰게 되면, 프로그램의 흐름에 영향을 미치게 된다. 이때, 공격자는 자신이 원하는 코드를 실행시킬 기회를 갖게 되는 것이다.

- 버퍼 오버플로우를 일으키는 데에는, C 언어 함수 중에서도 strcpy나 gets와 같이 메모리 버퍼의 경계를 검사하지 않는 함수들을 사용한 프로그램들이 대상이 된다.




10. SQL Injection 공격이란 무엇인가?

- SQL Injection 공격은 웹에서 데이터베이스 검색을 위해 사용자로부터 질의를 받아 처리하는 과정에서 질의문의 문법적 오류를 이용한 기법을 말한다. 정상적인 경우, 데이터베이스 검색을 위해 사용자가 웹 브라우저에 입력한 값은 웹 서버를 통해 웹 애플리케이션 서버(Web Application Server : WAS)로 전달된다. WAS는 전달받은 입력값을 토대로 SQL 질의문을 작성하여 데이터베이스에 전달하게 된다. 이때, 사용자가 비정상적인 값을 입력하였지만 입력값이 적절한지 검증하지 않는다면, 문법에 맞지 않는 SQL 질의문을 전달받은 데이터베이스는 오류를 발생시켜 결국에는 해킹에 악용될 수 있다.

- 예를 들어, 웹 페이지에서 ID와 패스워드를 입력받는 SQL 문장이 다음과 같이 있다.

-> select count (*) from users where userName=' " +username+ " ' and userPass=' " +password+ " '

=> 사용자가 ID란에 ' or 1=* ** 와 같이 입력하고 패스워드에 아무것도 입력하지 않았을 경우 위의 SQL 문은 다음과 같이 처리된다.

-> select count (*) from users where userName=' ' or 1=* ** ' and userPass=' '

** 위 사례의 경우 해킹에 이용될 수 있기 때문에 일부분을 '*' 처리하였다.

- 이런 공격을 피하기 위해서는 웹 애플리케이션 개발시 사용자의 입력값을 철저히 검사하여야 하며, SQL 서버 계정도 기본 계정(sa)을 사용하지 않아야 한다.


11. 서비스 거부 공격이란 무엇인가?

- 서비스 거부 공격(Denial Of Service : DoS)이란 합법적인 사용자라고 할지라도 정상적으로 서비스를 이용하지 못하도록 방해하는 공격을 말한다. 서비스 거부 공격을 수행하기 위해, 공격자는 네트워크 전체를 패킷들로 넘치게 함으로써 정상적인 패킷들이 전송되지 못하도록 하거나 특정 시스템의 CPU 메모리와 같은 자원을 고갈시킨다.

- 예를 들어, 클라이언트 1000대를 동시에 서비스할 수 있는 서버의 경우, 1001번째 클라이언트의 서비스 요청에는 응할 수가 없을 것이다. 이런 서버를 대상으로 서비스 거부 공격을 수행하고자 한다면 1000대 이상의 클라이언트를 이용하여 서버에 지속적으로 서비스를 요청함으로써 다른 사용자가 정상적으로 사용하지 못하도록 방해할 수 있다. 이와 같이 공격자가 다수의 클라이언트를 이용하여 서비스 거부 공격을 수행하는 것을 가리켜 분산 서비스 거부 공격(Distributed Denial Of Service : DDoS)이라 한다.


12. 역방향 연결이란 무엇인가?

- 보편적인 클라이언트-서버 환경에서는 클라이언트가 먼저 서버에 접속을 시도하였다. 기존의 트로이 목마 등에서도 먼저 외부에서 내부로의 접근을 시도하는 방법을 채택하고 있었다. 하지만, 방화벽 등의 사용이 보편화되면서 이것이 어렵게 되자 등장한 개념이 역방향 연결(Reverse Connection)이다. 역방향 연결이란 클라이언트가 포트를 열어놓은 상태로 대기하면 서버가 클라이언트에 연결하는 방식을 의미한다.



- 위 그림에서 보는 것처럼 클라이언트는 서버의 웹 포트(80번)로만 접속할 수 있다. 이 경우, 일단 공격자가 웹을 통해 시스템에 대한 불법적인 권한을 얻게 되더라도 웹 브라우저에서는 단순한 명령만 가능하기 때문에 텔넷 세션 등을 이용하여 연결을 할 수 없다. 하지만 내부에서 외부로의 연결은 자유롭기 때문에 역방향 연결을 통해 정상적인 쉡을 사용할 수 있게 해준다면 공격자는 시스템을 마음대로 제어할 수 있다.


13. 포맷 스트링 공격이란 무엇인가?

- 포맷 스트링(Format String)이란 일반적으로 사용자로부터 입력을 받아 들이거나 결과를 출력하기 위하여 사용하는 형식이다. 예를 들어, printf() 함수에서 숫자, 문자 등을 출력할 때 %d, %f, %c, %s, %x, %p, %n과 같은 포맷 스트링이 사용된다. 즉, printf("%d", i)와 같이 사용하면 변수 i의 값을 출력할 수 있다.

- 하지만, printf("%x")처럼 변수없이 쓰게 되면 메모리의 값들을 순서대로 출력하게 되어 메모리 구조를 파악하는데 악용될 수 있다. 더구나, %n이나 %hn를 이용하면 특정 메모리 위치의 값을 다른 것으로 변경할 수도 있다. 이렇게 포맷 스트링 사용시의 오류를 이용하여 시스템의 권한을 획득하는 기법을 포맷 스트링 공격이라 한다.

- 포맷 스트링 공격은 printf() 등의 C 함수뿐 아니라 함수간에 값을 전달하는 선언이 있는 경우 (예 : function(format, args..))에 대해서도 발생할 수 있다.


14. 루트킷이란 무엇인가?

- 루트킷(Rootkit)은 공격자들이 자신의 침입 사실을 숨기거나 차후의 재침입을 위한 목적으로 시스템에 숨겨놓은 프로그램(Back Door)의 모음을 의미한다. 루트킷은 탐지를 회피하기 위해 다음과 같은 기능을 지원한다.

* 재침입을 용이하게 하기 위한 백도어 기능
* 로그파일 수정, 삭제 기능
* 기존 시스템 유틸리티들의 대체 기능
* 스니핑 및 키입력 저장 기능
* 프로세스 및 네트워크 정보 등의 숨김 기능
* 특정 디렉토리나 파일 숨김 기능

- 고전적인 루트킷은 단순히 시스템 유틸리티를 변조하여 공격자의 정보를 숨기는 형태였으나, 현재는 커널 기반의 시스템 레벨에서 작동하는 형태로 발전되어 가고 있다.

- 루트킷을 탐지하기 위한 대표적인 도구에는 chkrootkit, kstat 등이 있다.


15. 쉘 코드는 어떤 용도로 사용하는 것인가?

- 쉘 코드(Shell Code)는 용어에서 나타나는 것처럼 쉘을 실행시키는 코드를 의미한다. 쉘 코드는 공격자가 시스템의 취약점을 이용하여 자신이 원하는 임의의 코드를 실행시키고자 할 때 사용한다. 시스템내의 모든 명령어를 실행시킬 수 있는 쉘을 사용할 수 있다면 공격자가 목적하는 바를 이루게 되는 것이다. 쉘 코드를 만드는 기본적인 과정은 다음과 같다.

a. 쉘을 실행시키는 코드를 작성
b. 디버거를 통해 작성된 코드의 동작 흐름을 파악
c. 어셈블리어 수준의 코드로 변환
d. 기계어 코드를 추출

- 따라서, 쉘 코드는 다음과 같은 형태로 존재하게 된다.



- 이렇게 작성된 쉘 코드는 공격자 자신이 원하는 위치에 삽입하여 실행 하게 된다. 예를 들어, 버퍼나 환경 변수 영역에 스트링의 일부로 자리잡게 되면 버퍼 오버플로우 발생시 이 코드를 실행시킬 수 있다.


16. 인터넷주소 세탁이란 무엇인가?

- 프락시(proxy)는 '대리인'을 의미한다. 즉, 프락시는 '사용자 대신 프락시 서버가 지정된 시스템에 접속해서 사용자가 원하는 명령을 수행'하는 것이다. 예를 들어, A라는 사용자가 C라는 시스템에 접속해서 D라는 데이터를 가져오고 싶을 경우 A는 프락시 서버 B에게 'C에 접속해서 D라는 데이터를 가져와라'와 같은 메시지를 보내면 이 메시지를 받은 B는 자신이 C에 접속하여 D를 받아서 A에게 건네준다.

- 인터넷주소 세탁은 이와 같이 네트워크 트래픽 감소, 웹 콘텐츠 필터링, 또는 보안 등의 목적으로 이용되는 프락시(Proxy) 서버의 설정상 오류를 이용하여 IP 추적을 불가능하게 하는 기법이다. 프락시 서버를 이용한 인터넷주소 세탁은 공격의 근원지를 찾기가 힘들뿐 아니라, 해당 프락시 서벗에 침입하지 않더라도 설정상 취약점을 이용할 수 있기 때문에 최근 이 방법을 이용한 해킹 시도가 증가하고 있다.

- 대부분의 프락시 서버는 외부로부터의 접근에 제한을 두지 않고 있고 임의의 TCP 접속을 연결할 수 있는 포트를 차단하지 않는 등 여러 가지 취약점들을 가지고 있다. 따라서 프락시 서버를 이용해 다른 시스템에 침입하거나 스팸메일을 발송하면 공격을 당한 사람이나 우편 수신자는 프락시 서버의 주소를 최초 주소의 출처로 오인하게 된다. 게다가 공격자가 2개 이상의 프락시 서버를 사용했다면 최초 공격지를 찾는 것은 결코 쉬운 일이 될 수 없다.


17. 검색엔진이 해킹에 이용되고 있다는데 무엇인가?

- 해커들은 공개된 검색엔진을 이용하여 해킹의 대상이 되는 네트워크의 구성, 서버 정보(웹서버, FTP 서버 등) 등을 쉽게 얻을 수 있다. 인터넷 검색엔진 중 가장 크고 빠른 '구글' 검색엔진은 40억 페이지 이상을 보유하고 있으며 1일 2억번 이상 검색 결과를 제공한다. 2003년 이후 검색엔진이 지능화되면서 시스템의 주요 정보, 민감한 데이터의 접근 경로까지 제공하고 있다.

- 1만여개의 구글 컴퓨터는 2주일에 한 차례씩 전세계 30억개의 웹사이트 및 서버를 돌며 새로운 정보를 복사하고 있고 인터넷에 한번이라도 올라간적이 있는 정보는 그 컴퓨터에서는 삭제되더라도 구글 컴퓨터에는 계속 남아 있어 삭제된 정보의 검색도 가능하다.

- 구글은 보다 정확한 검색을 위해 다양한 세부 옵션을 제공하고 있어 검색창에서 몇 개의 검색어를 조합하면 신용카드번호, 주민등록번호, 은행계좌 번호, 병원 진료기록, 학교성적표 등 개인 신상정보 뿐만 아니라 회사 및 개인의 재무정보, 나아가 미 해군 잠수함의 현 위치까지 파악할 수 있는 것으로 알려져 있다. 이런 사살이 네티즌들 사이에 알려지면서 인터넷에는 '구글 해킹 동호회'가 수백여 개가 생겼으며 새로 발견된 구글 검색어들을 모아놓은 사이트까지 등장하였다. 특히 구글 해킹 전문가라는 의미를 지닌 구글독(Googledorks)이라는 신종어휘까지 등장하였다.

- 가장 큰 문제점은 이런 동호회나 사이트를 통해 일반인도 쉽게 구글 해킹을 할 수 있으며 합법적인 검색엔진인 구글을 이용한 정보수집이 불법이 아니라는 것이다.


18. 온라인 게임도 해킹이 가능한가?

- 최근 온라인 게임 시장이 활발해짐에 따라, 게임 데이터를 조작하는 사례가 많이 증가하고 있다. 특히 오프라인상에서 사이버머니나 마일리지에 대한 현금 거래가 빈번히 일어나고 있기 때문에, 이러한 해킹 사례는 앞으로 더욱더 늘어날 전망이다. 따라서 온라인 게임의 보안에 대한 필요성을 자각한 게임업체에서는 서둘러 보안 솔루션을 도입하여 게임 사용자와 회사를 해커들로부터 보호하려는 움직임이 있다.

- 웹을 통해 제공되는 온라인 게임의 경우, 아래의 기사와 같이 특정 홈페이지의 취약점을 이용하는 방법이 있다. 이 기사에서 소개한 예는 직접적으로 게임 사용자에게는 피해가 없었다. 하지만 자신의 사이버 머니나 아이템을 다른 사람에게 양도할 수 있는 게임이 있다면 게임 사용자 역시 해킹의 위험에 노출될 수 있다. 그 외에도 사용자 이름이나 암호 해킹을 통한 게임 데이터 조작, 게임 프로그램의 취약점을 이용한 불법적 게임 데이터 조작, 게임 이용자의 PC 해킹을 통한 개인 정보 유출, 혹은 과도한 트래픽 발생으로 인한 네트워크 마비 등의 피해가 유발될 가능성이 있다.

- 게임 해킹으로부터 자신을 보호하기 위해서는, 기본적으로 유추하기 어려운 암호를 사용하여야 하고, 게임을 즐긴 이후에는 반드시 로그아웃을 하여 해당 사이트와의 연결을 종료하여야 한다. 또한, 결제가 필요한 경우에는 믿을만한 사이트인지 신중히 고려하여야 하며 결제 정보는 가능한한 저장하지 않는 것이 좋다.

-> 검찰에 따르면 이모씨 등은 올 9월 A사의 '음양오행연인공략법' 서비스 이용대금 결제화면에서 HTML소스파일의 내용을 변경하면 마일리지 충전이 되는 취약점을 발견, 관리가 느슨한 추석연휴인 9월24일부터 27일까지 총 227회에 걸쳐 1647억 마일리지 포인트를 불법으로 충전한후 김모씨 등 사이버머니 도매상에게 처분한 혐의다." - 디지털 타임즈 2004/11/23일자


19. 라우터 보안을 위협하는 기법에는 어떠한 것이 있나?

- 라우터에 대한 보안 위협은 비인가된 접속, 세션 가로채기, 서비스 거부, 도청, 정보유출 등으로 다양하다. 또한 활용되는 공격 기술도 패스워드 유추, 라우팅 프로토콜 공격, SNMP(Simple Network Management Protocol)공격, RIP(Routing Information Protocol) 공격 등이 있다.

* 도청(Eavesdropping) : 네트워크를 통하여 전송되는 패킷이 암호화되지 않았을 경우 이를 중간에서 가로채 정보를 수집할 수 있게 된다. 라우터 자체에서 제공되는 서비스를 통해서도 중요한 정보가 유출될 수 있다.

* 세션 재전송(Session Replay) : 조작후 재전송이 가능한 패킷이나 어플리케이션 명령어를 사용하여 불법으로 접근 권한을 얻는 공격이다.

* 재라우팅(Rerouting) : 인가되지 않은 목적지로 트래픽이 흘러갈 수 있도록 라우팅 경로를조작하는 공격이다.

* 위장(Masquerade) : IP 패킷을 조작하여 근원지 주소를 거짓으로 조작하는 공격이다. 불법으로 접속 권한을 획득하거나 가짜 데이터를 네트워크에 투입할 때 사용될 수 있다.

* 세션 가로채기(Session Hijacking) : IP 스푸핑, 일련번호 예측 및 변경 등의 기법을 이용하여 이미 체결된 네트워크 세션을 가로채는 공격이다.

* 비인가된 접속(Unauthorization Access) : 인가를 받지 않은 상태에서 라우터에 침투하기 위한 공격이다. 강력한 사용자 인증과 적절한 접근통제가 필요하다.

* 서비스 거부 공격 : 라우터에서 브로드캐스트를 허용하는 경우, 라우터가 서비스거부 공격에 이용될 수 있다.


** SNMP : TCP/IP의 네트워크 관리 프로토콜로서, 라우터나 허브 등 네트워크 기기의 네트워크 관리 정보를 네트워크 관리 시스템에 보내는데 사용되는 프로토콜이다.

** RIP : IT 통신망의 경로지정 프로토콜로 경유하는 라우터의 기기 대수에 따라 최신 경로를 동적으로 결정한다.


20. 제로데이 공격이란 무엇인가?

- 일반적으로 사용자는 자신의 컴퓨터를 보다 안전하게 관리, 사용하기 위하여 항상 최신의 보안패치를 적용하려고 노력하고 있다. 하지만, 공격 기술이 나날이 발전함에 따라 최근에는 제로데이(Zero-Day) 공격 즉, 보안패치가 발표되기 전에 혹은 보안패치가 발표된 당일이나 며칠이내에 발생하는 공격에 대한 우려가 점차 커지고 있다.

- 이와 같은 현상은 익스플로잇 코드(Exploit code)가 공개되면 이를 이용하여 악의적인 목적으로 사용하는 사례들이 발견되기 시작하면서 더욱 두드러지고 있다. 또한, 해커들은 보안패치를 통해 취약한 부분을 정확히 찾을 수 있어, 보안패치가 발표되었더라도 많은 사람들이 보안패치를 적용하기 이전에 익스플로잇을 개발하여 악용하기도 한다.

- 제로데이 공격을 막기 위해서는 최대한 빨리 보안패치를 적용하여야 하며, 동시에 개인 방화벽과 같은 정보보호시스템을 필히 사용하여야 한다.

** Exploit code : 발표된 취약점을 해당 조건에서 수행하여 실제로 그러한 취약점이 존재하는지를 확인할 수 있는 프로그램을 말한다. 익스플로잇 코드는 긍정적으로는 시스템 관리자가 자신이 관리하는 시스템에 해당 취약점의 존재여부를 직접 확인할 수 있다는 장점이 있으나, 공격자가 이를 보유하게 되면 공격도구로 악용될 수 있다.


21. 사이버 위협이란 무엇이고 어떤 것이 있나?

- 사이버위협이란 정보시스템의 취약한 부분을 공격하여 시스템 내부에 침입하거나 시스템을 마비, 파괴하는 등의 사고를 유발하게 하는 것으로서, 해킹, 사기 및 절도, 악성코드 유포, 산업스파이 활동 등의 다양한 행태로 나타날 수 있다. 이러한 위협요인을 좀 더 세분화하면 다음과 같이 구분될 수 있다.

** 사람에 의한 위협
* 물리적 공격(소프트웨어 파괴, 절도, 시스템의 파괴 등)
* 기술적 공격(시스템 자원의 불법사용, 불법접근, 사용방해, 위조, 위장, 유해프로그램 삽입, 망 분석, 도청 등)

** 자연재해로 인한 위협 : 화재, 수해, 지진, 홍수, 전력차단 등

** 사람에 의한 비의도적 위협 : 조작미숙, 실수, 태만, 비의도적인 데이터 유출 등

** 정보시스템의 결함 : 운영체제 결함, 프로그램의 결함, 과부하, 소프트웨어 고장 등


22. 사이버테러란 무엇인가?

- 사이버테러는 사이버 공간상에서 해킹, 웜,바이러스 등 첨단 컴퓨터 응용기술과 네트워크를 활용하여 특정 집단 또는 국가의 컴퓨터 시스템에 고의적으로 접근, 사이버공간에서의 대규모 피해를 일으키는 행위를 말한다. 그리고 사이버공간을 통해 교통, 금융, 발전 등 물리적 공간에까지 영향을 미칠 수 있어 그 위험성이 크다고 할 수 있다.

- 몇 해 전 러시아 마피아단이 미국의 한 은행 서버에 침투해 수백만 달러를 불법 인출한 사건이나 특정 인터넷 기업을 대상으로 대량의 스팸메일을 발송해 시스템 장애를 유발시키고 거액의 돈을 요구한 사건 등은 모두 개인의 자유와 사이버공간에서의 질서를 파괴한 사이버테러의 사례로 볼 수 있다.

- 그리고 사이버테러가 물리적 공간에 영향을 준 사례로는 1998년 미국 아리조나주 루즈벨트 댐을 제어하는 컴퓨터 시스템에 대한 침투사건과 2000년 호주 퀸즈랜드에서 폐기물 처리 관련제어 시스템에 대한 침투사건 등을 들 수 있다.

- 우리나라에서는 이에 대응하기 위하여 사이버안전이라는 개념을 정립하고 국가사이버안전센터를 중심으로 대응 활동을 펼치고 있다.


[출처 : 국가보안기술연구소 http://www.nsri.re.kr/ ]