본문 바로가기

Security

No.3 OWASP Top 10 2010 한글판 카페 > SecurityPlus | mirrk http://cafe.naver.com/securityplus/15784 안녕하세요. SecurityPlus입니다. OWASP Top 10 2010 한글판을 공개합니다. 지난 2010년 4월 19일에 OWASP에서 발표한 OWASP Top 10 2010 영문판에 대한 한글 번역입니다. 다운로드: OWASP Top 10 2010 한글판 금번 한글 번역을 발표하면서, 지금까지 간과되었던 OWASP Top 10 2007 대비 2010년도에서 달라진 점을 다시 한 번 강조합니다. 기존 OWASP Top 10 2007년판을 포함한 이전 버젼은 취약점과 취약점에 대한 대응을 중심으로 한 정보전달이 위주였으나, 금번 2010년판에서는 취약점이 아닌 위험 및 영향 평가 개.. 더보기
No.2 웹 service란 ? 이번에는 웹 서비스에 대해 알아보겠습니다. 앞에서 말했듯 웹 서비스에 쓰이는 언어로는 정적인 언어 : HTML 동적인 언어 : ASP , JSP, PHP 이 있습니다. (1) HTML HTML은 가장 단순한 형태의 웹 언어로서, 웹 서버가 HTML문서를 저장하고 있다가 클라이언트가 요청하는 HTML 페이지에 대한 문서를 클라이언트에 전송해줍니다. 이런 방식이 바로 정적인 방식입니다. 저런 식의 순서대로 html언어 처리가 됩니다. 하지만 저런식의 html언어는 서버에서 제공된 html문으로 이루어진 웹 페이지이기 때문에 상대방의 취향과 변화에 적응할 수 없고, 새로운 것을 추가하려고 해도 시간과 비용이 많이 걸리게 됩니다. 허나. 보안에서는 매우 좋습니다 (2)SSS (Server Side Script).. 더보기
No.1 HTTP에 대하여 . . 늦게 올리는데 밑에 XSS를 이해하는데 기초를 두기 위해 올려봅니다. HTML과 웹 service에 대해 알아볼께요 인터넷에서 가장 많이 쓰이는 프로토콜이 HTTP입니다. 그래서 웹서버를 HTTP서버라고도 많이 부르는데요 이러한 웹서버를 구현하기 위해 필요한 웹 언어가 있습니다 정적인 언어 : HTML 동적인 언어 : ASP, JSP ,PHP 이 있습니다 그럼 HTTP즉 웹서버에서의 처리 요청 단계를 알아봅시다. 위에 발 그림을 보면서..^^.. 1번 단계 : 일단 client가 웹 브라우저를 이용해 서버에 연결을 요청합니다. 연결 요청을 받은 서버는 클라이언트에 대해 서비스를 준비합니다 2번 단계 : 클라이언트는 읽고자 하는 문서를 서버에 요청합니다 3번 단계 : 서버는 웹 문서중 클라이언트가 요청한 .. 더보기
No.6 메일을 이용한 IP 추적 이번에는 간단한 메일을 이용한 IP 추적에 대해서 알아보겠습니다. 실제 메일의 형식은 MIME형식이 쓰입니다. 우리들은 대부분 메일에서 첨부파일, 첨부내용 , 발신자 등의 정보만을 보지만 좀더 관심을 가지고 자세히 들여다보면 많은 정보를 얻을수 있습니다. 살펴보겠습니다 1. 메일의 내용 메일은 크게 헤더와 내용으로 나누어집니다. 일반적으로 내용은 우리가 알고있는 첨부파일, 첨부내용 등이고 헤더가 바로 우리가 확인할 사항입니다 헤더의 구조는 Data , From, Date, To, CC(부 수신인), BCC(주, 부 수신인에게 알리지 않은 수신인) received by (경유한 시스템 이름과 IP주소) 가 포함되고 우리가 가장 중요하게 봐야될것은 바로 received by입니다. 2. 실습 실습해보겠습니다.. 더보기
No.5 Whois 서버이용 정보획득 이번에는 Whois서버를 이용한 기본 정보 획득에 대해서 알아 볼려고 합니다. (아메리칸서버) Whois 서버의 데이터베이스 검색 : http://whois.arin.net/ui (한국) Whois 서버의 데이터베이스 검색 : http://whois.krnic.net/kor/ 위의 사이트에서 예를들어 naver를 입력한후 쿼리 전송을 하면 도메인 이름, 등록인, 등록인 주소, 등록인 우편번호 책임자, 책임자 전자우편, 전화번호, 등록일 ,최근 정보 변경일 사용 종료일, 등록대행자 와 더불어 차수에 따른 네임서버의 정보등이 나옵니다 이런 정보들을 이렇게 쉽게 얻을수 있다는 쉬우면서도 정말 간편한 방법입니다. [출처] No.5 Whois 서버이용 정보획득|작성자 Securely 더보기
No.4 Network Packet분석 이번엔 네트워크 패킷분석 해보겠습니다. 툴로는 wireshark를 썼습니다. 인터페이스장치잡고 캡쳐 시작하는건 제외하겠습니다. 이번엔 간단히 무엇을 나타내는지만 보겠습니다. 1. Network Interface Layer or Ethernat 계층 위를 보시면 파랗게 칠해진 부분이 보이시죠? 캡쳐된 값은 HEX즉 16진수로 표현이 됩니다. 그러므로 하나의 값은 4비트에 해당이 되게 되구요 그럼 알아보겠습니다 가. Destination MAC Address(48비트) : 00 26 66 9d 8a 08 처음 00 26 66 은 제조회사정보이고, 뒤의 9d 8a 08은 제품의 고유번호 입니다. 즉 , 목적지는 00 26 66값을 갖는 제조회사의 9d 8a 08이라는 제품입니다. 나. Source MAC Ad.. 더보기
No.3 세션 하이제킹 ( Session Hijacking) 여기서 말하는 세션(Session)이란? '사용자와 컴퓨터, 또는 두 대의 컴퓨터간의 활성화된 상태'를 말합니다. 우리가 이번에 알아볼 것은 TCP 세션 하이제킹 입니다. TCP 세션 하이재킹은 TCP가 가지는 고유한 취약점을 이용해 정상적인 접속을 빼앗는 방법입니다. TCP는 클라이언트와 서버간 통신을 할때 패킷의 연속성을 위해 각각 시퀀스 넘버를 사용 합니다. 이때 시퀀스 넘버가 잘못되면 바로잡기 위한 작업을 하는데, TCP 세션 하이제킹은 이때 시퀀스 넘버를 위조해 연결된 세션에 혼란을 준 뒤 자신이 끼어들어 가는 방식입니다. 기본적인 단계를 알아봅시다 1. 클라이언트와 서버 사이의 패킷을 통제합니다. 그후 ARP 스푸핑을 통해 클라이언트와 서버 사이의 통신 패킷이 모두 공격자를 지나가게 하도록 합.. 더보기
No.2 Sniffing OR Spoofing Sniffing과 Spoofing에 대해 알아 보겠습니다!      Sniffing 즉, 스니핑 공격은 여러 가지 의미로 쓰이고 있습니다. 도청 , 전화선이나 UTP에 태핑을 해서 전기적 신호를 분석해 정보를 찾는등 여러 분야에 걸쳐 쓰이지만 저희가 주로 쓰는 곳은 유선 랜을 통한 Sniffing 공격입니다. 기본적으로 네트워크에 있는 모든 system은 설정된 IP주소와 MAC값을 가지고 있습니다. 통신할때 네트워크에서는 이 두가지 값을 가지고 자신의 버퍼에 저장을 할지 안할지 결정 합니다. 다시말해서 저 IP(3계층) , MAC(2계층)의 값이 자신의 것과 일치 하지 않으면 무시한다는 것입니다. 다시 말해 , 어떤한 PC로 패킷이 전달될시 2계층과 3계층의 필터링을 거치게 되는데 물론, 스니.. 더보기
No1. 서비스 거부 (Dos) 공격과 방어 서비스 거부 공격 (Dos) 공격 기법과 방어들의 알아봅시다. 물론, 여기서 말하는 기법은 옛날 기법이므로 통하는것보다 안되는것이 더 많습니다. 하지만 이 기법에서 응용한 공격법들이 더욱 많이 발전되고 있으니 기본을 배운다는 생각으로 한번 봅시다. 가. Ping of Death 위에 말만 들어도 어떤 공격법인지 아시겠죠? ping명령어로 네트워크를 마비시키는 것입니다. 공격pc가 피해pc에게 큰 크기의 데이터를 잘개 쪼개 전송하는 네트워크의 특성을 이용 즉 , ping 명령을 이용해 피해pc는 대량의 작은 패킷을 수신해 네트워크가 마비가 되는 것입니다. 방어 : 이 공격기법은 방화벽에서 ping이 사용하는 protocol인 ICMP를 차단하시면됩니다. 하지만 이 공격기법은 응용되기 쉬워 아직도 유효한 기.. 더보기
No.3 Format 스트링 (1) Format 스트링기법 포맷 스트링은 발신자 즉, 보내는 사람을 속여서 받는 사람으로 하여금 받는 파일의 신뢰를 가게 하는 방법입니다. 예를 들어 봅시다. abc.c #include main() { char *buffer = "heeman"; printf ("%s\n", buffer); } 위에서 %s 와 같은 문자열이 바로 포맷 스트링입니다. 이러한 포맷 스트링 문자를 이용하여 작성하면 취약점이 발생되지 않지만. 포맷 스트링 문자를 이용하지않고 printf와 같은 함수를 이용하면 문제가 발생됩니다. abcd.c #include main() { char *buffer = " heeman\n"; printf(buffer); } 위와 같이 짜게되면 보안상 매우 위험하게 됩니다. 위의 예제를 조금 변형.. 더보기
No.2 Buffer OverFlow Attack (1) Buffer OverFlow Attack 버퍼 오버플로우에 대해 알아 보겠습니다. => 프로그래머가 버퍼 오버플로우에 취약한 함수를 쓰면 매우 간단히 취약점이 발견됩니다. 예를 들어봅시다. abc.c => abc라는 이름으로 c로 코딩된 파일입니다. int main (int argc, char *argv[1]) { ----------------> 1번 char buffer[10]; ----------------> 2번 strcpy (buffer, argv[1]); ---------------> 3번 printf ("%s\n", &buffer); ----------------> 4번 } 1번 : argc는 실행되는 프로그램의 인수 갯수입니다. *argv[]는 포인터 배열로서 인자로 입력되는 값에 번.. 더보기
No.1 Process OR SetUID process 권한과 SetUID에 대해 알아보아요. (1)SetUID 란? SetUID란 유닉스라 리눅스 계열에서 권한이 rwsr-xr-x 등의 식으로 되있는 것입니다. 즉 , root유저의 실행권한이 x가 아닌 s로 설정 되있는 것을 말합니다. 이때 이 SetUID 파일을 실행하면 그것이 일반 유저든 root 권한의 유저든 파일 소유자의 권한을 갖습니다. 즉 해당파일이 root 이면 그 파일은 누가 실행하든 파일이 실행되는 process 실행시간동안 파일 소유자인 root권한이 되는 것입니다. 즉 SetUID 일때 위의 그림 처럼 이해하자 즉 , test 라는 파일의 소유자가 root이고 이것이 SetUID 파일일 경우에 실행을하면 일반유저든 어떤 유저든 그 process가 올라와 있는 동안에는 ro.. 더보기