AWS
AWS production 환경을 운영하면서 특정 봇들이 보내는 취약점
Dev갱이
2024. 8. 22. 08:21
728x90
OTHER][GET]/api/snapshots/:key(404) 194.233.165.86 python-requests/2.23.0 - Cannot GET /api/snapshots/:key
[OTHER][HEAD]/api-keys.properties(404) 47.129.186.218 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3 - Cannot HEAD /api-keys.properties
[OTHER][HEAD]/api-keys.zip(404) 47.129.186.218 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3 - Cannot HEAD /api-keys.zip
[OTHER][HEAD]/api-keys.properties(404) 47.129.186.218 Mozilla/5.0 (Linux; Android 10; Pixel 3 XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Mobile Safari/537.36 - Cannot HEAD /api-keys.properties
[OTHER][GET]/api/sonicos/auth(404) 147.182.162.48 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 - Cannot GET /api/sonicos/auth
[OTHER][GET]/api/sonicos/tfa(404) 147.182.162.48 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 - Cannot GET /api/sonicos/tfa
[OTHER][GET]/api/v1(404) 45.79.102.91 python-urllib3/2.2.1 - Cannot GET /api/v1
Cannot GET /api/v1
[OTHER][GET]/api/session/properties(404) 45.156.128.101 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 - Cannot GET /api/session/properties
[OTHER][GET]/api/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php(404) 64.226.126.24 Custom-AsyncHttpClient - Cannot GET /api/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
[OTHER][GET]/api/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php(404) 185.133.248.48 Custom-AsyncHttpClient - Cannot GET /api/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
[OTHER][GET]/api/.env(404) 34.155.97.168 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36 - Cannot GET /api/.env
[OTHER][GET]/api/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php(404) 103.252.116.179 Custom-AsyncHttpClient - Cannot GET /api/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
env 파일을 탈취 하기 위해 보내는 요청이나 특히나 php쪽에 취약점이 많나보다. 추측으로 vendor쪽이 아마 composer php 패키지 경로 였던것 같은데 거기에 phpunit에 취약점이 있는것 같다.
보안쪽으로 신경써서 설정을 해주어야 할것 같고 해당 요청 로그들을 slack으로 웹훅을 이용하여 수집 하니까 꽤 재밋는 결과들을 확인 했다.
AWS free tier 과금 폭탄을 먹기 전에 적절한 조치를 해주자.
NestJS 설정
1. enableCors
production 환경일때 NestJS에서 enableCors 옵션에 내가 진짜 사용하는 method와 header만 추가해주고 origin을 설정 해줘서 Nextjs 서버인 frontend에서만 backend에 요청을 보낼 수 있게 설정 해주자.
2. helmet
각종 보안들을 설정하는 라이브러리
- ( https://docs.nestjs.com/security/helmet )
helmet의 자세한 사항은 공식문서 또는 아래의 블로그 글을 확인하면 도움이 된다.
( https://overcome-the-limits.tistory.com/743 )
3. throttler
요청 Limit를 걸어줄 수 있는 라이브러리
- ( https://docs.nestjs.com/security/rate-limiting )
4. 해외 ip 차단
글로벌 서비스를 할것이 아니라면 나 같은 경우에는 가비아를 사용하는데 가비아에서는 해외 ip 차단 기능을 제공 해서 차단해준다.
728x90