목록개발자 이야기 (107)
동글동글 라이프
프로그램의 전체적인 시나리오 입니다. 프로그램의 흐름은 아래와 같습니다. 1. Intergrity (무결성) 디지털 매체에서 데이터들을 무결성을 유지하며 모두 복사해 옵니다. 2. Extraction (추출) 포렌식 수사에 필요한 자료들을 추출을 합니다. 3. Restore (복구) 지우거나 손상된 파일이 있을 시 복구를 합니다. 4. Analysis (분석) 추출된 데이터를 통해 각 분류(레지스트리 , 웹, 시스템로그)별로 분석을 합니다. 5. Data representation (데이터 표현) 분석된 데이터들을 조사관이 보기 좋도록 표현합니다. 6. Document ( 보고서 ) 분석 및 표현된 데이터들을 보고서 양식에 맞게 작성합니다.
전체 시스템에 관한 Architecture 입니다. 하드웨어에 저장 되어 있는 데이터를 추출하여 사용자 정보, 시스템 정보 , 하드웨어 정보 등을 얻어온 뒤 이 정보들을 보기쉽게 나열해 주며 유용한 정보를 모아서 사용자 분석을 해주는 시스템입니다. 윈도우 XP 운영체제에서 닷넷 프레임워크 3.5 C# 으로 제작이 됩니다. 디지털 포렌식 정보수사 과정은 아래와 같이 4가지로 이루어 집니다. 1. Assessment(평가) 2. Acquisition(수집) 3. Investigation(조사) 4. Document(문서화 및 보고) 이 수사과정에 따라 표를 만들어 보았으며, 데이터를 수집시에 무결성, 저장 매체 이미징 기술, 정보 수집 기술을 바탕으로 데이터를 수집해 와야 합니다. 수집한 데이터를 바탕으로 ..
포렌식 도구 Winproof가 왜 필요한지 설명을 해보겠습니다. 국내에는 통합 포렌식 툴이 없습니다. 포렌식 툴이 없다는 것이 아닌 통합적인 포렌식 툴이 없습니다. 여기서 제가 말하는 통합 포렌식 툴이란 레지스트리, 웹, 시스템 로그 그리고 사용자 분석을 위한 복구기술까지 포함된 툴을 기준으로 이야기 하였습니다. 국내에 포렌식 툴을 만드는 사람도 없고 공개화된 커뮤니티도 없습니다. 그래서 포렌식 툴을 사용할 때는 항상 외국의 툴을 사용해야 하고, 영어의 압박을 받으며, 주어진 기능대로만 사용해야 합니다. 국외의 통합툴의 경우에는 제품의 가격이 비싸고, 도구를 사용할 시 익히기도 어렵습니다. 국내 및 해외의 점유율이 가장 높은 포렌식 툴인 encase 의 경우 메뉴얼 페이지만 약 500페이지 가량 됩니다...
winproof 툴을 설명하기에 앞서 디지털 포렌식에 관하여 먼저 설명을 드리겠습니다. 위키백과의 글에 따르면 디지털 포렌식이란 , 전자 증거물 등을 사법기관에 제출하기 위해 데이터를 수집, 분석, 보고서를 작성하는 일련의 작업을 말합니다. forensics 이라는 의미 자체는 법의학을 이야기 하며, 범죄에 관한 과학수사를 의미합니다. 여기에 디지털이라는 단어가 수식어로 붙어서, 컴퓨터에 남겨진 여러 자료들을 수집하여 사법기관에 제출하기 위한 법적으로 효용성이 있는 데이터들을 뽑아내는 작업을 디지털 포렌식이라 이야기 합니다. 더 알기 쉽도록 설명한다면 수사시에 조사를 받아야 하는 용의자에 대하여 용의자가 소지한 디지털 매체에서 관련 자료들을 추출 해 낸 뒤, 경찰측에서 증거를 확보하여 용의자의 범죄를 입..
드디어 마지막 날입니다. 오늘의 배울 내용은 아래와 같습니다. 파일, 디바이스 드라이버. - 파일시스템 (가상파일시스템, 다형성) - 레이어드 개발법 - 커널 내 시스템 콜 추가 - 커널 모듈 프로그래밍 - 디바이스드라이버 개요 - 인터럽트, 문자 디바이스 드라이버 구현 파일 시스템을 어떤식으로 접근해서 알려주실지 기대가 됩니다^^ 대부분 커널 소스를 직접 까면서 보여주시니 단순이 그림이 아닌 눈으로 보이는 부분이 확실하니 휘발성이 아닌 비 휘발성으로 머릿속에 오래 남아 있을 듯 하네요 :) - cat 명령어 짜보기 1 2 3 4 5 6 7 8 9 10 11 12 #include #include int main(void){ int fd,ret; char buff[1024]; fd = open("cat.c..
교육의 둘째날입니다 :) 사진출처 : http://news.joins.com/article/483/4262483.html?ctg=14 새벽4시쯤 깨어 축구를 시청했는데 보자말자 한골~ 그리고 후반에 또 한골~ 아슬했지만 한국이 16강에 가게되어 너무나 좋더군요^^ 16강 상대가 우루과이라 할만하다는 생각도 들구요~ ㅋㅋ 하지만 저는 교육을 받으로 왔으니 교육에 관련된 이야기를 또 해보겠습니다. 오늘은 어제 이야기를 들었던 Signal 에 대해서 더 세부적으로 배웠습니다. 햐.. Signal 이 이렇게 많은 기능을 가지고 있다니.. perl 을 하면서도 signal 은 그냥 죽었을 때 다시 처리할때나 쓰는 줄 알았는데 심도있게 알아야 한다는것을 알았습니다. - 커널 컴파일하는 방법 kernel.org 에서..
운이좋게도 Linux Kernel 교육을 신청했는데 제가 담첨이 되어 2박3일간 리눅스 커널 & 디바이스 드라이버 교육을 받을 수 있게 되었습니다. 교육장소는 아이오 교육센터 ( 서울시 금천구 가산동 )에 위치하여 있으며, 김정인 강사 (아이오 교육센터 원장, 아임구루 대표이사 love1770@empal.com ) 님께 교육을 받을 수 있었습니다. 아래는 첫째날의 교육내용입니다. 6/22일(화) 실습환경구축, 커널 구조 분석 - 리눅스 커널 개요 - 커널 자료구조 접근 - 커널모드와 유저모드 - 부팅과정 및 초기화 코드 이해 프로세스 관리 - 멀티테스킹 기본 원리 이해 - 프로세스 컨텍스트 스위칭 - Kernel 2.6 O(1) 스케줄링 분석 - 프로세스 생성, 실행, 소멸 과정 이해 PPT 의 경우에는..
얼마전 친한 동생이 웹페이지로부터 특정 정보를 가져오는 소스에 대해서 블로그에 적은적이 있습니다. 간단히 말하면, 네이버에서 극장을 입력하면, 그 극장에서 상영되는 제목과 시간들을 파싱해서 나열하는 코드였는데, 정규표현식 없이 온리 C언어(소켓까지 포함)로 약 300줄 가량 되는것을 확인하였습니다. 그래서 이런 예도 있다는걸 보여줄 겸, perl 로 한번 다시 짜보게 되었습니다. Windows Vim 으로 작업했고 소스는 아래와 같습니다. 총 14줄 :) 파싱이 잘 되는 것을 확인 할 수 있습니다 :) 보여주려고 짜 뒀다가 이제야 포스팅 하네요~ perl 가르쳐달라고 하는 동생의 모습이 눈에 선합니다 ^^;; P.S. C언어로 짜는게 나쁘다는것은 아닙니다. 소켓으로 웹페이지에 접근함으로, 헤더에 어떤값이..
자료를 찾다보니 국내에서는 아직 Hive 파일을 이용하여, 레지스트리를 분석한 논문이나 글이 없더군요. (국내 뿐만 아니라 해외에서도 찾기 어렵습니다ㅡ _ㅠ) 그나마 영어로 된 논문하나를 찾게 되어 이 문서를 보면서 Hive 파일을 분석하는 Tool 을 만들고 있습니다. (이 문서도 완벽하지는 않네요 ^^;) C# 으로 프로토타입으로 작업한 스샷입니다. 완성단계까지 99.9% 남았네요 ^^;; 도움을 주고 계시는 진원이형 고맙습니다. ㅋ
인사이드 윈도우즈 포렌식을 보게 되었습니다. 연구실에 아는 동생을 꼬드겨서 사게 한 후, 몇일간 열심히 보면서 이제야 포스팅을 합니다. 벌써 많은 분들이 포스팅을 하고 평을 써 놓아서 늦은 감이 있지만, 아직 어떤 책인지 잘 모르는 분들을 위해 간단히 적어 보려 합니다. 번역자, 감수자 분들은 보안계에서 인지도가 있으신 분들입니다. 감수자이신 박병익님 같은 경우에는 심플스를 운영하고 있으며, 책이 나오기 얼마전 트위터로 이 책을 소개도 하였죠 :) 책은 전반적으로 포렌식에 관련된 설명과, 분석적인 측면으로 분류 됩니다. 책에서 많은 부분을 다루고 있는건 사실이지만, 실속은 없다고 생각되네요. 결국.. 확실한 원리를 알기 위해서는 스크립트 소스 코드를 까봐야 하는게 현실이기 때문이죠 ^^; 하지만 정말 많..