본문 바로가기

분류 전체보기3720

728x90
웹 취약점 점검 시작하기 — OWASP Top 10 을 기준으로 한 점검 순서와 기록 방법 웹 취약점 점검을 처음 맡으면 도구부터 찾게 되지만, 도구보다 먼저 정해야 할 것은 순서와 기록 방법입니다. OWASP Top 10 은 '무엇을 볼 것인가'의 목록으로 쓰기 좋고, 여기에 '어떤 순서로 보고 어떻게 적는가'를 더하면 혼자서도 꽤 체계적인 점검이 됩니다. 이 글은 허가받은 자기 서비스(또는 계약된 범위)를 점검한다는 전제입니다. 허가 없는 점검은 하지 않습니다.0. 시작 전 — 범위와 계정을 서면으로어떤 도메인·기능이 범위인지, 어떤 등급의 계정을 몇 개 쓸지(일반 2개 이상·관리자 1개가 좋습니다), 점검 시간대, 운영 데이터 보호 방법(테스트 데이터만 생성·삭제)을 적어 합의합니다. 점검 중 문제가 생겼을 때 연락할 사람도 정합니다.1. 정찰 — 기능 목록 만들기로그인·가입·비밀번호 찾.. 2026. 6. 14.
접근 권한 검토(Access Review) 분기 운영 절차 — 누가, 무엇을, 왜 가지고 있는가 접근 권한은 늘어나기만 합니다. 부서를 옮겨도 예전 권한이 남고, 프로젝트가 끝나도 시스템 계정은 살아 있고, 급하게 받은 관리자 권한은 돌려주는 사람이 없습니다. 그래서 주기적으로 "이 권한이 아직 필요한가"를 묻는 절차가 필요하고, 이것이 접근 권한 검토입니다. 인증 통제 항목이기도 하지만, 실제 사고(퇴직자 계정·과다 권한)를 줄이는 효과가 가장 분명한 운영 활동이기도 합니다.1. 무엇을 검토하나 — 계정 × 권한 목록시스템마다 '누가 어떤 권한을 가졌는가'를 표로 뽑습니다. 사람 계정만이 아니라 서비스 계정·공용 계정·외주 계정도 포함합니다. 처음에는 핵심 시스템(인사·재무·고객정보·운영 서버·클라우드 콘솔)부터 시작하고, 범위를 분기마다 넓히는 편이 현실적입니다.2. 누가 검토하나 — 권한을 쓰.. 2026. 6. 13.
개인정보 처리방침, 빠지기 쉬운 항목 점검 — 담당자가 분기마다 보는 체크리스트 개인정보 처리방침은 '한 번 올려 두면 끝'인 문서가 아니라 실제 처리와 늘 같아야 하는 문서입니다. 그런데 서비스는 계속 바뀌고 방침은 그대로 남아, 점검을 나가 보면 방침과 실제가 다른 경우가 가장 흔합니다. 담당자가 분기마다 한 번 돌려 볼 항목을 정리했습니다. 법령의 세부 요건은 개인정보보호위원회의 작성 지침을 기준으로 삼고, 여기서는 '어디가 자주 어긋나는가'에 집중합니다.1. 수집 항목·목적 — 화면과 대조한다회원가입·주문·문의 화면에서 실제로 받는 항목을 하나씩 적어 방침의 수집 항목과 비교합니다. 기능이 추가되며 전화번호·생년월일·위치정보가 슬쩍 늘어난 경우가 많습니다. 자동으로 수집되는 항목(접속 기록, 기기 정보, 쿠키)도 빠뜨리지 않습니다.2. 보유기간과 파기'탈퇴 시까지'로만 적혀 .. 2026. 6. 12.
콘텐츠 보안 정책(CSP) 처음 적용하는 법 — 보고 모드에서 시작해 단계별로 조이기 CSP(Content-Security-Policy)는 "이 페이지는 어떤 출처의 스크립트·스타일·이미지만 실행·표시한다"를 브라우저에 알려 주는 응답 헤더입니다. 제대로 걸리면 XSS 로 주입된 스크립트가 실행 자체가 막히므로 가장 강력한 방어선이 됩니다. 문제는 처음부터 강하게 걸면 사이트가 바로 깨진다는 것. 그래서 보고 모드로 시작해 단계별로 조이는 순서가 정석입니다.1단계 — 보고 모드로 현황 보기Content-Security-Policy-Report-Only: default-src 'self'; report-uri /csp-reportReport-Only 는 아무것도 막지 않고 위반만 보고합니다. 브라우저 콘솔에도 뜨고, /csp-report 로 JSON 이 POST 됩니다. 이 보고를 일주일쯤.. 2026. 6. 10.
파이썬 requests 로 외부 API 안전하게 호출하기 — 타임아웃·재시도·시크릿·검증 requests.get(url) 한 줄은 잘 돌아가는 것처럼 보이지만, 운영에 들어가면 네 가지 문제가 차례로 찾아옵니다. 상대 서버가 응답을 안 줘서 스레드가 영원히 기다리고, 잠깐의 5xx 에 배치가 통째로 실패하고, 코드에 적힌 API 키가 저장소에 남고, 인증서 경고를 verify=False 로 덮었다가 중간자 공격에 열립니다. 아래는 그 네 가지를 막는 기본 틀입니다.1. 타임아웃은 선택이 아니다requests 는 기본 타임아웃이 없습니다. 연결 타임아웃과 읽기 타임아웃을 튜플로 주세요.resp = session.get(url, timeout=(3, 10)) # 연결 3초, 읽기 10초값은 상대 서비스의 평소 응답 시간에 여유를 더해 정합니다. '넉넉하게 60초'는 장애 때 60초씩 묶이는 .. 2026. 6. 9.
728x90
728x90