IT 이야기/보안 이슈

해킹 기법의 종류와 특징 - 일본서버 전문 제이피서버

KDSVPN 2017. 6. 23. 10:31
반응형





"해킹 기법의 종류와 특징"


개요 : 본 문서에서는 해킹 기법을 크게 5가지(System Hacking, Web Hacking, Network Hacking, Denial of Service, Wireless Hacking)로 나누어 그 특징에 대해서 설명한다. 각 공격 기법들이 사용될 수 있는 용도와 특징에 대해서 설명하였지만 지면상 그 내용을 간략하게 다루었다. 본 문서는 보안을 접한 지 얼마 되지 않는 분들에게 기존의 해킹 기법에 대한 대략적인 설명을 목표로 작성하였다. 또한 이 문서에서 설명한 내용들은 객관적인 자료를 참고한 것이 아니기 때문에 필자의 주관적인 생각이 많이 담겨있다는 것을 알린다.


1. 해킹 기술의 분류

초기의 Internet은 미국에서 군사적인 목적으로 사용되기 위해 만들어졌습니다. 작은 규모에서 시작한 Internet은 오늘날엔 광범위한 규모로 확장되었으며 여전히 군사적인 용도의 목적뿐만 아니라 기업, 개인적인 용도 등으로 널리 쓰이고 있습니다.
Internet이 발달하고 컴퓨터의 사용률이 많아짐으로써 컴퓨터 산업은 하드웨어와 소프트웨어 가릴 것 없이 다른 산업과는 비교할 수 없을 정도로 급격하게 발전하기 시작했습니다. 이것은 즉, 다양한 분야의 컴퓨터 기술이 발전되었다는 것을 의미합니다. 컴퓨터의 모든 분야에서 보안이 필요하지 않은 것은 없으며, 그에 따라 다양한 분야에 대한 보안 연구의 필요성이 대두되었습니다.

해킹은 최첨단의 분야라는 이미지가 강하지만 사실은 꽤 오래 전부터 그 맥락을 이어오고 있습니다. 실제로 Race Condition이라는 아주 유명한 해킹 기법은 1970년대에 제시가 되었으며 네트워크에 연결된 컴퓨터들을 자동으로 공격하는 최초의 Worm인 Morris Worm은 1980년대에 출현했습니다.

초기의 해킹 기법은 특별한 분류 작업을 할 필요도 없이 단순하고, 어떤 특정한 개념에 국한되어 있었지만 현대의 해킹 기법들은 다양한 컴퓨터 분야의 발전과, 그 특성의 원인 때문에 컴퓨터의 어떤 한 분야에만 해당될 수 있는 기법들이 거의 없습니다. 한 가지 예를 들어 해킹과는 전혀 관련이 없어 보일 것 같은 그래픽 이미지의 경우에도, 악의적인 목적으로 만들어진 그래픽 이미지를 보는 것 자체만으로, 이미지를 본 사용자는 해커에게 제어 당할 수 있습니다.

해킹 기법은 매우 다양하게 존재하는데, 각 시대에 유행에 따라 발전되어 왔다고 볼 수 있습니다. 예를 들어 Unix 시스템이 많이 사용되었을 때는 Unix에 관련된 보안 문제점이 대두되었으며, Mail이나 FTP(File Transfer Protocol) 서비스가 많이 이용되었을 때는 해당 서비스 프로그램에 대한 공격이 유행하였습니다. 국내에서 10년쯤 전에 PC 통신이 한창 유행하던 시절에는 BBS의 취약성을 이용한 공격도 많았으며, 또, 최근에는, 최근 몇 년 동안 가장 많이 사용되고 있는 HTTP 서비스(웹 서비스)를 공격하는 기법이 크게 유행 중입니다.

방대하고 어려운 작업이지만 오늘 날의 거의 모든 해킹 기법들은 상하 종속되거나 서로 연결 관계로 분류, 표현 될 수 있습니다. 일반적으로 해킹 기법을 가장 크게 분류했을 때 System Hacking, Web Hacking, Network Hacking, Denial of Service, Wireless Hacking으로 구분할 수 있습니다. (사실 System Hacking등과 같은 단어는 외국에서는 굳이 구별되어 자주 쓰이지는 않는 단어입니다. 한국의 해커들이 편의상 임의로 이러한 명칭을 붙여서 사용을 했지만, 특별히 잘못 사용된 부분이 없다고 생각해서 이 문서에서는 이 단어를 그대로 사용하였습니다.) 그리고 아직은 실제로 사용되는 경우가 그리 많지는 않지만 머지 않은 미래에는 Ubiquitous Hacking도 아주 중요한 문제가 될 것입니다.




2. 해킹 기술의 특징

(1) System Hacking

System Hacking은 주로 System에 관련된, 즉, 운영체제에 많은 연관이 있는 해킹 기법을 일반적으로 가리킵니다. 예를 들어 System Hacking의 한 종류인 Buffer Overflow Attack, Format String Attack의 해킹 기술을 성공시키기 위해서는 운영체제의 메모리 구조와 매우 밀접한 관련이 있는 공격 프로그램을 작성해야 합니다. 메모리 구조에 관련된 공격이 System Hacking을 대표하는 것처럼 보일 정도로 관련된 취약성이 많이 나와있으나, 이것뿐만 아니라, 운영체제의 스케줄 알고리즘이나 기타 등등의 문제로 인한 취약성도 System Hacking에 포함될 수 있습니다.

System Hacking은 해커의 공격 환경이 Remote 혹은 Local이라도 상관 없이 사용될 수 있습니다. System Hacking은 비교적 취약점을 발견하기도 힘들고 고된 작업이긴 하지만 공격에 성공했다면 해킹의 꽃이라고 할 수도 있는 운영체제의 Shell을 획득할 수 있게 되는 경우가 일반적입니다.



(2) Network Hacking

Network Hacking은 TCP/IP 상에서 일어나는데, TCP/IP는 수십 년 전에 제시된 프로토콜입니다. 프로토콜을 설계할 당시에는 보안적인 측면을 고려했는지 그렇지 않았는지 알 수는 없지만 시간이 지나고 널리 사용된 이후부터 많은 보안 문제점들이 제기되어 왔습니다.

Network Hacking으로 가장 대표적인 것은 Sniffing, Spoofing, Hijacking이 있습니다. 각각을 간단하게 소개하자면, Sniffing은 사용자가 전송하는 데이터를 해커가 훔쳐볼 수 있는 것이고, Spoofing은 해커가 Network 상에서 자신의 신분을 위장하는 것이고, Hijacking은 사용자의 연결을 해커가 가로채는 것입니다.

요즘 Network Hacking은 지속적인 Patch와 보안 정책들로 인해 다른 해킹 기법들보다는 구사하기가 힘들어졌습니다. Sniffing 같은 경우 데이터가 암호화되어 있지만 않다면 아직까지도 별 무리 없이 가능하지만, Spoofing이나 Hijacking 같은 경우는 보다 복잡한 요구 사항이 충족되어야만 성공이 가능하기 때문에 실패할 확률이 높아졌습니다.



(3) Web Hacking

Web Hacking은 Web 서비스를 공격하는 기법입니다. Web 서비스를 하기 위한 대표적인 프로그램은 Apache와 IIS가 있습니다. 이것들은 서비스 프로그램, 즉 데몬이라고 부릅니다. 또, Web 상에서 작동하는 프로그램을 일반적으로 CGI(Common Gateway Interface)라고 부르는데, 대표적으로 웹 게시판이나 쇼핑몰 등이 있습니다. 해커가 Web Hacking 기법을 사용할 때, 데몬을 목표로 하는 경우도 있지만 대부분의 경우 주로 CGI를 목표로 합니다. 여러 가지 이유가 있지만 가장 큰 원인으로는 데몬보다는 CGI에서 버그가 발견될 가능성이 더 높기 때문입니다.

Web Hacking은 일반적으로 Remote 환경에서 작업이 진행되고, 해커가 보다 높은 권한을 획득하기 위한 초석이 됩니다. Web Hacking의 가장 큰 특징은, 다른 해킹 기법들에 비해 목표가 되는 시스템의 환경에 따른 영향을 크게 받지 않으며, 쉽게 사용할 수 있으면서도 공격에 성공할 경우 위력이 대단하다는 것입니다. 그렇기 때문에 최근 몇 년간 Web Hacking 기법은 해커에게 가장 많이 애용되고 있으며 아직까지도 뚜렷한 해결책이 제시되지 않고 있습니다.

Web은 Internet에서 가장 많은 Traffic을 차지하고 있는 서비스 중에 하나일 정도로 많이 사용되고 있습니다. 서비스 제공 업체들은 사용자의 기호를 맞추기 위해 Web을 통해 서비스되고 있는 종류를 늘리고 있고, 그에 따라 새로운 Web Hacking 기법들이 쉬지 않고 발견되고 있습니다.

앞서 언급했듯이, Web Hacking은 목표가 되는 시스템에서 보다 높은 권한을 획득하기 위한 초석이지만, 요즘은 Web을 통해 서비스하는 것이 너무나 방대하고 중요한 정보들이 많이 포함되어 있기 때문에 사실상 해커는 Web Hacking에 성공하는 것만으로도 목표 시스템의 Database를 가져오거나 하는, 심각한 피해를 입힐 수도 있습니다.



(4)Denial of Service

Denial of Service는 말 그대로 서비스를 정지시키는 공격입니다. 이 공격은 목표로 하는 시스템의 Shell을 획득하거나 하는 그런 직접적인 제어를 할 수는 없지만 시스템을 마비시키거나 정지, 파괴하는 행위 등이 가능합니다.

초기에 해커들은 Denial of Service의 기술적인 수준에 대해서 평가를 절하하는 경우가 있었습니다. 이유는 Shell을 획득하지도 못하고, 비교적 단순하고 무식한 공격만을 감행하는 기술이라 생각했기 때문입니다. 그러나 Denial of Service 공격을 방어해야 한다는 필요성이 날이 갈수록 중요해지고 있으며 그에 따라 Denial of Service는 주요 해킹 기법 중에 하나가 되었습니다. 왜냐하면 현재 Internet에서 서비스 되고 있는 것들은 거의 모두 금전적인 것과 관련이 되어있기 때문에 만약 한 순간이라도 서비스가 정지될 경우에는 회사의 이미지뿐만 아니라 엄청난 금전적 피해도 입을 수 있기 때문입니다. 실제로 몇 년 전에, Yahoo, E-bay등이 Denial of Service 공격으로 서비스가 멈추었을 때 금전적인 피해가 엄청났다고 합니다.

그에 따라 자연스럽게 Denial of Service를 막는 많은 연구가 진행되어 왔으며, 이러한 보안 솔루션을 우회하기 위한 매우 기술적인 Denial of Service 기법들도 개발되고 있습니다. 대표적으로 DDoS(Distributed Denial of Service)와 DRDoS(Distributed Reflector Denial of Service) 와 같은 것들이 있습니다.

대부분의 Denial of Service 공격은 Network를 통해서 이루어지는데, DDoS나 DRDoS가 그 예입니다. 그러나 Denial of Service 공격은 반드시 Network를 통해서만 할 수 있는 것은 아니기 때문에, 그 외에도 특정 프로그램에 특화된 Denial of Service들도 개발되고 있습니다. 예를 들어 어떤 프로그램에 Buffer Overflow 버그가 있는데, Shell을 획득할 수는 없는 상황이지만 프로그램을 정지시킬 수 있는 경우에도 Denial of Service 공격이라 볼 수 있습니다.



(5)Wireless Hacking

Wireless Hacking은 말 그대로 무선 환경에서의 Hacking 기법들을 말합니다. 기존의 유선 환경의 Network에도 보안적인 문제점이 있었지만, 무선 Network는 유선보다 더 많은 보안 문제점을 갖고 있습니다. 가장 큰 이유로 Wireless는 관리자가 유선과 같이 제어를 손 쉽게 할 수 있는 환경이 아니라, 무선을 통해서 데이터가 전송되기 때문에, 보안을 유지하기나 정책을 세우기가 매우 까다롭습니다.

System Hacking과 Web Hacking이 주로 서버를 목표로 삼는다면 Wireless는 개인 사용자를 목표로 하는 경우가 많습니다. 그 이유는, 아직까지는 성능이나 안정적인 측면에서 무선보다는 유선이 더 유리하며 그러므로 서버 환경에서는 무선을 사용하는 경우가 별로 없습니다.

Wireless Hacking에서 대부분의 보안 문제점의 근원은 무선으로 전송되는 데이터 때문이라 볼 수 있습니다. 이를 악용한 예로, 사용자가 무선으로 전송하는 데이터는 해커에 의해 도청(Sniffing)될 수 있습니다. 예전에 성능이 괜찮은 안테나를 장착하여 Wireless Network를 많이 사용하는 지역에서 Sniffing을 테스트 해본 적이 있었는데, 사용자들이 전송하는, 상당히 많은 데이터를 볼 수 있었습니다. 또한 Wireless Hacking은 유선 환경과 마찬가지로 Sniffing을 응용하여 Spoofing, Hijacking 공격 등을 수행할 수도 있습니다.

Wireless Network에서 사용자가 Network를 이용하기 위해서는 AP를 통해 인증 절차를 밟아야 합니다. AP는 사용자의 컴퓨터가 외부와 통신을 하기 위한 중계 기능을 수행합니다. 인증을 수행하도록 설정된 AP도 있으며 인증 없이 사용할 수도 있는 공개 AP도 있습니다.  Wireless Hacking의 또 다른 목표는, 인증이 필요한 AP의 인증 과정을 우회하여 Network를 이용하는 것에 있습니다. AP 인증을 우회하는 것에 성공할 경우 허가 받지 않은 장소에서 인터넷을 할 수도 있습니다. 이것은 큰 문제가 될 수 있는데, 예를 들어 공공장소에서 Wireless를 이용하여 다른 서버들을 해킹한 해커를 추적하여 잡는 것은 쉬운 일이 아닐 것입니다.





이렇게 5가지 종류의 해킹 기법들에 대해서 간단히 알아보았습니다. 사실 이런 분류는 완벽하다고 볼 수 없습니다. 그 이유는, 각 해킹 기법들은 서로 부분적으로 연관이 되어 있기 때문입니다. 이러한 경계는 매우 모호하기 때문에 분류 작업을 하기가 상당히 힘듭니다. 예를 들어 CGI Buffer Overflow 라는 공격이 있을 때, 이것은 CGI를 공격하기 때문에 Web Hacking에 속하기도 하지만 동시에 Buffer Overflow 공격을 수행하기 때문에 System Hacking에 속하기도 합니다. 그렇기 때문에 이러한 분류 작업은 무의미할지도 모르지만 확실한 보안 이론 체계를 구축하기 위해서 필요한 기초 단계이기 때문에 이러한 것들에 많은 연구가 필요하다고 생각됩니다.







출처 : 외부링크

 

 

 

 

 

 

반응형