정보유출건 분석에서 협력업체 부정으로…

중견기업으로 부터 정보유출관련해서 포렌식 분석을 의뢰 받았다.  국내에서 제작한 물품이 해외에서 똑같이 생산되고 있었다. 

내부적으로 위 사안관련하여 의심가는 대상자가 있었기 때문에 관련직원을 중심으로 분석을 수행하였다. 유출경로별 아티팩트들을 분석했지만 별다른 특이사항이 없었다.  뿐만아니라 해외로 유출된 디자인시안 BOM 관련된 문서를 가지고 있지도 않았다. PC 및 스마트폰 포렌식을 수행하였는데 스마트폰 기록에도 별다른 특이사항은 발견되지 않았다. 

그러나, 협력업체와의 부정이 발견되었다.  과거에 발견되었던 이슈들이 이번에도 그대로 나탔다.

ㅇ A협력업체로부터 구매하는 자재들의 원가를 높게 책정

ㅇ 경쟁사에서 제시한 단가를 A협력업체에게 전달

ㅇ 설, 추석 명절 등(A협력업체사장 해외여행, 구매 담당자 경조사 등)  고가의 선물, 금품 수수

ㅇ A협력업체로 부터 잦은 접대를 받음

ㅇ A협력업체가 조금이라도 마음에 안들게하면 갑질함. “다른업체 알아본다고..”

ㅇ 구매담당자가 술값을 계산하라고 불러냄 등

비록 정보유출관련하여 유출자를 확인하기는 어려웠지만, 기존에 경험을 통해 거래부정을 발견할 수 있었음.

 

여러개의 이미지파일 한번에 파일목록 추출하기 Enscript

디지털포렌식을 기반으로 내부감사업무수행시 분석대상자가 10명.. 아니50명.. 100명이상일경우 전체파일 목록을 데이터베이스화 할경우 분석이 용이해진다.

파일(문서, 이미자, 삭제 등)보유 통계, 특정 프로그램 보유자, 업무와 무관한 영상(음란물, 드라마, 만화 등) 보유자,  대외비 파일(타사 대외비 자료 포함), 최근 사용한 파일 목록 등 다양하게 활용이 가능하다.

개별 이미지파일에서 파일목록 추출이 가능하다. 그러나 이미지파일이 많을 경우 일일이 Export 를 해줘야하는 번거로움이 있다.

아래와 같이 Enscript 를 작성하여 활용하면 감사시 유용하다.

—- 아래 —-

void Main(CaseClass c) {

SystemClass::ClearConsole();
Console.WriteLine(“—————————————“);
Console.WriteLine(” FileList Export for Database”);
Console.WriteLine(” released by JHP, 2016.12.14″);
Console.WriteLine(“—————————————“);
SystemClass::StatusRange(“FileList Export”, 0);

foreach(EvidenceClass ev in c.EvidenceRoot())
{
new NameListClass(DeviceList, ev.Name() + ” (” + ev.Model() + “)”);
}

SettingDialogClass diag(null, this);
int rtn = diag.Execute();

if (rtn == SystemClass::OK)
{

if(OutputPath ==””) {
SystemClass::Message(SystemClass::ICONINFORMATION,”확인”,”저장경로를 확인해주세요”);
}
else{

NodeClass node = diag.LE_DeviceList.GetValue();

foreach(EvidenceClass ev in c.EvidenceRoot())
{
new NameListClass(DeviceList, ev.Name() + ” (” + ev.Model() + “)”);

String temp = ev.Name() + ” (” + ev.Model() + “)”;
String statusString = “Extract files : ” + node.Name();

DeviceClass dev = new DeviceClass();
dev = ev.GetDevice(c, new EvidenceOpenClass);
SystemClass::StatusRange(statusString, GetMaxCount(dev));

SystemClass::StatusInc();

if(bCheckFileList) {

LocalFileClass File = new LocalFileClass();
SystemClass::ClearConsole(SystemClass::SHOWCONSOLE);

File.Open(OutputPath + temp+”.txt”, FileClass::WRITE + FileClass::TEXT );

forall(EntryClass entry in dev.GetRootEntry()) {

File.WriteLine(entry.Name()+”,”+entry.Extension()+”,”+entry.LogicalSize()+”,”+entry.IsDeleted()+”,”+entry.EvidenceFile()+”,”+entry.OriginalPath()+”,”+entry.SymLink());

}

File.Close();
}

}
}
}

}
}

실습으로 이해하는 디지털포렌식 강좌

지난 주말에 실습으로 이해하는 디지털포렌식이란 주제로 강의를 다녀왔다.

두시간동안 최대한 임팩트있게 전달하려고 실제 현장에서 사용하는 도구(이미징 장비 및 분석 소프트웨어 등)를 준비했는데, 강의하는 두시간동안 모두다 시연할 수 없었다.

팔콘, 타블류, FTK Imager 를 통한 이미징… 이미징 시연하고 실습하는데만 한시간이 넘게 걸렸다 ㅡㅡ;; 분석은  무료툴 간단하게 사용할 수 있는 방법들만 시연…..

Encase ,FTK 등 강의때 시연하려고 세팅다해왔는데… 두시간안에 시연하기에는 시간이 부족했다.. 

부족했던건 강사의 책임.. 다음번 강의때는 이런 실수는 하지 말아야지 

 

모바일포렌식과 내부감사

2016년 한해를 너무 바쁘게 보내다보니 블로그가 몇개월간 방치되었다.  1월초부터 오늘(8/29)까지 쉴틈없이 달려왔다. 프로젝트 중간 중간에 휴식이 있어야 했는데 올해는 중간에 공백없이 쭈욱 일해온것 같아. 날씨가 시원해져서 컴퓨터 앞에 않을 수 있어 참 좋다. (더워서 집에오면 컴퓨터를 켤수 없었다.)

2016년에 수행했던 프로젝트의 대부분은 모바일포렌식을 통해 좋은성과를 낼 수 있었다. 기존 PC포렌식을 통해서도 좋은 결과를 내었지만 모바일이 더해져서 좀더 임팩트있는 결과를 창출하였다.

PC포렌식을 통해서 어느정도 부정에대한 정황증거들을 획득해서 인터뷰를 통해 마무리를 했다면, 올해는 모바일포렌식을 통해서 인터뷰를 쉽게할수있었다. 특히 카카오톡, 메세지 분석을 통해 핵심적인 증거들을 찾아내었다.

업체로부터 돈을받은 입금메세지, 업체를 밀어주는 메세지, 골프접대받은 메세지, 설,추석때 고가의 선물받은 메세지, 업체로부터 차량을 제공받은 메세지 등 상당히 많은 증거들을 찾아내었다. 이로인해서 PC포렌식을 통해 어느정도 부정이 의심되면 모바일 포렌식까지 이어지는 프로세스를 밟고 있다. 물론 초기에 모바일 포렌식을 같이하는것이 좋다. 

이메일(Email)을 요청했더니 오라클(Oracle) 덤프(Dump) 파일을 주네..

부정관련 의심대상자 분석을 위해서 회사에 이메일을 요청했는데.. 이메일을 파일형태로 저장할려면 메일마다 수작업을 해야해고 시간이 오래걸린다고 하더니 이메일을 오라클 DMP 파일로 줬다.

오라클 DB Import해서 봤는데 Contents 필드값을 확인해보니까 HTML 형태로 내용이 저장되어 있다. 

SQL 쿼리로 조회해서 내용을 검색할 수도 있겠지만, 불편했다.

그래서 생각해낸 방법은.. ODBC로 연결해서 엑셀 매크로를 활용해서 메일을 HTML 형태로 파일로 저장했다.

매크로 소스는 아래와 같다.

 

Option Explicit

Sub test()

Dim lastrow As Long
Dim i As Long

‘Application.ScreenUpdateing = False

lastrow = Cells(Rows.Count, “A”).End(3).Row

For i = 1 To lastrow Step 1

Range(“A” & i).Copy

Workbooks.Add

ActiveSheet.Paste

ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & “\” & “Email” & i & “.txt”, FileFormat:=xlText

ActiveWorkbook.Close False

Next i

End Sub