해킹보안

해킹과 보안 취약점의 개념

JoyfulS 2021. 6. 24. 15:12

◎ 해킹의 정의

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

 

VS

 

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

 

 

○ 법률적인 의미

"침해사고"란 해킹, 컴퓨터바이러스, 논리폭탄, 메일폭탄, 서비스 거부 또는 고출력 전자기파 등의 방법으로 정보통신망 또는 이와 관련된 정보시스템을 공격하는 행위를 하여 발생한 사태를 말한다.

(출처 : 정보통신망 이용촉진 및 정보보호 등에 관한 법률 제2조7항)

 

 

◎ 해킹의 유사개념

○ 웹 해킹(Web Hacking)
웹 사이트의 취약점을 공격하는 기술적 위협으로, 웹 페이지를 통하여 권한이 없는 시스템에 접근하거나 데이터 유출 및 파괴와 같은 행위를 말한다.

  • 웹 엔진 취약점을 이용한 해킹
  • 웹 애플리케이션의 취약점을 이용한 해킹
  • 각종 웹 서버 및 미들웨어 기본 제공 샘플 파일을 이용한 해킹 등

웹 애플리케이션을 통해서 발생되는 해킹이 주로 일어나는데 이를 OWASP에서 10대 웹 애플리케이션의 취약점을 발표

웹 애플리케이션 해킹으로 가장 빈도가 많이 발생하고, 보안상 영향을 크게 줄 수 있는 것들로는 SQL 삽입(영어: SQL Injection), XSS, CSRF 웹 셸 업로드 등이 있다.

 

○ 취약점 공격(Exploit)
약점 공격 또는 익스플로잇 이란 컴퓨터의 소프트웨어나 하드웨어 및 컴퓨터 관련 전자 제품의 버그, 보안 취약점 등 설계상 결함을 이용해 공격자의 의도된 동작을 수행하도록 만들어진 절차나 일련의 명령, 스크립트, 프로그램 또는 특정한 데이터 조각을 말하며, 이러한 것들을 사용한 공격 행위를 이르기도 한다.

  • 로컬 취약점 공격 : 취약점 공격이 공격 대상 자체에서 실행됨
  • 원격 취약점 공격 : 공격자의 컴퓨터에서 실행되어 다른 컴퓨터를 공격
  • 이용하는 보안 취약점 종류에 따라 : BOF, CSRF, XSS 등

 

○ 제로데이(Zero-day) 취약점 공격
소프트웨어 취약점이 개발자에게 알려지지 않아 패치가 없는 시점에서 만들어져 사용되는 것
>> 대책 : 최신 업데이트를 적용, 비정상적인 행동을 감시 방어

  • 취약점 공격이 초래하는 결과(목적) 에 따라 EoP 취약점 공격, DoS 취약점 공격, 스푸핑 취약점 공격 등로 구분  

 

○ 사이트 간 스크립팅(또는 크로스 사이트 스크립팅, cross-site scripting, XSS)
웹 애플리케이션에서 많이 나타나는 취약점의 하나로 웹사이트 관리자가 아닌 이가 웹 페이지에 악성 스크립트를 삽입할 수 있는 취약점이다.

  • 주로 여러 사용자가 보게 되는 전자 게시판에 악성 스크립트가 담긴 글을 올리는 형태
  • 웹 애플리케이션이 사용자로부터 입력 받은 값을 제대로 검사하지 않고 사용할 경우 나타남
  • 해커가 사용자의 정보(쿠키, 세션 등)를 탈취하거나, 자동으로 비정상적인 기능을 수행하게 할 수 있음
  • 주로 다른 웹사이트와 정보를 교환하는 식으로 작동하므로 사이트 간 스크립팅이라고 함

 

○ 사회공학(Social engineering) 공격

보안학적 측면에서 기술적인 방법이 아닌 사람들간의 기본적인 신뢰를 기반으로 사람을 속여 비밀 정보를 획득하는 기법

  • 컴퓨터 보안에서 인간 상호 작용의 깊은 신뢰를 바탕으로 사람들을 속여 정상 보안 절차를 깨트리기 위한 비기술적 침입 수단
  • 우선 통신망 보안 정보에 접근 권한이 있는 담당자와 신뢰를 쌓고 전화나 이메일을 통해 그들의 약점과 도움을 이용
  • 상대방의 자만심이나 권한을 이용하는 것, 정보의 가치를 몰라서 보안을 소홀히 하는 무능에 의존하는 것과 도청 등이 일반적인 사회 공학적 기술
  • 이 수단을 이용하여 시스템 접근 코드와 비밀번호를 알아내 시스템에 침입하는 것으로 물리적, 네트워크 및 시스템 보안에 못지 않게 인간적 보안이 중요하다.
    사례 : 피싱, 보이스 피싱(전화사기) 등

 

 

◎ 해킹(해커)의 종류

 해커

해킹을 하는 사람. 컴퓨터 전반, 특히 정보 보안에 능통한 전문가를 가리킨다.
해커라는 낱말 자체는 선악(善惡)의 개념을 담지 않은 가치중립적 의미를 가지고 있으나 '컴퓨터 지식을 이용하여 남의 정보 체계에 침입하거나 범죄를 저지르는 사람'이라는 부정적인 뜻으로 많이 쓰이고 있다. 일부 컴퓨터 전문가 공동체에서는 해커가 부정적인 의미로 쓰이는 것은 잘못이며, 컴퓨터 지식을 이용해 불법을 저지르는 사람을 크래커라고 불러야 한다고 주장한다. 또한 리누스 토르발스, 리처드 스톨먼, 에릭 레이먼드 등의 저명한 프로그래머를 해커라고 부르기도 한다.

 

○ 화이트 해커(White-hat hacker)

모의 해킹(penetration testing)이나 다른 취약점 점검 등의 기법에 전문적인 보안전문가로 블랙햇(black-hat hacker)과 대비되는 개념이다. 이들은 공익 또는 학업을 위한 순수 목적으로 정보 시스템에 대해 해킹을 시도하며 해킹에 대한 대응전략을 구상한다. 한국에서는 주로 화이트 해커라고 불린다.

 

그레이햇 해커(Grey-hat hacker or Grey-hat)
화이트햇과 블랙햇 에서 파생된 것으로, 흰색과 검은색을 섞으면 회색이 되는 것에서 생겨난 용어이다. 이처럼 그레이햇은 해커와 크래커의 중간적인 성질을 지고있다. 여기서 중간적인 성질이란 해킹 기술을 어떤때는 선한 목적으로 사용하고 어떤 때는 악하게 사용한다는 그런 뜻이 아니다.
그레이햇은 항상 좋은 목적에서 해킹을 한다. 그들은 해킹 기술을 사용하여 시스템의 취약점을 분석하고 허가 없이 시스템에 침투한다. 하지만 시스템을 파괴하지는 않으며 알아낸 취약점을 보완하기위해 오히려 보안 장치를 설치해준다.

 

○ 스크립트 키디(Script Kiddie or Skiddie)

해커 문화에서 컴퓨터 시스템과 네트워크를 공격하기 위해 다른 사람이 개발한 스크립트나 프로그램을 사용하는 사람을 경멸적으로 부르는 말이다. 스크립트 키디는 보통 정교한 해킹 프로그램을 짜거나 활용할 수 있는 능력이 부족한 어린 아이를 말하며, 자신의 친구에게 자랑을 하거나 컴퓨터 전문가 공동체로부터 신용을 얻는 것을 목적으로 해킹을 시도한다.

 

○ 훙커(紅客/红客, Honker Union) 또는 레드 해커(Red Hacker)

주로 블랙햇 해커 중에서 중국의 해커들을 일컫는다.

 

 

 

◎ 해킹의 처벌

 

○ 정보통신망 이용촉진 및 정보보호 등에 관한 법률 제48조(정보통신망 침해 행위 등)

 

제48조(정보통신망 침해행위 등의 금지)

① 누구든지 정당한 접근권한 없이 또는 허용된 접근권한을 넘어 정보통신망에 침입하여서는 아니 된다.
② 누구든지 정당한 사유 없이 정보통신시스템, 데이터 또는 프로그램 등을 훼손·멸실·변경·위조하거나 그 운용을 방해할 수 있는 프로그램(이하 "악성프로그램"이라 한다)을 전달 또는 유포하여서는 아니 된다.
③ 누구든지 정보통신망의 안정적 운영을 방해할 목적으로 대량의 신호 또는 데이터를 보내거나 부정한 명령을 처리하도록 하는 등의 방법으로 정보통신망에 장애가 발생하게 하여서는 아니 된다.

 

제49조(비밀 등의 보호) 누구든지 정보통신망에 의하여 처리·보관 또는 전송되는 타인의 정보를 훼손하거나 타인의 비밀을 침해·도용 또는 누설하여서는 아니 된다.

    
제70조의2(벌칙) 제48조제2항을 위반하여 악성프로그램을 전달 또는 유포하는 자는 7년 이하의 징역 또는 7천만원 이하의 벌금에 처한다.

 

○ 정보통신망 이용촉진 및 정보보호 등에 관한 법률 제70조의2, 71조(처벌)

   

제70조의2(벌칙)

제48조제2항을 위반하여 악성프로그램을 전달 또는 유포하는 자는 7년 이하의 징역 또는 7천만원 이하의 벌금에 처한다.

 

제71조(벌칙)

①다음 각 호의 어느 하나에 해당하는 자는 5년 이하의 징역 또는 5천만원 이하의 벌금에 처한다.

       9. 제48조제1항을 위반하여 정보통신망에 침입한 자

     10. 제48조제3항을 위반하여 정보통신망에 장애가 발생하게 한 자

     11. 제49조를 위반하여 타인의 정보를 훼손하거나 타인의 비밀을 침해·도용 또는 누설한 자

 

 

 

◎ 보안 취약점

 

○ 정보보안(Security)

  • 개인정보, 비밀정보 등이 있는 데이터와 시스템을 고의 혹은 실수에 의한 비인가 또는 불법적인 노출, 변조, 파괴로 부터 보호하는 것이다.
  • 기밀성, 무결성, 가용성, 책임추적성, 준거성의 특징을 갖는다.

 

○ 취약점

  • 시스템(S/W 또는 H/W)의 내부적인 허점이 노출되는 것
  • 즉, 시스템 및 네트워크의 설계, 구현, 운영, 관리상의 약점이다.
  • 크랙커가 시스템 및 네트워크 취약점을 이용해 원하는 목적을 달성한다.

 

 

 

○ 보안 취약점 증가 원인

  • 네트워크가 연결되어 있다면 언제, 어디에서든 접근이 가능하다는 것이다. 전 세계가  그물망처럼 얽혀 있는 네트워크에 접속만 할 수 있다면 사용자가 어디에 있든 원하는 시스템까지 접속이 가능하다.
  • 정보에 대한 변조가 용이하다는 것이다. 컴퓨터의 저장 공간은  종이나 기타 실생활에 사용하는 물체보다 정보의 변조가 용이하다. 또한 이전의 정보를 유지  하지 않고 새로운 정보로 바꾸는 데 드는 시간이 점점 줄어 들고 있다.
  • 정보의 집적성이다. 거의 대부분의 중요한 서비스가 컴퓨터 시스템으로 통합되고 있다. 금융, 교통, 정치, 경제  할 것 없이 컴퓨터라는 시스템을 중심으로 돌아가고 있다.
  • 소프트웨어의 복잡성이다.  복잡한 소프트웨어 일수록 문제점을 찾기 힘들고, 논리적 오류나 치명적인 오류가 발생할 확률이 증가한다. 이렇게 발생된 컴퓨터 시스템 오류들은 보안취약점으로 발전할 가능성이 있다.
  • 불가시성을 들 수 있다. 시스템에 누가 들어와서 무엇을 하는지 빠르게 알아차리기가  쉽지 않다. 시스템 내부는 시스템 관리자 등의 눈에 보이지 않기 때문이다. 이러한 불가시성을  이용하여 컴퓨터 시스템 관련 범죄가 발생되고 있다.

 

○ 보안 취약점 종류

 

1. 시스템 보안 취약점

  • 사용자의 계정이나 디렉토리, 파일 등의 관리에 대한 취약점
  • 접근 권한이 없는 사용자가 특정 파일을 열람 가능한다면 심각한 보안 취약점

예: Server, Web, WAS, 정보보호시스템 등

 

2. 네트워크 보안 취약점

  • 시스템의 상태를 확인하기 위한 취약점
  • 크래킹의 첫 단계로 네트워크 취약점을 파악하고 접근방법을 검토

대표적인 취약점 악용 :
- Ping 스캔 (네트워크 상에서 호스트 존재 여부 파악)

- 네트워크 상의 모든 IP 주소로 ICMP echo request packet 발송 후 응답하면 연결 판단
- ICMP(Internet Control Message Protocol) : 네트워크 위에서 돌아가는 운영체제에서 오류 메시지를 전송받음

 

3. 웹 보안 취약점

  • 웹 브라우저의 문제나 웹 프로그래밍 언어의 오류, 버그로 인한 보안 취약점
  • 사용자 인증 절차 없거나 우회하여 접속, 접근 권한을 초과한 정보 열람

 

 

○ 서버 취약점 진단

 

서버 취약점 점검은 시스템 설정 또는 서비스를 통해 공격자에 의해 공격당하지 않도록 보안점검 항목을 정의하여 점검을 실시한다. 취약점 점검 항목에 의해 현황을 파악하고 보안 기준에 부합하도록 설정을 유지하여 안정적인 서비스와 보안 위험을 사전 제거하는 것을 목적으로 한다.

 

서버 취약점 점검은 유닉스/리눅스 서버와 윈도우 서버에 대한 취약점에 대하여 사전 정의된 항목을 바탕으로 이루어진다.

 

서버에 대한 취약점 점검은 계정관리, 파일 및 디렉토리 관리, 서비스 관리, 패치관리, 로그관리 등으로 나누어 실시한다.
- 계정관리: 시스템에 등록되어 있는 관리자 및 사용자 계정의 권한 오남용 여부, 패스워드의 안전한 설정 적용

- 파일 및 디렉토리 관리: 시스템 파일 밑 디렉토리의 권한 오남용 여부 점검, 중요파일에 대한 권한 오남용 여부 점검

- 서비스 관리: 시스템에서 제공하는 서비스 중 불필요한 서비스 활성화 부분 및 설정 점검(DNS, SMTP, SNMP, FTP, SSH 등)

- 패치 관리: 최신 보안 패치 및 서버의 제조사에서 제공하는 시스템 패치에 대한 설정 및 적용 현황 점검
- 로그 관리: 시스템 로그 접근 권한 점검, 로그수집에 대한 점검

 

○ 서버 취약점 진단 기술

  • 서버 취약점 진단은 운영체제 별로 알려진 취약점에 대하여 서버의 용도에 따라 체크리스트 형태로 실시한다.
  • 과기정통부의 주요정보통신기반시설에 대한 취약점 분석 평가 기준을 근거로 취약점 항목을 설명한다.