-
Security Vulnerability: SSRF(Server-Side Request Forgery in axios)FrontEnd/JavaScript 2024. 8. 14. 15:17
- 깃헙 알림으로 axios로 인한 보안 취약점이 발견됐다는 메시지가 왔음
- SSRF에 대한 이슈였고, 해결책으로 axios의 1.7.4 버전 이상으로 업그레이드 하라고 함
- Affected versions : axios(npm) >= 1.3.2, <= 1.7.3
- axios 1.7.2 allows SSRF via unexpected behavior where requests for path relative URLs get processed as protocol relative URLs.
- 해당 이슈: https://github.com/axios/axios/issues/6545
- 보안 공격으론 CSRF, XSS, SQL injection에 대해서만 알았어서 SSRF 는 처음 접하게 됨.
- SSRF의 개념을 알아보고 위 이슈가 생긴 이유에 대해 파악하기 위해 글을 써봄
1. SSRF: Server-Side Request Forgery (서버 측 요청 위조)
- OWASP Top10 에 선정 된 웹 공격 기법
- 서버가 위조된 요청을 보내도록 하는 공격 (CSRF는 Client측 위조) - CSRF와 주최가 바뀐 공격
- 공격자가 서버에게 악의적인 요청을 하게 하여, 서버가 의도하지 않은 내부 자원에 접근하도록 유도하는 취약점
- Client가 Server에 어떤 데이터(이미지와 같은)를 요청해서 Server가 DB에서 이미지 url을 가져온다고 할 때, 서버가 이미지가 아닌 경로를 틀어 password를 빼오게 하는...
- 공격자가 서버에 이미지 URL을 요청한다고 하면서도 실제로는 서버가 내부적으로 접근 가능한 민감한 정보를 노출할 수 있는 엔드포인트를 호출하도록 유도. 이러한 경우 서버는 의도치 않게 민감한 데이터(예: 비밀번호, 토큰, 기타 내부 자원)를 클라이언트에게 반환함
- 같은 데이터를 요청하더라도 URL이 아닌 DMZ 영역 뒤에 있는 인스턴스의 IP, file scheme를 이용한 로컬 file의 경로등을 요청하여 SSRF를 수행할 수 있다.
2. aixos 에서는 어떤 문제가 있었나
- 해당 이슈에 따르면 ' path-relative URLs are incorrectly processed as protocol-relative URLs ' 경로 상대URL이 프로토콜 상대 URL로 잘못 처리 된다는게 쟁점이었다. (=> 잠재적으로 SSRF 공격이 들어올 수 있는 )
- 경로 상대 URL (Path-relative URL):
- 현재 페이지의 경로를 기준으로 상대적인 위치
- 예: "images/logo.png" 또는 "../about.html"
- 현재 페이지의 프로토콜(http 또는 https)을 그대로 사용하면서 다른 도메인이나 경로를 지정
- 예: "//example.com/api/data"
- 경로 상대 URL (Path-relative URL):
- 위의 경우를 예시로 들자면
- 현재 페이지 : https://example.com/app/
- 의도된 요청: "/api/data"라는 경로 상대 URL로 요청을 보내려고 함.
- 예상 결과: "https://example.com/api/data"로 요청이 가야 함.
- 실제 결과: "https://api/data"라는 완전히 다른 도메인으로 요청이 가버림.
참고
- https://vuldb.com/?id.274082
- https://github.com/axios/axios/issues/6545
- https://velog.io/@r99bbit/Server-Side-Request-Forgery-SSRF
'FrontEnd > JavaScript' 카테고리의 다른 글
클로저에 대해 알아보기 with useState (5) 2024.10.09 브라우저 엔진의 작업 처리 우선순위 (feat. 마이크로 테스크 큐, 테스크 큐, 렌더 큐) (0) 2024.10.07 babel 직접 설정해보기 (0) 2024.04.06 webpack 직접 설정을 위한 기본 개념 (0) 2024.04.05 내가 JSON Viewer를 짠 방식 (1) 2023.11.04 - 깃헙 알림으로 axios로 인한 보안 취약점이 발견됐다는 메시지가 왔음