본문 바로가기

전체 글

(263)
악성코드 공격 -1 (윈도우 방화벽 설정) 처음 당했던 공격은 상당히 단순했지만 3개의 공격 방식을 동시에 당했고 전혀 준비되어있지 않던 상황이라 어떻게 배포되었는지 파악할 수 없었고 증상 확인과 해결만 하였습니다 1. 증상 - exe 프로그램 실행 안됨(일부 PC는 Windows Defender에서 에러 표시), DLL파일은 로드 가능하나 특정 통신 불가로 정상적인 동작 못함 2. 원인&공격 방식 분석 단순히 앤드 유저의 PC에서 사용될 exe파일이나 특정 통신 포트를 차단하는 공격 방식 위 사진과 같이 인바운드, 아웃바운드 규칙에 특정 프로그램을 아예 사용하지 못하게 하거나 특정 프로그램(exe or dll) 등에서 사용하는 통신 포트를 차단 규칙으로 넣음 3. 해결방법 - 증상 해결을 위한 별도의 exe파일을 제작하여 고객사에 배포하여 모든..
악성코드와 한판 붙은 썰 -4 (끝) 이전 글 2021.05.10 - [일기장/개발자 일기] - 악성코드와 한판 붙은 썰 -3 여느 날처럼 출근하여 밤새 자동 수집된 로그를 분석하며 특이점은 없는지 신규 악성코드는 없는지 살피고 있던 중 개발이사님이 밝은 표정으로 오시면서 '현 시간부로 압수수색 시작했단다!!!' 사실 경찰한테도 큰 기대를 하고 있지 않았다 정확히 누구다 라고 지목할 명백한 정보가 없었고 이 상황을 이해한들 어떻게 추적할 것인가 때문이었는데 TV에서만 보던 압.수.수.색 이라니.. (회사가 압수수색 당해본 지인 피셜로는 경찰이 와서 갑자기 다 하던 거 멈추고 일어서서 나가라고 한다고...) 바로 증거 노트북이 수집되었고 범죄자는 그대로 잡혀가서 취조에 자백하였다 다만 최초 잡아 간 후 몇십 시간만 데리고 있을 수 있어서 모든..
악성코드와 한판 붙은 썰 -3 이전 글 2021.05.06 - [일기장/개발자 일기] - 악성코드와 한판 붙은 썰 -2 악성코드와 한판 붙은 썰 -2 이전 글 2021.05.06 - [일기장/개발자 일기] - 악성코드와 한판 붙은 썰 -1 악성코드와 한판 붙은 썰 -1 현 직장에서 작년 실제 겪은 일입니다 특정 기업명은 공개하지 않습니다 우리 회사는 작년 여름 singo112ok.tistory.com 옆팀 과장님까지도 얼떨결에 합류하여 악성코드 분석을 진행하였고 악성코드 최초 설치 파일을 찾아내었는데 경쟁사의 프로그램 설치 파일이었다 이렇게 대놓고 자기들 설치 프로그램으로 경쟁사를 공격하는 악성코드를 넣어 배포할 일도 없고 인증서 서명도 안되어있는 점이 누군가 경쟁사 쪽으로 의심을 돌리려고 해 놓은 거로 보였고 여기서 괜히 섣불리 신..
HackerRank [String] Weighted Uniform Strings /알고리즘 해커랭크 문제 주소 : https://www.hackerrank.com/challenges/weighted-uniform-string/problem 난이도 : easy 성공률 : 73.23% 문제 : a~z까지 각 문자에는 매칭 되는 가중치 값이 있다, 문자는 오름차순 정렬되어있다, 동일한 문자의 경우 본 문자의 가중치값, 문자 누적의 가중치 값을 모두 가진다 두번째 파라미터로 넘어온 값들이 해당 문자열의 가중치에 존재하면 각각 YES, NO로 리턴하라 풀이 : 마지막 처리한 문자 값을 들고 있으며 비교하여 이전과 같으면 가중치 누적합을 set에 추가 이전과 다르면 가중치 표에 맞는 값을 set에 추가 두 번째 파라미터로 넘어온 값들이 set에 있는지 확인하여 Yes or No 리턴 답안 import math i..
HackerRank [String] Bear and Steady Gene /알고리즘 해커랭크[미해결] 문제 주소 : www.hackerrank.com/challenges/bear-and-steady-gene/problem 난이도 : Medium 성공률 : 63.58% (210505) [미해결] 7개 예제 타임아웃 문제 : 4의 배수의 길이를 가진 문자열을 준다 그 문자는 A, C, T, G로만 구성되어있다 substring을 수정하여 A, C, T, G가 모두 같은 개수가 나오게 해야 한다 최소한으로 수정해야하는 substring 길이 값을 리턴하라 풀이 1) ACTG 문자 중 초과된 문자와 각각의 수, 합산한 수(변환해야 하는 최소 개수)를 체크 2) 변환해야 하는 최소개수길이만큼 substring을 한 칸씩 이동하며 분리시켜봄 3) 분리시킨 substring에 변환해야하는 문자들이 모두 포함하는지 체..
악성코드와 한판 붙은 썰 -2 이전 글 2021.05.06 - [일기장/개발자 일기] - 악성코드와 한판 붙은 썰 -1 악성코드와 한판 붙은 썰 -1 현 직장에서 작년 실제 겪은 일입니다 특정 기업명은 공개하지 않습니다 우리 회사는 작년 여름부터 가을까지 악성코드 공격을 당했다 우선 우리 회사는 BtoB 방식으로 특정 기능을 하는 모듈을 singo112ok.tistory.com 이후 보안&포랜식 추적 전문 업체들과 컨텍하였고 몇 차례 회의, 진행하며 서로 필요한 정보를 주고받았고 몇 주나 걸려 나온 결과는 문제 해결을 직접 해주진 못했다 공격자는 악성코드 전문 업체로 보이며 일반 개발자 수준에서 할 수 있는 기법이 아니다, 중국 스타일의 악성코드를 사용한다, 어떻게 일반인들 PC에 배포되었는지 알기 힘들다, 과거 동작했던 악성코드 설..
악성코드와 한판 붙은 썰 -1 현 직장에서 작년 실제 겪은 일입니다 특정 기업명은 공개하지 않습니다 우리 회사는 작년 여름부터 가을까지 악성코드 공격을 당했다 우선 우리 회사는 BtoB 방식으로 특정 기능을 하는 모듈을 고객사에게 제공하고 고객사들은 그 모듈을 활용하여 앤드 유저들이 사용하는 프로그램을 제공하는 방식이다 어느 날 고객사로부터 연락을 받았다 '몇몇 고객들 문의가 와서 원격으로 확인했는데 우리 모듈이 정상적으로 동작하지 않는다' 해당 모듈은 안정성이 높으며 근래에 업데이트를 진행한 적도 없기에 윈도 쪽이나 외부적인 요인이겠거니 하고 확인해 본 결과 실제로 우리 모듈이 돌아가고 있지 않았다 (공격 방식과 분석했던방법 분석 결과 등은 추후 새 글에서 모두 소개하겠습니다) 우리 모듈을 공격하는 악성코드를 일반 유저들의 PC에 ..
HackerRank [Strings] Sherlock and the Valid String /알고리즘 해커랭크 문제 주소 : https://www.hackerrank.com/challenges/sherlock-and-valid-string/problem 난이도 : Medium 성공률 : 64.75% 문제 : 셜록 규칙에 맞는 유효한 문자열 찾기 1. 모든 문자가 동일한 개수여야 유효하다 2. 오직의 하나의 문자를 제거할 수 있다 풀이 : 코드 주석 참고 답안 import math import os import random import re import sys import collections def isValid(s): dic :dict = collections.Counter(s) #딕셔너리를 통하여 각 문자와 개수 산출 (a는2개 b는3개) dic2 : dict = collections.Counter(dic.v..