Haekt‘s log

[P1 악성코드탐지] 1-1. 실습환경 구성 본문

AI 인공지능/인공지능 보안을 배우다

[P1 악성코드탐지] 1-1. 실습환경 구성

Haekt 2022. 12. 20. 20:07

이 글은 서준석님의 "인공지능, 보안을 배우다" 책을 참고해 작성하였다.


 

1. 가상머신

먼저 가상환경을 구성해야한다.
가상머신 프로그램은 vmware 를 사용했다.
아래의 사양을 맞춰서 할당해 주는 것이 좋다.

구분 최소 사양 권장 사양
CPU 인텔 코어 i5 인텔 코어i7
RAM 8GB 32GB
GPU RAM 3GB 8GB
하드디스크 50GB 200GB

 


 

2. 우분투 설치

우분투 iso 파일은 아래 링크에서 받을 수 있다.
나의 경우에는 ubuntu-16.04.7-desktop-amd64.iso 파일을 다운받았다.
http://releases.ubuntu.com/16.04/

 

Ubuntu 16.04.7 LTS (Xenial Xerus)

Select an image Ubuntu is distributed on two types of images described below. Desktop image The desktop image allows you to try Ubuntu without changing your computer at all, and at your option to install it permanently later. This type of image is what mos

releases.ubuntu.com

iso설치가 끝났다면, vmware 를 실행시켜준다.

2-1. 아래 더보기를 통해 머신 설정을 해주자.

더보기

1. Create a New Virtual Machine 클릭

 

2. Typical 기본으로 Next 클릭

 

3. I will install the operating .. 선택후 Next 클릭

 

4. Linux 를 선택 후 ubuntu 를 선택

 

4. 가상머신 이름을 작성해주고 next

 

5. 디스크 용량을 50 으로 설정 후 next 클릭

6. 메모리 설정을 위해 custumize Hardware 클릭

 

7. 메모리를 8GB(8192MB) 로 설정 + 프로세서 코어 값 최대로 설정 + virtualize Inten VT-x 체크

 

8. CD/DVD 에서 Use ISO image file 선택 후 다운로드 한 ubuntu iso 파일을 지정하고, Connected at power on 체크



2-2. 아래 더보기를 통해 우분투 설치를 해준다.

더보기

1. Download updates while installing ubuntu 체크박스 선택 후 Continue 클릭

2. Erase disk and install Ubuntu 선택후 Install Now 클릭, 팝업창 뜨면 Continue 클릭

3. Seoul 선택 후 Continue 클릭

4. 키보드 레이아웃은 English 로 그래로 두고 Continue 클릭

5. 계정명과 비밀번호 입력후, Log in automatically 선택 후 Continue 클릭

6. 설치 완료 후 재부팅

7. 터미널을 열고 sudo apt-get update 와 sudo apt-get upgrade 명령어 실행(업데이트)

8. vi 에디터 설치 : sudo apt-get install vim



 

3. python 을 위한 아나콘다 설치


아래 링크에 접속하여 아나콘다 설치파일을 다운로드한다.
https://www.anaconda.com/distribution/#download-section

 

Anaconda | Anaconda Distribution

Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com


firefox 를 통해 다운로드 하면된다.


다운받은 후, 터미널을 열고 설치받은 파일의 위치로 이동한다

그 후 아래의 명령어를 실행하여 아나콘다를 설치한다.

stud@stud:~$ cd ~/Downloads
stud@stud:~$ chmod 755 ./Anaconda3-2022.10-Linux-x86_64.sh
stud@stud:~$ bash ./Anaconda3-2022.10-Linux-x86_64.sh

설치 과정-

더보기

1. Enter키를 눌러 라이선스를 열람하고 yes를 입력해 동의 완료

2. 아나콘다 설치 경로 확인 후 엔터키를 눌러 설치 시작

3. 환경변수 추가 질문에 yes 를 입력하고 엔터

4. VSCode 설치 여부에는 no 를 입력하고 엔터



설치가 끝나면 아래 코드를 입력해 설치가 되었는지 확인한다.

stud@stud:~$ conda -V
conda 22.9.0


만약 conda -V: command not found 가 뜰 경우 .bashrc 에 명령어 PATH 가 등록 되어있지 않아서 그렇다.
아래의 더보기에 있는 방법으로 해결해준다.

더보기
$ vi ~/.bashrc

# 아래 코드를 추가해준다. username 에 자신의 계정을 바꿔서 써줘야한다.
$ export PATH="/home/username/anaconda3/bin:$PATH"   

# !wq 로 나간 후.
$ source ~/.bashrc

4. python 가상환경 만들기


가상환경을 만들면 특정 버전만 지원되는 패키지를 설치할 때 유용하게 사용할 수 있다.

예를 들어 2.7버전에서만 지원되는경우,
2.7버전이 설치된 가상환경 내부에서 해당 패키지를 설치 할 수 있게 된다.

아나콘다를 이용해 가상환경을 만들자.

stud@stud:~$ conda create --name mlsec_27 python=2.7
# 2.7 은 python 버전을 뜻함


* 혹시 만약

"nowritableenvsdirerror no writeable envs directories configured"
이런 오류가 뜬다면, 하단에 뜨는 경로로 이동해 보자.

내 경우에는 .conda 의 permision 문제였다.

sudo chown -R username:username /home/username/anaconda3

위 코드를 작성해서 해결했다.

*그래도 해결이 안될경우 두 경로에 envs 디렉토리가 있는지 확인하고, 없으면 만들어 주자.


create 를 했다면 아래 코드를 입력하여 가상환경을 활성화를 해주자

stud@stud:~$ source activate mlsec_27
(mlsec_27) stud@stud:~$

그럼 명령 프롬프트의 이름이 가상환경의 이름으로 바뀌게 된다.
만약 추가 패키지 설치를 원할경우 가상환경을 꼭 활성화 하고 설치를 진행해야 한다.


 

5. 주피터(jupyter) 환경설정

주피터는 코드, 공식, 시각화 기능을 포함한 문서를 지원하는 웹 애플리케이션으로,
다양한 프로그래밍 언어를 지원하는 코드 작업 환경이다.
웹상에서 코드를 작성해 결과를 바로보고, 그래프를 바로 그릴 수 있다는 장점이 있다.

(mlsec_27) stud@stud:~$ jupyter --paths

위 코드를 입력하면 주피터의 설정을 볼 수 있다.


가상환경을 활성화 한 상태에서, which 명령어를 통해 가상환경이 설치된 경로를 확인하자.

(mlsec_27) stud@stud:~$ which python


그 후, ipykernel 모델을 설치하고, 주피터에 가상 환경을 추가한다.

(mlsec_27) stud@stud:~$ pip install ipykernel
(mlsec_27) stud@stud:~$ sudo mkdir /home/stud/anaconda2/share/jupyter/kernels/mlsec_27


이제 생성한 커널 폴더 내부에 kernel.json 파일을 하나 생성한다.
python 경로는 앞서 확인한 경로로 작성해주면 된다.

(mlsec_27) stud@stud:~$ sudo vi /home/stud/anaconda2/share/jupyter/kernels/mlsec_27/kernel.json

# 작성할 내용

{
	"argv": [ "/home/stud/.conda/envs/mlsec_27/bin/python", "-m", "ipykernel",
    "-f", "{connection_file}"],
    "display_name": "mlsec_27",
    "language": "python"
}


마지막으로 주피터를 실행해주자.

(mlsec_27) stud@stud:~$ jupyter notebook --ip=0.0.0.0



결과적으로 이런 창이 하나 뜬다.

우측 상단의 new 를 눌렀을때 가상환경의 이름이 보이면 성공적으로 주피터에 등록된 것이다.

주피터는 가상머신 뿐만 아니라 실행시 터미널에 보이는 토큰과 함께 제공된 url 을 통해 호스트에서도 접근이 가능하다.

url 예시-

더보기

밑줄 부분을 호스트의 브라우저에 입력하면 접속이 가능하다.

Comments