제가 배포한 오픈소스 게시판 사용해 보셨는지 모르겠지만 현재 동일아이피로 접속시 해킹 방지 루틴을 구상중인데... 블록

맥 어드레스를 구해서 검증하는 방식은 구현하기가 상당히 까다롭던데 동일 아이피로 접속한 PC를 서로 구분하는 좋은 방법이 없을까요? 이글루스를 가지고 해킹 실험도 해보았지만 아무래도 맥어드레스로 구분하는 건 아닌것 같아서 다른 방법이 있는 것인지가 궁금합니다. 일단 다른 아이피로 접속시엔 해킹이 차단되는 걸 확인했거든요?

보다 완전한 보안을 위해서 필요한 작업인데 도움을 얻고 싶습니다. 익스플로어11 호환성 작업은 일단 천천히 미루고 이 작업을 우선 해야할 것 같아서요.

며칠전 아래와 같이 적용해 보니까 맥어드레스가 잘 구해지지가 않더군요. arr_cnt 가 1이 구해지는데 맥어드레스 값을 찍어보면 아무것도 출력이 되지 않습니다.

arp로 표시된 이더넷 아이피도 192.168.0.1 의 게이트웨이가 표시가 되는데 이것 정상인가요? 원래 DHCP로 할당된 사설아이피가 보여야 하는 것 아닌지 모르겠네요. 제가 원하는 맥 주소는 클라이언트로 접속한 192.168.0.XXX 의 맥어드레스입니다만...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
    // 맥어드레스 구하기
    if(function_exists('exec')) {
 
        //$ipAddress=$_SERVER['REMOTE_ADDR'];
        //$macAddr=false;
 
        $arp=`arp -H ether -n -a $REMOTE_ADDR`;
        $lines=explode("\n"$arp);
        $arr_cnt=count($lines);
        $parts = explode(' ',$lines[$arr_cnt-1]);
        echo "<br>arr_cnt: ".$arr_cnt;
        echo "<br>맥어드레스: ".$parts[3];
    }
?>

덧글

  • 2014/10/16 15:00 # 삭제 답글

    맥어드레스로 구분?
    뭐지? 이 되도 않는 발상은?
  • ece! 2014/10/16 15:31 # 삭제 답글

    이분 기본적인 인터넷 시스템 개념도 없는 모양인갑네ㅋㅋㅋ
    맥주소는 end-to-end에선 거의 의미없습니다ㅋㅋㅋ
    무슨 IP 주소처럼 맥 주소가 end-to-end로 기기 확인하는 용도로 쓰이는 줄 아는 모양이군요ㅋㅋㅋ
  • 희망의빛™ 2014/10/16 17:16 #

    저도 맥어드레스가 공인아이피 주소 처럼 고유한 것이 아니라 조작이 가능한 것이라는 걸 알고 있지만 맥어드레스로 보통 고유값을 검증하는 경우도 있어서 함 구현해 보려고 했던 것입니다. 근데 그 방법이 아닌 모양이군요.
  • ece! 2014/10/16 17:44 # 삭제

    ㅋㅋㅋ 핵심은 조작이 가능하냐 가능하지 않느냐가 아닙니다.
    IP랑 다르게 source 맥주소는 end-to-end로 봤을 때 라우팅을 거치면 유지가 안 되지 말입니다ㅋㅋㅋ
    아예 시스템 자체를 이해를 못 하시네요ㅋㅋㅋ

    맥주소가 의미가 있으려면 공유기 내부에서와 같은 1-hop으로 통신이 구성되어서 라우팅이 없을 때 정도이지 end-to-end로 작동하는 웹에서 맥주소는 거의 의미가 없지 말입니다ㅋㅋㅋㅋ
  • 희망의빛™ 2014/10/16 18:59 #

    그렇군요. 도움 말씀 감사드립니다. ^^; 저도 예전에 해킹관련 문서를 보다가 언뜻 비슷한 이야기를 들은 적이 있는 것 같습니다. 이렇게 실제로 구현 과정에서 그 상황을 목격하게 되니 확실히 기억이 될 것 같습니다.
  • ece! 2014/10/16 19:15 # 삭제

    '해킹 관련' 문서가 아니라 애초에 컴퓨터 네트워크의 기본적인 시스템입니다.
    공부부터 하고 하세요.
  • 글리 2014/10/16 16:02 # 답글

    어찌되었든 의도와 상관없이요 ARP가 뭔지를 아세요. 단순히 남의 소스 복붙하고 응용도 못하면 무슨 의미가 있나요? 그냥 님이 평범하게 사용하는 인터넷이 되는 윈도우즈에서 cmd.exe 뛰우고 arp -A라고 해보세요. IP,MAC,Type 순으로 쫙 떠요. 님이 올린 소스는 저런 ARP table에서 3번재꺼를 추출할 뿐이랍니다. 이렇게 실행해서 보고도 왜 3번째인지 모르면 답이 없구요. 그리하여, ARP table 3번째꺼의 MAC이 추출이 안된다면 님이 이와 유사한 방식뿐만 아니라 위의 소스를 조.금.만. 수정해도 확인이 가능하겠죠? 없는걸 캐치할 수 없는 노릇이고 왜 없는지는 사실 인터넷에 굴러다니고 있어서 직접 판단할 능력이 없어도 답이 굴러다니고요. 그런데 만약 ARP table 3번째의 정보가 있는데도 캐치가 안되면요!? 그건 PHP 관리기술이 없어서라는 결론이 나옵니다. 그런데 이 관리설정 문제도 워낙 초보적인거라 구글링하다보면 나와요. 물론 이 모든 문제를 다 클리어해도 님이 원하는 결과는........................................................................... 원리를 알아야 응용이 되는건 맞지만 첫단추가 글러먹었는데 이게 무슨 소용일까 싶네요. 첫단추가 글러먹은걸 이리 답해주는 사람은 정말이지 전혀 보람을 못느낄겁니다.
  • Miyun_86 2014/10/16 16:41 # 삭제

    어느 분 말씀대로 배우는데 효과적인 방법을 시전하는데, 자기가 "안들려 안보여"를 시전하는 웃픈 상황이죠(.....)

    - 배울 생각 있었으면 진작에 제로보드4 때려치고 PHP 신규 버전 가지고 새로 만들고 있었겠죠.
  • 희망의빛™ 2014/10/16 19:16 #

    상기 명령을 원격 클라이언트에서 실행시켜 주면 서버와 동일 네트워크가 아닌 관계로 출력이 안되는것 아닐까요? 제가 첨부터 번지수를 잘못 잡은 것 같기도 하네요. ㅎㅎ 저도 ARP 명령을 동일 게이트웨이에서 실행한 적이 있는데 이 명령이 로컬에서 동일 네트워크 안에서만 동작한다는 사실은 첨 알았네요. 근데 사실 테스트한 서버도 같은 공유기 안에 있긴 합니다만 여전히 출력이 안되는 건 좀 이해할 수가 없기도 합니다. ㅡ_ㅡ; 혹 로컬이 아니라 http를 통해 웹서버로 접근해서 그런건 아닌지... 그렇다면 상기 소스는 아무 의미가 없다는 것인데... ARP 명령으로 대입된 변수 자체가 출력이 안되고 있는데 혹 다른 방법은 없을까요? 구글링을 해봐도 이것과 비슷한 내용밖에 없고... 쩝~ 있기는 있을 것 같은데 찾기가 쉽지 않네요.
  • 글리 2014/10/16 19:46 #

    Miyun_86// 네, 잘알겠습니다.
  • 글리 2014/10/16 20:01 #

    본문과 덧글을 보면 마치 시간을 거꾸로 달리는 재주가 있으신듯 착각할 정도인데 꿈속도 아니고 어렵다고 도중에 때려쳐서 알다가 마신게 아닐까 싶은데 말이죠. 핵심만 알려드릴꼐요. 이세상엔 ARP 프로토콜만 있는게 아니죠!!??!?

    사실 속보이는 본문이라 덧붙이는데 이건 사전적으로 처리될 문제가 아니니 완전한 보안과는 당연 상관없고 항시 수집할 이유가 없서요. 수집자 입장에서 다른 목적이 있는게 아니면요 ㅡ_ㅡ 그러므로 한계를 이해하고 또한 웹게시판(?)이 아닌 더 효과적인 방법을 떠올렸다하더라도 저로선 구체적인 답을 해줄 생각이 전혀 안듭니다.
  • 2014/10/16 18:34 # 삭제 답글

    땡 틀리셨습니다.
    솔루션을 알려주고 싶지만 안알려줍니다.
    래퍼런스(남의 말)는 필요없다는 분이라서 알려줘도 소용없을 듯.
    혼자 잘해보세요 호호
  • Hide_D 2014/10/16 18:45 # 답글

    맥 어드레스는 '유지 되지 않습니다.'
    라우터를 거쳐서 밖으로 나가는 순간 맥 어드레스는 라우터의 맥 어드레스로 바뀝니다.
    반대의 경우도 마찬가지고.

    즉, 서버에 접속하는 '외부' 이용자의 맥 어드레스가 모두 똑같이 보인단 말입니다.

    제발 공부좀 하시라구요.
  • ff 2014/10/16 19:16 # 삭제 답글

    우리는 여기서 이 분이 네트워크에 대한 지식이 전무하단걸 알 수 있습니다
  • Kalaheim 2014/10/16 19:36 # 답글

    신청곡은 김유식의 맥어드레스.
  • ㅋㅋㅋ 2014/10/16 22:43 # 삭제 답글

    안쓴다고요 망한 프리챌보다 못한 오래된 게시판 소스. 게임하면서 헥스값 고치면서 아! 나도 게임 개발자다 라고 하는거랑 뭐라 다릅니까?
  • 여름눈 2014/10/17 03:07 # 답글

    안타까워서 몇가지 가능한 방법을 알려드리자면 현재로서는 브라우저 플러그인을
    만들어서 사용하는 방법밖에는 없습니다.

    1. Active-X 를 이용하는 방법.
    2. Java applet 을 이용하는 방법.
    3. 플래시를 이용하는 방법.
    4. C# 과 닷넷 서버(ASP)를 이용하는 방법

    등이 있으며 가장 쉽게 할 수 있는건 2번이 가장 쉽지만 사용자가 Java 플러그인을
    설치해야 하는 번거로움이 있고, 이용자들이 거부감을 느끼지 않고 하려면
    Adobe 사의 Air 를 이용하면 됩니다. Java 만큼이나 쉽지요.
    iFrame 속에 감춰놓으면 이용자들은 알수도 없구요
    (대부분 플래시 플러그인은 설치되어 있으니까요)

    닷넷서버와 C# 을 이용하는 방법은 일단 윈도우 서버설치부터 해결해야 하니까
    비용문제만 아니라면 그리 어렵지는 않을겁니다.

    하지만 위의 4가지 방법 모두 해킹이나 보안의 근본적인 해결 방법은 아닙니다.
    일단 맥어드레스는 언제든지 변조가 가능하고, 사용자의 맥어드레스를 알아봐야
    보안에는 그다지 큰 도움이 되지는 못합니다. 나중에 고소고발 할때나 유용할까요?

    사용제한을 어떻게든 걸어두려는 목적이라면 리눅스 서버라면 iptable 을 이용하는게 그나마
    현실적이고, 이내저내 귀찮다면 tcp wrapper 이용하는것도 괜찮은 방법입니다.
    윈도우 서버라면 IIS 단에서 사용자 인증 보안으로 해결하면 되구요.

    이용자들의 맥어드레스를 얻으려는 의도는 아마도 공유기에 물려있는 사용자들중 특정 몇몇 사용자만
    제한을 걸어두려는 목적일듯 한데 이게 별 소용이 없는게 해킹이나 부정 사용을 시도하려는 사람들은
    대게 맥어드레스 변조를 손쉽게 할 수 있는 사람들이라 맥어드레스 제한은 별다른 도움이 되지 못합니다.
  • 희망의빛™ 2014/10/17 06:27 #

    답변 잘 읽었는데요 근데 한가지, 이글루스도 그런 방법을 사용했을까요? 사실 전 이글루스 사용하면서 Java applet 이나 Air이 동작하고 있다는 사실은 전혀 눈치채지 못했습니다만... 그걸 어디서 확인할 수 있죠?
  • ... 2014/10/17 08:39 # 삭제

    지금은 안타깝지만 딱 세번만 더 주인장과 답글 주고 받으시면 상대하기 귀찮아 지실겁니다. 빨리 손떼세요!!
  • 여름눈 2014/10/17 21:45 #

    희망의빛™ // 왜 이글루스를 신경쓰시는지 모르겠군요!
    본인의 보안 문제 아니었던가요??

    궁굼하시다면 웹디버그툴을 돌려보시는게 시간을 절약하는 길입죠!
  • 희망의빛™ 2014/11/02 18:10 #

    여름눈님 답변 정말 감사드립니다. 말씀해 주신 정보들로 제가 검색을 해보았더니 관련 소스가 좀 보이더군요. 제가 다행히 플래쉬 액션스크립트를 좀 만질 줄 아는 관계로 고민해 보면 조만간 해당 기능을 구현할 수 있지 않을까 싶습니다. 다시한번 조언 감사드린다는 말씀을 드립니다. 그밖에 주변 지식들도 많은 도움이 되었습니다. 꾸벅~ 좋은 하루 되세요. ^^;
  • 총통 R 레이퍼 2014/10/20 18:29 # 답글

    그래서...이글루스 뚫어보시려고요?ㅋㅋㅋㅋㅋㅋ
  • 희망의빛™ 2014/10/20 20:42 #

    아니요. 이글루스가 같은 아이피 접속을 어떻게 차단했을까 그게 궁금해서요. 이글루스가 쿠키 해킹을 동일 아이피 접속에서 차단하던데 그 방법이 어떤 건지 궁금합니다.
  • 총통 R 레이퍼 2014/10/20 21:13 #

    학원에 다니든 전문학교를 다시 다니든지 해서 전문적으로 배우시면 됩니다.ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 아니면 이글루스에 가르쳐달라고 문의넣어보시던가요. 애시당초 맥어드레스로 구분한다는 미친 발상을 하시는 분께서 말해준다고 이해나 할 지는 의문입니다만?
댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.


웹로그 검색