분류 전체보기 23

일반 기업 보안 담당자 - 1. 조직(1/2)

기술 컨설팅 업무만 주로 수행하다가 일반적인 기업의 보안의 담당자, 인하우스 보안 담당자 업무를 수행하게 되니 생각보다 괴리감도 컸고 몰랐던 내용도 많고, 보안이란 산업군도 얼마나 큰지 알 수 있었다. 그 과정에서 겪은 생각이나 느낀점을 내 입장에서 서술하려고 한다. 경력이 짧기 때문에 단편적인 시각일 수 있으니 참고바란다. 인하우스 보안은 지원 조직의 성향이 짙기 때문에 일반 구성원들이 얼마나 수용하고 받아들이는지, 보안 부서의 힘이 얼마나 있는지 이와 비슷한 조건에 따라서 보안 담당자가 업무를 수행하는데 들이는 수고가 달라진다. CISO 대부분의 보안조직의 최고 책임자는 CISO가 역할을 수행하고 있을 것이다. 그렇기 때문에 보안 담당자가 중요한 의사결정은 CISO가 결정한다고 봐도 과언이 아니다. ..

CPPG 개인정보 관리사 합격 후기

한참을 잊고 살다가 최근에 시험을 다시 봤다. 20년도 난이도에 비해서 확 낮아진 걸 체감할 수 있었다. 준비가 잘 된건지 아니면 어느정도 난이도가 잡혀서 그런지 몰라도 일단은 20년도에 날 괴롭게 하던 시험도 마무리가 되었다. 이 시험을 준비하면서 정말 제대로된 교재나 강의를 찾기가 힘들었고 그나마 라**움이 잘 되어있다고 하는데 가격이 생각보다 강력해서 선뜻 엄두가 나지 않았다. 자체적으로 이 블로그에 만들어본 기출문제도 엉망이였고 블로그에 오시는 분들이 많은 질문과 악평을 남기고 가셨다. 그런데도 계속 기출문제를 찾아 올 정도로 문제가 별로 없다는 게 흠이다. 그래서 결론은 마음 편하게 붙고 싶으면 라**움 학원을 이용해 보는 것도 나쁘지 않다고 생각한다. ps. 그리고 개포동에서 안 봐서 너무 좋..

CPPG 개인정보 관리사 준비- 가명정보

개인정보란 살아있는 개인을 식별할 수 있는 정보로 다른 정보와 결합하여 식별 가능한 정보 또한 개인정보라고 부른다. 가명정보란 가명처리함으로 원래 상태로 복원하기 위해서는 특정 추가 정보가 필요한 정보를 뜻한다. 즉 추가 정보 없이는 일반적인 개인을 절대 식별할 수 없으며 이 추가 정보는 별도 유출되지 않도록 안전성 확보에 필요한 기술적ㆍ관리적 및 물리적 조치한 상태로 보관한다. 그렇다면 나목의 쉽게 결합할 수 있는지 소요되는 시간 비용 등의 합리적으로 고려하여 개인정보라 정의할 수 있는데 가명정보의 추가 정보는 쉽게 유출, 변조 될 수 없도록 관리되어야 하기 때문에 합리적으로 생각하면 일반적인 상황에서 쉽게 입수할 수 없을 것이다. 그렇기 때문에 개인정보에 적용되는 제20조, 제21조, 제27조, 제3..

XSS - Backtick(`)

Tab 키 위에 존재하는 이 Backtick은 ` javascript에서는 템플릿 리터럴에 활용된다. Backquote, backtick, grave accent 으로도 불리며 거의 접할 이유가 없는 문자이기도 하다. 그러면 왜 XSS에 Backtick을 언급한 이유가 무엇이냐 하면 보통 XSS를 발생시키기 위해 Javascript에서 기존 안의 구문에서 벗어나기 위해 "> 와 같은 입력값으로 개발자의 의도와 다른 방식으로 입력을 한다. 따라서 보통은 " , ' , , % 와 같은 특수문자들을 HTML Encoding하거나 필터링하여 입력을 방지한다. 필터링을 하거나 Encoding하여 방지하면 이 Backtick은 의미가 없지만 간혹 개발자 중 php에서 magic_quotes_gpc를 활성화 시키고 ..

정보보안/Web 2020.10.21

Ghostcat : Tomcat-Ajp (CVE-2020-1938)

프로젝트 중 통칭 Ghostcat 취약점을 사용할 수 있는 버전의 Tomcat 버전이 나와서 시도해봤더니 성공했다. 공격 python 코드는 Github에 올라온 POC 코드를 사용했고 그 이외에는 정말 기본적인 대상 정보만 알면 대상 webapp 이하의 소스코드 및 데이터를 내려받을 수 있는 취약점이였다. 연초에 핫한 취약점이여서 대충 들여다만 봤었는데 오늘 해보니 제대로 이해할 필요가 있어서 정리해 본다. 발생 원인 그럼 우선 근본적으로 취약점이 발생하는 AJP 프로토콜이 무엇인가, 왜 쓰이는가? AJP 프로토콜이란 Apache JServ Protocol로 Web 서버에서 전달받은 요청을 WAS로 전달해주는 프로토콜이다. 해당 프로토콜은 Apache HTTP Server, Apahce Tomcat, ..

정보보안/Web 2020.07.22

Toss 부정 결제

20년 6월 3일 온라인 가맹점 3곳에서 8명의 고객명의로 약 930만원 정도의 금액이 결제되었다. 이는 유출된 개인정보를 도용한 부정결제이며, 결제 방식은 웹 결제 방식으로 필요한 개인정보는 5자리의 PIN 번호와 생년월일 그리고 이름이다. 부정결제된 금액은 모두 환불조치 되었으며 추후에 시스템을 더 고도화 하겠다고 발표했다. 토스의 결제 방식은 아래와 같다. (사전에 Toss 앱이 설치되어 기본 정보가 등록되어 있어야 하며 Toss에는 지불 수단으로 등록된 카드 또는 금액이 있어야 한다.) 마지막에 사용자가 설정한 4자리 숫자 + 1자리 알파벳으로 최종 결제를 승인하게 된다. 그렇다면 여기서 유추해 볼 수 있는 부정결제 방법은 사전에 피해자들의 핸드폰 번호, 성명, 생년월일을 수집하여 결제 수단으로 ..

정보보안/사례 2020.06.10

XSS로 HTTP ONLY 우회하여 세션 탈취하기

보통 일반적으로 XSS를 시도하다 보면 헤더에 HttpOnly 플래그가 설정된 경우를 찾을 수 있다. HttpOnly는 document.cookie API에 접근을 차단하여 세션 및 쿠키 탈취를 방지하기 위한 설정이다. Set-Cookie: id=ABCE123123r3ABCDf1234; Secure; HttpOnly; 이와 같은 설정 값으로 이러한 설정이 활성화 되어 있으면 내가 알고 있는 방법으로는 XSS를 이용하여 세션을 탈취하기란 거의 불가능에 가깝다. 특수문자 및 스크립트 필터링이 미흡해도 세션이나 쿠키값을 탈취할 수 없기 때문에 포기하고 피싱사이트쪽으로 시나리오를 생각하는 경우가 많다. 다만 HttpOnly가 설정되어 있는 경우라도 세션을 탈취하는 방법이 존재한다. 점검 대상의 사이트 중 필요에..

정보보안/Web 2020.06.02

피보나치 수열 알고리즘 - 재귀함수

피보나치 수열은 수학적으로 a₁=1, a₂=1, aₙ=aₙ₋₁+aₙ₋₂(n≧3) 정의되는 수열이다 즉, 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다. 1, 1, 2, 3, 5, 8, 13 ... 인 수열인 것이다. 반복문으로도 충분히 구현이 가능하다. 입력된 숫자만큼 반복문을 반복하고 첫째 항과 둘째 항을 더한 값을 반복적으로 합산하여 출력한다. 이를 재귀함수로 구현하고자 한다. 입력한 특정 숫자 이하까지 피보나치수열이 출력되도록 구현한다.

하노이의 탑 알고리즘 - 재귀함수

하노이의 탑은 퍼즐의 일종이다. 세 개의 기둥과 이 기둥에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대로 쌓여 있다. 게임의 목적은 다음 두 가지 조건을 만족시키면서, 한 기둥에 꽂힌 원판들을 그 순서 그대로 다른 기둥으로 옮겨서 다시 쌓는 것이다. 즉 왼쪽의 원판들을 전부 오른쪽 기둥으로 순서 그대로 옮기는 것이다. 원판의 숫자가 얼마나 커져도 상관없이 하나의 알고리즘으로 해결이 가능하다. 간단한 파이썬으로 구현할 수 있다. 그전에 재귀함수의 원리에 대해서 알아보자. 재귀함수는 함수를 정의함에 있어 본인 스스로를 재참조하여 정의하는 함수이다. 예를 들어 숫자를 세는 함수로 순서를 따라가면 5 -> 4 -> 3 -> 2 -> 1 -..

C++ 공부하기 - 7.new&delete

이 내용은 저번에 포스팅 하려고 했습니다만... 제가 malloc&free의 개념이 모호해져서 다시 공부하고 오느라 조금 늦었습니다. 우선 C언어에서의 malloc&free는 동적할당을 함으로 정적할당보다 더 효율적으로 메모리를 사용할 수 있었습니다. 이 개념이 C++에서도 똑같이 적용되어 넘어왔으나 malloc&free의 단점인 할당 대상의 정보를 무조건 바이트로 받는다는 점 반환형이 void이기 때문에 적절한 형변환을 거쳐야한다는 점 이 두가지의 단점을 가지지 않은 다른 함수로 대체하여 나온 함수입니다. 이 함수가 바로 new&free 입니다. 그러면 저 두가지의 단점을 극복했다면 어떻게 극복했고 뭐가 더 좋기 때문에 C++에서 쓰이는지 알아보겠습니다. 우선 malloc을 대체한 키워드 new는 in..