보안 74

[Meltdown and Spectre] 엎질러진 물

💡Meltdown: 비순차실행을 이용해, user application 주제에 kernel 데이터를 읽는 공격  발생 원리✅1: user mode application이 커널 영역의 메모리 주소에 접근 시도 예시 1예시 2ptr: kernel 영역의 주소. ✅2: 비순차실행1.에 의해 아래 과정이 일어나야 한다.i) 가상 주소의 Address translation: 가상 주소인 (kernel)을 물리 주소로 변환ii) PTE 로드: 주소 변환을 위한 Page Table 참조iii) permission check: 해당 물리 주소에 접근 권한이 있는지를 PTE의 권한 정보를 바탕으로 체크    -> 권한이 없네! -> page fault exception 그런데 이것은 시간이 한참 걸리므로,비순차실행에 ..

[Malware: Malicious Software] Type, History, Detection, Trend

Malware types Virus: OS 등 host에서 target file (일반적으로 실행파일)을 찾아 자기 자신의 복사본을 삽입하여 전파하는 코드 조각 * virus의 주요 위치: - Boot sector -> 다른 어떤것보다도 먼저 control 능력을 가짐  - Memory resident - Applications, macros, data, etc. - Library routines - Compilers, debuggers, virus checker, etc. * 독립적으로 실행될 순 없고, host 프로그램이 이것을 실행하게 해야 실행됨* target file이 실행되면 virus도 실행되기 시작 * 오염된 file이 machine에서 machine으로 이동할 때에만 퍼짐 Worm: 어떤..

[Server Side Request Forgery (SSRF)]

Server Side Request Forgery (SSRF): 서비스 간 HTTP 통신이 이뤄질 때, 외부에 있는 공격자의 입력값이 요청 내에 포함됨으로써 요청이 조작되면, 웹 서비스의 권한으로 전송되어, 간접적으로 내부망 서비스를 이용   웹 개발 언어는 HTTP 요청을 전송하는 라이브러리를 제공한다.PHP의 php-curl, NodeJS는 http, 파이썬은 urllib, requests이러한 라이브러리는 HTTP 요청을 보낼 클라이언트 뿐만 아니라 서버와 서버 간 통신, 또는 다른 웹 애플리케이션에 존재하는 리소스를 사용하기 위한 목적의 통신에 쓰인다.eg. 마이크로서비스 간 통신, 외부 API 호출, 외부 웹 리소스 다운로드  ※ 마이크로서비스최근의 웹 서비스는 단일 서비스로 구현되지 않고 마이..

보안/웹 보안 2024.06.08

[File Upload/Download Vulnerability]

File Upload Vulnerability: 공격자가 원하는 파일 / 악성 확장자를 갖는 파일을 서버의 파일 시스템 상 임의 경로에 업로드  1. Path Traversal 이용 공격 ▶ 취약한 코드>> 파일 업로드 기능에 Path Traversal 취약점이 있는 웹 서비스 코드from flask import Flask, requestapp = Flask(__name__)@app.route('/fileUpload', methods = ['GET', 'POST'])def upload_file(): if request.method == 'POST': f = request.files['file'] f.save("./uploads/" + f.filename) return 'Upload Success' ..

보안/웹 보안 2024.06.08

[Command Injection] 발생 원리, exploit 예시, 예방

Command Injection: 시스템 명령어를 실행하는 함수에 이용자가 입력을 통해 임의의 인자를 전달할 수 있을 때 발생- 공격에 사용되면 웹 애플리케이션에 임의 명령어를 실행할 수 있어 공격 파급력이 높음인젝션(Injection): 악의적인 데이터를 프로그램에 입력하여, 이를 시스템 명령어, 코드, 데이터베이스 쿼리 등으로 실행되게 하는 기법- 웹 애플리케이션을 대상으로 하는 인젝션 공격은 SQL Injection, command injection 등이 있음  발생하는 이유웹 애플리케이션을 개발하다보면, 어떤 기능에 대해서는 스스로 코드를 작성하기보다 이미 설치된 소프트웨어를 사용하는 것이 편리할 때가 있다. 업로드 디렉토리에 있는 파일들의 이름을 출력하는 웹 애플리케이션을 만든다고 할 때, 디렉..

보안/웹 보안 2024.06.08

[No SQL Injection] Simple Injection, Blind Injection

NoSQL Injection: 이용자의 입력값이 쿼리에 포함되어, 이용자가 원하는 요청을 실행하는 취약점 ㅡ SQL Injection과 공격 목적 및 방법이 매우 유사 SQL과 달리, NoSQL은 사용하는 DBMS에 따라 요청 방식과 구조가 다른데이 글에서는 MongoDB에서의 NoSQL Injection만 알아볼 것임 MongoDB에서는 SQL이 저장할 수 있는 데이터의 자료형인 문자열, 정수, 날짜, 실수 외에도 오브젝트 타입을 사용할 수 있는데,오브젝트 타입의 입력값을 처리할 때에는 쿼리 연산자를 사용할 수 있어,이를 통해 다양한 행위가 가능 >> Node.js의 express 프레임워크로 짜인 소스코드 예시const express = require('express');const app = expr..

보안/웹 보안 2024.06.08