기업을 위한 IT 전문 파트너
  • 새소식
안랩, 윤리적 해커가 되려면 무엇이 필요할까?
  • 제조사
  • 게시일 : 2023-04-13
  • 조회수 : 372
  • SNS공유 페이스북 트위터
윤리적 해킹은 합법적으로 PC 시스템 및 네트워크, 인프라, 애플리케이션에 침투해 기업의 방어 능력을 테스트하는 것을 말한다. 일명 ‘침투 테스트’라고도 한다. 이 과정에서 취약점과 오류를 발견하고, 개발자 및 제작자에게 즉시 알려 보안 사고를 예방하는 것이다. 이런 작업을 수행하는 사람을 윤리적 해커(Certified Ethical Hacker)라고 부른다. 누구나 윤리적 해커에 도전할 수 있지만 아무나 될 수는 없다. 윤리적 해커가 되기 위해서는 어떤 자격을 갖춰야 하는지 알아보자.



 


일반적으로 해커에 대한 인식은 대부분 부정적이다. 하지만 해커는 2가지 의미를 담고 있다. 첫번째는 컴퓨터 시스템, 프로그래밍, 네트워킹에 능통하고, 보안 홀을 발견해 개선하는 사람을 의미한다. 두번째는 전문적인 컴퓨터 기술과 지식을 악용해 사용자 네트워크에 불법으로 침입하고 정보를 탈취하거나 시스템을 파괴하는 사람을 말한다.

많은 사람들이 해커를 후자의 개념으로 인지해 범죄자로 단정짓고는 한다. 하지만 해커의 세계에는 일반인들이 모르는 해커가 존재한다. 바로 ‘화이트 해커’ 또는 ‘윤리적 해커’라고 불리는 이들이다. 이들은 보안 취약점을 지적하고, 그 원인을 파악하기 위해 시스템에 접속하여 공공 서비스를 수행한다.



윤리적 해커의 역할

윤리적 해커의 주요 목표는 악의적 해커의 관점에서 시스템 인프라를 악용할 소지가 있는 취약점을 찾아내는 것이다. 이를 통해 보안 팀은 실제 해커가 공격을 시도하기 전에 패치를 고안해내고, 침해사고로 인한 피해를 완화한다. 한 마디로, 윤리적 해커는 통제된 환경에서 시뮬레이션된 사이버 공격을 수행한다.

윤리적 해커는 주로 침투 취약성 및 문제에 대한 회사의 장치 및 안전 제어를 테스트하는 것이 가장 큰 비중을 차지하지만, 데이터 유출 가능성과 애플리케이션 또는 네트워크에서 악용될 수 있는 지점을 찾는 역할도 한다.

사이버 보안 생태계에서는 윤리적 해커를 3가지 범주로 나눈다. ▲공격적인 보안 서비스를 전문적으로 담당한는 레드팀 ▲방어 서비스를 제공하는 사이버 보안 전문가인 블루팀 ▲레드팀과 블루팀의 활동을 결합한 윤리적 해커이다. 레드팀은 공격자가 되고, 블루팀은 방어자 역할을 수행한다.

일반적으로 윤리적 해커는 시뮬레이션된 공격 보안 솔루션 전문 기업에 고용된 독립 컨설턴트나 기업의 앱 또는 웹 사이트를 보호하는 사내 직원일 수도 있다.



윤리적 해커에게 필요한 기술 및 요구 사항

윤리적 해커가 되려면 우선 전문적이고 높은 윤리적 기준이 필요하다. 윤리적 해커는 법률을 어겨서는 안 되며, 윤리 강령에 따라 행동해야 한다. (Certificated Ethical Hacker) 시험을 개발한 EC 카운슬(EC-Council)은 현존 최고의 공개 윤리강령을 필수로 한다.

전문성 및 기술도 윤리적 해커가 되기 위해 반드시 필요한 조건이다. 완화 및 수정 전략에 대한경험을 비롯해 고급 기술 능력을 입증할 수 있어야 한다.

윤리적 해커는 당연히 유선 및 무선 네트워크를 이해하고 리눅스, 윈도우 등 운영체제에 능숙해야 한다. 또한, 파일 시스템과 방화벽을 이해하고 워크스테이션, 컴퓨터 네트워크, 서버, 컴퓨터 과학에 대해 기본 수준 이상의 이해도가 있어야 한다.

윤리적 해커의 평균 연봉은 8만 달러부터 13만 달러까지 다양하다. 하지만 최종 급여 범위는 위치와 직무 요건, 인증 수준, 경험 등에 따라 달라진다.

윤리적 해커는 명목상의 명칭일 뿐 실제로는 다양한 직책으로 불린다. 예를 들어, 정보보안 분석가, 침투 테스터, 취약성 평가자, 보안 컨설턴트, 사이버 보안 설계자 등이 있다.

이들은 각각 어떤 업무를 하는지 간단히 살펴보자. 정보보안 분석가는 회사의 컴퓨터 시스템과 네트워크를 보호하기 위한 보안 조치를 설계하고 구현하며, 공격을 시뮬레이션해 잠재적인 취약점을 찾는다. 침투 테스터는 해커가 악용할 수 있는 보안 취약점을 감지, 해결한다. 취약성 평가자의 경우, 네트워크에 존재하는 또는 잠재적 취약점을 찾기 위해 지속적으로 보안 평가를 수행하는 것을 전문으로 한다. 더 나아가, 맞춤형 스크립트 작성 및 테스트를 통해 취약성을 식별하고, 기존의 중요한 결함을 인식한다. 보안 컨설턴트는 상황에 따라 공격자나 방어자가 되고, 네트워크 및 시스템을 전문으로 한다. 또, 엔지니어링 및 리더십 초점 개발 등의 작업을 수행한다. 마지막으로 사이버 보안 설계자는 회사 네트워크 및 컴퓨터 인프라에 대해 계획, 테스트, 모니터링 및 유지 관리한다.



윤리적 해커를 위한 자격증 과정

▶ 윤리적 해커 자격증: 윤리적 해커 자격증은 가장 오래되고 인기 있는 자격증이다. 윤리적 해커 자격증은 911 테러 이후 설립된 사이버 보안 교육 및 트레이닝 비영리 단체인 ICECC(International Council of Electric Commerce Consultants) 및 EC 카운슬이 제공하는 가장 유명한 자격증이다. 온라인 또는 오프라인 실시간 강의를 듣고 수료하는 공식 과정에는 전통적인 해킹 대상뿐만 아니라 악성 프로그램, 무선, 클라우드, 모바일 플랫폼에 관한 모듈 등 18가지 영역이 포함돼 있다.

▶SANS(Sys Admin, Networking, and Security) : SANS는 IT 보안 실무자들 사이에서도 인정되는 자격증이다. SANS는 다양한 침투 테스트 과정과 자격증을 제공하지만, 기본 수준인 GPEN(GIAC Penetration Tester)이 가장 인기가 좋다.

▶OSCP(Offensive Security Certified Professional): OSCP 과정과 자격증은 직접 학습 구조와 시험의 난이도가 높다. 공식적인 온라인 자기 주도 교육 과정은 PTKL(Penetration Testing with Kali Linux) 교육 과정을 포함한다. 칼리 리눅스(Kali Linux), 침투 테스터들이 좋아했던 리눅스 배포판인 백트랙(BackTrack)을 사용하기 때문에 리눅스, 배시 셸(Bash Shell), 스크립트 사용법을 이해해야 한다.

▶FUH(Foundstone Ultimate Hacking): UH(Ultimate Hacking) 과정과 강습서는 오랫동안 침투 테스트 분야를 주도했다. 윈도우, 리눅스, 솔라리스(Solaris), 웹, SQL, 일련의 고급 해커 기법을 다룬다.



윤리적 해킹에 필요한 프로그래밍 언어

인공지능·빅데이터 전문 잡지 애널리틱스 인사이트는 윤리적 해킹 작업을 위해 학습하면 좋을 프로그래밍 언어 10종을 선정해 발표했다.



▶배시(Bash): 유닉스(UNIX)와 리눅스 운영체제는 기본적으로 셸(Shell, sh)과 배시(Bourne Again Shell, Bash)를 포함한다. 셸은 해커가 데이터 접근성을 얻으려 사용할 수 있는 명령을 순서대로 작성한 목록을 제공한다. 배시는 C 셸(C shell, csh)과 유사한 대화형 라인 편집 및 작업 제어 기능을 제공한다. 반복 작업을 자동화하고, 디렉토리를 탐색해 네트워크 구성을 수행하고, 지원 아키텍처 작업 제어 기능을 제공한다.

▶C: C는 하드웨어 해킹 및 빠른 프로그래밍 스크립트 작성 시 유용한 언어이다. 1970년대 초, 벨 연구소(Bell Labs)의 유닉스 운영체제를 위한 언어로 제작됐으며, 메모리와 시스템 프로세스에 대한 접근을 허용하기 때문에 윤리적 해킹에 적합하다. 윤리적 해킹 작업 시 C를 사용해 시스템을 역설계하고, 사이버 공격을 모방한 뒤 시스템 공격이 발생한 것처럼 접근한다.

▶C++: C++은 고급 계산, 브라우저, 데이터베이스 소프트웨어, 게임, 그래픽, 운영 체제를 만드는 데 널리 사용된다. 윤리적 해킹 작업에서는 하드웨어와 시스템 프로세스에 접근하기 위해 낮은 수준의 프로그래밍 언어로 사용된다.

▶자바(Java): 애플리케이션 개발, 엔터프라이즈 소프트웨어, 컴퓨터 컴퓨팅 애플리케이션 등을 위한 인기 객체 지향형 클래스 기반 언어이다. 윤리적 해킹과 위험 분석 작업에도 널리 사용되는 언어이기도 하다. 윤리적 해커는 크로스 플랫폼 언어인 자바를 맥과 리눅스, 윈도 등 다양한 운영체제의 문제를 다룰 때 사용한다.

▶자바스크립트(JavaScript): 자바스크립트는 외부 요소를 통합하고 사용자 활동을 추적하는 웹 페이지를 구동하는 데 사용된다. 해커는 웹 브라우저를 통해 웹사이트에 악의적인 스크립트를 주입할 목적으로 자바스크립트를 사용한다. 또한, 쿠키와 데이터에 접근하기 위해 악성 스크립트를 자바스크립트 세그먼트로 웹 브라우저에 전달하기도 한다

▶펄(Perl): 10만 8,000개에 이르는 오픈소스 모듈을 다운로드할 수 있는 스크립팅 언어이다. 해커는 서버 접근 권한 확보와 다른 네트워크 자원 연결, 기존 스크립트 보강, 데이터 탈취 등과 같은 목적으로 펄을 사용한다. 윤리적 해커는 펄을 이용해 실제 공격을 모방한 악용 및 침투 테스트 툴을 개발한다.

▶PHP: 해커 세력이 서비스 거부(DoS) 공격에 주로 사용하는 언어 중 하나이다. DoS는 웹사이트를 공격해 사용자가 웹 애플리케이션에 접근하지 못하도록 한다. 윤리적 해커는 PHP를 이용해 악의적 행동을 탐지하는 서버 해킹 프로그램을 개발한다.

▶파이썬(Python): 파이썬은 스카피(Scapy)와 같은 인기 사이버 보안 툴을 지원한다. 윤리적 해커가 역설계나 악성코드 분석, 포렌식, 디버거, 디스어셈블러, 헥스 에디터(Hex editor) 등에 사용하는 언어이기도 하다.

▶루비(Ruby): 루비는 리눅스 플랫폼에서 빠른 스크립트를 작성할 수 있어 해킹에 탁월하다. 주로 CGI 스크립트를 만들 때 사용된다.

▶SQL: SQL은 악성 해커 세력이 쿼리를 제한하고, 중요한 데이터를 도용해 웹 기반 공격을 시작할 때 사용하는 언어이다. 개발자와 데이터베이스 관리자가 SQL을 이해하면 SQL 주입과 같은 SQL 데이터베이스 관련 공격을 이해하고 방지하는 데 도움이 된다.



[출처 : 안랩(((
www.ahnlab.com)]

인터파크 큐브릿지 IT영업부
자세히보기
  • Office 365
  • CCT
TOP