야쿱 옐렌 (Red Hat 보안 엔지니어) SCP 프로토콜을 더 이상 사용되지 않는 것으로 분류할 것을 제안했습니다. 나중에 제거를 진행합니다. 을 고려하면 SCP는 개념적으로 RCP에 가깝고 아키텍처 문제를 상속합니다. 잠재적인 취약점의 원인이 되는 기본 사항입니다.
특히 SCP와 RCP에서 서버는 클라이언트에게 보낼 파일과 디렉토리에 대한 결정을 수락하고 클라이언트는 서버의 지시를 따르고 반환된 개체 이름의 정확성만 확인합니다.
공격자가 제어하는 서버에 연결하여 서버는 다른 파일을 전달할 수 있습니다. 이는 반복적으로 취약점 식별로 이어졌습니다.
예를 들어 최근까지 클라이언트는 현재 디렉터리만 확인했지만 서버가 다른 이름의 파일을 발급하고 요청되지 않은 파일을 덮어쓸 수 있다는 점을 고려하지 않았습니다(예: "test.txt" 대신 요청하면 서버는 "bashrc"라는 파일을 보낼 수 있으며 클라이언트가 작성합니다).
Jakub Jelen이 게시한 게시물에서 다음을 읽을 수 있습니다.
안녕하세요 페도라 사용자 여러분! 지난 몇 년 동안 SCP 프로토콜에 몇 가지 문제가 발생하여 초기 단계에서 제거할 수 있는지에 대한 논의로 이어졌습니다.
대부분의 목소리는 SCP를 주로 간단한 임시 복사에 사용하고 sftp 유틸리티가 한두 개의 파일을 앞뒤로 복사할 수 있는 간단한 인터페이스를 제공하지 않고 사람들이 sftp 대신 scp를 입력하는 데만 사용하기 때문이라고 말했습니다.
SCP 프로토콜의 또 다른 문제점은 인수 처리 기능입니다..
라고 언급되어 있으므로 파일을 외부 서버에 복사할 때 파일 경로는 scp 명령 끝에 추가됩니다. 예를 들어 서버에서 "scp/sourcefile remoteserver:'touch/tmp/exploit.sh`/targetfile'" 명령을 실행하면 "touch/tmp/exploit.sh" 명령과 /tmp 파일이 /exploit.sh를 생성했으므로 scp에서 문자를 적절하게 이스케이프 처리하는 것이 중요합니다.
scp를 사용하여 파일 이름에 '`' 문자를 허용하는 파일 시스템에서 디렉토리 내용("-r" 옵션)을 재귀적으로 전달하는 경우 공격자는 아포스트로피가 있는 파일을 생성하여 코드가 실행되도록 할 수 있습니다.
OpenSSH에서 이 문제는 수정되지 않은 상태로 남아 있습니다. 예를 들어 디렉토리를 복사하기 전에 디렉토리가 존재하는지 확인하는 명령을 실행하는 것과 같이 이전 버전과의 호환성을 깨지 않고 수정하는 것은 문제가 있기 때문입니다.
이전 논의에서는 scp가 일반적으로 한 시스템에서 다른 시스템으로 파일을 복사하는 데 사용된다는 것을 보여주었습니다.
그러나, 더 간단한 인터페이스 때문에 많은 사람들이 sftp 대신 scp를 사용합니다. 파일을 복사하는 것이 명백하거나 단순히 습관이 아닙니다. Jakub은 SFTP 프로토콜을 사용하도록 변환된 scp 유틸리티의 기본 구현을 사용하거나(특수한 경우 이 유틸리티는 SCP 프로토콜로 되돌리기 위해 "-M scp" 옵션을 제공함) sftp 유틸리티에 호환성 모드를 추가할 것을 제안합니다. . scp를 투명하게 대체하여 sftp를 사용할 수 있습니다.
몇 달 전에 나는 SFTP를 내부적으로 사용하기 위해 scp용 패치를 작성했고(-M scp를 사용하여 다시 변경할 수 있는 기능 포함) 일부 테스트에서 성공적으로 실행했습니다.
업스트림의 일반적인 피드백도 매우 긍정적이어서 사용자의 의견도 듣고 싶습니다. 여전히 몇 가지 제한 사항이 있지만(지원이 누락되고 서버가 sftp 하위 시스템을 실행하지 않으면 작동하지 않습니다. ...) 대부분의 일반적인 사용 사례에는 충분합니다.
제한 사항 중 제안된 접근법의 sftp 하위 시스템을 시작하지 않는 서버와 데이터를 교환할 수 없다는 점, 로컬 호스트를 통해 전송되는 두 개의 외부 호스트 간에 전송 모드가 없음(모드 "-3"). 일부 사용자는 또한 SFTP가 대역폭 측면에서 SCP보다 약간 뒤떨어져 대기 시간이 길고 연결 상태가 좋지 않을 때 더 두드러진다는 점에 주목합니다.
테스트를 위해 대체 openssh 패키지가 이미 copr 저장소에 게시되어 있으며 SFTP 프로토콜을 통한 scp 유틸리티 구현과 함께 패치가 적용됩니다.
출처 : https://lists.fedoraproject.org/