OWASP 7

Security Series를 마치며

이 글의 목적애플리케이션 보안 본편 19편을 마쳤다. 이 글은 시리즈 전체를 압축·연결하고 다음에 어디로 갈지 짚는 에필로그다.19편 동안 본 개념을 한 장 지도로 다시 본다앱 보안에서 뻗어 나가는 주제와 블로그 내 다른 시리즈를 연결한다보안 지식이 어떤 직업·역할과 맞닿는지 정리한다손으로 확인하는 방법과 읽을거리를 남긴다1. 19편이 만든 큰 그림앱 보안은 도구 하나가 아니라 신뢰 경계·주체·취약점·운영·인프라를 겹쳐 막는 일이다.Part핵심 질문기억할 키워드0 오리엔테이션무엇을 지키나CIA, 위협 모델, authn vs authz1 기초설계·전송·세션least privilege, TLS, cookie·hash2 인증·인가누구인가·무엇을JWT, OAuth·OIDC, RBAC·OPA3 OWASP어디가 뚫..

API 보안

학습 목표REST/JSON API에서 인증·인가 다음에 필요한 운영·경계 통제를 설명할 수 있다.rate limiting 알고리즘·키 단위·429 응답 설계를 설명할 수 있다.스키마 검증으로 Injection·mass assignment·타입 혼동을 경계에서 차단하는 이유를 설명할 수 있다.CORS가 브라우저 정책임을 설명하고 preflight·credentials 오설정 위험을 설명할 수 있다.API 게이트웨이·앱·WAF에서 defense in depth 역할을 구분할 수 있다.문제 상황공개 API 키 없이 호출 — 스크래퍼가 분당 수천 요청·DB 고갈POST /users에 {"role":"admin"} 추가 — mass assignment로 권한 상승 (11편)page=999999&size=10000..

OWASP Top 10

학습 목표SSRF(Server-Side Request Forgery)가 서버가 공격자 지정 URL을 요청해 내부망·메타데이터에 닿게 하는 방식을 설명할 수 있다.Security Misconfiguration의 대표 실패(디버그 노출·기본 계정·불필요 서비스)를 설명할 수 있다.Vulnerable and Outdated Components에서 의존성·이미지 CVE 관리·패치 흐름을 설명할 수 있다.OWASP Top 10 2021 전 항목이 시리즈 어디와 연결되는지 지도로 정리할 수 있다.Part 3 운영 가능한 체크리스트 관점으로 SSRF·설정·컴포넌트를 점검할 수 있다.문제 상황URL 미리보기 API ?url=http://169.254.169.254/latest/meta-data/ — 클라우드 IAM r..

Broken Access Control

학습 목표Broken Access Control이 OWASP Top 10 1위 취약점 클래스임을 설명할 수 있다.IDOR(Insecure Direct Object Reference)에서 객체 ID만 바꿔 타인 리소스에 접근하는 방식을 설명할 수 있다.수평(같은 role·다른 리소스)과 수직(낮은 role·높은 권한 API) 권한 상승을 구분할 수 있다.Mass assignment·missing function-level access control·forced browsing 패턴을 설명할 수 있다.서버 측 매 요청 검증·deny by default·자동 IDOR 테스트로 방어할 수 있다.문제 상황로그인한 일반 사용자가 GET /api/invoices/1001 → 200 + 남의 청구서invoice_id만..

XSS와 CSRF

학습 목표XSS(Cross-Site Scripting)가 브라우저에서 신뢰된 사이트 컨텍스트로 스크립트를 실행시키는 방식을 설명할 수 있다.Stored·Reflected·DOM XSS의 입력·출력 경로 차이를 설명할 수 있다.출력 인코딩·CSP·HttpOnly가 XSS 방어에서 맡는 역할을 설명할 수 있다.CSRF(Cross-Site Request Forgery)가 쿠키 자동 전송으로 위조 요청을 만드는 방식을 설명할 수 있다.SameSite·CSRF token·Origin 검증으로 CSRF를 막는 이유를 설명할 수 있다.문제 상황게시판 댓글에 — 결과 페이지에 반사Search: {{ q }} 템플릿 이스케이프 없음SPA에서 element.innerHTML = userBio — DOM XSSAPI 응답..

Injection

학습 목표Injection이 신뢰할 수 없는 입력이 인터프리터(SQL·OS·LDAP)에 명령으로 섞일 때 발생함을 설명할 수 있다.SQL injection에서 문자열 연결·동적 쿼리가 쿼리 구조를 바꾸는 방식을 설명할 수 있다.Prepared statement(파라미터 바인딩)로 데이터와 코드를 분리하는 이유를 설명할 수 있다.Command injection과 allowlist·API 대체 실행 방어를 설명할 수 있다.최소 DB 권한·입력 검증·ORM이 defense in depth에서 맡는 역할을 설명할 수 있다.문제 상황로그인 username에 ' OR '1'='1 — 전 사용자 로그인쿼리가 문자열 붙이기로 만들어짐검색 q=; DROP TABLE orders;--` — 백업 없으면 종료앱 DB 계정에..

보안 오리엔테이션

학습 목표CIA(기밀성·무결성·가용성)를 설명할 수 있다.인증(Authentication)과 인가(Authorization)를 구분할 수 있다.위협 모델링의 기본 질문(STRIDE 개요)을 설명할 수 있다.애플리케이션 보안에서 자주 마주치는 위협 유형을 나열할 수 있다.19편 로드맵을 보고 학습 순서를 잡을 수 있다.1. 애플리케이션 보안이란?보안(Security)자산을 위협으로부터 보호하는 활동애플리케이션 보안은 웹·API·백엔드 계층에 초점자산(Asset)사용자 데이터, 결제 정보, API 키, 비즈니스 로직무엇을 지킬지 먼저 정해야 통제가 설계된다위협(Threat)자산에 해를 끼칠 수 있는 의도·사건버그와 다름 — 악의적·오용 가능한 공격 경로이 시리즈 범위네트워크 방화벽·물리 보안 전체가 아니라 ..