목록전체 글 (65)
ㅇ.ㅇ

Dependency-Check란 무엇일까Dependency-Check는 프로젝트에서 사용하는 라이브러리나 의존성(dependency) 중 보안 취약점(CVE)이 있는지 확인하는 오픈소스 도구. 어떤 라이브러리에 어떤 취약점이 있는지를 식별할 수 있어서, 배포 전에 해당 라이브러리들을 제거하거나 업데이트 할 수 있다. 동작 방식1. 프로젝트의 의존성(예: Maven, Gradle, npm 등)을 분석2. 각 라이브러리의 메타데이터 (이름, 버전, 그룹id)를 수집3. 식별된 종속성과 NVD 데이터베이스의 CVE 번호를 매핑해서 취약점 조회4. 각 의존성의 버전 정보를 기반으로 CVE 데이터베이스(NVD, OSS Index 등)에서 취약점을 조회5. 결과를 HTML, JSON 등으로 리포트 생성 주요 기능취..

최근에 iframe을 통해 웹페에지 내에 다른 웹페이지를 삽입해야 하는 사항이 있었고, 그 과정에서 SOP(Same-Origin Policy)의 중요성을 깨닫게 되었다. 이를 정리한 내용을 공유해보려 한다. SOP 개념Same-Origin Policy(SOP)는 웹 보안의 중요한 개념으로, 브라우저에서 실행되는 웹 애플리케이션 간 데이터를 보호하기 위해 설계된 규칙이다. SOP는 한 origin에서 로드된 문서나 스크립트가 다른 origin의 리소스와 상호작용하는 방법을 제한한다. 이를 통해 악의적인 접근을 방지하는 중요한 보안 메커니즘을 제공한다.여기서 Origin이란?웹 애플리케이션의 origin은 브라우저가 리소스를 로드한 출처를 나타낸다. 즉, 브라우저가 내가 접속한 서버(예:네이버)로부터 ht..
최근에 방화벽 파일에서 마스커레이드라는 설정을 보고 궁금해서 찾아보기 시작하였다. 마스커레이드의 정의마스커레이드(Masquerade)를 구글에 검색해보면 '가장무도회'라는 의미가 가장 먼저 나온다. 개발이라는 분야에서 본다면, 정보 보안쪽에서 자주 언급되는 용어로, '가장'하거나 '위장'한다는 의미를 내포하고 있다. 즉, 정당한 사용자처럼 가장하여 시스템 자원에 부당하게 접근하는 행위를 의미한다. 일반적으로 공격자는 타인의 계정, 인증 정보를 도용하거나 위조하여 마치 해당 사용자인 것처럼 행동한다. - 주요 특징1) 신분 도용 : 공격자는 타인의 사용자 계정이나 ID를 사용한다.2) 정상적인 활동처럼 보임 : 시스템 로그에는 정상 사용자처럼 기록되기 때문에 탐지가 어렵다.3) 취약점 악용: 시스템 내 인..

Java EE의 탄생과 발전Java EE(Java Platform, Enterprise Edition)는 1990년대 후반, Sun Microsystems에 의해 탄생했다. 당시 기업 환경에서는 대규모 애플리케이션 개발을 위한 복잡한 작업(트랜잭션 관리, 데이터베이스 연결, 보안 등)을 효율적으로 처리할 수 있는 표준화된 플랫폼의 필요성이 대두되었는데, Sun은 이러한 문제를 해결하고자 Java 언어를 기반으로 한 엔터프라이즈 애플리케이션 개발 플랫폼인 Java EE를 발표했다. Java EE의 주요 목적개발 효율성 향상 : 트랜잭션 관리, 데이터베이스 연동, 보안 등의 공통 기능을 표준화하여 개발 속도와 유지보수성을 높일 수 있도록 함.서버 간 호환성 보장 : Java EE는 특정 벤더에 종속되지 않고..
JPA 소개ORM (Object-Relational Mapping)객체와 관계형 데이터베이스 간의 차이를 중간에서 해결.JPA는 자바 진영의 ORM 기술 표준으로 실행 시점에 자동으로 SQL을 생성하고 실행.CRUD SQL 작성이 필요하지 않음.JPA의 장점생산성과 유지보수성 향상SQL이 아닌 객체 중심 개발이 가능.데이터베이스 변경 시 코드 수정이 적음.테스트 용이성간결한 코드로 인해 테스트 작성이 쉬워지고 버그 감소. SQL을 직접 다루면 생기는 문제반복 작업객체, DAO, SQL 작성, JDBC API 연결, 매핑 등 번거로운 작업.SQL 의존적 개발속성을 하나 추가할 때마다 등록, 조회, 수정 코드를 모두 수정해야 함.JPA의 이점직접 SQL을 작성하지 않아도 JPA가 제공하는 API를 통해 작업..

상황Maven 프로젝트를 진행하다가 최근 Gradle을 사용하는 다른 프로젝트를 IntelliJ IDEA에서 실행하였다. 이후 다시 Maven 프로젝트를 실행하려고 할 때, 아래와 같은 에러가 발생하였다. 에러 내용 Cannot run program "{경로}\.gradle\jdks\jdk-11.0.24+8\bin\java.exe" (in directory "{경 로}\AppData\Local\JetBrains\IntelliJIdea2023.3\compile-server"): CreateProcess error=2, 지정된 파일을 찾을 수 없습니다 에러 파악Maven 프로젝트는 JDK 8을 사용하는데, Gradle 프로젝트 실행 후 위와 같은 에러가 발생한 점이 이상했다. 에러 메시지를 보니, Int..

가상화 기술은 현대 IT 환경의 핵심 기술로, 물리적인 컴퓨터 자원을 논리적으로 나누어 사용하거나 새로운 컴퓨팅 환경을 만드는 데 사용된다. 이번에는 가상화 기술이 무엇이고, 왜 필요한지 등에 대해 작성해보려고 한다. 가상화 기술이란?가상화 기술은 물리적으로 존재하지 않는 컴퓨터 환경을 마치 존재하는 것처럼 만들어주는 기술이다.쉽게 말해, 하나의 물리적 컴퓨터에서 여러 대의 가상 컴퓨터를 실행할 수 있는 방법을 제공하는 것이다. 이 기술을 통해 물리적인 자원을 효율적으로 활용하고, 독립적인 운영 환경을 제공할 수 있다. 왜 가상화 기술이 필요할까?하나의 컴퓨터에서 여러 프로그램을 동시에 실행할 때, 안전하고 효과적으로 설치 및 운영하는 방법을 고민해야 한다. 가령 아래의 같은 상황들이 발생할 수 있다..

엔터프라이즈 환경은 대규모 조직에서 사용하는 IT 인프라와 시스템을 의미한다. 그리고 이러한 엔터프라이즈 환경에서는 대규모 서버 운영이 필수적이고, 적합한 서버 운영 방식을 선택하는 건 효율성, 비용, 확장성에 큰 영향을 끼친다. 이번 글에서는 서버 운영 방식 세 가지인 베어메탈, 하이퍼바이저, 그리고 컨테이너 방식에 대해 살펴보도록 하겠다. 1. 베어메탈 방식베어메탈은 물리적인 서버 하드웨어를 직접 사용하여 운영 체제와 애플리케이션을 실행하는 방식이다. 가상화 계층이 없기 때문에 모든 리소스를 애플리케이션에 집중적으로 사용할 수 있다.1) 특징직접 실행 : 서버 하드웨어 위에 바로 운영 체제가 설치된다고성능 : 가상화로 인한 성능 손실이 없다제한된 유연성 : 특정 서버에 애플리케이션이 종속될 가능성이..