- false positive
거짓 양성, 실제로는 답이 No 인데 Yes 로 응답함
- false negative
거짓 음성, 실제로는 답이 Yes 인데 No 로 응답함
2018년 3월 27일 화요일
Business Email Compromise Attack.. (BEC)
Business Email Compromise Attack..
BEC Attack.. 일종의 phishing 공격..
회사의 뉴스, 연구, 직원의 SNS 등을 통해
정보를 수집..
CEO나 회사 메일등으로 가장해서
입/출금, 지불 변경 등을 유도하거나,
주요 기밀을 탈취..
메일 내용을 제차.. 확인하고
인증 강화 및 직원 교육 등을 통해 방지할 수 있음..
BEC Attack.. 일종의 phishing 공격..
회사의 뉴스, 연구, 직원의 SNS 등을 통해
정보를 수집..
CEO나 회사 메일등으로 가장해서
입/출금, 지불 변경 등을 유도하거나,
주요 기밀을 탈취..
메일 내용을 제차.. 확인하고
인증 강화 및 직원 교육 등을 통해 방지할 수 있음..
Dictionary Harvest Attack (DHA) & Bounce Attack
Dictionary Harvest Attack..
사전 수확 공격??
임의의 글짜, 단어, 사전, 성씨 등을 조합하여
특정 메일 서버에 메일을 보내고,
메일이 성공적으로 전송이 되서
해당 메일 주소가 유효한 것으로 판단하고 수확한다.
Brute Force Attack과 유사한 느낌..
단위 시간에 동일한 sender ip로 부터 유입되는
정상 메일 혹은 메일 주소가 유효하지 않은 메일의 수를 카운트하고
임계치를 넘는 경우 해당 sender ip를 일정시간 동안
block하는 방식으로 방어가 가능할 것으로 보임
참조
https://en.wikipedia.org/wiki/Directory_Harvest_Attack
Bounce Attack..
DDOS Attack과 유사한 공격..
unsolicited email(unwanted email.. spam..)을 Mail서버로 전송
Mail 서버에 과부하가 걸리도록 유도함..
이것 역시 단위 시간 유입되는 메시지를 카운트하고..
임계치를 넘으면.. 일정 시간 Block..
사전 수확 공격??
임의의 글짜, 단어, 사전, 성씨 등을 조합하여
특정 메일 서버에 메일을 보내고,
메일이 성공적으로 전송이 되서
해당 메일 주소가 유효한 것으로 판단하고 수확한다.
Brute Force Attack과 유사한 느낌..
단위 시간에 동일한 sender ip로 부터 유입되는
정상 메일 혹은 메일 주소가 유효하지 않은 메일의 수를 카운트하고
임계치를 넘는 경우 해당 sender ip를 일정시간 동안
block하는 방식으로 방어가 가능할 것으로 보임
참조
https://en.wikipedia.org/wiki/Directory_Harvest_Attack
Bounce Attack..
DDOS Attack과 유사한 공격..
unsolicited email(unwanted email.. spam..)을 Mail서버로 전송
Mail 서버에 과부하가 걸리도록 유도함..
이것 역시 단위 시간 유입되는 메시지를 카운트하고..
임계치를 넘으면.. 일정 시간 Block..
local directory mounting
linux에서 cifs, nfs 등 네트워크 공유 경로 등을 마운트 사용할 때,
경우에 따라
마운트를 해제하지 않고 마운트된 디랙터리 내용이 아닌
실제 로컬 경로의 내용 확인이 필요한 경우가 있다.
로컬 경로를 직접 마운트하면 되는데,
마운트 방법은 아래와 같다.
mount --bind src_path dst_path
경우에 따라
마운트를 해제하지 않고 마운트된 디랙터리 내용이 아닌
실제 로컬 경로의 내용 확인이 필요한 경우가 있다.
로컬 경로를 직접 마운트하면 되는데,
마운트 방법은 아래와 같다.
mount --bind src_path dst_path
2017년 11월 28일 화요일
find_first_of, find_last_of 함수 오용 주의
c++ 에서 find_first_of, find_last_of 를 사용할 때 유의할 점이 있다.
두 함수가 모양만 봤을 때 처음으로, 마지막으로 사용된 위치를 찾는 기능을 하는 것은
쉽게 알 수 있다.
하지만 함수의 파라메터로 받은 search string의 경우
잘못 생각하면 큰 실수를 범할 수 있다.
최근 message header에서 사용되는 encoded-word를 파싱할 때
실수를 했던 부분이다.
std::string strEncodedSubject = "=?EUC-KR?B?x9Gx2yDA3yC1ybHuPw==?=";
// encoded-word는 =?[character set]?[encoding type]?[encoded string]?= 로 구성된다.
// 앞뒤 "=?", "?=" 위치 파악을 위해..
size_t tIdx = strText.find_first_of("=?");
std::cout << tIdx << std::endl;
tIdx = strText.find_last_of("?=");
std::cout << tIdx << std::endl;
=> 결과는 0, 32 이다.
무엇이 문제인가..
아시는 분들은 "그건 당연히 그렇게 사용하는 거지.." 하겠지만
find_first_of, find_last_of는 파라메터로 받는 search string을
string 전체로 search하는 것이 아니라,
해당 string의 구성하는 char 중 어떤 것이라도 먼저 혹은 마지막에 발견된 위치를
찾는 함수이다.
(차라리.. token 함수와 유사함)
그렇다. 내가 원하는 위치를 찾기 위해서는
find, rfind를 사용하는 것이 맞다.
size_t tIdx = strText.find("=?");
std::cout << tIdx << std::endl;
tIdx = strText.rfind("?=");
std::cout << tIdx << std::endl;
=> 결과는 0, 31 이다.
이렇게 간단한 실수지만 잘못하면 정말 찾기힘든
치명적인 버그를 만들게 된다.
분명 예전에도 한번 실수 해서 조심해야 겠다하고.. 생각한적 있는데..
또 이런 기본적인 실수를..
전자제품이건.. API건 사용 설명서를 꼼꼼히 읽고 사용하도록 하자.
두 함수가 모양만 봤을 때 처음으로, 마지막으로 사용된 위치를 찾는 기능을 하는 것은
쉽게 알 수 있다.
하지만 함수의 파라메터로 받은 search string의 경우
잘못 생각하면 큰 실수를 범할 수 있다.
최근 message header에서 사용되는 encoded-word를 파싱할 때
실수를 했던 부분이다.
std::string strEncodedSubject = "=?EUC-KR?B?x9Gx2yDA3yC1ybHuPw==?=";
// encoded-word는 =?[character set]?[encoding type]?[encoded string]?= 로 구성된다.
// 앞뒤 "=?", "?=" 위치 파악을 위해..
size_t tIdx = strText.find_first_of("=?");
std::cout << tIdx << std::endl;
tIdx = strText.find_last_of("?=");
std::cout << tIdx << std::endl;
=> 결과는 0, 32 이다.
무엇이 문제인가..
아시는 분들은 "그건 당연히 그렇게 사용하는 거지.." 하겠지만
find_first_of, find_last_of는 파라메터로 받는 search string을
string 전체로 search하는 것이 아니라,
해당 string의 구성하는 char 중 어떤 것이라도 먼저 혹은 마지막에 발견된 위치를
찾는 함수이다.
(차라리.. token 함수와 유사함)
그렇다. 내가 원하는 위치를 찾기 위해서는
find, rfind를 사용하는 것이 맞다.
size_t tIdx = strText.find("=?");
std::cout << tIdx << std::endl;
tIdx = strText.rfind("?=");
std::cout << tIdx << std::endl;
=> 결과는 0, 31 이다.
이렇게 간단한 실수지만 잘못하면 정말 찾기힘든
치명적인 버그를 만들게 된다.
분명 예전에도 한번 실수 해서 조심해야 겠다하고.. 생각한적 있는데..
또 이런 기본적인 실수를..
전자제품이건.. API건 사용 설명서를 꼼꼼히 읽고 사용하도록 하자.
2012년 7월 5일 목요일
cpio 사용법..
CPIO 옵션
i 압축해제하라는 옵션
o 압축 생성 옵션
p 표준입력에서 파일명을 읽는다.
B 5120 bytes블럭단위로 입출력한다.
c 아스키 형식으로 헤더정보를 읽고 쓴다.
d 없는디렉토리는 생성한다.
u 기존파일과 겹치면 덮어쓰지 않는다.
m 파일의 변경시간을 그대로 유지한다.
v 파일명 목록을 출력한다.
h 헤더의 형식을 tar와 같이 읽고 쓴다.
x 장치파일도 읽고 쓴다.
o 압축 생성 옵션
p 표준입력에서 파일명을 읽는다.
B 5120 bytes블럭단위로 입출력한다.
c 아스키 형식으로 헤더정보를 읽고 쓴다.
d 없는디렉토리는 생성한다.
u 기존파일과 겹치면 덮어쓰지 않는다.
m 파일의 변경시간을 그대로 유지한다.
v 파일명 목록을 출력한다.
h 헤더의 형식을 tar와 같이 읽고 쓴다.
x 장치파일도 읽고 쓴다.
CPIO 파일 만들기
cpio 를 이용한 특정 확장자 파일만 압축하기.
# find . -name '*.c' -print | cpio -o > data.cpio
# ls | cpio -o > ../test.cpio
CPIO 파일 풀기
-i cpio로 백업한 data를 restore 한다
-o 출력 - 묶을때
-p 통과모드
-p 통과모드
-d restore중 필요한 디렉토리를 자동으로 생성시킨다
-m 백업 되있는 data들의 날짜, 시간을 그대로 유지한다
-v verbose
# cpio -idmv < test.cpio
# cpio -i < data.cpio
# cpio -dmvi < example.cpio
# cpio -dmvi < /root/test.cpio
gz으로 압축되어 있는것을 풀기
예1:
# gunzip targetfile.cpio.gz
# cpio -idmv < targetfile.cpio
# cpio -idmv < targetfile.cpio
예 2:
# zcat targetfile.cpio.gz | cpio -idmv
압축 하여 CPIO 만들기
tar 를 이용한 특정 확장자 파일 압축하기 (리눅스)
find . -name "*.c" | xargs tar -cvf soure.tar
xargs 를 파라미터 수가 제한적이어서, 파일수가 많으면 불가능함.
cpio로 파일 옮기기
한 디렉토리 또는 파일시스템에서 다른 디렉토리 또는 파일시스템으로 옮겨야 할 대량의 파일이 있을 경우 다음의 명령을 이용
한 디렉토리 또는 파일시스템에서 다른 디렉토리 또는 파일시스템으로 옮겨야 할 대량의 파일이 있을 경우 다음의 명령을 이용
# find /old_directory -depth | cpio -pdmv /new_directory
이 명령은 소유자와 권한, 디렉토리 구조를 유지하면서 지정한 old_directory 밑의 모든 파일을 new_directory로 옮긴다.
# cd src_dir_name
# find . -depth -print | cpio -pudm target_dir_name
펌..http://blog.naver.com/dolicom/10041713501
2012년 6월 20일 수요일
[Tip] SVN rollback 하기..
그전에.. 난 그전 revision파일 찾아가며.. 비교해서 다시 커밋했는데..
정말.. 미련한 짓이었다..
아래와 같이 하면.. 된다.
svn merge -r [REV_from]:[REV_to] [Source URL]
|
SVN 경로가 [Source URL] 인 경우 revision을 [REV_from]에서 [REV_to]로 되돌리라는 명령이다.
해당 명령 수행 후 commit을 해주면 된다.
일반적으로 아래와 같은 형태가 될것 같다.
$ svn merge -r 100:99 test.c
$ svn ci -m "Rollback to revision 99" test.c
|
이렇게 하면.. revision이 100인 test.c 가 revision이 99로.. Rollback 완료..
아래는 최종 버전을 특정 revision으로 되돌리는 방법..
$ svn merge -r HEAD:5 test.c
|
'{' DATE '}' 리비전이 시작하는 시각
'HEAD' 저장소의 마지막 리비전
'BASE' 작업 사본을 꺼내온 리비전
'COMMITTED' BASE 이전에 마지막 커밋된 리비전
'PREV' COMMITTED 의 직전 리비전
|
피드 구독하기:
글 (Atom)
스프린트 정리
스프린트 : 스프린트는 프로토타입을 제작하고 고객과 함께 아이디어를 테스트하여 중요한 문제들에 대한 답을 찾는 독특한 5일 짜리 과정이다. 스트린트는 업무 전략, 혁신 행동과학, 디자인 그 외 여러 분야의 최고 히트작을 어떤 팀에서라도 사용할 수 있...
-
그전에.. 난 그전 revision파일 찾아가며.. 비교해서 다시 커밋했는데.. 정말.. 미련한 짓이었다.. 아래와 같이 하면.. 된다. svn merge -r [REV_from]:[REV_to] [Source URL] ...
-
Dictionary Harvest Attack.. 사전 수확 공격?? 임의의 글짜, 단어, 사전, 성씨 등을 조합하여 특정 메일 서버에 메일을 보내고, 메일이 성공적으로 전송이 되서 해당 메일 주소가 유효한 것으로 판단하고 수확한다. ...
-
linux에서 cifs, nfs 등 네트워크 공유 경로 등을 마운트 사용할 때, 경우에 따라 마운트를 해제하지 않고 마운트된 디랙터리 내용이 아닌 실제 로컬 경로의 내용 확인이 필요한 경우가 있다. 로컬 경로를 직접 마운트하면 되는데, 마...