반응형

 


  안녕하세요. 오늘은 아파치 권장 설정인 ServerTokens에 대해 알아보도록 하겠습니다. 최근 이슈중에 보안팀에서 저희가 서비스하는 서버의 정보가 다 노출되고 있다는 메일을 받았습니다. 메일을 받고 실제로 curl --head URL주소를 처서 보니 서버정보가 다 노출되고 있는 것을 확인 할 수 있었습니다. 그럼 어떻게 서버정보가 노출이 되고 있었는지, 해결책은 무엇인지에 대해서 알아보도록 하겠습니다.


문제상황 ] 

 

위의 그림을 보시면 curl --head UR을 통해 요청에 의한 reponse의 head값을 받아 오는 것을 확인할 수 있습니다. 문제는 SERVER의 정보가 모두 노출되고 있다는 점입니다. 이로인해 클라이언트는 해당 서버의 정보(웹 서버 종류, 운영체제의 종류, 설치된 모듈, 마이너버전, 메이저 버전 등)가 다 노출되게 됩니다. 이렇게 서버 정보가 필요 이상으로 노출 될 경우 악의적으로 이용될 수 있음에 꼭 기본적인 내용만을 노출하도록 할 필요가 있습니다.


해결책 ]

위와 같은 문제점을 해결하기 위해 필요한 것이 ServerTokens 입니다. 보통 아파치 설정파일인 httpd.conf내에서 정의합니다. ServerTokens의 역할은 클라이언트 웹브라우저에게 서버의 정보를 얼마나 알려주냐를 설정하는 것입니다. 따라서 아래와 같은 순서로 서버 정보 노출을 예방하도록 해야합니다.


1. 자신의 서버의 정보가 노출되고 있는지 확인한다.


2. 확인이 되고 있다면 Apache의 httpd.conf에 ServerTokens가 설정되어 있는지 확인한다. (아파치 내에서 http-default.conf를 Include 하고 있다면 해당 부분에 설정이 되어 있는지 확인한다 꼭!!!)


3. 설정된 곳을 찾아 ServerTokens 옵션을 Prod로 변경해준다. 이 때 ServerSignature도 On에서 Off로 변경해준다.(보통 함께 붙어 있다. On에서 Off로 변경시 브라우저 상에서 아파치 서버 정보를 노출하지 않겠다는 의미)

 

#ServerTokens의 설정 값은 Prod, Major, Minor, Min, OS, FULL이 있다.


4. 설정을 변경한 후 아파치를 재시작 해준다.


이렇게 ServerTokens를  Prod로 설정을 마치고 다시 재시작한 결과는 다음과 같다.


서버정보에 웹 서버의 이름만 표시된 걸 확인할 수 있다.



이렇게 간단한 설정으로 인해 우리의 중요한 서버정보가 노출됨을 막을 수 있다. 지금 당장 확인해보고 필요 이상의 서버정보가 노출되고 있다면 요렇게 변경해 주길 바란다. 참고로 ServerTokens 지시어는 디폴트로 설정되어 있지 않고 ServerTokens 지시어 설정을 안했을 경우 Full 설정 처럼 모든 정보를 노출하게 된다! 지금 당장 확인 고고씽~!!!

 

 



반응형

+ Recent posts