SQL Injection, XSS, CSRF

Programming/Security | 2011. 12. 5. 02:07
Posted by 신이내린프로그래머

삽입(Injection)

oSQL 삽입 공격 :

-SQL문이 결과적으로 참이 될 수 있다면 SQL삽입공격에 사용되는 SQL문은 무엇이라도 상관없음.

-이러한 SQL삽입 공격은 로그인 뿐만 아니라 웹에서 사용자의 입력값을 받아 데이터베이스에 SQL문으로 데이터를 요청하는 모든 곳에 가능.

-방어법 : 사용자가 입력창을 통해서 SQL문을 완성하여 데이터베이스에 전송할 때 이입력값중에 특수문자가 존재하는지 여부를 필터링하는 것.

 

Cross-Site Scripting(XSS)

o웹 어플리케이션을 이용하여 다른 사용자에게 악성 코드를 보내는 데 사용

o대처방안 : 어플리케이션 차원에서 HTTP헤더, 쿠키, 쿼리 스트링, 폼필드, 히든 필드 등의 모든 인자들에 대해 허용된 유형의 데이터만을 허용하도록 한다.



• 
XSS(Cross-Site Scripting)

o웹 어플리케이션을 이용하여 다른 사용자에게 악성 코드를 보내는 데 사용

o대처방안 : 어플리케이션 차원에서 HTTP헤더, 쿠키, 쿼리 스트링, 폼필드, 히든 필드 등의 모든 인자들에 대해 허용된 유형의 데이터만을 허용하도록 한다.


CSRF(Cross Site Request Forgery 크로스 사이트 요청 변조)

oXSS에서 변형된 것으로 Javascript를 사용할 수 없는 상태에서도 공격이 가능하다.

사이트에서 제공하는 기능을 피해자의 웹브라우저에서 요청시키도록 하는 공격이다. 공격자의 악성코드를 읽은 피해자는 요청을 서버로 보내게 되고, 서버는 피해자의 권한으로 요청에 대한 처리를 하게 된다.

oCSRF공격의 예

-댓글 자동달기, 자동 친구등록, 자동회원정보변경, 도토리 자동기부

o방어법

-XSS와 동일하며 웹 클라이언트로부터 전달되는 세션토큰의 여부를 확인해야 하며, 단순히 세션토큰만을 이용한 권한 부여를 금지해야 한다. , 중요정보를 변경할 경우에는 eamil이나 sms와 같은 방법을 이용해 재인증을 요구해야 한다.

  

 

웹 서비스 취약점 : OWASP Top 10

Programming/Security | 2011. 12. 4. 18:18
Posted by 신이내린프로그래머
 

Transport 계층 프로토콜 : TCP / UDP

Programming/Security | 2011. 12. 4. 17:59
Posted by 신이내린프로그래머

* 전송 계층 프로토콜(Transport Layer Protocol)

- 서로 다른 호스트에서 동작하는 애플리케이션 프로세스 간의 논리적 통신(Logical Communication)을 제공하지만, Network Layer Protocol은 호스트 사이의 논리적 통신을 제공한다.

 

* 계층 별 패킷(Packet)을 일컫는 말

- 세그먼트(Segment) : 전송 계층

- 데이터그램(Datagram) : 네트워크 계층

- 데이터프레임(Data Frame) : 링크 계층

 

* 다중화(Multiplexing) & 역다중화(Demultiplexing)

- 다중화 : 세그먼트 데이터를 올바른 소켓으로 전달하는 작업.

- 역다중화 : 세그먼트를 생성하기 위해 각 데이터를 헤더 정보로 캡슐화하고,

그 세그먼트들을 네트워크 계층으로 전달하는 작업.

 

 

 

 

UDP

 

* UDP(User Datagram Protocol)

- L4에서 제공해야할 최소한의 서비스. , 프로세스 대 프로세스 데이터 전달과 오류 검출만을 제공하는

비연결형 전송 프로토콜.

 

* UDP의 특징

- 비연결형

- UDP가 제공하는 두 가지 서비스(최소한의 두 가지 전송 계층 서비스)

1. 프로세스 대 프로세스 데이터 전달.

포트 - 프로세스 매핑, 두 개의 포트 정보(근원지, 목적지)를 통해 소켓 식별.

2. 오류 검출 : 헤더에 오류 검출 필드를 포함함으로써 무결성 검사를 제공.

- Way HandShake 같은 연결 설정이 없다.

- 연결 상태가 없다. 따라서 패킷 오버헤드가 적다. (세그먼트 당 8byte)

- DNS, NFS, SNMP, RIP 등이 사용.

- 세그먼트 구조 : 포트번호(근원지, 목적지), 길이, checksum | payload

 

 

- 잘 알려진 포트(well-known port) : 0 ~ 1023 | HTTP : 80, FTP : 21

 

 

 

TCP

 

* TCP(Transmission Control Protocol)

- UDP가 제공하는 서비스 뿐 아니라 신뢰성 있는 데이터 전달과 흐름 제어 및 혼잡 제어를 지원하는

L4의 연결 지향형 프로토콜

 

* TCP의 특징

- 연결 지향형(실제로 연결된 것은 아니기에 이런 애매모호한 말을 사용)

- TCP가 제공하는 서비스(UDP가 제공하는 서비스 더하기)

1. 신뢰적인 데이터 전달

2. 흐름 제어(Flow Control : 수신자 버퍼 오버플로우 방지)

혼잡 제어(Congestion Control : 네트워크 내의 패킷 수가 과도하게 증가하는 현상 방지)

- 두 개의 포트 정보(근원지, 목적지)와 두 개의 IP 정보(근원지, 목적지)를 통해 소켓 식별

- Packet Overhead : 20byte

- 대부분의 L7 프로토콜(HTTP, FTP, SMTP, Telnet )이 사용.

- 전이중(Full-Duplex), 점대점(Point to Point) 서비스.

- 통신 시작 : 3 way handshake, 통신 종료 : 4 way handshake

 

 

 구분  TCP  UDP 
 연결 형태  연결 지향   비연결형 
 데이터 순서   순서 유지   순서 유지하지 않음 
 데이터 손실  손실 없음   손실 가능 
 흐름/혼잡/오류 제어  GBN, SR ARQ 사용   해당 제어기능 없음 
 패킷 오버해드  20Byte   8Byte 
 사용 예  대부분의 L7 프로토콜(HTTP, FTP, SMTP, Telnet 등)   DNS, NFS, SNMP, RIP 등 

 

블로그 이미지

신이내린프로그래머

카테고리

Category (22)
Programming (19)
... (1)