프레임워크, 메타스플로잇
프레임워크(Framework) : Frame+work가 합쳐진 뜻으로 한국어로 번역하자면 틀+일하다 입니다.
즉 일정한 틀을 가지고 일한다라는 느낌으로 전문적으로 표현하자면 어떤 목적을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조라고 합니다. 전문적인 용어로 표현하자니 너무 어려운데 예시를 하나 들어 이해를 간단히 해보겠습니다.
ex) 장난감 키트를 가지고 다양한 형태의 장난감을 만들 수 있습니다. 하지만 이러한 다양한 장난감을 만들기 위해선 설명서에 적힌 대로 만들어야만 정상적인 장난감을 만들수가 있죠, 이것이 바로 일정한 형태들의 틀이나 부픔을 가지고 다양한 형태의 결과물을 만드는 것이 바로 프레임워크입니다.
한마디로 특정 프로그램을 개발하기 위해 여러 요소들과 메뉴얼인 룰을 제공하는 프로그램이라고 이해하면 쉽다.
프레임워크(Framework)는 라이브러리(Library)와 확연한 차이점이 있는데요.
라이브러리(Library) : 주로 소프트웨어를 개발할 때 컴퓨터프로그램이 사용하는 비휘발성(전원을 끊어도 저장된 데이터가 지워지지 않는 성질) 자원의 모임입니다.
ex) 위의 예시에서 장난감들을 만들 때 꼭 사용해야하는 부품이나 설명서에서 말하는 규약이 프레임워크라면 라이브러리는 장난감을 만들 때 본인의 손이든 다른 이의 손을 빌려서 만들든 무언가 도구를 이용해서 만들든 본인이 편한대로 알맞은 도구를 써서 만들면 되는 것입니다. 즉 본인이 편한대로 알맞은 도구가 라이브러리입니다.
한마디로 라이브러리는 도구의 모음입니다.
하지만 이 둘 다 프로그램을 쉽게 만들기 위해 만든 프로그램입니다.
프레임워크의 많은 종류중 한가지를 간단하게 조사해보았습니다.
1. 스트럿츠 프레임워크 (STRUTS Framework)
이 프레임워크는 자바(다양한 유형의 소프트웨어 응용 프로그램을 만드는 데 널리 사용되는 범용 프로그램 언)를 기반으로한 JSP(Java Sever Pages)만을 위한 프레임워크입니다.
(1). JSP란 HTML문서에 내부적으로 자바문법을 사용할 수 있게 하는 웹페이지 스크립트 언어입니다.
(2). HTML(Hyper Text Markup Language)에서 HyperText는 웹 페이지에서 다른 페이지로 이동할 수 있도록 하는 것이며 이러 기능을 가진 문서를 만드는 언어입니다.
메타스플로잇(Metasploit) : 많은 취약점과 관련된 모든 메타 데이터를 관리하는 시스템인데요. 간단하게 줄이자면 시스템을 해킹하기 위해 개발된 Framework입니다.
이 메타스플로잇은 해커가 해킹 공격을 하는 것에 대비하는 것과 그것에 대한 취약점을 분석하기 위해 보안전문가들이 모의로 침투 테스트 등 다양한 작업을 합니다.
ex) 지하 벙커가 있다고 가정하에 벙커의 취약점이 있다고 치자 해킹 공격이 미사일이라고 치면 미사일은 탄두+비행체 인데 탄두를 실어나르는 것이 비행체이며 이 비행체야 말로 익스플로잇이라고 말할 수 있다.
메타스플로잇 구성: 메타스플로잇의 구성을 정말 간단하게 소개하겠습니다.
라이브러리: 개발에 필요한 API와 기본 클래스 등을 제공
인터페이스: 사용자 인터페이스를 제공
모듈: 다양한 공격 형태의 기본 프로그램 제공
API: Application Programming Interface의 줄임말로 여러 프로그램들과 데이터베이스, 그리고 다양한 기능들의 상호 통신 방법을 규정하고 도와주는 매개체
사용자 인터페이스: 사람과 컴퓨터 사이의 상호작용을 위한 중간 매채체