서버보안의 일을 하다 보면 주로 서버에 로그온 하는 자연인(부서/직급/이름으로 식별가능한 실제 사람과 서버에 접속할 때 입력하는 계정(ID) 그리고 로그온한 세션에서 실행한 명령어(Command)와 해당 명령어(Command)가 접근한 파일 그리고 파일에 접근할 때의 권한(읽기/생성/수정/삭제/실행) 관계를 다루는 일을 하게 된다.
때문에 주로 서버관리자, 개발자, 응용프로그램 운영자 및 외부 인력의 서버 내에서의 작업을 어떻게 통제하고 작업 및 행위에 대한 감사기록을 어떻게 남길 것인가에 대한 컨설팅을 하게 된다. 그리고 그러한 서버에 대한 접근통제와 파일 및 명령어에 대한 접근/실행의 통제 그리고 감사 증적자료의 확보는 대부분 개인정보보호법이나 정보통신망 이용촉진 및 개인정보보호에 관한 법률, 그리고 금융기관의 경우 금융감독원의 규정에 대한 컴플라이언스 기준으로 이루어진다.
사실 이런 관리적 보안에 대한 업무는 운영체제와 데이터베이스 그리고 몇몇 시스템 소프트웨어에 대한 지식과 전체적인 시스템을 어떻게 구축하고 개발하고 운영하는지에 대한 노하우만 있다면 이를 바탕으로 위험관리 절차에 따라 정책을 수립하고 서버보안SW를 통해 구현하면 된다.
이 일을 하기 위해서는 깊은 지식보다는 넓은 지식이 필요하고 프로젝트 및 시스템 운영에 투입된 엔지니어, 관리자, 운영자, 개발자, 오퍼레이터와의 커뮤니케이션 능력이 더 중요하다고 할 수 있다. 그리고 다양한 분야의 기술자 들을 아우르기 위한 충분한 경험은 더욱 중요한게 사실이다.
하지만 DOS 및 DDOS 그리고 웹해킹 및 APT 공격에 의한 서버에 대한 공격의 방어는 조금 이야기가 달라진다. 물리적인 네트워크 구성과 OSI 7 Layer 중 2,3,4,5 계층(TCP/IP)에 대한 심도 있는 이해와 운영체제 측면에서의 프로그래밍에 대한 지식 그리고 애플리케이션서버에 대한 지식이 필요하다. 그 중에서도 DOS 및 DDOS 공격의 급격한 트렌드의 변화는 특정 애플리케이션의 프로토콜에 대한 정확한 이해가 필요하다.
예전의 DOS와 DDOS 공격은 주로 TCP/IP 프로토콜의 취약성을 공격하는 형태가 주를 이루었다. ICMP 프로토콜의 취약성을 공격하는 SMURF 공격, Ping of Death 공격이 그랬고 UDP의 취약성을 공격하는 Tear Drop 공격 그리고 TCP의 3-way handshake 취약성을 파고드는 Syn Flooding도 TCP/IP의 취약성을 공격하는 대표적인 사례였다. 그 외에도 무수히 많은 TCP/IP 취약성 공격이 있으나 현재는 대부분 네트워크 장비의 설정을 변경하는 것으로도 충분히 방어가 가능하게 되었다.
그래서 해커들은 더 이상 TCP/IP 프로토콜에서만 취약성을 찾고 있지는 않다. TCP/IP에서 벗어나 보다 더 상위레이어(L7)에서 취약성을 찾기 시작했고 가장 대표적인 애플리케이션 레이어의 프로토콜인 HTTP 프로토콜의 취약성을 공격하기 시작했다.
대표적인 HTTP의 취약성을 악용하는 DOS/DDOS 공격은 다음과 같은 것들이 있다.
● HTTP Get Flooding
● Slow HTTP Post Attack
● Slow HTTP Header Attack
● Slow HTTP Read Attack
이러한 공격들은 주로 HTTP 프로토콜을 통해 클라이언트의 Request 와 그 Request를 처리하는 웹서버 사이의 통신 세션의 수에 제약이 있다는 점을 이용해 해당 세션의 처리를 지연시킴으로써 웹서버가 더 이상 클라이언트의 Request를 받아들이지 못하도록 하는 공격을 수행하는 것이다.
이 공격에 대한 자세한 원리와 분석방법 그리고 대응 방안을 명시한 KISA(한국인터넷진흥원)의 자료(2012년)를 첨부한다. 그 양이 꽤 많고 심도있게 이해해야하기 때문에 포스트에 모든 것을 쓰기는 좀…. 어렵다. 두고 두고 꾸준히 읽어봐야할 자료인 듯 하다.

답글 남기기