728x90
반응형

정적분석 8

Information Flow Control (IFC)

개요Information Flow Control(IFC)은 시스템 내에서 데이터가 어떻게 흐르고, 누가 어떤 정보를 접근하고 전달할 수 있는지를 제어하여 정보 유출과 오용을 방지하는 보안 기술이다. 단순한 접근 제어를 넘어서, 민감 정보가 부적절하게 전파되는 경로 자체를 차단함으로써 보다 정교한 보안 정책을 구현할 수 있다.1. 개념 및 정의 항목 내용 정의시스템 내 데이터 흐름을 추적하고 제한하여 정보 유출을 방지하는 기술목적정보 유출, 무단 전파, 권한 없는 사용자 접근 방지분류정적 IFC(Static), 동적 IFC(Dynamic) 또는 하이브리드 방식으로 구현됨IFC는 코드, 운영체제, 애플리케이션 등 다양한 수준에서 구현되며 정보의 흐름 경로에 집중한다.2. 특징특징설명전통적 보안 방식과 차이..

Topic 2025.06.19

SAST(Static Application Security Testing)

개요SAST(Static Application Security Testing)는 소스 코드, 바이트 코드 또는 애플리케이션의 중간 코드 상태에서 보안 취약점을 찾아내는 정적 분석 기법입니다. 이는 코드가 실행되기 전에 수행되며, 보안 결함을 조기에 식별하고 수정할 수 있도록 도와줍니다. DevSecOps의 핵심 요소로 부각되며, 소프트웨어 개발 초기 단계에서의 보안 강화를 목표로 합니다.1. 개념 및 정의 항목 설명 정의SAST는 정적 분석 도구를 이용해 코드 실행 없이 취약점을 찾아내는 보안 테스트 방식입니다.목적개발 초기 단계에서 보안 결함을 사전에 탐지 및 수정필요성비용 효율성과 보안 품질 향상을 동시에 실현 가능SAST는 개발 단계에서 Shift Left Testing을 실현하며, 개발자 친화적..

Topic 2025.04.29

Secure Coding Guide

개요개발보안가이드는 소프트웨어 개발 생명주기(SDLC) 전반에 걸쳐 보안을 고려한 안전한 코드 작성 기준을 제시하는 가이드라인이다. 이는 보안 취약점을 사전에 예방하고, 해킹·침해 사고를 최소화하며, 정보 보호법 등 법적 요구사항을 충족시키는 데 목적이 있다. 특히 금융, 공공, 의료 등 보안이 중시되는 산업에서 필수적으로 준수되어야 하며, 개발자, 기획자, 보안 담당자 모두에게 필요한 지침이다.1. 개념 및 정의개발보안은 소프트웨어 개발 과정에서 보안을 내재화(Shift Left)하는 개념으로, 보안 결함이 제품 출시 전에 제거되도록 한다. 한국에서는 행정안전부, 금융보안원, KISA 등이 개발보안가이드를 제정하여 권고하고 있으며, 주요 기준으로 CWE, OWASP Top 10 등이 사용된다.2. 특징..

Topic 2025.04.24

코드 난독화(Code Obfuscation)

개요코드 난독화(Code Obfuscation)는 소스 코드 또는 바이너리의 구조와 가독성을 인위적으로 복잡하게 만들어 리버스 엔지니어링, 악성 코드 분석, 무단 복제 및 공격을 방지하는 소프트웨어 보호 기술입니다. 특히 악성코드 은폐, 정적 분석 회피, DRM 보호 등 다양한 보안 목적에서 활용되며, 동시에 분석가 입장에서는 위협 탐지의 난이도를 높이는 주요 장애 요소입니다.1. 코드 난독화의 개념 및 목적코드 난독화는 실행에는 영향을 미치지 않으면서 코드의 의미나 구조를 왜곡하여 해석을 어렵게 만드는 기법입니다. 주로 다음과 같은 목적으로 사용됩니다. 목적 설명 보안 강화내부 알고리즘, 키, 인증 로직 보호역공학 방지리버싱 도구(Ghidra, IDA 등) 분석 차단지적재산권 보호코드 도용·재사용 방..

Topic 2025.04.14

코드스멜(Code Smell)

개요코드스멜(Code Smell)은 소프트웨어 개발 과정에서 유지보수성과 확장성을 떨어뜨리는 비정상적인 코드 구조를 의미합니다. 직접적인 버그는 아니지만, 장기적으로 프로젝트에 악영향을 줄 수 있는 코드의 징후를 뜻합니다. 본 글에서는 코드스멜의 개념과 특징, 주요 유형, 진단 도구 및 해결 방법 등을 심층적으로 알아봅니다.1. 개념 및 정의코드스멜(Code Smell)은 1990년대 말 켄트 벡(Kent Beck)과 마틴 파울러(Martin Fowler)에 의해 정의된 개념으로, 코드를 처음 봤을 때 직관적으로 "뭔가 잘못되었다"고 느껴지는 부분을 의미합니다. 이는 프로그램이 정확히 동작하더라도 내부 구조가 비효율적이거나, 가독성 및 유지보수성이 떨어지는 상황을 말합니다.2. 특징 구분 설명 예시 ..

Topic 2025.04.08

Technical Debt(기술부채)

개요기술부채(Technical Debt)는 소프트웨어 개발 과정에서 단기적인 목표(빠른 출시 등)를 위해 장기적인 품질이나 유지보수를 희생한 결과로 발생하는 누적된 기술적 문제를 의미합니다. 이는 마치 '빚'처럼 시간이 지날수록 이자를 발생시키며, 궁극적으로 개발 생산성과 시스템 안정성을 저하시킵니다.1. 개념 및 정의기술부채는 코드 품질 저하, 설계 미비, 테스트 부족, 문서 누락 등의 형태로 나타나며, 기능 추가나 유지보수 시 더 많은 시간과 비용을 요구하게 됩니다. 마틴 파울러(Martin Fowler)는 기술부채를 "의도적 또는 비의도적으로 생긴 설계 상의 결함이 미래에 문제를 유발하는 것"으로 설명합니다.2. 특징 항목 설명 비고 누적성시간이 지날수록 해결 비용 증가조기 대응 필요가시성 부족..

Topic 2025.04.05

AI 기반 바이너리 분석(AI-driven Binary Analysis)

개요AI 기반 바이너리 분석(AI-driven Binary Analysis)은 머신러닝 및 딥러닝 기술을 활용하여 실행 파일, 라이브러리, 펌웨어 등 바이너리 코드에 대한 정적·동적 분석을 자동화하고 고도화하는 보안 분석 기술입니다. 이는 기존의 수작업 중심 디스어셈블리나 시그니처 기반 분석보다 더 빠르고 정밀하며, 알려지지 않은 악성코드 탐지, 제로데이 분석, 취약점 리버스 엔지니어링 등에 효과적으로 활용됩니다. 본 글에서는 AI 기반 바이너리 분석의 개념, 기술 구성, 장점, 활용 분야를 살펴봅니다.1. 개념 및 정의바이너리 분석(Binary Analysis)은 컴파일된 이진 실행 파일을 대상으로 구조, 동작, 보안 취약점을 분석하는 기법입니다. 여기에 AI 기술을 접목하여 패턴 인식, 기능 분류, ..

Topic 2025.03.27

정규표현식 기반 서비스 거부 (ReDoS: Regular Expression Denial-of-Service)

개요ReDoS(Regular Expression Denial-of-Service)는 정규표현식의 계산 복잡성을 악용하여 서비스의 자원을 고갈시키는 공격 기법입니다. 정규표현식은 입력 데이터 유효성 검증, 보안 필터링, 탐지 룰 등 다양한 영역에서 활용되지만, 비효율적인 패턴 구성 시 입력 길이에 따라 기하급수적으로 연산 시간이 증가하여 서비스 마비로 이어질 수 있습니다. 본 글에서는 ReDoS의 개념, 공격 원리, 피해 사례, 탐지 및 방어 전략을 상세히 살펴봅니다.1. 개념 및 정의 항목 설명 ReDoS입력값이 특정 정규표현식 패턴을 유발해 과도한 연산이 발생함으로써 서비스 자원을 소모시키는 공격정규표현식(Regex)문자열 검색, 매칭, 대체 등을 위해 사용하는 패턴 언어NFA (Nondetermin..

Topic 2025.03.25
728x90
반응형