정보보안(산업)기사

8일차 : 애플리케이션 보안

mamdragors 2026. 2. 25. 10:06

8일차부터는 PART 03 애플리케이션 보안으로 넘어갑니다. 실기 시험에서 가장 배점이 높고 까다로운 웹(Web) 보안의 서막을 여는 날입니다. 오늘은 HTTP 프로토콜의 특성과 가장 파괴적인 공격인 **인젝션(Injection)**의 원리를 파악하는 것이 핵심입니다.


1. 애플리케이션 기본 (SEC 07)

웹 통신의 기초인 HTTP를 정확히 알아야 취약점도 보입니다.

  • HTTP 메시지 구조: * Request: 메소드(GET, POST 등), URI, 헤더, 바디.
    • Response: 상태 코드(200 OK, 403 Forbidden, 404 Not Found, 500 Error), 헤더, 바디.
  • 주요 메소드: * GET: 데이터를 URL(쿼리 스트링)에 노출하여 전달. 캐싱 가능.
    • POST: 데이터를 Body에 담아 전달. GET보다 상대적으로 안전하고 대용량 전송 가능.
  • Cookie vs Session: 상태가 없는(Stateless) HTTP의 한계를 극복하기 위해 정보를 어디에 저장하는지(클라이언트 vs 서버) 차이를 명확히 하세요.

2. SQL Injection (SEC 08-01) - 실기 1순위

사용자의 입력값이 데이터베이스(DB) 질의문으로 해석되어 데이터가 유출되는 공격입니다.

  • 공격 원리: 입력창에 ' OR '1'='1' -- 와 같은 구문을 넣어 인증을 우회하거나 데이터를 뽑아냅니다.
  • 공격 종류:
    • Error-based: 고의로 에러를 유도해 DB 정보를 파악.
    • Blind SQLi: 참/거짓 응답의 차이나 응답 시간(Time-based)을 통해 한 글자씩 데이터를 추측.
  • 대응책 (매우 중요): * Prepared Statement (매개변수화 질의): 입력값을 단순 텍스트로 처리하여 실행 코드로 해석되지 않게 함.
    • 입력값 검증: 특수문자(', --, ;) 필터링.

3. XSS (Cross Site Scripting) (SEC 08-02)

공격자가 보낸 악성 스크립트가 사용자의 브라우저에서 실행되게 하는 공격입니다.

  • 종류:
    • Stored XSS: 게시판 등에 스크립트를 저장하여 불특정 다수 공격.
    • Reflected XSS: URL 파라미터에 스크립트를 넣어 클릭한 사용자만 공격.
    • DOM-based XSS: 브라우저 내 DOM 환경을 조작.
  • 목적: 세션 쿠키 탈취(Cookie Stealing), 페이지 변조.

4. CSRF & SSRF (SEC 08-03~04)

  • CSRF (Cross Site Request Forgery): 사용자가 자신의 의지와 무관하게 공격자가 의도한 행위(비밀번호 변경 등)를 서버에 요청하게 만듬. (사용자의 권한 이용)
  • SSRF (Server Side Request Forgery): 공격자가 서버를 대리인으로 삼아 내부 네트워크의 자원에 접근하도록 요청을 보냄. (서버의 신뢰 이용)

🔍 실기형 핵심 체크리스트

  1. SQL 인젝션 방어 최우선책: Prepared Statement 사용.
  2. XSS 방어책: 입출력 시 특수문자를 치환(HTML Encoding). 예: < 를 &lt;로 변경.
  3. CSRF 방어책: 요청 시마다 서버가 발행한 임의의 토큰(CSRF Token)을 확인하거나 재인증 요구.

✍️ 오늘의 1분 인출 연습:

  1. 웹 브라우저의 쿠키를 탈취하여 세션을 가로채는 공격의 명칭은?
  2. DB 쿼리문을 조작하여 인증을 우회하는 공격은?
  3. HTTP 응답 코드 중 '권한 없음(거부)'을 의미하는 코드 번호는?

오늘은 PART 03 SECTION 07~08-04를 정독하세요. 특히 SQL 인젝션의 공격 구문이 실제 쿼리문 안에서 어떻게 결합되는지 연습장에 한 번 써보시는 것이 큰 도움이 됩니다. 내일은 더 다양한 웹 취약점들을 살펴보겠습니다! 궁금한 점이 있으면 말씀해 주세요.