설명
관리용 또는 민감한 서비스의 포트를 0.0.0.0/0에 허용하면 인터넷 경로가 있는 서버에 외부에서 접속을 시도할 수 있습니다. 서비스의 취약점이나 약한 인증과 결합되면 침해 위험이 커집니다.
포트 번호만으로 서비스의 안전성을 판단하지 말고 실제 실행 중인 서비스와 공개 목적을 확인해야 합니다. 내부 통신이나 관리에만 쓰는 서비스는 승인된 네트워크나 관리자 주소로 제한하세요.
잠재적 영향
- 외부에서 비밀번호 추측이나 취약점 악용을 시도할 수 있습니다.
- 민감한 데이터와 관리 기능에 대한 접근 위험이 커질 수 있습니다.
해결 방법
- 공개가 필요하지 않은 서비스의 인터넷 전체 허용 규칙을 제거하세요.
- 필요한 포트와 승인된 출발지만 허용하고 서비스 인증과 보안 업데이트도 유지하세요.
- 공개 서비스가 반드시 필요하면 목적을 문서화하고 실제 연결 경로와 다른 허용 규칙을 점검하세요.
예시
기존 보안 그룹을 사용하는 부분 예시입니다. VPC 보안 그룹에는 nic_type = "intranet"이 필요합니다. 이는 인터넷 통신을 자동으로 차단하는 설정은 아닙니다.
변경 전
hcl
resource "alicloud_security_group_rule" "sensitive_port_open" {
type = "ingress"
ip_protocol = "tcp"
nic_type = "internet"
policy = "accept"
port_range = "19/20"
priority = 1
security_group_id = alicloud_security_group.default.id
cidr_ip = "0.0.0.0/0"
}
TCP 19~20을 모든 IPv4 주소에 허용합니다. 실제 서비스와 이 공개 범위가 필요한지 확인해야 합니다.
변경 후
hcl
resource "alicloud_security_group_rule" "sensitive_port_open" {
type = "ingress"
ip_protocol = "tcp"
nic_type = "internet"
policy = "accept"
port_range = "22/22"
priority = 1
security_group_id = alicloud_security_group.default.id
cidr_ip = "10.159.6.18/32"
}
SSH 관리만 필요하다고 가정해 한 승인된 클라이언트의 TCP 22 접근으로 바꿉니다. 주소는 실제 접속 경로에 맞춰 지정하고, 이전 공개 규칙은 제거하세요.