문제 사용자의 쉘환경변수들은 그 설정값에 따라 때로는 보안상의 문제점을 야기시키기도 한다. 현재의 bash 쉘환경변수 설정을 살펴보고 보안상 문제가 있는 부분을 바로 잡으시오. 단, 이문제에서는 현재 접속되어 있는 쉘에 대해서만 일회성으로 바로잡으면 되며, 쉘환경변수 값을 영구적으로 바로잡기 위해 resource파일을 변경할 필요는없다. 풀이 환경변수를 변경해주면 되는 문제이다. 명령어 env를 사용해서 환경변수를 보면.. #env PATH=./:/usr/bin.... # 이런식으로 되어있는데.. 이분에서 . 의 사용이 잘못되어있다. 명령어를 사용하게 되면 현재 디렉토리부터 파일을 검사하기 때문에 현재 디렉토리에 나쁜프로그램이 있으면 피해가 생길수 있다. 이 부분을 수정해주면되는데.. 환경변수를 수정하기..
유닉스 부팅의 개요 1.1 부팅이란? 컴퓨터에서 부팅 이란 시작한다는 뜻으로 통용되는 용어이며, Bootstrapping 의 줄임말이다. Bootstrap이란 장화(부츠)를 손쉽게 신기 위해 잡아당길 수 있도록 되어 있는 손잡이가죽을 말하며, 결국 bootstrapping은 장화를 신듯이 시스템이 운영할 수 있는 준비를 하는 것을 뜻한다. 1.2. boot 과정 일반적인 UNIX의 부팅 과정에서 진행되는 일은 다음과 같다. - Kernel의 loading 과 initialization - Device detection 과 configuration - System process 의 생성 - Operator intervention(single-user boot에서만 가능함) - System 시작 스크립트 수..
문제 보안모니터링 프로그램 secure agent를 컴파일하여 실행파일을 얻었다. 그런데 이 실행파일은 daemon형태로 시스템에서 항상 실행되어야 하는 프로그램이다. 시스템이 부팅시마다 secure agent가 실행될 수 있도록 완전한 부팅 스크립트를 작성하여 적절한 위치에 설치하시오. 현재 secure agent 데몬의 실행파일 경로는 /usr/local/bin/sagentd이며, 설치하고자 하는 시스템은 solaris이다. 풀이 1./etc/rc.d/rc3.d 폴더로이동을 한다. #cd /etc/rc.d/rc3.d 2.S99sagentd파일을 만든다. #vi S99sagentd 3.파일안에 내용 작성 /usr/local/bin/sagentd 4. 아래와 같은 방법으로 작성을 하게 되면, 부팅하지 않..
http://zzigregi.com/sis/ 문제 그동안 ftp서버로 사용하던 시스템을 ftp서비스를 더이상 제공하지 않고 다른 용도로 사용하게 되었다. 현재 제공되고 있는 ftp서비스를 중지시키고 앞으로도 부팅시에도 더이상 제공되지 않도록 필요한 시스템 설정을 바꾸시오 풀이 inetd.conf에서 ftp에 #붙이믄 실행안되니깐... 그전에 ps확인해서 ftp있나보고 있으면 kill 로 죽이고inetd restart 1.서비스가 죽었을 경우 1) ftp 포트 확인 # grep ftp /etc/services ftp 21/tcp 위와 같은 사항이 나오는지 살펴보시구요.. 앞에 주석(#)으로 막혀있다면 풀어주세요.. 그다음 # pkill -HUP inetd 하시면 재가동 됩니다. 2) ftp 서비스 확인 /..
[전광성의 어셈블리어 이해하기:5회] 프로시져(Procedure) (2) 저자: 전광성 | 날짜: 2005년 03월 02일 1 .0 함수의 동작 원리 0 프로시져(Procedure) 3 .0 USES 연산자 프로시져(Procedure) 고급언어를 공부했다면, 프로그램을 함수(function)로 잘게 쪼개어 작생하는 것이 얼마나 유용한지에 대해 잘 알고 있을 것이다. 해결해야할 복잡한 문제들을 작은 부분들로 쪼개어 하나하나 풀어간다면 프로그래밍이 한결 쉬워진다. 어셈블리에서는 이를 프로시져(Procedure)라고 부른다. PROC 디렉티브 프로시져의 정의란, 고급언어에서 함수를 정의하는 것과 같다. 먼저 우리가 앞선 예제들에서 나오던 main 프로시져를 생각해 보자. 기억이 나지 않을 테니 main프로시져..
[전광성의 어셈블리어 이해하기:5회] 프로시져(Procedure) (1) 저자: 전광성 | 날짜: 2005년 02월 23일 0 함수의 동작 원리 2 .0 프로시져(Procedure) 3 .0 USES 연산자 시작하기에 앞서... 아무리 저급언어라고 해도, 함수는 존재한다. 함수는 특정 코드가 반복될때, 이를 따로 떼어내어 만들어 두고 필요할 때 호출함으로써 코드의 길이를 줄일 수 있다. 또한 함수는 지나치게 긴 코드를 보기좋고 깔끔하게 만들어 주기도 하며, 함수의 이름을 잘 짓는다면 문서화에도 도움이 된다. 어셈블리어에서는 함수를 이용할 수 있는 직접적인 명령(Instruction)은 없지만, 디렉티브(Directive)를 갖고 있다. 하지만 그 이전에, 먼저 런타임 스택(Runtime Stack)을 알..
[전광성의 어셈블리어 이해하기:4회] 프로그래밍에 필요한 명령어와 디렉티브 (3) 저자: 전광성 | 날짜: 2005년 02월 16일 1 .0 여러가지 명령어(MOV, 다이렉트-오프셋 오퍼랜드, ADD, SUB) 2 .0 플래그와 연산자(OFFSET, PTR, TYPE, 인다이렉트 오퍼랜드) 및 배열 0 JMP, LOOP 명령과 예제 JMP 명령 JMP는 jump의 약자로, 코드의 특정 위치로 점프를 할 수 있다. C언어에서의 goto문과 정확히 일대일 대응이 되는 명령이다. "jmp 목적지의 코드레이블"와 같이 사용한다. 다음의 예를 보아라. L1: jmp L1 지금 보여주는 것은 무한루프가 된다. jmp 앞에 붙은 L1:은 코드상에 붙인 레이블이다. jmp L1 이렇게 하게 되면 L1으로 가서 코드를 ..
[전광성의 어셈블리어 이해하기:4회] 프로그래밍에 필요한 명령어와 디렉티브 (2) 저자: 전광성 | 날짜: 2005년 02월 04일 1 .0 여러가지 명령어(MOV, 다이렉트-오프셋 오퍼랜드, ADD, SUB) 0 플래그와 연산자(OFFSET, PTR, TYPE, 인다이렉트 오퍼랜드) 및 배열 3 .0 JMP, LOOP 명령과 예제 산술 연산에 영향을 받는 플래그 산술 연산을 하다 보면 최대값을 뛰어넘어 오버플로우가 발생하기도 한다. 이럴 때 어떻게 처리를 해주어야 할까? 플래그(Flags)를 이용하면 된다. 플래그는 산술연산을 수행한 후, 어떤 상태가 되었는지에 대해 알려준다. 단지 오버플로우 뿐만 아니라 계산 후 0이 되었는지, 부호가 붙었는지 등을 표시해 준다. 조심해야 할 것은 산술 연산을 두 번..