개발환경 구성(Eclipse + JDK + Tomcat)
IDE : Eclipse Neon
JDK : 1.8
Tomcat : 8.0
웹 개발 입문자도 천천히 따라할 수 있도록 개발환경 구성 및 설정 부터 웹 개발에 필요한 많은 기능(지식)이 포함된 공지사항 기능구현까지 몇 회에 걸쳐 작성하도록 하겠습니다.
그럼 첫 단계로 [웹 환경의 이해1] 과 [웹 환경의 이해2] 글에서 집중 설명된
Application Tier에 대한 개발환경 구성을 시작할까요?
1. 환경구성에 필요한 SW 다운로드
◈ Eclipse 다운로드(SW 개발을 쉽게 할 수 있도록 도와주는 통합개발환경 툴)
zip파일 및 exe(설치형) 파일 형식 중 아무거나 다운로드 하시면 되요! 참고로 저는 zip파일 형식으로 다운로 할게요~
설치할 컴퓨터의 OS와 비트를 확인 후 다운로드 하세요~
다른 버전을 다운로드 받으려면 MORE DOWNLOADS 메뉴를 이용하시면 됩니다.
◈ JDK 다운로드(JAVA로 SW를 개발하기 위한 JVM(플랫폼 독립성 확보), JRE(실행환경), 각종 API 등 제공)
JDK 다운로드 사이트로 이동하여 JDK를 다운로드 합니다.(이클립스와 동일하게 자신의 OS에 맞는 버전을 다운로드~)
참고로 이클립스 네온을 사용하려면 자바 8버전 이상이 필요합니다.
마우스 스크롤을 내리면 Java Archive라는 내용이 보이고 "DOWNLOAD"라는 버튼을 클릭하면 다른 버전의 JDK도 다운로드 받을 수 있습니다.
◈ Apache Tomcat 다운로드(Web Server, WAS(Servlet 컨테이너) 역할)
저는 8.0버전을 다운로드 하였습니다.
zip파일 및 exe(설치형) 파일 둘 중 아무거나 선택하시면 됩니다. 저는 조금은 개발자 스러운 zip파일 형식으로^^
2. 개발환경 구성(압출풀기 및 설치)
- 개발환경 구성을 위한 폴더를 하나 생성 합니다.
- 저는 devdic이라는 폴더명으로 만들었습니다.
- 개발에 필요한 SW를 한곳에 통합함으로써 관리 및 개발환경 공유가 쉬워지는 장점이 있습니다.
- 아래의 그림 [개발환경 폴더 구성]처럼 하는 것이 목표입니다.
[개발환경 폴더 구성]
◈ Eclipse 압축풀기
- 새로만든 폴더(devdic) 아래에서 압축을 풀어줍니다.
- 그러면, devdic\eclipse\~의 형태로 구성됩니다.
◈ JDK 설치
- 다운로드 받은" jdk-8u121-windows-x64.exe" 파일을 실행합니다.
- 아래의 그림[JDK 설치] 처럼 설치 PATH를 변경해 주세요!
[JDK 설치]
◈ Apache Tomcat 압출풀기
- 새로만든 폴더(devdic)의 tomcat폴더 아래로 압축을 풀어줍니다.
- 그러면, devdic\tomcat\~의 형태로 구성됩니다.
지금 설정한 경로를 기본경로로 사용하고 다시 물을건지에 대한 옵션을 선택한 후 "OK" 버튼을 클릭합니다.
아래와 같은 그림이 나오면 정상적으로 eclipse가 구동이 된 것입니다.
웹 프로그램 개발을 위한 Application Layer의 필수 SW는 설치가 되었으니 Eclipse 플러그인 설치 및 환경설정/연동 단계로 넘어 갈까요?
'프로그래밍' 카테고리의 다른 글
스프링 프로젝트 - 공지사항 Request 처리를 위한 환경설정 (0) | 2017.02.21 |
---|---|
스프링 프로젝트-공지사항 등록 화면 구현 (0) | 2017.02.17 |
스프링 프로젝트-스프링 환경설정 (0) | 2017.02.15 |
스프링 프로젝트-프로젝트 생성 (0) | 2017.02.08 |
스프링 프로젝트-개발환경 구성(Eclipse 환결설정 및 플러그인) (0) | 2017.02.07 |
SW의 안전한 배포를 위한 코드 난독화 기술을 알아볼까요?
코드 난독화란 치환 및 자리바꿈 등의 기법을 사용해 소스코드를 알아보기 어렵게하는 만드는 기술입니다. JAVA를 다루는 개발자라면 난독화 기술을 알아둘 필요성이 있습니다. 자바는 JVM(JAVA Virtural Machine)위에서 실행되는 바이트코드 형태로 컴파일되며 컴파일된 코드에는 자바 소스코드 정보가 그대로 포함되어 있어 역컴파일(Decompile)을 쉽게 할 수 있습니다. |
난독화가 관심을 받는 이유를 정리해보면
▶ 역공학 방지
Decompiler를 통한 소스코드 분석 방지. 즉, 실행 중인 프로그램은 반드시 메모리에 적재되어야 하고 메모리에 적재된 코드를 Decompiler를 통해 원래의 소스코드로 변환이 가능하다는 이야기죠. 하지만 소스코드가 난독화가 되어있으면 디컴파일된 소스코드를 제대로 분석하기는 어려워요~~ 그래서 솔루션을 판매하는 기업은 핵심 알고리즘 및 라이센스 부분은 반드시 난독화를 적용 후에 판매해야 돈을 벌 수 있을겁니다.
▶ 보안강화
외부 공격 및 통계적 공격에 의한 코드 조작이 어려워 집니다.
난독화는 적용 대상에 따라 소스코드 난독화와 바이너리 난독화로 나누어집니다.
소스코드 난독화는 java, c/c++과 같은 소스코드를 문자열 치환, 자리바꿈 등의 기법을 사용해 소스코드를 읽기 어렵게하는 것이고, 바이너리 난독화는 exe, apk와 같은 실행파일이 대상이며 컴파일 후에 생성된 바이너리의 심볼 정보를 제게 및 변형하여 역공학을 통해 코드를 분석하기 어렵게 만드는 기술입니다.
난독화 적용기법
- 배치 난독화
프로그램에 큰 영향을 끼치지 않는 세부적인 요소들을 변화시키거나 제거하여서, 복원된 프로그램의 내용을 부분적으로 훼손시킴으로써 난독화를 한다. 변수 및 식별자의 이름 변조, 주석제거가 대표적인 방법이다.
- 데이터 난독화
데이터를 담는 변수 str을 str1, str2, str3로 나누거나 합치는 방법을 이용하여 난독화 수행
- 제어난독화
프로그램의 실행순서 및 흐름을 변경하는 것으로 프로그램의 문장이 묶이는 단위를 조절함으로서 난독화 한다
- 방지 난독화
알려진 Decompiler의 역난독화 기법을 봉쇄하여 디컴파일 수행 시 프로그램이 충돌하게 만드는 방법이다.
소스코드 난독화 적용 시 고려사항
- 난독화에 투입되는 비용과 효과를 분석하여 난독화 범위 및 수준 결정
- 높은 수준의 난독화는 시스템에 부하를 발생시켜 성능이 저하됨
- 난독화된 코드는 보안장비(IDS 등)를 우회할 수 있어 보안관리자 입장에서는 눈을 크게 뜨고 악성코드를 찾아야 겠죠~
'보안' 카테고리의 다른 글
SSL(TLS)란? (0) | 2017.04.13 |
---|---|
Ransomware(랜섬웨어) (1) | 2017.01.25 |
점점 악랄해지는 랜섬웨어
지피지기면 백전불패라고 랜섬웨어가 무엇인지 알아보자!
'몸값'을 뜻하는 ransom과 '제품'을 뜻하는 ware의 합성어로 사용자PC에 Drive By Download 형태로 악성 소프트웨어가 배포되어 개인정보 및 중요파일을 암호화는 악성 소프트웨어(멀웨어)를 지칭. 즉, 암호화된 개인정보 및 중요파일을 인질로 삼아 돈을 요구하는 공격기법이다. 매년 10억$가 넘는 돈이 몸값으로 지불되는 큰 시장으로 성장(?) 했습니다. |
최근에는 돈을 지불하더라도 데이터를 복호화해주지 않는 악랄한 랜섬웨어도 등장했습니다.
잠깐 악성코드(Malicious Code)에 대해서 알아보고 넘어가죠~
악성코드란 악의적인 행위를 하기위해 공격자가 만든 프로그램 및 구성요소를 총하는 단어로 해외에서는 악성 프로그램(Malicious Software), 줄여서 Malware라고 부릅니다.
악성코드(Malicious Code) = 악성 프로그램(Malicious Software) = Malware
악성 프로그램(멀웨어) 종류는 어떤것이 있을까요?
1. Virus(바이러스)
가장 친숙한 단어죠!
정상파일을 감염 시키는 형태의 악성코드로 감염대상이 없을 때는 실행이 안되며, 감염파일에서 다른 정상 파일로자기복제가 가능하고 N/W를 통한 전파는 안됨
2. Worm(웜)
바이러스와 다르게 감염대상이 존재하지 않아도 스스로 실행이 되며 자기복제 및 N/W를 통한 전파 가능
3. Trojan(트로이목마)
우리가 알고있는 트로이목마 이야기처럼 정상파일로 가장하거나 정상파일 안에 삽입되어 실행되며 사용자의 정보를 공격자에게 유출
4. Adware
광고를 계속해서 띄워서 사용자를 불편하게 하는 악성코드로 정보유출은 하지 않는다.
5. Malicious Bot
악성 프로그램이 스스로 실행을 못하고 공격자의 원격제어로 실행, 주로 취약점, 백도어(Back Door) 등을 이용해 전파
6. Back Door
시스템 관리자가 고의적으로 만들어놓은 시스템의 보안 헛점으로 사용자 인증 절차를 거치지 않고 시스템에 접근할 수 있도록 응용프로그램 또는 운영체제에 삽입된 프로그램. 그래서 공격자는 다음 침입을 위해 관리자(사용자)가 모르는 백도어를 만들어 놓고 빠져나가죠~~
랜섬웨어로 다시 돌아와서 램섬웨어의 감염경로를 알아보죠~
방법 |
감염경로 |
내용 |
Spam |
이메일의 첨부파일 |
악성코드가 이메일의 첨부파일 형태로 전송 |
Social Engineering |
사회적 친분 관계 위장 |
친분관계를 이용한 악성 프로그램 설치 유도 |
Drive By Download | 위·변조 웹 사이트 | 잘 알려진 웹 브라우저 또는 플러그인의 보안 취약 점을 통해 웹 사이트에 접속만으로 사용자PC에 악성 프로그램 설치 |
Malvertising | 스파이웨어 | 온라인 광고에 악성 프로그램을 심어서 공격 |
그러면 랜섬웨어에 감염되면 어떤 현상이 벌어지죠?
해커가 아래의 [그림1]처럼 아주 친절하게(?) 설명해줍니다ㅜ.ㅜ
당신의 컴퓨터가 잠겼으니 돈을 지불하면 해결해주겠다~
[그림1]
대부분의 사이버 공격이 그렇듯이 랜섬웨어도 마찬가지로 감염되면 완전한 복구(해결)이 힘듭니다.
- CryptoLocker 같은 경우 비대칭키 암호화 방식(RSA-2048)을 사용하여 암호화한 공격자의 개인키가 없으면 복보화 불가능
[그림1]과 같은 화면과 마주하지 싫으시다면 다음과 같은 방법으로 예방하세요~~
1. 백업 : 중요파일(사진, 동영상, 문서 등)을 미리 외장하드나 구글 드라이브 등에 백업한다.
2. 이메일 : 확인되지 않은 이메일의 링크 클릭, 첨부파일 다운로드를 하지 않는다.
3. 페치 : 귀찮더라도 OS 및 백신의 최신 보안 페치 업데이트
4. 브라우저 설정 : 무분별한 다운로드 방지를 위한 설정
5. Safe URL : 신뢰성있는 안전한 사이트 접속(도박 및 성인 사이트 접속 자제)
위의 예방방법을 보시면 알겠지만 기술적 접근보다는 보안에 대한 개인의 관심과 노력이 중요합니다.
'보안' 카테고리의 다른 글
SSL(TLS)란? (0) | 2017.04.13 |
---|---|
코드 난독화 (Obfuscation) (0) | 2017.01.26 |