본문 바로가기

분류 전체보기

(678)
AWS IAM 정책의 Resource vs NotResource AWS IAM 정책의 Resource vs NotResource: 보안 설계 관점에서 완전 정리AWS IAM 정책을 설계할 때 보통은 어떤 리소스에 어떤 작업을 허용할지를 정의합니다. 이때 주로 사용하는 키가 Resource입니다. 그러나 그 반대 개념인 NotResource 역시 존재하며, 특정 리소스를 제외한 모든 리소스에 대한 제어가 필요한 경우 사용됩니다.문제는 NotResource를 잘못 사용하면 의도하지 않은 리소스 전체 허용 또는 거부로 이어질 수 있다는 점입니다. 이 글에서는 두 키워드의 차이, 용도, 보안상 유의점, 실전 설계 전략을 정리합니다.1. 기본 개념 비교 항목 Resource NotResource 제어 대상 ..
AWS IAM 정책의 Action vs NotAction AWS IAM 정책을 설계할 때 자주 마주치는 키워드 중 하나가 Action입니다. 하지만 이와 짝을 이루는 개념인 NotAction은 의외로 많은 사람들이 잘 이해하지 못하거나, 오해한 채 사용하는 경우가 많습니다. 이 글에서는 Action과 NotAction의 개념적 차이부터 실무 설계 시 주의할 점, 보안 사고로 이어질 수 있는 잘못된 사용 사례까지 정리합니다.1. 기본 개념의미허용 또는 거부할 특정 작업을 명시허용 또는 거부에서 제외할 작업을 명시작동 방식이 작업들을 허용/거부한다이 작업들을 제외한 나머지를 허용/거부한다주 사용 위치Effect: Allow 또는 Deny주로 Effect: Deny에서 사용전형적 목적명시적 권한 부여 또는 제한범용 거부 정책에서 특정 예외 허용 시 사용 2. 예제 ..
AWS IAM 정책: 리소스 기반 정책 vs ID 기반 정책 비교 정리 AWS의 보안 정책을 설계하다 보면 반드시 마주치는 두 가지 개념이 있습니다. 바로 리소스 기반 정책(Resource-based policy) 과 ID 기반 정책(Identity-based policy) 입니다. 표면적으로는 비슷한 JSON 포맷을 사용하지만, 정책의 적용 대상, 제어 방향, 보안상 고려사항은 완전히 다릅니다. 이 글에서는 두 정책의 차이점을 실무 관점에서 정리하고, 어떤 상황에서 어떤 정책을 사용해야 하는지 전략적으로 정리해보겠습니다.1. 정책의 적용 대상 적용 대상IAM 사용자, 그룹, 역할AWS 리소스(S3, Lambda, KMS 등)주체(Principal) 명시필요 없음 (정책을 부착한 엔터티가 주체)필요함 (누가 접근 가능한지를 명시해야 함)접근 제어 방향"이 사용자가 어떤 리소..
AWS IAM 정책에서 Principal과 NotPrincipal의 차이 AWS IAM 정책을 설계할 때 종종 마주치는 두 키워드가 있습니다. 바로 Principal과 NotPrincipal입니다. 얼핏 보면 반대 개념처럼 보이지만, 실제 의미와 작동 방식은 그보다 훨씬 더 복잡하고 보안상 중요한 차이를 내포하고 있습니다. 이 글에서는 두 키워드의 기능적 차이뿐만 아니라 보안상 오용 시 발생할 수 있는 리스크까지 짚어보겠습니다.1. Principal: 접근을 명시적으로 허용/거부할 대상 지정Principal은 정책의 대상 주체(subject) 를 지정합니다.주로 리소스 기반 정책(Resource-based policy) 에서 사용됩니다.이 필드는 누가 이 리소스에 접근 가능한가를 정의합니다.예시{ "Effect": "Allow", "Principal": { "A..
Cosign: DevSecOps에서 컨테이너 서명을 검증하는 도구 DevSecOps 환경에서 가장 간과되기 쉬운 영역 중 하나는 바로 ‘컨테이너 이미지의 신뢰성 검증’입니다.코드 스캔, 취약점 진단, SCA까지 모두 자동화되어 있더라도, CI/CD 파이프라인에서 실제로 배포되는 컨테이너 이미지의 무결성과 출처를 검증하지 않는다면 공급망 공격에 쉽게 노출될 수 있습니다.이러한 요구에 대응하기 위한 오픈소스 도구가 바로 Cosign입니다.1. Cosign이란?Cosign은 Sigstore 프로젝트에서 개발한 컨테이너 이미지 서명 도구입니다.컨테이너 이미지에 디지털 서명을 부여하고, 그 서명을 OCI 레지스트리에 안전하게 저장하고 검증할 수 있도록 지원합니다.핵심 목적은 다음과 같습니다.컨테이너 이미지에 디지털 서명 부여이미지의 위변조 여부를 검증신뢰할 수 있는 배포 프로세..
DevSecOps 실무에서의 암호화 적용 사례 각 데이터 유형과 보안 목적에 따라 암호화 기술이 실무에서 어떻게 적용되는지를 아래에 정리하였습니다.2-1. 인증정보 및 비밀번호 보호사용자 비밀번호로그인 시스템무결성, 인증Bcrypt, Argon2 (비가역 해시)API Key, SecretGitLab CI, Vault 등기밀성AES, Vault, KMSGitHub Token 등환경변수 저장기밀성TLS, KMS 암호화 설명:비밀번호는 단방향 해시로 저장하며, API 키나 비밀 정보는 HashiCorp Vault나 AWS KMS 등에서 암호화 저장 및 관리하는 것이 권장됩니다.2-2. 개인정보 및 민감정보 보호개인정보 (주민번호 등)DB 컬럼기밀성, 규제 대응AES-256, TDE로그 내 개인정보로그 시스템기밀성마스킹, 필터링세션/Cookie 정보Web ..
안전한 암호화 기법 정리 암호화는 데이터를 보호하는 마지막 방어선입니다.단순히 암호화 알고리즘만 사용하는 것이 아니라, 키 관리, 모드 선택, 인증까지 포함한 전체 체계가 안전해야 합니다.1. 분류 체계암호 방식대칭키 (Symmetric)동일한 키로 암호화/복호화 공개키 (비대칭, Asymmetric)공개키로 암호화하고, 개인키로 복호화기능 목적기밀성 (Confidentiality)암호화 자체 무결성 (Integrity)위변조 방지 (예: HMAC) 인증 (Authentication)신원 보장 (예: 서명, TLS handshake)데이터 범위정지 데이터 (At Rest)저장된 파일/DB 전송 중 데이터 (In Transit)네트워크 통신 사용 중 데이터 (In Use)메모리 상 암호화 (Homomorphic 등 고급 영역) 2..
Nuclei: 템플릿 기반 취약점 스캐너의 표준 Nuclei는 ProjectDiscovery에서 개발한 템플릿 기반 고속 취약점 스캐너입니다.신속한 HTTP 요청 기반 보안 테스트가 가능하며, 사용자 정의 템플릿을 통해 다양한 취약점, 정보 노출, 오탐 없는 정밀 검사를 자동화할 수 있습니다.1. 핵심 개요 목적HTTP, DNS, TCP, 파일 등 다양한 대상에 대한 고속 취약점 탐지방식YAML 템플릿 기반의 스캐닝 자동화주요 장점속도, 확장성, 커뮤니티 활발, DevSecOps 통합 용이개발자ProjectDiscovery사용 대상웹 애플리케이션, API, 인프라 구성 노출, 미스컨피규레이션 등 2. 동작 구조Nuclei는 기본적으로 다음 요소로 구성됩니다:Target: 스캔할 호스트 또는 URLTemplates: 취약점 탐지 로직을 정의한 YAML ..
Trivy: DevSecOps 보안 자동화의 핵심 취약점 스캐너 Trivy는 Aqua Security에서 개발한 경량 오픈소스 취약점 스캐너입니다.컨테이너 이미지, 코드, 패키지, IaC 템플릿 등 다양한 아티팩트를 스캔하여 보안 취약점 및 잘못된 설정을 탐지합니다.1. 핵심 특징설치/사용Go 기반 단일 바이너리, Docker 이미지로도 사용 가능탐지 대상OS 패키지, 언어 종속성, 컨테이너 이미지, IaC, 리포지토리, SBOM탐지 내용CVE 기반 취약점, 구성 오류(Misconfiguration), 라이선스데이터 소스NVD, GitHub Advisory, Red Hat, Alpine, Amazon 등 공식 보안 데이터 2. 지원 대상Trivy는 다음과 같은 대상에 대해 보안 스캔을 수행할 수 있습니다:컨테이너 이미지Docker, Podman 등에서 사용하는 이미지..
OverlayFS: 컨테이너와 보안에서 중요한 파일 시스템 기술 OverlayFS는 리눅스 커널에서 제공하는 유니온 파일 시스템(Union Filesystem) 구현체입니다. 하나 이상의 디렉터리를 겹쳐서 하나의 논리적인 파일 시스템처럼 사용하는 기술로, 특히 Docker, Podman, LXC 등 컨테이너 환경에서 핵심적으로 활용됩니다.1. 기본 개념OverlayFS는 읽기 전용(upper)과 쓰기 가능(lower) 디렉터리를 오버레이하여 사용자에게 하나의 통합된 디렉터리처럼 보이게 합니다.구성 요소LowerDir: 읽기 전용 계층 (예: base 이미지)UpperDir: 쓰기 가능한 계층 (예: 컨테이너 실행 시 생성되는 변경 사항)WorkDir: Overlay 작업에 필요한 임시 파일 저장소MergedDir: 실제 사용자에게 노출되는 결과 디렉터리기본 마운트 구..