본문 바로가기

CS BASIC/정보 보안

[CS BASIC] 정보 보안(InfoSec)과 해킹(Security Hacking)

개요

오늘은 정보 보안(InfoSec)과 해킹(Security Hacking), 그리고 다양한 도구와 공격 기법에 대해서 알아보도록 하겠습니다.

오늘날 컴퓨터는 네트워크 케이블 또는 무선 공유기를 통해 언제 어디서나 상호간에 정보를 교환 받을 수 있습니다.

그리고 이러한 '연결(Connection)'은 기업에서 컴퓨터 시스템을 구축할 때 전체적인 구조를 설계하거나,

때로는 개발자가 하나의 컴퓨터로 여러 개의 컴퓨터를 관리하고자 할 때 유용하게 사용되는 접점,

인터페이스(Interface)가 되어주기도 합니다.

따라서, 사용자는 업무의 효율성과 편의성이 증가하는 부수적인 효과도 얻기 때문에 

컴퓨터 시스템에서 없어서는 안될 기술 중 하나라고 할 수 있습니다.

하지만, 해커(Hacker) 즉 뛰어난 프로그래밍 능력을 가지고 남의 컴퓨터 시스템에 무단으로 침입하여 그것을 이용하거나 파괴하는 사람에게는 이러한 접점은 타인의 컴퓨터를 공격할 좋은 '입구(Entrance)'가 됩니다.

그러므로 오늘날에는 누구인지 알기 어려운 외부의 컴퓨터 프로그래머에 의해서

개인의 컴퓨터 시스템부터 기업의 서버까지 함부로 접속 및 파괴할 수 없도록 '정보 보안(InfoSec)' 기술이 필요하게 되었습니다.


정보 보안(InfoSec, Information Security)이란?

정보의 수집, 가공, 저장, 검색, 송신, 수신 도중에 정보의 훼손, 변조, 유출 등을 방지하기 위한 관리적, 기술적 방법을 의미

 

정보 보안을 위한 정보 보호는 정보를 제공하는 공급자 측면과 사용자 측면에서 이해할 수 있습니다.

 

구분 설명
공급자 측면  내∙외부의 위협요인들로부터 네트워크, 시스템 등의 하드웨어 데이터베이스, 통신 및 전산시설 등 정보자산을 안전하게 보호∙운영하기 위한 일련의 행위
사용자 측면 
개인 정보 유출, 남용을 방지하기 위한 일련의 행위.


정보 보안의 주요 목표

  • 정보에 대한 위협(Threat)이란 허락되지 않은 접근, 수정, 노출, 훼손, 파괴하는 행위를 의미합니다.
  • 정보위협의 주체는 외부의 해커가 될 수도 있고, 내부인이 될 수도 있습니다. 
  • 정보에 대한 위협은 나날이 늘어가고 있기 때문에 모든 위협을 나열할 수는 없으나, 전통적으로 다음의 세가지가 정보 보안의 주요한 목표로 삼고 있습니다. 

정보 보안의 3대 요소

요소 설명
기밀성
(Confidentiality)
- 허락 되지 않은 사용자 또는 객체가 정보의 내용을 알 수 없도록 하는 것(=비밀 보장)
-  원치 않는 정보의 공개를 막는다는 의미에서 프라이버시 보호와 밀접한 관계가 있음.
-  인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성
무결성
(Intergrity)
-  허락 되지 않은 사용자 또는 객체가 정보를 함부로 수정할 수 없도록 하는 것
-  수신자가 정보를 수신했을 때, 또는 보관돼 있던 정보를 꺼내 보았을 때 그 정보가 중간에 수정 또는 첨삭되지 않았음을 확인할 수 있도록 하는 것
-  정당한 방법을 따르지 않고서는 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성
가용성
(Availaiblity)
-  허락된 사용자 또는 객체가 정보에 접근하려 하고자 할 때 이것이 방해받지 않도록 하는 것.
-  최근에 네트워크의 고도화로 대중에 많이 알려진 서비스 거부 공격(DDoS 공격, Distributed Denial of Service Attack)이 이러한 가용성을 해치는 공격.
-  권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속해서 사용할 수 있도록 보장하는 특성

 

정보보안의 특성

  • 정보보안은 100% 완벽하게 달성할 수 없다.
  • 정보보안 대책의 설치시 필요성을 확신할 수 없다.
  • 정보보안 대책의 효과성은 실패율에 의해 측정된다.
  • 2가지 이상의 대책을 동시에 사용하면 위험을 크게 줄일 수 있다.

정보 보안에서 사용되는 대표적인 용어

용어 설명
자산
(Assets)
조직의 데이터 또는 조직의 소유자가 가치를 부여한 대상
ex) 서버의 하드웨어, 기업의 중요 데이터
위협
(Threat)
조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위
ex) 해킹, 삭제, 자산의 불법적 유출, 위/변조, 파손
취약점
 (Vulnerability)
위협이 발생하기 위한 사전 조건으로 시스템의 정보 보증을 낮추는데 사용되는 약점
ex) 평문 전송, 입력값 미검증, 비밀번호 공유 등
위험
(Risk)
위협이 취약점을 이용하여 조직의 자산 손실 피해를 가져올 가능성
스니핑
(Sniffing)
네트워크 상에서 자신이 아닌 상대방들의 패킷 교환을 엿듣는 행위로, 공격 대상에게 직접 공격을 하지 않고 데이터만 몰래 들여다보는 수동적인 공격 기법
스푸핑
(Spoofing)
승인받은 사용자인 것처럼 시스템에 접근하거나 네트워크 상에서 허가된 주소로 가장하여 접근 제어를 우회하는 공격 기법
스누핑
(Snooping)
스니핑과 유사한 단어로, 네트워크 상의 정보를 염탐하여 불법적으로 얻든 행위

 


해킹(security hacking)이란?

해킹(security hacking)은 타인의 컴퓨터 시스템에 무단 침입하여 데이터에 접속할 수 있는 권한을 얻는 것

 

전자 회로나, 컴퓨터의 하드웨어, 소프트웨어, 네트워크, 웹사이트 등 각종 정보 체계가 본래의 설계자나 관리자, 운영자가 의도하지 않은 동작을 일으키도록 하거나 체계 내에서 주어진 권한 이상으로 정보를 열람, 복제, 변경 가능하게 하는 행위를 광범위하게 이르는 말로도 쓰입니다.

해킹과 함께 언급되는 개념으로는 크래킹(Cracking)이 있는데, 이는 해킹과는 다소 구분되는 개념입니다.

 

해킹이 다른 사람의 통신망에 정당한 접근 권한 없이 접근하거나 허용된 접근 권한의 범위를 초과하여 침입하는 행위 자체를 의미한다면,  크래킹은 그러한 불법적 접근을 통해 다른 사람의 컴퓨터 시스템이나 통신망을 파괴하는 행위를 일컫는 말입니다.

그리고, 해커(hacker)는 해킹을 하는 사람을 말하는데, 본래는 컴퓨터 시스템을 최고 수준의 성능을 낼 수 있도록 개조해 내는 컴퓨터광이라는 뜻을 가지고 있었으나,  이제는 컴퓨터의 호기심이나 지적욕구의 바탕 위에 컴퓨터와 컴퓨터간의 네트워크를 파괴하는 사람이라는 부정적은 의미도 추가되었습니다.

해킹에 사용되는 공격용 도구

해커가 해킹을 하기 위해 사용하는 대표적인 도구는 다음과 같습니다.
도구 설명
루트킷
(Root Kit)
- 시스템 침입 후 침입 사실을 숨긴 채 차후의 침입을 위한 백도어, 트로이 목마 설치, 원격 접근, 내부사용 흔적 삭제, 관리자 권한 획득 등 주로 불법적인 해킹에 사용되는 기능을 제공하는 프로그램의 모음
- 해커가 시스템의 민감한 정보를 수집하거나, 네트워크 상의 다른 시스템을 공격 또는 추적 회피를 위한 중간지점으로 이용하더라도 로그를 지워버릴 수 있어 탐지하기 어려운 도구- -
크라임웨어
(Crimeware)
- 온라인 상에서 범죄와 같은 불법적인 행위를 수행하기 위해 제작된 컴퓨터 프로그램으로 공격용 툴 킷으로 불림
- 악성 코드로 구성된 프로그램이 사용자를 속여 PC에 설치되면 불법적으로 정보를 수집하거나 PC 자원을 사용하여 원하는 대상을 공격하는 용도로 사용
- 키로거, 스파이웨어, 브라우저 하이잭커 등이 여기에 속함
(Worm) - 스스로를 복제하여 네트워크 등의 연결을 통하여 전파하는 악성 소프트웨어 컴퓨터 프로그램으로 컴퓨터 바이러스와 비슷하지만 바이러스가 다른 실행 프로그램에 기생하여 실행되는 데 반해 웜은 독자적으로 실행되며 다른 실행프로그램이 필요하지 않은 특징이 있음
악성 봇
(Malicious Bot)
- 스스로 실행되지 못하고, 해커의 명령에 의해 원격에서 제어 또는 실행이 간으한 프로그램 혹은 코드로 주로 취약점이나 백도어 등을 이용하여 전파되며. 스팸 메일 전송이나 분산서비스 거부 공격(DDoS)등에 악용됨

디지털 안전을 위협하는 다양한 공격 기법들

 

입력 데이터 검증 및 표현 취약점을 악용한 공격 기법과 보안 방법

공격 기법 설명 대책
XSS
(Cross Site Scripting)
검증되지 않은 외부 입력 데이터가 포함된 웹 페이지가 전송되는 경우, 사용자가 해당 웹페이지를 열람함으로써 웹페이지에 포함된 부적절한 스크립트가 실행되는 경우 - 특수문자 필터링
- HTML 태그 사용 금지
- 자바스크립트 문자열은 문자열 변환 처리
사이트 간 요청 위조
(CSRF, Cross Site Request Forgery)
사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격 - 입력 화면 폼 작성 시 GET 방식 보다 POST 방식을 사용
- 입력 폼과 입력처리 프로그램에서 세션별 CSRF 토큰을 사용하여 점검
- 중요기능의 경우 재인증을 통해 안전하게 실제 요청여부를 확인하도록 구현
SQL 삽입
(SQL Injection)
응용 프로그램의 보안 취약점을 이용해서 악의적인 SQL 구문을 삽입, 실행시켜서 데이터베이스(DB)의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격 기법 - 바인딩 매개변수 방식 적용하여 사전에 변수타입 명시적으로 지정
- 사용자로부터 입력될 수 있는 값을 모두 체크하여 필터링

 

 

패스워드 크래킹 공격의 유형

유형 설명
사전 대입 공격
(Dictionary Attack)
시스템 또는 서비스의 ID와 패스워드를 크랙하기 위해서 ID와 패스워드가 될 가능성이 있는 단어를 파일로 만들어 놓고 이 파일의 단어를 대입하여 크랙하는 공격 기법
무차별 대입 공격
(Brute Force Attack)
패스워드로 사용될 수 있는 영문자(대소문자), 숫자, 특수문자 등을 무작위로 대입하여 패스워드를 알아내는 기법
패스워드 하이브리드 공격
(Password Hybrid Attack)
사전 공격과 무차별 대입 공격을 결합하여 공격하는 기법
레인보우 테이블 공격
(Rainbow Table Attack)
패스워드별로 해시 값을 미리 생성해서 테이블에 모아 놓고, 크래킹하고자 하는 해시값을 테이블에서 검색해서 역으로 패스워드를 찾는 공격 기법

 

 

애플리케이션에 대한 DDos 공격의 종류

소프트웨어의 '가용성(Availaiblity)'을 해치는 공격 기법
공격 기법 설명
SlowIoris
(Slow HTTP Header Dos)
HTTP GET 메서드를 사용하여 헤드의 최종 끝을 알리는 개행 문자열 \r\n\r\n(Hex: 0a 0a 0d 0a)을 전송하지 않고, \r\n(Hex: 0d 0a)만 전송하여 대상 웹서버와 연결상태를 장시간 지속시키고 연결자원을 모두 소진시키는 서비스 거부 공격
RUDY
(Slow HTTP POST Dos)
요청 헤더의 Conent-Length를 비정상적으로 크게 설정하여 메서지 바디 부분을 매우 소량으로 보내 계속 연결 상태를 유지시키는 공격 기법
Slow Read Attack TCP 윈도 크기와 데이터 처리율을 감소시킨 상태에서(Zero Window Packet) 다수 HTTP 패킷을 지속적으로 전송하여 대상 웹서버의 연결 상태가 장시간 지속, 연결 자원을 소진시키는 서비스 거부 공격
HTTP GET Flooding HTTP 캐시 옵션을 조작하여 캐싱 서버가 아닌 웹 서버가 직접처리하도록 유도, 웹서버 자원을 소진시키는 서비스 거부 공격
Hulk Dos 공격자가 공격 대상 웹사이트 웹 페이지 주소(URL)를 지속적으로 변경하면서 다량으로 GET 요청을 발생시키는 서비스 거부 공격
Hash Dos
조작된 많은 수의 파라미터를 POST 방식으로 웹 서버로 전달하여 다수의 해시 충돌(Collision)을 발생시켜서 자원을 소모시키는 서비스 거부 공격

 

 

네트워크 공격 기법

공격 기법 설명
IP 스푸핑
(IP Spoofing)
- 타깃 시스템의 정보를 빼내기 위해 침입자가 인증된 시스템으로 속여 자신의 패킷 헤더를 인증된 호스트의 IP 주소로 위조하여 타깃에 전송하는 공격 기법
ARP 스푸핑
(ARP Spoofing)
- ARP 메시지를 이용하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법(MTM)
- ARP 프로토콜의 허점을 이용하여 자신의 MAC(Media Access Control) 주소를 다른 컴퓨터의 MAC인 것처럼 속임
ICMP Redirect 공격 - ICMP Redirect 메시지를 공격자가 원하는 형태로 만들어서 특정 목적지로 가는 패킷을 공격자가 스니핑하는 공격 기법
트로이 목마
(Trojan Horses)
- 악성 루틴이 숨어 있는 프로그램으로 겉보기에는 정상적인 프로그램으로 보이지만 실행하면 악성 코드를 실행하는 프로그램

  

 

주요 시스템 보안 공격 기법

공격 기법 설명
포맷 스트링 공격
(Format String Attack)
포맷 스트링을 인자로 하는 함수의 취약점을 이용한 공격으로 외부로부터 입력된 값을 검증하지 않고 입출력 함수의 포맷 스트링을 그대로 사용하는 경우 발생하는 취약점 공격 기법
레이스 컨디션 공격
(Race Condition Attack)
실행되는 프로세스가 임시파일을 만드는 경우 악의적인 프로그램을 통해 그 프로세스의 실행 중에 끼어들어 임시파일을 심볼릭 링크하여 악의적인 행위를 수행하게 하는 공격 기법
키로거 공격
(Key Logger Attack)
컴퓨터 사용자의 키보드 움직임을 탐지해서 저장하고, ID나 패스워드, 계좌 번호, 카드 번호 등과 같은 개인의 중요한 정보를 몰래 빼가는 해킹 공격
공급망 공격
(Supply Chain Attack)
소프트웨어 개발사의 네트워크에 침투하여 소스 코드의 수정 등을 통해 악의적인 코드를 삽입하거나 배포 서버에 접근하여 악의적인 파일로 변경하는 방식을 통해 사용자 PC에 소프트웨어를 설치 또는 업데이트 시에 자동적으로 감염되도록 하는 공격 기법
제로데이 공격
(Zero Day Attack)
보안 취약점이 발견되어 널리 공표되기 전에 해당 취약점을 악용하여 이루어지는 보안 공격 기법
멀웨어
(Malware)
악의적인 목적을 위해 작성된 실행 가능한 코드로 악성코드 또는 악성 프로그램으로 불리며, 실행 가능한 코드에는 프로그램 매크로, 스크립트가 아니라 취약점을 이용한 데이터 형태로 표현
APT (Advanced Persistent Threat) 특정 타깃을 목표로 하여 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격 기법으로 특수목적의 조직이 하나의 표적에 대해 다양한 IT 기술을 이용하여, 지속적으로 정보를 수집하고, 취약점을 분석하여 피해를 주는 공격 기법
드라이브 바이 다운로드
(Drive By Download)
악의적인 해커가 불특정 웹 서바와 웹 페이지에 악성 스크립트를 설치하고, 불특정 사용자 접속 시 사용자 동의 없이 실행되어 의도된 서버(멀웨어 서버)로 연결하여 감염시키는 공격 기법
워터링 홀
(Watering Hole)
특정인에 대한 표적 공격을 목적으로 특정인이 잘 방문하는 웹 사이트에 악성 코드를 심거나 악성 코드를 배포하는 URL로 자동으로 유인하여 감염시키는 공격 기법
타이포 스쿼팅
(Typosquatting)
사용자들이 사이트에 접속할 때 주소를 잘못 입력하거나 철자를 빠뜨리는 실수를 이용하기 위해 이와 유사한 도메인을 미리 등록하여 정보를 탈취하는 행위로 URL 하이재킹(Hijacking)이라고도 부르는 보안공격

 

 

기타 다양한 공격 기법

공격 기법 설명
TCP 세션 하이재킹, 
세션 하이재킹(Session Hijacking)
- 케빈 미트닉이 사용한 공격 방법의 하나로 TCP의 세션 관리 취약점을 이용한 공격 기법
스턱스넷(Stuxnet) - 독일 지멘스사의 원격 감시 제어 시스템의 소프트웨어에 침투하여 시스템을 마비하게 하는 악성 코드
- 원자력 발전소와 송/배전망, 화학공장, 송유/가스관과 같은 산업기반 시설에 사용되는 제어 시스템에 침투하여 오동작을 유도하는 명령코드를 입력해서 시스템을 마비시킨다.
사회공학
(Social Engineering)
컴퓨터 보안에 있어서, 인간 상호작용의 깊은 신뢰를 바탕으로 살마들을 속여서 정 상보안 절차를 깨뜨리기 위한 비기술적 시스템 침입 수단
사례로는 상대의 자만심이나 권한을 이용하는 공격 및 도청 등이 있음
그레이웨어
(Grayware)
바이러스나 명백한 악성코드를 포함하지 않는 합법적인 프로그램이면서도 사용자를 귀찮게 하거나 위험한 상황에 빠뜨릴 수 있는 프로그램
평범한 소프트웨어인지, 바이러스인지 구분하기 어려운 중간 영역에 존재하는 프로그램으로 스파이웨어, 애드웨어, 장난 프로그램, 원격 액세스 도구 등 사용자가 원하는 않는 프로그램을 총칭하는 이름
이블 트윈(Evil Twin) 공격 무선 Wifi 피싱 기법으로 공격자는 합법적인 Wifi 제공자처럼 행세하여 노트북이나 휴대전화로 핫스팟에 연결한 무선 사용자들의 정보를 탈취하는 무선 네트워크 공격 기법
랜섬웨어
(Ransomeware)
악성 코드의 한 종류로 감염된 시스템의 파일들(문서, 사진, 동영상 등)을 암호화하여 복호화할 수 없도록 하고, 피해자로 하여금 암호화된 파일을 인질처럼 잡고 몸값을 요구하는 악성 소프트웨어
현금이나 비트코인 등을 받고 복호화해주는 범죄행위에 이용되고 있음
Blind SQL Injection - SQL 삽입 공격(SQL Injection) 유형의 한가지
DB 쿼리에 대한 오류 메세지를 반환하지 않으면 공격을 할 수 없는 Error-Based SQL Injection과 달리 오류 메시지가 아닌 쿼리 결과의 참과 거짓을 통해 의도하지 않은 SQL 문을 실행함으로써 데이터베이스를 비정상적으로 공격하는 기법

 


참고자료
https://ko.wikipedia.org/wiki/%EC%A0%95%EB%B3%B4_%EB%B3%B4%EC%95%88

 

정보 보안 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 정보 보안(情報保安, 영어: information security 또는 infosec, 정보 보호)은 정보를 여러 가지 위협으로부터 보호하는 것을 뜻한다. 정보의 수집, 가공, 저장, 검색, 송

ko.wikipedia.org

https://ko.wikipedia.org/wiki/%ED%95%B4%ED%82%B9

 

해킹 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 해킹(security hacking)은 타인의 컴퓨터 시스템에 무단 침입하여 데이터에 접속할 수 있는 권한을 얻는 것이다. 전자 회로나, 컴퓨터의 하드웨어, 소프트웨어, 네트

ko.wikipedia.org

https://www.microsoft.com/ko-kr/security/business/security-101/what-is-information-security-infosec

 

InfoSec(정보 보안)이란?| Microsoft Security

정보 보안은 승인되지 않은 액세스, 사용, 중단, 수정 또는 파기로부터 정보를 보호해 줍니다.

www.microsoft.com