전체보기

Kubernetes

Kubernetes Pod IMDS 접근제어

1. 개념 관리형 쿠버네티스의 Node(EC2)에서 IMDS에 접근 가능할 경우 Pod에서도 접근 가능 IMDS에 크레덴셜이 저장되어 있을 가능성이 존재하므로 NetworkPolicies를 활용해 metadata 접근제어 필요 2. NetworkPolicies 설정 (1) 모든 파드의 egress 통신은 허용하되 IMDS 접근은 차단 apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: pol1 namespace: default spec: podSelector: {} policyTypes: - Egress egress: - to: - ipBlock: cidr: 0.0.0.0/0 except: - 169.254.169.254/32 (2)..

Kubernetes

Kubernetes Ingress TLS 적용

1. TLS 인증서 생성 (Ingress는 생성되었다고 가정) openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout cert.key -out cert.crt -subj "/CN=[host_name]/O=[host_name]” 2. TLS Secret 생성 k create secret tls [name] --key cert.key --cert cert.crt 3. Ingress 수정 공식문서를 참고해 spec.tls 추가 4. 접속 테스트 curl -kv https://[host_name]:[node_port]/[path] 5. 참고 https://www.youtube.com/watch?v=d9xfB5qaOfg&ab_channel=KillerShell

Kubernetes

Kubernetes 네트워크 정책(NetworkPolicy) 개념 및 설정2

1. 개념 K8s에서 작동하는 방화벽 개념 네임스페이스 단위로 적용 Ingress / Egress 방향에 대해 정책을 설정할 수 있고 label, IP를 기준으로 세부 설정 가능 CNI(Calico, Weave)에 의해 작동하므로 CNI에서 지원하지 않을 경우 NetworkPolicie 사용 불가 동일한 pod에 여러개의 NP를 적용할 수 있고, 이러한 경우 각 NP의 순서는 영향을 미치지 않으며 모든 NP의 총합이 반영 2. 예시 3. 실습1(DNS를 제외한 모든 Egress 트래픽 기본 차단) apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: deny-out-default spec: podSelector: {} policyTyp..

Kubernetes

Kubernetes 보안 기초

1. 개념 K8s의 보안은 On-prem 보안과는 접근방법이 다르고 Cloud 보안과도 차이가 존재 Cloud Native Security의 기본은 4C Cloud Cluster Container Code 2. K8s Attack / Security Surface 공격 표면을 반대로 이야기하면 보안 표면으로 볼 수 있음 K8s에는 3개의 공격 / 보안 표면이 존재 Host OS Security Cluster Security Application Security 3. Host OS Security K8s 클러스터가 구동되는 Host의 운영체제를 의미(EKS라면 Node가 구동되는 EC2의 AMI) Host OS를 안전하게 관리하는 방법은 일반적인 서버 보안과 동일한 층위로 접근 CCE 점검 K8s 노드 서..

AWS

boto3를 활용한 EC2 IMDS v1 취약점 점검 및 조치

0. IMDS(Instance Metadata Service) EC2 인스턴스의 메타데이터에 접근할 수 있는 서비스로 인스턴스 자체 혹은 내부에서 실행되는 애플리케이션과 AWS 또는 모니터링 도구간의 상호작용을 돕는 역할을 합니다. IMDS를 통해 다음과 같은 정보를 얻을 수 있습니다. - 인스턴스 메타데이터: 인스턴스 유형, IP 주소, 보안그룹 등 - IAM 역할 및 권한: 인스턴스에 할당된 IAM 역할 및 권한 - 보안 정보: 암호화된 볼륨 사용 여부, 키 페어 사용 여부 등 IMDS v1의 가장 큰 위험은 공격자가 EC2에 할당된 IAM 권한을 취득해 활용할 수 있다는 점입니다. 설령 IAM이 할당되어 있지 않다 하더라도 상술한 것과 같이 상당히 많은 유용한 정보를 획득하여 이를 공격에 활용할 수..

etc

Certified Kubernetes Application Developer(CKAD) 자격증 취득 후기(23.09. 시험)

1. 취득 계기 정보보호 담당자로서 쿠버네티스에 대한 지식을 쌓고 보안을 적용하기 위해 CKAD를 취득하게 되었습니다. 작년에 취득한 CKA에 이어서 쿠버네티스 3종을 모두 취득해보자는 목표도 있었구요. 2. 공부 방법 1. 강의 빛과 소금같은 유데미 강의를 열심히 들었습니다.(링크) 개념과 적절한 실습을 함께 공부할 수 있어서 도움이 많이 됐었고 해당 강의를 3회차 수강하고 블로그에 관련 내용을 정리하는 식으로 복습했습니다. 2. 실습 유데미 강의에서 제공해주는 KodeKloud의 모든 실습 문제를 2회씩 풀었고 Lightning Labs와 Mock Exams, Challenges를 각각 5번 넘게 풀어 봤습니다. CKAD 시험 등록 후 Linux Foundation에서 제공해주는 killer.sh의 ..

etc

Keycloak 구축 및 AWS SAML 연동

1. Keycloak 개념 Keycloak은 Red Hat에서 개발한 오픈소스 IAM 솔루션입니다. OAuth 2.0 및 OpenID Connect와 같은 표준 프로토콜을 기반으로 사용자 인증ㆍ인가 기능과 SSO를 제공합니다. 기업에서 사용하는 무수히 많은 서비스에 대한 인증을 개별적으로 관리하는 것은 보안담당자 뿐만 아니라 사용자로서도 무척 불편한 부분입니다. 이런 불편함을 극복하고 중앙 집중식의 통합된 사용자 관리 기능을 Keycloak를 통해 달성할 수 있습니다. Keycloak을 이해하기 위해 필요한 개념은 다음과 같습니다. Realm 애플리케이션 그룹을 "Realm"으로 정의합니다. 각 Realm은 독립된 사용자 그룹, 클라이언트 애플리케이션, 인증 및 접근 제어 설정을 가집니다. 클라이언트 애..

etc

C-TAS에서 위협 IP를 자동으로 수집해 슬랙으로 전송하기 - (4) 자동화 스크립트

0. 전체 스크립트 앞선 분석과 준비 과정을 통해 코드를 작성할 준비를 모두 마쳤습니다. 전체 코드를 본 다음에 기능별로 설명을 이어나가겠습니다. import time, os import pandas as pd from glob import glob from datetime import date from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.options import Options from slack_sdk import WebClient from slack_sdk.errors import SlackApiError chrome_options = Options() c..

etc

C-TAS에서 위협 IP를 자동으로 수집해 슬랙으로 전송하기 - (3) 크롤링 분석

0. 크롤링을 위한 사이트 분석 Selenium을 사용하기 위한 작업과 Slack bot 설정을 모두 마쳤으니 이제는 크롤링을 할 대상을 파악할 단계입니다. IP정보를 크롤링 해올 C-TAS 홈페이지는 로그인이 필요하기 때문에 먼저 로그인 페이지에 대한 분석을 먼저 시작합니다. 개발자 도구에서 확인해보니 "idPWWrap"이라는 div에서 userId와 userPassword에 각각 아이디와 패스워드를 입력받고 있습니다. request 요청에서도 주의깊게 살펴볼 부분은 없어보이기 때문에 간단한 파이썬 코드를 작성해 로그인 테스트를 해봅니다. 1. 로그인 테스트 다음과 같은 파이썬 코드를 실행하면 안타깝게도 유효하지 않은 접근으로 차단이 되는 것을 확인할 수 있습니다. import requests from..

etc

C-TAS에서 위협 IP를 자동으로 수집해 슬랙으로 전송하기 - (2) Slack bot 생성 및 권한 부여

0. Slack Bot slack-sdk를 활용해 위협 IP를 슬랙 메세지로 발송하기 위해서는 파이썬의 요청을 수행하기 위한 전용 bot이 필요합니다. 이를 위해 Slack API 홈페이지에서 bot을 생성하고 적절한 권한을 부여해야 합니다. 1. Slack Bot 생성 Slack API 홈페이지에서 "Create an app"을 클릭하고, 곧바로 뜨는 팝업창에서 "From scratch"를 클릭합니다. 뒤이어 나오는 화면에서 bot의 이름과 bot을 사용할 슬랙 워크스페이스를 지정하고 "Create App"을 클릭합니다. 참고로 bot의 이름은 언제든 수정할 수 있습니다. 이후 "Bots"을 클릭합니다. 2. Bot 권한 부여 bot 생성 후 "OAuth & Permissions" 메뉴의 "Scopes..

MR. ZERO
'분류 전체보기' 카테고리의 글 목록 (3 Page)