최근 수정 시각 : 2024-11-06 18:19:24

해킹


파일:나무위키+유도.png  
은(는) 여기로 연결됩니다.
범죄 행위로서의 해킹에 대한 내용은 크래킹 문서
번 문단을
부분을
, 해커의 취업에 대한 내용은 해커 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.

[[컴퓨터공학|컴퓨터 과학 & 공학
Computer Science & Engineering
]]
[ 펼치기 · 접기 ]
||<tablebgcolor=#fff,#1c1d1f><tablecolor=#373a3c,#ddd><colbgcolor=#0066DC><colcolor=white> 기반 학문 || 수학( 해석학 · 이산수학 · 수리논리학 · 선형대수학 · 미적분학 · 미분방정식 · 대수학( 환론 · 범주론) · 정수론) · 이론 컴퓨터 과학 · 암호학 · 전자공학 · 언어학( 형태론 · 통사론 · 의미론 · 화용론 · 음운론) · 인지과학 ||
하드웨어 구성 SoC · CPU · GPU( 그래픽 카드 · GPGPU) · ROM · RAM · SSD · HDD · 참조: 틀:컴퓨터 부품
기술 기계어 · 어셈블리어 · C/ C++ · C# · Java · Python · BIOS · 절차적 프로그래밍 · 객체 지향 프로그래밍 · 해킹 · ROT13 · 일회용 비밀번호 · 사물인터넷 · 와이파이 · GPS · 임베디드 · 인공신경망 · OpenGL · EXIF · 마이크로아키텍처 · ACPI · UEFI · NERF · gRPC · 리버스 엔지니어링 · HCI · UI · UX · 대역폭 · DBMS · NoSQL · 해시( SHA · 브루트 포스 · 레인보우 테이블 · salt · 암호화폐) · RSA 암호화 · 하드웨어 가속
연구

기타
논리 회로( 보수기 · 가산기 · 논리 연산 · 불 대수 · 플립플롭) · 정보이론 · 임베디드 시스템 · 운영 체제 · 데이터베이스 · 프로그래밍 언어{ 컴파일러( 어셈블러 · JIT) · 인터프리터 · 유형 이론 · 파싱 · 링커 · 난해한 프로그래밍 언어} · 메타데이터 · 기계학습 · 빅데이터 · 폰노이만 구조 · 양자컴퓨터 · 행위자 모델 · 인코딩( 유니코드 · MBCS) · 네트워크 · 컴퓨터 보안 · OCR · 슈퍼컴퓨터 · 튜링 머신 · FPGA · 딥러닝 · 컴퓨터 구조론 · 컴퓨터 비전 · 컴퓨터 그래픽스 · 인공지능 · 시간 복잡도( 최적화) · 소프트웨어 개발 방법론 · 디자인 패턴 · 정보처리이론 · 재귀 이론 · 자연어 처리( 기계 번역 · 음성인식) · 버전 ( 버전 관리 시스템 · Git · GitHub)


1. 개요2. 상세3. 어원4. 분야5. 영화에서6. 이름을 빌려온 유사 개념7. 워 게임8. 해킹이 주 소재인 작품9. 관련 문서
9.1. 관련 링크
10. 여담

1. 개요

Hacking

정보보안 분야에서의 정의는 프로그램 원 제작자가 걸어 놓은 프로그램 코드 락 알고리즘을 뚫어서 프로그램 소스를 알아내거나 프로그램 소스를 변경해서 자기 입맛에 맞게 바꾸는 모든 행위를 의미한다.[1] 흔히 해킹이라 불리는 행위는 악의적인 목적으로 프로그램이나 서버 등에 보안을 뚫고 침입하여 그것을 나쁘게 바꾸거나 정보를 탈취하는 행위 등을 의미하는데, 엄밀히 따지면 이쪽은 크래킹이라고 따로 불리며 해킹의 하위 범주에 속한다. 즉, 프로그램 자체를 제작자의 의도와 다르게 바꾸는 모든 행위가 해킹이고, 그것을 불순한 목적으로 나쁘게 바꾸는 것이 크래킹이다. 사전적인 의미는 찢어 가르다이고 그 말 그대로 컴퓨터 시스템을 찢어 가르는 행위다. 잔인하고 끔찍한 범죄에나 사용될 단어지만(지금도 가끔 그런 의미로 사용되지만 : hacked open이라고 하면 개복살인을 의미한다) 컴퓨터 시스템의 용어로 사용되면서 잔인성이 희석된 케이스이다.

2. 상세

해킹 자체가 범죄는 아니지만 불순한 의도로 악용하는 크래킹은 범죄가 된다. 다시 말해, 단순히 코드 락을 뚫어서 프로그램 소스를 확인하기만 하는 것은 범죄가 아니다. 여기에 몇몇 열성적인 프로그래머는 자기가 사용하던 프로그램에서 버그가 발생하면 프로그램 소스 락을 풀어 소스 코드를 확인한 다음 어디가 문제인지 리포트를 써주기도 한다. 물론 그렇게 확인한 소스 코드를 그대로 베껴서 파는 것 등 악용할 경우 당연히 불법이다.

오픈 소스 프로그램은 소스 코드 수정이 자유롭고, 상용 소프트웨어라도 프로그램 사용 계약 내용을 준수하거나 저작권법을 지키는 범위 내에서[2] 프로그램을 개조한다면 불법이 아니다. 하지만 계약에서 벗어난 행위(모든 사람에게 공개해 버리거나, 락을 해제하는 크랙을 만드는 등), 피해를 줄 목적으로 임의로 조작된 프로그램을 배포하는 등의 행위는 범죄다.

범죄 행위를 하는 해커는 크래커라고 정의하지만, 사실 해커와 크래커를 구분하지 않는 것이 현실이다. 국내에서는 해커라는 단어 자체에 범죄의 이미지가 강하고 화이트 해커의 경우 보통 보안 전문가 또는 그냥 IT전문가라고 칭한다.

데스크톱 컴퓨터에서는 윈도우 계열이, 모바일에서는 안드로이드가 특히 해커들의 주요 타겟이 된다. 하지만, 세간의 인식과는 달리 특별히 윈도우나 안드로이드가 취약점이 많은 것은 아니다. 애플사의 제품에서 보안 이슈가 없는 것은 제약이 많기 때문이다. 점유율이 낮아서 해커들이 관심이 없기 때문이라는 이야기도 있으나, 이 경우 미국에서 점유율이 상당히 높은 아이폰의 보안은 설명할 수 없다. 예를 들어 맥에서는 다른 프로세스에 간섭하는 자체 명령어가 없다. 따라서 바이러스는 물론이고, 게임 트레이너나 AppLocale 같은 프로그램도 만들 수 없다. 운영 체제를 뜯어고치지 않는 이상 존재하지도 않는 명령어를 실행할 수는 없으니까. 게다가 관리자 권한을 획득해도 할 수 있는 일이 윈도우에 비해 굉장히 제한적이다. 아이폰만 해도 안드로이드에 비해 취약점이 몇 배나 되지만 실제 피해 사례가 전무한 것이 이 때문. 요약하자면 뚫는 건 쉽지만 뚫어도 할 수 있는 게 거의 없다. 실제로 Rootpipe 같은 root 권한을 얻어 버리는 초대형 취약점이 터졌는데도 매우 조용하게 지나갔다.

그렇다고 아이폰이 항상 안전한 것도 아니고, 안드로이드에서 대표적인 예가 중국에서 커뮤니티 등을 해킹한 다음 돈을 요구하는 것이나, 러시아에서 악성코드에 감염된 봇넷을 가지고 DDoS 공격을 가하겠다고 기업들을 협박하여 돈을 뜯어내는 것이다. 이런 종류의 범죄는 현재 범죄 조직에 의해 철저히 분업화되어 있으며, 이를 통해 몇 시간 단위로 악성 코드를 바꾸어 백신이 미처 대응하지 못하도록 만들기까지 하는 모습을 보인다.

블랙 해커(크래커)가 감옥에 들어갔다가 나오면 기업이나 정부에서 데려 간다는 이야기가 있다. 이는 90년대 후로는 거짓이다. 해커 문서 참조.

대한민국 국군에서도 스턱스넷과 비슷한 공격용 소프트웨어를 개발할 계획이 있다.

정보기관이 개입된 것으로 의심되는 해킹 툴에는 레긴, 스턱스넷, Darkhotel 등이 있다.

Darkhotel 한국에서 제작되었을 가능성이 있다. 그러니까 국정원 같은 데서도 알게 모르게 사이버 전에 사용되는 악성 코드를 이미 비밀리에 만들어 쓰고 있을지도 모르는 것이다. DarkHotel을 제작한 이들은 이탈리아 해킹팀에서 유출된 내용을 금세 자기네들 DarkHotel에 적용하는 부지런함을 보였다.

실제로 에드워드 스노든에 의해 나름 실력이 있는 해커들조차 대부분 잡히는 이유가 드러났다. 무슨 대단한 추리 능력을 동원한 게 아니라 미국 정부는 물론 대기업들에서도 정보 수집을 하기 때문. # 농협맵핵사건처럼 대놓고 보고있으니 일반적인 플랫폼을 이용하는 절대 다수의 해커들은 당할 수밖에 없다. 실력이 그렇게 대단치 않아도 잘 안 잡히는 해커들은 정부나 기업을 처음부터 신뢰하지 않았기 때문이었다.

하지만 너무 무서워할 건 없다. 안랩같은 백신 프로그램도 존재하고 있고 프로그래머들이 계속 복호화 툴을 공개하고 있기 때문이다. 하지만 그에 대응하는 랜섬웨어 등이 점점 진화하고 있어 방심해서는 안 된다.

3. 어원

{{{#!wiki style="margin: 0 -10px -5px; min-height: 26px"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -6px -1px -11px"
HACK
( 해커)
케임브리지 자본 논쟁 출신 인물 MIT 경찰대
MIT 테크놀로지 리뷰 MIT 허가서 edX 스크래치
}}}}}}}}} ||
해킹이라는 단어의 어원은 MIT의 교내 은어였던 게 대중으로 퍼진 것으로 원래 의미는 컴퓨터 매니아들이 컴퓨터에 대해 속속들이 알아내며 컴덕질을 하던 해커 컬쳐(Hacker Culture)에서 유래한 말이다. 즉 해킹은 원래 컴퓨터나 게임 같이 너드들을 자극하는 지식들의 밑바닥까지 파고들며 전체 시스템에 대한 완벽한 이해나 주도권을 가지려는 문화를 가리키려고 쓰던 말이지만 대중매체에서 정보보안을 뚫어내는 자극적인 이미지가 퍼지면서 보안해킹의 이미지로 굳혀진 것.

4. 분야

다음과 같은 세부 분야들이 있다.

5. 영화에서

관객의 이목을 끌기 위해 신기한 최신 기술을 내용에 녹여내거나 하는 일이 많은 영화에서도 해킹 장면이 꽤 오래전부터 많이 등장 해 왔다. 또한 컴퓨터에 대한 대중들의 관심이 전 세계적으로 비상하게 증가하였지만, 정작 대다수의 관객들이 전문적인 컴퓨터 기술에 대해 무지하다는 점 때문에 주인공에게 닥친 어려움이나 위기를 해킹으로 대충 어물쩡 해결하는 식으로 써먹기도 편리하다.

그래서 해킹에 대한 대중의 두려움을 최대한 활용한다. 휴대용 단말기 1대만 있으면 사람의 인적사항을 다 알아낼 수 있다든지, 터미네이터 2에서 주인공 존 코너가 휴대용 단말기로 ATM을 브루트 포스 해킹해서 돈을 뽑아내는 식이다.

하지만 실제 해킹이란 그렇게 만능이 아니고, 많은 시간과 노력이 필요한데다 결정적으로 구경하기에 전혀 재미가 없다. 해킹이라고 하면 거창하지만 컴퓨터 프로그래밍 작업을 한다고 생각해보자. 얼마나 화려할 것 같은가? 영화에서는 이런 현실을 무시하고 가능한 한 화려하게 묘사되는 경우가 많다. 매우 정교하고 화려한 GUI로(...) 해킹의 진행상황이 표시된다거나, 장난스러운 아스키 아트가 올라와 있는 CLI에 명령어를 한두 줄 적으면 엄청난 양의 문자열이 눈에 보이지도 않는 속도로 올라오더니 해킹이 완료되는 경우가 잦다.

더 나아가서 황당한 초현실 속의 해킹을 묘사하는 경우도 있다. 해킹 과정이 일종의 퍼즐 게임에 가깝게 묘사되거나, 심지어는 컴퓨터를 해킹하다 못해 시공간을 해킹하고 해킹으로 죽은 사람을 살리기까지 하며, 만약 영화 속 배경이 가상현실이면 가히 창조신에 가까운 권능을 발휘한다. 가장 대표적인 예시가 매트릭스 시리즈. 그 외에도 영화 인디펜던스 데이에서 지구의 컴퓨터 바이러스를 이용해 외계인 모선의 시스템을 공격하여 정지하는 장면 등이 친숙한 예이다.[3] 심지어 와치독스의 경우는 그냥 '스마트폰을 터치'하고 약간의 퍼즐을 푸는 것만으로 모든 것이 해킹 완료된다(…) 다만 와치독스의 경우 관련 설정이 있다. 작중의 배경이 되는 도시는 ctOS라는 하나의 통합된 시스템으로 운영되는데, 해커들이 ctOS의 보안 허점을 찾아 백도어를 심었고 주인공은 동료 해커들이 만든 해킹 프로그램을 스마트폰에 설치했기 때문에 이것이 가능하다는 설정이다. 즉 주인공은 순수한 의미의 해커라기보다는 그것을 완벽한 타이밍에 실행하는 오퍼레이터에 가깝다. 그렇다고 주인공이 해커가 아닌 것은 아니다. 해커들이 공격할 수 있는 침투로를 개척하거나 보안이 강력한 곳을 우회해서 악성코드를 심는 일도 해킹의 일종이다. 즉 주인공은 '행동파' 해커인 셈.

영화에서 해킹을 묘사할 때는 다음과 같은 클리셰들 중의 일부를 따르는 경우가 많다.
  • 엄청난 속도로 키보드를 두드린다: 영화 속 세계에서는 분당 타자수가 높을수록 더 뛰어난 해커인 듯하다.[4] 대부분의 영화에서 해커는 놀라운 속도로 키보드를 두드리고 있다. 일례로 NCIS 시즌 2 에피소드 5에서는 혼자서 키보드를 두드리며 해커의 공격을 막아내다가 잘 풀리지 않자 둘이서 키보드 하나를 잡고 광속으로 두드리는 황당한 장면이 나온다. 물론 실제로 아무 관련 없다. 심지어 툴을 직접 짜느라 셸을 벗어나 코딩을 하게 된다면 왜 안 되지 하면서 멍때리는 시간 디버깅 시간이 70%가 된다.어 이게 왜 잘 작동하지
  • 해킹을 마치 비디오 게임처럼 묘사한다: 현실의 해킹은 정말 어렵고 복잡하며 재미없기 때문에 해킹을 게임처럼 묘사하는 경우가 많다. 사실 지루하고 반복적인 노가다 과정도 많다. 노가다가 많은 게임이 재미있겠는가?
  • 해커들이 일반인들은 모르는 전문용어를 남발한다: 해커가 바쁘게 손가락을 움직이며 ' 방화벽이 어쩌고, 데이터베이스가 어쩌고 저쩌고' 하는 식의 기술적인 설명을 주절대자이게 어렵다니 컴덕 당황 옆에 있던 일반인 주인공이 전혀 이해를 하지 못해 벙 찐 표정을 짓는 장면은 그 자체로 하나의 훌륭한 클리셰라 할 수 있다. 여기에 일반인이 "알아듣게 설명해!" 또는 "영어(한국어)로 말해!"라고 말하면 그제서야 적당한 비유를 들어가며 쉬운 용어로 설명해주는 건 덤. 결국 극중 등장인물과 관객들은 자신도 모르게 그 비유 자체를 사실로 받아들이고 '해킹은 이런 거구나!'라며 납득하게 된다. 사실 IT 관련 용어들 중 개념이 어려운 것은 많지 않다. 다만 그것을 제대로 이해하고 적용하는 것은 상당히 어렵다. 영어 단어의 앞글자만 따와서 초성으로 부르는 경우도 많아서 초성에 해당하는 영어는 쉽지만 의미를 몰라서 일반인들이 이해하기 어려운 경우가 많다.
  • 좀 더 현실적인 해킹 장면을 연출하려는 경우, 콘솔을 띄우고 nmap을 사용한다: 매트릭스 리로디드에서 트리니티가 전력망을 해킹하는 장면에서 영향을 받았다. GUI가 아닌 콘솔을 통해 작업이 이루어지므로 일반인의 입장에서 진짜 해킹처럼 보이는 효과가 있다.

6. 이름을 빌려온 유사 개념

  • 그로스 해킹: 마케팅 용어로, 고객을 확보한다는 고전적인 질문에 대해 데이터 분석 등의 신기술을 사용해 접근한다는 개념.
  • 시빅 해킹: 사회 문제에 대해 정보 제공, 데이터 분석 등의 신기술을 사용해 접근한다는 개념.

7. 워 게임

  • Webhacking.kr: 사이트 이름에 걸맞게 웹해킹 관련 문제만 수두룩하다! 또한 워게임 사이트 자체의 난이도도 꽤 되는 편.
  • SuNiNaTaS.com: 써니나타스의 난이도는 초중급이지만, 웹해킹, 포렌식, 리버싱, 암호학 등 전반적인 분야의 지식을 얻을 수 있다.
  • wargame.kr: webhacking.kr과 난이도가 비슷하다.특정 문제는 webhacking.kr보다 난이도가 꽤 되는 편.(현재 소유주가 바뀌어 개장 준비중이다. 9월 초에 개장을 계획하고 있다고 한다.)
  • Reversing.kr: 리버스 엔지니어링에 관한 문제가 많다. 난이도가 상당한 워게임.
  • Pwnable.kr: 주로 시스템 해킹 문제를 다룬다!
  • Hack-me.org: 웹·시스템·리버스 엔지니어링·크립토·스테가노그래피 등의 문제가 있다. 난이도도 상당하다!
  • xcz.kr
  • Wechall.net: 여러 워게임 사이트를 종합하여 세계적으로 랭킹을 집계하는 사이트이다.
  • codeshell.kr: 한국 최초의 암호학 워게임이다!
  • hacker.org
  • chall.stypr.com: 웹 해킹 관련 문제만 취급하는 사이트다. 다른 워게임 사이트들에 비해 난이도가 높은 편.
  • webgame.wowhacker.com: 와우해커에서 운영하는 웹 게임이다!
  • Solve Me (solveme.peng.kr): 주로 php 웹 해킹 위주의 워게임이다. tricky한 문제가 많다.
  • HackCTF: 다양한 분야의 문제가 있는 워게임이다. 난이도가 비교적 높은 편은 아니라서 입문자들이 자주 방문한다.
  • OverTheWire: 리눅스부터 웹해킹등 다양한 해킹공부를 할수있다 문제수가 많고 난이도도 상당하다.

8. 해킹이 주 소재인 작품

9. 관련 문서

9.1. 관련 링크

10. 여담



[1] 때문에 행해지는 기기는 상관없다. 심지어 완구 분야에서도 음성 유출에 해킹이라는 표현을 사용한다. [2] 대표적으로 프로그램의 호환성을 위해 개조하는 것은 합법이다. 그래서 콘솔게임기의 애뮬레이터 프로그램 자체를 불법으로 보기는 어렵다. [3] 다만 변론하자면 영화 내에 인류의 컴퓨터 기술이 노획한 외계인 우주선에서 왔다는 대목이 존재하긴 한다... 물론 그렇다고 소프트웨어까지 똑같다는 보장은 없지만. [4] 현실에서는 명령어를 아무리 빨리 입력해도 명령을 실행하는 데 시간이 걸리기 때문에 해킹 속도는 타자수에 정비례하지 않는다. 해킹 속도를 늘리려면 컴퓨터의 성능을 올려야 한다.

분류