블로그 이미지
Flying Mr.Cheon youGom

Recent Comment»

Recent Post»

Recent Trackback»

« 2026/4 »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

 
 

[CouchDB] ruby에서 couchdb 잘 사용하기

서버/BigDB | 2013. 10. 28. 15:21 | Posted by youGom





'서버 > BigDB' 카테고리의 다른 글

[CouchDB] 5984 port open, access couchdb  (0) 2013.10.27
[CouchDB] CouchDB on NodeJS, cradle  (0) 2013.10.27
[CouchDB] Map/Reduce 개념잡기  (0) 2013.10.25
:

[CouchDB] Map/Reduce 개념잡기

서버/BigDB | 2013. 10. 25. 14:48 | Posted by youGom




기본 개념 잡기 좋은 슬라이드 자료!





'서버 > BigDB' 카테고리의 다른 글

[CouchDB] ruby에서 couchdb 잘 사용하기  (0) 2013.10.28
[CouchDB] 5984 port open, access couchdb  (0) 2013.10.27
[CouchDB] CouchDB on NodeJS, cradle  (0) 2013.10.27
:

안드로이드 포렌식

원제 Android forensics : investigation, analysis, and mobile security for google android.
페이지 480|ISBN ISBN 안내 레이어 보기 9788960774032|판형 B5, 188*257mm|책정보더보기 도서관 소장 정보 국립중앙도서관



@ ADB 사용 준비

 - VMware, VBOX로 USB 연결하기, 연결 시 쓰기방지 할것. ( 자동마운트 대신 수동 마운트로 할것 )

 - ADB 사용법 추가 확인 주소 : http://developer.android.com/guide/developing/tools/adb.html#commandsummary


@ 안드로이드 파일시스템과 데이터 구조

 :  물리 메모리와 파일시스템과 데이터 구조는 안드로이드 기기의 데이터 저장소를 위한 기본요소다. 그러한 요소들을 깊이 있게 이해하게 되면 안드로이드 기기를 잘 이해할 수 있을 뿐만 아니라 새롱누 파일시스템과 데이터 구조를 보게 되더라도 스스로  조사할수 있게 된다.

  - yaffs2.tar.gz 를 다운 받아서 설치한 뒤 디바이스에 마운트해서 해당 값을 확인할 수 있다.

  - Shared Preferences

    -- boolean, float, int, long, strings 에 대한 값이 저장된다.

    -- 경로 : /data/data/apk_pkg_name/shared_prefs

  - SQLite 정보 위치 ( /data/data/com.android.webkit )

    -- app_icons, app_cache, app_geolocation : 아이콘 DB 1개 , 웹 어플 데이터 캐시 1개, GPS 위치와 권한과 관련된 DB 2개

    -- app_databases 웹사이트 지원을 위한 로컬 데이터 베이스 저장소를 제공하는 21개의 데이터 베이스

    -- databases : 브라우저와 브라우저 캐시를 위한 데이터 베이스 3개

  - db 보는 명령어

    -- sqlite3 db.db


@ 안드로이드 포렌식 기술

 : 안드로이드 기기에서 포렌식 이미지를 획득하기 위한 기술을 여러가지가 있다. 만약 분석 대상 기기가 패스코드로 보호돼 있다면 그것을 회피하거나 우회해서 데이터를 추출해야만 한다. 패스코드를 회피하기 위한 기술을 여러가지가 있지만 어느 상황에서나 항상 패스코드를 회피하는 것은 불가능하다. 일단 기기에 접근 가능하면 포렌식 분석가는 삭제되지 않은 데이터에 초점이 맞춰진 콘텐트 프로바이더를 통한 논리적인 데이터 획득이나 물리적인 데이터 획득 방법 중에서 어느 기술을 사요할 것인지 선택할 수 있다. 물리적 데이터 획득 기술은 이용하면 더 많은 데이터를 얻을 수 있지만 일반적으로 더 복잡한 분석 기술을 필요로 한다.

 - APK 보안 검토 툴 : http://viaforensics.com/appwatchdog/

 - AFLogical : 콘텐트 프로바이더로 접근할 수 있는 정보를 추출한다. viaForensics에서 무료 배포.

  -- 결과물은 CSV로 출력



 - 포렌식에 사용될 수 있는 상업용 제품

  -- Cellebrite UFED

  -- Compelson MOBILedit!

  -- EnCase Neutrino

  -- Micro Systemation XRY

  -- Paraben Device Seizure

  -- viaForensics의 viaExtract

  ( more. Oxygen Forensic Suite, Logicube's CellDEK )


 - 기기의 루트 권한 획득

  -- [ $ adb shell su ] 명령어로 루트 권한 획득이 가능한지 확인 ( 루팅 확인 )

  -- 복구 모드를 이용하여 루팅( 일시적/영구적 ) 하거나 취약점을 사용해서 루팅한다.

  -- 권한 획득 : 부트로더, RSD Lite, sbf_flash, fastboot, AFPhysical


@ 안드로이드 애플리케이션과 포렌식 분석

 : 조사할 안드로이드 기기를 획득하는 것은 연구나 개발, 논의 에 있어서 매우 주요한 부분이지만 안드로이드 포렌식에서는 단지 시작일 뿐이다. 분석을 위해서는 논리적 물리적 기술이 모두 필요하다. 하지만, 물리적 데이터 획득 이후에 더 많은 양의 분석이 요구 된다. 이 부분에서 목적은 포렌식 분석가나 보안 엔지니어가 안드로이드 기기를 조사할 수 있는 기술, 심지어 포렌식 툴이 제대로 지원하지 못하는 파일시스템이라고 하더라도 그것을 조사할 수 있는 기술을 제공하는 것이다. 기존의 포렌식 툴과 리눅스 명령. 그리고 경우에 따라서는 헥스 분석을 사용하면 조사가 필요한 데이터 대부분을 분석할 수 있다.

 - Hex : 포렌식 분석가의 좋은 친구

  -- $ sudo apt-get install ncurses-hexedit // 매우 빠른 터미널 기반의 헥스 에디터; 다른 것을 써도 된다.

 - strings 를 활용해서 정보의 갯수를 알 수 있다; 정보의 유/무

  -- $ strings --all --radix=x mmssms.db | grep 312123123 | wc -l // 해당 정보 312123123가 몇 개 존재하는 지 알수 있다.

 - FAT 포렌식 분석

  -- log2timeline을 이용한다. 그 전에 앞에서 활용했던 SD 카드 이미지 만들기, TSK의 mmls로 이미지를 조사하고, 이미지를 마운트해야 한다. ( 기타 추가 설명은 p 384에 있다. )

- YAFFS2( http://yaffs.net/yaffs-debugging ) : $ scalpel -c ~/scalpel-android.conf ~/xxx-datadata.dd -o ~/xxx-scalpel-test

- 법 집행기관이나 포렌식 분석가를 위한 리눅스를 아주 잘 설명한 웹사이트 ( Linux LEO : The Law Enforcement and Forensic Examiner's Introduction to Linux ) : http://www.linuxleo.com



# 책을 다 보고 나니, 이렇게 간단히 정리되었다. 정보 파일에 접근하기 위해 복구 및 권한을 가진 후 기기에 손상이 가지 않도록 복사한다. 그 다음에 해당 정보에서 필요한 정보를 추출한다.

# 여기서 들어가는 기술을 분리하자면 권한 획득, 복구 기술, 접근 기술, 추출 기술로 나뉘어지는 것 같다.














:

  빠르게 활용하는 JBOSS 5

노먼 리차드, 샘 그리피스 주니어  |양재영, 김명희, 신장섭  |위키북스 |2011.07.07

 

jBoss에 대해 잘 모르기 때문에 독서하듯 그냥 훑어 읽엇다. ( 큰 가닥만 보면서 읽었다. )

jBoss가 어떤 기능을 하고 있는지 중요한 요소가 무엇인지 보고, 서버를 구축함에 있어 어떤 게 필요한가에 대해서 읽었다.

Detail Contents은 두 세권을 더 보면서 익힐 예정이다.

 

jBoss는 J2EE에서 사용되는 EJB와 관련이 있는 WAS이다. WAS는 웹 애플리케이션 서버이다.

웹 애플리케이션 서버는 일반적인 웹 서버라 생각하면 된다. 우리가 흔히 사용하는 네이버와 같은 포털 웹서버 말이다.

( 헷갈릴 듯 한데, Web Server 는 정적, WAS 는 동적으로 보통 Web Server가 WAS보다 앞 부분에 붙어있다. )

제이보스(JBoss)는 자바를 기반으로 하는 오픈 소스 미들웨어의 총칭이다. 대표적으로 Java EE 스펙을 지원하는 제이보스 애플리케이션 서버가 있다.

 

jBoss는 대표적으로, 톰켓 + EJB( MBean ) + JSP + DB + Console + 을 활용할 수 있다.


java를 사용해서 웹 서버를 만들려면 기본적으로 JSP, Java Beans, Oracle, Tomcat을 활용한다.

바닥부터 하나씩 만들고 싶다면, 기본적인 방법으로 접근해도 된다.


소프트웨어를 어느정도 만들어 본 사람이라면, 이미 잘 만들어진 것을 잘 활용하는 것도 엔지니어의 능력 중 하나이다.

물론 만들어진 모듈의 기능을 제대로 알고 잘 활용해야 하는 것은 당연 것이니, 무조건 다른 모듈을 쓴다고 좋은 것은 아니다.

그런면에서 jBoss는 웹 어플리케이션 서버를 구축에 필요한 프로젝트 모음집으로, 잘 익혀서 활용하면 좋은 결과가 나올 것 같다.


이 책에서 가장 매력적으로 보였던 부분은 MBean의 값을 모니터링 할 수 있다는 것과 파라메터 in/out 값에 대해 테스팅 할 수 있는 환경을 제공해주는 프로젝트였다.


주요 기능의 개념 검증도 있다.

 - EJB 3 기능 테스트, JMS 기능 테스트, 하이버네이트 기능 테스트, 분산 트랜잭션 기능 테스트, 세션 클러스터 기능 테스트, 실패극복( Fail-Over ) 기능 테스트 


 

* 클래스 다운로드 서비스 제거

클래스 다운로드 서비스를 그대로 두면 외부 클라이언트에서 서버의 클래스를 볼수 있게 된다.

http://localhost:8083/org/jboss/security/ClientLoginModule.class에 접속하면 잠재적인 위험성을 확인할 수 있다.


 기타 자세한 내용들은 각 모듈을 연결시키거나 각 모듈을 사용하기 위한 글이었다.



이 책을 통해서 jBoss가 대체적으로 어떤 기능을 하고 어떻게 동작하는지 알 수 있었다.



[ jBoss 주요 프로젝트 목록 ]

  • JBoss Application Server
  • JBoss Web
  • JBoss ESB
  • JBoss Messaging
  • JBoss jBPM
  • JBoss Transactions
  • JBoss Web Services
  • JBoss Tools
  • JBoss Cache
  • JGroups
  • Mobicents
  • Hibernate
  • JBoss RichFaces
  • JBoss Ajax4jsf
  • JBoss Portal
  • JBoss Seam
  • JBoss EJB3
  • JBoss AOP
  • JAAS



 

:

db dump 및 복사

보안/서버관리 | 2012. 1. 9. 00:39 | Posted by youGom

mysqldump -u사용자명 -p암호 디비명 > 저장할이름.sql


mysql -u사용자명 -p암호 --default-character-set=euckr 디비명 < 복원할파일.sql

:

DB, MySQL 계정 생성

보안/서버관리 | 2011. 12. 19. 21:56 | Posted by youGom

서버 관리를 하다보면 mysql 사용자 계정을 추가해 줄때가 있다

 

./mysqladmin -V  버젼명 (테이터베이스 관리 tool)
./mysqladmin -p status 현재상태

 

 데이터베이스 종류 보기
   mysql> show databases;

 

mysql 상의 테이블 정보 보기
   mysql> show tables from mysql;

 

데이터 베이스 생성

mysql> CREATE DATABASE testDB;


편집후에 반드시 mysql 재가동해야함.
   # mysqladmin -u root -p reload 

 

첫번째 방법은 아주 간단하다 한번에 끝낼수 있다.

GRANT ALL PRIVILEGES ON [DB명].[테이블명(*)] TO [유저명]@[서버명] IDENTIFIED BY '[암호]' WITH GRANT OPTION;

"WITH GRANT OPTION" 옵션은 다른 유저에게 권한 부여 여부다.

 

두번째 방법은 세밀하게 권한을 부여할 수 있는 방법이다. 일단 유저를 먼저 생성을 한다.

GRANT ALL PRIVILEGES ON [DB명].[테이블명(*)] TO [유저명]@[서버명] IDENTIFIED BY '[암호]' ;

 

유저를 생성후 권한을 한번에 줄수있다.

GRANT ALL ON [DB명].[테이블명(*)] TO [유저명]@[서버명];

 

특정 권한만 선택적으로 적용할 수 있다.

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALERT ON [DB명].[테이블명(*)] TO [유저명]@[서버명];

 

마지막으로 계정 권한을 새로 로드시켜 준다.

FLUSH PRIVILEGES;

 

권한 삭제는 GRANT 명령어 반대로 하면 된다.

REVOKE ALL ON [DB명].[테이블명(*)] TO [유저명]@[서버명];

 

특정 권한만 삭제할 수 있다.

REVOKE SELECT ON [DB명].[테이블명(*)] TO [유저명]@[서버명];

 

권한만 삭제한다고 유저가 삭제되진 않는다. 아래와 같이 해줘야 완벽하게 유저가 제거된다.

DROP USER [유저명]@[서버명];

 

 

mysql이 외부로도 서비스가 가능하게 하려면,

몇 가지의 확인사항과 그 외에 추가적인 설정을 해야 할 필요가 있습니다.

 

mysql이 설치된 서버의 운영체제를 명시해주시지 않아서,

유닉스 계열 운영체제라 가정하고 설명드리겠습니다.

 

#1.

우선, 기본적으로 mysql 은 tcp 3306 번 포트를 통해 서비스를 제공합니다.

따라서, 외부에서 DB에 접근할 수 있도록 하기 위해서는

서버의 tcp 3306 번 포트가 방화벽에 막혀 있지는 않은지 확인해야 하며

만약 막혀 있을 경우 열어주어야 합니다.

 

iptables -L 명령으로 차단/허용 리스트 조회가 가능합니다. 만약 포트가 막혀 있을 경우,

 

# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

 

명령으로 열어주시면 됩니다.

 

 

#2.

그 다음에는 DB 사용자 계정에 외부에서의 접근 권한을 부여해야 합니다.

외부에서 DB에 접근할때만 사용하는 계정을 새로 생성해도 됩니다.

'%' 의 의미는 외부에서의 접근을 허용한다는 의미입니다.

기존에 사용하던 계정에 외부 접근 권한을 부여하려면, Host를 '%' 로 하여 똑같은 계정을 추가해줍니다.

 

mysql> USE mysql;

mysql> INSERT INTO user (Host, User, Password) VALUES ('localhost', '계정아이디', password('비밀번호'));
mysql> INSERT INTO user (Host, User, Password) VALUES ('%', '계정아이디', password('비밀번호'));
mysql> FLUSH privileges;

계정이 생성되었다면, 그 계정이 접근할 수 있는 데이터베이스를 생성하고 권한을 부여해야 합니다.

 

mysql> CREATE DATABASE 데이터베이스명;
mysql> GRANT ALL privileges ON 데이터베이스명.* TO 계정아이디@locahost IDENTIFIED BY '비밀번호';
mysql> GRANT ALL privileges ON 데이터베이스명.* TO 계정아이디@'%' IDENTIFIED BY '비밀번호';

 

이렇게 방화벽을 열고, 계정에 접근 권한을 부여하는 과정을 거치면

외부로 DB 서비스를  제공할 수 있게 됩니다.

 

도움이 되셨기를 바랍니다.

: