목록보안 (19)
Shine's dev log

1. 온라인 광고 웹서핑을 하다보면 손쉽게 광고를 발견할 수 있다. 특히 광고를 보다보면 내가 얼마전에 쿠팡에서 찾아봤던 제품이라던지, 내가 평소에 관심있었던 내용들이 광고에 뜨는것을 보았던 경험이 있을 것이다. 이렇게 사용자를 타겟팅해서 광고를 하는 것은 모두 온라인 트래킹을 활용한 것인데, 이번에는 과연 이런 광고들이 나를 어떻게 식별하고 tracking 하는지 알아보자. 2. Publisher와 Advertiser 온라인 광고 시장에는 크게 Publisher와 Advertiser (provider)가 존재한다. PublisherPublisher는 사용자가 방문하려는 웹페이지의 주인이라고 보면 된다.예를 들어서, 사용자가 유튜브 사이트에 접속하면 거기서 publisher는 유튜브인 것이고, 뉴스 사..

1. Sniffing(스니핑) 이란? [snif : 코를 킁킁거리다] 라는 뜻에서 알 수 있듯이 스니핑은 네트워크 상에서 다른 컴퓨터들의 패킷 교환을 도청하는 행위이다. 스니핑과 비교되는 공격으로는 스푸핑(Spoofing) 이 있는데, 스푸핑은 실제 거짓 패킷을 전송하거나 패킷을 변조하는 등의 행위이다. 스니핑은 패킷을 변조하거나, 거짓 패킷을 송신하는 스푸핑 공격에 비해 조용히 도청만 한다는 점에서 소극적인 공격이라고 볼 수 있다. 2. ARP Redirect 오늘은 스니핑 공격의 대표적인 예시인 ARP Redirect를 알아보자. 그러려면, 먼저 ARP 에 대하여 알아봐야 할 것이다. 2.1. ARP ARP는 Address Resolution Protocol의 약자로, 네트워크 상의 IP주소(3계층)..

1. tcpdump란? 리눅스에서 제공하는 패킷 분석툴로, 네트워크 인터페이스를 통해 지나가는 패킷을 분석해준다. 특정 조건을 통해 더 쉽고 효율적으로 패킷 분석을 할 수 있다. 패킷 캡처를 해주는 대표적인 프로그램으로는 와이어샤크가 있는데, tcpdump도 잘 사용할 줄 안다면 리눅스 환경에서 패킷 분석을 잘 할 수 있다. 앞서 말했듯이 tcpdump에는 여러가지 옵션을 설정해줄 수 있다. 특정 포트에 해당하는 패킷만 필터링 해줄수도 있고, 더 보기 편하게 표시해주는 옵션도 있다. (자세한 옵션은 위키백과를 참조하자 : https://ko.wikipedia.org/wiki/Tcpdump) 2. tcpdump로 Telnet 로그인 정보 확인하기 자 이제 tcpdump가 패킷 분석툴인것은 알겠다. 이제 예..

1. 배너그래빙(Banner Grabbing) 이란? 우선 배너(Banner)란 Telnet과 같은 원격지 프로그램에 로그인할 때, 처음 뜨는 안내문을 말한다. 배너에는 컴퓨터의 운영체제 종류와 버전 등이 담겨있기 때문에, 공격자가 공격 대상의 기초 정보를 알아낼 수 있다. 기본적으로 /etc/issue.net 위치에 배너가 저장되어 있다. 위의 그림은 /etc/issue.net의 파일을 vi 편집기로 연 것이다. 운영체제의 정보가 담겨있는 것을 볼 수 있다. 2. 배너그래빙(Banner Grabbing)의 방어법 배너그래빙의 방어법은 단순하다. 그냥 배너를 바꾸면 된다. 원래는 운영체제의 기본 정보를 담고있었던 배너 (issue.net 파일)를 vi 편집기를 통해 위의 그림과 같이 바꾸었다. 이제 te..

1. 개요 https://github.com/godeastone/VotingProgram_with_C 사용자 인증을 진행할 때 사용하는 방법 중 하나가 바로 MAC(Message Authentication Code)이다. 본 프로그램은 기본적으로 하나의 서버에 여러명의 클라이언트들이 접속하여 투표를 진행할 수 있는 구조이다. 클라이언트가 서버가 생성한 투표 항목 중 하나를 선택하면, 선택 결과를 이용해 HMAC를 생성한다. 서버는 받은 결과로 만들어낸 HMAC과 클라이언트로부터 받은 HMAC을 비교하여 메시지 인증을 진행한다. 통신 – 소켓 통신 이용HMAC – openssl의 HMAC 관련 라이브러리 이용signal – 알람을 핸들링하는 signal handler를 이용해 투표 종료 3. 실행예시..

0. 개요 https://github.com/godeastone/Chatting-Program 자바를 활용하여 1:1로 통신할 수 있는 채팅 프로그램을 개발하였다. 일반적인 채팅 프로그램이 아니라 암호화를 적용한 채팅 프로그램이다. 서버와 클라이언트는 대칭키 암호화(AES)를 통해 서로의 메시지를 암호화/복호화 하여 통신한다. 이 때 사용되는 대칭키(비밀키)는 클라이언트가 생성하여 비대칭키 암호화(RSA)를 통해 서버와 공유한다. 전체적은 구조는 아래 그림과 같다. 1. 채팅 프로그램 구현 채팅 프로그램이라는 것이 두 명 이상의 사용자가 서로 문자열을 주고받는 행위라고 할 수 있다. 본 프로그램에서는 두명의 사용자가 채팅을 하는 상황을 가정하는데, 한 명은 Server이고 다른 한명은 Client이..