본문 바로가기
정보보안/신용어 정리

용어 빈칸문제 - 정보보안기사 실기 대비 v3

by 쭈로미 2021. 10. 22.


1. 힙 스프레이 기법

- 페이로드를 전달하는 방법으로써, 마치 스프레이로 뿌리는 것처럼 힙 메모리 영역에 대량의 메모리를 할당하고 코드를 삽입

- 따라서 힙 메모리에 대하여 예측 가능한 메모리 영역에 쉘 코드를 삽입하는 것이 가능

- 대응방안

  . strcpy, strcat, sprintf, memcpy 등의 함수 → strncpy, strncat, snprintf 라이브러리 함수 사용

  . 메모리 버퍼의 경계 값을 넘어 메모리를 읽거나 저장하지 않도록 경계 설정 또는 검사를 반드시 수행

  . 프로그램 상에서 버퍼를 사용할 경우, 적절한 버퍼의 크기를 설정하고 설정된 범위의 메모리 내에서 올바르게 읽기/쓰게 통제

  . Non-executable Stack, 스택가드(StackGuard), ASLR 등과 같은 메모리 보호 기법 적용


2. 다형성

- 악성코드가 실행될 때마다 실행 코드가 바뀌는 방식

- 주로 바이러스류 악성코드에서 발견이 되는데, 파일이 바이러스에 감염될 때마다 그 형태가 변해 감염여부를 진단하기 어렵게 만드는 기법


3. 난독화

- 프로그램의 로직을 분석하기 어렵게 만드는 기법

- 일반적으로 암호화 방식이 많이 사용됨

  . 대칭키 암호화 알고리즘을 사용해 악성코드가 감염될 때 마다 고유한 키를 이용하여 코드 섹션을 암호화기 때문에, 코드의 특징적인 부분을 진단하는 시그니처 기반 진단법을 우회 가능

  . 또한, 코드 섹션이 암호화되어 있기 때문에, 정적 분석이 불가능


4. 패킹 (Packing)

- 난독화와 유사한 개념으로 우리말로 실행압축이라는 표현을 쓰기도 함

  . 실행압축이라는 용어는 압축된 파일을 클릭만 하면 압축이 풀리면서 파일이 자동으로 실행되도록 사용자에게 편의성을 제공하기 위해 고안된 기술

- 프로그램을 손상시키지 않도록 보호하기 위해서 사용하는 기법 중 하나이며, 실행압축된 프로그램을 풀기 어렵게 하여 코드를 분석하기 어렵게 만드는 방어 기법 중 하나

- 패킹된 악성코드의 경우에는 원본 악성코드와는 구조가 다른 구조를 가지게 되기 때문에, 시그니처 진단법으로는 진단의 한계를 가질 수밖에 없음


5. 사이버 위기 경보 발령 단계

- 정상 > 관심 > 주의 > 경계 > 심각

 


6. nessus

- 미국 Tenable사가 개발하여 무료로 배포하는 취약점 점검 도구

- 패스워드 취약점, TCP/IP 스택 Dos, 취약한 서버 설정 등 알려진 취약점을 점검하여 text, HTML 등 다양한 형태로 보고서 제공


7. 퍼저(Fuzzer) 또는 퍼징 도구

- 애플리케이션의 보안 취약점을 찾아내기 위한 도구

- 목표 애플리케이션에 대한 다양한 비정상적인 데이터를 입력함으로써 소프트웨어 오류를 유발시켜 보안 취약점을 찾아냄


8. 소프트웨어 보안 가이드 내 소스코드 보안 취약점 7가지

1) 입력데이터 검증 및 표현 : 사용자가 입력한 값에 대한 검증 과정 및 데이터 자료형에 대한 오용으로 인한 보안 취약점

2) API 악용 : 표준 API 의 잘못된 사용으로 인한 보안 취약점 

3) 보안기능 : 인증, 접근제어, 권한관리, 암호화 등 기본적 보안 기능과 관련된 취약점

4) 시간 및 상태 : 멀티 프로세스/스레드 프로그래밍에서 발생할 수 있는 보안 취약점

5) 에러처리 : 어플리케이션 사용 시 발생할 수 있는 에러처리와 관련된 보안 취약점

6) 코드품질 : 어플리케이션 안전성, 신뢰성을 확보하기 위한 소스코드 품질 관련된 보안 취약점

7) 캡슐화 : 어플리케이션이 다른 값을 참조할 때 발생하는 보안 취약점


9. 아파치 웹서버 설정파일(httpd.conf) 지시자

- ServerRoot : 웹서버가 설치된 최상위 디렉터리 경로 설정

- ServerType (standalone/inetd) : 서버타입 지정

- ServerTokens : http 응답 시 헤더의 server 필드를 통해 제공할 웹서버, OS 등 정보 레벨 지정 (보안을 위해 Prod-'웹서버 종류'만으로 설정할 것)

- Listen : 웹서버 리스닝 포트 지정

- ServerAdmin : 에러페이지에 포함될 관리자 메일 주소

- MaxClients : 동시 연결 가능한 클라이언트의 최대 개수 설정

- Timeout : 연결 후 클라이언트와 서버 간 아무런 메시지가 발생하지 않을 동안 대기 시간, 초 단위

- PidFile : 웹서버가 기동될 때 자신의 PID를 기록할 파일의 경로 설정

- User/Group : 서버 프로세스를 실행할 사용자와 그룹 설정

- KeepAlive (On/Off) : 클라이언트와 서버 간 연결을 일정 조건에 따라 지속시켜 동일한 연결을 통해 동일 클라이언트의 다수 요청을 처리하는 기능의 사용 여부 설정

- MaxKeepAliveRequests : KeepAlive 옵션 사용 시, 클라이언트와 서버 연결이 유지되는 동안 허용할 최대 요청 개수 지정

- KeepAliveTimeout : KeepAlive 옵션 사용 시, 클라이언트와 서버 연결을 지속시키는 동안에 

클라이언트의 마지막 요청 이후 다음 요청을 대기하는 시간(초) 지정, 추가 요청 미발생 시 연결 종료

- RequestReadTimeout header=5 body=10 : 읽기 타임아웃 설정, 요청 헤더가 5초 이내 수신되지 않거나 (Header DOS 대응) 바디 정보가 10초 이내 수신되지 않으면 (Slow HTTP Header, Slow HTTP POST DoS 공격 대응)

- DirectoryIndex : 특정 파일을 지정하지 않고 디렉터리만 지정했을 때 호출할 기본 페이지 지정

- ErrorLog : 에러로그 파일을 어느 경로에 설정할지 지정

- HostnameLookups (On/Off) : 액세스 로그 파일에 클라이언트 정보를 기록할 때, IP를 남길 것인지(Off) / 호스트명(도메인명)을 남길 것인지 (On), 호스트명을 남길 경우 DNS 역질의로 성능저하가 발생하는 단점

 

< Directory 섹션의 지시자 >

<Directory>

- LimitRequestBody : 클라이언트가 POST, PUT 메소드를 이용해 요청 메시지 바디부에 데이터를 담아 전달할 수 있는 최대 크기

- AllowOverride Authconfig 혹은 All : None으로 되어있는 경우, 상위 디렉토리로 접근 가능

- AllowOverride FileInfo 혹은 All : 파일 업로드 디렉터리에 대한 문서 타입 제어

  . 파일 업로드 디렉터리에 .htaccess 파일 생성

     > FilesMatch 지시자를 이용해 .ph 등 서버 사이드 스크립트 파일에 대해 직접 URL 호출을 금지시킴

     > AddType 지시자를 이용해 서버 사이드 스크립트 확장자를 text/html로 MIME Type 재조정 (실행 못하도록)

- Options Indexes : 디렉터리 리스팅 취약점 존재하므로 삭제 필요

- Options FollowSymLinks : 심볼릭링크가 가능하므로 제거 필요

</Directory>


10. PHP 운영체제 명령어 실행 함수

- shell_exec(), exec(), system(), passthru

 

 


※ 참고

- 사이버 위협 동향보고서(2021년 상반기)

- KISA 주요 정보통신기반시설 취약점 점검 가이드

댓글