In this attack, some asset (information, functionality, identity, etc.) is protected by a finite secret value. The attacker attempts to gain access to this asset by using trial-and-error to exhaustively explore all the possible secret values in the hope of finding the secret (or a value that is functionally equivalent) that will unlock the asset.
Description
Attack Execution Flow
Step 1
Explore[Determine secret testing procedure] Determine how a potential guess of the secret may be tested. This may be accomplished by comparing some manipulation of the secret to a known value, use of the secret to manipulate some known set of data and determining if the result displays specific characteristics (for example, turning cryptotext into plaintext), or by submitting the secret to some external authority and having the external authority respond as to whether the value was the correct secret. Ideally, the attacker will want to determine the correctness of their guess independently since involvement of an external authority is usually slower and can provide an indication to the defender that a brute-force attack is being attempted.
Determine if there is a way to parallelize the attack. Most brute force attacks can take advantage of parallel techniques by dividing the search space among available resources, thus dividing the average time to success by the number of resources available. If there is a single choke point, such as a need to check answers with an external authority, the attackers' position is significantly degraded.
[Determina la procedura di test segreta] Determina come un potenziale tentativo di indovinare il secret possa essere testato. Ciò può essere realizzato confrontando una manipolazione del secret con un valore noto, utilizzando il secret per manipolare un insieme di dati noti e determinando se il risultato presenta caratteristiche specifiche (ad esempio, trasformare il cryptotext in testo leggibile), oppure sottoponendo il secret a un’autorità esterna e ricevendo una risposta sulla correttezza del valore. Idealmente, l’attaccante vorrà determinare l’esattezza del proprio tentativo in modo indipendente, poiché il coinvolgimento di un’autorità esterna è solitamente più lento e può fornire un’indicazione al difensore che si sta tentando un attacco brute-force.
Determina se esiste un modo per parallelizzare l’attacco. La maggior parte degli attacchi brute-force può sfruttare tecniche di parallelismo dividendo lo spazio di ricerca tra le risorse disponibili, riducendo così il tempo medio di successo per il numero di risorse impiegate. Se c’è un singolo collo di bottiglia, come la necessità di verificare le risposte con un’autorità esterna, la posizione dell’attaccante viene notevolmente compromessa.
Attack Techniques
-
Determine if there is a way to parallelize the attack. Most brute force attacks can take advantage of parallel techniques by dividing the search space among available resources, thus dividing the average time to success by the number of resources available. If there is a single choke point, such as a need to check answers with an external authority, the attackers' position is significantly degraded.
Step 2
Explore[Reduce search space] Find ways to reduce the secret space. The smaller the attacker can make the space they need to search for the secret value, the greater their chances for success. There are a great many ways in which the search space may be reduced.
If possible, determine how the secret was selected. If the secret was determined algorithmically (such as by a random number generator) the algorithm may have patterns or dependencies that reduce the size of the secret space. If the secret was created by a human, behavioral factors may, if not completely reduce the space, make some types of secrets more likely than others. (For example, humans may use the same secrets in multiple places or use secrets that look or sound familiar for ease of recall.)
If the secret was chosen algorithmically, cryptanalysis can be applied to the algorithm to discover patterns in this algorithm. (This is true even if the secret is not used in cryptography.) Periodicity, the need for seed values, or weaknesses in the generator all can result in a significantly smaller secret space.
If the secret was chosen by a person, social engineering and simple espionage can indicate patterns in their secret selection. If old secrets can be learned (and a target may feel they have little need to protect a secret that has been replaced) hints as to their selection preferences can be gleaned. These can include character substitutions a target employs, patterns in sources (dates, famous phrases, music lyrics, family members, etc.). Once these patterns have been determined, the initial efforts of a brute-force attack can focus on these areas.
Some algorithmic techniques for secret selection may leave indicators that can be tested for relatively easily and which could then be used to eliminate large areas of the search space for consideration. For example, it may be possible to determine that a secret does or does not start with a given character after a relatively small number of tests. Alternatively, it might be possible to discover the length of the secret relatively easily. These discoveries would significantly reduce the search space, thus increasing speed with which the attacker discovers the secret.
[Riduci lo spazio di ricerca] Trova modi per ridurre lo spazio segreto. Quanto più piccolo può rendere l’attaccante lo spazio che deve esplorare per trovare il valore segreto, tanto maggiori sono le possibilità di successo. Esistono molteplici modalità con cui lo spazio di ricerca può essere ridotto.
Se possibile, determina come è stato selezionato il segreto. Se il segreto è stato determinato algoritmicamente (ad esempio tramite un generatore di numeri casuali), l’algoritmo potrebbe presentare pattern o dipendenze che riducono la dimensione dello spazio segreto. Se il segreto è stato creato da un essere umano, fattori comportamentali possono, se non ridurre completamente lo spazio, rendere alcuni tipi di segreti più probabili di altri. (Ad esempio, gli umani possono usare gli stessi segreti in più luoghi o utilizzare segreti che sembrano o suonano familiari per facilitarne il ricordo.)
Se il segreto è stato scelto algoritmicamente, si può applicare la crittoanalisi all’algoritmo per scoprire pattern in questo. (Questo è vero anche se il segreto non viene usato in crittografia.) Periodicità, la necessità di valori seed o vulnerabilità nel generatore possono tutti portare a uno spazio segreto significativamente più piccolo.
Se il segreto è stato scelto da una persona, l’ingegneria sociale e la semplice spionaggio possono indicare pattern nella selezione del segreto. Se si possono scoprire segreti vecchi (e un obiettivo può ritenere di avere poco bisogno di proteggere un segreto che è stato sostituito), si possono intuire preferenze di selezione. Queste possono includere sostituzioni di caratteri impiegate dall’obiettivo, pattern nelle fonti (date, frasi famose, testi musicali, membri della famiglia, ecc.). Una volta determinati questi pattern, gli sforzi iniziali di un attacco brute-force possono concentrarsi su queste aree.
Alcune tecniche algoritmiche per la selezione del segreto possono lasciare indicatori che possono essere testati relativamente facilmente e che potrebbero poi essere usati per eliminare vaste aree dello spazio di ricerca. Ad esempio, potrebbe essere possibile determinare che un segreto inizia o meno con un dato carattere dopo un numero relativamente piccolo di test. In alternativa, potrebbe essere possibile scoprire facilmente la lunghezza del segreto. Queste scoperte ridurrebbero significativamente lo spazio di ricerca, aumentando la velocità con cui l’attaccante scopre il segreto.
Attack Techniques
-
If possible, determine how the secret was selected. If the secret was determined algorithmically (such as by a random number generator) the algorithm may have patterns or dependencies that reduce the size of the secret space. If the secret was created by a human, behavioral factors may, if not completely reduce the space, make some types of secrets more likely than others. (For example, humans may use the same secrets in multiple places or use secrets that look or sound familiar for ease of recall.)
-
If the secret was chosen by a person, social engineering and simple espionage can indicate patterns in their secret selection. If old secrets can be learned (and a target may feel they have little need to protect a secret that has been replaced) hints as to their selection preferences can be gleaned. These can include character substitutions a target employs, patterns in sources (dates, famous phrases, music lyrics, family members, etc.). Once these patterns have been determined, the initial efforts of a brute-force attack can focus on these areas.IT: Se possibile, determinare come è stato selezionato il secret. Se il secret è stato determinato tramite un algoritmo (come un generatore di numeri casuali), l'algoritmo potrebbe presentare pattern o dipendenze che riducono la dimensione dello spazio dei secret. Se il secret è stato creato da un essere umano, fattori comportamentali potrebbero, se non ridurre completamente lo spazio, rendere alcuni tipi di secret più probabili di altri. (Ad esempio, gli esseri umani potrebbero usare gli stessi secret in più luoghi o utilizzare secret che sembrano o suonano familiari per facilitare il richiamo.)
-
If the secret was chosen algorithmically, cryptanalysis can be applied to the algorithm to discover patterns in this algorithm. (This is true even if the secret is not used in cryptography.) Periodicity, the need for seed values, or weaknesses in the generator all can result in a significantly smaller secret space.IT: Se possibile, determinare come è stato selezionato il secret. Se il secret è stato determinato tramite un algoritmo (come un generatore di numeri casuali), l'algoritmo potrebbe presentare pattern o dipendenze che riducono la dimensione dello spazio dei secret. Se il secret è stato creato da un essere umano, fattori comportamentali potrebbero, se non ridurre completamente lo spazio, rendere alcuni tipi di secret più probabili di altri. (Ad esempio, gli esseri umani potrebbero usare gli stessi secret in più luoghi o utilizzare secret che sembrano o suonano familiari per facilitare il richiamo.)
-
Some algorithmic techniques for secret selection may leave indicators that can be tested for relatively easily and which could then be used to eliminate large areas of the search space for consideration. For example, it may be possible to determine that a secret does or does not start with a given character after a relatively small number of tests. Alternatively, it might be possible to discover the length of the secret relatively easily. These discoveries would significantly reduce the search space, thus increasing speed with which the attacker discovers the secret.IT: Se possibile, determinare come è stato selezionato il secret. Se il secret è stato determinato tramite un algoritmo (come un generatore di numeri casuali), l'algoritmo potrebbe presentare pattern o dipendenze che riducono la dimensione dello spazio dei secret. Se il secret è stato creato da un essere umano, fattori comportamentali potrebbero, se non ridurre completamente lo spazio, rendere alcuni tipi di secret più probabili di altri. (Ad esempio, gli esseri umani potrebbero usare gli stessi secret in più luoghi o utilizzare secret che sembrano o suonano familiari per facilitare il richiamo.)
Step 3
Explore[Expand victory conditions] It is sometimes possible to expand victory conditions. For example, the attacker might not need to know the exact secret but simply needs a value that produces the same result using a one-way function. While doing this does not reduce the size of the search space, the presence of multiple victory conditions does reduce the likely amount of time that the attacker will need to explore the space before finding a workable value.
[Espandi le condizioni di vittoria] A volte è possibile espandere le condizioni di vittoria. Ad esempio, l'attaccante potrebbe non aver bisogno di conoscere il segreto esatto, ma semplicemente di un valore che produca lo stesso risultato utilizzando una funzione one-way. Sebbene questa operazione non riduca la dimensione dello spazio di ricerca, la presenza di multiple condizioni di vittoria riduce probabilmente il tempo che l'attaccante impiegherà per esplorare lo spazio prima di trovare un valore funzionante.
Step 4
Exploit[Gather information so attack can be performed independently.] If possible, gather the necessary information so a successful search can be determined without consultation of an external authority. This can be accomplished by capturing cryptotext (if the goal is decoding the text) or the encrypted password dictionary (if the goal is learning passwords).
[Raccogliere informazioni in modo che l'attacco possa essere eseguito in modo indipendente.] Se possibile, raccogliere le informazioni necessarie in modo che sia possibile determinare un attacco riuscito senza consultare un’autorità esterna. Ciò può essere realizzato catturando il cryptotext (se l’obiettivo è decodificare il testo) o il dizionario delle password crittografate (se l’obiettivo è apprendere le password).