20220701 TIL

GunDDak·2022년 7월 1일
1

Today I Learned D+1

학교 에타에서 쪽지를 보내면 공부로 때려주신다는 글을 보게되어서 쪽지를 해보았는데 같이 다니던 친구들 사이에서 전설로만 내려오던 선배님이셨다. 이 선배님께서 길러내신 사람들의 무용담을 듣기만 했었는데 마침 이 기회가 나까지 오게 되었고 이 좋은 기회를 살리고자 선배님의 조언에 따라 이를 시작하게 되었다.

이왕 첫 날이고 초심도 잡는 김에 다시 한번 '보안'의 분야에 대해 정립을 해보고 향후 계획에 대해서 한 번 정리를 해봐야겠다.

Web Hacking

말 그대로 HTML, Javascript + 여러가지 프레임워크 and 라이브러리 등으로 이루어진 어느 하나의 웹사이트의 논리적 오류와 취약점을 분석하여 권한이 부여되지 않은 정보를 탈취하거나, 어느 URL에 접속하는 사람들이 자신도 모르게 공격자가 원하는 행위를 실행시키는 등 여러가지 공격 시나리오가 있는 기법이다.

웹해킹은 다른 해킹에 비해 진입장벽이 낮다고는 하나 애당초 보안에 대한 진입장벽이 절대적으로 높은지라 아무리 웹해킹이라한들 쉽게보면 안된다.
이런 웹해킹을 하기 위해서는 기본적으로 웹의 동작에 관련한 지식, HTML과 Javascript 정도는 알고 있어야 '입문'은 가능하다고 한다.

하지만 구글에 '웹해킹입문'이라고 치면 다들 게시판과 로그인 기능이 있는 간단한 사이트를 짜보고 공부를 하라는데 사실 그렇게 되면 백엔드 공부가 선행되어야 한다는 것인데 이걸 안해보고 노베이스로 하는게 맞나 싶지만 일단은 그냥 해볼것이다.

대표적인 공격기법으로는 XSS, CSRF, SQL Injection, Command Injection, SSRF가 있는데 이는 향후 웹 해킹을 공부하면서 차차 알아가도록 할 것이다.

보안 관련으로 취업할거면 웹해킹을 자주 연습해보라는 Bob 수료생 선배님의 조언에 따라 내 두번째 무기(사실 거의 1.5번째라고 해도 될만큼 투자를 할것)이자 목표가 될 기술이기도하다.

Pwnable

이는 아마 어떤 게임에서 이기고 나서 한 유저가 Own!(아마 권한관련 단어일 것)이라고 쳐야할 것을 Pwn!으로 오타를 낸 것이 오히려 유행을 타게 되어 권한을 탈취하는 것이 주된 목적인 '시스템 해킹'을 의미하는 단어가 된 것으로 알고 있다.

위에서도 말했지만, 어느 한 시스템에서 Admin or Root 권한을 탈취하는 것이 주된 목적이며 이에 대한 시나리오는 또 공격기법과 취약점에 따라 정말 다양할 것이다.

이를 위해서는 전반적인 운영체제 지식, 특히 리눅스(+ 다들 해커하면 떠오르는 CLI 명령어)를 많이 봐야할 것 같아서 공부를 해볼 것이다.

기본적으로 여러가지 해킹툴을 지원하는 칼리리눅스를 깔아는 놨는데 아직 제대로 써본적이 없어서 나중에 연습을 해봐야 할 것 같다.

사실 위에서 잠시 등장하셨던 Bob 수료생 누님이 포너블은 문닫혔다고 도망치라고는 하셨지만 그래도 웹해킹이 두번째 무기가 되기 전에 한 때 내 두번째 공부분야였기도하고 마침 내가 있는 랩실이 운영체제와 관련있는 시스템소프트웨어연구실이라 그래도 조금씩이라도 해볼 것이다.

Digital Forensic

사실 내가 썼던 모든 대학교 자소서, 랩실 자소서 등에 등장했던 이야기이자 보안에 입문하게 된 계기가 결국은 디지털 포렌식으로 귀결이 된다. 초등학생 때 애정있게 키웠던 메이플스토리 캐릭터가 해킹당하면서 "아 ㅋㅋ 이거 누가 그런건지 알아낸다"라는 생각을 했었는데 보안을 공부하다보니 이는 결국 Digital + Forensic(법의학) 즉, 온라인상에서 일어나는 범죄 행각에 대한 조사기법에 대한 내용이라는 것을 알게 되었다.

생각해보면 당장 위에만 해도 '큰' 의미로의 해킹 기법이 두 개가 있는데 이를 세분화하면 훨씬 많은 기법이 있고 심지어는 아직 그 누구도 생각지 못한 제로데이 공격, 한 술 더 뜨면 앞으로 등장할 신기술에 대한 공격기법으로 따지면 거의 무한으로 발산하는 종류의 기법들이 있을텐데 이러한 방법으로 공격받은 시스템에 대한 부검을 하여 법적으로 효력이 있는 증거로 만드는 것이 바로 디지털 포렌식이다.

디지털포렌식을 하기 위해서는 살인사건이 일어났을 때 부검의가 사람의 인체에 대해 잘 알아야 사인과 어떤 행위가 일어났을 대강의 시기를 예상할 수 있듯이, 컴퓨터의 전반적인 CS적인 내용을 넓게 알고있어야하고 현실적으로 당장은 내가 포렌식을 위한 '툴'을 만들 여력도 능력도 전혀 안 되니 현장에서 자주 쓰이고 쓰일 것 같은 툴에 대한 활용법과 적절한 사용 시기를 알아야한다.
사실 나는 디지털포렌식 툴을 자체적으로 만들어낼만큼 똑똑한 사람이 아니라 현재 상용화 된 툴이 어떨 때 어떻게 쓰이는지에 대한 공부를 할 것이다.

한창 보안을 공부하기 위해 우리 과에는 없지만 옆 과에는 있는 해킹동아리에 1학년 때 무작정 들어가서 들은 것이 디지털포렌식이었다. 한때는 내 1순위 목표였지만 현직에 없는 학생의 신분으로만 생각해보면 포렌식을 공부해서 들어갈 수 있을 회사의 구분이라고 하면 사이버수사대(이마저 7급 경력직이라 '어디서'든 경력을 채워야 지원은 가능함)와 로펌밖에 없어서 길이 좁은 것 같다고 생각하던 찰나에 위에서 말했듯이 먼저 길을 걸어가신 선배님이 웹해킹 열심히 하라고 하셔서 이와 함께 1.5순위로 둘 기술이다.

Reversing

이름에서도 알 수 있듯이 역공학기법이다. 어느 한 프로그램이 있으면 이를 어셈블리 수준까지 나누어 해당 프로그램이 어떤 동작을 하는지 분석하는 기법인데 조금 이쁜 말로 악성코드 분석이라고 불리는 것 같다. 포너블을 공부할 때 어셈블리어는 정말 조금하긴 했지만 결국 리버싱에 관한 공부는 단 한번도 해본 적이 없어서 감히 쓸 말이 없다. 나중에 시간이 되면 한 번쯤 맛은 볼 것 같지만 지금 당장의 일은 아니므로 그냥 넘어가야겠다.

After

솔직히 군대를 갔다와서 이제 부랴부랴 2학년 1학기로 복학한 컴퓨터공학과 학생이 보안으로 입문하기에는 늦은 것은 아니지만 그렇다고 빠른 것도 절~대 아니다. 이미 중학교 고등학생때부터 컴퓨터와 해킹에 입문을 하여 자기만의 분야를 설정하여 공부를 많이 한 분들이 계셔서 그 분들께 한 번 여쭤본 내용이 있었다.

Me : 보안만 공부하셨나요?
??? : 아니요. 보안은 개발의 연장선이라 개발도 정말 많이 해보았습니다. 보안에 입문한 건 중학생이었지만 컴퓨터(개발)에 입문한 건 초등학생 때 였어요.

결국 보안을 한다고 해서 보안'만'하면 안 된다는 것을 알려주셨다. 그래서 위에 웹해킹 이야기를 할 때 잠시 나왔던 것처럼 게시판이나 로그인을 한 번 구현을 해보고 웹해킹을 해봐야한다는 것처럼 어쨋든 개발을 해야한다. 하지만 취업까지 얼마남지 않은 시간이라 무작성 탑다운으로 보안부터 파고 있지만 이것도 언젠가 한계에 부딪히고 말 것이다. 나는 이것을 알고는 있었지만 그렇다고 보안을 잠시 접어두기에도 시간에 쫓긴다 생각하여 개발을 거의 배제를 하고 있었다.

하지만 방학도 방학이고 마침 에타에서 수많은 인재를 길러내신 선배님의 회초리에 당할 수 있는 기회가 생겨 정말로 이제는 개발에 대한 청산은 한 번 이루어 볼 것이다.

사실 보안이 안 되면 백엔드로 돌아서려는 생각이 있지만 그래도 1년은 더 붙잡아 볼 것이기에 1년동안은 '완벽한' 백엔드와는 거리가 멀 것이다. 그래서 이번 방학 동안에는 보안 + '코딩'의 기초인 알고리즘과 선배님께서 내주시는 '개발'의 과제를 풀어볼 것이다.

2학기 과목에 먼가 파이썬을 못 쓰게 하실 것 같은 교수님을 만나 프로젝트 과목이 힘들 것 같지만.. 난 모르겠다 선배님께 정말 죄송하지만 지금 당장의 나는 4학년 창설의 척도가 될 어벤디보다는 보안이 먼저다.

그래도 신경써주시는만큼 열심히 해보아야겠다.

Tomorrow

위에서 거창하게 써놨는데 이게 마침.. 내일 랩실 MT다..
랩실 MT만 아니었다면 공부를 했을 것이지만 죄송합니다 선배님!
내일만 놀겠습니다 ㅜㅜ

profile
tak_e_life

0개의 댓글