소켓통신 프로그래밍에서 해킹을 막으려면 ?
글쓴이: ljh0431 / 작성시간: 토, 2010/10/30 - 4:12오전
설치 QnA에 글을 올려야 할지 이곳에 올려야 할지 잘 몰라서 여기다가도 글을 올려봅니다.
소켓 프로그래밍으로 네트워크 프로그램을 만들어서 서버를 구축할 경우,
제가 궁금한 점이 있습니다.
소켓 프로그래밍으로 만든 소켓통신 프로그램에서 다양한 크기의 메세지로 client와 대화를 나눌 경우,
해커가 client프로그램을 분석하여 서버쪽으로 인위적인 메세지를 보낼경우,
서버는 overflow등 다양한 에러가 유도될 수 있는 경우,
이러한 해킹에 대비해서 소켓프로그래밍을 어떻게 구현해야 하나요 ?
서버 앞에 패킷을 1단계로 분석하는 서버를 둬야 하나요 ?
아니면 소켓통신프로그램개발단계에서부터 이 부분을 염두에 두고 개발해야 하나요 ?
이 점이 제가 고민입니다.
단순히 소켓통신프로그램을 개발하는 것은 그다지 어려운 일은 아닌데, 해커가 무작위로 메세지를 교묘하게 보내서
서버를 다운시키거나 소켓통신프로그램이 엉망이 되게 할 경우 대처에 대한 지식이 없습니다.
어떻게 해야 할지 난감한데, 이 부분에 대해서 생각을 같이 해 주실분 있으시면 감사하겠습니다.
Forums:
접속시에
소켓 접근을 하나만 수행하고 close 시키는 방법은 어떨까요?
로그인을 해야 접속이 가능하게 끔 구현 하시는 거죠
일정한 형식을 만들어서, 암호화 시켜 보내고 받은 쪽은 복호화 하게 끔
대충 그런식이 될 듯한데..
----------------------------------------------------------
It's feasible to make an inspiration on your own.
----------------------------------------------------------
It's feasible to make an inspiration on your own.
음... 글쎄요
제 생각에는 예외처리만 잘 하시면 됩니다.
요컨데 메시지를 담아두는 구조체가 overflow됐더라도 말이죠,
지정한 스펙에 따라 정확히 값을 담아오면 거의 문제될 일은 없습니다.
따로 신경쓰실 일은 거의 없으십니다.
왜냐면, VC가 업데이트 되면서 SEH 같은 보호체계의 등장으로 stack overflow같은 경우는 이제 거의 의미가 없습니다.
제가 아는 모프로그램 처럼 -_-; 필터링할때 문자열길이를 고려하지않고 무조건 3글자로 패치하는 바람에 지혼자 오버플로우 되버리는 이상한 짓만 안하면 될것 같습니다. ^^
secure programming 에 관련 자료는 많으니까 참고하시면 될것 같습니다.
댓글 달기