본문 바로가기

어느 한 분야를 전문적으로 연구함. 또는 그 분야./정보를 여러가지 위협으로부터 보호

The Java Application Interface JRE는 Java 실행 환경인데 여기에는 Java Virtual Machine과 Java API, 그리고 Native Method 등이 포함되어 있다. 이중 Java Application interface, 즉 Java API는 한마디로 Runtime Library의 집합이다. Java API는 OS 시스템과 Java 프로그램의 사이를 이어주는 역할(Interface)을 한다. Java API는 Native Method를 통해 OS 자원과 연계되어 있고 다른 한 편으로는 Java 프로그램과 맞닥뜨리고 있다. 만약 java.io.InputStream 이라는 클래스를 사용하여 특정 파일 시스템의 정보를 읽어 온다고 가정하면 Java는 Class 파일 내에 있는 java.io.InputStream의 Symbo..
The Java Class File Format Class 파일은 다음의 네 가지 특징을 가지게 됩니다. Compack 한 형태 Bytecode는 Source Code를 단순히 JVM의 언어로 번역해 놓은 것이기 때문에 Source Code와 비슷한 크기를 가지고 있습니다. Compiler를 통해 실행파일로 변경되는 과정에서 Library들을 포함하는 C++, Delphi와 같은 언어보다 작은 크기입니다. 이렇게 작은 크기를 유지할 수 있는 이유는 Class파일에는 실제로 참조하는 라이브러리를 포함하고 있지 않고, 단지 Symbolic Reference 만을 가지고 있기 때문입니다. 이 Symbolic Reference는 참조하는 객체의 특정 메모리 번지로 참조관계를 구성한 것이 아닌 참조하는 대상의 이름만을 지칭한 것입니다. Class 파일이 JVM..
The Java Language and JVM 보통 Java 라는 언어를 언급할 때 가장 자주 등장하는 것이 바로 객체지향이라는 단어입니다. 이것은 Java라는 언어의 중요한 software 기술 중의 하나입니다. Java라는 언어는 그리 오래 되지 않은 프로그래밍 언어입니다. 그렇기 때문에 비교적 최신의 Software 기술이 적용되어 있습니다. 그 중 하나가 객체지향인 것입니다. 그 밖에도 Multi-Threading, SEH(Structured Exception Handler), Garbage Collection, Dynamic Linking, Dynamic Extension 등의 기술들이 접목되어 있습니다. Java의 Class 파일은 JVM 위에서 다시 실행 가능한 형태로 변형되는데 이 때 Linking 작업이 발생하게 됩니다. 그래서 Cl..
Dual-boot Windows 7 and Kali Linux 듀얼 부팅을 선택 하게 된 이유는 단지 Cuckoo Sandbox를 구성하기 위해서 였습니다. Cuckoo Sandbox는 가상머신에 파일을 실행시켜 행위를 후킹하여 분석결과를 제공해 주는 오픈소스 프로그램인데, 가상머신 안에 가상머신을 구현할 수 없어서 듀얼 부팅을 선택하게 되었습니다. 현재 제 컴퓨터 환경은 기본 Windows 7이 설치되어 있고, 이번에 데비안 계열로 배포중인 Kali Linux(aka. Backtrack 6)를 선택하였습니다. 먼저 디스크 관리에 들어가서 파티션을 분할 합니다. 위와 같이 파티션을 분할하여 포맷하지 않은 상태로 Kali Linux로 부팅합니다. 그래픽 설치 모드로 사용 듀얼 부팅에서 중요한 부분은 아니니 기본적으로 설치하는 듯이 설정하면 됩니다. 중요한 파티션 분할..
Javocalypse Javocalypse는 2010년 CR0 BLOG에서 처음 언급하면서 생겨난 신조어입니다. 초기 Java의 취약점 발견은 사회적으로 큰 이슈가 되지 않았지만 CR0는 수 많은 기기에서 Java를 사용하고 있는 것과, '플랫폼에 독립적이다.'라는 Java의 특·장점을 고려하여 Java + Apocalypse의 의미로 Javocalypse라는 합성어를 언급하였습니다. Figure 1 대표적인 Exploit Toolkit과 취약점 발표 연혁표 Java취약점은 주황색 물고기 입니다. 2010년 Phoenix(피닉스) Toolkit에서 Java 취약점을 대거 유포하면서 Java 취약점이 급 부상하게 되었음을 알 수 있습니다. 최근 미국 국토안보부 비상대응팀(US-Cert)에서는 Java 취약점과 함께 Java B..
Automater.py TedDefense에서 만든 Python 코드 입니다. TekDefense에 대한 정보는 http://www.tekdefense.com/에 들어가 보시길 바랍니다. Automater.py는 URL 또는 IP의 정보를 수집 및 분석하는 도구 입니다. 웹 기반 악성코드를 연구하는 입장에서 이만큼 깔끔한 도구는 없는 것 같습니다. 유포지의 서버가 어디에 위치해있고, 블랙리스트로 등록되었는지, 도메인은 언제 생성되었는지 등 정보를 수집할 수 있습니다. 또한 접합성이 좋은 Python으로 제작되어 활용도가 높을 것으로 예상됩니다. URL, IP, Hash를 정보화 하여 수집하는 곳들은 (Minotaur, JoeBox , VxVBault, unshorten.me, IPvoid.com, Fortiguard.com, ..
Honeyspider Network 2 소개 Honeyspider Network는 Client Honeypot들을 모아서 만든 악성 웹사이트를 탐지하는 프로젝트 입니다. 이 프로젝트는 폴란드의 NASK Cert와 네덜란드의 National Cyber Security Centre(NCSC)가 수년간 합작으로 만들어 낸 작품(?)입니다. 최종 목표는 특정 URL들의 일괄된 처리를 위한 크롤러 및 기존의 최첨단 도구들을 Client Honey Solution을 기반으로 시스템을 개발하는 것이라고 합니다. 이 프로젝트는 시스템 또는 웹 브라우저에 초점에 대한 공격을 맞추었습니다. 특히나 최근 Hot 이슈가 되려고 노력하는 Drive By Download를 하는 웹 사이트 탐지에 대한 초점이 더 큰 것으로 생각합니다. 이를 통해 제로데이를 포함하여 공..
Java Basic Architecture Java의 철학 객체 지향 방법론을 사용해야 한다 같은 프로그램(바이트코드)이 여러 운영 체제(마이크로프로세서)에서 실행될 수 있어야 한다 컴퓨터 네트워크 접근 기능이 기본으로 탑재 되어 있어야 한다 원격 코드를 안전하게 실행할 수 있어야 한다 다른 객체 지향 언어들의 좋은 부분만 가지고 와서 사용하기 편해야 한다 Java의 특징 자바는 간단하다 (simple) 하나의 소프트웨어가 제작될 때는 소프트웨어를 제작하는 비용도 많이 들지만 유지 보수하는 비용도 어마어마하다. 자바 언어는 이러한 점을 고려하여 디자인되었다. 자바 언어는 C++를 기반으로 개발되었음에도 C++에서 혼란을 일으키는 부분을 제거했다. 예를 들면 연산자 오버로딩, 다중 상속 같은 것들이다. 그리고 C++에서 문제가 되는 기억 장소 경영..