분류 전체보기28 [Security] OCSF (Open Cybersecurity Schema Framework) 소개 OCSF란 무엇인가?OCSF(Open Cybersecurity Schema Framework)는 보안 데이터 사일로를 제거하고 벤더와 애플리케이션 간 이벤트 형식을 표준화하기 위한 오픈소스 프로젝트입니다. 2022년 8월 Splunk, AWS, IBM 및 15개 사이버보안 기업들이 Black Hat USA 2022에서 출시했습니다. 주요 발전 현황OCSF는 설립 1주년을 맞아 다음과 같은 성과를 이루었습니다:커뮤니티 대폭 확장: 145개 이상의 조직과 435명의 개인 기여자로 8배 이상 성장벤더 중립적 보안 스키마: 조직이 어떤 환경, 애플리케이션, 솔루션에도 통합할 수 있는 오픈 프레임워크 제공주요 기업 도입: 다수의 Fortune 500 기업과 공공 기관에서 내부적으로 OCSF 스키마 채택 기술적 의.. 2025. 4. 27. [Architecture] S3 버킷 검사 로직의 효율적인 설계: 다양한 패턴과 결합도 최적화 S3 버킷 내부를 검사하는 로직을 Java로 구현할 때, 다양한 설계 패턴과 결합도 개념을 적용하여 효율적이고 유지보수가 용이한 설계를 만들 수 있다. 이 글에서는 여러 설계 패턴을 소개하고, 강한 결합과 느슨한 결합의 개념을 적용하여 더욱 유연한 구조를 만드는 방법을 설명한다. 설계 목표코드의 복잡성 감소S3 관련 작업의 중앙화확장성 있는 구조 설계다른 모듈에서 쉽게 사용할 수 있는 인터페이스 제공결합도를 낮추어 유연성과 테스트 용이성 향상 설계 패턴 예시Facade 패턴public interface S3Operations { List listBuckets(); List listObjects(String bucketName); void analyzeBucketContents(String.. 2024. 9. 11. [Security] AWS Security Hub: AWS CSPM 도구 AWS Security Hub는 클라우드 보안 상태 관리(CSPM) 도구로, 클라우드 환경의 보안 상태를 종합적으로 모니터링하고 문제를 해결한다. CSPM은 클라우드 인프라의 설정 오류를 탐지하고, 이를 통해 보안 위험을 최소화할 수 있다. Security Hub는 이러한 CSPM 기능을 통해 다양한 AWS 계정과 리전에서 일관된 보안 상태를 유지하도록 돕는다. 주요 기능1. 자동화된 보안 평가Security Hub는 AWS 모범 사례 및 산업 표준(CIS, PCI DSS, NIST 등)을 기반으로 자동화된 보안 점검을 제공한다. 이를 통해 계정과 리소스의 보안 상태를 주기적으로 평가하고, 보안 위협을 식별하여 우선순위를 정할 수 있다.2. 통합 보안 관리AWS 서비스 및 서드파티 보안 도구에서 수집된 .. 2024. 9. 4. [Golang] Go 언어에서의 패키지 이름 짓기 (no under_scores or mixedCaps) Go 언어에서 패키지 이름은 코드의 가독성과 유지보수성에 중요한 역할을 한다. 패키지 이름은 간결하고 명확해야 하며, 공백이나 여러 어절을 사용할 수 없다. 이번 글에서는 Go 언어에서 패키지 이름을 짓는 방법과 그 중요성에 대해 알아본다. 패키지 이름의 중요성Go 코드의 조직화는 패키지를 통해 이루어진다. 패키지 이름은 해당 패키지의 내용과 목적을 쉽게 이해할 수 있도록 도와준다. 잘 지어진 패키지 이름은 클라이언트 코드가 패키지를 어떻게 사용해야 하는지 명확하게 나타내며, 패키지 유지보수자가 패키지의 내용을 관리하는 데에도 도움이 된다. 패키지 이름 짓기 규칙과 관습소문자 사용: Go의 패키지 이름은 모두 소문자로 작성되어야 한다. 대문자를 포함하는 패키지 이름은 권장되지 않으며, 일반적으로 사용되지.. 2024. 8. 7. [Golang] Go 언어에서 제네릭 메서드를 지원하지 않는 이유 Go 언어는 제네릭을 도입하여 타입 파라미터를 사용할 수 있게 되었지만, 메서드에는 제네릭 타입 파라미터를 지원하지 않는다. 이 글에서는 Go 언어가 왜 제네릭 메서드를 지원하지 않는지, 그리고 그 결정의 이유와 대안에 대해 살펴본다. 제네릭 메서드란 무엇인가?제네릭 메서드는 메서드 자체에 타입 파라미터를 사용하는 것을 의미한다. 이는 제네릭 타입을 가지고 있는 메서드를 정의할 수 있다는 것을 뜻한다. 예를 들어, 아래의 코드는 Nop이라는 제네릭 메서드를 가지는 Empty라는 타입을 정의한 것이다:type Empty struct{}func (Empty) Nop[T any](x T) T { return x}이 메서드는 인자로 받은 어떤 타입이든 그대로 반환한다. 자바의 제네릭 메서드 예시자바에서는 .. 2024. 8. 7. [Security] CSF Tools 소개 및 가이드 CSF Tools는 NIST 사이버 보안 프레임워크(CSF)와 개인정보 보호 프레임워크(PF)를 보다 이해하기 쉽게 만들기 위해 다양한 유용한 도구를 제공하는 웹사이트이다. 이 글에서는 CSF Tools의 주요 기능과 제공되는 보안 컴플라이언스 자료에 대해 소개한다.https://csf.tools/ Welcome to CSF Tools - CSF ToolsThis site contains a number of helpful tools that will make the NIST Cybersecurity Framework (CSF) and Privacy Framework (PF) more understandable and accessible. Some of those tools are outlined bel.. 2024. 8. 6. [Security] 보안 공학 원칙 (SA-8: Security Engineering Principles) 조직은 주로 새로운 개발 정보 시스템이나 주요 업그레이드를 진행 중인 시스템에 보안 공학 원칙을 적용한다. 기존 시스템의 경우, 현재 하드웨어, 소프트웨어 및 펌웨어 상태를 고려하여 시스템 업그레이드 및 수정에 보안 공학 원칙을 적용한다. 이 글에서는 NIST(National Institute of Standards and Technology)에서 가이드하고 있는 SA-8 항목에 따라 보안 공학 원칙을 설명한다. 보안 공학 원칙 (Security Engineering Principles)NIST Special Publication 800-53 에서 보안 공학 원칙에는 다음과 같은 요소들이 포함된다:계층화된 보호 개발 (Developing Layered Protections): 여러 보안 계층을 구축하여 .. 2024. 8. 5. [DevOps] Makefile을 활용한 CI/CD 효율 극대화 자동화가 중요한 연속 통합(Continuous Integration, CI) 및 연속 배포(Continuous Deployment, CD) 세계에서 Makefile을 적절히 사용하면 구현 및 인프라 엔지니어링의 효율이 크게 향상될 수 있다. 주로 C 및 C++ 같은 언어의 코드 컴파일에 사용되는 도구로 알려진 Makefile은 CI/CD 파이프라인의 다양한 작업을 단순화하고 자동화하는 데 유용한 다목적 도구이다. 이 가이드는 초보자와 중급 소프트웨어 및 DevOps 엔지니어에게 Makefile을 CI/CD에서 효과적으로 사용하는 방법을 소개하고, 최선의 방법, 일반적인 함정, 주의할 점 등을 다룬다.Makefile이란 무엇인가?Makefile은 보통 make 빌드 자동화 도구와 함께 사용하는 쉘 명령을 .. 2024. 8. 2. [Security] SLSA 프레임워크 내에서 시크릿 탐지와 제거의 중요성 시크릿(credential) 유출은 악의적인 행위자가 환경과 데이터에 접근할 수 있는 쉬운 방법 중 하나이다. 현대 소프트웨어 개발 라이프사이클의 복잡성으로 인해 API 키, 토큰, 비밀번호 등이 예상치 못한 장소에 유출될 수 있다. 2023년 동안 GitHub에서만 GitGuardian은 1,270만 개 이상의 하드코딩된 자격 증명이 추가된 것을 발견했다. 이러한 시크릿은 SLSA 증명 파일과 같은 보안 아티팩트를 생성하는 데 사용되는 파일에서도 발견될 수 있다. 이 글에서는 SLSA 프레임워크 내에서 시크릿이 어떻게 유출될 수 있는지, 이를 탐지하고 제거하는 방법에 대해 설명한다. SLSA란 무엇인가?SLSA(Supply-chain Levels for Software Artifacts)는 OpenSS.. 2024. 7. 31. [Security] Jenkins 'Security Advisories' 로 Jenkins 플러그인 취약점 관리하기 Jenkins는 자동화된 테스트, 통합, 빌드 등을 가능하게 하는 오픈 소스 자동화 및 빌드 플랫폼이다. 그러나 Jenkins는 소프트웨어 공급망 공격에 취약한 플러그인으로 인해 공격에 노출될 수 있다. 이 글에서는 Jenkins 보안 권고 페이지를 활용하여 취약한 플러그인을 지속적으로 탐지하고 해결하는 방법을 살펴본다. Jenkins 개요Jenkins는 오픈 소스 자동화 및 빌드 플랫폼으로, 테스트, 통합, 문제, 빌드 등을 자동화할 수 있다. Jenkins는 보통 자체 프로세스에서 독립적인 애플리케이션으로 실행되며, 내장된 Java 서블릿 컨테이너/애플리케이션 서버와 함께 실행된다. Jenkins 플러그인의 역할과 중요성Jenkins 플러그인은 Jenkins의 기능을 확장하기 위해 도입되었다. 현재 .. 2024. 7. 30. [Golang] 왜 Go에는 ?: 연산자(삼항 연산자)가 없을까? Go 언어는 깔끔하고 명확한 코드 작성을 지양한다. 이런 철학 때문에 Go에는 다른 언어에서 자주 사용하는 삼항 연산자(?:)가 없다. 이 글에서는 왜 Go에 삼항 연산자가 없는지, 그리고 같은 결과를 얻기 위해 어떤 방법을 사용할 수 있는지 살펴본다. 삼항 연산자란 무엇인가?삼항 연산자는 조건에 따라 값을 선택하는 짧은 방법이다. 예를 들어, C와 같은 언어에서 삼항 연산자는 다음과 같이 사용할 수 있다:n = (expr) ? trueVal : falseVal;이 코드는 expr이 참이면 trueVal을, 거짓이면 falseVal을 n에 대입한다. 간단하고 편리하게 조건문을 사용할 수 있는 방법이다. Go에서 삼항 연산자를 대신하는 방법Go에서는 삼항 연산자를 사용할 수 없지만, 같은 결과를 얻기 위해.. 2024. 7. 30. [Golang] Go 언어에서 Interface(인터페이스)를 사용하여 다양한 데이터 유형을 처리하기 Go 언어에서 서버 사이드 프로그래밍을 하면서 예측할 수 없는 응답값을 처리할 때 사용할 수 있는 방법론 중 하나는 인터페이스를 사용하는 것이다. 특히, Go의 인터페이스는 다양한 데이터 유형을 효과적으로 처리할 수 있도록 지원한다. 이번 포스팅에서는 인터페이스의 사용법과 예제를 통해 Go에서 데이터를 처리하는 방법을 자세히 살펴본다. 인터페이스의 장단점인터페이스 사용의 장점은 다음과 같다:타입 안전성: 인터페이스를 사용하면 컴파일 시간에 타입 체크를 할 수 있어 런타임 에러의 가능성이 줄어든다.유연성: 인터페이스를 통해 다양한 타입을 같은 방식으로 처리할 수 있어 코드의 재사용성이 높아지고 유지보수가 쉬워진다.결합도 감소: 인터페이스를 사용하면 구현체에 대한 의존성을 줄이고 독립적인 프로그래밍이 가능해.. 2024. 7. 30. [Security] Kubernetes에 Shift-Left 테스팅 적용하기 최근 몇 년 동안 소프트웨어 업계는 점점 더 shift-left 테스트 전략을 채택하고 있다. 이 전략은 배포 파이프라인 라이프사이클에서 더 이른 시점에 테스트를 수행하는 것을 지향한다. Kubernetes의 선언적 특성 때문에 shift-left 전략을 구현하기에 적합한 도구이다. 이 글에서는 Kubernetes 클러스터 오작동을 발견하기 위한 shift-right 및 shift-left 전략의 이점을 Gatekeeper와 Datree 오픈 소스 솔루션을 통해 살펴본다. Shift-Right 테스트Shift-right 테스트는 테스트 단계를 가능한 한 뒤로 미루는 전략이다. 일반적으로 프로덕션에 배포하기 전이나 배포 후에 테스트가 이루어진다. 이 접근법은 역사적으로 소프트웨어 업계에서 사용되어 왔으며,.. 2024. 7. 30. [Elasticsearch] 성능 향상을 위한 _id 필드 사용 지양하기 Elasticsearch에서는 종종 몇 개의 필드만 검색해야 하는 경우가 많다. 이런 경우, 해당 필드들에 대해 `doc_values` 를 사용하면 쿼리 성능을 크게 향상시킬 수 있다. 이때, 기본적으로 검색되는 하나의 필드가 바로 `_id` 필드이다. 겉으로 보기에 이 필드는 아무 문제가 없어보이지만, 시스템 성능을 저해할 수 있다. 또 다른 전형적인 Elasticsearch 사용 사례는 보조 데이터베이스로서의 역할, 특히 전문 검색에서 관련 문서의 ID를 검색하는 데 Elasticsearch를 사용하는 경우이다. 대부분의 Elasticsearch 를 사용하는 사용자는 외부 ID를 `_id` 필드에 저장하여 일을 간단하게 하고 데이터 중복을 피하는 경우가 많다. 혹은 `_id`를 직접 사용하지 않더라도.. 2024. 2. 14. ELK를 활용한 간단한 SIEM 구축해보기 (feat. WhiteHat School) # SIEM 이란 무엇인가? Security Information and Event Management, 정보 및 이벤트 관리 SIEM은 IT 네트워크 전반의 데이터를 중앙 집중화하여 보안 문제를 탐지하는 데 사용한다. 이는 로그 관리, 보안 이벤트 탐지, 보고 및 검색 기능을 포함한다. # ELK 란 무엇인가? ELK 스택은 Elasticsearch, Logstash, 그리고 Kibana의 세 가지 주요 오픈 소스 프로젝트를 말한다. Elasticsearch 역할: Elasticsearch는 분산형 검색 및 분석 엔진, 대량의 데이터를 신속하게 저장, 검색 및 분석할 수 있다. 특징: 고가용성, 확장성, 빠른 검색 성능을 제공, JSON 문서를 기반으로 하며, 복잡한 검색 쿼리를 지원한다. Logsta.. 2024. 1. 21. [Java] Servlet (서블릿) Java Servlet(서블릿)은 서버의 기능을 확장하는 Java 소프트웨어 구성 요소이다.서블릿은 많은 유형의 요청에 응답할 수 있지만 웹 서버에서 웹 응용 프로그램을 호스팅하기 위해 웹 컨테이너를 가장 일반적으로 구현하므로 서버 측 서블릿 웹 API로 적합하다.이러한 웹 서블릿은 PHP 및 ASP.NET 과 같은 다른 동적 웹 콘텐츠 기술(dynamic web content technologies)과 동등한 역할을 처리한다고 볼 수 있다.서블릿을 정의해보면 서블릿(servlet)은 WAS에 동작하는 JAVA 클래스이고, 서블릿은 HttpServlet 클래스를 상속받아야 합니다.서블릿과 JSP로부터 최상의 결과를 얻으려면, 웹 페이지를 개발할 때 이 두 가지(JSP, 서블릿)를 조화롭게 사용해야 한다... 2023. 11. 19. [Docker] '--no-cache' 옵션 도커에서 --no-cache 옵션은 docker build 명령어로 이미지를 생성할 때 캐시를 사용하지 않도록 하는 옵션이다. 기본적으로 도커는 이미지 빌드 시에 이전에 실행된 단계의 결과물을 캐싱하여 동일한 단계를 다시 실행하지 않고 빠르게 이미지를 생성한다. 이 캐싱은 개발 단계에서는 유용하지만 때로는 원치 않는 동작을 일으킬 수 있다.--no-cache 옵션을 사용하면 캐싱을 사용하지 않고, 이미 존재하는 캐시를 무시하고 매번 새로운 이미지를 빌드한다. 이는 다음과 같이 docker build 명령어를 사용할 때 옵션으로 추가된다:docker build --no-cache -t --no-cache 옵션이 유용한 경우최신 소스나 종속성을 가져와야 할 때: 이전에 캐싱된 빌드 결과를 무시하고 항상 .. 2023. 11. 7. [Security] CIS (Center of Internet Security) Benchmarks https://www.cisecurity.org/ CISCIS is a forward-thinking nonprofit that harnesses the power of a global IT community to safeguard public and private organizations against cyber threats.www.cisecurity.orgCIS (Center of Internet Security) Benchmarks는 인터넷 보안의 중심이라는 의미를 가지고 있다. 이것은 전 세계적으로 사용되는 IT 시스템 및 기기에 대한 보안 설정 가이드라인을 제공하는 프레임워크로, 공개적으로 사용할 수 있도록 제공되며, 실질적인 보안 향상을 위한 권장 사항들을 포함하고 있다. CIS Benchm.. 2023. 10. 23. 이전 1 2 다음 more