구속 조건 만족도 문제의 반구 찾기


12

시스템 또는 모델의 보안을 테스트 할 때 다음 질문이 여러 번 발생했습니다 .

동기 부여 : 소프트웨어 보안 결함은 종종 유효한 입력으로 인한 버그가 아니라 유효 입력에 충분히 근접한 유효하지 않은 입력으로 인해 발생하는 버그가 많은 간단한 유효성 검사를 통과합니다. 고전적인 예는 물론 버퍼 오버 플로우인데, 입력이 너무 크다는 것 외에는 입력이 합리적입니다. 컴파일러 및 기타 도구는 스택 및 힙의 레이아웃을 수정하고 다른 난독 화 기술을 통해 이러한 문제를 해결하는 데 도움을 줄 수 있습니다. 대안은 소스 코드 자체에서 문제를 제거하는 것입니다. 입력을 가진 프로그램이 퍼징 폭격 이라고하는 한 가지 기술은 예상되는 입력에 가깝지만 불합리한 위치에 있습니다 (정수 또는 문자열 필드의 경우 큰 값). 좀 더 공식적인 관점에서 퍼징을 이해하고 싶습니다.

유효한 입력 공간이 제약 조건 로 설명되어 있다고 가정합니다 Φ. M 을 그러한 구속 조건의 해 집합 이라고하자 . 즉 M={mM | mΦ} (여기서 M 은 가능한 입력 공간입니다.

다음 개념을 설명하는 작업을 찾고 있습니다.

  • MMMmM mΦ MM

  • \ Phi \ Rightarrow \ Phi '\ Phi'\ land \ neg \ Phi 와 같은 제약 조건 Φ to \ Phi ' 를 완화하는 방법은 어떤 의미에서 \ Phi 의 구문 적 반감입니다 .ΦΦΦΦ¬ΦΦ

"Penumbra"는 개념을 설명하기 위해 선택한 단어입니다. 다른 것으로 불릴 수도 있습니다.

나는 수학적 형태 에서 영감을 얻었 으므로 시각적 은유 적이지만 두 세계는 서로 분리되어 있습니다. 유용한 작업이 있습니까? 아니면 거친 세트 의 세계에서 ?

누구나 빛을 비출 수 있습니까?


문제는 그 자체로 정말 흥미롭지 만, 대부분의 경우, 반 음반을 만드는 데 관심이없고 (보다 "공식적인"이름을 알지 못함) 오히려 소프트웨어 변조 공격 (예 : 수정을 통한 공격)을 피하는 난독 화 된 기술에 관심이 있습니다. 입력). 이 기술은 프로그램 동작을 다른 것으로 넘치게하여 프로그램 동작의 핵심을 숨 깁니다. 예를 들어, 특정 인스턴스에서 NP 하드 문제의 해결을 하드 코딩하는 프로그램과 함께 원본을 인터리빙하여 프로그램을 빌드 할 수 있습니다.
Sylvain Peyronnet

사실입니다. 나는 퍼징으로 알려진 접근 방식을 암시하고 있습니다.
Dave Clarke

그런데 CSP = Constraint Satisfaction Problem.
MS Dousti

답변:


6

제약 조건 만족도 문제 (CSP)의 최적화 변형에 대해 많은 관심을 기울이는 것은 몇 가지 제약 조건 (MAX-CSP)을 만족시키는 데 중점을 두 었으며 부울 경우에는 가능한 많은 변수를 할당하는 솔루션을 선택하는 데 중점을 두었습니다. MAX-ONES, MIN-ONES도 있습니다).

대신 MAXIMUM PARTIAL CSP라고하는 변형을 요구하고 있습니다. 이것은 적어도 1960 년대 후반까지 연구되었지만, 나는 그것이 확립 된 이름을 가지고 있다는 것을 모른다. 그것은 자연스러운 문제이며, 더 많은 연구를하는 것이 좋을 것입니다. 이 문제에 대한 다른 잠재적 응용 프로그램을 제공해 주셔서 감사합니다!

  • Ambler, AP 및 Barrow, HG 및 Brown, CM 및 Burstall, RM 및 Popplestone, RJ, 컴퓨터 제어 어셈블리를위한 다목적 시스템 , 인공 지능 6 129–156, 1975. doi : 10.1016 / 0004-3702 (75) 90006- 5

변수 값 할당 세트를 부분 할당 이라고 합니다 . 변수-값 할당을 (변수, 값) 튜플로 작성할 수 있습니다. 그런 다음 부분 할당은 단순히 변수에서 값까지 기능합니다. 소품 은 제약 조건을 위반하지 않는 부분 할당입니다. 마찬가지로 소품에는 일부 제약 조건에 의해 금지 된 부분 할당이 포함되어 있지 않습니다 (하위 집합으로).

최적화 문제를 표현하는 한 가지 방법은 다음과 같습니다.

최대 부분 CSP :
입력 : CSP 인스턴스
출력 : prop 기준 : 최대화| f |f
|f|

변수가 있는 경우 , 카디널리티의 소품 이 해결책이 될 것입니다. 솔루션에 포함되지 않은 카디널리티가 최대 인 큰 소품이있을 수 있습니다 .n n - 1nnn1

당신이 제안하는 용어에서, 최대 카디널리티 가진 소품 세트는 아마도 추가 여유도 (따라서 카디널리티는 적어도 ) 와 함께 반음 부를 형성합니다 .d k dkdkd

귀하의 질문의 두 번째 부분도 매우 흥미로워 보이지만 관련된 질문은 없습니다.


각주 : prop 라는 용어 는 내 논문에서 유래 한 것입니다. 그것은 그러한 부분적 할당이 적절하고 그것들이 일련의 솔루션을 지원한다는 생각을 전달하기위한 것입니다. 이는 솔루션으로 확장 할 수없는 부분 할당을 설명하는 데 사용되는 용어 인 nogood 과 대조됩니다 . "Nogood"이라는 단어는 1976 년 Richard Stallman과 Gerald Sussman에 의해 소개되었습니다. RMS는 여전히 소프트웨어 자유 운동가 대신 AI 연구원이었습니다.

  • Stallman, Richard M. 및 Sussman, Gerald Jay, 컴퓨터 보조 회로 분석을위한 시스템에서 순방향 추론 및 종속성 지향 역 추적 , MIT 인공 지능 연구소 메모 번호 380, 1976. ( PDF )
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.