Spring Framework 스프링 프레임워크란?

스프링 프레임워크란 무엇일까? 스프링 프레임워크는 JAVA, Groovy, Kotlin으로 웹을 쉽게 개발할 수 있게 한 프레임워크이다. 기본언어로 JAVA를 지원하며, Groovy, kotlin을 지원한다. 스프링의 공식 사이트는 https://spring.io/ 이며 기본적인 개발 가이드와 다양한 프로젝트들이 기술되어 있다. 스프링의 대표적인 프로젝트로 스프링 프레임워크, 스프링 부트, 스프링 시큐리티가 있다. 스프링 프레임워크는 Spring MVC로 MVC패턴을 이용해 Maven을 통한 의존성을 가지고 개발할수 있는 장점이 있고 상당히 오래 사용되어 오면서 5.대 버전까지 출시를 했다. 다만 단점으로 Maven을 통한 의존성을 사용할떄 버전에 대한 호환성을 장담할 수 없고 이를 개발자가 일일이 확인하고 적용하여야 했다. 또한 많은 부가 기능을 지원하는 대신 많은 설정이 필요해 초기 개발시간을 늘린다. 그리고 WAS를 링크시켜 운용해야 하는 문제가 있다. ...

3월 23, 2022 · 2 분 · Yunjoker

Dreamhack rev-basic-4 문제풀이

이번 문제는 드림핵 리버싱문제 rev-basic-4이다. 우선 문제파일을 다운받으면 chall4.exe라는 프로그램이 나온다. 이 프로그램을 실행 시키면 iput : 이라는 문구와 함께 입력창이 활성화 된다. 이후 임의 문자열을 입력하면 Wrong이라는 문자열을 표시하고 종료된다. 이제 이 프로그램을 x64디버거로 열어보자. 이 프로그램의 main부분이다 input 이후에 call chall4.7FF68AC31000 부분에서 문자열을 비교해 je 명령어로 Correct와 Wrong을 나눠준다. 이부분에 bp를 걸고 쭉 진행해 임의의 문자열을 입력하고 내용을 보자. 위와같은 함수의 어셈블리가 보여진다. 간단히 돌려보며 해석을 해보자. 일단 임의값을 “AAAAA"로 입력했다. ...

3월 11, 2022 · 2 분 · Yunjoker

Dreamhack out_of_bound 문제풀이

out of bound(OOB)는 버퍼의 길이를 벗어나는 인덱스를 참조하려 할때 발생할 수 있는 취약점이다. 이번 문제의 소스코드를 먼저 살펴보자. char name[16]; char *command[10] = { "cat", "ls", "id", "ps", "file ./oob" }; void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30); } int main() { int idx; initialize(); printf("Admin name: "); read(0, name, sizeof(name)); printf("What do you want?: "); scanf("%d", &idx); system(command[idx]); return 0; } main함수를 따라가면서 살펴보면 먼저 관리자 이름을 name이라는 변수에 입력 받는다. 이후 What do you want?라는 문구와 함께 어떤 작업을 실행할 것인지 int형을 scanf로 입력 받는다. 이후 입력받은 값을 idx라는 변수에 넣고 system함수를 통해 command[idx]를 실행하고 프로그램은 종료한다. ...

3월 7, 2022 · 3 분 · Yunjoker

Suricata IPS, IDS 시작하기 2편(운용)

우선 시작하기 앞서서 Suricata IPS의 테스트를 위한 플라스크 기반 서버를 만들었다. 이는 실무에서 적용될때 서비스 하고자 하는 대상의 서버가 될것이다. 환경은 VM웨어의 Ubuntu 20.04버전을 기반으로 하였고 이 위에 Docker를 설치해 각 서버나 기능별로 컨테이너를 분리해 사용하려고 한다. 그냥 기본적인 확인을 위한 서버이니 메인에 접속시 Hello, World를 표시해주는 아주 간단한 서버이다. 컨테이너의 이름은 server 이며 docker run -itd --name server -p 8080:8080 ubuntu:20.04 bash 위 명령어로 실행 한다. 도커에서 suricata IPS모드를 사용하기 위해서는 관리자 권한을 필요로 한다. NFQ를 위한 설정을 해줘야 하는데 이를 iptables로 적용하고 도커에서 iptables를 사용하기 위해서 관지자 권한이 필요하기 때문이다. 따라서 컨테이너를 실행시킬때 privileged 옵션을 주어야 한다. ...

3월 4, 2022 · 4 분 · Yunjoker

Suricata IPS, IDS 시작하기 1편(설명)

많은 기업에서 각종 엔터프라이즈 또는 일반 사용자에게 서비스 하기위해 서버를 운영하는것이 대부분이다. 이러한 서버를 운영하면서 외부 올바르지 않은 접근이나 공격에 대비하기 위해 UTM, IPS, WAF, FW, SIEM, proxy 서버, 로그수집 등 많은 장비를 서버와 같이 운영하고 있다. IPS(IDS) 침입차단(방지)시스템으로 OSI 7 Layer의 3계층부터 7계층의 plain 데이터를 시그니쳐와 비교해 공격 유무를 탐지한다. IPS는 시그니쳐에 의한 탐지와 차단을 같이 진행하며 IDS는 탐지 기능만 제공하고 있다. 다만 오탐비율도 높은편이다. FW 방화벽이라는 장비로 3계층과 4계층에서 IP, PORT를 보고 혀용된 IP나 PORT는 허용하고 나머지 트레픽을 차단하는 역할을 한다. ...

2월 28, 2022 · 3 분 · Yunjoker