외부접속 

$ mongo --host 127.0.0.1 --port 27017

mongo DB 복구

$ mongorestore --host 127.0.0.1 --port 27017 20190101/


* 복구 전에 존재하는 컬렉션을 없애고 싶다면 --drop 옵션

* 20190101 : 백업시 폴더 이름을 이렇게 저장 ( 복구시에도 폴더이름을 이걸로 사용하여야함)

 

만들어져 있는 계정이 있을경우 아래와 같이 접속

$ mongo <host:port> -u "아이디" -p "패스워드" --authenticationDatabase "admin"

블로그 이미지

_B_G_

,

$ mongo  ## 몽고 접속


> use admin # admin 사용자 생성 (원하는대로 호출가능)

> db.createUser({ user: "admin", pwd: "어드민패스워드", roles: [{ role: "userAdminAnyDatabase", db: "admin (사용자 생성한 admin 입력)" }] })


admin이라는 DB에게 userAdminAnyDatabase 라는 권한을 줌

userAdminAnyDatabase : 모든 데이터 베이스 사용자 관리 (작성, 업데이트, 삭제)


다음 명령으로 위의 admin DB에게 admin 사용자 생성이 되었는지 인증 하는 명령어

> db.auth ("admin","어드민 패스워드")

> 1 # 이라고 뜨면 성공

>exit

--------------------------------------

$ vim /etc/mongd.conf #접속


security:

authorization: enabled # 추가

systemctl restart mongo # 재실행


$ mongo # 접속


> use admin # userAdminAnyDatabase 모든 권한이 부여된 admin 데이터베이스 접속 / 접속하면 다른 사용자에게 권한 부여 및 생성 가능

> db.auth("admin","어드민패스워드") # 인증 접속


> use 생성하고픈 # 계정 생성 및 권한 부여 하려는 데이터베이스 이름

> db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "생성하고픈" }] })


dbOwner : 사용자에게 데이터베이스의 모든 컬렉션에 대한 읽기 및 쓰기 권한을 부여한다

> db.auth("youruser","yourpassword")

> show collections # 체크


블로그 이미지

_B_G_

,

OpenJDK 8 버전 Download 

sudo apt-get update 

sudo apt-get install openjdk-8-jdk


JDK 1,2,3,4 select

sudo update-alternatives --config java


블로그 이미지

_B_G_

,


1. 서비스 형태로 등록하여 자동 실행 하게끔

저장소를 이용하여 일래스틱 설치 


2. 다른 방법은 저장소 없이 zip 설치하여 일래스틱 바로 실행 



- 자바 라이브리러 설치

sudo apt install -y openjdk-8-jre



쿠쿠에서는 일래스틱 서치 5버전을 지원함 5버전 다운 받을 수 있도록 저장소 등록

echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list


- 서명키

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -


apt 저장소 업데이트

sudo apt update


- 일래스티 설치

sudo apt install -y elasticsearch


설치 후 

/etc/elasticsearch/elasticsearch.yml - 설정 변경


sudo systemctl enable elasticsearch.service

sudo systemctl restart elasticsearch.service


- 일래스틱 실행되었는지 확인

curl -X GET http://192.168.xx.xxx:9200


쿸쿠 일래스티 연동을 위한 수정

reporting.conf

enabled = yes

hosts = 개인 서버아이피:9200

calls = yes

cuckoo_node = es-node-1


일래스틱 서치 템플릿 업로드 

curl -X PUT 개인 서버아이피::9200/_template/cuckoo_template -T ~/.cuckoo/elasticsearch/template.json


웹서버 껐다 킴



블로그 이미지

_B_G_

,

1. 패키지 업데이트

etc/apt/source.list - 패키지 들어있는 소스

source.list -> https://gist.github.com/h0bbel/4b28ede18d65c3527b11b12fa36aa8d1 

:%s/kr.archive.ubuntu.com/ftp.daumkakao.com

 

2. ubuntu tui - 데스크탑 설치

 -  1. sudo apt install tasksel - 우분투 gui 환경설정 창

 -  2. sudo apt install lubuntu-desktop - 우분투 gui 설치

       (2번 방법으로 설치 다하고 재부팅하면 루분투 설치 완료)

       (3번 방법은 tasksel GUI로 체크 해서 설치하는 방식 2번 완료하면 할 필요 없음)

-   3. $ tasksel - 실행 lubuntu-desktop 체크 확인 -> 재부팅


 

3. 레이드 마운트

3.1 sudo parted /dev/sdb - 디스크 선택

3.2 mklabel gpt - 2테라 이상 - gpt

                       2테라 미만 - fdisk

3.3 mkdir - 마운트 시킬 폴더 생성

3.4 blkid - 생성 되었는지 확인

3.5 sudo mkfs.exe4 /dev/sdb1 - 만든 파티션 포맷

블로그 이미지

_B_G_

,


업데이트 서버는 기본적으로


Kr.archive.ubuntu.com 으로 되어있으나


그대로 사용 할 경우 서버 통신이 안되는 경우가 있음 그래서


다른 주소로 업데이트 받을것.


주소 변경 파일


sudo vi /etc/apt/sources.list


":"를 눌러서 명령어 입력모드 


:%s/현재있는문자열/바꾸고싶은문자열

:%s/kr.archive.ubuntu.com/ftp.daumkakao.com


하면 끝.

 

 

--------------------------18.04 서버 sources.list 내용-----------------------------

 

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://us.archive.ubuntu.com/ubuntu/ bionic main restricted
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://us.archive.ubuntu.com/ubuntu/ bionic universe
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic universe
deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates universe
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team, and may not be under a free licence. Please satisfy yourself as to 
## your rights to use the software. Also, please note that software in 
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://us.archive.ubuntu.com/ubuntu/ bionic multiverse
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic multiverse
deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://us.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu bionic partner
# deb-src http://archive.canonical.com/ubuntu bionic partner

deb http://security.ubuntu.com/ubuntu bionic-security main restricted
# deb-src http://security.ubuntu.com/ubuntu bionic-security main restricted
deb http://security.ubuntu.com/ubuntu bionic-security universe
# deb-src http://security.ubuntu.com/ubuntu bionic-security universe
deb http://security.ubuntu.com/ubuntu bionic-security multiverse
# deb-src http://security.ubuntu.com/ubuntu bionic-security multiverse

 

블로그 이미지

_B_G_

,



목차

 

 

1. Yara

시그니처 String 탐지

시그니처 Binary 탐지

 

2. 정규표현식

Yara Rule 수집

Python Source Code

 

3. Yara Rule 응용

 

 

Yara ?

 

- Yara는 악성 파일을 시그니처 기반으로 판별 및 분류 할 수 있게 하는 툴

- Linux, Windows OS에서 모두 사용 가능

- 소스코드 컴파일, Python 모듈, 파일 실행 방식 등 다양한 방법으로 Yara 설치 및 실행 가능

 

시그니처 - String 탐지

 

스트링 탐지란?

Value 타이틀에 속해 있는 String들을 탐지하는 방법. 그리고 탐지 문자열을 대소문자 구별을 하고 싶다면 뒤에 "nocase"를 붙여 사용한다.

Condition의 역할은 결과값이 ""인지 "거짓"인지 판별 해준다.

 

 

 

밑의 hex 정보에서 2바이트씩 사용되는 " U . P . X . 0 " UniCode인 스트링을 탐지할려면 위와 같이 대소문자를 구별하기 위해선 "nocase"를 붙였다면, UniCode 탐지를 위해선 "WIDE ASCII"를 붙여 주면 된다.

 

이외의 방법으로는 탐지 문자열(UPX) 주변이 특수 문자일 경우에만 탐지하는 방법인데, 예를들어 123UPX123 , aaUPX1aa2 이와 같이 UPX를 탐지하게 되면 주변 문자열과 상관없이 특정 문자열을 탐지 하게 된다. 하지만 이럴경우 UUUPXXX 이런식으로 쓸모없는 문자열도 탐지가 될 수 있기 때문에  "....UPX....." , "__UPX_" , " UPX !이러한 주변 특수문자가 존재하는 경우의 문자열만 탐지하도록 한다

 

 

시그니처 - Binary 탐지

 

Binary ?

파일 내부의 HEX값 탐지하는 기법으로 문자열 뿐만 아니라 16진수 값을 Rule에 적용 할 수 있으며, WILD CARDS를 사용하여 1바이트를 랜덤으로 대체 할 수 있다.

 

<일반 16진수 시그니처> 일반 HEX값을 시그니처 RULE 제작 한 경우<WILD CARDS 사용한 시그니처> 1바이트 HEX값을 ?? (랜덤표시로 대체하여 저 공간에 00~FF 랜덤으로 대체하고 주변 HEX값들로 탐지를 하는 방법

 

 

WILD CARDS 뿐 아니라 JUMPS라는 기능도 사용 가능

JUMPS란 예를들어 그림에 나와있는 E2 8E 사이의 글자수를 임의로 정할 수 있음. [1-5] 란 뜻은 E2 8E 사이에 1-5바이트의 길이가 랜덤으로 들어갈 수 있다고 보면 됨

 

그 외에도 HEX(8E|88) 중에서 OR 기능을 사용하여 둘 중 하나라도

해당되어도 탐지되는 방법이 있다. 

 

정규표현식

 

정규표현식이란 특정한 규칙을 가진 문자열의 집합을 표현할 때 사용하는 '형식 언어' 이다. Yara에서는 특정 문자열이나 바이너리뿐만 아니라 정규표현식도 사용 할 수 있다.

 

정규 표현식으로 Yara Rule 적용

 

/HTTPS:\S+\ - HTTPS: 로 시작하는 문자열을 탐지한 후 뒤의 문자열 까지 추출

/(\d{1,3}\.){3}\d{1,3}/ - 숫자를 출력 해주는 방법이지만 " . "을 붙여 IP 형태의 숫자만 출력하도록 정규표현식 작성

 

 

 

 Yara Rule 수집

 

https://github.com/Yara-Rules/rules

github에서 Malware Yara Rule들을 제공하는 사이트가 존재하여 여기서

최신 Rule들이 올라오는지 확인하여 지속적으로 추가해주여야함

 

 

Python Source Code

 

Yara Rule을 좀 더 수월하게 사용하기 위하여 Python을 이용하여 하나의 파일 대상을 여러개의 Yara Rule들과 비교하는 소스코드를 작성

 

 

 

281개의 Rule들이 들어있는 "/root/Samplerules/rules/malware" 폴더

 

Rule 탐지를 할 때 Rule 이름도 같이 출력이 되기에 어떤 Rule에서 탐지되었는지 확인 가능 또 탐지가 되었다면 어떤 String , Binary 몇 번째 줄에서 탐지 되었는지 확인 가능

 

<탐지 결과>

 

Yara Rule 응용1 - BackDoor 악성코드 C&C 서버 추출

 

BackDoor (악성파일) 동적으로 스트링 추출 후 Yara Rule 검사

정규표현식 Yara Rule 제작 - URL , IP 텍스트 출력

 

<Malware_URL_List>

 

<Malware_IP_List>

 

<파일 내부에서 실행되고 있는 스트링 중 IP 의심 출력>

 

와이어샤크 (WireShark)를 이용하여 TCP 통신 IPBackDoor(악성파일)에 속해 있는 IP 대조 C&C 서버 통신 확인 후 상세 분석

 

 

Yara Rule 응용2

 

HTTP : URL List들이 모여있는 .txt 파일 .csv 파일등을 URL 한줄 씩 불러와 해당 URL의 웹페이지 소스 또는 http://dd.com/aa.exe 실행파일 등의 PE 소스를 출력하여 수 많은 Yara Rule 시그니처를 비교하는 자동화 소스코드 제작

 

 

 

1. 실행파일.py 실행

2. .csv 또는 .txt 형태 안의 URL 한줄 출력

3. Yara Rule 폴더 안의 (개수 상관x) 모든 시그니처 검사

4. 결과 출력 - 탐지된 스트링 , Yara Rule 이름 출력 or 결과 .txt 형태로 저장


블로그 이미지

_B_G_

,

목차


1. 디지털 미디어 보안 

1.1 분석 사용도구 

1.2 분석 목적 

1.3 수행 기간 

1.4 디지털 미디어 보안 프로그램 제작 

1.4.1 결과 

1.4.2 S-DES 암호 알고리즘 

1.4.3 이미지 파일 불러오기 및 암,복호화 


2. 모바일 사진 보안 

2.1 분석 사용도구 

2.2 분석 목적 

2.3 수행 기간 

2.4 모바일 사진 보안 앱 제작 

2.4.1 모바일 사진 보안 

2.4.2 문자열 파싱 

2.4.3 Encryption Class 

2.4.4 Main Class 

2.4.5 Sub Class 


프로젝트명

S-DES암호 알고리즘을 이용한 디지털 미디어 보안

수행기간

5

사용 도구

Microsofe Visual Studio - MFC

목적

디지털 미디어는 어떠한 방법으로 보안되는지 알아보기 위함


1.결과

- 만들면서 부족한 부분은 아무래도 키 값 부분이 한자리 수만 받아들여지기 때문에 쉽게 보안이 깨질 우려가 있고 미디어 보안 자체를 처음 접하다 보니 어떤식으로 접근할지 생각하다가 픽셀값 밖에 떠오르지 않아서 이미지 형태를 깨지게 하고 그로 인해 중요한 미디어 파일들을 보안 시킬 수 있도록 수업시간에 배운 S-DES암호 알고리즘을 적용 시켰습니다.


2.S-DES 암호 알고리즘

- 미디어 보안을 적용 시킬 S-DES암호 알고리즘은 수업시간에 배우면서 작성한 C언어 소스를 가져와서 이미지 파일을 적용 시킬려고 함



3.이미지 파일 불러오기 및 암,복호화

- 이미지 파일 변화를 눈으로 확인하기 위하여 프로그램내에 불러와지도록 설정


- 해당 이미지의 암호화,복호화를 선택 할 수 있으며, 키 값은 문자열로 받고 a~z,0~9 까지 사용가능함 그리고 이미지 R,G,B의 픽셀값을 미리 얻어 온 뒤 RedGreenBlue값 각 하나당 암호 알고리즘을 사용함


- 키 값을 “A”로 지정한뒤 암,복호화 실행


- 암호화 -> 복호화

- 복호화를 할 때 원래 지정한 키 값 “A”가 아닌 “B”로 설정을 하였을 경우 원래 키 값이 아니기 때문에 오히려 이미지 손상이 심해짐




프로젝트명

S-DES암호 알고리즘을 이용한 모바일 사진 보안 앱

수행기간

10

사용 도구

Android Studio 2.2.2 - JAVA

목적

모바일에서도 사진 보안이 가능한지 확인하기 위함


1.모바일 사진 보안

[앱 초기화면]


[사용법]

[Key 721 입력 후 암호화 시작]

키입력은 0~1023 (10비트) 제한적

[암호화 대상 사진 선택]


[사진 선택 시 암호화 작동 및 이미지 뷰 암호화된 사진 출력,저장]

[Key 721 입력 후 복호화 시작]

[복호화 대상 사진 선택]


[정상적인 Key값으로 실행한 결과]

[비정상적인 Key값으로 인한 복호화 실패]

2.문자열 파싱

<!--[if !supportEmptyParas]--> <!--[endif]-->

[ 사람인 파싱 대상 사이트: http://m.saramin.co.kr/job-industry/job-list?mcd=9&bcd=4&cd=402 ]


[사람인 버튼 클릭]


[파싱 정보 불러오는 상태창]


[문자열 출력]

3.Encryption Class


[C언어->JAVA] S-DES 알고리즘

4.Main Class

[사진 선택 및 암,복호화 시작]


5.Sub Class


블로그 이미지

_B_G_

,