임의의 사용자 제공 이미지에 ImageMagick을 사용할 때 보안 문제가 발생할 수 있다고 들었습니다. 예를 들어, 아래 링크는 버퍼 오버플로 공격이 있었다는 증거를 제공합니다. 이제 사용자 이미지를 처리하는 웹 서비스의 일부로 이것을 안전하게 사용할 수 있는지 아는 사람이 있습니까?
답변1
해당 보안 권고는 2006년에 나온 것입니다. 모든 소프트웨어에는 버그가 있지만 ImageMagick에 다른 소프트웨어보다 더 많은 버그가 있다고는 말할 수 없습니다. 진지하게, 웹 서비스를 구현하는 경우 ImageMagick을 사용하는 것보다 Apache를 통해 누군가에 의해 해킹당할 가능성이 높습니다.
즉, 걱정하지 말고 모든 소프트웨어를 최신 상태로 유지하십시오.
편집: 그런데 저는 클라이언트가 ImageMagick을 사용하는 웹 서비스를 구현하는 것을 도왔고 그에 대한 한 가지 문제도 들어본 적이 없습니다.
답변2
예, 보안 위험이 있습니다. 소프트웨어에는 버그가 있으며 그 중 일부는 실행되는 시스템을 공격하는 데 사용될 수 있습니다.
하지만 다음과 같이 하면 위험을 최소화할 수 있습니다.
ImageMagick을 실행하는 데 충분하도록 최소한의 권한을 가진 사용자 계정을 만듭니다. 이제 ImageMagick 실행을 위해 해당 계정만 사용하십시오.
자동 보안 업데이트 활성화: Ubuntu와 같은 Linux 시스템은 보안 수정 사항을 자동으로 설치하도록 구성할 수 있습니다. 이렇게 하면 취약점이 발견될 경우 시스템이 취약해지는 시간이 줄어듭니다. Windows 시스템에는 자동 업데이트 시스템도 있지만 ImageMagick과 같은 타사 소프트웨어는 포함되어 있지 않습니다.
답변3
아니요.
ImageMagick은 유연성을 위해 설계되었습니다. 브라우저의 이미지 처리 라이브러리처럼 조작된 입력에 대해 강화되지 않습니다. 아마도 그럴 것이다악용 가능한 버그를 찾는 것이 훨씬 더 쉬워졌습니다.브라우저보다는 ImageMagick과 같은 라이브러리에서요.
ImageMagick에서 버퍼 오버플로를 발견한 공격자는 이를 사용하여 ImageMagick을 실행하는 프로세스의 권한으로 임의의 코드를 실행할 수 있습니다.
이는 공격자에게 권한을 더욱 확대하는 데 사용할 수 있는 교두보를 제공할 수 있습니다. 예를 들어PATH 및 트로이 목마 공격, 다른 백엔드를 혼동하거나 프로덕션 환경 내에서 패치되지 않은 다른 서비스를 악용하여 발생합니다.
당신이 절대적으로~ 해야 하다타사 콘텐츠에 ImageMagick을 사용하려면 "기타 보안 고려 사항"을 참조하세요.ImageMagick의 보안 정책 문서:
보안 정책 외에도 다음과 같은 방법으로 ImageMagick을 더욱 안전하게 만들 수 있습니다.
- ImageMagick을 최신 상태로 유지합니다. 최신 릴리스에는 과거에 발견한 모든 보안 결함에 대한 수정 사항이 포함되어 있습니다.
- ImageMagick에 전달하는 모든 파일 이름이나 명령줄 옵션을 삭제합니다.
- Docker와 같은 정리된 소프트웨어 컨테이너에서 ImageMagick을 실행합니다.
- ImageMagick을 최소 권한이 있는 사용자(예: 'nobody')로 실행합니다. 이미지 파일 형식을 명시적으로 설정합니다. 예를 들어, image.png 대신 png:image.png 파일 이름을 사용하십시오. 파일 이름에 명시적인 이미지 유형이 없으면 ImageMagick은 이미지 유형을 추측합니다.