이것이 New Relic IAST 문제를 직접 진단하는 첫 번째 단계입니다. 이 가이드를 사용하여 문제를 빠르게 해결하세요.
여기에 나열된 문제를 찾을 수 없다면 언제든지 New Relic 지원팀 에 문의하실 수 있습니다.
one.newrelic.com > All capabilities > IAST > Tests 로 이동합니다. 애플리케이션을 클릭하면 애플리케이션 테스트 효율성, 취약점, 적용되는 API, 메소드 호출 등을 확인할 수 있습니다.
IAST를 사용하려면 애플리케이션을 활성화한 후 다시 시작해야 합니다.
새로운 앱인 경우 방화벽으로 인해 NR 플랫폼과의 통신이 차단될 수 있습니다. nr-security-home/logs/snapshots
의 최신 타임스탬프가 있는 파일의 서비스 통계 섹션을 확인하세요. 해당 목록의 6개 항목 모두 OK라고 표시되어야 합니다. 그렇지 않은 경우 로그를 검토하여 추가 정보를 확인하거나 New Relic 지원팀 에 문의하세요. 표준 방화벽 설명서를 볼 수도 있습니다.
New Relic UI에 애플리케이션이 표시되고 보안 에이전트가 IAST를 성공적으로 시작했지만 UI에 취약점이 표시되지 않는 경우 다음을 확인하세요.
애플리케이션의 효율성 수준: one.newrelic.com > All capabilities > IAST > Tests 으로 이동하세요. 귀하의 기능을 검색하고 요약 섹션을 확인하세요. 애플리케이션의 IAST 적용 범위가 낮은 경우 애플리케이션에 추가 테스트 사례를 추가하여 더 높은 수준의 테스트 효율성을 얻으세요.
IAST 적용 범위: one.newrelic.com > All capabilities > IAST > Tests 로 이동하세요. 해당 애플리케이션을 검색하고 클릭하세요. 요약 섹션에서 IAST 분석 적용 범위가 높고 취약점이 발견되지 않았는지 확인하세요. 이는 애플리케이션이 안전하다는 의미입니다.
귀하의 애플리케이션의 프레임워크 또는 취약점 카테고리는 지원되지 않습니다.
이를 확인한 후에도 여전히 IAST의 취약점이 발견되지 않으면 New Relic 지원팀 에 문의하세요.
one.newrelic.com > All capabilities > IAST > Tests 에 애플리케이션이 표시되지 않으면 다음을 확인하세요.
- 귀하의 애플리케이션이 실행 중입니다. 애플리케이션 프로세스 또는 APM & 서비스 페이지를 확인하세요.
- 문제가 있는지 확인하기 위한 애플리케이션 로그입니다.
- APM 에이전트 버전 및 필요한 경우 업데이트합니다.
newrelic.yml
구성 파일에는 설치 페이지 에 표시된 대로 실험의 수정 사항이 포함되어 있습니다.nr-security-home/logs
디렉터리로 이동하여LANGUAGE-security-collector-init.log
파일에서[SETP-8]
줄을 찾습니다. 예상치 못한 오류가 있는지 확인하고 무엇이 실패했는지 알아보세요.- 애플리케이션에 트래픽이 있습니다. IAST가 애플리케이션을 테스트할 수 있도록 일부 트래픽을 생성합니다.
- 프록시 또는 방화벽이 액세스를 차단합니다. 화이트리스트/수정 csec.nr-data.net 에 대한 다음 IP
3.134.136.130, 18.219.177.104, 18.117.21.106
, 덮어쓰기 csec-gov.nr-data.net 에 대한 다음 IP3.130.22.102, 3.138.243.136, 3.139.218.150
, 다루기 csec.eu01.nr-data.net 에 대한 다음 IP18.185.235.118, 3.125.193.113, 3.75.166.122
포함합니다. 하지만 IP는 언제든지 변경될 수 있으므로 해당 IP 대신 화이트리스트/포함에 추가하는 것이 좋습니다. - TLS 인증서가 정확합니다. 로컬 신뢰 저장소에 Let's Encrypt CA 인증서( Let's Encrypt Certificates 에서 다운로드)를 추가합니다. 루트 인증서와 중간 인증서(ISRG Root X1 & Let's Encrypt R3)를 모두 포함하여 완전한 신뢰 체인을 설정합니다.
- 애플리케이션의 프레임워크 또는 취약점 카테고리가 지원됩니다.
보안 에이전트가 올바르게 작동하는 경우:
one.newrelic.com > All capabilities > IAST > Tests 에서 애플리케이션을 볼 수 있습니다. 애플리케이션이 시작되고 트래픽이 생성됩니다.
nr-security-home/logs
디렉터리에서LANGUAGE-security-collector-init.log
파일을 검색합니다. 파일 이름의LANGUAGE
사용 중인 이름으로 바꾸세요. 문제가 있는 위치를 확인하려면 다음 단계를 검색하세요.- [STEP-1]: 보안 에이전트를 시작합니다.
- [STEP-2]: 보안 에이전트가 고유 식별자를 생성합니다. 웹 소켓 연결의 경우 노드 인증 헤더가 표시됩니다.
- [STEP-3]: 보안 에이전트가 애플리케이션에 대한 정보를 수집합니다.
- [STEP-4]: SaaS 유효성 검사기에 대한 웹 소켓 연결이 성공적으로 설정됩니다.
- [STEP-5]: 보안 에이전트 스레드가 시작되었습니다.
- [STEP-6]: 애플리케이션 계측이 성공적입니다.
- [STEP-7]: 애플리케이션이 정책 및 구성을 수신하고 적용합니다.
- [STEP-8]: 보안 에이전트가 성공적으로 시작되었음을 의미하는 유효성 검사를 위해 전송된 첫 번째 이벤트가 표시됩니다.
다음은 보안 에이전트 로그 파일
LANGUAGE-security-collector-init.log
의 일부입니다.Init Log File initiated.Init Logger configured successfully with level: INFO and rollover on max size 52428800.2023-05-26 10:45:02 : [8] [New Relic RPM Connection Service] INFO : com.newrelic.api.agent.security.Agent - [STEP-1] => Security agent is starting2023-05-26 10:45:02 : [8] [New Relic RPM Connection Service] INFO : com.newrelic.agent.security.AgentInfo - [STEP-2] => Generating unique identifier: 8a6d79c3-ad67-35d6-b811-17f7515b7f292023-05-26 10:45:02 : [8] [New Relic RPM Connection Service] INFO : com.newrelic.api.agent.security.Agent - [STEP-3] => Gathering information about the application
IAST UI에 애플리케이션이 표시되고 보안 에이전트가 성공적으로 시작된 경우에도 IAST가 작동하는지 확인할 수 있습니다. 확인하려면 다음 단계를 따르세요.
one.newrelic.com > All capabilities > IAST > Tests 으)로 이동합니다.
Application tests 탭에서 애플리케이션을 검색하고 클릭하세요.
APIs covered, methods calls 및 application testing efficiency 를 포함한 테스트 세부정보를 봅니다.
또한, 로그인 레벨을 debug/finest 으로 설정하면
nr-security-home/logs/java-security-collector.log
파일에서 Fuzz request received (를) 검색할 수 있습니다. 이는 IAST 분석이 진행 중임을 나타냅니다.
IAST는 트래픽이 감지되면 테스트를 시작하므로 애플리케이션이 제대로 작동하는지 또는 해당 애플리케이션으로 향하는 트래픽이 있는지 확인하세요. 앱의 UI 또는 API 엔드포인트를 수행합니다.
IAST가 알려진 취약점을 감지하지 못하는 이유는 다음과 같습니다.
IAST는 애플리케이션 프레임워크를 지원하지 않습니다.
모듈에 대한 측정, 로그가 없습니다.
귀하의 애플리케이션은 IAST의 일부로 한동안 높은 트래픽과 지연 시간을 표시할 수 있습니다. IAST 테스트가 완료되면 이 문제는 몇 분 안에 해결됩니다.
nr-security-home/logs/snapshots
폴더에서 스냅샷 로그 파일도 확인할 수 있습니다. 로그 파일에는 보안 에이전트의 상태, 리소스 사용량 및 최근 5개의 오류가 표시됩니다.
애플리케이션에 HTTP 요청 제공의 일부로 파일과 디렉터리를 생성하는 기능이 있는 경우 IAST는 코드 경로를 테스트하여 해당 파일과 디렉터리를 생성하려고 시도합니다. 애플리케이션 코드는 들어오는 HTTP 요청의 영향을 받아 이러한 파일을 생성합니다. 에이전트는 해당 항목을 삭제할 수 없습니다.
귀하의 API 중 어느 것도 파일과 디렉터리를 생성할 수 없다고 확신한다면 애플리케이션의 설정과 로그를 New Relic 지원팀 과 공유하세요.
IAST의 일부로 보안 에이전트는 부하를 증가시키는 애플리케이션에 새로운 요청을 보내 리소스 활용도를 높입니다. 이 IAST 분석은 애플리케이션에서 포착되지 않은 오류 또는 예외를 노출할 수도 있습니다.
리소스 부족으로 인해 애플리케이션이 충돌한 경우 리소스를 늘리고 애플리케이션을 다시 시작하고 IAST를 다시 수행하십시오.
아래 쿼리에서 appId
를 업데이트하고 쿼리 빌더에서 실행하여 애플리케이션에 대해 보고된 모든 취약점을 찾을 수 있습니다.
SELECT * FROM Vulnerability WHERE issueType = 'Application Vulnerability' AND appId = YOU_APPLICATION_ID
IAST가 오탐지를 보고했다고 생각되면 취약점 상태를 업데이트하세요. 다음과 같이하세요:
애플리케이션 검색: one.newrelic.com > All capabilities > IAST > Tests 으)로 이동하세요.
모든 애플리케이션 탭을 클릭하고 실제 취약점이 아닌 취약점을 선택합니다.
취약점 세부정보 섹션에서 보고된 취약점에 대한 취약점 상태를 업데이트할 수 있습니다. 상태를 다음과 같이 업데이트할 수 있습니다.
- 오탐
- 해결됨
- 해결되지 않은
상태를 업데이트한 취약점을 나열하려면 검색된 악용 가능한 취약점 목록에 필터를 적용하면 됩니다.
Golang의 경우 애플리케이션에서 사용하는 라이브러리 및 프레임워크에 필요한 계측 패키지를 가져왔는지 확인하세요.
따라서, 귀하의 애플리케이션이 Mongo DB 용 라이브러리를 사용하고 있다고 가정해 보겠습니다. 이 특정 라이브러리의 경우 newrelic에서 이 측정, 로그 패키지를 가져와야 합니다.
import ("github.com/newrelic/go-agent/v3/integrations/nrsecurityagent""github.com/newrelic/go-agent/v3/newrelic""github.com/newrelic/csec-go-agent/instrumentation/csec_mongodb_mongo""go.mongodb.org/mongo-driver/mongo")애플리케이션 요구 사항에 따라 가져와야 할 수 있는 다른 패키지가 있습니다. 지원되는 패키지 목록은 여기에서 확인하세요.
각 모듈에 해당하는 패키지를 가져왔는지 확인하세요.
HTTP 프로토콜 엔드포인트를 여는 경우 엔드포인트 이름 주위에
newrelic.WrapListen
함수를 배치하여 해당 엔드포인트에 대해 연구소 스캐닝을 활성화합니다.http.ListenAndServe(newrelic.WrapListen(":YOUR_PORT_NUMBER"), nil)중요
Linux 환경을 사용하는 경우 이 단계를 건너뛸 수 있습니다.
Outbound HTTP Request 의 특정 사례 또는 외부 서비스 호출의 경우 애플리케이션 방법을 업데이트 해야 합니다.
IAST는 Windows 환경에서 지원됩니다. 그러나 일부 Java 애플리케이션의 경우 classCirculatoryError
발생할 수 있으며 다음과 같이 에이전트 설정에서 낮은 우선순위 측정값을 비활성화해야 합니다.
보안 구성에서 낮은 우선순위 측정, 측정 비활성화:
low-priority-instrumentation:enabled: false클래스 변환기에서 우선순위가 낮은 측정, 측정 클래스를 제외합니다. 이렇게 하려면 구성 파일의
class_transformer
섹션에 지정된 줄을 추가하세요.com.newrelic.instrumentation.security.low-priority-instrumentation:enabled: false
아니요, IAST 조사 결과를 다운로드할 수 있는 API가 없습니다.
IAST는 테스트 중에 관찰한 내용을 기반으로 애플리케이션에 새 요청을 보냅니다. 목표는 익스플로잇 페이로드를 사용하여 추가 API 및 메서드 호출을 호출하는 것과 관련된 악의적인 동작이 가능한지 확인하는 것입니다. 이로 인해 고객 데이터가 바람직하지 않게 조작되고 런타임 보호 서비스가 트리거될 수 있습니다.