전체 글

어차피 이 세상은 아만보
· Study/Python
객체를 다루다보면, 특정 객체를 복사해서 사용하는 경우가 종종 있다.보통 이 과정에서는 단순하게 아래처럼 사용하고는 한다.num = 150num2 = numprint(num2) # 150 DFS와 백트래킹 관련 알고리즘 문제를 풀던 중 입력된 field(이중 list)를 복사해두어서 백트래킹 과정에서 사용했었다.이 과정에서 단순하게 복사를 해서 사용했고, 의도대로 백트래킹 로직이 돌지 않았다는 것을 확인했다.그리고 원인 파악에서 복사한 이중 list에 대한 원본이 계속 수정되고 있다는 것을 알게 되었다. 이 과정에서 Python의 얕은 복사와 깊은 복사에 대해 알게 되었고, 이를 정리하고자 한다. 얕은 복사(Shallow Copy)새 객체를 생성하지만 원본에 포함된 객체에 대한 참조를 유지하는 방식..
HTTPSHTTPS는 HTTP 프로토콜상에 SSL 레이어를 추가한 통신 프로토콜로, 암호화된 HTTP 통신 프로토콜이다.서버와 클라이언트 간의 통신에서 중간에 악성 행위자로 하여금 데이터가 가로채어지거나 변조되지 않도록 하는 데이터의 전송과정에서의 보안 요소로, 기밀성과 무결성을 보장한다. SSL 인증서SSL/TLS 프로토콜을 이용해 다른 시스템에 암호화된 안전한 연결을 수행할 수 있도록 하는 디지털 객체SSL 인증서는 주로 웹 서비스와 사용자 간에 신뢰할 수 있는 통신을 위해 사용된다. SSL 인증서는 제3 인증기관(CA)이 발급해주며,  브라우저의 URL 좌측에서 HTTPS로 연결된 사이트에 대한 SSL 연결과 그 인증서 내용을 확인할 수 있다.  근래 거의 대부분의 웹 사이트에는 HTTPS를 사용해..
· Study/K8s
일반적으로 kubernetes 클러스터 pod의 Metric을 모니터링하기 위해 Prometheus를 구축을 하게된다.운영되는 서비스와 범위가 확장됨에 따라 Prometheus가 모니터링할 대상의 갯수도 증가하게 되는데, 이에 따라 Prometheus에 가해지는 부하가 증가하게 될 것이다. 이러한 Prometheus의 몇 가지 한계점은 아래와 같이 정리될 수 있다.문제점내용확장성 제한기본적으로 Prometheus는 단일 서버 구성을 전제로 설계되어있어 수평적 확장에 어려움이 존재한다.SPoF(Single Point of Failure) 문제Prometheus를 단일 서버로 운영하게 되는 경우, 해당 노드에 장애가 발생하면 Metric 수집이 불가해 모니터링이 불가능하다.HA(High Availabilit..
· Cloud/AWS
클라우드 서비스를 이용하다보면 이벤트 발생에 맞춘 로직 수행이나 주기적인 자동화를 수행해야할 경우가 존재한다.예를 들어, 워크로드 상에 존재하는 작업들의 이벤트 기반 상호작용이나 매일 새벽에 하루동안의 로그들을 바탕으로 보고서를 작성하는 등의 작업이 있을 것이다. 이러한 작업을 위해 Eventbridge의 Rule과 Scheduler를 이용할 수 있다.이번에는 Eventbridge의 구성요소와 이들을 활용한 간단한 자동화를 구성해보도록 한다. Eventbridge이벤트를 Application 요소들과 연결할 수 있는 서버리스 '이벤트 버스' 서비스, 이전에는 Cloudwatch Events로 불렸고, 현재는 Eventbridge로 명칭이 변경되었다고 한다.S3, EC2와 같은 AWS 서비스들에서 발생하는..
· Cloud/AWS
여러 AWS 서비스에서는 사용자를 대신해서 작업을 실행하기 위해 IAM Role을 부여한다. 그 과정에서 AssumeRole과 PassRole을 자주 볼 수 있는데, 이 둘은 간혹 보면 햇갈리는 점이 있다.이번에는 이 둘이 각각 어떤 기능이고, 어떤 차이점이 존재하는 지 알아보도록 한다. AssumeRole한 IAM Role이 다른 Role의 권한을 일시적으로 가져와서 사용할 수 있도록 하는 기능AssumeRole은 IAM이 아닌 STS(Security Token Service)라는 서비스의 Action으로 분류된다. Assume Role을 통해 User/Role은 자신에게 부여된 권한을 넘어 다양한 추가 권한을 임시로 얻어서 누릴 수 있게 된다.더불어, AssumeRole은 동일한 계정 내의 Role ..
· Cloud/AWS
S3 버킷을 정적 호스팅용으로 사용하는 경우, 버킷을 퍼블릭으로 오픈 후, 퍼블릭하게 버킷으로 접근할 수 있도록 버킷 정책을 설정해주어야한다.그리고 이러한 정적 호스팅 페이지를 오리진으로 하는 Cloudfront 배포를 생성해 사용하고는 한다. 이렇게 생성된 Cloudfront 배포 URL을 타고 정적 호스팅 버킷으로 접근하는 로직을 타는 것이다.하지만, 이러한 설정에도 불구하고 여전히 정적 호스팅 버킷 URL을 통해서 직접 접근하는 것이 가능하다. 버킷 컨텐츠에 대한 직접 접근을 막기 위한 방법으로 Cloudfront의 OAI와 OAC가 존재한다. OAI(Origin Access Identity)Cloudfront를 통해서만 S3 오리진에 접근할 수 있도록 하는 설정정확히는 Cloudfront가 S3 ..
시나리오 개요There is an environment that is implemented as shown in the schematic drawing below. Glue service manager will accidentally upload their access keys through the web page. The manager hurriedly deleted the key from s3, but does not recognize that the key was stored in the DB. Find the manager's key and access the ssm parameter store with a vulnerable permission to find the parameter value ..
시나리오 목표Full Admin 권한 획득 시나리오 세팅./cloudgoat.py create iam_privesc_by_rollback User "raynor"가 주어지며 시작 Solution1. User "raynor" enumeration먼저 raynor에 연결된 policy들과 권한들을 확인한다.# User에 연결된 inline Policy 확인aws iam list-user-policies --user-name [user명] --profile raynor# User에 연결된 Managed Policy 확인aws iam list-attached-user-policies --user-name [user명] --profile raynor# 특정 Policy 정보 확인 (version 정보 확인)aws..
Omoknooni
Memorize