보 안(Security)
♦Hacker 란 ?
“프로그램의 공유화는 자신의 노력을 헛되이 하는 것이 아니라 더 나은 자신을 만드는 것이다.”
해커의 권리 장전이라고 일컬어지는 ‘GNU선언문’으로 세상에 널리 알려진 20세기 위대한 해커로 추앙 받고 있는 ‘리차드 스톨만(Richard M.Stallman)'이 한 말이다. 물론 자본의 흐름과 순환, 다시 말해 자본주의 경제 구성원리에 대한 이해의 부족, 카피레프트(copyleft)식 무정부주의적 발상에는 문제가 있다는 지적도 있지만 그들이 가지고 있었던 열정과 꿈은 본받기 충분하다.
이런 열정을 가지고 있었던 해커의 기원은 1950년대로 거슬러 올라간다. 미국의 MIT에는 컴퓨터를 광적으로 좋아하는 일단의 젊은 대학생들이 있었다. 이들의 머리 속에는 온통 컴퓨터 발전과 그 가치에 관한 생각뿐이었으며 정보 공유화라는 나름대로의 이상을 갖고 초기 컴퓨터의 진보와 시스템 프로그램에 지대한 공헌을 했다.
그 후 이들에게 커다란 영향을 받은 리차드 스톨만, 스티브 잡스, 스티브 워즈니악 들 기라성 같은 해커가 탄생했고 그들의 노력은 오늘의 발전된 형태의 컴퓨터를 구축하는 초석이 되었다.
진정한 해커들의 문화는 회사나 기관에 해킹을 해서 타격을 주거나 손해를 입히는 일은 하지 않는다. 진정한 해커의 문화는 정보의 공유 속에 발전해 나가고 서로 하나라는 공동체가 형성될 때 진정한 해커의 문화가 생긴다고 본다.
- 크래커(Cracker) : 다른 사람의 시스템을 악의를 갖고 파괴하는 사람. 대부분 사람들은 크래커를 해커로 통칭해서 부른다. 그러나 크래커와는 달리 해커는 시스템을 파괴하는 행위를 하지 않는다.
♦간단한 용어 해설
- 익스프로잇(exploit) : 시스템 보안에 심각한 영향을 끼칠 수 있는 문제들의 원리와 구현 내용을 적어 놓은 내용을 총칭한다. 이를테면 특정한 프로그램에는 어떤 버그가 있으며 이 버그를 이렇게 이용하면 어떠한 문제를 발생시킨다는 것을 기재해 놓는 것을 의미한다. 보안 문제에 대한 권고(Advisory)가 보안 문제를 해결하는데 주안점을 둔 것이라면 익스프로잇은 보안 문제를 어떻게 유발시키는지에 초점을 맞추고 있다.
- 패킷(packet) : 네트워크를 여행하는 데이터의 단위. 패킷은 소프트웨어적인 처리에서 데이터의 일반적 단위로 사용되고 이 반 면 하드웨어적인 처리에서는 플레임(frame)이라는 용어를 사용하는 경향이 있다.
- 스니퍼(sniffer) : 단어의 원래의 뜻은 킁킁거리며 맡는다는 뜻으로 이더넷(ethernet) 등의 네트워크 특성을 이용하여 냄새(패킷)를 킁킁거리며 맡는(훔쳐보는) 것을 뜻한다. 즉, 지나다니는 패킷 중에 ID나 패스워드 등을 훔치는 것이다. 대표적인 프로그램으로 tcpdump와 sniffit이 있다.
- FSF(Free Software Foundation : 공개 소프트웨어 재단) : 모든 소프트웨어는 자유로와야 한다는 이념을 갖고 리차드 스톨만이 세운 재단. GNU 프로젝트는 FSF의 공식 지원 프로젝트로 현재에 이르고 있다.
- GNU " 'GNU is Not Unix'라는 재귀적인(recursive) 뜻을 지닌 GNU는 원래 gnu라는 남아프리카산의 영양의 이름과 동일하다. 원래의 단어는 ‘누-’로서 ‘g' 발음을 하지 않지만, GNU 프로젝트를 지칭할 때에는 원래의 뜻과 구분하기 위해 ’g' 발음을 하기 때문에 ‘그누’라고 발음한다. GNU 프로젝트는 새로운 공개 운영체제를 만들기 위한 프로젝트로 이 프로젝트의 사물들이 리눅스 커널과 합쳐져 우리가 흔히 ‘리눅스’라고 부르는 GNU/Linus 시스템이 되었다. GNU 프로젝트에서는 리눅스 커널을 사용하지 않고 허드(Hurd)를 사용한다.
- 전화 프리킹(phreaking) : 전화 프리킹(Phone phreaking)은 전화를 공짜로 사용할 수 있도록 개조하거나 편법을 사용하는 것을 이야기한다. 리차드 스톨만의 대표적 사진을 본 사람은 기억할 수 있겠지만 리차드 스톨만이 갖고 있던 피리는 리차드 스톨만이 피리를 부는 목적만을 위해 존재하지 않고 바로 이 전화 프리킹 때 사용하던 것이다. 우연한 기회에 전화의 소리와 피리의 소리가 유사한 데에서 착안되었다고 한다.
- 포트(port) 번호 : TCP/IP를 사용하는 인터넷에서 IP 상위에서 서비스를 제공하기 위해 각 서비스별로 할당된 번호. 텔넷(TELNET) 서비스는 23번, 웹 서비스를 위해서는 80번, 이메일 서비스를 위해서는 25번 등이 바로 포트번호이다.
포트번호가 1부터 65535까지인 이유는 총 16개 비트, 2바이트로 나타내기 때문이다. 즉, 비는 2진수이므로 16개의 비트로 나타낼 수 있는 총 가지수는 2의 16제곱, 65536가지가 된다. 실제로 0부터 65535까지의 수이지만 0번 호트는 사용하지 않는다.
- 루프백(loopback) : 127.0.0.1의 주소를 갖는 것이 보통이다. 이 주소는 이미 예약되어 있으며, 네트워크 인터페이스와 동일한 역할을 하지만 접속한 IP 주소는 바로 자기자신을 가리킨다.
♦ 윈도 보안
1. 트로이 목마 프로그램들
- 트로이 목마(trojan)의 의미 : 백오리피스와 같은 도구들을 트로잔(trojan) 또는 트로이 목마 프로그램이라고 한다. 트로이 목마 프로그램이라고 하는 이유는 그리스 신화에 나오는 대서사시인 호메로스의 일리아드 오딧세우스 나오는 트로이 목마에서 유래된 것으로 남의 컴퓨터에 몰래 숨겨놓고 원격지에서 그 프로그램을 이용하여 상대방의 컴퓨터를 제어하도록 하는 프로그램을 의미한다. 그중 가장 널리 알려진 프로그램이 백오리피스이며 소스 또한 공개되어 있어 백오리피스의 변종도 인터넷을 통해 퍼지고 있다.
- 백오리피스(Back Orifice) : Back은 모두 알고 있듯 ‘뒤’라는 뜻이고 Orifice는 ‘구멍’이라는 뜻이다. 즉 뒷구멍이라는 뜻인데 정문이 아닌 속칭 ‘개구멍’이라는 상상을 할 수 있을 것이다. 이름에서 알 수 있듯 정식적 경로를 통하지 않고 변칙적인 경로를 통해 비정상적으로 시스템에 접근하기 위해 만든 ‘뒷문’이라고 볼 수 있다.
***백오리피스 2000으로 다음과 같은 일들을 할 수 있다.
* 모든 파일에 대한 접근, 삭제, 실행
* 프로세스 제거(실행중인 프로그램 멈추기)
* 현재 상대방 윈도에서 실행되고 있는 화면의 캡처(BMP, AVI)
* 키보드 모니터링(상대방 컴퓨터에서 현재 타이핑하는 것을 알 수 있다)
* 각종 패스워드 훔쳐오기
* 프로그램 설치, 제거
* 부팅, 레지스트리 편집
* 메시지 보내기 등
컴퓨터가 백오리피스에 감염되어있다면 악의를 가진 크래커는 원격지에서 마음대로 조작할 수 있다. 예를 들면 인터넷상에서 신용카드 등을 이용해서 물건을 구입했다고 하자. 신용카드 번호와 유효 기간을 결재시에 사용하게 될 것이다. 누군가가 신용카드의 정보를 알고 있다면, 얼마나 큰일이 발생할 것인지 느낄 것이다.
- 넷버스(Netbus) : 넷버스는 윈도 NT/2000의 트로이 목마 프로그램이라고 할 수 있다. 이 프로그램 또한 백오리프스와 유사한 원격 조정 프로그램으로 서버/클라이언트 부분으로 나눌 수 있다. 먼저 서버 부분인 patch.exe를 조정하고자 하는 상대바의 컴퓨터에서 실행시킨 후 클라이언트 프로그램인 NetBus.exe를 실행하여 조정할 수 있다.
넷버스 트로이 목마 프로그램인 patch.exe를 해킹하고자 하는 컴퓨터에 실행하기 위해 patch.exe의 특징은 한 번 실행되면 윈도가 재 부팅될 때마다 자동적으로 실행된다.
- 서브세븐(SubSeven) : 트로이 목마 프로그램 중 하나로서 백오리피스가 갖고 있는 기능을 대부분 갖추고 있으며 막강한 해킹 프로그램이다. 이것 또한 바이러스 백신 프로그램이 실시간으로 감시하여 서브 세븐의 동작을 감시할 수 있지만 시스템 파일에 등록되어 실행될땜다 에러 창이 나타난다. 이 때는 서브 세븐에 감염되었다는 것을 의심해 볼 필요가 있다.
- 브레이드 러너(Blade Runner) : 트로이 목마 프로그램의 하나로서 백오리피스와 유사한 기능을 갖고 있다. 그러나 백오리피스나 넷버스 등은 매우 유명해서 백신에 의해 검출되지만 브레이드 러너는 잘 알려지지 않아 백신에 의해 검출되지 않을 수 있다.
브레이드 러너의 특성이라면 버튼을 누를 때마다 음악 소리나 음성이 난다는 것이다.
♦방화벽(Firewall)
인터넷의 주요 구성요소인 유닉스(UNIX) 운영체제와 TCP/IP가 정보 보호 측면에서 마낳은 취약점을 가지고 있어 인터넷에 연결된 모든 전산망이 크래커에 의한 공격으로부터 심각히 노출되어 있는 실정이다.
이러한 크래커의 공격으로부터 전산망을 안전하게 보호하기위해서는 전산망보호시스템(Network Security System)이 필수적으로 요구되는데 특히 방화벽(Firewall)은 인터넷과 같은 외부망에 연결되어 있는 내부망의 중요한 정보 및 자원을 외부망을 통한 불법적인 침입으로부터 안전하게 보호하기 위한 시스템으로서 실용적이고 효과적인 전산망 보호 시스템으로 평가받고 있어 이에 대한 관심과 필요성이 날로 커지고 있다.
방화벽이라는 것은 본래 자동차의 한 부분을 일컫기 위해 사용되는 용어였다. 자동차에서 방화벽이라는 것은 객실부터 엔진 블록을 분리하기 위한 물리적 장치로 자동차 폭박시에승객을 보호하기 위한 의도로 사용되었다. 또한 다른 의미로건물에서 발생한 화재가 더 이상 번지는 것을 막는다는 의미도 있고, 그리스 신화에서는 성벽을 막기 위한 용도로도 썼다고 한다.
방화벽을 넓은 의미로 정의하면 인터넷 같은 외부망에 연결된 LAN과 같은 내부망을 외부의 불법적인 침입으로부터 안전하게 보호하기 위한 정책 및 이를 구현하는 도구를 총칭하며, 세부적으로 정의하면 외부망과 내부망 사이에 위치하여 외부로부터의 침입과 내부로부터의 불법적인 정보유출을 방지하기 위한 전산망의 한 구성 요소로서 하드웨어와 소프트웨어의 조합으로 이루어지는 시스템이다.
인 터 넷 LAN 내부 네트워크 보 안 비 보 안 방화벽 시스템 보 안 정 책
방화벽 사용의 이점
- 위협에 취약한 서비스에 대한 보호 : 안전하지 않은 서비스를 필터링(Filtering)함으로써 서브넷(subnet)상에 있는 호스트에 위험을 감소시킬 수 있다. 즉, 선택된 프로토콜만이 방화벽을 통과시킴으로서 서브넷 네트워크 환경은 위험에 덜 노출되게 된다.
- 흐스트 시스템에 대한 액세스 제어 : 호스트 시스템에 대한 액세스를 제어할 수 있다. 예를 들면, 외부 네트워크에서 내부 네트워크에있는 호스트로 접속하고자 할 때, 보안 정책에 설정된 외부 호스트 시스템(가령 크래커로 의심가는 시스템)에 대해서는 접근을 제어할 수 있다.
- 보안의 집중과 경제성 : 대부분의 수정된 소프트웨어와 추가되는 보안 소프트웨어를 여러 호스트에 분산시키는 것과는 달리 원하는 호스트에 방화벽을 설치할 수 있다는 점에서 실제적으로 경제적일 수 있다.
- 네트워크 사용에 대한 로깅(Logging)과 통계자료 : 시스템에 대한 모든 액세스가 방화벽을 통과한다면, 방화벽은 액세스를 로그(DB 나 파일에 저장)할 수 있고, 네트워크 사용에 대한 유용한 통계 자료를 제공할 수 있다. 의심이 가는 활동에 대해 적절한 경고 기능을 제공하는 방화벽은 방화벽과 네트워크가 침입 시도를 받고 있는지 또는 침입되었는지에 대한 세부 사항을 제공해 준다.
- 보안 정책 구현 : 방화벽은 네트워크 액세스 제어 정책에 대한 구현을 제공한다. 사실상, 방화벽은 사용자와 서비스에 대한 액세스를 제어할 수 있다. 그래서 네트워크 액세스 정책은 방화벽에 의해서 구현될 수 있다. 그러나 방화벽이 없다면 이러한 정책들은 전적으로 사용자의 협조에 의존해야 한다. 내부 사이트에서는 사용자의 협조에 의존할 수도 있으나 일반적인 인터넷 사용자에게는 의존할 수 없다.
SSL
SSL(Secure Socket Layer)은 넷스케이프사에서 전자상거래 등의 보안을 위해 개발하였다. 이후 TLS(Transport Layer Security)라는 이름으로 표준화되었다. SSL은 특히 네트워크 레이어의 암호화 방식이기 때문에 HTTP 뿐만 아니라 NNTP, FTP등에도 사용할 수 있는 장점이 있다. 기본적으로 Authentication, Encryption, 무결성을 보장한다.
인터넷 프로토콜 스위트 | |
응용 계층 |
FTP, HTTP, HTTPS, IMAP, IRC, NNTP, POP3,SMTP, SIP, SNMP, SSH, UUCP, DNS... |
전송 계층 |
TCP, UDP, SCTP, DCCP, ... |
네트워크 계층 |
IP, IPv4, IPv6, ICMP, ARP, IGMP, ... |
데이터링크 계층 |
이더넷, FDDI, PPP, ... |
물리적 계층 |
RS-232, EIA-422, RS-449, EIA-485... |
S-HTTP [secure hypertext transfer protocol]
하이퍼텍스트 전송 규약(HTTP)에 보안 기능을 부가하기 위한 통신 규약. 월드 와이드 웹(WWW)을 이용할 때 데이터를 안전하게 주고받을 수 있으며, 유사 기술로는 SSL이 있다. S-HTTP에서 메시지 보호는 HTTP를 사용한 애플리케이션에 대해서만 가능하나, SSL에서는 HTTP만이 아니고 파일 전송 규약(FTP)이나 텔넷 등 전송 제어 프로토콜(TCP)을 이용하는 애플리케이션 프로토콜에 대해서도 가능하다. 또 S-HTTP에서는 서버와 클라이언트 양방의 인증을 위해 각각의 증명서가 반드시 필요하지만 SSL에서는 클라이언트의 인증이 선택적이다.
안전한 전자 거래 [安全-電子去來, secure electronic transactions, SET]
인터넷상에서 신용 카드 결제를 안전하게 행하기 위한 프로토콜 규격. 미국 비자 인터내셔널(Visa International), 마스터카드 인터내셔널(Mastercard International), 마이크로소프트, 넷스케이프, IBM사 등이 공동으로 표준화한 것이다. 신용 카드 번호를 암호화하여 주고받음으로써 가상 점포 측에서도 신용 카드 번호를 알 수 없게 되어 가상 점포 측이 카드 번호를 악용하는 등의 부정을 방지할 수 있다. 점포 측에서는 카드 이용자를 확실히 인증할 수 있게 되므로 타인의 신용 카드를 사용한 부정 구매 의뢰 등을 점검할 수 있다.
'MIS(경영정보시스템)' 카테고리의 다른 글
암호화 복호화 예제 (0) | 2007.09.22 |
---|---|
라인델 알고리즘(Rijndeal Algorithm) (0) | 2007.09.22 |
인터넷의 기본 개념 (0) | 2007.09.20 |
무료 방화벽 Comodo Firewall Pro (0) | 2007.09.20 |
LAN (0) | 2007.09.18 |