Creative Commons License

Microsoft .NET

닷넷!시작하기
닷넷! Ver 2.0~
닷넷!스킬업
웹개발
윈폼개발
실용모듈개발
Tip & Tech
하루 한 문법

Microsoft .NET 개발자들을 위한 공간입니다. 기초강의에서 부터 고급 기술 정보 및 팁등을 다루도록 하겠습니다.

.

웹개발

이제 웹 기반 응용개발 지식은 거의 필수적으로 요구되는 시대입니다. 구체적인 웹 사이트 개발은 아니더라도 거시적인 웹 기반 서비스에 대한 지식 배양을 위해 할 것이 참 많네요 ^^

[웹 보안 시리즈] 1. 웹은 보안에 취약하다? 왜???

작성자 : 박종명
최초 작성일 : 2008-06-20 (금요일)
최종 수정일 : 2008-06-20 (금요일)
조회 수 : 5401

우리는 흔히 이런 말을 자주 듣곤 또는 하곤 합니다.

 

웹은 보안에 취약해!!!

 

너무나도 일반화 되어 있는 이 말은 역으로 생각해보면 웹이 보안에 취약한 구조를 지녔기에 이런 말이
일반화 되었다고 봐도 될 터입니다.

 

그럼 도대체 왜 웹은 보안에 취약할까요?

 

막연히 공개된 포트(80)을 사용하기 때문인가요?

그렇다면 웹이 아닌 다른 통신 응용프로그램이 사용하는 포트(80 이 아닌) 왜 웹하고 다르나요?

어차피 서비스를 하려면 이 포트도 열려야 하는데..?

그리고 공개된 포트(80)를 통해 어떤 공격을 하나요?

 

도대체 어떤 형식의 공격이 유독 웹 응용프로그램의 보안성을 취약하게 하나요?
 

이제부터 이 모든 것을 시원히 답하기 위해 하나하나 짚어 볼 것입니다

우리 개발자들은 웹 응용프로그램을 아주 이쁘게(?) 만드는 기술도 있어야 하겠지만, 보안에 대한 이슈도
정확히 알고 있어야 합니다.

========================================================================================================
 

우선 웹의 흐름을 살펴 봅니다.



다들 잘 아시는 것처럼 클라이언트와 웹 서버는 잘 알려진 프로토콜인 HTTP 공개된 포트인 80 또는
443(SSL
통신 포트)을 이용해서 통신
을 합니다.

 

위 그림처럼 웹 서버의 앞 단에 방화벽이 있습니다.

이 방화벽에서는 원활한 웹 서비스를 위해 HTTP 프로토콜과 80 포트는 막지 않는 것이 일반적입니다.

 

바로 이것이 첫 번째 이유가 됩니다. 하나 짚고 넘어 갑시다

 

웹이 보안에 취약한 이유 1>
방화벽에서 조차 막지 못하는 HTTP 80 포트로 통한
악의적인 공격은 그대로 웹 서버에게 전달 된다.

, 허용 또는 오픈 된 포트로의 공격 시도가 문제 입니다

 

우선 하나 해결 했습니다 ^.^;

 

그렇다면 과연 80포트로 무엇이 들어오기에 보안에 취약할까요..

이것을 짚고 넘어 가기 전에 방화벽과 같은 침입감시,탐지,제어 시스템에 대해 간략히 알아 봅니다.

 

아래에는 클라이언트가 서버로 보내는 패킷의 구조를 나타냅니다.


 

위 그림처럼 클라이언트에서 서버로 전달되는 패킷에는 자신의 IP , Port 목적지 IP, Port 그리고 Data 가 포함됩니다. (이외에도 여러 정보들이 있습니다. TCP 통신관련 서적을 참고 하세요)

 

 

.. 그럼 알려진 침입감시,탐지,제어 시스템으로는 방화벽,IDS,IPS 등의 보안제품이 있는데 이 들은 과연 무얼 탐지 할까요?



위 그림에 빨간 직선으로 표시된 것처럼 이들은 일반적으로 소스 IP,Port, 그리고 목적지 IP,Port 에 대한 탐지 및 제어를 합니다. , 방화벽과 IDS, IPS 등의 보안 제품은 주로 네트워크 계층에서의 감시,방어를
수행하는 것입니다. Data 부분은 보지 않는다는 것입니다.

, 이들 보안 제품에서 위 패킷 중 Data 를 감지 하도록 할 수도 있긴 합니다.

방화벽의 경우 Data를 보게 하기 위해 프로토콜 별로 Application Gateway 를 따로 붙이면 됩니다. (ex: HTTP ? TCP 80 , FTP ? TCP 25 )

 

그러나 여기에도 한계는 있습니다.

Application Gateway가 설정되었더라 해도 Data 를 검사할 때 바이러스 코드, 웜과 같은 유해 코드들만 감지하고 차단 시킵니다. (각 장비들은 자신만의 유해 트래픽 DB 를 가지고 있습니다)

 

, 이런 유해 코드가 아닌 정상적인 값들은 탐지 하지 않는다는 것입니다.

웹으로 전달되는 웹 용 악성 코드(?)는 일반적인 바이러스나 웜과 같은 유해 코드가 절대로 아닙니다. 이들 보안 장비에서 판단하기에는 웹 용 악성코드는 지극히 정상적인 값으로 인식합니다.

(참고 : 일부 IPS 제품은 웹 방화벽 역할을 하는 것도 있습니다 ? 판매회사에 문의 하세요^^)

잘 알려진 SQL 인젝션이나 쿠키변조, XSS 등의 대표 웹 공격패턴에 실려 오는 데이터는 유해코드도 아니며 잘못된 값도 아닙니다.

 

여기서 또 하나 짚고 넘어 갑시다.

 

웹이 보안에 취약한 이유 2> 방화벽 , IDS, IPS 와 같은 보안 장비를 이용한 네트워크 계층에서의
보안으로는 어플리케이션 계층에 대한 공격을 차단할 수 없다.

 

아래 그림은 지금까지 설명한 내용을 도식화 한 것입니다



결론적으로 말하자면 웹 환경은 오픈 된 프로토콜과 포트상에서 통신이 이루어 지며 네트워크계층의 보안으로는 웹 응용프로그램 영역의 공격에는 의미가 없다는 것입니다.

 

그렇다면 과연 네트워크 보안 장비가 정상이라고 판단하는 Data 중 어떤 Data 웹 공격용 Data 로 사용되는 것일까요??  이 것을 알면 웹이 보안에 취약한 정확한 이유를 알 수 있을 것입니다.

이는 다음에 다시 다룹니다.

이름
비밀번호
홈페이지
LL <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요