WeB 서버 튜닝

2015. 12. 4. 09:12


WeB서버튜닝.pdf

웹서버 튜닝하는법  


인터넷보면 수많은 튜닝 방법이 많다.

이론적인 이야기도 있고, 과연 맞는 말인가 하는것 들도 많다.


서버 튜닝의 목적은 가성비다. 제한된 H/W로 얼마나 많은 성능을 극대화 시키는 것이다.

결국 CPU나 메모리 회선 병목 현상이 적게 로드벨런스가 되어야 된다.

대학교 수강신청 테스트를 해보면 순간적으로 엄청난 트래픽이 발생된다.

메크로에 대한 방어 설정을 해놓지 않으면 서버가 뻗어 버리는 경우도 발생된다.

그럼 도대체 어떻게 튜닝을 해야 되나?

담당자가 서버 및 네트워크 구성도가 완벽하게 분석 되었다고 가정하고 서술하겠다.


1] 병목현상을 정확히 파악 해야 된다.

JVM쪽인지 아니면 로드벨런스가 제대로 되지 않는지 sql쪽인지 정확히 파악해야 된다.

JVM은 우선 Class PATH,   java heap 사이즈를 늘려주는 방법이 있다.

MVC 모델처럼  Apache에서(html, image, swf) 처리해야 될것은 철저히 분리 한다.

앞단에 두대정도 Apahce를 둔다. WAS서버는 4대면 충분하다. 


JVM쪽에 메모리릭이 발생된다면 jprobe같은걸 사용해도 좋다.

New eden영역


L7넷스케일러 스위치를 적절히 사용한다. 앞단의 Apache의 httpd.conf와 Max Client와

세션타임아웃값을 적절히 수정한다. 


 2] 무조건 JSP와 Oracle이다.

   두가지가 있다. 


   Jennifer soft의 APM(Application Performance Management)를 무조건 써야된다.

   성능 진단의 필수다. JVM모니터링 툴인데  악성 sql, 서버H/W상태, 

   초당 처리 속도 TPS(transfer per sec)가 나온다.

   ASP는 굉장히 어려운 환경이다. 윈도우서버라는 자체가 엄청난 고수가 아니고는 힘들다.

   IIS를 극대화시키기가 정말 힘들다. 그리고 업데이트시 계속 재부팅을 해야되는 경우도 발생 된다.

   PHP는 처음엔 정말 빠르다. 하지만 사람들이 몰리면 급격히 느려진다. 

   JSP는 메모리를 JVM에서 다 잡아 놓고 쓴다. 첨도 느리고 몰려도 그렇게 많이 느리지는 않다.

   GC를 많이 욕한다. 하지만 실제로 IIS나 PHP로 트래픽을 처리하는곳에 이야기를 들어보면 GC가 그나마 대안이다.

   IIS를 사용하는 곳은 장애가 발생되면 원인 조차 찾기 힘들다.


 3] 부하테스트를 해야된다.

   오라클 테스트 툴이나 그런 시나리오를 짜셔 부하를 만들어야 된다.

   여기서 가장 중요시 할 점은 내부에서도 테스트해서 성능을 극대화 시킨후

   꼭 외부에서 들어오는 네트워크 구성도 해보아야 한다는 것이다.

   모의해킹이나 취약점 진단도 IPS, 웹방화벽을 bypass하고 하는것과 그렇지 않은것에 차이가 있다.

   부하 테스트도 마찬가지다.


4] L7을 적극 활용하라

   L7기능은 막강하다.  와일드카드 공인인증서 설치는 기본이고 httpd.conf기능의 웬만한것을 거의다 구현이 가능하다.

   그리고 URL별 파싱이 가능하다. 플래쉬나 이미지 경로가 나오면 무조건 웹서버로 던지면 된다.

  

   L7 스위치가 제 일을 하면 WAS의 성능을 극대화 시킬수 있다.


 



'' 카테고리의 다른 글

PHPMailer 구글 SMTP 메일 보내기  (0) 2018.08.23
리눅스 서버 이관 작업  (0) 2017.10.26
취약점 점검과 모의침투 차이  (0) 2015.11.13
HTML5 활용  (0) 2015.11.09
SSO(Single Sign On)  (0) 2015.11.09
블로그 이미지

iesay

,

제로데이...

잡담 2015. 12. 1. 11:18

어제 Concert 침해사고대응협의회 해킹방지워스숍에 참가 하였다.

정태명 교수님 강의도 처음 들었는데 굉장히 시원 시원하셨다. 방어보다는 통제로 가야 된다는 강연 아주 감명 깊었다.

문제는 점심을 먹고 온 다음 강연이다. 어떤분이라고 밝히긴 좀 그렇지만 "제로데이 공격에 대한 행위 분석을 통해 휴리스틱 방법으로 유추할수 있다" 이런 내용이였다.

그래서 좌장이신분이 "가상화 환경에서 제로데이를 탐지 하기 위해서는 어플리케이션과 OS 최신 패치를 한 이미지도 있어야 되나"라는 질문을 하셨다.

그러니 스피커 발표 하신분이 동문서답을 하신거 같다.

왜 이런 문제가 발생되냐면 동일한 단어에 대해서 바라보는 관점이 다른것이다.

AV, IPS 시그니처나 패턴에 탐지되지 않는 공격은 제로데이 일수도 있고 아닐수도 있다.

미탐인 악성코드? 미탐인 공격이라 칭하는것이 맞는것이다. 그런데 구지 그런걸 제로데이 공격이라고 칭한다.

제로데이는 어플리케이션이나 OS 패치가 나오지 않은 공격이지,,, AV IPS에 없다고 제로데이라 칭하는것은 아니다. 두개의 의미는 분명히 다르다. 질문자와 발표자가 하나의 단어에 대해서 다른 의미로 해석을 하니 저런 동문서답이 나온다.

질문을 듣는순간 웃음이 나올수 밖에 없었다. 발표하신분도 물론 고생 하셨고 다른 강연도 모두 도움이 되었었다.

 

 

'잡담' 카테고리의 다른 글

경영학 관점에서 비트코인  (0) 2017.08.13
바퀴벌래...  (0) 2017.06.25
프로그래밍 이란?  (0) 2016.02.13
표창원 교수님 말씀  (0) 2016.01.01
Appscan에 대한 고찰  (2) 2015.11.23
블로그 이미지

iesay

,

게임핵 방어기법

리버싱 2015. 11. 28. 21:16

웹해킹과 시스템해킹에 대해 지루함을 느낄때 공부를 시작 한것이 리버스엔지니링이다.

예전에는 소프트아이스나 PC-tools, 게임위저드 같은 툴이 다였는데

어느순간 부터 ollydbg나 ida-pro가 등장하기 시작했다. 2005년 부터 한 4개월 정도 게임핵 을 접하기 시작 했다. 당시 유행하던 p2p나 총쏘는 게임이 주로 타겟이였다.

irc에서도 많이 유행하기 시작했고, 홈페이지도 붐비였다. 그리고 듀*님 블로그가 엄청난 조회수를 기록하기도 하였다.

게임핵은 어떻게 만드냐? 종류가 크게 3가지 정도로 본다. 계정탈취, 오토봇, 게임조작

아래에서는 계정탈취나 오토봇은 다루지 않겠다.

그럼 게임조작을 어떻게 하느냐? 

메모리조작과 EXE실행파일(엔진) 조작이 가능한 부분이다.

주로 총쏘는 게임을 많이 조작했는데 총쏘는 게임의 구조는 가장 좋은 PC를 서버로 두고

모든 유저가 그 서버에 접속을 하여 소켓통신으로 게임이 진행된후 게임결과를 다시 서버로 전송하는 방식이다.  웹하드의 스트리밍 서비스와 비슷하게 서버에 최대한 부하를 줄이고 유저들에게는 빠른 타격감을 느끼도록 제작된것이다.

다만 저런 구조다 보니 해킹에 취약할수 밖에 없는 구조다. 초창기에는 메모리해킹이나 엔진파일이 바로 변조가 되었는데 메모리해킹은 어느정도 막히고, 엔진파일에 대한 조작만 활발하게 되었다. 그래서 해당 엔진파일이 조작되면 용량도 바뀌고, 주소값에 대한 시그니처도 바뀌고 무결성이 침해된다.

그래서 엔진파일의 무결성을 위해  보장하기 위해 여러가지 보호기법이 등장하기 시작한다.

그게 바로 런처다. 런처는 흔히 쉽게 설명하여 canary와 비슷하다 bof에서도 RET가 변조되면 해당 프로그램이 종료 되듯이 해당 엔진파일이 변조되면 프로그램이 종료되거나 다시 엔진파일이 다운로드 되어 실행되게 되어있다.

이 런처를 뚫기 시작한것이다. 처음엔 단순한 패킹으로 우리들의 아마추어적인 실력으로 뚫리다. 이게 점점 어려워지기 시작하고, 2중 3중 방어막이 생기게 되었으나 이것 마져 뚫으니 전문적인 업체에 런처를 외주를 주기 시작 하였다. 그 전문적인 업체는 우리보다 뛰어난 기술을 보유하고 있었고, 더욱 더 몇몇 유저들이 몇만원에 파는 게임핵을 구매하여 패치하는 치밀함까지 보였다.

그래서 어디서 시작되었는지 모르겠는데 중국애들이 런처를 뚫기 시작했다. 물량 대 물량싸움이 되었다. 그리고 그렇게 뚫린 런처는 비싼 가격에 몇몇 유저만 사용되기 시작했다.

초창기에는 무반동, 연막무시, 무한수류탄, 무한총알, 무한체력 등이 있었지만 나중에 중국애들이 뚫었던 런처에서는 유료 풀템을 차면 이동속도가 10%정도 증가되는 아주 미묘한 성능 향상만 있었다. 만약 상대방이 왜 이렇게 빠르냐고 물어보았을때 풀템이라고 우기면 되는식;;

하지만 아직도 큰 구조는 벋어나지 못하는거 같고, 엔진파일을 조작한 핵은 존재할거라 믿는다. 다만 걸리지 않게 사용중인거 같다.

엔진파일을 조작하는 게임핵은 어떻게 막을것 인가? 요즘은 리플레이 기능이 있다. 그리고 소켓통신 중에 실시간으로 결과를 남기기는 힘드나 한판이 끝나면 그 게임 내역에 대해 전송받아서 분석하는건 가능하다. 후행적으로 FDS를 적용한다고 생각하면 쉬울것이다.

게임핵을 만드는곳과 방어하는곳은 해킹분야나 악성코드 분야와 비슷하듯이 뚫고 뚫리는 관계이다.

게임핵의 방어기술이 날로 발전하길 바라며 몇자 주절거러 본다.

허가 받지 않는 리버스엔지니어링은 절대 하지 말길 바라며 4개월 뒤 외국을 1년정도 다녀왔는데 같이 공부하던 친구들은 다 경찰서에 한번식 다녀 왔었다.

연락이 그뒤로 한명도 안되는데 다들 잘먹고 사는지 모르겠다.

블로그 이미지

iesay

,