Computer/Computer Security
웹 보안 및 모바일 보안
by curious week
2025. 4. 1.
01. 웹 보안의 개요
웹 서비스 구조
웹 클라이언트 (브라우저)
↓ HTTP
웹 서버 ↔ 웹 애플리케이션 ↔ DB
보안 필요성
- 모든 구성 요소에서 공격 가능성 존재
- 특히 웹 애플리케이션 ↔ DB 사이에 취약점 많음
- 네트워크 구간은 SSL/TLS로 보호 가능하지만, 애플리케이션과 DB 보안은 별도 대책 필요
02. 웹 보안 위협 요소
1. SQL Injection (SQL 삽입 공격)
- 쿼리에 악성 SQL문을 삽입해서 인증 우회나 데이터 탈취
- 예시:
SELECT * FROM users WHERE id = '$id' AND pw = '$pw';
입력값에 ' OR '1'='1 넣으면 무조건 참이 돼서 인증 우회 가능
방어법
- Prepared Statement (매개변수 바인딩)
- 입력값 검증
- 최소 권한 DB 계정 사용
2. XSS (Cross Site Scripting)
- 악성 스크립트를 웹페이지에 삽입해, 피해자 브라우저에서 실행되도록 함
- 사용자의 쿠키 탈취, 세션 탈취 등 가능
공격 유형
| 저장형 |
게시판 글에 <script> 삽입 |
| 반사형 |
URL에 스크립트 포함 → 클릭 시 실행됨 |
방어법
- 입력값 정제 (<script> 제거, < → <)
- 출력 시 이스케이프 처리
- CSP(Content Security Policy) 설정
3. 접근제어 실패
- 숨겨진 URL(예: /admin)을 추측해서 접근하거나, URL에 사용자 ID를 직접 입력해 남의 정보 조회 가능
방어법
- URL 접근 제한
- 로그인/역할 기반 접근 통제
- 서버단에서 사용자 권한 체크 필수
4. 웹 서버 공격
- 테스트 파일이나 디렉토리 인덱스 등이 외부에 노출되어 공격 가능
- 보안 패치 미적용 → 취약점 노출
방어법
- 디렉토리 리스팅 비활성화
- 불필요한 포트/서비스 차단
- 정기 보안 패치 적용
03. 모바일 보안의 개요
환경
- 스마트폰, 패드, 노트북 등
- Wi-Fi, 5G 등 무선 네트워크 사용 → 도청 위험 높음
주요 보안 요구사항
- 인증 / 접근제어
- 데이터 보호 (암호화)
- 통신 보호 (무결성/기밀성)
04. 모바일 보안 기법 (무선 LAN 중심)
1. WEP (Wired Equivalent Privacy)
- 초기 Wi-Fi 보안 방식
- RC4 기반 스트림 암호 사용
- 키 분배 없음 → 암호키 고정 → 쉽게 깨짐
- 현재는 사용 금지 수준
2. RSN (Robust Security Network) — IEEE 802.11i
핵심 구성요소
| 기밀성/무결성 |
데이터 보호 |
TKIP, CCMP |
| 인증/키 교환 |
네트워크 접근 인증 |
802.1X + EAP |
3. TKIP (Temporal Key Integrity Protocol)
- WEP 호환 장비에서 사용할 수 있게 만든 과도기 보안 프로토콜
- 매 데이터 프레임마다 키 변경하여 보안 강화
- 하지만 구조상 완전한 대체는 불가
4. CCMP (Counter with CBC-MAC Protocol) ⭐️
- 802.11i의 표준 보안 방식
- AES 기반 CTR 모드로 기밀성
- CBC-MAC으로 무결성
- 현재 대부분의 Wi-Fi 보안의 표준
5. 802.1X
- 포트 기반 네트워크 접근제어
- 인증 서버(RADIUS 등)와 통신하여 접속 인증 후 네트워크 사용 허용
- 회사, 학교, 기관 Wi-Fi에서 주로 사용
6. EAP (Extensible Authentication Protocol)
- 802.1X에서 사용되는 인증 프레임워크
- 다양한 인증 방식 지원 (비밀번호, 인증서, OTP 등)
- 인증 후 공통 키(PMK) 공유 → 통신 보호
7. WPA / WPA2 / WPA3
| WPA (2003) |
TKIP 기반, 임시 대안 |
| WPA2 (2004~) |
CCMP + AES 기반, 가장 널리 사용 |
| WPA3 (2018~) |
복잡한 설정 단순화, 개인 네트워크 보안 강화, 192-bit 모드 추가 |
전체 구조
[웹 보안]
├─ SQL Injection → 입력 검증 + PreparedStatement
├─ XSS → 입력/출력 이스케이프
├─ 접근제어 → 권한 확인, 서버단 체크
└─ 서버 보안 → 패치, 디렉토리 비노출
[모바일 보안]
├─ WEP → 폐기
├─ WPA2 (CCMP + AES) → 현재 표준
├─ 802.1X + EAP → 네트워크 접근 인증
└─ WPA3 → 단순화 + 보안 강화
보충 예시: XSS 방어 코드 (Spring Boot)
String safeInput = StringEscapeUtils.escapeHtml4(userInput);
// <script>alert(1)</script> → <script>alert(1)</script>