전체 글
-
[Redis] Caching 전략 및 가이드Development/Redis 2025. 6. 18. 02:27
Database는 애플리케이션의 핵심이지만 잦은 데이터 조회는 성능 저하 & 부하를 일으킬 수 있습니다.Cache는 자주 사용하는 데이터를 메모리에 저장하여 Database 조회 비용과 응답 시간을 줄임으로써 위에 있는 문제를 해결하는데 중요한 역할을 합니다.목적 : Cache는 Memory Access이고 Database는 I/O 작업이기 때문에 훨씬 빠르게 조회 가능 및 부하 감소한계 : Cache와 Database 간 불일치 가능성 존재Redis Caching 전략데이터를 어떻게 저장하고 Database와 어떻게 동기화할지에 따라 크게 3가지로 나눠질 수 있습니다.✔️ Cache Aside (Lazy Loading)가장 보편적으로 사용되고 구현하기 쉬운 전략 중 하나입니다.이름처럼 애플리케이션이 캐..
-
[A03:2021 - Injection] SQL Injection을 이용한 사용자 계정 정보 탈취 - Blind SQL Injection, General SQL InjectionDevelopment/CTF 문제 풀이 2025. 6. 17. 23:10
SQL Injection은 사용자의 입력값을 검증하지 않고 SQL 쿼리에 그대로 포함시켜 실행되는 보안 취약점으로 의도하지 않은 쿼리를 주입(Injection)하여 데이터를 탈취하거나 조작하는 공격입니다.최근에는 다양한 방어 기법과 ORM 기술들이 적용되며 SQL Injection에 대한 대응이 개선되고 있지만 레거시 시스템에서는 여전히 이 취약점이 존재하는 경우가 많습니다.특히 오래된 프로젝트는 구조적으로 보안 업데이트가 어려운 경우가 많아 현실적인 보안 리스크로 여겨지고 있습니다.이러한 이유로 OWASP Top 10에서도 Injection은 가장 심각하고 빈번하게 발생하는 보안 취약점 중 하나로 분류되어 3위(A03:2021)를 차지하고 있습니다.해당 항목에는 SQL Injection뿐 아니라 Cro..
-
[A03:2021 - Injection] Command Injection (Low~High) - PHPDevelopment/CTF 문제 풀이 2025. 6. 15. 23:42
DVWA(Damn Vulnerable Web Application)는 웹 애플리케이션 보안 실습을 위한 플랫폼입니다.이번 글에서는 Command Injection 취약점 중 Low ~ high 보안 등급에서의 동작을 살펴보고 실제 공격 시나리오와 취약점 원인을 PHP 코드로 분석합니다.Command Injection 이란?사용자 입력값이 서버의 명령어 실행 함수에 그대로 전달되어 임의 명령어를 실행할 수 있게 되는 취약점입니다.공격자는 시스템 명령어를 삽입하여 파일 탐색, 시스템 정보 탈취, 권한 상승 등을 시도할 수 있습니다.🔓 Low 보안 등급{$cmd}";}?>취약점 분석shell_exec() 함수는 인자로 전달된 문자열을 OS 명령어로 실행하고 결과를 반환합니다.사용자 입력값 $_REQUEST[..
-
[Redis] 트랜잭션 이해 : 원자성과 일관성 보장의 기술적 접근Development/Redis 2025. 6. 4. 00:48
Redis Transaction Redis에서도 트랜잭션(Transaction) 개념을 지원합니다.트랜잭션은 여러 개의 명령어를 하나의 묶음으로 실행하는 것처럼 Redis에서 명령합니다.MULTIDECR coupon:summer_sale:stockLPUSH user:1:coupons "summer_sale"EXEC해당 예시를 설명해보겠습니다.MULTI : 트랜젝션 시작DECR, LPUSH 명령어를 Queue에 삽입EXEC : Queue에 삽입한 명령어를 한번에 실행기본 구성Redis 트랜잭션은 다음 세 가지 명령어를 중심으로 이루어집니다.MULTI : 시작EXEC : 순차적으로 실행DISCARD : Queue안에 있는 데이터 모두 제거작동 방식Redis 트랜잭션은 위에서 말했듯이 명령어를 모아뒀다가 EX..
-
[Linux] 계정 비밀번호 정책 및 설정 feat.정보보안기사Development/Linux 2025. 6. 3. 23:35
해킹 공격에서 비밀번호 탈취는 핵심적인 목표로 공격 대상이 되는 계정은 크게 일반 사용자, 시스템 운영에 필요한 특수 사용자 그리고 시스템의 모든 권한을 가진 루트(Root) 사용자로 나눌 수 있습니다.이 중 특히 특수 사용자나 루트 사용자의 비밀번호 탈취 사건은 시스템 전체의 보안을 무너뜨리고 대규모 정보 유출이나 서비스 마비와 같은 심각한 문제를 야기하며 뉴스 속보로 다뤄지곤 합니다. 이처럼 치명적인 피해를 막기 위해 리눅스 시스템에서는 강력한 비밀번호 정책과 철저한 관리가 필수적입니다.이번 글에서는 리눅스 시스템의 사용자 계정 정보와 비밀번호 보안의 핵심이 되는 /etc/passwd와 /etc/shadow 파일을 깊이 있게 분석하고 이를 통해 비밀번호 정책을 어떻게 설정하고 관리하는지 알아보겠습니다..
-
[웹 정보 수집] 직접 만들어서 써보는 Directory BruteforcingDevelopment/개발 및 자동화 2025. 6. 1. 22:15
최근 해킹 관련 강의와 영상들을 찾아보다 보니 해킹의 시작은 정보 수집이라는것을 배웠고 웹 정보 수집 기법 중 하나인 Directory Bruteforcing에 대해 공부하고 직접 스크립트를 만들어 실습해 보았습니다.Directory Bruteforcing웹 서버가 숨기고 있는 디렉터리나 파일들을 사전에 준비된 단어 목록(Dictionary)을 기반으로 요청을 보내며 존재 여부를 파악하는 기법으로 매우 간단한 방식이지만 웹 취약점을 파악하는 데 있어 매우 효과적인 접근입니다.이 기법에서 가장 중요한 것은 스크립트를 짜는 실력(1%)이 아닌 효율적이고 효율적인 사전 파일(99%) 입니다.사전 파일에 대한 고민기본적으로 사전파일을 처음부터 작성하는 것은 비효율적이기 때문에 이미 만들어진 다양한 사전 파일을 ..
-
[Java] I/O 작동 원리 HDD 구조부터 시작하기Development/JAVA 2025. 5. 29. 22:27
Java I/O의 시작 - File과 하드디스크의 이해Java의 I/O(Input/Output) 기능은 운영체제를 통해 하드웨어 자원에 접근하며, 주로 파일, 네트워크, 콘솔 등의 입출력 작업을 수행하는 데 사용되며 가장 기본적인 파일에 관해 하드디스크부터 천천히 알아보겠습니다.하드디스크(HDD)의 논리적 구조하드디스크는 회전하는 원형 디스크(platter)와 이를 읽고 쓰는 기계적 팔(arm)으로 구성되어 있으며 플래터는 여러 개의 트랙(track)과 섹터(sector)로 나뉘어서 데이터를 저장할 수 있는 논리적 단위를 형성합니다.트랙(Track): 디스크의 중심에서 바깥 방향으로 동심원 형태로 번호가 매겨집니다 (0, 1, 2, ...)섹터(Sector): 각 트랙을 나누는 조각이며, 시계 방향으로 ..
-
[Hash Algorithm] 해시 길이 정리 (MD5, SHA-1, SHA-256, SHA-512)Development/개념 및 이론 2025. 5. 26. 12:22
해킹/보안 공부나 인증 시스템 구현 시 자주 접하게 되는 해시 알고리즘의 해시 문자열(16진수)의 길이만 보고 어떤 알고리즘이 사용되었는지 추측할 수 있기 때문에 아래 내용을 정리해두었습니다.알고리즘 종류비트 수16 진수 길이Base 64 길이MD5128 bit3222SHA-1160 bit4027SHA-256256 bit6443SHA-512512 bit12886Salt 없는 Hash를 Crack하는 대표적인 방법1. 사전 공격 (Dictionary Attack)미리 준비한 일반적으로 많이 쓰이는 비밀번호(평문) 목록을 가지고 공격 시점에서 각 평문을 해시화하여 대상 해시와 비교하는 방식입니다.구현이 단순하고 메모리 사용량이 적습니다.사전에 잘 준비된 리스트일 경우 매우 빠르게 동작합니다.목록에 없는 경우..