[CS] 웹 보안(Web Security)과 주요 취약점

2024. 11. 25. 00:04·CS
728x90
728x90

핵심 보안 원칙

1) 기밀성 (Confidentiality)

   - 민감한 데이터가 인가되지 않은 사용자에게 노출되지 않도록 보호

   ex) 암호화된 통신(SSL/TLS)을 사용해 데이터 전송 보호

 

2) 무결성 (Integrity)

   - 데이터가 전송 중 손상/변경되지 않도록 보장

   ex) 데이터 해시 및 디지털 서명 활용

 

3) 가용성 (Availability)

   - 서비스가 항상 정상적으로 사용 가능하도록 보장

   ex) DDoS 방어와 서버 장애 대비

 

 


HTTPS의 중요성

1) 웹사이트의 무결성 보호

   - 침입자가 웹사이트와 사용자 간의 통신을 암호화함

      → 침입자가 조작하지 못하도록 방지함

   - 악의적인 공격자 또는 불법적인 광고 삽입을 차단함

 

2) 사용자의 개인 정보 보호

   - 웹사이트와 사용자 간의 통신을 암호화하여, 사용자의 개인 정보나 활동이 노출되지 않도록 보호함

     (HTTP 요청인 경우 사용자의 활동 정보를 쉽게 추적할 수 있음)

 

3) SEO 점수 향상

   - 검색 엔진은 HTTPS를 사용하는 웹사이트를 우선시함

      → HTTPS를 사용하면 검색 결과에서 더 높은 순위를 얻을 수 있음

 

 


주요 보안 취약점

1) Zero-day 

   - 취약점이 공개되기 전에, 공격자가 이를 발견하여 악용하는 공격

   - 보안 패치가 발표되기 전까지 방어하기 어려움

   - 악성코드나 해킹 도구를 사용해 시스템에 침입하거나 데이터를 탈취함

 

2) Vulnerable packages (취약한 패키지)

   - 외부 패키지/라이브러리가 보안 취약점을 내포하고 있을 때 발생하는 위험

   - 패치가 늦어지면 시스템 전체에 영향을 미칠 수 있음

 

3) XSS (Cross Site Scripting)

   - 웹사이트에 악성 스크립트를 삽입하여, 사용자의 브라우저에서 실행시키는 공격

      → 사용자의 브라우저에서 공격자가 원하는 작업을 수행할 수 있게 됨

   - 사용자 세션 탈취

   - 클릭을 유도하여 악성 사이트로 유도

 

4) SQL Injection (SQL 삽입)

   - 사용자의 입력값을 필터링하지 않고 SQL 쿼리에 직접 포함시킬 경우 발생하는 공격

   - 공격자가 쿼리를 변조해 DB의 민감한 데이터를 유출/삭제할 수 있음

   - 이를 방지하기 위해, 반드시 파라미터화된 쿼리나 바인딩된 변수를 사용해야 함

-- 예시
SELECT * 
FROM MEMBER 
WHERE ID = @ID

-- 여기서 @ID를 필터링하지 않고 문자열로 그대로 받을 경우
-- "123; DELETE FROM MEMBER" 와 같은 형태의 문자열이 들어가게 되면

SELECT *
FROM MEMBER
WHERE ID = 123; DELETE FROM MEMBER

-- 와 같은 쿼리가 실행되며 MEMBER 테이블의 전체 데이터가 삭제됨

5) Credential Leaks (자격 증명 유출)

   - 사용자 인증 정보가 노출/유출되어 계정 탈취 등의 사고가 발생하는 문제

   - 비밀번호 또는 API 키가 암호화되지 않거나 잘못된 보안 설정으로 인해 유출되는 경우

 

6) PoLP (최소 권한 원칙, Principle of Least Privilege)

   - 사용자가 시스템에서 수행할 수 있는 작업의 범위를 최소화하여 권한을 설정하는 보안 원칙

   - 공격자가 침입하더라도 피해를 최소화할 수 있음

 

7) DDoS (분산 서비스 거부 공격, Distributed Denial of Service)

   - 여러 대의 시스템을 이용해 특정 서버/네트워크를 과부하 상태로 만들어 서비스를 방해하는 공격

   - 대량의 트래픽을 발생시킴

      → 서버의 리소스를 고갈시켜 서비스가 중단되도록 함

 

   ※ DoS (서비스 거부 공격, Denial of Service)

      - 네트워크/시스템의 가용성을 방해하는 공격 유형

      - 서비스의 정상적인 동작을 방해하여 시스템을 과부하/차단시키려는 시도

      - 단일 시스템의 공격 → DDoS에 비해 출처를 탐지하고 방어하기가 훨씬 쉬움

 

 

320x100
반응형
저작자표시 비영리 변경금지 (새창열림)

'CS' 카테고리의 다른 글

[CS] CI/CD  (3) 2024.11.27
[CS] 해시 알고리즘 (Hash Algorithm)  (0) 2024.11.26
[CS] 캐싱 유형  (0) 2024.11.24
[CS] 백엔드 개발자 로드맵 따라가기 (진행중)  (0) 2024.11.23
[CS] 캐싱 전략  (0) 2024.11.21
'CS' 카테고리의 다른 글
  • [CS] CI/CD
  • [CS] 해시 알고리즘 (Hash Algorithm)
  • [CS] 캐싱 유형
  • [CS] 백엔드 개발자 로드맵 따라가기 (진행중)
스응
스응
    반응형
    250x250
  • 스응
    이서영의 개발 블로그
    스응
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (385)
      • Java (134)
        • Base (54)
        • Spring Boot (37)
        • JSP (16)
        • Swing (GUI) (20)
        • Design Pattern (7)
      • C# (13)
      • PHP (18)
      • SQL (27)
      • Vue.js (9)
      • Tailwind CSS (4)
      • TypeScript (7)
      • HTML & CSS (27)
      • JavaScript (26)
      • jQuery (10)
      • Android (3)
      • - - - - - - - - - - - - - - (0)
      • Hotkeys (5)
      • CS (30)
      • IT Notes (13)
      • Error Notes (17)
      • Team Project (24)
        • Airlines Web Project (12)
        • University Web Project (6)
        • Strikers 1945 GUI Project (6)
      • My Project (18)
        • Library Web Project (8)
        • Pet Shopping Mall GUI Project (10)
      • etc. (0)
  • 블로그 메뉴

    • Home
    • Write
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    zapier
    C#
    SpringBoot
    Android
    SWAGGER
    SQL
    tailwindcss
    오블완
    티스토리챌린지
    Wordpress
    vuejs
    jsp
    Swing
    SEO
    Hotkeys
    cs
    http
    php
    jQuery
    CSS
    Codeigniter
    java
    git
    HTML
    js
    typeScript
    개발일지
    면접
    errorNote
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
스응
[CS] 웹 보안(Web Security)과 주요 취약점
상단으로

티스토리툴바