IT 그리고 정보보안/Knowledge base 227

COCOMO (Constructive Cost Model)

나선형 모델을 만든 B.W.Boehm 이라는 분이 만든 cocomo에 대해 간략하게 알아보겠다. COCOMO는 Constructive Cost Model 의 약자로, 소프트웨어 개발에 필요한 비용을 계산하는 비용 산정 모델이다. 비용 산정 과정은 다음과 같다. 1. S/W 프로젝트에 대한 데이터를 마구마구 모은다. 2. 수집한 자료들을 반영하는 공식을 만든다. 3. 각 프로젝트 별로 소스코드 라인 수와 난이도를 일정한 척도로 구분한다. 4. 비용 계산한다. 위에 2번에서 언급하는 공식은 다음과 같은 형태를 지닌다. Man-Month는 원래 뜻은 프로젝트에 투입되는 월 인원을 뜻하는데, 프로젝트의 규모를 나타내는 지표같은 개념이다. 프로젝트에서 사용되는 비용은 인건비 이다. 그 인건비를 계산하기 위해 MM..

소프트웨어 공학 - Software Process

소프트웨어 프로세스란? 소프트웨어 시스템을 명세화 - 설계 - 구현 - 시험 하기 위한 활동들의 집합을 말한다. 그냥 제작 공정을 추상적으로 표현한 것이라고 생각하면 된다. 소프트웨어 프로세스에는 여러가지 모델이 있는데, 그 중 하나인 폭포수 모델을 한번 보겠음. 1. 폭포수(Waterfall) 모델​ 개발의 흐름이 마치 폭포수처럼 지속적으로 아래방향을 향하는 것처럼 보인다는 데서 붙여진 이름이다. 위와 같은 과정으로 개발하는 프로세스를 폭포수 모델이라고 하는데, 여기서 약간 주의깊게 볼 부분은 1.요구 사항 정의 부분. 요구 사항 명세화 (Requirement Specification)와 구분 지어 생각해야한다. '요구 사항 정의' 와 '요구 사항 명세화'는 다름. 그리고 폭포수 모델에는 문제점이 좀 ..

소프트웨어 공학 개요

이제 우리가 사는 세상은 소프트웨어가 없으면 질높은 삶을 영위하기가 힘들다. 점점 더 많은 시스템들이 s/w에 의해 제어되고, 대부분의 선진국들에선 s/w에 대한 지출비용이 GNP의 상당한 부분을 차지한다. 이런 시대에서 IT분야를 공부하는 우리는 소프트웨어 개발에 대한 전문적인 지식이 필요하다. 소프트웨어 공학은 그런 취지에서 시작한다. 소프트웨어는 시스템 비용 대부분을 차지할 정도로 비용이 많이 든다. 요즘은 하드웨어보다 소프트웨어가 비용이 더 많이 들때가 있다. 그리고 개발보다는 유지보수에 비용이 더 많이 든다. (긴 수명을 가진 시스템인 경우 개발비용의 5~6배 정도 든다.) 이렇게 비싼 비용이 드는 소프트웨어로 인해 소프트웨어 공학은 cost-effective 즉, 가격대 성능비를 추구한다. 이..

윈도우 UserAssist를 통한 파일실행 흔적 분석

Windows 파일 실행 흔적 분석이다. PC점검 과정 중에서 V3 등의 AV에서 악성파일 탐지내역을 확인했다면, 해당 파일의 실행흔적을 분석할 필요가 있다. 여러가지 방법들이 있지만 그 중 몇가지를 알아본다. UserAssist 를 통한 실행흔적 분석 UserAssist 란, 레지스트리 키의 일종이다. 이 레지스트리 키에는 최근에 실행한 프로그램의 목록, 마지막 실행날짜, 실행 횟수 등이 기록되어 있다. HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer \UserAssist\ 경로는 위와 같다. (USER) 부분은 확인하고자 하는 계정의 SID이다. (SID는 #wmic useraccount name, sid 로 확인이 가능하다. 다른방법도 ..

NTFS (New Technology File System)

파일시스템 자체에 대한 설명은 FAT 파일시스템 알아보면서 언급한 부분이니까 NTFS에선 따로 설명하지 않겠습니당. 일단 NTFS를 디테일하게 알아보기 전에.. NTFS 이게 무엇인지, 어떤 특징을 갖고 있는지 간단하게 작성할 거예요. 1. NTFS 소개 New Technology File System의 약자로, Microsoft에서 만든 Windows용 파일시스템이다. NTFS는 최초에 서버용 파일시스템으로 등장했다. FAT 파일시스템이 용량의 한계가 있어서 대용량 서버 운영체제(e.g. Windows NT 계열)에 적합하지 않았기 때문이다. 처음 나왔을 때는 다양한 기능, 뛰어난 확장성, 대용량장치 지원 등으로 인해 획기적인 파일시스템으로 평가받았다.(받았다! 과거형이다.) 어쨋든 대부분의 Windo..

FAT (File Allocation Table) 32

FAT16에 대해 알아봤으니, 이제 마지막으로 FAT32 파일시스템에 대해 알아보고 NTFS로 넘어가야겠다. (exFAT도 있지만.. 이건 추후에 다룰게요.) FAT32은 FAT12, FAT16 과 구조가 좀 다르다. (뭐 사실 달라봐야 거기서 거기이긴 함;;) FAT32 내용을 작성하면서 FAT16과 동일한 부분은 간단하게 언급하고.. 그 외 부분에 대해 상세히 기술하겠습니당~ 아 그리고 FAT16 구조분석 포스팅 2개를 다 보고 왔다는 가정하에 작성할 것이니 안보셨음 보고 오셈 먼저 전체적인 구조를 그림으로 살펴보자. 1. FAT32 전체 구조 FAT16과 비교하면, 비슷한 듯 다른 구조를 지니고 있다. 가장 두드러진 차이를 보이는 영역은 예약된 영역인데, 기존에 CPU Jump ~ Signature..

FAT (File Allocation Table) 16

FAT(File Allocation Table)란 무엇인가 FAT 파일시스템은 1976년 MS에서 개발한 파일시스템이다. 빌 게이츠가 플로피디스크를 관리하기 위해 처음 고안하였는데 이것이 FAT의 시초이다. 이 때만 해도 FAT이 파일시스템으로써의 기능을 하진 않았고, 1980년대에 MS-DOS가 나오면서 운영체제에 탑재되어 FAT12 라는 이름으로 파일시스템의 기능을 하게 된다. 그 이후에 HDD의 사용이 점점 증가하자 MS-DOS 4.0 버전에 처음으로 FAT16 개념이 등장한다. 그러나 2GB가 넘는 HDD를 사용하고자 한다면 어쩔 수 없이 파티션을 나누어야 했다. 그래서 1995년 Windows 95 에서 처음으로 FAT32 가 등장한다. 용량의 한계 때문에 어거지(?)로 계속 확장시키다가.. 이..

파일시스템(File System) 이란 무엇인가

# 파일시스템의 개념 파일시스템 이란, 파일의 이름을 정하고 저장, 검색을 위해서 논리적으로 어디에 위치 시켜야 하는지에 대한 방법을 구성한 시스템이다. 저장 매체의 공간이 증가 할수록 보관하는 파일의 수 또한 점점 증가하게 되어 별도의 관리 시스템이 필요하게 되었다. 그래서 개발된 것이 파일시스템 널부려져 있는 문서들을 캐비넷에 저장하고 해당 문서의 제목 첫글자를 테그로 사용해 검색이 가능하도록 하는 것과 같은 맥락이다. 파일시스템 종류에는 FAT16, FAT32, NTFS, ext2, ext3, ext4, HFS+ 등등 굉장히 다양하다. 파일시스템에 대해서 왜 알아야 하는 걸까? 디지털 포렌식에서 디스크 분석은 반드시 필요한 부분이다. 일측에서는 디스크 포렌식 = 디지털 포렌식 이라고 인식하는 경우도..

VBR (Volume Boot Record)

VBR(Volume Boot Record), BR (Boot Record) 다양한 이름으로 쓰이는 VBR에 대해서 알아봅시다. VBR, BR, 파티션 부트 레코드, 부트 섹터 등의 이름으로 불리는데... 이들 중, Boot Sector(부트 섹터)는 구별을 좀 해야한다. 볼륨의 가장 첫번째 1개의 섹터는 반드시 부트 섹터가 오게 되어 있는데, VBR의 크기가 1섹터이면 부트섹터=VBR이라고 할 수 있다. 하지만 VBR의 크기가 1섹터보다 큰 경우, 부트섹터는 VBR에 종속된다고 보아야 한다. 1섹터는 부트 섹터이고, 그 뒷부분은 VBR 이지만 부트섹터는 아니니깐, 결론은 (부트섹터 ⊂ VBR) MBR 영역의 부트코드에서.. 마지막 루틴이 "부팅 가능한 파티션의 첫번째 섹터를 메모리 0x0000:7C00에..

GPT(GUID Partition Table) 디스크 _내용보강 예정

MBR 디스크에 이어 GPT 디스크에 대해 알아보자. GPT 디스크는 MBR 처럼 BIOS 와는 동작하지 않는다. EFI(현재는 UEFI, 통합 EFI) 인터페이스와 함께 동작함. 인텔에서 BIOS 에 이은 차세대 펌웨어로 EFI(Extensible Firmware Interface)를 내놓으면서 MBR -> GPT 로 변화하는 추세이다. 기본 골격은 BIOS - MBR / UEFI - GPT 인데.. 여기선 되고 저기선 안되고 또 이럴 땐 되고 저럴땐 안되고... 케이스가 너무 많아 모두 정리할 필욘 없을 것 같다. 대신 어떤 디스크를 분석할 때, 이것이 GPT 파티션으로 돼있는가, MBR 파티션으로 돼있는가 그리고 BIOS 기반이냐 UEFI 기반이냐, 인지하면 될듯 하다. 참고로 Windows 운영체..

반응형