01. 정보 보안 개요
정보 기술의 빠른 발전은 사회 전반적인 발전을 이루어주고 많은 이점을 가져왔습니다. 그러나 동시에 사이버 범죄의 증가라는 부작용도 가져왔습니다. 사이버 상에서 일어나는 범죄 행위들과 개인 정보를 탈취 및 악용 행위도 크게 증가하였기에 정보 보안은 그 어느 때보다 중요한 이슈가 되었습니다.
“정보 보안”은 정보를 위협으로부터 보호하는 것으로 정보의 수집부터 송수신하는 과정까지 일어날 수 있는 모든 정보의 훼손, 변조, 유출, 악용 등의 사고를 방지하기 위한 것입니다. 정보를 제공하는 공급자 측면과 사용자 측면에서 이러한 사이버 범죄 및 정보 위협을 미연에 방지하기 위한 목적을 두고 있습니다.
1) 정보 보안 필수 요소
정보 보안은 반드시 “기밀성”과 “무결성” 그리고 “가용성”을 유지해야 합니다. 이 세 가지를 “정보 보안 3대 필수 요소”라고 칭합니다. 이 정보 보안 3대 필수 요소에 대해서 알아보겠습니다.
(1) 기밀성
“기밀성”이란 허락된 사용자만 정보 자산에 접근할 수 있다는 것입니다. 즉, 허락받지 않은 사람은 정보에 접근할 수 없도록 막는 것입니다. 사용자가 정보 공개를 원하지 않는다면 이를 막기 때문에 프라이버시 보호와도 연관성이 있습니다.
(2) 무결성
“무결성”이란 권한을 가진 사용자가 허가받은 방법으로만 정보를 변경할 수 있도록 하는 것입니다. 권한이 없는 사용자는 정보를 함부로 수정할 수 없습니다. 데이터가 함부로 위조되거나 변조되지 않도록 하는 데 목적이 있으며 보관한 데이터를 다시 꺼낼 때 중간에 수정되지 않도록 보호합니다.
(3) 가용성
“가용성”이란 허가를 받은 사용자가 필요할 때 정보 자산에 접근할 수 있도록 하는 것입니다. 즉, 사용자가 정보 자산에 접근을 할 때 방해받지 않도록 사용자를 보호하며 정보 자산을 보호하는 것입니다.
2) 정보 보안 위협 요소
정보 보안에 위협이 되는 요소는 다양합니다. 이때, 발생 원인에 따라서 “우발적 위협”, “악성코드”, “해킹” 등으로 분류할 수 있습니다.
(1) 우발적 위협
“우발적 위협”은 예기치 않거나 우연히 일어난 일로 인해 컴퓨터 시스템이 심각한 위협을 받는 것을 의미합니다. 우발적 위협은 “조작자의 실수"나 “하드웨어 고장, 소프트웨어의 오류", “데이터 오류"나 “자연 재해"로 인해 발생합니다. 우발적 위협은 정보 보안에 관한 위협 요소와는 조금 성격이 다릅니다. 그렇지만 이 또한 정보 보안에 위협을 주기 때문에 기술하였습니다.
(2) 악성코드
“악성코드"는 악의적인 목적을 가진 실행 코드로, 컴퓨터에 악영향을 끼칠 수 있는 모든 소프트웨어를 의미합니다. 후에 다룰 악성코드 파트에서 더 자세히 다루어보겠습니다.
(3) 해킹
“해킹”은 다른 사용자의 컴퓨터 또는 정보 시스템에 침입하여 정보를 빼내는 행위를 말합니다. 컴퓨터 전문가나 사용자가 불법적으로 행하는 고의 범죄 행위를 일컫습니다. 후에 다룰 해킹 파트에서 더 자세히 다루어보겠습니다.
02, 악성 코드
1) 악성 코드 개념
“악성코드”는 제작자가 사용자에게 피해를 주기 위해 의도적으로 만든 프로그램입니다. 처음에는 단순히 컴퓨터 바이러스를 지칭하는 말이었지만, 점점 정보 기술이 발전할수록 컴퓨터 바이러스의 감염 방법과 증상이 다양해지며 상세히 분류되기 시작하였습니다. 악성코드는 주로 특정 사이트 접속, 불법 소프트웨어 다운로드, 악성 이메일 등의 방식으로 감염됩니다.
2) 악성 코드 분류
악성코드는 동작 방식에 따라 “바이러스”, 웜”, “트로이목마” 등으로 분류할 수 있습니다.
(1) 바이러스 (Virus)
“바이러스”는 악성코드의 가장 기본적인 형태이며, 프로그램이나 실행 가능한 부분을 변형시켜 자신 또는 자신의 변형을 복사한 후 컴퓨터에 감염시키는 프로그램입니다. 바이러스는 인터넷이나, 네트워크, 이동식 매체(USB, CD...) 등을 통해 전파됩니다. 이렇게 전파된 바이러스는 컴퓨터에 침투하여 자료를 망가뜨리며 프로그램을 파괴합니다.
(2) 웜 (Worm)
“웜”은 바이러스와 비슷하게 자기 스스로 복제하며 인터넷이나 네트워크를 통하여 다른 컴퓨터로 전파됩니다. 그러나 바이러스는 다른 실행 프로그램에 기생하기에 독자적 실행이 불가능하지만 웜은 독립적으로 실행이 가능하기에 다른 실행 파일이 필요하지 않습니다.
웜은 네트워크상에서 컴퓨터의 파일 전송 기능을 활용하여 침투하며, 독립적으로 실행이 가능하기에 자신의 복사본을 전송하거나 중재 작업 없이 악성코드를 실행시킵니다. 웜은 네트워크를 통해 감염시키기에 인터넷 속도를 저하시키며 사용자의 정보를 뺴내기도 합니다.
웜은 전파 형태에 따라 “매스메일러형 웜”, “시스템 공격형 웜”, “네트워크 공격형 웜”으로 분류됩니다.
- 매스메일러형(Mass Mailer): 자기 자신을 포함하는 대량 메일을 발송해 확산되는 웜입니다.
- 시스템 공격형: 운영체제의 취약점을 이용해 시스템 장애와 정보 파괴를 일으키는 악성코드를 설치하는 웜입니다.
- 네트워크 공격형: 특정 네트워크나 시스템에 대해 서비스 거부 공격을 수행하는 웜입니다.
(3) 트로이목마 (Trojan Horse)
“트로이목마”는 겉으로는 정상적인 프로그램으로 보이나 실상은 악성코드를 포함하는 프로그램입니다. 이메일이나 소프트웨어에 숨어 있다가 특정 컴퓨터가 감염되면 이를 발견한 해커가 감염된 컴퓨터의 정보를 빼냅니다. 트로이목마는 바이러스나 웜과 달리 자기복제 능력이 없어 다른 파일을 감염시키지 못합니다. 그렇기에 감염된 해당 파일만 삭제하면 치료가 됩니다.
03. 해킹
1) 해킹 개념
“해킹”이란 컴퓨터의 하드웨어, 소프트웨어, 네트워크 등 각종 정보 체계가 설계자나 관리자가 의도하지 않은 동작을 일으키게 하거나, 주어진 권한 이상으로 정보를 열람 & 복제 & 변경할 수 있게끔 하는 행위 등을 포함하는 용어입니다.
처음에는 컴퓨터 전문가들이 다른 사람의 컴퓨터 또는 시스템을 가볍게 조작하는 정도였지만, 이후 다른 사람의 정보를 빼내고 파일을 없애며 시스템을 마비시키는 악의적인 행위로 변질되었습니다.
2) 해킹 종류
해킹의 종류로는 “디도스”, “스푸핑”, “스니핑” 등이 있습니다.
(1) 디도스(DDos)
“디도스”는 Distributed Dnial of Service, 분산 서비스 거부 공격이라 불리며, 공격 대상이 처리할 수 있는 능력 이상의 정보를 제공하거나 사용자 또는 네트워크의 용량을 초과시켜 정상적으로 작동하지 못하게 하는 공격입니다. 즉 공격 대상을 과부하시키는 공격입니다. 디스크, 데이터, 시스템을 파괴하거나 CPU, 메인메모리, 하드디스크의 과도한 사용을 유발하여 시스템을 파괴하기도 하며, 한 곳으로 데이터를 집중적으로 보내 네트워크 대역폭을 고갈시킨 후 시스템을 사용 불능 상태로 만드는 공격을 하기도 합니다.
디도스는 “죽음의 핑” 공격을 주로 사용합니다. 이때 말하는 핑이란 다른 호스트에 데이터를 전달해도 되는지 파악하는 프로그램입니다. 디도스는 핑을 이용하여 ICMP(Internet Control Message Protocol) 패킷의 크기를 과도하게 크게 만들어 공격 대상 컴퓨터로 보냅니다. 패킷은 공격 네트워크에 도달하는 동안 작게 쪼개어지는데, 공격 대상의 서버는 이 조각난 패킷들을 처리하느라 과부하에 걸리게 됩니다. 쪼개어진 패킷을 다시 커지지 않기에 잘개 쪼개진 어마무시한 패킷의 양이 공격 대상 컴퓨터를 마비시켜버리는 것입니다.
(2) 스푸핑 (Spoofing)
“스푸핑”은 인터넷 프로토콜은 TCP/IP의 구조적 결함을 이용한 공격 방식입니다. 공격자가 MAC 주소, IP 주소, 이메일 주소 등을 위조해 사용자나 시스템에 접속 유도 정보를 발송한 뒤 그들이 가짜 사이트를 방문하면 정보를 빼가는 수법입니다. 위조하는 정보의 종류에 따라 “이메일 스푸핑”과 “DNS 스푸핑”으로 나뉩니다.
- 이메일 스푸핑: 이메일 송신자를 다른 사람으로 위장해 특정 사이트로 접속하게 유도하거나 전자메일을 열어 보는 것만으로도 악성코드에 감염되게 하는 방법입니다.
- DNS 스푸핑: 공격 대상 컴퓨터가 특정 사이트의 주소를 입력하며 유도 대상 사이트의 IP 주소로 안내해 잘못된 곳으로 접속시키는 방법입니다.
(3) 스니핑 (Sniffing)
“스니핑”은 네트워크의 한 호스트에서 실행되어 그 주위를 지나가는 패킷을 엿보는 방식입니다. 네트워크를 통과하는 모듯 패킷의 내용을 엿보는 행위를 “패킷 스니핑”이라고 합니다. 패킷 스니핑을 이용하면 로그인 과정에서 전송되는 중요한 정보들을 중간에 가로채 볼 수 있으며, 이렇게 가로챈 정보로 시스템 해킹을 진행합니다.
04. 정보 보안 기술
"정보 보안 기술"은 컴퓨터 범죄를 막고 정보 자산을 보호하기 위한 기술과 시스템입니다. 정보 보안 기술은 주로 “암호화 기술”, “인증 기술”, “네트워크 보안 기술” 등으로 나뉩니다.
1) 암호화 기술
“암호화 기술”은 비밀을 유지하기 위해 상호 간에 약속한 기호를 통하여 보안을 유지하는 기술입니다. 암호화는 평문을 암호문으로 변환하는 것이고, 복호화는 암호문을 본래 평문으로 복원하는 것입니다.
암화화는 크게 “대칭키 암호 시스템”과 “공개키 암호 시스템”으로 나뉘며, 암호화에 사용하는 키 값과 복호화에 사용하는 키 값이 같은지 다른지에 따라 구분하는 것입니다.
(1) 대칭키 암호 시스템
“대칭키 암호 시스템”은 동일한 키를 사용하여 암호화 및 복호화 과정을 진행합니다. 암호화 키 크기가 작기에 효과적으로 시스템을 구축할 수 있으며 알고리즘의 내부 구조가 간단하여 시스템 환경에 적합한 암호 알고리즘을 쉽게 개발할 수 있습니다. 그러나 정보를 교환하는 사람끼리 같은 키를 공유해야 하기에 정보 교환 횟수만큼 생성된 키를 유지하고 관리해야 합니다. 대표적인 대칭키 암호 시스템에는 “DES(Data Encryption Standard)”와 ”IDEA(International Data Encryption Algorithm)”가 있습니다.
(2) 공개키 암호 시스템
“공개키 암호 시스템”은 대칭키 암호 시스템의 문제를 해결하기 위해 개발된 방식입니다. 대칭키 암호 시스템은 사용자까리 같은 키를 사용하는데 키 배송 과정에서 키가 유출이 되면 암호 시스템을 쓰는 이유가 사라지게 됩니다. 즉, 키 배송 문제를 해결하기 위해 공개키 암호 시스템이 만들어진 것입니다.
공개키 암호 시스템은 개인키와 인증된 공개키를 사용하여 암호화와 복호화를 진행하며, 암호화를 할 때는 공개키를 사용하고 복호화를 진행할 때는 자신만 아는 개인키를 사용합니다. 개인키만 가지고 있으면 되기에 대칭키 암호 시스템보다 키의 개수를 덜 관리합니다. 그러나 공개키의 크기가 상대적으로 크기에 대칭키 암호 시스템에 비해 컴퓨터 수행 능력이 떨어집니다.
2) 인증 기술
“인증 기술”은 인증하고자 하는 주체를 파악하며 그에 대한 인증 서비스를 제공하는 시스템입니다. 컴퓨터로 주고 받는 문서의 작성자 신원을 보호하고 문서 내용을 인증할 때, “전자서명”, “공인인증서”, “생체 인증” 등의 기술이 사용되고 있습니다.
(1) 전자서명
“전자서명”은 개인의 신원을 확인하기 위해 전자적 문서에 서명을 하는 방식입니다. 전자서명은 전자 문서에 첨부되며 전자적 정보 형태로 서명자가 해당 문서에 서명했음을 보증합니다. 공개키 기반 알고리즘을 응용하지만 암호화되지 않기에 누구나 읽을 수 있습니다. 전자서명은 “위조 불가”, “인증”, “재사용 불가”, “변경 불가”, “부인 방지” 등의 기능을 제공합니다.
(2) 공인인증서
“공인인증서”는 공인인증기관이 발행하는 전자정보 형태의 사이버 거래용 인감 증명서입니다. 인터넷 뱅킹이나 온라인 신용카드 거래를 할 때 반드시 필요한 서류입니다. 공인인증서에는 인증서 버전, 일련번호, 유효 기간, 발급 기관 이름, 가입자 이름 및 신원 확인 정보, 전자 서명 방식 등의 내용이 담겨 있습니다.
(3) 생체 인증
최근들어 지문 인식, 홍채 인식, 얼굴 인식 등의 생체 정보를 이용한 인증 기술이 등장하고 있습니다. 이러한 생체 정보들은 개인의 특성이기에 타인의 도용이나 복제에 의해서 활용될 수 없고, 변경되거나 분실할 위험이 없어 굉장히 보안성이 좋아 안전한 시스템을 구축할 수 있습니다.
3) 네트워크 보안 기술
"네트워크 보안 기술"은 외부 공격으로부터 내부 시스템을 보호하는 기술입니다. 대표적으로 “방화벽”, “침입 탐지 시스템”, “침입 차단 시스템” 등이 있습니다.
(1) 방화벽
“방화벽”은 외부 공격으로부터 시스템을 보호하고 내부 정보를 유출되지 않도록 경로를 차단하는 하드웨어와 소프트웨어를 뜻합니다. 방화벽은 주로 외부 네트워크로부터 내부 네트워크를 보호하는 일을 합니다. 허가받지 않은 사용자가 내부 네트워크의 정보에 접근하는 것을 막고, 허가 받은 사용자가 방해받지 않고 네트워크 자원에 접근할 수 있도록 도와줍니다. 그리고 또한 로깅과 감사 추적, 인증 및 데이터의 암호화 기능도 함께 수행합니다.
방화벽은 외부의 침입을 막는 동시에 보안 취약점이 있는 “NFS(Network File System)”, “NIS(Network Information System)” 같은 서비스를 안전하게 이용할 수 있도록 도와주며, 보안상 불안전한 “텔넷”, “FTP”, “HTTP” 등의 외부 네트워크 서비스도 원활하게 제공하도록 도와줍니다.
방화벽은 리스트를 통해 접근 제어를 관리합니다. 특정 IP 주소의 트래픽을 허용하거나 거부하는 식으로 리스트를 관리하며, 서비스 단위로 접근 제어를 조율합니다. 방화벽의 종류로는 “패킷 필터링 방화벽”, “서킷 게이트웨이 방화벽”, “애플리케이션 방화벽”, “하이브리드 방화벽”이 있습니다.
(2) 침입 탐지 시스템 (Intrusion Detection System)
“침입 탐지 시스템”은 기존의 방화벽이 탐지할 수 없는 종류의 악의적인 네트워크 트래픽과 컴퓨터 사용을 탐지하기 위한 시스템입니다. 사용자가 의도하지 않은 조작을 잡아내며, 실시간으로 해당 구역에 외부인이 침입하는지 감시하고 관리자에게 이를 보고합니다. 침입자가 발생했을 경우, 공격자의 시간을 지체시키며 관리자에게 침입 사실을 재빨리 통지하여 다음 공격을 예방하며 피해를 최소화시킵니다. 침입 탐지 시스템은 설치 위치와 목적에 따라 “호스트 기반 IDS”와 “네트워크 기반 IDS”로 나뉩니다.
- 호스트 기반 IDS: 호스트에 침입 탐지 시스템이 설치되며 호스트의 동작과 상태 등을 분석하여 침입 여부를 판단합니다.
- 네트워크 기반 IDS: 네트워크에서 독립된 하나의 시스템으로 설치되며 네트워크 트래픽 흐름을 분석하여 침입을 감지합니다.
(3) 침입 차단 시스템 (Intrusion Prevention System)
“침입 차단 시스템”은 내부 네트워크로 침입하려는 외부 네트워크 패킷을 찾아 제어하는 하드웨어, 소프트웨어을 말합니다. 일반적으로 네트워크로 들어오는 패킷이 지나가는 모든 경로에 설치됩니다. 호스트의 IP 주소, TCP/UDP의 포트 번호, 사용자 인증을 기반으로 외부 침입을 차단하고 허가받지 않은 사용자나 서비스의 접근을 거부하여 내부 정보를 보호합니다.