소켓통신 프로그래밍에서 해킹을 막으려면 ?

ljh0431의 이미지

설치 QnA에 글을 올려야 할지 이곳에 올려야 할지 잘 몰라서 여기다가도 글을 올려봅니다.

소켓 프로그래밍으로 네트워크 프로그램을 만들어서 서버를 구축할 경우,
제가 궁금한 점이 있습니다.
소켓 프로그래밍으로 만든 소켓통신 프로그램에서 다양한 크기의 메세지로 client와 대화를 나눌 경우,
해커가 client프로그램을 분석하여 서버쪽으로 인위적인 메세지를 보낼경우,
서버는 overflow등 다양한 에러가 유도될 수 있는 경우,
이러한 해킹에 대비해서 소켓프로그래밍을 어떻게 구현해야 하나요 ?
서버 앞에 패킷을 1단계로 분석하는 서버를 둬야 하나요 ?
아니면 소켓통신프로그램개발단계에서부터 이 부분을 염두에 두고 개발해야 하나요 ?
이 점이 제가 고민입니다.
단순히 소켓통신프로그램을 개발하는 것은 그다지 어려운 일은 아닌데, 해커가 무작위로 메세지를 교묘하게 보내서
서버를 다운시키거나 소켓통신프로그램이 엉망이 되게 할 경우 대처에 대한 지식이 없습니다.
어떻게 해야 할지 난감한데, 이 부분에 대해서 생각을 같이 해 주실분 있으시면 감사하겠습니다.

shei77의 이미지


소켓 접근을 하나만 수행하고 close 시키는 방법은 어떨까요?

로그인을 해야 접속이 가능하게 끔 구현 하시는 거죠

일정한 형식을 만들어서, 암호화 시켜 보내고 받은 쪽은 복호화 하게 끔

대충 그런식이 될 듯한데..

----------------------------------------------------------
It's feasible to make an inspiration on your own.

----------------------------------------------------------
It's feasible to make an inspiration on your own.

kese111의 이미지


제 생각에는 예외처리만 잘 하시면 됩니다.

요컨데 메시지를 담아두는 구조체가 overflow됐더라도 말이죠,
지정한 스펙에 따라 정확히 값을 담아오면 거의 문제될 일은 없습니다.

따로 신경쓰실 일은 거의 없으십니다.
왜냐면, VC가 업데이트 되면서 SEH 같은 보호체계의 등장으로 stack overflow같은 경우는 이제 거의 의미가 없습니다.

제가 아는 모프로그램 처럼 -_-; 필터링할때 문자열길이를 고려하지않고 무조건 3글자로 패치하는 바람에 지혼자 오버플로우 되버리는 이상한 짓만 안하면 될것 같습니다. ^^

secure programming 에 관련 자료는 많으니까 참고하시면 될것 같습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.