본문 바로가기

정보보안41

firewall 방화벽, 침입차단시스템 개념 접근 제어 목록(ACL)을 통해 트래픽에 대한 보안 정책 설정 기능 : 접근 제어, 로깅, 인증, 암호화(데이터를 암호화해서 보냄) 유형 패킷 필터링 방화벽 rule 기반으로 패킷 필터링 ACL 사용 src ip, dst ip, 라우터의 입력 interface, port을 통해 필터링 장점 단순, 빠름, 확장성 좋음 응용 프로그램에 독립적 단점 패킷 헤더 정보만으로 필터링하므로 특정 어플리케이션의 취약점을 이용한 공격은 막지 못한다. 공격자가 출발지, 목적지 주소와 포트를 조작해 우회할 수 있다. 접근 제어 규칙을 제대로 설정하지 않으면 보안에 허점이 생긴다. stateful(상태기반) 패킷 검사 방화벽 패킷 정보를 이용한 검사를 하며, TCP 연결에 대한 정보를 기록한다. tcp 순서 번호를 추적.. 2022. 2. 7.
IDS 침입탐지시스템 개념 방화벽의 부족함을 채우기 위해 외부 침입에 대한 정보를 수집, 분석해 침입을 탐지하고 관리자에게 알려 대응하는 시스템 네트워크 공격의 증거를 찾기 위한 트래픽 분석의 역할로 시작했지만 점차 시스템의 침해여부를 보기 위해 로그를 조사해 파일을 분석하는 것이 되었고, 점차 허니팟 개념으로 확장 중에 있다. 기능 패킷 및 세션 분석 탐지 프로토콜 이상 탐지 signature 및 이상 징후 탐지 비정상 행위 및 비정상 트래픽 탐지 장점 방화벽보다 적극적 방어 내부 사용자의 오남용 탐지 및 방어 가능 근원지 추적 가능 단점 대규모 적용 어려움 관리 및 운영 힘듦 근본적 보안 사고의 해결책은 아님 새로운 침입 방법에 대한 즉각적인 대응이 어렵다. 실행 단계 데이터 수집 탐지 대상(시스템 사용 내역, 패킷)으로.. 2022. 2. 7.
[TheFuzzingBook] Mutation-Based Fuzzing TheFuzzingBook을 읽으면서 제대로 따라가기 위한 글... 정확한 내용은 퍼징북을 참고하세여 앞서 해왔던 randomly generated input은 invalid해서 처리되는 프로그램에 의해 빨리 reject된다. input processing 이상의 기능을 실행하려면 더 많은 valid input이 있어야 하는데, 이를 mutation fuzzing이 할 수 있다. 즉, mutation fuzzing은 valid but new behavior을 만들어낸다. 학습 목표 how to create such mutations how to guide them towards yet uncovered code apply central concepts from AFL fuzzer Fuzzing with .. 2022. 1. 29.
[TheFuzzingBook] Code Coverage 이전 개념 assert로 에러처리(error check) fuzzer architecture Runner : Program Under Test Fuzzer : 랜덤값을 만들어내서 Runner에서 실행시키기 Code Coverage 이전 챕터에서처럼 퍼징을 하면 그 effectiveness를 어떻게 측정할까? 찾은 버그의 개수를 확인하는 방법이 있다. - 하지만, 만약 버그가 부족하다면?? 개념 test run동안 실제로 프로그램의 어떤 부분이 실행되는지 알려준다. 이런 coverage를 측정하는 것은 최대한 많은 코드를 커버하려는 test generator에게 매우 중요하다. black-box testing 소프트웨어의 내부 구조와 작동 원리를 모르는 상태에서 소프트웨어 동작 검사 올바른 입력, 올바르지.. 2022. 1. 29.
[TheFuzzingBook] Breaking Things with Random Inputs Runner 클래스 PUT 자체라고 볼 수 있음. 어떤 랜덤값을 실행하기 위해 임의로 뭔가 동작을 하는 프로그램 Fuzzer 클래스 랜덤한 문자열을 생성해서 fuzz() Runner 클래스에서 실행시키기 from typing import Dict, Tuple, Union, List, Any import random, os, tempfile, subprocess Outcome = str ################################################# ### Runner ###################################### ################################################# class Runner: PASS = "PASS" FAI.. 2022. 1. 28.
gcov, lcov 개념 및 사용하기 gcov 개념 code coverage를 측정하기 위해 사용하는 프로그램 알 수 있는 것 각 라인의 코드가 얼마나 자주 실행되었는가 정확히 어떤 라인의 코드가 실행되었는가 특정 부분의 코드를 실행하는데 얼만큼의 시간이 걸렸는가 gcov 사용법 gcc의 특정 옵션과 함께 테스트하고자하는 프로그램 컴파일 -fprofile-arcs : 이 옵션으로 컴파일한 후, 프로그램을 실행하면 branch와 call이 얼마나 실행되었는지 그리고 리턴을 했는지 기록한다. 이 데이터는 .gcda 파일에 저장된다. -ftest-coverage : 이 옵션으로 컴파일되면, gcov 프로그램이 프로그램의 coverage를 보여줄 때 사용하는 .gcno 파일을 생성한다. --coverage : -fprofile-arcs -ftest.. 2022. 1. 26.