본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] CloudFront를 사용해 HTTP 응답 헤더 변경

by BTC_쭈콩 2023. 11. 23.

베하 ! - 

안녕하세요 콩순이들의 쭈콩입니다 ! 

오늘은 CloudFront를 사용하여 HTTP 응답 헤더를 변경해보려고 하는데요! 
이 실습은 nmap을 사용한 포트스캐닝 시에 보이는 Version을 응답헤더로 변경해보려는 시도에서 시작되었습니다! 

결과적으로 nmap 포트스캐닝 시에 보이는 버전을 변경할 수는 없었지만, 

HTTP 응답헤더는 확실하게 변경 가능했으니까 한 번 따라 오시죠 ! 


실습환경 
Route53 - ALB - EC2 (nginx)

 

 

nmap이란? 

nmap은 포트스캐닝 툴로 호스트나 네트워크를 스캐닝 할때 사용되는 유용한 툴입니다. 

유용하지만 그만큼 해커들에게는 강력한 해킹 도구로도 사용되는데요. nmap은 기존의 포트 스캔툴에 비해 다양한 옵션과 방화벽 안쪽의 네트워크도 스캔할 수 있어 양날의 검과 같은 툴로 알려져 있습니다.

한마디로 로컬서버나 원격서버의 사용포트 및 운영체제 등의 사용정보를 스캔할 수 있습니다! (위 험)

 

실습을 위해 nmap을 설치해줬습니다. 

sudo yum install nmap

 

설치 후 바로 포트 스캔 및 운영체제 버전 정보를 확인해 볼거에요. 

제 원격 서버에는 ssh를 위한 ssh와 nginx가 설치되어 있습니다 !! 

 

nmap -sV localhost

 

포트스캐닝을 해보면 이렇게 22번, 80번 포트와 함께 서비스가 뭔지,

해당 서비스의 버전은 어떻게 되는지 모두 확인이 가능합니다.

 

나의 정보가 많으면 많을수록 해커는 더 손 쉽게 해킹이 가능하기 때문에 이런 버전 정보는

노출되지 않는 것이 보안상 중요하다고 합니다. 

 

그래서 먼저 nginx의 버전을 없애보도록하겠습니다! 

nginx 서비스의 버전을 없애는 방법은 생각보다 쉬웠습니다 ! 바로 conf 파일을 수정하면 되는데요 ! 

vi /etc/nginx/nginx.conf

...

http {
        server_tokens off;   #추가 

#nginx 재실행
sudo systemctl restart nginx

 

nginx.conf 파일에 http 설정 중 server_tokens off;를 추가 해줍니다 !

만약 http 부분에 해당 부분이 있다면, off로 수정해주시고, 없는 경우엔 추가 해주시면 됩니다. 

 

짠 nignx를 재시작 해주고 나서 다시 한번 포트 스캐닝을 시도하면

이렇게 해당 버전이 노출되지 않는 것을 확인 할 수 있습니다.

 

443 리스너 설정 

 

443 리다이렉트 설정을 하는 이유는 저희가 확인해야할 80포트가 nginx 가 아닌 aws elb이기 때문입니다. 

보통 EC2와 ALB를 연결해서 서비스 하는 경우 , 인증서를 위해 위와 같은 구성을 많이 하시는데요. 

이때 포트스캐닝을 하면, 80 포트를 alb가 사용하고 있다고 나옵니다 ! 

nmap -sV 연결된 도메인

 

 

그래서 응답헤더 변경 실습을 진행해봤습니다. 

 

CloudFront 콘솔 → 정책 → 응답헤더 탭으로 이동합니다. 

 

사용자 지정 헤더 추가 → 오리진 재정의 체크

 

 

 

이렇게 하고, Route53의 레코드를 CloudFront 배포로 변경해주면 되는데, 

그 결과를 보면 HTTP 응답헤더는 분명히 변경됩니다만,,,

 

nmap 포트스캐닝에서는 응답헤더로 변경되지 않고, Amazon CloudFront httpd로 변경되는 것을 확인했습니다. 

결국 포트스캐닝시 해당 버전부분을 변경하지는 못했지만 HTTP응답헤더를 조작할 수 있다는 사실을 알 수 있었습니다! 


사실 cloudfront 배포 할 때 원본을 ALB로 하고 응답 정책과 동작 및 캐시 정책을 설정하는것도 알려드리고 싶었으나 ! 
그건 다음시간에 알려드릴게요 !!! 

 

그럼 추워진 날씨에 감기 조심하시고, 오늘도 유익한 시간이었길 바랍니다 !!! 

베 빠 !! - 

댓글