Computer >> 컴퓨터 >  >> 네트워킹 >> 네트워크 보안

웹 애플리케이션 보안 총정리: 기존 네트워크 보안 장치의 한계와 주요 웹 공격 유형

기존 네트워크 보안 장치가 웹 애플리케이션 공격을 차단하지 못하는 이유

방화벽, 라우터 ACL처럼 포트와 프로토콜 수준에서만 동작하는 전통적인 네트워크 보안 장치는 웹 애플리케이션 공격을 효과적으로 막지 못합니다. 핵심 이유는 웹 애플리케이션 공격이 대부분 HTTP 트래픽에 실려 전달되기 때문입니다. HTTP는 웹 서비스에 필수적인 통신 프로토콜이므로, 기존 장비는 이를 정상 트래픽으로 간주하고 내용을 깊이 있게 검사하지 않은 채 통과시키는 경우가 많습니다.

세션 토큰(Session Token)의 이해

세션 토큰이란?

세션 토큰은 로그인 후 웹 애플리케이션으로 들어오는 요청이 정당한 사용자에게서 온 것임을 확인하는 고유 식별 값입니다. 웹 서버는 사용자마다 무작위 문자열(random string) 형태의 세션 ID를 생성해 부여하고, 클라이언트는 이후 모든 요청에 이 값을 함께 전송합니다.

세션 토큰의 전송 방식

  • URL 파라미터: page.php?sid=1234567890 처럼 URL에 직접 포함하여 전송
  • 쿠키(Cookie): HTTP 요청·응답 헤더에 담아 전송하는 가장 일반적인 방식
  • 숨김 폼 필드(hidden form field): POST 요청 본문 안에 포함하여 전송

CSRF(사이트 간 요청 위조) 공격

CSRF(Cross-Site Request Forgery)는 피해자의 웹 브라우저 설정(세션 쿠키 등)을 그대로 활용해 사용자를 사칭하는 공격입니다. 공격자는 사용자가 이미 인증된 상태라는 점을 악용해, 사용자가 인지하지 못한 상태에서 자금 이체나 비밀번호 변경 같은 원치 않는 요청을 웹 서버로 전송하게 만듭니다.

중간자 공격(Man-in-the-Middle, MITM)

중간자 공격은 두 당사자 간의 정상적인 통신을 가로채고, 발신자에게 허위 응답을 위조해 보내는 공격입니다. 공격자는 두 통신 주체 사이에 끼어들어 트래픽을 몰래 도청하거나 변조할 수 있으며, 이를 통해 로그인 자격 증명 탈취, 통신 내용 염탐, 데이터 조작 등의 피해를 일으킵니다.

SQL 삽입(SQL Injection) 공격으로 가능한 행위

성공적인 SQL 인젝션은 매우 치명적인 결과를 낳습니다. 공격자가 수행할 수 있는 작업은 다음과 같습니다.

  • 데이터베이스에서 민감한 데이터 추출
  • 데이터 삽입(INSERT), 수정(UPDATE), 삭제(DELETE)
  • 데이터베이스 종료(shutdown) 등 관리자 작업 수행
  • DBMS 파일 시스템에 저장된 파일 열람
  • 운영체제(OS) 수준의 명령 실행

브라우저 확장 프로그램·플러그인·애드온이 보안 위협인 이유

확장 프로그램, 플러그인, 애드온은 외부 코드를 브라우저 환경에 직접 실행시킨다는 점에서 보안 위험 요소로 분류됩니다. 이들로 인해 브라우저에 새로운 취약점이 유입될 수 있으며, 공격자는 소프트웨어 취약점을 체계적으로 악용해 사용자가 평소 접근할 수 없는 리소스에 대한 권한을 획득할 가능성이 있습니다.

세션 고정(Session Fixation) 공격의 단계

공격자가 대상 웹 서버와 연결을 설정하여 정상적인 세션 ID를 획득하는 단계는 초기 세션 설정(initial session setup) 단계입니다. 참고로 세션 유휴 시간 초과(idle session time-out) 기능은 일부 웹 서버에서만 지원되므로, 세션 관리 정책을 별도로 강화해야 합니다.

XSS(교차 사이트 스크립팅) 공격

XSS는 웹 애플리케이션이 사용자 입력을 검증하지 않은 채 그대로 화면에 출력한다는 점을 악용하는 공격입니다. 신뢰할 수 없는 출처(주로 웹 요청)로 들어온 데이터가 안전 여부 검증 없이 동적 콘텐츠에 포함되어 사용자에게 전달되면, 공격자는 피해자의 브라우저에서 악성 스크립트를 실행할 수 있습니다.

마무리: 웹 애플리케이션 방어의 핵심

정리하면, 기존 네트워크 보안 장치만으로는 HTTP 기반의 웹 공격을 막기 어렵습니다. 입력값 검증과 출력 인코딩(XSS 방어), 매개변수화된 쿼리(SQL 인젝션 방어), CSRF 토큰 사용, HTTPS 적용, 안전한 세션 관리, 그리고 WAF(웹 애플리케이션 방화벽) 도입을 함께 구축하는 것이 웹 애플리케이션 보안의 핵심입니다.