이쿠의 슬기로운 개발생활

함께 성장하기 위한 보안 개발자 EverNote 내용 공유

반응형

분류 전체보기 389

ansible-vault 리서치

ansible-vault 리서치 문제 상황 inventory 파일에 작성하는 host 정보 중 sudo 옵션 관련 root password, ssh password 접속 관련 user password 등 민감 정보를 저장해야하는 경우가 있음. 이런 민감 정보가 invetory 파일에 평문으로 작성되는 경우 보안적으로 큰 문제가 됨. 해당 정보를 encryption 해서 저장할 수 있는 방법에 대해 리서치 하던 중 ansible-vault를 알게되어 사용법을 정리함. ex) 문제가 되는 inventory file ansible-vault란 ansible이 설치되면 default로 ansible-vault도 함께 설치가 됨. Ansible Vault는 inventory, playbook의 변수나 파일을 암호..

Ansible dynamic inventory란?

Ansible dynamic inventory란? 문제 상황 ansible 사용 시 inventory를 작성할 때 host가 수가 매우 많거나 autoscaling 이나 외부 application들에 의해 관리되어서 host 수가 유동적인 경우 inventory를 작성하기 어려움. 이를 해결하기 위한 방법을 찾아보던 중 Dynamic inventory를 찾아서 사용법을 알아보기로 함. Ansible Dynamic inventory란? Ansible은 Inventory를 통해 정보를 아주 편하게 playbook으로 넘길 수 있음 하지만 이 inventory의 단점은 정보가 정적이라는 것임. 즉 inventory에 있는 정보는 사용자가 직접 수정하지 않은 이상 변하지 않음. 이 단점이 host가 적은 경우에..

102. Kubernetes 보안 설정 node-restriction.kubernetes.io

kubernetes 보안 설정 node-restriction.kubernetes.io 취약점 분석 kube-apiserver의 --enable-admission-plugin 항목을 확인해보면 default로 NodeRestriction 항목이 활성화 되어있는 것을 확인할 수 있음. 해당 NodeRestriction 설정은 어떤 역할을 하는지 찾아봄. 일반적으로 worker node는 kubelet을 통해서 master(control) node의 kube-apiserver와 통신할 수 있음. 즉 worker node의 kubectl 사용 시 별도의 인증 계정을 만들지 않고도 worker node에 이미 배포되어있는 kubelet의 인증권한을 사용하면 kube-apiserver와 통신하여 kubectl to..

101. Kubernetes 보안 설정 --insecure-port=0

kubernetes 보안 설정 --insecure-port=0 취약점 분석 kubernetes 1.20 version 이하는 --insecure-port 설정이 존재하지만 1.20 이상 version은 kube-apiserver의 --insecure-port 설정이 없음. 해당 --insecure-port 설정이 왜 없어졌는지 알아봄. --insecure-port설정은 kube-apiserver 에 http 형식으로 접근을 허가하는 설정임. --insecure-port가 8080 등 다른 port로 설정되어있으면 보안에 치명적임. kubernetes 1.20 version 이상은 해당 --insecure-port없어서 안전함. 아래와 같이 https 로만 접근이 가능하고 http는 접근이 불가능함. 하지..

100. Kubernetes 보안 설정 --anonymous-auth=false

kubernetes 보안 설정 --anonymous-auth=false 취약점 분석 kube-apiserver는 인가된 사용자 뿐만 아니라 anonymous user도 접속이 허용됨. 실제로 확인해보겠음. [anonymous user로 kube-apiserver 접속 확인] 이와 같이 계정을 명시하지 않은 상태로 kube-apiserver에 접속하게 되면 system:anonymous 라는 계정으로 접속이 허용됨. 실제로 kube-apiserver static pod 설정을 확인해보면 anonymous에 대한 설정이 없음 anonymous-auth에 대한 설정이 없으면 default로 true 처리가 되어 anonymous 계정도 접속이 허가됨. 이런경우 보안적으로 취약점이 발생함. 결론 kube-api..

99. Kubernetes 보안 설정 automountServiceAccountToken: false

automountServiceAccountToken: false 설정 취약점 분석 모든 namespace에는 default ServiceAccount가 존재하고 있음. 아래와 같이 default sa 확인 가능. [namespace service account 확인] 이러한 default ServiceAccount는 pod를 생성할 때 사용됨. pod와 ServiceAccount에 별도의 설정이 없다면 kubernetes는 default로 Pod 생성 시 ServiceAccount를 무조건 사용하게 되어 있음. 즉 관리자가 별도로지 pod를 생성할 때 ServiceAccount를 지정하지 않아도 Pod를 확인해 보면 자동으로 ServiceAccount가 mount되어 있는것을 확인할 수 있음. 위 ima..

98. kube-bench

kube-bench 목표 kubernetes 취약점 점검 tool은 kube-bench 사용법에 대해 알아봄 kube-bench란? Aqua security에서 개발한 것으로 kube-bench는 kubernetes cluster가 보안적으로 안전하게 구성되어있는지 검사해주는 tool임. CIS Kubernetes Benchmark 문서를 기반으로 kubernetes cluster의 취약점을 확인해줌. 취약점 scan 결과를 PASS, FAIL, WARN 3가지로 출력해주고 FAIL, WARN 항목에 대해서는 Remediations 항목에서 어떻게 하면 개선되는지 가이드까지 해줌. CIS Benchmark 란? CIS(Center for Internet Security, 비영리 조직)에서 배포하는 보안 ..

[프로그래머스][C++] 교점에 별 만들기

https://programmers.co.kr/learn/courses/30/lessons/87377 코딩테스트 연습 - 교점에 별 만들기 [[2, -1, 4], [-2, -1, 4], [0, -1, 1], [5, -8, -12], [5, 8, 12]] ["....*....", ".........", ".........", "*.......*", ".........", ".........", ".........", ".........", "*.......*"] [[0, 1, -1], [1, 0, -1], [1, 0, 1]] ["*.*"] [[1, -1, 0], [2, -1, 0], [4, - programmers.co.kr 글쓴이의 답 개인적인 풀이 임으로 이것보다 더 좋은 알고리즘은 많음... 이렇게도..

코딩테스트 2022.04.15

[프로그래머스][C++] 구명보트

https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 글쓴이의 답 개인적인 풀이 임으로 이것보다 더 좋은 알고리즘은 많음... 이렇게도 풀이하는구나.. 공유하기 위해 올림... #include #include #include #include using namespace std; int solution(vector people, int limit) { int answer = 0; sort(..

코딩테스트 2022.04.15

[프로그래머스][C++] 주식가격

https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 글쓴이의 답 개인적인 풀이 임으로 이것보다 더 좋은 알고리즘은 많음... 이렇게도 풀이하는구나.. 공유하기 위해 올림... #include #include using namespace std; vector solution(vector prices) { vector answer; for(int i=0; i < prices...

코딩테스트 2022.04.15
반응형