AKS(Azure Kubernetes Service) Ubuntu 이미지와 CIS(Center for Internet Security) 벤치마크 정렬

보안 서비스인 AKS(Azure Kubernetes Service)는 SOC, ISO, PCI DSS 및 HIPAA 표준을 준수합니다. 이 문서에서는 AKS에서 사용하는 Ubuntu에 적용된 보안 OS 구성을 다룹니다. 이 보안 구성은 CIS 벤치마크와 일치하는 Azure Linux 보안 기준을 기반으로 합니다. AKS 보안에 대한 자세한 내용은 AKS(Azure Kubernetes Service)의 애플리케이션 및 클러스터에 대한 보안 개념을 참조하세요. AKS 보안에 대한 자세한 내용은 AKS(Azure Kubernetes Service)의 애플리케이션 및 클러스터에 대한 보안 개념을 참조하세요. CIS 벤치마크에 대한 자세한 내용은 CIS(인터넷 보안 센터) 벤치마크를 참조하세요. Linux용 Azure 보안 기준에 대한 자세한 내용은 Linux 보안 기준을 참조하세요.

Ubuntu LTS 18.04

AKS 클러스터는 기본 제공 보안 구성으로 운영 체제를 실행하는 호스트 가상 머신에 배포됩니다. 이 운영 체제는 AKS에서 실행되는 컨테이너에 사용됩니다. 이 호스트 운영 체제는 보안 구성이 적용된 Ubuntu 18.04.LTS 이미지를 기반으로 합니다.

보안에 최적화된 운영 체제의 일부로 다음과 같습니다.

  • AKS는 기본적으로 보안 최적화 호스트 OS를 제공하지만 대체 운영 체제를 선택할 수 있는 옵션은 없습니다.
  • 보안에 최적화된 호스트 OS는 AKS용으로 특별히 빌드 및 유지 관리되며 AKS 플랫폼 외부에서 지원되지 않습니다.
  • 공격 노출 영역을 줄이기 위해 일부 불필요한 커널 모듈 드라이버가 OS에서 사용하지 않도록 설정되었습니다.

참고 항목

CIS 벤치마크와 관련 없이 Azure는 보안 패치를 포함한 일별 패치를 AKS 가상 머신 호스트에 적용합니다.

호스트 OS에 기본 제공된 보안 구성의 목표는 공격 노출 영역을 줄이고 안전한 방식으로 컨테이너 배포를 최적화하는 것입니다.

다음은 CIS Ubuntu 18.04 LTS Benchmark v2.1.0 권장 사항의 결과입니다.

권장 사항에는 다음 이유 중 하나가 있을 수 있습니다.

  • 잠재적 운영 영향 - 서비스에 부정적인 영향을 미칠 수 있으므로 권장 사항이 적용되지 않았습니다.
  • 다른 곳에서 다룸 - Azure 클라우드 컴퓨팅의 다른 컨트롤에서 권장 사항을 다룹니다.

다음은 구현된 CIS 규칙입니다.

CIS 단락 번호 권장 사항 설명 상태 원인
1 초기 설정
1.1 파일 시스템 구성
1.1.1 사용하지 않는 파일 시스템 사용 안 함
1.1.1.1 cramfs filesystems 탑재를 사용하지 않도록 설정했는지 확인 통과
1.1.1.2 freevxfs filesystems 탑재를 사용하지 않도록 설정했는지 확인 통과
1.1.1.3 jffs2 filesystems 탑재를 사용하지 않도록 설정했는지 확인 통과
1.1.1.4 hfs filesystems 탑재를 사용하지 않도록 설정했는지 확인 통과
1.1.1.5 hfsplus 파일 시스템 탑재가 사용하지 않도록 설정되어 있는지 확인 통과
1.1.1.6 udf 파일 시스템 탑재가 사용하지 않도록 설정되어 있는지 확인 실패 잠재적 운영 영향
1.1.2 /tmp가 구성되어 있는지 확인 실패
1.1.3 /tmp 파티션에서 nodev 옵션 설정 확인 실패
1.1.4 /tmp 파티션에서 nosuid 옵션 설정 확인 통과
1.1.5 /tmp 파티션에 noexec 옵션이 설정되어 있는지 확인 통과
1.1.6 /dev/shm이 구성되어 있는지 확인 통과
1.1.7 /dev/shm 파티션에 nodev 옵션이 설정되어 있는지 확인 통과
1.1.8 /dev/shm 파티션에 nosuid 옵션이 설정되어 있는지 확인 통과
1.1.9 /dev/shm 파티션에서 noexec 옵션 설정 확인 실패 잠재적 운영 영향
1.1.12 /var/tmp 파티션에 nodev 옵션이 포함되어 있는지 확인 통과
1.1.13 /var/tmp 파티션에 nosuid 옵션이 포함되어 있는지 확인 통과
1.1.14 /var/tmp 파티션에 noexec 옵션이 포함되어 있는지 확인 통과
1.1.18 /home 파티션에 nodev 옵션이 포함되어 있는지 확인합니다. 통과
1.1.19 이동식 미디어 파티션에 nodev 옵션이 설정되어 있는지 확인 해당 없음
1.1.20 이동식 미디어 파티션에 nosuid 옵션이 설정되어 있는지 확인 해당 없음
1.1.21 이동식 미디어 파티션에 noexec 옵션이 설정되어 있는지 확인 해당 없음
1.1.22 모든 쓰기 가능한 디렉터리에 고정 비트가 설정되어 있는지 확인 실패 잠재적 운영 영향
1.1.23 자동 탑재 사용 안 함 통과
1.1.24 USB 스토리지 사용 안 함 통과
1.2 소프트웨어 업데이트 구성
1.2.1 패키지 관리자 리포지토리가 구성되어 있는지 확인 통과 다른 곳에서 다룸
1.2.2 GPG 키가 구성되어 있는지 확인 해당 없음
1.3 파일 시스템 무결성 검사
1.3.1 AIDE가 설치되어 있는지 확인 실패 다른 곳에서 다룸
1.3.2 파일 시스템 무결성이 정기적으로 검사되는지 확인 실패 다른 곳에서 다룸
1.4 보안 부팅 설정
1.4.1 부트로더 구성에 대한 권한이 무시되지 않는지 확인 실패
1.4.2 부트로더 암호가 설정되어 있는지 확인 실패 해당 없음
1.4.3 부팅 로더 구성에 대한 권한을 구성합니다. 실패
1.4.4 단일 사용자 모드에 대한 인증이 필요한지 확인 실패 해당 없음
1.5 추가 프로세스 강화
1.5.1 XD/NX 지원이 사용하도록 설정되어 있는지 확인 해당 없음
1.5.2 ASLR(주소 공간 레이아웃 무작위화)이 사용하도록 설정되어 있는지 확인 통과
1.5.3 사전 링크를 사용하지 않도록 설정되어 있는지 확인 통과
1.5.4 코어 덤프가 제한되어 있는지 확인 통과
1.6 필수 Access Control
1.6.1 AppArmor 구성
1.6.1.1 AppArmor가 설치되어 있는지 확인 통과
1.6.1.2 부트로더 구성에서 AppArmor가 사용하도록 설정되어 있는지 확인 실패 잠재적 운영 영향
1.6.1.3 모든 AppArmor 프로필이 적용 또는 불평 모드인지 확인 통과
1.7 명령줄 경고 배너
1.7.1 오늘의 메시지가 올바르게 구성되어 있는지 확인 통과
1.7.2 /etc/issue.net에 대한 권한이 구성되어 있는지 확인 통과
1.7.3 /etc/issue에 대한 권한이 구성되어 있는지 확인 통과
1.7.4 /etc/motd에 대한 권한이 구성되어 있는지 확인 통과
1.7.5 원격 로그인 경고 배너가 올바르게 구성되어 있는지 확인 통과
1.76 로컬 로그인 경고 배너가 올바르게 구성되어 있는지 확인 통과
1.8 GNOME 디스플레이 관리자
1.8.2 GDM 로그인 배너가 구성되어 있는지 확인 통과
1.8.3 disable-user-list가 사용하도록 설정되어 있는지 확인 통과
1.8.4 XDCMP가 사용하도록 설정되지 않았는지 확인 통과
1.9 업데이트, 패치 및 추가 보안 소프트웨어가 설치되어 있는지 확인 통과
2 Services
2.1 특수 목적 서비스
2.1.1 시간 동기화
2.1.1.1 시간 동기화가 사용 중인지 확인 통과
2.1.1.2 systemd-timesyncd가 구성되어 있는지 확인 해당 없음 AKS는 timesync에 ntpd를 사용합니다.
2.1.1.3 chrony가 구성되어 있는지 확인 실패 다른 곳에서 다룸
2.1.1.4 ntp가 구성되어 있는지 확인 통과
2.1.2 X Window System이 설치되지 않았는지 확인 통과
2.1.3 Avahi 서버가 설치되지 않았는지 확인 통과
2.1.4 CUPS가 설치되지 않았는지 확인 통과
2.1.5 DHCP 서버가 설치되지 않았는지 확인 통과
2.1.6 LDAP 서버가 설치되지 않았는지 확인 통과
2.1.7 NFS가 설치되지 않았는지 확인 통과
2.1.8 DNS 서버가 설치되지 않았는지 확인 통과
2.1.9 FTP 서버가 설치되지 않았는지 확인 통과
2.1.10 HTTP 서버가 설치되지 않았는지 확인 통과
2.1.11 IMAP 및 POP3 서버가 설치되지 않았는지 확인 통과
2.1.12 Samba가 설치되지 않았는지 확인 통과
2.1.13 HTTP 프록시 서버가 설치되지 않았는지 확인 통과
2.1.14 SNMP 서버가 설치되지 않았는지 확인 통과
2.1.15 메일 전송 에이전트가 로컬 전용 모드로 구성되어 있는지 확인 통과
2.1.16 rsync 서비스가 설치되지 않았는지 확인 실패
2.1.17 NIS 서버가 설치되지 않았는지 확인 통과
2.2 서비스 클라이언트
2.2.1 NIS 클라이언트가 설치되지 않았는지 확인 통과
2.2.2 rsh 클라이언트가 설치되지 않았는지 확인 통과
2.2.3 Talk 클라이언트가 설치되지 않았는지 확인 통과
2.2.4 텔넷 클라이언트가 설치되지 않았는지 확인 실패
2.2.5 LDAP 클라이언트가 설치되지 않았는지 확인 통과
2.2.6 RPC가 설치되지 않았는지 확인 실패 잠재적 운영 영향
2.3 불필요한 서비스가 제거되거나 마스킹되어 있는지 확인 통과
3 네트워크 구성
3.1 사용하지 않는 네트워크 프로토콜 및 디바이스 사용 안 함
3.1.2 무선 인터페이스가 사용하지 않도록 설정되어 있는지 확인 통과
3.2 네트워크 매개 변수(호스트만 해당)
3.2.1 패킷 리디렉션 보내기를 사용하지 않도록 설정되었는지 확인 통과
3.2.2 IP 전달이 사용하지 않도록 설정되어 있는지 확인 실패 해당 없음
3.3 네트워크 매개 변수(호스트 및 라우터)
3.3.1 원본 라우팅 패킷이 수락되지 않았는지 확인 통과
3.3.2 ICMP 리디렉션이 수락되지 않았는지 확인 통과
3.3.3 보안 ICMP 리디렉션이 수락되지 않았는지 확인 통과
3.3.4 의심스러운 패킷이 기록되었는지 확인 통과
3.3.5 브로드캐스트 ICMP 요청이 무시되어 있는지 확인 통과
3.3.6 가짜 ICMP 응답이 무시되는지 확인 통과
3.3.7 패스 반전 필터링이 사용하도록 설정되어 있는지 확인 통과
3.3.8 TCP SYN 쿠키가 활성화되어 있는지 확인 통과
3.3.9 IPv6 라우터 알림이 수락되지 않았는지 확인 통과
3.4 흔하지 않은 네트워크 프로토콜
3.5 방화벽 구성
3.5.1 복잡하지 않은 방화벽 구성
3.5.1.1 ufw가 설치되어 있는지 확인 통과
3.5.1.2 iptables-persistent가 ufw와 함께 설치되지 않았는지 확인 통과
3.5.1.3 ufw 서비스가 사용하도록 설정되어 있는지 확인 실패 다른 곳에서 다룸
3.5.1.4 ufw 루프백 트래픽이 구성되어 있는지 확인 실패 다른 곳에서 다룸
3.5.1.5 ufw 아웃바운드 연결이 구성되어 있는지 확인 해당 없음 다른 곳에서 다룸
3.5.1.6 열려 있는 모든 포트에 대해 ufw 방화벽 규칙이 있는지 확인 해당 없음 다른 곳에서 다룸
3.5.1.7 ufw 기본 거부 방화벽 정책 확인 실패 다른 곳에서 다룸
3.5.2 nftables 구성
3.5.2.1 nftables가 설치되어 있는지 확인 실패 다른 곳에서 다룸
3.5.2.2 ufw가 nftables로 제거되거나 사용하지 않도록 설정되어 있는지 확인 실패 다른 곳에서 다룸
3.5.2.3 iptables가 nftables로 플러시되어 있는지 확인 해당 없음 다른 곳에서 다룸
3.5.2.4 nftables 테이블이 존재하는지 확인 실패 다른 곳에서 다룸
3.5.2.5 nftables 기본 체인이 존재하는지 확인 실패 다른 곳에서 다룸
3.5.2.6 nftables 루프백 트래픽이 구성되어 있는지 확인 실패 다른 곳에서 다룸
3.5.2.7 nftables 아웃바운드 및 설정된 연결이 구성되어 있는지 확인 해당 없음 다른 곳에서 다룸
3.5.2.8 nftables 기본 거부 방화벽 정책 확인 실패 다른 곳에서 다룸
3.5.2.9 nftables 서비스가 사용하도록 설정되어 있는지 확인 실패 다른 곳에서 다룸
3.5.2.10 nftables 규칙이 영구적인지 확인 실패 다른 곳에서 다룸
3.5.3 iptables 구성
3.5.3.1 iptables 소프트웨어 구성
3.5.3.1.1 iptables 패키지가 설치되어 있는지 확인 실패 다른 곳에서 다룸
3.5.3.1.2 nftables가 iptables와 함께 설치되지 않았는지 확인 통과
3.5.3.1.3 ufw가 iptables로 제거되거나 사용하지 않도록 설정되어 있는지 확인 실패 다른 곳에서 다룸
3.5.3.2 IPv4 iptables 구성
3.5.3.2.1 iptables 기본 거부 방화벽 정책 확인 실패 다른 곳에서 다룸
3.5.3.2.2 iptables 루프백 트래픽이 구성되어 있는지 확인 실패 해당 없음
3.5.3.2.3 iptables 아웃바운드 및 설정된 연결이 구성되어 있는지 확인 해당 없음
3.5.3.2.4 열려 있는 모든 포트에 대해 iptables 방화벽 규칙이 있는지 확인 실패 잠재적 운영 영향
3.5.3.3 IPv6 ip6tables 구성
3.5.3.3.1 ip6tables 기본 거부 방화벽 정책 확인 실패 다른 곳에서 다룸
3.5.3.3.2 ip6tables 루프백 트래픽이 구성되어 있는지 확인 실패 다른 곳에서 다룸
3.5.3.3.3 ip6tables 아웃바운드 및 설정된 연결이 구성되어 있는지 확인 해당 없음 다른 곳에서 다룸
3.5.3.3.4 열려 있는 모든 포트에 대해 ip6tables 방화벽 규칙이 있는지 확인 실패 다른 곳에서 다룸
4 로깅 및 감사
4.1 시스템 계정 구성(auditd)
4.1.1.2 감사가 사용하도록 설정되어 있는지 확인
4.1.2 데이터 보존 구성
4.2 로깅 구성
4.2.1 rsyslog 구성
4.2.1.1 rsyslog가 설치되어 있는지 확인 통과
4.2.1.2 rsyslog 서비스가 사용하도록 설정되어 있는지 확인 통과
4.2.1.3 로깅이 구성되어 있는지 확인 통과
4.2.1.4 rsyslog 기본 파일 권한이 구성되어 있는지 확인 통과
4.2.1.5 rsyslog가 원격 로그 호스트에 로그를 보내도록 구성되어 있는지 확인 실패 다른 곳에서 다룸
4.2.1.6 원격 rsyslog 메시지가 지정된 로그 호스트에서만 허용되는지 확인합니다. 해당 없음
4.2.2 journald 구성
4.2.2.1 journald가 rsyslog에 로그를 보내도록 구성되어 있는지 확인 통과
4.2.2.2 journald가 대용량 로그 파일을 압축하도록 구성되어 있는지 확인 실패
4.2.2.3 journald가 영구 디스크에 로그 파일을 기록하도록 구성되어 있는지 확인 통과
4.2.3 모든 로그 파일에 대한 권한이 구성되어 있는지 확인 실패
4.3 logrotate가 구성되어 있는지 확인 통과
4.4 logrotate가 적절한 권한을 할당하는지 확인 실패
5 액세스, 인증 및 권한 부여
5.1 시간 기반 작업 스케줄러 구성
5.1.1 cron 디먼이 사용하도록 설정되어 실행 중인지 확인 통과
5.1.2 /etc/crontab에 대한 권한이 구성되어 있는지 확인 통과
5.1.3 /etc/cron.hourly에 대한 권한이 구성되어 있는지 확인 통과
5.1.4 /etc/cron.daily에 대한 권한이 구성되어 있는지 확인 통과
5.1.5 /etc/cron.weekly에 대한 권한이 구성되어 있는지 확인 통과
5.1.6 /etc/cron.monthly에 대한 권한이 구성되어 있는지 확인 통과
5.1.7 /etc/cron.d에 대한 권한이 구성되어 있는지 확인 통과
5.1.8 cron이 승인된 사용자로 제한되어 있는지 확인 실패
5.1.9 at가 승인된 사용자로 제한되어 있는지 확인 실패
5.2 sudo 구성
5.2.1 sudo가 설치되어 있는지 확인 통과
5.2.2 sudo 명령이 pty를 사용하는지 확인 실패 잠재적 운영 영향
5.2.3 sudo 로그 파일이 존재하는지 확인 실패
5.3 SSH 서버 구성
5.3.1 /etc/ssh/sshd_config에 대한 권한이 구성되어 있는지 확인 통과
5.3.2 SSH 프라이빗 호스트 키 파일에 대한 권한이 구성되어 있는지 확인 통과
5.3.3 SSH 공개 호스트 키 파일에 대한 권한이 구성되어 있는지 확인 통과
5.3.4 SSH 액세스가 제한되어 있는지 확인 통과
5.3.5 SSH LogLevel이 적절한지 확인 통과
5.3.7 SSH MaxAuthTries가 4 이하로 설정되어 있는지 확인 통과
5.3.8 SSH IgnoreRhosts가 활성화되어 있는지 확인 통과
5.3.9 SSH HostbasedAuthentication이 비활성화되어 있는지 확인 통과
5.3.10 SSH 루트 로그인이 사용하지 않도록 설정되어 있는지 확인 통과
5.3.11 SSH PermitEmptyPasswords가 비활성화되어 있는지 확인 통과
5.3.12 SSH PermitUserEnvironment가 사용하지 않도록 설정되어 있는지 확인 통과
5.3.13 강력한 암호만 사용하는지 확인 통과
5.3.14 강력한 MAC 알고리즘만 사용하는지 확인 통과
5.3.15 강력한 키 교환 알고리즘만 사용하는지 확인 통과
5.3.16 SSH Idle Timeout Interval이 구성되어 있는지 확인 실패
5.3.17 SSH LoginGraceTime이 1분 미만으로 설정되어 있는지 확인 통과
5.3.18 SSH 경고 배너가 구성되어 있는지 확인 통과
5.3.19 SSH PAM이 사용하도록 설정되어 있는지 확인 통과
5.3.21 SSH MaxStartups가 구성되어 있는지 확인 실패
5.3.22 SSH MaxSessions가 제한되어 있는지 확인 통과
5.4 PAM 구성
5.4.1 암호 만들기 요구 사항이 구성되어 있는지 확인 통과
5.4.2 잘못된 암호를 입력하면 잠그도록 구성되어 있는지 확인 실패
5.4.3 암호 재사용이 제한되어 있는지 확인 실패
5.4.4 암호 해시 알고리즘이 SHA-512인지 확인합니다. 통과
5.5 사용자 계정 및 환경
5.5.1 섀도우 암호 제품군 매개 변수 설정
5.5.1.1 암호 변경 사이의 최소 일수가 구성되어 있는지 확인 통과
5.5.1.2 암호 만료가 365일 이하인지 확인 통과
5.5.1.3 암호 만료 경고 일 수가 7일 이상인지 확인 통과
5.5.1.4 비활성 암호 잠금이 30일 이하인지 확인 통과
5.5.1.5 모든 사용자의 마지막 암호 변경 날짜는 과거의 날짜여야 합니다. 실패
5.5.2 시스템 계정이 안전한지 확인 통과
5.5.3 루트 계정의 기본 그룹은 GID 0이어야 합니다. 통과
5.5.4 default user umask가 027 이상으로 제한되어 있는지 확인 통과
5.5.5 기본 사용자 셸 시간 제한이 900초 이하인지 확인 실패
5.6 루트 로그인이 시스템 콘솔로 제한되어 있는지 확인 해당 없음
5.7 su 명령 액세스가 제한되어 있는지 확인 실패 잠재적 운영 영향
6 시스템 유지 관리
6.1 시스템 파일 권한
6.1.2 /etc/passwd에 대한 권한이 구성되어 있는지 확인 통과
6.1.3 /etc/passwd에 대한 권한이 구성되어 있는지 확인 통과
6.1.4 /etc/group에 대한 권한이 구성되어 있는지 확인 통과
6.1.5 /etc/group에 대한 권한이 구성되어 있는지 확인 통과
6.1.6 /etc/shadow에 대한 권한이 구성되어 있는지 확인 통과
6.1.7 /etc/shadow-에 대한 권한이 구성되어 있는지 확인 통과
6.1.8 /etc/gshadow에 대한 권한이 구성되어 있는지 확인 통과
6.1.9 /etc/gshadow-에 대한 권한이 구성되어 있는지 확인 통과
6.1.10 모든 쓰기 가능한 파일이 존재하지 않는지 확인 실패 잠재적 운영 영향
6.1.11 소유하지 않은 파일이나 디렉터리가 없는지 확인 실패 잠재적 운영 영향
6.1.12 그룹화되지 않은 파일이나 디렉터리가 존재하지 않는지 확인 실패 잠재적 운영 영향
6.1.13 SUID 실행 파일 감사 해당 없음
6.1.14 SGID 실행 파일 감사 해당 없음
6.2 사용자 및 그룹 설정
6.2.1 /etc/passwd의 계정이 섀도우 암호를 사용하는지 확인 통과
6.2.2 암호 필드가 비어 있지 않은지 확인합니다. 통과
6.2.3 /etc/passwd의 모든 그룹이 /etc/group에 있어야 합니다. 통과
6.2.4 모든 사용자의 홈 디렉터리가 있는지 확인합니다. 통과
6.2.5 사용자가 홈 디렉터리를 소유하고 있는지 확인합니다. 통과
6.2.6 사용자의 홈 디렉터리 권한이 750 이상 제한적인지 확인 통과
6.2.7 사용자의 dot 파일이 group 또는 world 쓰기가 가능하지 않은지 확인 통과
6.2.8 사용자에게 .netrc 파일이 있으면 안 됩니다. 통과
6.2.9 사용자에게 .forward 파일이 있으면 안 됩니다. 통과
6.2.10 사용자에게 .rhosts 파일이 있으면 안 됩니다. 통과
6.2.11 root가 유일한 UID 0 계정이어야 합니다. 통과
6.2.12 루트 경로 무결성 확인 통과
6.2.13 UID가 중복되면 안 됩니다. 통과
6.2.14 GID가 중복되면 안 됩니다. 통과
6.2.15 사용자 이름이 중복되면 안 됩니다. 통과
6.2.16 중복 그룹 이름이 없는지 확인 통과
6.2.17 섀도 그룹이 비어 있어야 합니다. 통과

다음 단계

AKS 보안에 대한 자세한 내용은 다음 문서를 참조하세요.