정보보안에 관심이 있는 고1학생입니다.
안녕하세요 화이트해커를 꿈꾸고있는 고1학생입니다. 프로그래밍같은경우는 요즘 접하기도 쉽고 인터넷에 방대한 자료가 있어서 독학이 가능하지만 해킹은 그러지 않은것 같습니다. 그래서 더 막연하기도 하구요. 어떤거부터 시작해서 어떻게 지식을 늘려가야할까요?
안녕하세요. 아공입니다!
저능 현재는 현직에서 웹디자인과 웹 프로그래밍을 하고 있는데요.
일단 해킹의 경우 기본 지식도 필요하기 때문에!
기초를 잘 배우시는게 좋을것 같아요!
난이도는 프로그래밍의 정도에 따라 달라지실 수 있어요~
기본만 익히시면 하중상으로 점차 발전하는 프로그래밍을 하실수 있답니다!:)
👉🏻코딩의 본질을 제대로 배워보고 싶으시면 기초 지식을 쌓을겸 C언어를 배워 보시는게 좋을 것 같아요!
C언어를 배우고 나서 JAVA를 배우시면 자바를 좀더 쉽게 접근하실 수 있을거에요!:)
공부해본 사람의 입장으로서
언어의 성질이 좀 달라서 배우실때 혼란이 있으실 수는 있을것 같은데 시작부터 자바를 배우시고 나면 C언어를 이해하시기가 더 어렵거든요~
그래서 그렇게 권장 드리는것이고:)
사실 실무적으로는 자바가 좀더 실용성이 있어요!
👉🏻1 일단 진로의 방향 부터 잡아보시는게 좋을 것 같아요!
2 진로의 방향에 따라 배워야 하는 언어가 달라요~
3 서버관리 같은 직업은 C언어를 배우셔야하고 어플개발 등 웹관련 업무에는 JAVA가 더 필요해요~
완전히 처음이시라면~
시작이 반이다! 일단 하나 잡고
1 앱을 만든다던가
2 사이트를 만들어본다던가
하는 기초 개발부터 시작해보세요^^
조금이나마 도움이 되셨기를 바라며, 건강조심하시고 좋은하루되세요:)
저도 한 때 같은 고민을 했던 것 같습니다. 프로그래밍은 알고리즘 사이트를 열심히 접해보거나
서적도 다양하고 많아서 공부하는데에 비교적 어려움이 적지만
해킹에 대해서는 그렇지 못한 경향이 있습니다.
잘 알려지지 않은 기술도 많고, 기술의 난이도가 천차만별이기 때문입니다.
공부하다 보면 호기심이 금방 떨어져서 어려움을 겪고 포기하는 친구들도 많이 봤습니다.
제가 공부를 해보면서 느낀점은 해킹을 공부하려고 주변 지식을 하나하나 익히려고 공부하는 것보다는
직접 해킹을 해보면서 부족한 부분을 공부하는 것이 좋은 방법이라고 생각합니다.
제가 추천하는 방법은 워게임 사이트를 하나 잡고, 그 워게임 사이트를 끝날 때까지 공부하는겁니다.
난이도도 다양하기 때문에 쉬운 것 부터 풀고, 모르면 다른 사람들의 write-up 을 확인하면서
아 이 사람은 이런 방식으로 접근했구나, 이 문제를 풀면서 내가 몰랐던 지식은 무엇이구나라는 것을 알게됩니다.
예를 들어 시스템 해킹을 알기 위해 자료구조 책을 완벽히 이해해야해 라는 느낌으로 한 달 내내 자료구조 책을 완독해도
정작 머릿속에 남는것과 응용할때의 무게감이 너무 다르기 때문입니다.
추가적으로 코드게이트를 비롯한 여러 CTF를 도전하시거나 국내 해킹 스터디 그룹에 도전하는 것도 좋은 방법입니다.
뭐든지 많은 경험과 흥미를 떨어뜨리지 않도록 유의하세요
아직 어린 나이기 때문에 충분히 시간은 많습니다
화이트해커를 꿈꾸고 있으시다구요?
우선 학생의 실력이 어느정도인지 모르기에 원초적인 답변만 해드리겠습니다
최소한 한가지 언어에 대해 잘 알고 있고, 서버&클라이언트&db 개념에 대해 알고 있다는 가정하에 설명드리자면,
기본적으로 방어를 한다는 개념으로 공부를 하지 마시고,
본인이 공격자라고 생각하시고 정말로 다양한 방법으로 타겟을 뚫을려고 노력해보시기 바랍니다
예를 들어 웹서버에서 이름을 입력받았을때 단순입력으로 서버단 프로그램을 처리한다면?
공격자는 해당 이름의 변수에 sql 질의문을 넣어서 원하는 결과를 빼올수 있습니다
그래서 공격자 입장에서 원하는 자료를 빼올수 있게 실력이 늘었다면?
이제 반대로 수비자 입장이 되어서 그런 sql질의문을 어떻게 처리할지 고민을 해야겠죠
저 같으면 사람의 이름이 3글자이니, 넉넉잡고 5글자 이상은 무조건 짤라버릴것입니다
이런식으로 공수역활을 해가며 해킹연습을 하시다보면, 원하시는 수준까지 가실거라 생각합니다
화이트해커를 꿈꾸고 그에 대한 첫 공부 시작이시라면 쓸 수 있는 프로그래밍 언어가 있는지 생각 해보시는게 좋을 듯 싶습니다.
쓸 수 있는 언어가 없고 처음 시작하시는 것이라면 C언어를 추천드립니다. C언어를 어느정도 다룰 수준이 되면 그 이후에는
운영체제인 리눅스와 윈도우 서버에 대한 지식을 학습하시고나서 그 뒤에는 네트워크에 대한 지식을 습득하시면 될 것으로 보입니다.
네트워크가 끝나고 나서는 본격적으로 정보보안에 대한 지식을 습득해야 하는데 해킹 관련해서 네트워크, 웹, 시스템에 관련해서
해킹에 대한 보안 지식을 습득 하면서 포렌식, 리버스엔지니어링에 대한 지식도 병행하시면 될 것으로 보입니다.
근데, 학생이시니 C언어와 리눅스 정도까지 학습하시면서 관련 학과에 진학하기 위한 성적을 먼저 학습하시는 것이 최선이라 생각되네요.
분야는
웹
html부터 공부하시고 그다음 php공부하세요 php공부 하신뒤 칼리리눅스 대충 체험해 보시고 웹서버를 하나 구축해 보세요 phpmyadmin등으로요 그후에 데이터 베이스 구축해보시고, OWASP Top 10 취약점 공부하세요.
OWASP Top 10공부 하실때 DVWA구축하셔서 Low Middle? high 이런식으로 보안수준 설정 가능한데 여기서 공격을 실습해 보세요. Burp suite도 사용.
웹백도어도 만들어 보세요. , web-reverse-shell등 nc를 통해서 응답도 받아보시구요
네트워크
와이어 샤크, Layer 7, ping날리고 패킷받아보기, 디도스 툴 같은거 아무거나 다운받아서 자신서버에 날려보고 패킷뒤져보기등 해보시면 될것같습니다. 네트워크 장비도 좀 보시구요
시스템
C언어 공부하시면서 리버싱 공부하십시오. 칼리에서 gdb도 사용해보세요. set disassembly-flavor intel 인텔로 보시는게 편합니다. 그리고 차후 쉘코드 제작해보세요. 그리고 프로토 스타, 레나튜토리얼, abex_crackme시리즈 다 풀어보시고 대회문제 아무거나 함 풀어보시죠.
+ 아두이노이것도 공부해보세요 나중에 도움 많이 됩니다.
C++인가 C언어 기반입니다.
안녕하세요~! 아하(Aha) 지식답변자 다라닝입니다.
질문하신 내용에 대하여 아래와 같이 답변 드립니다.
자료구조, 알고리즘, 네트워크 를 공부하셔야하며프로그래밍을 포함한 IT전반에 대한 지식을 충분히 알고 계셔야합니다.
여러개를 한번에 시작하지마시고
하나씩 차근차근 해나가시길 바랍니다.
개인적으로는 네트워크와 프로그래밍은 꾸준히 하시길 추천드립니다.
부족하지만 도움이 되셨기를 바라며 추가적인 문의가 필요하시면 답변 부탁드려요!