본문 바로가기

전체 글138

[Jenkins] REAEME.md 에 블로그 최신 글 가져오기 GitHub Readme에서 Latest Blog Post 부분에 Tistory에 작성한 글을 불러오고 싶었다. 그래서 Tistory에 글 작성 시 자동으로 GitHub의 README 파일을 업데이트 하도록 Jenkins를 이용해보려 한다. Tistory에서 글 작성 시 자동으로 Jenkins가 실행되도록 하기 위해 Webhook을 설정해야 한다. 하지만 Tistory는 공식적으로 Webhook 기능을 제공하지 않지만, Tistory RSS 피드를 정기적으로 검사하여 Jenkins 트리거하는 방식으로 설계했다.     1. 플러그인 설치Jenkins에서 GitHub와의 효과적인 연동을 위해 필요한 플러그인을 설치한다.GitHub Integration과 HTTP Request 플러그인 설치 플러그인 설치 .. 2024. 6. 10.
[시큐어 코딩] 파라미터 조작과 잘못된 접근제어 취약점 action=edit&id=lee&name= 파라미터 조작과 잘못된 접근제어 취약점관리자 페이지와 같이 인가된 특정 사용자만 사용 가능한 페이지에 대해 올바른 접근권한 레벨을 정의하고 점검하는 프로세스가 제대로 적용되지 않은 경우에 발생하는 취약점이다.네트워크 접근이 가능한 내부/외부 사용자는 모두 공격자가 될 수 있다. 인증을 통해 시스템 접근이 허락된 공격자는 URL이나 파라미터를 조작해 권한(Authorization)이 필요한 기능에 접근할 수 있다. 이 경우 시스템이 인가된 사용자에 대한 접근권한을 제대로 체크하지 않는다면 허가되지 않은 기능을 수행할 수 있게 된다.애플리케이션의 특정 기능에 대한 접근 권한에 대한 체크가 제대로 이루어지지 않은 경우에 인가되지 않은 기능 접근 및 관리자 기능이 주.. 2024. 6. 2.
[시큐어 코딩] 파일 업로드/다운로드 취약점 파일 업로드/다운로드 취약점파일을 업로드하고 다운로드하는 기능들이 적절히 제어되지 않을 때 웹쉘이나 악성코드가 업로드되어 서버에서 실행될 수 있으며, 악성코드가 삽입된 파일을 사용자들이 다운로드받아서 실행하여 사용자 PC가 침해사고를 당할 수 있다.  발생 원인업로드기능 취약점 원인업로드되는 파일의 타입을 제한하지 않는 경우업로드되는 파일의 크기나 개수를 제한하지 않는 경우업로드된 파일을 외부에서 직접적으로 접근 가능한 경우업로드된 파일의 이름과 저장된 파일의 이름이 동일해 공격자가 파일을 인식 가능한 경우업로드된 파일이 실행권한을 가지는 경우다운로드기능 취약점 원인파일에 대한 접근권한이 없는 사용자가 직접적인 경로를 통해 파일을 다운로드할 수 있는 경우악성코드에 감염된 파일이 다운로드 허용되는 경우  .. 2024. 6. 2.
[클라우드] 11. Private Cloud (OpenStack) OpenStack (오픈스택)클라우드 환경에서 컴퓨팅 자원과 스토리지 인프라를 셋업하고 구동하기 위해 사용하는 오픈소스 소프트웨어 프로젝트의 집합 OpenStack은 Public 클라우드와 Private 클라우드 구축을 가능하게 하는 오픈 소스 SWOpenStack은 서버, 스토리지, 네트워크들과 같은 자원들을 모두 모아, 이들을 제어하고 운영하기 위한 클라우드 OSOpenStack은 오픈 소스를 기반으로 클라우드를 구축하고 운용하고자 하는 오픈 소스 개발자, 회사, 사용자들이 주축이 되어 발전하는 커뮤니티IaaS 형태의 클라우드 컴퓨팅 오픈 소스 프로젝트로 컴퓨팅, 스토리지, 네트워킹 자원을 관리하는 여러 개의 하위 프로젝트들로 이루어짐 OpenStack 두가지 주요 툴DevStack복잡한 오픈스택 시.. 2024. 5. 29.
[클라우드] 10. Public Cloud (AWS, Azure, GCP) 퍼블릭 클라우드클라우드 플랫폼 • Amazon Web Services (AWS) • MS Azure • Google Cloud • NHN Cloud (오픈스택 기반) 퍼블릭 클라우드 선택 시 고려사항신뢰도 • 믿을 수 있는 클라우드 플랫폼? → 보안, 서비스 종류 및 실제 고객의 피드백 참고안정성 평가 • 정기 릴리즈, 가용성, 성능, 로드 밸런싱 등 확인 필요규모의 경제 • 사내 인프라와 클라우드 리소스를 활용했을 때의 비용 비교표준화된 서비스 • 클라우드 플랫폼이 비용 효율을 가져다 줄 수 있는 서비스 묶음, 리소스 제공하는가?유연성 평가 • 현재 수준에 필요한 기능 이상의 서비스를 고려 (제품의 향후 로드맵) Amazon Web Services (AWS)클라우드 플랫폼 중 가장 오래됨  그 만큼 신.. 2024. 5. 26.
[시큐어 코딩] XSS(크로스 사이트 스크립팅) XSS공격자가 상대방의 브라우저에 스크립트가 실행되도록 해 사용자의 세션을 가로채거나, 웹사이트를 변조하거나, 악의적 콘텐츠를 삽입하거나, 피싱 공격을 진행하는 것을 뜻한다.  XSS 공격유형Reflective XSS공격자가 악성 스크립트가 포함된 URL을 클라이언트에 노출시켜 클릭을 유도하고, 쿠키 정보를 탈취하거나 피싱 사이트, 불법 광고 사이트로 이동하게 만든다.서버에서 사용되는 외부 입력값 name이 안전한 값인지 검사하지 않고 사용되는 경우 XSS 취약점이 있는 처리 구조이다. Reflective XSS 취약점 공격 처리 흐름인데 공격자가 악성 스크립트를 입력값으로 전달하도록 만들어진 URL을 사용자가 클릭하도록 유도하고 이 URL을 사용자가 클릭하면 해당 스크립트가 a.com서버의 ha.do .. 2024. 5. 26.
[시큐어 코딩] XPath 삽입(Injection) XPath 삽입XPath는 XML 문서에서 특정 요소(element)나 속성(attribute)까지 도달하기 위한 경로를 요소의 계층을 이용해서 표현하는 것이다. 파일경로와 비슷하며, 파일 경로에 절대 경로와 상대 경로가 있는 것처럼, XPath도 루트 요소(Root element)부터 특정 요소까지의 경로를 지정하거나 현재 위치하고 있는 요소부터 특정 요소까지의 경로를 지정할 수 있다.아래 사진을 보는 것처럼 XML 문서는 트리 구조로 모델링해 표시할 수 있다. 예를 들어서 prduct id=3인 제품의 가격정보를 출력하기 위한 XPath 표현식은 /catalog/product[@id=3]/price 이다.  발생 원인외부로부터 입력된 값을 이용해 XML 파일의 내용을 검색하기 위해 XPath 쿼리문을.. 2024. 5. 26.
[시큐어 코딩] OS 명령어 삽입(Injection) 운영체제 명령어 삽입프로그램 내에서 사용자 입력이 윈도우의 cmd.exe나 유닉스의 sh, bash 같은 쉘 프로그램 실행을 위한 전달인자(argument)로 사용되는 경우, 그 사용자 입력을 애플리케이션에서 충분히 검증하지 않고 사용함에 따라 공격자가 의도하는 명령이 실행될 수 있는 취약점이다. 이런 취약점을 통해 공격자는 공격용 툴을 외부로부터 업로드하거나 업로드된 툴에 대해 실행권한을 부여할 수 있고, 또한 관리자 권한을 획득해 서버를 제어할 수도 있다.  발생 원인PHP의 exec, ASP의 wscript, shell, JSP의 Runtime.exe()와 같은 운영체제 명령을 실행하는 함수의 인자값으로 검증되지 않은 사용자 입력값을 사용하는 경우 발생한다.  이전시간에 수행했던 SQL인젝션과 같은.. 2024. 5. 24.
[React] 처음 만난 리액트 section(3~5) Section 3. JSX JSX의 정의와 역할A syntax extension to JavaScriptJavaScript + XML/HTML내부적으로 XML/HTML 코드를 JavaScript 코드로 변환하는 역할을 함JSX를 사용하면 react에서는 내부적으로 createElement 함수를 사용하도록 변환 됨JSX의 장점 및 사용법간결가독성 향상버그 발견 쉬움Injection Attacks 방어XML/HTML 코드 사이에 { } 를 사용해서 js 코드를 넣어주면 됨 (실습)JSX 코드 작성해보기import React from "react";function Book(props) { return ( {`이 책의 이름은 ${props.name} 입니다.`} {`이 책은 총 ${props.num.. 2024. 5. 18.
[React] 처음 만난 리액트 section(0~2) Section 0. 준비하기 HTML과 CSShtml은 뼈대 css는 레이아웃 SPA(Single Page Application)하나의 페이지만 존재하는 웹 사이트 / 웹 애플리케이션기존 방식: multi page application 사용자가 페이지 요청할 때 마다 새로운 페이지가 로드됨SPA: html 파일이 하나만 존재. 단 하나의 페이지만 존재. body 태그의 내부가 동적으로 채워짐. 리액트가 이를 수행 JavaScript 소개 및 자료형ECMAScript Script Language 특징런타임시에 코드가 해석되고 실행됨 Data Type자바스크립트는 동적타이핑 방식을 사용. 변수의 자료형이 선언 시가 아닌 대입되는 시점에 정해짐 JavaScript의 연산자대입 연산자사칙연산증감연산(전위, 후위.. 2024. 5. 18.