1. 데이터베이스 서버 보안
1)3계층구조
참조: https://m.blog.naver.com/limoremo/220073573980
특징: 3티어 구성중 어플리케이션 서버에서 대부분의 파라메터가 없으면 걸리짐으로 <
SQL 인젝션과 같은 문제에서 상대적으로 안전할수 있음.(json requst이용)
단점: 케시서버운영보다 서버 업데이트 및 보안에 좀더 우위를 가져갈수 있으나, 비용은 조금 더
상승함.
2)Blue-Green배포
참조: https://www.redhat.com/ko/topics/devops/what-is-blue-green-deployment
특징: 앱운영시 업데이트시에 블루서버를 이용해서 앱에서 서버를 이용하고 ,
새로운 앱을 배포시에 그린서버에 백업한 데이터를 기반으로 새 버전 앱을 배포하므로,
점검없이 라이브서비스를 이어갈수 있는 방식.
단점: SQL인젝션과 같은 공격에는 취약할수 있음.(보안관련 기능이라고보긴 어려움)
3)php magic_quotes_gpc on
참조: https://kldp.org/node/90787
특징: PHP .ini파일에서 설정하여 sql인젝션에 대비하는 옵션.
배포하는 프로젝트의 이 옵션이 켜져있으면, 강제로 다시 백슬러시를 떼어낸 뒤에 처리함으로,
sql인젝션을 막을수 있다.(php6부터는 옵션이 없음? 기본 탑제?)
단점:아래 링크와 같이 우회하는 방법이 존재한다고함.(에초에 웹서버를 멀티바이트로 처리하지않으면 문제가 없을것으로 추정됨?)
게임서버와 같이 성능상의 문제가 되는 경우는 날쿼리를 이용하지않는 경우 성능이 떨어질수있음.
멀티바이트서버에서 magic_quotes_gpc 우회방법: https://m.blog.naver.com/PostView.nhn?blogId=skinfosec2000&logNo=220535626029
2. 서버보안과 최적화
상기언급 3계층구조와 같은 백업서버를 구축해서 사용하는 경우 보안성에는 문제가 없지만,
실제로 성능이나 비용적인 측면에서 단점이 발생한다.
특히나 게임서버라면 반응성이 매우 중요하므로, 돈을 많이쓴다고해서 해결되지않는다.
초당 10만개이상 처리하는 경우는 저방식으로 처리하기 매우 곤란한 케이스라고한다.
서버는 초당 1천개의 부터 무너지기 시작할수 있으며, TCP는 하기나름이라고한다.
평범한 가성비의 서버(1~2코어, 2~4RAM)정도의 서버에서 문제가 생길가능성이 높다고한다.
물론 실제서버의 성능을 증설해서 해결하는 방법도 있을 수 있으나, 리스크매니지먼트등 여러가지 방법을 통해서 해결하는 방법이 많으므로, 무엇인가 특별히 답이 있다고 말하기어렵다.
특히나 서버는 더미돌려서 나오는 결과와 실제 결과는 전혀 다를 수 있으므로,
실제테스트가 병행되어야만 정확한 결과를 확인 가능한 점을 잊지말도록해야함.
3. AWS 디도스방어
참조: route53- https://aws.amazon.com/ko/route53/
WAF- https://aws.amazon.com/ko/waf/
ec2서버를 이용하여 서비스할때 다이렉트로 물린경우 디도스공격에 취약할수있다.
이때, route53d을 이용하여 어느정도 대비할수있다.
WAF의 경우는 별도의 페킷단위 상세 방화벽이나 ddos제어하기 위해서 사용되므로,
사용하지않아도 어느정도는 보장될수있다.
4.게임서버
1) 웹서버: 서버리스서버에서 운영하는 경우 데이터를 끌어다쓰는 경우 오토스케일링으로 어느정도 비용을 절감할수 있다고한다.(단, 리스케일링시 안끊는겅우 한쪽서버에 몰릴수있음.)
2) 소켓서버: 소켓통신을 이용해서 ec2와 같은 모델을 이용하여 서버용앱을 구성하고,
해당서버용앱을 통해서 데이터를 통신한다. 캐시서버를 운영할수도있고 내부 서버에서
각 앱들을 나누어 다른 역할을 부여할수도있다. 물론 비용이 웹서버보다 비싸고 직접 앱을 설치하고 운영해야한다.
댓글
댓글 쓰기