반응형
SMALL

'전체 글'에 해당되는 글 209건

반응형
LIST
반응형
SMALL

작년 12월 말 이직에 성공한 후 열흘 정도 쉬었다가 입사했다. 입사 후에도 사내 교육 및 여러가지 일들로 인해 계속 바쁘게 보냈다. 다행히 하는 일은 기존에 있는 회사랑 동일해서 무리 없이 적응해갈 수 있었다. 그것만으로도 얼마나 다행인지....

입사하고 바로 지방쪽 모의해킹 프로젝트를 갔다. 지방도 여러번 다녀봐서 큰 무리는 없었지만 전 회사와 차이점이 있다면 팀 단위로 들어가서 업무를 수행한다는 것이었다. 전 회사에선 워낙에 혼자만 다녀서 한편으론 외로움도 있기는 했다. 하지만 여기선 팀 단위로 들어가서 다행이다 싶었지만 또 어떤 사람들을 만나고 프로젝트 환경은 어떨지 등 또 하나의 걱정이 들었었다.

막상 들어가보니 프로젝트 환경도 좋고 무엇보다 사람들이 좋았던게 가장 다행이었다. 회사가 끝나면 밥도 같이 먹고 회식도 하고 숙소에서 같이 게임도 하고 오히려 다른 곳보다 더 재밌게 했다. 또한 모의해킹 결과도 잘 나와서 고객도 만족해하고 다른 곳으로 안가고 계속 여기서 하고 싶다는 생각이 들 정도였으니....

지금은 금융권쪽 연간 사업에 들어와 모의해킹을 진행하고 있다. 여기도 같이 프로젝트 하는 사람들이 모두 좋아서 다행이었지만 다른 사업들에 비해 난이도가 많이 높다. 정말 내가 가지고 있는 기술들 모두 총동원해서 해야 할 정도로 쉽지 않은 프로젝트다. 보안 솔루션도 우회해야 하고 진단도 해야 되고 내부망 모의해킹도 해야 되고 할 게 많다. 하지만 난 만족해하고 있다. 한번도 겪어 보지 못했던 것들도 경험하고 있고 무엇보다 내 실력을 상승시키기엔 가장 최적화된 환경이다. 모의해킹 뿐만이 아닌 리버싱도 해야 되고 분석도 해야 되고... 힘들긴 해도 가장 실력 상승 시키기에 좋은 곳은 금융권 연간 사업인 것 같다.

회사에서도 내가 원하는 것들을 모두 수용해줘서 지금은 만족하면서 잘 다니고 있다. 좋은일만 있을 순 없겠지만 일단 주어진 일에 최선을 다해보면서 좋은 경험을 쌓아볼 계획이다.

반응형
LIST

'IT인의 여러가지 이야기' 카테고리의 다른 글

코딩 열풍에 대한 고찰  (0) 2021.07.25
야간 대학원 진학  (0) 2021.05.08
이직 성공 후기  (4) 2021.01.01
2020년 회고록  (0) 2020.12.15
케이쉴드주니어 FAQ  (16) 2020.01.28
블로그 이미지

만년필석사

,
반응형
SMALL

1. 레나튜토리얼 1번 문제 분석


[그림 1-1] 코드 분석 - 1


먼저 GetModuleHandleA는 모듈 핸들을 호출할 때 쓰이는 함수다. 두번째로 LoadIconA는 아이콘을 호출할 때 쓰이는 함수이며 LoadCursorA는 커서를 호출할 때 쓰이는 함수다. A는 아스키 값을 의미하는데 이 부분에선 각 함수가 어디에 쓰이는지 파악해야 한다.


[그림 1-2] 코드분석 - 2


CreateFileA 함수쪽 라인에 BP를 건다. BP를 걸었기 때문에 실행시켜도 CreateFileA 함수 라인에서 멈추게 된다. 파일이 생성되면서 그에 따른 인자값들이 전달되는데 Mode=OPEN_EXISTING은 만약 어떤 파일이 존재하면 연다는 의미다. 현재 코드 흐름으로 봐선 Keyfile.dat 파일이 존재하면 연다는 의미로 추측해볼 수 있다.


[그림 1-3] 코드분석 - 3


F8을 눌러 실행해보면 EAX 값과 -1을 비교하는 구문이 있다. 레지스터에선 EAX 값은 FFFFFFFF로 표시된다. 컴퓨터엔 -1이라는건 존재하지 않기 때문에 FFFFFFFF로 표시되는 것이다. 아직 여기선 EAX 값에 대해 알 수는 없는 상태다.


[그림 1-4] 코드분석 - 4


비교 구문에서 다시 F8을 눌러 실행해보면 제로 플래그 구문이 실행되고 Z 값이 1이면 MessageBoxA 함수를 실행하고 있는 상태다.


[그림 1-5] 코드분석 - 5


제로 플래그가 1인 상태에서 한번 더 실행하면 뭔가 종료를 알리는 메시지 경고창이 출력된다. 


[그림 1-6] 코드분석 - 6


코드를 재실행 한 후 제로플래그를 0으로 변환한 후 실행하면 ReadFile 함수가 있는 라인으로 점프하게 된다. 단 여기서 CreateFileA 함수가 정상적으로 실행되었다는 가정하에 진행해야 한다.


[그림 1-7] 코드분석 - 7


ReadFile 함수에서 F8을 눌러 실행해보면 EAX와 EAX를 비교해서 테스트한다. 이 때 테스트는 EAX 값이 00000000임을 확인하기 위함이다.


[그림 1-8] 코드분석 - 8


F8을 두번 눌러 실행한 후 제로플래그가 1인지 확인한다. 


[그림 1-9] 코드분석 - 9


JMP 함수에서 제로 플래그가 1인 상태에서 F8을 실행하면 해당코드로 이동된다. 현재 코드를 실행하면 Text 내용이 담긴 메시지 박스가 출력되며 Key File이 없으면 프로그램이 종료된다.


[그림 1-10] 코드분석 - 10


코드를 재실행해서 JNZ까지 실행한 후 제로 플래그를 0으로 바꾼다. JMP 함수 바로 아래에 나오는 코드들은 Keyfile이 있어야 실행이 되는건데 제로플래그를 0으로 바꾸면 JMP 함수를 우회할 수 있다.


[그림 1-11] 코드분석 - 11


실행 결과 KeyFile이 존재할 때 출력되는 메시지 경고창이 담긴 코드로 점프되었다. 이는 JMP 함수의 제로플래그 값을 바꿔 KeyFile 우회가 가능한 불법프로그램임을 알 수 있다.


반응형
LIST

'악성코드분석' 카테고리의 다른 글

리버싱 기초 (3)  (0) 2021.01.11
리버싱 기초 (2)  (0) 2021.01.11
리버싱 기초 (1)  (0) 2021.01.10
UPX 자동 언패킹  (0) 2021.01.05
MP3 컨버터를 이용한 Exploit  (0) 2018.01.21
블로그 이미지

만년필석사

,
반응형
SMALL

1. 어셈블리어란?

CPU의 기계 언어와 1:1 매칭이 되는 저급 언어의 일종이다. 어셈블리어 명령 하나가 기계어와 매칭이 된다고 해서 1:1 구조라고 일컫는다. 어셈블리어는 사람이 읽기 쉽게 기계어에서 변환이 된 언어라고 볼 수 있으며  CPU에 접근할 수 있고 주로 하드웨어쪽과 소통하기 위해 쓰이는 경우가 많다.

 

2. 어셈블리어 명령어 기초

명령어  타입  설명 
CALL 호출 함수 호출에 사용한다.
PUSH PUSH 스택에 값을 삽입, 레지스터에 값을 보관함
POP POP  스택에 TOP에서 하나의 값을 목적지 주소에 저장한 후 스택의 위치를 바로 전 데이터를 가리키게 한다.
MOV 값 복사 데이터 값을 복사한다.
LEA 주소 복사  주소를 복사하는 명령어로 Source 피연산자 유효 주소를 계산해서 Destination 피연산자에 복사한다. 
CMP 값 비교  값을 비교하는 함수다. 두 값이 같으면 결과는 0이 되고 제로플래그는 1이 된다. 반대로 두 값이 다르다면 제로플래그는 0이 된다. 
JMP 코드 점프  피연산자의 위치로 실행 흐름이 변경된다. 즉, 피연산자가 가리키는 위치로 이동된다. 
NOP NOP 아무 것도 안함(의미 없음)
RETN 리턴 리턴 값 
INT 인터럽트 x86 중앙 처리 장치를 위한 어셈블리어, 인터럽트를 발생시키는 역할을 함
INC +1 피연산자에 1을 더한다.
DEC -1 피연산자에 1을 뺀다.
ADD + Destination 값에 source 값을 더해 Destination 값에 저장한다. ex) des = des+sou
SUB - Destination 값에 source 값을 빼서 Destination 값에 저장한다. ex) des = des-sou
MUL/IMUL  * Destination 값에 source 값을 곱해서 Destination 값에 저장한다. ex) des = des*sou
DIV/SDIV / Destination 값에 source 값을 나눠서 Destination 값에 저장한다. ex) des = des/sou
AND 1,1 -> 1 AND 연산
OR 0,0 -> 0  OR 연산
XOR 같으면 0, 다르면 1 XOR 연산 
XCHG 값 교환 값 교환

[표 1-2] 어셈블리어 기초

※ 참고: 2020년 국가인적자원개발컨소시엄 침해대응 과정 교재

https://wooeong.tistory.com/entry/리버싱-기초-지식-어셈블리어Assembly

 

가장 많이 사용되고 기초적인 어셈블리어다. 리버싱을 할 때도 기초적인 어셈블리어를 숙지하고 있어야 분석이 되는 경우가 많다.

 

3. 조건 분기 종류 및 특징

명령어 의미 부등호 플래그 조건
JA Jump if above > CF=0 and ZF=0
JAE Jump if above or equal >= CF=0 and ZF=1
JB Jump if below < CF=1
JBE Jump if below or equal <= CF=1 or ZF=1
JE Jump if equal == ZF=1
JECXZ Jump if ECX is 0   ECX=0
JZ Jump if Zero == ZF=1

[표 1-3] 자주 쓰이는 조건 분기문

※ 출저: https://wooeong.tistory.com/entry/리버싱-기초-지식-어셈블리어Assembly

 

리버싱을 할 때 가장 많이 쓰이는 조건 분기문을 추려 정리한 것이다. JZ, JE는 자주 등장하는 명령어기 때문에 잘 숙지해놓는 것이 좋다.

 

4. 어셈블리어의 자료형 

종류 특징
Byte 8bit 정수
Word 16bit 정수
Dword 32bit 정수
Qword 64bit 정수

[표 1-4] 어셈블리어의 자료형 참고

※ 출저: https://wooeong.tistory.com/entry/리버싱-기초-지식-어셈블리어Assembly

 

리버싱을 하거나 악성코드 분석을 할 때 자주 보이는 것들 중 하나가 자료형들이다. 부호가 없는 표현이며 모두 기초적인 부분이니 잘 참조하면 좋다.

 

5. 함수 호출 및 리턴 주소 구조

[그림 1-2] 함수 호출 구조

※ 사진 출저: 보안프로젝트

 

먼저 push 함수를 통해 값들이 스택에 계속 쌓인다. HelloFunction 함수 호출 시 뒤에서부터 값들을 스택에서 하나씩 불러온다. 그렇게 스택에서 불러온 값들을 아래에 있는 로직으로 전달해서 최종 값을 산출하게 되는 것이다. 여기서 중요한 것은 스택에 대한 이해다.

 

 

 

 

반응형
LIST

'악성코드분석' 카테고리의 다른 글

레나튜토리얼 1번  (0) 2021.01.12
리버싱 기초 (2)  (0) 2021.01.11
리버싱 기초 (1)  (0) 2021.01.10
UPX 자동 언패킹  (0) 2021.01.05
MP3 컨버터를 이용한 Exploit  (0) 2018.01.21
블로그 이미지

만년필석사

,
반응형
SMALL

1. 올리디버거

 

- 올리 유스척이 개발한 x86 디버거로 무료

- 사용 편의성과 기능 확장을 위한 플러그인도 탑재 되어 있음

- 보통은 32비트 환경에서 동작하지만 64비트 환경에서도 동작이 가능하게 됨

- 1.1과 2.0이 출시되었지만 1.1은 64비트 디버깅이 잘 되지 않아 2.0과 사용해야함

- 2.0도 버그가 존재해서 안정적이지는 않음

- 1.1이 계속 리버서들이 쓰는 이유는 다양한 플러그인이 계속 지원되고 있기 때문임

- 그래서 이뮤니티 시큐리티에서 Olly dbg 1.1 베이스를 구매해 Immunity 디버거로 재포장함, 재포장함으로써 가지는 장점은 다음과 같음


* 파이썬 인터프리터의 추가

* 익스플로잇 개발자에겐 최적화됨

* 올리디버거 자체 버그가 패치됨


2. 올리디버거 인터페이스 

[그림 1-1] 올리디버거 구조


올리디버거는 CPU 명령어 화면, 레지스터 창, 메모리 덤프 창, 스택창으로 크게 4가지로 구분된다. 

- CPU 명령어 화면의 맨 왼쪽은 주소를 나타내며 두번째는 머신 코드, 세번째는 어셈블리어가 나타난다. 머신 코드는 CPU가 읽을 수 있는 코드이며 어셈 블리어는 인간이 읽을 수 있게 번역된 코드다. 보통 분석을 할 땐 어셈 블리어와 주소를 보며 분석을 하게 된다.

- 레지스터 창은 맨 우측에 표현되어 있으며 레지스터, 플래그에 대한 정보를 보여준다. 이는 프로그램을 실행시켰을 때 CPU 내부의 레지스터 안에 저장된 정보를 보여주는 것이다.

- 메모리 덤프 창은 왼쪽 하단에 위치해 있으며 말 그대로 메모리에 관련된 내용 및 주소 등을 볼 수 있다.

- 스택 창은 오른쪽 하단에 위치해 있으며 PUSH가 되면 스택 데이터가 계속 쌓이고 POP이 되면 스택 데이터가 빠지게 된다. 이 부분을 통해 원하는 주소의 스택 영역 값들을 확인할 수 있다.


3. 올리디버거 코드 실행 옵션 정리

 기능

메뉴 

단축키 

실행(RUN) 

Debug>Run 

F9 

정지(Pause)

Debug>Pause 

F12 

선택까지 실행

BreakPoint>Run to Selection 

F4

리턴까지 실행

Debug > Execute till Return 

Ctrl+F9 

사용자 코드 전까지 실행 

Debug > Execute till User Code 

Alt+F9 

싱글 스텝/스텝 인투

Debug > Step into 

F7 

스텝 오버

Debug > Step Over 

F8 

재시작

Ctrl+F2 

브레이크포인트

BreakPoint > Toggle

F2 

주소로 감

Ctrl+g 

[표 1-1] 자주 쓰이는 올리디버거 옵션



 


반응형
LIST

'악성코드분석' 카테고리의 다른 글

레나튜토리얼 1번  (0) 2021.01.12
리버싱 기초 (3)  (0) 2021.01.11
리버싱 기초 (1)  (0) 2021.01.10
UPX 자동 언패킹  (0) 2021.01.05
MP3 컨버터를 이용한 Exploit  (0) 2018.01.21
블로그 이미지

만년필석사

,
반응형
SMALL

1. CPU가 사용하는 레지스터 종류(32비트)

 

 레지스터

할 

EAX(Acuuulator) 

각종 연산에 쓰이며 가장 많이 쓰이는 변수 

EBX(Base 레지스터)

특정 주소 저장(주소 지정을 확대하기 위한 인덱스) 

ECX(Count 레지스터) 

반복적으로 실행되는 특정 명령에 사용됨 

EDX(데이터 레지스터)

일반 자료 저장 

EBP(베이스 포인터) 

SS 레지스터와 함께 사용 되서 스택 내의 변수 값을 읽는데 사용됨 

ESP(스택 포인터)

SS 레지스터와 함께 사용 되서 스택의 가장 끝 주소를 가리킴 

EIP(명령 포인터) 

다음 명령어의 오프셋을 저장하며 CS 레지스터와 합쳐져서 다음에 수행될 명령의 주소 형성 

EDI(목적지 인덱스) 

목적지 주소에 대한 값 저장, 문자열이나 각종 반복데이터를 처리 또는 메모리를 옮기는 데 사용

ESI (출발지 인덱스)

출발지 주소에 대한 값 저장, 문자열이나 각종 반복데이터를 처리 또는 메모리를 옮기는 데 사용



2. 올리디버거를 활용한 레나 1번 문제 간단 분석

 

[그림 1] 올리디버거 실행

 

올리디버거 실행 후 레나튜토리얼의 reverseMe 파일을 불러온다. 만약 올리디버거에 파일을 불러오게 되면 어셈블리어 형태로 나타난다. 

 

[그림 2] 코드 분석 - 1

 

현재 시작 메모리 주소를 보면 00401000이며 PUSH에 0을 넣고 함수를 호출하고 있다. LoadIconA에 PUSH 4, PUSH EAX가 있는 것으로 보아 인자가 2개가 필요하다. 아래 LoadCusorA도 PUSH 7F00, 0이 있어 인자가 2개가 필요함을 파악할 수 있다.

 

[그림 3] 코드 분석 - 2

 

CreateFileA 함수는 총 7개의 인자가 필요하며 파일 생성 함수임을 알 수 있다. 또한 MessageBoxA 함수는 총 4개의 인자가 필요하며 메시지 박스 함수 임을 알 수 있고 ExitProcess는 모든 프로세스가 종료되는 함수다.

 

[그림 4] 코드 분석 - 3

 

프로그램 하단의 메모리 주소 덤프 값에서 주소, 아스키 값을 알 수 있다. 현재 프로그램이 실행되기 전의 스택 값을 확인해보면 0012FFC4다.

 

[그림 5] 코드 분석 - 4

 

F8을 눌러 코드를 실행하면 스택 주소 값은 0012FFC0으로 변환되고 EIP 값도 00401002로 변환되었음을 볼 수 있다.

 

[그림 6] 코드 분석 - 5

 

F8을 눌러 코드를 한번 더 실행하면 스택 주소 값은 0012FFC4로 다시 복귀되며 스택 값도 7C816037로 정리된다. 또한 00401007의 메모리 주소가 실행 됨에 따라 EAX로 전달되어 MZP라는 데이터를 반환하고 있다.

 

 

반응형
LIST

'악성코드분석' 카테고리의 다른 글

리버싱 기초 (3)  (0) 2021.01.11
리버싱 기초 (2)  (0) 2021.01.11
UPX 자동 언패킹  (0) 2021.01.05
MP3 컨버터를 이용한 Exploit  (0) 2018.01.21
ollydbg와 mona를 이용한 BOF 실습  (0) 2018.01.21
블로그 이미지

만년필석사

,
반응형
SMALL

1. UPX(Ultimate Packer for executables)

- 여러 운영체제에서 많은 파일 포멧을 지원하는 오픈 소스 실행 파일 압축 프로그램

- 압축 및 해제 모두 가능함

 

2. 패킹 관련 사항

* UPX0, UPX1, .rsrc 총 3가지로 구성됨

* Section UPX0 : 메모리에 로드된 후 압축코드가 해제 될 공간

* Section UPX1 : 압축코드가 저장되는 공간

 

3. UPX 언패킹

[그림 1-1] UPX 언패킹 시도

upx 프로그램을 사용해서 MsgBox.exe 파일을 언패킹을 시도한다. 언패킹에 성공하면 기존 파일 사이즈가 많이 줄어 들었음을 알 수 있다.

 

[그림 1-2] UPX 언패킹 결과

PEView 프로그램에 언패킹된 파일과 언패킹 되지 않은 파일을 올려서 비교해보면 벌써 내용이 달라졌다는 것을 확인할 수 있다. 여기서 중점적으로 봐야할 것은 SECTION .rdata 부분인데 원본 파일에서는 존재하지만 언패킹된 파일에선 존재하지 않는다. 

반응형
LIST

'악성코드분석' 카테고리의 다른 글

리버싱 기초 (2)  (0) 2021.01.11
리버싱 기초 (1)  (0) 2021.01.10
MP3 컨버터를 이용한 Exploit  (0) 2018.01.21
ollydbg와 mona를 이용한 BOF 실습  (0) 2018.01.21
BOF 기초실습  (0) 2018.01.21
블로그 이미지

만년필석사

,
반응형
SMALL

2020년 12월 말, 이직에 성공했다.

기존에 있는 회사에서도 하는 업무는 만족스럽고 좋았지만 주로 단기, 중기 사업들을 위주로 하다 보니 모의해킹 레퍼런스는 잘 쌓여가지만 뭔가 불안했다.

경력 3년차에 접어들고 있고 분명 1년 이상 되는 장기 사업도 경험해봐야 하는데.... 현재 회사에선 그런 프로젝트를 할 기회가 적어 장기 사업을 해보고도 싶기도 하고 이것저것 좀 더 다양하게 경험해보고 싶어 이직을 결심하였다.

전엔 보안관제에서 모의해킹으로 이직을 하긴 했지만 그때는 말그대로 "중고 신입"이었고 경력직 이직은 처음 해봤다. 그래서 정보도 많이 없고 어떻게 해야 하나 많이 고민했던 것 같다. 이력서를 작성하고 그동안 했던 프로젝트 경력 프로필을 만들면서 "이렇게 하는게 맞나?" 이 말만 계속 되뇌였다. 게다가 경력직들 면접은 어떻게 물어볼지를 몰라서 그 정보를 구하는데 시간도 많이 들였다.

그렇게 이력서, 경력 기술서 등을 완성하고 이력서를 넣기 시작했다. 이번엔 정말 큰 회사를 가고 싶었고 여기가 안되면 그냥 이직 안한다는 각오로 했다. 내가 워낙 단기나 중기 사업 위주로 많이 했어서 경력직 서류 통과도 쉽지 않을 것이라고 예상했다. 회사는 총 세군데를 넣었고 1주일~2주일 뒤에 연락이 왔는데 놀랍게도 넣었던 회사들 모두 서류가 통과되었다. 신입 땐 서류 통과 조차도 안되었던 회사들이 통과되니까 자신감이 붙었다.

그 때 들었던 생각은 "그래, 떨어지더라도 최선을 다해보자, 해보지도 않고 어떻게 알아?" 였다. 인성 검사도 통과되고 기술 및 인성 면접을 한꺼번에 보게 되었는데 몇년만에 보는 면접이라 조금 긴장도 됐지만 자기소개가 끝나곤 마음이 편해졌다. 확실히 경력직 면접은 지금까지 해왔던 프로젝트들을 위주로 질문을 받았고 내가 직접 다 했던거라 편안하게 면접관들한테 답변했다. 엄청 테크닉적인 질문보단 해왔던 프로젝트 경험 위주, 만약 이 회사에 와서 어떤 업무를 할 수 있는지 등을 중점적으로 물어봤다. 또한 큰 회사라 그런지 인성 질문도 많이 받았다. 아마 조직생활에 대한 적응 능력, 팀원들과의 협업 능력, 태도 등을 평가하려고 했던 것 같다.

그렇게 면접이 끝나고 결과를 기다렸다. 면접을 본 지 3일 후 내 이메일로 최종 합격 통보를 받을 수 있었다. 걱정도 참 많이 했는데 받고 나니 얼마나 기뻤는지 모른다. 게다가 내가 한번 쯤은 꼭 가보고 싶었던 회사여서 더 열심히 해야겠다는 생각도 들었다. 이젠 건강검진만 남겨놓고 있지만 이직해서도 절대 안주하지 않고 지금보다 더 발전하고 스킬업 할 수 있게 최선을 다 할 생각이다.

반응형
LIST

'IT인의 여러가지 이야기' 카테고리의 다른 글

코딩 열풍에 대한 고찰  (0) 2021.07.25
야간 대학원 진학  (0) 2021.05.08
이직 그 후...  (0) 2021.03.06
2020년 회고록  (0) 2020.12.15
케이쉴드주니어 FAQ  (16) 2020.01.28
블로그 이미지

만년필석사

,
반응형
SMALL

2020년 한해도 저물어가고 있다. 코로나로 인해 모두가 힘든 시기를 겪고 있고 모의해킹쪽도 프로젝트 일정이 밀리고 엉켜서 하반기로 많이 밀렸다. 얼른 코로나가 극복되었으면 좋겠는데... 생각 외로 오래가고 있는 것 같다. 자유도 많이 잃어버리고 얼른 다시 일상으로 돌아갔으면 하는 바램이다. 2020년 한 해를 돌아보면 정말 열심히 살았다고 말할 수 있을 것 같다. 내가 하고 싶었고 관심이 있었던 모의해킹 업무였던 만큼 내 힘이 닿는데까지 열심히 했다.


역시 단순히 돈만 보고 쫓아가는게 아닌 내가 정말 하고 싶은 일이 어떤 것인지 다시 생각하고 선택했던 것이 주효했던 한 해였다. 열심히 돌아다니고 많은 고객사를 방문해보면서 내 자신을 한단계 더 업그레이드 시켰다. 고객을 대하는 방법, 모의해킹 기술들, 위험 평가 등.... 모두 나에겐 자산이 되고 느낀게 많았다. 그에 따른 원동력은 역시나 사람들을 잘 만났던 것 같다.


같이 일한 PM님, 수석님들이 실력도 좋으시고 실수를 하는게 있어도 질타하는게 아닌 다시 한 번 어떤 부분이 잘못되었는지 알려주시는 방식으로 업무를 진행하셨고 나도 그런 윗사람들을 보면서 많이 배우고 느꼈던 것 같다. 프로젝트는 항상 나 혼자만을 생각하며 진행할 순 없기에... 늘 협업이라는 것이 중요했고 그러한 부분을 보면서 내껏으로 승화시키기 위해 노력했다. 지금 생각해보면 입사하고 정말 아무것도 모르는 상태에서 갑자기 금융권쪽 프로젝트에 투입되서 어떻게 진행했는지.... 처음부터 금융권 프로젝트에 투입될 진 생각도 못했지만 역시 금융권쪽이 배울게 가장 많았었다.


많은 돈이 왔다갔다하고 그만큼 보안에 엄청나게 투자를 하는 만큼 보는 시각이 좀 더 넓어졌다. 지금도 금융권쪽 커리어를 쌓게 해준 회사에 고마울 따름이다. 그렇게 여러 단기 프로젝트를 경험해본 후 계속 혼자 웹, 모바일 앱 모의해킹을 하면서 돌아다녔고 바쁠땐 3~4개월씩 본사 구경도 못해본 채 일만 했다. 때론 너무 돌아다녀 지치기도 했지만 다른 회사의 좋은 분들을 만나 다시 충전되고 일하고 그랬다.


전국을 돌아다닌다는 것도 쉽지만은 않지만 그냥 여행 다닌다는 생각으로 다녔다. 내가 좋아서, 진심으로 하고 싶었던 일이었던 만큼 열과 성의를 다했고 틈나는 대로 모의해킹에 필요한 기술, 대학원 공부까지 꾸준히 했었던 만큼 후회없는 한 해를 보낸 것 같다.


이제 대학원도 졸업을 앞두고 있고 어느덧 보안 경력도 3년차에 들어가고 있지만 늘 현실에 안주하지 않고 꾸준히 올라가는 기술컨설턴트가 되는 것이 현재 내 목표다. 내년에도 나태해지지 않고 지금처럼만 하길 바라며 계획했던 것들이 모두 이루어지길 소망하며 글을 마친다.

반응형
LIST

'IT인의 여러가지 이야기' 카테고리의 다른 글

코딩 열풍에 대한 고찰  (0) 2021.07.25
야간 대학원 진학  (0) 2021.05.08
이직 그 후...  (0) 2021.03.06
이직 성공 후기  (4) 2021.01.01
케이쉴드주니어 FAQ  (16) 2020.01.28
블로그 이미지

만년필석사

,