0. 개요

최근 제 지인들도 많이 사용했던 작은 서비스가 하나 있습니다. 바로 산타파이브라는 서비스입니다. 간단히 설명을 하자면 롤링페이퍼 서비스인데, 링크를 공유하면 원하는 사람이 익명으로 메세지를 남길 수 있고, 그 메세지들은 크리스마스인 25일에 일괄적으로 확인이 가능하게끔 만든 서비스입니다. 저는 개인적으로 트리를 만들진 않았지만, 개인적으로 인터페이스도 굉장히 귀엽게 만들어져 있고 아이디어도 참신하다고 생각하던 서비스 중 하나였습니다.

https://colormytree.me/

https://colormytree.me/

이제 이 서비스에 DDoS 공격이 진행되었고, 결론적으로 개발진들은 870만원에 달하는 서버비를 부담해야 한다고 하네요. 어떤 일이 일어났고, 왜 이런 일이 발생했는지 알아보도록 합시다.

1. 사건에 대해서

<aside> 💡 혹시나 악용의 여지가 우려되어 기술적인 내용이나 자세한 방법에 대한 내용은 배제하고 전반적인 이야기만 작성하였습니다.

</aside>

우선 DDoS에 대해서 조금 알아봅시다. 기본적으로 우리가 웹상에서 접하는 서비스들은 서버상에서 구동되고 있습니다. 그리고 대부분의 서비스들은 이런 서버를 서비스 사용량에 따라 그에 따른 서버비를 지불합니다. 이제 이를 악용해서 의도적으로 너무 많은 request를 요청하여 서비스를 먹통으로 만들거나, 서버의 자원 사용을 유도하는 공격을 DDoS 공격이라고 합니다. 자세한 내용은 아래 링크를 참고합시다.

결론적으로 사이트를 둘러보고 그때 당시 디스코드 채팅 내용을 보아하니, 사이트에 대해 **레이트리밋(rate limit)**이 설정되어있지 않았던 것으로 보입니다. 그래서 1초에 100번이든 1000번이든 해당 request에 대해 반복 스크립트를 작성하여 DDoS공격이 가능했던 것으로 보입니다. 한 가지 추가하자면 request에서의 인자들이 변조가 가능했고, 추가적으로 검증 과정이 존재하지 않아 다른 resource또한 변조 또한 가능했던 것으로 보입니다.

현재는 전달되는 인자 값들에 대한 필터링이 걸려있거나, 레이트리밋이 걸려있을 것으로 예상이 됩니다. 테스트하지는 않았기 때문에(애초에 해서도 안되지만) 확실하진 않지만, 아마 그러지 않았을까 조심스럽게 짐작해봅니다.

2. 내 개인적인 생각

보면서 참 ‘보안 의식과 윤리가 참 중요하구나’라고 생각했던 사건 중 하나였습니다. 물론 굳이 따지자면 개발 단계에서 보안적인 부분들이 고려되었으면 좋았겠지만, 현실적으로 생각했을 때 작게 진행하는 사이드 프로젝트에서까지 보안적인 부분이 크게 기대하기 힘든 부분이라고 생각합니다. (물론 레이트리밋 정도는 설정하였다면 정말 좋았겠죠?)