DDos 공격 방어 하면서 배운것. 정보
DDos 공격 방어 하면서 배운것.본문
저번주에 DDos를 두건 처리하고 나서 생각을 정리해봅니다.
1. 클라우플레어는 정말 좋은 서비스
- 보통 이걸 붙혀두면, 만사형통임.
- 사이트가 공격 당하고 계신가요? --> Under Attack..
- Under Attack 는 요금제에 따라서 커스텀 가능.
(클플에서 제공하는 기본 페이지는 사용자를 놀라게 하니 꼭 변경)
2. 사이트가 어느정도 버텨야 함.
- 사이트 최적화로 평소 트래픽보다 50% ~ 100% 들어오는건 사이트에서 소화가능해야 함.
- 특히 DB쪽을 최적화 해야 함.
3. 좀비 PC는 국내외를 가리지 않음.
- 국외인경우, 해외 트래픽을 막으면 해결됨.
- 국내인경우는 좀더 복잡함.
4. 손으로 아이피 차단하는건 사람이 할짓이 못됨
- Fail2ban 등의 모듈을 이용해 자동 차단이 가능하나,
- 잘못 적용하면 일반 사용자를 대량으로 차단할수도 있어 조심스럽게 써야함
5. apache 보다는 nginx를 쓰는 경우 DDos 방어가 쉬움.
- 일단 apache 는 자체 성능이 떨어지는것 같음
- 아이피 요청수를 제한하는 limit_zone 도 쓰기에 따라 방어하는데 도움이 됨
6. limit_zone
- zone을 하나 이상을 만들어서 상황별 적용
- 국내아이피/국외아이피에 따라서 burst 를 조정
- 페이지별로 burst를 조정. php 페이지에 php가 아닌페이지
7. 알림서비스가 필요함
- 사이트가 느려지거나, 갑자기 요청수가 늘어나는걸 감지하는 기능이 필요
- 유료서비가 많지만, 유료서비스는 너무 비쌈. 직접 설정하여 만드는게 좋음.
8. 정적 페이지(html), 동적페이지(php)
- nginx 를 사용하는 경우 정적 페이지는 cdn에서 서비스 되어 충분히 버틸만함
- php 와 같은 동적 페이지는 요청수가 많은 경우, mysql까지 느리게 만듬
(그누보드는 기본적으로 모든 php페이지가 db접속을 하게됨)
- ddos는 대부분 / index.php 를 공격하게 되는데, 회피해야함.
- 그누보듸 index.php 는 느린편에 속함(캐시를 활성화 하는경우 일부개선)
- 공격이 들어오면, index.php 보다는 index.html로 접속시킨 다음 index.php 로 이동시킴
(이때 index.html에서 bypass cookie를 만들어 검증하는 방식이 클라우드 플레어 under attack 모드)
9. 결론
- 최근 사이트의 DDos공격 및 취약점 공격이 많아지고 있음.
- 대규모의 ddos공격이 아니라면 충분히 방어가능
- 대규모의 공격은 클라우드플레어를 쓰는걸 추천(서비스 안되는것보다는 서비스가 조금 느린게 나은 선택)
- 자체 Ddos/Dos 방어 체계를 갖추는 게 중요
ps) 혼자 회고하다가 공유하면 좋을것 같아 게시물로 남깁니다.
자체적으로 under attack 을 한번 구현해보았습니다. 한번 테스트해보세요.
- 최초 접속시 under attack 페이지 노출.
- 5초(변경가능) bypass cookie 생성을 합니다.
- bypass cookie 가 있는 경우, 바로 index 페이지를 노출합니다.
11
댓글 6개
팁자료실에도 다시 한 번 올려주세요...ㅎ
자게에 있으면 금방 아래로 밀려서 나중에 찾기 힘들어요.
공감합니다.